DE19704742A1 - Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand - Google Patents

Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand

Info

Publication number
DE19704742A1
DE19704742A1 DE19704742A DE19704742A DE19704742A1 DE 19704742 A1 DE19704742 A1 DE 19704742A1 DE 19704742 A DE19704742 A DE 19704742A DE 19704742 A DE19704742 A DE 19704742A DE 19704742 A1 DE19704742 A1 DE 19704742A1
Authority
DE
Germany
Prior art keywords
bus
connection
node
data
bus system
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
DE19704742A
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.)
PACT INF TECH GmbH
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 DE19704742A priority Critical patent/DE19704742A1/de
Priority to EP98909365A priority patent/EP0960374B1/de
Priority to CA002280057A priority patent/CA2280057A1/en
Priority to PCT/DE1998/000456 priority patent/WO1998035294A2/de
Priority to AT98909365T priority patent/ATE256888T1/de
Priority to EP03021585A priority patent/EP1398706A3/de
Priority to AU63924/98A priority patent/AU6392498A/en
Priority to DE19880128T priority patent/DE19880128D2/de
Priority to JP53357998A priority patent/JP3894957B2/ja
Priority to DE59810469T priority patent/DE59810469D1/de
Priority to US09/145,139 priority patent/US6405299B1/en
Publication of DE19704742A1 publication Critical patent/DE19704742A1/de
Priority to US10/116,986 priority patent/US7010667B2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17704Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/1778Structural details for adapting physical parameters
    • H03K19/17796Structural details for adapting physical parameters for physical disposition of blocks

Description

1 Hintergrund der Erfindung 1.1 Stand der Technik 1.1.1 . . . in Systemen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs)
In FPGAs und DPGAs befinden sich interne Bussysteme, die entweder global Anschluß an alle oder eine große Menge von Logikzellen haben oder eine lokale NextNeighbour- Verbindung aufweisen. Beiden Arten ist gemeinsam, daß es sich um direkte Verbindun­ gen zwischen zwei oder mehreren Logikzellen handelt. Weiterhin kann immer genau ein Signal den Bus benutzen, es sei denn, daß eine Multiplexerstruktur in eine Mehrzahl von Logikzellen zusammen mit einer Steuerung konfiguriert wird.
1.1.2 . . . in DFP-basierenden Systemen
In DFP-basierenden Systemen, nach DE 44 16 881 existieren die selben bereits be­ schriebenen Bussysteme. Zusätzlich existiert die Möglichkeit ein Bussystem zu trennen, so daß mehrere getrennt nutzbare Teilbusse entstehen.
1.1.3 . . . in IO-Bussysteme nach PACT03
In PACT03 wird ein IO-Bussystem beschrieben, das eine Vielzahl Bausteininterner Bus­ systeme, wobei ein Baustein ein FPGA, DPGA, DFP oder ähnlicher sein kann, zu­ sammenfaßt und aus dem Baustein herausführt. Dabei können Speicherbaugruppen oder Peripherie oder weitere Bausteine oben genannter Gattung angesteuert werden. Es existiert nur ein Adressregister, bzw. ein Adresszähler um die externen Adressen zu generieren.
1.2 Probleme
Die üblichen Bussysteme sind nicht dazu geeignet große Datenmengen in Form von byteweise oder anders gruppierten Signalen zu übertragen. Besonders wenn die Bau­ steine zur Berechnung von Algorithmen verwendet werden ist es erforderlich, daß eine Vielzahl von Daten(paketen) gleichzeitig zwischen den einzelnen konfigurierten Funkti­ onsbereichen eines Bausteines übertragen werden. In der üblichen Technik muß für jeden Datenpfad, das ist die Verbindung (der Bus) zweier (oder mehrerer) Funktionsblöcke, die dieselben Daten erhalten, eine direkte Punkt zu Punkt Verbindung aufgebaut wer­ den, die dann ausschließlich den Datenverkehr zwischen eben diesen Funktionsblöcken regelt. Es kann sich immer genau ein Datenpaket auf dem Bus befinden. Der Vernet­ zungsaufwand wird extrem hoch. Die Geschwindigkeit der heutigen internen Busse wird begrenzt durch die maximale Busbreite und die Laufzeit der Signale auf dem Bus. Beim in PACT03 beschriebenen IO-Bus kann pro IO-Zelle nur eine Art von Busverbindung aufgebaut werden, nämlich ausschließlich die in dem Adressregister programmierte. Es besteht keine Möglichkeit auf verschiedene Datentypen oder Datensender zu reagieren und diese mit verschiedenen externen Bausteinen zu verbinden.
1.3 Verbesserung durch die Erfindung, Aufgabe
Ziel der Erfindung ist es, ein Bussystem zu schaffen, das Daten zwischen einer Vielzahl von Funktionsblöcken übertragen kann, wobei sich mehrere Datenpakete gleichzeitig auf dem Bus befinden können. Dabei erkennt das Bussystem für verschiedene Daten­ typen oder Datensender automatisch die richtige Verbindung und baut diese auf. Die Einzelheiten und besondere Ausgestaltungen, sowie Merkmale des erfindungsgemäßen Bussystems sind Gegenstand der Patentansprüche.
2 Beschreibung der Erfindung 2.1 Übersicht über die Erfindung. Abstrakt
Beschrieben wird ein Bussystem, das horizontal, vertikal, diagonal oder in jeder beliebi­ gen Lage auf einem Baustein integriert werden kann. Das Bussystem ist in eine Vielzahl von Segmenten unterteilt, wobei die Trennung der Segmente durch eine Bussteuerschal­ tung erfolgt. Diese Bussteuerschaltung wird Knoten genannt. Gleichzeitig übernimmt der Knoten das Routen, also das Steuern der Flußrichtung der Daten. Logikzellen oder PAE-Zellen nach PACT02 sind an die Knoten angeschlossen, sie senden und empfan­ gen ihre Daten über die Knoten, wobei jedem Datenpaket eine Zieladresse mitgegeben werden kann. Ebenfalls ist das Bussystem in der Lage über LookUp-Tabellen, im fol­ genden Routingtabellen genannt. Zieladressen zu generieren, hierzu kann vor allem das in PACT04 beschriebene Verfahren dienen. Die Bussysteme sind besonders zu einem di­ rekten Anschluß an die in PACT03 beschriebenen INPUT-/OUTPUT-CELLs geeignet. Das Auf- und Abbauen von Verbindungen, sowie die Synchronisation der Daten erfolgt automatisch. Schlägt ein Aufbau fehl, da das benötigte Bussegment momentan belegt ist, wird der Aufbau zu einem späteren Zeitpunkt wiederholt. Anhand unterschiedli­ cher Datentypen oder Datensender können automatisch unterschiedliche Verbindungen aufgebaut werden.
3 Detailbeschreibung der Erfindung 3.1 Das Bussystem
Auf einem Baustein befinden sich eine Vielzahl von Bussen, die horizontal, vertikal, diagonal oder in jeder beliebigen Lage auf dem Baustein angeordnet sind. Dabei sind die einzelnen Busse nicht durchgehend von einer Bausteinkante zur anderen, sondern sie sind in eine Mehrzahl von Bussegmenten unterteilt. Die Bussegmente werden durch die nachfolgend beschriebenen Knoten getrennt. Jedes Bussegment ist unabhängig von den anderen nutzbar und verschaltbar, wobei die Verschaltung von den Knoten übernommen wird. Auf dem Bussystem ist kann ein eigenes Protokoll implementiert sein, das von den Knoten verwaltet wird; ebenfalls ist denkbar, daß das Protokoll von den Zellen, die den Bus benutzen verwaltet wird und die Knoten nur passive Schalter sind.
3.2 Der Knoten
Ein Knoten dient der Verschaltung der einzelnen Bussegmente miteinander. Ebenfalls wird das Aufschalten der Zellen auf die Bussegmente von den Knoten übernommen.
In einem Knoten sind die Bussegmente aller Richtungen zusammengeführt, das bedeu­ tet,
  • - in einem zweidimensionalen System werden die Busse aus 4 Richtungen Norden (N), Süden (S). Osten (E), Westen (W) auf den Knoten geführt;
  • - in einem dreidimensionalen System werden die Busse aus 6 Richtungen Norden (N), Süden (S), Osten (E), Westen (W), Oben (T). Unten (B) auf den Knoten geführt.
  • - in einem n-dimensionalen System werden die Busse aus 2 × n Richtungen (je Dimension existiert ein Richtungsvektor dessen Richtung durch das Vorzeichen bestimmt wird ⇒ pro Dimension existieren zwei Richtungen, die durch das Vor­ zeichen des Richtungsvektors unterschieden werden) auf den Knoten geführt.
Innerhalb des Knotens befindet sich ein Bussystem, auf das die externen Busse auf­ geschaltet werden und das somit aus mehreren Sammelschienen besteht. Ein externer erster Bus wird über ein Tor auf eine Sammelschiehne aufgeschaltet. Über ein weiteres Tor wird die Sammelschiene auf den externen zweiten Bus aufgeschaltet. Um Broadca­ sting, das Versenden von Daten an mehrere Empfänger, zu ermöglichen, können auch mehrere "zweite" Busse auf das interne Bussystem geschaltet werden. Die Tore können dabei als rein passive Schalter oder als Bustreiber ausgestaltet sein.
Weiterhin hat der Knoten Zugriff auf eine (oder mehrere) mit ihm verbundene(n) kon­ figurierbaren Elemente (Zellen). Diese verbindet er gegebenenfalls mit einem oder meh­ reren der angrenzenden Bussegmente.
3.3 Das Routingverfahren
Eine Verbindung wird initiiert von einem Datensender (DS) - dies ist ein konfigu­ rierbares Element (Logikzelle, Buszelle (auch Externe gemäß PACT03)) -, der eine Verbindung zu einem Datenempfänger (DE) - der ebenfalls aus einem konfigurierba­ ren Element besteht - benötigt. Hierzu teilt der DS dem Knoten seine Busanforderung mit. Der erste Knoten direkt nach einem Datensender wird Initiator-Knoten genannt. Der entnimmt, wie nachfolgend beschrieben, einer internen Tabelle die Adresse des nächsten für den Datentransfers benötigten Knotens. Sofern der Knoten in der Lage ist, das erste benötigte Bussegment anzusprechen - das ist immer dann möglich, wenn das Bussegment und eine interne Sammelschiene des Knoten frei ist - baut er die Verbindung auf, ansonsten weist er die Anforderung des DS zurück und der DS ver­ sucht den Zugriff zu einem späteren Zeitpunkt noch einmal, oder wartet und hält die Zugriffsanforderung weiter aufrecht, bis der Knoten sie akzeptiert.
Jeder nachfolgende Knoten entnimmt wiederum die Adresse des nächsten Knotens aus seiner internen Tabelle und setzt den Aufbau der Verbindung fort. Ist der Knoten nicht in der Lage den Aufbau der Verbindung durchzuführen (entweder ist das benötigte Bussegment besetzt oder die Sammelschiene des Knotens ist nicht frei), so kann er entweder in einen Wartezustand springen, oder den Aufbau unterbrechen und einen Fehler an den Initiator-Knoten zurückmelden.
Erst wenn eine Verbindung komplett aufgebaut ist, werden die Datenpakete übertragen und der Sender erhält erhält die Quittierungssignale für den Datenaustausch (vgl. rACK in PACT02). Dadurch wird der Datentransfer automatisch mit den Datensendern synchronistiert. Schlägt der Verbindungsaufbau fehl und muß er zu einem späteren Zeit­ punkt wiederholt werden, erhält der Datensender kein Quittierungssignal, somit gehen keine Daten verloren.
Ist die Verbindung komplett aufgebaut, bleibt sie so lange quasi-permanent (das bedeu­ tet, sie erscheint dem DS und DE wie eine direkte Verbindung) stehen, bis der DS die Verbindung durch eine Meldung an den Initiator-Knoten wieder auflöst. Es ist denkbar ein Timeout-Verfahren zu implementieren, das eine stehende Verbindung nach einer gewissen Zeit unterbricht, ins besondere dann, wenn längere Zeit kein Datentransfer stattgefunden hat, um die Bussegmente für andere Verbindungen freizugeben.
3.4 Die Routingtabellen
Grundbaustein eines Knotens ist eine Routing-Tabelle, ähnlich der in PACT04 beschrie­ benen Switching-Tabellen.
Der mögliche Aufbau einer solchen Tabelle ist wird anhand eines Ausführungsbeispieles beschrieben:
Jede Zeile stellt eine gültige Verbindung dar. Dabei können mehrere Verbindungen gleichzeitig aktiv sein, maximal so viel Verbindungen, wie freie interne Sammelschie­ nen und freie externe Bussegmente existieren. Eine nachfolgend beschriebene Überwa­ chungslogik übernimmt die Prüfung, ob eine neu ausgewählte Verbindung aufgebaut werden kann.
Jede Zeile wird über ihre binäre Adresse angesprochen und ausgewählt. Weiterhin gibt es Sonderzeilen, die keine binäre Adresse besitzen, sondern über Triggersignale oder Zustandssignalen selektiert werden. Zu diesen Signalen gehören (vgl. PACT02)
  • - rRDYI, rRDYh
  • - oACK1, oACK2.
