Digital Signal Processing Reference
In-Depth Information
3.2
System Synthesis
The Y-chart approach opens a gap between the system-level specification and the
actual implementation of the design, sometimes referred to as the implementation
gap. The challenge in bridging this gap is to preserve the KPN semantics on the
one hand and achieve the desired performance on the other hand. Also, the pitfalls
of parallel programming, such as deadlocks, starvation, and data races need to be
handled. This is the task of system synthesis.
Different approaches for the synthesis of KPNs for software, hardware, and in
combined hardware/software platforms have been proposed. The target architec-
tures have been comprised of single-processors, multi-processors, and FPGAs. In all
cases, system synthesis deals with the implementation of processes and channels as
well as the arbitration of resources in case that processes and channels are mapped
to shared resources. If not all parameters of an implementation are fixed before
synthesis, the remaining degrees of freedom need to be exploited during system
synthesis. In that case, system synthesis is often considered as an optimization
problem where frequently considered optimization goals are the minimization of
code size, the minimization of buffer requirements, or finding the schedules that
minimize delays and maximize system throughput.
While many of these problems can be solved only for restricted subclasses, a few
observations apply to general KPNs:
￿
First, KPN applications can be efficiently implemented on architectures with
different processor, interconnect, and memory configurations, as shown in
Tab le 2 . As an example, KPN applications can be implemented on distributed
memory (message-passing) architectures as well as shared memory architectures.
The FIFO communication can be implemented using dedicated hardware FIFOs
or buses, but also more complex communication topologies, such as hierarchical
buses or networks-on-chip.
￿
Second, KPN applications can be executed in a purely data-driven manner based
on their determinacy. This means that resources can operate independently from
each other without any global synchronization. Pair-wise synchronization is
only needed between processes that are directly connected by channels. From
another perspective, this means that KPN applications can be scheduled with
any scheduling policy that prevents deadlocks, i.e., preemptive, non-preemptive,
or cooperative scheduling could be used. Due to these very relaxed require-
ments, KPN applications can usually be implemented easily on top of existing
(real-time) operating systems. On the other hand, implementing a runtime-
environment for a new platform from scratch is also possible because not many
services need to be provided by the runtime-environment.
￿
Third, KPN applications can be easily partitioned into processes running in hard-
ware and processes running in software. This is due to the parallel specification
of the KPN application on the one hand, and due to the simple interaction of
processes over FIFO channels on the other hand which facilitates the synthesis
of the HW/SW interface.
Search WWH ::




Custom Search