Configurable Multiprocessor Platform with RTOS for Distributed Execution of UML 2.0 Designed Applications

Similar documents
UML-Based Multiprocessor SoC Design Framework

UML 2.0 Profile for Embedded System Design

Designing Embedded Processors in FPGAs

Altera Innovate Nordic 2007: Leon3 MP on Altera FPGA, Final Report. Altera Innovate Nordic 2007 Final Project Report 8/28/2007

ECE332, Week 2, Lecture 3. September 5, 2007

ECE332, Week 2, Lecture 3

The S6000 Family of Processors

The Nios II Family of Configurable Soft-core Processors

«Real Time Embedded systems» Multi Masters Systems

Introduction to the Qsys System Integration Tool

Fujitsu System Applications Support. Fujitsu Microelectronics America, Inc. 02/02

Designing with ALTERA SoC Hardware

Developing and Integrating FPGA Co-processors with the Tic6x Family of DSP Processors

SoC Platforms and CPU Cores

Honorary Professor Supercomputer Education and Research Centre Indian Institute of Science, Bangalore

Hardware/Software Co-design

TKT-2431 SoC design. Introduction to exercises. SoC design / September 10

Sri Vidya College of Engineering and Technology. EC6703 Embedded and Real Time Systems Unit IV Page 1.

Qsys and IP Core Integration

Intelop. *As new IP blocks become available, please contact the factory for the latest updated info.

USING C-TO-HARDWARE ACCELERATION IN FPGAS FOR WAVEFORM BASEBAND PROCESSING

System-on Solution from Altera and Xilinx

Design of Embedded Hardware and Firmware

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim

6.9. Communicating to the Outside World: Cluster Networking

3-D Accelerator on Chip

Networks-on-Chip Router: Configuration and Implementation

Software Driven Verification at SoC Level. Perspec System Verifier Overview

Shared Address Space I/O: A Novel I/O Approach for System-on-a-Chip Networking

Digital Systems Design. System on a Programmable Chip

Embedded Systems. 7. System Components

Chapter 2 The AMBA SOC Platform

Graduate Institute of Electronics Engineering, NTU Advanced VLSI SOPC design flow

ESE Back End 2.0. D. Gajski, S. Abdi. (with contributions from H. Cho, D. Shin, A. Gerstlauer)

Operating Systems Course 2 nd semester 2016/2017 Chapter 1: Introduction

Co-synthesis and Accelerator based Embedded System Design

System Design and Methodology/ Embedded Systems Design (Modeling and Design of Embedded Systems)

9. Building Memory Subsystems Using SOPC Builder

The University of Reduced Instruction Set Computer (MARC)

DESIGN AND IMPLEMENTATION OF AN AVIONICS FULL DUPLEX ETHERNET (A664) DATA ACQUISITION SYSTEM

Topic & Scope. Content: The course gives

Multi-core microcontroller design with Cortex-M processors and CoreSight SoC

EC EMBEDDED AND REAL TIME SYSTEMS

Park Sung Chul. AE MentorGraphics Korea

The Use Of Virtual Platforms In MP-SoC Design. Eshel Haritan, VP Engineering CoWare Inc. MPSoC 2006

UNIT I [INTRODUCTION TO EMBEDDED COMPUTING AND ARM PROCESSORS] PART A

2. System Interconnect Fabric for Memory-Mapped Interfaces

NIOS CPU Based Embedded Computer System on Programmable Chip

Computer-System Organization (cont.)

Part I Overview Chapter 1: Introduction

Excalibur Device Overview

Intellectual Property Macrocell for. SpaceWire Interface. Compliant with AMBA-APB Bus

Programmable Logic Design Grzegorz Budzyń Lecture. 15: Advanced hardware in FPGA structures

High-Performance Linear Algebra Processor using FPGA

Test and Verification Solutions. ARM Based SOC Design and Verification

Applying the Benefits of Network on a Chip Architecture to FPGA System Design

Hardware Design. MicroBlaze 7.1. This material exempt per Department of Commerce license exception TSU Xilinx, Inc. All Rights Reserved

Parallel Simulation Accelerates Embedded Software Development, Debug and Test

Turbo Encoder Co-processor Reference Design

Designing with Nios II Processor for Hardware Engineers

Novel Intelligent I/O Architecture Eliminating the Bus Bottleneck

Laboratory Exercise 5

Hardware Software Co-design and SoC. Neeraj Goel IIT Delhi

Universal Serial Bus Host Interface on an FPGA

System-on-Chip Architecture for Mobile Applications. Sabyasachi Dey

1. Microprocessor Architectures. 1.1 Intel 1.2 Motorola

CS370 Operating Systems

The RM9150 and the Fast Device Bus High Speed Interconnect

Copyright 2016 Xilinx

IBM Cell Processor. Gilbert Hendry Mark Kretschmann

FPQ9 - MPC8360E implementation

Multimedia Decoder Using the Nios II Processor

Using Industry Standards to Exploit the Advantages and Resolve the Challenges of Multicore Technology

Rapid-Prototyping Emulation System using a SystemC Control System Environment and Reconfigurable Multimedia Hardware Development Platform

KeyStone C66x Multicore SoC Overview. Dec, 2011

AN OPEN-SOURCE VHDL IP LIBRARY WITH PLUG&PLAY CONFIGURATION

1/5/2012. Overview of Interconnects. Presentation Outline. Myrinet and Quadrics. Interconnects. Switch-Based Interconnects

Performance Optimization for an ARM Cortex-A53 System Using Software Workloads and Cycle Accurate Models. Jason Andrews

Introduction Electrical Considerations Data Transfer Synchronization Bus Arbitration VME Bus Local Buses PCI Bus PCI Bus Variants Serial Buses

C H A P T E R GIGABIT ETHERNET PROTOCOL

NIOS CPU Based Embedded Computer System on Programmable Chip

Contents Part I Basic Concepts The Nature of Hardware and Software Data Flow Modeling and Transformation

4K Format Conversion Reference Design

CCNA Exploration1 Chapter 7: OSI Data Link Layer

Copyright 2014 Xilinx

The CoreConnect Bus Architecture

Compute Node Design for DAQ and Trigger Subsystem in Giessen. Justus Liebig University in Giessen

Pactron FPGA Accelerated Computing Solutions

Ethernet Switch. WAN Gateway. Figure 1: Switched LAN Example

Advanced ALTERA FPGA Design

Embedded Systems. "System On Programmable Chip" NIOS II Avalon Bus. René Beuchat. Laboratoire d'architecture des Processeurs.

CS370 Operating Systems

William Stallings Computer Organization and Architecture 10 th Edition Pearson Education, Inc., Hoboken, NJ. All rights reserved.

Efficiency and memory footprint of Xilkernel for the Microblaze soft processor

SECURE PARTIAL RECONFIGURATION OF FPGAs. Amir S. Zeineddini Kris Gaj

A Study of the Speedups and Competitiveness of FPGA Soft Processor Cores using Dynamic Hardware/Software Partitioning

CS6401- Operating System QUESTION BANK UNIT-I

FlexRay The Hardware View

AN 829: PCI Express* Avalon -MM DMA Reference Design

BlazePPS (Blaze Packet Processing System) CSEE W4840 Project Design

Transcription:

