DE19704044A1 - Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine - Google Patents

Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine

Info

Publication number
DE19704044A1
DE19704044A1 DE19704044A DE19704044A DE19704044A1 DE 19704044 A1 DE19704044 A1 DE 19704044A1 DE 19704044 A DE19704044 A DE 19704044A DE 19704044 A DE19704044 A DE 19704044A DE 19704044 A1 DE19704044 A1 DE 19704044A1
Authority
DE
Germany
Prior art keywords
address
block
cell
addresses
elements
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
DE19704044A
Other languages
English (en)
Inventor
Martin Vorbach
Robert Muench
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Krass Maren Zuerich Ch
Richter Thomas 04703 Bockelwitz De
Original Assignee
PACT INF TECH GmbH
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 PACT INF TECH GmbH filed Critical PACT INF TECH GmbH
Priority to DE19704044A priority Critical patent/DE19704044A1/de
Priority to US08/946,999 priority patent/US6038650A/en
Publication of DE19704044A1 publication Critical patent/DE19704044A1/de
Withdrawn legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)

Description

1. Hintergrund der Erfindung 1.1 Stand der Technik
Werden programmierbare Bausteine (FPGAs, DPGAs, DFPs (gemäß Offenlegung DE 44 16 881 A1)), im folgenden der Einfachheit halber unter dem Begriff "Bausteine" zusammengefaßt, zu einem Cluster zusammengefügt, gibt es zwei Arten, die Program­ mierung vorzunehmen. Ein Cluster ist eine mehrdimensionale vernetzte Anordnung von Bausteinen oder Bausteingruppen.
  • - Für jeden Baustein steht eine Ladelogik zur Verfügung, mit deren Hilfe der Bau­ stein programmiert wird. Das heißt, eine Ladelogik adressiert einen Baustein des Clusters. Diese Ladelogik kann als EPROM oder als ein Rechnersystem ausgeführt sein. Die Daten können in serieller Form oder parallel zum Baustein übertragen werden. Bei der parallelen Datenübertragung werden die Daten im Baustein in einen seriellen Bitstrom umgewandelt, der den Baustein konfiguriert.
  • - Für alle Bausteine des Clusters steht nur eine Ladelogik zur Verfügung. Die ein­ zelnen Bausteine sind in der Art einer Daisy-Chain zusammengeschaltet. Die Pro­ grammierung erfolgt durch einen seriellen Bitstrom. Dabei wird von der Ladelogik nur der erste Baustein adressiert und die Daten werden durch eine serielle Lei­ tung zu den Bausteinen des Clusters geschickt. Die Daten werden als Bitstrom durch alle Bausteine des Clusters hindurchgeleitet und konfigurieren so deren pro­ grammierbare Elemente. Die Übertragung der Konfigurationsdaten kann wieder in serieller oder paralleler Form erfolgen. Die Ladelogik kann wiederum als EPROM oder als ein Rechnersystem ausgeführt sein.
  • - Bei der Verwendung eines Rechnersystems besteht die Möglichkeit die Adress­ leitungen für ein Chipselect zu verwenden, um einzelne Bausteine getrennt zu adressieren und zu konfigurieren.
Bei einem Parallelrechner wird jedem seiner Prozessoren eine feste Adresse zugewiesen, über die eine Adressierung erfolgt.
1.2 Probleme
Die bisherigen Verfahren zur Adressierung eines Bausteins weisen eine Reihe von Pro­ blemen und Schwächen auf.
  • - Durch die Art der Adressierung wird die tatsächliche Anordnung der Bausteine nicht repräsentiert.
  • - Es ist nicht möglich, ein einzelnes Element eines beliebigen Bausteins im Cluster zu adressieren, um eine Umkonfiguration vorzunehmen. Es kann immer nur ein gesamter Baustein adressiert und im Gesamten umkonfiguriert werden.
  • - Durch die feste Zuordnung der Adressen der einzelnen Prozessoren bei einem Par­ allelrechner, ergibt sich eine statische Zuordnung der Adressen. Außerdem entsteht ein hoher Aufwand bei der Vergabe der Adressen für die einzelnen Prozessoren.
