WO2005078599A1 - Rekonfigurierbares schaltwerk zur parallelen berechung beliebiger algorithmen - Google Patents

Rekonfigurierbares schaltwerk zur parallelen berechung beliebiger algorithmen Download PDF

Info

Publication number
WO2005078599A1
WO2005078599A1 PCT/EP2005/050500 EP2005050500W WO2005078599A1 WO 2005078599 A1 WO2005078599 A1 WO 2005078599A1 EP 2005050500 W EP2005050500 W EP 2005050500W WO 2005078599 A1 WO2005078599 A1 WO 2005078599A1
Authority
WO
WIPO (PCT)
Prior art keywords
stage
architecture according
architecture
implicants
switching
Prior art date
Application number
PCT/EP2005/050500
Other languages
English (en)
French (fr)
Inventor
Christian Wiegand
Christian Siemers
Original Assignee
Siemens Aktiengesellschaft
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to US10/588,860 priority Critical patent/US7352205B2/en
Priority to JP2006552599A priority patent/JP5027515B2/ja
Publication of WO2005078599A1 publication Critical patent/WO2005078599A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Definitions

  • the present invention relates to an architecture of a computer device for parallel calculation of algorithms with at least one switching mechanism.
  • Known computer models 5 In general, the so-called Von Neumann architecture, as can be seen from the basic illustration in FIG. 1, is regarded as a universal computer device. This means that with the help of a computer, on this architecture with the components Central Processing Unit [CPU, it contains the Control Unit (CU) and Arithmetical-Logical Unit (ALU)], memory (memory), input / output (Input / output) and bus system based, all algorithmic problems can be calculated in principle.
  • CPU Central Processing Unit
  • ALU Arithmetical-Logical Unit
  • memory memory
  • input / output Input / output
  • bus system bus system based
  • All algorithmic problems can be calculated in principle.
  • Such a computer is set to the respective problem by a program, ie a textual description of the algorithm, for example in the programming languages C, C ++ or Java. This program is translated into a machine-readable program by a translator (compiler), which is itself a program.
  • the program processing takes place in the computer, which is based on the Von Neumann architecture according to FIG. 1 and similar architectures (eg a Harvard or modified Harvard architecture), in principle in a sequential manner. 5 This is to be understood as the algorithm consisting of a set of machine instructions, processed by knowing the first instruction. The one loading The subsequent instruction is either the one in the memory at the next address (normal program flow), or the last instruction executed was a jump instruction that moves the current program status to another location.
  • the internal register, which stores the current program status is referred to as a 'Program Counter' (PC).
  • This principle of sequential processing means that exactly one instruction is currently being processed. It is called the Von Neumann principle. Modern architectures called RISC (Reduced Instruction Set Computing), superscalar or VLIW (Very Long Instruction Word) do more than one instruction at a time; however, the principle of sequentiality remains. Overall, this execution principle is referred to as 'time sequential' (computing in time), which indicates that the algorithm requires time.
  • RISC Reduced Instruction Set Computing
  • VLIW Very Long Instruction Word
  • PLDs Programmable Logic Devices
  • FPGAs Field-Programmable Gate Arrays
  • This architecture is also universal, ie can be used for any algorithmable problem.
  • the programming takes place in such a way that elementary computing units, usually defined at the bit level and therefore referred to as logic elements, are interconnected in a network. This form of programming is usually referred to as "configuration" * .
  • Cycle time often associated with an external clock, then depends on the complexity of the composition. pending. As a result, a clock rate that is lower than that of processors is used, but this is more than compensated for by the parallelism of the execution. This principle of execution is referred to as 'computing in space' * .
  • DEAs deterministic finite automata
  • DFAs deterministic finite automata
  • FSMs Finite State Machines
  • '1' for yj means that i k is taken unchanged, '0' means that i must be selected inverted (noted as / i k ), and '-' stands for don't care; that is, i k is not used. If only the values ⁇ 0, 1 ⁇ are used as attributes for yj, one speaks of the 'canonically disjunctive normal form' 1 .
  • RAM Random Addressable Read / Write Memory
  • Memory elements which are called CAM and directly support this behavior, are considered special building blocks and are by no means found frequently. For practical applications, however, the functionality of the CAM can be emulated using conventional RAM modules. For this purpose, for all data that would be stored directly in the CAM, the query does not give the value but the memory address, the corresponding addresses must be calculated beforehand and saved at the RAM address that corresponds to the date.
  • Cellular automata [CAs (cellular automata)] are a set of finite automata that are in a fixed field Topology are arranged and have further properties (see literature references [1] and [4]).
  • Each FSM clearly has neighbors with whom it can communicate.
  • CAs are considered universal computers like the previously discussed architectures; they also work completely in parallel. If a network of CAs is to be mapped in a hardware circuit, for example an ASIC or PLD, the number of connections increases linearly with the number of machines. Depending on the chosen topology, the connections themselves are only relatively short and fixed. The effort to communicate the CAs with each other is therefore relatively low. If the memory requirement required to map this switching function into a RAM is considered to be the complexity of a switching function, the maximum complexity of the switching function corresponding to the behavior of a cell increases exponentially with the number of input variables and linearly with the number of output variables of the function. The number of input variables here is the sum of all bits that are necessary to encode the states of all CAs connected to the cell, including the state of the cell itself. The maximum complexity of the cell is essentially determined by the number of connections fertilize any machine.
  • GCAs Global cellular automata
  • each individual machine As with conventional CAs, the complexity of the individual machines themselves or the underlying switching function essentially depends on the number of connections in each cell. If a GCA is to be mapped in a reconfigurable circuit (PLD), each individual cell, which can implement any switching functions, must allow the maximum possible complexity.
  • PLD reconfigurable circuit
  • each cell can also implement complex switching functions.
  • the effort for any communication all cells increases quadratically with the number of cells.
  • the granularity of the circuit is then determined by the number of cells or the bit width of the connections between the cells.
  • Such a circuit can do very well Realize GCAs that correspond to the specifications of the circuit in terms of number of FSMs and bit width.
  • Complex switching functions can also be implemented in each individual cell.
  • GCAs which do not match the specified granularity in the number and required bit width of the connections can only be mapped with difficulty on the circuit.
  • each cell must be able to process data from all other cells, including its own status. For this reason, each switching network must be able to implement switching functions that can contain all binary-coded states of all cells as input variables.
  • the number of output variables of the switching function only has to enable binary coding of all states of a single cell.
  • the disadvantage here is that the complexity of the switching function increases exponentially with the number of input variables.
  • Another disadvantage is the increasing polynomial effort for the communication of the cells with one another.
  • a (re) configurable architecture (PLD) that is suitable for the inclusion of a GCA must therefore be able to accommodate any complexity per FSM. This means that - if the FSMs are to be mapped directly into a cell of the PLD - the cells must take on any function. It is known that this results in an exponential growth in cell size.
  • the configurable network in the PLD must also be fully implemented, i.e. every cell output must be connectable to every other cell. The network grows square, so does the configuration of the network.
  • the object of the present invention is to design the architecture specified in introduction 1 in such a way that the aforementioned problems are at least alleviated.
  • the possibility is to be shown of being able to map the CGAs to be regarded as an excellent model, which can actually use the parallelism contained in the algorithm, onto programmable hardware such as a PLD.
  • a PLD architecture should be specified that enables the inclusion of any CGA.
  • the stated object is achieved with the measures specified in claim 1. Accordingly, to take environmentally with the features mentioned at least one individually configurable and / or reconfigurable switching mechanism having a stage input and a stage output architecture, wherein the output variable of at least some of the outputs at a time t n _ ⁇ the input variables to the associated Form inputs of the switching mechanism at time t n and means are provided for storing the output variables of the switching mechanism between times t n - ⁇ and t n . Not all inputs of (stored) outputs need to be occupied; but there can also be free inputs. In addition, there may also be outputs that are not coupled through, that is to say, for example, only represent an end result that is not reused.
  • t n _ ⁇ and t n successive designated evaluations of the switching function.
  • k is constant, for different applications it can be chosen differently.
  • the (re) configurable architecture is suitable for accommodating GCAs.
  • it consists of at least one individual configurable switching mechanism, the output variables of which form the input variables of the switching mechanism at the time t n - ⁇ at the time t n .
  • the outputs of the switching mechanism are stored in a memory, in particular in registers, so that a complex switching mechanism or an FSM is created.
  • the individual levels in the structure also represent derailleurs; only the configuration lies in individual switching networks of each level, whereby each level consists of a configurable switching network and storage elements.
  • switching networks are accordingly present as Boolean switching function units, the respective output of which depends on current values at the input of the architecture, while the at least one switching mechanism is to be understood as a Boolean switching function unit, the output of which from current values at the input to this and finally depends on many previous times.
  • Switchgear assemblies are therefore composed of switching networks and mostly clock-edge-controlled storage elements.
  • Advantageous refinements of the architecture according to the invention emerge from the claims dependent on claim 1.
  • the embodiment according to claim 1 can be combined with the features of one of the subclaims or preferably also those from a plurality of subclaims. Accordingly, the architecture can also be designed as follows: Register storage elements can be provided as storage means, these generally being clock-edge-controlled flip-flop elements.
  • the switching mechanism is preferably designed in three stages, the three stages being connected in series.
  • the second stage with memory elements arranged between the stage with the inputs and the stage with the outputs serves for processing data generated in the first stage and for forwarding processed data to the third stage.
  • a first stage can advantageously contain a plurality of memory elements connected in parallel, which can be addressed via input lines, with each memory element being supplied with a subset of the input variables bound in an associated, determined implicant, the second stage being followed by a second stage with memory elements which are identified by identifiers of the individual Implicants are to be addressed, and the second stage is followed by a third stage with means for disjunctively linking the output values of the individual implicants from the memory elements of the second stage.
  • the individual implicants can preferably be determined using minimization methods.
  • the first stage can be linked to one another via at least one crossbar switch.
  • CAMs and / or RAMs can advantageously be provided as memory elements. It is particularly advantageous to integrate at least one CGA.
  • Magnetoresistive components in particular of the TMR type, can be provided as memory elements. Corresponding tunnel magnetoresistive elements are known per se.
  • a memory element of the architecture is understood to mean any internal element that generally consists of a few transistors or comparable components as well as the actual elements that enable the memory function, e.g. the mentioned magnetoresistive elements (per storage unit) is composed.
  • the complexity of a switching function in the selected switching mechanism increases linearly with the number of output variables, but all the effort for communication between the cells is eliminated.
  • many individual machines with a few output variables can be mapped, or a few GCAs with many output variables or a mixture of different cells. This means that no granularity is specified, and communication between the FSMs is in principle completely possible.
  • a limit is set by the maximum complexity of the switching function that the switching network can accommodate.
  • the input variables of the switching function form the address bits and address a memory cell for every possible combination of input variables.
  • the content of this memory cell then corresponds to the value of the switching function, the data lines of the memory element form the output variables of the function.
  • the advantage of this concept lies in the simple structure, the circuit, the simple reconfigurability, the high integration density of memory elements and the fixed time period which the evaluation of the switching function requires.
  • the number of memory cells required that is to say the size of the memory element required, increases exponentially with the number of input variables. For this reason, only small switching functions can be mapped in this way.
  • a second option for mapping switching functions in a switching network is to arrange gates in a configurable manner in a 2- or multi-stage network. So that's it possible to map switching function with a minimal consumption of gates in switching networks.
  • the circuit theory provides cheap forms of representation of switching functions such as the Reed-Muller form, or powerful algorithms for logic minimization.
  • the advantage of this approach is the minimal consumption of gates and the possibility to use powerful methods and algorithms for minimization (cf. references [2] and [3]).
  • This method can be used to represent a fixed switching function, for example the implementation of a ROM.
  • the individual gates can be reconfigurably connected via hardware modules such as crossbar switches, however, the effort for reconfigurability increases exponentially with the number of input variables of the switching function.
  • the basic idea of the adopted embodiment is the development of a reconfigurable switching mechanism which represents as much logical functionality as possible in RAM modules in order to take advantage of the high integration density.
  • These RAM modules are to be reconfigurably connected to one another in a multi-stage circuit in order not to have to save complete switching functions.
  • the input variables of the switching function are represented by the input lines of the switching network.
  • the first stage the circuit consists of several memory elements connected in parallel, which are addressed by the input lines. A subset of the input lines and thus the input variables of the switching function are assigned to each storage element.
  • the implicants of a switching function (minimized zi from Eq. (2) or their string term representation) determined by minimization methods are stored in memory elements of the input stage. For this purpose, the assignment of the input variables in the implicant and a unique identifier for this implicant are stored in each storage element to which the input variables are assigned. Since only a part of the input variables are assigned to each block, only a partial implicant is saved.
  • no part of the implicant is stored in storage elements to which no variables bound in the implicant are assigned. If there is a bit combination on the input lines of the switching network, all memory elements which contain partial implicants matching the bit combination pass on their identifiers via the data lines to the second stage of the circuit.
  • the identifiers of the (partial) implicants address a memory in a second stage.
  • the bit patterns of the identifiers belonging to the respective implicant and the output values of the switching function are stored in this memory. If the bit pattern of identifiers supplied by the first stage corresponds to that of a stored implicant, this implicant is present on the input lines of the circuit.
  • the second stage of the circuit then forwards the output values of all implicants that are present on the input lines via the data lines to the third stage.
  • 3rd stage In the 3rd stage, the output values of the individual implicants are linked disjunctively (OR) and thus form the result of the switching function.
  • OR disjunctively
  • FIG. 1 shows the basic structure of a Von Neumann architecture according to the prior art
  • FIG. 2 shows the general structure of a PLD according to the prior art
  • FIG. 3 shows the basic structure of an FSM in the form of a Mealy machine according to the prior art
  • FIG. 4 shows an exemplary embodiment of a memory structure of an architecture according to the invention
  • FIG. 5 shows the mapping of spray terms to RAM, partial figure a) partial spray terms, partial figure b) the mapping to a tag RAM and partial figure c) the mapping to a conventional RAM
  • FIG. 6 shows the mapping of the result of stage 1 of an architecture according to the invention onto a RAM combination in stage 2
  • FIG. 7 shows a final architecture for the example
  • FIG. 8 shows an architecture according to the invention for a switching mechanism with a large switching network for accommodating a GCA and
  • FIG. 9 shows a reconfigurable architecture according to the invention for recording CGAs.
  • ne architecture according to the invention with three stages, as mentioned above, for a switching function with 12 input variables, 10 implicants and 8 output variables: Table 1 shows all the implicants (also referred to as 'minterme * ') for an example function. The representation of the string terms is chosen so that three groups of four are created.
  • a memory element which stores a partial implicant with the bit combination present returns the identifier of the associated implicant.
  • This storage element of the first stage is designed as a 3-value CAM in FIG. 4, i.e. the input vectors which are actually present as two-value information on the address bus are compared with stored three-value information. An identifier, also three-valued, stored for the hit is output as output.
  • identifiers together form the identifier of the implicit combination present at the input of the switching network.
  • This combination of implicants can include several implicants. For example, in the example shown, the implicants 3, 4 and 8 or the combination of the implicants 4, 5 and 8 can be present. In the first case, the bit combination 100001 is at the 2nd level, in the second case the combination 110001.
  • the identifier of the implicit combinations is recognized in the 2nd stage of the circuit and provides for everyone involved
  • This second stage now consists of a three-valued RAM, i.e. the address bus information of this stage is trivalent, but the stored data is two-valued.
  • a very special building block or a very special architecture can be used as the storage element for accommodating the partial implicants, here denoted by trivalent CAM according to FIG. 4.
  • trivalent CAM partial implicants
  • a fully associative cache is also possible as an insert for level 1.
  • the partial implicants can be saved as a so-called day, the cached date serves as an identifier of the recognized implicant.
  • a partially implicit contains unbound variables, which are expressed as Don 't-Care (DC) digits when compared with adjacent bit combinations, a tag must be created in the Tag RAM for all assignments of this implicant that fulfill the comparison with DC who- the.
  • DC Don 't-Care
  • the comparison with DC overlaps of partial implicants For example, the bit combination 0011 in the first partial implicant memory of the above example belongs to both the implicant 1 and the implicant 3. Not only combinations of implicants are possible, but also combinations of partial implicants.
  • each of these RAMs is addressed by part of the input lines of the switching network.
  • the same identifier is stored in the memory at the addresses whose bit combination corresponds to the same partial implicant with DC digits (each DC digit in a string term means that the number of applicable digits is increased by a factor of 2 for binary coding).
  • each DC digit in a string term means that the number of applicable digits is increased by a factor of 2 for binary coding).
  • the output width of the RAM used is larger than the bit width required to display the identifiers, the other bits can be used as a context value. This context can e.g. indicate an invalid assignment of the input variables of the switching function.
  • the memory of the second level must be divided: the bit combinations of the first level address a RAM of the second level. An index is stored there for each valid implicant combination, which in turn addresses a RAM, which in turn contains the output variables of the implicants involved. So the different addresses, which are characterized by the combination of implicants
  • Don 1 t-Care positions result in being mapped to the same index of the output values of the switching function.
  • FIG. 6 shows a corresponding mapping of the result of stage 1 to a RAM combination in stage 2.
  • the disjunctively linked output values of all implicants involved in the identified combination must be recorded in the 1st stage of a switching mechanism in the memory of the output values.
  • the output RAM must be able to store all possible function values of the switching function at this stage. Since the number of possible function values increases exponentially with the number of output variables of a switching function, several combination and output memories of the 2nd stage of the switching mechanism are used in parallel and their output combinations are linked disjunctively. This means that all the function values of a switching function can be generated.
  • all data lines of the implicit memories are connected to all address lines of the combination memories via a crossbar switch. This means that any data lines can address the combination RAMs. Unused data lines can be accessed via the Crossbar switch can be forwarded as context information.
  • the generated output value is bit-wise via the exclusive
  • the 3rd stage of the circuit thus consists of the disjunctive combination of the output combinations and the subsequent possible inversion of individual output bits.
  • the intention of the invention is to offer both a RAM-based architecture for implementing large switching networks and, to a certain extent as an application for accommodating a universal machine, this architecture for accommodating GCAs.
  • the memory space in the memory must grow exponentially with the number of inputs (and linearly with the number of outputs). In the case of the example above, this means that any function with 12 inputs and 12 outputs would have a memory requirement of 4096 * 12 bits corresponding to 6144 bytes. With 32 inputs and 8 outputs, this would already be 4 GB of storage capacity.
  • the proposed architecture of a multi-level network contains only 211.5 bytes of RAM, namely:
  • the first condition is that the number of different partial string terms that are present in a column can be mapped to the RAMs of the first level. This is automatically achieved by the fact that these RAMs record all combinations (because they emulate CAMs), only the input width of the circuit must be sufficient for the application.
  • the second condition follows here: The number of different partial string term combinations that are contained in the application after minimization must be codable. This means that a number of storage locations must be available. For efficiency assessment, let m be the input width of the switching network. This would mean that 2m memory cells would be required to display the complete function.
  • Condition 3 means that the starting width must be selected appropriately.
  • GCAs to architecture
  • storage elements must be introduced which store the progress in the calculation in a clock-controlled manner. This is because GCAs are defined as an array of FSMs, and these are usually synchronized. Here it is assumed that a global clock is used for synchronization. All implementations of non-global, in particular not interrelated clocks would lead to significant problems, but are rarely found in practice.
  • FIG. 8 shows a further example of a configurable architecture of the proposed type, now equipped with registers for storing states.
  • another crossbar switch is inserted, which, among other things, at this point serves to provide input and output interfaces for the computer.
  • FIG. 9 shows the basic structure of a reconfigurable architecture according to the invention, as is suitable for the reception of CGAs.
  • This structure represents a generalization of the structure according to FIG. 8.
  • RAM levels 1 and 2 are illustrated by dashed lines.

