DE10227650A1 - Rekonfigurierbare Elemente - Google Patents

Rekonfigurierbare Elemente Download PDF

Info

Publication number
DE10227650A1
DE10227650A1 DE10227650A DE10227650A DE10227650A1 DE 10227650 A1 DE10227650 A1 DE 10227650A1 DE 10227650 A DE10227650 A DE 10227650A DE 10227650 A DE10227650 A DE 10227650A DE 10227650 A1 DE10227650 A1 DE 10227650A1
Authority
DE
Germany
Prior art keywords
cell
cells
data
memory
functional
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
DE10227650A
Other languages
English (en)
Inventor
Martin Vorbach
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 XPP Technologies AG
Original Assignee
PACT XPP Technologies AG
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 XPP Technologies AG filed Critical PACT XPP Technologies AG
Priority to DE10227650A priority Critical patent/DE10227650A1/de
Priority claimed from DE10129237A external-priority patent/DE10129237A1/de
Priority to EP02777144A priority patent/EP1466264B1/de
Priority to PCT/EP2002/010479 priority patent/WO2003025781A2/de
Priority to US10/490,079 priority patent/US7434191B2/en
Priority to AU2002338729A priority patent/AU2002338729A1/en
Priority to AU2002357982A priority patent/AU2002357982A1/en
Priority to JP2003538928A priority patent/JP4456864B2/ja
Priority to EP02791644A priority patent/EP1472616B8/de
Priority to AT02791644T priority patent/ATE533111T1/de
Priority to US10/490,081 priority patent/US8429385B2/en
Priority to PCT/EP2002/010572 priority patent/WO2003036507A2/de
Priority to PCT/DE2003/000942 priority patent/WO2003081454A2/de
Priority to AU2003223892A priority patent/AU2003223892A1/en
Priority to EP03720231A priority patent/EP1518186A2/de
Priority to US10/508,559 priority patent/US20060075211A1/en
Publication of DE10227650A1 publication Critical patent/DE10227650A1/de
Priority to US12/247,076 priority patent/US8209653B2/en
Priority to US12/571,173 priority patent/US8686549B2/en
Priority to JP2009271120A priority patent/JP2010079923A/ja
Priority to US12/729,090 priority patent/US20100174868A1/en
Priority to US12/729,932 priority patent/US20110161977A1/en
Priority to US13/023,796 priority patent/US8686475B2/en
Priority to US14/162,704 priority patent/US20140143509A1/en
Priority to US14/263,185 priority patent/US8890215B2/en
Priority to US14/540,782 priority patent/US20150074352A1/en
Priority to US14/543,306 priority patent/US9092595B2/en
Priority to US14/810,905 priority patent/US9240220B2/en
Priority to US14/923,702 priority patent/US10579584B2/en
Priority to US15/000,763 priority patent/US10885996B2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Logic Circuits (AREA)

Abstract

Rekonfigurierbare Elemente werden abhängig von der auszuführenden Applikation unterschiedlich und applikationsentsprechend ausgestaltet.