1.3 Verbesserung durch die Erfindung
Mit Hilfe der Erfindung lassen sich einzelne konfigurierbare Elemente eines Bausteins adressieren. Damit ist es möglich, die einzelnen Elemente direkt für eine Umkonfigu­ rierung anzusprechen. Dies ist eine Voraussetzung, um Teile des Bausteins durch eine externe Ladelogik umkonfigurieren zu können und nicht die gesamte Konfiguration des Bausteins verändern zu müssen. Außerdem werden die Adressen für die einzelnen Ele­ mente der Bausteine automatisch in X- und Y-Richtung generiert, so daß die tatsächliche Anordnung der Bausteine und konfiguriebaren Elemente repräsentiert wird. Durch die automatische Adressgenerierung ist eine manuelle Vergaben der Adressen nicht notwen­ dig.
Die Einzelheiten und besondere Ausgestaltungen, sowie Merkmale des erfindungs­ gemäßen Adressgenerierung sind Gegenstand der Patentansprüche.
2. Beschreibung der Erfindung 2.1 Übersicht über die Erfindung, Abstrakt
Ein Cluster enthält eine Vielzahl an konfigurierbaren Bausteinen, die jeweils zwei Eingänge zum Empfang der X-Adresse des letzten Elements des vorhergehenden Bau­ steins in X-Richtung (Reihe) und der Y-Adresse des letzten Elements des vorhergehenden Bausteins in Y-Richtung (Spalte) besitzen, sowie jeweils zwei Ausgänge, um die Positi­ on des letzten Elements des Bausteins in X-Richtung und um die Position des letzten Elements in Y-Richtung dem nachfolgenden Baustein weiterzugeben.
Der Ursprung des Koordinatensystems liegt für diese Schrift dabei in der linken oberen Ecke des Clusters, so daß die X-Adresse nach rechts und die Y-Adresse nach unten hin größer wird. Selbstverständlich kann für den Ursprung des Koordinatensystems auch eine andere Position gewählt werden.
Jeder der Bausteine des Clusters enthält eine Logik, zur Berechnung der X- und Y- Adresse der letzten Zelle des Bausteins. Diese Logik besteht aus jeweils einem Register für die X- und Y-Adresse, in dem die maximale Zahl der Elemente in X- und Y-Richtung des Bausteins gespeichert ist und einem Addierer, der die Adresse des letzten Elements des Bausteins in X- und Y-Richtung berechnet und über die beiden Ausgänge weitergibt. Jeder Baustein enthält wiederum eine Vielzahl an konfigurierbaren Elementen, die ei­ ne Adresse zugewiesen bekommen und mit dieser Adresse innerhalb des Bausteins und des Clusters adressierbar sind. Die Adresse des Elements wird aus der Adresse des vor­ hergehenden Elements in X-Richtung und in Y-Richtung berechnet. Dadurch entsteht ein linearer Adressraum, in dem alle Elemente der Bausteine des Clusters adressierbar sind. Die Adresse des vorhergehenden Elements kann von einem Element dieses Bau­ steins oder des vorhergehenden Bausteins stammen. Um nun innerhalb eines Clusters ein Element in einem Baustein adressieren zu können, enthält jedes Element einen Ver­ gleicher, in dem überprüft wird, ob eine von außen kommende Adresse mit der Adresse des Elements übereinstimmt.
2.2 Detailbeschreibung der Erfindung
Eine Vielzahl von konfigurierbaren Bausteinen wird zu einem Cluster zusammengefügt. Die konfigurierbaren Bausteine sind in Spalten und Reihen angeordnet. In den einzelnen Bausteinen ist wiederum eine Vielzahl von konfigurierbaren Elementen enthalten.
Jeder Baustein des Clusters steht über zwei Busse mit seinen Nachbarn in den Reihen und über zwei Busse mit seinen Nachbarn in den Spalten in Verbindung. Dabei dient ein Bus zum Empfang der Adressdaten vom vorhergehenden Nachbarn und ein Bus zum Versenden der Daten zum nachfolgenden Nachbarn. Über diese Leitungen werden die X-Adresse (Position innerhalb der Reihe) des letzten Elements des vorhergehenden Bausteins in X-Richtung und die Y-Adresse (Position innerhalb der Spalte) des letzten Elements des vorhergehenden Bausteins in Y-Richtung übertragen. Dies kann über eine serielle Leitung oder über mehrere Leitungen, deren Anzahl abhängig von der Anzahl der Bausteine des Clusters und den in den Bausteinen enthaltenen Elementen ist, parallel geschehen.
Eine Logik innerhalb des Bausteins berechnet die Adresse des letzten Elements des Bausteins in X-Richtung und des letzten Elements des Bausteins in Y-Richtung. Da­ zu wird zu der in einem Register gespeicherten Anzahl der Elemente in X-Richtung (Y-Richtung) die Adresse des letzten Elements in X-Richtung (Y-Richtung) des vorher­ gehenden Bausteins durch einen Addierer hinzugezählt. Damit ergibt sich die Adresse, die der maximalen Ausdehnung der Elemente in X,Y-Richtung innerhalb des Bausteins entspricht. Diese Adresse wird an den nächsten Baustein weitergegeben. Es werden je­ weils ein Register und ein Addierer pro Richtung benötigt. Die Bausteine der ersten Spalte und der ersten Reihe des Clusters, müssen durch ein externes Signal die Basis­ adresse für die Elemente zugewiesen bekommen, da sie dort keine direkten Vorgänger besitzen.
Für die in den Bausteinen enthaltenen konfigurierbaren Elemente wird eine Adresse aus der Adresse des vorhergehenden Elements berechnet. Dieses vorhergehende Ele­ ment kann im selben oder in dem vorhergehenden Baustein liegen. Zur Übertragung der Adressen sind auch die Elemente analog zu den Bausteinen, durch eine oder mehrere Leitungen miteinander verbunden. Auch hier kann die Übertragung der Adresse, wie bei den Bausteinen, seriell oder parallel erfolgen. Bei der Berechnung der Elementadresse wird zur Adresse des vorhergehenden Elements in X-Richtung (Y-Richtung) eine Eins hinzuaddiert. Um ein Element adressieren zu können, enthält jedes Element einen Ver­ gleicher, mit dem überprüft wird, ob die Adresse des Elements mit einer von extern (von einer Ladelogik) oder intern gelieferten Adresse, die ein Element eines Bausteins des Clusters zur Umkonfiguration o. ä. ansprechen soll, übereinstimmt. In diesem Ver­ gleicher wird die X- und Y-Adresse des Elements mit der zur Adressierung anliegenden X- und Y-Adresse verglichen. Dies geschieht in jeweils einem Komparator oder in einem Komperator für beide Adressen zugleich. Die Ausgänge der Komparatoren werden über ein UND-Gatter verknüpft und bilden das Enable Signal für das konfigurierbare Element. Das heißt, das Element wird nur angesprochen, wenn das externe Adressignal (von einer Ladelogik) mit der automatisch generierten Adresse des Elements übereinstimmt.
Es wäre selbstverständlich möglich die Logik zur Berechnung der Adresse des letzten Elements in X- und Y-Richtung wegzulassen. Dazu muß die von dem letzten Element in X- und Y-Richtung berechnete Adresse herausgeführt und zum nächsten Baustein weitergeleitet werden.
Weiterhin wäre denkbar, den Cluster nicht nur in 2 Dimensionen (X- und Y-Richtung) aufzubauen, sondern noch die dritte (Z-Richtung), oder mehrere Dimensionen hinzuzu­ nehmen. Jeder Baustein benötigt dann ein weiteres Register für jede Dimension, in dem die Anzahl der konfigurierbaren Elemente des Bausteins in dieser Dimension gespeichert wird, sowie einen weiteren Addierer für jede Dimension zur Berechnung der Adresse des letzten Elements in X- und Y-Richtung innerhalb des Bausteins in dieser Dimension.
Damit entsteht ein N-dimensionales Array. Diese weiteren Dimensionen, außer der Z- Richtung, besitzen natürlich keine physikalische Repräsentation mehr, sondern werden nur durch eine Erweiterung des Adressraumes auf N-Dimensionen beschrieben. Diesel­ be Erweiterung des Adressraumes auf N-Dimensionen ist auch für die konfigurierbaren Elemente innerhalb eines Bausteins denkbar.
3. Kurzbeschreibung der Diagramme
Fig. 1
  • a) Baustein mit automatischer Adressgenerierung.
  • b) Logik zur Adressgenerierung mit parallelem Eingangssignal und Ausgangs­ signal.
  • c) Logik zur Adressgenerierung mit seriellem Eingangssignal und Ausgangs­ signal.
  • d) Verschaltung zweier hintereinander folgender Logiken zur Adressgene­ rierung.
  • e) Signalverlauf der Daten- und Enable Signale bei der Verschaltung zweier Logiken zur Adressgenerierung.
Fig. 2 Baustein mit automatischer Adressgenerierung und mehreren konfigurier­ baren Elementen.
Fig. 3
  • a) Logik zur Adressgenerierung und Adressierung eines Elements innerhalb eines Bausteins, bei paralleler Übertragung der Adresse.
  • b) Logik zur Adressgenerierung und Adressierung eines Elements innerhalb eines Bausteins bei serieller Übertragung.
  • c) Serieller Addierer
Fig. 4 Cluster aus mehreren Bausteinen und ihre Verschaltung miteinander.
Fig. 5
  • a) Baustein mit mehreren konfigurierbaren Elementen und einer alternati­ ven Art der Adressierung.
  • b) Logik zur Adressierung eines Elements innerhalb eines Baustein bei al­ ternativer Adressierung.
