Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
RECONFIGURABLE SEQUENCER STRUCTURE
Document Type and Number:
WIPO Patent Application WO/2004/038599
Kind Code:
A1
Abstract:
The invention relates to a cellular element field for data processing, with functional cell means for carrying out algebraic and/or logical functions and memory cell means for receipt, storage and/or output of information. Functional cell/memory cell combinations are thus formed whereby a control connection is run from the functional cell means to the memory cell means.

Inventors:
VORBACH MARTIN (DE)
Application Number:
PCT/EP2003/009957
Publication Date:
May 06, 2004
Filing Date:
September 08, 2003
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PACT XPP TECHNOLOGIES AG (DE)
VORBACH MARTIN (DE)
International Classes:
G06F15/78; (IPC1-7): G06F15/78
Domestic Patent References:
WO2000077652A22000-12-21
WO1999000739A11999-01-07
Foreign References:
DE19651075A11998-06-10
US6092174A2000-07-18
Other References:
"A technical perspective", THE XPP WHITE PAPER RELEASE 2.1, 27 March 2002 (2002-03-27), pages 1 - 27, XP002263157
BAUMGARTE V ET AL: "PACT XPP - A self-reconfigurable data processing", 1ST INTERNATIONAL CONFERENCE ON ENGINEERING OF RECONFIGURABLE SYSTEMS AND ALGORITHMS, June 2001 (2001-06-01), las vegas, pages 64 - 70, XP002257061, Retrieved from the Internet [retrieved on 20031008]
See also references of EP 1537486A1
Attorney, Agent or Firm:
Pietruk, Claus Peter (Karlsruhe, DE)
Download PDF:
Claims:
Patentansprüche
1. Zellementefeld zur Datenverarbeitung mit Funktionszell mitteln zur Ausführung algebraischer und/oder logischer Funktionen und Speicherzellmitteln, um Information zu empfangen, abzuspeichern und/oder auszugeben, dadurch ge kennzeichnet, dass FunktionszellenSpeicherzellenKombi nationen gebildet sind, bei denen von den Funktionszell mitteln eine Steuerverbindung zu den Speicherzellmitteln geführt ist.
2. Zellementefeld nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass ein Prozessor, Coprozessor und/oder Microcontroller mit einer Vielzahl in Funktion und/oder Vernetzung rekonfigurierbarer und/oder vorgebbarer Ein heiten wie Funktiohszellen und/oder Speicherzellen bil det.
3. Zellementefeld nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Funktionszellen als arithmetische Logikeinheiten gebildet sind.
4. Zellementefeld nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass die arithmetischen Logikeinheiten als erweiterte ALUs gebildet sind.
5. Zellementefeld nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Speicherzellen zur flüchtigen und/oder nicht flüchtigen Datenspeicherung ausgebildet sind.
6. Zellementefeld nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Speicherzellen zur Ab speicherung von zu verarbeitenden Daten und/oder von zu verarbeitenden Programmschritten ausgebildet sind.
7. Zellementefeld zur Datenverarbeitung, dadurch gekenn zeichnet, dass 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. Zellementefeld nach einem der vorhergehenden Ansprüche, worin zumindest einer Speicherzelle und/oder Funktions zelle Register zugeordnet sind, insbesondere ein Back wardRegister, welches im Informationsweg zwischen Spei cherzelle und Funktionszelle angeordnet ist.
9. Zellementefeld nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Speicherzelle dazu ange ordnet ist, Informationen von der sie steuernden Funkti onszelle, einer EingabeAusgabeZelle und/oder einer sie nicht steuernden Zelle mit arithmetischer Logikeinheit zu empfangen.
10. Zellementefeld nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Funktionszellen SpeicherzellenKombination zumindest ein EinAusgabe Mittel zugeordnet ist, um Informationen an eine externe Einheit und/oder eine andere Funktionszelle, Funktions zellenSpeicherzellenKombination und/oder Speicherzelle zu senden und/oder von dieser zu empfangen.
11. Zellementefeld nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass das EinAusgabeMittel gleichfalls zum Empfang von Steuerbefehlen aus der Funktionszelle ausgebildet ist.
12. Zellementefeld nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Steuerung dazu ausgebil det ist, zumindest einige, bevorzugt alle der nachfolgen den Befehle zu übertragen und/oder die Speicherzelle bzw. Eingabe/AusgabeZelle dazu ausgebildet ist, die folgenden Befehle zu dekodieren : DATA WRITE/READ, ADRESSPOINTER WRITE/READ, PROGRAMMPOINTER WRITE/READ, PROGRAMMPOINTER INCREMENT, STACKPOINTER WRITE/READ, vorgenannte Befehle jeweils insbesondere für internen und/oder externen Zu griff, PUSH, POP, OPCODE, FETCH.
13. Zellementefeld nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Funktionszelle als al leiniger Master auf die Steuerverbindung und/oder das als Steuerungsverbindung dienende Bussegment zugreifen kann.
14. Zellementefeld zur Datenverarbeitung nach einem der vor hergehenden Ansprüche, dadurch gekennzeichnet, dass die Funktionszelle zumindest einer von Speicherzelle und Ein Ausgabezelle benachbart angeordnet ist.
15. Zellementefeld nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Zellelemente multidimen sional angeordnet sind, insbesondere matrixartig, wobei die Funktionszelle und/oder die benachbarte Speicher bzw. EinAusgabezelle aus einer oberen Reihe Daten emp fangen und in eine untere Reihe Daten ausgeben kann, wo bei in einer Reihe Busse vorgesehen sind und die Funk tionszelle und zumindest eine Speicherund/oder Ein Ausgabezelle in ein und derselben Reihe liegen.
16. Verfahren zum Betrieb eines Zellelementefeldes, insbeson dere multidimensionalen Zellelementefeldes mit Funktions zellen zur Ausführung algebraischer und/oder logischer Funktionen und Informationsbereitstellungszellen, insbe sondere Speicherzellen und/oder EinAusgabezellen zum Empfangen und/oder Ausgeben von Informationen und/oder Speichern derselben, dadurch gekennzeichnet, dass zumin dest eine der Funktionszellen Steuerbefehle an zumindest eine Informationsbereitstellungszelle ausgibt, dort im Ansprechen auf die Steuerbefehlinformation für die Funk tionszelle verarbeitet wird und die Funktionszelle dazu ausgebildet ist, eine weitere Datenverarbeitung im An sprechen auf aus der Informationsbereitstellungszelle be reitgestellte Information durchzuführen, um so sequenzer artig Daten zu verarbeiten.
17. Verfahren nach einem der vorhergehenden Ansprüche, da durch gekennzeichnet, dass die Funktionszelle dazu ausge bildet ist, zumindest einige der Steuerbefehle OPCODE FETCH, DATA WRITE INTERN, DATA WRITE EXTERN, DATA READ INTERN, DATA READ EXTERN, ADRESSPOINTER WRITE INTERN, ADRESSPOINTER WRITE EXTERN, ADRESSPOINTER READ INTERN, ADRESSPOINTER READ EXTERN, PROGRAMMPOINTER WRITE INTERN, PROGRAMMPOINTER WRITE EXTERN, PROGRAMMPOINTER READ INTERN, PROGRAMMPOINTER READ EXTERN, STACKPOINTER WRITE INTERN, STACKPOINTER WRITE EXTERN, STACKPOINTER READ INTERN, STACKPOINTER READ EXTERN, PUSH, POP, PROGRAMMPOINTER INCREMENT ausgibt und im Laufe des Zellementbetriebs zumindest ei nige, insbesondere alle der oben genannten Steuerbefehle wie erforderlich ausgibt.
Description:
Titel : Rekonfigurierbare Sequenzerstruktur Beschreibung Die vorliegende Erfindung betrifft ein Zellelementefeld und ein Verfahren zum Betrieb desselben. Damit befaßt sich die vorliegende Erfindung insbesondere mit rekonfigurierbaren Da- tenverarbeitungsarchitekturen.

