DE10133913A1 - Programmgesteuerte Einheit - Google Patents
Programmgesteuerte EinheitInfo
- Publication number
- DE10133913A1 DE10133913A1 DE10133913A DE10133913A DE10133913A1 DE 10133913 A1 DE10133913 A1 DE 10133913A1 DE 10133913 A DE10133913 A DE 10133913A DE 10133913 A DE10133913 A DE 10133913A DE 10133913 A1 DE10133913 A1 DE 10133913A1
- Authority
- DE
- Germany
- Prior art keywords
- storage device
- data
- program
- controlled unit
- unit according
- 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
Links
- 238000003860 storage Methods 0.000 claims abstract description 72
- 238000012432 intermediate storage Methods 0.000 claims abstract description 42
- 238000012546 transfer Methods 0.000 claims description 12
- 238000012946 outsourcing Methods 0.000 claims description 7
- 230000003139 buffering effect Effects 0.000 claims description 5
- 230000001427 coherent effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30116—Shadow registers, e.g. coupled registers, not forming part of the register space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Es wird eine programmgesteuerte Einheit beschrieben, mit einer Befehlsausführungseinheit zur Ausführung von durch die programmgesteuerte Einheit auszuführenden Befehlen, einer Speichereinrichtung zum Speichern von zur Befehlsausführung benötigten Daten und von aus der Befehlsausführungseinheit ausgegebenen Daten, und einer Zwischenspeichereinrichtung zum Zwischenspeichern der von der Befehlsausführungseinheit ausgegebenen Daten, wobei die Befehlsausführungseinheit in die Speichereinrichtung zu transferierende Daten in die Zwischenspeichereinrichtung schreibt, und wobei die in die Zwischenspeichereinrichtung geschriebenen Daten zu einem späteren Zeitpunkt in die Speichereinrichtung transferiert werden. Die beschriebene programmgesteuerte Einheit zeichnet sich dadurch aus, daß die Zwischenspeichereinrichtung durch einen Stack gebildet wird, und/oder daß eine Steuervorrichtung vorgesehen ist, die bei Bedarf eine vorübergehende Auslagerung von in der Zwischenspeichereinrichtung gespeicherten Daten in eine andere Speichereinrichtung veranlaßt. Eine solche programmgesteuerte Einheit kann eine gegebenenfalls erforderliche Zwischenspeicherung von Ergebnissen unter allen Umständen schnell und einfach durchführen.
Description
- Die vorliegende Erfindung betrifft eine Vorrichtung gemäß den Oberbegriffen der Patentansprüche 1 und 3, d. h. eine programmgesteuerte Einheit, mit einer Befehlsausführungseinheit zur Ausführung von durch die programmgesteuerte Einheit auszuführenden Befehlen, einer Speichereinrichtung zum Speichern von zur Befehlsausführung benötigten Daten und von aus der Befehlsausführungseinheit ausgegebenen Daten, und einer Zwischenspeichereinrichtung zum Zwischenspeichern der von der Befehlsausführungseinheit ausgegebenen Daten, wobei die Befehlsausführungseinheit in die Speichereinrichtung zu transferierende Daten in die Zwischenspeichereinrichtung schreibt, und wobei die in die Zwischenspeichereinrichtung geschriebenen Daten zu einem späteren Zeitpunkt in die Speichereinrichtung transferiert werden.
- Bei den genannten programmgesteuerten Einheiten handelt es sich um Mikroprozessoren, Mikrocontroller, Signalprozessoren etc., welche seit vielen Jahren in unzähligen Ausführungsformen bekannt sind.
- Die erwähnte Zwischenspeichereinrichtung ist beispielsweise erforderlich, wenn eine Befehlsausführungs-Pipeline verwendet wird, die mehrere Befehlsausführungsstufen umfaßt.
- Eine solche Befehlsausführungs-Pipeline ist in Fig. 4 dargestellt.
- Die in der Fig. 4 gezeigte Befehlsausführungs-Pipeline besteht aus einer Instruction-Fetch-Stufe IF, einer Instruction-Decode-Stufe ID, einer ersten Befehlsausführungs- bzw. Execution-Stufe EX1, und einer zweiten Befehlsausführungs- bzw. Execution-Stufe EX2, wobei ein auszuführender Befehl
- - in der Instruction-Fetch-Stufe IF aus einem Programmspeicher geholt wird,
- - in der Instruction-Decode-Stufe ID dekodiert wird, und
- - in den Execution-Stufen EX1 und EX2 ausgeführt wird.
- Bei einer solchen Befehlsausführungs-Pipeline kann es, wie nachfolgend anhand eines Beispiels näher beschrieben wird, unter bestimmten Umständen zu Problemen kommen.
- Das Beispiel betrifft die zwei nacheinander auszuführenden Befehle
mac d0,d1,a3 (Befehl B1), und
add d6,d2,d4 (Befehl B2),
wobei durch den Befehl B1 die Operation a3 = a3 + d0*d1, und durch den Befehl B2 die Operation d4 = d6 + d2 ausgeführt wird, und wobei
- - die Operanden d0 und d1 Bestandteile eines als eine zusammenhängende Einheit aus einem Datenspeicher ausgelesenen und in den Datenspeicher eingeschriebenen Wertes a0 sind,
- - der Operand d2 Bestandteil eines diesen Operanden und einen weiteren Operanden d3 umfassenden und als eine zusammenhängende Einheit aus dem Datenspeicher ausgelesenen und in den Datenspeicher eingeschriebenen Wertes a1 ist,
- - der Operand d4 Bestandteil eines diesen Operanden und einen weiteren Operanden d5 umfassenden und als eine zusammenhängende Einheit aus dem Datenspeicher ausgelesenen und in den Datenspeicher eingeschriebenen Wertes a2 ist, und
- - der Operand d6 Bestandteil des diesen Operanden und einen weiteren Operanden d7 umfassenden und als eine zusammenhängende Einheit aus dem Datenspeicher ausgelesenen und in den Datenspeicher eingeschriebenen Wertes a3 ist.
- Der zeitliche Ablauf der Ausführung der Befehle B1 und B2 ist in Fig. 5 gezeigt.
- Mit der Ausführung des Befehls B1 wird in einem Takt n begonnen; er wird im Takt n aus dem Programmspeicher geholt, im Takt n+1 dekodiert, und in den Takten n+2 und n+3 ausgeführt, wobei
- - zu Beginn der ersten Execution-Stufe EX1, genauer gesagt zu einem in der Fig. 5 mit dem Bezugszeichen of1 bezeichneten Zeitpunkt die Operanden d0 und d1 aus dem Datenspeicher ausgelesen werden,
- - zu Beginn der zweiten Execution-Stufe EX2, genauer gesagt zu einem in der Fig. 5 mit dem Bezugszeichen of2 bezeichneten Zeitpunkt der Operand a3 aus dem Datenspeicher ausgelesen wird, und
- - am Ende der zweiten Execution-Stufe EX2, genauer gesagt zu einem in der Fig. 5 mit dem Bezugszeichen wb1 bezeichneten Zeitpunkt der Operand a3 an den Datenspeicher ausgegeben wird.
- Mit der Ausführung des Befehls B2 wird in einem Takt n+1 begonnen; er wird im Takt n+1 aus dem Programmspeicher geholt, im Takt n+2 dekodiert, und in den Takten n+3 und n+4 ausgeführt, wobei
- - zu Beginn der ersten Execution-Stufe EX1, genauer gesagt zu einem in der Fig. 5 mit dem Bezugszeichen of3 bezeichneten Zeitpunkt die Operanden d6 und d2 aus dem Datenspeicher ausgelesen werden, und
- - am Ende der zweiten Execution-Stufe EX2, genauer gesagt zu einem in der Fig. 5 mit dem Bezugszeichen wb2 bezeichneten Zeitpunkt der Operand d4 an den Datenspeicher ausgegeben wird.
- Wie aus den vorstehenden Erläuterungen ersichtlich ist, greifen sowohl der Befehl B1 als auch der Befehl B2 auf a3 zu: B1 zum Zeitpunkt of2, um a3 zu holen, und zum Zeitpunkt wb1, um a3 zurückzuschreiben, und Befehl B2 zum Zeitpunkt of3, um d6 zu holen, welches, wie vorstehend bereits erwähnt wurde, ein Teil von a3 ist.
- Bei dem in der Fig. 5 dargestellten Normalfall, in welchem die Befehle B1 und B2 wie gezeigt unmittelbar nacheinander ausgeführt werden, greift der Befehl B2 auf a3 zu, bevor a3 durch den Befehl B1 verändert wird (of3 liegt vor wb1).
- Dies ist jedoch nicht so, wenn zwischen Befehl B1 und B2 andere Befehle, beispielsweise die Befehle einer Interrupt Service Routine ausgeführt werden.
- Wenn in Takt n ein Interrupt Request IR auftritt, wird zunächst noch der Befehl B1, dann die Befehle der auf den Interrupt Request hin auszuführenden Interrupt Service Routine, und erst danach der Befehl B2 ausgeführt.
- Dadurch, daß mit der Ausführung des Befehls B2 erst nach dem Ende der Ausführung des Befehls B1 begonnen wird, hat der von Befehl b2 verwendete Operand d6 einen anderen Wert als es der Fall wäre, wenn B1 und B2 wie in Fig. 5 gezeigt unmittelbar nacheinander ausgeführt werden; der Zeitpunkt, zu dem d6 (a3) aus dem Datenspeicher gelesen wird, liegt in diesem Fall nach dem Zeitpunkt wb1, zu welchem der Inhalt von a3 durch den Befehl B1 verändert wird. Es dürfte einleuchten und bedarf keiner näheren Erläuterung, daß damit durch B2 ein anderes Ergebnis erzeugt wird als es der Fall wäre, wenn B1 und B2 wie in Fig. 5 gezeigt unmittelbar nacheinander ausgeführt werden.
- Um dies zu vermeiden, wird die eingangs bereits erwähnte Zwischenspeichereinrichtung vorgesehen.
- Eine programmgesteuerte Einheit, die eine solche Zwischenspeichereinrichtung enthält, ist in Fig. 6 dargestellt.
- Die in der Fig. 6 gezeigte Anordnung ist Bestandteil eines superskalaren Prozessors und enthält
- - Befehlsausführungseinheiten BAU1, BAU2, BAU3 und BAU4,
- - eine erste Speichereinrichtung REG,
- - eine zweite Speichereinrichtung XMEM,
- - eine dritte Speichereinrichtung YMEM, und
- - eine Zwischenspeichereinrichtung ZS,
- - die Befehlsausführungseinheiten BAU1 bis BAU4 parallel arbeitende Befehlsausführungseinheiten sind, die gleichzeitig jeweils einen Befehl ausführen können, wodurch eine bis zu vier Befehle umfassende, im folgenden als Befehls-Bundle bezeichnete Gruppe von Befehlen auf einmal ausgeführt werden kann,
- - die Befehlsausführungseinheiten BAU1 und BAU2 sogenannte Load/Store-Einheiten sind, die Befehle ausführen, durch welche in der ersten Speichereinrichtung REG gespeicherte Daten in die zweite Speichereinrichtung XMEM oder in die dritte Speichereinrichtung YMEM oder umgekehrt transferiert werden können,
- - die Befehlsausführungseinheiten BAU3 und BAU4 sogenannte arithmetisch/logische Einheiten sind, die arithmetische und/oder logische Befehle ausführen, wobei zur Befehlsausführung benötigte Operanden aus der ersten Speichereinrichtung REG geholt werden, und wobei die Ergebnisse der Befehlsausführung entweder in die erste Speichereinrichtung REG oder in die Zwischenspeichereinrichtung ZS geschrieben werden,
- - die erste Speichereinrichtung REG eine eine Vielzahl von Registern enthaltende Registerbank ist, und
- - die Zwischenspeichereinrichtung ZS vier durch sogenannte Shadow Register gebildete Zwischenspeicherelemente enthält, wobei das erste Shadow Register SR1 der ersten Befehlsausführungseinheit BAU1, das zweite Shadow Register SR2 der zweiten Befehlsausführungseinheit BAU2, das dritte Shadow Register SR3 der dritten Befehlsausführungseinheit BAU3, und das vierte Shadow Register SR4 der vierten Befehlsausführungseinheit BAU4 zugeordnet ist.
- Die Ausführung der von den Befehlsausführungseinheiten BAU1 bis BAU4 auszuführenden Befehlen kann den Transfer von Daten aus den Befehlsausführungseinheiten zur ersten Speichereinrichtung REG umfassen. Hierbei wird wie folgt vorgegangen:
Im Normalfall, d. h., wenn die Abarbeitung des auszuführenden Programms nicht durch einen Interrupt Request oder sonstige Umstände unterbrochen oder verzögert wird, werden die aus den Befehlsausführungseinrichtungen BAU1 bis BAU4 ausgegebenen Daten (ohne Umweg über die Zwischenspeichereinrichtung ZS) in die erste Speichereinrichtung REG eingeschrieben; dies ist in der Fig. 6 durch mit dem Bezugszeichen n bezeichnete Pfeile veranschaulicht. - In besonderen Situationen, beispielsweise bei der Ausführung des letzten Befehls-Bundles vor der Ausführung einer Interrupt Service Routine geben die Befehlsausführungseinheiten BAU1 bis BAU4 die in die erste Speichereinrichtung REG zu transferierende Daten an die Zwischenspeichereinrichtung ZS aus, und werden die in die Zwischenspeichereinrichtung ZS geschriebenen Daten zu einem späteren Zeitpunkt an die erste Speichereinrichtung REG weitergeleitet, wobei der Zeitpunkt der Weiterleitung so gewählt ist, daß die Weiterleitung am Ende der ersten Execution-Phase EX1 des nach der Interrupt Service Routine auszuführenden Befehls-Bundles erfolgt. Dadurch kann erreicht werden, daß das nach der Interrupt Service Routine auszuführende Befehls-Bundle unter allen Umständen genau so ausgeführt wird, wie es ohne die zwischenzeitliche Ausführung der Interrupt Service Routine oder dergleichen Unterbrechungen der Fall wäre. Dies ist in der Fig. 6 durch mit dem Bezugszeichen s bezeichnete Pfeile veranschaulicht.
- In der Praxis ist allein das Vorsehen der in der Fig. 6 gezeigten Zwischenspeichereinrichtung ZS häufig nicht ausreichend, um einen störungsfreien Betrieb der programmgesteuerten Einheit zu gewährleisten. Dies ist beispielsweise der Fall, wenn die Ausführung einer Interrupt Service Routine unterbrochen werden muß, weil ein Interrupt mit höherer Priorität aufgetreten ist, und innerhalb der Interrupt Service Routine eine weitere Interrupt Service Routine ausgeführt werden muß. In diesem Fall müssen weitere Daten, die von den Befehlsausführungseinheiten BAU1 bis BAU4 ausgegeben wurden, genauer gesagt aufgrund der Befehle des letzten Befehls-Bundles vor der Ausführung der zweiten Interrupt Service Routine aus den Befehlsausführungseinheiten BAU1 bis BAU4 ausgegebene Daten zwischengespeichert werden. Hierzu sind jedoch aufgrund der Tatsache, daß zum betreffenden Zeitpunkt in der Zwischenspeichereinrichtung ZS noch nicht an die erste Speichereinrichtung REG weitergeleitete Daten gespeichert sind oder sein können, besondere Maßnahmen zu ergreifen, wobei diese Maßnahmen die Hardware vergrößern (größere Zwischenspeichereinrichtung) und/oder die Programmausführung verlangsamen (Auslagern der in der Zwischenspeichereinrichtung gespeicherten Ergebnisse durch in den Befehlsausführungseinheiten BAU1 und BAU2 ausgeführte Load/Store-Befehle).
- Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, die programmgesteuerte Einheit gemäß dem Oberbegriff der Patentansprüche 1 und 3 derart weiterzubilden, daß eine gegebenenfalls erforderliche Zwischenspeicherung von aus den Befehlsausführungseinheiten ausgegebenen Daten unter allen Umständen schnell und einfach durchgeführt werden kann.
- Diese Aufgabe wird erfindungsgemäß durch die in den Patentansprüchen 1 und 3 beanspruchten programmgesteuerten Einheiten gelöst.
- Die erfindungsgemäßen programmgesteuerten Einheiten zeichnen sich dadurch aus,
- - daß die Zwischenspeichereinrichtung durch einen Stack gebildet wird, und/oder
- - daß eine Steuervorrichtung vorgesehen ist, die bei Bedarf eine vorübergehende Auslagerung von in der Zwischenspeichereinrichtung gespeicherten Daten in eine andere Speichereinrichtung veranlaßt.
- Die Realisierung der Zwischenspeichereinrichtung als Stack erweist sich in mehrfacher Hinsicht als vorteilhaft.
- Einerseits kann die Zwischenspeichereinrichtung dadurch pro Befehlsausführungseinheit zwei oder mehrere Zwischenspeicherelemente enthalten und - noch wichtiger - diese Zwischenspeicherelemente, genauer gesagt
- - das Einschreiben von Daten in die Zwischenspeicherelemente,
- - eine zwischenzeitliche Auslagerung von in den Zwischenspeicherelementen gespeicherten Daten in eine andere Speichereinrichtung, und/oder
- - das Weiterleiten der in den Zwischenspeicherelementen gespeicherten Daten an die Speichereinrichtung, für welche diese bestimmt sind,
- Andererseits kann eine durch einen Stack gebildete Zwischenspeichereinrichtung sehr effizient genutzt werden. Insbesondere ist es möglich, daß - anders als bei der Realisierung der Zwischenspeichereinrichtung durch Shadow-Register - stets alle Zwischenspeicherelemente, in welchen keine Daten zwischengespeichert ist, zur Zwischenspeicherung von Daten verwendet werden können. Der Grund hierfür liegt darin, daß bei der Realisierung der Zwischenspeichereinrichtung durch einen Stack keine Notwendigkeit besteht, die einzelnen Zwischenspeicherelemente jeweils fest einer bestimmten Befehlsausführungseinheit zuzuordnen, also daß jede Befehlsausführungseinheit jedes Zwischenspeicherelement beschreiben kann, und daß in Situationen, in welchen eine Zwischenspeicherung von Daten erforderlich ist, nur so viele Zwischenspeicherelemente verbraucht werden, wie es zur Zwischenspeicherung der zwischenzuspeichernden Daten erforderlich ist (daß diejenigen Befehlsausführungseinheiten, die keine Daten auszugeben haben haben, kein Zwischenspeicherelement beschreiben oder in sonstiger Weise belegen).
- Dadurch, daß eine Steuervorrichtung vorgesehen ist, die bei Bedarf eine vorübergehende Auslagerung von in der Zwischenspeichereinrichtung gespeicherten Daten in eine andere Speichereinrichtung veranlaßt, kann auch bei einer Zwischenspeichereinrichtung mit nur wenigen Zwischenspeicherelementen sichergestellt werden, daß zwischenzuspeichernde Daten jederzeit und ohne Einschränkungen zwischengespeichert werden können. Durch den Umstand, daß die erwähnte Auslagerung durch eine eigene Steuereinrichtung und darüber hinaus auch nur dann durchgeführt wird, wenn hierfür ein Bedarf besteht, also beispielsweise nur dann durchgeführt wird, wenn die Zwischenspeichereinrichtung überzulaufen droht, hat die Auslagerung von in der Zwischenspeichereinrichtung gespeicherten Daten in eine andere Speichereinrichtung nur geringfügige Auswirkungen auf den Aufbau der programmgesteuerten Einheit und überhaupt keine Auswirkungen auf das auszuführende Programm und die Ausführung desselben.
- Vorteilhafte Weiterbildungen der Erfindung sind den Unteransprüchen, der folgenden Beschreibung und den Figuren entnehmbar.
- Die Erfindung wird nachfolgend anhand eines Ausführungsbeispiels unter Bezugnahme auf die Figuren näher erläutert. Es zeigen Fig. 1 den Aufbau der vorliegend besonders interessierenden Teile der im folgenden näher beschriebenen programmgesteuerten Einheit,
- Fig. 2 den Aufbau eines Elements eines in der Fig. 1 gezeigten Shadow-Stack,
- Fig. 3 ein Darstellung zur Veranschaulichung der bevorzugten Zeitpunkte, zu welchen im Shadow-Stack gespeicherte Daten ausgelagert und wieder zurückgeholt werden,
- Fig. 4 den Aufbau einer Befehlsausführungs-Pipeline, bei deren Verwendung die vorliegend betrachtete Zwischenspeicherung von Daten erforderlich sein kann,
- Fig. 5 eine Darstellung zur Veranschaulichung der Probleme, die bei der Verwendung der Befehlsausführungs-Pipeline gemäß Fig. 4 auftreten können, und
- Fig. 6 den Aufbau der vorliegend besonders interessierenden Teile einer herkömmlichen programmgesteuerten Einheit.
- Bei der im folgenden näher beschriebenen programmgesteuerten Einheit handelt es sich um einen Signalprozessor mit superskalarer Architektur, genauer gesagt um einen Signalprozessor mit einer Dual-Harvard-Load/Store-Architektur.
- Es sei bereits an dieser Stelle darauf hingewiesen, daß die nachfolgend näher beschriebenen Besonderheiten der programmgesteuerten Einheit auch bei anderen programmgesteuerten Einheiten wie Mikroprozessoren und Mikrocontrollern eingesetzt werden können, und daß sich die Besonderheiten auch bei programmgesteuerten Einheiten ohne superskalare Architektur vorteilhaft einsetzen lassen.
- Der prinzipielle Aufbau der betrachteten programmgesteuerten Einheit entspricht dem in Fig. 6 gezeigten und unter Bezugnahme darauf beschriebenen Aufbau; unterschiedlich sind "nur" die Realisierung und die Verwaltung der Zwischenspeichereinrichtung.
- Eine der Besonderheiten der Zwischenspeichereinrichtung besteht darin, daß diese durch einen im folgenden als Shadow- Stack bezeichneten Stack (durch einen FILO-Speicher) gebildet wird.
- Eine eine solche Zwischenspeichereinrichtung aufweisende programmgesteuerte Einheit ist in Fig. 1 gezeigt. Der Vollständigkeit halber sei darauf hingewiesen, daß von der betrachteten programmgesteuerten Einheit nur die vorliegend besonders interessierenden Bestandteile derselben gezeigt sind und beschrieben werden.
- Die gezeigte programmgesteuerte Einheit umfaßt
- - Befehlsausführungseinheiten BAU1, BAU2, BAU3 und BAU4,
- - eine erste Speichereinrichtung REG,
- - eine zweite Speichereinrichtung XMEM,
- - eine dritte Speichereinrichtung YMEM,
- - eine Zwischenspeichereinrichtung ZS, und
- - eine Stack-Steuereinrichtung SC,
- In den Shadow-Stack SS werden jeweils die Daten eingeschrieben, die aufgrund der Befehle des Befehls-Bundles, welches unmittelbar vor der Ausführung einer Interrupt Service Routine oder einer sonstigen Programmausführungs-Unterbrechung ausgeführt wird, aus den Befehlsausführungseinheiten ausgegeben werden. Diese Daten bleiben im Shadow-Stack bis zum Ende der Interrupt Service Routine gespeichert, und werden danach, genauer gesagt am Ende der ersten Execution-Phase EX1 des nach der Beendigung der Interrupt Service Routine auszuführenden Befehls-Bundles an die erste Speichereinrichtung REG weitergeleitet.
- Der Shadow-Stack SS enthält eine Vielzahl von Speicherelementen SSE, von welchen jedes
- - einen Ergebnis-Abschnitt EA zum Speichern der aus einer der Befehlsausführungseinheiten ausgegebenen Daten,
- - einen Destinations-Abschnitt DA zum Speichern der Stelle innerhalb der ersten Speichereinrichtung REG, an welche die im Ergebnis-Abschnitt EA gespeicherten Daten später zu transferieren sind, und
- - einen Interrupt-Level-Abschnitt ILA zum Speichern des Interrupt-Levels, d. h. zum Speichern der Interrupt-Service- Routinen-Verschachtelungstiefe zum Zeitpunkt der Ausführung des Befehls, durch welchen die Ausgabe der im Ergebnis- Abschnitt EA gespeicherten Daten aus einer der Befehlsausführungseinheiten veranlaßt wurde, wobei
- - ILA = 0 bedeutet, daß die im Ergebnis-Abschnitt EA gespeicherten Daten auf Veranlassung durch einen Befehl des Befehls-Bundles aus einer der Befehlsausführungseinheiten ausgegeben wurden, welches unmittelbar vor der Ausführung einer das "normale" Programm unterbrechenden Interrupt Service Routine ausgeführt wurde,
- - ILA = 1 bedeutet, daß die im Ergebnis-Abschnitt EA gespeicherten Daten auf Veranlassung durch einen Befehl des Befehls-Bundles aus einer der Befehlsausführungseinheiten ausgegeben wurden, welches unmittelbar vor der Ausführung einer eine erste Interrupt Service Routine unterbrechenden zweiten Interrupt Service Routine ausgeführt wurde, und
- - ILA = n bedeutet, daß die im Ergebnis-Abschnitt EA gespeicherten Daten auf Veranlassung durch einen Befehl des Befehls-Bundles aus einer der Befehlsausführungseinheiten ausgegeben wurden, welches unmittelbar vor der Ausführung einer eine (n-1)-te Interrupt Service Routine unterbrechenden n-ten Interrupt Service Routine ausgeführt wurde,
- Die Realisierung der Zwischenspeichereinrichtung durch einen Stack und die Speicherung geeigneter Zusatzinformationen über die Herkunft und das Ziel der im Stack zwischenzuspeichernden Ergebnisse ermöglichen es, daß - im Gegensatz zu den Shadow- Registern der in der Fig. 6 gezeigten herkömmlichen Anordnung - weder der Stack (der Shadow-Stack SS) noch dessen Speicherelemente (die Speicherelemente SSE) einer bestimmten Befehlsausführungseinheit zugeordnet werden müssen. Jedes Speicherelement kann von einer beliebigen Befehlsausführungseinheit beschrieben werden; aus den in den Speicherelementen gespeicherten Zusatzinformationen kann auch ohne eine Zuordnung der Speicherelemente zu den Befehlsausführungseinheiten eindeutig festgelegt werden, welche Ergebnisse wann wohin weitergeleitet werden.
- Eine durch einen Stack realisierte Zwischenspeichereinrichtung ist dadurch effizienter nutzbar als eine durch Shadow- Register realisierte Zwischenspeichereinrichtung. Insbesondere kann verhindert werden, daß eine Befehlsausführungseinheit, die keine Daten auszugeben hat, ein Zwischenspeicherelement (ein Shadow-Stack-Element SSE) beschreibt oder in sonstiger Weise belegt oder für eine anderweitige Nutzung unbrauchbar macht.
- Die Verwaltung des Stack (insbesondere der Schreib- und Lesezeiger) sowie die Weiterleitung der im Stack gespeicherten Daten an die erste Speichereinrichtung REG werden durch die im Stack enthaltene oder dem Stack zugeordnete Stack- Steuereinrichtung SC durchgeführt.
- Im betrachteten Beispiel veranlaßt diese Stack-Steuereinrichtung bei Bedarf auch eine vorübergehende Auslagerung der im Shadow-Stack SS gespeicherten Daten in eine andere Speichereinrichtung.
- Genauer gesagt wird durch die Stack-Steuereinrichtung SC
- - überprüft, ob der Shadow-Stack SS demnächst überzulaufen droht, und dann, wenn hierbei festgestellt wird, daß dies der Fall ist, ein Transfer von im Shadow-Stack SS gespeicherten Daten zu der anderen Speichereinrichtung veranlaßt, und
- - überprüft, ob der Shadow-Stack SS demnächst leer zu werden droht, und dann, wenn hierbei festgestellt wird, daß dies der Fall ist, ein Rücktransfer von in die andere Speichereinrichtung ausgelagerten Daten zum Shadow Stack SS veranlaßt.
- Diese erwähnte andere Speichereinrichtung wird im betrachteten Beispiel durch die zweite Speichereinrichtung XMEM und/oder durch die dritte Speichereinrichtung YMEM gebildet.
- Die Datentransfers zwischen dem Shadow Stack SS und der zweiten Speichereinrichtung XMEM oder der dritten Speichereinrichtung YMEM erfolgt nach Möglichkeit unter Verwendung des sogenannten cycle stealing.
- Hierzu
- - erhält die Stack-Steuereinrichtung SC ohne eine separate Anfrage seitens der Stack-Steuereinrichtung automatisch eine Information darüber, ob ein Bus, über welchen die Daten zwischen dem Shadow-Stack SS und der zweiten Speichereinrichtung XMEM oder der dritten Speichereinrichtung YMEM transferiert werden, gerade von einer anderen der an diesem Bus angeschlossenen Einheiten benötigt wird,
- - veranlaßt die Stack-Steuereinrichtung SC die gegebenenfalls erforderlichen Datentransfers zwischen dem Shadow-Stack SS und der zweiten Speichereinrichtung XMEM oder der dritten Speichereinrichtung YMEM nach Möglichkeit in Phasen, in welchen der Bus von keiner anderen der am Bus angeschlossenen Einheiten benötigt wird, und
- - fordert die Stack-Steuereinrichtung zur Durchführung der erforderlichen Datentransfers SC nur dann die Zuteilung des Busses an, wenn keine oder nicht ausreichend viele und/oder lange Phasen zur Verfügung stehen, in welchen der Bus von keiner anderen der am Bus angeschlossenen Einheiten benötigt wird (cycle stalling).
- Der erwähnte Bus ist im betrachteten Beispiel
- - ein in der Fig. 1 mit XMEMBUS bezeichneter und die Befehlsausführungseinheiten BAU1 bis BAU4, die zweite Speichereinrichtung XMEM, und den Shadow-Stack SS verbindender Bus und/oder
- - ein in der Fig. 1 mit YMEMBUS bezeichneter und die Befehlsausführungseinheiten BAU1 bis BAU4, die dritte Speichereinrichtung YMEM, und den Shadow-Stack SS verbindender Bus.
- Die von der Stack-Steuereinrichtung praktizierte Vorgehensweise bei einer gegebenenfalls erforderlichen Auslagerung von im Shadow-Stack gespeicherten Daten kann unter Zuhilfenahme von Fig. 3 veranschaulicht werden.
- Die Fig. 3 zeigt, in welchen Takten der BUS XMEMBUS und der Bus YMEMBUS von den Befehlsausführungseinheiten BAU1 und BAU2 oder einer sonstigen Einheit der an den Bussen angeschlossenen Einheiten (außer der Stack-Steuereinrichtung) benötigt werden.
- Wie aus der Fig. 3 ersichtlich ist,
- - ist der Bus XMEMBUS in den Takten t1, t2, und t4 besetzt, und in den Takten t3 und t5 frei, und
- - ist der Bus YMEMBUS in den Takten t3 und t4 besetzt, und in den Takten t1, t2 und t5 frei.
- Die Stack-Steuereinrichtung erhält
- - in den Takten t1 und t2 eine Information darüber, daß der Bus YMEMBUS frei ist,
- - in Takt t3 eine Information darüber, daß der Bus XMEMBUS frei ist, und
- - in Takt t5 eine Information darüber, daß der Bus XMEMBUS und der Bus YMEMBUS frei ist,
- - in den Takten t1 und t2 den Bus YMEMBUS,
- - in Takt t3 den Bus XMEMBUS, und
- - in Takt t5 den Bus XMEMBUS und den Bus YMEMBUS
- Dadurch ist es möglich, daß durch die vorübergehende Auslagerung von Daten aus dem Shadow-Stack keine zeitlichen Verzögerungen in der Programmausführung auftreten.
- Der Vollständigkeit halber sei darauf hingewiesen,
- - daß die beschriebene Auslagerung von in der Zwischenspeichereinrichtung ZS gespeicherten Daten in eine andere Speichereinrichtung auch bei programmgesteuerten Einheiten eingesetzt werden kann, deren Zwischenspeichereinrichtung wie in der Fig. 6 veranschaulicht durch Shadow-Register gebildet wird, und
- - daß sich die Realisierung der Zwischenspeichereinrichtung durch einen Stack auch ohne die beschriebene Auslagerung von in der Zwischenspeichereinrichtung gespeicherten Daten in eine andere Speichereinrichtung als vorteilhaft erweist.
- Bei der beschriebene programmgesteuerten Einheit ist es unabhängig von den Einzelheiten der praktischen Realisierung möglich, eine gegebenenfalls erforderliche Zwischenspeicherung von aus einer Befehlsausführungseinheit ausgegebenen Daten unter allen Umständen schnell und einfach durchzuführen. Bezugszeichenliste BAUx Befehlsausführungseinheiten
EXn Execution-Stufen
ID Instruction-Decodier-Stufe
IF Instruction-Fetch-Stufe
IR Interrupt Request
ofx Zeitpunkt, zu dem ein Operand aus einem Datenspeicher geholt wird
REG erste Speichereinrichtung
SRx Shadow Register
SC Stack-Steuereinrichtung
SS Shadow Stack
SSE Shadow-Stack-Element
wbx Zeitpunkt, zu dem ein Ergebnis in den Datenspeicher zurückgeschrieben wird
XMEM zweite Speichereinrichtung
XMEMBUS Bus
YMEM dritte Speichereinrichtung
XMEMBUS Bus
ZS Zwischenspeichereinrichtung
Claims (15)
1. Programmgesteuerte Einheit, mit einer
Befehlsausführungseinheit (BAU1-BAU4) zur Ausführung von durch die
programmgesteuerte Einheit auszuführenden Befehlen, einer
Speichereinrichtung (REG) zum Speichern von zur
Befehlsausführung benötigten Daten und von aus der
Befehlsausführungseinheit ausgegebenen Daten, und einer
Zwischenspeichereinrichtung (ZS) zum Zwischenspeichern der von der
Befehlsausführungseinheit ausgegebenen Daten, wobei die
Befehlsausführungseinheit in die Speichereinrichtung zu
transferierende Daten in die Zwischenspeichereinrichtung schreibt,
und wobei die in die Zwischenspeichereinrichtung
geschriebenen Daten zu einem späteren Zeitpunkt in die
Speichereinrichtung transferiert werden,
dadurch gekennzeichnet,
daß die Zwischenspeichereinrichtung (ZS) durch einen Stack
(SS) gebildet wird.
2. Programmgesteuerte Einheit nach Anspruch 1,
dadurch gekennzeichnet,
daß eine Steuervorrichtung (SC) vorgesehen ist, die bei
Bedarf eine vorübergehende Auslagerung von in der
Zwischenspeichereinrichtung (ZS) gespeicherten Daten in eine andere
Speichereinrichtung (XMEM, YMEM) durchführt oder veranlaßt.
3. Programmgesteuerte Einheit, mit einer
Befehlsausführungseinheit (BAU1-BAU4) zur Ausführung von durch die
programmgesteuerte Einheit auszuführenden Befehlen, einer
Speichereinrichtung (REG) zum Speichern von zur
Befehlsausführung benötigten Daten und von aus der
Befehlsausführungseinheit ausgegebenen Daten, und einer
Zwischenspeichereinrichtung (ZS) zum Zwischenspeichern der von der
Befehlsausführungseinheit ausgegebenen Daten, wobei die
Befehlsausführungseinheit in die Speichereinrichtung zu
transferierende Daten in die Zwischenspeichereinrichtung schreibt,
und wobei die in die Zwischenspeichereinrichtung
geschriebenen Daten zu einem späteren Zeitpunkt in die
Speichereinrichtung transferiert werden,
dadurch gekennzeichnet,
daß eine Steuervorrichtung (SC) vorgesehen ist, die bei
Bedarf eine vorübergehende Auslagerung von in der
Zwischenspeichereinrichtung (ZS) gespeicherten Daten in eine andere
Speichereinrichtung (XMEM, YMEM) veranlaßt.
4. Programmgesteuerte Einheit nach Anspruch 2 oder 3,
dadurch gekennzeichnet,
daß die Steuereinrichtung (SC) überprüft, ob die
Zwischenspeichereinrichtung (ZS) demnächst überzulaufen droht, und
dann, wenn sie feststellt, daß dies der Fall ist, einen
Transfer von in der Zwischenspeichereinrichtung gespeicherten
Daten zu der anderen Speichereinrichtung (XMEM, YMEM)
veranlaßt.
5. Programmgesteuerte Einheit nach einem der Ansprüche 2
bis 4,
dadurch gekennzeichnet,
daß die Steuereinrichtung (SC) überprüft, ob die
Zwischenspeichereinrichtung (ZS) demnächst leer zu werden droht, und
dann, wenn sie feststellt, daß dies der Fall ist, einen
Rücktransfer von in die andere Speichereinrichtung (XMEM, YMEM)
ausgelagerten Daten zur Zwischenspeichereinrichtung
veranlaßt.
6. Programmgesteuerte Einheit nach einem der Ansprüche 2
bis 5,
dadurch gekennzeichnet,
daß die Steuereinrichtung (SC) ohne eine separate Anfrage
seitens der Steuereinrichtung automatisch eine Information
darüber erhält, ob ein Bus (XMEMBUS, YMEMBUS), über welchen
die Daten zwischen der Zwischenspeichereinrichtung (ZS) und
der anderen Speichereinrichtung (XMEM, YMEM) transferiert
werden, gerade von einer anderen der an diesem Bus
angeschlossenen Einheiten benötigt wird.
7. Programmgesteuerte Einheit nach Anspruch 6,
dadurch gekennzeichnet,
daß die Steuereinrichtung (SC) die gegebenenfalls
erforderlichen Datentransfers zwischen der Zwischenspeichereinrichtung
(ZS) und der anderen Speichereinrichtung (XMEM, YMEM) nach
Möglichkeit in Phasen veranlaßt, in welchen der Bus (XMEMBUS,
YMEMBUS) von keiner anderen der am Bus angeschlossenen
Einheiten benötigt wird.
8. Programmgesteuerte Einheit nach Anspruch 7,
dadurch gekennzeichnet,
daß die Steuereinrichtung (SC) dann, wenn keine oder nicht
ausreichend viele und/oder lange Phasen zur Verfügung stehen,
um erforderliche Datentransfers zwischen der
Zwischenspeichereinrichtung (ZS) und der anderen Speichereinrichtung
(XMEM, YMEM) durchzuführen, die Zuteilung des Busses
(XMEMBUS, YMEMBUS) anfordert.
9. Programmgesteuerte Einheit nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet,
daß die programmgesteuerte Einheit eine mehrere
Befehlsausführungseinheiten (BAU1-BAU4) umfassende programmgesteuerte
Einheit ist.
10. Programmgesteuerte Einheit nach Anspruch 9,
dadurch gekennzeichnet,
daß die mehreren Befehlsausführungseinheiten (BAU1-BAU4) in
der Lage sind, gleichzeitig jeweils einen oder mehrere
Befehle auszuführen.
11. Programmgesteuerte Einheit nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet,
daß die von der Befehlsausführungseinheit (BAU1-BAU4)
ausgegebenen Daten nur beim Auftreten bestimmter Ereignisse in
der Zwischenspeichereinrichtung (ZS) zwischengespeichert
werden.
12. Programmgesteuerte Einheit nach Anspruch 11,
dadurch gekennzeichnet,
daß von der Befehlsausführungseinheit (BAU1-BAU4)
ausgegebenen Daten nur dann in der Zwischenspeichereinrichtung (ZS)
zwischengespeichert werden, wenn Befehle oder Befehlsgruppen,
die im Normalfall unmittelbar nacheinander ausgeführt werden,
nicht unmittelbar nacheinander ausgeführt werden.
13. Programmgesteuerte Einheit nach Anspruch 12,
dadurch gekennzeichnet,
daß von der Befehlsausführungseinheit (BAU1-BAU4)
ausgegebenen Daten nur dann in der Zwischenspeichereinrichtung (ZS)
zwischengespeichert werden, wenn Befehle oder Befehlsgruppen,
die im Normalfall unmittelbar nacheinander ausgeführt werden,
aufgrund einer dazwischen ausgeführten Interrupt Service
Routine nicht unmittelbar nacheinander ausgeführt werden.
14. Programmgesteuerte Einheit nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet,
daß die in der Zwischenspeichereinrichtung (ZS) gespeicherten
Daten eine Information über die Stelle enthalten, an welche
die an die Speichereinrichtung (REG) weiterzuleitenden Daten
später weitergeleitet werden sollen.
15. Programmgesteuerte Einheit nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet,
daß die in der Zwischenspeichereinrichtung (ZS) gespeicherten
Daten eine Information enthalten, aus welcher der Zeitpunkt
ermittelbar ist, zu welchem die an die Speichereinrichtung
REG) weiterzuleitenden Daten weitergeleitet werden sollen.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10133913A DE10133913A1 (de) | 2001-07-12 | 2001-07-12 | Programmgesteuerte Einheit |
US10/194,899 US7124288B2 (en) | 2001-07-12 | 2002-07-12 | Programmable unit with a stack buffer storage device configurable into discrete shadow storage elements accessible by a plurality of command execution units |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10133913A DE10133913A1 (de) | 2001-07-12 | 2001-07-12 | Programmgesteuerte Einheit |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10133913A1 true DE10133913A1 (de) | 2003-01-30 |
Family
ID=7691543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10133913A Withdrawn DE10133913A1 (de) | 2001-07-12 | 2001-07-12 | Programmgesteuerte Einheit |
Country Status (2)
Country | Link |
---|---|
US (1) | US7124288B2 (de) |
DE (1) | DE10133913A1 (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2849228A1 (fr) * | 2002-12-23 | 2004-06-25 | St Microelectronics Sa | Dispositif de transfert de donnees entre deux sous-systemes asynchrones disposant d'une memoire tampon |
US20070074013A1 (en) * | 2003-08-25 | 2007-03-29 | Lonnie Goff | Dynamic retention of hardware register content in a computer system |
JP6629651B2 (ja) * | 2016-03-18 | 2020-01-15 | マレリ株式会社 | 車両用キーレスシステム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5857089A (en) * | 1994-06-01 | 1999-01-05 | Advanced Micro Devices, Inc. | Floating point stack and exchange instruction |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5440749A (en) * | 1989-08-03 | 1995-08-08 | Nanotronics Corporation | High performance, low cost microprocessor architecture |
US5640582A (en) * | 1992-05-21 | 1997-06-17 | Intel Corporation | Register stacking in a computer system |
US5475822A (en) * | 1993-11-15 | 1995-12-12 | Motorola, Inc. | Data processing system for resuming instruction execution after an interrupt and method therefor |
US6088786A (en) * | 1997-06-27 | 2000-07-11 | Sun Microsystems, Inc. | Method and system for coupling a stack based processor to register based functional unit |
US5974531A (en) * | 1998-02-17 | 1999-10-26 | Industrial Technology Research Institute | Methods and systems of stack renaming for superscalar stack-based data processors |
-
2001
- 2001-07-12 DE DE10133913A patent/DE10133913A1/de not_active Withdrawn
-
2002
- 2002-07-12 US US10/194,899 patent/US7124288B2/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5857089A (en) * | 1994-06-01 | 1999-01-05 | Advanced Micro Devices, Inc. | Floating point stack and exchange instruction |
Also Published As
Publication number | Publication date |
---|---|
US20030028756A1 (en) | 2003-02-06 |
US7124288B2 (en) | 2006-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69132195T2 (de) | System für verteilte Mehrfachrechnerkommunikation | |
DE60010907T2 (de) | Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter | |
DE69620807T2 (de) | Datenverarbeitungsvorrichtung zum Vorziehen einer Datenstruktur aus dem Hauptspeicher oder seinem Cachespeicher | |
DE3750935T2 (de) | Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner. | |
DE69322064T2 (de) | Verfahren und System zur Zuteilung mehrerer Befehle in einem superskalaren Prozessorsystem in einem einzigen Zyklus | |
DE69929936T2 (de) | Verfahren und Vorrichtung zum Abrufen von nicht-angrenzenden Befehlen in einem Datenverarbeitungssystem | |
DE2350884C2 (de) | Adreßumsetzungseinheit | |
EP0048767B1 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE68927492T2 (de) | Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten | |
DE68929224T2 (de) | Pipeline, die einen Cachespeicher für Rechnerprozessoren enthält | |
DE19527031C2 (de) | Verzweigungsprozessor für ein Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems | |
DE69534113T2 (de) | Kompression der Befehlswörter eines Rechners | |
DE69432133T2 (de) | Datenprozessor mit Cache-Speicher | |
DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
DE69325566T2 (de) | Verfahren und System zur Befehlszuteilung in einem superskalaren Prozessorsystem mit unabhängig zugänglichem Zwischenspeicher | |
DE69224084T2 (de) | Rechneranordnung mit Mehrfachpufferdatencachespeicher und Verfahren dafür | |
DE69030931T2 (de) | Mehrfachsequenzprozessorsystem | |
DE1966633B2 (de) | Datenverarbeitungsanlage mit überlappter Arbeitswelse bei Verwendung eines Haupt- und Pufferspeichers | |
DE69321929T2 (de) | Verfahren und System um einen unabhängige Zugriff auf Zwischenspeicherpuffern in einem superskalaren Prozessorsystem zu gewährleisten. | |
DE69133571T2 (de) | Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen | |
DE4345028A1 (de) | Vorrichtung zur Reduzierung von Verzögerungen aufgrund von Verzweigungen | |
DE2856680A1 (de) | Befehlspuffer fuer ein datenverarbeitungssystem | |
DE2824711A1 (de) | Steuereinrichtung fuer speicherzugriffe | |
DE10133913A1 (de) | Programmgesteuerte Einheit | |
DE69808700T2 (de) | Cachespeichervorrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |