-
Die vorliegende Erfindung betrifft
das oberbegrifflich Beanspruchte und geht somit ein auf Konfigurationen
für multidimensionale
Prozessorfelder.
-
Konfigurierbare multidimensionale
Prozessorfelder sind bekannt. Sie umfassen eine Vielzahl von Logikzellen,
die über
Leitungen miteinander verbindbar sind. In den Logikzellen können eingehende
Daten manipuliert werden, um dann über die internen Busse an weitere
Zellen oder einen Prozessorfeld-Ausgang
geleitet zu werden. Indem den Logikzellen wechselnde Aufgaben wie
Addition, Multiplikation, Division, logische Vergleiche usw. zugewiesen
und die Leitungen zur Verbindung der einzelnen Logikzellen aktiviert
oder getrennt werden, kann das multidimensionale Prozessorfeld zur
Ausführung
bestimmter Datenverarbeitungsaufgaben konfiguriert werden.
-
Die Art und Weise, wie ein gegebenes
Prozessorfeld für
eine vorgegebene Weise konfiguriert werden muß, ist nicht eindeutig. Dies
gilt insbesondere dann, wenn es sich um komplexe Felder handelt,
bei denen etwa zumindest zum Teil in den Leitungen Register vorgesehen
sind und weiter mit diesen insbesondere auch Additionen und/oder
Vergleiche von Daten durchzuführen
sind, wie dies auch in arithmetische Logikeinheiten (ALUs) aufweisenden
Logikzellen des Feldes der Fall sein kann.
-
Verwiesen wird bezüglich des
bevorzugten Aufbaus von Logikzellenfeldern auf die XPP-Architektur und
vorveröffentlichte
sowie jüngere
Schutzrechtsanmeldungen des vorliegenden Anmelders, die zu Offenbarungszwecken
vollumfänglich
eingegliedert sind. Erwähnt
seien somit insbesondere die
DE 44 16 881 A1 ,
DE 197 81 412 A1 ,
DE 197 81 483 A1 ,
DE 196 54 846 A1 ,
DE 196 54 593 A1 ,
DE 197 04 044.6 A1 ,
DE 198 80 129 A1 ,
DE 198 61 088 A1 ,
DE 199 80 312 A1 ,
PCT/DE 00/01869,
DE
100 36 627 A1 ,
DE
100 28 397 A1 ,
DE 101
10 530 A1 ,
DE
101 11 014 A1 , PCT/EP 00/10516,
EP 01 102 674 A1 ,
DE 198 80 128 A1 ,
DE 101 39 170 A1 ,
DE 198 09 640 A1 ,
DE 199 26 538.0 A1 ,
DE 100 50 442 A1 ,
sowie die PCT/EP 02/02398,
DE
102 40 000 ,
DE 102
02 044 ,
DE 102 02 175 ,
DE 101 29 237 ,
DE 101 42 904 ,
DE 101 35 210 ,
EP 01 129 923 , PCT/EP 02/10084,
DE 102 12 622 ,
DE 102 36 271 ,
DE 102 12 621 ,
EP 02 009 868 ,
DE 102 36 272 ,
DE 102 41 812 ,
DE 102 36 269 ,
DE 102 43 322 ,
EP 02 022 692 , ebenso wie
die
EP 02 001 331 und
die
EP 02 027 277 .
-
Obwohl es sich bei der XPP-Architektur
um eine zur Laufzeit rekonfigurierbare Architektur mit grobgranularen
Logikzelleneinheiten und feingranularer Steuer- bzw. Statuslogik
handelt, wird einsichtig sein, daß sich die Erfindung in wesentlichen
Aspekten auch anwenden läßt auf vollständig oder
partiell nicht-laufzeitrekonfigurierbare, insbesondere nur einmalig
konfigurierbare Einheiten, die grob- und/oder feingranular sein
können.
Die Verwendbarkeit mit FPGA-Architek-turen etc. sei explizit erwähnt.
-
Es ist bereits vorgeschlagen worden,
eine Konfiguration aus mehreren per se verwendbaren auszuwählen anhand
der momentanen Konfigurierbarkeit unter geometrischen Aspekten,
der Ressourcenverfügbarkeit
und/oder auszuwählen
aufgrund von Geschwindigkeitsaspekten.
-
Dies kann die Auswahl erleichtern,
stellt aber oftmals nur unzureichende Kriterien dar. Es ist wünschenswert,
die Konfigurationsauswahl weiter verbessern zu können.
-
Es ist weiter oftmals möglich, eine
bestimmte Datenverarbeitungsaufgabe selbst auf unterschiedliche Weise
durchzuführen.
So ist etwa eine Reihe von Algorithmen bekannt, die es erlauben,
einen Satz Daten auf unterschiedliche Weise zu sortieren. Auch hier
ist es erforderlich, zwischen unterschiedlichen Algorithmen, die prinzipiell
geeignet sind, eine bestimmte Datenverarbeitungsaufgabe zu bewältigen,
aufgrund von objektivierbaren Kriterien zu wählen. Daß diese Wahl zur Laufzeit und/oder
davor erfolgen kann, sei erwähnt.
-
Insgesamt ist es somit wünschenswert,
Auswahlmöglichkeiten
bei der Datenverarbeitung mit konfigurierbaren multidimensionalen
Prozessorfeldern zu verbessern.
-
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.
-
Die vorliegende Erfindung schlägt somit
in einem ersten Grundgedanken ein Verfahren zur Auswahl eines aus
einer Vielzahl von Wegen zur Erzielung eines Datenverarbeitungsergebnisses
bei der Datenverarbeitung unter zumindest möglicher Verwendung multidimensionaler
Felder konfigurierbarer Datenhandhabungselemente vor, bei welchem
vorgesehen ist, daß den
Datenhandhabungselementen konfigurationsabhängig verbrauchsbezogene kennzeichnende
Größen zugeordnet
werden und eine Wegauswahl anhand der Zuordnung erfolgt.
-
Ein erster Grundgedanke kann somit
in der Erkenntnis gesehen werden, daß bestimmten Datenverarbeitungswegen
typische Leistungs- bzw. Energieaufnahmewerte zugeordnet werden
können,
um dann eine Wegauswahl unter Berücksichtigung derselben vorzunehmen.
Als Erzielung eines Datenverarbeitungsergebnisses wird auch eine
bestimmte Art und Weise einer Zwischenergebnisberechnung und/oder
einer Datenhandhabung etc. betrachtet. Durch die Zuordnung verbrauchskennzeichnender
Größen wird
also eine wesentliche Ojektivierung der Wegauswahl möglich.
-
Die Auswahl eines Weges kann beispielsweise
die Wahl eines gegebenen Algorithmus aus einer Vielzahl unterschiedlicher
Algorithmen umfassen, sei es für
Aufgaben wie das Sortieren von Daten, bestimmte mathematische Transformationen
oder dergleichen. Liegen in einer Programmmodul-Bibliothek etwa
mehrere Sortieralgorithmen, Algorithmen zur Bestimmung einer Fourier-Transformierten
oder dergleichen vor, so kann z. B. zu jeder eine verbrauchskennzeichnende
Größe ermittelt
werden und es wird dann unter Berücksichtigung derselben eine
Auswahl vorgenommen. So wird es möglich, Algorithmen zu wählen, die
beispielsweise einen besonders niedrigen Energieverbrauch besitzen.
Dies kann für
mobile Anwendungen wie bei Laptops, Funktelefonen und dergleichen
sinnvoll sein, bietet aber auch in Bereichen Vorteile, bei denen
sehr rechenintensive Aufgaben zu bewältigen sind, etwa in Servern,
Basestations usw., wo die in einer Verarbeitungseinheit erzeugte
Leistung weggekühlt
und/oder abgeführt
werden muß.
Durch die Erfindung können
so Systemgesamtkosten minimiert werden.
-
Es ist weiter möglich, für ein und denselben Algorithmus
eine Vielzahl unterschiedlicher Konfigurationen vorzusehen, etwa
unter Berücksichtigung
verschiedener, simultan und/oder sequenziell auf das multidimensionale
Feld zu konfigurierender Teilaufgaben, und dann eine Auswahl aus
diesen unter Auswertung der jeweils zugeordneten Größe vorzunehmen.
-
Weiter ist es möglich, unter Anwendung des
erfindungsgemäßen Verfahrens
darüber
zu befinden, ob eine gegebene Aufgabe der Datenverarbeitung, bzw.
eine Teilaufgabe, dem betrachteten multidimensionalen Feld konfigurierbarer
Datenhandhabungselemente und/oder einem anderen Element zur Datenverarbeitung außerhalb
des multidimensionalen Feldes zugeordnet werden soll; so kann etwa
darüber
entschieden werden, ob dann, wenn das multidimensionale Feld als
Koprozessor dient, eine bestimmte Teilaufgabe besser auf einer rein
sequenziell arbeitenden CPU oder dem rekonfigurierbaren, typisch
als Datenflußprozessor
oder dergleichen arbeitenden multidimensionalen Feld abgearbeitet
werden soll. Es ist auch möglich, über das
Erfordernis oder die Sinnhaftigkeit dedizierter Schaltkreise wie
ASICs für
bestimmte Aufgaben zu befinden.
-
Typisch wird es sich bei dem Feld
konfigurierbarer Datenhandhabungselemente um einzweidimensionales
Feld handeln. Es sei erwähnt,
daß die
Erfindung für
Felder wie FPGAs, XPP-Prozessoren usw. anwendbar ist. Es ist besonders
bevorzugt für
zur Laufzeit konfigurierbare, insbesondere partiell zur Laufzeit ohne
Störung
nicht umzukonfigurierende Elemente teil-rekonfigurierbarer Prozessorfelder.
-
In typischen Anwendungen wie bei
XPP-Feldern werden als zu berücksichtigende
Datenhandhabungselemente insbesondere zumindest einige, bevorzugt
alle der Elemente Busse, Register, ALUs, RAMs, I/O-Ports sowie konfigurierende
Einheiten (CT's)
erfaßt.
Es sei darauf hingewiesen, daß von
bestimmten dieser Teile nur eine abgeschätzte oder partielle Verbrauchsberücksichtigung
erforderlich ist; so brauchen etwa bei Bussen lediglich bestimmte
Treiberstufen und dergleichen berücksichtigt werden. Weiter kann
es erforderlich sein, auch Taktbeschaltungen mit zu erfassen, sei
es, weil in bestimmten Datenverarbeitungswegen eine Voll- oder Teilabschaltung
eines Taktzweiges möglich
ist, sei es, weil bestimmte Schaltungsbereiche mit einem unterschiedlichen
Takt versorgt werden können
oder müssen.
-
Es ist bevorzugt, wenn der kennzeichnende
Wert nur grob abgeschätzt
wird, etwa dahingehend, daß festgestellt
wird, ob ein bestimmtes Element momentan verwendet wird und/oder
konfiguriert ist, oder ob es stattdessen nicht verwendet wird und
gegebenenfalls sogar von einer Spannungsversorgung bis auf einen
Wake-up-Schaltkreis und/oder von einer Taktversorgung zumindest
weitgehend abgeklemmt ist. Es ist also nicht erforderlich, eine
absolut exakte Verbrauchskennzeichnung vorzunehmen, etwa unter Festlegung
des Verbrauchs der spezifischen algebraischen Operation, die einer
jeweiligen arithmetisch-logischen
Einheit aktuell und/oder dauerhaft zugeordnet wird. Vielmehr kann
es ausreichend sein, die verbrauchskennzeichnende Größe nur dahingehend
zu bestimmen, ob und wie weit tatsächlich das jeweilige Element
im Augenblick verwendet wird. Ausnahmen hiervon sind möglich. Eine
Ausnahme kann insbesondere gemacht werden für Operationen wie Multiplikationen,
bei denen sehr große
Schaltkreisflächen
mit Leistung versorgt werden müssen.
In einem solchen Fall kann eine weitere Detaillierung vorgesehen
werden.
-
Es ist möglich und bevorzugt, jedem
unterschiedlichen Datenhandhabungselement unterschiedliche Kennzahlen,
wie strom- und/oder
leistungsaufnahmebezogener Größen als
verbrauchskennzeichnende Größen zuzuordnen.
Dieses kann gegebenenfalls in taktabhängiger Weise (Leistungsaufnahme
pro Taktfrequenz) geschehen. Weiter ist es möglich, eine Auswahl unter Berücksichtigung
eines Summenwertes vorzunehmen, also über die Betrachtung des Gesamtverbrauchs
oder abgeschätzten
Gesamtverbrauchs eines betrachteten Weges zu entscheiden.
-
Die Auswahl wird typisch nicht alleine
unter Berücksichtigung
der verbrauchskennzeichnenden Größen erfolgen,
sondern kann andere Parameter miterfassen, etwa eine erforderliche
Ausführungszeit,
erforderliche Ressourcen auf einem multidimensionalen Feld, eine
aktuelle oder erwartete Prozessorauslastung durch andere Aufgaben
und/oder eine aktuell gewünschte
beziehungsweise erwartete oder zulässige Leistungsaufnahme.
-
Die Auswahl des jeweiligen Weges
kann vor der eigentlichen Datenverarbeitung erfolgen, etwa bei der Festlegung
von später
zu ladenden Konfigurationen unter mehreren, theoretisch implementierbaren
Konfigurationen. In einem solchen Fall ist es besonders ist bevorzugt,
wenn die kennzeichnende Größe während der Simulation
der Datenverarbeitungsfunktionen mit ermittelt wird. Alternativ
kann vorgesehen werden, daß die Auswahl
unter verschiedenen möglichen
Wegen während
der Laufzeit erfolgt. In einem solchen Fall werden etwa mehrere
mögliche
Algorithmen, z. B. um Daten zu sortieren, bereitgestellt, es wird
dann abgefragt, wie viele einzelne Daten zu sortieren sind und wie
gegebenenfalls der Ordnungsgrad dieser Daten ist und es wird erst
danach eine Auswahl unter verschiedenen, vorher bestimmten Algorithmen
anhand der ihnen zugeordneten parametrierten Verbrauchskennzeichnungsgrößen wie
der Gesamtleistungsaufnahme usw. vorgenommen. Analog kann auch eine
Konfiguration zur Laufzeit abhängig
von z. B. einer momentan möglichen
oder gewünschten
Stromaufnahme erfolgen.
-
Die Erfindung wird im folgenden und
beispielsweise beschrieben, ohne daß Bezug genommen wird auf eine
Figur.
-
Es wird zunächst eine gewünschte Art
der Daten-Bearbeitung festgelegt, die auf dem Prozessorfeld durchgeführt werden soll.
Beispielsweise wird ein Viterbi-Algorithmus programmiert und eine
für das
betrachtete Prozessorfeld geeignete Konfiguration bestimmt. Es wird
dann ermittelt, welche Einheiten auf dem Prozessorfeld verwendet
werden und über
wie viele Takte dies geschieht. Bei der Betrachtung der verwendeten Elemente
werden in einem Beispiel berücksichtigt
ALUs, Vorwärts-
und Rückwärts-Register
(FREG und BREG) sowie Schalter in Bussen (LSW und RSW). Es wird
dann der gesamte Energieverbrauch je Elementart bestimmt und anschließend der
gesamte Energieverbrauch aller unterschiedlichen Einheiten. Die
Energieverbrauchswerte für
ein einzelnes Element je Takt sind ihrerseits abgeschätzt aus
Simulationen der Hardwareschaltungen bei der betrachteten Architektur
und sind für
das Verfahren der Erfindung tabellarisch hinterlegt.
-
In dem betrachteten praktischen Beispiel
sind für
die Implementierung eines gegebenen Viterbi-Algorithmus 10 ALUs,
17 Vorwärtsregister,
23 Rückwärtsregister
sowie 30 Busschalter (LSW) in einer und 35 Schalter in der entgegengesetzten
Richtung (RSW) erforderlich. Bei einem Energieverbrauch von 4,85
pW/Hz je ALU, 7,01 pW/Hz pro FREG, 7,02 pW/Hz je BREG sowie 2,03
pW/Hz je Busschalter ergibt sich folgende Tabelle:
Number of
cycles: 1582 Energy
consumption
-
Es kann nun der Implementierung der
Viterbi-Transformation ein Gesamtleistungsverbrauch von 461,08 pW/Hz
zugeordnet werden und dieser so erhaltene Wert verglichen werden
mit Werten, die bei anderen Algorithmen und/oder Konfigurationen
erhalten werden und/oder durch dedizierte Schaltkreise wie ASICs
zu erhalten sind.