PatentDe  


Dokumentenidentifikation DE3750806T2 22.06.1995
EP-Veröffentlichungsnummer 0264216
Titel Eingeschlossene Domänenadressierung.
Anmelder Amdahl Corp., Sunnyvale, Calif., US
Erfinder Maier, Robert M., San Jose California 95136, US;
Andoh, John C., San Jose California 95132, US;
Krakauer, Arno S., San Jose California 95120, US;
Tobias, Richard J., Palo Alto California 94301, US;
Zmyslowski, Allan J., Sunnyvale California 94086, US
Vertreter Grünecker und Kollegen, 80538 München
DE-Aktenzeichen 3750806
Vertragsstaaten CH, DE, ES, FR, GB, IT, LI, NL
Sprache des Dokument En
EP-Anmeldetag 05.10.1987
EP-Aktenzeichen 873088090
EP-Offenlegungsdatum 20.04.1988
EP date of grant 30.11.1994
Veröffentlichungstag im Patentblatt 22.06.1995
IPC-Hauptklasse G06F 9/44
IPC-Nebenklasse G06F 9/30   

Beschreibung[de]

Die vorliegende Erfindung bezieht sich auf Datenverarbeitungsmaschinen, die mit Systemsteuer- bzw. Betriebssystemprogrammen laufen, die logische Prozessoren einsetzen. Jeder logische Prozessor ist einer Domäne, die einen Speicherplatz umfaßt, und zugehörigen Einrichtungen in der Datenverarbeitungsmaschine zugeordnet. Die vorliegende Erfindung bezieht sich insbesondere auf den Zugang zum Domänenspeicherbereich.

Moderne Hochgeschwindigkeits-Datenverarbeitungsmaschinen sind für Mehrfachbenutzerumgebungen geeignet. Eine Möglichkeit zur Anpassung einer einzelnen Maschine an eine Mehrfachbenutzerumgebung setzt eine Zuordnung eines logischen Prozessors zu jedem Benutzer ein. Der logische Prozessor verhält sich so, als hätte er Zugriff zu den gesamten Einrichtungen der Datenverarbeitungsmaschine, während ein Betriebssysem den Zugriff des logischen Prozessors zu einer spezifizierten Domäne eines Speicherraums und der dazugehörigen Hardware einschränkt. Auf diese Art und Weise überlappen sich die verschiedenen logischen Prozessoren in einer einzelnen Maschine nicht im Speicher. Allerdings ist, um die Benutzerschnittstelle zu vereinfachen, der beschränkte Zugriff zu dem logischen Prozessor zu diesem Prozessor transparent. Demzufolge spezifizieren Instruktionen und Adressen, die in der Maschine laufen, nicht eine bestimmte Domäne, innerhalb der sie für im Zugriff befindliche Daten aufgeführt und verwendet werden sollen.

Eine Domäne ist eine Verarbeitungsumgebung, die aus einem Hauptspeicher, Kanälen, Benutzereinrichtungen und logischen Prozessoren, die Instruktionen ausführen, besteht. Eine Domäne besitzt, wenn sie in einer bevorzugten Umgebung aktiviert wird, die Einrichtungen, die in den IBM System/370 Principles of Operation, oder dem IBM System/370 Extended Architecture Principles of Operation, beschrieben sind. Diese Resourcen werden durch ein Betriebssystemprogramm gesteuert und kollektiv als Domäne des Programms bezeichnet.

Wenn ein Betriebssystemprogramm eine Maschine übernimmt, wird dessen Domäne durch einen Makrocode aktiviert, der die Größe eines Speichers, die Anzahl von Kanälen und logischen Prozessoren, die erforderlich sind, zuordnet. Die Betriebssystemprogramme und der Makrocode, die eine Domäne zuordnen, arbeiten in einem Maschinenstatus, der als Kontrollstatus bzw. Controlstatus bezeichnet wird. Der Kontrollstatus besitzt einen ihm zugeordneten Hauptspeicher, der als Systemspeicher bezeichnet wird, der mit Systemadressen adressiert wird.

Programme, die in einem logischen Prozessor laufen, die als Domänenprogramme bekannt sind, arbeiten in einem Maschinenstatus, der als Benutzerstatus bezeichnet wird. Der Hauptspeicher, der einer Domäne zugeordnet ist, wird als Domänenspeicher bezeichnet, und Domänenspeicherzugriffe verwenden Domänenadressen.

Manchmal ist es für ein Programm erforderlich, in einem Kontrollstatus zu laufen, um auf Daten zuzugreifen, die in einem Domänenspeicher gespeichert sind. Dies tritt beispielsweise während einer Emulation auf, wie dies nachfolgend besprochen wird.

Eine Datenverarbeitungsmaschine ist so aufgebaut, um einen Satz von Instruktionen, bekannt als Maschineninstruktionen, zu implementieren. Nachdem die Architektur der Maschine definiert ist, ist es oftmals erwünscht, Instruktionen, die nicht diejenigen in dem Maschinensatz sind, zu implementieren. Dies wird durch Speicherung eines Emulationsprogramms aus Instruktionen in einem Systemspeicher durchgeführt, die in einem Kontrollstatus laufen können, um eine neue Instruktion zu emulieren.

Wenn eine Instruktion, die emuliert werden soll, durch einen logischen Prozessor vorgefunden wird, wird eine Verzweigung zu dem Kontrollstatus vorgenommen und die Instruktion wird emuliert.

Mit der Verzweigung zu dem Kontrollstatus ist es notwendig, auf Programmausnahmen hin zu testen, die zu dem Emulations-Routine führen, das in dem Kontrollstatus laufen soll. Diese Test benötigen verschiedene Codezeilen in dem Emulationsprogramm und führen zu einer Herabsetzung der Leistung der emulierten Instruktionen.

Auch ist es, um einige Instruktionen zu emulieren, für das Emulationsprogramm in dem Systemspeicher notwendig, in dem Kontrollstatus zu laufen, um auf Operanden oder andere Daten, die in dem Domänenspeicher gespeichert sind, zuzugreifen.

Wie vorstehend besprochen ist, spezifizieren die Instruktionen und Adressen, die durch logische Prozessoren erzeugt werden, nicht, ob eine bestimmte Adresse als eine Domänenadresse oder eine Systemadresse behandelt werden soll.

Um für dieses Domänenüberkreuzen während einer Emulation Vorsorge zu treffen, spezifiziert der Stand der Technik spezielle Instruktionen für eine Emulation, die in dem Kontrollstatus betrieben werden und einen Zugriff zu einem Domänenspeicher schaffen. Allerdings führt diese Durchführung von speziellen Instruktionen nur zu einer begrenzten Anzahl von Instruktionen, die den domänenüberkreuzenden Zugriff durchführen können und war kostenaufwendig durchzuführen.

Die EP-A-0223551 wurde nach dem Prioritätsdatum dieses Patents veröffentlicht und bildet deshalb aufgrund des Artikels 54(3) und (4) EPÜ einen Teil des Standes der Technik im Hinblick auf Deutschland, Spanien, Frankreich und Großbritannien. Dieses Dokument beschreibt ein Hauptspeicherzugriffskontrollsystem für ein virtuelles Rechenfunktionssystem. Das Betriebssystem umfaßt ein Adressregister, das Speicheradressen zum Zugriff auf einen Hauptspeicher speichert, ein Markierungsdatenregister zum Registrieren von Markierungsbits für eine individuelle Zuordnung der Adressregister, eine Auswahleinheit zur Auswahl der Zuordnung von Adressregistern, die durch die Datenmarkierungsbits mittels einer Operandenadresse einer Instruktion zugeordnet sind, die ausgeführt werden soll.

Die vorliegende Erfindung schafft eine neue Technik, die als eingeschlossene Domänenadressierung bzw. Fortschaltungsdomänenadressierung bezeichnet wird, um zwischen Domänenspeicherzugriffen und Systemspeicherzugriffen zu unterscheiden, die bestehende Instruktionsformate verwenden.

Genauer gesagt schafft die vorliegende Erfindung ein Datenverarbeitungsgerät, das unter einer Programmsteuerung in einem ersten Status, der eine erste Domäne von Einrichtungen innerhalb des Gerats besitzt, das einen ersten Domänenspeicherraum umfaßt, oder in einem zweiten Status, der eine zweite Domäne der Einrichtungen innerhalb des Geräts besitzt, das einen zweiten Domänenspeicherraum umfaßt, arbeitet, und zwar zur Verarbeitung einer Abfolge von Instruktionen normalerweise in dem ersten Status, wobei die Abfolge von Instruktionen eine Instruktion umfaßt, die zu einer Verzweigung zu dem zweiten Status zur Ausführung eines Programms von Instruktionen in der zweiten Domäne führt, die aufweist:

Ein Instruktionsregister, das so verbunden ist, um Instruktionen in dem ersten und dem zweiten Status aufzunehmen, das eine Vielzahl von Feldern umfaßt, wobei mindestens ein Feld eine Stelle für Adressinformationen für einen Operanden identifiziert;

eine Decodiereinrichtung, die auf eine Instruktion in dem ersten Status anspricht, und zwar zur Decodierung der Instruktion, um einen Kontrollcode zu erzeugen, wobei der Kontrollcode ein Verzweigungssignal, ein Domänenzugangskontrollsignal und ein Verzweigungstestsignal umfaßt; eine Einrichtung, die so verbunden ist, um das Verzweigungssignal aufzunehmen und darauf anzusprechen, und zwar für eine Verzweigung der Programmsteuerung des Geräts zu dem zweiten Status, um in das Programm der Instruktionen in der zweiten Domäne einzutreten;

eine Einrichtung, die so verbunden ist, um das Verzweigungstestsignal aufzunehmen und darauf zu antworten, und zwar zum Testen mittels Tests, die durch das Verzweigungstestsignal spezifiziert sind, und zwar für Programmausnahmen als Teil des Eingangs-Routines zu dem zweiten Status;

eine Einrichtung, die auf einen Testfehler anspricht, der eine Programmausnahme anzeigt, um eine Verzweigung zu einem herkömmlichen Routine als eine Alternative zu Serviceprogrammausnahmen zu bewirken;

eine Schnittstelleneinrichtung, die auf das Domänenzugangskontrollsignal und das eine Feld in jeder Instruktion in dem Programm der Instruktionen anspricht, und zwar zum Erzeugen eines ersten Domänenzugriffssignals;

eine Adressiereinrichtung, die mit dem Instruktionsregister zur Zuführung einer Adresse eines Operanden in Verbindung steht; und

eine Speichereinrichtung, die so verbunden ist, um das erste Domänenzugriffssignal und die Adresse aufzunehmen, und zwar zur Speicherung von Operanden an Stellen, die durch Adressen von dem ersten und dem zweiten Domänenspeicherbereich identifiziert werden, einschließlich einer Einrichtung, die auf das erste Domänenzugriffssignal anspricht, und zwar zur Übertragung der Adresse zu einem ersten Domänenadressraum während der Verarbeitung einer Instruktion in dem zweiten Status.

Mit einer Fortschaltungsdomänenadressierung ist der Instruktionensatz zur Verwendung in einem Zugriffsdomänenspeicher während einer Emulation einer Instruktion in einem Kontrollstatus geeignet erweitert, um im wesentlichen alle Instruktionen zu umfassen, die für einen Zugriff auf einen Systemspeicher geeignet sind. Mit dem Zusatz eines schnellen Testens hinsichtlich Programmausnahmen wird die Emulationsleistung in großem Umfang erhöht.

Fig. 1 zeigt ein Übersichtsblockschaltbild einer Datenverarbeitungsmaschine, die die vorliegende Erfindung verwirklicht.

Fig. 2 zeigt ein schematisches Blockschaltbild, das den Datenfluß während des Eingangs zu einem Emulationsprogramm darstellt.

Fig. 3 zeigt ein schematisches Blockschaltbild, das den Datenfluß während des Speicherzugriffs darstellt.