Hierbei werden Busverbindungen zu den Datenempfängern (rRDY) automatisch immer dann aufgebaut, wenn die Datensender-Zelle gültige Ergebnisse besitzt. Bei den Signa­ len oACK ist der Empfänger-/Senderablauf vertauscht. Der Datenempfänger baut die Verbindung zu seinem Datensender auf, sobald der Datenempfänger seine Operanden abgearbeitet hat und in der Lage ist neue Operanden zu verarbeiten.
In den Spalten Tor werden die für die jeweilige Verbindung aktiven Tore eingetragen, dabei ist es möglich, daß nur ein Tor markiert ist und in den Spalten EALU eine Ver­ bindung zu einem konfigurierbaren Element (einer oder mehrerer Zellen) zum Beispiel zu einem R-REG oder O-REG (vgl. PACT02) gewählt wird.
In der Spalte Bus wird die für diese Verbindung verwendete interne Sammelschiene ausgewählt, dabei ist der Wert binär, so daß in der beschriebenen Tabelle insgesamt 4 interne Sammelschienen benutzt werden können. Die Auswahl der internen Sammel­ schienen kann auch entfallen, in dem ein Prioritätsdekoder die erste freie Sammelschiene erkennt und diese automatisch zuteilt.
In der Spalte Eintrag Position in Zieltabelle wird die Adresse der Zeile der Tabelle angegeben, die den Knoten steuert, zu dem Verbindung aufgenommen wird. An dieser Adresse stehen die für die aktuelle Verbindung benötigten Routinginformationen im nächsten Knoten.
Die Spalte Laufzeit ist optional. Darin kann die erwartete Signallaufzeit vom DS zum DE angegeben werden. Diese Information kann für Berechnungen des Datendurchsatzes oder zur Generierung eines Timeout verwendet werden.
Die Spalte Aufbauzeit ist optional. Darin kann die maximale Zeit zum Aufbauen der Verbindung zum nächsten Knoten (oder der gesamten Verbindung vom DS zum DE) angegeben werden. Wird diese Zeit überschritten kann über einen Timeout der Verbin­ dungsaufbau abgebrochen werden und die Bussegmente und Knoten werden für andere Verbindungen frei. Zu einem späteren Zeitpunkt versucht der DS erneut die Verbindung herzustellen.
Die Einträge in der Routingtabelle können gemäß bekannten Verfahren (PACT02, PACT04) von einer Ladelogik konfiguriert und umkonfiguriert werden.
3.5 Der Arbiter
Der Routingtabelle vorgeschaltet ist ein Arbiter. die aus der Menge der Anfragen zum Verbindungsaufbau über die Routingtabelle einige Signale auswählt. Dabei ist es sinnvoll den Arbiter aus einem gewöhnlichen Priority-Logik und einem sogenannten Round- Robin-Arbiter nach dem Stand der Technik (er schaltet die höchste Priorität auf einer Zeitscheibe immer dem nächsten Signal zu, das bedeutet, das Signal, das momentan die höchste Priorität hat, wird als nächstes die Niederste besitzen und dann mit jedem Zugriff eine Höhere erhalten) aufzubauen. Dabei kann die Priority-Logik dazu dienen einigen Signalen, wie zum Beispiel rACK, oRDY grundsätzlich eine besonders hohe - oder besonders niedere - Priorität zuzuordnen. Der Round-Robin-Arbiter sorgt dafür, daß ein angeforderter Verbindungsaufbau, der soeben nicht aufbaubar war, die niederste Priorität erhält und somit wartet, bis alle anderen Verbindungsanforderungen entweder aufgebaut oder überprüft wurden.
3.6 Die Zustandsmaschine (Steuerung)
Eine Zustandsmaschine steuert die internen Abläufe im Knoten. Dabei ist die Zu­ standsmaschine zweigeteilt:
  • 1. Die Steuerung des Knotens
  • 2. Die Steuerung des Bustransfers und der Synchronistation. Dabei kann auf eine Zustandsmaschine ähnlich der in PACT02 beschriebenen zurückgegriffen werden.
Die Zustandsmaschine(n) sind gemäß dem Stand der Technik implementierbar und wer­ den nicht näheres beschrieben.
3.7 Die Überwachungseinheit
Eine Überwachungseinheit ist der Routingtabelle nachgeschaltet. Sie entnimmt die in eine adressierte Zeile eingetragenen Daten und überprüft ob der Verbindungsaufbau möglich ist. Dabei werden vor allem folgende Punkte überprüft:
  • - Steht eine freie interne Sammelschiene zur Verfügung.
  • - Ist das angeforderte Tor frei.
  • - Ist das angeforderte externe Bussegment frei.
  • - Ist die Überprüfung positiv, wird das Signal ACCEPT generiert und an die Zu­ standsmaschinen, sowie die, den Verbindungsaufbau anfordernde Einheit, gesen­ det, um einen erfolgreichen Aufbau zu signalisieren.
  • - Ist die Überprüfung negativ, wird das Signal REJECT generiert und an die Zu­ standsmaschinen, sowie die, den Verbindungsaufbau anfordernde Einheit, gesen­ det, um einen fehlgeschlagenen Aufbau zu signalisieren. Auf dieses Signal kann der oben beschriebene Arbiter reagieren und die Priorität dieser Anforderung auf die Niederste setzen.
3.8 Verbindungsabbau
Eine bestehende Verbindung kann durch verschiedene Kriterien wieder abgebaut werden. Zu den wichtigsten Kriterien zählen
  • - Timeout: Eine Verbindung wird abgebaut, da über eine längere Zeitspanne kein Datentransfer stattgefunden hat. Ein Timeout kann einfach über einen ladbaren Abwärtszähler implementiert werden. Der Zähler wird bei jedem übertragenen Datum neu mit einem festen Ausgangswert, der die Zeitspanne bis zum Timeout repräsentiert, geladen. Findet kein Datentransfer statt, zählt er mit jedem Bustakt um eins herunter. Kommt er bei null an, ist die maximale Zeitspanne abgelaufen und der Bus wird abgebaut.
  • - Datenzähler: Ein ladbarer Zähler wird mit der zu übertragenden Anzahl von Daten geladen. Bei jedem Datentransfer zählt der Zähler um eins herab. Kommt der Zähler bei null an, sind alle Daten übertragen und der Bus wird abgebaut.
  • - Synchronisationssignale (vgl. PACT08): Der Busabbau wird durch die Status- und/oder Synchronisationssignale der Zelle(n) gesteuert, die als Datensender auf­ treten. Zeigen die Zellen beispielweise an, daß ihre Datenverarbeitung beendet ist oder daß sie umkonfiguriert werden können, wird der Bus abgebaut, da er nicht mehr benötigt wird. Zu diesen Signalen gehören auch rRDY, oACK.
