This paper explains how starting from system level platform, application, and mapping specifications, a multiprocessor platform is synthesized and programmed in a systematic and automated way in order to reduce the design time and to satisfy the performance needs of applications executed on these platforms.
Abstract:
For modern embedded systems, the complexity of embedded applications has reached a point where the performance requirements of these applications can no longer be supported by embedded system architectures based on a single processor. Thus, the emerging embedded System-on-Chip platforms are increasingly becoming multiprocessor architectures. As a consequence, two major problems emerge, i.e., how to design and how to program such multiprocessor platforms in a systematic and automated way in order to reduce the design time and to satisfy the performance needs of applications executed on these platforms. Unfortunately, most of the current design methodologies and tools are based on Register Transfer Level (RTL) descriptions, mostly created by hand. Such methodologies are inadequate, because creating RTL descriptions of complex multiprocessor systems is error-prone and time consuming.As an efficient solution to these two problems, in this paper we propose a methodology and techniques implemented in a tool called Espam for automated multiprocessor system design and implementation. Espam moves the design specification from RTL to a higher, so called system level of abstraction. We explain how starting from system level platform, application, and mapping specifications, a multiprocessor platform is synthesized and programmed in a systematic and automated way. Furthermore, we present some results obtained by applying our methodology and Espam tool to automatically generate multiprocessor systems that execute a real-life application, namely a Motion-JPEG encoder.
TL;DR: SystemCoDesigner is the first fully automated ESL synthesis tool providing a correct-by-construction generation of hardware/software SoC implementations, and is presented as a case study, a model of a Motion-JPEG decoder was automatically optimized and implemented using System coDesigner.
TL;DR: FPGA-based Implementation of Signal Processing Systems is an important reference for practising engineers and researchers working on the design and development of DSP systems for radio, telecommunication, information, audio-visual and security applications.
TL;DR: This paper presents the compiler techniques for facilitating the migration from a sequential application specification to a parallel application specification using the process network model of computation, and describes a technique for compile-time memory requirement estimation.
TL;DR: This paper describes the first industrial deployment experiences with the Daedalus framework and performs a DSE study with a JPEG encoder application, which exploits both task and data parallelism.
TL;DR: The Daedalus framework is presented, which allows for traversing the path from sequential application specification to a working MP-SoC prototype in FPGA technology with the (parallelized) application mapped onto it in only a matter of hours.
TL;DR: A simple language for parallel programming is described and its mathematical properties are studied to make a case for more formal languages for systems programming and the design of operating systems.
TL;DR: The Sesame framework as mentioned in this paper provides high-level modeling and simulation methods and tools for system-level performance evaluation and exploration of heterogeneous embedded systems, and it takes a designer systematically along the path from selecting candidate architectures, using analytical modeling and multi-objective optimization, to simulating these candidate architectures with our system level simulation environment.
TL;DR: This paper shows how for an application written in Matlab, a Kahn process network specification can automatically be derived and systematically mapped onto a target platform composed of a microprocessor and an FPGA.
TL;DR: In the flow, architectural parameters are first extracted from a high-level system specification and used to instantiate architectural components, such as processors, memory modules and communication networks, that adapts the processor to the communication network in an application-specific way.
Q1. What have the authors contributed in "Multi-processor system design with espam" ?
As an efficient solution to these two problems, in this paper the authors propose a methodology and techniques implemented in a tool called ESPAM for automated multiprocessor system design and implementation. The authors explain how starting from system level platform, application, and mapping specifications, a multiprocessor platform is synthesized and programmed in a systematic and automated way. Furthermore, the authors present some results obtained by applying their methodology and ESPAM tool to automatically generate multiprocessor systems that execute a real-life application, namely a Motion-JPEG encoder.
Q2. What is the first step to program multiprocessor systems in their methodology?
The first step to program multiprocessor systems in their ESPAM design methodology is the partitioning of an application into concurrent tasks where the inter-task communication and synchronization is explicitly specified in each task.
Q3. What is the main objective of this experiment?
The main objective of this experiment is to show that their design flow successfully closes the implementation gap between the System and RTL abstraction levels of description as well as to show that using the ESPAM tool a very accurate exploration of the performance of alternative multiprocessor platforms based on real implementations becomes feasible since the design time is reduced significantly.
Q4. Why is the high BRAM utilization due to the fact that the M-JPEG is?
The high BRAM utilization is due to the fact that the M-JPEG is a relatively complex application and almost all BRAM blocks are used for the program and data memory of the 4 microprocessors in their platforms.
Q5. What are the components used to specify the processors’ local program and data memories?
Memory components are used to specify the processors’ local program and data memories and to specify data communication storages (buffers) between processors.
Q6. What is the simplest way to connect a processor to a communication component?
Each CC implements the processor’s local bus-based access protocol to the CM for write operations and the access to the communication component (CB) for read operations.
Q7. What is the definition of Implementation Gap?
moving up from the detailed RTL specification to a more abstract system level specification opens a gap which the authors call Implementation Gap.
Q8. What is the difference between a programmable processor and a multiprocessor platform?
Since every programmable processor has a data bus, processors of different types can easily be connected into a heterogeneous multiprocessor platform by using their CCs.