Fig. 4 zeigt ein detaillierteres Schaltbild einer logischen Ausführung, die einen Domänen-Speicherzugriff ausführt.

Fig. 5 zeigt ein logisches Schaltbild der Instruktionseinheit-Speichereinheit-Schnittstelle während des Domänen-Speicherzugriffs.

Fig. 6 zeigt ein schematisches Diagramm, das Tests darstellt, die wahrend des Eintritts in ein Emulationsprogramm durchgeführt werden.

Fig. 7 zeigt ein logisches Schaltbild, das die Ausführung von Tests darstellt, die während des Eintritts zu einem Emulationsprogramm durchgeführt werden.

Detaillierte Beschreibung

Unter Bezugnahme auf die Figuren wird eine detallierte Beschreibung einer bevorzugten Ausführungsform vorgenommen. Zuerst wird, unter Bezugnahme auf Fig. 1, die Datenverarbeitungssystemumgebung der vorliegenden Erfindung beschrieben. Unter Bezugnahme auf Fig. 2 wird ein Teil des Geräts der vorliegenden Erfindung beschrieben, das während des Eintritts in ein Emulationsprogramm arbeitet. In Fig. 3 wird ein Teil der vorliegenden Erfindung, der während des Betriebs des Emulationsprogramms arbeitet, beschrieben. Unter Bezugnahme auf die Figuren 4-7 wird eine detaillierte Ausführung von Elementen der vorliegenden Erfindung beschrieben.

I. Systemübersicht

Fig. 1 stellt eine Datenverarbeitungsmaschine dar, in der die vorliegende Erfindung ausgeführt wird. Die Datenverarbeitungsmaschine umfaßt eine Instruktionseinheit und eine Ausführungseinheit 10 zur Verarbeitung von Instruktionen und Operanden, eine Cache-Speichereinheit 11 zur Zuführung von Anweisungen und Operanden zu der Instruktionseinheit und der Ausfuhrungseinheit 10 und zum Aufsuchen von Instruktionen und Operanden aus dem Hauptspeicher 12.

Die Instruktionseinheit/Ausführungseinheit 10 führt Kontrollsignale und Adressen über die Leitung 17 zu der Cache-Speichereinheit zu. Eines der Kontrollsignale zeigt an, ob ein Domänenzugriff oder ein Systemzugriff erwünscht ist. Daten werden zu der Instruktionseinheit/Ausführungseinheit 10 über einen Bus 18 zurückgeführt.

In ähnlicher Weise sendet die Cache-Speichereinheit 11 Adressen und Kontrollinformationen über eine Leitung 19 zu dem Hauptspeicher 12, die zu Systemadressen übertragen worden sind. Daten werden zwischen dem Hauptspeicher 12 und der Cache-Speichereinheit 11 über den Bus 20 zugeführt.

Jeder Benutzer der Instuktionseinheit und der Ausführungseinheit 10 wird einer Domäne in der Datenverarbeitungsmaschine zugeordnet, die einen Domänenspeicher umfaßt. Demzufolge ist der Hauptspeicher in Fig. 1 so dargestellt, daß er einen Domänen-1-Speicher 13 einen Domänen-2-Speicher 14 und einen Domänen-3-Speicher 15 besitzt. Zusätzlich arbeitet die Datenverarbeitungsmaschine in einem Kontrollstatus, der einen Zugriff zu Maschinenresourcen und einen Bereich des Hauptspeichers besitzt, der als Systemspeicher 16 bekannt ist. Der Domänen-Speicher und der Systemspeicher werden durch den Adresszwischenraum differenziert, der den einzelnen Domänen zugeordnet ist. Allerdings ist ein logischer Prozessor, der in einer Domäne arbeitet, nicht in den Adressen eingeschränkt, die während der Verarbeitung genutzt werden können. Vielmehr wird, wenn der logische Prozessor initialisiert wird, die Cache-Speichereinheit so eingestellt, um eine Anforderung für einen Domänen-Speicher zu erkennen und um Adressen, die durch die Instuktionseinhelt/Ausführungseinheit 10 zugeführt werden, in einen Domänen-Adresszwischenraum zu übertragen.

In Fig. 1 sind Eingangs-/Ausgangseinrichtungen, Kanäle, direkte Zugriffsspeichereinrichtungen und andere Resourcen nicht dargestellt, die den einzelnen Domänen zur Verwendung durch einen bestimmten Benutzer der Maschine zugeordnet sind. Diese Einrichtungen sind, obwohl sie in der gesamten Datenverarbeitungsmaschinenumgebung vorhanden sind, nicht für die vorliegende Erfindung wichtig.

Die vorliegende Erfindung besitzt ihre besondere Anwendung in der Emulation von Anweisungen, wie dies zum Hintergrund der Erfindung erwähnt ist. Instruktionen, die nicht innerhalb des Maschinensatzes fallen, werden durch Abzweigung zu einem Emulationsprogramm in dem Systemspeicher durchgeführt, was durch zeitweiliges Belassen des Benutzerstatus und des Eintretens in den Kontrollstatus durchgeführt wird.

In dem Kontrollstatus können die Maschinenresourcen, die für den Kontrollstatus zur Verfügung stehen, dahingehend angesehen werden, daß sie eine Systemdomäne sind. Die Systemdomane umfaßt den Systemspeicher. Allerdings überträgt, da reale Systemadressen durch Programme verwendet werden, die in dem Steuer- bzw. Kontrollstatus ablaufen, die Cache-Speichereinheit 11 nicht Adressen, wie dies in dem Benutzerstatus vorgenommen wird.

Während der Emulation ist oftmals, wenn die Maschine in dem Kontrollstatus betrieben wird, ein Zugriff zu dem Domänen-Speicher, in dem die Operanden der Instruktion, die ausgeführt werden soll, gespeichert sind, notwendig. Demzufolge muß die Speichereinheit 11 darauf hingewiesen werden, wenn ein Domänen-Speicherzugriff vorgenommen wird, so daß die geeignete Übertragung der Adresse zu dem Domänen-Adressraum durchgeführt werden kann. Zusätzlich werden andere Speichereinheiten-Parameter, die für den Datenzugriff notwendig sind, so manipuliert, um den Zugriff zu dem Domänen-Speicher zu erleichtern.

A. Eintritt in einen Emulationskontrollzustand

Fig. 2 stellt einen Bereich der Instruktionseinheit gemäß der vorliegenden Erfindung dar, die während des Eingriffs in ein Emulationsprogramm arbeitet. Eine Sequenz von Anweisungen wird über eine Hauptleitung 200, die ein D-Zyklus-Instruktionsregister 201, eine Einrichtung 202 zur Erzeugung einer Adresse eines Operanden, der bei der Ausführung der Instruktionen verwendet werden soll. ein für einen A-Zyklus wirksames Adressregister 203, ein D-Zyklus-Operandenadressregister 204, ein X-Zyklus-Register 205, ein W-Zyklus-Register 206 und eine Vielzahl von Kontroll- bzw. Steuerregistern 207 umfaßt.

In Abhängigkeit einer Instruktion, die auf einer Leitung 208 zugeführt wird, wird eine Kontroll- bzw. Steuerspeicheradresse in einer Einrichtung 209 erzeugt und über eine Leitung 210 zu einem Steuerspeicher 211 zugeführt. Der Kontrollspeicher 211 ist eine Einrichtung zur Decodierung der Instruktion, um einen Kontroll- bzw. Steuercode zu erzeugen. Wenn eine Instruktion empfangen wird, die emuliert werden soll, wird der Kontrollcode 212 adressiert. Ein Bereich des Kontrollcodes 212 wird über eine Leitung 213 zugeführt, um anzuzeigen, daß eine Emulation ausgeführt werden soll. Der Code auf der Leitung 213 wird zu einer Einrichtung 214 zur Erzeugung einer Verzweigungsadresse zur Zuführung zu der Kontrollspeicheradressen-Erzeugungseinrichtung 209 zugeführt. In dem nachfolgenden Zyklus wird eine Verzweigungsadresse auf der Leitung 210 zu dem Kontrollspeicher zugeführt, um einen Kontrollcode zum Eintritt in den Emulationsmodus zu erzeugen, der als Schnellunterstützungsmodus (Fast Assist Mode - FAM) bekannt ist.

Als nächstes wird ein Code auf der Leitung 215 zugeführt, die Domänenzugriffssteuerungen identifiziert, die während des Emulationsprogramms verwendet werden sollen. Der Datenzugriffskontrollcode (Data Access Control Code - DAC) wird über eine Leitung 215 zu einem Register 216 zugeführt. In einem Fluß der Instruktionseinheit-Hauptleitung 200 werden die Inhalte der DAC-Register 216 im Selektor 217 über ein Addierglied 218 zu dem für den A-Zyklus effektiven Adressregister 203 ausgewählt. Der DAC führt die Hauptleitung zu dem Operanden-Adressierregister 204, dem Operandenwortregister 205 und dem Ergebnisregister 206 nach unten und wird in einem DAC-Kontrollregister 219 (DACR) gespeichert, um dann während des Emulationsprogramms verwendet zu werden. Der Charakter des DAC-Codes wird nachfolgend detaillierter beschrieben.

Das Kontrollregister 207 umfaßt weiterhin ein Domänen-CPU-Statusregister 220 (Domän CPU Status Register - DCPUS) und ein Programmstatus-Wortregister 221 (Program Status Word Register - PSW). Das Domänen-CPU-Statusregister 220 wird durch Einlesen des Programmstatusworts (der Bereich höherer Ordnung in der bevorzugten Ausführungsform) über eine Leitung 222 in das X-Zyklus-Operandenwortregister eingelesen. Von dem Operandenwortregister 205 wird es zu dem W-Zyklus-Ergebnisregister 206 und von dort in das Domänen-CPU-Statusregister 220 zugeführt. Dieser Domanen-CPU-Statuscode in dem Register 220 wird auch wahrend der Ausführung des Emulationsprogramms verwendet, wie dies nachfolgend beschrieben wird. Die Inhalte des Programmstatus-Wortregisters 221 werden während der Ausführung bestimmter Maschineninstruktionen, wie beispielsweise ein Laden von PSW, eingeladen.

Gemäß der vorliegenden Erfindung werden, um einen schnellen Einstieg in die Emulationsprogramme zu erleichern, bestimmte, schnelle Eingangstests 223 durchgeführt. Die schnellen Eingangstest werden durch einen Bereich des Kontrollcodes 212 identifiziert, der über die Leitung 224 zu dem schnellen Eingangstestmodul 223 zugeführt wird. Falls die schnellen Eingangstests 223 fehlschlagen, wird ein Signal auf der Leitung 225 zu den Einrichtungen 214 zum Erzeugen einer Verzweigungsadresse zugeführt, um die Kontrollspeicheradressen-Erzeugungseinrichtungen 209 dazu zu zwingen, zu einer neuen Kontrollspeicherstelle hin abzuzweigen, um das Emulations-Routine in einem Ausnahmemodus, der als "normaler Einstieg" bzw. "normal entry" bezeichnet wird, zu verarbeiten. Die Durchführung der schnellen Eingangstest 223 wird nachfolgend unter Bezugnahme auf die Figuren 6 und 7 beschrieben.

Die Einrichtungen 202 zum Erzeugen einer Adresse eines Operanden zur Verwendung bei der Durchführung einer Instruktion umfassen eine Vielzahl von Registern 226 für allgemeine Zwecke, das Addierglied 218, einen Selektor 217 und eine Instruktionsplattform 201. Die Instruktionsplatt form ist in eine Vielzahl von Feldern unterteilt, die als D0, D1, D2, D3 und D4 in der Figur bezeichnet sind. Mindestens ein Feld der Anweisung wird, in Abhängigkeit des Formats der Anweisung, wie dies nachfolgend beschrieben wird, über eine Leitung 227 zugeführt, um Adressinformationen auszuwählen, die in dem Register für allgemeine Zwecke der Vielzahl der Register 226 für allgemeine Zwecke eingegeben sind, und zwar zur Zuführung als eine Basisadresse zu dem Addierglied 218. Demzufolge umfaßt mindestens ein Feld der Instruktion in der Instruktionsplattform 201 eine Information, die eine Stelle für eine Basisadresse für einen Operanden identifiziert, damit sie bei der Ausführung der Instruktion verwendet werden kann.

