.
|
The
Configware Page
|
|
Reconfigurable
Computing (RC)
pages @ TU Kaiserslautern
.
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 .
What is Configware ?
Configware
goes into every application
Hardware
versus Software
Traditional procedural computing systems
consist
of processor hardware and software running on it. Programming means
downloading
machine code into the RAM memory of the
processor.
Machine code is generated by compilers accepting high level programming
languages. The RAM is the basis of the extreme flexibility of
procedural
processors: the secret of success of the
software
industry is RAM-based.
Morphware ("soft" Hardware)
Reconfigurable "hardware" is not really
hard
like classical hardware. It can be re-configured by structural code
(configuration
code) to be downloaded into the "hidden" RAM
of such Morphware. Such structural code is fundamentally different from
(classical) Software. Programming such reconfigurable platforms
needs Configware
instead. We may distinguish FPGAs
(fine-grained morphware) from reconfigurable Data Path Arrays (rDPAs:
coarse-grained morphware): configured pipe networks.
Configware versus Software
Configware versus Software means
Procedural
Programming versus Structural Programming (see fig. 1).
Procedural programming of
classical
processor hardware by Software means instruction-stream-based
Programming
in Time. I. e. the software code generated by a software
compiler from
a procedural
program is an instruction execution schedule.
Structural programming by Configware, however,
means data-stream-based
Programming
in Time and Space . A configware compiler consitst of two
layers generating two
different kinds of code (fig. 1): a mapper (doing
placement and routing) generating configware code from the configware
source "program", and, a scheduler generating flowware code which is a
data schedule. The configware code is applied before run time for
configuring the FPGA or other reconfigurable platform. During run
time there is no instruction
fetch. The flowware code is a data schedule to organize
data-streams running though the reconfigured platform.
NOTE:
For flowware the term "data stream"
is used as defined by systolic arrays - defining, at which time which
data item has to enter or exit which port of the rDPA. This data stream
features data-transport-triggered execution (in contrast to
instruction-stream-driven execution). For terminology also see here.
Fig.
1: Software Engineering vs. Configware Engineering
Morphware Benefit
Computing in space allows massive
parallelism, so that Morphware may be by orders of magnitude
more
powerful than computing on classical processors, i. e. by computing in
time. Compared to specialized hardwired ASIC hardware, morphware usage
is highly flexible by reconfigurability.
This
also means a fundamental change of the business model: special ASIC
hardware
functionality is determined at vendor's site, whereas Morphware
functionality
can be defined and even upgraded later at the customer's site. This
provides
shorter time to market, as well as product longevity.
Configware Industry Success Story
Currently a Configware
Industry is emerging as
a counterpart to Software Industry. (Because this new Industry
is
spinning off EDA industry, some people say "soft IP cores" instead of
Configware).
The application of both is RAM-based: that of Software
and
of Configware. Being RAM-based,
Configware
is heading toward a success story being
similar
as known from Software Industry.
Flowware versus
Software
The von Neumann machine paradigm does
not
support configware. Configware is supported by the data-stream-based 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.
.






©
Copyright 2001, 2005, T U
Kaiserslautern,
Kaiserslautern, Germany Webmaster