Unter einer rekonfigurierbaren Architektur werden u. a. Bau- steine (VPU) verstanden, die eine Vielzahl in Funktion und/oder Vernetzung im Betrieb veränderliche Elemente aufwei- sen. Zu den Elementen können arithmetische Logikeinheiten, FPGA-Bereiche, Ein-Ausgabezellen, Speicherzellen, analoge Baugruppen usw. gehören. Bausteine dieser Art sind beispiels- weise unter der Bezeichnung VPU bekannt. Diese umfaßt typisch als PAEs bezeichnete ein-oder mehrdimensional angeordnete arithmetische und/oder logische und/oder analoge und/oder speichernde und/oder vernetzende Baugruppen und/oder kommuni- kative periphere Baugruppen (IO), die direkt oder durch einen oder mehrere Bussysteme miteinander verbunden sind. Die PAEs sind in beliebiger Ausgestaltung, Mischung und Hierarchie an- geordnet, wobei die Anordnung als PAE-Array oder kurz PA be- zeichnet wird. Es kann dem PAE-Array eine konfigurierende Einheit zugeordnet sein. Prinzipiell sind neben VPU-Bau- steinen auch systolische Arrays, neuronale Netze, Mehrprozes- sorsysteme, Prozessoren mit mehreren Rechenwerken und/oder logischen Zellen, Vernetzungs-und Netzwerkbausteine wie Crossbar-Schaltung usw. bekannt, genauso wie FPGAs, DPGAs, Transputer usw.

Akte: @@@@@@/@@@@@@ Es wird darauf hingewiesen, dass wesentliche Aspekte der VPU- Technik z. B. in den folgenden Schutzrechten desselben Anmel- ders sowie den zugehörigen Nachanmeldungen zu den aufgeführ- ten Schutzrechten beschrieben sind : 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, DE 102 06 856.9, 60/317,876, DE 102 02 044.2, DE 101 29 237.6-53, DE 101 39 170.6.

Es sei darauf hingewiesen, dass die vorgenannten Dokumente zu Offenbarungszwecken insbesondere hinsichtlich Besonderheiten und Details der Vernetzung, Konfiguration, Ausgestaltung von Architekturelementen, Triggerverfahren usw. eingegliedert sind.

Die Architektur hat beachtliche Vorteile gegenüber herkömmli- chen Prozessorarchitekturen, soweit damit Datenverarbeitung in einer Art und Weise erfolgt, die hohe Anteile an paralle- len und/oder vektoriellen Datenverarbeitungsschritten be- sitzt. Die Vorteile der Architektur gegenüber anderen Prozes- sor-, Coprozessor-oder generell Datenverarbeitungseinheiten werden jedoch geringer, wenn sich die Vorteile der Vernetzung und der gegebenen prozessorarchitektonischen Besonderheiten nicht mehr in vollem Umfange realisieren lassen.

Dies ist besonders dann der Fall, wenn Datenverarbeitungs- schritte abzuarbeiten sind, die herkömmlich am besten auf Se- quenzer-Strukturen abgebildet werden können. Es ist wün-

schenswert, die rekonfigurierbare Architektur derart auszuge- stalten und zu verwenden, dass auch typisch mit Sequenzen besonders gut abzuarbeitende Datenverarbeitungsschritte be- sonders schnell und effizient abgearbeitet werden können.

Die Aufgabe der vorliegenden Erfindung besteht darin, Neues für die gewerbliche Anwendung bereitzustellen.

Die Lösung dieser Aufgabe wird unabhängig beansprucht. Bevor- zugte Ausführungsformen finden sich in den Unteransprüchen.

Gemäß einem ersten wesentlichen Aspekt der Erfindung wird so- mit bei einem in Funktion und/oder Vernetzung insbesondere zur Laufzeit ohne Störung nicht rekonfigurierter Elemente re- konfigurierbaren Zellementefeld zur Datenverarbeitung mit insbesondere grobgranularen Funktionszellmitteln zur Ausfüh- rung algebraischer und/oder logischer Funktionen und Spei- cherzellmitteln, um Information zu empfangen, abzuspeichern und/oder auszugeben, vorgeschlagen, dass Funktionszellen- Speicherzellenkombinationen gebildet sind, bei denen von den Funktionszellmitteln eine Steuerverbindung zu den Speicher- zellmitteln geführt ist. Diese Steuerverbindung dient dazu, die Adress-und/oder Datenein/ausgabe aus dem Speicher durch die zugeordnete Funktionszelle, typisch einer ALU-PAE, steu- erbar zu machen. So kann etwa angegeben werden, ob die näch- ste übertragene Information als Adresse oder als Daten behan- delt werden soll und ob ein Lese-und/oder Schreibzugriff er- forderlich ist. Diese Übertragung von Daten aus der Speicher- zelle beziehungsweise den Speicherzellmitteln, bei der es sich etwa um eine RAM-PAE handeln kann, auf die Funktions- zellmittel, bei denen es sich etwa um eine ALU-PAE handeln kann, erlauben dann, dass neue, von der ALU abzuarbeitende

Befehle in diese geladen werden können. Es sei darauf hinge- wiesen, dass Funktionszellmittel und Speicherzellmittel durch Integration in eine strukturelle Einheit zusammengefasst wer- den können. In einem solchen Fall ist es möglich, einen ein- zigen Busanschluss zu verwenden, um Daten in die Speicher- zellmittel und/oder die ALU einzuführen. Es können dann ge- eignete Eingangsregister und/oder Ausgangsregister vorgesehen sein und, falls gewünscht, hiervon verschiedene zusätzliche Daten-und/oder Konfigurationsregister als Speicherzellmit- tel.

Es sei auch erwähnt, dass es möglich ist, ein Zellelemente- feld aufzubauen, das eine Vielzahl unterschiedlicher Zellen bzw. Zellengruppen enthält, wobei bevorzugt mit den unter- schiedlichen Zellen Streifen oder dergleichen reguläre Muster vorgesehen werden, da diese sehr reguläre Anordnung ermög- licht, den hardwaretechnischen Aufbau und den Betrieb glei- chermaßen zu erleichtern. Bei einem solchen streifenartigen oder anderen regulären Aufbau aus einer geringen Mehrzahl an unterschiedlichen Zellelementen können Elemen- te mit integrierten Funktionszellmittel-Speicherzellmittel- kombinationen, das heisst Zellen, in denen Funktionszell-und Speicherzellmittel gemäß der Erfindung integriert sind, zen- tral im Feld vorgesehen werden, wo typisch nur wenige unter- schiedliche Programmschritte innerhalb einer Sequenzerstruk- tur abzuarbeiten sind, weil dies, wie erkannt wurde, für her- kömmliche Datenstromanwendungen sehr gute Ergebnisse gibt, während an den Feldrändern komplexere Sequenzerstrukturen aufgebaut werden können, bei denen etwa eine ALU-PAE, die ei- ne separate Einheit darstellt, neben einer separaten RAM-PAE und gegebenenfalls einer Reihe I/O-PAEs unter Verwendung bzw.

Anordnung entsprechender Steuerleitungen oder Verbindungen

derselben angeordnet werden können, weil dort oftmals mehr Speicher benötigt wird, etwa um im Feldzentralbereich des Zellelementefeldes erzeugte Ergebnisse zwischenzuspeichern und/oder für das Datenströmen durch dieses benötigte Daten vorabzulegen und/oder entsprechend aufzubereiten.

Wenn, etwa in der Feldmitte, Zellen vorgesehen werden, die Speicherzellmittel und Funktionszellmittel integrieren, so kann in diesen ein kleiner Speicher für verschiedene, von den Funktionzellmittel wie der ALU auszuführende Befehle vorgese- hen sein. Es ist hier insbesondere möglich, den Befehls-be- ziehungsweise Konfigurationsspeicher zu trennen von einem Da- tenspeicher, und es ist möglich, den Funktionsspeicher so groß auszubilden, dass alternativ eine von mehreren, bei- spielsweise zwei, unterschiedlichen Sequenzen abgearbeitet werden kann. Die jeweils abzuarbeitende Sequenz kann im An- sprechen auf in der Zelle generierte Ergebnisse und/oder in die Zelle von außen eingehende Steuersignale, wie Carry, Overflow-usw. Triggersignale erfolgen. Auf diese Weise wird diese Anordnung auch verwendbar für Verfahren der Wave- Rekonfiguration.