Description

  • Prioritäten
  • Die Priorität aus PACT15(a,b), PACT26/US, PACT18(a) wird beansprucht.
  • Definitionen
  • Rekonfigurierbare Elemente werden abhängig von der auszuführenden Applikation unterschiedlich und applikationsentsprechend ausgestaltet.
  • Aufgabe der Erfindung ist es, Neues für die gewerbliche Nutzung bereitzustellen.
  • Die Lösung der Aufgabe wird unabhängig beansprucht. Bevorzugte Ausführungsformen befinden sich in den Unteransprüchen.
  • Unter einer rekonfigurierbaren Architektur werden vorliegend Bausteine (VPU) mit konfigurierbarer Funktion und/oder Vernetzung verstanden, insbesondere integrierte Bausteine mit einer Mehrzahl von ein- oder mehrdimensional angeordneten arithmetischen und/oder logischen und/oder analogen und/oder speichernden und/oder intern/extern vernetzenden Baugruppen, die direkt oder durch ein Bussystem miteinander verbunden sind.
  • Zur Gattung dieser Bausteine zählen insbesondere systolische Arrays, neuronale Netze, Mehrprozessor Systeme, Prozessoren mit mehreren Rechenwerken und/oder logischen Zellen und/oder kommunikativen/peripheren Zellen (IO), Vernetzungs- und Netzwerkbausteine wie z.B. Crossbar-Schalter, ebenso wie bekannte Bausteine der Gattung FPGA, DPGA, Chameleon, XPUTER, etc.. Hingewiesen wird insbesondere in diesem Zusammenhang auf die folgenden Schutzrechte und Anmeldungen desselben Anmelders: P 44 16 881 .0-53, DE 197 81 412 .3, DE 197 81 483 .2, DE 196 54 846 .2-53, DE 196 54 593 .5-53, DE 197 04 044 .6-53, DE 198 80 129 .7, DE 198 61 088 .2-53, DE 199 80 312 .9, PCT/DE 00/01869, DE 100 36 627 .9-33, DE 100 28 397 .7, DE 101 10 530 .4, DE 101 11 014 .6, PCT/EP 00/10516, EP 01 102 674 .7, PACT02, PACT04, PACT05, PACT08, PACT10, PACT11, PRCT13, PACT21, PACT13, PRCT15, PACT16, PACT17, PACT18, PACT19, PACT20, PACT21, PACT22, PACT25, PACT27, PACT26/US. Diese sind hiermit zu Offenbarungszwecken vollumfänglich eingegliedert.
  • Die o.g. Architektur wird beispielhaft zur Verdeutlichung herangezogen und im folgenden VPU genannt. Die Architektur besteht aus beliebigen arithmetischen, logischen (auch Speicher) und/oder Speicherzellen und/oder Vernetzungszellen und/oder kommunikativen/peripheren (IO) Zellen (PAEs), die zu einer ein- oder mehrdimensionalen Matrix (PA) angeordnet sein können, wobei die Matrix unterschiedliche beliebig ausgestaltete Zellen aufweisen kann, auch die Bussysteme werden dabei als Zellen verstanden. Der Matrix als ganzes oder Teilen davon zugeordnet ist eine Konfigurationseinheit (CT), die die Vernetzung und Funktion des PA beeinflußt.
  • Stand der Technik
  • Unterschiedliche PAE-Strukturen sind nach dem Stand der Technik bekannt. Die gebräuchlichsten sind durch PACT02, PACT22, sowie Chameleon CS2112 definiert. Weiterhin soll auf die bekannten FPGA Zellen verwiesen werden.
  • Aus dem universitären Umfeld sind Zellstrukturen wie die DPGAs, RawMachine (DeHuon), KressArrays (Kress, Uni Kaiserslautern), XPUTER (Hartenstein, Uni Kaiserslautern), sowie weitere Strukturen bekannt.
  • Die nachfolgend beschriebenen Erweiterungen, die für alle vorgenannten Strukturen nutzbar sind, verbessern die Nutzbarkeit der Architekturen und PAE-Strukturen in komplexen insbesondere auch stark sequentiellen und/oder wenig datenflußorientierten Anwendungen. Weiterhin wird der Anschluß an externe Einheiten (z.B. Speicher und/oder Peripherie) vereinfacht und homogenisiert.
  • Indirekte Konfiguration
  • In einer besonderen Ausführung einer PAE (IPAE) wird diese oder eine Gruppe von PAEs mit einem Speicher (RRAM), vorzugsweise einer RAM-PAE gekoppelt. Die IPAE weist einen eigenen internen Sequenzer auf oder ist mit einem Sequenzer bzw.
  • Microcontroller mit einem bevorzugt limitierten aber bevorzugt vollständigen Befehlsssatz (vgl. ARC Microprocessor) gekoppelt. In einer weiteren Ausführungsvariante kann der Sequenzer auch durch eine Konfiguration von PAEs gebildet werden. In einer weiteren Ausführungsvariante kann der Sequenzer auch konfigurierbar ausgestaltet sein (beispielsweise ähnlich EPS448 von Altera [ALTERA Data Book 1993]).
  • Der Sequenzer/Microcontroller kann auf Zustände (z.B. Statussignale, Ereignisse) in der IPAE und/oder auf Zustände (z.B. auch Trigger) anderer PAEs die mit der IPAE verbunden sind (z.B. über ein Bussystem) reagieren. In einem Konfigurationsregister der IPAE wird ein Pointer auf einen RRAM Speicherinhalt konfiguriert. Ein Adressgenerator im Sequenzer liest den durch den Pointer referenzierten Speicherinhalt aus dem RRAM und konfiguriert diesen (oder einen Teil dessen) entweder in ein durch den Speicherinhalt adressiertes Konfigurationsregister einer adressierten PAE oder nutzt den Speicherinhalt als Instruktion für eine nächste Verarbeitung. Insoweit stellt der Speicher RRAM einen Codespeicher und in einer bevorzugten Ausführung auch Datenspeicher für einen Sequenzer dar. Der Sequenzer kann frei Code aus dem Speicher (RRAM) lesen und in einer bevorzugten Ausführung auch Daten aus dem Speicher lesen oder in den Speicher schreiben.
  • Der RRAM Speicherinhalt kann von einer übergeordneten Konfigurationseinheit (CT) geladen werden. In einer erweiterten Ausführung kann der Speicherinhalt zusätzlich oder alternativ von einem anderen (beispielsweise externen) Speicher geladen oder an diesen geschrieben werden, z.B. über einen Anschluß an ein Frontend.
  • In einer Ausführungsvariante kann der Speicher einen direkten Anschluß (EXTBUS) an ein externes RAM und/oder externe IO besitzen.
  • In einer besonders bevorzugten Ausgestaltung kann der RRAM selbständig Code für den Sequenzer über den EXTBUS aus dem externen RAM laden.
  • In einer möglichen Ausführung ist der RRAM in mehrere Segmente unterteilt die in unterschiedlichen Adressbereichen liegen. Die Segmente können beispielsweise für einige der folgenden Funktionen aufgeteilt sein:
    Sequenzerspeicher, Stack (z.B. für Registersatz), Datenspeicher, IO-Puffer, Puffer zu externem RAM bzw. Cache, Lookuptabellen, Konfigurationen für PAEs und/oder Busse.
  • In einer Ausführung kann der RRAM als Multi-Port Speicher ausgeführt sein.
  • In einer besonderen Ausführung kann die IPAE mit dem RRAM als lokale Konfigurationseinheit ähnlich einer CT für PAEs in der Umgebung arbeiten oder unter anderem diese Funktion mit erfüllen. Die IPAE adressiert gesteuert durch den Sequenzer/Microcontroller Konfigurationen im RRAM und konfiguriert diese an PAEs und/oder sich selbst und/oder bestimmt den Ablauf des Sequenzers/Microcontrollers. Bevorzugt findet hierbei eine Synchronisation mit einer übergeordneten CT ähnlich der bekannte Inter-CT-Protokolle (PACT10, PACT17, PACT13) statt. Die IPAE RRAM Schaltung kann Konfiguration über eines der EXTRAM-Interface selbst laden und/oder Konfigurationen von einer übergeordneten CT über das CT Interface anfordern. Die Funktionsweise kann ähnlich der Rekonfigurationseinheit in PACT04 sein. Die Konfigurationsdaten für die PAEs werden durch die IRAM an die PAEs weitergeleitet oder in einer bevorzugten Ausgestaltung direkt von RRAM. Zur Aufteilung der Daten im RRAM an mehrere PAEs kann dabei ein Busverteilverfahren ähnlich des in PACT18 beschriebene SIMD-Bussystem ver wendet werden. PACT18 ist hiermit zu Offenbarungszwecken vollumfänglich eingegliedert.
  • Mit anderen Worten ist der prinzipielle Arbeitsweise einer IPAE RRAM Verschaltung ähnlich eines Microcontrollersystemes, dessen Busanbindung und/oder dessen Datentransfers und/oder dessen Programmablauf einem VPU-System entspricht.
  • RAMoverPAE
  • Die nachfolgend beschriebene besondere Ausgestaltung einer ALU-PAE (im Folgenden mit ROP-PAE bezeichnet) eignet sich besonders für VPUs deren Applikation irreguläre sequentielle Codes aufweisen die auf kleine Datenmengen in einer weitgehend ungeordneten Reihenfolge zugreifen.
  • Zur Realisierung dieser Aufgabe wird in eine ALU-PAE Speicher (IRAM) integriert auf den die ALU direkten Schreib/Lese-Zugriff besitzt. Die ALU ist entsprechend um eine Adressverwaltungsschaltung erweitert.
  • In einer besonders bevorzugten Ausführung ist ein Sequenzer bzw. Microcontroller mit einem bevorzugt limitierten aber bevorzugt vollständigen Befehlsssatz (vgl. ARC Microprocessor) in der ROP-PAE integriert, der die Verarbeitung sequentieller Codes ermöglicht. In einer weiteren Ausführungsvariante kann der Sequenzer auch konfigurierbar ausgestaltet sein (beispielsweise ähnlich EPS448 von Altera [ALTERA Data Book 1993]). Der Sequenzer/Microcontroller kann auf Zustände (z.B. Statussignale, Ereignisse) in der ROP-PAE und/oder auf Zustände (z.B. auch Trigger) anderer PAEs die mit der ROP-PAE verbunden sind (z.B. über ein Bussystem) reagieren.
  • Der Microcontroller liest seine Programmbefehle aus dem IRAM.
  • Die Zugriffe auf das Bussystem des Arrays (PA) entsprechen den üblichen PAEs, ebenso die Generierung, der Empfang und die Weiterleitung von Statussignalen. Mehrere Busanbindungen für Daten- und Triggereingänge und für Daten- und Triggerausgänge können vorgesehen sein.
  • Die ROP-PAE kann Operanden vom Bus lesen ggf. mehrzyklisch Verarbeiten und das Ergebnis wieder auf den Bus schreiben.
  • In die ROP-PAE ist in einer bevorzugten Ausgestaltung ein Registersatz integriert. Der Registersatz kann in einer besonderen Ausgestaltung ähnlich des Registersatzes von Transputern organisiert.
  • In einer bevorzugten Ausführung besitzt die ROP-PAE direkten Anschluß (EXTBUS) an ein externes RAM und/oder externe IO. Es können applikationsabhängig mehrere EXTBUS vorgesehen sein. In einer bevorzugten Ausführung kann die ROP-PAE selbständig Adressen für das externe RAM und/oder die externe IO generieren und externe Datentransfers selbständig steuern.
  • Die ROP-PAE besitzt Anschluß an eine CT die die ROP-PAE entsprechend des üblichen Verfahrens konfiguriert und rekonfiguriert. In einer bevorzugten Ausführung. kann die CT auf den IRAM lesend und/oder schreibend zugreifen um Daten und/oder Code für den Sequenzer im IRAM zu verwalten.
  • In einer besonders bevorzugten Ausgestaltung kann die ROP-PAE selbständig Code für den Sequenzer über den EXTBUS aus dem externen RAM laden.
  • In einer bevorzugten Ausführung ist der IRAM in mehrere Segmente unterteilt die in unterschiedlichen Adressbereichen liegen. Die Segmente können beispielsweise für einige der folgenden Funktionen aufgeteilt sein:
    Sequenzerspeicher, Stack (z.B. für Registersatz), Datenspeicher, IO-Puffer, Puffer zu externem RAM bzw. Cache, Lookuptabellen, Konfigurationen für PAEs und/oder Busse.
  • In einer möglichen Variante ist der IRAM komplett oder teilweise durch RAM-PAEs außerhalb der ROP-PAE realisiert. Für ggf. unterschiedlichen Segmente können unterschiedliche RAM-PAEs verwendet werden.
  • In einer bevorzugten Ausgestaltung können einige oder alle Segmente als aktive Speicher ausgestaltet sein und insbesondere die Funktionen der Speicher aus PACT13 aufweisen, z.B. FIFO, Stack, Random Access, Cache, etc., wobei für jedes Segment einzeln die Funktion konfigurierbar und/oder durch den Sequenzer programmierbar ist.
  • In einer Ausführung kann der IRAM als Multi-Port Speicher ausgeführt sein.
  • In einer besonderen Ausführung kann die ROP-PAE als lokale Konfigurationseinheit ähnlich einer CT für ROP-PAEs in der Umgebung arbeiten oder unter anderem diese Funktion mit erfüllen. Die ROP-PAE adressiert gesteuert durch den Sequenzer/Microcontroller Konfigurationen im IRAM und konfiguriert diese an PAEs und/oder sich selbst und/oder bestimmt den Ablauf des Sequenzers/Microcontrollers. Bevorzugt findet hierbei eine Synchronisation mit einer übergeordneten CT ähnlich der bekannte Inter-CT-Protokolle (PACT10, PACT17, PACT13) statt. Die ROP-PAE kann Konfiguration über eines der EXTRAM-Interface selbst laden und/oder Konfigurationen von einer übergeordneten CT über das CT Interface anfordern. Die Funktionsweise kann ähnlich der Rekonfigurationseinheit in PACT04 sein.
  • Mit anderen Worten ist der prinzipielle Arbeitsweise einer ROP-PAE ähnlich eines Microcontrollersystemes, dessen Busan bindung und/oder dessen Datentransfers und/oder dessen Programmablauf einem VPU-System entspricht.
  • Die beschriebene Struktur kann durch erweiterte und verbesserte Halbleiterherstellungsverfahren und -strukturen besonders leistungsfähig implementiert werden.
  • Dazu wird über der nach dem Stand der Technik üblichen ersten Halbleiterstruktur (z.B. Silizium) und der damit aufgebauten Transistorstrukturen eine oder mehrere weitere Ebenen von Halbleiterstrukturen (Transistorstrukturen) aufgebracht, die für zusätzliche Funktionen genutzt werden können. Beispielsweise können in einer ersten Ebene die Logik und Gatter der PAE-Funktion und in einer weiteren zusätzlichen Ebene die Speicherfunktionen implementiert werden.
  • In einer bevorzugten Bauweise werden die einzelnen Halbleiterschichten durch eine Isolierschicht voneinander getrennt. Die Isolierschicht kann Durchkontaktierungen (Vias) aufweisen, um Signale zwischen den einzelnen Halbleiterschichten zu übertragen.
  • Die Verdrahtungsstruktur kann je nach Anwendung unterschiedlich implementiert sein. Beispielsweise können direkt über jeder Halbleiterschicht Verdrahtungsebenen und/oder eine globale Verdrahtungsebene, die allen Halbleiterschichten zugeordnet ist vorgesehen sein.
  • Um eine wirtschaftliche Ausbeute zu erlangen muss sichergestellt sein, dass die Gesamtschaltung, also alle Halbleiterstrukturebenen zusammen, eine hinreichend hohe Ausbeute erreichen. Desweiteren ist zu beachten, dass der Stromverbrauch, also die Verlustleistung, aller Halbleiterstrukturebenen zusammen innerhalb eines akzeptablen Bereiches bleibt, der zu keiner Überhitzung und dem damit verbundenen Ausfall der Schaltung führt.
  • Es kann durch eine geeignete Zusammenstellung der Funktionseinheiten der einzelnen Halbleiterebenen den entsprechenden Anforderungen entsprochen werden.
  • Beispielsweise ist die vorgeschlagene Architektur eine Ebene von Logikhalbleiterstrukturen und eine weitere Ebene von Speicherhalbleiterstrukturen vorzusehen für diese Anforderungen geeignet. Während die irregularen und wenig redundanten Logikhalbleiterstrukturen eine vergleichsweise hohe Fehlerquote mit hoher Verlustleistung aufweisen, können Speicherhalbleiterstrukturen vergleichsweise redundant mit niederer Fehlerquote und durch geeignete Speicherverfahren (z.B. DRAM) auch mit geringer Verlustleistung implementiert werden.
  • IOx-PAEs
  • Aus PACT13 sind Speicher (IORAM-PAEs) mit einem dedizierten Anschluss an externe Einheiten wie z.B. Peripherie und/oder Speicher bekannt. Weiterhin sind aus PACT03 und PACT15 dedizierte Einheiten (z.B. Interface-Baugruppen (IBG)) zum Anschluss von externen Einheiten wie z.B. Peripherie und/oder Speicher bekannt.
  • Beide Verfahren weisen das Problem auf, dass ein zusätzlicher Aufwand zur Datenkommunikation zwischen PAEs, insbesondere datenverarbeitender und/oder datenberechnender PAEs und externen Einheiten betrieben werden muss, indem die Daten explizit zwischen den PAEs und den IBGs und/oder IORAM-PAEs übertragen werden müssen.
  • Es wird nunmehr erfindungsgemäß vorgeschlagen für beliebige PAEs, insbesondere jedoch für datenverarbeitende und/oder datenberechnende PAEs (z.B. ALU-PAEs) einen oder mehrere dedi zierten Anschlüsse (IO-Channel) an externe Einheiten vorzusehen. Dadurch ist eine direkte Kommunkikationsmöglichkeit der PAEs, nachfolgend IOx-PAEs genannt, und externen Einheiten gegeben.
  • Besonders effizient kann das Vorsehen von IO-Channels für nur eine Teilmenge aller PAEs sein. Beispielsweise bietet es sich an nur Streifen von PAEs mit IO-Channel-Erweiterung innerhalb einer Anordnung von PAEs (PAE-Array, PA) vorzusehen. Dadurch wird eine verbesserte Flächen- und Kosteneffizienz gegenüber der Implementierung der IO-Channel-Erweiterung in alle PAEs erreicht.
  • SIMD PAEs
  • Bei der Verwendung von rekonfigurierbaren Technologien zur Verarbeitung von Algorithmen entsteht ein wesentliches Paradoxon: Einserseits sind um eine möglichst hohe Rechenleistung zu erhalten komplexe ALUs erforderlich, wobei der Aufwand für die Rekonfiguration minimal sein sollte; andererseits sollten die ALUs möglichst einfach sein um effiziente Verarbeitung auf Bitebene zu ermöglichen; andererseits sollte die Rekonfiguration und Datenverwaltung derart intelligent und schnell erfolgen, daß sie effizient und einfach zu programmieren ist.
  • Bisherige Technologien verwenden a) sehr kleine ALUs mit wenig Rekonfigurationsunterstützung(FPGAs) und sind auf Bitebene effizient, b) große ALUs (Cameleon) mit wenig Rekonfigurationsunterstützung, c) eine Mischung aus großen ALUs und kleinen ALUs mit Rekonfigurationsunterstützung und Datenverwaltung (VPUs).
  • Da die VPU-Technologie die leistungsfähigste Technik darstellt, soll auf ihr aufbauend ein optimiertes Verfahren ge schaffen werden. Es soll ausdrücklich darauf hingewiesen werden, daß dieses Verfahren ebenfalls für die anderen Architekturen eingesetzt werden kann.
  • Der Flächenaufwand zur effizienten Steuerung von Rekonfiguration ist mit einer Menge von ca. 10.000 bis 40.000 Gattern pro PAE vergleichsweise hoch. Unterhalb dieser Gattermenge lassen sich nur einfache Ablaufsteuerungen realsieren, die die Programmierbarkeit von VPUs erheblich einschränken und eine Verwendung als General Purpose Prozessor ausschließen. Sofern auf eine besonders schnelle Rekonfiguration abgezielt wird, müssen zusätzliche Speicher vorgesehen werden, wodurch die erforderliche Gattermenge nochmals erheblich ansteigt.
  • Um ein ordentliches Verhältnis zwischen Rekonfigurationsaufwand und Rechenleistung zu erhalten, ist somit der Einsatz von großen ALUs (viel Funktionalität und/oder große Bitbreite) zwingend erforderlich. Werden die ALUs jedoch zu groß, sinkt die nutzbare parallele Rechenleistung pro Chip. Bei zu kleinen ALUs (z.B. 4-bit) ist der Aufwand zur konfiguration aufwendiger Funktionen (z.B. 32-bit Multiplikation) zu hoch. Insbesondere der Verdrahtungsaufwand wächst in kommerziell nicht mehr sinnvolle Bereiche.
  • SIMD Rechenwerkes
  • Um ein ideales Verhältnis zwischen der Verarbeitung von kleinen Bitbreiten, Verdrahtungsaufwand und der Konfiguration aufwendiger Funktionen zu erhalten, wird der Einsatz von SIMD-Rechenwerken vorgeschlagen. Dabei werden Rechenwerke der Breite m derart zerteilt, daß n einzelne Blöcke der Breite b = m/n entstehen. Durch Konfiguration wird je Rechenwerk vor gegeben, ob ein Rechenwerk unzerteilt arbeiten soll, oder ob das Rechenwerk in einen oder mehrere Blöcke, jeweils gleicher oder unterschiedlicher Breite zerlegt sein soll. Mit anderen Worten, kann ein Rechenwerk auch derart zerlegt sein, daß innerhalb eines Rechenwerkes unterschiedliche Wortbreiten zugleich konfiguriert sind (z.B. Breite 32-bit, zerlegt in 1 × 16-, 1 × 8- und 2 × 4-bit). Die Daten werden derart zwischen den PAEs übertragen, daß die zerlegten Datenworte (SIMD-WORD) zu Datenworten der Bitbreite m zusammengefaßt werden und als Paket über das Netzwerk übertragen werden.
  • Das Netzwerk überträgt immer ein komplettes Paket, d.h. alle Datenworte sind innerhalb eines Paketes gültig, und werden nach dem bekannte Handshake-Verfahren übertragen.
  • SIMD Bussysteme
  • Für einen effizienten Einsatz der von SIMD-Rechenwerken ist eine flexible und effiziente Umsortierung der SIMD-WORD untereinander innerhalb eines Busses oder zwischen unterschiedlichen Bussen erforderlich.
  • Die Busschalter nach 2 bzw. 3 können derart modifiziert werden, daß eine flexible Vernetzung der einzelnen SIMD-WORD möglich ist. Dazu werden die Multiplexer entsprechend den Rechenwerken teilbar ausgelegt, derart daß durch Konfiguration die Teilung bestimmt werden kann. Mit anderen Worten, wird beispielsweise nicht ein Multiplexer der Breite m pro Bus verwendet, sondern n einzelne Multiplexer der Breite b = m/n. Es ist nunmehr möglich, die Datenbusse für b bit Breite zu konfigurieren. Durch die Matrixstruktur der Busse (2) ist die Umsortierung der Daten ebenfalls möglich; wie in 4b dargestellt.
  • Die Handshakes der Busse werden logisch derart verknüpft, daß ein gemeinsamer Handshake für den neu geordneten Bus aus den Handshakes der ursprünglichen Busse generiert wird. Beispielsweise kann ein RDY für einen neu sortierten Bus aus einer logischen UND-Verknüpfung aller RDYs der Daten für diesen Bus liefernden Busse generiert werden. Ebenso kann beispielsweise das ACK eines Daten liefernden Busses aus einer UND-Verknüpfung der ACKs aller Busse generiert werden, die die Daten weiterverarbeiten.
  • In einer ersten Ausführungsvariante finden die Verknüpfungen der Handshakes innerhalb eines jeden Busknotens statt. Dadurch wird es möglich einem Bussystem der Breite m, bestehend aus n Teilbussen der Breite b, nur ein Handshake-Protokol zuzuordnen.
  • In einer weiteren besonders bevorzugten Ausgestaltung werden sämtliche Bussysteme in der Breite b ausgestaltet, die die kleinste realisierbare Ein-/Ausgabe Datenbreite b eines SIMD-Word entspricht. Entsprechend der Breite der PAE Datenpfade (m) besteht nunmehr ein Ein-/Ausgangsbus aus m/b = n Teilbussen der Breite b. Beispielsweise besitzt eine PAE mit 3 32bit Eingangsbussen und 2 32 bit Ausgangsbusse bei einer kleinsten SIMD-Wortbreite von 8 tatsächlich 3 × 4 8bit Eingangsbusse und 2 × 4 8bit Ausgangsbusse.
  • Jedem der Teilbusse sind sämtliche Handshake- und Steuersignale zugeordnet.
  • Der Ausgang einer PAE versendet die mit denselben Steuersignalen für sämtliche n Teil-Busse. Eingehende Quittierungssignale aller Teilbusse werden miteinander logische verknüpft, z.B. durch eine UND-Funktion. Die Bussysteme können jeden Teilbus frei verschalten und unabhängig routen. Die Bussysteme und insbesondere die Busknoten verarbeiten und verknüpfen die Handshake-Signale der einzelnen Busse unabhängig ihres Routings, ihrer Anordnung und Sortierung nicht.
  • Bei einer PAE eingehenden Daten werden die Steuersignale sämtlicher n Teilbusse derart miteinander verknüpft, dass ein allgemeingültiges Steuersignal quasi als Bussteuersignal für den Datenpfad generiert wird.
  • Beispielsweise können in einer "dependend" Betriebsart gemäß Definition RdyHold-Stufen für jeden einzelnen Datenpfad eingesetzt werden und erst wenn sämtliche RdyHold-Stufen anstehende Daten signalisieren, werden diese von der PAE übernommen.
  • In einer "independend" Betriebsart gemäß Definition werden die Daten jedes Teilbusses einzeln in Eingangsregister der PAE geschrieben und quittiert, wodurch der Teilbus sofort für eine nächste Datenübertragung frei ist. Das Vorhandensein aller erforderlichen Daten von allen Teilbussen in den Eingangsregistern wird innerhalb der PAE durch geeignete logische Verknüpfung der für jeden Teilbus im Eingangsregister gespeicherten RDY-Signale detektiert, woraufhin die PAE mit der Datenverarbeitung beginnt.
  • Der wesentliche daraus resultierende Vorteil dieses Verfahrens ist, dass die SIMD-Eigenschaft von PAEs keinerlei besonderen Einfluß auf das verwendete Bussystem aufweist. Es werden lediglich mehr Busse (n) einer geringeren Breite (b) benötigt. Die Verschaltung selbst bleibt unberührt. Die PAEs verknüpfen und verwalten die Steuerleitungen lokal. Dadurch entfällt der zusätzliche Hardwareaufwand in den Bussystemen zur Verwaltung und/oder Verknüpfung der Steuerleitungen.
  • Einsatz von FPGAs als ALU-Core
  • In PACT13 ist bereits eine Architektur beschrieben, in welcher anstatt einer ALU eine FPGA oder FPGA-ähnliche Struktur in eine PAE integriert wird. Diese Struktur wird innerhalb einer PAE gemäß den FPGA Konfigurationsmethoden nach dem Stand der Technik konfiguriert, d.h. die erweiterten Konfigurationsverfahren nach PACT02, 04, 05, 10, 13, 17 finden auf die FPGA-Struktur keine Anwendung. Dadurch ist sind Aufwand und Kosten für die Konfigurationssteuerung der verhältnismäßig kleinen FPGA-Zellen gering. Die PAE allerdings, die die FPGA-Zellen enthält, verhält sich gemäß des VPU-Konfigurationsverfahrens nach den o.g. Schriften. Dadurch ist die FPGA-Struktur in der PAE-Struktur gekapselt und verhält sich wie ein PAE-Objekt mit vielen Konfigurationsregistern. Dadurch lassen sich auch beliebige Operationen auf ein Array aus FPGAs abbilden. Gemäß PACT25 ist eine Mischung aus ALU-PAEs und FPGA-PAEs innerhalb einer VPU möglich und durchaus sinnvoll.
  • Es ist anhand des Anwendungsgebietes zu entscheiden, ob ein mehrfacher Satz an Konfigurationsregistern für die FPGA-Zellen sinnvoll ist, da deren Anzahl sehr hoch ist. Gegebenenfalls werden Konfigurationsregister zum schnellen Umkonfigurieren einer FPGA-PAE gemäß PACT02, 13 und insbesondere PACT17, dort 18 und 19, als Register-File oder FIFO-Struktur innerhalb der PAE realisiert und von dort aus in die FPGA-Zellen geladen.
  • Konfiguration komplexer Rechenwerke Komplexe Rechenwerke (z.B. Floating-Point Rechenwerke) können durch die geeignete Verschaltung und Gruppierung von PAEs möglicherweise auch unterschiedlicher Bauart realisiert werden.
  • Statemachines über RAM-PAEs
  • Mit einem Array aus PAEs verbundene RAM-PAEs können zum Aufbau von Sequenzern eingesetzt werden, wie aus PACT13 bereits bekannt.
  • Ein bevorzugter Sequenzer kann wie folgt aufgebaut sein: Der Adressbus einer RAM-PAE, die als Sequenzerspeicher verwendet wird, wird in mehrere Teiladressen beliebiger und insbesondere möglicherweise auch unterschiedlicher Breite aufgeteilt, beispielsweise Bit 0..3 für eine erste Teiladresse (NEXT_CYCLE), Bit 4..7 für eine zweite Teiladresse (SEQ_IN) und Bit 8..12 für eine dritte Teiladresse (CTRL_IN).
  • Der Datenausgang einer RAM-PAE wird in mehrere Teildaten aufgeteilt, beispielsweise Bit 0..3 für die ersten Teildaten (CYLCE), Bit 4..7 für die zweiten Teildaten (SEQ_OUT) und Bit 8..12 für die dritten Teildaten (CTRL_OUT).
  • Zur Aufteilung der Adressen und/oder Daten kann insbesondere das beschriebene SIMD PAE- und Bus-Konzept verwendet werden.
  • Der RAM-PAE werden datenverarbeitende PAEs zugeordnet, wie z.B. ALU-PAEs.
  • Die Berechnung des nächsten Zyklusses innerhalb eines Sequenzerdurchlaufes erfolgt durch die Rückkopplung von NEXT_CYCLE auf CYCLE.
  • In einer erweiterten Ausführungsvariante können zusätzliche datenverarbeitende PREs zur Berechnung von CYCLE in Abhängigkeit von NEXT_CYCLE innerhalb der Rückkopplung vorgesehen sein. Diese PAEs können auf beliebige i.b. auch zusätzliche Signale, Daten oder Zustände anderer PAEs und/oder externer/peripherer Baugruppen reagieren. Desweiteren können diese PAEs zusätzliche Signale oder Daten erzeugen.
  • Zur Realisierung eines kompletten Sequenzers können weitere PAEs angekoppelt sein, die insbesondere auch in ihrer Funktion und/oder Vernetzung vom Sequenzer beeinflußt werden. Diese angekoppelten PAEs verarbeiten vorwiegend Daten beliebiger Art und besitzen Anschluß an weitere PAEs, insbesondere datenverarbeitende (ALU-PAEs) und/oder Speicher-PAEs (RAM-PAEs) und/oder periphere Anschlüsse (IO-PAEs).
  • Diese PAEs können durch SEQ_OUT angesteuert werden und können bedarfsweise durch SEQ_IN Ablaufspeicher des Sequenzers ansteuern.
  • Weitere möglicherweise auch unabhängige PAEs oder Einheiten, insbesondere auch externe/periphere Einheiten und/oder übergeordnete CTs können durch den Sequenzerspeicher angesteuert werden (CTRL_OUT) oder diesen ansteuern (CTRL_IN).
  • Zur korrekten taktgesteuerten Ablaufsteuerung des Sequenzers sind in Rückkopplungspfade bevorzugt taktsynchronisierte Register eingebaut.
  • Die RAM-PAE kann durch eine übergeordnete CT konfiguriert werden, insbesondere können die Sequenzerfunktionen durch den Inhalt der RAM-PAE konfiguriert und festgelegt werden.
  • Konfigurationsregistermodelle
  • Verschiedene Konfigurationsregistermodelle zur Festlegung der Konfiguration von jeweils lokal zugeordneten PAEs sind bekannt. In PACT02 ist ein sequentiell abarbeitbares Modell beschrieben, in PACT04 ist ein FIFO-Modell beschrieben, das ebenfalls sequentiell abgearbeitet und überlappend konfiguriert werden kann, in PACT08 ist ein selektives Modell beschrieben, bei welchem abhängig von der Datenverarbeitung bestimmte Konfigurationsregister und damit die in ihnen gespeicherte Funktion und/oder Vernetzung ausgewählt werden. In PACT17 ist weiterhin ein FIFO-Modell beschrieben, das sich besonders für die Vorabkonfigüration und überlappende Konfiguration eignet.
  • Als besonders leistungsfähig und Kosten/Performance effizient wurde eine Mischung aus diesen Modellen erkannt.
  • Das FIFO-Modell nach PACT17 eignet sich besonders, um eine beliebige Anzahl von Konfigurationsregistern von PAEs vorzuladen, da die Funktion des verwendeten FIFOs eine variable Konfigurationslänge effizient ermöglicht.
  • Durch eine Erweiterung des FIFO-Modelles kann der Anfang und das Ende einer bestimmten Konfiguration und der dazugehörenden einzelnen Konfigurationseinträge festgestellt werden. Nunmehr können mehrere Konfigurationen zugleich in dem FIFO-Modell abgelegt werden.
  • Eine Konfiguration wird je Aufruf von ihrem Anfang bis zu ihrem Ende in die Konfigurationsregister einer PAE übertragen.
  • Durch eine optionale zusätzliche Übersetzungs- und Zuweisungsvorrichtung können Zustände (z.B. Zustände der eigenen ALU und/oder ein oder mehrere Trigger (vgl. PACT08) beispielsweise anderer PAEs) auf bestimmte Konfigurationen innerhalb des FIFO-Modells übersetzt werden. Beispielsweise kann ein eintreffender Reconfigurationstrigger auf eine bestimmte Konfiguration innerhalb des FIFO-Modells zeigen, die durch das Auftreten des Reconfigurationstrigger dann konfiguriert wird.
  • Als Übersetzungs- und Zuweisungsvorrichtung können beispielsweise algebraische Berechnungen. und/oder logische Verknüpfungen und/oder bevorzugt Übersetzungsspeicher (Lookup-Tabellen) zum Einsatz kommen.
  • Nach oder während der Konfiguration können Konfigurationen aus dem FIFO entfernt werden. Bevorzugt wird dabei die Referenzierung innerhalb der Übersetzungs- und Zuweisungsvorrichtung entsprechend angepasst.
  • Weiterhin kann das FIFO-Modell um das Sequenzer-Verfahren nach PACT04 erweitert werden. Dazu werden beispielsweise Sprünge (GOTO), sowie zustandsabhängige und bedingte Sprünge (WAIT-GOTO) eingeführt.
  • Weiterhin kann ein Synchronisationsanzeigeverfahren verwendet werden, das anzeigt wann eine bestimmte Konfiguration bzw. ein bestimmter Zyklus des Sequenzers beendet ist. Mit anderen Worten kann jeder Zyklus aus mehreren Konfigurationseinträgen bestehen. Zur Kennzeichnung kann beispielsweise nach PACT04 ein run/stop-Flag verwendet werden, wobei 'run' zusammengehörende Konfigurationseinträge eines Zyklus kennzeichnet und 'stop' den ersten Eintrag eines nachfolgenden Zyklus. Alternativ oder zusätzlich kann der ebenfalls aus PACT04 bekannte Befehl WAIT verwendet werden.
  • Durch 'stop' oder WAIT wird das Ende eines Zyklus gekennzeichnet, d.h. eine Konfiguration ist komplett, kann ausgeführt und abgearbeitet werden. Nach Beendigung der Datenverarbeitung dieser Konfiguration wird der nächste Zyklus ausgeführt .
  • Die Beendigung kann entsprechend sequentieller Prozessoren durch einen Takt (Instruktionssequenzing) definiert sein, und/oder entsprechend des Datenverarbeitungsprinzips der PACT-Prozessoren (PACT01, PACT04, Konfigurationssequenzing) durch ein Statussignal (z.B. einen Trigger) definiert sein. Mit anderen Worten wird z.B. durch das Eintreffen eines Triggers 'stop' übersprungen und die nachfolgenden Konfigurationen konfiguriert und/oder WAIT wartet bis zum Eintreffen eines Triggers.
  • Optional kann ein FIFO nicht nur die lokal zugeordnete PAE ansteuern, sondern auch weitere umliegende PAEs.
  • Optional kann der FIFO auch als eine dedizierte Einheit nach PACT04 ausgestaltet sein.
  • Ausführungsbeispiele:
  • A) Ein eintreffende Trigger wird über eine Übersetzungs- und Zuweisungsvorrichtung auf eine im FIFO liegende Konfiguration (K1) übersetzt. Die Konfiguration (K1) wird daraufhin in die PAE konfiguriert. Als Ende-Kennung kann beispielsweise ein WAIT-Befehl, ein END-Befehl oder das run/stop-Flag dienen. Ein nachfolgend eintreffender Trigger wird über eine Übersetzungs- und Zuweisungsvorrichtung auf eine andere im FIFO liegende Konfiguration (K2) übersetzt. Diese Konfiguration (K2) wird daraufhin in die PAE konfiguriert.
  • K1 und/oder K2 können nach erfolgter Konfiguration in die PAE aus dem FIFO gelöscht werden.
  • B) Ein eintreffende Trigger wird über eine Übersetzungs- und Zuweisungsvorrichtung auf eine im FIFO liegende Konfiguration (K3) übersetzt, die aus mehreren Zyklen (Cy1, Cy2, Cy3a, Cy3b, Cy4) besteht. Der erste Zyklus (Cy1) wird daraufhin in die PAE konfiguriert und ausgeführt. Als Ende-Kennung kann beispielsweise ein WAIT-Befehl oder das run/stop-Flag dienen. Ein nachfolgend eintreffender Trigger, der das Ausführungsende des Zyklus anzeigt, bewirkt die Konfiguration und das Ausführen von Cy2. Cy2 endet mit zwei WAIT-GOTO-Befehlen (WAIT-GOTO (Trg1, Cy3a); WAIT-GOTO (Trg2, Cy3b)) (vgl. PRCT04), dies bewirkt, dass auf zwei unterschiedliche Trigger, die das Ausführungsende des Zyklus anzeigen, Trg1 und Trg2 reagiert wird. Trifft Trg1 ein, wird im nächsten Zyklus Cy3a konfiguriert und ausgeführt bzw. bei Trg2 entsprechend Cy3b.
  • Cy3a und Cy3b enden mit einem WAIT-GOTO (Trg, Cy4). Bei eintreffen eines Trigger, der das Ausführungsende des Zyklus anzeigt, wird nach Cy4 gesprungen und die Konfiguration entsprechend konfiguriert und ausgeführt.
  • Cy4 endet mit einem WRIT-GOTO (Trg, Cy1), wodurch bei eintreffen des Trigger, der das Ausführungsende des Zyklus anzeigt, der erneute sequentielle Durchlauf einer Schleife beginnen kann. Insoweit kann durch den Sprung auf Cy1 ein Ringspeicher nach PACT04 zum Ausführen von Schleifen gebildet werden.
  • Durch Eintreffen eines Triggers (Trg-x) kann die Schleife terminiert werden.
  • Existiert ein Eintrag für Trg-x in der Übersetzungs- und Zuweisungsvorrichtung kann die Schleife jederzeit abgebrochen und die durch Trg-x in der Übersetzungs- und Zuweisungsvorrichtung referenzierte Konfiguration (KX) ausgeführt werden. Existiert kein Eintrag, kann durch das explizite Verwenden von WAIT-GOTO (Trg-x, KX) Befehlen, z.B. zusammen mit WAIT-GOTO (Trg, Cy1) in Cy4 die Schleife zu bestimmte vorgegebenen Ausführungszeitpunkten terminiert werden.
  • 1 zeigt eine mögliche Ausgestaltung einer ALU-PAE. Ein erstes Bussystem (0104a) ist mit einer ALU verbunden deren Ergebnisse auf ein zweites Bussystem (0104b) übertragen werden. Der vertikale Datentransfer wird über zwei Register/Multiplexerstufen (FREG 0401, BREG 0402) mit je unterschiedlicher Übertragungsrichtung geführt. Über ein zusätzliches Interface (0403) wird die Einheit in ihrer Funktion und Vernetzung von einer CT konfiguriert, in einer bevorzugten Ausgestaltung besteht die Möglichkeit Konstanten für die Datenverarbeitung zu sezten. In einer weiteren Ausgestaltung kann eine Konfigurationseinheit (CT) Daten aus den Arbeitsregistern auslesen.
  • In einer erweiterten Ausgestaltung kann eine ALU-PAE zusätzlich einen Anschluß an einen 'global system bus' aufweisen und damit direkt mit einem globalen ggf. auch externen Speicher und/oder Peripherie kommunizieren
  • 1 kann auch eine entsprechende RAM-PAE darstellen. Über 0403 kann von einer CT die Vernetzung und Funktion des RAMs eingestellt werden.
  • Die Funktion umfaßt beispielswiese folgende Funktionen oder Kombinationen daraus:
    • 1. Random Access
    • 2. FIFO
    • 3. Stack
    • 4. Cache
    • 5. Page Memory für MMUs
  • Desweiteren kann in einer bevorzugten Ausführung der Speicher mit Daten von der CT vorgeladen werden (z.B. Konstanten, Lookup-Tabellen, etc). Ebenfalls kann die CT in einer erweiterten Ausführung Daten (z.B. zum Debuggen oder für Taskwechsel) aus dem Speicher über 0403 zurücklesen.
  • In einer bevorzugten Ausführung kann eine RAM-PAE mehrere Anschlüsse an das Bussystem 0104 aufweisen (dual-port oder multi-port), wodurch mehrere Datentransfers gleichzeitig durchgeführt werden können.
  • In einer weiteren Ausführung kann die RAM-PAE einen dedizierten Anschluß an einen externen Bus aufweisen.
  • RAM-PAEs können derart zusammengeschaltet werden, dass aus mehreren (n) RAM-PAEs ein n-fach größerer Speicher entsteht.
  • Beliebige weitere Ausgestaltungen und Kombinationen der erläuterten Erfindungen sind möglich und einem Fachmann offensichtlich.
  • Sämtliche erwähnten PACT-Patentanmeldungen sind zu Offenbarungszwecken vollumfänglich eingegliedert.

Claims (19)

  1. Zellelementefeld zur Datenverarbeitung mit Funktionszellen zur Ausführung algebraischer und/oder logischer Funktionen und Speicherzellen, um Information zu empfangen, abzuspeichern und/oder auszugeben, dadurch gekennzeich net, daß von den Funktionszellen eine Steuerverbindung zu den Speicherzellen geführt ist.
  2. Zellelementefeld nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, daß es einen Prozessor, Coprozessor und/oder Microcontroller mit einer Vielzahl in Funktion und/oder Vernetzung rekonfigurierbarer und/oder vorgebbarer Einheiten wie Funktionszellen und/oder Speicherzellen bildet.
  3. Zellelementefeld nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Funktionszellen als arithmetische Logikeinheiten gebildet sind.
  4. Zellelementefeld nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, daß die arithmetischen Logikeinheiten als erweiterte ALUs gebildet sind.
  5. Zellelementefeld nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Speicherzellen zur flüchtigen und/oder nichtflüchtigen Datenspeicherung ausgebildet sind.
  6. Zellelementefeld nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Speicherzellen zur Abspeicherung von zu verarbeitenden Daten und/oder von zu verarbeitenden Programmschritten ausgebildet sind.
  7. Zellelementefeld zur Datenverarbeitung, dadurch gekennzeichnet, daß die Speicherzellen dazu ausgebildet sind, abgespeicherte Informationen auf Ansteuerung der sie steuernden Funktionszelle direkt und/oder indirekt auf einen zur Funktionszelle führenden Bus zu geben.
  8. Zellelementefeld nach einem der vorhergehenden Ansprüche, worin zumindest einer Speicherzelle und/oder Funktionszelle Register zugeordnet sind, insbesondere ein Backward-Register, welches im Informationsweg zwischen Speicherzelle und Funktionszelle angeordnet ist.
  9. Zellelementefeld nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Speicherzelle dazu ange ordnet ist, Informationen von der sie steuernden Funktionszelle, einer Eingabe-Ausgabe-Zelle und/oder einer sie nicht steuernden Zelle mit arithmetischer Logikeinheit zu empfangen.
  10. Zellelementefeld nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der Funktionszellen-Speicherzellen-Kombination zumindest ein Ein-Ausgabe-Mittel zugeordnet ist, um Informationen an eine externe Einheit und/oder eine andere Funktionszelle, Funktionszellen-Speicherzellen-Kombination und/oder Speicherzelle zu senden und/oder von dieser zu empfangen.
  11. Zellelementefeld nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, daß das Ein-Ausgabe-Mittel gleichfalls zum Empfang von Steuerbefehlen aus der Funktionszelle ausgebildet ist.
  12. Zellelementefeld zur Datenverarbeitung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Funktionszelle zumindest einer von Speicherzelle und Ein-Ausgabezelle benachbart angeordnet ist.
  13. Verfahren zum Betrieb eines Zellelementefeldes, insbesondere multidimensionalen Zellelementefeldes mit Funktionszellen zur Ausführung algebraischer und/oder logischer Funktionen und Informationsbereitstellungszellen, insbesondere Speicherzellen und/oder Ein-Ausgabezellen zum Empfangen und/oder Ausgeben von Informationen und/oder Speichern. derselben, dadurch gekennzeichnet, daß zumindest eine der Funktionszellen Steuerbefehle an zumindest eine Informationsbereitstellungszelle ausgibt, dort im Ansprechen auf die Steuerbefehlinformation für die Funktionszelle verarbeitet wird und die Funktionszelle dazu ausgebildet ist, eine weitere Datenverarbeitung im Ansprechen auf aus der Informationsbereitstellungszelle bereitgestellte Information durchzuführen, um so sequenzerartig Daten zu verarbeiten.
  14. Datenverarbeitungsanordnung nach einem der vorhergehenden Datenverarbeitungsanordnungsansprüche, dadurch gekennzeichnet, daß als Zellelemente zumindest eines von ALUs, EALUs, RAM-Zellen, I/O-Zellen, Logikblöcken vorgesehen sind.
  15. Datenverarbeitungsanordnung, insbesondere nach einem der vorhergehenden Ansprüche, insbesondere Prozessor, mit einem Feld aus zur Laufzeit in Funktion und/oder Vernetzung datenverarbeitenden rekonfigurierbaren Zellen, mit einer ALU oder anderen logischen Verknüpfungsbeschaltung und dieser zugeordnetem, insbesondere integriertem Speicher, dadurch gekennzeichnet, daß der Speicher in einer anderen Halbleiter-Lage, insbesondere oberhalb der ALU oder anderen logischen Verknüpfungsbeschaltung angeordnet ist.
  16. Datenverarbeitungsanordnung, insbesondere nach einem der vorhergehenden Ansprüche, insbesondere Prozessor, mit einem Feld aus zur Laufzeit in Funktion und/oder Vernetzung datenverarbeitenden rekonfigurierbaren Zellen zur Verarbeitung von Daten mit einer höheren Bitbreite, dadurch gekennzeichnet, daß die Zellen dazu ausgebildet sind, wahlweise Daten mit einer höheren Bitbreite oder Daten mit geringerer Bitbreite zu verarbeiten, wobei dann meh rere Daten mit geringerer Bitbreite simultan verarbeitbar sind, insbesondere nach Art eines SIMD-Rechenwerkes.
  17. Datenverarbeitungsanordnung, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß zur Zelle hin oder von dieser weg führende Busse teilbar sind, insbesondere um mehrere Datenströme mit geringerer Bitbreite als der in der Zelle maximal bearbeitbaren Bitbreite unabhängig weiterleiten und/oder empfangen zu können.
  18. Datenverarbeitungsanordnung, insbesondere nach einem der vorhergehenden Ansprüche; dadurch gekennzeichnet, daß die Busverwaltung lokal in der Zelle erfolgt.
  19. Datenverarbeitungsanordnung insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß einer PAE ein Speicher zur Sequenzerrealisierung zugeordnet ist und eine Anordnung vorgesehen ist, um bei Zugriff auf eine Speicherstelle sowohl Informationen betreffend die Adresse einer Speicherstelle für den nächsten Speicherzugriff zu bestimmen als auch Daten und/oder Befehle zu ermitteln.
