go to Xputer pages

homepage | impressumsurvey | MM | last update 2001, 2012

The Anti-Machine Page


TU Kaiserslautern

 Karlsruhe Institute of Technology (KIT) homepageInstitut für Technik der Informationsverarbeitung (ITIV) des Karlsruher Institut für Technologie (KIT)

"Anti-Machine" (or Xputer) stands for the counterpart of the von Neumann paradigm. The anti-machine uses data counters instead of a programm counter. It is datastream-based and does not run any instruction streams.

Reconfigurable Computing pages @ TU Kaiserslautern

These Reconfigurable Computing pages are about a route to Reinvent Compting. This term is not new. See the keynote by Burton Smith (former Cray CTO).

Why Reinvent Compting? Pse, study Thomas Sterling's interview entitled: 'I Think We Will Never Reach Zettaflops'. See  HPCwire. Thomas Sterling takes us through some of the most critical developments in high performance computing, explaining why the transition to exascale is going to be very different than the ones in the past. I agree. However, I believe, we will reach Zetaflops --- by  Reconfigurable Computing.

[ anti-machine | configware | data-streams | flowware | home | impressum | kressarray | morphware | von Neumann Syndrome | wrongroadmap | xputer

Xputers (in German Language) | Auto-sequencing memory (asM) | Generic Address Generator (GAG) | Reinvent Computing ]



Computer Structures GroupThe world-wide largest and oldest conference on Reconfigurable Computing:

Computer Structures Groupthe Annual Symposium on Field-

Programmable Logic and Applications (FPL)

The Success of the Software Industry is RAM-based.
RAM-based, also the Configware Industry will succeed .

FPL map






Why a Generalization of Software Engineering ?

Panel discussions and keynote addresses are booming since the computing crisis caused by the von Neumann syndrome. Because of the coincidence of several disruptive developments we need to Reinvent Computing [1]. We cannot afford any more the CPU-centric, i. e. instruction-stream-centric Software-centric  Aristotelian world model of computing. We are forced to go toward heterogeneous computing systems based on a Kopernican World model of Computing (Figure A) [2]. We urgently need the Generalization of Software Eingineering (SE) into Program Engineering (PE) which interlaces two machine paradigms:

  • the instruction-stream-based traditional von Neumann paradigm, controlled by a program counter. Its programming source is called "Software", which is a subject of SE (software engineering). see fig. A. We need to reinvent software engineering [4].


  • the data-stream-based anti-machine-paradigm  [3] controlled by data counters instead of a program counter [3] Its programming source is called "Flowware" (FE, see fig. A), which programs data streams to run through reconfigurable hardware like FPGAs, which can be viewed as pipe networks, the generalization of systolic arrays. Sinks and sources of data streams are auto-sequencing memory blocks (asM).

By migration of applications from software to configware/flowware speed-up factors and power saving factors by up to several orders of magnitude can be obtained [8]. We also need a third area: Configware Engineering (CE). See  [5] - [7] and fig. A

  • Configware is the programming code for reconfigurable platforms like FPGAs. Flowware can be programmed only, when reconfiguration from configware is finished, so that the datapaths inside have been set up.

We have to set up Program Engineering (PE) education to replace Software Engineering (SE) Education because programming heterogeneous systems requires a mix of skills from all three side of the PE world (Fig. A), i. e. even also from Configware Engineering (CE). By migration of an application from SE to FE / CE, for instance, a different algorithm may be needed. So, for instance, the sequential Bubble Sort algorithms has to be converted into the Shuffle Sort algorithm to avoid accessing conflicts caused by parallelism [9].

Fig. A


Why a Duality of Machine Paradigms ?

Reconfigurable Computing goes into every application [X]


