next up previous index
Next: Dataflow Graph Components Up: Introduction Previous: Introduction   Index

A Virtual Machine

The virtual machine used for this description contains multiple components: a control machine and one or more data machines. The control machine is solely concerned with performing the scheduling of computations on the data machines and managing the system resources. The control machine synchronizes and provides arguments for lower level functions. The data machines perform all the ``useful'' computation done by the system. A shared memory is provided, in addition to any local state included in each data machine. One of the goals of Q is to support a decoupled memory access mechanism, where the data processor's access of data memory is decoupled from the data processing.

A control machine and one or more data machines sharing a single memory

The Virtual Machine

In order to control this architecture, two levels of algorithm specification are used. The upper level is specified as a dataflow graph (DFG) to maximize the available functional parallelism, and is interpreted solely by the control machine. The lower level is executed by a data machine, with control specified in a manner native to the implementation (serial, fixed, dataflow, associative, etc...) It is assumed that functions ranging up to several hundred primitive arithmetic or logical operations will be implemented in the lower level. More complex operations should be implemented as dataflow graphs (at the upper level) to allow parallelization of their constituent operations.

Q specifies the instruction set architecture used for the upper level of algorithm specification, including a definition of the interface between the two levels. The instruction set architectures of the data machines (the lower level) is varied and implementation specific.

One simple implementation of the virtual machine realizes the control machine and a data machine as alternating threads executing on a single processor. A parallel version of the virtual machine may have multiple control machines performing the evaluation of the dataflow graphs, each controlling a small set of data machines. Communication between the individual clusters (each with a single control machine) is performed explicitly by the control machines.


next up previous index
Next: Dataflow Graph Components Up: Introduction Previous: Introduction   Index
magiceight-web@media.mit.edu