DE69822796T2 - Nutzerprogrammierbarer prozessor - Google Patents

Nutzerprogrammierbarer prozessor Download PDF

Info

Publication number
DE69822796T2
DE69822796T2 DE69822796T DE69822796T DE69822796T2 DE 69822796 T2 DE69822796 T2 DE 69822796T2 DE 69822796 T DE69822796 T DE 69822796T DE 69822796 T DE69822796 T DE 69822796T DE 69822796 T2 DE69822796 T2 DE 69822796T2
Authority
DE
Germany
Prior art keywords
buses
switches
memory cells
group
gate
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.)
Expired - Lifetime
Application number
DE69822796T
Other languages
English (en)
Other versions
DE69822796D1 (de
Inventor
Alan Marshall
Anthony Stansfield
Jean Vuillemin
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.)
Panasonic Corp
Original Assignee
Elixent Ltd
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 Elixent Ltd filed Critical Elixent Ltd
Publication of DE69822796D1 publication Critical patent/DE69822796D1/de
Application granted granted Critical
Publication of DE69822796T2 publication Critical patent/DE69822796T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • 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/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/1778Structural details for adapting physical parameters
    • H03K19/17796Structural details for adapting physical parameters for physical disposition of blocks

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Logic Circuits (AREA)

Description

  • Die Erfindung bezieht sich auf anwenderprogrammierbare Vorrichtungen.
  • Insbesondere bezieht sich die Erfindung auf eine solche Vorrichtung, die aufweist: eine Vielzahl von Verarbeitungsvorrichtungen; eine Verbindungsmatrix, die die Verarbeitungsvorrichtungen miteinander verbindet und eine Vielzahl von Schaltern enthält; eine Vielzahl von Speicherzellen zum Speichern von Daten, mit denen die Schalter kontrolliert werden, um die Konfiguration der Verbindungen der Verbindungsmatrix zu bestimmen.
  • Vorrichtungen, die vom Anwender programmierbar sind, sind im Stand der Technik bekannt. Die US 5,453,706 beschreibt ein solches von einem Anwender programmierbares Gatter-Feld. Sie gibt ein Schema an, um den Effekt eines Konfigurations-Bits an Drei-Zustands-Puffern innerhalb der Zwischenverbindungs-Netzwerk-Struktur der FPGA zu übergehen. Die US 5,583,450 lehrt die Verwendung einer wieder konfigurierbaren, logischen Vorrichtung, die mehrere Ebenen eines Konfigurationsspeichers besitzt.
  • Die Probleme, auf die sich die vorliegende Erfindung bezieht, sind diejenigen, eine flexiblere Verwendung eines Speichers zu schaffenen, um eine höhere Speicherdichte und eine höhere Schaltungsdichte zu ermöglichen.
  • Dementsprechend schafft die vorliegende Erfindung eine durch einen Anwender programmierbare Vorrichtung, wie sie im Detail in den beigefügten Ansprüchen angegeben ist.
  • Gemäß der vorliegenden Erfindung wird eine Gattereinrichtung geschaffen, die die Wirkung der Daten, die in wenigsten einer einer Vielzahl von Gruppen der Speicherzellen gespeichert sind, auf die Konfiguration der Verbindungen eines entsprechenden Abschnitts der Verbindungsmatrix isoliert, so dass die Speicherzellen in dieser Gruppe zum Speichern anderer Daten verfügbar sind. Dementsprechend können die Speicherzellen wahlweise (a) zum Kontrollieren der Zwischenverbindungen und (b) als Benutzer-Speicher verwendet werden. Durch Vorsehen dieses Merkmals, unter Verwendung des Konfigurations-Speichers für die Schalter, kann eine höhere Speicherdichte erreicht werden.
  • Die Gattereinrichtung weist vorzugsweise Einrichtungen zum Isolieren jeder der Speicherzellen in der Gruppe von den Schaltern, die kontrollierbar durch diese Speicherzellen sind und jeden dieser Schalter auf einen vorbestimmten Zustand einstellen, auf. Dies ermöglicht eine Isolation, ohne dass erforderlich ist, dass zusätzliche Schalter in die Verdrahtung der Verbindungsmatrix eingeführt werden, was eine Signalausbreitungsverzögerung erhöhen und so die Schaltungsgeschwindigkeit reduzieren würde.
  • Das letztere Merkmal kann in Vorrichtungen vorgesehen sein, die nicht erfordern, dass Speicherzellen in Gruppen isoliert werden.
  • Dementsprechend können, wenn isoliert ist, die Schalter noch eine vorbestimmte Verbindung in der Verbindungsmatrix erzielen, allerdings können sie alle auf "aus" gesetzt sein.
  • Die Gattereinrichtung weist vorzugsweise, für jede Speicherzelle, ein jeweiliges Gatter auf, das Eingänge besitzt, die mit der Speicherzelle und mit einem Steuersignal verbunden sind, und mit einem Ausgang, der mit dem oder jedem Schalter, der durch die Speicherzelle kontrolliert werden kann, verbunden ist. Die Verwendung eines Gatters stellt sicher, dass der Schalter durch ein gut definiertes, logisches Niveau, zu allen Zeitpunkten, kontrolliert wird, ob er nun durch die Speicherzelle oder das Steuersignal kontrolliert wird. Jedes Gatter kann für vier Transistoren vorgesehen sein und einer der Transistoren jedes Gatters kann gemeinsam für eine Vielzahl von Gattern sein, was demzufolge ermöglicht, dass eine erhöhte Schaltungsdichte erreichbar ist.
  • Die Gattereinrichtung weist vorzugsweise eine Einrichtung zum Isolieren jedes der Schalter in der Gruppe von dem Rest der Verbindungsmatrix auf.
  • Mindestens einige der Zwischenverbindungen, vorgesehen durch die Verbindungsmatrix, können in der Form von Mehrfachbit-Bussen vorgesehen sein, wobei solche der Schalter für die Busse jeweils eine Vielzahl von Schaltelementen jeweils für ein entsprechendes Bit des Busses umfasst.
  • Die Positionen der Speicherzellen sind vorzugsweise über die Vorrichtung im Wesentlichen in dem gleichen Maß verteilt wie die Schalter, und jede der Speicherzellen ist, angrenzend an den Schalter oder an Schalter, steuerbar durch die Speicherzelle, angeordnet, was demzufolge ermöglicht, dass eine hohe Schaltungsdichte erreicht werden kann.
  • Eine spezifische Ausführungsform der vorliegenden Erfindung wird nun, anhand eines Beispiels, unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
  • 1 stellt einen Teil eines Prozessorfelds dar, das sechs Schaltabschnitte und die Stellen von sechs arithmetischen, logischen Einheiten zeigt;
  • 2 zeigt ein Diagramm eines Teils der Anordnung, dargestellt in 1, in einem größeren Maßstab, einen der Schaltabschnitte und eine der Stellen der arithmetischen, logischen Einheiten darstellend;
  • 3 stellt einen Teil des Prozessorfelds, dargestellt in 1, in einem kleineren Maßstab dar, die Stellen der arithmetischen, logischen Einheiten und von "vertikalen" Bussen, die sich darüber erstrecken, darstellend;
  • 4 ist ähnlich zu 3, die allerdings "horizontale" Busse darstellt, die sich über die Stellen der arithmetischen, logischen Einheiten erstrecken;
  • 5 stellt die Zwischenverbindungen zwischen den Bussen der 2, 3 und 4 an der Stelle einer der arithmetischen, logischen Einheiten dar;
  • 6A stellt im Detail die Schaltung eines Typs eines programmierbaren Schalters in den Umschaltabschnitten, zur Verbindung eines Paars von 4-Bit-Bussen, die einander kreuzen, dar;
  • 6B stellt im Detail die Schaltung eines anderen Typs eines programmierbaren Schalters in den Umschaltabschnitten, zum Verbinden eines Paars von 4-Bit-Bussen, die einander Ende an Ende treffen, dar;
  • 6C stellt im Detail die Schaltung eines anderen Typs eines programmierbaren Schalters in den Umschaltabschnitten, zur Verbindung von Träger-Bit-Bussen, dar;
  • 7 stellt die Schaltung einer Reihe von NOR-Gattern dar, die in den programmierbaren Schaltern der 5 und 6 verwendet werden können;
  • 8 stellt eine Modifikation der Schaltung der 7 dar;
  • 9 stellt einen Puffer und ein Register dar, die in jedem Umschaltabschnitt verwendet werden können;
  • 10 zeigt eine schematische Zeichnung, die darstellt, wie Freigabesignale zu den programmierbaren Schaltern in den Umschaltabschnitten hin verteilt werden können; und
  • 11 stellt in weiterem Detail die Schaltung der Anordnung, dargestellt in 10, dar.
  • In der nachfolgenden Beschreibung sind die Ausdrücke "horizontal", "vertikal", "Norden", "Süden", "Osten" und "Westen" dazu verwendet worden, um beim Verständnis von relativen Richtungen zu unterstützen, allerdings ist deren Verwendung nicht dahingehend vorgesehen, irgendeine Beschränkung der absoluten Orientierung der Ausführungsform der Erfindung aufzuerlegen.
  • Das Prozessorfeld, das die Ausführungsform der Erfindung bildet, ist in einer integrierten Schaltung vorgesehen. An einem Niveau ist das Prozessorfeld durch ein rechteckiges (und bevorzugt quadratisches) Feld aus "Kacheln 10" gebildet, wobei eines davon, durch eine dicke Linie in 1 umgeben, dargestellt ist. Irgendeine geeignete Anzahl von Kacheln kann eingesetzt werden, zum Beispiel in einem 16 × 16, 32 × 32 oder 64 × 64 Feld. Jede Kachel 10 ist rechtwinklig (und vorzugsweise quadratisch) und ist in vier Schaltungsbereiche unterteilt. Es ist für diese Kacheln bevorzugt, dass sie logisch ein Quadrat sind (um eine Symmetrie in einer Verbindung zu erzielen), obwohl es von geringerer Bedeutung ist, dass sie physikalisch quadratisch sind (dies kann einen bestimmten Vorteil bei einem Erzielen einer Symmetrie in der Zeitabstimmung haben, allerdings wird dies allgemein weniger wahrscheinlich sein, dass es von Bedeutung ist). Zwei der Schaltungsbereiche 12, die diagonal in der Kachel 10 gegenüberliegend sind, bilden die Stellen für zwei arithmetische, logische Einheiten ("ALUs"). Die anderen zwei Schaltungsbereiche, die diagonal gegenüberliegend in der Kachel 10 sind, liefern die Stellen für ein Paar von Umschaltabschnitten 14.
  • Wie die 1 und 2 zeigen, besitzt jede ALU ein erstes Paar von 4-Bit-Eingängen a, die direkt innerhalb der ALU verbunden sind, ein zweites Paar von 4-Bit-Eingängen b, die auch direkt innerhalb der ALU verbunden sind, und vier 4-Bit-Ausgänge f, die direkt innerhalb der ALU verbunden sind. Jede ALU besitzt auch ein unabhängiges Paar von 1-Bit-Träger-Eingängen hci, vci, und ein Paar von 1-Bit-Träger-Ausgängen co, die direkt und innerhalb der ALU verbunden sind. Die ALU kann Standard-Operationen in Bezug auf die Eingangssignale a, b, hci, vci durchführen, um die Ausgangssignale f, co, zu erzeugen, beispielsweise Addieren, Subtrahieren, AND, NAND, OR, NOR, XOR, NXOR, und Multiplexieren, und kann optional das Ergebnis der Operation registrieren. Die Befehle zu den ALUs können von jeweiligen 4-Bit-Speicher-Zellen geliefert werden, deren Werte über die "H-Baum" Struktur, die nachfolgend beschrieben ist, eingestellt sein kann, oder können auf dem Bus-System geliefert werden, das nachfolgend beschrieben werden wird.
  • Auf dem Niveau, dargestellt in den 1 und 2, besitzt jeder Umschaltabschnitt 14 acht Busse, die sich darüber horizontal erstrecken, und acht Busse, die sich darüber vertikal erstrecken, was demzufolge ein rechteckiges 8 × 8 Feld aus 64 Kreuzungspunkten bildet, die in 2 mit kartesischen Koordinaten nummeriert worden sind. Alle Busse besitzen eine Breite von vier Bits, mit der Ausnahme des Träger-Busses vc bei X = 4 und des Träger-Busses hc bei Y = 3, die eine Breite von einem Bit haben. An vielen der Kreuzungspunkten ist ein programmierbarer 4-Gang-Schalter 16 vorgesehen, der wahlweise mit zwei Bussen an diesem Kreuzungspunkt verbunden werden kann. An einigen der Kreuzungspunkten ist ein programmierbarer 4-Gang-Schalter 18 vorgesehen, der wahlweise zwei Busse verbinden kann, die sich Ende an Ende an diesem Kreuzungspunkt treffen, ohne irgendeine Verbindung mit dem Bus unter rechten Winkeln dazu. An dem Kreuzungspunkt bei (4, 3) ist ein programmierbarer Schalter 20 (zum Beispiel so, wie dies in 6C dargestellt ist) vorgesehen, der wahlweise die Trägerbusse vc, hc verbinden kann, die sich unter rechten Winkeln an diesem Punkt kreuzen.
  • Die horizontalen Busse in dem Schaltabschnitt 14 werden nun beschrieben.
  • Bei Y = 0 sind Busse h2s durch programmierbare Schalter 16 mit den vertikalen Bussen bei X = 0, 1, 2, 5, 6 verbindbar. Die Busse h2s besitzen eine Länge von zwei Kacheln und sind Ende an Ende in jedem anderen Umschaltabschnitt 14 durch einen programmierbaren Schalter 18 bei (4, 0) verbindbar.
  • Bei Y = 1 ist ein Bus, der sich von einem Eingang b der ALU nach Westen erstrecken kann, durch Schalter 16 mit den vertikalen Bussen bei X = 0, 1, 2, 3 verbindbar. Auch ist ein Bus fw, der sich von einem Ausgang f der ALU nach Osten erstreckt, durch Schalter 16 mit den vertikalen Bussen bei X = 5, 6, 7 verbindbar. Die Enden der Busse be, fw sind durch einen programmierbaren Schalter 18 bei (4, 1) verbindbar.
  • Bei Y = 2 ist ein Bus hregs durch programmierbare Schalter 16 mit den vertikalen Bussen bei X = 1, 2, 3, 4, 5, 6, 7 verbindbar.
  • Bei Y = 3 erstreckt sich ein Bus hco von dem Träger-Ausgang co der ALU nach Westen zu einem programmierbaren Schalter 20 bei (4, 3), der den Bus hco (a) mit einem Träger-Bus hci, der sich zu dem Träger-Eingang hci der ALU nach Osten erstreckt, oder (b) einem Träger-Bus vci, der sich zu dem Träger-Eingang vci der ALU nach Süden erstreckt, verbindet.
  • Bei Y = 4 ist ein Bus hregn durch programmierbare Schalter 16 mit den vertikalen Bussen bei X = 0, 1, 2, 3, 5, 6 verbindbar.
  • Bei Y = 5 sind Busse h1 mit den vertikalen Bussen bei X = 0, 1, 2, 3, 5, 6, 7 verbindbar. Die Busse h1 besitzen eine Länge von einer Kachel und sind Ende an Ende, in jedem Umschaltabschnitt, 14 durch einen programmierbaren Schalter 18 bei (4, 5) verbindbar.
  • Bei Y = 6 ist ein Bus fe der sich von einem Ausgang f der ALU nach Westen erstreckt, durch Schalter 16 mit den vertikalen Bussen bei X = 0, 1, 2, 3 verbindbar. Auch ist ein Bus aw, der sich von einem Eingang a der ALU nach Osten erstreckt, durch Schalter 16 mit den vertikalen Bussen bei X = 5, 6, 7 verbindbar. Die Enden der Busse fe, aw sind durch einen programmierbaren Schalter 18 bei (4, 6) verbindbar.
  • Bei Y = 7 sind Busse h2n durch programmierbare Schalter 16 mit den vertikalen Bussen bei X = 1, 2, 3, 6, 7 verbindbar. Die Busse h2n besitzen eine Länge von zwei Kacheln und sind Ende an Ende in jedem anderen Umschaltabschnitt 14 durch einen programmierbaren Schalter 18 bei (4, 7), gestaffelt in Bezug auf die programmierbaren Schalter 18, die die Busse h2s bei (4, 2) verbinden, verbindbar.
  • Die vertikalen Busse in dem Umschaltabschnitt 14 werden nun beschrieben.
  • Bei X = 0 sind Busse v2w durch programmierbare Schalter 16 mit den horizontalen Bussen bei Y = 0, 1, 4, 5, 6 verbindbar. Die Busse v2w besitzen eine Länge von zwei Kacheln und sind Ende an Ende in jedem anderen Umschaltabschnitt 14 durch einen programmierbaren Schalter 18 bei (0, 3) verbindbar.
  • Bei X = 1 ist ein Bus fn, der sich von einem Ausgang f der ALU nach Süden erstreckt, durch programmierbare Schalter 16 mit den horizontalen Bussen bei Y = 0, 1, 2, verbindbar. Auch ist ein Bus bs, der sich von einem Eingang b der ALU nach Norden erstreckt, durch Schalter 16 mit den horizontalen Bussen bei Y = 4, 5, 6, 7 verbindbar. Die Enden der Busse fn, bs sind durch einen programmierbaren Schalter 18 bei (1, 3) verbindbar.
  • Bei X = 2 sind Busse v1 mit den horizontalen Bussen bei Y = 0, 1, 2, 4, 5, 6, 7 verbindbar. Die Busse v1 besitzen eine Länge von einer Kachel und sind Ende an Ende in jedem Umschaltabschnitt 14 durch einen programmierbaren Schalter 18 bei (2, 3) verbindbar.
  • Bei X = 3 ist ein Bus vregw durch programmierbare Schalter 16 mit den horizontalen Bussen bei Y = 1, 2, 4, 5, 6, 7 verbindbar.
  • Bei X = 4 erstreckt sich ein Bus vco von dem Träger-Ausgang co der ALU nach Norden zu dem programmierbaren Schalter 20 bei (4, 3), der den Bus vco (a) mit dem Träger-Bus hci, der sich zu dem Träger-Eingang hci der ALU nach Osten erstreckt, oder (b) mit dem Träger-Bus vci, der sich zu dem Träger-Eingang vci der ALU nach Süden erstreckt, verbindet.
  • Bei X = 5 ist ein Bus vrege durch programmierbare Schalter 16 mit den horizontalen Bussen bei Y = 0, 1, 2, 4, 5, 6 verbindbar.
  • Bei X = 6 ist ein Bus, der sich von einem Eingang a der ALU nach Süden erstreckt, durch Schalter 16 mit den horizontalen Bussen bei Y = 0, 1, 2 verbindbar. Auch ist ein Bus fs, der sich von einem Ausgang f der ALU nach Norden erstreckt, durch programmierbare Schalter 16 mit den horizontalen Bussen bei Y = 4, 5, 6, 7 verbindbar. Die Enden der Busse an, fs sind durch einen programmierbaren Schalter 18 bei (6, 3) verbindbar.
  • Bei X = 7 sind Busse v2e durch programmierbare Schalter 16 mit den horizontalen Bussen bei Y = 1, 2, 5, 6, 7 verbindbar. Die Busse v2e besitzen eine Länge von zwei Kacheln und sind Ende an Ende in jedem anderen Umschaltabschnitt 14 durch einen programmierbaren Schalter 18 bei (7, 3), gestaffelt in Bezug auf die programmierbaren Schalter 18, die die Busse v2w bei (0, 3) verbinden, verbindbar.
  • Wie in 2 dargestellt sind, sind die Busse bs, vco, fs mit einem Eingang b, einem Ausgang co und einem Ausgang f, jeweils, der ALU nach Norden von dem Umschaltabschnitt 14 verbunden. Auch sind die Busse fe, hco, be mit dem Ausgang f, dem Ausgang co und dem Eingang b der ALU, jeweils, nach Westen von dem Umschaltabschnitt 14 verbunden. Weiterhin sind die Busse aw, hci, fw mit dem Eingang a, dem Eingang ci und dem Ausgang f, jeweils, der ALU nach Osten von dem Umschaltabschnitt 14 verbunden. Weiterhin sind die Busse fn, vci, an mit dem Ausgang f, dem Eingang ci und dem Eingang a, jeweils, der ALU nach Süden von dem Umschaltabschnitt 14 verbunden.
  • Zusätzlich zu diesen Verbindungen sind die Busse vregw, vrege über jeweilige, programmierbare Schalter 18 mit 4-Bit-Verbindungspunkten vtsw, vtse, jeweils (dargestellt durch Kreuze in 2), in dem Bereich 12 der ALU nach Norden von dem Umschaltabschnitt 14 verbunden. Auch sind die Busse hregs, hregn über jeweilige, programmierbare Schalter 18 mit 4-Bit-Verbindungspunkten htse, htne, jeweils, in dem Bereich 12 der ALU nach Westen von dem Umschaltabschnitt 14 verbunden. Weiterhin sind die Busse hregs, hregn über jeweilige, programmierbare Schalter 18 mit 4-Bit-Verbindungspunkten htsw, htnw, jeweils, in dem Bereich 12 der ALU nach Osten von dem Umschaltabschnitt 14 verbunden. Weiterhin sind die Busse vregw, vrege über jeweilige, programmierbare Schalter 14 mit 4-Bit-Verbindungspunkten vtnw, vtne, jeweils, in dem Bereich 12 der ALU nach Süden von dem Umschaltabschnitt 14 verbunden. Diese Verbindungspunkte vtnw, vtne, htne, htse, vtse, vtsw, htsw, htnw werden nachfolgend weiter im Detail unter Bezugnahme auf die 3 bis 5 beschrieben.
  • Auch besitzen, wie in 2 dargestellt ist, die Busse hregn, vrege, hregs, vregw jeweilige 4-Bit-Verbindungspunkte 22 (dargestellt durch kleine Quadrate in 2), die nachfolgend in weiterem Detail in Bezugnahme auf 9 beschrieben werden.
  • 3 stellt ein Niveau von Zwischenverbindungen zwischen den Stellen der arithmetischen, logischen Einheiten dar, die durch Quadrate mit abgerundeten Ecken dargestellt sind. Eine Gruppe von vier 4-Bit-Bussen v8, v4w, v4e, v16 erstreckt sich vertikal über jede Spalte von ALU-Stellen 12. Der am weitesten links liegende Bus v8 in jeder Gruppe liegt in Segmenten vor, von denen jedes eine Länge im Wesentlichen von acht Kacheln besitzt. Der linke, vorletzte Bus v4w in jeder Gruppe liegt in Segmenten vor, von denen jedes eine Länge im Wesentlichen von vier Kacheln besitzt. Der rechte, vorletzte Bus v4e in jeder Gruppe liegt in Segmenten vor, wiederum jeweils mit einer Länge im Wesentlichen von vier Kacheln, allerdings um zwei Kacheln von dem linken, vorletzten Bus v4w versetzt. Der am weitesten rechts liegende Bus v16 in jeder Gruppe liegt in Segmenten vor, jeweils mit einer Länge im Wesentlichen von sechzehn Kacheln. An der oberen Kante des Felds, das an der Oberseite der 4 vorhanden ist, und an der unteren Kante können die Längen der Segmente leicht größer als oder kürzer als so, wie dies vorstehend spezifiziert ist, sein.
  • Wie die 3 und 5 zeigen, sind dort, wo jede Gruppe von vier Bussen v8, v4w, v4e, v16 jede ALU-Stelle 12 kreuzt, vier 4-Bit-Laschen-Verbindungen an den Verbindungspunkten htnw, htsw, htse, htne hergestellt. Die Enden der Bus-Segmente erhalten eine Priorität dahingehend, dass sie über eine Verbindung mit einem Bus-Segment, das die ALU-Stelle kreuzt, so verbunden sind.
  • Ähnlich erstreckt sich, wie in den 4 und 5 dargestellt ist, eine Gruppe von vier 4-Bit-Bussen h8, h4n, h4s, h16 horizontal über jede Reihe von ALU-Stellen 12. Der oberste Bus h8 in jeder Gruppe liegt in Segmenten vor, jeweils mit einer Länge im Wesentlichen von acht Kacheln. Der oberste, vorletzte Bus h4n in jeder Gruppe liegt in Seg menten vor, jeweils mit einer Länge im Wesentlichen von vier Kacheln. Der unterste, vorletzte Bus h4s in jeder Gruppe liegt in Segmenten vor, wiederum jeweils mit einer Länge im Wesentlichen von vier Kacheln, allerdings um zwei Kacheln von dem obersten, vorletzten Bus h4n versetzt. Der unterste Bus h16 in jeder Gruppe liegt in Segmenten vor, jeweils mit einer Länge im Wesentlichen von sechzehn Kacheln. An der linksseitigen Kante des Felds, die sich links in der 4 befindet, und an dem rechtsseitigen Ende können die Längen der Segmente leicht größer als oder kürzer als so, wie dies vorstehend spezifiziert ist, sein. Dort, wo jede Gruppe von Bussen h8, h4n, h4s, h16 jede ALU-Stelle 12 kreuzt, sind weitere vier 4-Bit-Laschen-Verbindungen an den Verbindungspunkten vtnw, vtsw, vtse, vtne vorgenommen. Die Enden der Bus-Segmente erhalten eine Priorität dadurch, dass sie über eine Verbindung mit einem Bus-Segment verbunden sind, das die ALU-Stelle kreuzt.
  • Wie in 5 dargestellt ist, sind die Verbindungspunkte htnw, htsw, htne, htse über programmierbare Schalter mit den Bussen hregn, hregs der Umschaltabschnitte nach Westen und Osten der ALU-Stelle verbunden. Auch sind die Verbindungspunkte vtnw, vtne, vtsw, vtse über programmierbare Schalter mit den Bussen vregw, vrege der Umschaltabschnitte nach Norden und Süden der ALU-Stelle verbunden.
  • Die programmierbaren Verbindungen 16 zwischen Paaren von 4-Bit-Bussen, die sich unter rechten Winkeln kreuzen, werden nun unter Bezugnahme auf 6A beschrieben. Die Leiter der horizontalen Busse sind als x0, x1, x2, x3 bezeichnet, und die Leiter der vertikalen Busse sind mit y0, y1, y2, y3 bezeichnet. Zwischen jedem Paar von Leitern derselben Bit-Signifikanz ist ein jeweiliger Transistor 160, 161, 162, 163 vorgesehen. Die Gatter der Transistoren 160, 161, 162, 163 sind zusammen mit dem Ausgang eines NOR-Gatters 16g verbunden, das als seine zwei Eingänge ein invertiertes ENABLE Signal von einer Einzel-Bit-Speicher-Zelle aufnimmt, das gemeinsam durch eine Gruppe der Schalter geteilt werden kann, und den invertierten Inhalt einer Einzel-Bit-Speicher-Zelle 24 aufnimmt. Dementsprechend werden nur dann, wenn das ENABLE Signal hoch ist und der Inhalt der Speicherzelle 24 hoch ist, die Leiter x0, x1, x2, x3 über die Transistoren 160, 161, 162, 163, jeweils, mit den Leitern y0, y1, y2, y3 verbunden.
  • Die programmierbaren Verbindungen 18 zwischen Paaren von 4-Bit-Bussen, die sich gegenseitig Ende an Ende in einer Linie treffen, werden nun unter Bezugnahme auf die 6B beschrieben. Die Leiter eines Busses sind als x10, x11, x12, x13 bezeichnet, und die Leiter des anderen Busses sind als x20, x21, x22, x23 bezeichnet. Zwischen jedem Paar von Leitern derselben Bit-Signifikanz ist ein jeweiliger Transistor 180, 181, 182, 183 vorgesehen. Die Gatter der Transistoren 180, 181, 182, 183 sind zusammen mit dem Ausgang eines NOR-Gatters 18g verbunden, das als seine zwei Eingänge ein invertiertes ENABLE Signal von einer Einzel-Bit-Speicherzelle, die gemeinsam durch eine Gruppe der Schalter geteilt sein kann, und den invertierten Inhalt einer Einzel-Bit-Speicherzelle 24 aufnimmt. Dementsprechend werden nur dann, wenn das ENABLE Signal hoch ist, und der Inhalt der Speicherzelle 24 hoch ist, die Leiter x10, x11, x12, x13 über die Transistoren 180, 181, 182, 183, jeweils, mit den Leitern x20, x21, x22, x23, jeweils, verbunden.
  • Die programmierbaren Verbindungen 20 zwischen den Träger-Leitern hco, vco, hci, vci werden nun unter Bezugnahme auf 6C beschrieben. Der horizontale Träger-Ausgangs-Leiter hco ist mit dem horizontalen Träger-Eingangs-Leiter hci und dem vertikalen Träger-Eingangs-Leiter vci über Transistoren 20hh, 20hv, jeweils, verbunden. Weiterhin ist der vertikale Träger-Ausgangs-Leiter vco mit dem vertikalen Träger-Eingangs-Leiter vci und dem horizontalen Träger-Eingangs-Leiter hci über Transistoren 20vv, 20vh, jeweils, verbunden. Die Gatter der Transistoren 20hh, 20vv sind zusammen mit dem Ausgang eines Invertierers 20i verbunden, und die Gatter der Transistoren 20hv, 20vh und der Eingang zu dem Invertierer 20i sind mit dem Ausgang eines NOR-Gatters 20g verbunden. Das NOR-Gatter 20g nimmt als seine zwei Eingänge ein invertiertes ENABLE Signal von einer Einzel-Bit-Speicherzelle, die gemeinsam durch eine Gruppe der Schalter geteilt sein kann, und den invertierten Inhalt einer Einzel-Bit-Speicherzelle 24 auf. Dementsprechend werden, wenn das ENABLE Signal hoch ist, die Leiter hco, vco mit den Leitern hci, vci, jeweils, oder mit den Leitern vci, hci, jeweils, in Abhängigkeit von dem Inhalt der Speicherzelle 24, verbunden.
  • Es wird ersichtlich werden, dass jeder der umschaltbaren Verbindungen 16, 18, 20, beschrieben unter Bezugnahme auf die 6A bis 6C, ein NOR-Gatter 16g, 18g, 20g umfasst. Wie in 7 dargestellt ist, ist ein NOR-Gatter 16g typischerweise durch vier Transistoren 16g1, 16g2, 16g3, 16g4 verbunden, wobei zwei, 16g1, 16g3, davon auf das invertierte ENABLE Signal ansprechen, und wobei zwei, 16g2, 16g4, davon auf den invertierten Inhalt der Speicherzelle 24 ansprechen. In der Ausführungsform der Erfindung ist es erwünscht, dass eine Gruppe der umschaltbaren Sammelstellen 16, 18, 20 gemeinsam gesperrt werden kann, ohne irgendein Erfordernis, nur einen Teil einer solchen Gruppe zu sperren. Eine solche Gruppe könnte aus allen der umschaltbaren Verbindungen in einem Umschaltabschnitt 14, allen der umschaltbaren Verbindungen in den zwei Umschaltabschnitten 14 in einer bestimmten Kachel oder allen der umschaltbaren Verbindungen in einem größeren Bereich des Felds bestehen. In diesem Fall kann der Transistor 16g1 gemeinsam mit allen umschaltbaren Verbindungen 16, 18, 20 in der Gruppe, wie dies in der 8 dargestellt ist, aufgebaut sein. Dies ermöglicht eine Einsparung von 25% oder weniger in der Zahl von Transistoren, die für die Gatter erforderlich sind, fordert allerdings eine weitere Leiter-Verbindung des Gatters, wie es in 8 dargestellt ist.
  • Ein Fachmann auf dem betreffenden Fachgebiet wird erkennen, dass die Strukturen, die in den 7 und 8 gezeigt sind, für eine Optimierung modifiziert werden können. Zum Beispiel würde die Anordnung der 7 und 8 nicht vollständig Speicherzellen 24, ausgelegt so, um sowohl einen gespeicherten Wert als auch ein Komplementär von diesem gespeicherten Wert zurückzuführen, ausnutzen. Die Verwendung des Komplementärs, erhalten von solchen Zellen 24, könnte verwendet werden, um irgendein Erfordernis für sowohl das ENABLE als auch das invertierte ENABLE Signal zu vermeiden, um zu allen umschaltbaren Verbindungen in einer Gruppe, wie in dem Fall der 8, geführt zu werden.
  • Wie vorstehend unter Bezugnahme auf die 1 und 2 erwähnt ist, sind, an jedem Umschaltabschnitt 14, die Busse hregn, hregs, vregw, vrege durch jeweilige 4-Bit-Verbindungen 22 mit einem Register oder einer Pufferschaltung verbunden, und diese Schaltung wird nun in weiterem Detail unter Bezugnahme auf 9 beschrieben. Die vier Verbindungen 22 sind jeweils mit jeweiligen Eingängen eines Multiplexierers 26 verbunden. Der Multiplexierer 26 wählt einen der Eingänge als einen Ausgang aus, der zu einem Register oder Puffer 28 zugeführt wird. Der Ausgang des Registers oder Puffers 28 wird zu vier Drei-Zustand-Puffern 30s, 30w, 30n, 30e zugeführt, die zurück zu den Verbindungen 20 mit den Bussen hregs, vregw, hregn, vrege, jeweils, verbunden sind. In dem Fall, bei dem ein Puffer 28 verwendet wird, wird das 4-Bit-Signal auf einem ausgewählten einen der Busse hregs, vregw, hregn, vrege verstärkt und zu einem anderen ausgewählten einen der Busse hregs, vregw, hregn, vrege zugeführt. In dem Fall, bei dem ein Register 28 verwendet ist, wird das 4-Bit-Signal auf einem ausgewählten einen der Busse hregs, vregw, hregn, vrege verstärkt und zu einem ausgewählten Bus hregs, vregw, hregn, vrege nach der nächsten, aktiven Taktflanke zugeführt.
  • Es wird ersichtlich werden, dass die Anordnung, die vorstehend beschrieben ist, eine große Flexibilität dabei liefert, die Signale um und über das Feld zu führen. Mit einer geeigneten Einstellung der Schalter 16, 18, 20, unter Verwendung der Speicherzellen 24, und mit einem geeigneten Einstellen der Multiplexierer 26 und der Register oder Puffer 28, können Signale über große Entfernungen, primär unter Verwendung der Busse v16, h16, v8, h8, v4e, v4w, h4n, h4s, von der Kante des Felds zu einer bestimmten ALU, zwischen ALUs, und von einer bestimmten ALU zu der Kante des Felds, geschickt werden. Diese Busse können zusammen in einer Linie oder unter rechten Winkeln, durch die Umschaltabschnitte 14, mit einer Verstärkung durch die Register oder Puffer 28, um Propagationsverzögerungen zu verringern, und mit Pipeline-Stufen, eingeführt durch die Register 28, verbunden sein. Auch können diese Busse teilweise entlang deren Längen mit Anschluss abgegriffen sein, so dass die Stelle der ALUs, um eine bestimmte Verarbeitungsoperation durchzuführen, nicht vollständig durch die Längen der Busse vorgegeben ist, und so, dass Signale zu mehr als einer ALU verteilt werden können. Weiterhin können die Busse mit kürzerer Länge, die unter Bezugnahme auf die 1 und 2 beschrieben sind, dazu verwendet werden, Signale zwischen den Umschaltabschnitten 14 und den ALUs zu führen, und um Signale primär über kürzere Entfernungen, zum Beispiel von einer ALU zu einer angrenzenden ALU, in derselben Reihe oder Spalte, oder diagonal angrenzend, zu schicken, sogar obwohl sich die Busse horizontal oder vertikal erstrecken. Wiederum können die Register oder Puffer 28 dazu verwendet werden, die Signale zu verstärken oder programmierbare Verzögerungen darin einzubringen.
  • In der Anordnung, die vorstehend beschrieben ist, sind die Speicherzellen 24 über das Feld in demselben Umfang wie die Umschaltabschnitte 14 und die ALU-Stellen 12 verteilt. Jede Speicherzelle 24 ist angrenzend an den Schalter oder die Schalter, den Multiplexierer, das Register oder den Puffer, die sie steuert, angeordnet. Dies ermöglicht, dass eine hohe Schaltungsdichte erreicht werden kann.
  • Eine Beschreibung wird nun in Bezug auf die Art und Weise vorgenommen, in der Daten in die Speicherzellen 24 hineingeschrieben oder davon gelesen werden können, die Art und Weise, in der die ENABLE Signale für die programmierbaren Schalter 16, 18, 20 zu deren Speicherzellen geschrieben werden, die Art und Weise, in der Befehle, und möglicherweise Konstanten, zu den ALUs verteilt werden können, und die Art und Weise, in der andere Steuersignale, wie beispielsweise ein Taktsignal, über das Feld gesendet wer den. Für alle diese Funktionen kann eine "H-Baum" Struktur (die per se bekannt ist) eingesetzt werden, wie dies in 10 dargestellt ist. Wie die 10 und 11 zeigen, werden, um ein ENABLE Signal zu irgendeiner von 64 Stellen in dem Beispiel, das dargestellt ist, zu verteilen, das ENABLE Signal 30a und eine 6-Bit-Adresse 32a dafür zu einem Decodierer 34a zugeführt. Der Decodierer 34a bestimmt, welche der vier Verzweigungen davon zu der Adresse führt, und führt ein ENABLE Signal 30b zu einem weiteren Decodierer 34b in dieser Verzweigung, zusammen mit einer 4-Bit-Adresse 32b, zu den Decodierern 34b, in allen vier Verzweigungen, zu. Der Decodierer 34b, der das ENABLE Signal 30b empfängt, bestimmt, welche der vier Verzweigungen davon zu der erforderlichen Adresse führt, und führt ein ENABLE Signal 30c zu einem weiteren Decodierer 34c in dieser Verzweigung, zusammen mit einer 4-Bit-Adresse 32c, zu den Decodierern 34c in allen vier Verzweigungen, zu. Der Decodierer 34c, der das ENABLE Signal 30c empfängt, führt dann das ENABLE Signal 34d zu der erforderlichen Adresse zu, wo es in einer Einzel-Bit-Speicherzelle gespeichert werden kann. Ein Vorteil der H-Baum-Struktur ist derjenige, dass die Längen der Signalpfade zu allen Bestimmungen ungefähr gleich sind, was besonders vorteilhaft in dem Fall des Taktsignals ist.
  • Ein großer Vorteil der Anordnung, die vorstehend beschrieben ist, ist derjenige, dass Gruppen der Speicherzellen 24 in, zum Beispiel, einem Umschaltabschnitt 14, oder in den zwei Umschaltabschnitten in einer Kachel, oder in den Umschaltabschnitten in einem Unterfeld der Kacheln, en bloc durch die invertieren ENABLE Signale so gesperrt werden können, dass die Inhalte dieser Speicherzellen nicht die zugeordneten Schalter beeinflussen. Es ist dann für diese Speicherzellen 24 möglich, als "Benutzer" Speicher durch eine Anwendung verwendet zu werden, im Gegensatz dazu, dass sie für eine Konfiguration der Verdrahtung des Felds verwendet werden.
  • Die Ausführungsform der Erfindung ist nur anhand eines Beispiels beschrieben worden, und viele Modifikationen und Weiterentwicklungen können im Zusammenhang mit der vorliegenden Erfindung vorgenommen werden. Zum Beispiel setzt die Ausführungsform ALUs als die Verarbeitungseinheiten ein, allerdings können andere Verarbeitungseinheiten zusätzlich oder alternativ verwendet werden, zum Beispiel Durchsichttabellen, programmierbare, logische Felder und/oder selbst-enthaltene CPUs, die in der Lage sind, deren eigene Befehle abzurufen.
  • Weiterhin ist die Ausführungsform so beschrieben worden, dass das gesamte Feld durch ALUs und Umschaltabschnitte abgedeckt ist. Allerdings können andere Typen eines Abschnitts in dem Feld umfasst sein. Zum Beispiel könnte ein Unterfeld aus einer 4 × 4 Anordnung von Kacheln aus ALUs und Umschaltabschnitten, wie es vorstehend beschrieben ist, aufgebaut sein, und das Feld könnte aus solchen Unterfeldern und einem Speicher in einem 4 × 4 Feld, oder solchen Unterfeldern und RISC CPUs in einem 4 × 4 Feld, aufgebaut sein.
  • In der Ausführungsform, die vorstehend beschrieben ist, ist jede ALU-Stelle ein Quadrat, und jeder Umschaltabschnitt ist quadratisch und von derselben Größe wie die ALU-Stellen, allerdings sollte angemerkt werden, dass die steuerbaren Schalter 18 in den Register-Bussen vregw, vrege, hregn, hregs in die quadratische Umrisslinie der ALU-Stellen aufgehen. Die ALU-Stellen müssen nicht von derselben Größe wie die Umschaltabschnitte sein, und können insbesondere kleiner sein, was demzufolge ermöglicht, dass einer oder mehrere Busse horizontal oder vertikal direkt von einem Umschaltabschnitt 14 zu einem diagonal angrenzenden Umschaltabschnitt 14 hindurchführen, zum Beispiel zwischen den Bussen h2s, h2n oder zwischen den Bussen v2e, v2w verlaufend.
  • In der Ausführungsform, die vorstehend beschrieben ist, besitzt jede ALU zwei unabhängige Träger-Eingänge vci, hci und ein verbundenes Paar von Träger-Ausgängen co. Falls erforderlich, können die ALUs so angeordnet werden, um zwei Typen eines Trägers zu erfüllen: einen schnellen Träger zwischen angrenzenden ALUs, die von einem bestimmten Nutzen für Multi-Bit-Addier-Operationen sein können; und einen langsamen Träger, der flexibler weitergeführt werden kann und von einem besonderen Nutzen für eine digitale, serielle Arithmetik sein kann. Der schnelle Träger kann in einer ähnlichen Art und Weise wie diejenige, die vorstehend in Bezug auf die Zeichnungen beschrieben ist, angeordnet sein, wogegen der langsame Träger programmierbare Schalter in den Umschaltabschnitten 14 zwischen dem Träger-Leiter und bestimmten Bits der 4-Bit-Busse einsetzen könnte.
  • In der Ausführungsform, die vorstehend beschrieben ist, sind bestimmte Bit-Breiten, Größen von dem Umschaltabschnitt und Größen des Felds erwähnt worden, allerdings sollte angemerkt werden, dass alle diese Werte so, wie es geeignet ist, ausgetauscht werden können. Auch sind die programmierbaren Schalter 16, 18, 20 dahingehend beschrieben worden, dass sie an bestimmten Stellen in jedem Umschaltabschnitt 14 angeordnet sind, allerdings können andere Stellen so, wie dies erforderlich und erwünscht ist, verwendet werden.
  • In der Ausführungsform, die vorstehend beschrieben ist, ist das Feld zweidimensional, allerdings sind die Prinzipien der Erfindung auch auf dreidimensionale Felder, zum Beispiel durch Vorsehen eines Stapels der Felder so, die vorstehend beschrieben sind, mit den Umschaltabschnitten in angrenzenden Schichten in Bezug zueinander gestapelt, anwendbar. Der Stapel könnte nur zwei Schichten umfassen, allerdings bevorzugt mindestens drei Schichten, und die Anzahl der Schichten ist vorzugsweise eine Potenz von zwei.
  • In der Ausführungsform, die vorstehend beschrieben ist, können die Speicherzellen 24 durch die Gatter 16g, 18g, 20g von den Schaltern isoliert sein, die sie steuern, so dass die Speicherzellen für andere Zwecke verwendet werden können, das bedeutet, in die "Benutzer-Ebene" versetzt. Die ENABLE Signal-Speicherzellen können allerdings nicht auf die Benutzer-Ebene transferiert werden. In einer alternativen Ausführungsform können die Schalter in einem bestimmten Umschaltabschnitt 14 untrennbar von dem Rest des Feldes durch weitere Schalter in den Bussen an der Grenze dieses Umschaltabschnitts 14 vorliegen, wobei die weiteren Schalter durch eine weitere Speicherzelle gesteuert werden, die nicht zu der Benutzer-Ebene transferiert werden kann.