Search Google (for the number of hits see the line " Results")
Search Bing (for the number of hits see the line " Results")
FPGA | "Reconfigurable Computing" | FPGA & "oil and gas" | FPGA & "automotive" | FPGA & "medical" | FPGA & "chemical" | FPGA & "bio" | FPGA & "defense" | FPGA & "physics" | FPGA & "molecular" | FPGA & "supercomputing" | FPGA & "HPC" | FPGA & "high performance computing" | FPGA | "Reconfigurable Computing" | FPGA & "oil" | FPGA & "gas" | FPGA & "automotive" | FPGA & "medical" | FPGA & "chemical" | FPGA & "bio" | FPGA & "defense" | FPGA & "physics" | FPGA & "molecular" | FPGA & "supercomputing" | FPGA & "HPC" | FPGA & "high performance computing" |

The von Neumann machine paradigm

The von Neumann machine paradigm does not support configware. Configware is supported by the data-stream-basedKress-Kung machine paradigm (anti machine paradigm). Such data stream machines are programmed from 2 different sources: by flowware, which programs the data streams flowing from and to the machine's DPU (data path unit) or DPA (DPU array), and, by configware.The von Neumann paradigm describes the CPU such, that it encapsulates the DPU (DataPath Unit, or ALU) together with the program counter (figure 1).  The behaviour of the program counter is programmed by Software (figure 2).

Figure 1.  The von Neumann bottleneck

Figure 2. Software controls the Program counter

The compact instruction code of a CPU is tightly coupled with the structure of the DPU. This is the reason why the instruction-stream-based von Neumann paradigm does not support morphware. Whenever you tra to reconfigure the DPU, the architecture of the CPU gets destroyed. We need a second machine paradigm: the Kress-Kung Machine (Anti Machine).

The Anti-Machine (Kress-Kung Machine)

About the terminology: the Kress-Kung machine is a generalization (Kress) of the systolic array (first popularized by H. T. Kung). The von Neumann paradigm is instruction-stream-based, whereas the anti machine paradigm (Kress-Kung paradigm) is data-stream-based. The systolic array (Kung machine) could be used only for applications with strictly regular data-dependencies yielding pipe networks with only uniform linear pipes. The Kress-Kung array is the generalization [Rainer Kress] of the Kung array by a new synthesis methodology, replacing algebraic mapping methods by general optimization, such as for instance, by simulated annealing [Rainer Kress], so also any wild forms of non-regular pipe networks are supported, so that reconfigurability makes sense.

Fig. 3.  Data counter behavior programmed by flowware
    Fig. 4.  Anti-Machine: data counter(s) located within as M(s)

The Kress-Kung machine (anti machine) is data-stream-based, but not instruction-stream-based. The Kress-Kung machine (anti machine) has no CPU. If it is hardwired, it has a DPU instead, or even a DPA (DPU array). If it is reconfigurable, it has a rDPU or rDPA instead (fig. 4). Instead of a program counter the Kress-Kung machine (anti machine) has one or several data counters, which are located with the memory bank (fig. 4), but not with the (r)DPU nor (r)DPA. The run time bevavour of the  data counter(s) is programmed by Flowware (fig. 3).

Fig 5. Hardwired Anti Machines: programmed by flowware only.
          b)                                   a) 

Figure 6. Heterogeneous systems need all three: a) (von Neumann) CPUs are programmed by Software; b) reconfigurable anti machines are programmedby two sources: resource set-up before run time by configware code,  run time behavior (data streams) by flowware.


Apropos Kung: in the early days of the Kung array, three different scientist carrying the name "Kung" have been involved: (1.) H. T. Kung (at that time at Carnegie-Mellon, now at Harvard, USA) who has been visible first in this scene by popularizing systolic arrays, (2.) S.Y. Kung (Princeton) who has written an early book on systolic arrays, and, (3.) also a student with the name Kung (sorry, I forgot his first names and affiliation), having been co-author of some early papers on systolic arrays.

*) this word-play joke works only in Germany language


Fig. 7. A simple processor execution example: computing in time needing many memory cycles.


Fig. 8:  example from fig. 7, but by computing in space: no memory cycles needed.