DE10227650A 1995-12-29 2002-06-20 Rekonfigurierbare Elemente Withdrawn DE10227650A1 (de)

Priority Applications (28)

Application Number Priority Date Filing Date Title
DE10227650A DE10227650A1 (de) 2001-06-20 2002-06-20 Rekonfigurierbare Elemente
EP02777144A EP1466264B1 (de) 1995-12-29 2002-09-18 Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
PCT/EP2002/010479 WO2003025781A2 (de) 2001-09-19 2002-09-18 Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
US10/490,079 US7434191B2 (en) 2001-09-03 2002-09-18 Router
AU2002338729A AU2002338729A1 (en) 2001-09-19 2002-09-18 Router
PCT/EP2002/010572 WO2003036507A2 (de) 2001-09-19 2002-09-19 Rekonfigurierbare elemente
US10/490,081 US8429385B2 (en) 2001-09-03 2002-09-19 Device including a field having function cells and information providing cells controlled by the function cells
AU2002357982A AU2002357982A1 (en) 2001-09-19 2002-09-19 Reconfigurable elements
JP2003538928A JP4456864B2 (ja) 2001-09-19 2002-09-19 リコンフィギュアブル素子
EP02791644A EP1472616B8 (de) 2001-09-19 2002-09-19 Rekonfigurierbare elemente
AT02791644T ATE533111T1 (de) 2001-09-19 2002-09-19 Rekonfigurierbare elemente
PCT/DE2003/000942 WO2003081454A2 (de) 2002-03-21 2003-03-21 Verfahren und vorrichtung zur datenverarbeitung
AU2003223892A AU2003223892A1 (en) 2002-03-21 2003-03-21 Method and device for data processing
EP03720231A EP1518186A2 (de) 2002-03-21 2003-03-21 Verfahren und vorrichtung zur datenverarbeitung
US10/508,559 US20060075211A1 (en) 2002-03-21 2003-03-21 Method and device for data processing
US12/247,076 US8209653B2 (en) 2001-09-03 2008-10-07 Router
US12/571,173 US8686549B2 (en) 2001-09-03 2009-09-30 Reconfigurable elements
JP2009271120A JP2010079923A (ja) 2001-09-19 2009-11-30 処理チップ、チップを含むシステム、マルチプロセッサ装置およびマルチコアプロセッサ装置
US12/729,090 US20100174868A1 (en) 2002-03-21 2010-03-22 Processor device having a sequential data processing unit and an arrangement of data processing elements
US12/729,932 US20110161977A1 (en) 2002-03-21 2010-03-23 Method and device for data processing
US13/023,796 US8686475B2 (en) 2001-09-19 2011-02-09 Reconfigurable elements
US14/162,704 US20140143509A1 (en) 2002-03-21 2014-01-23 Method and device for data processing
US14/263,185 US8890215B2 (en) 1997-10-08 2014-04-28 Reconfigurable elements
US14/540,782 US20150074352A1 (en) 2002-03-21 2014-11-13 Multiprocessor Having Segmented Cache Memory
US14/543,306 US9092595B2 (en) 1997-10-08 2014-11-17 Multiprocessor having associated RAM units
US14/810,905 US9240220B2 (en) 1997-10-08 2015-07-28 Stacked-die multi-processor
US14/923,702 US10579584B2 (en) 2002-03-21 2015-10-27 Integrated data processing core and array data processor and method for processing algorithms
US15/000,763 US10885996B2 (en) 1997-10-08 2016-01-19 Processor having a programmable function unit

Applications Claiming Priority (51)

Application Number Priority Date Filing Date Title
DE10129237.6 2001-06-20
EP01115021 2001-06-20
EP01115021.6 2001-06-20
DE10135211 2001-07-24
DE10135211.5 2001-07-24
DE10135210.7 2001-07-24
DE10135210 2001-07-24
DE10139170.6 2001-08-16
DE10139170 2001-08-16
DE10142231.8 2001-08-29
DE10142231 2001-08-29
DE10142903 2001-09-03
DE10142904 2001-09-03
DE10142894.4 2001-09-03
DE10142903.7 2001-09-03
DE10142894 2001-09-03
DE10142904.5 2001-09-03
DE10144732.9 2001-09-11
DE10144733.7 2001-09-11
DE10144733 2001-09-11
DE10144732 2001-09-11
DE10145795.2 2001-09-17
DE10145795 2001-09-17
DE10145792.8 2001-09-17
DE10145792 2001-09-17
DE10146132.1 2001-09-19
DE10146132 2001-09-19
DE10154260.7 2001-11-05
DE10154259 2001-11-05
DE10154259.3 2001-11-05
DE10154260 2001-11-05
EP01129923.7 2001-12-14
EP01129923 2001-12-14
EP02001331 2002-01-18
EP02001331.4 2002-01-18
DE10202044.2 2002-01-19
DE10202044 2002-01-19
DE10202175 2002-01-20
DE10202175.9 2002-01-20
DE10206653.1 2002-02-15
DE10206653 2002-02-15
DE10206856.9 2002-02-18
DE10206857.7 2002-02-18
DE10206856 2002-02-18
DE10206857 2002-02-18
DE10207224.8 2002-02-21
DE10207225 2002-02-21
DE10207224 2002-02-21
DE10207225.6 2002-02-21
DE10129237A DE10129237A1 (de) 2000-10-09 2002-06-20 Verfahren zur Bearbeitung von Daten
DE10227650A DE10227650A1 (de) 2001-06-20 2002-06-20 Rekonfigurierbare Elemente

