SPP Tool Chain
4.1 Design Factors and Goals

The design of runtime environment for a Model-Integrated Computing design environment involves a careful analysis of the needs of the design engineers, the methods and components used in the designs, and the target systems. This section will describe the concepts developed in the creation of the Adaptive Computing Systems MIC runtime environment.

To clarify matters, we start with what the environment is not intended to do:

  1. It is not intended to be an end-user programmable environment. The runtime is intended to serve as a target for the synthesis tools. In this capacity, it is not necessary to incorporate the high-level functions that one could find in a standard real-time operating system such as VxWorks. Instead, it should be RISC-like in nature, since synthesis tools rarely use high-level functions.
  2. It is not intended to be a write-once, run-everywhere system. As such, the runtime is not required to support everything straight out of the box. Instead, the runtime is designed to be customizable to different technologies and architectures.

The CoActive runtime environment has the following design drivers:

  1. Hardware & Software: Target applications will be composed of functions that execute on conventional programmable processors (DSP's, RISC, CISC) and functions that are directly implemented in hardware. These devices can be FPGA-based, where the logic is reconfigurable at runtime or directly implemented in silicon (Hard cores/ASIC's).
  2. Flexible Topology: The connection topology must be flexible to match application data flow patterns. Pipelining and parallelization can be used in different configurations at different times within an application's lifetime.
  3. Dynamic Reconfiguration: The topology and the functions of the computational elements must be able to be changed at specified times within the application lifetime. The extent of the reconfiguration is defined by the capabilities of the hardware and the requirements of the application.
  4. Performance: The runtime environment must impose a very small overhead performance penalty.
  5. Real-Time: Timing behavior must be guaranteed.
  6. Data-Flow Based: The primary target applications are embedded signal-processing systems. This paradigm supports these very well, but is non-intuitive for control-based applications.
  7. Portable: The tools must support technology migration. The target architectures must be able to track technology, as DSP's evolve and FPGA's get bigger. This does not mean that the same binary applications will directly port, however the design tools must be able to synthesize a compatible application on new hardware.

The above figure represents the types of computations that execute on the target architectures. Algorithms are specified as a data flow diagram. These algorithms are mapped to heterogeneous architectures, containing a mix of implementation technologies that is optimized to the algorithm and its performance requirements.

Next Up: 4.2 Runtime Execution Semantics