DE3687724T2 - Digitalprozessorsteuerung. - Google Patents

Digitalprozessorsteuerung.

Info

Publication number
DE3687724T2
DE3687724T2 DE8686306268T DE3687724T DE3687724T2 DE 3687724 T2 DE3687724 T2 DE 3687724T2 DE 8686306268 T DE8686306268 T DE 8686306268T DE 3687724 T DE3687724 T DE 3687724T DE 3687724 T2 DE3687724 T2 DE 3687724T2
Authority
DE
Germany
Prior art keywords
register
file
address
instruction
addresses
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.)
Expired - Lifetime
Application number
DE8686306268T
Other languages
English (en)
Other versions
DE3687724D1 (de
Inventor
Brian Case
Rod Fleck
Michael Johnson
Cheng Gang Kong
Ole Moller
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Application granted granted Critical
Publication of DE3687724D1 publication Critical patent/DE3687724D1/de
Publication of DE3687724T2 publication Critical patent/DE3687724T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Executing Machine-Instructions (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Saccharide Compounds (AREA)
  • Magnetically Actuated Valves (AREA)
  • Storage Device Security (AREA)

Description

  • Die vorliegende Erfindung betrifft Speicherelemente digitaler Computer und insbesondere eine Hochgeschwindigkeits-Allzweckregisterdatei zur Verwendung mit einem Computer mit reduziertem Befehlssatz, die ein leichtes Leiten von Parametern zwischen Vorgängen und einen mehrere Aufgaben unterstützenden Schutzmechanismus vorsieht.
  • Hintergrund der Erfindung
  • Computer mit reduziertem Befehlssatz (RISC) nutzen den Vorteil der Verwendung einer Gruppe von Hochgeschwindigkeits-Allzweckregistern zum Speichern von häufig verwendeten Daten in Verbindung mit einem Hauptspeicher mit geringerer Geschwindigkeit zum Speichern von weniger häufig verwendeten Daten. Laufzeituntersuchungen von Programmen zeigen, daß die bei Vorgängen am häufigsten verwendeten Daten üblicherweise einfache Nicht-Bereichsvariablen sind, und daß bei einem Vorgang nicht mehr als zweiunddreißig solcher Variablen verwendet werden. Die Berkeley RISC-Maschinen RISC I und RISC II, die Stanford MIPS-Maschine und das IBM-Gerät 801 sind für RISC-Architekturen repräsentativ.
  • Während der Ausführungszeit wird, bei jedem Einsetzen bzw. bei jeder Rückkehr aus einem Vorgang in einer höheren Programmiersprache (HLL), beim Zuordnen und beim Aufheben der Zuordnung von Aktivierungsaufzeichnungen verwendet. Die Aktivierungsaufzeichnung weist Bereiche für eingehende Parameter (Variablen), rein lokale Variablen und ausgehende Parameter (Variablen) auf. Der den ausgehenden Parametern einer Aktivierungsaufzeichnung eines Vorgangs zugeordnete Bereich kann mit dem den eingehenden Parametern einer anderen Aktivierungsaufzeichnung zugeordneten Bereich überlappt werden, so daß Parameterwerte wirksam zwischen den Vorgängen übertragen werden können.
  • Ein Compiler für eine HLL ordnet Datenreferenzen innerhalb eines Vorgangs derart an, daß die meisten Referenzen zur Verbesserung der Leistung auf die Hochgeschwindigkeitsregister bezogen sind. Maschinen mit RISC-Architektur enthalten eine Gruppe von Hochgeschwindigkeitsregistern, welche die Zahl der zum Speichern häufig gebrauchter Daten innerhalb eines beliebigen Vorgangs, zum Beispiel zweiunddreißig Register, übersteigt. Die Berkeley RISC-Maschinen ordnen eine festgelegte Zahl von Registern einem Vorgang zu ("Fenster"). Da diese Zahl im allgemeinen höher ist als die von tatsächlich von einem Vorgang erforderte Zahl, ist eine Verschwendung von Registern unvermeidbar.
  • Der Aufsatz "Reduced Instruction Set Computer Architectures for VLSI" von Manolis G. H. Katevenis (ACM Doctoral Dissertation Award 1984), veröffentlicht von MIT Press, offenbart ein Prozessorsteuersystem mit einer Registerdatei, bei dem eine Zahl von aufeinanderfolgenden Registern eines "Fensters" von vorbestimmter Größe einer Reihe von auszuführenden Vorgängen zugeordnet wird.
  • Im Idealfall sollte nur die tatsächlich von einem Vorgang erforderte Zahl von Registern diesem zugeordnet werden und die über die erforderliche Menge hinausgehenden Register könnten zum Speichern von Variablen zur Übertragung zwischen Vorgängen und für andere Aufgaben verwendet werden.
  • Gemäß der beanspruchten Erfindung schafft der zu beschreibende Befehlsprozessor eine Hochgeschwindigkeitsregisterdatei, bei der einem Vorgang nur die von diesem erforderte Zahl von Registern zugeordnet wird. Register, die über die für einen bestimmten Vorgang erforderliche Zahl von Registern hinausgehen, können zum Speichern von Variablen für andere Vorgänge oder Aufgaben verwendet werden. Eine Übertragung zwischen mehreren Vorgängen kann über Variablen erfolgen, die in einer Gruppe von sogenannten "globalen" Registern enthalten sind, während für einen bestimmten Vorgang erforderliche Variablen in einer Gruppe von sogenannten "lokalen" Registern gespeichert sind, wobei jede Gruppe ihren eigenen Adressierungsbereich aufweist.
  • Parameter können von einem Abrufvorgang über einen Stapelmechanismus zu einem abgerufenen Vorgang weitergeleitet werden. Zugriffe auf lokale Register erfolgen in bezug zu einem Stapelzeigerwert, der in einem Register gespeichert ist. Der Inhalt des Stapelzeigerregisters kann derart eingestellt werden, daß die Gruppen der von einem Abrufvorgang und der von einem abgerufenen Vorgang verwendeten Register einander überlappen und eine Übertragung zwischen diesen über die gemeinsamen Register erfolgt.
  • Ein Registerschutzmechanismus unterstützt eine Multitasking-Betriebsart, bei der jede Aufgabe ihre Unversehrtheit gegenüber in anderen Aufgaben auftretenden unerwünschten Veränderungen bewahrt. Der Schutzmechanismus verhindert den Zugriff auf bestimmte Register innerhalb der Hochgeschwindigkeitsregisterdatei während der Durchführung eines bestimmten Vorgangs oder einer Aufgabe. Die Registerdatei ist in eine Anzahl von "Blöcken" zusammenhängender Register unterteilt. Ein Schutzregister enthält ein binäres Wort, in dem jede Bitposition derart einstellbar ist, daß sie einen Zugriff auf den der bestimmten Bitposition entsprechenden Block entweder erlaubt oder verhindert. Ein Versuch eines Befehls auf ein Register innerhalb eines geschützten Blockes zuzugreifen, verursacht einen "Fehler" in der Maschine und es wird eine geeignete Maßnahme zur Behebung desselben ausgeführt. Dementsprechend können Variablen für mehrere Aufgaben in separaten Blöcken innerhalb des Registers gespeichert werden, wobei die Variablen für jede Aufgabe vor einem Zugriff durch andere Aufgaben geschützt sind.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockschaltbild eines Befehlsprozessors mit einer erfindungsgemäßen Registerdatei.
  • Fig. 2 zeigt die Verwendung eines Stapelzeigers bei der Zuordnung von lokalen Registern in der erfindungsgemäßen Datei; und
  • Fig. 3 zeigt das in Zusammenhang mit der erfindungsgemäßen Registerdatei verwendete Schutzregister.
  • DETAILLIERTE BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGS- BEISPIELS
  • Die erfindungsgemäße Registerdatei ist am besten in Zusammenhang mit der Fig. 1 verständlich, welche ein Blockschaltbild des Steuerabschnitts eines in einem Computer mit reduziertem Befehlssatz (RISC) verwendeten Befehlsprozessors 10. Obwohl die Registerdatei im folgenden in Zusammenhang mit dem Prozessor 10 beschrieben wird, geschieht dies lediglich zu Illustrationszwecken und die zahlreichen verschiedenen Vorteile der Registerdatei sind in einem weiten Bereich von Anwendungen nutzbar, wie für den Fachmann ersichtlich.
  • Wie in Fig. 1 dargestellt, weist der Prozessor 10 ein Befehlsregister 12 auf, das den Prozessorbefehl in binärer Form speichert, der aus einem nicht dargestellten Cache-Speicher abgerufen wurde. Die meisten Prozessorbefehle geben zwei Operanden, welche die beiden Quellen der zu verarbeitenden Daten sind, und einen dritten Operanden an, der das Ziel angibt, an dem der sich ergebende Wert zu speichern ist. Normalerweise befinden sich diese Operanden in Registern, die in der erfindungsgemäßen Registerdatei 14 angeordnet sind. Bei dem bevorzugten Ausführungsbeispiel enthält die Datei 120 sogenannte "globale" Register zum Speichern von einfachen Nichtbereichsvariablen, die mehreren Vorgängen gemeinsam sind, und 120 sogenannte "lokale" Register zum Speichern einfacher Variablen und Parameter, die in einem einzelnen Vorgang verwendet werden. Die Registerdatei 14 dient dem Speichern von häufig verwendeten Daten, wie im folgenden beschrieben.
  • Obwohl er als außerhalb der Registerdatei 14 liegend dargestellt ist, weist der Prozessor 10 ein Stapelzeigerregister (SP) 16, das innerhalb der Datei 14 als Register Nummer 3 angeordnet ist, und ein Indirektzeigerregister (IP) 18 auf, das als Register Nummer 2 vorgesehen ist. Die Registerdatei 14 weist als Register Nummer 1 ferner ein Register auf, das, wenn es in einem Befehl angesprochen wird, den Zugriff auf das in der Datei 14 enthaltene lokale Register bewirkt, dessen Adresse an den Bitpositionen 2-8 des IP-Registers 18 gespeichert ist. Als Register Nummer 0 ist ein Register in der Datei 14 vorgesehen, das, wenn es angesprochen wird, den Zugriff auf das globale Register in der Datei 14 bewirkt, dessen Adresse an den Bitpositionen 2-8 des IP-Registers bewirkt. Signale, die die Operandenabschnitte der in dem Befehlsregister 12 gespeicherten Befehle repräsentieren, werden zu einem von drei Summierern mit zwei Eingängen geleitet; ein erster Summierer 20 empfängt an einem erstes Eingang ein Signal, das den ersten Operanden des in dem Register 12 gespeicherten Befehls repräsentiert, und Signale, die den Inhalt des SP-Registers 16 repräsentieren, werden über ein UND- Gatter 22 zu einem zweiten Eingang des Summierers 20 geleitet. Das UND-Gatter 22 empfängt ferner ein Signal, das dem höchstwertigen Bit (MSB) des ersten Operanden des in dem Register 12 gespeicherten Befehls entspricht.
  • Ein zweiter Summierer 24 und ein dritter Summierer 28 empfangen an einem ersten Eingang Signale, die jeweils den zweiten und den dritten Operanden des in dem Register 12 gespeicherten Befehls repräsentieren, und Signale, die den Inhalt des SP-Registers 16 repräsentieren, werden über die UND-Gatter 26 bzw. 30 zu einem zweiten Eingang des Summierers 24 bzw. 28 geleitet. Das UND- Gatter 26 und das UND-Gatter 30 empfangen ferner ein Signal, das dem msb des zweiten bzw. des dritten Operanden des in dem Register 12 gespeicherten Befehls entspricht.
  • An einem Ausgang der Summierer 20 und 24 erzeugte Signale werden zu einem ersten bzw. zweiten Adressenleseeingang (READ-ADDR) der Registerdatei 14 sowie zu einem ersten bzw. zweiten Eingang einer Dekodierschaltung 32 geleitet. Signale, die an einem Ausgang des Summierers 28 erzeugt werden, werden zu einem Adressenschreibeingang (WRITE-ADDR) der Registerdatei 14 sowie zu einem dritten Eingang der Dekodierschaltung 32 geleitet.
  • Ein Schutzregister 34 enthält Informationen, die angeben, auf welches unter bestimmten Registern i der Registerdatei 14 der in dem Register 12 gespeicherte Befehl zugreifen kann, wie im folgenden in Verbindung mit Mol-%3 beschrieben werden wird. Signale, die diese Schutzinformationen repräsentieren, werden zu einer kombinatorischen Auswählschaltung 36 geleitet, die ferner von der Dekodierschaltung 32 erzeugte Signale empfängt. Die Auswählschaltung 36 erzeugt an einem Ausgang ein Signal, das einen Versuch des Befehls im Register 12 anzeigt, auf ein bestimmtes Register in der Datei 14 zuzugreifen, das gemäß dem Inhalt des Schutzregisters 34 geschützt ist. In diesem Fall würde ein Computer-"Fehler" erkannt und geeignete Maßnahmen würden ergriffen. Auf diese Weise wird ein schnelles Wechseln von einer Aufgabe zu einer anderen in einer Multitasking-Betriebsart erleichtert, so daß Variablen für jede Aufgabe durch die Fähigkeit, den Zugriff auf bestimmte Register in der Datei 14 durch das Spezifizieren eines bestimmten Bitmusters in dem Schutzregister 34, vor einem Zugriff durch eine andere Aufgabe geschützt sind, wie im folgenden in Verbindung mit Fig. 3 beschrieben.
  • Die Operation des SP-Registers 16 und des IP-Registers 18 läßt sich am besten in Verbindung mit der nachfolgenden Tabelle I beschreiben. Die Prozessorsteuerung 10 erlaubt vier Arten des Adressierens von Registern in der Datei 14 und diese werden von dem in der ersten Spalte der Tabelle I gezeigten Wert n bestimmt, wie durch die Operanden des im Register 12 gespeicherten Befehls angegeben. TABELLE I REGISTERDATEIADRESSIERMODI Registerspezifikation n Register Globales Register Lokales Register Globales Register
  • Ein Befehl mit dem Operanden n, 2< =n< =127, bezieht sich auf das "globale" Register in der Datei 14, das an der Adresse n in der Datei 14 angeordnet ist. Da das msb in der binären Acht-Bit-Repräsentation von n in diesem Fall 0 ist, empfängt der Summierer 20, 24 bzw. 28 eine Gruppe von 0 von dem UND-Gatter 22, 26 bzw. 30 und entsprechend werden Signale, welche den von dem Operanden des im Register 12 gespeicherten Befehls empfangenen Wert n repräsentieren, ohne Veränderung am Ausgang des Summierers 20, 24 bzw. 28 erzeugt. IN Übereinstimmung mit der Zeile drei der Tabelle I wird das globale Register n in der Datei 14 zum Lesen oder Schreiben verwendet, wenn die von dem Summierer 20, 24 bzw. 28 erzeugten Signale zum ersten oder zweiten READ-ADRR-Eingang der Datei 14 oder dem WRITE-ADDR-Eingang der Datei 14 zugeführt werden.
  • Ein Befehl mit einem Operanden n, 128< =n< =255 weist eine binäre Acht-Bit-Wiedergabe auf, bei der das msb 1 ist, und das UND-Gatter 22, 26 oder 30 geben jeweils Signale, die dem Inhalt des SP-Registers 16 entsprechen, an den zweiten Eingang des Summierers 20, 24 bzw. 28 weiter. Entsprechend werden die Signale, welche den von dem Operanden des im Register 12 gespeicherten Befehls empfangenen Wert n repräsentieren, im Summierer 20, 24 oder 28 um den im SP-Register 16 enthaltenen Wert erhöht. In Übereinstimmung mit der vierten Zeile der Tabelle I sind die Bezugnahmen auf "lokale" Register in der Datei 14 abhängig von dem Inhalt des SP-Registers 16. Daher ist der Zugriff auf lokale Register derart einstellbar, daß die Gruppe zusammenhängender Register der Datei 14, die von einem Vorgang benutzt werden, diejenigen überlappen kann, die von einem anderen Vorgang benutzt werden, wie im folgenden in Verbindung mit Fig. 2 beschrieben.
  • Indem durch den in dem Register 12 gespeicherten Befehl ein Registerwert n von 0 angegeben ist, wird, in Übereinstimmung mit der Zeile eins der Tabelle I, das globale Register in der Datei 14 angesprochen, dessen Adresse an den Bitpositionen 2-8 des IP-Registers 18 gespeichert ist. Durch das Angeben eines Wertes 1 für n wird, in Übereinstimmung mit der Zeile zwei der Tabelle I, das lokale Register in der Datei 14 angesprochen, dessen Adresse an den Bitpositionen 2-8 des IP-Registers 18 gespeichert ist. Der Mechanismus, durch welchen dieser "indirekte" Adressiermodus implementiert wird, ist dem Fachmann bekannt und wird hierin nicht beschrieben.
  • Die Gruppe der lokalen Register in der Datei 14, die von zwei verschachtelten Vorgängen A und B verwendet werden, wird im folgenden unter Bezugnahme auf Fig. 2 beschrieben. Beim Eintreten in den Vorgang A, wird der Inhalt des SP-Registers 16 derart eingestellt, daß er auf ein bestimmtes lokales Register zeigt. Bei dem in Fig. 2 dargestellten Vorgang A sind die Register 100, 102, 104 und 106 Variablen zugeordnet, die rein lokal für den Vorgang A sind. Beim Eintritt in den Vorgang B wird der Inhalt des SP-Registers 16 derart eingestellt, daß er auf das lokale Register 108 zeigt. Die lokalen Register 108. 110 und 112 wurden jedoch dem Vorgang A für Variablen zugeordnet, die dem Vorgang A und dem Vorgang B gemeinsam sind. Daher erfolgt eine Übertragung zwischen diesen Vorgängen über die lokalen Register 108, 110 und 112. Die lokalen Register 114, 116, . . ., 130 sind für Variablen vorgesehen, die rein lokal für den Vorgang B sind, obwohl, wenn ein Vorgang C aus dem Vorgang B abgerufen würde, eine mit 130 endende Gruppe der letztgenannten Register zur Übertragung zwischen den Vorgängen B und C verwendet werden könnte, indem der Inhalt des SP-Registers 16 derart eingestellt wird, daß er auf ein lokales Register 1 , . . ., 130 zeigt.
  • Zusätzlich zu der in Fig. 2 dargestellten Übertragung zwischen zwei Vorgängen kann eine Übertragung zwischen mehreren Vorgängen über Variablen stattfinden, die in dem "globalen" Registerabschnitt der Datei 14 gespeichert sind, d. h., diejenigen Register in der Datei 14 mit den Adressen 2 bis 127.
  • Die erfindungsgemäße Registerdatei 14 wird vorzugsweise in Verbindung mit einem Schutzmechanismus verwendet, der durch das in Fig. 3 dargestellte Schutzregister 34 gebildet wird. Bei dem bevorzugten Ausführungsbeispiel besteht die Registerdatei 14 aus 256 Registern, die in 16 Blöcke von jeweils 16 zusammenhängenden Registern gebildet sind. Das Schutzregister 34 weist ein 16-Bit- Register auf, das in der Lage ist, einen binären 16-Bit- Wert zu speichern, der, zum Beispiel durch eine binäre 1, angibt, daß der Zugriff auf einen bestimmten Block nicht gestattet ist. Ein exemplarisches Kodierverfahren ist in Fig. 3 dargestellt, bei dem das msb, Position 15, des Registers 34 dem Registerblock entspricht, der in der Datei 14 Adressen von 0 bis 15, einschließlich, aufweist, wobei die Position 14 dem Registerblock mit den Adressen 16 bis 31 entspricht, usw.
  • Während des Dekodierens des in dem Register 12 gespeicherten Befehls wird die effektive Adresse der Operanden zur Dekodierschaltung 32 geleitet und die Auswählschaltung 36 vergleicht die Adressen der Operanden und die vom Inhalt des Registers 34 angegebenen verbotenen Register. Die Auswählschaltung 36 erzeugt ein Schutzverletzungssignal beim Erkennen eines Versuchs, auf ein verbotenes Register in der Datei 14 zuzugreifen, und es wird ein "Fehler" erzeugt, der die Verarbeitung des Befehls durch den Prozessor 10 unterbricht, so daß eine korrigierende Maßnahme getroffen werden kann.
  • Auf diese Weise können Variablen für mehrere Aufgaben gleichzeitig in der Registerdatei 14 in verschiedenen Blöcken gespeichert werden, und die Variablen jeder Aufgabe sind vor einem Zugriff durch andere Aufgaben geschützt.

Claims (10)

1. Digitalprozessorsteuerungsvorrichtung (10) in einem Computer mit reduziertem Befehlssatz, die zum Bewirken der Ausführung einer Anzahl von Vorgängen, die jeweils eine Anzahl von Befehlen beinhalten, welche jeweils die Speicherplatzadresse einer Anzahl von Operanden und wahlweise die Zieladresse des Befehlsergebnis beinhalten, vorgesehen ist, mit: - einer Registerdateieinrichtung (14), die zum Speichern einer Vielzahl von Operanden oder Ergebnissen von Befehlen an jeweiligen Adressen ausgebildet ist; - einer Zeigereinrichtung (16), die zum Liefern von Signalen während der Laufzeit, welche jeweilige Speicherplatzadressen in der Dateieinrichtung repräsentieren, ausgebildet ist; - einer Befehlseinrichtung (12), die zum Liefern von Signalen während der Laufzeit, welche Dateieinrichtungsspeicherplatzadressen von Operanden und, wahlweise, von Zielen repräsentieren, die jeweils einem der Befehle eines Vorgangs zugeordnet sind, ausgebildet ist; - einer Adresseneinrichtung, die auf die Speicherplatzadressensignale und die Befehlssignale reagiert, um Adressensignale zu erzeugen, welche die Adressen der Operanden und, wahlweise, eines Ziels eines jeden dieser Befehle in der Dateieinrichtung repräsentieren; - wobei die Dateieinrichtung auf die Adressensignale hin die Operanden aus liest und, wahlweise, ein Ergebnis an den entsprechenden Adressen einschreibt; dadurch gekennzeichnet, daß: - jedem Vorgang eine dynamisch zugewiesene Zahl von aufeinanderfolgenden Registern in der Dateieinrichtung (14) zugeordnet sein kann, während einige einem Vorgang zugeordnete Register einem zweiten Vorgang gemeinsam sein können, dessen Operanden oder Ergebnisse denjenigen des einen Vorgangs in der Dateieinrichtung benachbart sind; und die Befehlssignale Speicherplatzadressen in bezug auf die Speicherplatzadressen in der Dateieinrichtung ausdrücken; - die Dateieinrichtung (14) einen ersten Satz (2-127) aufeinanderfolgender Register zum Speichern von Operanden und, wahlweise, von Ergebnissen, die allen Vorgängen global sind, und einen zweiten Satz (128-255) aufeinanderfolgender Register zum Speichern von Operanden und, wahlweise, von Ergebnissen, aufweist, die für bestimmte Vorgänge spezifisch oder lokal sind; und - die Adresseneinrichtung auf das Speicherplatzadressensignal und einen vorbestimmten Teil der Befehlssignale reagierende Logikeinrichtungen (22, 26, 30), um festzustellen, ob ein Operand eines Befehls lokal oder global ist, und auf die Logikeinrichtungen und die Befehlssignale reagierende Summiereinrichtungen (20, 24, 28) aufweist, um das Adressenspeicherplatzsignal zu dem Befehlssignal zu addieren, damit die Registeradresse für den Operanden oder das Ergebnis nur dann erhalten wird, wenn der Operand oder das Ergebnis für einen Vorgang lokal ist.
2. Digitalprozessorsteuerungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Dateieinrichtung (14) ein ausgewähltes Register (34) aufweist, das zum Speichern der Identitäten von ausgewählten Adressen, die nicht von Befehlen adressiert werden dürfen, ausgebildet ist, und eine Einrichtung (32, 36) zum Erkennen eines Versuchs eines Befehls eine der ausgewählten Adressen zu adressieren vorgesehen ist, um ein Schutzverletzungssignal zu liefern.
3. Digitalprozessorsteuerungsvorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die Register in der Dateieinrichtung (14) in eine vorbestimmte Anzahl von Blöcken unterteilt sind, wobei jeder Block eine vorbestimmte Anzahl von aufeinanderfolgenden Registern enthält, und jede Bit-Position des ausgewählten Registers (34) einem vorbestimmten Registerblock entspricht.
4. Digitalprozessorsteuerungsvorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Dateieinrichtung (14) ein erstes vorbestimmtes Register (18) aufweist, das durch Speichern der Adresse eines Registers in der Dateieinrichtung als indirekter Zeiger dient.
5. Digitalprozessorsteuerungsvorrichtung nach Anspruch 4, sofern auf Anspruch 2 zurückbezogen, dadurch gekennzeichnet, daß die Dateieinrichtung (14) ein zweites vorbestimmtes Register ("0") aufweist, dessen Adressierung durch einen Befehl Zugriff auf ein globales Register bewirkt, dessen Adresse in dem ersten vorbestimmten Register gespeichert ist.
6. Digitalprozessorsteuerungsvorrichtung nach Anspruch 4 oder 5, sofern auf Anspruch 2 zurückbezogen, dadurch gekennzeichnet, daß die Dateieinrichtung (14) ein zweites vorbestimmtes Register ("1") aufweist, dessen Adressierung durch einen Befehl Zugriff auf ein lokales Register bewirkt, dessen Adresse in dem ersten vorbestimmten Register gespeichert ist.
7. Verfahren zur Laufzeit-Speicherzuweisung bei einem Computer mit reduziertem Befehlssatz, zum Bewirken der Ausführung einer Anzahl von Vorgängen, welche jeweils die Speicherplatzadresse einer Anzahl von Operanden und, wahlweise, die Zieladresse des Befehlsergebnis beinhalten, mit einer Steuerungsvorrichtung (10), mit: - einer Registerdateieinrichtung (14) zum Speichern einer Vielzahl von Operanden oder Ergebnissen von Befehlen an jeweiligen Adressen; - einer Zeigereinrichtung (16) zum Liefern von Signalen während der Laufzeit, welche jeweilige Speicherplatzadressen in der Dateieinrichtung repräsentieren; - einer Befehlseinrichtung (12) zum Liefern von Signalen während der Laufzeit, welche jeweilige Speicherplatzadressen in der Dateieinrichtung von Operanden und, wahlweise, von Zielen repräsentieren, die einem jeweiligen der Befehle eines Vorgangs zugeordnet sind; - einer Adresseneinrichtung, die auf die Speicherplatzadressensignale und die Befehlssignale reagiert, um Adressensignale zu erzeugen, welche die Adressen der Operanden und, wahlweise, eines Ziels eines jeden dieser Befehle in der Dateieinrichtung repräsentieren; - wobei die Dateieinrichtung auf die Adressensignale hin die Operanden ausliest und, wahlweise, ein Ergebnis an den entsprechenden Adressen einschreibt; gekennzeichnet durch:
a) das Setzen der Zeigereinrichtung, um die Speicherplatzadresse des ersten Registers in der Dateieinrichtung anzuzeigen, das einem ersten Vorgang zugeordnet ist;
b) das dynamische Berechnen der Speicherplatzadresse jedes nachfolgenden Registers des Vorgangs in bezug auf die Adresse des ersten Registers; und
c) das Rücksetzen der Zeigereinrichtung, um die Speicherplatzadresse des ersten Registers eines weiteren Vorgangs anzuzeigen, und das Wiederholen des Schritts b) für diesen weiteren Vorgang, wobei vom Benutzer gewählte überlappende und gemeinsame Befehlsspeicherplatzadressen zwischen dem ersten und weiteren Vorgängen vorhanden sind.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß die Dateieinrichtung in eine vorbestimmte Anzahl von Blöcken unterteilt ist, wobei jeder Block eine vorbestimmte Anzahl von aufeinanderfolgenden Registern enthält, ferner gekennzeichnet durch:
d) das Bestimmen eines oder mehrerer Blöcke als Blöcke mit gesperrtem Zugriff;
e) Abbrechen der Ausführung eines Befehls mit einem Operanden, der eine nach dem Schritt b) berechnete Speicherplatzadresse innerhalb eines der Blöcke mit gesperrtem Zugriff aufweist.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß die Steuervorrichtung in der Lage ist, mehrere Aufgaben zu steuern, ferner gekennzeichnet durch:
f) Bestimmen sich gegenseitig ausschließender Blöcke als Blöcke mit gesperrten Zugriff für jede dieser Aufgaben.
10. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß
die Dateiregistereinrichtung einen ersten Satz aufeinanderfolgender Register und einen zweiten Satz aufeinanderfolgender Register aufweist, wobei die Adressen des ersten und des zweiten Satzes von Registern ein vorbestimmtes numerisches Verhältnis zueinander aufweisen, und daß die Berechnung nach Schritt b) eine Speicherplatzadresse innerhalb des zweiten Satzes unter Bezugnahme auf dieses Verhältnis betrifft.
DE8686306268T 1985-08-30 1986-08-14 Digitalprozessorsteuerung. Expired - Lifetime DE3687724T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/771,311 US4777588A (en) 1985-08-30 1985-08-30 General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance

Publications (2)

Publication Number Publication Date
DE3687724D1 DE3687724D1 (de) 1993-03-25
DE3687724T2 true DE3687724T2 (de) 1993-07-22

Family

ID=25091411

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8686306268T Expired - Lifetime DE3687724T2 (de) 1985-08-30 1986-08-14 Digitalprozessorsteuerung.

Country Status (5)

Country Link
US (1) US4777588A (de)
EP (1) EP0213843B1 (de)
JP (1) JP2678183B2 (de)
AT (1) ATE85713T1 (de)
DE (1) DE3687724T2 (de)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
US5293594A (en) * 1986-05-24 1994-03-08 Hitachi, Ltd. Data processing system having a plurality of register groups and a logical or circuit for addressing one register of one of the register groups
US4853849A (en) * 1986-12-17 1989-08-01 Intel Corporation Multi-tasking register set mapping system which changes a register set pointer block bit during access instruction
DE3726192A1 (de) * 1987-08-06 1989-02-16 Otto Mueller Stacksteuerung
US5513353A (en) * 1987-09-30 1996-04-30 Kabushiki Kaisha Toshiba Cache control system which permanently inhibits local but not global parameter data writes to main memory
JPH01263728A (ja) * 1988-04-14 1989-10-20 Sharp Corp 相対指示可能なレジスタ群を備えたマイクロプロセッサ
JP3034873B2 (ja) * 1988-07-01 2000-04-17 株式会社日立製作所 情報処理装置
US5321823A (en) * 1988-07-20 1994-06-14 Digital Equipment Corporation Digital processor with bit mask for counting registers for fast register saves
US5159680A (en) * 1988-07-28 1992-10-27 Sun Microsystems, Inc. Risc processing unit which selectively isolates register windows by indicating usage of adjacent register windows in status register
US5083263A (en) * 1988-07-28 1992-01-21 Sun Microsystems, Inc. BISC with interconnected register ring and selectively operating portion of the ring as a conventional computer
JPH0630063B2 (ja) * 1989-02-17 1994-04-20 株式会社東芝 マイクロプロセッサ
JP2655191B2 (ja) * 1989-07-05 1997-09-17 三菱電機株式会社 演算処理装置
JPH0353328A (ja) * 1989-07-20 1991-03-07 Hitachi Ltd レジスタ退避回復方法ならびに処理装置
JP2991242B2 (ja) * 1989-10-12 1999-12-20 テキサス インスツルメンツ インコーポレーテッド マルチプロセッサコンピュータシステム使用方法
US5428793A (en) * 1989-11-13 1995-06-27 Hewlett-Packard Company Method and apparatus for compiling computer programs with interproceduural register allocation
US5522072A (en) * 1990-09-04 1996-05-28 At&T Corp. Arrangement for efficiently transferring program execution between subprograms
US5226142A (en) * 1990-11-21 1993-07-06 Ross Technology, Inc. High performance register file with overlapping windows
US5696957A (en) * 1991-05-17 1997-12-09 Ricoh Company, Ltd Integrated circuit comprising a central processing unit for executing a plurality of programs
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
DE69311330T2 (de) 1992-03-31 1997-09-25 Seiko Epson Corp., Tokio/Tokyo Befehlsablauffolgeplanung von einem risc-superskalarprozessor
EP0638183B1 (de) 1992-05-01 1997-03-05 Seiko Epson Corporation Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
JP3531166B2 (ja) 1992-12-31 2004-05-24 セイコーエプソン株式会社 レジスタ・リネーミングのシステム及び方法
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
GB2278698B (en) * 1993-05-05 1997-09-03 Hewlett Packard Co Multi-ported data storage device with improved cell stability
JP3676411B2 (ja) * 1994-01-21 2005-07-27 サン・マイクロシステムズ・インコーポレイテッド レジスタファイル装置及びレジスタファイルアクセス方法
EP0676691A3 (de) * 1994-04-06 1996-12-11 Hewlett Packard Co Vorrichtung zur Registersicherstellung und Umspeicherung in einem digitalen Rechner.
US5655132A (en) * 1994-08-08 1997-08-05 Rockwell International Corporation Register file with multi-tasking support
US6086632A (en) * 1996-10-31 2000-07-11 Nec Corporation Register optimizing compiler using commutative operations
US7114056B2 (en) 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
US7117342B2 (en) 1998-12-03 2006-10-03 Sun Microsystems, Inc. Implicitly derived register specifiers in a processor
US6205543B1 (en) * 1998-12-03 2001-03-20 Sun Microsystems, Inc. Efficient handling of a large register file for context switching
JP2000353092A (ja) * 1999-06-09 2000-12-19 Nec Corp 情報処理装置及びそのレジスタファイル切替方法
JP2002182927A (ja) * 2000-12-13 2002-06-28 Hitachi Ltd 異種実行環境におけるレジスタの割当て方法、異種実行環境におけるソフトウェア開発方法、および、それを実行するプログラムが組み込まれたlsi
US20020099872A1 (en) * 2001-01-19 2002-07-25 Vinodha Ramasamy Allocating registers for use in programming code modification
JP3763518B2 (ja) * 2001-05-29 2006-04-05 インターナショナル・ビジネス・マシーンズ・コーポレーション コンパイラ、そのコンパイル方法およびプログラム
US7207032B1 (en) * 2003-03-28 2007-04-17 Applied Micro Circuits Corporation Expanding a software program by insertion of statements
US7185329B1 (en) * 2003-03-28 2007-02-27 Applied Micro Circuits Corporation Use of different color sequences for variables of different sizes and different semantics
US10839877B1 (en) * 2019-04-23 2020-11-17 Nxp Usa, Inc. Register protection circuit for hardware IP modules
US12299451B2 (en) * 2022-08-26 2025-05-13 Texas Instruments Incorporated Securing registers across security zones

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3461433A (en) * 1967-01-27 1969-08-12 Sperry Rand Corp Relative addressing system for memories
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
JPS53142843A (en) * 1977-05-19 1978-12-12 Toshiba Corp Data processor
JPS57103198A (en) * 1980-12-19 1982-06-26 Fujitsu Ltd Storage protection system
JPS6073762A (ja) * 1983-09-29 1985-04-25 Fujitsu Ltd 記憶保護方式
JPS6140650A (ja) * 1984-08-02 1986-02-26 Nec Corp マイクロコンピユ−タ