Fig. 6 Cluster mit nicht vollständigen Reihen oder Spalten.
4. Detailbeschreibung der Diagramme
Fig. 1a) zeigt einen Baustein 0109 eines Clusters. Über die Verbindung 0101 erhält er die X-Position des letzten Elements in X-Richtung vom vorherigen Baustein. Die Y- Position wird über die Verbindung 0102 in den Baustein übertragen. Im Register 0105 wird die Anzahl der Elemente in X-Richtung gespeichert, anschließend wird mit Hilfe eines Addierers 0106 zu dieser Anzahl die an Verbindung 0101 anliegende Adresse hinzu­ addiert. Mit der Y-Adresse wird in analoger Weise verfahren. Das Register 0103 speichert die Anzahl der Elemente des Bausteins in Y-Richtung und im Addierer 0104 wird die über die Verbindung 0102 anliegende Adresse hinzuaddiert. Diese beiden neuen, auto­ matisch generierten Werte bilden die X- und Y-Basisadresse des in X- und Y-Richtung nachfolgenden Bausteins. Sie stehen über die Verbindung 0107 für die X-Adresse, 0108 für die Y-Adresse dem nachfolgenden Baustein zur Verfügung. Die Verbindungen 0110 und 0111 dienen zur Übertragung der Y- und X-Adresse innerhalb des Bausteins, um für die Berechnung der Adressen der konfigurierbaren Elemente zur Verfügung zu stehen.
b) zeigt die Logik bei parallel übertragenem Eingangs- und Ausgangssignal, um die Adresse des letzten Elements in X-Richtung (Y-Richtung) des Bausteins zu berech­ nen. Über den Bus 0112 werden die Daten der Anzahl der konfigurierbare Elemente des Bausteins in X-Richtung (Y-Richtung) aus dem Register 0114 zum Addierer 0115 übertragen. Dort wird die Adresse des letzten Elements des vorhergehenden Baustein in X-Richtung (Y-Richtung) 0113 hinzuaddiert. Vom Addierer 0115 wird die berechnete Adresse über den Bus 0116 zum nächsten Baustein weitergegeben.
c) zeigt die Logik zur Speicherung und Berechnung der Adresse bei einem seriellen Eingangs- und Ausgangssignal. Die Daten der Adresse des vorhergehenden Bausteins in X-Richtung (Y-Richtung) werden seriell über eine Leitung 0118 übertragen. Über die Leitung 0119 wird das Taktsignal des Bausteins übertragen. Der serielle Datenstrom der Leitung 0118 gelangt zum Addierer 0124, der die im Baustein gespeicherte Anzahl der Elemente sequentiell hinzuaddiert. Dazu wird die in Register 0121 gespeicherte Anzahl der Elemente beim Start in das Schieberegister 0120 geladen. Das Schieberegister 0120 wird wiederum durch den Takt 0119 gesteuert, so daß es die einzelnen Bits der Adresse synchron zu den Bits des Datenstroms auf Leitung 0118 zum Addierer 0124 schickt. Die Daten des Schieberegisters werden mit der positiven Taktflanke weitergeschoben. Im Addierer 0124 werden die einzelnen Bits nacheinander addiert und wieder sequentiell zum Ausgangsflipflop 0123 weitergeschickt. Über die Leitung 0125 werden diese Daten zum nächsten Baustein übertragen. Das Flipflop 0126 dient zur Speicherung des bei der Addition der beiden Bits anfallenden Übertrags, der bei der Addition der nächsten beiden Bits wieder berücksichtigt werden muß. Das Ausgangsflipflop 0123 und das Flip­ flop 0126 übernehmen Daten mit der negativen Taktflanke. Über die Verbindung 0117 wird ein Enable Signal zu den Flipflops 0122, 0123, 0126 und dem Schieberegister 0120 geleitet. Das Flipflop 0122 übernimmt das Enable Signal mit der negativen Taktflanke und gibt es über die Leitung 0127 zu den nachfolgenden Bausteinen weiter.
Die Datenübertragung verläuft nun folgendermaßen. Die Daten werden über die Lei­ tung 0118 eingelesen. Gleichzeitig kommt über die Leitung 0117 ein Enable Signal, das dieselbe Länge wie die übertragenen Daten besitzt. Im Addierer 0124 wird nun die neue Adresse berechnet und über das Flipflop 0123 zum nächsten Baustein übertragen. Das Enable Signal wird über das Flipflop 0122 zum nächsten Baustein geleitet. Durch die Übernahme der Daten und des Enable Signals mit der negativen Flanke in die Flipflops, gelangen diese beiden Signale mit einem halben Takt Verzögerung zum nächsten Bau­ stein.
d) zeigt anhand eines Timing-Diagramms wie zwei Logiken zur Adressgenerierung ver­ schaltet werden. Diese Logiken sind in jeweils einem Baustein 0130 untergebracht. Beide Logiken haben denselben Aufbau aus einem Addierer 0134, 0140 mit Flipflop 0131, 0142 zur Speicherung des Carry Bits, einem Ausgangsflipflop 0135, 0141, einem Flipflop zur Übernahme des Enable Signals 0136, 0143 sowie einem Register, in dem die Anzahl der Elemente des Bausteins gespeichert ist 0133, 0139 und einem Schieberegister 0132, 0138. Der Unterschied zwischen den beiden Logiken besteht darin, daß die Flipflops 0141, 0142, 0143 und das Schieberegister 0138 der zweiten Logik mit der anderen Takt­ flanke gesteuert werden, als die Flipflops 0131, 0135, 0136 und das Schieberegister 0132 der ersten Logik. Dies kann wie in der Figur dargestellt durch die Invertierung von je­ dem Takteingang der Flipflops und des Schieberegisters oder durch die Invertierung des Taktsignals erfolgen. Damit ist sichergestellt, daß die Daten korrekt von den Flipflops und den Schieberegistern übernommen werden.
Bei der Verschaltung mehrerer Logiken (d. h. mehrere konfigurierbare Elemente hinter­ einander) wird die Taktflanke mit der die Daten in die Flipflops und die Schieberegister übernommen werden immer abgewechselt. Dadurch erfolgt eine korrekte Datenüber­ nahme und das Datenpaket wird durch die Bausteine hindurchgeleitet.
e) zeigt den Signalverlauf des Daten- und Enable Signals für den Fall der Verschaltung mehrerer Logiken. Das Signal CLK 0144 stellt das Taktsignal des Bausteins dar. D1 0145 und E1 1046 stellen das Daten- und Enable Signal am Eingang der ersten Logik dar. D2 0147 und E2 0148 sind die Daten und Enable Signale am Ausgang der ersten Logik. Sie sind um einen halben Takt gegenüber den Signalen am Eingang verzögert, da sie von den Flipflops und dem Schieberegister erst mit der abfallenden Taktflanke übernommen werden (vgl. Fig. 1d). Gleichzeitig bilden sie die Eingangssignale für die nachfolgende Logik zur Adressberechnung. Dort werden sie wieder um einen halben Takt verzögert und gelangen zum Ausgang, wo sie die Signale D3 0149 und E3 0150 bilden.
Fig. 2 stellt einen Baustein 0212 eines Clusters mit mehreren konfigurierbaren Ele­ menten 0211 dar. Jedes dieser Elemente 0211 besitzt konfigurierbare Zellen und zur Konfiguration verwendete Elemente 0210. Außerdem enthält jedes Element 0211 einen Vergleicher nach PACT02 Fig. 3 0301 und eine Logik zur Berechnung der Elementadres­ se 0209, wobei der Vergleicher für die Dekodierung der Adresse bei einem Zugriff auf ein Element zuständig ist. Damit wird die Adressierung der einzelnen Elemente eines Bausteins ermöglicht. Zusätzlich enthält der Baustein eine Logik zur automatischen Adressgenerierung 0207, die wie in Fig. 1 ausgeführt ist. Die Y-Adresse des letzten Elements des vorhergehenden Bausteins in Y-Richtung gelangt über den Bus 0201 in den Baustein 0212 und wird in der Logik zur automatischen Adressgenerierung 0207 weiterverarbeitet. Über die Verbindung 0205 wird diese Adresse zu den Elementen 0211 der ersten Reihe des Bausteins übertragen. Die Leitung 0203 dient zur Übertragung der Y-Adresse des letzten Elements dieses Bausteins in Y-Richtung zum nächsten Baustein in Y-Richtung. Die X-Adresse des letzten Elements des vorhergehenden Bausteins in X-Richtung gelangt über die Verbindung 0202 in den Baustein 0212 und wird in der Logik zur automatischen Adressgenerierung 0208 weiterverarbeitet. Sie wird über die Verbindung 0206 zu den Elementen 0211 der ersten Spalte des Bausteins 0212 übertra­ gen. Die Leitung 0204 dient zur Übertragung der X-Adresse des letzten Elements dieses Bausteins zum nächsten Baustein.
Über den Bus 0213 gelangt die Adresse des Elements, das für eine Umkonfigurierung o. ä. angesprochen werden soll, zu den Zellen 0211.
Bei der Adressierung wäre es auch möglich auf die Logik zur automatischen Adressge­ nerierung 0207, 0208 zu verzichten. Dazu muß die Y-Adresse des letzten Elements des Bausteins und die X-Adresse des letzten Elements des Bausteins herausgeführt werden, um die Adressdaten an den nächsten Baustein weiterzugeben. Diese Signale ersetzen dann die Signale 0203, 0204.
Fig. 3a) zeigt den Aufbau des Vergleichers und der Adressgenerierung der Elemente 0211 aus Fig. 2 bei paralleler Übertragung der Adressdaten. Zur der über die Verbindung 0302 anliegende X-Adresse des vorhergehenden Elements wird im Addierer 0305 eine Eins 0303 hinzuaddiert. Diese X-Adresse wird im Komparator 0309 mit der von außen kommenden X-Adresse 0307 verglichen. Im Addierer 0306 wird der über die Verbindung 0301 anliegende Y-Adresse des vorhergehenden Elements eine Eins 0304 hinzuaddiert. Anschließend vergleicht der Komparator 0310 den Wert mit der über die Verbindung 0308 anliegenden Y-Adresse des zu adressierenden Elements. Über ein UND-Gatter 0311 wird das Signal 0312 zur Aktivierung des Elements erzeugt. Die Verbindung 0314 dient zur Übertragung der berechneten X-Adresse zum nachfolgenden Element. Die Y-Adresse wird über die Verbindung 0313 übertragen.
b) zeigt den Aufbau des Vergleichers und der Adressgenerierung der Elemente 0211 aus Fig. 2 bei serieller Übertragung der Adressdaten. Dazu wird zum seriellen Bitstrom der Adresse des vorhergehenden Elements in X-Richtung 0315 in der Logik zur Adressge­ nerierung 0317 eine Eins seriell hinzuaddiert und die Adresse in einem Schieberegister gespeichert. Die Logik bekommt das Taktsignal des Bausteins durch die Leitung 0327. Über die Leitung 0321 wird die Adresse seriell zum nachfolgenden Element übertragen. Im Komparator 0319 wird die in 0317 gespeicherte Adresse mit der über die Leitung 0325 anliegenden X-Adresse des zu adressierenden Elements verglichen. Das Ganze geschieht analog für die Y-Adresse. Der von der vorhergehenden Zelle in Y-Richtung seriell übertragene Y-Adresse 0316 wird in der Logik zur Adressgenerierung 0318 eine Eins hinzuaddiert. Die Logik bekommt das Taktsignal des Bausteins durch die Leitung 0328. Über die Verbindung 0322 wird die Adresse seriell zum nachfolgenden Element in Y-Richtung transportiert. Im Komparator 0320 wird die in 0318 gespeicherte Adresse mit der über die Verbindung 0326 anliegende Y-Adresse des zu adressierenden Ele­ ments verglichen. Die Ausgänge der beiden Komparatoren 0319, 0322 werden über ein UND-Gatter 0323 verknüpft und bilden das Enable Signal 0324 für das konfigurierbare Element.
c) zeigt die Logik zur Adressgenerierung 0317, 0318 aus Fig. 3b. Die Adresse gelangt über die Leitung 0329 zum Addierer 0332. Das Flipflop 0334 dient zum Speichern des Übertrags, der bei der Addition entsteht. Es übernimmt den Übertrag immer mit der negativen Flanke des Taktsignals 0330. Außerdem ist dieses Flipflop anfangs auf eins gesetzt, so daß bei der Addition des ersten Bit eine Eins addiert wird. Die neu berech­ nete Adresse wird zum nachfolgenden Schieberegister 0337 und zum Ausgangsflipflop 0336 geschickt. Dort werden sie mit der negativen Taktflanke übernommen. Das Schie­ beregister 0337 speichert die einzelnen Bits, so daß am Ende der Übertragung die Adresse des Elements im Schieberegister gespeichert ist. Diese wird dann über die Lei­ tung 0339 zum Komparator weitergegeben. Über die Leitung 0333 werden die Daten der Adresse seriell zum nachfolgenden, Element geschickt. Die Leitung 0331 überträgt ein Enable Signal an die Flipflops und das Schieberegister. Dieses Enable Signal läuft synchron mit dem Datensignal, das heißt wenn Daten gesendet werden wird gleichzei­ tig ein Enable Signal übertragen. Das Enable Signal wird vom Flipflop 0335 mit der negativen Taktflanke übernommen und von der Leitung 0338 zum nächsten Element übertragen. Die Datenübertragung verläuft wie in Fig. 1c beschrieben. Auch hier ist es erforderlich, wenn mehrere Logiken hintereinander geschaltet werden, den Takt oder die Takteingänge der Flipflops und Schieberegister bei jeder nachfolgenden Lokik zu inver­ tieren, so daß die Daten immer abwechselnd mit der ansteigenden und der abfallenden Flanke übernommen werden.
Fig. 4 zeigt die Verschaltung mehrerer Bausteine 0401 zu einem Cluster. Über die Verbindung 0402 werden die Y-Basisadressen der Bausteine am oberen Rand des Clu­ sters initialisiert. Die X-Basisadressen der Bausteine am linken Rand des Clusters wer­ den über die Verbindung 0403 initialisiert. Bei der parallelen Adressierung genügt es die Basisadressen an die Eingänge anzulegen. Für die Adressierung mit serieller Datenübert­ ragung muß das Datenpaket mit der Basisadresse und ein Enable Signal seriell in den Baustein übetragen werden. Den im Inneren des Clusters liegenden Bausteinen, werden nach dem in Fig. 1 beschriebenen Verfahren automatisch X- und Y-Basisadressen über die Verbindungen zueinander zugewiesen. Die Verbindungen 0404 und 0405 dienen zur Übertragung der Größe des Clusters an externe Elemente. Die Verbindung 0404 dient zur Übertragung der Größe in X-Richtung und über die Verbindung 0405 wird die Größe des Clusters in Y-Richtung übertragen.
Fig. 5a) zeigt den Aufbau eines Bausteins 0501, der eine Vielzahl von konfigu­ rierbaren Elementen 0514, die konfigurierbare und zur Konfiguration verwendete Zellen enthalten, sowie eine Logik zur automatischen Adressgenerierung 0506, 0508 enthält. Die Adressierung der Bausteine 0501 und konfigurierbaren Elemente 0514 erfolgt hierbei auf eine alternative Art. Die Adresse besitzt folgenden Aufbau:
Die Daten der X- und Y-Adresse werden durch die Verbindungen 0502, 0503 in den Baustein 0501 übertragen. Außerdem werden sie noch in die Vergleicher 0507, 0509 weitergeleitet. Innerhalb des Baubsteins 0501 werden sie von der Logik zur automati­ schen Adressgenerierung 0506, 0508 weiterverarbeitet. Bei der Weiterverarbeitung wird zur Adresse des Bausteins 0501 jeweils eine Eins in X- und Y-Richtung hinzugezählt und nicht wie bei der vorherstehenden Adressierungsart die Anzahl der Elemente in X- und Y-Richtung des Bausteins 0501. Durch die Verbindungen 0504, 0505 werden sie zum nachfolgenden Baustein weitergeleitet. Wird nun über die Leitung 0513 eine Adresse geschickt, so wird der Adressteil, der die Bausteine adressiert, an die Vergleicher 0507, 0509 geleitet. Der Teil der Adresse, der die Elemente 0514 adressiert, wird an die Ele­ mente 0514 geleitet. In den Vergleichern 0507, 0509 wird nun die automatisch generierte Bausteinadresse mit der Bausteinadresse, die über die Leitung 0513 anliegt, verglichen und im Falle einer Übereinstimmung ein Signal zum UND-Gatter 0510 geschickt, das ein Enable Signal an die konfigurierbaren Elemente 0514 schickt. Die Vergleicher 0511 der Elemente 0514 vergleichen ihre Adresse mit der über die Verbindung 0513 anliegenden Adresse und aktivieren sie bei einer Übereinstimmung und einem anliegenden Enable Signal der Vergleicher 0507, 0509 des Bausteins.
b) zeigt die Logik zur Adressierung eines Elements (vgl. Vergleicher 0511), die für das alternative Adressierungsverfahren benötigt wird. Die Verbindungen 0515 und 0516 die­ nen zur Übertragung einer X- und Y-Adresse, mit deren Hilfe ein Element angesprochen werden soll. Diese beiden Werte werden in den Komparatoren 0519 und 0520 mit den in den Registern 0517 und 0518 gespeicherten X- und Y-Adressen des Elements verglichen. Selbstverständlich können die Adressen der Elemente 0514 auch auf die zuvor beschrie­ bene Art (vgl. Fig. 3) erzeugt werden. Die Ausgänge der beiden Komparatoren 0519 und 0520 werden mit dem UND-Gatter 0521 verknüpft. Der Ausgang des UND-Gatters 0521 wird mit dem Enable Signal 0523 der Vergleicher der Bausteinadresse (vgl. Fig. 5a 0510) über ein UND-Gatter 0522 verknüpft und bildet das Enable Signal 0524 für die Elemente 0514 des Bausteins 0501.
Fig. 6 zeigt einen Cluster aus Bausteinen 0603, dessen Spalten und Reihen nicht vollständig sind. Dadurch ist eine etwas andere Verschaltung der Bausteine 0603 nötig, die in der Figur dargestellt wird. Die Verbindungen 0601 und 0602 dienen zur Initia­ lisierung der Bausteine der ersten Reihe und Spalte, da sie keine Vorgänger in dieser Richtung besitzen. Über die Verbindungen 0604 und 0605 kann die Ausdehnung des Clusters in X- und Y-Richtung abgefragt werden.
5. Begriffsdefinition
Cluster Mehrdimensionale vernetzte Anordnung von Bausteinen oder -gruppen
DPGA Dynamisch konfigurierbare FPGA's. Stand der Technik
D-FlipFlop Speicherelement, welches ein Signal bei der steigenden Flanke eines Taktes speichert.
Elemente Sammelbegriff für alle Arten von in sich abgeschlossenen Einhei­ ten, welche als Stück in einem elektronischen Baustein zum Einsatz kommen können. Elemente sind also:
  • - Konfigurierbare Zellen aller Art
  • - Cluster
  • - RAM-Blöcke
  • - Logik
  • - Rechenwerke
  • - Register
  • - Multiplexer
  • - I/O Pins eines Chips