Der Verbindungsabbau geht dabei so vonstatten, daß vom Initiator-Knoten aus ein Signal zum Abbauen der Verbindung gesendet wird. Jeder weitere Knoten sendet das empfangene Signal an seine(n) Partnerknoten weiter und löst die Verbindung sofort auf.
3.9 Broadcasting
In PACT02 ist ein Bussystem beschrieben, das das Senden eines Datenpaketes an meh­ rere Empfänger erlaubt und ebenfalls eine Quittierung des Datentransfers ermöglicht. Dasselbe System kann bei dem hier beschriebenen Verfahren verwendet werden. Es ist ohne weiteres möglich, mehrere Tore auf eine Sammelschiene zu schalten. Dabei wird nur eine Zeile in der Routingtabelle verwendet. Die Adresse innerhalb der Zielroutingtabel­ len Eintrag Position in Zieltabelle muß dabei bei jeder der selektierten Routingtabellen zwangsläufig dieselbe sein.
Um dieses Problem zu umgehen, ist es möglich mehrere Einträge für als Eintrag Position in Zieltabelle zur Verfügung zu stellen. Beispielsweise könnte für jedes Tor ein separater Eintrag Position in Zieltabelle existieren. Damit ist jedem Tor eine Adresse innerhalb der Zielroutingtabelle zugeordnet.
Die Quittierung erfolgt genau wie in PACT02 beschrieben über Signalleitungen, die von Open-Kollektor-Treiber getrieben werden und mit einem Transistor abgeschlossen sind.
3.10 Ladelogik (PLU)
Eine Ladelogik im Sinne von DE 44 16 881 A1 ist an die Routingtabelle angeschlossen. Über diese kann die Routingtabelle - äquivalent zu den Switchingtabellen aus PACT04- konfiguriert und umkonfiguriert werden. Die Routingtabellen können um eine Spalte erweitert werden, die benutzt wird um Rückmeldungen an die Ladelogik zu senden, wenn die in der betreffenden Zeile angegebene Verbindung auf- oder abgebaut wird. So kann in der Spalte angegeben werden, ob eine Rückmeldung an die PLU erfolgen soll, wenn die Verbindung auf- oder abgebaut wird, sowie welcher Art die Rückmeldung ist. Die Rückmeldung erfolgt gemäß PACT02 Fig. 15, wobei statt des Latches 1504 ein Tor eingesetzt ist, das je nach Einstellung entweder beim Verbindungsaufbau oder -abbau durchschaltet und die Rückmeldung an die Transistoren (1502). die als Open- Kollektor-Treiber geschaltet sind ansteuern.
4 Kurzbeschreibung der Diagramme
Fig. 1: Zeigt einen zweidimensionalen Baustein mit Zellarray und Knoten.
Fig. 2: Zeigt einen Ausschnitt aus Fig. 1.
Fig. 3: Zeigt mehrere bestehende Busverbindungen und den Aufbau neuer Ver­ bindungen.
Fig. 4: Zeigt den Aufbau neuer Busverbindungen.
Fig. 5: Zeigt den nächsten Schritt des Verbindungsaufbaus.
Fig. 6: Zeigt die Kollision zweier Busse.
Fig. 7: Zeigt den schrittweisen Verbindungsabbau nach einer Kollision.
Fig. 8: Zeigt den schrittweisen Verbindungsabbau nach einer Kollision.
Fig. 9: Zeigt den schrittweisen Verbindungsabbau nach einer Kollision.
Fig. 10: Zeigt den schrittweisen Verbindungsabbau nach einer Kollision.
Fig. 11: Zeigt den Neuaufbau der abgebauten Verbindung nach einer gewissen Zeit­ spanne.
Fig. 12: Zeigt die Fortsetzung von Fig. 6. wenn der Knoten mehr als eine Sammel­ schiene besitzt und somit keine Kollision stattfindet.
Fig. 13: Zeigt die Verbindung der Bussegmente mit den Sammelschienen eines Kno­ tens.
Fig. 14: Zeigt den Datentransfer eines Verbindungsaufbaus. Die Unterfiguren zei­ gen den Zustand der Verbindung jeweils im Abständen von einem Buszyklus.
Fig. 15: Zeigt den Datentransfer eines Verbindungsabbaus. Die Unterfiguren zeigen den Zustand der Verbindung jeweils im Abständen von einem Buszyklus.
Fig. 16: zeigt die Steuereinheit eines Knotens.
Fig. 17: Zeigt die Steuerung eines Knotens.
Fig. 18: Zeigt das Broadcasting an mehrere Datenempfänger.
5 Detailbeschreibung der Diagramme
Fig. 1 zeigt einen Baustein der Gattungen FPGA, DPGA, DFP (DE 44 16 881 A1). Der Baustein ist zweidimensional symmetrisch aus konfigurierbaren Zellen (0101) auf­ gebaut, dabei kann 0101 auch eine Mehrzahl von - auch unterschiedlichen - konfigu­ rierbaren Zellen, die zu einer Gruppe zusammengefaßt und untereinander vernetzt sind, repräsentieren. Zwischen den Zellen befinden sich die Knoten des Bussystemes (0102). Dabei sind mehrere Knoten gekennzeichnet, die im folgenden Ausführungsbeispiel meh­ rere Verbindungen aufbauen werden. Der Datensender A (0103) wird im folgenden eine Verbindung zum Datenempfänger A (0104) aufbauen, sowie der Datensender B (0106) mit dem Datenempfänger B (0105). Eine ausschnittsweise Vergrößerung (0107) ist in Fig. 2 dargestellt.
Fig. 2 zeigt einen Ausschnitt aus einem Baustein beschriebener Gattung. Die kon­ figurierbare(n) Zeile(n) aus Fig. 1 (0101) sind in 0201 dargestellt. Ein Bündel (0203) aus einer Vielzahl von Leitungen (die Anzahl ist beliebig und nicht exakt dargestellt) verbindet 0201 mit einem Knoten 0202. Die Knoten (0202) sind über die Bussegmente (0205) miteinander verbunden. Ebenfalls haben die Knoten über die Bussegmente 0206, deren Ausgestaltung dieselbe wie die der Bussegmente 0205 ist, Anschluß an die sich außerhalb der Vergrößerung befindenden Knoten. Über das optionale Leitungsbündel (0204) wird verdeutlicht, daß die konfigurierbare(n) Zelle(n) auch über mehrere un­ terschiedliche Leitungsbündel an eine Mehrzahl von Knoten (0202) angeschlossen sein kann/können.
Fig. 3 zeigt den Baustein zur Laufzeit. Es existieren mehrere Verbindungen:
  • - zwischen den Knoten Z (0301)
  • - zwischen den Knoten Y (0306).
