DE10133913A1 - Programmgesteuerte Einheit - Google Patents

Programmgesteuerte Einheit

Info

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
Application number
DE10133913A
Other languages
English (en)
Inventor
Christian Panis
Raimund Leitner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE10133913A priority Critical patent/DE10133913A1/de
Priority to US10/194,899 priority patent/US7124288B2/en
Publication of DE10133913A1 publication Critical patent/DE10133913A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent 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,
    wobei
    • - 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,
    ohne nennenswerten Aufwand selbständig verwalten.
  • 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,
    wobei die Zwischenspeichereinrichtung ZS durch einen Stack, genauer gesagt durch einen im folgenden als Shadow-Stack bezeichneten und in der Fig. 1 mit dem Bezugszeichen SS bezeichneten Stack gebildet wird, und wobei die Befehlsausführungseinheiten BAU1, BAU2, BAU3 und BAU4, die erste Speichereinrichtung REG, die zweite Speichereinrichtung XMEM, und die dritte Speichereinrichtung YMEM den mit diesen Bezugszeichen bezeichneten Elementen der in der Fig. 6 gezeigten Anordnung entsprechen.
  • 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,
    enthält.
  • 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,
    und kann, ohne den Bus angefordert zu haben,
    • - 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
    benutzen, um Daten zwischen dem Shadow-Stack SS und der zweiten Speichereinrichtung XMEM und/oder YMEM zu übertragen.
  • 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.
DE10133913A 2001-07-12 2001-07-12 Programmgesteuerte Einheit Withdrawn DE10133913A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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