-
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.