Abstract

Die konfigurierbare Architektur einer Rechnereinrichtung weist wenigstens ein einzeln konfigurierbares und/oder rekonfigurierbares Schaltwerk auf, dessen Ausgangsvariablen zu einem Zeitpunkt tn-1 die Eingangsvariablen des Schaltwerks zu einem Zeitpunkt tn bilden. Es sind Mittel zu einem taktge- steuerten Speichern der Ausgangsvariablen des Schaltwerks zwischen den Zeitpunkten tn-1 und tn vorgesehen.

Description

Beschreibung
REKONFIGURIERBARES SCHALTWERK ZUR PARALLELEN BERECHUNG BELIEBIGER ALGORITHMEN 5 1 Einleitung
Die vorliegende Erfindung bezieht sich auf eine Architektur einer Rechnereinrichtung zur parallelen Berechnung von Algo- 0 rithmen mit wenigstens einem Schaltwerk.
2 Stand der Technik
2.1 Bekannte Rechnermodelle 5 Allgemein wird die sogenannte ,Von-Neumann-Architektur wie sie aus der prinzipiellen Darstellung der Figur 1 hervorgeht, als Universalrechnereinrichtung angesehen. Darunter ist zu verstehen, dass mithilfe eines Rechners, auf dieser Architek- 0 tur mit den Komponenten Central Processing Unit [CPU, darin enthalten Control Unit (CU) und Arithmetical-Logical Unit (ALU)], Memory (Speicher), Input/Output (Ein-/Ausgabe) und Bussystem basierend, alle algorithmierbaren Probleme prinzipiell berechnet werden können. Die Einstellung eines solchen5 Rechners auf das jeweilige Problem erfolgt durch ein Programm, d.h., eine textuelle Beschreibung des Algorithmus z.B. in den Programmiersprachen C, C++ oder Java. Dieses Programm wird durch einen Übersetzer (Compiler) , selbst ein Programm darstellend, in ein Maschinen-lesbares Programm übersetzt. 0 Die Programmbearbeitung erfolgt in den Rechner, die auf der Von-Neumann-Architektur nach Figur 1 und ähnlichen Architekturen (z.B. einer Harvard- oder modifizierten Harvard- Architektur) basieren, prinzipiell auf sequenzielle Weise.5 Dies ist so zu verstehen, dass der Algorithmus, bestehend aus einer Menge von Maschinen-Instruktionen, dadurch bearbeitet wird, dass die erste Instruktion bekannt ist. Die einem Be- fehl nachfolgende Instruktion ist entweder die im Speicher an der nächsten Adresse stehende (normaler Programmfluss) , oder die letzte ausgeführte Instruktion war ein Sprungbefehl, der den aktuellen Programmstand an eine andere Stelle versetzt. Das interne Register, das den aktuellen Programmstand speichert, wird mit , Program Counter ' (PC) bezeichnet.
Dieses Prinzip der sequenziellen Bearbeitung bedeutet, dass sich zu einem Zeitpunkt genau eine Instruktion in der Bear- beitung befindet. Es wird als Von-Neumann-Prinzip bezeichnet. Moderne Architekturen, die als RISC (Reduced Instruction-Set Computing) , superskalar oder VLIW (Very Long Instruction Word) bezeichnet werden, führen zwar zu einem Zeitpunkt mehr als eine Instruktion aus; das Prinzip der Sequenzialität bleibt jedoch erhalten. Insgesamt wird dieses Ausführungsprinzip als ' zeit-sequenziell' (Computing in Time) bezeichnet, was andeutet, dass der Algorithmus Zeit benötigt.
Ein gänzlich anderes Prinzip der Programmbearbeitung ist in programmierbaren Logikbausteinen [PLDs (Programmable Logic Devices) , entsprechend Figur 2] bzw. deren bekanntester Implementierung, den FPGAs (Field-Programmable Gate Arrays) , vorgesehen. Auch diese Architektur ist universell, d.h. für jedes algorithmierbare Problem einsetzbar. Die Programmierung erfolgt hierbei so, dass elementare Recheneinheiten, meist auf Bit-Ebene definiert und daher als Logikelemente bezeichnet, in einem Netzwerk verschaltet werden. Diese Form der Programmierung wird meist als , Konfiguration "* bezeichnet.
Die Programmbearbeitung in einem PLD erfolgt im Unterschied zum Von-Neumann-Prinzip mit maximaler Parallelität. Die gesamte Konfiguration eines Bausteins kann als eine einzige Instruktion - im Gegensatz zum Von-Neumann-Prinzip allerdings nicht fest definiert, sondern zusammengesetzt - aufgefasst werden, die in einem Zyklus komplett bearbeitet wird. Die
Zykluszeit, häufig mit einem externen Takt in Verbindung gebracht, ist dann von der Komplexität der Zusammensetzung ab- hängig. Hierdurch kommt ein im Vergleich zu Prozessoren niedrigerer Takt zum Einsatz, der aber durch die Parallelität der Ausführung mehr als ausgeglichen wird. Dieses Prinzip der Ausführung wird als , Computing in Space'* bezeichnet.
2.2 Deterministische endliche Automaten
Eines der wesentlichen Modelle zur Algorithmierung von Prob- lernen sind deterministische endliche Automaten [DEAs, auch DFAs (deterministic finite automata) ] . Diese werden in der Technik auch als ,Finite State Machines , (FSMs gemäß der prinzipiellen Darstellung nach Figur 3) bezeichnet. Dieses Modell betrachtet das Problem als eine Folge von Zuständen mit definierten Übergangsfunktionen (Next State Decoder) zwischen diesen, abhängig von den Eingangswerten. Obwohl das Modell des DEA theoretisch nicht so mächtig ist wie das des Von-Neumann-Modells, können in der Praxis beliebige Probleme, ggf. mit Zusatz im Modell, gelöst werden.
Das größte Problem dieser DEAs besteht darin, dass ihre Funktionen mit der Anzahl der Zustände in exponentieller Weise anwachsen, den Flächenbedarf an Halbleitermaterial (insbesondere Silizium) betreffend. Aus diesem Grund wählt man gerne Modelle, die aus vielen, miteinander kommunizierenden Automaten bestehen. Ein derartiges Rechnermodell wird als , komplexer, kooperierender Automat"' bezeichnet.
2.3 Darstellung Boolescher Funktionen
Eine Boolesche Funktion oder Schaltfunktion ist eine Abbildung f : Bm → Bπ, mit B={0,1}, die in der Form f = (fi, f2, ...fn), also als Vektor von Funktionen fk: Bm — > B dargestellt werden kann. Im Folgenden wird daher nur von Funktionen fk mit einem Ausgangswert ausgegangen; diese werden allgemein als f bezeichnet . Es ist weiterhin bekannt, dass f in Form einer disjunktiven oder konjunktiven Normalform darstellbar ist. Für die disjunktive Normalform bedeutet dies, dass f = zl + z2 ... + zk, mit k = 1, 2, ..., 2m und '+' als 0R- Operator (logisches ODER) (1) und zi = yl * y2 * ... yn mit i = 1, 2, ..., k mit '*' als AND- Operator (logisches UND) (2) gilt. Es werden natürlich nur solche zi verwendet, für die die zu beschreibende Funktion den Wert TRUE oder ' 1 ' erhält. Die Bezeichnung yj bestimmt dabei, wie ein Inputbit ik aus dem Inputvektor x = (ii, i2, ...ik) werden soll. Während für die Inputbits nur Werte aus der Menge {0, 1} zugelassen sind, muss dies für yj geändert werden: Diesen Werten wird eines aus den drei Attributen {0, 1, -} zugewiesen. Das Attribut
' 1' für yj bedeutet dabei, dass ik unverändert genommen wird, '0' bedeutet, dass i invertiert gewählt werden muss (notiert als /ik) , und '-' steht für don't care; d.h., ik wird nicht verwendet. Werden für yj nur die Werte {0, 1} als Attribute verwendet, spricht man von der , kanonisch disjunktiven Normalform'1.
Diese Darstellung ist deswegen bedeutend, weil dadurch bei bekannter Reihenfolge der Inputbits die Teilausdrücke zi ge- maß vorstehender Gleichung (2), auch als , Terme ' bezeichnet, als sogenannte , Stringterme "* darstellbar sind: Bei einer Reihenfolge il, i2, i3 bedeutet "111", dass zl = il * i2 * i3 ist, "0-1" steht für z2 = /il * i3 usw.
Bei drei Inputbits ist die Menge aller möglichen Inputvekto- ren v = {000,001,010,011,100,101,110,111}. Falls beispielhaft die Funktion f nur an den Eingangsvektor {001,011,111} den Wert TRUE erhält, brauchen oder dürfen auch nur diese angegeben werden; in Form von Stringterms kann dies durch 111 und 0-1 erfolgen, dies charakterisiert vollständig die gegebene Funktion und ist isomorph zur disjunktiven Normalform f = /il * i3 + il * i2 * i3 2.4 Content-Addressable Memory (CAM)
Lese-/Schreib-Speicherelemente [RAM (Random Addressable Read/Write Memory) ] werden üblicherweise zur Speicherung von Daten und Programmen genutzt. In diesem Fall liegt eine Adresse an dem Adressbus an, und nach Ablauf einer Bausteinspezifischen Wartezeit ist beim Lesevorgang das gespeicherte Datum am Datenbus anliegend und kann weiter verwendet werden. Der Schreibvorgang ist in entsprechender Weise arbeitend.
Aus Sicht der Instanz, die die Daten erhalten möchte (z.B. ein Prozessor), ist die Adresse bekannt, und der gespeicherte Inhalt ist vorher unbekannt. Es existieren jedoch Anwendun- gen, bei der das Verhältnis genau umgekehrt ist: Der gespeicherte Inhalt ist bekannt, und das Interesse ist, an welcher Adresse dieser Inhalt gespeichert ist, wobei die Antwort auch 'nicht vorhanden' sein kann. Speicherelemente, die diese Art der Abfrage unterstützen, werden als , Content-Addressable Me- ories" [CAMs (Inhalts-adressierbare Speicherelemente)] bezeichnet.
Speicherelemente, die als CAM bezeichnet werden und dieses Verhalten direkt unterstützen, gelten als spezielle Bausteine und sind keineswegs häufig anzufinden. Für praktische Anwendungen kann man jedoch die Funktionalität des CAM durch übliche RAM-Bausteine emulieren. Hierzu müssen für alle Daten, die im CAM direkt gespeichert werden würden, bei einer Abfrage jedoch nicht der Wert, sondern die Speicheradresse erge- ben, die korrespondierenden Adressen vorher berechnet werden und an der RAM-Adresse, die dem Datum entspricht, gespeichert werden .
2.5 Zellulare Automaten
Zellulare Automaten [CAs (cellular automata) ] sind eine Menge von endliche Automaten, die in einem Feld mit feststehender Topologie angeordnet sind und weitere Eigenschaften besitzen (vgl. Literaturzitate [1] und [4]). Diese Menge von FSMs ist als n-dimensionales Array (meist gilt n = 2 ) angeordnet, wobei jedem Platz feste Koordinaten gegeben sind. Jede FSM be- sitzt eindeutig Nachbarn, mit denen kommuniziert werden kann. Im Fall n = 2 werden meist die 4 umliegenden FSMs (in den 'Himmelsrichtungen' N, E, W, S, daher auch als , NEWS- Nachbarschaft , bezeichnet) als Nachbarn angesehen.
Die Kommunikation mit den Nachbarn erfolgt so, dass die Zustände der direkten Nachbarn lesbar und damit auswertbar sind. Mit jedem Zeitschritt wird der Zustand aller Zellen parallel berechnet. Sollen Daten aus weiter entfernten Zellen für die Berechnung eines neuen Zustandes genutzt werden, so müssen diese Daten schrittweise von Zelle zu Zelle transportiert werden. Damit sind klassische zellulare Automaten gut zur Berechnung von Problemstellungen mit hoher Lokalität der Daten geeignet .
CAs gelten als universelle Rechner wie die vorher diskutierten Architekturen; sie arbeiten zudem vollkommen parallel. Soll ein Netz von CAs in eine Hardwareschaltung, z.B. einen ASIC oder auch PLD, abgebildet werden, so steigt die Anzahl der Verbindungen linear mit der Zahl der Automaten an. Die Verbindungen selbst sind je nach gewählter Topologie nur relativ kurz und fest verlegt. Der Aufwand zur Kommunikation der CAs untereinander ist also relativ gering. Wird als Komplexität einer Schaltfunktion der Speicherbedarf angesehen, der nötig ist, diese Schaltfunktion in ein RAM abzubilden, so steigt die maximale Komplexität der dem Verhalten einer Zelle entsprechenden Schaltfunktion exponentiell mit der Anzahl der Eingangsvariablen und linear mit der Anzahl der Ausgangsvariablen der Funktion an. Die Zahl der Eingangsvariablen ist hier die Summe aller Bits, die nötig sind, die Zustände aller mit der Zelle verbundenen CAs einschließlich des Zustandes der Zelle selbst zu codieren. Damit ist die maximale Komplexität der Zelle im Wesentlichen durch die Anzahl der Verbin- düngen eines jeden Automaten beschränkt.
Das Konzept der globalen zellularen Automaten [GCAs (global cellular automata) ] überwindet die Einschränkungen der CAs, indem Verbindungen einer Zelle nicht nur zu ihren nächsten Nachbarn, sondern zu beliebigen Zellen im gesamten Feld erlaubt werden. Damit besitzt ein GCA keine feststehende Topologie mehr sondern ermöglicht, eine an die Problemstellung angepasste und gegebenenfalls zur Laufzeit der Berechnung so- gar wechselnde Topologie zu verwenden. Dies kann zu einer erheblichen Beschleunigung in der Programmbearbeitung führen. Die Anzahl der Verbindungen eines einzelnen Automaten ist gegebenenfalls durch eine obere Grenze festgelegt. Ist nur eine einzelne Verbindung erlaubt, so spricht man von einarmigen-, im allgemeinen Fall von λ-armigen GCAs.
Als Konsequenz steigt bei der Realisierung eines Feldes von GCAs der erforderliche Aufwand für die Kommunikation der Zellen untereinander mit der Zahl der Zellen stark an. Die An- zahl der möglichen Verbindungen zwischen den einzelnen Automaten steigt quadratisch mit deren Anzahl.
Die Komplexität der einzelnen Automaten selbst bzw. der zugrunde liegenden Schaltfunktion hängt wie bei den konventi- onellen CAs im Wesentlichen von der Anzahl der Verbindungen einer jeden Zelle ab. Soll ein GCA in eine rekonfigurierbare Schaltung (PLD) abgebildet werden, so muss jede einzelne Zelle, die ja beliebige Schaltfunktionen realisieren kann, die maximal mögliche Komplexität ermöglichen.
Werden die einzelnen Automaten auf jeweils ein Rechenwerk mit lokalem Speicher abgebildet, so kann jede Zelle auch komplexe Schaltfunktionen realisieren. Der Aufwand für eine beliebige Kommunikation alle Zellen steigt quadratisch mit der Anzahl der Zellen. Die Granularitat der Schaltung wird dann bestimmt durch die Anzahl der Zellen bzw. die Bitbreite der Verbindungen zwischen den Zellen. Eine solche Schaltung kann sehr gut GCAs realisieren, die in Anzahl der FSMs und Bitbreite den Vorgaben der Schaltung entsprechen. Es können auch komplexe Schaltfunktionen in jeder einzelnen Zelle realisiert werden. Nachteilig wirkt sich jedoch aus, dass GCAs, die in Anzahl und benötigter Bitbreite der Verbindungen nicht mit der vorgegebenen Körnigkeit übereinstimmen, nur schwierig auf die Schaltung abgebildet werden können.
Werden die einzelnen Zellen als Schaltnetz ausgeführt, so muss jede Zelle in der Lage sein, Daten von allen anderen Zellen einschließlich des eigenen Zustands zu verarbeiten. Aus diesem Grund muss jedes Schaltnetz Schaltfunktionen realisieren können, die alle binärcodierten Zustände aller Zellen als Eingabevariablen enthalten können. Die Anzahl der Ausgabevariablen der Schaltfunktion muss es lediglich ermöglichen, alle Zustände einer einzelnen Zelle binär zu codieren. Nachteilig ist hier, dass die Komplexität der Schaltfunktion exponentiell mit der Anzahl der Eingabevariablen ansteigt. Ebenfalls nachteilig ist der polynomial ansteigende Aufwand für die Kommunikation der Zellen untereinander.
Eine (re-) konfigurierbare Architektur (PLD), die zur Aufnahme eines GCA geeignet ist, muss also pro FSM eine beliebige Komplexität aufnehmen können. Dies bedeutet, dass - falls die FSMs direkt in eine Zelle des PLDs abgebildet werden sollen - die Zellen jede beliebige Funktion aufnehmen müssen. Es ist bekannt, dass sich hieraus ein exponentielles Wachstum der Zellengröße ergibt. Das konfigurierbare Netzwerk in dem PLD muss zudem vollständig ausgeführt sein, d.h., jeder Zellen- ausgang muss mit jeder anderen Zelle verbindbar sein. Das Netzwerk wächst damit quadratisch an, die Konfiguration des Netzwerks ebenfalls.
Derzeit sind keine PLD-Architekturen am Markt oder bekannt, die beide Forderungen erfüllen: Große Zellen mit einem vollständigen Designraum existieren nicht, es gibt nur kleine Zellen mit vollständigem Designraum [sogenannte , Look-Up- Table-Struktur Λ (LUT) ] oder große Zellen mit unvollständigen Möglichkeiten zur Abbildung beliebiger Funktionen. Eine vollständige Verbindbarkeit aller Zellen ist nur bei großen Zellen möglich. Die Abbildung von GCAs auf existierende PLDs ist damit schwierig, vielfach sogar unmöglich.
3 Aufgabenstellung
Aufgabe der vorliegenden Erfindung ist es, die in der Einlei- tung 1 angegebene Architektur dahingehend auszugestalten, dass die vorgenannten Probleme zumindest gemindert sind. Dabei soll insbesondere die Möglichkeit aufgezeigt werden, die als ausgezeichnetes Modell zu erachtenden CGAs, die die im Algorithmus steckende Parallelität tatsächlich nutzen können, auf eine programmierbare Hardware wie ein PLD abbilden zu können. D.h., es soll eine PLD-Architektur angegeben werden, die eine Aufnahme eines beliebigen CGA ermöglicht.
4 Lösungsansatz
Die genannte Aufgabe wird erfindungsgemäß mit den in Anspruch 1 angegebenen Maßnahmen gelöst. Demgemäß soll die Architektur mit den eingangs genannten Merkmalen wenigstens ein einzeln konfigurierbares und/oder rekonfigurierbares Schaltwerk um- fassen, das eine Stufe mit Eingängen und eine Stufe mit Ausgängen aufweist, wobei Ausgangsvariable zumindest einiger der Ausgänge zu einem Zeitpunkt tn_ι die Eingangsvariablen an zugeordneten Eingängen des Schaltwerks zum Zeitpunkt tn bilden und wobei Mittel zum Speichern der Ausgangsvariablen des Schaltwerks zwischen den Zeitpunkten tn-ι und tn vorgesehen sind. Dabei brauchen nicht alle Eingänge von (gespeicherten) Ausgängen belegt zu sein; sondern es können auch freie Eingänge existieren. Außerdem können auch Ausgänge vorhanden sein, die nicht durchgekoppelt sind, also beispielsweise nur ein Endergebnis darstellen, das nicht wieder verwendet wird.
Mit den Zeitpunkten tn_ι und tn sind direkt aufeinander fol- gende Auswertungen der Schaltfunktion bezeichnet. In einer technisch günstigen Realisierung können diese Zeitpunkte von einem eingeprägten Takt mit einer Taktdauer T abgeleitet werden, so dass tn - tn-ι_ = k-T mit k=l,2,3,... gilt. Für eine gegebene Anwendung ist hierbei k konstant, für verschiedene Anwendungen kann es unterschiedlich gewählt werden.
Nachdem feststeht, dass die Komplexität der Schaltfunktion exponentiell mit der Anzahl der Eingabevariablen und linear mit der Anzahl der Ausgabevariablen bzw. der Anzahl der Zellen im Feld der abzubildenden GCAs steigt und der Aufwand für die Kommunikation der GCAs untereinander zumindest quadratisch mit der Anzahl der Zellen ansteigt, ist die erfindungsgemäße (re-) konfigurierbare Architektur zur Aufnahme von GCAs geeignet. Hierzu besteht sie aus wenigstens einem einzelnen konfigurierbaren Schaltwerk, dessen Ausgangsvariablen zum Zeitpunkt tn-ι die Eingangsvariablen des Schaltwerks zum Zeitpunkt tn bilden. Zwischen den Zeitpunkten tn-ι und tn werden die Ausgänge des Schaltwerks in einem Speicher wie insbeson- dere in Registern gespeichert, so dass ein komplexes Schaltwerk bzw. eine FSM entsteht. Dabei stellen die einzelnen Stufen in der Gliederung ebenfalls Schaltwerke dar; nur die Konfiguration liegt in einzelnen Schaltnetzen einer jeden Stufe, wobei jede Stufe aus einem konfigurierbaren Schaltnetz und Speicherelementen besteht.
Bei der erfindungsgemäßen Architektur sind demnach Schaltnetze als Boolesche Schaltfunktionseinheiten vorhanden, deren- jeweiliger Ausgang von aktuellen Werten am Eingang der Archi- tektur abhängt, während unter dem wenigstens einen Schaltwerk eine Boolesche Schaltfunktionseinheit zu verstehen ist, deren Ausgang von aktuellen Werten am Eingang zu dieser und endlich vielen vorangegangenen Zeitpunkten abhängt . Schaltwerke werden demnach aus Schaltnetzen und zumeist taktflankengesteuer- ten Speicherelementen zusammengesetzt. Vorteilhafte Ausgestaltungen der erfindungsgemäßen Architektur gehen aus den von Anspruch 1 abhängigen Ansprüchen hervor. Dabei kann die Ausführungsform nach Anspruch 1 mit den Merkmalen eines der Unteransprüche oder vorzugsweise auch de- nen aus mehreren Unteransprüchen kombiniert werden. Demgemäß kann die Architektur noch folgendermaßen ausgebildet sein: Als Speichermittel können Registerspeicherelemente vorgesehen sein, wobei es sich hier im Allgemeinen um taktflan- kengesteuerte Flipflop-Elemente handelt . - Bevorzugt ist das Schaltwerk dreistufig ausgebildet, wobei die drei Stufen hintereinander geschaltet sind. Dabei dient die zwischen der Stufe mit den Eingängen und der Stufe mit den Ausgängen angeordnete zweite Stufe mit Speicherelementen zur Verarbeitung von in der ersten Stufe er- zeugten Daten und zur Weiterleitung von verarbeiteten Daten an die dritte Stufe. Dabei kann vorteilhaft eine erste Stufe mehrere parallelgeschaltete Speicherelemente enthalten, die über Eingabeleitungen adressierbar sind, wobei jedem Speicherelement eine Teilmenge der in einem zugehörenden, ermittelten Implikanten gebundenen Eingabevariablen zuzuführen sind, der ersten Stufe eine zweite Stufe mit Speicherelementen nachgeordnet sein, die durch Kennungen der einzelnen Implikanten zu adressieren sind, und der zweiten Stufe eine dritte Stufe mit Mitteln zu einer disjunktiven Verknüpfung der Ausgabewerte der einzelnen Implikanten aus den Speicherelementen der zweiten Stufe nachgeordnet sein. - Dabei lassen sich die einzelnen Implikanten bevorzugt durch Minimierungsverfahren ermitteln. Ferner kann die erste Stufe mit der zweiten Stufe über wenigstens einen Crossbar-Switch miteinander verknüpft sein. Als Speicherelemente können vorteilhaft CAMs und/oder RAMs vorgesehen sein. Besonders vorteilhaft ist wenigstens ein CGA zu integrieren. Als Speicherelemente können magnetoresistive Bauelemente, insbesondere vom TMR-Typ, vorgesehen sein. Entsprechende tunnelmagnetoresistive Elemente sind an sich bekannt.
Dabei sei unter einem Speicherelement der Architektur jedes interne Element verstanden, das im Allgemeinen aus wenigen Transistoren oder vergleichbaren Bausteinen sowie aus den eigentlichen, die Speicherfunktion ermöglichenden Elementen wie z.B. den erwähnten magnetoresistiven Elementen (pro Spei- chereinheit) zusammengesetzt ist.
Den vorstehend angegebenen weiteren Ausgestaltungen der erfindungsgemäßen Architektur liegen insbesondere die nachfolgend dargelegten Überlegungen zu Grunde:
Die Komplexität einer Schaltfunktion in dem gewählten Schaltwerk steigt zwar linear mit der Anzahl der Ausgabevariablen an, jedoch entfällt sämtlicher Aufwand für die Kommunikation der Zellen untereinander. In eine solche Schaltfunktion kön- nen viele einzelne Automaten mit wenigen Ausgabevariablen abgebildet werden, oder wenige GCAs mit vielen Ausgabevariablen oder auch eine Mischung verschiedener Zellen. Damit ist keine Granularitat vorgegeben, und die Kommunikation der FSMs untereinander ist prinzipiell vollständig möglich. Eine Grenze ist jedoch durch die maximale Komplexität der Schaltfunktion gesetzt, die das Schaltnetz aufnehmen kann.
Die Benutzung eines' Schaltwerks mit einer großen Anzahl von Eingängen - dies wird im allgemeinen Fall entstehen, wenn ein GCA mit einer Anzahl von FSMs abgebildet wird - bedeutet, dass wiederum eine Art exponentielle Abhängigkeit des Flächenbedarfs von der Anzahl der Eingänge entstehen kann. Als obere Grenze gilt ein Wachstum der Fläche mit exp (Anzahl Zustände) , wenn jeder Zustand in einem Bit codiert wird; im allgemeinen Fall wird der Flächenbedarf geringer sein. Da eine universelle Schaltung jedoch den Maximalfall beinhalten muss, wäre das exponentielle Wachstumsgesetz anzuwenden. Hier ist es als besonders vorteilhaft anzusehen, die Schaltung, die das Schaltwerk aufnimmt, in drei spezielle Abschnitte/Stufen einzuteilen. Dazu wird nachstehend eine (re) konfigurierbare Schaltung dargestellt, die Schaltfunktionen mit einer großen Zahl von Eingangsvariablen und einer großen Zahl von Ausgangsvariablen als Schaltwerk realisieren kann.
Um ein rekonfigurierbares Schaltwerk für Schaltfunktionen zu entwerfen, werden als Ausgangsüberlegung zwei Möglichkeiten betrachtet :
Zum einen ist es möglich, eine Schaltfunktion komplett in einem RAM-Speicher abzulegen. Die Eingabevariablen der Schaltfunktion bilden die Adressbits und adressieren für jede mögliche Kombination von Eingabevariablen eine Speicherzelle. Der Inhalt dieser Speicherzelle entspricht dann dem Wert der Schaltfunktion, die Datenleitungen des Speicherelements bilden die Ausgabevariablen der Funktion. Der Vorteil dieses Konzepts liegt im einfachen Aufbau, der Schaltung, der einfachen Rekonfigurierbarkeit, der hohen Integrationsdichte von Speicherelementen und der festen Zeitdauer, die die Auswertung der Schaltfunktion benötigt. Allerdings steigt die Anzahl der benötigten Speicherzellen, also die Größe des benötigten Speicherelementes exponentiell mit der Anzahl der Eingabevariablen an. Aus diesem Grunde können nur kleine Schaltfunkti- onen auf diese Weise abgebildet werden.
Dies ist Stand der Technik in PLDs und wird als Look-Up- Table-Struktur bei FPGAs eingesetzt, meist mit 4 binär- wertigen Eingangsvariablen und 1 binärwertigen Ausgang. Eine zweite Möglichkeit, Schaltfunktionen in ein Schaltnetz abzubilden, besteht darin, Gatter in einem 2- oder mehrstufigen Netz konfigurierbar anzuordnen. Damit ist es möglich, Schaltfunktion mit einem minimalen Verbrauch von Gattern in Schaltnetze abzubilden. Die Schaltkreistheorie stellt hier günstige Darstellungsformen von Schaltfunktionen wie z.B. die Reed-Muller-Form, oder auch leistungs- fähige Algorithmen zur Logikminimierung bereit. Der Vorteil dieses Ansatzes besteht im minimalen Verbrauch von Gattern und in der Möglichkeit, leistungsfähige Verfahren und Algorithmen zur Minimierung zu nutzen (vgl. Literaturzitate [2] und [3]). Dieses Verfahren kann gut zur Darstellung einer festen Schaltfunktion z.B. der Realisierung eines ROMs genutzt werden. Über Hardwarebausteine wie z.B. Crossbar-Switches können die einzelnen Gatter rekonfigurierbar verschaltet werden, jedoch steigt hier der Aufwand für die Rekonfigurierbarkeit exponentiell mit der Anzahl der Eingabevariablen der Schaltfunktion an.
5 Erläuterung der Erfindung anhand eines konkreten Ausführungsbeispiels
Um die Vorteile der ersten Möglichkeit, die hohe Integrier- barkeit, die Rekonfigurierbarkeit und die.-. Einfachheit der Schaltung, und die Vorteile der 2. Variante, den geringen Verbrauch von Gatterfunktionen und die Anwendbarkeit moderner Verfahren, verbinden zu können, ist erfindungsgemäß folgender Ansatz vorgesehen:
Die Grundidee der angenommenen Ausführungsform ist die Entwicklung eines rekonfigurierbaren Schaltwerks, welches soviel logische Funktionalität wie möglich in RAM-Bausteinen dar- stellt, um den Vorteil der hohen Integrationsdichte zu nutzen. Diese RAM-Bausteine sollen in einer mehrstufigen Schaltung rekonfigurierbar miteinander verbunden werden, um nicht komplette Schaltfunktionen speichern zu müssen.
1. Stufe:
Die Eingabevariablen der Schaltfunktion werden durch die Eingabeleitungen des Schaltnetzes repräsentiert. Die erste Stufe der Schaltung besteht aus mehreren parallel geschalteten Speicherelementen, die durch die Eingabeleitungen adressiert werden. Jedem Speicherelement ist dabei eine Teilmenge der Eingabeleitungen und damit der Eingabevariablen der Schalt- funktion zugeordnet. Die durch Minimierungsverfahren ermittelten Implikanten einer Schaltfunktion (minimierte zi aus Gl . (2) bzw. deren Stringterm-Darstellung) werden in Speicherelementen der Eingangsstufe abgespeichert . Dazu werden in jedem Speicherelement, dem im Implikanten gebundene Eingabe- variablen zugeordnet sind, die Belegung der Eingabevariablen im Implikanten und eine eindeutige Kennung zu diesem Implikanten abgespeichert. Da jedem Baustein nur ein Teil der Eingabevariablen zugeordnet sind, wird auch nur jeweils ein Teilimplikant gespeichert. In Speicherelementen, denen keine im Implikanten gebundenen Variablen zugeordnet sind, wird entsprechend kein Teil des Implikanten gespeichert. Liegt an den Eingabeleitungen des Schaltnetzes eine Bitkombination an, so geben alle Speicherelemente, die zur Bitkombination passende Teilimplikanten enthalten, deren Kennungen über die Da- tenleitungen an die 2. Stufe der Schaltung weiter.
2. Stufe:
Die Kennungen der (Teil-) Implikanten adressieren einen Speicher in einer zweiten Stufe. In diesem Speicher sind die zum jeweiligen Implikanten gehörigen Bitmuster der Kennungen und die Ausgabewerte der Schaltfunktion gespeichert. Entspricht das Bitmuster an Kennungen, die von der ersten Stufe geliefert werden, dem eines gespeicherten Implikanten, so liegt dieser Implikant an den Eingangsleitungen der Schaltung an. Die 2. Stufe der Schaltung leitet dann die Ausgabewerte aller Implikanten, die an den Eingabeleitungen anliegen, über die Datenleitungen an die 3. Stufe weiter.
3. Stufe: In der 3. Stufe werden die Ausgabewerte der einzelnen Implikanten disjunktiv (OR) verknüpft und bilden so das Ergebnis der Schaltfunktion. Die Erfindung wird nachfolgend unter Bezugnahme auf die Zeichnung anhand eines konkreten Ausführungsbeispieles unter Berücksichtigung der vorstehenden Überlegungen noch weiter erläutert. Die Zeichnung umfasst folgende Teile, wobei deren Figuren 1 bis 3 zum Stand der Technik unter Abschnitt 2 be¬ reits angesprochen wurden:
Figur 1 zeigt den prinzipiellen Aufbau einer Von-Neumann- Architektur gemäß dem Stand der Technik, Figur 2 zeigt die generelle Struktur eines PLD gemäß dem Stand der Technik,
Figur 3 zeigt den prinzipiellen Aufbau einer FSM in Form ei- nes Mealy-Automaten gemäß dem Stand der Technik,
Figur 4 zeigt ein Ausführungsbeispiel eines Speicheraufbaus einer erfindungsgemäßen Architektur, Figur 5 zeigt die Abbildung von Sprmgtermen auf RAM, wobei Teilfigur a) partielle Sprmgterme, Teilfigur b) die Abbildung auf ein Tag-RAM und Teilfigur c) die Abbildung auf ein konventionelles RAM veranschaulichen, Figur 6 zeigt die Abbildung des Ergebnisses der Stufe 1 einer erfindungsgemaßen Architektur auf eine RAM- Kombinatlon in Stufe 2, Figur 7 zeigt eine endgültige Architektur für das Beispiel
Figure imgf000018_0001
Figur 8 zeigt eine erfindungsgemäße Architektur für ein Schaltwerk mit großem Schaltnetz zur Aufnahme eines GCA und
Figur 9 eine erfindungsgemäße rekonflgurierbare Architektur zur Aufnahme von CGAs .
Dabei sind in den Figuren sich entsprechende Teile jeweils mit denselben Bezugszeichen versehen.
Für das Ausführungsbeispiel gemäß den Figuren 4 bis 9 sei ei- ne erfindungsgemäße Architektur mit drei Stufen, wie vorstehend angesprochen, angesetzt, und zwar für eine Schaltfunktion mit 12 Eingabevariablen, 10 Implikanten und 8 Ausgabevariablen: Tabelle 1 zeigt hierfür alle Implikanten (auch als ,Minterme*' bezeichnet) für eine Beispielfunktion an. Die Darstellung der Stringterme ist so gewählt, dass hierbei drei Vierergruppen entstehen.
Tabelle 1: Beispiel für eine Implikantentabelle, dargestellt durch Stringterme Implikanten:
1. 0-11 1100 6. 0100 11— 0000
2. 1101 11— 0000 7. 0001 0000
3. -0-1 0001 8. 0001 4. 10 9. 0000
5. 0100 0001 0. -0-1 0001 1100
Betrachtet man nun diese Tabelle spaltenweise, wird man feststellen, dass nur wenige verschiedene Kombinationen in den Stringtermen vorkommen. Bei einer zweiwertigen Darstellung könnte es für jede Spalte hier 24, = 16 verschiedene Kombinationen geben, bei dreiwertiger entsprechend 34 = 81. In dem Beispiel kommen hiervon nur 5, 3 und 4 für die Spalten 1 - 3 vor, wobei eine Eingangskombination jeweils komplett '-' ist.
Liegt am Eingang eine Bitkombination als Parameter der Schaltfunktion an, so liefert ein Speicherelement, welches einen Teilimplikanten mit der anliegenden Bitkombination speichert, die Kennung des zugehörigen Implikanten zurück. Dieses Speicherelement der ersten Stufe ist in Figur 4 als 3- wertiges CAM ausgeführt, d.h., die Eingangsvektoren, die real als zweiwertige Information an dem Adressbus anliegt, wird mit gespeicherter dreiwertigen Informationen verglichen. Als Ausgabe wird eine zu dem Treffer gespeicherte Kennung, eben- falls dreiwertig, ausgegeben.
Alle Kennungen zusammen bilden die Kennung der Implikanten- kombination, die am Eingang des Schaltnetzes anliegt. Diese Implikantenkombination kann dabei durchaus mehrere Implikanten umfassen. So können im dargestellten Beispiel z.B. die Implikanten 3, 4 und 8 oder die Kombination der Implikanten 4, 5 und 8 anliegen. Im ersten Fall liegt die Bitkombination 100001 an der 2. Stufe an, im zweiten Fall die Kombination 110001.
Die Kennung der Implikantenkombinationen wird in der 2. Stufe der Schaltung erkannt und liefert für jeden beteiligten
Implikanten den zugehörigen Ausgabewert der Schaltfunktion. Diese zweite Stufe besteht nun aus einem dreiwertigen RAM, d.h., am die Adressbusinformationen dieser Stufe sind dreiwertig, die gespeicherten Daten allerdings zweiwertig.
In der 3. Stufe der Schaltung werden die Ausgabewerte der anliegenden Implikanten disjunktiv verknüpft und bilden zusammen den Funktionswert der Schaltfunktion.
5.1 Speicherelemente Stufe 1
Als Speicherelement zum Aufnehmen der Teilimplikanten kann - wie schon erwähnt - ein sehr spezieller Baustein bzw. eine sehr spezielle Architektur zum Einsatz kommen, hier mit drei- wertigem CAM gemäß Figur 4 bezeichnet. Hierbei muss prinzipiell noch das Problem der Mehrfachübereinstimmung diskutiert werden, was aber im Zusammenhang mit anderen Realisierungsmöglichkeiten erfolgen soll.
Möglich als Einsatz für die Stufe 1 ist auch ein vollassoziativer Cache. Hier können die Teilimplikanten als sogenannter Tag gespeichert werden, das gecachte Datum dient als Kennung des erkannten Implikanten. Enthält jedoch ein Teilimplikant ungebundene Variablen, die beim Vergleich mit anliegenden Bitkombinationen als Don' t-Care (DC) -Stellen zum Ausdruck kommen, so muss für alle Belegungen dieses Implikanten, die den Vergleich mit DC erfüllen, ein Tag im Tag-RAM angelegt wer- den. Weiterhin ergeben sich durch den Vergleich mit DC Überschneidungen von Teilimplikanten. So gehört z.B. die Bitkombination 0011 im ersten Teilimplikantenspeicher des obigen Beispiels sowohl zum Implikanten 1 als auch zum Implikanten 3. Es sind also nicht nur Kombinationen von Implikanten möglich, sondern auch Kombinationen von Teilimplikanten.
Aus diesem Grunde werden zu einer Realisierung als Teilimplikantenspeicher normale, d.h. zweiwertige RAM-Bausteine bzw. - Architekturen verwendet. Jedes dieser RAMs wird durch einen Teil der Eingangsleitungen des Schaltnetzes adressiert. An den Adressen, deren Bitkombination jeweils demselben Teilimplikanten mit DC-Stellen entsprechen (jede DC-Stelle in einem Stringterm bedeutet, dass die Anzahl der zutreffenden Stellen bei binärer Codierung um den Faktor 2 erhöht wird) , wird jeweils die gleiche Kennung im Speicher abgelegt. Ist die Ausgangsbreite des verwendeten RAMs größer als die zur Darstellung der Kennungen notwendige Bitbreite, so können die weiteren Bits als Kontextwert genutzt werden. Dieser Kontext kann z.B. eine ungültige Belegung der Eingangsvariablen der Schaltfunktion anzeigen.
Da ein normales RAM keine Statusanzeige für ein nicht vorhandenes Datum wie z.B. ein Tag-RAM mit seinem Cache-Miss- Ausgang besitzt, muss eine Bitkombination auf denjenigen Datenleitungen, die an die 2. Stufe zum Vergleich der Bitkombinationen verwendet werden, als Kennzeichnung für keinen anliegenden Teilimplikanten verwendet werden. In Figur 5 c)' ist dies durch die Kennung 8 gegeben.
5.2 Speicherelemente Stufe 2
Ebenso wie im bei den RAMs der ersten Stufe zum Speichern der Teilimplikanten müssen auch beim Vergleich der Implikanten- kombinationen in der 2. Stufe der Schaltung DCs berücksichtigt werden. Deshalb wird auch hier ein normales RAM verwendet. Dieses RAM wird mit der Kennung der Implikantenkombina- tion adressiert.
Da wieder mehrere Adressen derselben Implikantenkombination entsprechen können, muss der Speicher der zweiten Stufe auf- geteilt werden: die Bitkombinationen der ersten Stufe adressieren ein RAM der zweiten Stufe. Dort ist für jede gültige Implikantenkombination ein Index abgelegt, der wiederum ein RAM adressiert, welches seinerseits die Ausgabevariablen der beteiligten Implikanten enthält. So können die verschiedenen Adressen, die sich durch die Implikantenkombination mit
Don1 t-Care-Stellen ergeben, auf denselben Index der Ausgabewerte der Schaltfunktion abgebildet werden.
Figur 6 zeigt eine entsprechende Abbildung des Ergebnisses der Stufe 1 auf eine RAM-Kombination in Stufe 2.
5.3 Endgültige Architektur gemäß Figur 7
Da ein RAM nur einen einzigen Index liefern kann, müssen in einer 1. Stufe eines Schaltwerks im Speicher der Ausgabewerte die disjunktiv verknüpften Ausgabewerte aller an der erkannten Kombination beteiligten Implikanten aufgenommen werden. Damit muss das Ausgabe-RAM in dieser Stufe alle möglichen Funktionswerte der Schaltfunktion speichern können. Da die Anzahl der möglichen Funktionswerte exponentiell mit der Anzahl der Ausgabevariablen einer Schaltfunktion ansteigt, werden mehrere Kombinations- und Ausgabe-Speicher der 2. Stufe des Schaltwerks parallel verwendet und' deren Ausgabekombinationen disjunktiv verknüpft. Damit können alle Funktionswerte einer Schaltfunktion erzeugt werden.
Um die Kapazität der einzelnen Kombinationsspeicher besser ausnutzen zu können, werden alle Datenleitungen der Implikan- tenspeicher mit allen Adressleitungen der Kombinationsspei- eher über einen Crossbar-Switch verbunden. Damit können beliebige Datenleitungen die Adressierung der Kombinations-RAMs übernehmen. Nicht verwendete Datenleitungen können über den Crossbar-Switch als Kontext-Information weitergeleitet werden.
In einem letzten Schritt wird in einer 3. Stufe des Schalt- werks der erzeugte Ausgabewert bitweise über die Exklusiv-
Oder-Funktion mit einem Registerinhalt verknüpft, um einzelne Ausgabevariablen invertieren zu können und so ggf. kleinere Logikminimierungen zu erhalten. Damit besteht die 3. Stufe der Schaltung aus der disjunktiven Verknüpfung der Ausgabe- kombinationen und der anschließenden möglichen Invertierung einzelner Ausgabebits.
Insgesamt ergibt sich das Prinzipschaltbild der Figur 7 für ein erfindungsgemäßes Schaltwerk.
5.4 Diskussion der Architektur
Die Intention der Erfindung ist es, sowohl eine RAM-basierte Architektur zur Implementierung großer Schaltnetze als auch - gewissermaßen als Anwendung zur Aufnahme einer universellen Maschine - diese Architektur zur .Aufnahme von GCAs anzubieten. Zur Aufnahme einer beliebigen Funktion im RAM muss der Speicherplatz in dem Speicher exponentiell mit der Anzahl der Eingänge (und linear mit der Anzahl der Ausgänge) wachsen. Im Fall des obigen Beispiels bedeutet dies, dass eine beliebige Funktion mit 12 Ein- und 12 Ausgängen einen Speicherbedarf von 4096 * 12 bit entsprechend 6144 Bytes hätte. Bei 32 Eingängen und 8 Ausgängen wären dies bereits 4 GByte an Speicherkapazität .
Die vorgeschlagene Architektur eines mehrstufigen Netzwerks beinhaltet lediglich 211,5 Bytes RAM, nämlich:
3x Implikanten-RAM 16x4 24 Bytes 3x Kombinations-RAM 64x4 96 Bytes
3x Ausgabe-RAM 16x12 72 Bytes
Crossbar-Switch-Konfiguration 18 Bytes Invertierung 12x1 1, 5 Bytes
Summe 211,5 Bytes
Damit liegt der wesentliche Vorteil darin, dass diese Archi- tektur erheblich platzsparender ist als eine LUT-basierte Architektur. Hierbei ist zu berücksichtigen, dass nicht jede Funktion auf diese Weise darstellbar ist .
Um eine Applikation in diese Architektur abbilden zu können, müssen mehrere notwendige Bedingungen erfüllt sein. Die erste Bedingung ist diejenige, dass die Anzahl der verschiedenen Teil-Stringterme, die in einer Spalte vorhanden sind, auf die RAMs der ersten Stufe abgebildet werden können. Dies ist automatisch dadurch erfüllt, dass diese RAMs alle Kombinationen aufnehmen (weil sie CAMs emulieren) , lediglich die Eingangsbreite der Schaltung muss für Applikation ausreichen.
Die zweite Bedingung schließt sich hier an: Die Anzahl der verschiedenen Teil-Stringtermkombinationen, die in der Appli- kation nach Minimierung enthalten sind, muss codierbar sein. Dies bedeutet, dass eine Anzahl von Speicherstellen zur Verfügung stehen muss. Zur Effizienzabschätzung sei m die Eingangsbreite des Schaltnetzes. Dies würde bedeuten, dass 2m Speicherzellen benötigt würden, um die komplette Funktion darzustellen.
Wenn k nun die Parallelität der Bausteine (Anzahl der Bausteine) und 2s die Kapazität eines Bausteins ist, so muss für eine effizientere Speicherung der Applikation die Ungleichung Jt * s ≤ m-1 (3) gelten. Je deutlicher die Unterschreitung ausfällt, desto effizienter war die Implementierung.
Bedingung 3 bedeutet, dass die Ausgangsbreite geeignet ge- wählt sein muss.
6 Abbildung von GCAs auf die Architektur Zur Abbildung von GCAs auf die erfindungsgemäße Architektur müssen noch Speicherelemente eingeführt werden, die taktgesteuert das Fortschreiten in der Rechnung speichern. Dies hat seine Ursache darin, dass GCAs als Array von FSMs definiert sind, und diese sind in der Regel synchronisiert. Hier ist angenommen, dass ein globaler Takt zur Synchronisation genommen wird. Alle Implementierungen von nicht-globalen, insbesondere nicht in gegenseitiger Beziehung stehenden Tak- ten würden zu wesentlichen Problemen führen, sind jedoch in der Praxis selten anzutreffen.
Figur 8 zeigt ein weiteres Beispiel für eine konfigurierbare Architektur der vorgeschlagenen Art, nunmehr ausgestattet mit Registern zur Speicherung von Zuständen. Zusätzlich ist ein weiterer Crossbar-Switch eingefügt, der an dieser Stelle u.a. dazu dient, Ein- und Ausgabeschnittstellen für den Rechner bereitzustellen. Dies ist zwar für das grundlegende Verständnis der Architektur unerheblich, im praktischen Betrieb je- doch notwendig, weil ein Rechner mit Außenanschlüssen versehen sein muss.
Der Speicherbedarf dieser beispielhaften Architektur berechnet sich zu
8x minterm-RAM 256x8 2 KBytes
8x combination-RAM 64Kx8 512 KBytes
8x Output-vector-RAM 256x64 16 KBytes
2xCrossbar-Switch configuration 1 KBytes Inverting register 64x1 8 Bytes
Sum 531 KBytes
Damit ist verdeutlich, wie gering die Speicheranforderungen sind; ein RAM mit 264 * 64 bit (=267 Bytes) ist jedenfalls nicht in der Herstellung möglich. Sollten bei einer Applikation auf dieser Architektur Leitungen von den RAMs der ersten Stufe ungenutzt bleiben, können diese als Kontextinformatio- nen genutzt werden. Eine Anwendung besteht dabei in der Kon- textumschaltung, die für die RAMs der zweiten Stufe zusätzlich möglich sein könnte. Werden also beispielsweise bei einem RAM nur 14 Adressbits benötigt, dann können die Informa- tionen für diese 14 bit viermal gespeichert werden, also in vier verschiedenen Kontexten stehen.
Aus Figur 9 ist der prinzipielle Aufbau einer rekonfigurierbaren Architektur nach der Erfindung zu entnehmen, wie sie zur Aufnahme von CGAs geeignet ist. Dieser Aufbau stellt eine Verallgemeinerung des Aufbaus nach Figur 8 dar. Insbesondere sind die RAM-Stufen 1 und 2 durch gestrichelte Linien verdeutlicht .
7 Literaturzitate
[1] Rolf Hoffmann, Klaus-Peter Völkmann, Wolfgang Heenes: "Globaler Zellularautomat (GCA) : Ein neues massivparalleles Berechnungsmodell", Mitteilungen - Gesellschaft für Informatik e.V., Parallel-Algorithmen und Rechnerstrukturen, ISSN 0177-0454 Nr. 1.8, 2001, Seiten 21-28; http: //www.ra. informatik.tu-darmstadt .de/publikationen/ publik.html [2] R.K.Brayton et.al.: "Logic Minimization Algorithms for VLSI Synthesis", Kluwer Acade ic Publishers, USA 1984.
[3] Mike Trapp: "PLD-design methods migrate existing designs to high-capacity devices", EDN Access, Febr. 1994; http: //www. reed-electronics . com/ednmag/archives/1994/ 021794/04dfl.htm [4] Wolfgang Heenes, Rolf Hoffmann, Klaus-Peter Völkmann: "Architekturen für den globalen Zellularautomaten" .19th PARS Workshop, March 19-21, 2003 Basel; http: //www. ra. informatik.tu-darmstadt .de/publikationen/ pars03.pdf