Zusätzlich wird ein zweites Feld der Instruktion über eine Leitung 228 durch den Selektor 217 als ein zweiter Eingang zu dem Addierglied 218 zugeführt. Eine Addition des zweiten Felds der Instruktion, die über die Leitung 228 zugeführt wird, und der Basisadresse, die von den Registern 226 für allgemeine Zwecke zugeführt wird, führt zu einer Adresse eines Operanden, der zu dem für den A-Zyklus effektiven Adressregister 203 zugeführt wird.

Von dem effektiven Adressregister 203 wird die Adresse zu der Speichereinheit zugeführt, um einen Datensatz aufzuführen, der zu dem X-Zyklus-Operanden-Wortregister von der Speichereinheit zugeführt wird.

Fig. 2 stellt die Beladung der Kontrollregister 207 und die Abfolge von Ereignissen dar, die zu einer Verzweigung zu einem Emulationsprogramm führen. Die Kontrollregister 207 werden, wie dies nachfolgend besprochen wird, für die Erzeugung von Schnittstellensignalen zur Zuführung zu der Speichereinheit zur Interpretierung der Adresse, die von dem Register 203 zugeführt wird, verwendet.

B. Betriebsweise während der Emulation

Fig. 3 stellt einen Bereich der Instruktionseinheit und Speichereinheit dar, der durch die vorliegende Erfindung während des Laufs eines Emulationsprogramms beeinflußt wird. Bereiche der Instruktionseinheit, die in Fig. 3 und auch in Fig. 2 dargestellt ist, umfassen die Instruktionsplattform 301 (201 in Fig. 2), das Domänenzugriffs-Kontrollcoderegister 319 (219 in Fig. 2), das Domänen-CPU-Statusregister 320 (220 in Fig. 2) und das Programmstatus-Wortregister 321 (221 in Fig. 2). Die Einrichtung 303 zur Erzeugung einer Adresse zur Verwendung bei der Durchführung einer Instruktion umfaßt die Register 326 für allgemeine Zwecke, das Addierglied 318 und die Instruktionsplattform 301. Mindestens ein Feld der Instruktion wird auf einer Leitung 327 zu der Kontrollauswahl des Registers 326 für allgemeine Zwecke zur Zuführung einer Basisadresse zu dem Addierglied 318 zugeführt. Mindestens ein anderes Feld der Instruktionsplattform 301 wird auf einer Leitung 328 zu dem Addierglied 318 zur Addition mit der Basisadresse zugeführt, um eine Operandenadresse zur Zuführung zu dem effektiven Adressregister 303 zu erzeugen. Die Adresse in dem effektiven Adressregister 303 wird auf einer Leitung 330 zu der Speichereinheit zugeführt, die allgemein mit dem Bezugszeichen 331 dargestellt ist. Weiterhin wird es nach unten zu der Instruktionseinheit-Hauptleitung zu dem B-Zyklus-Operandenadressregister 304 zugeführt. Der Rest der Instruktionseinheit-Hauptleitung wird hier nicht beschrieben.

Eine Instruktion in der Instruktionsplattform 301 führt eine Vielzahl von Feldern der Instruktionen über eine Leitung 381 zu einer Einrichtung 332 zur Decodierung der Instruktion zu. Zusätzlich werden Kontrollspeicher-(Daten)Markierungen über eine Leitung 329 von dem Kontrollspeicher in der Instruktionsdecodiereinrichtung 332 empfangen. In Abhängigkeit der Instruktionsdecodierung werden in der Einrichtung 332 Kontrollsignale auf Leitungen 333 zu der Instruktionseinheit/Speichereinheit-Schnittstellenlogik 334 zugeführt. Die Instruktionseinheit/Speichereinheit-Schnittstellenlogik 334 ist in weiterem Detail in Fig. 5 dargestellt.

Zusätzlich wird das Feld der Instruktionen, das auf der Leitung 327 zugeführt wird, das ein Register für allgemeine Zwecke identifiziert, das eine Basisadresse eines Operanden hält, zu der Domänenspeicher-Zugriffsermittlungslogik 335 zugeführt. Kontrollsignale auf einer Leitung 336 von der Instruktionsdecodierung werden auch zu der Domänenspeicherzugriffs-Ermittlungslogik 335 zugeführt. Schließlich werden Signale von dem Domänenzugriffs-Kontrollregister 319 auf einer Leitung 337 zu der Domänenspeicherzugriffs-Ermittlungslogik 335 zugeführt. Die Domänenspeicherzugriffs-Ermittlungslogik 335 wird in weiterem Detail in Fig. 4 beschrieben. Sie erzeugt ein Domänenspeicherzugriffssignal auf der Leitung 338 zur Zuführung zu der Instruktionseinheit/Speichereinheit-Schnittstellenlogik 334.

Die Instruktionseinheit/Speichereinheit-Schnittstellenlogik 334 empfängt zusätzlich andere Kontrollsignale von dem Domänenzugriffs-Kontrollregister 319 über eine Leitung 339. Auch führt das Domänen-CPU-Statusregister 320 Kontrollsignale über eine Leitung 340 zu der Schnittstellenlogik 334 zu und das Programmstatus-Wortregister 321 führt Kontrollsignale auf einer Leitung 341 zu der Schnittstellenlogik 334 zu.

Die Schnittstellenlogik 334 erzeugt Kontrollsignale, die zu der Speichereinheit 331 zugeführt und beim Aufsuchen von Daten in Abhängigkeit von Adressen zugeführt werden, die über eine Leitung 330 von dem effektiven Adressregister 303 zugeführt werden. Die Kontrollsignale umfassen das Adress-Modussignal auf Leitung 342, das Systemzugriffssignal auf Leitung 343, das virtuelle Adress-Signal auf Leitung 344, das zweite Adressraumsignal auf Leitung 345, das Blockierprüfschlüsselsignal auf Leitung 346 und das Blockier-Low-Adress-Schutzsignal auf Leitung 347.

Das Adress-Modussignal auf der Leitung 342 steuert den Modus der Adresse, die auf der Leitung 330 zugeführt wird, und zwar durch die Bestimmung, ob eine 24-Bit- oder eine 31-Bit-Adresse zugeführt wird.

Das Systemzugriffssignal auf der Leitung 343 steuert die Art und Weise, in der die Speichereinheit auf die Adresse auf der Leitung 330 antwortet, entweder als eine Systemadresse oder als eine Domänenadresse. Wenn ein Betriebssystemprogramm eingestellt wird, wird die Speichereinheit mit Parametern, die Domänengrenzen in der Systemspeicherung in ein Register 348 hinein festlegen, geladen. Der Adressraum, der dem Systemkontrollstatus zugeordnet wird, wird auch als Systemgrenzen in einem Register 349 gespeichert. Die Systemgrenzen und die Domänengrenzen werden zu einem Selektor 350 zugeführt, der durch das Systemzugriffssignal auf der Leitung 343 kontrolliert wird, um entweder die Systemgrenze oder die Domänengrenze auszuwählen. Eine Adresse auf der Leitung 330 wird in einem Komparator 351 mit der ausgewählten Systemgrenze oder der Domänengrenze verglichen, um zu bestimmen, ob eine gültige Adresse für den Zugriff zugeführt worden ist. Falls die Adresse keine gültige Adresse ist, dann wird eine Adressausnahme bzw. Adressexzeption auf einer Leitung 352 erzeugt.

Zusätzlich wird das Systemzugriffssignal dazu verwendet, die Art der Übertragung zu bestimmen, die auf der Adresse in dem Cache-Speicher durchgeführt wird. Eine Domänenadresse kann entweder eine virtuelle Adresse oder eine reale Adresse sein. Falls sie eine virtuelle Adresse ist, dann wird ein übertragungs-Lookaside-Puffer 353 bei der Übertragung verwendet. Falls es sich um eine reale Adresse handelt, wird ein Domänenbasiseinstellmechanismus 354 verwendet, um die Adresse auf eine Systemadresse innerhalb der Domäne einzustellen. Falls es sich nicht um einen Domänenzugriff handelt, dann ist keine Übertragungs- oder Domänenbasiseinstellung notwendig.

Ein virtuelles Adress-Signal auf der Leitung 344 in Verbindung mit dem Systemadress-Signal auf der Leitung 343 wird demzufolge dazu verwendet, den Modus der Übertragung zu steuern, wie dies bei 355 angezeigt ist.

Für duale Adressrauminstruktionen, wie sie in der IBM/370 Architektur spezifiziert sind, steuert das zweite Adressraumsignal auf der Leitung 345 einen Zugriff zu dem ersten und dem zweiten Speicher. Die Stelle des ersten und zweiten Adressraums ist in dem Kontrollregister 1 (356) und dem Kontrollregister 7 (357) jeweils spezifiziert. Das zweite Adressraumsignal auf der Leitung 345 steuert den Selektor 358 zur Zuführung der geeigneten Identifizierung zu dem dynamischen Adressübertragungsschaltkreis 359.

Das Blockierschlüssel-Prüfsignal auf der Leitung 346 verhindert eine Erzeugung einer Schutzausnahme auf einer Leitung 360, wenn der Markierungszugriffsschlüssel und die Benutzerspeicherschlüssel nicht zueinander passen, wie dies durch die Werte angegeben wird, die in Registern 361 und 362 jeweils gespeichert sind.

Das Blockier-Low-Adress-Schutzsignal auf der Leitung 347 verhindert die Erzeugung einer Schutzausnahme auf der Leitung 363, wenn der Low-Adress-Schutzermittlungsschaltkreis 364 eine Adresse von der Leitung 330 in dem Low-Adressbereich ermittelt.

Wie gesehen werden kann, empfängt die Speichereinheit eine Adresse auf der Leitung 330 und verarbeitet sie in Abhängigkeit einer Mehrzahl von Kontrollsignalen. Für jede Instruktion, die eine Adresse zu der Speichereinheit zuführt, um einen Operanden zu suchen, spezifiziert das Systemzugriffssignal auf der Leitung 343, ob eine Systemadresse oder eine Domänenadresse zugeführt wird. Allerdings enthält, wie vorstehend erwähnt ist, die Instruktionsplattform 301 kein Feld oder Bit, um zu spezifizieren, daß ein System- oder Domänenzugriff vorgenommen worden ist. Gemäß der vorliegenden Erfindung wird eine Einrichtung zur Erzeugung eines Kontrollcodes beim Eintritt in ein Emulationsprogramm erzeugt, das in dem Domänenzugriffs-Kontrollregister 319 gespeichert ist, um zu ermöglichen, eine Domänenadressierung aufzunehmen. Die Domänenspeicher-Zugriffsermittlungslogik 335 vergleicht den Inhalt des Felds von der Instruktion, die das Register für allgemeine Zwecke spezifiziert, das bei Erzeugung der Operandenadresse mit dem vorab ausgewählten Bereich von Registern für allgemeine Zwecke verwendet werden soll, um zu bestimmen, ob ein Domänenzugriff für eine bestimmte Instruktion erforderlich ist. Die Domänenzugriffs-Speicherlogik 335 empfängt auch bestimmte Kontrollsignale aus der Instruktionsdecodierung 336 über die Leitung 335, die Instruktionsformate identifiziert, wie dies nachfolgend in weiterem Detail beschrieben wird. Ein Domänenzugriffs-Kontrollsignal wird auf der Leitung 338 zu der Instruktionseinheit-Speichereinheit-Schnittstellenlogik 334 zugeführt, um die Erzeugung des Systemzugriffssignals auf der Leitung 343 zu beeinflussen.

Zusätzlich speichert gemäß der vorliegenden Erfindung das Domänenzugriffs-Kontrollregister 319 andere Signale, die in Kombination mit den Kontrollsignalen in dem Domänen-CPU-Statusregister 320 gespeichert sind, um so zu arbeiten, um die Signale zu überlagern, die von dem Programmstatus-Wortregister 321 zu der Schnittstellenlogik 334 zugeführt werden. Diese Kontrollsignale beeinflussen die Erzeugung des Adress-Modussignals auf der Leitung 342 des virtuellen Adress-Signals auf der Leitung 334, des sekundären Adress-Signals auf der Leitung 345, des Blockierprüf-Schlüsselsignals auf der Leitung 346 und des Blockier-Low-Adress-Schutzschlüssels auf der Leitung 347 während eines Zugriffs zu dem Domänenadressraum von einem Emulationsprogramm, das in dem Kontrollstatus betrieben wird. Die Merkmale, die in der vorliegenden Anmeldung beschrieben sind, werden nachfolgend beschrieben.

C. Fortschaltungsdomänenadressierung

Mit einer Fortschaltungsdomänenadressierung wird der Instruktionssatz, der zur Verwendung in einem Zugriffsdomänenspeicher aus einem Kontrollstatus geeignet ist, erweitert, um im wesentlichen alle Instruktionen zu umfassen, die für einen Zugriffssystemspeicher geeignet sind. Ein besonderer Bereich eines System-GPRs 326 kann, wenn er dazu verwendet wird, eine Basisadresse zu bilden, optional eine implizite Domänenadressierung bewirken. Diese Register werden als Domänenadressierungs-Basisregister oder DABRs bezeichnet.

Eine Fortschaltungsdomänenadressierung wird über DABR Aktivierungskontroll-Bits in dem DACR 319 aktiviert. Wenn die Fortschaltungsdomänenadressierung aktiv ist und ein Domänenadressierbasisregister dazu verwendet wird, einen Operanden zu adressieren, wird eine Domänenadressierung anstelle einer Systemadressierung verwendet, mit Ausnahme für diejenigen Referenzen, die explizit dahingehend spezifiziert sind, daß sie immer eine Systemadressierung verwenden oder immer eine Domänenadressierung verwenden.

D. Domänenadressierung-Basisreaister (DABRs)

System-GPRs 2-7 werden als die Domänenadressierungs-Basisregister (DABRs) bezeichnet. Sie arbeiten identisch zu anderen System-GPRs mit der Ausnahme dann, wenn die Fortschaltungsdomänenadressierung aktiv ist, und sie sind in einem besonderen Registerfeld(ern) einer Instruktion spezifiziert. In diesem Fall sind die Domänenadressierungsregeln wie folgt (bei der Durchführung effektiver Adresskalkulationen und/oder Zugängen zu einem Hauptspeicher) für die entsprechenden Operanden in den nachfolgenden Fällen:

- Instruktions-Operanden, die virtuelle Adressen sind.

- Instruktions-Operanden, die logische Adressen sind.

- Instruktions-Operanden, die reale Adressen sind.

Eine Fortschaltungsdomänenadressierung wird niemals bei den nachfolgenden Fällen angewandt:

- Instruktions-Adressen

- Adressen von PSWs, Unterbrechungscoden und zugeordneten Informationen, die während einer Unterbrechung verwendet werden.

- Adressen, die durch die Hardware als ein Offset zu einer Basisadressierung hinzugefügt werden. In diesem Falls bestimmt die Basisadresse den Typ einer Adressierung.

- Bildung von Operanden-Adressen, die nicht als Adressen verwendet werden.

Die nachfolgende Tabelle stellt die Registerfelder, für jedes Instruktionsformat, dar, die die DABRs zur Adressierung durch jeden Operanden bezeichnen, und zwar in dem Kontrollstatus, wenn die entsprechenden System-GPRs als DABRs aktiv sind.

Basisregister, die als DABRs verwendet werden:

DABR Adr. für: Instr. Typ *** Instructions-Format ***

E. Domänenzugriffssteuerrungen

Domänenzugriffssteuerungen aktivieren eine Fortschaltungsdomänenadressierung für jeden Speicheroperanden. Zwei Bits werden definiert, um 2 Bereiche von DABRs zuzulassen. Allerdings kann dies so verallgemeinert werden, um ein Kontrollbit für jeden DABR zuzulassen.

Jedes Kontrollbit kann unabhängig gesetzt werden, und zwar in Abhängigkeit davon, ob eine Fortschaltungsdomänenadressierung für einen bestimmten Satz von DABRs verwendet werden soll. Die Domänenzugriffskontrollbits werden in dem Kontrollwort für die Instruktion definiert, die emuliert werden soll, und können durch Kontrollstatus-Maschineninstruktionen manipuliert werden.

In dem Schnellunterstützungsmodus FAM werden Felder des momentanen PSW überlagert. Der Programmablauf wird durch einen aktiven PSW gesteuert. Der Betrieb befindet sich in einem EC-Modus und Supervisor-Status mit vielen Unterbrechungen, die gesperrt sind. Für Systemspeicherzugriffe wird eine 31-Bit Realadressierung verwendet, und zwar mit einer Programmierereignisaufzeichnung (Program Event Recording - PER), die gesperrt ist. Der PSW Schlüssel für die Systemspeicherzugriffe (Systemschlüssel) wird durch einen Makrocode eingestellt, wenn eine Domäne aktiviert ist.

Das effektive PSW, das die Domänenspeicherzugriffe in einem FAM steuert, wird als der Domänen-CPU-Status (DCPUS) bezeichnet. Der DCPUS in einem FAM ist der PSW, der für Instruktionen, die emuliert werden soll, in Wirkung getreten war. Dieser PSW wird als Teil des FAM-Eingangs-Routines aufgenommen und in einem Systemregister plaziert. Es spezifiziert den Benutzerkontrollmodus und steuert:

- PER für Domänenreferenzen, wie sie durch Kontrollregister 9, 10 und 11 gesteuert werden.

- Domänenadressierungen, die sich beziehen auf

- Dynamische-Adress-Übertragung

- Adressierungsmodus

- Domänenschlüssel

- Adressraumkontrolle.

In dem FAM kann der DCPUS modifiziert werden, indem ein Kontrollstatus verwendet wird, der eine Instruktion definiert. Dies ist äquivalent zu dem Laden eines neuen PSW.

Domänenzugriffssteuerungen ermöglichen eine Manipulation verschiedener Bits in dem PSW, der Domänenspeicherzugriffen zugeordnet ist. Die Einrichtung wird Domänenzugriffssteuerung bezeichnet. Eine Domänenzugriffssteuerung spezifiziert über Kontroll- bzw. Überlagerungsaktionen für bestimmte Felder des DCPUS und/oder von Kontrollregistern, die ansonsten eine Domänenadressierung steuern würden, zusätzlich zu den Bits, die für eine Kontrollaktivierung der Domänenzugriffsbasisregister (Domain Access Basis Registers - DABRs) vorgesehen sind, die für eine Fortschaltungsdomänenadressierung verwendet werden. Dies ermöglicht dem -Emulations-Routine die Fähigkeit der Manipulierung dieser Funktion ohne Modifizierung des Domänen-PSW. Dies verbessert die Effektivität des Emulations-Routines durch Verringerung der Anzahl der Instruktionen, die für eine Einulation erforderlich sind. Die Domänenzugriffskontrollen sind in dem Domänenzugriffskontrollregister (Domain Access Control Register - DACR) enthalten. Das DACR wird von dem Kontrollwort der emulierten Instruktion an einem FAM-Einstieg geladen und kann in dem Emulations-Routine durch Kontrollstatus-Maschineninstruktionen modifiziert werden. Domänenzugriffskontrollformat:

/ = Umgekehrt

S = Sekundäre Adressüberlagerung: Verwende sekundäre, virtuelle Adressierung an Referenzen des Domänenadressspeichers, die einer Übertragung unterworfen werden (überlagert effektiv DCPUS S -Bit - behandelt als 1).

Das Einstellen dieser Steuerung wird ignoriert, falls der effektive DCPUS einen BC-Modus spezifiziert.

P = Domänen-Primär-Adressüberlagerung: Verwende primäre, virtuelle Adressierung auf Referenzen des Domänenadress-Speichers, die einer Übertragung unterworfen werden (überlagert effektive DCPUS S -Bit - behandelt als 0).

Die Einstellung dieser Steuerung wird ignoriert, wenn der effektive DCPUS einen BC-Modus spezifiziert.

R = Domänen-PER-Speicher-Änderungs-Überlagerung: Unterdrücke-PER-Speicher-Änderungsfalltests an Domänenadress-Speicherreferenzen (überlagert CR9-Bit 2 - behandelt als Null).

T = Domänen-Übertragungs-Überlagerung: Unterdrücke Übertragung an Referenzen des logischen Domänenadress-Speichers (überlagert effektives DCPUS T-Bit - behandelt als Null).

A = Domänen-Adress-Modus-Überlagerung: Verwende 31-Bit effektive Adressierungserzeugungsregeln für Domänenadressen. (Überlagert effektive DCPUS (A) - behandelt als eins). Diese Steuerung findet unabhängig davon statt, ob der effektive DCPUS einen BC-Modus oder einen EC-Modus spezifiziert.

C = DABR-Aktivierungssteuerung 1: Aktiviere implizite Domänenadressierung für System GPRs 4-7 als DABRs.

D = DABR-Aktivierungssteuerung 2: Aktiviere implizite Domänenadressierung für System GPRs 2-3 als DABRs.

Anmerkung: Bits C und D können beide eins sein. In diesem Fall werden beide benannte Sätze des Systems GPRs als DABRs aktiv.

L = Domänen-Low-Adress-Schutzüberlagerung: Unterdrücke Low-Adress-Schutz an Domänenadress-Speicherreferenzen (Überlagere CRO-Bit 3 - behandelt als 0).

K = Domänenschlüsselschutzüberlagerung: Unterdrücke Schlüsselschutz an Domänenadress-Speicherreferenzen (überlagert effektives DCPUS-Schlüssel-Feld, Bit 8-11 - behandelt als Nullen).

Die nachfolgende Tabelle faßt die Wirkungen der Domänenzugriffssteuerungen zusammen:

Überlagerungen Effekt an Domänen Adressierung, wenn Steuerung ein ist: S - Domänen-Sekundär-Adressüberlagerung P - Domänen-Primär-Adressüberlagerung R - Domänen-PER-Überlagerung T - Domänen-Übertragungs-Überlagerung A - Domänen-Adressierungs-Modus-Überlagerung C - DABR-Aktivierungs-Steuerung 1 D - DABR-Aktivierungs-Steuerung 2 L - Domänen-Low-ADDR.-Schutz-Übersteuerung K - Domänen-Schlüssel-Schutz-Überlagerung Sekundäre Adr. Pimäre Adr. PER Speicher-Alt. aus DAT aus 31-Bit eff. Adr. DABR-Satz aktiviert LAP aus Schlüssel-Schutz aus

1. Die Überlagerungs-Steuerungen arbeiten wie folgt:

Wenn ein Bit ein ist wird die entsprechende Überlagerung aktiv für alle Domänenadressierungen durch die CPU in FAM gemacht. Wenn ein Bit aus ist, wird die entsprechende Überlagerungsaktion unterbunden, die Domänenadressierung schreitet wie gewöhnlich fort (unter Kontrolle bzw. Steuerung des DCPUS, der Kontrollregister, usw.).

2. Die DABR-Aktivierungssteuerungen kontrollieren die Verwendung der DABRs unter Bestimmung, ob Domänenadressregeln angewandt werden. Sie arbeiten wie folgt:

Wenn ein Bit aus ist, arbeitet der zugeordnete Satz des System-GPRs identisch zu den anderen System-GPRs. Wenn ein Bit ein ist, wird der zugeordnete Satz von System-GPRs als DABRs aktiv. Die Verwendung eines dieser System-GPRs als eine Basis für eine logische und reale Adressierung bewirkt, daß den Domänenadressierungsregeln gefolgt wird.