Es ist auf diese Weise möglich, lediglich durch Vorsehen ei- ner dedizierten und dediziert funktionszellenkontrollierten Steuerverbindung zwischen Funktionszelle bzw. Funktionszell- mittel und Speicherzelle bzw. Speicherzellmittel bereits mit nur zwei Elementen, die über geeignete Busse verbunden sind, eine Sequenzerstruktur in einem Zellelementefeld aufzubauen, ohne dass ansonsten weitere Maßnahmen und/oder bauliche Ver- änderungen erforderlich sind. In der Speicherzelle können Da- ten, Adressen, Programmschritte usw. in per se aus herkömmli- chen Prozessoren bekannter Weise abgelegt werden. Weil beide

Elemente auch in anderer Weise bei entsprechender Konfigura- tion einsetzbar sind, ergibt sich eine besonders effiziente Bauweise, die sowohl Sequenzerstrukturen als auch vektoriel- len und/oder parallelisierbaren Strukturen besonders gut an- paßbar ist. So können allein durch geeignete PAE-Ausgestal- tungen Parallelisierungen unterstützt werden, etwa durch das Vorsehen von in zwei unterschiedliche räumliche Richtungen arbeitende PAEs und/oder durch mit Datendurchschleuseregi- stern versehene Zelleinheiten.

Es ist einsichtig, dass durch die Verwendung von lediglich zwei Zellen in einem Zellelementefeld, nämlich der Funktions- zelle und der Informationsbereitstellungszelle eine Vielzahl von sequenzerartigen Strukturen in dem rekonfigurierbaren Zellelementefeld aufgebaut werden kann. Dies ist insofern vorteilhaft, als oftmals bei der Datenverarbeitung, etwa in einem multitaskingfähigen Betriebssystem, eine Reihe unter- schiedlicher und voneinander per se verschiedener Aufgaben abgearbeitet werden muß. Es können dann eine Vielzahl derar- tiger Aufgaben in einem einzigen Zellelementefeld effektiv gleichzeitig abgearbeitet werden. Die Vorteile für Echt- zeitanwendungen sind offensichtlich. Weiter ist es auch mög- lich, die einzelnen Sequenzerstrukturen, die in einem Zelle- lementefeld unter Vorsehung der erfindungsgemäßen Steuerver- bindung aufgebaut werden, mit unterschiedlichen Taktraten zu betreiben, etwa um den Stromverbrauch dadurch zu senken, dass Aufgaben mit geringerer Priorität langsamer abgearbeitet wer- den. Es ist überdies möglich, bei der Ausführung per se weit- gehend paralleler Algorithmen sequenzerartige Programmteile in dem Feld parallel oder vektoriell abzuarbeiten und umge- kehrt.

Typisch wird jedoch bevorzugt sein, dass sequenzerartige Strukturen im Zellelementefeld, seien es sequenzerartige Strukturen mit in einem durch Verbindung mit Nachbarzellen oder Bussen verbundenen Bereich oder seien es Kombinationen aus räumlich unterscheidbaren, separaten und auch separat verwendbaren Funktionszellelementen, wie ALU-PAEs und Spei- cherzellelementen wie RAM-PAEs, höher getaktet werden. Dies hat den Vorteil, dass sequenzielle Programmteile, die sich allenfalls sehr schlecht parallelisieren lassen, in einer allgemeinen Datenflussverarbeitung einsetzen lassen, ohne dass die Gesamtdatenverarbeitung beeinträchtigt wird. Bei- spiele hierfür sind etwa gegeben durch eine HUFFMANN-Co- dierung, die wesentlich besser sequenziell als parallel abar- beitbar ist und die zugleich für Anwendungen wie die MPEG4- Codierung eine wichtige Rolle spielt, wobei aber die wesent- lichen anderen Teile der MPEG4-Codierung gut parallelisierbar sind. Es wird dann eine parallele Datenverarbeitung für die meisten Teile eines Algorithmus verwendet und ein sequenziel- ler Abarbeitungsblock darin vorgesehen. Typisch wird eine Er- höhung der Taktfrequenz im Sequenzerbereich um einen Faktor 2 bis 4 schon ausreichend sein.

Es sei erwähnt, dass an Stelle einer streifenartigen Anord- nung unterschiedlicher Zellelemente auch eine andere, insbe- sondere multidimensionale Gruppierung gewählt werden kann.

Das Zellelementefeld mit den in Funktion und/oder Vernetzung konfigurierbaren Zellen kann einsichtigerweise einen Prozes- sor, einen Coprozessor und/oder einen Mikrocontroller bilden, bzw. eine parallele Vielzahl oder Kombinationen derselben.

Die Funktionszellen sind typisch als arithmetische Logikein- heiten gebildet, wobei sie insbesondere grobgranulare Elemen- te darstellen, die aber z. B. mit einer feingranularen State- machine versehen sein können. In einem besonders bevorzugten Ausführungsbeispiel handelt es sich bei den ALUs um sogenann- te erweiterte ALUs (EALU), wie diese in den früheren Anmel- dungen des vorliegenden Anmelders beschrieben wurden. Eine Erweiterung kann insbesondere die Steuerleitungskontrolle, Befehlsdekodiereinheit etc. umfassen, soweit erforderlich.

Die Speicherzellen können Daten und/oder Informationen flüch- tig und/oder nichtflüchtig speichern. Wenn in den Speicher- zellen abgelegte Informationen, seien es Programmschritte, Adressen für einen Zugriff auf Daten oder registerartig bzw. heap-artig abgelegte Daten als flüchtige Daten abgelegt sind, so kann eine vollständige Rekonfiguration während des Betrie- bes erfolgen. Alternativ ist es möglich, nichtflüchtige Spei- cherzellen vorzusehen. Die nichtflüchtigen Speicherzellen können etwa als EE-Prom-Bereich und dergleichen vorgesehen werden, in die ein rudimentäres Bios-Programm abgelegt wird, das bei Inbetriebnahme der Anordnung auszuführen ist. Auf diese Weise kann ohne weitere Bauteile eine Inbetriebnahme einer Datenverarbeitungseinrichtung erfolgen. Ein nichtflüch- tiger Datenspeicher kann auch dann vorgesehen werden, wenn aus Kosten-und/der Raumgründen beschlossen wird, dass immer wieder dieselben Programmteile auszuführen sind, wobei auch unter solch festen Programmteilen, etwa nach Art der WAVE- Rekonfiguration, im Betrieb gewechselt werden kann. Die Mög- lichkeiten, derartige nichtflüchtige Speicher vorzusehen und zu verwenden, sind Gegenstand anderer Schutzrechte des Anmel- ders. Es ist möglich, sowohl flüchtige als auch nichtflüchti- ge Daten in den Speicherzellen abzuspeichern, etwa um

ein Bios-Programm fest abzulegen und die Speicherzelle den- noch für andere Zwecke nutzen zu können.

Die Speicherzelle ist bevorzugt so ausgebildet, dass sie eine hinreichende Vielzahl von zu verarbeitenden Daten und/oder abzuarbeitenden Programmteilen speichern kann. Es sei dabei darauf hingewiesen, dass diese Programmteile sowohl als Pro- grammschritte ausgebildet sein können, die jeweils vorgeben, was eine einzelne, insbesondere die zugeordnete PAE, also insbesondere die die Speicherzelle steuernde Funktionszelle, im nächsten Schritt zu tun hat, als auch ganze Konfiguratio- nen für Feldbereiche oder andere Felder beinhalten kann. In einem solchen Fall ist es ohne weiteres möglich, dass die aufgebaute Sequenzerstruktur einen Befehl ausgibt, auf Grund dessen eine Rekonfiguration von Zellelementefeldbereichen er- folgt. Damit arbeitet die diese Konfiguration auslösende Funktionszelle dann zugleich als Ladelogik. Es sei darauf hingewiesen, dass die Konfiguration von anderen Zellen wie- derum dergestalt erfolgen kann, dass dort eine sequenzerarti- ge Datenverarbeitung erfolgt und es ist in diesen Feldern wiederum möglich, andere Zellen im Verlauf der Programmarbei- tung zu konfigurieren bzw. rekonfigurieren. Damit ergibt sich ein iteratives Konfigurieren von Zellelementebereichen und es ist ein Einschachteln von Programmen mit Sequenzer-und Pa- rallel-Strukturen möglich, die ähnlich ineinander geschach- telt sind wie eine Babuschka. Es sei darauf hingewiesen, dass hier insbesondere durch Ein-Ausgabezellen ein Zugriff auf weitere Zellelementefelder außerhalb eines einzelnen inte- grierten Bausteines erfolgen kann, was die Gesamtrechenlei- stung massiv erhöhen kann. Es ist insbesondere möglich, bei Auftreten von Konfigurationen in einem Codeteil einer in ein Zellelementefeld hineinkonfigurierten Sequenzerstruktur gege-

benenfalls entweder die Konfigurationsanforderungen auf einem zugewiesenen Zellelementefeld, das von der jeweiligen Sequen- zerstruktur allein verwaltet wird, durchzuführen und/oder es können derartige Anforderungen an eine Konfigurations- Mastereinheit abgegeben werden, um sicherzustellen, dass eine gleichmäßige Belegung aller Zellelementefelder erfolgt. Es ergibt sich somit quasi ein Unterprogrammaufruf durch Überga- be von erforderlichen Konfigurationen an Zellen oder Ladelo- giken. Dies wird für sich als schutzwürdig angesehen. Es sei auch darauf hingewiesen, dass die Zellen, sofern sie selbst für die Konfiguration anderer Zellelementfeldbereiche Zustän- digkeit besitzen, mit hard-oder softwareartig implementier- ten FILMO-Strukturen und dergleichen zur Sicherstellung einer ordnungsgemäßen Rekonfiguration versehen sein können. Auf die Möglichkeit, die Speicherzellen während der Abarbeitung von Befehlen derart zu beschreiben, dass sich der abzuarbeitende Code bzw. das abzuarbeitende Programm ändert, sei hingewie- sen. In einer besonders bevorzugten Variante ist diese Art der Selbstmodifikation (SM) aber durch eine entsprechende Steuerung über die Funktionszelle unterdrückt.

Es ist möglich, dass die Speicherzelle abgespeicherte Infor- mation auf die Ansteuerung der sie steuernden Funktionszelle hin direkt oder indirekt auf einen zur Funktionszelle führen- den Bus gibt. Die indirekte Ausgabe kann insbesondere dann erfolgen, wenn beide Zellen benachbart liegen und die durch Ansteuerung angeforderte Information an die ALU-PAE über ein Bussegment eintreffen muß, das nicht unmittelbar mit dem Aus- gang der Speicherzelle verbunden werden kann. In einem sol- chen Fall kann die Speicherzelle Daten auf dieses Bussystem insbesondere über Rückwärtsregister (Backward-Register) aus- geben. Es ist daher bevorzugt, wenn zumindest eine von Spei-

cherzelle und/oder Funktionszelle ein solches Backward- Register aufweist, welches im Informationsweg zwischen Spei- cherzelle und Funktionszelle angeordnet werden kann. Diese Register brauchen in einem solchen Fall nicht zwingend mit weiteren Funktionalitäten versehen sein, obwohl dies etwa bei Anforderung von Daten aus der Speicherzelle für die weitere Verarbeitung, entsprechend einem herkömmlichen LOAD-Befehl eines typischen Mikroprozessors, zur Veränderung der Daten noch vor dem Hineinladen in die PAE ohne weiteres denkbar ist, um z. B. einen Befehl LOAD++ zu realisieren. Die Daten- durchleitung durch in umgekehrter Richtung arbeitende ALUs und dergleichen aufweisende PAEs sei erwähnt.

Die Speicherzelle wird bevorzugt dazu angeordnet sein, Infor- mationen von der sie steuernden Funktionszelle zu empfangen, wobei auch weiter ein Informations. einspeichern über eine Ein- Ausgabezelle und/oder eine die Speicherzelle nicht steuernde Zelle möglich ist. Insbesondere dann, wenn Daten von einer Ein-Ausgabezelle in die Speicherzelle geschrieben werden sol- len,-ist es bevorzugt, wenn auch diese Ein-Ausgabezelle (I/O-- PAE) von der Funktionszelle gesteuert wird. Dabei kann etwa die Adresse, bei welcher eine in die Speicherzelle zu schrei- bende oder gegebenenfalls auch direkt an die Funktionszelle (PAE) übertragene Information zu lesen ist, an die I/O-PAE von der ALU-PAE übermittelt werden. Es sei in diesem Zusam- menhang darauf hingewiesen, dass diese Adresse über eine Adreßübersetzungstabelle (Adresstranslationtable), einen Adresstranslationbuffer oder eine MMU-artige Struktur in der I/O-PAE festgelegt werden kann. Es ergeben sich in einem sol- chen Fall die vollen Funktionalitäten typischer Mikroprozes- soren. Dass sich auch eine I/O-Funktionalität mit einem Funk- tionszellmittel, einem Speicherzellmittel und/oder einer

Funktionszellmittel-Speicherzellmittel-Kombination integrie- ren lässt, sei erwähnt.

Der Kombination von Funktionszellen und Speicherzellen, sei es als integrierte Funktionszellen-und Speicherzellen-Kom- bination oder als aus separaten Einheiten aufgebaute Funk- tionszellen-und Speicherzellen-Kombination ist demnach in einer bevorzugten Variante zumindest ein Ein-Ausgabe-Mittel zugeordnet, mit welchem dann an eine externe Einheit, eine andere Funktionszelle, Funktionszellen-Speicherzellen- Kombination und/oder Speicherzellen Information gesandt und/oder von dieser empfangen werden kann.

Die Ein-Ausgabe-Einheit wird dabei bevorzugt gleichfalls zum Empfang von Steuerbefehlen aus der Funktionszelle bzw. vom Funktionszellmittel ausgebildet.

In einer bevorzugten Variante ist die Steuerverbindung dazu ausgebildet, zumindest einige und bevorzugt alle der nachfol- genden Befehle zu übertragen : OPCODE FETCH, DATA WRITE INTERN, DATA WRITE EXTERN, DATA READ INTERN, DATA READ EXTERN, ADRESSPOINTER WRITE INTERN, ADRESSPOINTER WRITE EXTERN, ADRESSPOINTER READ INTERN, ADRESSPOINTER READ EXTERN, PROGRAMMPOINTER WRITE INTERN, PROGRAMMPOINTER WRITE EXTERN,

PROGRAMMPOINTER READ INTERN, PROGRAMMPOINTER READ EXTERN, STACKPOINTER WRITE INTERN, STACKPOINTER WRITE EXTERN, STACKPOINTER READ INTERN, STACKPOINTER READ EXTERN, PUSH, POP, PROGRAMMPOINTER INCREMENT.

Dies kann durch eine entsprechende Bitbreite der Steuerlei- tung und eine zugeordnete Decodierung bei den Empfängern er- folgen. Die jeweils erforderlichen Steuer-und Decodiermittel können problemfrei und kostengünstig vorgesehen werden. Wie ersichtlich, ergibt sich mit den Befehlen eine praktisch vollständige Sequenzerfähigkeit der Anordnung. Dass auf diese Weise eine Allgemeinzweckprozessordatenverarbeitungseinheit erhalten wird, sei erwähnt.

Die Anordnung wird typisch so gewählt sein, dass die Funkti- onszelle als alleiniger Master auf die Steuerverbindung und/oder ein als Steuerverbindung dienendes Bussegment bzw.

Bussystem zugreifen kann. Es ergibt sich somit eine Anord- nung, bei der die Steuerleitung als Command-Leitung wirkt, wie sie in herkömmlichen Prozessoren vorgesehen ist.