Claims

Patentansprüche
1. Rekonfigurierbare Architektur einer Rechnereinrichtung mit wenigstens einem einzeln konfigurierbaren und/oder rekonfigu- rierbaren Schaltwerk, das eine Stufe mit Eingängen und eine Stufe mit Ausgängen aufweist, wobei Ausgangsvariable zumindest einiger der Ausgänge zu einem Zeitpunkt tn-ι die Eingangsvariablen an zugeordneten Eingängen des Schaltwerks zu einem Zeitpunkt tn bilden und wobei Mittel zu einem taktge- steuerten Speichern der Ausgangsvariablen des Schaltwerks zwischen den Zeitpunkten tn_ι und tn vorgesehen sind.
2. Architektur nach Anspruch 1, dadurch gekennzeichnet, dass die Speichermittel Registerspeicherelemente sind.
3. Architektur nach Anspruch 1 oder 2, gekennzeichnet durch eine dreistufige Ausbildung des Schaltwerks mit einer Hintereinanderschaltung dreier Stufen.
4. Architektur nach Anspruch 3, gekennzeichnet durchweine erste Stufe aus mehreren parallel geschalteten Speicherelementen, die über Eingabeleitungen adressierbar sind, wobei jedem Speicherelement eine Teilmenge der in einem zugehörenden, ermittelten Implikanten gebundenen Eingabevariablen zuzuführen sind, durch eine der ersten Stufe nachgeordnete zweite Stufe mit Speicherelementen, die durch die Kennungen der einzelnen Implikanten zu adressieren sind, und - durch eine der zweiten Stufe nachgeordnete dritte Stufe mit Mitteln zu einer disjuktiven Verknüpfung der Ausgabewerte der einzelnen Implikanten aus den Speicherelementen der zweiten Stufe.
5. Architektur nach Anspruch 4, gekennzeichnet durch eine Ermittlung der Implikanten durch Minimierungsverfahren.
6. Architektur nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass die erste Stufe mit der zweiten Stufe über wenigstens einen Crossbar-Switch miteinander verknüpft ist.
7. Architektur nach einem der vorangehenden Ansprüche, gekennzeichnet durch CAMs- und/oder RAMs als Speicherelemente.
8. Architektur nach einem der vorangehenden Ansprüche, gekennzeichnet durch eine Integration wenigstens eines CGAs.
9. Architektur nach einem der vorangehenden Ansprüche, gekennzeichnet durch magnetoresistive Speicherelemente, insbesondere vom TMR-Typ.
PCT/EP2005/050500 2004-02-13 2005-02-07 Rekonfigurierbares schaltwerk zur parallelen berechung beliebiger algorithmen WO2005078599A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/588,860 US7352205B2 (en) 2004-02-13 2005-02-07 Reconfigurable switching device parallel calculation of any particular algorithms
JP2006552599A JP5027515B2 (ja) 2004-02-13 2005-02-07 任意のアルゴリズムを並列計算するための再構成可能な論理回路装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004007232.9 2004-02-13
DE102004007232 2004-02-13

Publications (1)

Publication Number Publication Date
WO2005078599A1 true WO2005078599A1 (de) 2005-08-25

Family

ID=34832667

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/050500 WO2005078599A1 (de) 2004-02-13 2005-02-07 Rekonfigurierbares schaltwerk zur parallelen berechung beliebiger algorithmen

Country Status (5)

Country Link
US (1) US7352205B2 (de)
JP (2) JP5027515B2 (de)
CN (1) CN100388264C (de)
DE (1) DE102005005073B4 (de)
WO (1) WO2005078599A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509479B2 (en) * 2004-09-16 2009-03-24 Siemens Aktiengesellschaft Reconfigurable global cellular automaton with RAM blocks coupled to input and output feedback crossbar switches receiving clock counter value from sequence control unit
US7801835B2 (en) * 2005-06-15 2010-09-21 International Business Machines Corporation Method for constructing autonomic advisors and learning procedural knowledge from scored examples
CN101325559B (zh) * 2008-07-28 2010-08-18 腾讯科技(深圳)有限公司 一种推荐游戏房间的方法、系统和游戏服务器
KR101274115B1 (ko) * 2009-10-06 2013-06-13 한국전자통신연구원 스크램블 장치 및 이의 동작 방법
US11113176B2 (en) 2019-01-14 2021-09-07 Microsoft Technology Licensing, Llc Generating a debugging network for a synchronous digital circuit during compilation of program source code
US11144286B2 (en) 2019-01-14 2021-10-12 Microsoft Technology Licensing, Llc Generating synchronous digital circuits from source code constructs that map to circuit implementations
US11275568B2 (en) 2019-01-14 2022-03-15 Microsoft Technology Licensing, Llc Generating a synchronous digital circuit from a source code construct defining a function call
US11106437B2 (en) * 2019-01-14 2021-08-31 Microsoft Technology Licensing, Llc Lookup table optimization for programming languages that target synchronous digital circuits
US11093682B2 (en) 2019-01-14 2021-08-17 Microsoft Technology Licensing, Llc Language and compiler that generate synchronous digital circuits that maintain thread execution order

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3948494B2 (ja) * 1995-04-28 2007-07-25 ザイリンクス,インコーポレイテッド プログラム可能論理装置によってアクセス可能な分散レジスタを有するマイクロプロセサ
US6247036B1 (en) * 1996-01-22 2001-06-12 Infinite Technology Corp. Processor with reconfigurable arithmetic data path
DE19843640A1 (de) 1998-09-23 2000-03-30 Siemens Ag Verfahren zum Konfigurieren eines konfigurierbaren Hardware-Blocks
JP4285877B2 (ja) * 1999-02-23 2009-06-24 株式会社リコー 動的再構成計算のためのメタアドレス指定アーキテクチャ及び動的再構成計算のためのメタアドレス指定方法
JP4558879B2 (ja) * 2000-02-15 2010-10-06 富士通株式会社 テーブルを用いたデータ処理装置および処理システム
JP2002026721A (ja) * 2000-07-10 2002-01-25 Fuji Xerox Co Ltd 情報処理装置
WO2003017095A2 (de) * 2001-08-16 2003-02-27 Pact Xpp Technologies Ag Verfahren zum übersetzen von programmen für rekonfigurierbare architekturen
DE10347975B4 (de) 2002-10-24 2008-10-09 Siemens Ag Einrichtung der programmierbaren Logik
JP4011007B2 (ja) * 2003-01-15 2007-11-21 三洋電機株式会社 リコンフィギュラブル回路を備えた集積回路装置および処理装置
DE102004044976A1 (de) * 2004-09-16 2006-03-30 Siemens Ag Rechnereinrichtung mit rekonfigurierbarer Architektur

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
HOFFMANN R ET AL: "GCA: a massively parallel model", PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM, 2003. PROCEEDINGS. INTERNATIONAL APRIL 22-26, 2003, PISCATAWAY, NJ, USA,IEEE, 22 April 2003 (2003-04-22), pages 270 - 276, XP010645542, ISBN: 0-7695-1926-1 *
HOFFMANN R, VÖLKMANN K P, HEENES W: "Globaler Zellularautomat (CGA): Ein neues massivparalleles Berechnungsmodell", PARS WORKSHOP, October 2001 (2001-10-01), MUNICH, XP002326432 *
JOZWIAK L ET AL: "Effective and efficient FPGA synthesis through general functional decomposition", JOURNAL OF SYSTEMS ARCHITECTURE, ELSEVIER SCIENCE PUBLISHERS BV., AMSTERDAM, NL, vol. 49, no. 4-6, September 2003 (2003-09-01), pages 247 - 265, XP004464564, ISSN: 1383-7621 *
MIRSALEHI M M, GAYLORD T K: "Logical minimization of multilevel coded functions", APPLIED OPTICS, vol. 25, no. 18, 15 September 1986 (1986-09-15), pages 3078 - 3088, XP002326433 *
RECHENBERG, POMBERGER: "Informatik-Handbuch, 3. Auflage", 2002, HANSER, MÜNCHEN, XP002327006 *
WIEGAND C, SIEMERS C, RICHTER H: "Definition of a Configurable Architecture for Implementation of Global Cellular Automaton", LECTURE NOTES IN COMPUTER SCIENCE, vol. 2981, February 2004 (2004-02-01), pages 140 - 155, XP002326434, ISSN: 0302-9743, ISBN: 3-540-21238-8, Retrieved from the Internet <URL:http://www.springerlink.com/media/16GPUPQTM0U7JAMNGADT/Contributions/6/L/U/6/6LU6M1C0YCR9MEV2.pdf> [retrieved on 20050428] *

Also Published As

Publication number Publication date
JP2012074051A (ja) 2012-04-12
CN1918560A (zh) 2007-02-21
US20070171101A1 (en) 2007-07-26
DE102005005073B4 (de) 2009-05-07
DE102005005073A1 (de) 2005-09-08
JP5027515B2 (ja) 2012-09-19
US7352205B2 (en) 2008-04-01
JP2007522571A (ja) 2007-08-09
CN100388264C (zh) 2008-05-14

Similar Documents

Publication Publication Date Title
WO2005078599A1 (de) Rekonfigurierbares schaltwerk zur parallelen berechung beliebiger algorithmen
DE69827589T2 (de) Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
DE4416881C2 (de) Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
DE60100476T2 (de) Unterstützung mehrerer konfigurationszustände eines fpga mittels eines auf dem integrierten schaltkreis dafür vorgesehenen prozessors
DE2716369C2 (de)
DE69534812T2 (de) Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration
EP1222739B1 (de) Rekonfigurierbares gate-array
EP1329816B1 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE60118622T2 (de) Benutzer-konfigurierbares on-chip speichersystem
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE19704044A1 (de) Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
DE4417575A1 (de) Verbesserte Array-Architektur für programmierbare logische Zellen
DE2621882A1 (de) Dynamischer digitalspeicher mit ununterbrochen umlaufendem datenfluss
EP1599794A2 (de) Prozessor mit verschiedenartigen steuerwerken für gemeinsam genutzte ressourcen
DE3114921A1 (de) Datenverarbeitungssystem
DE2926322A1 (de) Speicher-subsystem
DE102013019278A1 (de) Generator für gefalteten FIFO-Speicher
DE2944757A1 (de) Prozessrechner
EP1789889B1 (de) Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten
DE10347975B4 (de) Einrichtung der programmierbaren Logik
DE102017217908A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE602004005806T2 (de) Serieller Speicher mit Mitteln zur Integration eines erweiterten Speicherfeldes
EP1116127B1 (de) Programmgesteuerte einheit
DE4447707B4 (de) Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik
DE4447706B4 (de) Partiell zur Laufzeit rekonfigurierbarer Datenflussprozessor

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2007171101

Country of ref document: US

Ref document number: 10588860

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2006552599

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 200580004874.3

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase
WWP Wipo information: published in national office

Ref document number: 10588860

Country of ref document: US