Publications (1)

Publication Number Publication Date
DE10227650A1 true DE10227650A1 (de) 2004-02-19

Family

ID=30773843

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10227650A Withdrawn DE10227650A1 (de) 1995-12-29 2002-06-20 Rekonfigurierbare Elemente

Country Status (1)

Country Link
DE (1) DE10227650A1 (de)

Similar Documents

Publication Publication Date Title
DE4416881C2 (de) Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
EP0961980B1 (de) Verfahren zur selbstsynchronisation von konfigurierbaren elementen eines programmierbaren bausteines
EP0948842B1 (de) VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.)
DE2716369C2 (de)
EP1537486A1 (de) Rekonfigurierbare sequenzerstruktur
EP0951682B1 (de) IO- UND SPEICHERBUSSYSTEM FÜR DFPs SOWIE BAUSTEINE MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN
WO2004021176A2 (de) Verfahren und vorrichtung zur datenverarbeitung
US20140359254A1 (en) Logical cell array and bus system
WO2000077652A9 (de) Sequenz-partitionierung auf zellstrukturen
EP1329816A2 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
WO2002103532A2 (de) Verfahren zur bearbeitung von daten
EP1472616B1 (de) Rekonfigurierbare elemente
WO2003081454A2 (de) Verfahren und vorrichtung zur datenverarbeitung
WO2004079564A2 (de) Prozessor mit verschiedenartigen steuerwerken für gemeinsam genutzte ressourcen
DE102006027181B4 (de) Prozessor mit internem Raster von Ausführungseinheiten
EP1789889B1 (de) Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten
DE10227650A1 (de) Rekonfigurierbare Elemente
EP1386220B1 (de) Verfahren und vorrichtung zu datenbe- und/oder verarbeitung
DE102017200460A1 (de) Recheneinheit und Betriebsverfahren hierfür
EP0981079B1 (de) Programmierbare 1-Bit Datenverarbeitungsanordnung
EP1348257B1 (de) Zellenanordnung mit segmentierter zwischenzellstruktur
DE4447707B4 (de) Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik
DE4447706B4 (de) Partiell zur Laufzeit rekonfigurierbarer Datenflussprozessor
EP1537501B1 (de) Verfahren und vorrichtung zur datenverarbeitung
DE102017200461A1 (de) Recheneinheit und Betriebsverfahren hierfür

Legal Events

Date Code Title Description
ON Later submitted papers
8139 Disposal/non-payment of the annual fee