Digital Signal Processing Reference
In-Depth Information
scheduler
fire()
fire()
fire()
write()
sc - thread
sc - thread
read()
sc - thread
sc - port
sc - port
sc - port
sc - port
sc - channel
sc - channel
Fig. 7
Software architecture of the functional simulation of a KPN application based on SystemC
4.3.2
Software Synthesis
After the application has been functionally verified by functional simulation, it is
ported to the target platform. This requires an architecture dependent runtime envi-
ronment in which the application is executed. The role of the runtime environment
is to hide architectural details of the MPSoC platform by providing a set of high-
level services enabling the execution of an application on the platform, such as
task scheduling, inter-process communication, or inter-processor communication.
Depending on the target platform, developing (parts of) the runtime environment
might be necessary to create the basis for software synthesis.
In case of the DOL design flow, different hardware MPSoC platforms are
supported:
￿ Cell Broadband Engine [ 53 ] : MPSoC consisting of a PowerPC-based Power
Processor Element and eight DSP-like Synergistic Processing Elements inter-
connected via a ring bus.
￿A tmel Diopsis 940 [ 50 ] : Tile-based MPSoC, where a single tile is composed of
an ARM9 processor and a DSP interconnected by an AMBA bus; up to eight tiles
are interconnected via a network-on-chip.
￿
MPARM [ 4 ] : Homogeneous MPSoC consisting of identical ARM7 processors
connected by an AMBA bus.
￿
Intel SCC [ 47 ] : Many-core homogeneous architecture with 48 cores organized in
24 tiles, each tile embedding two cores. Tiles are connected via a mesh on-chip
network, and each tile has also a message passing buffer.
Figure 8 depicts a block diagram of the MPARM architecture. Software synthesis
for MPARM is based on the RTEMS (Real-Time Executive for Multi-processor
Systems) [ 59 ] operating system. Basic services provided by RTEMS are the
scheduling of processes, device drivers for inter-process communication, and device
drivers for system input/output. Based on these services, it is rather simple to
bootstrap and execute a process network. As an example, Listing 1 illustrates parts
of the code for bootstrapping a process network based on the RTEMS API. Software
 
 
Search WWH ::




Custom Search