[Flavors] Flavors Technology, Inc.


Paracell Users' Guide

  • Table of Contents
  • Introduction
  • Programming Model
  • Elements of the Language
  • Structure of the Language
  • Elements of Variables
  • Operators
  • Appendices
  • 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

  • Programming Model

    To run an application on the PIM, you must write the application in Paracell, on the workstation, using the Paracell Navigator. This is called programming the PIM. In essence, you are telling the PIM what to do. You instruct the PIM of your intentions by writing Paracell code in tiles. Each tile has a set of instructions, and forms independent computing units on the PIM.

    Each tile is given a set of guaranteed resources: 16 global variable imports, 8 global variable exports, and processing time every frame (sometimes caled a scan in PLC jargon). These resources are guaranteed regardless of the number of tiles in an application. The time period called a frame is typically set at 16 milliseconds, and forms the quantized unit of processing in the PIM. Each tile carries out its set of instruction within this frame. The instructions in a tile are repeatedly executed at every frame. If the instructions in the tile take longer than a frame to execute, then the processing is suspended for that tile and resumed on the next frame. This is called suspension. Suspended tiles restart on the frame after the completion. Paracell Navigator provides tools to find out if tiles are suspending.

    The values of the global variables are brought to the tile at the beginning of the frame (imports), and the values of global variables are written at the end of the frame (exports). Global variables are variables in PIM's shared memory. Variables in the shared memory are accessible to all the tiles in the application.

    Although each tile is independent of one another, tiles can communicate to other tiles by passing variables. This is accomplished by having a tile rely on (import) a global variable whose value is written (exported) by another tile. Information can flow from tile to tile in this matter. However, this flow of information is independent of the program flow within a tile.

    The flow of a program in a serial computing device relies on one "thread." At the conclusion of one set of instructions, the next set of instructions is chosen and executed. Each succeeding set of instructions creates a single thread, or path. There is only one beginning and one end to the flow of the instructions, and the path between is called the thread.

    In PIM, many tiles are being executed concurrently. Although individually each tile contains a single threaded program, there are multitudes of them running at the same time. Each tile has its own beginning and end. Therefore, PIM applications are multi-threaded programs. This is very different from the conventional single-threaded programming method. With the PIM, now you can solve a problem in a completely different way. You may solve a problem by having each tile apply different algorithms. You can also solve a problem by having each tile attack different parts of the problem. A combination of these can be used, also.


    Next: Elements of the Language, Top: Table of Contents


     

    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.