Configurable Multiprocessor Platform with RTOS for Distributed Execution of UML 2.0 Designed Applications Tero Arpinen, Petri Kukkala, Erno Salminen, Marko Hännikäinen, and Timo D. Hämäläinen Tampere University of Technology, Institute of Digital and Computer Systems Korkeakoulunkatu 1, FI-33720 Tampere, Finland Abstract This paper presents the design and full prototype implementation of a configurable multiprocessor platform that supports distributed execution of applications described in UML 2.0. The platform is comprised of multiple Altera Nios II softcore processors and custom hardware accelerators connected by the Heterogeneous IP Block Interconnection () communication architecture. Each processor has a local copy of ecos real-time operating system for the scheduling of multiple application threads. The mapping of a UML application into the proposed platform is presented by distributing a WLAN medium access control protocol onto multiple CPUs. The experiments performed on FPGA show that our approach raises system design to a new level. To our knowledge, this is the first real implementation combining a high-level design flow with a synthesizable platform. 1. Introduction Disciplined approaches are required when designing increasingly complex digital systems. Design abstraction using layered system model hides the complexity of underlying layers and makes design reuse more efficient. Common abstraction layers of an embedded platform are presented in Figure 1. A Real-Time Operating System (RTOS) schedules the execution of application threads, and offers services to access available platform resources. Further, a platform Application Programming Interface (API) is a set of functions accessing hardware resources on processing elements. Consequently, this hides the changes in hardware from an application and RTOS. The SW platform HW platform Application Operating system HW abstraction Processing Communication Appl. thread Appl. thread RTOS kernel Platform API Processing elements Network-on-Chip Figure 1. Layered system model. Appl. thread communication between processing elements is abstracted by a Network-on-Chip architecture. Unified Modeling Language (UML) is an objectoriented language that is traditionally used to design software systems. The use of UML in the embedded system design requires the use of UML profiles to improve the semantics in this domain. In this work, we exploit TUT-Profile, which is targeted at real-time embedded systems [8]. TUT-Profile supports the design automation from UML to a physical System-on-Chip (SoC) implementation. Applications modelled in UML are platform-independent, which enables the separation of application functionality and hardware. Further, this enables efficient hardware/software co-design and fast prototyping on different hardware platforms. Figure 2 presents an example of a UML-based SoC design flow with TUT-Profile. Architecture exploration is used for optimizing component allocation, application task mapping and scheduling. The SoC implementation is separated into an application code generation from TUT- Profile application and mapping models, and platform synthesis based on an architecture model. This paper presents a configurable multiprocessor platform that is designed to support both the execution of UML applications and the automated architecture configuration to govern the platform synthesis from library components. Further, the platform includes a library of software components supporting the distributed execution of UML applications on multiple CPUs. The novel features enable rapid and automated physical implementation from a UML model, which consequently enables efficient verification and evaluation on FPGA. The components and tools used in this work are listed in Table 1. The hardware platform contains multiple Nios II softcore processors and hardware accelerators. They are Software library UML design with TUT-Profile Architecture exploration Code generation Application code SoC Platform synthesis Platform instance Figure 2. UML-based SoC design flow. Hardware library

Table 1. Categorization of the components and tools used in the platform development. Self-made components/tools TUT-Profile TUTMAC UML model UML process distributor tool Architecture configuration tool IPC support functions API HW accelerator device drivers communication arch. Nios-to- DMA HW accelerators Off-the-shelf components/tools Tau G2 UML 2.0 tool Quartus II 5.0 suite Nios II GCC toolset ecos RTOS Nios II softcore CPU Nios development board connected by the Heterogeneous IP Block Interconnection () [9][11]. The architecture configuration tool automates the platform hardware generation using a library of RTL descriptions of hardware components. The logic synthesis for FPGA is performed using Quartus II tool from Altera. The platform software includes ecos RTOS [10], which is used for the scheduling of multiple application threads. Inter-Processor Communication (IPC) support functions are required to perform distributed application execution. Device drivers for hardware accelerators are used for accessing common hardware resources. The application software is automatically generated from UML 2.0 models by Telelogic Tau G2 UML 2.0 tool and UML process distributor tool. The latter distributes the execution of an application onto multiple CPUs. As a case study, a WLAN Medium Access Control (MAC) protocol called TUTMAC [5] is mapped to the multiprocessor platform and prototyped on single FPGA. The experimental results are measured to evaluate the scalability and performance of the platform in practice. The paper is organized as follows. First, related work is presented in Section 2. Section 3 presents the design of the multiprocessor platform. Mapping a UML application onto the platform is presented in Section 4. Next, Section 5 shows the platform prototyping on FPGA. In Section 6, experimental results are presented according to measurements on FPGA. Finally, Section 7 concludes the paper. 2. Related work In this paper, we focus on a combination of a looselycoupled Multiprocessor on a Programmable Chip (MPoPC), RTOS, and distributed UML application mapping procedure. Related work has several variations, of which some of the closest are examined below. Hung et al. present a tightly-coupled MPoPC which uses softcore processors [4]. In the proposal, Symmetric Multiprocessing (SMP) with Nios CPUs is enabled by introducing a custom Cache Coherency Module (CCM). In SMP processing topology, CPUs share the same memory and operating system, and application tasks are assigned between CPUs at run-time. However, this does not suit well with the platform comprised of heterogeneous processing elements. Wang et al. present an application specific MPoPC implementation performing LU-factorization for linear equation matrices [13]. The implementation utilizes six Nios CPUs without an operating system. IPC is implemented via a shared memory. Takada et al. present a custom configurable RTOS implementation for loosely-coupled MPoPC [12]. The RTOS is executed with multiple MicroBlaze CPUs on Virtex-II FPGA. The focus in the multiprocessor RTOS development is in hardware/software co-configuration techniques in order to create scalable RTOS which is suitable for variable multiprocessor configurations. Automatic code generation from UML model for embedded systems is under active research [2][7]. However, the approaches are targeted for a single processor implementations, and thus, lack the code generation for multiprocessor systems. Drosos et al. present an implementation of an embedded baseband modem terminal for a wireless LAN application on a platform with two ARM CPUs and an FPGA circuit [1]. The system is specified with UML and software parts are created separately for both CPUs with UML automatic code generation tool. Approach assumes fixed platform and mapping. An RTOS is not utilized. Compared to our approach, the related work lacks the high-level configurability in UML, and the integration and automation of design phases to produce a prototype. Our approach presents a configurable multiprocessor platform, which is seamlessly integrated with the design automation. Consequently, this leads to a seamless design flow from a UML model to a physical implementation. 3. Multiprocessor platform design The platform is composed of identical Nios II CPU sub-systems comprised of a CPU and peripherals. Each sub-system has its own local instruction and data memory spaces; there is no shared memory. IPC and transactions with hardware accelerators are performed using. is a communication architecture developed at the Tampere University of Technology (TUT). IP units connect to using a. allows using several segments and clock domains over bridges. Further, includes a property to send messages having a higher priority than normal data. In this platform, messages are used to inform the receiver about the size of the transfer prior to the actual transmitted data. Nios II is a 32-bit RISC softcore processor. There are three core variants differing on the pipelines, caches, and arithmetic logic units. Nios II CPU utilizes Avalon switch fabric to connect with sub-system peripherals. In Avalon, each connected master-slave pair has dedicated wires with each other, leading to a point-to-point connected network. Each Nios II CPU sub-system includes a Nios II CPU, timer, boot-, dual-port memory, and possibly

instruction and data caches, depending on the core used. In addition, they have a connection to an external instruction/data memory. The boot- includes a unique processor ID to identify the sub-system. A dualport memory is used to buffer data in transactions. A custom Nios-to- (N2H) DMA controller forwards data between and dual-port memory. The CPU and N2H are Avalon masters, whereas the timer and memory components are slaves. Each CPU executes a local copy of ecos RTOS in a local memory and the application threads are mapped to the CPUs at compilation time. is accessed through the API defined as a device driver running on a single ecos thread. All other software drivers accessing hardware accelerators operate through the API. 4. Mapping UML application We use the TUTMAC protocol as an example application. It is a dynamic reservation Time Division Multiple Access (TDMA) based MAC protocol that supports negotiation of Quality of Service (QoS) parameters for data transfers. Parts of the protocol require real-time guarantees and are computationally intensive, such as TDMA scheduling, Advanced Encryption Standard (AES) function for data encryption, and 32-bit Cyclic Redundancy Check (CRC) for data error detection. UML statechart diagrams are used for the behavioral modeling of applications. The statecharts implement asynchronously communicating Extended Finite Machine (EFSM) models [3], and the formalism allows automatic code generation. EFSMs are defined as states and the transitions between them. A state transition is triggered by a received signal or by an expired timer. This is followed by actions, such as variable assignments, operation calls, condition statements, and signal transmissions. The communication between state s is carried out with signals. Signals are comprised of a header and payload. The header includes signal ID, sender/receiver addressing and possibly other parameters, such as signal priority. The payload includes signal parameters that can consist of various data types. The signal passing between different state s is performed via signal queues. In TUTMAC, the class hierarchy of the application model has been designed using class diagrams. Composite structure diagrams describe the class instances (parts) and connections between their ports. The behavior of the protocol has been described using statechart diagrams combined with the UML textual notation. According to the TUT-profile, the instances of the state s are called application processes. Table 2 presents the key properties of the TUTMAC application model to illustrate the complexity of the protocol. Although Tau G2 supports automatic code generation from the UML model, it does not support automatic Table 2. The properties of the TUTMAC UML model. Property Amount Class diagrams 18 Composite structure diagrams 5 chart diagrams 41 s 20 Ports 52 Signal types 40 Signal size (bytes) 0-1550 Generated C code size (lines) 8775 application mapping nor distributed execution of an application on multiple CPUs. These features are covered with our UML process distributor and IPC support functions, respectively. These tools are governed by TUT- Profile. Thus, TUTMAC application, architecture and mapping models are designed according to the profile. The architecture model is composed by using a library of parameterized models that are particularly defined for different hardware components, such as Nios II and. An architecture model is presented in Figure 3, in which the platform instance is comprised of four Nios II CPUs and three hardware accelerators, including AES, CRC and radio interface, interconnected by a single segment. After the application model and the architecture model have been described, a mapping model is created. The mapping model defines the distribution of application processes between different processing elements. The mapping is performed in two phases. First, the application processes are grouped together to form a set of process groups. Second, the formed groups are mapped to certain processing elements. Process groups are used to cluster processes together according to functional relationships with each other, such as local data dependencies and heavy interaction. Also, groups are used to define the threads on RTOS execution. In this, each process group mapped to a Nios II CPU is implemented as a single ecos thread. An example of mapping a set of process groups to the described architecture model is illustrated in Figure 4. Application process distribution between ecos threads and CPUs can be performed according to different criteria, such as system deadlines, work load division, signal relations between different processes, and the size of processes. An architecture exploration tool, such as Processor1 : ComponentLibrary::Nios_II_f _port Processor2 : ComponentLibrary::Nios_II_f _port Processor3 : ComponentLibrary::Nios_II_f _port Processor4 : ComponentLibrary::Nios_II_f _port AES : ComponentLibrary::AES _port CRC : ComponentLibrary::CRC32 _port _port RadioInterface : ComponentLibrary::Intersil_WLAN_radio <<Segment>> Segment1 : ComponentLibrary::Segment Port1 Figure 3. Architecture model of a platform instance.

