Auto-sequencing 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.

References

  • 2002 M. Herz et al.: Memory Organization for Data-Stream-based Reconfigurable Computing; Proc. IEEE ICECS 2002, Dubrovnik, Croatia, 2002