Die Funktionszelle und die Speicherzelle bzw. I/O-Zelle sind bevorzugt benachbart angeordnet. Unter benachbart kann dabei wie bevorzugt verstanden werden, dass die Zellen unmittelbar nebeneinander angeordnet sind. Unmittelbar bedeutet insbeson- dere eine Kombination solcher Zellen zu integrierten Einhei- ten, die wiederholt auf dem Zellelementefeld bzw. als Teil

desselben vorgesehen werden, um das Feld zu bilden. Es kann damit eine integrale Einheit aus Speicher-und Logikzellen gemeint sein. Alternativ befinden sie sich zumindest dicht beieinander. Die Anordnung der Funktions-und Speicherzellen in integrierter bzw. enger Nachbarschaft zueinander sorgt da- für, dass keine, jedenfalls keine signifikanten Latenzzeiten zwischen Ansteuerung und Dateneingang der angeforderten In- formation in der Funktionszelle auftreten, nur weil die Ver- bindungen zwischen den Zellen zu lang sind. Dies sei als"di- rekt"verstanden. Müssen Latenzzeiten berücksichtigt werden, so kann auch ein Pipelining in den Sequenzerstrukturen vorge- sehen werden. Dies wird besonders wichtig bei sehr hoch ge- takteten Anordnungen. Es sei darauf hingewiesen, dass es ohne weiteres möglich ist, entsprechend hochfrequent getaktete Zelleinheiten vorzusehen, die wie im Stand der Technik per se bekannt, auch entsprechend schnell auf geeignete Speicherzel- len zugreifen können. Auch in einem solchen Fall, etwa wenn per se bekannte Architekturelemente für die Funktionszellen verwendet werden, wird gleichzeitig eine Rekonfigurierbarkeit des Funktionszellenelementes und der zugehörigen Vernetzungen vorzusehen sein. In einer besonders bevorzugten Variante sind die Funktionszellen, die Informationsbereitstellungszellen wie Speicherzellen, I/O-Zellen und dergleichen multidimensio- nal angeordnet, insbesondere nach Art einer Matrix bzw. auf Gitterpunkten eines eindimensionalen Gitters usw. Wenn eine regelmäßige Struktur vorliegt, wie dies dort der Fall ist, wird einer Zelle typisch aus einer ersten Reihe Information, das heißt Operanden, Konfigurationen, Triggersignale usw. zu- geführt, während in einer darunterliegende Reihe Daten, Trig- gersignale und andere Informationen abgegeben werden. In ei- nem solchen Fall wird es bevorzugt sein, wenn die Zellen in ein und derselben Reihe liegen und es kann dann der Informa-

tionstransfer aus der Informationsbereitstellungszelle in den erforderlichen Eingang der Funktionszelle über ein Backward- Register erfolgen. Die Möglichkeit, die Register für Pipeli- ning zu benutzen, sei erwähnt.

Es wird weiter Schutz beansprucht für ein Verfahren zum Be- trieb eines Zellelementefeldes, insbesondere multidimensiona- len Zellelementefeldes mit Funktionszellen zur Ausführung al- gebraischer und/oder logischer Funktionen und Informationsbe- reitstellungszellen, insbesondere Speicherzellen und/oder Ein-Ausgabezellen zum Empfangen und/oder Ausgeben von Infor- mationen und/oder Speichern derselben, wobei zumindest eine der Funktionszellen Steuerbefehle an zumindest eine Informa- tionsbereitstellungszelle ausgibt, dort im Ansprechen auf die Steuerbefehle Information für die Funktionszelle bereitge- stellt wird und die Funktionszelle dazu ausgebildet ist, die weitere Datenverarbeitung im Ansprechen auf die bereitge- stellte Information durchzuführen, um so zumindest zeitweise sequenzerartig Daten zu verarbeiten.

Es wird also in einem rekonfigurierbaren Feld durch die Aus- gabe der Steuerbefehle an die Speicherzelle einer Sequenzer- struktur eine sequenzerartige Datenverarbeitung ermöglicht.

Die Befehle, die als Steuerbefehle von der Funktionszelle ausgegeben werden können, ermöglichen dabei einen sequenzer- artigen Betrieb, wie er aus herkömmlichen Prozessoren bekannt ist. Es sei darauf hingewiesen, dass es ohne weiteres möglich ist, nur Teile der oben genannten Befehle zu implementieren und dennoch eine vollständig sequenzerartige Datenverarbei- tung zu gewährleisten.

Die Erfindung wird im folgenden und beispielsweise anhand der Zeichnungen beschrieben. In dieser ist gezeigt durch : Fig. 1 ein erfindungsgemäßes Zellelementefeld, Fig. 2a ein Detail hiervon, Fig. 2b, c das Detail von Fig. 2a während verschiedener Datenverarbeitungszeiten, Fig. 3 eine alternative Ausführungsform des Details von Fig. 2, Fig. 4 eine besonders bevorzugte Variante des Details, Fig. 5 ein Beispiel für die Funktionsfaltung auf eine Funktionszellen-Speicherzellen-Kombi- nation der Erfindung, Fig. 6a ein Beispiel einer sequenziell-parallelen Datenverarbeitung, Fig. 6b ein besonders bevorzugtes Ausführungsbeispiel der Erfindung, Fig. 7 eine Alternative zu einer Funktionsfaltungs- einheit.

Nach Fig. 1 umfaßt ein allgemein mit 1 bezeichnetes Zellele- mentefeld zur Datenverarbeitung 1 Funktionszellmittel 2 zur Ausführung von arithmetischen und/oder logischen Funktionen sowie Speicherzellmittel 3, um Informationen zu empfangen, abzuspeichern und/oder auszugeben, wobei eine Steuerverbin- dung 4 von Funktionszellen 2 zu den Speicherzellen 3 geführt ist.

Das Zellelementefeld 1 ist in der Vernetzung der Elemente 2, 3,4 frei konfigurierbar, und zwar ohne den laufenden Betrieb nicht neu zu konfigurierender Zellelementeteile zu stören.

Dabei können die Verbindungen konfiguriert werden, indem Bus- systeme 5 wie erforderlich geschaltet werden. Weiter sind die Funktionszellen 2 in ihrer jeweiligen Funktion konfigurier- bar. Bei den Funktionszellen handelt es sich um arithmetische Logikeinheiten, die um bestimmte, Rekonfiguration ermögli- chende Schaltkreise erweitert sind, wie Statemachines, Schnittstellenbeschaltung zur Kommunikation mit der externen Ladelogik 6 usw. Auf die entsprechenden Voranmeldungen des Anmelders wird hingewiesen.

Die Zellelemente 2,3 des Zellelementefeldes 1 sind zweidi- mensional in Reihen und Spalten angeordnet, wobei jeweils ei- ne Speicherzelle 3 unmittelbar neben einer Funktionszelle 2 liegt und hier je Reihe drei Speicherzellen-Funktionszellen- Paare vorliegen, in denen die Funktions-und Speicherzellen jeweils über Steuerverbindungen 4 miteinander verbunden sind.

Die Funktions-und Speicherzellen 2,3, bzw. die Kombination dieser, weisen Eingänge auf, die mit dem Bussystem oberhalb der Reihe, in der sich die jeweiligen Zellelemente befinden, verbindbar sind, um Daten davon zu empfangen. Weiter weisen die Zellen 2,3 Ausgänge auf, die auf das Bussystem 5 unter- halb der Reihe Daten ausgeben. Wie noch erläutert werden wird, ist überdies jede Speicherzelle 3 mit einem Rück- wärtsregister (BW) versehen, durch welches Daten von dem Bus unterhalb einer Reihe auf den Bus oberhalb der jeweiligen Reihe durchgeschleust werden können.

Das Speicherzellmittel 3 weist zugleich bevorzugt wenigstens 3 Speicherbereiche auf, nämlich einen sogenannten Datenbe- reich, einen Programmspeicherbereich und eine Stackbereich usw. Es kann allerdings in anderen Varianten der Erfindung ausreichend sein, lediglich zwei Bereiche vorzusehen, nämlich