HighPrio : Group LowPrio : Group...::Stratix_platform::Processor1 DataProcessing : Group...::Stratix_platform::Processor2 TrafficGenerator : Group DataProcessing2 : Group...::Stratix_platform::Processor3 Management : Group...::Stratix_platform::Processor4 EncryptDecrypt : Group RadioAccess : Group...::Stratix_platform::RadioInterface CalculateCRC : Group...::Stratix_platform::AES...::Stratix_platform::CRC Figure 4. Mapping process groups to processing elements. Koski [6], can be used to optimize the mapping. The code generated by Tau G2 supports POSIX, which is exploited to integrate the execution of UML applications with ecos. Based on the created mapping model, UML process distributor tool creates information about which threads are activated on a certain CPU, and attaches this to the generated code. Finally, the codes are compiled to our platform using Nios II GCC toolset. Currently, all threads are included in the program code of each CPU, but only a part of them are activated on a certain CPU. Memory footprint can be reduced by linking only active processes into executable code of each CPU. The hardware platform is generated by the architecture configuration tool based on the architecture model. Figure 5 illustrates an example of the application process distribution and signal passing arrangements within a platform instance containing two Nios II CPUs. All processes in the application model are divided into four groups implemented as ecos threads. CPU 1 executes threads 1 and 4 while threads 2 and 3 are inactive. Correspondingly, CPU 2 executes only threads 2 and 3. A state performs synchronization and scheduling of processes within a single ecos thread. Processes located at different ecos threads on the same CPU share the local signal queue. Signal passing between processes located at different CPUs is carried out as follows. Each CPU has an identical mapping table that indicates activated processes on each CPU. According to this table, IPC functions detect signals that are directed to processes executed on other CPUs. Tx function is called to send such a signal over to the correct remote CPU. At the remote CPU, the signal incoming from is processed and attached to the local signal queue by the Rx thread. Finally, the signal is forwarded to correct recipient process by the state. 5. Platform implementation on FPGA The platform prototypes contain 2-6 Nios II CPUs on Stratix II EP2S60 FPGA. The FPGA has 24,176 Adaptive Logic Modules (ALMs) and 2,544,192 bits of on-chip RAM memory. ALMs are the basic building blocks of logic in the Stratix II device family and the ALM count of the FPGA corresponds to 60,440 equivalent 4-input lookup tables. The Nios development board consists of the FPGA and several peripherals, such as an Ethernet controller, RAM and memory devices, UARTs, and prototype expansion headers. The platform hardware implementation on the development board with 6 Nios II CPUs is depicted in Figure 6. For purposes of our application, Intersil MAC less Prism HW1151-EVAL WLAN radio is attached to one of the prototype expansion headers. The radio is compatible with the IEEE 802.11b radio standard UML application Application process (UML state ) UML application Thread 1 Thread 2 Thread 3 Thread 4 Thread 1 Thread 2 Thread 3 Thread 4 Signal queue Signal queue ecos kernel ecos kernel Device drivers Rx Thread Tx Function Device drivers Rx Thread Tx Function Nios II CPU (1) Nios II CPU (2) Figure 5. Application process distribution in ecos threads and signal passing arrangements.