Der Datensender A (0302) versucht eine Verbindung (0303) zum Datenempfänger A (0307) aufzubauen. Die Verbindung wird jedoch zurückgewiesen (REJECT). da sie beim Knoten Z (0308) blockiert ist. Gleichzeitig baut der Datensender B (0304) ein Busseg­ ment (0305) zu seinem Empfänger auf. Dieser Versuch gelingt, da der angesprochene Knoten und das benötigte Bussegment nicht blockiert ist.
Fig. 4 zeigt den nächsten Buszyklus. Die Verbindungen Y und Z sind zwischenzeitlich abgebaut. Der Datensender A (0401) kann nun das Bussegment (0403) aufbauen, da der Knoten (0402) nicht mehr blockiert ist. Gleichzeitig baut der Datensender B (0404) das bereits bestehende Bussegment (0405) über den Knoten (0406) hinaus aus ⇒ Das neue Bussegment (0407) wird aufgebaut.
Fig. 5 Der in Fig. 3 begonnene und über Fig. 4 fortgesetzte Busaufbau setzt sich äquivalent zu Fig. 4 fort.
Fig. 6 Der Verbindungsaufbau des Bussegmentes 0602 des Datensenders B schlägt fehl. Der Knoten 0601 ist besetzt und liefert ein REJECT-Signal, das das Fehlschlagen des Verbindungsaufbaus signalisiert und den Abbruch der Verbindung bewirkt, an den Knoten 0603.
Fig. 7 zeigt den kompletten Verbindungsaufbau zwischen dem Datensender A (0701) und dem Datenempfänger A (0702). Die Verbindung des Datensenders B wird weiter abgebaut. Der Knoten 0703 liefert über das Bussegment (0704) das REJECT-Signal an den Knoten 0705. Daraufhin wird das Segment 0704 abgebaut.
Fig. 8 Der Datentransfer zwischen dem Datensender A und dem Datenempfänger A beginnt. Die Verbindung des Datensenders B wird weiter abgebaut. Der Knoten 0801 liefert über das Bussegment (0802) das REJECT-Signal an den Knoten 0803. Daraufhin wird das Segment 0802 abgebaut.
Fig. 9 Der Datentransfer zwischen dem Datensender A und dem Datenempfänger A setzt sich fort. Das letzte Segment des Datensenders B wird abgebaut. Der Knoten 0901 liefert über das Bussegment (0902) das REJECT-Signal an den Knoten 0903. Daraufhin wird das Segment 0902 abgebaut.
Fig. 10: Der Datentransfer zwischen dem Datensender A und dem Datenempfänger A setzt sich fort. Der Datensender B (1001) wartet eine Zeitspanne ab, bis er erneut versucht eine Verbindung zu seinem Datenempfänger aufzubauen.
Fig. 11 zeigt den Zustand mehrere Buszyklen später: Der Datentransfer zwischen dem Datensender A und dem Datenempfänger A findet immer noch statt. Der Datensen­ der B (1101) startet einen neuen Versuch die Verbindung zu seinem Datenempfänger aufzubauen. Er baut ein Bussegment (1102) zum Knoten (1103) auf. Sofern in den nächsten Buszyklen die Verbindung des Datensenders A zu seinem Datenempfänger A abgebaut ist, gelingt der Verbindungsaufbau des Datensenders B (1101), ansonsten schlägt sie wie in Fig. 6 beschrieben erneut fehl.
Fig. 12 zeigt die Fortsetzung der Fig. 6. wenn der Knoten 1202 in der Lage ist, mehr als eine Verbindung aufzubauen, das heißt, der Knoten besitzt mehrere interne Sammelschienen. Dadurch kann die Verbindung des Datensenders A über die erste Sammelschiene abgewickelt werden und die Verbindung des Datensenders B über die zweite. Der Knoten 1202 baut das Bussegment 1203 zu dem Datenempfänger B (1201) auf.
Fig. 13 stellt eine knoteninterne Vernetzungsstruktur dar. Es existieren vier knoten­ interne Sammelschienen 1301, 1302, 1303, 1304. Über je eine Gruppe von Toren (1308, 1309, 1310, 1311) werden die Sammelschienen auf die Bussegmente Westen (1318), Norden (1316), Osten (1319). Süden (1317) geschaltet. Über die Tore 1307 werden die Sammelschienen mit den O-REG1/2 (vgl. PACT02) verbunden (1314, 1315). Über die Tore 1306 wird das R-REG (vgl. PACT02) auf die Sammelschienen geschaltet. Dabei kann das niederwertige und höherwertige R-REG (1312, 1313) jeweils getrennt verschaltet werden. Die Tore werden über den Bus 1320 angesteuert. Dabei wird das benötigte Torsystem (Westen, Norden. Osten, Süden), sowie die interne Sammelschiene angegeben. Durch Verbindung (1325, 1326, 1327, 1328) der Richtungsangabe mit der Angabe der selektierten Sammelschiene wird das erforderliche Tor (1321, 1322, 1323, 1324) ausgewählt.
Fig. 14a zeigt den Aufbau einer Verbindung, dabei übermittelt der Datensender (1401) dem Knoten des Datensenders (1402) das erste Datenpaket.
Fig. 14b Der Knoten selektiert dabei aus der Routingtabelle den zu rRDY - rRDY ist ein Statussignal, das anzeigt, daß Daten am Datensender bereitstehen (vgl. PACT02)- gehörenden Eintrag. Anhand diesem Eintrag wird das nächste Bussegment aufgebaut und die Adresse der Routingtabelle des nächsten Knotens übertragen.
Fig. 14c Der letzte Knoten (1403), der Datenempfängerknoten, erhält die Adresse für den Eintrag innerhalb seiner Routingtabelle. Der Eintrag zeigt auf keinen weite­ ren Knoten, sondern auf eine Zelle. Daher aktiviert der Knoten sofort seine Tore zur selektierten Zelle.
Fig. 14d Die Daten gelangen durch das aktivierte Tor von 1403 direkt zur Empfängerzelle 1404.
Fig. 14e Die Zelle sendet das oACK-Signal (vgl. PACT02) als Quittierung für die erhaltenen Daten zurück. Im nächsten Buszyklus (vgl. Fig. 14e) wird der Datensender daraufhin das nächste Datenpaket absenden.
Fig. 14e-g Der normale Datenaustausch zwischen den Zellen läuft ab.
Fig. 15a Es existiert eine Datenverbindung vom Datensender (1501) zum Daten­ empfänger (1503) über mehrere Knoten.
Fig. 15b Der Datensender (1501) hat seine Datenübertragung beendet und sendet ein DISCONNECT-Signal zum ersten Knoten.
Fig. 15c Das erste Bussegment ist abgebaut und der Knoten reicht das DISCONNECT-Signal weiter.
Fig. 15d Der Verbindungsabbau geht weiter.
Fig. 15d Der letzte Knoten erhält das DISCONNECT. Daraufhin baut der letzte Knoten gleichzeitig die Verbindung zum Vorgängerknoten und zum Datenempfänger ab.
Fig. 15e Das letzte Bussegment und die Verbindung zum Datenempfänger ist ab­ gebaut.
Fig. 16 Zeigt die Steuerung eines Knotens. Die Anforderungen (1601) zum Auf­ bau einer Verbindung gelangen über den Prioritätsdekoder (1602) an die Routingta­ belle (1603). Der Prioritätsdekoder wählt die Anforderung mit der höchsten Priorität aus, wobei eine soeben fehlgeschlagene Anforderung die niederste Priorität zugewiesen bekommt. Die Prioritätslogik erhält ihre Anforderungen über Statussignale (z. B. der der konfigurierbaren Zellen (vgl. PACT02, rRDY, oACK) oder über die Bussegmente 1316, 1317, 1318, 1319. Liegen Daten an den Bussegmenten an, ohne daß das Tor des Bussegmentes aktiviert ist, werden die Daten von der Prioritätslogik als Adresse der Routingtabelle interpretiert und als Anforderung betrachtet. Liegen Statussignale an der Prioritätslogik an (rRDY, oACK), werden diese in Adressen für die Routingtabelle übertragen. Die Adressen der Routingtabelle selektieren einen Eintrag. Die Daten des Eintrages (1604) werden an eine Einheit aus UND-Gattern (1605) weitergeleitet. Dabei wird die Binärzahl der Busauswahl (BUS 1. . . 0) über einen 2 : 4 Dekoder (1606) in Selektsi­ gnale übertragen. Die UND-Gatter-Einheit verUNDet dabei jedes Signal mit demselben in einem Latch (1607) gespeicherten Signal. Das heißt daß das Signal GATE1 der Rou­ tingtabelle mit dem Signal GATE1 des Latches verUNDet wird, das Signal GATE2 der Routingtabelle mit dem Signal GATE2 des Latches und so weiter. Dabei repräsentieren die Signale des Latches den Zustand der momentan aktuellen Vernetzungsstruktur, d. h. die benutzten Tore und die benutzten Sammelschienen sind in das Latch eingetragen. Ergibt eine VerUNDung der Verbindungsanforderung mit dem aktuellen Zustand einen wahren Pegel, bedeutet dies, daß die neue Verbindungsanforderung Ressourcen benötigt, die momentan benutzt sind. Über ein ODER-Gatter (1608) werden alle UND-Gatter miteinander verknüpft. Ergibt sich am Ausgang des ODER-Gatters ein wahrer Pegel, wird die Verbindungsanforderung zurückgewiesen (REJECT) (1609), da die benötigten Ressourcen belegt sind. Aus dem REJECT-Signal wird über einen Inverter (1610) das ACCEPT-Signal (1611) generiert. Die Signale werden an eine Zustandsmaschine (1612), die nach dem Stand der Technik implementiert sein kann, weitergeleitet. Diese steuert danach die Annahme der Verbindung oder die Zurückweisung. Wird die Verbindungs­ anforderung zurückgewiesen, meldet (1613) die Zustandsmaschine den REJECT an den Prioritätsdekoder und die Anforderung erhält niederste Priorität. Bei einer Annahme der Anforderung, werden die neuen Zustandssignale mit den aktuellen Zustandssignalen nach dem Latch verODERt (1614) - dabei ist die ODER-Einheit ebenso aufgebaut wie die beschriebene UND-Einheit (1605) - und in das Latch (1607) zurückgeschrieben.
Über 1623 steuert die Zustandsmaschine, ob die ODER-Einheit (1614) oder die Maske (1616) aktiv ist. Das Latch wird über 1622 von der Zustandsmaschine getriggert. Über den Bus 1615 gelangt die neue Einstellung an die Tore.
Der Abbau einer Busverbindung läuft auf ähnliche Weise. Allerdings findet muß bei einer Überprüfung der Ressourcen das Signal REJECT auftreten, da die Busverbindung, die abgebaut werden soll, existieren muß. Aufgrund des REJECTs aktiviert die Zustands­ maschine 1612 anstatt der ODER-Einheit 1614 die Maske 1616. Die Verbindungsdaten der abzubauenden Verbindung werden aus dem aktuellen Vernetzungszustand ausmas­ kiert und in das Latch 1607 zurückgeschrieben. Vor dem Zurückschreiben der neuen Verbindungsdaten sendet die Zustandsmaschine das DISCONNECT-Signal zum Abbau der Verbindung an den nächsten Knoten.
Über die Tore 1617, 1618, 1619, 1620 kann die Steuerung direkt auf die Sammel­ schienen 1301, 1302, 1303, 1304 zugreifen. Damit kann die Zustandsmaschine sowohl Steuersignale (DISCONNECT) auf die Sammelschiene übertragen, als auch Steuersi­ gnale von der Sammelschiene erhalten (REJECT, ACCEPT) und auf diese reagieren. Ebenfalls dienen diese Tore um den Eintrag Position in Zieltabelle (über 1621) auf die Sammelschiene zu übertragen.
Über 1624 kann die Ladelogik (PLU) auf die Routingtabelle zugreifen.
Fig. 17: Zeigt ein Broadcasting eines Datensenders (1701) an mehrere Daten­ empfänger (1702) über eine Vielzahl von Knoten (1707), auf die nicht näher ein­ gegangen wird. Der Bus ist zur Verdeutlichung aufgetrennt dargestellt, nämlich in die Quittierungsleitung (ACK) (1703) und den restlichen Bus (1704). ACK wird dabei ne­ giert und an den wiederum invertierenden Open-Kollektor-Bustreiber geliefert. ACK wird über einen PullUp-Widerstand 1705 auf H gezogen. Dabei ist die Schaltung so aufgebaut, daß folgende Fälle eintreten:
  • 1. Wird der entsprechende Bus nicht angesteuert, liegt an der Basis des Transistors (1706) L an. Dadurch belastet er den Bus nicht.
  • 2. Wird der entsprechende Bus angesteuert, und das Signal nicht quittiert, liegt an der Basis des Transistors (1706) H an. Das bedeutet, daß der Bus auf L gezogen wird. Wird ein Ergebnis per Broadcasting an mehrere Datenempfänger verteilt, so ziehen alle Knoten, die die Ergebnisdaten noch nicht quittiert haben und Warte- Zyklen benötigen den Bus auf L.
  • 3. Wird der entsprechende Bus angesteuert, und das Signal quittiert, liegt an der Basis des Transistors (1706) L an. Das bedeutet, daß der Bus nicht belastet wird. Wird ein Ergebnis per Broadcasting an mehrere Datenempfänger verteilt, so belasten alle Knoten, die die Ergebnisdaten quittiert haben und keine Warte- Zyklen benötigen, den Bus nicht.
Da der Bus in seinem Grundzustand den H-Pegel, also die Quittierung. einnimmt, über­ steuert die Nichtquittierung gemäß Fall 2 die Quittierung, indem sie den Bus auf L zieht. Dabei geht der Bus erst dann in den H-Pegel, also in den Quittierungszustand, wenn alle an der Verbindung beteiligten Knoten quittieren. Es ist somit eine Wired- AND-Schaltung realisiert.
6 Begriffsdefinition
ALU Arithmetisch logische Einheit. Grundeinheit zum Verarbeiten von Daten. Die Einheit kann arithmetische Operationen wie Additi­ on, Subtraktion, unter Umständen auch Multiplikation, Division, Reihenentwicklungen usw. durchführen. Dabei kann die Einheit als ganzzahlige (integer) Einheit oder als Fließkomma-(floating-point)- Einheit gestaltet sein. Ebenfalls kann die Einheit logische Operatio­ nen, wie UND, ODER, sowie Vergleiche durchführen.
Arbiter Einheit um Rechte zwischen Signalen zu verteilen.
Broadcast Senden von Daten einer PAE an mehrere oder alle Datenempfänger.
Busanforderung Die Anforderung eine Busverbindung zum Datentransfer aufzubau­ en. (Auch Verbindungsanforderung).
Bussegment Abschnitt eines Bussystems zwischen zwei Knoten.
Datenempfänger Die Einheit(en), die Ergebnisse der PAE weiterverarbeitet/arbeiten.
Datensender Die Einheit(en), die Daten für die PAE als Operanden zur Verfügung stellt/stellen.
Datentyp Art der Daten: Zeichen, Zahlen, Fließkommazahlen, Signale (boo­ lean), etc.
DFP Datenflußprozessor nach Patent/Offenlegung DE 44 16 881.
DPGA Dynamisch konfigurierbare FPGAs. Stand der Technik.
EALU Erweiterte arithmetisch logische Einheit. ALU, die um Sonderfunk­ tionen, die zum Betrieb einer Datenverarbeitungseinrichtung gemäß DE 441 16 881 A1 benötigt werden oder sinnvoll sind erweitert wur­ de. Dies sind ins besondere Zähler.
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
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.
Knoten Element das mehrere Bussegmente miteinander verbindet und den Verbindungsaufbau aktiv steuert, während des Datentransfers je doch passiv ist.
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).
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.
LookUp-Tabelle Tabelle, die einen Wert als Adresse erhält und ein Ergebnis zurück­ liefert. Beispielsweise wird eine Zahl als Adresse angegeben und deren sinus wird zurückgegeben.
L-Pegel Logisch 0 Pegel, abhängig von der verwendeten Technologie.
M-PLUREG Register in dem die Vernetzung der PAE gesetzt wird. Das Register wird von der PLU beschrieben.
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.
PAE Processing Array Element: EALU mit O-REG, R-REG, R2OMUX, F-PLUREG, M-PLUREG, BM-, SM-, Sync-, StateBack- und Power- UNIT.
Partnerknoten Knoten mit dem ein bestimmter Knoten über ein Bussegment Kon­ takt hat oder aufbauen will.
PLU Einheit zum Konfigurieren und Umkonfigurieren der PAE. Ausge­ staltet durch einen speziell an seine Aufgabe angepaßten Mikrokon­ troller.
Prioritätsdekoder Das Signal mit der höchsten Priorität wird weitergegeben oder freigeschaltet.
Priority-Logik Das Signal mit der höchsten Priorität wird weitergegeben oder frei­ geschaltet.
PullDown Widerstand, der eine Busleitung auf einen L-Pegel zieht.
PullUp Widerstand, der eine Busleitung auf einen H-Pegel zieht.
Routingtabelle Tabelle innerhalb eines Knotens, die Informationen über aufzubau­ ende Verbindungen enthält.
Round-Robin-Arbiter Arbiter, der der Reihe nach ein Signal nach dem anderen frei­ schaltet. Das aktuell freigeschaltete Signal bekommt die niederste Priorität und wird als Letztes in der Kette dann wieder freigeschal­ tet. Der Arbiter arbeitet im Kreis.
Sammelschiene Bus auf dem mehrere Bussegmente zusammengeführt werden.
Switching-Tabelle Eine Switching-Tabelle ist ein Ring-Speicher, welcher durch eine Steuerung angesprochen wird. Die Einträge einer Switching-Tabelle können beliebige Konfigurationswörter aufnehmen. Die Steuerung kann Befehle durchführen. Die Switching-Tabelle reagiert auf Trig­ gersignale und konfiguriert konfigurierbare Elemente anhand eines Eintrages in einem Ringspeicher um.
Timeout Nach Ablauf einer bestimmten Zeit geschieht etwas (ein Vorgang wird begonnen oder unterbrochen).
Tor Schalter, der ein Signal weiterleitet oder sperrt. Einfacher Vergleich: Relais.
Umkonfigurieren Neues Konfigurieren von einer beliebigen Menge von PAEs während eine beliebige Restmenge von PAEs ihre eigenen Funk­ tionen fortsetzen (vgl. konfigurieren).
Verbindungsanforderung Die Anforderung eine Busverbindung zum Datentransfer aufzubauen (auch Busanforderung).
Zellen Synonym für konfigurierbare Elemente.
Zustandsmaschine Logik, die diversen Zuständen annehmen kann. Die Übergänge zwischen den Zuständen sind von verschiedenen Eingangsparame­ tern abhängig. Diese Maschinen werden zur Steuerung komplexer Funktionen eingesetzt und entsprechen dem Stand der Technik.
7 Konventionen 7.1 Namenskonvention
Baugruppe -UNIT
Betriebsart -MODE
Multiplexer -MUX
Negiertes Signal not-
Register für PLU sichtbar -PLUREG
Register intern -REG
Schieberegisters -sft
7.2 Funktionskonvention
UND-Funktion &
ODER-Funktion #
NICHT-Funktion!
TOR-Funktion G

Claims (8)