Claims (8)

  1. Anwenderprogrammierbare Vorrichtung, die umfasst: eine Vielzahl von Verarbeitungsvorrichtungen; eine Verbindungsmatrix (14), die die Verarbeitungsvorrichtungen miteinander verbindet, und eine Vielzahl von Schaltern (16, 18, 20) enthält; eine Vielzahl von Speicherzellen (24) zum Speichern von Daten, mit denen die Schalter kontrolliert werden, um die Konfiguration der Verbindungen der Verbindungsmatrix zu bestimmen; eine Einrichtung zum Schreiben von Daten in die Speicherzellen und Lesen von Daten aus ihnen; und eine Gattereinrichtung (16g, 18g, 20g), die die Wirkung der Daten, die in wenigstens einer einer Vielzahl von Gruppen der Speicherzellen gespeichert sind, auf die Konfiguration der Verbindungen eines entsprechenden Abschnitts der Verbindungsmatrix isoliert, so dass die Speicherzellen in dieser Gruppe zum Schreiben, Speichern und Lesen anderer Daten zur Verfügung stehen, wobei der Inhalt jeder Gruppe der Speicherzellen die aktuelle Konfiguration der Verbindungen eines entsprechenden Abschnitts der Verbindungsmatrix außer im Fall der Isolierung durch die Gattereinrichtung bestimmt, wobei in diesem Fall die aktuelle Konfiguration der Verbindungen des entsprechenden Abschnitts der Verbindungsmatrix vorbestimmt ist.
  2. Vorrichtung nach Anspruch 1, wobei die Gattereinrichtung Einrichtungen (16g, 18g, 20g) umfasst, die jede der Speicherzellen in der Gruppe oder der entsprechenden Gruppe gegenüber den Schaltern isolieren, die von diesen Speicherzel len gesteuert werden können, und jeden dieser Schalter auf einen vorgegebenen Zustand setzen.
  3. Vorrichtung nach Anspruch 2, wobei die Gattereinrichtung für jede Speicherzelle ein entsprechendes Gatter (16g, 18g, 20g) umfasst, das Eingänge, die mit der Speicherzelle und einem Steuersignal (ENABLE) verbunden sind, und einen Ausgang hat, der mit dem oder jedem Schalter verbunden ist, der von dieser Speicherzelle gesteuert werden kann.
  4. Vorrichtung nach Anspruch 3, wobei jedes Gatter durch vier Transistoren (16g116g4) gebildet wird.
  5. Vorrichtung nach Anspruch 4, wobei sich eine Vielzahl der Gatter einen der Transistoren (16g1) jedes Gatters teilen.
  6. Vorrichtung nach Anspruch 1, die des Weiteren eine Einrichtung umfasst, die jeden der Schalter, die durch die Speicherzellen in der Gruppe oder der entsprechenden Gruppe gesteuert werden können, gegenüber dem Rest der Verbindungsmatrix isoliert.
  7. Vorrichtung nach einem der vorangehenden Ansprüche, wobei wenigstens einige der Verbindungen, die durch die Verbindungsmatrix bereitgestellt werden, die Form von Mehrfachbit-Bussen haben, und diejenigen der Schalter für die Busse jeweils eine Vielzahl von Schaltelementen (160, 163, 180183) jeweils für ein entsprechendes Bit des Busses umfassen.
  8. Vorrichtung nach einem der vorangehenden Ansprüche, wobei die Positionen der Speicherzellen über die Vorrichtung im Wesentlichen in dem gleichen Maß verteilt sind wie die Schalter und jede der Speicherzellen an den Schalter bzw. die Schalter angrenzend angeordnet ist, der/die durch diese Speicherzelle gesteuert werden kann/können.
DE69822796T 1997-01-29 1998-01-28 Nutzerprogrammierbarer prozessor Expired - Lifetime DE69822796T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP97300562A EP0858167A1 (de) 1997-01-29 1997-01-29 Feldprogrammierbarer Prozessor
EP97300562 1997-01-29
PCT/GB1998/000248 WO1998033276A1 (en) 1997-01-29 1998-01-28 Field programmable processor

Publications (2)

Publication Number Publication Date
DE69822796D1 DE69822796D1 (de) 2004-05-06
DE69822796T2 true DE69822796T2 (de) 2005-03-10

Family

ID=8229198

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69822796T Expired - Lifetime DE69822796T2 (de) 1997-01-29 1998-01-28 Nutzerprogrammierbarer prozessor

Country Status (5)

Country Link
US (2) US6262908B1 (de)
EP (2) EP0858167A1 (de)
JP (1) JP3885119B2 (de)
DE (1) DE69822796T2 (de)
WO (1) WO1998033276A1 (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
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
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
JP3961028B2 (ja) 1996-12-27 2007-08-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データフロープロセッサ(dfp)の自動的なダイナミックアンロード方法並びに2次元または3次元のプログラミング可能なセルストラクチャを有するモジュール(fpga,dpga等)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
WO2000077652A2 (de) 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
EP1061439A1 (de) 1999-06-15 2000-12-20 Hewlett-Packard Company Speicher und Befehlen in Rechnerarchitektur mit Prozessor und Coprozessor
EP2226732A3 (de) 2000-06-13 2016-04-06 PACT XPP Technologies AG Cachehierarchie für einen Multicore-Prozessor
US7383424B1 (en) 2000-06-15 2008-06-03 Hewlett-Packard Development Company, L.P. Computer architecture containing processor and decoupled coprocessor
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7581076B2 (en) * 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
EP1402382B1 (de) 2001-06-20 2010-08-18 Richter, Thomas Verfahren zur bearbeitung von daten
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
DE10392560D2 (de) 2002-01-19 2005-05-12 Pact Xpp Technologies Ag Reconfigurierbarer Prozessor
DE10390689D2 (de) 2002-02-18 2005-02-10 Pact Xpp Technologies Ag Bussysteme und Rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US6844757B2 (en) * 2002-06-28 2005-01-18 Lattice Semiconductor Corp. Converting bits to vectors in a programmable logic device
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US6980390B2 (en) * 2003-02-05 2005-12-27 Quantum Corporation Magnetic media with embedded optical servo tracks
EP1676208A2 (de) 2003-08-28 2006-07-05 PACT XPP Technologies AG Datenverarbeitungseinrichtung und verfahren
US7219325B1 (en) 2003-11-21 2007-05-15 Xilinx, Inc. Exploiting unused configuration memory cells
US7814242B1 (en) * 2005-03-25 2010-10-12 Tilera Corporation Managing data flows in a parallel processing environment
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
WO2008028330A1 (en) * 2006-08-31 2008-03-13 Beijing Xizheng Microelectronics Co. Ltd. A programmable interconnect network for logic array
US7994818B2 (en) * 2007-06-20 2011-08-09 Agate Logic (Beijing), Inc. Programmable interconnect network for logic array
JP5336398B2 (ja) * 2010-02-01 2013-11-06 ルネサスエレクトロニクス株式会社 半導体集積回路、半導体集積回路の構成変更方法
US9557154B2 (en) 2010-05-25 2017-01-31 The General Hospital Corporation Systems, devices, methods, apparatus and computer-accessible media for providing optical imaging of structures and compositions

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4236204A (en) 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
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
US5204556A (en) 1991-05-06 1993-04-20 Lattice Semiconductor Corporation Programmable interconnect structure for logic blocks
US5291431A (en) 1991-06-03 1994-03-01 General Electric Company Array multiplier adapted for tiled layout by silicon compiler
US5208491A (en) 1992-01-07 1993-05-04 Washington Research Foundation Field programmable gate array
US5498975A (en) * 1992-11-19 1996-03-12 Altera Corporation Implementation of redundancy on a programmable logic device
WO1995022205A1 (en) 1994-02-15 1995-08-17 Xilinx, Inc. Tile based architecture for fpga
US5453706A (en) * 1994-04-01 1995-09-26 Xilinx, Inc. Field programmable gate array providing contention free configuration and reconfiguration
GB2289354B (en) 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Multiple instruction set mapping
US5426379A (en) * 1994-07-29 1995-06-20 Xilinx, Inc. Field programmable gate array with built-in bitstream data expansion
US5493239A (en) 1995-01-31 1996-02-20 Motorola, Inc. Circuit and method of configuring a field programmable gate array
US5659785A (en) 1995-02-10 1997-08-19 International Business Machines Corporation Array processor communication architecture with broadcast processor instructions
US5583450A (en) * 1995-08-18 1996-12-10 Xilinx, Inc. Sequencer for a time multiplexed programmable logic device
GB9611994D0 (en) 1996-06-07 1996-08-07 Systolix Ltd A field programmable processor

Also Published As

Publication number Publication date
JP2001509336A (ja) 2001-07-10
DE69822796D1 (de) 2004-05-06
EP0858167A1 (de) 1998-08-12
JP3885119B2 (ja) 2007-02-21
US20010038298A1 (en) 2001-11-08
US6262908B1 (en) 2001-07-17
WO1998033276A1 (en) 1998-07-30
EP0956645B1 (de) 2004-03-31
EP0956645A1 (de) 1999-11-17

Similar Documents

Publication Publication Date Title
DE69822796T2 (de) Nutzerprogrammierbarer prozessor
DE69827589T2 (de) Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
DE69730254T2 (de) FPGA mit Nachschlagtabellen
DE69933525T2 (de) Architekturen für programmierbare logische Vorrichtungen
DE68923541T2 (de) Programmierbare Logikeinrichtung mit einer Vielzahl von programmierbaren Logikarrays, die sich in mosaikförmiger Anordnung zusammen mit einer Vielzahl von vermischt angeordneten Interface-Blöcken befinden.
DE69637399T2 (de) Grobkörnig strukturierte integrierte Halbleiterschaltung mit Nachschlagtabellen
DE60204189T2 (de) FPGA mit zumindest zwei unterschiedlichen und unabhängig konfigurierbaren Speicherstrukturen
DE4417575C2 (de) Verbesserte Array-Architektur für programmierbare logische Zellen
DE68926783T2 (de) Paralleler datenprozessor
DE69028395T2 (de) Konfigurierbare zellenanordnung
DE4425552C2 (de) Gatterarray
DE68918413T2 (de) Integrierte Halbleiterschaltung.
DE3852909T2 (de) Lineare Kette von Parallelprozessoren und Benutzungsverfahren davon.
DE102004045527B4 (de) Konfigurierbare Logikschaltungsanordnung
DE4416881A1 (de) Datenverarbeitungseinrichtung
DE2822219A1 (de) Integrierte logikschaltung
EP0220474B1 (de) Wellenfrontfeldrechner
DE69534659T2 (de) Architektur und Verbindungsmodel für programmierbare logische Schaltungen
DE19639629A1 (de) Hybride programmierbare Logikvorrichtung und Verfahren
DE102005005073B4 (de) Rechnereinrichtung mit rekonfigurierbarer Architektur zur parallelen Berechnung beliebiger Algorithmen
DE602004006841T2 (de) Elektronischer schaltkreis mit einem feld programmierbarer logischer zellen
DE60129269T2 (de) Speicherschaltung für eine programmierbare logische integrierte Schaltungsanordnung
DE2423265C3 (de) Optimierende Rechenmaschine
EP0178424B1 (de) Zellenstrukturierter digitaler Multiplizierer mit semisystolischem Aufbau
DE69122860T2 (de) Multiplexer

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC EUROPE LTD., UXBRIDGE, MIDDLESEX, GB

8328 Change in the person/name/address of the agent

Representative=s name: WUESTHOFF & WUESTHOFF PATENT- UND RECHTSANWAELTE

8327 Change in the person/name/address of the patent owner

Owner name: MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD., KADO, JP

8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP