[go: up one dir, main page]

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 Datenverarbeitungssystem

Info

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
Application number
DE3854905T
Other languages
English (en)
Other versions
DE3854905D1 (de
Inventor
Dileep Bhandarkar
Wayne Cardoza
David N Cutler
David A Orbits
Richard T Witek
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
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 Digital Equipment Corp filed Critical Digital Equipment Corp
Application granted granted Critical
Publication of DE3854905D1 publication Critical patent/DE3854905D1/de
Publication of DE3854905T2 publication Critical patent/DE3854905T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8061Details on data memory access
    • G06F15/8069Details on data memory access using a cache
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task 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

    HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung
  • Diese Erfindung betrifft allgemein Datenverarbeitungssysteme, und insbesondere Datenverarbeitungssysteme, die eine Ausführung eine Vielzahl von Befehlen benötigen, um einen einzelnen Makrobefehl auszuführen.
  • 2. Beschreibung der zugehörigen Technik
  • 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.
  • MERKMALE DER ERFINDUNG
  • 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.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • 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.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 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.
  • BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS 1. Detaillierte Beschreibung der Figuren
  • 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.
  • 2. Operation des bevorzugten Ausführungsbeispiels
  • 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.
DE3854905T 1987-07-01 1988-06-30 Vorrichtung und Verfahren zur Versorgung einer erweiterten Verarbeitungsumgebung für ein nichtmikrokodiertes Datenverarbeitungssystem Expired - Lifetime DE3854905T2 (de)

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)

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

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

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