Anti machine

From Wikipedia, the free encyclopedia

In computer science the anti machine, the basic machine paradigm for reconfigurable computing, is the counterpart of the von Neumann machine. The anti machine is data-stream-driven and is sequenced by means of data counters, whereas the von Neumann machine, controlled by a program counter, is instruction-stream-driven. The anti machine usually has multiple data counters—in contrast to von Neumann, which can have only a single program counter. The data counters are located within Auto-sequencing memory blocks, which are programmed from Flowware sources (see reconfigurable computing). Instead of a CPU an anti machine has a one or several DPU(s), each without a program counter.

[edit] Auto-Sequence Memory

The Auto-sequencing memory (ASM) is an essential part of the non-von-Neumann Anti machine paradigm - in contrast to the von Neumann paradigm (see under von Neumann architecture), where the sequencing mechanism is the program counter, part of the instruction sequencer, which is co-located with the datapath. Traditionally this block, including the datapath unit (ALU, for instance) and the instruction sequencer, is called CPU. The ASM is the key ingredient of the paradigm shift from instruction-stream-based computing to the Reconfigurable Computing paradigm.

ASM use is a fundamental issue because in homogenous Reconfigurable Computing Systems, however, there is no instruction fetch at run time, since in a reconfigurable array (rDPU, or, implemented on FPGA), the datapath units (DPUs) are connected to form a pipe network, where execution is transport-triggered, e. g. upon arrival of data items coming along with the data streams driven through the array. For this reason instruction sequencers are not needed here. But a machine paradigm needs a sequencing mechanism. For the anti machine, which is the counterpart of the von Neumann paradigm, data counters are used instead of a program counter, since this paradigm is data-stream-driven (instead of being instruction-stream-driven).

An Auto-sequencing memory block (ASM block) is a RAM memory unit including a data address generator with the data counter (a data pointer) used as a data address register for implementation of a data stream. The Direct Memory Access (DMA) unit is an example of such an address generator for an ASM. Another example is the Generic Address Generator (GAG), a generalization of the DMA. In Reconfigurable Computing systems ASMs play an important role for massive speed-up by minimizing or avoiding memory cycle overhead for complex address computations.

[edit] Generic Address Generator

The Generic Address Generator (GAG) is a generalization of the direct memory access (DMA) method for the transfer of blocks of data or of data streams between memory and processing resource without the need to individually address each data item by a CPU instruction. The GAG is a reconfigurable address generator. The GAG is also a highly efficient implementation of the data sequencer for Auto-sequencing memory (ASM) blocks. At run time after having been configured for a particular addressing pattern, the GAG does not need any memory cycles (except for fetching or storing the data item), even for highly complex address computations. Depending on the application, using a GAG instead of the addressing features of a classical CPU can yield speed-up factors of one order of magnitude or more. Without needing any memory cycles for address computation, the GAG methodology supports, for instance with a 2-dimensional address space, a wide variety of generic address sequences like video scans, slanted, sheared, triangular, or rotated video scans, shuffle of butterfly addressing patterns, spiral- or zigzag-shaped address sequences and much more, and, can be used to optimize storage schemes for image processing and massively parallel computing.

The GAG is also an important ingredient of the Anti machine methodology, being the counterpart of the traditional von Neumann computing methodology. Note, that using Auto-sequencing memory is a fundamental issue distinguishing the data-stream-based Anti machine paradigm of Reconfigurable Computing from the instruction-stream-based von Neumann machine paradigm.

[edit] Data Counters

Data counters of the Anti machine are used, instead of a program counter by the basic model (non von Neumann) of Reconfigurable Computing systems. A computing machine paradigm needs a sequencing mechanism. The instruction-stream-driven von Neumann machine paradigm uses a program counter for sequencing the instructions, according to software programming sources. Because the Anti machine is, however, data-stream-driven, it uses data counters which are programmed from Flowware sources. According to the Anti machine model the data counters are parts of address generators like DMA or GAG units, located in auto-sequencing memory blocks for data. Instead of a CPU (including a program counter) the Anti machine uses DPUs (without program counters).


Languages