CREATING AN APPLICATION

The general flow for creating a PCA application using the Morphware Stable Interface is illustrated in Figure 9.  Application programmers using the MSI first partition their application according to the high-level language that will be used to express their algorithms.  Parts that fit the streaming paradigm are written in Stream or Brook, while non-streaming parts may be written in C or C++.  The high-level language code, augmented with application performance metadata and a machine model metadata description of the target architecture, is compiled by a high-level compiler to SAAL code, which is based on the SVM and UVM APIs, respectively.  The HLC may be provided by a PCA architecture vendor or by a third party.  Reservoir Labs, Inc.’s R-Stream is an example of a third-party HLC [11].  Application performance metadata must be provided by the application programmer, while the machine model is supplied by the architecture vendor.  The application source code may also call functions in libraries that were written by experts using the UVM or TVM-HAL APIs directly.

Figure 9.  Methodology for creating a PCA application using the MSI.

Each architecture vendor provides one or more low-level compilers specific to their PCA system or device architecture.  The various files in the SAAL intermediate formats are compiled for the target architecture, producing architecture-specific binary files.  These are linked as appropriate to create one or a set of binaries that are ready to be executed.  These binaries are annotated with a set of hardware resource requirements needed for the program to successfully execute.  When the program is executed, the PCA run-time system on the target verifies that the required resources are available, allocates the resources and assigns them to the executing program, and configures the PCA hardware into the initial configuration before starting and running the program.  During execution, the hardware may be reconfigured by the application, or by the system responding to changes in the run-time environment.

More detailed and specific information on the process of creating and executing an application using PCA hardware and the MSI is available in the references mentioned elsewhere in this document as well as at the web sites of the various PCA architecture providers.

Previous / Next