einen Datenspeicher und einen Programmspeicherbereich, die jeweils Teil eines Speicherzellmittels bilden können. Es ist insbesondere möglich, nicht einfach eine Trennung eines per se homogenen und hardwareseitig identischen Speichers in un- terschiedliche Bereiche vorzunehmen, sondern tatsächlich phy- sikalisch bzw. hardwaretechnisch getrennte Speicherbereiche vorzusehen. Dabei kann insbesondere auch eine Anpassung der Speicherbreite und/oder Tiefe an jeweilige Erfordernisse vor- gesehen werden. Bei Auslegung eines Speichers dergestalt, dass er im Betrieb einen Programmbereich und einen Datenbe- reich aufweist, wird es bevorzugt sein, diesen Speicher bzw.

Speicherbereich für den gleichzeitigen Zugriff auf Daten-und Programmspeicherbereiche auszubilden, etwa als Dual-Port- Memory. Es kann auch möglich sein, eng angekoppelte Speicher- bereiche, insbesondere innerhalb einer Speicherzellmittel- Funktionszellmittel-Kombination, die zu einem integrierten Bereich gebildet ist, als reinen Cache-Speicher vorzusehen, in den insbesondere Daten aus entfernteren Speicherplätzen für den schnellen Zugriff während der Datenverarbeitung vor- beladen werden.

Mit Ausnahme der Steuerverbindungen 4 und der zugeordneten Schaltungen innerhalb der Funktionszellen (ALU in Fig. 2) bzw. Speicherzellen (RAM in Fig. 2) handelt es sich bei dem Zellelementefeld zur Datenverarbeitung von Fig. 1 um ein her- kömmliches Zellelementefeld, wie es bei rekonfigurierbaren Datenverarbeitunsanordnungen, beispielsweise einer VPU ent- sprechend der XPP-Technologie des Anmelders gebräuchlich und bekannt ist. Insbesondere kann das Zellelementefeld von Fig.

1 wie bekannt betrieben werden, weist also entsprechende Be- schaltungen zur Wave-Rekonfiguration, zum Debugging, Übertra- gen von Triggersignalen etc. auf.

Erste Besonderheiten des Zellelementefeldes der vorliegenden Erfindung ergeben sich aus der Steuerverbindung 4 und der zu- gehörigen Beschaltung, die nachfolgend näher beschrieben wer- den wird mit Bezug auf die Fig. 2a-c. Es sei dabei erwähnt, dass während in Fig. 1 eine Steuerverbindung 4 stets von ei- nem weiter links liegende Funktionszellenelement zu einer weiter rechts liegenden Speicherzelle geführt ist, und zwar nur und genau zu einer solchen Speicherzelle, es einleuchten- derweise möglich ist, auch für die Steuerleitungen eine kon- figurierbare Vernetzung vorzusehen, um entweder an anderer Stelle liegende Speicherzellen anzusprechen und/oder um ggf. mehr als eine Speicherzelle ansprechen zu können, wenn etwa in großem Umfange Speicherbedarf für Informationen besteht, die von den Speicherzellen zu empfangen, abzuspeichern und/oder auszugeben ist. Aus Gründen der Übersichtlichkeit wird aber in Fig. 1 und 2 lediglich auf fest vorgesehene ein- zelne Steuerverbindungen Bezug genommen, was das Verständnis der Erfindung wesentlich erleichtert. Die Steuerverbindung ist im übrigen erforderlichenfalls durch herkömmliche Leitun- gen, entsprechende Protokolle vorausgesetzt, substituierbar.

In Fig. 2 ist die Funktionszelle 2 als ALU und die Funktions- zelle 3 als RAM bezeichnet. Oberhalb der Reihe, in der die Zellen liegen, verläuft der Bus 5a, der das bereits erwähnte Backward-Register 3a mit den Eingängen 3b der Speicherzelle und 2b der ALU verbindet. Das unterhalb der Reihe verlaufende Bussystem ist mit 5b bezeichnet und es sind von dem Bussystem 5a, 5b nur die relevanten Segmente gezeichnet. Es ist erkenn- bar, dass das Bussystem 5b alternativ Daten erhält aus einem Ausgang 2c der ALU 2, einem Ausgang 3c des RAM 3 und dass es Daten in den Eingang 3al des Backward-Registers führt.

Die ALU 2 weist zugleich weitere Ein-und Ausgänge 2al, 2a2 auf, die auf andere Bussegmente geschaltet sein können und über welche die ALU Daten wie Operanden empfängt bzw. Ergeb- nisse ausgibt.

Die Steuerverbindung 4 befindet sich dauerhaft unter der Kon- trolle der erweiterten Schaltkreise der ALU und stellt hier eine Verbindung dar, über welche eine Vielzahl von Bits über- tragen werden kann. Die Breite der Steuerverbindung 4 ist da- bei so gewählt, dass zumindest die folgenden Steuerbefehle an die Speicherzelle übertragen werden können : DATA WRITE, DATA READ, ADRESSPOINTER WRITE, ADRESSPOINTER READ, PROGRAMMPOIN- TER WRITE, PROGRAMMPOINTER READ, PROGRAMMPOINTER INCREMENT, STACKPOINTER WRITE, STACKPOINTER READ, PUSH, POP. Die Spei- cherzelle 3 weist zugleich wenigstens drei Speicherbereiche auf, nämlich einen sog. Stack-Bereich, einen Heap-Bereich und einen Programm-Bereich. Jedem Bereich ist dabei ein eigener Zeiger zugeordnet, über den bestimmt ist, auf welchen Bereich des Stacks, des Heaps und des Programmbereiches jeweils le- send oder schreibend zugegriffen wird.

Der Bus 5a wird im Zeitmultiplex gemeinsam von den Einheiten 2 und 3 verwendet. Dies ist in den Fig. 2b, 2c angedeutet. So ist in Fig. 2b eine Situation gezeigt, in welcher aus dem Ausgang 2a2 der ALU-PAE Daten über das Backward-Register auf den Eingang der RAM-Zelle gesandt werden können, wohingegen der zeitgleich bestehenden, wenngleich nicht benutzten Ver- bindung zwischen dem Ausgang 3c des RAM zum Bus 5b und der Verbindung zwischen dem Ausgang des Backward-Registers BW zum Eingang 2b der ALU-PAE zum Zeitpunkt von Fig. 2b keine Bedeu- tung zukommt, weshalb diese gestrichelt angedeutet sind. In Fig. 2c ist hingegen ein Zeitpunkt gezeigt, zu welchem die

Speicherzelle 3 über ihren Ausgang 3c aus dem über Steuerlei- tung 4 bestimmten Speicherbereich Stack, Heap oder Program die Information über das Backward-Register an den Eingang 2b der ALU-PAE 2 speist, während der Ausgang der ALU-PAE 2c in- aktiv ist und am Eingang 3b der RAM-PAE kein Signal empfangen wird. Aus diesem Grund sind die entsprechenden Verbindungen strichpunktiert und somit als inaktiv dargestellt.

Innerhalb der RAM-Zelle 3 ist eine Schaltung 3d vorgesehen, in der die über die Steuerleitung 4 bzw. das Steuerleitungs- bussegment 4 empfangene Information decodiert wird.

Die Erfindung wird verwendet wie folgt : Zunächst empfängt die ALU 2 Konfigurationsinformation von ei- ner zentralen Ladelogik, wie im Stand der Technik bereits be- kannt. Die Informationsübertragung kann in per se bekannter Weise unter Verwendung des RDY/ACK-Protokolls und dergleichen geschehen. Auf die Möglichkeit, bei der Ladelogik einen FIL- MO-Speicher usw. vorzusehen, um eine ordnungsgemäße Konfigu- ration der Anordnung zu ermöglichen, wird hingewiesen.

Mit den Daten für die Konfiguration der ALU 2 wird zugleich eine Reihe von Daten aus der Ladelogik übertragen, die ein sequenzerartig abzuarbeitendes Programm bzw. Programmteil darstellt. Verwiesen wird hierzu nur beispielhaft auf Fig.