1. Bussystem für DFPs gemäß DE 44 16 881 A1, sowie Bausteine mit zwei- oder mehrdimensionaler programmierbarer Zellstruktur (der Gattungen FPGA, DP­ GA, o. dgl.), dadurch gekennzeichnet, daß
  • 1. das Bussystem aus einer Vielzahl voneinander elektrisch unabhängiger Bus­ segmente besteht, die über Knoten getrennt sind,
  • 2. die Knoten Bussegmente aktiv zusammenfügen oder trennen, wobei zum Zusammenfügen mehrere Bussegmente über Tore auf eine, sich innerhalb des Knoten befindende Sammelschiene zusammengeschaltet werden,
  • 3. jeder Knoten eine Routingtabelle besitzt, in der die Informationen über den Aufbau der Verbindungen gespeichert sind,
  • 4. jeder Knoten eine Überwachungseinheit besitzt, die selbständig prüft ob eine Verbindung aufgebaut werden kann oder nicht.
2. Bussystem nach Patentanspruch 1, dadurch gekennzeichnet, daß eine Busverbindung schrittweise aufgebaut wird, wobei der Datensender zunächst nur die Verbindung zu dem mit ihm verbundenen Knoten herstellt, der Knoten dann über seine Routingtabelle feststellt, welcher ihm benachbarte Knoten für die Verbindung benötigt wird und zu diesem über das verbindende Bussegment Verbindung aufnimmt, sofern dieses nicht bereits von einer anderen Verbindung belegt ist; ist dies der Fall, so wird der Aufbau der Busverbindung abgebrochen; ist dies nicht der Fall, so setzt der angesprochene Knoten den Aufbau der Busverbindung fort.
3. Bussystem nach Patentanspruch 1 und 2, dadurch gekennzeichnet, daß bei einem fehlgeschlagenen Verbindungsaufbau der Aufbau zu einem späteren Zeitpunkt erneut versucht wird.
4. Bussystem nach Patentanspruch 1, 2 und 3, dadurch gekennzeichnet, daß nach einem erfolgten Verbindungsaufbau die Knoten passiv sind und der Daten­ transfer ausschließlich von Datensender und Datenempfänger gesteuert werden.
5. Bussystem nach Patentanspruch 1, 2, 3 und 4, dadurch gekennzeichnet, daß weder Datensender noch Datenempfänger, weder während des Verbindungsauf­ baus noch des Betriebs, Kenntnis über das Bussystem haben müssen und kei­ nerlei aktiven Eingriff auf die Knoten nehmen müssen.
6. Bussystem nach Patentanspruch 1, 2, 3, 4 und 5, dadurch gekennzeichnet, daß die Knoten und deren Routingtabellen von einer Ladelogik konfiguriert und um­ konfiguriert werden.
7. Bussystem nach Patentanspruch 1, 2, 3, 4, 5 und 6, dadurch gekennzeichnet, daß über die Routingtabellen Rückmeldungen an die Ladelogik gesendet werden können.
8. Bussystem nach Patentanspruch 1, 2, 3, 4, 5, 6 und 7, dadurch gekennzeichnet, daß das ein Knoten Daten an mehrere andere Knoten gleichzeitig versenden kann (Broadcasting).
DE19704742A 1997-02-11 1997-02-11 Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand Withdrawn DE19704742A1 (de)

Priority Applications (12)

Application Number Priority Date Filing Date Title
DE19704742A DE19704742A1 (de) 1997-02-11 1997-02-11 Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
EP03021585A EP1398706A3 (de) 1997-02-11 1998-02-11 Internes Bussystem für programmierbare Zellstrukturen
CA002280057A CA2280057A1 (en) 1997-02-11 1998-02-11 Internal bus system for dfps, building blocks with two dimensional or multidimensional programmable cell structures to handle large amounts of data involving high networking requirements
PCT/DE1998/000456 WO1998035294A2 (de) 1997-02-11 1998-02-11 Internes bussystem für dfps, sowie bausteine mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen, zur bewältigung grosser datenmengen mit hohem vernetzungsaufwand
AT98909365T ATE256888T1 (de) 1997-02-11 1998-02-11 Internes bussystem für dfps, sowie bausteine mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen, zur bewältigung grosser datenmengen mit hohem vernetzungsaufwand
EP98909365A EP0960374B1 (de) 1997-02-11 1998-02-11 Internes bussystem für dfps, sowie bausteine mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen, zur bewältigung grosser datenmengen mit hohem vernetzungsaufwand
AU63924/98A AU6392498A (en) 1997-02-11 1998-02-11 Internal bus system for dfps, building blocks with two dimensional or multidimensional programmable cell structures to handle large amounts of data involving high networking requirements
DE19880128T DE19880128D2 (de) 1997-02-11 1998-02-11 Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
JP53357998A JP3894957B2 (ja) 1997-02-11 1998-02-11 大きな網目状接続コストを伴う大容量データを管理するための、2次元または多次元プログラマブルセル構造を有するモジュール並びにdfpに対する内部バスシステム
DE59810469T DE59810469D1 (de) 1997-02-11 1998-02-11 Internes bussystem für dfps, sowie bausteine mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen, zur bewältigung grosser datenmengen mit hohem vernetzungsaufwand
US09/145,139 US6405299B1 (en) 1997-02-11 1998-08-28 Internal bus system for DFPS and units with two- or multi-dimensional programmable cell architectures, for managing large volumes of data with a high interconnection complexity
US10/116,986 US7010667B2 (en) 1997-02-11 2002-04-05 Internal bus system for DFPS and units with two- or multi-dimensional programmable cell architectures, for managing large volumes of data with a high interconnection complexity

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19704742A DE19704742A1 (de) 1997-02-11 1997-02-11 Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand

Publications (1)

Publication Number Publication Date
DE19704742A1 true DE19704742A1 (de) 1998-09-24

Family

ID=7819649

Family Applications (3)

Application Number Title Priority Date Filing Date
DE19704742A Withdrawn DE19704742A1 (de) 1997-02-11 1997-02-11 Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
DE19880128T Expired - Lifetime DE19880128D2 (de) 1997-02-11 1998-02-11 Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
DE59810469T Expired - Lifetime DE59810469D1 (de) 1997-02-11 1998-02-11 Internes bussystem für dfps, sowie bausteine mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen, zur bewältigung grosser datenmengen mit hohem vernetzungsaufwand

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE19880128T Expired - Lifetime DE19880128D2 (de) 1997-02-11 1998-02-11 Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
DE59810469T Expired - Lifetime DE59810469D1 (de) 1997-02-11 1998-02-11 Internes bussystem für dfps, sowie bausteine mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen, zur bewältigung grosser datenmengen mit hohem vernetzungsaufwand

Country Status (8)

Country Link
US (2) US6405299B1 (de)
EP (2) EP0960374B1 (de)
JP (1) JP3894957B2 (de)
AT (1) ATE256888T1 (de)
AU (1) AU6392498A (de)
CA (1) CA2280057A1 (de)
DE (3) DE19704742A1 (de)
WO (1) WO1998035294A2 (de)

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10243322B4 (de) * 2002-09-18 2004-12-02 Pact Xpp Technologies Ag Analoge rekonfigurierbare Datenverarbeitungseinrichtung
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
US7657877B2 (en) 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US7782087B2 (en) 2002-09-06 2010-08-24 Martin Vorbach Reconfigurable sequencer structure
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
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)
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
US10885996B2 (en) 1997-10-08 2021-01-05 Pact Xpp Schweiz Ag Processor having a programmable function unit

Families Citing this family (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6338106B1 (en) * 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
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
US6636924B1 (en) * 2000-08-17 2003-10-21 Koninklijke Philips Electronics N.V. Multiple port I2C hub
ATE460020T1 (de) 2000-09-13 2010-03-15 Stratosaudio Inc System und verfahren zum bestellen und zur verfügung stellen von medieninhalten, mit verwendung von zusatzdaten die in einem rundfunksignal mitübertragen werden
ATE437476T1 (de) * 2000-10-06 2009-08-15 Pact Xpp Technologies Ag Zellenanordnung mit segmentierter zwischenzellstruktur
US6624056B2 (en) * 2000-12-04 2003-09-23 Pts Corporation Methods and apparatus for providing improved physical designs and routing with reduced capacitive power dissipation
US20070299993A1 (en) * 2001-03-05 2007-12-27 Pact Xpp Technologies Ag Method and Device for Treating and Processing Data
US7210129B2 (en) * 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US7624204B2 (en) * 2001-03-22 2009-11-24 Nvidia Corporation Input/output controller node in an adaptable computing environment
US7594229B2 (en) * 2001-10-09 2009-09-22 Nvidia Corp. Predictive resource allocation in computing systems
US7644279B2 (en) * 2001-12-05 2010-01-05 Nvidia Corporation Consumer product distribution in the embedded system market
WO2003067814A2 (en) * 2002-02-01 2003-08-14 California Institute Of Technology Hardware-assisted fast router
US7093255B1 (en) * 2002-05-31 2006-08-15 Quicksilver Technology, Inc. Method for estimating cost when placing operations within a modulo scheduler when scheduling for processors with a large number of function units or reconfigurable data paths
US7620678B1 (en) 2002-06-12 2009-11-17 Nvidia Corporation Method and system for reducing the time-to-market concerns for embedded system design
US7461234B2 (en) * 2002-07-01 2008-12-02 Panasonic Corporation Loosely-biased heterogeneous reconfigurable arrays
US7802108B1 (en) 2002-07-18 2010-09-21 Nvidia Corporation Secure storage of program code for an embedded system
US6816809B2 (en) * 2002-07-23 2004-11-09 Hewlett-Packard Development Company, L.P. Hardware based utilization metering
US7210112B2 (en) 2002-08-21 2007-04-24 California Institute Of Technology Element placement method and apparatus
US7502915B2 (en) * 2002-09-30 2009-03-10 Nvidia Corporation System and method using embedded microprocessor as a node in an adaptable computing machine
US8949576B2 (en) * 2002-11-01 2015-02-03 Nvidia Corporation Arithmetic node including general digital signal processing functions for an adaptive computing machine
US7617100B1 (en) 2003-01-10 2009-11-10 Nvidia Corporation Method and system for providing an excitation-pattern based audio coding scheme
US7237216B2 (en) * 2003-02-21 2007-06-26 Infineon Technologies Ag Clock gating approach to accommodate infrequent additional processing latencies
US7917130B1 (en) 2003-03-21 2011-03-29 Stratosaudio, Inc. Broadcast response method and system
US7285487B2 (en) 2003-07-24 2007-10-23 California Institute Of Technology Method and apparatus for network with multilayer metalization
US8296764B2 (en) * 2003-08-14 2012-10-23 Nvidia Corporation Internal synchronization control for adaptive integrated circuitry
US7425841B2 (en) 2004-02-14 2008-09-16 Tabula Inc. Configurable circuits, IC's, and systems
US7622951B2 (en) * 2004-02-14 2009-11-24 Tabula, Inc. Via programmable gate array with offset direct connections
US7167025B1 (en) * 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
US7284222B1 (en) * 2004-06-30 2007-10-16 Tabula, Inc. Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit
US8130825B2 (en) * 2004-05-10 2012-03-06 Nvidia Corporation Processor for video data encoding/decoding
US8018463B2 (en) * 2004-05-10 2011-09-13 Nvidia Corporation Processor for video data
US7282950B1 (en) 2004-11-08 2007-10-16 Tabula, Inc. Configurable IC's with logic resources with offset connections
US7312630B2 (en) * 2004-06-30 2007-12-25 Tabula, Inc. Configurable integrated circuit with built-in turns
US7145361B1 (en) * 2004-06-30 2006-12-05 Andre Rohe Configurable integrated circuit with different connection schemes
TWI256013B (en) * 2004-10-12 2006-06-01 Uli Electronics Inc Sound-effect processing circuit
US7342415B2 (en) * 2004-11-08 2008-03-11 Tabula, Inc. Configurable IC with interconnect circuits that also perform storage operations
US7224181B1 (en) * 2004-11-08 2007-05-29 Herman Schmit Clock distribution in a configurable IC
US7301368B2 (en) * 2005-03-15 2007-11-27 Tabula, Inc. Embedding memory within tile arrangement of a configurable IC
US7573296B2 (en) * 2004-11-08 2009-08-11 Tabula Inc. Configurable IC with configurable routing resources that have asymmetric input and/or outputs
US7268586B1 (en) 2004-11-08 2007-09-11 Tabula, Inc. Method and apparatus for accessing stored data in a reconfigurable IC
US7917559B2 (en) * 2004-11-08 2011-03-29 Tabula, Inc. Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US7295037B2 (en) * 2004-11-08 2007-11-13 Tabula, Inc. Configurable IC with routing circuits with offset connections
US7276933B1 (en) 2004-11-08 2007-10-02 Tabula, Inc. Reconfigurable IC that has sections running at different looperness
US20070244958A1 (en) * 2004-11-08 2007-10-18 Jason Redgrave Configurable IC's with carry bypass circuitry
US7743085B2 (en) * 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7259587B1 (en) * 2004-11-08 2007-08-21 Tabula, Inc. Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs
US7317331B2 (en) 2004-11-08 2008-01-08 Tabula, Inc. Reconfigurable IC that has sections running at different reconfiguration rates
US7242216B1 (en) 2004-11-08 2007-07-10 Herman Schmit Embedding memory between tile arrangement of a configurable IC
US7330050B2 (en) * 2004-11-08 2008-02-12 Tabula, Inc. Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements
US7236009B1 (en) * 2004-12-01 2007-06-26 Andre Rohe Operational time extension
DE102005005484A1 (de) * 2005-02-04 2006-08-10 Deutsche Thomson-Brandt Gmbh Netzwerkstation sowie Computer-Programm-Produkt, welches in den internen Speicher einer Netzwerkstation ladbar ist
US7298169B2 (en) * 2005-03-15 2007-11-20 Tabula, Inc Hybrid logic/interconnect circuit in a configurable IC
US20070244959A1 (en) * 2005-03-15 2007-10-18 Steven Teig Configurable IC's with dual carry chains
US7230869B1 (en) 2005-03-15 2007-06-12 Jason Redgrave Method and apparatus for accessing contents of memory cells
US7825684B2 (en) * 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7392446B1 (en) * 2005-06-17 2008-06-24 Xilinx, Inc. Test channel usage reduction
US7548085B2 (en) * 2005-07-15 2009-06-16 Tabula, Inc. Random access of user design states in a configurable IC
US7375550B1 (en) 2005-07-15 2008-05-20 Tabula, Inc. Configurable IC with packet switch configuration network
US20070094664A1 (en) * 2005-10-21 2007-04-26 Kimming So Programmable priority for concurrent multi-threaded processors
US7765249B1 (en) 2005-11-07 2010-07-27 Tabula, Inc. Use of hybrid interconnect/logic circuits for multiplication
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US7372297B1 (en) 2005-11-07 2008-05-13 Tabula Inc. Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources
US7818361B1 (en) 2005-11-07 2010-10-19 Tabula, Inc. Method and apparatus for performing two's complement multiplication
US7262633B1 (en) 2005-11-11 2007-08-28 Tabula, Inc. Via programmable gate array with offset bit lines
US7679401B1 (en) 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
DE102005059522A1 (de) * 2005-12-13 2007-06-14 Siemens Ag Kommunikationssystem eines Kraftfahrzeuges und Verfahren zum Aufbau eines drahtlosen ad-hoc Funknetzwerkes
US7694083B1 (en) * 2006-03-08 2010-04-06 Tabula, Inc. System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US7797497B1 (en) * 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
DE102006012275B4 (de) * 2006-03-15 2007-12-20 Phoenix Contact Gmbh & Co. Kg Datenübertragungs- und verarbeitungssystem mit sicherem Erfassen von kritischen Zuständen
US7669097B1 (en) 2006-03-27 2010-02-23 Tabula, Inc. Configurable IC with error detection and correction circuitry
US7999820B1 (en) 2006-10-23 2011-08-16 Nvidia Corporation Methods and systems for reusing memory addresses in a graphics system
US20080111923A1 (en) * 2006-11-09 2008-05-15 Scheuermann W James Processor for video data
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
EP2140548A4 (de) * 2007-03-20 2010-06-09 Tabula Inc Konfigurierbares ic mit einem koppelfeld mit speicherelementen
US7610566B1 (en) 2007-03-22 2009-10-27 Tabula, Inc. Method and apparatus for function decomposition
US8169789B1 (en) 2007-04-10 2012-05-01 Nvidia Corporation Graphics processing unit stiffening frame
US7987065B1 (en) 2007-04-17 2011-07-26 Nvidia Corporation Automatic quality testing of multimedia rendering by software drivers
US8572598B1 (en) 2007-04-18 2013-10-29 Nvidia Corporation Method and system for upgrading software in a computing device
US8726283B1 (en) 2007-06-04 2014-05-13 Nvidia Corporation Deadlock avoidance skid buffer
US7944453B1 (en) 2007-06-07 2011-05-17 Nvidia Corporation Extrapolation texture filtering for nonresident mipmaps
US7948500B2 (en) * 2007-06-07 2011-05-24 Nvidia Corporation Extrapolation of nonresident mipmap data using resident mipmap data
US8069425B2 (en) 2007-06-27 2011-11-29 Tabula, Inc. Translating a user design in a configurable IC for debugging the user design
US7839162B2 (en) * 2007-06-27 2010-11-23 Tabula, Inc. Configurable IC with deskewing circuits
US8412990B2 (en) * 2007-06-27 2013-04-02 Tabula, Inc. Dynamically tracking data values in a configurable IC
US7652498B2 (en) * 2007-06-27 2010-01-26 Tabula, Inc. Integrated circuit with delay selecting input selection circuitry
US7595655B2 (en) * 2007-06-27 2009-09-29 Tabula, Inc. Retrieving data from a configurable IC
US7501855B2 (en) 2007-06-27 2009-03-10 Tabula, Inc Transport network for a configurable IC
US7579867B2 (en) * 2007-06-27 2009-08-25 Tabula Inc. Restructuring data from a trace buffer of a configurable IC
US8344755B2 (en) * 2007-09-06 2013-01-01 Tabula, Inc. Configuration context switcher
US8990651B2 (en) * 2007-09-19 2015-03-24 Tabula, Inc. Integrated circuit (IC) with primary and secondary networks and device containing such an IC
US8631448B2 (en) 2007-12-14 2014-01-14 Stratosaudio, Inc. Systems and methods for scheduling interactive media and events
US20090177736A1 (en) * 2007-12-14 2009-07-09 Christensen Kelly M Systems and methods for outputting updated media
US8166081B2 (en) 2008-02-05 2012-04-24 Stratosaudio, Inc. System and method for advertisement transmission and display
EP2250749A2 (de) 2008-02-05 2010-11-17 StratosAudio, Inc. Systeme, verfahren und einrichtungen zum scannen von ausstrahlungen
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
JP5110433B2 (ja) * 2008-03-18 2012-12-26 公立大学法人高知工科大学 データ駆動型情報処理装置
US8166435B2 (en) * 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
US9122809B2 (en) * 2008-07-01 2015-09-01 Hewlett-Packard Development Company, L.P. Segmenting bus topology
WO2010016857A1 (en) * 2008-08-04 2010-02-11 Tabula, Inc. Trigger circuits and event counters for an ic
US8674721B2 (en) 2008-09-17 2014-03-18 Tabula, Inc. Controllable storage elements for an IC
US7877897B2 (en) * 2008-12-16 2011-02-01 Skechers U.S.A., Inc. Ii Shoe
EP2441005A2 (de) 2009-06-09 2012-04-18 Martin Vorbach System und verfahren für einen zwischenspeicher in einem multikernprozessor
US8072234B2 (en) 2009-09-21 2011-12-06 Tabula, Inc. Micro-granular delay testing of configurable ICs
EP2553815A1 (de) 2010-04-02 2013-02-06 Tabula, Inc. System und verfahren zur reduzierung der nutzung von neukonfigurationsenergie
US8941409B2 (en) 2011-07-01 2015-01-27 Tabula, Inc. Configurable storage elements
US9148151B2 (en) 2011-07-13 2015-09-29 Altera Corporation Configurable storage elements
US20150012903A1 (en) 2013-07-04 2015-01-08 Tabula, Inc. Non-intrusive monitoring and control of integrated circuits
WO2018193354A1 (en) * 2017-04-17 2018-10-25 Cerebras Systems Inc. Wavelet representation for accelerated deep learning
GB2580165B (en) * 2018-12-21 2021-02-24 Graphcore Ltd Data exchange in a computer with predetermined delay
US11089140B2 (en) 2019-08-01 2021-08-10 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including generic encapsulation mode
US11689386B2 (en) 2019-08-01 2023-06-27 Vulcan Technologies International Inc. Intelligent controller and sensor network bus, system and method for controlling and operating an automated machine including a failover mechanism for multi-core architectures
US11156987B2 (en) 2019-08-01 2021-10-26 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including a message retransmission mechanism
US11809163B2 (en) 2019-08-01 2023-11-07 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including a message retransmission mechanism
US11086810B2 (en) 2019-08-01 2021-08-10 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including multi-layer platform security architecture
US10841230B1 (en) * 2019-08-01 2020-11-17 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method
US11269795B2 (en) 2019-08-01 2022-03-08 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including a link media expansion and conversion mechanism
US11263157B2 (en) 2019-08-01 2022-03-01 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including a dynamic bandwidth allocation mechanism
US11258538B2 (en) 2019-08-01 2022-02-22 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including an error avoidance and correction mechanism
US11269316B2 (en) 2019-08-01 2022-03-08 Vulcan Technologies Shanghai Co., Ltd. Intelligent controller and sensor network bus, system and method including smart compliant actuator module
US11327771B1 (en) * 2021-07-16 2022-05-10 SambaNova Systems, Inc. Defect repair circuits for a reconfigurable data processor

Family Cites Families (215)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2067477A (en) * 1931-03-20 1937-01-12 Allis Chalmers Mfg Co Gearing
GB971191A (en) * 1962-05-28 1964-09-30 Wolf Electric Tools Ltd Improvements relating to electrically driven equipment
GB1253309A (en) * 1969-11-21 1971-11-10 Marconi Co Ltd Improvements in or relating to data processing arrangements
DE2057312A1 (de) * 1970-11-21 1972-05-25 Bhs Bayerische Berg Planetenradgetriebe mit Lastdruckausgleich
US3855577A (en) * 1973-06-11 1974-12-17 Texas Instruments Inc Power saving circuit for calculator system
DE2943433A1 (de) 1979-10-26 1981-05-07 Bayer Ag, 5090 Leverkusen Verfahren zur herstellung von carbonsaeurehalogeniden
US4498134A (en) * 1982-01-26 1985-02-05 Hughes Aircraft Company Segregator functional plane for use in a modular array processor
JPS58151661A (ja) * 1982-03-04 1983-09-08 Omron Tateisi Electronics Co メモリ装置
US4498172A (en) * 1982-07-26 1985-02-05 General Electric Company System for polynomial division self-testing of digital networks
JPS5936857A (ja) * 1982-08-25 1984-02-29 Nec Corp プロセツサユニツト
US4663706A (en) * 1982-10-28 1987-05-05 Tandem Computers Incorporated Multiprocessor multisystem communications network
US4739474A (en) 1983-03-10 1988-04-19 Martin Marietta Corporation Geometric-arithmetic parallel processor
US4566102A (en) * 1983-04-18 1986-01-21 International Business Machines Corporation Parallel-shift error reconfiguration
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
US4682284A (en) * 1984-12-06 1987-07-21 American Telephone & Telegraph Co., At&T Bell Lab. Queue administration method and apparatus
DE3681463D1 (de) * 1985-01-29 1991-10-24 Secr Defence Brit Verarbeitungszelle fuer fehlertolerante matrixanordnungen.
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
US5015884A (en) 1985-03-29 1991-05-14 Advanced Micro Devices, Inc. Multiple array high performance programmable logic device family
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
US4967340A (en) 1985-06-12 1990-10-30 E-Systems, Inc. Adaptive processing system having an array of individually configurable processing components
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
DE3687400T2 (de) * 1985-11-04 1993-07-15 Ibm Digitale nachrichtenuebertragungsnetzwerke und aufbau von uebertragungswegen in diesen netzwerken.
US4852048A (en) * 1985-12-12 1989-07-25 Itt Corporation Single instruction multiple data (SIMD) cellular array processing apparatus employing a common bus where a first number of bits manifest a first bus portion and a second number of bits manifest a second bus portion
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
GB8612396D0 (en) * 1986-05-21 1986-06-25 Hewlett Packard Ltd Chain-configured interface bus system
US4860201A (en) * 1986-09-02 1989-08-22 The Trustees Of Columbia University In The City Of New York Binary tree parallel processor
US4910665A (en) * 1986-09-02 1990-03-20 General Electric Company Distributed processing system including reconfigurable elements
US5367208A (en) 1986-09-19 1994-11-22 Actel Corporation Reconfigurable programmable interconnect architecture
FR2606184B1 (fr) * 1986-10-31 1991-11-29 Thomson Csf Dispositif de calcul reconfigurable
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
US5115510A (en) * 1987-10-20 1992-05-19 Sharp Kabushiki Kaisha Multistage data flow processor with instruction packet, fetch, storage transmission and address generation controlled by destination information
US5113498A (en) * 1987-11-10 1992-05-12 Echelon Corporation Input/output section for an intelligent cell which provides sensing, bidirectional communications and control
US5303172A (en) 1988-02-16 1994-04-12 Array Microsystems Pipelined combination and vector signal processor
JPH06101043B2 (ja) * 1988-06-30 1994-12-12 三菱電機株式会社 マイクロコンピュータ
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
US5353432A (en) 1988-09-09 1994-10-04 Compaq Computer Corporation Interactive method for configuration of computer system and circuit boards with user specification of system resources and computer resolution of resource conflicts
ES2047629T3 (es) * 1988-09-22 1994-03-01 Siemens Ag Disposicion de circuito para instalaciones de conmutacion de telecomunicaciones, especialmente instalaciones de conmutacion telefonica de multiplexacion temporal-pcm con campo de acoplamiento central y campos de acoplamiento parcial conectados.
EP0390907B1 (de) 1988-10-07 1996-07-03 Martin Marietta Corporation 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
JP2584673B2 (ja) * 1989-06-09 1997-02-26 株式会社日立製作所 テストデータ変更回路を有する論理回路テスト装置
CA2021192A1 (en) * 1989-07-28 1991-01-29 Malcolm A. Mumme Simplified synchronous mesh processor
US5212652A (en) 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
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
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 株式会社リコー 中央演算処理装置
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
DE58908974D1 (de) * 1989-11-21 1995-03-16 Itt Ind Gmbh Deutsche Datengesteuerter Arrayprozessor.
DE4000673C2 (de) * 1990-01-11 2003-04-24 Siemens Ag Verfahren und Anordnung zur Übertragung von Daten in einem aus mehreren Segmenten bestehenden Bussystem
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
US5193202A (en) * 1990-05-29 1993-03-09 Wavetracer, Inc. Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor
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
US5274593A (en) 1990-09-28 1993-12-28 Intergraph Corporation High speed redundant rows and columns for semiconductor memories
US5144166A (en) 1990-11-02 1992-09-01 Concurrent Logic, Inc. Programmable logic cell and array
US5713037A (en) * 1990-11-13 1998-01-27 International Business Machines Corporation Slide bus communication functions for SIMD/MIMD array processor
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5588152A (en) 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5301284A (en) * 1991-01-16 1994-04-05 Walker-Estes Corporation Mixed-resolution, N-dimensional object space method and apparatus
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 並列データ処理方式
US5617547A (en) * 1991-03-29 1997-04-01 International Business Machines Corporation Switch network extension of bus architecture
EP0539595A4 (en) 1991-04-09 1994-07-20 Fujitsu Ltd Data processor and data processing method
US5551033A (en) * 1991-05-17 1996-08-27 Zenith Data Systems Corporation Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program
CA2109799A1 (en) 1991-05-24 1992-12-10 Daniel Mark Nosenchuck Optimizing compiler for computers
US5659797A (en) 1991-06-24 1997-08-19 U.S. Philips Corporation Sparc RISC based computer system including a single chip processor with memory management and DMA units coupled to a DRAM interface
US5347639A (en) 1991-07-15 1994-09-13 International Business Machines Corporation Self-parallelizing computer system and method
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
FR2681791B1 (fr) * 1991-09-27 1994-05-06 Salomon Sa Dispositif d'amortissement des vibrations pour club de golf.
CA2073516A1 (en) 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
US5208491A (en) * 1992-01-07 1993-05-04 Washington Research Foundation Field programmable gate array
FR2686175B1 (fr) 1992-01-14 1996-12-20 Andre Thepaut Systeme de traitement de donnees multiprocesseur.
JP2791243B2 (ja) * 1992-03-13 1998-08-27 株式会社東芝 階層間同期化システムおよびこれを用いた大規模集積回路
US5452401A (en) 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5611049A (en) * 1992-06-03 1997-03-11 Pitts; William M. System for accessing distributed data cache channel at each network node to pass requests and data
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
US5590348A (en) 1992-07-28 1996-12-31 International Business Machines Corporation Status predictor for combined shifter-rotate/merge unit
US5802290A (en) * 1992-07-29 1998-09-01 Virtual Computer Corporation Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed
US5581778A (en) * 1992-08-05 1996-12-03 David Sarnoff Researach Center Advanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock
US5425036A (en) 1992-09-18 1995-06-13 Quickturn Design Systems, Inc. Method and apparatus for debugging reconfigurable emulation systems
JPH06180653A (ja) 1992-10-02 1994-06-28 Hudson Soft Co Ltd 割り込み処理方法および装置
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
US5392437A (en) 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
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
US5428526A (en) 1993-02-03 1995-06-27 Flood; Mark A. Programmable controller with time periodic communication
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
US5596742A (en) * 1993-04-02 1997-01-21 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
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
DE4416881C2 (de) * 1993-05-13 1998-03-19 Pact Inf Tech Gmbh Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
US5349193A (en) 1993-05-20 1994-09-20 Princeton Gamma Tech, Inc. Highly sensitive nuclear spectrometer apparatus and method
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
US5440538A (en) 1993-09-23 1995-08-08 Massachusetts Institute Of Technology Communication system with redundant links and data bit time multiplexing
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
US5535406A (en) 1993-12-29 1996-07-09 Kolchinsky; Alexander Virtual processor module including a reconfigurable programmable matrix
US5680583A (en) 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
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
US5896551A (en) * 1994-04-15 1999-04-20 Micron Technology, Inc. Initializing and reprogramming circuitry for state independent memory array burst operations control
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
JP3365581B2 (ja) 1994-07-29 2003-01-14 富士通株式会社 自己修復機能付き情報処理装置
US5530813A (en) * 1994-08-04 1996-06-25 Pattern Processing Technology Field-programmable electronic crossbar system and method for using same
US5574930A (en) 1994-08-12 1996-11-12 University Of Hawaii Computer system and method using functional memory
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
US5530946A (en) 1994-10-28 1996-06-25 Dell Usa, L.P. Processor failure detection and recovery circuit in a dual processor computer system and method of operation thereof
JPH08137824A (ja) 1994-11-15 1996-05-31 Mitsubishi Semiconductor Software Kk セルフテスト機能内蔵シングルチップマイコン
EP0721157A1 (de) * 1994-12-12 1996-07-10 Advanced Micro Devices, Inc. Mikroprozessor mit auswählbarer Taktfrequenz
US5532957A (en) 1995-01-31 1996-07-02 Texas Instruments Incorporated Field reconfigurable logic/memory array
US5493239A (en) 1995-01-31 1996-02-20 Motorola, Inc. Circuit and method of configuring a field programmable gate array
US5742180A (en) * 1995-02-10 1998-04-21 Massachusetts Institute Of Technology Dynamically programmable gate array with multiple contexts
US5659785A (en) 1995-02-10 1997-08-19 International Business Machines Corporation Array processor communication architecture with broadcast processor instructions
US6052773A (en) * 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5537057A (en) 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of conductors
US5892961A (en) * 1995-02-17 1999-04-06 Xilinx, Inc. Field programmable gate array having programming instructions in the configuration bitstream
US5675743A (en) 1995-02-22 1997-10-07 Callisto Media Systems Inc. Multi-media server
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
US5649179A (en) 1995-05-19 1997-07-15 Motorola, Inc. Dynamic instruction allocation for a SIMD processor
US5646544A (en) 1995-06-05 1997-07-08 International Business Machines Corporation System and method for dynamically reconfiguring a programmable gate array
US5889982A (en) * 1995-07-01 1999-03-30 Intel Corporation Method and apparatus for generating event handler vectors based on both operating mode and event type
US5559450A (en) 1995-07-27 1996-09-24 Lucent Technologies Inc. Field programmable gate array with multi-port RAM
US5978583A (en) * 1995-08-07 1999-11-02 International Business Machines Corp. Method for resource control in parallel environments using program organization and run-time support
US5649176A (en) 1995-08-10 1997-07-15 Virtual Machine Works, Inc. Transition analysis and circuit resynthesis method and device for digital circuit modeling
US5583450A (en) 1995-08-18 1996-12-10 Xilinx, Inc. Sequencer for a time multiplexed programmable logic device
US5784313A (en) * 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
US5652894A (en) 1995-09-29 1997-07-29 Intel Corporation Method and apparatus for providing power saving modes to a pipelined processor
US5943242A (en) * 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US5732209A (en) * 1995-11-29 1998-03-24 Exponential Technology, Inc. Self-testing multi-processor die with internal compare points
US7266725B2 (en) * 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5936424A (en) * 1996-02-02 1999-08-10 Xilinx, Inc. High speed bus with tree structure for selecting bus driver
US6279077B1 (en) * 1996-03-22 2001-08-21 Texas Instruments Incorporated Bus interface buffer control in a microprocessor
US6173434B1 (en) * 1996-04-22 2001-01-09 Brigham Young University Dynamically-configurable digital processor using method for relocating logic array modules
US5894565A (en) * 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US5892370A (en) * 1996-06-21 1999-04-06 Quicklogic Corporation Clock network for field programmable gate array
US6023742A (en) * 1996-07-18 2000-02-08 University Of Washington Reconfigurable computing architecture for providing pipelined data paths
US6023564A (en) * 1996-07-19 2000-02-08 Xilinx, Inc. Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions
US5838165A (en) * 1996-08-21 1998-11-17 Chatter; Mukesh High performance self modifying on-the-fly alterable logic FPGA, architecture and method
US5859544A (en) * 1996-09-05 1999-01-12 Altera Corporation Dynamic configurable elements for programmable logic devices
US6005410A (en) * 1996-12-05 1999-12-21 International Business Machines Corporation Interconnect structure between heterogeneous core regions in a programmable array
DE19651075A1 (de) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
US6338106B1 (en) * 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
DE19654593A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
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.)
DE19704044A1 (de) * 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
US5865239A (en) * 1997-02-05 1999-02-02 Micropump, Inc. Method for making herringbone gears
DE19704728A1 (de) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
US6542998B1 (en) * 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
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
US5884075A (en) * 1997-03-10 1999-03-16 Compaq Computer Corporation Conflict resolution using self-contained virtual devices
US6321366B1 (en) * 1997-05-02 2001-11-20 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
US6389379B1 (en) * 1997-05-02 2002-05-14 Axis Systems, Inc. Converification system and method
US6047115A (en) * 1997-05-29 2000-04-04 Xilinx, Inc. Method for configuring FPGA memory planes for virtual hardware computation
US6421817B1 (en) * 1997-05-29 2002-07-16 Xilinx, Inc. System and method of computation in a programmable logic device using virtual instructions
US6011407A (en) * 1997-06-13 2000-01-04 Xilinx, Inc. Field programmable gate array with dedicated computer bus interface and method for configuring both
US5966534A (en) * 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
US6038656A (en) * 1997-09-12 2000-03-14 California Institute Of Technology Pipelined completion for asynchronous communication
JP4128251B2 (ja) * 1997-10-23 2008-07-30 富士通株式会社 配線密度予測方法およびセル配置装置
US5915123A (en) * 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
DE69737750T2 (de) * 1997-12-17 2008-03-06 Hewlett-Packard Development Co., L.P., Houston Erst- und Zweitprozessoren verwendetes Verfahren
DE19861088A1 (de) * 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6172520B1 (en) * 1997-12-30 2001-01-09 Xilinx, Inc. FPGA system with user-programmable configuration ports and method for reconfiguring the FPGA
US6049222A (en) * 1997-12-30 2000-04-11 Xilinx, Inc Configuring an FPGA using embedded memory
US6034538A (en) * 1998-01-21 2000-03-07 Lucent Technologies Inc. Virtual logic system for reconfigurable hardware
WO1999038071A1 (en) * 1998-01-26 1999-07-29 Chameleon Systems, Inc. Reconfigurable logic for table lookup
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.
US6282627B1 (en) * 1998-06-29 2001-08-28 Chameleon Systems, Inc. Integrated processor and programmable data path chip for reconfigurable computing
US6202182B1 (en) * 1998-06-30 2001-03-13 Lucent Technologies Inc. Method and apparatus for testing field programmable gate arrays
JP3585800B2 (ja) * 1999-01-13 2004-11-04 株式会社東芝 情報処理装置
US6243808B1 (en) * 1999-03-08 2001-06-05 Chameleon Systems, Inc. Digital data bit order conversion using universal switch matrix comprising rows of bit swapping selector groups
US6298472B1 (en) * 1999-05-07 2001-10-02 Chameleon Systems, Inc. Behavioral silicon construct architecture and mapping
US6347346B1 (en) * 1999-06-30 2002-02-12 Chameleon Systems, Inc. Local memory unit system with global access for use on reconfigurable chips
US6370596B1 (en) * 1999-08-03 2002-04-09 Chameleon Systems, Inc. Logic flag registers for monitoring processing system events
US6341318B1 (en) * 1999-08-10 2002-01-22 Chameleon Systems, Inc. DMA data streaming
US6288566B1 (en) * 1999-09-23 2001-09-11 Chameleon Systems, Inc. Configuration state memory for functional blocks on a reconfigurable chip
US6311200B1 (en) * 1999-09-23 2001-10-30 Chameleon Systems, Inc. Reconfigurable program sum of products generator
US6349346B1 (en) * 1999-09-23 2002-02-19 Chameleon Systems, Inc. Control fabric unit including associated configuration memory and PSOP state machine adapted to provide configuration address to reconfigurable functional unit
US6519674B1 (en) * 2000-02-18 2003-02-11 Chameleon Systems, Inc. Configuration bits layout
US6539477B1 (en) * 2000-03-03 2003-03-25 Chameleon Systems, Inc. System and method for control synthesis using a reachable states look-up table
US6657457B1 (en) * 2000-03-15 2003-12-02 Intel Corporation Data transfer on reconfigurable chip
JP2004506261A (ja) * 2000-06-13 2004-02-26 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト パイプラインctプロトコルおよびct通信
US6538468B1 (en) * 2000-07-31 2003-03-25 Cypress Semiconductor Corporation Method and apparatus for multiple boot-up functionalities for a programmable logic device (PLD)
US20040015899A1 (en) * 2000-10-06 2004-01-22 Frank May Method for processing data
US6392912B1 (en) * 2001-01-10 2002-05-21 Chameleon Systems, Inc. Loading data plane on reconfigurable chip
US7210129B2 (en) * 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US6792588B2 (en) * 2001-04-02 2004-09-14 Intel Corporation Faster scalable floorplan which enables easier data control flow
US20020143505A1 (en) * 2001-04-02 2002-10-03 Doron Drusinsky Implementing a finite state machine using concurrent finite state machines with delayed communications and no shared control signals
US6999984B2 (en) * 2001-05-02 2006-02-14 Intel Corporation Modification to reconfigurable functional unit in a reconfigurable chip to perform linear feedback shift register function
US20030056091A1 (en) * 2001-09-14 2003-03-20 Greenberg Craig B. Method of scheduling in a reconfigurable hardware architecture with multiple hardware configurations
US20030055861A1 (en) * 2001-09-18 2003-03-20 Lai Gary N. Multipler unit in reconfigurable chip
US20030052711A1 (en) * 2001-09-19 2003-03-20 Taylor Bradley L. Despreader/correlator unit for use in reconfigurable chip