II. Fortschaltungsdomänenadressierungs-Ausführung

Das logische Diagramm für die Domänenspeicherzugriffslogik 335 ist in Fig. 4 dargestellt. Die Logik setzt fest, ob der momentane Speicherzugriff ein Domänenspeicherzugriff (Domain Storage Access - DSA) ist.

Das Instruktions-OPCODE-Feld D∅, D∅, D1, D2 für 2-Byte-OPCODES) wird in einer Logik 432 für Instruktionsformattypen decodiert. Nur RR, RRE und SS-Formate werden decodiert, wie durch Signale an Leitungen 440, 441 und 442 jeweils angezeigt wird. Alle anderen Formate besitzen deren DABR-Feld in derselben Position. Eine Instruktionsdecodierung wird auch vorgesehen, um festzusetzen, ob der Speicherzugriff den ersten Speicheroperanden einsetzt. Dies ist in Fällen wichtig, wie beispielsweise SS-Formatinstruktionen, und zwar dort, wo 2 Speicheroperanden vorhanden sind, von denen jeder seine eigene, einzigartige DABR besitzt. Bestimmte RR-Formatinstruktionen besitzen auch 2 Speicheroperanden. Der Ausdruck "OAR1-Zugriff" an der Leitung 444 zeigt an, daß sich der erste Speicheroperand im Zugriff befindet. Dies bedeutet, B1 für SS-Formate, und R1 für RR-Formate. Da alle anderen Formate nur einen Speicheroperanden besitzen, wendet sich der "OAR1-Zugriff" entweder zu dem B1- oder dem B2-Operanden.

Drei andere funktionale Signale werden durch die Instruktionsdecodierlogik 432 gebildet:

1) DFIST an der Leitung 443 - zeigt den ersten Fluß oder eine Sequenz eines Instruktionsalgorithmus an.

2) USER an der Leitung 445 - zeigt an, daß sich der Prozessor in einem Benutzerstatus befindet (dies bedeutet - kein FAM- oder Kontrollstatus).

3) DISABLE DSA an der Leitung 446 - eine Decodierung, die einen Domänenspeicherzugriff für bestimmte Instruktionstypen verhindert, wie beispielsweise Verzweigungsinstruktionen, die Systemadressen erfordern.

Die Domänenzugriffskontrollregisterbits 28 an der Leitung 447 und 29 an der Leitung 448 aktivieren eine implizite Domänenadressierung für System-GPRs 4-7 und 2-3 jeweils als DABRs.

Fig. 4 stellt die logische Ausführung einer Domänenspeicherzugriffslogik dar, die das Bezugszeichen 335 in Fig. 3 besitzt. Die Instruktionsplattform ist in eine Mehrzahl von Feldern unterteilt, D0-D4, wie dies vorstehend beschrieben ist. Abhängig von dem Format der Instruktion wird ein bestimmtes Feld verwendet, um auf eine Basisadresse von einem Register für allgemeine Zwecke zuzugreifen. Demzufolge kann jedes der Felder D1, D2 oder D3 dazu verwendet werden, ein Register für allgemeine Zwecke zu spezifizieren. Die Domänenspeicherzugriffslogik umfaßt demzufolge Einrichtungen 449 zum Vergleich des D1-Felds, um zu bestimmen, ob es ein Register innerhalb des Bereichs von 4 bis 7 spezifiziert, und eine Einrichtung 450 zur Bestimmung, ob das D1-Feld innerhalb des Bereichs von 2 bis 3 liegt. Diese sind so verbunden, um die Inhalte des D1-Felds über eine Leitung 451 aufzunehmen.

Die Inhalte des D2-Felds werden über eine Leitung 452 zu einer Einrichtung 453 zur Bestimmung, ob D2 innerhalb des Bereichs von 4 bis 7 fällt, und zu Einrichtungen 454 zur Bestimmung, ob D2 innerhalb des Bereichs von 2 bis 3 fällt, zugeführt.

Das große D3-Feld wird auf einer Leitung 455 zu einer Einrichtung 456 zur Bestimmung, ob D3 innerhalb eines Bereichs von 4 bis 7 fällt, und zu einer Einrichtung 457 zur Bestimmung, ob D3 innerhalb eines Bereichs von 2 bis 3 fällt, zugeführt. Offensichtlich ist der Bereich der Register für allgemeine Zwecke, der für die Domänenzugriffsbasisregister verwendet wird, willkürlich und kann von irgendeinem Bereich ausgewählt werden, der zu dem Benutzer passend ist.

In Abhängigkeit der Werte von Bits 28 und 29 von dem Domänenzugriffskontrollregister 419 wird irgendein Bereich 4 bis 7 oder 2 bis 3, oder beide, als der Domänenadressbasis-Registerbereich spezifiziert. Demzufolge empfängt das UND-Gatter 458 als Eingänge ein Bit 28 von einer Leitung 447 und den Ausgang des Komparators 449, um einen wahren Ausgang zu erzeugen, wenn ein Domänenadressbasisregister von dem Bereich 4 bis 7 durch das Feld D1 spezifiziert worden ist, ein UND-Gatter 459 empfängt als Eingänge den Ausgang des Komparators 450 und das Bit 29 auf eine Leitung 448 von dem Domänenzugriffskontrollregister, um einen wahren Ausgang zu erzeugen, wenn ein Domänenadressbasisregister in dem Bereich 2 bis 3 durch das Feld D1 spezifiziert worden ist. In ähnlicher Weise empfängt ein UND-Gatter 460 als Eingänge den Ausgang eines Komparators 453 und ein Bit 28 von der Leitung 447 und ein UND-Gatter 462 empfängt den Ausgang eines Komparators 456 und ein Bit 28 auf der Leitung 447 von dem Domänenzugriffskontrollregister. Der Ausgang der UND-Gatter 460 und 462 läuft als wahr bzw. richtig, wenn ein Domänenadressbasisregister in dem Bereich von 4 bis 7 durch Felder D2 oder D3 jeweils spezifiziert worden ist.

UND-Gatter 461 und 463 empfangen als Eingänge jeweils die Ausgänge von Komparatoren 454 und 456 ebenso wie das Bit 29 von dem Domänenzugriffkontrollregister auf der Leitung 448. Die Ausgänge des UND-Gatters 461 und 463 laufen als wahr, wenn ein Domänenadressbasisregister in dem Bereich von 2 bis 3 jeweils in den Feldern D2 oder D3 spezifiziert ist.

Der Ausgang von UND-Gattern 458 und 459 wird zu einer Leitung 471 zugeführt, um einen Domänenzugriff von einem Instruktionsformat anzuzeigen, das ein Domänenadressbasisregister in dem Feld D1 spezifiziert. Der Ausgang der UND-Gatter 462 und 460 wird zu einer Leitung 472 zugeführt, um einen Domänenzugriff durch ein Instruktionsformat anzuzeigen, das ein Domänenadressbasisregister für das Feld D2 spezifiziert. Die Ausgänge der UND-Gatter 462 und 463 werden auf einer Leitung 473 zugeführt, um einen Domänenspeicherzugriff von einem Instruktionsformat anzuzeigen, das ein Domänenadressbasisregister an dem Feld 3 spezifiziert.

Ein UND-Gatter 464 empfängt als Eingänge das RR-Formatsignal auf der Leitung 440, das D1-Feld-Doinänenzugriffssignal auf einer Leitung 471 und das OAR1 Zugriffssignal (OAR1) auf einer Leitung 444, die einen wahren Ausgang für einen Domänenzugriff an dem ersten Operanden in einem RR-Format auf einer Leitung 474 erzeugt.

Ein UND-Gatter 465 empfängt als Eingänge das RR-Formatsignal an der Leitung 440, die Umkehrung des OAR1-Zugriffssignals an der Leitung 444 und das D2-Feld-Domänenzugriffssignal auf der Leitung 472. Ein Gatter 465 erzeugt einen wahren Ausgang auf der Leitung 474 für eine R-Formatanweisung, die einen Domänenzugriff von dein D2-feld spezifiziert, der nicht der erste Operandenzugriff ist, wie durch das Signal auf der Leitung 444 angegeben wird. Ein UND-Gatter 466 erzeugt einen wahren Ausgang auf der Leitung 474, wenn eine Instruktion in dem RRE-Format für den ersten Zugriff von dem Operanden-Adressregister für eine Domänenadresse von dem Feld D2 zugeführt wird und es nicht der erste Fluß einer Instruktion ist.

Der Ausgang eines UND-Gatters 467 erzeugt einen wahren Ausgang für Instruktionen in dem SS-Format während des ersten Flusses einer Adresse von der Instruktion, wenn ein Domänenzugriff für das Feld D3 gefordert wird. Der Ausgang des UND-Gatters 467 wird auf der Leitung 475 zugeführt.

Ein UND-Gatter 468 erzeugt einen wahren Ausgang, wenn eine Instruktion in dem SS-Format zugeführt wird und sie nicht die erste Adresse und nicht der erste Fluß für ein Doinänenadressregister ist, das von dem Feld D3 spezifiziert wird.

Der Ausgang eines UND-Gatters 469 wird auf der Leitung 474 für Instruktionen in dem SS-Format für eine erste Adresse von dem Operanden-Adressregister geltend gemacht, wenn es nicht der erste Fluß ist und wenn ein Signal auf der Leitung 476 wahr ist.

Der Ausgang eines UND-Gatters 470 macht ein wahres Signal auf der Leitung 474 für alle Instruktionsformate, die nicht RR, RRE, und SS während des ersten OAR1-Zugriffs sind, wenn ein Domänenadress-Basisregister von dem Feld D3 spezifiziert ist, geltend.

Der Ausgang des UND-Gatters 467 wird auf der Leitung 475 zu einer Domänentriggerverriegelung 477 zugeführt, die ein Signal auf der Leitung 476 zur Steuerung des Ausgangs des UND-Gatters 469 zuführt.

Die Signale auf der Leitung 474 und 475 werden zu einem ODER-Gatter 478 zugeführt, das einen Ausgang auf der Leitung 479 erzeugt, ein UND-Gatter 480 erzeugt das Domänenspeicherzugriffskontrollsignal auf der Leitung 499 in Abhängigkeit des Signals auf der Leitung 479, die Umkehrung des Benutzersignals auf der Leitung 445 und die Umkehrung des Blockier-DSA-Signals auf der Leitung 446.

Die Aufbaugleichung für das DSA ist wie folgt:

Der Ausdruck " user" ermöglicht eine Domänenadressierung für einen Kontrollstatus, insbesondere FAM.

Für RR-Formate verwendet der erste Speicheroperand (OAR1 ACCESS) das R1-Feld der Instruktion als DABR. Dieses Feld ist in dem D1-Instruktionsplattformfeld enthalten. Der Ausdruck "D1=4:7" gibt an, daß das R1-Feld einen Wert zwischen 4 und 7 besitzt und es wird mit dem DACR-Bit 28 verknüpft, um einen Domänenspeicherzugriff zu aktivieren. Ähnlich zeigt der Ausdruck "D1=2:3" an, daß das R1-Feld einen Wert von 2 oder 3 besitzt und wird mit einem DACR-Bit 29 für eine DSA-Aktivierung verknüpft.

Um den Domänenspeicherzugriff für den zweiten Speicheroperanden ( OAR1 ACCESS) einer RR-Formatinstruktion zu aktivieren, wird die R2-Adresse (In dem D2 Instruktionsplattformfeld) als ein DABR mit dem Ausdruck D2=4:7 verwendet, der mit einem DACR-Bit 28 verknüpft wird, oder der Ausdruck D2-2:3 wird mit dem DACR-Bit 29 verknüpft.

Für eine RRE-Formatinstruktion wird das R2-Feld zu dem D2-Instruktionsplattformfeld in dem ersten Instruktionszyklus (DFIST) bewegt. Deshalb können keine Speicheranforderungen für RRE-Formate in diesem Zyklus ausgegeben werden. Nach dem ersten Zyklus ( DFIST) wird der Speicheroperandenzugriff, der durch "OAR1 ACCESS" angezeigt werden wird, das D2-Feld als ein DABR verwenden. Deshalb bewirken D2=4:7 und DACR-Bit 28 oder D2=2:3 und DACR-Bit 29 einen Domänenspeicherzugriff.

Für SS-Format-Instruktionen kann auf den ersten Speicheroperanden (OAR1 ACCESS) in dem ersten Instruktionsfluß (DFIST) zugegriffen werden. Das β1 Feld ist in dem D3-Feld der Instruktionsplattform enthalten. Deshalb wird D3=4:7 mit dem DACR-Bit 28 verknüpft, oder D3=2:3 wird mit dem DACR-Bit 29 verknüpft, um den Domänenspeicherzugriff zu aktivieren.

Am Ende des ersten Instruktionsflusses wird das D3-Feld mit B2-Daten aktualisiert und das B1-Datenfeld geht verloren. Ein Trigger, der als Domänentrigger bezeichnet wird, wird in diesem Zyklus eingestellt, falls der Domänenspeicherzugriffs-Status aktiv ist. Setze Domänentrigger durch:

Danach wird, immer wenn ein anderer Speicherzugriff für den ersten Speicherzugriff auftritt (OAR1 ACCESS), ein Domänenspeicherzugriff folgen, falls der Domänentrigger eingeschaltet ist. Für den zweiten Operanden (OAR1 ACCESS) wird das B2-Feld in das D3-Feld der Instruktionsplattform bewegt. Deshalb wird nach dem ersten Instruktionsfluß ( DFIST) ein Domänenspeicherzugriff angezeigt, wenn D3-4:7 und DACR-Bit 28 oder D3=2:3 und DACR-Bit 29 aktiv sind.

Für alle anderen Instruktions-Formate besteht nur ein Speicheroperand und er kann entweder das B1- oder das B2-Feld der Instruktion sein. Er wird in dem D3-Feld der Instruktionsplattform vorhanden sein. Deshalb ist für diese Formate ( RR Format & RRE Format & SS Format), wenn der Speicherzugriff aktiv ist (OAR1 ACCESS), der Domänenspeicherzugriff durch D3=4:7 und DACR-Bit 28 oder D3=2:3 und DACR-Bit 29 aktiviert.

III. Domänenzugriffskontroll-Durchführung

Die Domänenzugriffskontrollen manipulieren verschiedene Kontrollsignale zu der Speichereinheit. Die Kontroll-Bits sind in dem Domänenzugriffkontrollregister (Domain Access Control Register - DACR) durch das Kontrollwort der Instruktion eingeladen, die an dem Beginn des FAM-Eingangs-Routine emuliert werden soll. Das Register kann durch die "LOAD DACR" -Instruktion in dem FAM modifiziert werden. Die Steuerungen bzw. Kontrollen überlagern den Domänen-CPU-Status (Domain CPU Status - DCPUS), bei dem es sich um das Domänen- oder Benutzer-PSW, das wirksam ist, an dem Beginn des FAM-Eingangs handelt. Der DCPUS wird in das Systemregister 6 eingeladen. Die Zugriffssignale, die durch die Domänenzugriffskontrollen auftreten, sind wie folgt:

- System (Domäne)

- Virtuel (Real)

- Adressen Modus

- Adressen Raum

- Blockier-Schlüssel-Prüfungen

- Blockier-Low-Adressen-Schutz

- Speichere PER

Die logischen Gleichungen, die durch jedes Signal präsentiert werden, sind ein Untersatz der vollständigen, logischen Gleichung und beziehen sich nur auf den Domänenspeicherzugriffsbereich der Logik. Dort sind spezielle Ausnahmefälle in einigen der Gleichungen vorhanden, die durch einen "Force ____" -Ausdruck angegeben werden. Dieser Ausdruck kann tatsächlich die DAC-Überläufe überlagern. Die Domänenzugriffskontroll-Logik ist in Fig. 5 dargestellt.

Wie in Fig. 5 dargestellt ist, führt die Instruktionsplattform 501 einen Bereich der Instruktion über eine Leitung 527 zu der Instruktionsdecodierlogik 532 zu (die der Instruktionsdecodierlogik 332 in Fig. 3 entspricht). Die Instruktionsdecodierlogik 532 erzeugt ein Zwangssystemsignal, ein Zwangsbenutzersignal, ein Zwangsrealsignal und ein Zwangs-(Force-)Primär-Signal über die Leitung 533, das zu der Instruktionseinheit/Speichereinheit-Schnittstellenlogik 534 (entspricht dem Block 334 in Fig. 3) zugeführt wird.

Zusätzlich führt das Domänen-CPU-Statusregister 520 Kontrollsignale über eine Leitung 540 zu der Schnittstellenlogik 534 zu. Das Domänenzugriffs kontrollregister 519 führt Kontrollsignale über eine Leitung 541 zu der Schnittstellenlogik 534 zu. Die Domänenspeicherzugriffs-Ermittlungslogik 535 erzeugt das Domänenspeicherzugriffssignal (Domain Storage Access Signal - DSA) auf der Leitung 538 zur Zuführung zu der Schnittstellenlogik 534.

Der Ausgang der Schnittstellenlogik umfaßt ein Systemzugriffssignal auf der Leitung 543, das virtuelle Signal auf der Leitung 544, das Adress-Modussignal der Leitung 542, das sekundäre Adressraumsignal auf der Leitung 545, das Blockier-Schlüsselprüfsignal auf der Leitung 546, den Blockier-Low-Adress-Schutzschlüssel auf der Leitung 547 und das Programm-Ereignis-Aufzeichnungssignal (PER) auf der Leitung 520.

UND-Gatter 510 und 511 bilden eine logische Erzeugung des Systemzugriffssignals auf der Leitung 543.

Ein UND-Gatter 510 empfängt als Eingänge die Umkehrung des Benutzersignals, die Umkehrung des DSA-Signals und die Umkehrung des Zwangsbenutzersignals.

Ein UND-Gatter 511 empfängt als Eingänge die Umkehrung des Zwangsbenutzersignals und des Zwangssystemsignals. Demzufolge ist das Systemzugriffssignal auf der Leitung 543 wahr, wenn das Zwangssystemsignal wahr ist und das Zwangsbenutzersignal nicht wahr ist. Weiterhin wird, wenn das Zwangsbenutzersignal nicht wahr ist, falls das Domänenspeicherzugriffssignal nicht wahr und das Benutzersignal nicht wahr ist, das Systemzugriffssignal bestätigt.

Das virtuelle Signal auf der Leitung 544 wird an den Ausgang des UND-Gatters 512 zugeführt. Der Eingang des UND-Gatters 512 umfaßt die Umkehrung des Benutzersignals, das Domänenspeicherzugriffssignal, das Domänen-DPU-Status-Bit-T, die Umkehrung des Domänenzugriffskontrollregister-Bit-T und die Umkehrung des Zwangs-Real-Signals.

Das Adress-Modussignal auf der Leitung 542 zeigt eine 31-Bit-Adresse an, wenn der Ausgang des UND-Gatters 513 oder des UND-Gatters 514 wahr ist.

Der Eingang des UND-Gatters 513 umfaßt das DSA-Signal, das Bit-A von dem Domänen-CPU-Statusignal und die Umkehrung des Benutzersignals. Der Ausgang des UND-Gatters 514 umfaßt das DSA-Signal, das Domänenzugriffskontrollregister-Blt-A und die Umkehrung des Benutzersignals.

Das sekundäre Adressbasissignal auf der Leitung 545 ist wahr, wenn die Ausgänge des UND-Gatters 515 oder des UND-Gatters 516 wahr sind. Der Eingang zu dem UND-Gatter 515 umfaßt das Bit-E des Domänen-CPU-Statusregisters, das Bit-S des Domänenzugriffskontrollregisters, das Domänenspeicherzugriffssignal, die Umkehrung des Zwangs-Pirmär-Signals und die Umkehrung des Benutzersignals. Die Eingänge zu dem UND-Gatter 516 umfassen die Umkehrung des Benutzersignals, die Umkehrung zu dem Zwangs-Primär-Signal und das Domänen-Speicherzugriffssignal. Zusätzlich umfassen Eingänge die Umkehrung des Bit-P des Domänen-CPU-Statussignals und die Umkehrung des Ausgangs des UND-Gatters 521. Der Eingang des UND-Gatters 521 umfaßt ein Bit-E des Domänen-CPU-Statusregisters und ein Bit-P des Domänenzugriffskontrollregisters.

Das Blockier-Schlüsselprüfsignal auf der Leitung 546 wird als der Ausgang des UND-Gatters 517 erzeugt. Der Eingang zu dem UND-Gatter 517 umfaßt die Umkehrung des Benutzersignals, das Domänenspeicherzugriffssignal und das Bit-K des Domänenzugriffskontrollregisters. Das Blockier-Low- Adress-Schutzsignal auf der Leitung 547 wird von dem Ausgang des UND-Gatters 518 zugeführt. Der Eingang zu dem UND-Gatter 518 umfaßt die Umkehrung des Benutzersignals, das Domänenspeicherzugriffssignal und das Bit-L des Domänenzugriffskontrollregisters.

Das Programmereignis-Aufzeichnungssignal auf der Leitung 520 wird von dem Ausgang des UND-Gatters 519 bestätigt. Der Eingang zu dem UND-Gatter 519 umfaßt die Umkehrung des Benutzersignals, das Domänenspeicherzugriffssignal, das Bit-R von dem Domänen-CPU-Statusregister und die Umkehrung des Bit-R von dem Domänenzugriffskontrollregister.

Die Speichereinheitskontrollsignale, die durch das DACR und das DCPUS-Register beeinflußt werden, werden wie folgt zusammengefaßt.

A. System Access - Systemzugriff

Dieses Signal auf der Leitung 543 zeigt einen Zugriff zu dein Systemadressraum mit Systemadress an. Das Signal muß für Domänenspeicherzugriffe gesperrt werden.

In FAM wird das DSA-Signal Systemzugriffe sperren. Der Ausdruck "force system", der einen geforderten Systemzugriff spezifiziert, überlagert den DSA-Term und der Term "force user" wird den Systemzugriff sperren. Die Force-Terme sind gegenseitig exklusiv.

B. Virtual Access - Virtueller Zugriff

Dieses Signal auf der Leitung 544 zeigt an, daß der momentane Speicherzugriff eine dynamische Adressübertragung erfordern wird.

Für ein Domänenspeicherzugriff in dem FAM befindet sich das virtuelle Signal unter Steuerung des DCPUS-T-Bits. Allerdings wird das DACR-T-Bit das DCPUS-T-Bit überlaufen, um virtuelle Zugriffe zu sperren. Der Zwangs-Real-Term wird auch virtuelle Zugriffe für spezifische Operanden sperren, die zu einem Zugriffs-Real-Speicher gefordert werden.

C. Address Mode Access - Adressen-Modus-Zugriff

Dieses Bit auf der Leitung 542 zeigt, wenn es aktiv ist, eine 31-Bit-Speicheradresse an; andererseits wird eine 24-Bit-Adresse eingeschlossen

Für Domänenspeicherzugriffe in einem FAM wird eine 31-Bit-Adressierung aktiv, falls entweder das DCPUS-A-Bit oder das DACR-A-Bit aktiv ist.

D. Secondary Address Space - Sekundärer Adressraum

Dieses Signal auf der Leitung 545 zeigt, wenn es aktiv ist, einen sekundären Adressraum an; andererseits wird ein primärer Adressraum eingeschlossen.

Für Domänenspeicherzugriffe in einem FAM wird das Adressraumsignal aktiv, wenn das DACR-S-Bit aktiv ist, während sich die Domäne in dem EC-Modus (DCPUS-EC) befindet, ohne daß der Operandenspeicherzugriff einen primären Speicherzugriff für die gegebene Instruktion (force primary) erfordert. Ein Adressraum wird auch aktiv werdend wenn das DCPUS-P-Bit aus ist und entweder das DACR-P-Bit oder das DCPUS-EC-Bit aus ist, ohne daß wiederum der Operandenspeicherzugriff einen primären Raumzugriff erfordert.

