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:
Processor Element and eight DSP-like Synergistic Processing Elements inter-
connected via a ring bus.
an ARM9 processor and a DSP interconnected by an AMBA bus; up to eight tiles
are interconnected via a network-on-chip.
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
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