1 MB SRAM device 16 MB Flash device Shared tri-state bus Uart Avalon connections Module Nios II Nios II Nios II Nios II Nios II Nios II DPRAM DPRAM DPRAM DPRAM DPRAM DPRAM N2H N2H N2H N2H N2H N2H segment 16 MB SDRAM device Cache Cache Cache Cache Cache Cache RS-232 Avalon arbitration modules 32-bit CRC Radio interface AES encoder Stratix II FPGA Prototype expansion header Intersil WLAN radio Nios development board Figure 6. Platform implementation on FPGA. containing only the physical layer of the standard. The radio is controlled by radio interface logic on FPGA. Hardware accelerated functions include AES encoder and 32-bit CRC calculation unit. The external memory devices on Nios development board are used due to limited amount of on-chip memory on FPGA. The Nios development board includes 1 MB of SRAM memory and 16 MB of SDRAM memory both acting as Avalon slaves. Their capacities are divided between CPUs for local instruction and data memories. Furthermore, 16 MB of flash memory is used to store the program images for each CPU. The images are copied to run-time memory locations at system reset. It should be noted that each CPU has conceptually a local memory, although, several memories are implemented on the same physical memory device for the prototyping purposes. -, dual-port, and cache memories are implemented using on-chip memory blocks of the FPGA. Nios II CPUs share the external memory slaves and are thus forced to arbitrate with each other. Avalon and data buses are implemented as 32-bit wide. One of the CPUs is assigned as an I/O CPU which gathers debug data from other CPUs via bus and forwards this data through a serial port to a workstation. This CPU does not participate in the execution of UML application processes. In Figure 6 this CPU is located Table 3. Platform resource usage and F max. Nios II CPUs Area [ALM] Area [%] Memory [bits] Memory [%] F max [MHz] 2 11 680 48 372 828 14 78.90 3 14 769 61 501 904 19 68.05 4 17 728 73 630 980 24 59.34 5 20 495 84 760 056 29 53.25 6 22 758 94 889 132 34 48.95 farthest to the left. 6. Experiments on multiprocessor platform In the experiments, standard Nios II cores were used with 4 KB of instruction cache. The system resource usage was measured with 2-6 Nios II CPU sub-systems, radio interface, AES, and CRC compiled into the FPGA. Table 3 presents the number of ALMs and on-chip memory bits used as well as the maximum operating frequency (F max ) for different platform instances. The critical path is originated from the Avalon arbitrator module of the shared tri-state bus. Moreover, attaching more CPUs to this bus further decreases the F max. 50 MHz system clock frequency was used in FPGA execution. 6.1. Signal passing delays Delays in signal passing between two application processes were measured in three different scenarios. In the first scenario, the processes resided in the same ecos thread. In the second scenario, the processes resided in different ecos threads on the same CPU and the ecos context switch took place right after the signal output. In the third scenario, the processes resided in different CPUs and signal passing was performed via. The measurements were repeated with variable amount of payload lengths attached to the signal. Each signal includes additional header of constant 32 bytes in length. Measurements were performed with two Nios II CPUs both executing UML test application on external SRAM memory device. Figure 7 outlines the measured delays. The signal passing delay between the processes on different threads was approximately 1.4x compared to intra-thread signal passing. Both were almost constant with variable payload lengths. In contrast, the delay of signal passing between CPUs increased in proportion to the payload size. This is due to data transfers over. Further, the delay increases more than linearly, since currently, IPC data gets fragmented into small separate transfers. Consequently, this causes frequent interrupt requests issued by the N2H DMA. 6.2. Distributed TUTMAC application statistics The correct functionality of the distributed TUTMAC application was verified on platform instances with 1-4 CPUs (excluding the I/O CPU). The verification was performed using two development boards as terminal platforms connected together by a radio link, and sending data over the wireless network to both directions. The