E. Inhibit Key Check - Blockier-Schlüssel-Prüfung

Dieses Signal auf der Leitung 546 verhindert, wenn es aktiv ist, eine Schutz-Schlüssel-Prüfung in der Speichereinheit.

Für Domänenspeicherzugriffe in dem FAM wird die Schutz-Schlüssel-Prüfung verhindert, wenn das DACR-K-Bit aktiv ist.

F. Inhibit Low Address Protection - Blockier-Low-Adressschutz

Das Signal auf der Leitung 547 verhindert, wenn es aktiv ist, einen Low-Adressen-Schutz in der Speichereinheit.

Für Domänenspeicherzugriffe in dem FAM wird eine Low-Adressen-Schutzprüfung verhindert, wenn das DACR-L-Bit aktiv ist.

G. Storage ProGram Event Recording (PER) - Speicher-Programm-Ereignisaufzeichnung (PER)

Das Signal auf der Leitung 520 ist nicht ein Schnittstellensignal zu der Speichereinheit, sondern es wird durch Domänenspeicherzugriffe in dem FAM auftreten. Tatsächlich sind die einzigen Speicher-PER-Ereignisse, die in dem FAM auftreten können, diejenigen für Domänenspeicherzugriffe, da PER für Systemadressen blockiert wird.

Für Domänenspeicherzugriffe in dem FAM, speichere PER (Store PER) unter der Kontrolle des DCPUS-R-Bits. Allerdings wird das DACR-R-Bit das DCPUS-R-Bit überlagern, um speichere PER zu sperren.

IV. FAM-Eingangstest-Ausführung

Die Fig. 6 und 7 stellen eine Ausführung der FAM-Eingangstests dar, die durch den Block 223 der Fig. 2 angezeigt sind.

Die Instruktions-Einulations-Routines müssen auf Programmausnahmen bzw. -exzeptionen als Teil einer normalen Instruktionsausführung testen, obwohl gerade die Programmausnahmen selten auftreten können. Um die Effektivität dieser Routines zu verbessern, schafft diese Offenbarung eine Hardwaretechnik, die das Programmausnahmentesten als Teil des Emulationseingangs-Routines durchführt. Die Test liefern eine Einrichtung zum Anzeigen:

- ob ein Supervisor-Status durch das PSW während des Eingangs zu einem FAM für die emulierten Instruktionen spezifiziert ist.

- ob Operanden der emulierten Instruktionen geforderte Anpassungstests erfüllen.

- ob die FAM-Eingangs-Instruktion das Ziel einer Ausführungsinstruktion war.

Jeder Test wird unabhängig von dem Ergebnis irgendeines anderen Tests durchgeführt. Die Tests, die durchgeführt werden sollen, werden in dem Kontrollwort der Instruktionen, das emuliert werden soll, spezifiziert. Falls ein FAM-Eingangstest fehlschlägt, wird ein zugeordnetes Bit in einem spezifizierten Systemregister für allgemeine Zwecke (System-GPR 3) gesetzt und der Modus des Einstiegs zu dem FAM wird von einem schnellen Einstieg zu einem normalen Einstieg bzw. Eingang modifiziert. In diesem Fall würde anstelle einer Verzweigung des Starts des Emulations-Routines das FAM-Eingangs-Routine zu einem gemeinsamen Routine als eine Alternative verzweigt, das Programmausnahmen und spezielle Fälle behandelt.

Wie in Fig. 6 dargestellt ist, empfängt die FAM-Eingangstestlogik 623 die Codierungen von dem Kontrollspeicher, die FAM-Eingangstests auf der Leitung 624 anzeigen. Das Supervisor-Status-Testsignal wird zu einer Supervisor-Teststeuerung 630 zugeführt. Die Supervisor-Teststeuerung liest Bit-15 des Programmstatusworts für die Instruktion, die emuliert werden soll, ein, die bestimmt, ob der Problemstatus auf ein steht. Falls er auf ein steht, schlägt der Test fehl, wie durch ein Signal auf der Leitung 631 angezeigt wird. Das Signal auf der Leitung 631 wird zu der Kontrollspeicherverzweigungslogik 214 zugeführt, um eine Verzweigung zu einem normalen Eingang zu bewirken, um den Ausnahmestatus zu verarbeiten.

Zusätzlich führen die FAM-Eingangstests Anpassungstests durch. Für Instruktionen, die einen ersten Operanden umfassen, wird eine Kontroll-Logik 632 für eine Anpassung des ersten Operanden freigegeben. Während eines Flusses der Instruktions-Hauptleitung werden, wenn die Adresse des Operanden das B-Zyklus-Operanden-Adressregister (204 in Fig. 2) erreicht, Bits 29 bis 31 ausgelesen, um die Anpassungstests in dem Block 633 durchzuführen. Wenn der erste Operand den Anpassungstest nicht erfüllt, wird ein Signal auf der Leitung 631 bestätigt, um den Kontrollspeicher zu dem normalen Eingang zwangszuführen. In ähnlicher Weise wird die Anpassung eines zweiten Operanden durch Anpassung zu der Steuerung 634 freigegeben. Wenn die Adresse des zweiten Operanden das B-Zyklus-Operanden-Adressregister erreicht, werden Bits 29 bis 31 gelesen und der Test wird in der Logik 635 durchgeführt. Wenn der Test fehlschlägt, wird das Signal auf der Leitung 631 bestätigt.

Schließlich wird das Ziel eines Ausführungstests beim Eintritt in eine schnelle Emulation durch Prüfen eines Ausführungsmodustriggers durchgeführt, der während eines normalen Betriebs eingestellt wird, wenn eine Instruktion Gegenstand einer Ausführungsinstruktion ist, wie dies durch die IBM/370 Principels für den Betrieb spezifiziert ist. Falls der Ausführungsmodustrigger während des Eingangs eingeschaltet ist, wird das Signal auf der Leitung 631 bestätigt, um den Kontrollspeicher zu dem normalen Eingang zwangszuführen.

Fig. 7 liefert eine detaillierte Ausführung der Testlogik für die schnellen Eingangstests, wie dies in Fig. 6 dargestellt ist.

Das Instruktionskontrollwort von dem-Kontrollspeicher umfaßt ein Supervisor-Testaktivierungs-Bit 701, einen 4-Bit-Anpassungs-Testcode enthaltend eine Anpassung 1, Bit 0 und Anpassung 1, Bit 1, Anpassung 2, Bit 0 und Anpassung 2, Bit 1. Zusätzlich wird, wenn der Operationscode in einem Decoder 704 in der Instruktionseinheit decodiert wird, der Ausführungsmodustrigger 705 eingestellt, wenn die Ausführungsinstruktion bestätigt wird.

Die Supervisor-Testlogik umfaßt ein UND-Gatter 706, das als Eingänge das Supervisor-Testaktivierungs-Bit von dem Kontrollwort 701 und das Bit 15 von dem Programmstatuswort aufnimmt. Falls beide bestätigt werden, wird durch ein Signal auf der Leitung 707 angezeigt, daß der Supervisortest fehl schlägt.

Der Anpassungstest einpfängt als Eingänge Anpassung 1, Bit 0 und Bit 1 von dem Block 702 des Kontrollspeichers und die Anpassung 2, Bit 0 und Bit 1 von dem Block 703 des Kontrollspeichers, die zu einem Selektor 708 zugeführt werden. Der Selektor wird durch die Anpassungskontroll-Logik gesteuert, die Anpassung-1-Kontrollwörter während des Flusses der ersten Operandenadresse und Anpassung-2-Kontrollwörter während des Flusses der zweiten Operandenadresse auswählt. Die Anpassungstests, Kontrollsignale von dem Kontrollspeicher werden in dem Decoder 709 decodiert, wie es in der Tabelle unten spezifiziert ist.

Falls der Wert 00 ist, wird das Signal auf der Leitung 710 zu einem UND-Gatter 711 zugeführt. Der Ausgang des UND-Gatters 711 zeigt an, daß dort kein Anpassungstest durchgeführt werden soll, so daß der Test daran vorbeiläuft.

Falls der Wert des ausgewählten Codes 01 ist, wird ein Signal auf der Leitung 712 als ein Eingang zu dem UND-Gatter 713 zugeführt. Der andere Eingang des UND-Gatters 713 ist die Umkehrung eines Bits 31 des Operandenadressregisters und eine Prüfung wird auf einer halben Wortanpassung durchgeführt.

Falls der Wert, der durch den Decoder 709 ausgewählt wird, 10 ist, dann wird ein Signal, das auf einer Leitung 714 zugeführt wird, ein Eingang zu dem UND-Gatter 715. Die anderen Eingänge zu dem UND-Gatter 715 umfassen Bits 30 und 31 von dem Operandenadressregister. Demzufolge ist der Ausgang des UND-Gatters 715 das Ergebnis einer vollständigen Wortanpassungsprüfung.

Falls der Wert des ausgewählten Codes 11 ist, wird ein Signal auf einer Leitung 716 bestätigt und als ein Eingang zu einem UND-Gatter 717 zugeführt. Die anderen Eingänge zu dem UND-Gatter 717 umfassen Bits 29, 30 und 31 des Operandenadressregisters. Demzufolge wird eine doppelte Wortanpassungsprüfung durchgeführt.

Wenn der Anpassungstest durchläuft, wie dies durch den Ausgang irgendeines der Gatter 711, 713, 715, 717 angegeben wird, wird ein Signal bestätigt.

UND-Gatter 719, 720 und 721 verbinden sich, um einen Anpassungstest-Fehltrigger 722 einzustellen. Der Wert des Anpassungstest-Fehltriggers wird auf einer Leitung 707 zugeführt, die anzeigt, daß der Anpassungstest fehlgeschlagen ist. Die Eingänge zu dem UND-Gatter 719 umfassen ein Operanden-1-Testkontrollsignal, das einen Test des ersten Operanden von der Anpassungsteststeuerung und die Umkehrung des Anpassungstest-Passiersignals von der Leitung 718 anzeigt.

Die Eingänge zu dem UND-Gatter 720 umfassen die Umkehrung des Anpassungs-Test-Passiersignals auf der Leitung 718 und ein Operanden-2-Testkontrollsignal von der Anpassungsteststeuerung.

Die Eingänge zu dem UND-Gatter 721 umfassen das Operanden-2-Test-Kontrollsignal von der Anpassungsteststeuerung und den Ausgang der Anpassung des Test-Fehltriggers 722. Wenn der Ausgang jedes der Gatter 719 bis 721 wahr ist, wird der Anpassungstest-Fehltrigger 722 eingestellt. Signale auf der Leitung 707 werden zu einem ODER-Gatter 723 so zugeführt, daß dann, wenn irgendeiner der Tests fehlschlägt, ein Signal zu der schnellen Eingangslogik (214 in Fig. 2) zugeführt wird, um den Eingang in die schnelle Emulation zu sperren, und es fordert einen normalen Einstieg.

Zusätzlich wird das Fehlschlagen jedes der Tests durch Speicherung eines Bits in einem Systemregister 724 für allgemeine Zwecke angezeigt.

A. Supervisor-Test

Wenn die Funktion für eine Instruktion ausgewählt ist und die Instruktion in dem Benutzer-Status (User-State) ausgeführt wird, falls das momentane PSW (Problem-Status) eingeschaltet ist, folgt:

- Normaler Einstieg anstelle eines schnellen Einstiegs zu dem FAM wird auftreten.

- System-GPR3 (1) wird auf eins gesetzt.