6a, bei welcher die HUFFMANN-Codierung als zentraler sequen- zieller Teil einer per se datenflussartig erfolgenden MPEG4- Codierung dargestellt ist. Die ALU gibt deshalb während ihrer Konfiguration auf der Leitung 4 einen entsprechenden Befehl aus, der den Programmzeiger zum Schreiben auf einen vorgege- benen Wert innerhalb des RAM setzt. Danach werden von der

Ladelogik bei der ALU empfangene Daten über den Ausgang 2c über den Bus 5bl und das Backward-Register 3a gespeist und gelangen von dort in den Eingang 3b der RAM-PAE 3. Von der Einheit 3d werden entsprechend des Steuerbefehls auf Steuer- leitung 4 dann Daten auf den angewiesenen Programmspeicher- platz geschrieben. Dies wiederholt sich, bis sämtliche, von der Ladelogik bei der Konfiguration empfangenen Programmteile in der Speicherzelle 3 abgelegt sind. Wenn dann die Konfigu- ration der ALU beendet ist, wird diese durch Ausgabe der ent- sprechenden Befehle auf der Steuerleitung 4 die nächsten, von ihr sequenzerartig abzuarbeitenden Programmschritte anfordern und über den Ausgang 3c, den Bus 5b, das Backward-Register der RAM-PAE 3 und den Bus 5a an ihrem Eingang empfangen. Wäh- rend der Programmabarbeitung können dabei Situationen auftre- ten, bei denen Sprünge innerhalb des Programmspeicherberei- ches erforderlich sind, Daten in die ALU-PAE aus der RAM-PAE geladen werden, Daten im Stack abgelegt werden müssen usw.

Die diesbezügliche Kommunikation zwischen ALU-PAE und RAM-PAE erfolgt über die Steuerleitung 4, so dass die ALU-PAE zu je- dem Zeitpunkt die Dekodierung durchführen kann. Überdies kön- nen auch, wie bei einem herkömmlichen Mikroprozessor, Daten aus einem Stack oder einem anderen RAM-Speicherbereich emp- fangen werden und es können überdies Daten von außerhalb als Operanden in der ALU-PAE empfangen werden.

Es findet dabei die Abarbeitung der Programmsequenz statt, die in den RAM-PAE durch die Ladelogik vorkonfiguriert wurde.

In der ALU-PAE wird dabei zugleich, wie per se erforderlich, eine Befehlsdecodierung vorgenommen. Dies geschieht mit den per se gleichen Schaltkreisen, die schon für die Decodierung der von der Ladelogik erhaltenen Befehle verwendet werden.

Es wird über die ALU zu jedem Zeitpunkt die Steuerleitung 4 kontrolliert, dass die RAM-Zelle stets genau die Art des Speicherzugriffes befolgt, die von der ALU vorgegeben ist.

Auf diese Weise ist sichergestellt, dass ungeachtet der Zeit- multiplex-Benutzung der Buselemente 5a, b jederzeit den in der Sequenzerstruktur vorhandenen Elementen vorgegeben ist, ob auf den Bussen Adressen für zu holende und/oder zu schrei- bende Daten oder Codes liegen oder ob und gegebenenfalls wo- hin Daten zu schreiben sind etc.

Die in Bezug auf Fig. 2 gezeigte Anordnung kann auf unter- schiedliche Arten erweitert oder verändert werden. Besonders relevant sind die in Fig. 3,4 und 6 dargestellten Varianten.

Nach Fig. 3 ist zur Verbindung von oberen und unteren Bussen nicht nur ein Backward-Register an der RAM-PAE vorgesehen, sondern es sind auch ein Vorwärts-Register an der RAM-PAE und Vorwärts-und Rückwärts-Register an der ALU-PAE vorhanden.

Diese können, wie durch die Mehrfach-Pfeile angedeutet, dazu dienen, von anderen Einheiten, wie externen Hosts, externen Peripherie-Geräten wie Festplatten, Hauptspeicher und der- gleichen und/oder von anderen Sequenzerstrukturen, PAEs, RAM- PAEs etc. Daten zu empfangen und an diese zu senden. Wenn ein entsprechender Anforderungsbefehl für neue Programmteile aus der Sequenzerstruktur, die durch die ALU-PAE und die RAM-PAE gebildet ist, abgesandt wird, ist es möglich, Programmblöcke in der Sequenzerstruktur abzuarbeiten, die weit größer sind als jene, die in der RAM-PAE speicherbar sind. Dies ist ins- besondere bei komplexen Datenverarbeitungsaufgaben, Sprüngen über weite Bereiche, insbesondere in Unterprogramme usw. von massivem Vorteil.

Eine noch weiter bevorzugte Variante ist in Fig. 4 gezeigt.

Hier kommuniziert die ALU-PAE nicht nur mit einer RAM-PAE, sondern zugleich mit einer Input/Output-PAE, die dazu ausge- bildet ist, eine Schnittstellenbeschaltung für die Kommunika- tion mit externen Bauelementen vorzusehen, wie Festplatten, anderen XPP-VPUs, fremden Prozessoren und Coprozessoren usw.

Wiederum ist die ALU-PAE die Einheit, die als Master für die als"CMD"bezeichnete Steuerverbindung arbeitet und wiederum werden die Busse in Multiplex-Weise verwendet. Auch hier kann eine Übertragung von Daten von dem Bus unterhalb der Reihe in den Bus oberhalb der Reihe durch das Backward-Register erfol- gen.

Die in Fig. 4 gezeigte Anordnung ermöglicht es, externe Zu- griffe auf nicht in der Speicherzelle RAM-PAE abspeicherbare Informationen besonders leicht zu gestalten und ermöglicht damit eine Anpassung der Sequenzerstruktur an bestehende, herkömmliche CPU-Technologien und deren Betriebsverfahren in noch stärkerem Maße insoweit, als nun in der Eingabe- Ausgabezelle Adressübersetzungsmittel, Speicherverwaltungs- einheiten (MMU-Funktionen) und dergleichen implementiert sein können. Die RAM-PAE kann hier etwa als Cache, insbesondere aber als vorgeladener Cache dienen.

Es sei darauf hingewiesen, dass mehrere Sequenzerstrukturen gleichzeitig in ein und dasselbe Feld hineinkonfiguriert wer- den können, dass Funktionszellen, Speicherzellen und ggf.

Ein-Ausgabezellen wahlweise für Sequenzerstrukturen und/oder eine für die XPP-Technologie herkömmliche Weise konfiguriert werden können und dass es ohne weiteres möglich ist, dass ei- ne ALU an eine andere ALU Daten ausgibt, die diese in einer Sequenzer-Weise konfigurieren und/oder zum Teil eines Zellel-

mentefeldes machen, mit dem eine bestimmte Konfiguration ab- gearbeitet wird. Auf diese Weise wird dann gegebenenfalls auch die Ladelogik entbehrlich.

Nach Fig. 6 sind zwei Ausführungsformen der Erfindung in ein und demselben Zellelementefeld vereinigt, nämlich an den Rän- dern aus jeweils zwei PAEs, nämlich je einer RAM-und einer ALU-PAE gebildete Sequenzer, und im Inneren mit integrierten RAM-ALU-PAEs als integrierten Funktionszellen-Speicherzellen- einheiten gebildete Sequenzer, wobei es möglich ist, nur ei- nen Teil der feldinneren Zellen als Kombinationszellen zu bilden.

Fig. 5 zeigt rechts (Fig. 5c) eine Funktionszell-Speicher- zellmittel-Kombination.

Gemäß Fig. 5c umfasst eine allgemein mit 50 bezeichnete Funk- tionszell-Speicherzellmittel-Kombination Busverbindungen bzw.

- eingänge 51 für den Eingang von Operanden-und Konfigurati- onsdaten sowie hier wie insbesondere bevorzugt möglich auch Triggersignale (nicht gezeigt) und dergleichen und einen Bu- ausgang 52 für die Ausgabe entsprechender Daten bzw. Signa- le. Innerhalb der Funktionszellmittel-Speicherzellmittel- Kombination ist eine ALU 53 vorgesehen, sowie Eingangsregi- ster RiO bis Ri3 für Operandendaten und Triggersignal-Ein- gangsregister (nicht gezeigt). Die Konfigurationsdatenregi- ster Rc0 bis Rc7 für Konfigurationsdaten bzw. ALU-Opcode- Daten, Resultatdatenregister RdO-R3 und Ausgangsregister RoO bis Ro3 für Resultate bzw. auszugebende Triggersignale.

Die Register Rc und Rd für die Konfigurationsdaten bzw. Op- code-Daten werden von der ALU 53 über Steuerbefehlsleitungen 4 angesteuert und speisen über geeignete Datenleitungen Daten

in die ALU bzw. empfangen aus dieser Resultatdaten. Es ist weiter möglich, vom Bus 51 bzw. den Eingangsregistern Ri In- formation direkt auf die Ausgangsregister bzw. den Bus 52 zu speisen, genau so wie aus den Datenregistern RdO Informatio- nen nicht nur an die ALU, sondern auch an die Ausgangsregi- ster gespeist werden können. Erforderlichenfalls können Ver- bindungen zwischen den Speicherbereichen Rd und Rc vorgesehen werden, etwa zur Realisierung der Möglichkeit selbstmodifi- zierenden Codes.

Der Konfigurationsdatenbereich Rc0 bis Rc7 weist eine Steue- rung auf, die es erlaubt, auf Teilen des Bereiches zu arbei- ten, und zwar insbesondere wiederholt zyklisch und/oder durch Sprünge. Dies erlaubt es, beispielsweise in einer ersten Teilkonfiguration Befehle, die in Rc0 bis Rc3 liegen, wieder- holt abzuarbeiten und, alternativ, etwa auf Eingang eines entsprechenden anderen Triggersignales über die Busleitung 51, Konfigurationsbefehle abzuarbeiten, die in Rc4 bis Rc7 liegen. Damit ist eine Ausführbarkeit einer Wave-Konfigu- ration gewährleistet. Es sei darauf hingewiesen, dass die ab- gelegten Konfigurationsbefehle typisch lediglich Anweisungen an die ALU darstellen, nicht jedoch vollständige Busverbin- dungen usw. definieren.

Die in Fig. 5 dargestellte, vorbeschriebene Einheit ist hier dazu ausgebildet, mit dem vierfachen Takt betrieben zu wer- den, wie eine normale PAE ohne Speicherzellmittel und/oder Steuersignalleitungen 4.

Um auf der so gebildeten Funktionsfaltungseinheit (function- folding-unit) sequenzerartig Daten in einem Datenfluss abzu- arbeiten, werden zu vorgegebenen Algorithmen zunächst Daten-

flussgraphen bzw. -bereiche gemäß Fig. 5a erstellt. Dann wer- den jeder in dem Graph abzuarbeitenden Operation Speicherbe- reiche Rc0 zugewiesen, die in den Graph-Teilbereich einströ- menden Daten internen Eingangsregistern RiO zugewiesen, die Zwischenresultate den Speichern RdO bis Rd3 zugewiesen und die Ausgabeergebnisse den Registern Ro. Mit dieser Zuweisung wird der Graphbereich auf der Function-Folding-Unit abarbeit- bar. Es erfolgt quasi eine Datenfluss-Sequenzer-Transforma- tion durch diese Hardware.

Es sei in diesem Zusammenhang erwähnt, daß es ganz allgemein bevorzugt sein wird, die Anordnung der vorliegenden Erfindung dergestalt zu verwenden, daß zunächst für ein Datenverarbei- tungsprogramm mit einem Compiler ein Datenfluß-und ein Kon- trollflußgraph erstellt wird, um dann eine entsprechende Par- titionierung vorzunehmen, wobei die durch die Partitionierung erhaltenen Stücke dann ganz oder teilweise zur Abarbeitung auf Sequenzer-Einheiten, wie sie z. B. gemäß der vorliegenden Erfindung gebildet sein können, abgearbeitet werden können.

Auf diese Weise wird quasi eine datenflußartige Datenverar- beitung bei Fortschreiten von einer Zelle zur nächsten er- zielt, aber innerhalb der Zelle (n) eine sequentielle Abarbei- tung bewirkt. Dies ist vorteilhaft, wenn aufgrund der sehr hohen Rechenleistung einer Anordnung die Taktfrequenz erhöht werden soll, um im Gegenzug die Fläche bzw. Anzahl der Zellen reduzieren zu können. Es sei hierbei auch erwähnt, daß es möglich ist, diesen transformationsartigen Übergang von einer einer rein datenflußartigen Daten-Verarbeitung zu einer Da- tenflußverarbeituhg mit lokalsequentiellen Teilen dergestalt vorzunehmen, daß ein iterativer Prozeß durchlaufen wird, etwa dergestalt, daß zunächst eine erste Partitionierung vorgenom- men wird und dann, sollte bei dem nachfolgen-

den"Zusammenrollen"der partitionierten Teile auf Sequen- zereinheiten festgestellt werden, daß zB die auf den Sequen- cern oder sonstigen Stellen verfügbaren Ressourcen nicht aus- reichen, eine andere, dies berücksichtigende Partitionierung und ein neuerliches"Zusammenrollen"vorzunehmen. Bei ge- wünscht intensiver Nutzung der Function-Folding-Units kann die Registeranzahl gegebenenfalls erhöht werden.

Es sei auch darauf hingewiesen, dass vorliegend die Register als Speicherzellmittel oder Teile derselben aufgefasst wer- den. Es ist einsichtig, dass durch Vergrößerung der Speicher- zellbereiche komplexere Aufgaben insbesondere auch sequenzer- artig angeordnet werden können, dass aber mit den angegebenen geringen Größen schon wesentliche Teile wichtiger Algorithmen abgearbeitet werden können und zwar mit hoher Effizienz.

Im vorliegenden Beispiel werden die Funktionsfaltungseinhei- ten bevorzugt so gebildet, dass Daten durch diese hindurch geschaltet werden können, ohne in der ALU verarbeitet zu wer- den. Dies kann ausgenutzt werden, um ein Pfadbalancing zu er- reichen, bei dem etwa Datenpakete über unterschiedliche Zwei- ge verarbeitet und dann (wieder) zusammengeführt werden müs- sen, ohne dass Forward-Register, wie sie aus der Architektur des Anmelders bekannt sind, eingesetzt werden müssen. Zu- gleich und/oder alternativ ist es möglich, die Datenfluss- richtung im Zellelementefeld durch entsprechende Ausrichtung von einigen Funktionszellmitteln, Speicherzellmitteln, Funk- tionsfaltungseinheiten nicht streng in eine Richtung laufen zu lassen, sondern in zwei entgegengesetzte Richtungen. So erhalten z. B. in jeder geraden Reihe die ALUs ihre Eingangs- operanden von der linken Seite her und in jeder ungeraden Reihe erhalten die ALUs ihre Eingangsoperanden von rechts.

Wenn Daten mehrfach durch das Feld gesandt werden müssen, ist eine solche Anordnung vorteilhaft, etwa bei ausgewalzten Schleifenkörpern usw. Die alternierende Anordnung muss dabei auch nicht streng sein. Für bestimmte Anwendungen können an- dere Geometrien gewählt werden. So könnte in der Feldmitte eine andere Laufrichtung als an den Rändern gewählt werden usw. Die Anordnung von Funktionszelleneinheiten gleicher Laufrichtung nebeneinander kann bezüglich der Busverbindungen vorteilhaft sein. Es sei darauf hingewiesen, dass die gegen- läufige Anordnung von mehreren gerichteten Funktionszellen in einem Feld und die sich damit ergebende verbesserte Datenver- arbeitung unabhängig vom Vorsehen einer Steuerleitung oder dergleichen als erfinderisch betrachtet wird.

Eine Alternative zu der in Fig. 5 gezeigten Funktionsfal- tungseinheit ist in Fig. 7 gezeigt.