Flag (Fahne). Statusbit in einem Register, das einen Zustand anzeigt.
FPGA Programmierbarer Logikbaustein. Stand der Technik.
Gatter Gruppe von Transistoren, die eine logische Grundfunktion durchführen. Grundfunktionen sind z. B. NAND, NOR, Trans­ mission-Gates.
H-Pegel Logisch 1 Pegel, abhängig von der verwendeten Technologie
Kantenzelle Zelle am Rand eines Zellarrays, oftmals mit direktem Kontakt zu den Anschlüssen eines Bausteines.
konfigurierbares Element. Ein konfigurierbares Element stellt eine Einheit eines Logik-Bausteines dar, welche durch ein Konfigurationswort für eine spezielle Funktion eingestellt werden kann. Konfigurierbare Elemen­ te sind somit, alle Arten von RAM-Zellen, Multiplexer, Arithme­ tische logische Einheiten, Register und alle Arten von interner und externer Vernetzungsbeschreibung etc.
konfigurierbare Zelle. Siehe Logikzellen
Konfigurieren Einstellen der Funktion und Vernetzung einer logischen Einheit, ei­ ner (FPGA)-Zelle oder einer PAE (vgl. umkonfigurieren).
Konfigurationsdaten Beliebige Menge von Konfigurationsworten.
Konfigurationsspeicher. Der Konfigurationsspeicher enthält ein oder mehrere Konfi­ gurationsworte.
Konfigurationswort. Ein Konfigurationswort besteht aus einer beliebig langen Bit- Reihe. Diese Bit-Reihe stellt eine gültige Einstellung für das zu konfigurierende Element dar, so daß eine funktionsfähige Einheit entsteht.
Ladelogik Einheit zum Konfigurieren und Umkonfigurieren der PAE. Ausge­ staltet durch einen speziell an seine Aufgabe angepaßten Mikrokon­ troller.
Latch Speicherelement, das ein Signal für gewöhnlich während des H- Pegels transparent weiterleitet und während des L-Pegels speichert.
In PAEs werden teilweise Latches gebraucht, bei denen die Funktion der Pegel genau umgekehrt ist. Hierbei wird vor den Takt eines üblichen Latch ein Inverter geschaltet.
Logikzellen: Bei DFPs, FPGAs, DPGAs verwendete konfigurierbare Zellen, die einfache logische oder arithmetische Aufgaben gemäß ihrer Konfi­ guration erfüllen.
L-Pegel Logisch 0 Pegel, abhängig von der verwendeten Technologie
Open-Kollektor Schaltungstechnik, bei der der Kollektor eines Transistors an einem, über einen Pullup auf den H-Pegel gezogenen, Bussignal liegt. Der Emitter der Transistors liegt auf Masse. Schaltet der Transistor, so wird das Bussignal auf den L-Pegel gezogen. Vorteil des Verfahrens ist, daß eine Mehrzahl solcher Transistoren den Bus ohne elektrische Kollision steuern können. Dabei sind die Signale ODER-verküpft, es entsteht das sog. wired-OR.
RS-FlipFlop Reset-/Set-FlipFlop. Speicherelement, das durch 2 Signale umge­ schaltet werden kann.
serielle Operationen Operationen, die durch serielles Abarbeiten eines Datenwortes oder eines Algorithmus durchgeführt werden. Serielle Multiplikation, serielle Division, Reihenentwicklung
Umkonfigurieren: Neues Konfigurieren von einer beliebigen Menge von PAEs, während eine beliebige Restmenge von PAEs ihre eigenen Funk­ tionen fortsetzen (vgl. konfigurieren).
Zellen siehe Logikzellen.

Claims (14)

1. Verfahren zur dynamischen Adressgenerierung von konfigurierbarer Bausteinen, mit einer zwei oder mehrdimensionalen Zellanordnung (zum Beispiel FPGAs, DPGAs, DFPs o. ä.) und deren Zellen (konfigurierbaren Elemente), dadurch ge­ kennzeichnet, daß
1. jeder Baustein einen Adresseingang für jede Dimension besitzt, durch den er seine Basisadresse, die die Adresse der ersten Zelle darstellt, erhält,
2. anhand der Basisadresse die baustein-internen Zelladressen (Adressen der konfigurierbaren Elemente) berechnet werden, über die eine Ladelogik die konfigurierbaren Elemente anspricht,
3. über Adressausgänge die Adresse der letzten Zelle plus eins, sowie je nach Ausgestaltung (siehe Unteransprüche) die Bausteinadresse plus eins, an die Nachfolgebausteine weitergegeben wird und deren Grundadresse darstellt,
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Adressein-/ausgänge als parallele Busse ausgestaltet sind.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Adressein-/ausgänge als serielle Busse ausgestaltet sind.
4. Verfahren nach Anspruch 1-3, dadurch gekennzeichnet, daß die Eingangswerte in den Zellen des Zellarrays in jede Richtung weiterübertragen werden, wobei jede Zelle den Wert der Adresse um eins erhöht (vgl. Fig. 2).
5. Verfahren nach Anspruch 1-4, dadurch gekennzeichnet, daß je ein Addierer die Mächtigkeit des Zellarrays in der jeweiligen Richtung auf den Eingangswert plus eins aufaddiert und direkt an den Ausgang weitergibt (vgl. Fig. 1a).
6. Verfahren nach Anspruch 1-4, dadurch gekennzeichnet, daß die Eingangswerte in den Zellen des Zellarrays in jede Richtung weiterübertra­ gen werden, wobei jede Zelle den Wert der Adresse um eins erhöht und der Ausgang der von der ersten Zelle am weitest entferntesten Zelle, also der Zelle mit der höchsten Adresse in alle Richtungen, direkt auf die Adressausgänge des Bausteines geschaltet wird (vgl. Beschreibung von Fig. 2).
7. Verfahren nach Anspruch 1, 3, 4-6, dadurch gekennzeichnet, daß parallele Addierer verwendet werden (Fig. 1c-e).
8. Verfahren nach Anspruch 1, 3, 4-6, dadurch gekennzeichnet, daß serielle Addierer verwendet werden (Fig. 1c-e).
9. Verfahren nach Anspruch 1-8 dadurch gekennzeichnet, daß die Adressen in jeder Zelle über Vergleicher mit der von der Ladeeinheit gene­ rierten Adresse verglichen wird, um einen Zugriff festzustellen (vgl. Fig. 3a, b, 5b).
10. Verfahren nach Anspruch 1-9 dadurch gekennzeichnet, daß die Adressen linear vergeben werden, wodurch ein linearer Adressraum aus Zellen über einer Gruppe von kaskadierten Bausteinen entsteht (vgl. Fig. 3).
11. Verfahren nach Anspruch 1-9 dadurch gekennzeichnet, daß die Adressen aus einem Offset für die Bausteinen und einer linearen Adresse für die Zellen eines Bausteines bestehen, wodurch kein linearer Adressraum aus Zellen über einer Gruppe von kaskadierten Bausteinen entsteht (vgl. Fig. 5).
DE19704044A 1997-02-04 1997-02-04 Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine Withdrawn DE19704044A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE19704044A DE19704044A1 (de) 1997-02-04 1997-02-04 Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
US08/946,999 US6038650A (en) 1997-02-04 1997-10-08 Method for the automatic address generation of modules within clusters comprised of a plurality of these modules

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19704044A DE19704044A1 (de) 1997-02-04 1997-02-04 Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine

Publications (1)

Publication Number Publication Date
DE19704044A1 true DE19704044A1 (de) 1998-08-13

Family

ID=7819195

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19704044A Withdrawn DE19704044A1 (de) 1997-02-04 1997-02-04 Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine

Country Status (2)

Country Link
US (1) US6038650A (de)
DE (1) DE19704044A1 (de)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002071196A2 (de) 2001-03-05 2002-09-12 Pact Informationstechnologie Gmbh Verfahren und vorrichtung zu datenbe- und/oder verarbeitung
WO2003025781A2 (de) 2001-09-19 2003-03-27 Pact Xpp Technologies Ag Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
DE10306149A1 (de) * 2003-02-14 2004-09-02 Infineon Technologies Ag Verfahren und Schaltung zum Zuweisen von Speicheranordnungs-Adressen
WO2006082091A2 (en) 2005-02-07 2006-08-10 Pact Xpp Technologies Ag Low latency massive parallel data processing device
EP1845623A2 (de) 2000-10-06 2007-10-17 PACT XPP Technologies AG Verfahren und Vorrichtung
US7650448B2 (en) 1996-12-20 2010-01-19 Pact Xpp Technologies Ag I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US7657877B2 (en) 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US7782087B2 (en) 2002-09-06 2010-08-24 Martin Vorbach Reconfigurable sequencer structure
US7822881B2 (en) 1996-12-27 2010-10-26 Martin Vorbach Process for automatic dynamic reloading of data flow processors (DFPs) and units with two- or three-dimensional programmable cell architectures (FPGAs, DPGAs, and the like)
US7822968B2 (en) 1996-12-09 2010-10-26 Martin Vorbach Circuit having a multidimensional structure of configurable cells that include multi-bit-wide inputs and outputs
US7840842B2 (en) 2001-09-03 2010-11-23 Martin Vorbach Method for debugging reconfigurable architectures
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US8099618B2 (en) 2001-03-05 2012-01-17 Martin Vorbach Methods and devices for treating and processing data
US8127061B2 (en) 2002-02-18 2012-02-28 Martin Vorbach Bus systems and reconfiguration methods
US8156284B2 (en) 2002-08-07 2012-04-10 Martin Vorbach Data processing method and device
US8209653B2 (en) 2001-09-03 2012-06-26 Martin Vorbach Router
US8230411B1 (en) 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
US8281108B2 (en) 2002-01-19 2012-10-02 Martin Vorbach Reconfigurable general purpose processor having time restricted configurations
US8301872B2 (en) 2000-06-13 2012-10-30 Martin Vorbach Pipeline configuration protocol and configuration unit communication
USRE44365E1 (en) 1997-02-08 2013-07-09 Martin Vorbach Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US8812820B2 (en) 2003-08-28 2014-08-19 Pact Xpp Technologies Ag Data processing device and method
US8819505B2 (en) 1997-12-22 2014-08-26 Pact Xpp Technologies Ag Data processor having disabled cores
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
DE19704728A1 (de) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
DE19704742A1 (de) * 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
DE19807872A1 (de) 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
US20040015899A1 (en) * 2000-10-06 2004-01-22 Frank May Method for processing data
US6990555B2 (en) * 2001-01-09 2006-01-24 Pact Xpp Technologies Ag Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
US7577822B2 (en) * 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
WO2003081454A2 (de) * 2002-03-21 2003-10-02 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
JP2006524850A (ja) * 2003-04-04 2006-11-02 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理方法およびデータ処理装置
US20060015596A1 (en) * 2004-07-14 2006-01-19 Dell Products L.P. Method to configure a cluster via automatic address generation
WO2007062327A2 (en) * 2005-11-18 2007-05-31 Ideal Industries, Inc. Releasable wire connector
US9519278B2 (en) * 2014-06-09 2016-12-13 Richard J. Petrocy Modularized self-addressing apparatus and method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4416881A1 (de) * 1993-05-13 1994-11-17 Martin Vorbach Datenverarbeitungseinrichtung
WO1996004603A1 (en) * 1994-08-01 1996-02-15 International Business Machines Corporation Self-configuring computer system
US5555401A (en) * 1992-08-26 1996-09-10 Sun Microsystems, Inc. Self configuring device system