Cited By (49)

* 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)
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
USRE45223E1 (en) 1997-02-08 2014-10-28 Pact Xpp Technologies Ag Method of self-synchronization of configurable elements of a programmable module
US10885996B2 (en) 1997-10-08 2021-01-05 Pact Xpp Schweiz Ag Processor having a programmable function unit
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
US8726250B2 (en) 1999-06-10 2014-05-13 Pact Xpp Technologies Ag Configurable logic integrated circuit having a multidimensional structure of configurable elements
US8230411B1 (en) 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
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
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9047440B2 (en) 2000-10-06 2015-06-02 Pact Xpp Technologies Ag Logical cell array and bus system
US8471593B2 (en) 2000-10-06 2013-06-25 Martin Vorbach Logic cell array and bus system
US7844796B2 (en) 2001-03-05 2010-11-30 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
US8145881B2 (en) 2001-03-05 2012-03-27 Martin Vorbach Data processing device and method
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
US9075605B2 (en) 2001-03-05 2015-07-07 Pact Xpp Technologies Ag Methods and devices for treating and processing data
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
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
US7840842B2 (en) 2001-09-03 2010-11-23 Martin Vorbach Method for debugging reconfigurable architectures
US8069373B2 (en) 2001-09-03 2011-11-29 Martin Vorbach Method for debugging reconfigurable architectures
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
US8281265B2 (en) 2002-08-07 2012-10-02 Martin Vorbach Method and device for processing data
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US8156284B2 (en) 2002-08-07 2012-04-10 Martin Vorbach Data processing method and device
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7782087B2 (en) 2002-09-06 2010-08-24 Martin Vorbach Reconfigurable sequencer structure
US8310274B2 (en) 2002-09-06 2012-11-13 Martin Vorbach Reconfigurable sequencer structure
US8803552B2 (en) 2002-09-06 2014-08-12 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7928763B2 (en) 2002-09-06 2011-04-19 Martin Vorbach Multi-core processing system
DE10243322B4 (de) * 2002-09-18 2004-12-02 Pact Xpp Technologies Ag Analoge rekonfigurierbare Datenverarbeitungseinrichtung
US8812820B2 (en) 2003-08-28 2014-08-19 Pact Xpp Technologies Ag Data processing device and method
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
DE59810469D1 (de) 2004-01-29
US7010667B2 (en) 2006-03-07
DE19880128D2 (de) 2000-01-13
JP2001511326A (ja) 2001-08-07
US20030135686A1 (en) 2003-07-17
WO1998035294A2 (de) 1998-08-13
EP1398706A3 (de) 2006-04-12
EP1398706A2 (de) 2004-03-17
WO1998035294A3 (de) 1998-10-22
CA2280057A1 (en) 1998-08-13
JP3894957B2 (ja) 2007-03-22
US6405299B1 (en) 2002-06-11
EP0960374B1 (de) 2003-12-17
EP0960374A2 (de) 1999-12-01
AU6392498A (en) 1998-08-26
ATE256888T1 (de) 2004-01-15

