.
|
The
Kress-Kung
Machine Page
(Anti
Machine Page)
|
Reconfigurable
Computing pages @ TU Kaiserslautern
last updateJune 2001
.
configware
| morphware | flowware
| data.streams
| anti-machine
| KressArray
| Xputers
The Success of the
Software
Industry is RAM-based.
RAM-based, also the
Configware Industry will succeed .
Why a Duality of Machine Paradigms ?
Reconfigurable
Computing goes into every application [X]
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.

Figure 2
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
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
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.
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).
Kungelei*
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. 3. Data counter
behavior
programmed by flowware.
Fig. 4. The Kress-Kung
machine: data
counter(s) located within asM(s)

Figure 5. Hardwired Kress-Kung machines are programmed by flowware only.
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.

a)
b)
Figure 6. a) (von Neumann) CPUs are programmed by Software; b)
reconfigurable Kress-Kung machines are programmed
by two sources: resource set-up before run time by configware
code, run time behavior (data streams) by flowware.

Fig. 7. A simple processor execution example: computing in time needing
many memory cycles.
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. Fig.
10 summarizes some speed-up mechanisms obtaines ba time to space
migration.
.

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

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.
.
Impressum
.






©
Copyright 2001, University of Kaiserslautern,
Kaiserslautern, Germany Webmaster