-
Diese
Erfindung betrifft einen rekonfigurierbaren Prozessor und eine Halbleitervorrichtung
und, im Besonderen, einen rekonfigurierbaren Prozessor und eine
Halbleitervorrichtung mit einer Arithmetik- und Logikeinheitsgruppe,
die eine Vielzahl von Arithmetik- und Logikeinheiten enthält, und
einem Sequenzer zum Steuern der Operation der Arithmetik- und Logikeinheitsgruppe.
-
Nach
dem Versand von Produkten können eine
Veränderung
der Spezifikation, das Hinzufügen einer
Funktion, das Hinzufügen
eines neuen Dienstes oder dergleichen vorgenommen werden. Herkömmlicherweise
sind rekonfigurierbare Prozessoren vorgesehen worden, um Funktionen
zu verändern,
ohne Vorrichtungen neu herzustellen. Herkömmliche rekonfigurierbare Prozessoren
können den
obenerwähnten
Situationen nur gerecht werden, indem Schaltungskonfigurationsinformationen
ausgetauscht werden.
-
Zum
Beispiel sind der Digital Application Processor/Distributed Network
Architecture (registrierte Marke) (DAP/DNA), hergestellt bei IP-Flex
Inc., und der dynamisch rekonfigurierbare Prozessor (DRP), hergestellt
bei NEC Corporation, als solche rekonfigurierbaren Prozessoren bekannt.
-
Der
DAP/DNA enthält
eine Vielzahl von verbundenen Arithmetik- und Logikeinheitsmodulen,
die zweidimensional angeordnet sind, und eine Vielzahl von Informationselementen,
in denen eine Konfiguration in jedem Modul und die Verbindung zwischen Arithmetik-
und Logikeinheiten beschrieben sind, und bedient verschiedene Algorithmen
durch das Umschalten dieser Informationselemente.
-
Der
DRP umfasst eine Vielzahl von Arithmetik- und Logikeinheitsmodulen,
von denen jedes einen Instruktions speicher, einen Instruktionsdecodierer
und eine Arithmetik- und
Logikeinheit enthält,
die zweidimensional angeordnet sind. Die Operation der Vielzahl
von Arithmetik- und Logikeinheitsmodulen wird durch eine Zustandsübergangsverwaltungssektion
verwaltet. Die Zustandsübergangsverwaltungssektion
hat eine Zustandsübergangstabelle.
Durch das Bezeichnen einer Adresse in einem Instruktionsspeicher,
um durch jedes Arithmetik- und Logikeinheitsmodul ausgeführt zu werden,
gemäß der Zustandsübergangstabelle
selektiert die Zustandsübergangsverwaltungssektion
eine Instruktion und bewirkt, dass jedes Arithmetik- und Logikeinheitsmodul diese
ausführt.
-
Die
herkömmlichen
rekonfigurierbaren Prozessoren haben, wie oben beschrieben, eine
Arithmetik- und Logikeinheitsgruppe, in der eine Vielzahl von Arithmetik-
und Logikeinheiten (ALUs) enthalten ist. Die Operation von jeder
Arithmetik- und Logikeinheit, die in der Arithmetik- und Logikeinheitsgruppe enthalten
ist, und die Verbindung zwischen Arithmetik- und Logikeinheiten
können
auf der Basis von Einstellinformationen rekonfiguriert werden. Ein
Register zum Halten eines Eingangswertes ist mit jeder Arithmetik- und Logikeinheit
verbunden. 7 zeigt die Struktur von Arithmetik-
und Logikeinheiten und Registern, die in einem herkömmlichen
rekonfigurierbaren Prozessor enthalten sind.
-
ALUs 901 und 902,
die in einem herkömmlichen
rekonfigurierbaren Prozessor enthalten sind, tauschen Daten über einen
Bus 910 aus und führen vorbestimmte
Operationsprozesse aus. Register 903 und 904 zum
Halten eines Eingangswertes, der über den Bus 910 eingegeben
wird, sind mit der ALU 901 fest verbunden. Ähnlich sind
Register 905 und 906 zum Halten eines Eingangswertes,
der über
den Bus 910 eingegeben wird, mit der ALU 902 fest
verbunden. Die Register 903 und 904 sind sozusagen
jeweilig mit zwei Eingangsports der ALU 901 fest verbunden,
und die Register 905 und 906 sind jeweilig mit zwei
Eingangsports der ALU 902 fest verbunden. Bei dem herkömmlichen
rekonfigurierbaren Prozessor ist auf diese Weise ein Register mit
einem Eingangsport einer ALU fest verbunden.
-
Indessen
ist ein Prozessor eines Computers mit eingeschränktem Befehlsvorrat (RISC-Prozessor),
worin eine Vielzahl von Sätzen
von Registerdateien, auf die von einem externen Coprozessor zugegriffen
werden kann, mit einer ALU verbunden ist, als Beispiel bekannt,
bei dem eine Vielzahl von Registern mit einer ALU verbunden ist
(siehe zum Beispiel die veröffentlichten Übersetzungen
ins Japanische der PCT International Publication for Patent Applications
Nr. 2002-512399, 3).
-
Bei
herkömmlichen
rekonfigurierbaren Prozessoren wird durch das Umschalten der Konfiguration
einer arbeitenden Arithmetik- und Logikeinheitsgruppe im Laufe der
Zeit die Leistung gemindert. 8 zeigt
die Zeit, zu der das Umschalten einer Konfiguration in einem herkömmlichen
rekonfigurierbaren Prozessor ausgeführt wird. Die Konfiguration einer
Arithmetik- und Logikeinheitsgruppe wird gemäß den Inhalten von Prozessen
umgeschaltet, die durch Anwendungen 1 und 2 ausgeführt werden.
-
Bei
den herkömmlichen
rekonfigurierbaren Prozessoren beträgt die Anzahl von Registern,
die für jede
Arithmetik- und
Logikeinheit vorgesehen ist, immer eins. Um eine Konfiguration für die Anwendung 1
(921) in eine Konfiguration für die Anwendung 2 (922)
umzuschalten, werden deshalb Daten, die durch die Anwendung 1 (921)
erzeugt wurden, von einem Register nach Beendigung der Anwendung
1 (921) als Resultat des Exportierens der Daten (931) ausgegeben,
und dann erfolgt das Umschalten auf die Konfiguration für die Anwendung
2 (922). Um die Konfiguration für die Anwendung 2 (922)
auf die Konfiguration für
die Anwendung 1 (921) umzuschalten, wird derselbe Prozess
ausgeführt,
und dann erfolgt das Umschalten auf die Konfiguration für die Anwendung
1 (921).
-
Wenn
eine Anwendung umgeschaltet wird, wird eine Extrazeit zum Exportieren
von Daten benötigt,
wie oben angegeben. Als Resultat wird durch das Umschalten einer
Anwendung auf der Basis einer feinen Zeitteilung die Leistung gemindert.
Um des Weiteren ein Resultat zu halten, das durch Ausführen der
Anwendung 1 erhalten wurde, und es zu verwenden, wenn die Anwendung
1 zum zweiten Mal ausgeführt
wird, müssen
Daten in einer Speichervorrichtung, wie etwa einem Speicher, gesichert
werden. Dies hat einen großen
Einfluss auf die Leistung.
-
Zusätzlich ist
bei den herkömmlichen
rekonfigurierbaren Prozessoren eine Fehlersuche in einer Arithmetik-
und Logikeinheitsgruppe schwierig. In manchen Fällen ist es notwendig, den
Zustand zu jeder Zeit einer Eingabe und einer Ausgabe in eine bzw.
von einer Arithmetik- und Logikeinheit (Werte von Registern) zur
Fehlersuche zu kennen. Um jedoch Daten zu entnehmen, muss die Operation
vollständig
gestoppt werden oder muss der Zustand von Schaltungen und Daten
nach einem Stopp ganz und gar verworfen werden. Bei den herkömmlichen
rekonfigurierbaren Prozessoren ist ein Register jedoch zwischen
Arithmetik- und Logikeinheiten angeordnet, so dass der Wert des
Registers nur über
die Arithmetik- und Logikeinheiten nach außen ausgegeben werden kann.
Ein Register ist mit jeder Arithmetik- und Logikeinheit verbunden.
Um den Wert eines Registers zu einem besonderen Zeitpunkt extern
zu erhalten, müssen
daher Operationen, die all den Arithmetik- und Logikeinheiten zugeteilt
sind, temporär
verändert
werden in "Keine
Operation" (No Operation: NOP),
um Daten sequentiell fließen
zu lassen. In diesem Fall fließen
Daten, die durch Operationen vor der Veränderung der Operationen erhalten
werden. Nachdem die Daten zur Fehlersuche entnommen sind, ist es
deshalb unmöglich,
die Operationen wiederaufzunehmen.
-
Indessen
werden bei herkömmlichen
Vorrichtungen, in denen eine Vielzahl von Sätzen von Registerdateien durch
das Ausführen
einer Kontextumschaltung umgeschaltet wird, alle Registerdateien
gleichzeitig im Block umgeschaltet. Deshalb ist es unmöglich, eine
Feinumschaltung von individuellen Arithmetik- und Logikeinheiten,
Arithmetik- und Logikeinheitsgruppen oder dergleichen auszuführen.
-
'Architectural Trade-Offs
in Dynamically Reconfigurable Processors', Enzler, Swiss Federal Institute of
Technology, Dissertation ETH Nr. 15423, Januar 2004, diskutiert
die Konstruktion und Bewertung von dynamisch rekonfigurierbaren
Prozessorarchitekturen in Hinblick auf die eingebettete Rechendomäne. Es wird
ein rekonfigurierbares Array offenbart, worin Registersätze für eine Arithmetik-
und Logikeinheit (ALU) vorgesehen sind, so dass jedem logischen
Inhalt sein eigener, dedizierter Registersatz zugeordnet werden
kann.
-
'Serial Scan, Design
for Test, JTAG ... An overview and introduction', Suhr, Wescon Technical Papers, Western
Periodicals Co., North Hollywood, US, Bd. 33, 1. November 1989,
Seiten 290-293, diskutiert die Methodologien, die bei der Konstruktion, beim
Bau und beim Test elektronischer Systeme verwendet werden und die
testbewusste Konstruktion, den Selbsttest und die Serienabtastung
enthalten.
-
Ein
rekonfigurierbarer Prozessor mit einer Arithmetik- und Logikeinheitsgruppe,
die eine Vielzahl von Arithmetik- und
Logikeinheiten enthält,
und einem Sequenzer zum Steuern der Operation der Arithmetik- und
Logikeinheitsgruppe wird durch die vorliegende Erfindung vorgesehen.
Dieser rekonfigurierbare Prozessor hat auch Registergruppen, die zwischen
Eingangsports der Vielzahl von Arithmetik- und Logikeinheiten und
einer vorhergehenden Stufe angeordnet sind, von welcher der Vielzahl
von Arithmetik- und Logikeinheiten Daten eingegeben werden, wobei
jede eine Vielzahl von Registern zum Halten der Daten enthält, die
von der vorhergehenden Stufe der Vielzahl von Arithmetik- und Logikeinheiten eingegeben
werden; und Selektoren zum Selektieren von Registern, die mit der
Vielzahl von Arithmetik- und Logikeinheiten zu verbinden sind, von
den Registergruppen gemäß Instruktionen
von dem Sequenzer und zum Verbinden der selektierten Register mit
den Eingangsports der Vielzahl von Arithmetik- und Logikeinheiten;
bei dem: ein Register, das in einer Registergruppe enthalten ist,
anderen Registern zugeordnet ist, die in anderen Registergruppen
innerhalb einer vorbestimmten größeren Gruppe
enthalten sind und die gleichzeitig mit dem Register selektiert
werden, das in der Registergruppe enthalten ist, und gemeinsam mit
den selektierten anderen Registern, die in den anderen Registergruppen
innerhalb der vorbestimmten größeren Gruppe
enthalten sind, einen Satz bildet; und die Selektoren, die mit den
Registergruppen innerhalb der vorbestimmten größeren Gruppe verbunden sind,
die Register, die den Satz bilden, gemäß Instruktionen von dem Sequenzer
selektieren; dadurch gekenn zeichnet, dass die Register, die in dem
Satz enthalten sind, seriell verbindbar sind; und die Register,
die in dem Satz enthalten sind, mit der vorhergehenden Stufe in
einem Zustand verbunden sind, wenn die Register durch die Selektoren
auch mit den Arithmetik- und Logikeinheiten verbunden sind, und
in einem Zustand, wenn die Register durch die Selektoren nicht mit
den Arithmetik- und Logikeinheiten verbunden sind, seriell miteinander
verbunden sind.
-
Zusätzlich wird
durch die vorliegende Erfindung eine Halbleitervorrichtung vorgesehen,
die eine Arithmetik- und Logikeinheitsgruppe hat, die eine Vielzahl
von Arithmetik- und
Logikeinheiten enthält, und
einen Sequenzer zum Steuern der Operation der Arithmetik- und Logikeinheitsgruppe,
und in der der Operationszustand der Arithmetik- und Logikeinheitsgruppe
durch den Sequenzer rekonfigurierbar ist. Diese Halbleitervorrichtung
hat auch Registergruppen, die zwischen Eingangsports der Vielzahl von
Arithmetik- und Logikeinheiten und einer vorhergehenden Stufe angeordnet
sind, von welcher der Vielzahl von Arithmetik- und Logikeinheiten
Daten eingegeben werden, wobei jede eine Vielzahl von Registern
zum Halten der Daten enthält,
die von der vorhergehenden Stufe der Vielzahl von Arithmetik- und
Logikeinheiten eingegeben werden; und Selektoren zum Selektieren
von Registern, die mit der Vielzahl von Arithmetik- und Logikeinheiten
zu verbinden sind, von den Registergruppen gemäß Instruktionen von dem Sequenzer
und zum Verbinden der selektierten Register mit den Eingangsports
der Vielzahl von Arithmetik- und Logikeinheiten; bei der: ein Register,
das in einer Registergruppe enthalten ist, anderen Registern zugeordnet
ist, die in anderen Registergruppen innerhalb einer vorbestimmten
größeren Gruppe
enthalten sind und die gleichzeitig mit dem Register selektiert
werden, das in der Registergruppe enthalten ist, und gemeinsam mit
den selektierten anderen Registern, die in den anderen Registergruppen innerhalb
der vorbestimmten größeren Gruppe
enthalten sind, einen Satz bildet; und die Selektoren, die mit den
Registergruppen innerhalb der vorbestimmten größeren Gruppe verbunden sind,
die Register, die den Satz bilden, gemäß Instruktionen von dem Sequenzer
selektieren; dadurch gekennzeichnet, dass die Register, die in dem
Satz enthalten sind, seriell verbindbar sind; und die Register,
die in dem Satz enthalten sind, mit der vorhergehenden Stufe in einem
Zustand verbunden sind, wenn die Register durch die Selektoren auch
mit den Arithmetik- und Logikeinheiten verbunden sind, und in einem
Zustand, wenn die Register durch die Selektoren nicht mit den Arithmetik-
und Logikeinheiten verbunden sind, seriell miteinander verbunden
sind.
-
Die
obigen und andere Merkmale und Vorteile der vorliegenden Erfindung
gehen aus der folgenden Beschreibung in Verbindung mit den beiliegenden
Zeichnungen hervor, die bevorzugte Ausführungsformen der vorliegenden
Erfindung beispielhaft darstellen und in denen:
-
1 eine
schematische Ansicht der vorliegenden Erfindung ist, die auf Ausführungsformen
angewendet wird;
-
2 ein
Blockdiagramm ist, das die Struktur eines gesamten rekonfigurierbaren
Prozessors gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt;
-
3 ein
Beispiel für
die Struktur eines Konfigurationsspeichers gemäß der Ausführungsform der vorliegenden
Erfindung zeigt;
-
4 ein
Beispiel für
die Struktur einer Fensterregistersektion gemäß der Ausführungsform zeigt;
-
5 ein
Beispiel für
die Struktur eines Fensters gemäß der Ausführungsform
zeigt;
-
6 ein
Zeitlagendiagramm ist, das ein Beispiel für das Umschalten der Fensterregistersektion
gemäß der Ausführungsform
zeigt;
-
7 die
Struktur von Arithmetik- und Logikeinheiten und Registern zeigt,
die in einem herkömmlichen
rekonfigurierbaren Prozessor enthalten sind;
-
8 die
Zeit zeigt, zu der das Umschalten einer Konfiguration in einem herkömmlichen
rekonfigurierbaren Prozessor erfolgt.
-
Ein
rekonfigurierbarer Prozessor und eine Halbleitervorrichtung, die
die Erfindung verkörpern, können Operationen
fein steuern, ohne beim Umschalten einer Anwendung auf Zeitteilungsbasis
oder bei der Fehlersuche einen Einfluss auf andere Funktionen auszuüben.
-
Unter
Bezugnahme auf die Zeichnungen wird nun eine Ausführungsform
der vorliegenden Erfindung beschrieben. Zuerst wird ein Überblick über die
vorliegende Erfindung gegeben, die auf die Ausführungsform angewendet wird,
und dann werden die konkreten Inhalte der Ausführungsform beschrieben.
-
1 ist
eine schematische Ansicht der vorliegenden Erfindung, die auf die
Ausführungsform angewendet
wird. Ein rekonfigurierbarer Prozessor gemäß der Ausführungsform der vorliegenden
Erfindung umfasst eine Arithmetik- und Logikeinheitsgruppe (ALU-Gruppe),
die eine Vielzahl von ALUs enthält,
die beispielsweise als Matrix angeordnet sind, und einen Sequenzer 2 zum
Steuern der Operation der ALU-Gruppe.
-
Zum
Beispiel sind zwei Eingangsports einer ALU 1, die in der
ALU-Gruppe enthalten ist, über
Selektoren 4 und 6 mit jeweiligen Registergruppen 3 und 5 verbunden.
-
Die
ALU 1 akzeptiert Daten, die von einer vorhergehenden Stufe
ausgegeben werden, über
die Registergruppen 3 und 5 und die Selektoren 4 und 6 und führt vorbestimmte
Operationen, wie beispielsweise arithmetische Operationen und logische
Operationen, unter der Steuerung des Sequenzers 2 aus. Die
vorhergehende Stufe, von der die Daten ausgegeben werden, ist zum
Beispiel eine andere ALU, die durch den Sequenzer 2 mit
der ALU 1 verbunden ist.
-
Der
Sequenzer 2 hält
eine Vielzahl von Einstellinformationselementen, in denen die Konfiguration
der ALU-Gruppe, wie etwa die Operation jeder ALU, die in der ALU-Gruppe
enthalten ist, und die Verbindung zwischen ALUs, die zum Ausführen jeder Anwendung
erforderlich ist, beschrieben ist, und schaltet den Zustand der
ALU-Gruppe durch das Umschalten der Einstellinformationen um und
führt eine gewünschte Anwendung
aus. Zusätzlich
steuert der Sequenzer 2 die Selektoren 4 und 6 gemäß einem selektierten
Zustand und selektiert Register, die in den Registergruppen 3 und
5 enthalten sind und mit der ALU 1 zu verbinden sind, durch
die Selektoren 4 und 6.
-
Jede
der Registergruppen 3 und 5 enthält eine
Vielzahl von Registern, die unabhängig voneinander arbeiten können. Die
Registergruppe 3 enthält ein
Register 1 (3a), ein Register 2 (3b) und ein Register
3 (3c). Die Registergruppe 5 enthält ein Register 1 (5a),
ein Register 2 (5b) und ein Register 3 (5c). Eines
der Register, die in der Registergruppe 3 enthalten sind, wird durch
den Selektor 4 selektiert und mit der ALU 1 verbunden. Ähnlich wird
eines der Register, die in der Registergruppe 5 enthalten sind,
durch den Selektor 6 selektiert und mit der ALU 1 verbunden.
Die selektierten Register sind zwischen der vorhergehenden Stufe
und den Eingangsports der ALU 1 verbunden, halten die Daten,
die von der vorhergehenden Stufe ausgegeben werden (Daten, die der ALU 1 eingegeben
werden), und geben sie an die ALU 1 aus. Diese Daten werden
bis zur nächsten Operationszeitlage
gehalten. Die Länge
eines Registers entspricht der Länge
von Daten, die der damit verbundenen ALU 1 eingegeben werden.
Das heißt, falls
die Länge
der Daten, die der ALU 1 eingegeben werden, acht Bits beträgt, beläuft sich
die Länge
eines Registers dann auf acht Bits. Falls die Länge von Daten, die der ALU 1 eingegeben
werden, sechzehn Bits beträgt,
beläuft
sich die Länge
eines Registers dann auf sechzehn Bits. Falls die Länge von
Daten, die der ALU 1 eingegeben werden, zweiunddreißig Bits
beträgt,
beläuft
sich die Länge
eines Registers dann auf zweiunddreißig Bits. Jede Registergruppe kann
eine beliebige Anzahl von Registern enthalten.
-
Unter
der Steuerung des Sequenzers 2 selektieren die Selektoren
4 und 6 jeweils ein Register von den Registergruppen 3 bzw. 5, mit
denen sie verbunden sind, und verbinden es mit der ALU 1.
Das heißt,
dass der Selektor 4 mit der Registergruppe 3 verbunden ist und eines
von dem Register 1 (3a), dem Register 2 (3b) und
dem Register 3 (3c) mit der ALU 1 verbindet. Der
Selektor 6 ist mit der Registergruppe 5 verbunden und verbindet
eines von dem Register 1 (5a), dem Register 2 (5b)
und dem Register 3 (5c) mit der ALU 1.
-
Nun
wird die Operation des rekonfigurierbaren Prozessors beschrieben,
der die obengenannte Struktur hat.
-
Register,
die zu selektieren sind und mit den zwei Eingangsports der ALU 1 in
verschiedenen Zuständen
der ALU- Gruppe zu
verbinden sind, sind in den Einstellinformationen registriert, die
durch den Sequenzer 2 gehalten werden. Der Sequenzer 2 steuert
nicht nur den Operationszustand der ALU-Gruppe, sondern auch das Umschalten
von Registern gemäß einem
selektierten Zustand. Nun wird das Umschalten von Registern beschrieben,
das ausgeführt
wird, wenn der Zustand der ALU-Gruppe umgeschaltet wird.
-
Die
ALU-Gruppe führt
vor dem Umschalten eine Anwendung aus. Unter der Steuerung des Sequenzers 2 selektieren
zu dieser Zeit die Selektoren 4 und 6 irgendein Register von den
Registergruppen 3 bzw. 5 und verbinden es mit der ALU 1.
Zum Beispiel werden das Register 1 (3a), das in der Registergruppe
3 enthalten ist, und das Register 1 (5a), das in der Registergruppe
5 enthalten ist, selektiert, und ein Datenstrom wird gebildet, durch
den die Daten, die von der Stufe unmittelbar vor der ALU 1 ausgegeben
werden (Daten, die der ALU 1 eingegeben werden), der ALU 1 über das
Register 1 (3a) und das Register 1 (5a) eingegeben
werden.
-
Wenn
der Sequenzer 2 bestimmt, den Zustand der ALU-Gruppe umzuschalten,
werden Instruktionen zum Umschalten von Registern ausgegeben. Gemäß den durch
den Sequenzer 2 ausgegebenen Instruktionen trennen die
Selektoren 4 und 6 die gegenwärtig
verbundenen Register und verbinden bezeichnete Register mit der
ALU 1. Zum Beispiel werden das Register 2 (3b),
das in der Registergruppe 3 enthalten ist, und das Register 2 (5b),
das in der Registergruppe 5 enthalten ist, selektiert. Als Resultat
werden die Daten, die von der Stufe unmittelbar vor der ALU 1 ausgegeben
werden, der ALU 1 über das
Register 2 (3b) und das Register 2 (5b) eingegeben,
und ein Datenstrom durch die neuen Register wird gebildet. Dadurch
wird es unnötig,
erzeugte Daten nach Beendigung des vorhergehenden Datenstroms zu
exportieren. Das heißt,
dass der Datenstrom sofort beim Umschalten der Anwendung umgeschaltet
werden kann. Deshalb wird die Leistung durch den Export von Daten
in den Speicher nicht gemindert.
-
Wenn
die Register umgeschaltet werden, verbleiben die letzten Daten,
die vor dem Umschalten eingegeben wurden, in dem Register 1 (3a)
und dem Register 1 (5a). Diese Daten können unter Verwendung von Verriegelungsmechanismen
gehalten werden. Diese Daten können
von außen
entnommen werden, indem im Voraus ein spezieller Datenweg gebildet
wird. Nachdem der Datenstrom umgeschaltet ist und ein vorbestimmter
Prozess ausgeführt
ist, kann die ALU-Gruppe als Resultat dessen in den Zustand vor
dem Umschalten versetzt werden. Darüber hinaus können die
Daten zum Beispiel zur Fehlersuche leicht entnommen werden. Außerdem sollten
bei der Rückkehr
von der Fehlersuche die ursprünglichen
Register selektiert werden. Daher übt die Fehlersuche keinen Einfluss
auf andere Funktionen aus.
-
Unter
Bezugnahme auf die Zeichnungen wird nun die Ausführungsform der vorliegenden
Erfindung eingehend beschrieben.
-
2 ist
ein Blockdiagramm, das die Struktur eines gesamten rekonfigurierbaren
Prozessors gemäß der Ausführungsform
der vorliegenden Erfindung zeigt.
-
Ein
rekonfigurierbarer Prozessor umfasst eine ALU-Gruppe 10, die eine Vielzahl
von ALUs enthält,
und einen Sequenzer 20 zum Steuern der Operation jedes
ALU-Moduls, das eine ALU hat und in der ALU-Gruppe 10 enthalten
ist.
-
Die
ALU-Gruppe 10 enthält
einen Konfigurationsspeicher 11, eine Verdrahtung und Umschaltung 12,
ALUs 13a, 13b, ... und 13c, Datenspeichervorrichtungen 13d, 13e usw.,
einen Zähler 13f und
eine Fensterregistersektion 14.
-
Der
Konfigurationsspeicher 11 speichert Einstellinformationen,
wie etwa Inhalte, die durch jedes ALU-Modul auszuführen sind,
das in der ALU-Gruppe 10 enthalten ist, Verdrahtungswege
zwischen ALU-Modulen und Daten, die für Operationen erforderlich
sind, zum Einstellen der Operation der ALU-Gruppe 10. Ein
Element der Einstellinformationen entspricht dem "Zustand" einer Schaltungskonfiguration
der ALU-Gruppe 10.
Eine Vielzahl von Zuständen
ist in dem Konfigurationsspeicher 11 eingestellt. Die ALU-Gruppe 10 arbeitet
in einem Zustand, der durch den Sequenzer 20 bezeichnet
wird. Jede ALU und die Verdrahtung und Umschaltung 12 arbeiten
gemäß Inhalten,
die in dem Konfigurationsspeicher 11 eingestellt sind.
Die Verdrahtung und Umschaltung 12 enthält eine Verdrahtungssektion
zum Herstellen von Verbindungen zwischen ALUs gemäß Inhalten,
die in dem Konfigurationsspeicher 11 eingestellt sind,
und eine Umschaltsektion zum Umschalten von Verbindungen gemäß Inhalten,
die in dem Konfigurationsspeicher 11 eingestellt sind.
Jede der ALUs 13a, 13b, ... und 13c führt eine
vorbestimmte Operation an Eingangssignalen aus, die über die
Verdrahtung und Umschaltung 12 und die Fensterregistersektion 14 eingegeben
werden, und gibt ein Resultat über
die Verdrahtung und Umschaltung 12 aus. Jedes ALU-Modul
enthält
die Datenspeichervorrichtungen 13d, 13e usw.,
die Speicher oder Register sind, zum Speichern von Daten zur Datenverarbeitung
und den Zähler 13f.
Zusätzlich
enthält
jedes ALU-Modul eine Schnittstelle zum Austauschen von Daten und
Adressen mit einer externen Einheit, einen Adressgenerator und dergleichen.
Die Fensterregistersektion 14 enthält eine Registergruppe, die
aus einer Vielzahl von Registern zum Halten von Daten gebildet ist,
und einen Verbinder (Selektor) zum Selektieren eines Registers von
der Gruppe und Verbinden desselben mit einer ALU. Die Fensterregistersektion 14 ist
gegenüber
den Eingangsports der ALUs angeordnet, die in der ALU-Gruppe 10 enthalten
sind. Die Fensterregistersektion 14 schaltet Register für alle ALUs,
für eine
ALU oder für
eine Gruppe von ALUs gemäß den im
Konfigurationsspeicher 11 eingestellten Inhalten um.
-
In 2 ist
die Fensterregistersektion 14 zwischen der Verdrahtung
und Umschaltung 12 und den ALUs 13a, 13b,
... und 13c angeordnet. Die Fensterregistersektion 14 kann
jedoch in der Verdrahtung und Umschaltung 12 oder den ALUs 13a, 13b,
... und 13c angeordnet sein. Zusätzlich kann die Fensterregistersektion 14 geteilt
sein, um sie in der Verdrahtung und Umschaltung 12 und
den ALUs 13a, 13b, ... und 13c anzuordnen.
In 2 ist der Konfigurationsspeicher 11 in
der ALU-Gruppe 10 angeordnet. Der Konfigurationsspeicher 11 kann
jedoch im Sequenzer 20 oder außerhalb der ALU-Gruppe 10 und
des Sequenzers 20 angeordnet sein. Zusätzlich kann der Konfigurationsspeicher 11 geteilt
sein, um ihn in der ALU-Gruppe 10 und
dem Sequenzer 20 anzuordnen.
-
Der
Sequenzer 20 enthält
eine Zustandssteuersektion 21, eine Zustandstabelle 22,
ein Register der Adresse des gegenwärtigen Zustandes 23 und
eine Fenstereinstellsteuersektion 24.
-
Die
Zustandssteuersektion 21 stellt einen Zustand, in den die
ALU-Gruppe 10 als Nächstes übergeht,
als Reaktion auf ein Umschaltbedingungssignal ein, das von der ALU-Gruppe 10 eingegeben wird.
Dieses Umschaltbedingungssignal enthält eine Mitteilung über das
Auftreten einer Umschaltbedingung und einen Umschaltbedingungscode.
Adressen, die in der Zustandstabelle 22 verwendet werden, sind
dieselben wie jene, die im Konfigurationsspeicher 11 verwendet
werden. Jeder Eintrag in der Zustandstabelle 22 speichert
einen Operationscode, der das Verhalten zu der Zeit eines Übergangs
zu dem nächsten
Eintrag angibt, und die Adresse eines Eintrags, die selektiert werden
kann. Das Register der Adresse des gegenwärtigen Zustandes 23 speichert
eine Adresse (in der Zustandstabelle 22 und dem Konfigurationsspeicher 11),
die den gegenwärtigen
Zustand angibt. Die Fenstereinstellsteuersektion 24 steuert
ein Register, das durch die Fensterregistersektion 14 gemäß dem Zustand
selektiert wird, der durch die Zustandssteuersektion 21 eingestellt
wurde.
-
In
dem obigen rekonfigurierbaren Prozessor arbeitet die ALU-Gruppe 10 in
einem Zustand, der auf Einstellinformationen an einer spezifizierten Adresse
in dem Konfigurationsspeicher 11 basiert, die durch den
Sequenzer 20 bezeichnet ist. Wenn die ALU-Gruppe 10 bestimmt,
dass eine Umschaltbedingung eingetreten ist, sendet die ALU-Gruppe 10 einen
Umschaltbedingungscode und ein Umschaltbedingungssignal an den Sequenzer 20.
In dem Sequenzer 20 wird die Zustandssteuersektion 21 durch das
Umschaltbedingungssignal gestartet, wird ein Zustand, in den die
ALU-Gruppe 10 als Nächstes übergeht,
gemäß dem Umschaltbedingungscode und
einem Eintrag in der Zustandstabelle 22 bestimmt, wird
eine Adresse (Zieladresse) berechnet, an der Einstellinformationen
registriert sind, die den Zustand angeben, und wird die berechnete
Zieladresse in dem Register der Adresse des gegenwärtigen Zustandes 23,
der Zustandstabelle 22 und dem Konfigurationsspeicher 11 eingestellt.
Als Resultat wird die spezifizierte Adresse im Konfigurationsspeicher 11 in
die Zieladresse verändert
und vollzieht die ALU-Gruppe 10 einen Übergang in den Zustand. Zu dieser
Zeit gibt die Fenstereinstellsteuersektion 24 Instruktionen
zum Umschalten von Registern aus und bezeichnet Register, die zu
selektieren sind, gemäß dem Zustand,
der durch die Zustandssteuersektion 21 eingestellt wurde.
Diese Instruktionen werden ausgegeben, um alle Register, die in
der Fensterregistersektion 14 enthalten sind, die Register,
die jeder Gruppe von ALUs entsprechen und im Voraus eingestellt
wurden, oder ein Register entsprechend jeder ALU umzuschalten, je
nach Bedarf.
-
Nun
wird der Konfigurationsspeicher 11 beschrieben. Ein Datenstrom
in der ALU-Gruppe 10 und Register, die zum Ausführen einer
Anwendung zu verwenden sind, sind im Konfigurationsspeicher 11 beschrieben. 3 zeigt
ein Beispiel für
die Struktur des Konfigurationsspeichers gemäß der Ausführungsform der vorliegenden
Erfindung.
-
Der
Konfigurationsspeicher 11 speichert Konfigurationsdaten,
die die Operation der ALU-Gruppe 10 in jedem Zustand bestimmen.
Bei diesem Beispiel sind Konfigurationsdaten 111, 112, 113, 114 usw.
gemäß Zuständen gespeichert.
Jeder Zustand (Konfiguration, Anordnung) wird durch eine Adresse
verwaltet.
-
Ein
Operationsmodus 111a, Informationen bezüglich der rekonfigurierbaren
Schaltungskonstruktion 111b, ein Zustand 1 (111c),
ein Zustand 2 (111d), ein Zustand 3 (111e) und
ein Zustand 4 (111f) sind für jeden Zustand gespeichert.
Der Operationsmodus 111a sind Informationen zum Identifizieren dieses
Zustandes. Die Informationen bezüglich
der rekonfigurierbaren Schaltungskonstruktion 111b sind Konstruktionsinformationen,
die die Operation von jeder ALU in einer rekonfigurierbaren Schaltung
und Verbindungen zwischen ALUs in diesem Operationsmodus angeben.
Wenn die Konstruktions informationen erzeugt werden, wird unter Verwendung
von spezifischen Registern ein spezifischer Datenstrom automatisch
und eindeutig bestimmt. Kandidaten für den nächsten Zustand dieser Schaltungskonfiguration
sind als Zustand 1 (111c), Zustand 2 (111d), Zustand
3 (111e) und Zustand 4 (111f) beschrieben. Tatsächlich sind
Adressen im Konfigurationsspeicher 11 direkt beschrieben
oder sind Daten beschrieben, aus denen diese Adressen durch das
Ausführen
von Operationen direkt erzeugt werden können. Jedem Kandidatenzustand
ist eine Umschaltbedingung zugeordnet. Wenn eine Umschaltbedingung
entsteht, wird der Prozess zum Vollziehen des Übergangs in den entsprechenden
Zustand ausgeführt.
In diesem Fall werden die Operation von jeder ALU, Verbindungen
zwischen ALUs sowie Register, die mit jeder ALU verbunden sind,
gemäß Informationen
eingestellt, die im Konfigurationsspeicher 11 gespeichert
sind. Die Anzahl von Zuständen,
die als Kandidaten registriert sind, kann beliebig selektiert werden.
-
Nun
wird die Struktur der Fensterregistersektion 14 beschrieben. 4 zeigt
ein Beispiel für
die Struktur der Fensterregistersektion gemäß der Ausführungsform. Dieselben Komponenten
von 4 wie jene, die in 2 gezeigt
sind, sind mit denselben Bezugszeichen versehen, und Beschreibungen von
ihnen werden weggelassen.
-
In
der Fensterregistersektion 14 ist eine Vielzahl von Registergruppen
und Selektoren zum Selektieren eines Registers von jeder Registergruppe und
Verbinden dessen mit einer ALU für
die ALUs 13a und 13b angeordnet. Bei diesem Beispiel
hat jede der ALUs 13a und 13b zwei Eingangsports.
Eine Registergruppe und ein Selektor sind mit jedem dieser Ports
verbunden. Das heißt,
dass eine Registergruppe, die das Fenster 1 (141a), das
Fenster 2 (142a) und das Fenster 3 (143a) enthält, und
ein Selektor 144a mit einem ersten Eingangsport der ALU 13a verbunden
sind. Eine Registergruppe, die das Fenster 1 (141b), das
Fenster 2 (142b) und das Fenster 3 (143b) enthält, und
ein Selektor 144b sind mit einem zweiten Eingangsport der
ALU 13a verbunden. Eine Registergruppe, die das Fenster
1 (141c), das Fenster 2 (142c) und das Fenster
3 (143c) enthält,
und ein Selektor 144c sind mit einem ersten Eingangsport
der ALU 13b verbunden. Eine Registergruppe, die das Fenster
1 (141d), das Fenster 2 (142d) und das Fenster
3 (143d) enthält,
und ein Selektor 144d sind mit einem zweiten Eingangsport
der ALU 13b verbunden.
-
Register
in diesen Registergruppen, die zu derselben Zeit selektiert werden,
bilden einen Satz. Falls zum Beispiel das Fenster 1 (141a),
das Fenster 1 (141b), das Fenster 1 (141c) und
das Fenster 1 (141d) zum Ausführen einer Anwendung selektiert werden,
bilden diese Fenster dann einen Satz. Ähnlich bilden das Fenster 2
(142a), das Fenster 2 (142b), das Fenster 2 (142c)
und das Fenster 2 (142d) einen Satz und bilden das Fenster
3 (143a), das Fenster 3 (143b), das Fenster 3
(143c) und das Fenster 3 (143d) einen Satz. Fenster
in diesen Registergruppen, die einen Satz bilden, werden beliebig selektiert.
Fenster, die einen Satz bilden, sind seriell verbunden. Im Folgenden
wird ein Weg, der durch das serielle Verbinden von Registern gebildet
wird, die einen Satz bilden, als Blindweg bezeichnet. Durch das
Bilden eines Blindweges im Voraus durch das serielle Verbinden von
Registern, die in demselben Satz enthalten sind, können nicht
nur vorbestimmte Daten gemäß einem
Datenstrom gesendet werden, der in dem Konfigurationsspeicher 11 beschrieben ist,
sondern können
Daten, die in einem nichtselektierten Register gespeichert sind,
als Datenstrom über
den Blindweg gesendet werden.
-
Die
detaillierte Struktur jedes Fensters, das in der Fensterregistersektion 14 enthalten
ist, wird nun beschrieben. 5 zeigt
ein Beispiel für
die Struktur eines Fensters gemäß der Ausführungsform. 5 zeigt
eines der Fenster, die in der Fensterregistersektion enthalten sind.
-
Das
Fenster 1 (141a) enthält
einen Schalter 1411a zum Umschalten der Eingabe und ein
Register 1412a. Insgesamt drei Signalleitungen, das heißt eine
Signalleitung von einem Register 1512 in dem Fenster 151,
das mit einer ALU in der Nähe
verbunden ist, eine Signalleitung von der Verdrahtung und Umschaltung 12 und
eine Signalleitung, die mit der Außenseite des Registers 1412a verbunden
ist, sind mit der Eingangsseite des Schalters 1411a verbunden.
Das Register 1512 und das Register 1412a, die miteinander
verbunden sind, sind in demselben Satz enthalten.
-
Der
Schalter 1411a selektiert einen Eingang, der gemäß dem Zustand
der Verbindung zwischen dem Fenster 1 (141a) und einer
ALU 13 zu verbinden ist. Wenn zum Beispiel das Fenster
1 (141a) durch einen Selektor mit der ALU 13 verbunden
wird und in einem aktiven Zustand ist, ist die Eingangsseite des Schalters 1411a mit
der Verdrahtung und Umschaltung 12 verbunden. Dadurch können Daten,
die über die
Verdrahtung und Umschaltung 12 eingegeben werden, an die
ALU 13 ausgegeben werden und in dem Register 1412a gesichert
werden. Wenn das Fenster 1 (141a) von der ALU 13 getrennt
wird und in einen aktiven Zustand übergeht, wird die Eingangsseite
des Schalters 1411a mit der Ausgangsseite des Registers 1412a verbunden.
Dadurch werden Daten, die zuletzt eingegeben wurden, als das Fenster
1 (141a) in einem aktiven Zustand war, in dem Fenster 1
(141a) gehalten. Wenn das Fenster 1 (141a) in
einem inaktiven Zustand ist, kann die Eingangsseite des Schalters 1411a mit
der Ausgangsseite des Registers 1512 verbunden sein. Das
Register 1512 und das Register 1412a sind in demselben
Satz enthalten und sind seriell verbunden. Die Eingangsseite des Schalters 1411a wird
mit der Ausgangsseite des Registers 1512 verbunden, wenn
eine spezifische Bedingung eintritt, wie wenn Instruktionen zur
Fehlersuche durch einen Sequenzer oder einen Fehlersuchblock erteilt
werden, der die Fehlersuche steuert. Dadurch können die Daten, die in dem
Fenster 1 (141a) in einem inaktiven Zustand gehalten werden, über einen
Blindweg nach außen
ausgegeben werden, der durch das serielle Verbinden des Registers 1512 und des
Registers 1412a gebildet wurde.
-
Die
Struktur des Fensters 2 und des Fensters 3 ist dieselbe wie jene
des Fensters 1 (141a).
-
Nun
wird die Operation der Fensterregistersektion 14 beschrieben,
die die obige Struktur hat.
-
Zum
Beispiel werden Konfigurationsdaten im Voraus im Konfigurationsspeicher 11 eingestellt,
so dass das Register Fenster 1 zum Ausführen einer Anwendung 1 verwendet
wird und das Register Fenster 2 zum Ausführen einer Anwendung 2 verwendet
wird. Immer wenn eine vorbestimmte Bedingung eintritt, erfolgt ein
Umschalten, und die Anwendungen 1 und 2 werden alternierend ausgeführt.
-
Zuerst
wird die Anwendung 1 ausgeführt
und selektieren die Selektoren 144a, 144b, 144c und 144d in
der Fensterregistersektion 14 die Register Fenster 1 (141a),
Fenster 1 (141b), Fenster 1 (141c) bzw. Fenster
1 (141d). Wenn die Anwendung 1 ausgeführt wird, wird das Fenster
1 auf diese Weise in einen Datenstrom inkorporiert und wird ein
Prozess ausgeführt.
-
Falls
eine Umschaltbedingung entsteht, während die Anwendung 1 ausgeführt wird,
schaltet der Sequenzer 20 eine Adressbezeichnung im Konfigurationsspeicher 11 auf
die Anwendung 2 um und ändert
die Konfiguration einer ALU-Gruppe,
um die Anwendung 2 auszuführen. Zu dieser Zeit werden den
Selektoren 144a, 144b, 144c und 144d Instruktionen über den
Konfigurationsspeicher 11 oder direkt von dem Sequenzer 20 erteilt,
um die Register Fenster 1 (141a), Fenster 1 (141b),
Fenster 1 (141c) bzw. Fenster 1 (141d) zu trennen
und die Register Fenster 2 (142a), Fenster 2 (142b),
Fenster 2 (142c) bzw. Fenster 2 (142d) mit den
ALUs 13a und 13b zu verbinden. Jedes der Register
Fenster 1 (141a), Fenster 1 (141b), Fenster 1
(141c) und Fenster 1 (141d), die getrennt werden,
geht in einen inaktiven Zustand über,
vollzieht den Übergang
in den Verriegelungsmodus, bei dem es seine Ausgabe aufnimmt, und hält zuletzt
eingegebene Daten, während
die Anwendung 1 ausgeführt
wurde.
-
Als
Nächstes
entsteht eine Umschaltbedingung, während die Anwendung 2 ausgeführt wird, und
es erfolgt ein Umschalten von der Anwendung 2 auf die Anwendung
1. Zu dieser Zeit werden die Register Fenster 2 (142a),
Fenster 2 (142b), Fenster 2 (142c) und Fenster
2 (142d) getrennt und werden die Register Fenster 1 (141a),
Fenster 1 (141b), Fenster 1 (141c) und Fenster
1 (141d) mit den ALUs 13a und 13b verbunden.
Dies ist die Umkehrung der Operation, die zum Umschalten der Anwendung
1 auf die Anwendung 2 ausgeführt
wurde. Jedes der Register Fenster 1 (141a), Fenster 1 (141b),
Fenster 1 (141c) und Fenster 1 (141d), das in
einen aktiven Zustand übergeht,
hält wieder
die zuletzt eingegebenen Daten, als die Anwendung 1 ausgeführt wurde,
und kann sie bei Bedarf verwenden. Jedes der Register Fenster 2
(142a), Fenster 2 (142b), Fenster 2 (142c) und
Fenster 2 (142d) tritt in den Verriegelungsmodus ein. Dies
ist genauso wie bei der obigen Umschaltung von der Anwendung 1 auf
die Anwendung 2. Wenn deshalb die Anwendung 1 wieder auf die Anwendung 2
umgeschaltet wird, können
Daten verwendet werden, die in den Registern Fenster 2 (142a),
Fenster 2 (142b), Fenster 2 (142c) und Fenster
2 (142d) gehalten werden.
-
Nun
wird die obige Umschaltoperation unter Verwendung eines Zeitlagendiagramms
beschrieben. 6 ist ein Zeitlagendiagramm,
das ein Beispiel für
die Umschaltung der Fensterregistersektion gemäß der Ausführungsform zeigt. Bei diesem
Beispiel wird die Umschaltung zwischen der Anwendung 1 (die Register
Fenster 1 (141a), Fenster 1 (141b), Fenster 1
(141c) und Fenster 1 (141d) werden verwendet)
und der Anwendung 2 (die Register Fenster 2 (142a), Fenster
2 (142b), Fenster 2 (142c) und Fenster 2 (142d)
werden verwendet) zyklisch ausgeführt.
-
Der
Sequenzer kann Instruktionen zum Umschalten von Registern, wie oben
beschrieben, zu derselben Zeit ausgeben, zu der der Sequenzer eine Anwendung
(den Zustand der ALU-Gruppe)
umschaltet. In diesem Fall ist es nicht erforderlich, den Prozess
zum temporären
Sichern von Daten auszuführen.
Wenn in 6 die Verarbeitung von einem Sequenzblock
begonnen hat, werden Register umgeschaltet, wird das Fenster 1 (W1)
selektiert und wird sofort die Anwendung 1 ausgeführt. Ähnlich wird zu
Beginn des nächsten
Sequenzblocks das Fenster 2 (W2) selektiert und wird sofort die
Anwendung 2 ausgeführt.
Wie oben angegeben, erscheint abwechselnd zu jeder Umschaltzeitlage
eine Vielzahl von Datenströmen
und können
die Anwendungen mit hoher Geschwindigkeit ausgeführt werden.
-
Bei
den obigen Beispielen erfolgt ein Umschalten zwischen den Registern
Fenster 1 und den Registern Fenster 2. Zum Beispiel können jedoch auch
die Register Fenster 3 verwendet werden. Wie bei den obigen Beispielen
kann eine Anwendung durch das Umschalten von Registern leicht umgeschaltet
werden.
-
Bei
den obigen Beispielen werden alle Register umgeschaltet, die einen
Satz bilden. Jedoch können
mehrere Registergruppen für
jede ALU erzeugt werden, in Abhängigkeit
von den Anwendungen, und die Registerumschaltung kann durch die Registergruppe
gesteuert werden. Registergruppen können für eine ALU erzeugt werden.
-
Um
zum Beispiel eine Fehlersuche auszuführen, können Daten unter Verwendung
eines Blindweges übertragen
werden, der durch das serielle Verbinden von Registern gebildet
wird, die in demselben Satz enthalten sind. Dieser Blindweg unterscheidet
sich von einem Datenstrom, der auf dem Konfigurationsspeicher 11 basiert.
-
Bei
der vorliegenden Erfindung ist die Vielzahl von Registern zum Halten
von Daten vorgesehen, die den ALUs eingegeben werden, und werden Register
gemäß Instruktionen
von dem Sequenzer selektiert. Als Resultat können Register, die verwendet
werden, gemäß dem Operationszustand
des Sequenzers dynamisch umgeschaltet werden. Das heißt, dass
das Umschalten von Registern, die für einen Datenstrom in einem
Operationszustand verwendet werden, auf Register, die zu verwenden
sind, nachdem der Operationszustand umgeschaltet ist, zum Beispiel
gemäß Instruktionen
von dem Sequenzer zum Umschalten des Operationszustandes dynamisch
erfolgt. Als Resultat können
Daten in dem vorhergehenden Datenstrom gehalten werden und kann ein
Datenstrom sofort verändert
werden. Darüber
hinaus können
die Registergruppen und die Selektoren gemäß den ALUs betrieben werden,
kann irgendein spezifischer Datenweg bei einem Datenstrom dynamisch
verändert
werden und können
Daten auf dem Datenweg vor der Veränderung gehalten werden. Auf diese
Weise kann die Operation fein gesteuert werden, ohne einen Einfluss
auf andere Funktionen auszuüben.
-
Obiges
soll lediglich die Prinzipien der vorliegenden Erfindung veranschaulichen.
Da die Fachwelt darüber
hinaus auf zahlreiche Abwandlungen und Veränderungen kommen wird, soll
die Erfindung nicht auf die exakte Konstruktion und die gezeigten und
beschriebenen Anwendungen begrenzt sein, und daher enthält sie alle
geeigneten Abwandlungen, die in den Umfang der beigefügten Ansprüche fallen.