DE3854905T2 - Vorrichtung und Verfahren zur Versorgung einer erweiterten Verarbeitungsumgebung für ein nichtmikrokodiertes Datenverarbeitungssystem - Google Patents
Vorrichtung und Verfahren zur Versorgung einer erweiterten Verarbeitungsumgebung für ein nichtmikrokodiertes DatenverarbeitungssystemInfo
- Publication number
- DE3854905T2 DE3854905T2 DE3854905T DE3854905T DE3854905T2 DE 3854905 T2 DE3854905 T2 DE 3854905T2 DE 3854905 T DE3854905 T DE 3854905T DE 3854905 T DE3854905 T DE 3854905T DE 3854905 T2 DE3854905 T2 DE 3854905T2
- Authority
- DE
- Germany
- Prior art keywords
- mode
- data processor
- instructions
- processing
- operating
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 113
- 238000000034 method Methods 0.000 title claims description 35
- 230000008569 process Effects 0.000 claims description 5
- 238000011112 process operation Methods 0.000 claims 1
- 238000012360 testing method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000007667 floating Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013519 translation Methods 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8061—Details on data memory access
- G06F15/8069—Details on data memory access using a cache
-
- 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/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
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 Hardware Design (AREA)
- Computing Systems (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
Description
- Diese Erfindung betrifft allgemein Datenverarbeitungssysteme, und insbesondere Datenverarbeitungssysteme, die eine Ausführung eine Vielzahl von Befehlen benötigen, um einen einzelnen Makrobefehl auszuführen.
- In komplexen Datenverarbeitungssystemen ist ein häufig verwendetes Implementierungsmittel die Verwendung mikrocodierter zentraler Verarbeitungseinheiten. Bei dieser Implementierungstechnik initiiert ein Datenverarbeitungssystembefehl in einer spezialisierten Verarbeitungseinheit, die typischerweise eine Mikro- Ablaufsteuerung ist. In Antwort auf einen Maschinenbefehl liest die Mikro- Ablaufsteuerung eine Folge spezieller Mikrobefehle aus, wobei die Mikrobefehle ein Format haben, das völlig unkorreliert zum Format für Datenverarbeitungssystembefehle ist. Diese Mikrobefehle sind typischerweise in einem speziellen Speicher gespeichert, der "Steuerspeicher" genannt wird. Mikrobefehle sind auch viel breiter als Datenverarbeitungsbefehle in komplexen Hochleistungs- Datenverarbeitungs-systemen.
- Mikrocode-Techniken bieten ein Mittel zum Implementieren komplexer Maschinenbefehle, die eine Vielzahl von Operationen als unteilbare atomarer Einheiten ohne Programmunterbrechung durchführen. Andererseits haben Mikrocode-Techniken den Nachteil, daß sie einen speziellen schnellen Steuerspeicher und eine Hardwarelogik für den Ablauf der Mikrobefehle benötigen. In anderen Datenverarbeitungssystemen, die typischerweise "Reduced Instruction Set Computers" (RISC) genannt werden, werden keine Mikrocode-Techniken verwendet. Statt dessen wird das Datenverarbeitungssystem auf Systembefehle beschränkt, die direkt in die Hardware implementiert werden können, ohne daß dazu Mikrocode-Techniken nötig sind. Eine solche Beschränkung stellt zusätzliche Anforderungen an die Softwareprogramme, mit denen ein Datenverarbeitungssystem fertigwerden muß, dem die benötigten primitiven Operationen fehlen.
- Es gab daher einen Bedarf für eine Technik, die zuläßt, daß ein Datenverarbeitungssystem, das keinen Mikrocode enthält, Datenverarbeitungssystem- Funktionen bietet, die komplexe Operationen sein können. Derartige komplexe Operationen sind als atomare Operationen vorzusehen, die die Abwesenheit von Ausnahmezuständen bei der Hardware und eine nicht unterbrechbare Operation sicherstellen.
- In "MC68020 32bit microprocessor user's manual", Zweite Auflage, Seiten 1 - 8, ist ein Mikroprozessor beschrieben, der auf einer von zwei Privilegebenen arbeitet: einer Benutzerebene oder einer Überwacherebene. Allen Prozessorbefehlen ist eine Ausführung im Überwachungszustand erlaubt, aber nicht allen Prozessorbefehlen ist eine Ausführung im Benutzerzustand erlaubt. Eine Ausnahmeverarbeitung ist nur im Überwacherzustand möglich.
- In EDN Electrical Design News, Bd. 31, Nr. 2, Januar 1986, S.175 - 192: "Software links math chip to 68000-family µPs" ist ein Prozessor beschrieben, der Coprozessor-Operationscodes detektiert, um die CPUs in einen Ausnahmezustand zu zwingen, der eine Steuerung zu einem Programm überträgt, das den Coprozessor- Operationscode decodiert und ihn emuliert.
- In der EP-A-0 211 384 ist ein Verarbeitungssystem beschrieben, bei dem während einer Emulation der Operation eines anderen Systems, wenn fremde Befehle erfaßt werden, eine nicht maskierbare Unterbrechung ausgegeben wird, um ein Emulationsprogramm auszuwählen und auszuführen.
- Es ist eine Aufgabe der vorliegenden Erfindung, eine verbesserte Datenverarbeitungseinheit zu schaffen.
- Es ist ein Merkmal, eine Technik zum Zulassen, daß ein Softwareprogramm bei einer Vielzahl von Typen von Datenverarbeitungssystemen arbeitet, zu schaffen.
- Es ist ein weiteres Merkmal der vorliegenden Erfindung, eine Technik zu schaffen, durch die ein Softwareprogramm bei mikrocodierten Datenverarbeitungssystemen und nicht mikrocodierten Datenverarbeitungssystemen arbeiten kann.
- Es ist ein weiteres Merkmal der vorliegenden Erfindung, einen Datenverarbeitungssystem-Betriebsmodus zum Ausführen von Befehlen zusätzlich zum gewöhnlichen nicht privilegierten Modus und zum privilegierten Modus zu schaffen.
- Es ist ein weiteres Merkmal der vorliegenden Erfindung, ein Ausführen zuvor ausgewählter Gruppen von Befehlen auf eine atomare Weise ohne Unterbrechung zuzulassen.
- Es ist ein weiteres Merkmal der vorliegenden Erfindung, einen Benutzermodus einer Operation, einen Betriebssystemmodus einer Operation und einen dritten Modus einer Operation zum Ausführen zuvor erstellter Ablauffolgen von Befehlen zu schaffen.
- Es ist ein weiteres Merkmal der vorliegenden Erfindung, Übergänge in der Zusammenhangsumgebung im Datenverarbeitungssystem zu synchronisieren.
- Die vorgenannten und andere Merkmale werden gemäß der vorliegenden Erfindung durch Schaffen eines Datenverarbeitungssystems mit drei Moden zum Ausführen eines Befehls erreicht. Der Benutzermodus, in dem im allgemeinen Anwenderprogramme ausgeführt werden, und der Kern- oder Kernelmodus, in dem typischerweise privilegierte Befehle ausgeführt werden, sind die gewöhnlichen Moden eines Datenverarbeitungssystems. Zu diesen Moden fügt die vorliegende Erfindung einen dritten Modus hinzu, der hierin nachfolgend EPICODE-(erweiterter Prozessorbefehlscode)-Modus genannt wird. Der EPICODE-Modus wird durch spezielle EPICODE-Befehle oder durch zuvor ausgewählte Ereignisse initiiert. Im EPICODE-Modus einer Operation werden Ereignisse, die die Ausführung einer normalen Befehlsfolge unterbrechen würden, während bestimmter Befehle gesperrt, und ein Gerät, das ein Ausführen von Befehlen im EPICODE-Modus ermöglicht, wird freigegeben. Der EPICODE-Modus bietet dem Datenverarbeitungssystem die Möglichkeit, wo es angebracht ist einen Befehl von atomarer Größe zu haben, und zwar für Befehle, die durch Einzelbefehlsfolgen implementiert sind und bei denen eine Unterbrechung der Befehlsfolge unerwünscht ist.
- Diese und andere Merkmale der vorliegenden Erfindung werden beim Lesen der folgenden Beschreibung zusammen mit den Zeichnungen klar.
- Figur 1A und Figur 1B sind Beispiele von Datenverarbeitungssystem- Implementierungen, die die vorliegende Erfindung verwenden können.
- Figur 2 ist ein Beispiel einer zentralen Verarbeitungseinheit einer Datenverarbeitungseinheit, die die vorliegende Erfindung verwenden kann.
- Figur 3 ist eine Darstellung einer Datenverarbeitungssystem-Organisation eines virtuellen Speichers.
- Figur 4 ist eine diagrammäßige Darstellung der Beziehung zwischen Datenverarbeitungssystem-Betriebsmoden.
- Figur 5 stellt die Schritte beim Übergang vom Benutzer- oder Kernmodus zum EPICODE-Modus dar.
- Figur 6 stellt dar, daß die EPICODE-Befehlsfolgen in reservierten Bereichen der Hauptspeichereinheit gespeichert sind.
- Nimmt man nun Bezug auf die Fig. 1A und die Fig. 1B, sind zwei beispielhafte Datenverarbeitungssystem-Konfigurationen gezeigt, die die vorliegende Erfindung verwenden können. In Fig. 1A ist die zentrale Verarbeitungseinheit (#1) 11 mit einem Systembus 19 gekoppelt. Andere zentrale Verarbeitungseinheiten (z.B. #N) 12 können auch mit dem System gekoppelt sein. Die zentrale Verarbeitungseinheit(en) 11 (bis 12) verarbeiten Daten gemäß der Struktur der zentralen Verarbeitungseinheit(en) in Verbindung mit Zentralverarbeitungseinheits- Steuerprogrammen, wobei die Steuerprogramme aus Befehlen bestehen, die in der Hauptspeichereinheit 15 vorhanden sind. Die nichtvorhandenen Daten und Befehle sind typischerweise in der Massenspeichereinheit (in den Massenspeichereinheiten) gespeichert und werden über den Systembus 19 zu und von der Hauptspeichereinheit 15 übertragen. Eine Eingabe-/Ausgabeeinheit (Eingabe/Ausgabeeinheiten) (#1) 16 (bis (#M) 17) koppeln Vorrichtungen, wie beispielsweise Massenspeichereinheiten, Benutzerendgerätevorrichtungen und Kommunikationsvorrichtungen mit dem Datenverarbeitungssystem mittels dem Systembus 19. Die Massenspeichereinheiten speichern die Daten und Befehle, die von der Datenverarbeitungseinheit (den Datenverarbeitungseinheiten) benötigt werden. Gruppen von Daten und/oder Befehlen, die typischerweise als Seiten von Daten und/oder Befehlen bezeichnet sind, die für die Operatition der zentralen Verarbeitungseinheiten 11 bis 12 erforderlich sind, werden von den Massenspeichereinheiten mit relativ langsamer Zugriffsmöglichkeit zur Hauptspeichereinheit übertragen, auf die ein Zugriff durch die zentrale Verarbeitungseinheit relativ schnell ist. Das busorientierte System hat den Vorteil, daß es relativ einfach ist, das System zu rekonfigurieren, hat aber den Nachteil, daß jede Systemkomponente eine Steuervorrichtung zum Vorsehen einer Schnittstelle zum Systembus benötigt. Nimmt man als nächstes Bezug auf Fig. 1B, ist ein Datenverarbeitungssystem gezeigt, bei dem die zentrale Verarbeitungseinheit(en) 11 (bis 12) und die Eingabe-/Ausgabeeinheit(en) 16 (bis 17) über eine Speichersteuereinheit 14 mit der Hauptspeichereinheit 15 gekoppelt sind, wobei die Speichersteuereinheit 14 den Systembus 19 und die durch einzelne Datenverarbeitungssystem-Komponenten in der in Fig. 1A gezeigten busorientierten Datenverarbeitungskonfiguration, durchgeführte Steuerfunktion ersetzt. Die Speichersteuereinheit 14 bietet eine zentralisierte Steuerung und Überwachung der Übertragung von Daten und Befehlen, was effizienter sein kann, als bei der busorientierten Konfiguration der Fig. 1, aber einen Verlust an Flexibilität mit sich bringt.
- Nimmt man als nächstes Bezug auf Fig. 2, ist ein Blockdiagramm einer beispielhaften zentralen Verarbeitungseinheit dargestellt, die die vorliegende Erfindung effektiv benutzen kann. Die Ausgabeeinheit 22 ist verantwortlich für ein Liefern von (decodierten) Befehlen zu der Vielzahl spezialisierter Ausführungseinheiten, die die Skalaroperations-Adressenerzeugungseinheit 24, wenigstens eine Ausführungseinheit (#1) 25 (bis zur Ausführungseinheit (#Q) 26) und eine Vektoroperationseinheit 28 aufweisen, wobei die Vektoroperationseinheit 28 eine Vektoroperationsverarbeitungseinheit 28A, eine Vektoroperations-Adressenerzeugungseinheit 28B und Vektoroperationsregister 28C enthält. Die durch die Ausführungseinheiten verarbeiteten Daten werden typischerweise aus den Skalarregistern 23 oder den Vektorregistern 28C extrahiert. Die resultierenden Daten von den Ausführungseinheiten werden in den Skalarregistern 23, in den Vektorregistern 28C oder in der Daten-Cachespeichereinheit 27 gespeichert. Die Daten-Cachespeichereinheit 27 kann als Cachespeichereinheit angesehen werden, die eine Schnittstelle zwischen der Hauptspeichereinheit 15 und der zentralen Verarbeitungseinheit 11 bereitstellt. (Die Daten-Cachespeichereinheit 27 ist in Fig. 2 derart gezeigt, daß sie direkt mit der Hauptspeichereinheit gekoppelt ist. Wie es in Fig. 1A und in Fig. 1B dargestellt ist, kann die tatsächliche Kopplung über ein dazwischenliegendes Datenverarbeitungsgerät erfolgen.) Die Ausgabeeinheit 22 enthält ein Gerät zum Bestimmen, welche Ausführungseinheit ausgewählte Daten verarbeitet, und zum Bestimmen, wann die ausgewählte Ausführungseinheit zum Verarbeiten von Daten verfügbar ist. Dieses zuletzt genannte Merkmal enthält ein Feststellen, daß die Zielortspeicherstelle zum Speichern der verarbeiteten Daten verfügbar ist. Die Befehls- Cachespeichereinheit 21 speichert die Befehle, die decodiert und durch die Ausgabeeinheit zur geeigneten Ausführungseinheit weitergeleitet werden. Die Ausgabeeinheit 22 hat das Gerät, um zu versuchen, die Verarbeitungsoperationen der Ausführungseinheiten zu maximieren. Somit enthält die Ausgabeeinheit 22 ein Auslesegerät und Algorithmen zum Sicherstellen, daß der geeignete Befehl (einschließlich eines beliebigen Verzweigungsbefehls) für die Ausgabeeinheit 22 verfügbar ist, wenn es nötig ist. Die Vielzahl von Ausführungseinheiten ist, wie es durch die Skalaroperations-Adressenerzeugungseinheit 24 und die Vektoroperationseinheit 28 gezeigt ist, spezialisierte Verarbeitungsvorrichtungen zum Bearbeiten bestimmter Klassen einer Verarbeitungsoperation. Beispielsweise kann eine Ausführungseinheit zum Bearbeiten von Gleitkommaoperationen oder ganzzahligen Arithmetikoperationen, etc. konfiguriert sein. Der Ausgabeeinheit 22 sind Skalarregister 23 zugeordnet, die Daten speichern können, die für die Ausführung des Programms oder zum Schaffen einer Aufzeichnung der Datenverarbeitungs- Operation erforderlich sind. Beispielsweise ist ein Register das Programmzählregister, das die (virtuelle) Adresse des in der Ausführungsprogrammbefehlsfolge als nächstes zu verarbeitenden Befehlsspeichert. Die Skalaroperations- Adressenerzeugungseinheit 24 wird dauzu verwendet, virtuelle Adressen in physikalische Stellen in der Hauptspeichereinheit 15 umzuwandeln. Die Ausgabeeinheit 22 ist auch verantwortlich für ein erneutes Ordnen der Daten von den Ausführungseinheiten in der richtigen Ablauffolge, wenn die Ausführungseinheiten Befehle mit unterschiedlichen Geschwindigkeiten verarbeiten.
- Die Vektoroperationseinheit 28 enthält eine Vektoroperationsverarbeitungseinheit 28A, eine Vektoroperations-Adressenerzeugungseinheit 28B und Vektoroperationsregister 28C. Die Aktivität der Vektoroperationsverarbeitungseinheit kann die Verteilung der Daten zu den Ausführungseinheiten 24 bis 26 und die Ausführung der Befehle darin steuern. Gemäß einem weiteren Ausführungsbeispiel (nicht gezeigt) können Ausführungseinheiten, die zur Ausführung von Befehlen durch die Vektoroperationseinheit 28 bestimmt sind, im Datenverarbeitungssystem verfügbar sein. Wenn die Ausführungseinheiten sowohl für Vektor- als auch Skalaroperationen verfügbar sind, wird eine Steuerung Gegenstand der Gesamtsystemsteuerung der Ausgabeeinheit 22, die der Datenverarbeitungseinheit die Betriebsmittel zuordnet.
- Nimmt man als nächstes Bezug auf Fig. 3, wird ein Mechanismus zur virtuellen Adressierung des bevorzugten Ausführungsbeispiels dargestellt. Einem Befehl 301 in der Ausgabeeinheit ist eine virtuelle Adresse 302 zugeordnet, die das Datenelement identifiziert, auf welches hin die Operation des Befehls durchzuführen ist. Die Ausgabeeinheit überträgt die virtuelle Adresse 302 zur Skalar- Adressenerzeugungseinheit 24 (oder, wo es geeignet ist, zur Vektor- Adressenerzeugungseinheit 28B). In der Adressenerzeugungseinheit 24 (oder 28B) wird ein Teil der virtuellen Adresse dazu verwendet (durch ein Gerät 303 in der Adressenerzeugungseinheit), einen Seitentabelleneintrag 304 in der Hauptspeichereinheit 15 zu identifizieren. Der Seitentabelleneintrag 304 wird zur Adressenerzeugungseinheit 24 (oder 28B) übertragen, und das Gerät 305 testet ausgewählte Felder im Seitentabelleneintrag, um zu bestimmen, ob der gerade versuchte Zugriff in bezug auf ein Datenelement zugelassen wird. Wenn der Zugriff nicht zugelassen wird, wird eine Zugriffsverletzung 306 erkannt, und ein geeignetes Betriebssystemprogramm wird aufgerufen, um zu bestimmen, wie auf die Zugriffsverletzung zu reagieren ist. Wenn der Test 305 bestimmt, daß der Zugriff auf das Datenelement 312 zugelassen wird, wird ein Test 307 bezüglich des Seitentabelleneintrags 304 durchgeführt, um zu bestimmen, ob das für den Befehl erforderliche Datenelement in der Hauptspeichereinheit 15 verfügbar ist. Wenn der Test 307 anzeigt, daß das Datenelement nicht vorhanden ist, wird ein Seitenfehler 308 erzeugt, und ein geeignetes Betriebssystemprogramm überträgt das Datenelement zum Hauptspeicher 15 (bei der Stelle 312), erneuert den zugehörigen Seitentabelleneintrag 304 und führt den Befehl erneut aus, der zum Auftreten des Seitenfehlers führte. Wenn das erforderliche Datenelement in der Hauptspeichereinheit verfügbar ist, was durch den Test 307 bestimmt wird, dann testet ein Test 309 den Seitentabelleneintrag 304, um zu bestimmen, ob bestimmt wird, daß die Aktivität, für die das Datenelement vom zugehörigen Befehl benötigt wird, in einem Fehler resultiert. Wenn die durch den Befehl bestimmte Aktivität als Fehlerzustand bestimmt wird, ruft ein Fehler beim Lesen, ein Fehler beim Schreiben oder ein Fehler beim Ausführen, je nachdem wie es geeignet ist, ein Betriebssystemprogramm auf, um auf den Fehlerzustand zu reagieren. Wenn der Test 309 anzeigt, daß die Aktivität des befehls in bezug auf das zugehörige Datenelement nicht als Fehlerzustand bestimmt ist, bestimmt die Adressenerzeugungseinheit 24 (oder 28B) die physikalische Adresse 311 in der Hauptspeichereinheit 15, wo das erforderliche Datenelement gespeichert ist. Das Datenelement 312 bei dieser Adresse wird zu einer Speicherstelle 313 in den Skalarregistern 23, den Vektoroperationsregistern 28C oder zur Befehls-Cachespeichereinheit 21 (d.h., wenn das Datenelement ein Befehl ist) übertragen. Auf diese Weise wird das durch eine virtuelle Adresse identifizierte erforderliche Datenelement zur Verarbeitung durch den Befehl 301 verfügbar.
- Nimmt man als nächstes Bezug auf Fig. 4, ist die Beziehung zwischen den zwei typischen Betriebssystemmoden und dem EPICODE-Modus gezeigt. Der Benutzermodus 4A führt typischerweise anwendertypische Programme aus, die Verarbeitungsfunktionen von direktem Interesse für den Benutzer durchführen. Dem Benutzer steht eine relativ vollständige Steuerung zur Verfügung, um die gewünschten Verarbeitungsmöglichkeiten zu erhalten. Die Befehle sind typischerweise nicht privilegiert, und zwar in dem Sinn, daß die Reihenfolge und ausgewählte Aspekte des Befehls unter Steuerung des Benutzers erfolgen. Der Kernmodus 4B ist der Modus, in dem das Betriebssystem Befehle ausführt. Der Kernmodus führt alle Befehle aus, die im Benutzermodus verfügbar sind, wie auch zusätzliche Befehle, die zum Kernmodus 4B gehören, die privilegiert sind und daher nicht zur Bearbeitung durch einen Benutzer verfügbar sind. Privilegierte Befehle sind im Benutzermodus nicht zugelassen, weil sie die Sicherheit anderer Benutzer oder Programme stören könnten. Der EPICODE-Modus der Datenverarbeitungssystem-Operation ist für Befehlsfolgen reserviert, die eine Ausführung ohne Unterbrechung durchführen sollten und/oder keine Ausführung durchführen sollten, bis das Datenverarbeitungssystem nicht in einem vorbestimmten Zustand ist. Einige Befehle, die im Benutzermodus 4A oder im Kernmodus 4B ausgeführt werden können, benötigen einen Übergang in den EPICODE-Modus 4C. Dieser Modus ist mit bestimmten Privilegien und bestimmter zugehöriger Hardware, die die Strategie implementiert, ausgestattet, um eine nicht unterbrechbare (atomare) Ausführung der Befehlsfolge sicherzustellen.
- Nimmt man als nächstes Bezug auf Fig. 5, sind die Schritte zum Eintreten in den EPICODE-Modus aus jedem der Betriebsmoden gezeigt. Ein Ereignis 501 wie beispielsweise eine Unterbrechung, eine Hardwareausnahme oder ein Befehl im EPICODE-Format teilt dem Datenverarbeitungssystem das Erfordernis mit, in den EPICODE-Modus einzutreten. Im Schritt 502 wird die Ausgabeeinheit davon abgehalten, neue Befehle auszugeben, aber die Befehle, für welche eine Ausführung begonnen hat, werden beendet. Das Beenden gegenwärtig ausführender Befehle läßt zu, daß alle Hardwareausnahmen vor einer Ausführung im EPICODE-Modus angezeigt werden. Im Schritt 503 werden externe Unterbrechungen gesperrt, und das Abbilden einer virtuellen Adresse für Befehlsablaufreferenzen wird im Schritt 504 gesperrt. Im Schritt 505 wird das Privileg zum Ausführen spezieller Befehle, die für den EPICODE-Modus reserviert sind, freigegeben. Im Schritt 506 wird jeder Prozessorzustand, der durch die Ausführung im EPICODE-Modus zerstört würde, gesichert. Beispielsweise werden in diesem Schritt die Inhalte des Programmzählers gesichert. Ein Zugriff auf eine spezielle Gruppe von Registern, die zum EPICODE-Modus gehören, wird im Schritt 507 freigegeben. Eine neue Programmzähleradresse wird durch Kombinieren einer Adresse von einem Hardwareregister (das EPICODE-Basisadressenregister genannt wird) mit bestimmten Statussignal- Flags im Schritt 508 gebildet. Und im Schritt 509 werden die Folge normaler und EPICODE-Befehle, die das adressierte EPICODE-Modusprogramm bilden, ausgeführt.
- Nimmt man Bezug auf Fig. 6, hat die Hauptspeichereinheit 15 einen reservierten Bereich 151, in dem die auf den EPICODE bezogenen befehlsfolgen gespeichert sind. Diese Information wird vom EPICODE-Basisadressenregister 238 adressiert. Das Register 238 kann eines einer Vielzahl von Registern sein, die nur für den EPICODE-Modus verfügbar sind (z.B. wird ein Zugriff durch zuvor aufgebaute Bitpositionen freigegeben). Bestimmte Flags und Statussignale können verwendet werden, um den Offset von der Basisadresse für Befehlsfolgen zu bestimmen, die auf die Bedingungen reagieren, die die Flags oder Statussignale erzeugen.
- Beim bevorzugten Ausführungsbeispiel wurde die zentrale Verarbeitungseinheit mit pipelinemäßigen Ausführungseinheiten der Fig. 2 implementiert, was mehrere Beschränkungen mit sich bringt, jedoch können andere Aufbauimplementierungen die vorliegende Erfindung verwenden. Die zentrale Verarbeitungseinheit enthält eine Vielzahl von Ausführungseinheiten, wobei jede Ausführungseinheit dazu geeignet ist, eine Klasse von Befehlen auszuführen. Beispielsweise steuert eine Ausführungseinheit, nämlich die Skalar-Adressenerzeugungseinheit 24, die Übertragung der Daten zwischen der zentralen Verarbeitungseinheit und der Hauptspeichereinheit, d.h. führt die skalaren Lade/Speicherbefehle aus. Eine Ausführungseinheit ist dazu geeignet, Datenschiebeoperationen auszuführen, eine Ausführungseinheit ist für Gleitkomma-Addier-/Subtrahieroperationen geeignet, eine Ausführungseinheit ist geeignet für ganzzahlige und Gleitkomma- Multiplizieroperationen und eine Ausführungseinheit ist geeignet für ganzzahlige und Gleitkomma-Dividieroperationen. Die spezialisierten Ausführungseinheiten können in einer pipelinemäßigen Konfiguration implementiert sein, sind es aber nicht notwendigerweise. Die anderen Merkmale der zentralen Verarbeitungseinheit sind folgende. Der Befehl in der gegenwärtig ausführenden befehlsfolge wird von der Befehls-Cachespeichereinheit 21 zur Ausgabeeinheit 22 übertragen. In der Ausgabeeinheit wird der Befehl in seine Einzelteile aufgebrochen und daraus werden datenabhängige Steuersignale und Adressensignale erzeugt. Jedoch müssen, bevor ein Befehl eine Ausführung beginnen kann (d.h. ausgegeben werden kann), mehrere Bedingungen erfüllt sein. Alle Quellen- und Zielortregister für den Befehl müssen verfügbar sein, d.h. es dürfen keine Schreiboperationen zu einem benötigten Register ausstehen. Der Registerschreibpfad muß im zukünftigen Zyklus verfügbar sein, in dem dieser Befehl die verarbeitete Menge speichern wird. Die Ausführungseinheit, die zur Verarbeitung des Befehls während der Ausführung erforderlich ist, muß dafür verfügbar sein, die Operation durchzuführen. In bezug auf die Vektoroperationseinheit reserviert eine Vektoroperation eine Ausführungseinheit für die Dauer der Vektoroperation. Wenn ein Speicher-Lade/Speicher-Befehl einen Cachespeichereinheits-Nichttreffer erfährt, wird das Lade/Speichereinheitsbesetzt-Flag veranlassen, daß die nachfolgenden Lade-/Speicherbefehle verzögert werden, bis die Cachespeicher-Nichttrefferantwort beendet ist. Wenn ein Befehl eine Ausgabe durchführt, werden das Zielortregister und der Schreibpfadzyklus für das Ergebnis reserviert. Während eines Aufbauens eines Operanden werden alle befehlsunabhängigen Registeradressen erzeugt, Operanden werden gelesen und gespeichert und datenabhängige Steuersignale werden erzeugt. Die Befehlsoperanden und Steuersignale werden zur Ausführung zur zugehörigen Ausführungseinheit weitergeleitet. Das durch die Ausführungseinheit erzeugte Ergebnis wird je nachdem in Registerdateien oder in der Daten- Cachespeichereinheit 15 gespeichert. Wenn ein Befehl einmal eine Ausgabe durchführt, kann es vorkommen, daß das Ergebnis der Verarbeitung für mehrere Maschinenzyklen nicht verfügbar ist. Zwischenzeitlich kann im nächsten Maschinenzyklus der nächste Befehl decodiert werden und kann ausgegeben werden, wenn die erforderlichen Ausgabebedingungen erfüllt sind. Somit werden die Befehle in der normalen Befehlsfolge decodiert und ausgegeben, aber die Ergebnisse können aufgrund der sich ändernden Befehlsausführungszeiten der Ausführungseinheiten in einer unterschiedlichen Reihenfolge gespeichert werden. Dieses außerordentliche Speichern kompliziert die Ausnahmebearbeitung und das erneute Versuchen fehlerbehafteter Befehle. Jedoch sind diese Ereignisse relativ selten und das außerordentliche Speichern schafft Ausführungs- und Hardware-Vorteile.
- In Fig. 3 ist die Verwendung virtueller Adressiertechniken in starkem Maße implementiert. Diese Technik läßt zu, daß der Programmierer sich nicht mit der tatsächlichen Stelle der Daten- und Befehlselemente beschäftigt, wobei der Adressenerzeugungsmechanismus eine Schnittstelle zwischen den Programmadressen und den Daten- und Befehlselementen innerhalb der Datenverarbeitungseinheit zur Verfügung stellt. Durch die Verwendung von Seiten von Daten- und Befehlselementen wird die Übertragung von Daten- und Befehlselementen von Massenspeichermedien beschleunigt, und es gibt keine Notwendigkeit zum Übertragen einzelner Daten- und Befehlselemente. Zusätzlich sind Programme im allgemeinen in einem Format geschrieben, das Daten- und Befehlselemente, die für eine sequentielle Befehlsausführung benötigt werden, relativ nahe beieinander im Programm oder einer Datei speichert. Somit enthält eine Seite von Daten- und Befehlselementen typischerweise eine Vielzahl zugehöriger Daten- und Befehlselemente zur Programmausführung. Nichtsdestoweniger hat die relative Steifigkeit der Granularität der Seitenimplementierung, insbesondere bei der Vektorbefehlsausführung, zum Ergebnis, daß sich die Gruppe zugehöriger Daten- und Befehlselemente über die Seitengrenze hinaus zu einer Seite erstrecken kann, die nicht in der Hauptspeichereinheit des Datenverarbeitungssystems vorhanden ist. Das Datenverarbeitungssystem enthält typischerweise Verfahren, die zu den virtuellen Adressierungstechniken gehören, wie beispielsweise das Gerät zum Anzeigen, daß die erforderliche Informationsseite nicht in der Hauptspeichereinheit ist, wie auch die Programme zum Antworten auf einen Seitenfehler durch Wiedergewinnen der fehlenden Seite einer Information.
- Das oben beschriebene Datenverarbeitungssystem ist typisch und kann auf eine Vielzahl von Weisen implementiert werden. Insbesondere sind Mikrocodiertechniken beim Implementieren einer solchen Struktur optional. Wenn keine Mikrocodiertechniken verwendet werden, benötigen viele erforderliche Funktionen des Datenverarbeitungssystems eine komplexe Ablauffolge, müssen aber nichtsdestoweniger atomar zu einer anderen Aktivität in der zentralen Verarbeitungseinheit durchgeführt werden. Einige Beispiele solcher Funktionen sind:
- 1. Unterbrechungs- und Ausnahmeabfertigung,
- 2. Speicherverwaltungssteuerfunktionen, wie beispielsweise eine Umsetzungspufferauffüllung,
- 3. Befehle, die eine komplexe Ablauffolge erfordern, wie beispielsweise der Rücksprung von einem Befehl für eine Ausführung oder eine Unterbrechung (REI),
- 4. Befehle, die einen gesteuerten Zugriff zu Prozessorbetriebsmitteln benötigen, wie beispielsweise Befehle, die in einer Speichereinheitsverriegelung resultieren,
- 5. Befehle, die eine Architektur-Schnittstelle über alle Implementierungen zur Softwarekompatibilität benötigen, deren physikalische Implementierung aber zwischen den Implementierungen in einem weiten Bereich schwanken kann. Beispiele sind der Rücksprung von einer Ausnahme und einer Unterbrechung und das Bewegen zu/von einem Prozessorregister.
- Diese Funktionen sind in den mikrocodierten Datenverarbeitungssystemen auf einfache Weise implementiert. Der EPICODE-Modus stellt eine Technik zur Implementierung dieser Befehle in Datenverarbeitungssystemen zur Verfügung, die unter Verwendung von Mikrobefehlstechniken nicht implementiert sind.
- In den EPICODE-Modus wird beim bevorzugten Ausführungsbeispiel dann eingetreten, wenn eines der folgenden Ereignisse im Datenverarbeitungssystem erkannt wird. Ein Unterbrechungssignal wird von einer externen Eingabe-/Ausgabevorrichtung oder von einem anderen Prozessor empfangen. Eine Hardwareausnahme wird durch das gegenwärtig ausführende Programm erzeugt. Oder ein EPICODE-Formatbefehl wird ausgeführt, um einen komplexen Befehl atomar durchzuführen. Die EPICODE-Befehlsfolge wird in Antwort auf diese Ereignisse auf eine atomare und im allgemeinen nicht unterbrechbare Weise ausgeführt.
- Weil der EPICODE-Modus im Datenverarbeitungssystem als Übergangsmodus zwischen Betriebsmoden verwendet wird, läßt das Eintreten in den EPICODE- Modus automatisch zu, daß vor einem Eintritt in den Modus alle gegenwärtig ausführenden Befehle eine Ausführung beenden. Auf diese Weise kann vor einem Übergang in den EPICODE-Modus auf Ausnahmeereignisse innerhalb der Zusammenhangsumgebung reagiert werden, in der die Ereignisse auftraten. Der EPICODE-Modus synchronisiert die Übergänge zwischen Operationsmoden einschließlich zum und vom EPICODE-Modus.
- Beim bevorzugten Ausführungsbeispiel hat ein Befehl, der eine Ausführung im EPICODE-Modus benötigt, ein spezielles Format. Zusätzlich kann das Befehlsrepertoir, das zum Implementieren eines EPICODE-Befehls verfügbar ist, die Softwarebefehlsgruppe wie auch spezialisierte Befehle zum Implementieren der spezialisierten Aktivität, die zur Ausführung im EPICODE-Modus reserviert ist, enthalten. Der EPICODE-Modus hat eine Vielzahl bestimmter Register (in der Skalarregistereinheit 23), die dafür verfügbar sind, die Leistungsfähigkeit und Flexibilität in diesem Betriebsmodus zu erhöhen. Der EPICODE-Modus stellt daher den Freigabemechanismus für eine Interaktion mit den reservierten Registern zur Verfügung.
- Die vorangehende Beschreibung ist dazu da, die Operation des bevorzugten Ausführungsbeispiels darzustellen, und hat nicht die Bedeutung, den Schutzumfang der Erfindung zu beschränken. Der Schutzumfang der Erfindung ist nur durch die folgenden Ansprüche beschränkt. Aus der vorangehenden Beschreibung werden Fachleuten auf dem technischen Gebiet viele Variationen offensichtlich, die noch vom Schutzumfang der Erfindung umfaßt sind, wie sie in den beigefügten Ansprüchen definiert ist.
Claims (23)
1. Datenprozessor (11), der beim Betrieb in einem Benutzermodus (4A)
und beim Betrieb in einem Kernmodus (4B) Befehle ausführt, um Programme zu
verarbeiten und Unterbrechungsanforderungen zu bedienen, die dem Prozessor
zugeführt werden, dadurch gekennzeichnet, daß der Datenprozessor folgendes
aufweist:
eine Verarbeitungseinrichtung (24 - 28) zur Durchführung von
Verarbeitungsoperationen in mindestes drei privilegierten Modi einschließlich dem
Benutzermodus, dem Kernmodus und einem dritten Modus (4C);
eine Steuereinrichtung (22), um die Verarbeitungseinrichtung in Bezug
auf die privilegierten Modi zu steuern, wobei die Steuereinrichtung die
Verarbeitungseinrichtung aktiviert, um die Verarbeitungsoperationen
vorübergehend einzustellen (502 - 504) und die Unterbrechungsanforderungen zu
bedienen (509), wenn die Verarbeitungseinrichtung entweder gerade im
Benutzermodus oder im Kernmodus Operationen verarbeitet, und um die
Verarbeitungseinrichtung am vorübergehenden Einstellen der
Verarbeitungsoperationen und an der Bedienung von Unterbrechungsanforderungen zu hindern (503),
wenn die Verarbeitungseinrichtung Operationen im dritten Modus verarbeitet; und
wobei die Steuereinrichtung (22) eine Einrichtung aufweist, die auf
einen ausgewählten, von der Verarbeitungseinrichtung verarbeiteten Befehl
anspricht, wenn die Verarbeitungseinrichtung Operationen im Benutzermodus
verarbeitet, um zu bewirken, daß die Verarbeitungseinrichtung aus dem
Benutzermodus (4A) in den dritten Modus (4C) schaltet und im dritten Modus eine
Sequenz von Befehlen, die dem ausgewählten Befehl zugeordnet ist, atomar
ausführt.
2. Datenprozessor nach Anspruch 1, bei dem die Steuereinrichtung (22)
die Verarbeitungseinrichtung aktiviert, um nicht privilegierte Befehle auszuführen,
wenn sie im Benutzermodus (4A) arbeitet, privilegierte oder nicht privilegierte
Befehle, wenn sie im Kernmodus (4B) arbeitet, und nicht unterbrechbare
Befehlssequenzen, wenn sie im dritten Modus (4C) arbeitet.
3. Datenprozessor nach Anspruch 2, bei dem die nicht unterbrechbaren
Befehlssequenzen neben den privilegierten und nicht privilegierten Befehlen
spezielle Befehle aufweisen.
4. Datenprozessor nach Anspruch 2, bei dem die Ausführung (509) der
nicht unterbrechbaren Befehlssequenzen eine Reaktion auf eine
Ausnahmesituation und auf ein Unterbrechungsereignis (501) ist.
5. Datenprozessor nach Anspruch 1, bei dem die Steuereinrichtung die
Verarbeitungseinrichtung aktiviert, um Operationen im Benutzermodus (4A) und
anschließend im dritten Modus (4C) zu verarbeiten, ohne daß eine
Zwischenoperation im Kernmodus (4B) durchgeführt wird.
6. Datenprozessor nach Anspruch 1, bei dem die im dritten Modus (4C)
verarbeiteten Operationen der Steuerung durch einen Benutzer unterliegen.
7. Datenprozessor nach Anspruch 1, bei dem die im dritten Modus (4C)
verarbeiteten Operationen das Ergebnis von Befehlen sind, die in einem
Anwendungsprogramm enthalten sind.
8. Datenprozessor nach Anspruch 1, bei dem die
Verarbeitungseinrichtung keinen Mikrocode zur Durchführung der Operationen
enthält, die im dritten Modus (4C) verarbeitet werden.
9. Datenprozessor nach Anspruch 1, bei dem die Steuereinrichtung (22)
so ausgelegt ist, daß sie unterschiedliche Typen der Verarbeitungseinrichtungen
(24-28) steuern kann.
10. Datenprozessor nach Anspruch 9, bei dem zumindest einer der
unterschiedlichen Typen von Verarbeitungseinrichtung keinen Mikrocode zur
Durchführung der Operationen aufweist, die im dritten Modus verarbeitet werden.
11. Datenprozessor nach Anspruch 1, bei dem beim Betrieb im dritten
Modus (4C) ablaufende Befehlssequenzen in einem reservierten Bereich (151)
einer Hauptspeichereinheit (15) gespeichert werden.
12. Datenprozessor nach Anspruch 1, bei dem der Datenprozessor
virtuelle Adressierungstechniken anwendet, wobei diese virtuellen
Adressierungstechniken während des Betriebs des Datenprozessors im dritten
Modus (4C) für Befehlsstrom-Verweise gesperrt werden (504).
13. Datenprozessor nach Anspruch 1, bei dem die Steuereinrichtung
Vorgehensweisen (505) ermöglicht, die auf Unterbrechungsereignisse ansprechen,
die im dritten Betriebsmodus ausgeführt werden sollen.
14. Datenprozessor nach Anspruch 1, bei dem es die Steuereinrichtung
ermöglicht, daß aus dem Benutzer-Betriebsmodus und aus dem Kern-
Betriebsmodus in den dritten Betriebsmodus gewechselt werden kann.
15. Datenprozessor nach Anspruch 1, bei dem der Datenprozessor eine
Vielzahl von Registern aufweist, wobei die Steuereinrichtung die
Verarbeitungseinrichtung freigibt (507), um die Register nur dann zu verwenden,
wenn sich der Datenprozessor im dritten Betriebsmodus befindet.
16. Datenprozessor nach Anspruch 1, bei dem der Datenprozessor eine
Vorrichtung enthält, die auf Unterbrechungsbedingungen anspricht, wobei die
Steuereinrichtung die auf Unterbrechungen ansprechende Vorrichtung sperrt
(503), wenn sich der Datenprozessor im dritten Modus befindet.
17. Datenprozessor nach Anspruch 1, bei dem die Steuereinrichtung die
Verarbeitungseinrichtung freigibt, um im Benutzermodus und im Kernmodus eine
Vielzahl sich überlappender Befehle auszuführen, wobei die Steuereinrichtung die
Verarbeitungseinrichtung freigibt, um die Ausführung (502) aller Befehle im
Benutzermodus und im Kernmodus, die gerade ausgeführt werden, abzuschließen,
bevor sie in den dritten Modus wechselt.
18. Verfahren zum Betreiben eines Datenprozessors (11), der beim
Betrieb in einem Benutzermodus (4A) und beim Betrieb in einem Kernmodus (4B)
Befehle ausführt, dadurch gekennzeichnet, daß das Verfahren folgende Schritte
aufweist:
Aktivieren des Prozessors, um Verarbeitungsoperationen in mindestens
drei privilegierten Modi einschließlich dem Benutzermodus, dem Kernmodus und
einem dritten Modus (4C) durchzuführen;
Aktivieren des Prozessors, um die Verarbeitungsoperationen (502 - 504)
vorübergehend einzustellen und die Unterbrechungsanforderungen zu bedienen
(509), wenn die Verarbeitungseinrichtung entweder gerade im Benutzermodus
oder im Kernmodus Operationen verarbeitet;
den Prozessor daran zu hindern (503), die Verarbeitungsoperationen
und die Bedienung von Unterbrechungsanforderungen vorübergehend
einzustellen, wenn die Verarbeitungseinrichtung gerade Operationen im dritten
Modus (4C) verarbeitet; und,
wenn er Operationen im Benutzermodus verarbeitet, zu bewirken, daß
der Prozessor auf einen ausgewählten Befehl anspricht, indem er vom
Benutzermodus in den dritten Modus schaltet und anschließend im dritten Modus
eine Sequenz von Befehlen, die dem ausgewählten Befehl zugeordnet ist, atomar
ausführt.
19. Verfahren nach Anspruch 18, bei dem dieses Verfahren dazu
ausgelegt ist, unterschiedliche Datenprozessortypen (24-28) zu betreiben.
20. Verfahren nach Anspruch 19, bei dem zumindest einer der
unterschiedlichen Datenprozessortypen keinen Mikrocode zur Durchführung der
Operationen aufweist, die im dritten Modus verarbeitet werden.
21. Verfahren zum Betreiben eines Datenprozessors (11), der beim
Betrieb in einem Benutzermodus (4A) und beim Betrieb in einem Kernmodus (4B)
Befehle ausführt, dadurch gekennzeichnet, daß das Verfahren die Schritte
aufweist,
es dem Prozessor zu ermöglichen, die Ausführung der Befehle
vorübergehend einzustellen und Unterbrechungsanforderungen zu bedienen,
wenn der Prozessor im Benutzermodus oder im Kernmodus arbeitet; und
zu bewirken, daß der Prozessor auf einen vorgegebenen, im
Benutzermodus ausgeführten Befehl anspricht, indem er eine ausgewählte
Befehlssequenz (509) ausführt, und den Prozessor am vorübergehenden
Einstellen der Ausführung der Sequenz und am Bedienen von
Unterbrechungsanforderungen zu hindern (503), während der Prozessor diese
Sequenz gerade ausführt, so daß der Prozessor die Sequenz atomar ausführt.
22. Verfahren nach Anspruch 21, bei dem das Verfahren so ausgelegt
ist, daß es unterschiedliche Typen von Datenprozessoren (24-28) betreiben kann.
23. Verfahren nach Anspruch 22, bei dem der Datenprozessor eine
ausgewählte Operation durch die Ausführung der Sequenz durchführt, wobei
zumindest einer der unterschiedlichen Datenprozessortypen keinen Mikrocode zur
Durchführung der ausgewählten Operation aufweist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6936587A | 1987-07-01 | 1987-07-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3854905D1 DE3854905D1 (de) | 1996-02-29 |
DE3854905T2 true DE3854905T2 (de) | 1996-09-05 |
Family
ID=22088506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3854905T Expired - Lifetime DE3854905T2 (de) | 1987-07-01 | 1988-06-30 | Vorrichtung und Verfahren zur Versorgung einer erweiterten Verarbeitungsumgebung für ein nichtmikrokodiertes Datenverarbeitungssystem |
Country Status (10)
Country | Link |
---|---|
EP (1) | EP0301707B1 (de) |
JP (1) | JPH0754467B2 (de) |
KR (1) | KR890002765A (de) |
CN (1) | CN1016905B (de) |
AU (1) | AU626263B2 (de) |
BR (1) | BR8803378A (de) |
CA (1) | CA1302579C (de) |
DE (1) | DE3854905T2 (de) |
IE (1) | IE75357B1 (de) |
IN (1) | IN170672B (de) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0307448B1 (de) * | 1987-03-20 | 1993-02-17 | Digital Equipment Corporation | Vorrichtung und verfahren zur synchronisation von arithmetischen exceptionen in parallelen pipeline-ausführungseinheiten |
EP0432075B1 (de) * | 1989-11-09 | 1997-02-26 | International Business Machines Corporation | Multiprozessor mit relativ atomaren Befehlen |
DE69110908T2 (de) * | 1991-04-01 | 1996-02-08 | Cray Research Inc | Auffangen eines priviligierten befehlswortes zur kontrolle eines betriebssystems. |
JP4246672B2 (ja) | 2004-06-03 | 2009-04-02 | 株式会社リコー | 画像形成装置および画像形成装置制御方法 |
CN103631561B (zh) * | 2012-08-27 | 2017-02-08 | 长沙富力电子科技有限公司 | 一种基于超复杂指令集系统的微处理器架构 |
US10719321B2 (en) * | 2015-09-19 | 2020-07-21 | Microsoft Technology Licensing, Llc | Prefetching instruction blocks |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5140728A (en) * | 1974-10-02 | 1976-04-05 | Ayao Miura | Haamueanyoru ronrikikai |
JPS51141537A (en) * | 1975-05-31 | 1976-12-06 | Toshiba Corp | Memory access control device |
JPS5374859A (en) * | 1976-12-15 | 1978-07-03 | Fujitsu Ltd | Interruption cotrol system |
US4791557A (en) * | 1985-07-31 | 1988-12-13 | Wang Laboratories, Inc. | Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system |
-
1988
- 1988-06-28 IN IN524/CAL/88A patent/IN170672B/en unknown
- 1988-06-30 DE DE3854905T patent/DE3854905T2/de not_active Expired - Lifetime
- 1988-06-30 JP JP63164097A patent/JPH0754467B2/ja not_active Expired - Fee Related
- 1988-06-30 IE IE198488A patent/IE75357B1/en not_active IP Right Cessation
- 1988-06-30 CA CA000570855A patent/CA1302579C/en not_active Expired - Fee Related
- 1988-06-30 EP EP88305993A patent/EP0301707B1/de not_active Expired - Lifetime
- 1988-07-01 BR BR8803378A patent/BR8803378A/pt not_active Application Discontinuation
- 1988-07-01 AU AU18634/88A patent/AU626263B2/en not_active Ceased
- 1988-07-01 CN CN88103944A patent/CN1016905B/zh not_active Expired
- 1988-07-01 KR KR1019880008153A patent/KR890002765A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
CA1302579C (en) | 1992-06-02 |
AU626263B2 (en) | 1992-07-30 |
CN1016905B (zh) | 1992-06-03 |
JPH0754467B2 (ja) | 1995-06-07 |
BR8803378A (pt) | 1989-01-24 |
EP0301707A2 (de) | 1989-02-01 |
EP0301707B1 (de) | 1996-01-17 |
AU1863488A (en) | 1989-01-05 |
KR890002765A (ko) | 1989-04-11 |
JPH0192843A (ja) | 1989-04-12 |
IE75357B1 (en) | 1997-08-27 |
CN1030308A (zh) | 1989-01-11 |
DE3854905D1 (de) | 1996-02-29 |
IN170672B (de) | 1992-05-02 |
EP0301707A3 (de) | 1992-01-08 |
IE881984L (en) | 1989-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2722099C2 (de) | ||
DE69810064T2 (de) | Verfahren und Anordnung zur Veränderung der Durchführung eines Nachfolgebefehls in einem Dataprozessor | |
DE3789345T2 (de) | Erweiterte Gleitkommaoperationen zur Unterstützung der Emulation von Quellbefehlsausführungen. | |
DE69129565T2 (de) | Hochleistungsfähiger Emulator mit Pipelining | |
DE3851033T2 (de) | Datenprozessor mit Entwicklungsunterstützungsmerkmalen. | |
DE69727407T2 (de) | Verteilte Ausführung von modusungeeigneten Befehlen in Multiprozessorsysteme | |
DE68924546T2 (de) | Verfahren und Vorrichtung zur Ausführung von Befehlen für ein Vektorverarbeitungssystem. | |
DE69231500T2 (de) | Ein-Chip-Mikrorechner | |
DE69622832T2 (de) | Vorrichtung und verfahren für kooperative unterbrechungen in einer preemptiven prozessablauffolgeplanungsumgebung | |
DE3587039T2 (de) | Computer mit virtuellem maschinenmodus und mehrfachen schutzringen. | |
DE69229319T2 (de) | System und Verfahren zur Konservierung der Unteilbarkeit eines Quellbefehls in übertragenen Programmbefehlen | |
DE69505717T2 (de) | Verfahren und Vorrichtung zur Feststellung und Durchführung von kreuzweisen Unterprogrammanrufen | |
DE68927415T2 (de) | Kontextumschaltungsverfahren und -anordnung zur Verwendung in einem Vektorverarbeitungssystem | |
DE3685863T2 (de) | Rechnersystem zur steuerung virtueller maschinen. | |
DE69033398T2 (de) | Rechnerarchitektur mit Mehrfachbefehlsausgabe | |
DE60217157T2 (de) | Verfahren und vorrichtung zum binden von shadow-registern an vektorisierte interrupts | |
DE69636861T2 (de) | Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern | |
DE3855289T2 (de) | Maus-Zeiger mit umschaltbarem Emulations-Betriebsmodus | |
DE3716229A1 (de) | Mikroprozessorchip mit einem stapelrahmen-cache | |
DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
DE3942669A1 (de) | Virtuelles maschinensystem | |
DE3855029T2 (de) | Supervisorverfahren für ein Rechnerbetriebssystem | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE69621405T2 (de) | Verarbeitungssystem, prozessor, befehlsstromspeicher und kompilierer | |
DE69320741T2 (de) | Verfahren und Einrichtung zur Emulation der Umgebung eines Mikroprozessors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN |