DE10238173A1 - Rekonfigurationsdatenladeverfahren - Google Patents

Rekonfigurationsdatenladeverfahren Download PDF

Info

Publication number
DE10238173A1
DE10238173A1 DE10238173A DE10238173A DE10238173A1 DE 10238173 A1 DE10238173 A1 DE 10238173A1 DE 10238173 A DE10238173 A DE 10238173A DE 10238173 A DE10238173 A DE 10238173A DE 10238173 A1 DE10238173 A1 DE 10238173A1
Authority
DE
Germany
Prior art keywords
field
processing
data
element group
elements
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10238173A
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 DE10238173A priority Critical patent/DE10238173A1/de
Priority to JP2003538928A priority patent/JP4456864B2/ja
Priority to AU2002357982A priority patent/AU2002357982A1/en
Priority to EP02791644A priority patent/EP1472616B8/de
Priority to US10/490,081 priority patent/US8429385B2/en
Priority to PCT/EP2002/010572 priority patent/WO2003036507A2/de
Priority to AT02791644T priority patent/ATE533111T1/de
Priority to AU2003223892A priority patent/AU2003223892A1/en
Priority to PCT/DE2003/000942 priority patent/WO2003081454A2/de
Priority to US10/508,559 priority patent/US20060075211A1/en
Priority to EP03720231A priority patent/EP1518186A2/de
Priority to AU2003286131A priority patent/AU2003286131A1/en
Priority to US10/523,763 priority patent/US7657861B2/en
Priority to EP03776856.1A priority patent/EP1537501B1/de
Priority to PCT/EP2003/008081 priority patent/WO2004021176A2/de
Priority to US10/523,764 priority patent/US8156284B2/en
Priority to PCT/EP2003/008080 priority patent/WO2004015568A2/en
Priority to JP2005506110A priority patent/JP2005535055A/ja
Priority to EP03784053A priority patent/EP1535190B1/de
Priority to AU2003260323A priority patent/AU2003260323A1/en
Publication of DE10238173A1 publication Critical patent/DE10238173A1/de
Priority to US12/570,943 priority patent/US8914590B2/en
Priority to US12/571,173 priority patent/US8686549B2/en
Priority to US12/621,860 priority patent/US8281265B2/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 US12/947,167 priority patent/US20110238948A1/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betrieb eines multidimensionalen Feldes rekonfigurierbarer Elemente, worin Anordnungen von Gruppen zusammen datenhandhabender Elemente in vorbestimmter Weise während der Laufzeit zur Abarbeitung vorgegebener Aufgaben in das Feld hinein konfiguriert werden. Hierbei ist vorgesehen, daß für zumindest eine abzuarbeitende Aufgabe eine Mehrzahl von solchen Elementgruppenanordnungen im multidimensionalen Feld bestimmt wird, die zur Abarbeitung der vorgegebenen Aufgabe geeignet sind, für die Abarbeitung der vorgegebenen Aufgabe eine dann besonders geeignete Elementgruppenanordnung aus der Mehrzahl ausgewählt wird und die ausgewählte in das Feld hinein konfiguriert wird.