Similar Documents

Publication Publication Date Title
DE19704742A1 (de) Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
EP0951682B1 (de) IO- UND SPEICHERBUSSYSTEM FÜR DFPs SOWIE BAUSTEINE MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
EP0961980B1 (de) Verfahren zur selbstsynchronisation von konfigurierbaren elementen eines programmierbaren bausteines
DE4416881C2 (de) Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
DE69733931T2 (de) Kreuzvermittlungsschalter und verfahren mit beschränktem spannungshub und blockierungsfreien vermittlungswegen
EP1057102B1 (de) VERFAHREN ZUR DEADLOCKFREIEN KONFIGURATION VON DATENFLUSSPROZESSOREN UND BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALER PROGRAMMIERBARER ZELLSTRUKTUR (FPGAs, DPGAs, O. DGL.)
DE60213601T2 (de) Programmierbare hardwarelogik, welche ein programmierbares interface und eine zentrale recheneinheit beinhaltet
DE602004009324T2 (de) Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren
EP1329816A2 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
CH620306A5 (de)
EP1310881A2 (de) Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPUs), Mehrrechnersystemen
EP0948842A1 (de) VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.)
DE2911677B2 (de) Verfahren und Schaltungsanordnung zum Überwachen und Verhindern von Blockierungen in Datenverarbeitungssystemen mit mehreren Prozessoren
DE102005005073A1 (de) Rekonfigurierbare Architektur zur parallelen Berechnung beliebiger Algorithmen
WO2002071248A2 (de) Verfahren und vorrichtungen zur datenbe- und/oder verarbeitung
DE3003999A1 (de) System zum asynchronen uebertragen von daten zwischen aktiven teilanordnungen
CH634938A5 (de) Einrichtung fuer die weiterleitung von speicherzugriffsanforderungen.
EP1514193B1 (de) Bussysteme und rekonfigurationsverfahren
EP2159959B1 (de) Verfahren zur Ermittlung einer Topologie, Netzwerkkomponente und Zentraleinheit
DE3928998C2 (de) Speicherprogrammierbare Steuerung
EP3676995A1 (de) Master eines bussystems
DE3937021A1 (de) Anordnung zur datenuebertragung zwischen einer zentralen einheit und an diese ueber einen seriellen bus angeschlossenen teilnehmern
EP1348257B1 (de) Zellenanordnung mit segmentierter zwischenzellstruktur
EP0477405B1 (de) Kommunikationssystem zum Übertragen von Nachrichten zwischen jeweils zwei Einheiten

Legal Events

Date Code Title Description
8143 Lapsed due to claiming internal priority