Der Supervisor-Test wird durch ein Bit in dem Kontrollwort der Instruktion, die emuliert werden soll, aktiviert. Dieses Bit wird mit einem PSW-Bit 15 (Problem-Status) durch UND verknüpft, das eine privilegierte Instruktion anzeigt, die in den Problemstatus emuliert werden soll, und bewirkt, daß der Supervisor-Test fehlschlägt. Ein schneller Einstieg wird gesperrt und eine normaler Einstieg wird freigegeben. Ein Makrocode wird die Instruktion gemäß der Umgebung durch das normale Einstiegs-Routine eher als die Durchführung der emulierten Instruktion emulieren. Der Makrocode erkennt, daß der Supervisor-Test fehlgeschlagen ist, und zwar aufgrund der Hardware/des Mikrocodes, der die Ergebnisse des Supervisor-Tests in Bit 1 des System-GPR3 speichert.

B. Anpassungs-Test

Ein Modell für Anpassungs-Tests bei spezifischen Operanden spezifischer Instruktionen kann angegeben werden. Wenn die Funktion verfügbar ist und für einen Instruktionsoperanden ausgewählt ist, bestimmt ein 2-Bit-Code, der durch die Kontrollspeicherfelder spezifiziert ist, den Typ des Anpassungs-Tests, der an den Instruktionsoperanden durchgeführt werden soll. Die möglichen Codewerte und Testtypen sind:

WERT TEST Keine Prüfung Halb-Wort-Anpassungsprüfung Gesamt-Wort-Anpassungsprüfung Doppel-Wort-Anpassungsprüfung

Falls eine schnelle Einstiegsinstruktion für den Anpassungstest fehlschlägt:

- ein normaler Einstieg anstelle eines schnellen Einstiegs zu dem FAM wird auftreten

- System-GPR3 (0) wird auf eins gesetzt.

Der Anpassungstest für einen oder zwei Instruktionsoperanden wird durch zwei Bits pro Operand in dem Kontrollwort der Instruktion, die emuliert werden soll, aktiviert. Die geeigneten Aktivierungs-Bits werden ausgewählt, wenn die zugeordneten 3 Bits niedriger Ordnung der Speicheroperandenadresse verfügbar sind. Der Operanden-1-Anpassungstest wird für alle Instruktionsformate verwendet, mit Ausnahme der RR- und SS-Formate. Der Operanden-2-Anpassungstest wird für den zweiten Speicheroperanden der RR- oder SS-Formatinstruktionen, die emuliert werden sollen, verwendet. Der ausgewählte 2-Bit-Aktivierungscode wird decodiert und mit dem zugeordneten Operandenadressregister- (OAR) Bit(s), die getestet werden sollen torgesteuert. Ein ∅∅-Code zeigt keinen Anpassungstest an. Ein ∅1-Code wird ein Operanden-Adressen-Bit 31 (OAR 31) testen. Falls es eine eins ist, wird der Anpassungstest fehlschlagen. Eine 1∅ wird Operandenadressen-Bits 30 und 31 testen. Falls jedes Bit eins ist, wird der Anpassungstest fehlschlagen. Schließlich wird ein 11-Code Operandenadressen-Bits 29, 30 und 31 testen. Falls irgendein Bit eine eins ist, wird der Anpassungstest fehlschlagen.

In dem Fall von Instruktionen mit zwei Speicheroperanden, die emuliert werden sollen, werden die Ergebnisse des ersten Tests in einem "Anpassungs-Test-Fehler" -Trlgger gehalten, während die zweite Operandenadresse getestet wird (falls sie aktiviert ist). Falls jeder Operand hinsichtlich des Anpassungstests fehlschlägt, wird ein schneller Einstieg gesperrt werden und ein normaler Einstieg wird vorgenommen werden. Ein Makrocode wird die Instruktion entsprechend der Umgebung durch das normale Einstiegs-Routine im Gegensatz zur Durchführung der Instruktion emulieren. Der Anpassungs-Test-Fehler wird bewirken, daß ein Bit ∅ des Systems GPR3 eingestellt wird.

C. Ziel des Execute-Tests - Ziel des Ausführungs-Tests

GPR3 (2) wird auf eins gesetzt werden, falls die FAM-Einstiegsinstruktion das Ziel einer EXECUTE-Instruktion war. Falls die FAM-Einstiegs-Instruktion andererseits einen schnellen Einstieg zu dem FAM bewirken würde, wird der Einstiegsmodus auf normal geändert.

Ein Makrocode muß wissen, wenn er eine Instruktion emuliert, ob die Instruktion ein Ziel einer Ausführungsinstruktion ist. Während der normalen Verarbeitung einer Ausführungsinstruktion setzt die Hardware einen "Execute-Mode" -Trigger ein, der anzeigt, daß die momentane Instruktion ein Ziel einer Ausführung ist. Falls dieser Trigger während eines FAM-Einstiegs an ist, wird ein schneller Einstieg gesperrt und ein normaler Einstieg wird genommen und Bit 2 des Systems GPR3 wird eingestellt werden.

V. Zusammenfassung

Eine Firmware-Emulation von neuen Instruktionen, die bestehende Maschineninstruktionen verwenden, schaffen eine effektive Art und Weise zur Einführung neuer Funktionen oder Merkmale ohne Modifizierung einer existierenden, bestimmten Maschinen-Hardware. Diese Funktion oder Merkmale bzw. Ausführungen werden auf einem höheren Niveau als Mikrocode- oder Hardware-Kontrollpunkte ausgeführt und schaffen eine größere Flexibilität. Diese Klasse einer Firmware wird als Makrocode bezeichnet und die Instruktionsemulation wird als schnell unterstützt bezeichnet.

Die vorliegende Erfindung verbessert Instruktions-Emulations-Routines durch:

1) Schaffung eines Hardware unterstützten Mechanismus, der viele der Emulations-Routine-Test durchführt, wodurch die Anzahl der Zyklen zur Ausführung jedes Emulations-Routines verringert wird.

2) Definition einer Kontrolltechnik, die Zugriffe zu einem Programmspeicher manipulieren kann, wodurch die Anzahl der Instruktionen, die für jedes Emulations-Routine erforderlich sind, verringert wird.

3) Schaffen eines Mechanismus zur Herstellung irgendeiner Maschineninstruktion, die die Fähigkeit besitzt, Speicherzugriffe zu einem Programmspeicher ebenso wie zu einem Emulationsspeicher zu schaffen, wodurch die Anzahl der Instruktionen, die für jedes Emulations-Routine erforderlich sind, verringert wird.

Die Erfindung ist unter Bezugnahme auf eine besondere Ausführungsform beschrieben worden. Fachleute werden erkennen, daß viele Variationen und Modifikationen der Ausführungsform, die beschrieben ist, vorgenommen werden können, die innerhalb der Erfindung liegen.


Anspruch[de]

1. Datenverarbeitungsgerät, das unter einer Programmsteuerung in einem ersten Status, der eine erste Domäne von Einrichtungen innerhalb des Geräts besitzt, das einen ersten Domänenspeicherraum umfaßt, oder in einem zweiten Status, der eine zweite Domäne der Einrichtungen innerhalb des Geräts besitzt, das einen zweiten Domänenspeicherraum umfaßt, arbeitet, und zwar zur Verarbeitung einer Abfolge von Instruktionen normalerweise in dem ersten Status, wobei die Abfolge von Instruktionen eine Instruktion umfaßt, die zu einer Verzweigung zu dem zweiten Status zur Ausführung eines Programms von Instruktionen in der zweiten Domäne führt, die aufweist:

Ein Instruktionsregister (201), das so verbunden ist, um Instruktionen in dem ersten und dem zweiten Status aufzunehmen, das eine Vielzahl von Feldern umfaßt, wobei mindestens ein Feld (D&sub1;,D&sub2;,D&sub3;) eine Stelle für Adressinformationen für einen Operanden identifiziert;

eine Decodiereinrichtung (211), die auf eine Instruktion in dem ersten Status anspricht, und zwar zur Decodierung der Instruktion, um einen Kontrollcode (212) zu erzeugen, wobei der Kontrollcode ein Verzweigungssignal (213), ein Domänenzugriffskontrollsignal (215) und ein Verzweigungstestsignal (224) umfaßt;

eine Einrichtung (214), die so verbunden ist, um das Verzweigungssignal aufzunehmen und darauf anzusprechen, und zwar für eine Verzweigung der Programmsteuerung des Geräts zu dem zweiten Status, um in das Programm der Instruktionen in der zweiten Domäne einzutreten;

eine Einrichtung (223), die so verbunden ist, um das Verzweigungstestsignal aufzunehmen und darauf zu antworten, und zwar zum Testen mittels Tests, die durch das Verzweigungstestsignal spezifiziert sind, und zwar auf Programmausnahmen als Teil des Eingangs-Routines zu dem zweiten Status;

eine Einrichtung (225, 214), die auf einen Testfehler anspricht, der eine Programmausnahme anzeigt, um eine Verzweigung zu einem herkömmlichen Routine als eine Alternative zu Serviceprogrammausnahmen zu bewirken;

eine Schnittstelleneinrichtung, die auf das Domänenzugriffskontrollsignal und das eine Feld in jeder Instruktion in dem Programm der Instruktionen anspricht, und zwar zum Erzeugen eines ersten Domänenzugriffssignals;

eine Adressiereinrichtung (202), die mit dem Instruktionsregister zur Zuführung einer Adresse eines Operanden in Verbindung steht; und

eine Speichereinrichtung, die so verbunden ist, um das erste Domänenzugriffssignal und die Adresse aufzunehmen, und zwar zur Speicherung von Operanden an Stellen, die durch Adressen von dem ersten und dem zweiten Domänenspeicherraum identifiziert werden, einschließlich einer Einrichtung, die auf das erste Domänenzugriffssignal anspricht, und zwar zur Übertragung der Adresse zu einem ersten Domänenadressenraum während der Verarbeitung einer Instruktion in dem zweiten Status.

2. Gerät nach Anspruch 1, wobei die Stelle, die durch ein Feld in einem Systemregister identifiziert wird, ein System für allgemeine Zwecke ist und wobei die Einrichtung zur Erzeugung des ersten Domänenzugriffssignal umfaßt:

Eine Einrichtung zur Bestimmung, ob das Register für allgemeine Zwecke durch das eine Feld identifiziert ist, das innerhalb eines vorab ausgewählten Bereichs der Register für allgemeine Zwecke fällt.

3. Gerät nach Anspruch 1, wobei der erste Status ein Benutzerzustand ist, der einen Zugang zu einem Benutzerdomänen-Speicherraum besitzt, und der zweite Status ein Kontrollzustand ist, der einen Zugang zu einem Systemspeicherraum besitzt.

4. Gerät nach Anspruch 1, wobei das Programm der Instruktionen in der zweiten Domäne eine Ausführung einer Instruktion in dem ersten Status emuliert.

5. Gerät nach Anspruch 1, wobei das Gerät eine Einrichtung zur Erzeugung eines Programmstatusworts zur Steuerung von Zugriffen zu den Speichereinrichtungen umfaßt, wobei das Gerät weiterhin umfaßt:

Eine Domänenzugriffs-Kontrollregistereinrichtung (219), die so verbunden ist, um das Domänenzugriffskontrollsignal unter einer Verzweigung zu dem zweiten Status aufzunehmen, um das Domänenzugriffskontrollsignal während der Ausführung des Programms der Instruktionen in dem zweiten Status zu halten;

eine Domänenstatusregistereinrichtung (220), die so verbunden ist, um einen Status-Indikator von dem Programmstatuswort für die Instruktionen in dem ersten Status aufzunehmen, um eine Verzweigung zu dem zweiten Status zu bewirken, und zwar für ein Halten des Status-Indikators während der Ausführung des Programms der Instruktionen in dem zweiten Status; und wobei

die Schnittstelleneinrichtung weiterhin in Verbindung mit der Domänenzugriffs-Kontrollregistereinrichtung, der Domänenstatusregistereinrichtung und der Speichereinrichtung zur Erzeugung von Speicherzugriffskontrollsignalen während der Ausführung des Programms der Instruktionen in dem zweiten Status in Abhängigkeit zu dein Status-Indikator und dem Domänenzugriffs-Kontrollsignal steht.







IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com