Description

  • Die vorliegende Erfindung betrifft das oberbegrifflich Beanspruchte und befasst sich somit mit dem Betrieb eines multidimensionalen Feldes rekonfigurierbarer Elemente wie bei rekonfigurierbaren Prozessoren, insbesondere mit Verfahren, die eine Übersetzung einer klassischen Hochsprache (PROGRAMM) wie Pascal, C, C++, Java etc. auf eine rekonfigurierbare Architektur ermöglichen.
  • Unter einer Architektur werden vorliegend Bausteine (VPU) mit wiederholt 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 spei chernden 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, Vernetzungs- und Netzwerkbausteine wie z.B. Crossbar-Schalter, ebenso wie bekannte Bausteine der Gattung FPGA, DPGA, XPUTER, etc..
  • Ein Problem bei rekonfigurierbaren Datenverarbeitungsarchitekturen besteht darin, dass oftmals nicht das gesamte multidimensionale Feld rekonfigurierbarer Elemente samt aller zwischen den Daten handhabenden Elemten vorgesehenen Bussystemen, Verbindungsleitungen usw. zur Umkonfiguration freigegeben wird, sondern vielmehr das Erfordernis besteht, eine neue Aufgabe einem kleinen Teilbereich des multidimensionalen Feldes zuzuordnen. Es ist überdies häufig nicht vorhersagbar, wie dieser Teilbereich beschaffen sein wird. Dies gilt insbesondere dann, wenn auf dem multidimensionalen Feld rekonfigurierbarer Elemente mehrere Aufgaben parallel abgearbeitet werden müssen, etwa im Wege des Multitasking, und/oder nicht vorhergesagt werden kann, wann dort, etwa bei Echtzeitanwendungen, welche Ressourcen zwecks Umkonfiguration freigegeben werden.
  • Prinzipiell besteht die Möglichkeit, einen Code, der auf dem multidimensionalen Feld rekonfigurierbarer Elemente abgearbeitet werden soll, zur Laufzeit zu übersetzen, also erst dann, wenn die Abarbeitung anderer Aufgaben schon begonnen hat, festzulegen, wie der als nächstes auszuführende Code bestimmten rekonfigurierbaren Elementen zuzuordnen ist, wie die Verbindung zwischen diesen laufen soll, welche Zwischenspeicherungen erforderlich sind usw. Es ist einsichtig, dass eine solche Vorgehensweise zur Übersetzung einen vergleichsweise hohen momentanen Datenverarbeitungsaufwand erfordert. Gerade in kritischen Rechnerapplikationen, die ein Höchstmaß an Rechenleistung erfordern, ist es gewünscht, für eine solche Übersetzung während der Laufzeit keine zusätzliche Rechenleistung zu verbrauchen. Es ist daher auch schon üblich, Programmcode vor Beginn des Programmes zu kompilieren und dann Teilkonfigurationen zu bestimmen, die jeweils in das Feld hinein konfiguriert werden, sobald dort entsprechende Ressourcen frei sind.
  • Ein Problem besteht allerdings darin, dass, gerade bei Echtzeitanwendungen, im Vorfeld nicht feststeht, wie die jeweils verfügbaren Ressourcen angeordnet sind. Dies betrifft einerseits die Funktionalität der zur Datenhandhabung verfügbaren Elemente, in die hinein konfiguriert werden könnte, sofern nicht alle Daten handhabenden Elemente dieselbe Funktion besitzen. So wäre denkbar, in einem multidimensionalen Feld rekonfigurierbarer Elemente verschiedene Zellen mit Rechenwerken auszustatten, die für Fließkomma-Berechnungen ausgelegt sind, Elemente vorzusehen, die lediglich Bool'sche Daten handhaben, Elemente, die über zugeordnete Speicher verfügen, Elemente, mit oder in denen Sequenzer vorgesehen werden können usw. Hier ist eine Ausführung mit Vorkompilierung darauf angewiesen, entweder mit der Umkonfiguration zu warten, bis genau jene Zellen zur Verfügung stehen, die die in der Vorkompilierung festgelegten Funktionen und Anordnungen besitzen. Auch muß bei der Vorkompilierung zudem der kleinste, allen Zellen gemeinsame Funktionsumfang verwendet werden. Beides verschwendet Ressourcen. Zudem ist meist nicht klar, wie die für die Umkonfiguration freigegebenen Elemente angeordnet sind und welche Verbindungen verfügbar sind; auch dadurch wird gegebenenfalls die Hineinkonfiguration einer neuen Aufgabe (Task) massiv erschwert.
  • Das Problem wird noch gravierender, wenn große Bereiche des multidimensionalen Feldes freigegeben werden und prinzipiell die Möglichkeit und/oder der Zwang besteht, mehrere Konfigurationen für unterschiedliche Aufgaben gleichzeitig in das Feld hinein zu konfigurieren.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, Neues für die gewerbliche Anwendung bereitzustellen.
  • Die Lösung dieser Aufgabe wird in unabhängiger Form beansprucht. Bevorzugte Ausführungsformen finden sich in den Unteransprüchen.
  • Es wird somit gemäß einem ersten wesentlichen Aspekt der Erfindung ein Verfahren zum Betrieb eines multidimensionalen Feldes rekonfigurierbarer Elemente vorgeschlagen, worin Gruppen zusammen datenhandhabender Elemente in vorbestimmter Weise während der Laufzeit zur Abarbeitung vorgegebener Aufgaben im Feld konfiguriert werden und wobei vorgesehen ist, dass für zumindest eine abzuarbeitende Aufgabe eine Mehrzahl von solchen Elementgruppenanordnungen im multidimensionalen Feld bestimmt wird, die zur Abarbeitung der vorgegebenen Aufgabe geeignet sind, für die Abarbeitung der vorgegebenen Aufgabe eine dann besonders geeignete Elementgruppenanordnung aus der Mehrzahl ausgewählt wird und die ausgewählte Anordnung in das Feld hinein konfiguriert wird.
  • Die Erfindung schlägt somit vor, bei der Vorbereitung der eigentlichen Datenverarbeitung eine Vielzahl von Anordnungen bzw. Konfigurationen vorherzubestimmen und dann aus den vorbestimmten Elementgruppenanordnungen eine solche auszuwählen, die für die Abarbeitung der vorgegebenen Aufgabe bei den dann gegebenen Feldressourcen besonders gut geeignet ist. Damit ist eine wesentliche Verbesserung im Betrieb eines multidimensionalen Feldes rekonfigurierbarer Elemente im Wesentlichen durch eine einfache Erweiterung des Compilers gegeben, mit dem die zuvor programmierten Codes übersetzt werden, und zwar dadurch, dass dieser nicht nur eine einzige Konfiguration für eine gegebene Aufgabe bestimmt, sondern mehrere solcher Konfigurationen und somit ausnützt, dass keine eindeutige Lösung für das Problem besteht, ein Stück gegebenen Hochsprachecode auf ein multidimensionales Feld rekonfigurierbarer Elemente zu übersetzen. Es sei erwähnt, daß hier der Begriff „Compiler" verwendet wird für ein Mittel, das Konfigurationen bestimmt, unabhängig davon, ob es sich um einen Routerteil, einen Übersetzerteil oder einen anderen Teil eines Mittels zur Konfigurationsbestimmung anhand von Programmcodes handelt. Dieses Mittel kann mittels Festverdrahtung, d. h. als Hardware oder als Softwareprogramm realisiert sein.
  • Es ist möglich, aus dieser Vielzahl von potentiell möglichen Konfigurationen, die zur Abarbeitung eines gegebenen Stück-Codes möglich sind, eine Auswahl anhand der Geometrie zu treffen, die diese Elementgruppenanordnung im Vergleich zu jener besitzt, die die im multidimensionalen Feld für die Umkonfiguration verfügbaren bzw. vermutlich bald verfügbar werdenden Elemente besitzen. So kann durch einen einfachen Mustervergleich versucht werden, eine Konfiguration, d. h. Elementgruppenanordnung, auszuwählen, die möglichst alle der frei gewordenen oder frei werdenden Elemente abdeckt bzw. möglichst wenig Elemente des multidimensionalen Feldes ungenutzt lässt. Wenn lediglich auf die Geometrie Rücksicht genommen wird, etwa weil alle Daten handhabenden Elemente des multidimensionalen Feldes den für die Hineinkonfiguration erforderlichen Funktionsumfang besitzen, so kann die Auswahl mit per se bekannten Algorithmen wie bei der Schnittmusteroptimierung erfolgen. Es kann dabei entweder auf die bereits verfügbaren Elemente Bezug genommen werden oder es kann, insbesondere im Hinblick darauf, dass die Umkonfiguration oftmals die Übertragung von Konfigurationsdaten zu den Elementen umfasst und eine solche Umkonfigurationsdatenübertragung Zeit in Anspruch nimmt, vorgesehen werden, dass auch vermutlich bald verfügbare Elemente mit bei der Auswahl der jeweils optimalen Geometrie berücksichtigt werden. Dabei kann ausgenützt werden, dass es häufig möglich ist, vorherzusagen, dass bestimmte Elemente bald für die Umkonfiguration verfügbar werden, etwa wenn sie Daten für die Weiterverarbeitung von Zellen erhalten haben, die bereits ihre Umkonfigurierbarkeit angedeutet haben und die Anzahl der noch erforderlichen Verarbeitungstakte, der hierzu datenstromabwärts liegenden Zellen endlich und abschätzbar oder bekannt ist. Derartige Information ist erfindungsgemäß als Umkonfigurierbarkeits-Vorhersage verwaltbar. Daß zu den verfügbaren und/oder benötigten Elementen auch Busverbindungen, Leitungen etc. zählen, sei erwähnt.
  • Die Auswahl der optimalen Konfiguration kann dabei in einem Präprozessor oder einem Teilbereich des multidimensionalen Feldes der rekonfigurierbaren Elemente erfolgen und insbesondere von einem Datenverarbeitungsprogramm und/oder -mittel übernommen werden, das die Durchführung der verschiedenen Aufgaben zeitlich koordiniert, Priorisierungen vornimmt usw. Es kann sich hierbei insbesondere um einen Teil eines Betriebssystems handeln, sofern das multdimensionale Feld rekonfigurierbarer Elemente als Prozessor oder Koprozessor ausgeführt ist.
  • Gerade dann, wenn Konfigurationsdaten aus einem Speicher eingelesen werden, der nicht vernachlässigbare Zugriffszeiten besitzt, bzw. wenn sie, sollte eine Echtzeitbestimmung einer Konfiguration gewünscht werden, mit nicht vernachlässigbaren Generierungszeiten generiert werden, ist es wünschenswert, zunächst einen Kenndatensatz vorzusehen, der gegenüber dem eigentlichen Konfigurationsdatensatz in der Grösse reduziert ist und dann eine Auswahl nur auf Grund dieses Kenndatensatzes zu treffen. So kann etwa beim Laden einer neuen Konfiguration aus einem langsamen Speicher wie von einer Festplatte zunächst lediglich ein Kenndatensatz bzw. eine Kenndatensatzgruppe heruntergeladen werden, der die Umrisse der Konfiguration betrifft. Da ein solcher Umrisskenndatensatz in der Größe gegenüber dem vollständigen Konfigurationsdatensatz typisch sehr reduziert sein wird, ist es auch möglich, eine Vielzahl von Kenndatensätzen für eine Vielzahl unterschiedlicher Konfigurationen vorab in einen Hauptspeicher zu laden, der einen sehr schnellen Zugriff erlaubt, an Hand der unterschiedlichen Konfigurationsdatensätze eine schnelle Auswahl zu treffen und dann aus dem langsamen Speicher die kompletten Konfigurationsdaten zur ausgewählten Konfiguration herunter zu laden. Es sei darauf hingewiesen, dass es in solchen Fällen auch möglich ist, einen Teil der Konfigurationen vorneweg miteinzulesen, etwa dann, wenn absehbar ist, dass bestimmte Konfigurationen typisch bevorzugt sind, sei es, weil statistische Auswertungen des typischen Datenverarbeitungsbetrie bes für eine Vielzahl von multidimensionalen Feldern rekonfigurierbarer Elemente oder für ein einzelnes multidimensionales Feld dies ergeben haben, etwa weil zu einer Gruppe von Anwendungen wie im UMTS-Base-Station-Bereich durch Analyse typischer Aufgaben festgestellt wurde, dass bestimmte Umkonfigurationen besonders häufig auftreten, oder weil für einen einzelnen Benutzer festgestellt wurde, dass immer wieder dieselben Anwendungen parallel in bestimmter Weise in das Feld hinein konfiguriert werden müssen. Das Vorab-Mitladen bestimmter Konfigurationen kann auch dann sinnvoll sein, wenn sich diese Konfigurationen durch eine besonders einfache Geometrie auszeichnet, etwa weil sehr kleine Volumina des multidimensionalen Feldes rekonfigurierbarer Elemente davon überdeckt werden (Volumina nimmt hier auf das Volumen des multidimensionalen Feldes Bezug, bezeichnet also bei zweidimensionalen Felder rekonfigurierbarer Elemente die Fläche bzw. Flächengeometrie der für die Umkonfiguration verfügbaren rekonfigurierbaren Elemente etc.).
  • Es ist auch möglich und insbesondere bei der Abarbeitung komplexer Aufgabenstellungen, sei es durch die Abarbeitung besonders rechenintensiver Probleme, sei es im Multitasking, Multithreading oder bei anderen Formen der Parallelabarbeitung von Daten, auch bevorzugt, zu überprüfen, ob mehrere, insbesondere gleich priorisierte Elementgruppenanordnungen für unterschiedliche Aufgaben simultan durch geeignete Auswahl in das Feld hinein konfigurierbar sind. Dabei kann, abhängig von der Priorisierung einer bestimmten Aufgabe vorgesehen werden, dass die für die Abarbeitung einer vorgegebenen Aufgabe zur Verfügung gestellte Fläche oder Abarbeitungszeit größer oder kleiner ausfällt, etwa indem durch Aufbau von Sequenzern mit den Daten handhabenden Elementen die Größe einer Konfiguration unter Verlangsamung der Datenabarbeitung verringert wird.
  • Es kann auch erwünscht sein, dass zunächst eine erste Elementgruppenanordnung in das Feld hinein konfiguriert wird und begonnen wird, mit dieser Elementgruppenanordnung die Aufgabe abzuarbeiten, bis ein vorgegebenes Ereignis auftritt und dann unter zumindest partieller Rekonfiguration mit der Aufgabenabarbeitung in einer weiteren Elementgruppenanordnung fortgefahren wird. Hierbei kann etwa vorgesehen werden, dass zur Erzielung einer bevorzugten Geometrie von Konfigurationen auf dem multidimensionalen Feld, etwa streifenförmig hintereinander angeordneten Zellen für jede Aufgabe, zu festgelegten Taktzeiten, etwa alle tausend, zehntausend oder hunderttausend Takte, die Abarbeitung aller oder eines Teiles aller Konfigurationen unterbrochen wird, die Ergebnisse wie erforderlich zwischengespeichert werden, auch was nur in einer Konfiguration intern erforderliche Daten wie Schleifen-, Zählerstände usw. angeht, und dann eine Neukonfiguration mit entsprechenden, bevorzugten Geometrien vorgenommen wird, um so ein allmähliches Zerfasern von Konfigurationen zu vermeiden, was schon aufgrund des erhöhten Bedarfs an Busleitungen unerwünscht ist.
  • Alternativ und/oder zusätzlich ist es auch möglich, selbstfaltende Konfigurationen vorzusehen, wobei etwa zunächst mit der Abarbeitung einer Konfiguration über das gesamte Array begonnen wird, und sich dann, sobald zusätzliche Ressourcen durch eine andere Aufgabe angefordert werden, diese erste Konfiguration mehr oder minder selbsttätig zusammenzieht, etwa durch Sequenzerbildung mit einem Element, um Elemente für die neue Aufgabe freizugeben. Dieses Zusammenziehen kann durch Vorgabe neuer, Platz sparenderer Konfigurationen für ein und dieselbe Aufgabe erreicht werden, insbesondere dann, wenn diese Platz sparenderen Konfigurationen in bei den Daten handhabenden Elementen vorgesehenen Konfigurationsspeichern mit abgelegt werden. Auf die Anmeldung zur Wave-Rekonfiguration sei dabei nur beispielsweise hingewiesen. Es ergibt sich dann eine Situation, bei der Konfigurationen allmählich enger und enger zusammenrücken.
  • Die Auswahl einer vorgegebenen Elementgruppenanordnung, die in ein Feld hinein zu konfigurieren ist, kann abgesehen von der verfügbaren Geometrie, auch von anderen Parametern abhängig gemacht werden. Hierzu zählt unter anderem die erzielbare Abarbeitungsgeschwindigkeit, die Priorität einer Aufgabe und/oder der Energieverbrauch, der zur Abarbeitung einer vorgegebenen Aufgabe in einer vorgegebenen Zeit erforderlich ist. Es sei darauf hingewiesen, dass mehrere Parameter gleichzeitig betrachtet werden können, sei es dadurch, dass zunächst anhand eines ersten Parameters wie des benötigten Feldvolumens als gleichwertig angesehene Konfigurationen durch Betrachten eines zweiten Parameters verworfen werden, sei es, indem, etwa mit Methoden der unscharfen Logik, mehrere Parameter gleichzeitig soweit wie möglich optimiert werden.
  • Die Erfindung wird nun im Folgenden nur beispielsweise anhand der Figuren erläutert, worin gezeigt ist durch
  • 1 ein multidimensionales Feld Daten handhabender Elemente in teilweise zu rekonfigurierendem Zustand;
  • 2 Beispiele für unterschiedliche Konfigurationsgeometrien;
  • 3 ein teilweise zur Laufzeit umkonfigurierter Prozessor.
  • Nach 1 umfasst eine allgemein mit 1 bezeichnete Datenverarbeitungsvorrichtung 1 ein multidimensionales Feld rekonfigurierbarer Elemente 2 sowie einen Präprozessor 3, der Konfigurationen in das multidimensionale Feld 1 über geeignete Datenbusse 4 einspeist und Informationen über rekonfigurierbare Elemente aus dem multidimensionalen Feld 2 mehrere Elemente erhält sowie mit einem Speicher 5 mit langsamem Zugriff verbunden ist, in dem Konfigurationen für indem multidimensionalen Feld 2 abzuarbeitende Aufgaben vorab abgelegt sind.
  • Der multidimensionale Prozessor 1 ist im vorliegenden Beispiel eine XPU-Architektur, die PAE als konfigurierbare Elemente aufweist und nach 196 51 075.9, 196 54 846.2, 197 04 728.9, 198 07 872.2, 199 26 538.0 aufgebaut ist. Er erhält Daten von Eingabe-/Ausgabe-Schnittstellen 6 in Echtzeit zur Abarbeitung, wobei nicht vorhersehbar ist, wie diese Daten eintreffen und/oder abzuarbeiten sind. Es können hierfür eine Tastatur, Bilder abrufende Kameras, A/D-Wandler usw. vorgesehen sein.
  • Das multidimensionale Feld 2 besteht vorliegend aus einer Reihe ausschließlich identischer datenhandhabender Elemente, zwischen denen geeignete Vernetzungen über Busse und dergleichen konfigurierbar sind. Aus Gründen der Anschaulichkeit wird vorliegend von unbegrenzten Busressourcen ausgegangen, obgleich rein praktisch die typische Anwendung auch solcher Ressourcen und deren Knappheit bei der Vorabbestimmung mul tipler Konfigurationsmöglichkeiten berücksichtigt wird. Die datenhandhabenden Elemente sind im vorliegenden Fall geeignet, sequenzartig die Befehle abzuarbeiten, wie dies per se bekannt ist, das heißt, es ist möglich, Sequenzer über einzelne Zellen oder Gruppen derer aufzubauen. Das multidimensionale Feld 2 ist laufzeitrekonfigurierbar, das heißt es ist möglich, einzelnen der datenhandhabenden Elemente oder Gruppen derer neue Aufgaben während der Laufzeit zuzuordnen, ohne den Betrieb der Gesamt-Anordnung oder anderer Elemente bzw. Gruppen derer insgesamt zu unterbrechen. Wie bevorzugt und per se bekannt sind den datenhandhabenden Elementen Konfigurationsspeicher lokal zugeordnet, genau so wie Register, nämlich Forward- und Backward-Register, Busleitungen, feingranulare Zustandsmaschinen zum Austausch von Triggersignalen untereinander und mit der Präprozessoreinheit 3 usw. Auf die Möglichkeit der Ausgestaltung der rekonfigurierbaren Elemente nach PCT-DE 97/02949 , PCT-DE 97/02998 , PCT-DE 98/00334 , PCT/DE 99/00504 , PCT/DE 99/00505 , PCT/DE 00/01869 usw. sei hingewiesen. Die vorgenannten Schutzrechte und die weiteren Schutzrechte des Anmelders zu rekonfigurierbaren Prozessoren, deren Teilen und Verfahren zu deren Betrieb sind zu Offenbarungszwecken voll-umfänglich integriert.
  • Der Präprozessor 3 ist dazu ausgebildet, Konfigurationen in das multidimensionale Feld hinein zu laden und zwar über Leitungen 4, wenn er aus dem multidimensionalen Feld die Meldung erhält, dass einzelne Elemente oder Gruppen derer rekonfigurierbar sind. Der Präprozessor 3 enthält einen lokalen Speicher (Cache) und ist mit einem weiteren Speicher 5 (Harddisk, RAM) verbunden, auf den langsamer zugegriffen werden kann und auf dem Konfigurationsdaten abgelegt sind.
  • Es sei darauf hingewiesen, dass es nicht erforderlich ist, den Präprozessor 3 als externes Bauteil vorzusehen. Die gezeigte Darstellung wurde ausschließlich aus didaktischen Gründen gewählt. Er kann integriert sein mit dem multidimensionalen Feld 2 auf einem einzelnen Chip und/oder seine Funktion kann durch einzelne Daten handhabende Elemente 2 des Prozessorfeldes ausgeführt werden.
  • Über die Leitungen 4 werden Konfigurationsdaten und Konfigurationsanforderungen übertragen. Auf die Implementierung von Rdy/Ack-Protokollen, Vorab-Konfiguration von Elementen in elementennahen Speichern etc., die möglich, aber nicht zwingend ist, wird hingewiesen.
  • Im Speicher 5 sind nun eine Vielzahl von Konfigurationen für unterschiedliche Aufgaben und Kenndaten hierzu abgelegt. Dies wird für ein einfaches Beispiel mit Bezug auf 2 erläutert.
  • Nach 2 sind etliche Konfigurationen für zwei Aufgaben a) und b) abgelegt. Wie ersichtlich, sind für die Aufgabe a) insgesamt vier Konfigurationen abgelegt, die alle dieselbe Funktion ausführen, aber unterschiedliche Verbindungen der Zellen untereinander haben und sich insbesondere hinsichtlich ihrer äußeren geometrischen Gestalt unterscheiden, in der die Zellen angeordnet sind.
  • Wie ersichtlich, sind beispielsweise drei Konfigurationen vorabgelegt, in denen sieben datenhandhabende Elemente wie PAEs benötigt werden und eine Konfiguration, in der unter Ausnutzung der Sequenzereigenschaft der datenhandhabenden Elemente nur vier Elemente benötigt werden. Die geometrische Form der jeweiligen Konfiguration ist dabei wie durch die Zahlen in Klammern angedeutet, gleichfalls mitabgelegt. Dieser Kenndatensatz umfasst eine erste Ziffer, die angibt, wieviele Spalten Abstand die äußersten Zellen links und rechts voneinander haben; es folgen dann nach einem Komma die Anzahl der Elemente in einer Spalte, die benötigt werden. Sind in einer Spalte Reihen frei, d. h. nicht belegt, steht gleichfalls ein c in der Kennung. Ist dabei eine Spalte freigelassen, das heißt von der jeweiligen Konfiguration bis auf Busse nicht belegt, so steht hierfür ein c in der Konfiguration. Dies ist ersichtlich an den Konfigurationen I und II. Die Daten zu einer Spalte sind von jenen der nächsten Spalte durch Komma getrennt. Ähnliche Konfigurationsdaten sind auch für eine zweite Konfiguration abgelegt b).
  • Die Anordnung wird verwendet wie folgt:
    Wenn im multidimensionalen Feld rekonfigurierbarer Elemente Ressourcen für die Rekonfiguration freigegeben sind, wie dies durch die „0" in 2 dargestellt ist, so lädt der Präprozessor 3 aus dem Speicher 5 zunächst die wenig umfangreichen und damit schnell zu ladenden Kennsätze zu den Konfigurationen. Er bestimmt dann, welche Aufgabe schnell abzuarbeiten ist und welche Konfigurationen gemeinsam besonders gut in das Feld eingeladen werden können. Dies geschieht durch Vergleich der maximalen Spaltenbreite einer möglichen Konfiguration mit der tatsächlich verfügbaren Spaltenbreite. Zur Aufgabe a) können so Konfiguration III und IV verworfen werden, die zuviel Spalten benötigen. Aus den verbleibenden sind aufgrund der geometrischen Form die Konfigurationen I und II gleichfalls zu verwerfen. Es wird dann untersucht, welche Konfigu ration von b) zu laden wäre. Hier sind per se alle drei Konfigurationen ladbar.
  • Nun wird untersucht, ob es eine Möglichkeit gibt, von den verbleibenden Konfigurationen zu den Aufgaben gleichzeitig zwei Konfigurationen in das Feld zu laden. Dazu werden die Konfigurationen in unterschiedlicher Weise aneinander gesetzt und es wird die benötigte maximale Spalten- und Reihenzahl mit der verfügbaren Maximalzahl verglichen. Es wird so festgestellt, daß sich eine optimale Ausnutzung der freigewordenen Elemente ergibt, wenn die Konfiguration Ib und die Konfiguration IIIa unmittelbar übereinander angeordnet werden. Diese Konfigurationen werden dann in das Prozessorfeld geladen.
  • Daraufhin kann die Datenverarbeitung mit einer Konfigurationsanordnung wie in 3 gezeigt fortgesetzt werden. Es sei erwähnt, dass in Fällen, in denen unterschiedliche datenhandhabende Elemente vorgesehen werden, die entsprechende Information gleichfalls im Kenndatensatz abgelegt werden kann.

Claims (6)

  1. Verfahren zum Betrieb eines multidimensionalen Feldes rekonfigurierbarer Elemente, worin Anordnungen von Gruppen zusammen datenhandhabender Elemente in vorbestimmter Weise während der Laufzeit zur Abarbeitung vorgegebener Aufgaben in das Feld hinein konfiguriert werden, dadurch gekennzeichnet, daß für zumindest eine abzuarbeitende Aufgabe eine Mehrzahl von solchen Elementgruppenanordnungen im multidimensionalen Feld bestimmt wird, die zur Abarbeitung der vorgegebenen Aufgabe geeignet sind, für die Abarbeitung der vorgegebenen Aufgabe eine dann besonders geeignete Elementgruppenanordnung aus der Mehr zahl ausgewählt wird und die ausgewählte in das Feld hinein konfiguriert wird.
  2. Verfahren nach dem vorhergehenden Anspruch dadurch gekennzeichnet, daß die Elementgruppenanordnung anhand ihrer Geometrie im Vergleich mit der Geometrie im Feld bereits für die Umkonfiguration verfügbarer und/oder vermutlich bald verfügbar werdender Elemente ausgewählt wird.
  3. Verfahren nach einem der vorhergehenden Ansprüche, worin Elementgruppenanordnungen betreffende Konfigurationsdaten aus einem Speicher mit nicht vernachlässigbaren Zugriffszeiten eingelesen werden und/oder mit nicht vernachlässigbaren Generierungszeiten generiert werden, dadurch gekennzeichnet, daß zumindest für einige Konfigurationen für die Auswahl zunächst nur ein gegenüber dem Konfigurationsdatensatz aller Konfigurationsdaten in der Größe reduzierter Kenndatensatz, insbesondere ein Satz von die Geometrie betreffenden Kenndaten, in eine Elementgruppenanordnungsauswahlstufe eingelesen werden, eine Auswahl aufgrund des Kenndatensatzes getroffen wird und dann im Ansprechen auf die Auswahl die Konfigurationsdaten aus dem Speicher gelesen oder generiert werden.
  4. Verfahren nach einem der vorhergehenden Ansprüche, worin bei der Umkonfigurierung des Feldes zur Durchführung einer Mehrzahl zumindest teilweise simultan auszuführender Aufgaben, von denen für wenigstens zwei Gruppen zusammen Daten handhabender Elemente in vorbestimmter Weise während der Laufzeit zur Abarbeitung vorgegebener Aufgaben in das Feld hinein konfiguriert werden, eine Mehrzahl von solchen Elementgruppenanordnungen, die zur Abarbeitung der vorgegebenen Aufgabe geeignet sind, vorbestimmt werden, die zu einer gegebenen Zeit und/oder einem gegebenen Ereignis für die zumindest teilweise simultane Hineinkonfiguration verfügbarer Ressourcen bestimmt werden und jene Elementgruppenanordnungen aus der vorbestimmten Anzahl ausgewählt werden, mit denen eine simultane Abarbeitung besonders effizient möglich ist.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß eine erste Elementgruppenanordnung in das Feld hineinkonfiguriert wird, mit dieser Elementgruppenanordnung begonnen wird, die Aufgabe abzuarbeiten, bis ein vorgegebenes Ereignis auftritt und danach unter zumindest partieller Rekonfiguration mit der Aufgabenabarbeitung in einer weiteren Elementgruppenanordnung fortgefahren wird.
  6. Verfahren nach einem der vorhergehenden Ansprüche, worin die Elementgruppenanordnungen sich hinsichtlich der Abarbeitungsgeschwindigkeit unterscheiden und die Auswahl im Ansprechen auf die gegebenenfalls unter Berücksichtigung weiterer Aspekte maximal erzielbare Abarbeitungsgeschwindigkeit erfolgt.
DE10238173A 1997-10-08 2002-08-21 Rekonfigurationsdatenladeverfahren Withdrawn DE10238173A1 (de)

Priority Applications (35)

Application Number Priority Date Filing Date Title
DE10238173A DE10238173A1 (de) 2002-08-07 2002-08-21 Rekonfigurationsdatenladeverfahren
JP2003538928A JP4456864B2 (ja) 2001-09-19 2002-09-19 リコンフィギュアブル素子
AU2002357982A AU2002357982A1 (en) 2001-09-19 2002-09-19 Reconfigurable elements
EP02791644A EP1472616B8 (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
PCT/EP2002/010572 WO2003036507A2 (de) 2001-09-19 2002-09-19 Rekonfigurierbare elemente
AT02791644T ATE533111T1 (de) 2001-09-19 2002-09-19 Rekonfigurierbare elemente
AU2003223892A AU2003223892A1 (en) 2002-03-21 2003-03-21 Method and device for data processing
PCT/DE2003/000942 WO2003081454A2 (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
EP03720231A EP1518186A2 (de) 2002-03-21 2003-03-21 Verfahren und vorrichtung zur datenverarbeitung
AU2003286131A AU2003286131A1 (en) 2002-08-07 2003-07-23 Method and device for processing data
US10/523,763 US7657861B2 (en) 2002-08-07 2003-07-23 Method and device for processing data
EP03776856.1A EP1537501B1 (de) 2002-08-07 2003-07-23 Verfahren und vorrichtung zur datenverarbeitung
PCT/EP2003/008081 WO2004021176A2 (de) 2002-08-07 2003-07-23 Verfahren und vorrichtung zur datenverarbeitung
PCT/EP2003/008080 WO2004015568A2 (en) 2002-08-07 2003-07-24 Data processing method and device
AU2003260323A AU2003260323A1 (en) 2002-08-07 2003-07-24 Data processing method and device
US10/523,764 US8156284B2 (en) 2002-08-07 2003-07-24 Data processing method and device
JP2005506110A JP2005535055A (ja) 2002-08-07 2003-07-24 データ処理方法およびデータ処理装置
EP03784053A EP1535190B1 (de) 2002-08-07 2003-07-24 Verfahren zum gleichzeitigen Betreiben eines sequenziellen Prozessors und eines rekonfigurierbaren Arrays
US12/570,943 US8914590B2 (en) 2002-08-07 2009-09-30 Data processing method and device
US12/571,173 US8686549B2 (en) 2001-09-03 2009-09-30 Reconfigurable elements
US12/621,860 US8281265B2 (en) 2002-08-07 2009-11-19 Method and device for processing data
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
US12/947,167 US20110238948A1 (en) 2002-08-07 2010-11-16 Method and device for coupling a data processing unit and a data processing array
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 (3)

Application Number Priority Date Filing Date Title
DE10236272 2002-08-07
DE10236272.6 2002-08-07
DE10238173A DE10238173A1 (de) 2002-08-07 2002-08-21 Rekonfigurationsdatenladeverfahren

Publications (1)

Publication Number Publication Date
DE10238173A1 true DE10238173A1 (de) 2004-03-04

Family

ID=31196940

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10238173A Withdrawn DE10238173A1 (de) 1997-10-08 2002-08-21 Rekonfigurationsdatenladeverfahren

Country Status (1)

Country Link
DE (1) DE10238173A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2523120A1 (de) * 2011-05-12 2012-11-14 Imec Mikrocomputerarchitektur zur effizienten Basisbandverarbeitung mit geringer Leistungsaufnahme

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173434B1 (en) * 1996-04-22 2001-01-09 Brigham Young University Dynamically-configurable digital processor using method for relocating logic array modules

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173434B1 (en) * 1996-04-22 2001-01-09 Brigham Young University Dynamically-configurable digital processor using method for relocating logic array modules

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2523120A1 (de) * 2011-05-12 2012-11-14 Imec Mikrocomputerarchitektur zur effizienten Basisbandverarbeitung mit geringer Leistungsaufnahme
WO2012152948A1 (en) * 2011-05-12 2012-11-15 Imec Microcomputer for low power efficient baseband processing

Similar Documents

Publication Publication Date Title
DE4416881C2 (de) Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
WO2004021176A2 (de) Verfahren und vorrichtung zur datenverarbeitung
EP1228440B1 (de) Sequenz-partitionierung auf zellstrukturen
EP1402382B1 (de) Verfahren zur bearbeitung von daten
EP1057117B1 (de) VERFAHREN ZUM HIERARCHISCHEN CACHEN VON KONFIGURATIONSDATEN VON DATENFLUSSPROZESSOREN UND BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALER PROGRAMMIERBARER ZELLSTRUKTUR (FPGAs, DPGAs, o.dgl.)
WO2004038599A1 (de) Rekonfigurierbare sequenzerstruktur
DE2912287C3 (de) Datenverarbeitungsanlage
DE602004009324T2 (de) Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren
EP1451040B1 (de) Steuervorrichtung
WO2002029600A2 (de) Zellenarordnung mit segmentierterwischenzellstruktur
DE112019002981T5 (de) Parallelberechnungsarchitektur mit rekonfigurierbarer kernebenen- und vektorebenen-parallelität
EP1599794B1 (de) Prozessor mit verschiedenartigen steuerwerken für gemeinsam genutzte ressourcen
EP0657044B1 (de) Verfahren zum betrieb eines rechnersystems mit mindestens einem mikroprozessor und mindestens einem coprozessor
EP2602678A1 (de) Verfahren zum Übersetzen eines in einer Automatisierungssprache vorliegenden Steuerungsprogramms in eine Zwischensprache
DE10238173A1 (de) Rekonfigurationsdatenladeverfahren
WO2003060747A2 (de) Reconfigurierbarer prozessor
EP1466264A2 (de) Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
EP1537501B1 (de) Verfahren und vorrichtung zur datenverarbeitung
DE69726403T2 (de) Eliminierung des ''read crossbar'' in einem vliw-prozessor
EP3869380A1 (de) Verfahren, computerbasiertes system und computerprogramm-produkt zum floorplanning für eine programmierbare gatteranordnung mit nicht-rechteckigen blockgrenzen
DE102022003661B3 (de) Rechenvorrichtung, Verfahren zur Lastverteilung für eine solche Rechenvorrichtung und Computersystem
DE4447706B4 (de) Partiell zur Laufzeit rekonfigurierbarer Datenflussprozessor
DE4447707B4 (de) Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik
DE19837101C2 (de) Programmierbare 1-Bit Datenverarbeitungsanordnung
EP1348257B1 (de) Zellenanordnung mit segmentierter zwischenzellstruktur

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee