[Flavors] Flavors Technology Incorporated


PIM/Paracell Product Summary

  • Flavors Home
  • Flavors Product Information
  • PIM/Paracell Presentation
  • PIM Configurations
  • Product Documentation
  • PIM/Paracell Product Summary
  • Paracell User's Guide
  • Application Notes
  • Flavors Staff
  • Flavors Links
  • Flavors Download Page

  • II. Paracell

    The software provided with the PIM includes the Paracell language, and the Navigator, which is an environment for managing and developing projects. The Navigator contains many support tools for on-line monitoring, database browsing, code documentation, and program debugging. Paracell has been designed from the ground up to be a parallel language for parallel hardware. Paracell programs consist of many small sections of code called "tiles" which run concurrently and share the same common memory. The environment and support tools have also been designed specifically for parallel programming.

    Paracell is an interactive language in that, without affecting proven, running code, users may make changes and quickly test the results. Further, Paracell is an incremental language in that a project may be programmed in stages. A subset of a complex system may be running in the near term, and the system may be completed gradually, without halting the working subset.

    This combination of a parallel and granular nature, and the PIM hardware platform make Paracell a real-time language. Unlike conventional systems, A Paracell program runs predictably, and its performance is constant, independent of program size or I/O load (e.g. when more code is added or more hardware is added, the performance of existing code is not affected). This feature allows for continuing enhancements to your systems.

    Because all the tiles run concurrently and share the same common memory, programmers are encouraged to think in parallel. Paracell provides the performance benefits only available to parallel computing and handily solves large complex problems.


    1. PIM Hardware Resources

    There are two "views" of the PIM system, the software view and the hardware view. The Paracell programmer only needs to consider the software view when programming. However, it is sometimes helpful to understand how this software view is implemented in hardware.

    The basic resources available to Paracell programs are "cells". Cells are virtual processors with fixed and guaranteed resources. As hardware is added to a PIM, the number of cells increases, but the resources of a cell never change or differ from another. The software view is of up to 16,384 cells sharing a large common (shared) memory. In each PIM frame (nominally a 60th of a second) all cells simultaneously import data from shared memory, then execute their Paracell code in parallel, and finally simultaneously export data to shared memory.

    Figure 3-1. The software view of the PIM.

    The following describes how the hardware implements the "software view".

    A PIM can have from 1 to 8 processors. In this example, each is responsible for implementing 130 Paracell cells during its 16 millisecond frame (figure 3-2). The developer has 125 cells available per processor. Five cells are reserved for system uses; debugging, monitoring, diagnostics, and so on. Thus in a 60Hz system, each processor's 16 milliseconds is divided 130 ways giving each cell about 125 microseconds to execute it's Paracell code.

    [PIMframe]

    Figure 3-2 Eight processors are used to implement the 2,000 cells that are available to the programmer.

    The powerPIM family supports a flexible frame time. Thus a 300 cell system running at a 60Hz frame rate can instead be run at 30Hz, providing the user with 600 processing cells without any additional hardware. In this instance, each cell maintains its 125 microseconds for the execution of it's Paracell code. Similarly, a 300 cell system could run at a 15 Hz rate, providing the user with 1,200 processing cells. If such a system were implemented with 8 hardware processors, 9,600 cells would be available to the programmer.


    2. Program Organization

    All Paracell programs consist of "tiles". Each processing cell is responsible for executing a tile, performing user-configurable system tasks such as data monitoring, or waiting for a task to be assigned. From the workstation, tiles may be referenced by name, Navigator location, imports, exports, and other user-defined criteria. Imports and exports are indexed under all names which can be used to refer to the same variable.

    2.a Paracell Tiles

    The tile is the basic unit of code in Paracell. A tile will contain a transform that may take the form of a function, rule(s), or short program. When loaded in the PIM, each "tile object" holds the code for the tile, and information about how the tile is scheduled. Information which lets the editor retrieve any special variable names associated with the tile is stored in the database of the development workstation (see III.7.a The Paracell Workstation Database). By default a tile has a one to one relationship with a cell. All of the cell's resources are devoted to that one tile all of the time.

    [tileOnCell]

    Figure 3-3 One tile, one cell

    2.b I/O Tiles

    I/O Tiles are used to create the connection between variables in Shared Memory and real-world I/O. In the I/O tiles, variables are listed and associated with specific I/O points or memory locations of an attached processor. The I/O Tiles provide tools for following the physical path of a variable or point (see IV.3 I/O Configuration).


    3. Paracell Code

    Within the tiles resides the Paracell code. The syntax of Paracell is flexible and powerful. IF... THEN... ELSE...statements may include complex expressions and other conditional statements.

    [codeExample]

    Figure 3-4 Complex expressions can be nested within statements or other expressions

    [complexExp

    Figure 3-5 Further, parsing of expressions is context dependent.

    [parse

    Figure 3-6 In the first example, the "and" indicates that two assign operations are to be performed, setting both a and b to the value of z. In the second example, the "and" is a logical operation to be performed on b and z.

     


    Chapter II, Continued (More Paracell... )
    Chapter III: I/O
    Back: Overview
    Table of Contents
    Top of Page


    Flavors Technology, Inc.
    Sunrise Labs
    5 Dartmouth Drive
    Auburn, NH 03032 USA
    Internet: info@flavors.com
    Telephone: 603-644-4500 / Fax: 603-622-9797

    Copyright© 1993-6 by Flavors Technology, Inc. All rights Reserved.