Time (µs) 2000 1800 1600 1400 1200 1000 800 600 400 200 0 same thread different threads different processors 8 32 64 128 256 480 Signal payload (bytes) Figure 7. Delays in UML signal passing scenarios. presented mapping procedure was applied several times for the TUTMAC model, each time manually modifying the process grouping and mapping for each platform instance to optimize the reception delay of the protocol. The reception delay is one of the key parameters of the protocol. It depicts the time that is consumed by the protocol to process a received packet when data passes through the protocol from radio interface to a user. Based on the reception delay, the theoretical maximum data throughput can be calculated. However, it should be noted that the overall throughput of a wireless network is also dependent on the physical radio link and channel structure of TDMA scheduling. Figure 8 presents the measured average reception delay and corresponding calculated theoretical maximum throughput as a function of number of CPUs used. The results illustrate that the best result was achieved with two CPUs, leading to 1.44x speed-up over the single-cpu configuration. No further improvement was achieved with three or four CPUs due to increased IPC and small amount of parallel computing in the application. Furthermore, memories of the additional third and fourth CPUs were implemented on the slower SDRAM device, whereas the first two CPUs utilized the faster SRAM device and thus gained higher execution performance. The required memory footprints of the object codes are listed in Table 4. The presented memory requirement multiplies with the number of CPUs in the platform. ecos takes approximately half of the total allocated memory. 7. Conclusions This paper presented the design and implementation of a configurable multiprocessor platform, which supports the distributed execution of applications that have been Reception delay (ms) 15 10 5 0 Reception delay Theoritical throughput 1 2 3 4 Number of CPUs 1.4 1.2 1 0.8 0.6 0.4 0.2 0 Theoretical throughput (Mb/s) Figure 8. Reception delay and maximum throughput with different number of CPUs. Table 4. Required memory footprint. Software part Code [bytes] RW-data [bytes] Total [bytes] TUTMAC model 21 624 1 900 23 524 ecos 75 920 47 791 123 711 29 028 3 049 32 077 API 7 232 61 824 69 056 Total software 133 804 114 564 248 368 described in UML 2.0. Further, the scalable platform supports the automated platform synthesis, which enables a seamless flow from UML to physical implementation. Experiments with the TUTMAC UML 2.0 design proved that the platform is scalable and the distribution of functionality onto the platform can be managed with the tools and design methodology presented. Future work consists of developing tools enabling dynamic re-mapping of application processes between different threads and CPUs. In addition, shortening IPC delays by improving the functionality of the N2H DMA is under work. References [1] C. Drosos et al. Hardware-software design and validation framework for wireless LAN modems. In Proc. Computers and Digital Techniques, pp. 173-182, Nov. 2004. [2] M. Edwards and P. Green. UML for real: UML for Hardware and Software Object Modeling. Kluwer Academic Publishers, pp. 127-147, May 2003. [3] S. Gnesi, D. Latella, and M. Massink. Modular semantics for a UML statechart diagrams kernel and its extension to multicharts and branching time model-checking. Journal of Logic and Algebraic Programming. 51(1): 43-75, 2002. [4] A. Hung, W. Bishop, A. Kennings. Symmetric Multiprocessing on Programmable Chips Made Easy. In Proc. DATE 05, pp. 240-245, Mar. 2005. [5] M. Hännikäinen et al. TUTWLAN - QoS Supporting Wireless Network. Telecommunication Systems - Modelling, Analysis, Design and Management, 23(3,4):297-333, 2003. [6] T. Kangas et al. UML-Based Multi-Processor SoC Design Framework. Accepted to Proc. Transactions on Embedded Computing Systems, ACM, Feb. 2006. [7] P. Kukkala et al. UML 2.0 Implementation of an Embedded WLAN Protocol. In Proc. PIMRC 04, pp. 1158-1162, Sept. 2004. [8] P. Kukkala et al. UML 2.0 Profile for Embedded System Design. In Proc. DATE 05, pp. 710-715, Mar. 2005. [9] O. Lehtoranta et al. A Parallel MPEG-4 Encoder for FPGA Based Multiprocessor SoC. In Proc. FPL 05, pp.1-10, Aug. 2005. [10] A. J. Massa, Embedded Software Development with ecos, Prentice Hall PTR, Nov. 2002. [11] E. Salminen et al. v.2 Communication Network for System-on-Chip. In LNCS 3133, pp. 412-422, Jul. 2004. [12] H. Takada et al. Hardware/software co-configuration for multiprocessor SoPC (work-in-progress report). In Proc. WSTFES 03, pp. 7-8, May 2003. [13] X. Wang and S.G. Ziavras. Parallel direct solution of linear equations on FPGA-based s. In Proc. IPDPS 03, pp. 22-26, Apr. 2003.