Also Published As

Publication number Publication date
US4777588A (en) 1988-10-11
JPS6252637A (ja) 1987-03-07
EP0213843A3 (en) 1989-03-29
EP0213843A2 (de) 1987-03-11
JP2678183B2 (ja) 1997-11-17
EP0213843B1 (de) 1993-02-10
DE3687724D1 (de) 1993-03-25
ATE85713T1 (de) 1993-02-15

Similar Documents

Publication Publication Date Title
DE3687724T2 (de) Digitalprozessorsteuerung.
DE3785897T2 (de) Steuervorrichtung zum vorabruf von befehlen.
DE68928677T2 (de) Verfahren und digitaler Computer zur Vorverarbeitung mehrerer Befehle
DE3151745C2 (de)
DE2735814C2 (de) Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung
DE68928213T2 (de) Inhaltadressierte Speicherzellenanordnung
DE68907518T2 (de) Inhaltsadressierte Speicheranordnung.
DE2417795C2 (de) Datenverarbeitungsanlage
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE2718551C3 (de) Adressenumsetzer
DE2715073A1 (de) Mikroprogrammierte rechner-steuervorrichtung
DE2746505A1 (de) Dv-system mit einer einrichtung zum adressieren in einem festwertspeicher abgelegter mikroprogramme
DE69231237T2 (de) Datenverarbeitungsvorrichtung
DE2758829A1 (de) Multiprozessor-datenverarbeitungssystem
DE3043653A1 (de) Datenverarbeitungsanlage
DE2426874A1 (de) Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls
DE19526008A1 (de) Vertikal partitionierter, primärer Befehls-Cache-Speicher
DE2134816A1 (de) Einrichtung zur adressenuebersetzung
DE3689217T2 (de) Datenverarbeitungseinrichtung mit einer Schaltung zur Prüfung der Adressgrenzen in einem virtuellen Speicher.
DE69618831T2 (de) ECC-geschützte Speicherorganisation mit Lese-Änderungs-Schreib-Pipelinezugriff
DE68925376T2 (de) In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas
DE2906685C2 (de)
DE3688973T2 (de) Verarbeitungssystem in Pipelinestruktur und Mikroprozessor mit einem derartigen System.
DE3855066T2 (de) Operationsvorrichtung zur Verarbeitung von Daten willkürlicher Länge

Legal Events

Date Code Title Description
8364 No opposition during term of opposition