Family Cites Families (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US34363A (en) * 1862-02-11 Improvement in machinery for cleaning cotton
US4739474A (en) * 1983-03-10 1988-04-19 Martin Marietta Corporation Geometric-arithmetic parallel processor
US5123109A (en) * 1983-05-31 1992-06-16 Thinking Machines Corporation Parallel processor including a processor array with plural data transfer arrangements including (1) a global router and (2) a proximate-neighbor transfer system
USRE34363E (en) 1984-03-12 1993-08-31 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4761755A (en) * 1984-07-11 1988-08-02 Prime Computer, Inc. Data processing system and method having an improved arithmetic unit
US5023775A (en) * 1985-02-14 1991-06-11 Intel Corporation Software programmable logic array utilizing "and" and "or" gates
US5247689A (en) * 1985-02-25 1993-09-21 Ewert Alfred P Parallel digital processor including lateral transfer buses with interrupt switches to form bus interconnection segments
US4706216A (en) * 1985-02-27 1987-11-10 Xilinx, Inc. Configurable logic element
US5225719A (en) * 1985-03-29 1993-07-06 Advanced Micro Devices, Inc. Family of multiple segmented programmable logic blocks interconnected by a high speed centralized switch matrix
US5015884A (en) * 1985-03-29 1991-05-14 Advanced Micro Devices, Inc. Multiple array high performance programmable logic device family
US4967340A (en) * 1985-06-12 1990-10-30 E-Systems, Inc. Adaptive processing system having an array of individually configurable processing components
EP0221360B1 (de) * 1985-11-04 1992-12-30 International Business Machines Corporation Digitale Nachrichtenübertragungsnetzwerke und Aufbau von Übertragungswegen in diesen Netzwerken
US5021947A (en) * 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
US5367208A (en) * 1986-09-19 1994-11-22 Actel Corporation Reconfigurable programmable interconnect architecture
US4811214A (en) * 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
US5226122A (en) * 1987-08-21 1993-07-06 Compaq Computer Corp. Programmable logic system for filtering commands to a microprocessor
US5303172A (en) * 1988-02-16 1994-04-12 Array Microsystems Pipelined combination and vector signal processor
US4901268A (en) * 1988-08-19 1990-02-13 General Electric Company Multiple function data processor
US5204935A (en) * 1988-08-19 1993-04-20 Fuji Xerox Co., Ltd. Programmable fuzzy logic circuits
DE68926783T2 (de) * 1988-10-07 1996-11-28 Martin Marietta Corp Paralleler datenprozessor
US5014193A (en) * 1988-10-14 1991-05-07 Compaq Computer Corporation Dynamically configurable portable computer system
US5136717A (en) * 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
US5081375A (en) * 1989-01-19 1992-01-14 National Semiconductor Corp. Method for operating a multiple page programmable logic device
GB8906145D0 (en) * 1989-03-17 1989-05-04 Algotronix Ltd Configurable cellular array
US5203005A (en) * 1989-05-02 1993-04-13 Horst Robert W Cell structure for linear array wafer scale integration architecture with capability to open boundary i/o bus without neighbor acknowledgement
US5109503A (en) * 1989-05-22 1992-04-28 Ge Fanuc Automation North America, Inc. Apparatus with reconfigurable counter includes memory for storing plurality of counter configuration files which respectively define plurality of predetermined counters
US5233539A (en) * 1989-08-15 1993-08-03 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure, input/output structure and configurable logic block
US5212652A (en) * 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
US5489857A (en) * 1992-08-03 1996-02-06 Advanced Micro Devices, Inc. Flexible synchronous/asynchronous cell structure for a high density programmable logic device
US5128559A (en) * 1989-09-29 1992-07-07 Sgs-Thomson Microelectronics, Inc. Logic block for programmable logic devices
JP2968289B2 (ja) * 1989-11-08 1999-10-25 株式会社リコー 中央演算処理装置
GB8925721D0 (en) * 1989-11-14 1990-01-04 Amt Holdings Processor array system
US5522083A (en) * 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
US5125801A (en) * 1990-02-02 1992-06-30 Isco, Inc. Pumping system
US5142469A (en) * 1990-03-29 1992-08-25 Ge Fanuc Automation North America, Inc. Method for converting a programmable logic controller hardware configuration and corresponding control program for use on a first programmable logic controller to use on a second programmable logic controller
US5198705A (en) * 1990-05-11 1993-03-30 Actel Corporation Logic module with configurable combinational and sequential blocks
US5483620A (en) * 1990-05-22 1996-01-09 International Business Machines Corp. Learning machine synapse processor system apparatus
US5111079A (en) * 1990-06-29 1992-05-05 Sgs-Thomson Microelectronics, Inc. Power reduction circuit for programmable logic device
SE9002558D0 (sv) * 1990-08-02 1990-08-02 Carlstedt Elektronik Ab Processor
ATE180586T1 (de) * 1990-11-13 1999-06-15 Ibm Paralleles assoziativprozessor-system
US5588152A (en) * 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5301344A (en) * 1991-01-29 1994-04-05 Analogic Corporation Multibus sequential processor to perform in parallel a plurality of reconfigurable logic operations on a plurality of data sets
DE59109046D1 (de) * 1991-02-22 1998-10-08 Siemens Ag Programmierverfahren für einen Logikbaustein
JPH04290155A (ja) * 1991-03-19 1992-10-14 Fujitsu Ltd 並列データ処理方式
JPH04293151A (ja) * 1991-03-20 1992-10-16 Fujitsu Ltd 並列データ処理方式
EP0539595A4 (en) * 1991-04-09 1994-07-20 Fujitsu Ltd Data processor and data processing method
WO1992022029A1 (en) * 1991-05-24 1992-12-10 British Technology Group Usa, Inc. Optimizing compiler for computers
US5338984A (en) * 1991-08-29 1994-08-16 National Semiconductor Corp. Local and express diagonal busses in a configurable logic array
US5260610A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
US5208491A (en) * 1992-01-07 1993-05-04 Washington Research Foundation Field programmable gate array
EP0643855A1 (de) * 1992-06-04 1995-03-22 Xilinx, Inc. Zeitliche steuerung für die implantierung einer gebrauchsschaltung auf einer programmierbaren integrierten schaltungsanordnung
US5475803A (en) * 1992-07-10 1995-12-12 Lsi Logic Corporation Method for 2-D affine transformation of images
US5329179A (en) * 1992-10-05 1994-07-12 Lattice Semiconductor Corporation Arrangement for parallel programming of in-system programmable IC logical devices
US5497498A (en) * 1992-11-05 1996-03-05 Giga Operations Corporation Video processing module using a second programmable logic device which reconfigures a first programmable logic device for data transformation
US5361373A (en) * 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
GB9303084D0 (en) * 1993-02-16 1993-03-31 Inmos Ltd Programmable logic circuit
JPH06276086A (ja) * 1993-03-18 1994-09-30 Fuji Xerox Co Ltd フィールドプログラマブルゲートアレイ
US5548773A (en) * 1993-03-30 1996-08-20 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Digital parallel processor array for optimum path planning
US5473266A (en) * 1993-04-19 1995-12-05 Altera Corporation Programmable logic device having fast programmable logic array blocks and a central global interconnect array
US5444394A (en) * 1993-07-08 1995-08-22 Altera Corporation PLD with selective inputs from local and global conductors
JPH0736858A (ja) * 1993-07-21 1995-02-07 Hitachi Ltd 信号処理プロセッサ
US5457644A (en) * 1993-08-20 1995-10-10 Actel Corporation Field programmable digital signal processing array integrated circuit
US5455525A (en) * 1993-12-06 1995-10-03 Intelligent Logic Systems, Inc. Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array
JP2845115B2 (ja) * 1993-12-29 1999-01-13 ヤマハ株式会社 デジタル信号処理回路
US5535406A (en) * 1993-12-29 1996-07-09 Kolchinsky; Alexander Virtual processor module including a reconfigurable programmable matrix
US5590351A (en) * 1994-01-21 1996-12-31 Advanced Micro Devices, Inc. Superscalar execution unit for sequential instruction pointer updates and segment limit checks
US5561738A (en) * 1994-03-25 1996-10-01 Motorola, Inc. Data processor for executing a fuzzy logic operation and method therefor
US5430687A (en) * 1994-04-01 1995-07-04 Xilinx, Inc. Programmable logic device including a parallel input device for loading memory cells
US5426378A (en) * 1994-04-20 1995-06-20 Xilinx, Inc. Programmable logic device which stores more than one configuration and means for switching configurations
US5532693A (en) * 1994-06-13 1996-07-02 Advanced Hardware Architectures Adaptive data compression system with systolic string matching logic
US5513366A (en) * 1994-09-28 1996-04-30 International Business Machines Corporation Method and system for dynamically reconfiguring a register file in a vector processor
US5493239A (en) * 1995-01-31 1996-02-20 Motorola, Inc. Circuit and method of configuring a field programmable gate array
US5532957A (en) * 1995-01-31 1996-07-02 Texas Instruments Incorporated Field reconfigurable logic/memory array
US5659785A (en) * 1995-02-10 1997-08-19 International Business Machines Corporation Array processor communication architecture with broadcast processor instructions
US5537057A (en) * 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of conductors
US5570040A (en) * 1995-03-22 1996-10-29 Altera Corporation Programmable logic array integrated circuit incorporating a first-in first-out memory
US5541530A (en) * 1995-05-17 1996-07-30 Altera Corporation Programmable logic array integrated circuits with blocks of logic regions grouped into super-blocks
US5646544A (en) * 1995-06-05 1997-07-08 International Business Machines Corporation System and method for dynamically reconfiguring a programmable gate array
US5559450A (en) * 1995-07-27 1996-09-24 Lucent Technologies Inc. Field programmable gate array with multi-port RAM
US5583450A (en) * 1995-08-18 1996-12-10 Xilinx, Inc. Sequencer for a time multiplexed programmable logic device
US5842034A (en) * 1996-12-20 1998-11-24 Raytheon Company Two dimensional crossbar mesh for multi-processor interconnect

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555401A (en) * 1992-08-26 1996-09-10 Sun Microsystems, Inc. Self configuring device system
DE4416881A1 (de) * 1993-05-13 1994-11-17 Martin Vorbach Datenverarbeitungseinrichtung
WO1996004603A1 (en) * 1994-08-01 1996-02-15 International Business Machines Corporation Self-configuring computer system

Cited By (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822968B2 (en) 1996-12-09 2010-10-26 Martin Vorbach Circuit having a multidimensional structure of configurable cells that include multi-bit-wide inputs and outputs
US8156312B2 (en) 1996-12-09 2012-04-10 Martin Vorbach Processor chip for reconfigurable data processing, for processing numeric and logic operations and including function and interconnection control units
US7650448B2 (en) 1996-12-20 2010-01-19 Pact Xpp Technologies Ag I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
US8195856B2 (en) 1996-12-20 2012-06-05 Martin Vorbach I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
US7899962B2 (en) 1996-12-20 2011-03-01 Martin Vorbach I/O and memory bus system for DFPs and units with two- or multi-dimensional programmable cell architectures
US7822881B2 (en) 1996-12-27 2010-10-26 Martin Vorbach Process for automatic dynamic reloading of data flow processors (DFPs) and units with two- or three-dimensional programmable cell architectures (FPGAs, DPGAs, and the like)
USRE45223E1 (en) 1997-02-08 2014-10-28 Pact Xpp Technologies Ag Method of self-synchronization of configurable elements of a programmable module
USRE45109E1 (en) 1997-02-08 2014-09-02 Pact Xpp Technologies Ag Method of self-synchronization of configurable elements of a programmable module
USRE44383E1 (en) 1997-02-08 2013-07-16 Martin Vorbach Method of self-synchronization of configurable elements of a programmable module
USRE44365E1 (en) 1997-02-08 2013-07-09 Martin Vorbach Method of self-synchronization of configurable elements of a programmable module
US8819505B2 (en) 1997-12-22 2014-08-26 Pact Xpp Technologies Ag Data processor having disabled cores
US8468329B2 (en) 1999-02-25 2013-06-18 Martin Vorbach Pipeline configuration protocol and configuration unit communication
US8230411B1 (en) 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
US8726250B2 (en) 1999-06-10 2014-05-13 Pact Xpp Technologies Ag Configurable logic integrated circuit having a multidimensional structure of configurable elements
US8312200B2 (en) 1999-06-10 2012-11-13 Martin Vorbach Processor chip including a plurality of cache elements connected to a plurality of processor cores
US8301872B2 (en) 2000-06-13 2012-10-30 Martin Vorbach Pipeline configuration protocol and configuration unit communication
US9047440B2 (en) 2000-10-06 2015-06-02 Pact Xpp Technologies Ag Logical cell array and bus system
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US8471593B2 (en) 2000-10-06 2013-06-25 Martin Vorbach Logic cell array and bus system
EP1845623A2 (de) 2000-10-06 2007-10-17 PACT XPP Technologies AG Verfahren und Vorrichtung
WO2002071196A2 (de) 2001-03-05 2002-09-12 Pact Informationstechnologie Gmbh Verfahren und vorrichtung zu datenbe- und/oder verarbeitung
US9075605B2 (en) 2001-03-05 2015-07-07 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US8099618B2 (en) 2001-03-05 2012-01-17 Martin Vorbach Methods and devices for treating and processing data
US8145881B2 (en) 2001-03-05 2012-03-27 Martin Vorbach Data processing device and method
US8312301B2 (en) 2001-03-05 2012-11-13 Martin Vorbach Methods and devices for treating and processing data
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7657877B2 (en) 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US8869121B2 (en) 2001-08-16 2014-10-21 Pact Xpp Technologies Ag Method for the translation of programs for reconfigurable architectures
US8209653B2 (en) 2001-09-03 2012-06-26 Martin Vorbach Router
US8069373B2 (en) 2001-09-03 2011-11-29 Martin Vorbach Method for debugging reconfigurable architectures
US7840842B2 (en) 2001-09-03 2010-11-23 Martin Vorbach Method for debugging reconfigurable architectures
US8407525B2 (en) 2001-09-03 2013-03-26 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US8429385B2 (en) 2001-09-03 2013-04-23 Martin Vorbach Device including a field having function cells and information providing cells controlled by the function cells
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
WO2003025781A2 (de) 2001-09-19 2003-03-27 Pact Xpp Technologies Ag Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US8281108B2 (en) 2002-01-19 2012-10-02 Martin Vorbach Reconfigurable general purpose processor having time restricted configurations
US8127061B2 (en) 2002-02-18 2012-02-28 Martin Vorbach Bus systems and reconfiguration methods
US8156284B2 (en) 2002-08-07 2012-04-10 Martin Vorbach Data processing method and device
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US8281265B2 (en) 2002-08-07 2012-10-02 Martin Vorbach Method and device for processing data
US7928763B2 (en) 2002-09-06 2011-04-19 Martin Vorbach Multi-core processing system
US7782087B2 (en) 2002-09-06 2010-08-24 Martin Vorbach Reconfigurable sequencer structure
US8803552B2 (en) 2002-09-06 2014-08-12 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US8310274B2 (en) 2002-09-06 2012-11-13 Martin Vorbach Reconfigurable sequencer structure
US7149864B2 (en) 2003-02-14 2006-12-12 Infineon Technologies Ag Method and circuit for allocating memory arrangement addresses
DE10306149A1 (de) * 2003-02-14 2004-09-02 Infineon Technologies Ag Verfahren und Schaltung zum Zuweisen von Speicheranordnungs-Adressen
DE10306149B4 (de) * 2003-02-14 2007-08-30 Infineon Technologies Ag Verfahren zum Zuweisen von Speicheranordnungs-Adressen, Pufferbaustein und Speichermodul
US8812820B2 (en) 2003-08-28 2014-08-19 Pact Xpp Technologies Ag Data processing device and method
WO2006082091A2 (en) 2005-02-07 2006-08-10 Pact Xpp Technologies Ag Low latency massive parallel data processing device
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software

Also Published As

Publication number Publication date
US6038650A (en) 2000-03-14

Similar Documents

Publication Publication Date Title
DE19704044A1 (de) Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
EP0951682B1 (de) IO- UND SPEICHERBUSSYSTEM FÜR DFPs SOWIE BAUSTEINE MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN
EP0499695B1 (de) Speicherprogrammierbare Steuerung
EP1222739B1 (de) Rekonfigurierbares gate-array
DE69534812T2 (de) Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration
DE3630835C2 (de) Integrierte Halbleiterkreisanordnungen und Systeme
EP0960374B1 (de) Internes bussystem für dfps, sowie bausteine mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen, zur bewältigung grosser datenmengen mit hohem vernetzungsaufwand
DE2455803C2 (de) Mehrprozessor-Datenverarbeitungsanlage
DE4416881A1 (de) Datenverarbeitungseinrichtung
DE19704728A1 (de) Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
EP1329816A2 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
EP1164474A2 (de) Verfahren zum hierarchischen Cachen von Konfigurationsdaten von Datenflussprozessoren
WO2005078599A1 (de) Rekonfigurierbares schaltwerk zur parallelen berechung beliebiger algorithmen
WO2002071248A2 (de) Verfahren und vorrichtungen zur datenbe- und/oder verarbeitung
DE10241385A1 (de) Integrierter Schaltkreis
DE10347975B4 (de) Einrichtung der programmierbaren Logik
EP1789889A1 (de) Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten
DE602004005806T2 (de) Serieller Speicher mit Mitteln zur Integration eines erweiterten Speicherfeldes
DE2738594C2 (de)
DE19758032A1 (de) Schnittstelle für mehrere CAN-Datenverarbeitungsnetzwerke und Verfahren zum Betreiben einer Schnittstelle
EP3142032B1 (de) Verfahren zum ändern der konfiguration eines programmierbaren logikbausteins
DE4447707B4 (de) Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik
DE4445310C2 (de) Ausgangssteuerschaltung
EP3632066B1 (de) Vorladen von instruktionen
DE19837101C2 (de) Programmierbare 1-Bit Datenverarbeitungsanordnung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: PACT XPP TECHNOLOGIES AG, 80939 MUENCHEN, DE

8127 New person/name/address of the applicant

Owner name: KRASS, MAREN, ZUERICH, CH

Owner name: RICHTER, THOMAS, 04703 BOCKELWITZ, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110901