Programming in Time versus Programming in Time and Space

Structural programming by Configware means Programming in Space. That's why Configware versus Software means Computing in Space and Time versus Computing in Time only.
Instruction-stream-based programming in time only (Software Engineering): one source needed: Softwar only (fig. 6 a).  However, programming morphware (Configware Engineering) means programming in time and space, where two program sources are needed (fig. 6 b): configware for the space domain configures the resources before run time.#, and, flowware for the time domain: for scheduling the data streams flowing during run time.

Speed-up by time to space migration

Figure 8 (Kress-Kung machine version) illustrates, why time to space migration removes the memory cycles needed for the instruction-stream-based CPU-executed version shown in fig. 7. Fig. 9 lists a few spee-up factors having been published. A more recent speed-up factor is 28000 for cracking encrypted code. Fig. 10 summarizes some speed-up mechanisms obtaines ba time to space migration.

Fig. 9. Some speed-up examples: time to space migration, for example from CPU to FPGA, or, to PACT platform













Fig. 10: Some mechanisms for speed-up by time to space migration.


[1]  Burton Smith (keynote): Reinventing Computing; LACSI Symposium 2006, Santa Fe, NM, USA, http://www.cct.lsu.edu/~estrabd/LACSI2006/Smith.pdf

[2] R. Hartenstein: The Grand Challenge To Reinvent Computing - A new World Model of Computing; CSBC_2010 - XXX Congresso da Sociedade Brasileira de Computação, July 20 - 23, 2010, Belo Horizonte, MG, Brasil  http://www.inf.pucminas.br/sbc2010/anais/pdf/semish/st03_02.pdf

[3]  R. Hartenstein, A. G. Hirschbiel, M. Weber: MOM-map-oriented machine-a partly custom-designed architecture compared to standard hardware; Proc. IEEE CompEuro, Hamburg, Germany, May 1989

[4] R. Hartenstein (keynote): Reconfigurable Computing: boosting Software Education for the Multicore Era; IV Southern Programmable Logic Conference (SPL 2010), Porto Galinhas Beach, Pernambuco, Brasil, 24-26 March 2010

[5] Joao Cardoso, Michael Huebner (Editors): ―Reconfigurable Computing‖ Springer Verlag 2010

[6] Voros, Nikolaos; Rosti, Alberto; Hübner, Michael (Eds.): "Dynamic System Reconfiguration in Heterogeneous Platforms - The MORPHEUS Approach"; Springer Verlag, 2009

[7] Ch. Bobda: Introduction to Reconfigurable Computing - Architectures, Algorithms, Applications; Springer, 2007

[8] R. Hartenstein: The von Neumann Syndrome; Stamatis Vassiliadis Memorial Symp., Sep 2007,  Delft, NL

[9] M. Duhl: Incremental Development and Description of a Shuffle Sort Array Circuit in hyperKARL from the Algorithm Representation of the Bubble Sort Algorithm; Projektarbeit, Informatik, Univ. Kaiserslautern 1988



Reconfigurable Computing

goes into every application


search Morphware with GoogleYahoo BING  search   Configware with GoogleYahooBING

fXputer Lab

search   Flowware with Google | Yahoo BING search Data Stream with GoogleYahooBING 

invited papers

search Kress Array with Google | YahooBING search  Anti Machine with Google | Yahoo | BING invited talks
Impressum search  Xputer with Google | Yahoo | BING  |  literature









 [ anti-machine | configware | data-streams | flowware | home | impressum | kressarray | morphware | von Neumann Syndrome | wrongroadmap | xputer | Xputers (in German Language) | Auto-sequencing memory (asM) | Generic Address Generator (GAG) | Reinvent Computing ]

Computer Structures Group
Department of Computer Science
University of Kaiserslautern
© Copyright 2001-2012, University of Kaiserslautern, Kaiserslautern, Germany Webmaster  last updateJune 2001 and 2012.