DE2717654C2 - Memory protection arrangement - Google Patents

Memory protection arrangement

Info

Publication number
DE2717654C2
DE2717654C2 DE19772717654 DE2717654A DE2717654C2 DE 2717654 C2 DE2717654 C2 DE 2717654C2 DE 19772717654 DE19772717654 DE 19772717654 DE 2717654 A DE2717654 A DE 2717654A DE 2717654 C2 DE2717654 C2 DE 2717654C2
Authority
DE
Germany
Prior art keywords
memory
key
address
access
register
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
Application number
DE19772717654
Other languages
German (de)
Other versions
DE2717654A1 (en
Inventor
Richard Eugene Birney
Michael Lan Davis
Robert Allen Hood
Thomas Stephen Mcdermott
Larry Edward Boca Raton Fla. Wise
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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
Priority claimed from US05/682,224 external-priority patent/US4038645A/en
Priority claimed from US05/681,985 external-priority patent/US4035779A/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2717654A1 publication Critical patent/DE2717654A1/en
Application granted granted Critical
Publication of DE2717654C2 publication Critical patent/DE2717654C2/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

Die vorliegende Erfindung betrifft eine Speicherschutzanordnung für den Hauptspeicher einer Datenverarbeitungsanlage, der durch Adreßsschlüssel, die von der Art des Speicherzugriffs abhängig sind und eine Datenblockadresse aus einem Blockadressenregisterstapel auswählen, vorzugsweise ohne virtuelle Adressenübersetzung adressiert wird.The present invention relates to a memory protection arrangement for the main memory of a data processing system, by address keys that are dependent on the type of memory access and a Select data block address from a stack of block address registers, preferably without virtual address translation is addressed.

Der Schutz von ausgewählten Speicherbereichen gegen unerwünschtes Schreiben oder Lesen mit Hilfe von Schlüsseln ist an sich bekannt Dabei werden jedem Programm Schlüssel zugeteilt, welche den oder die ium Zugriff erlaubten Speicherbereiche kennzeichnen. Hierbei war aber bisher nur eine relativ einfache und direkte Zuordnung möglich, d. h. es bestand eine feste Zuordnung zwischen Speicherbereich und Schutzschlüssel. The protection of selected memory areas against unwanted writing or reading with the help of keys is known per se. Each program is assigned keys that contain the ium Identify access to permitted memory areas. So far this has only been a relatively simple and direct one Assignment possible, d. H. there was a fixed assignment between storage area and protection key.

Der Erfindung liegt die Aufgabe zugrunde, für einen Hauptspeicher der oben angegebenen Art eine Speicherschulzanordnung anzugeben, bei der ein sehr flexibler, nach Zugriffs- bzw. Informationsarten differenzierter Schutz von Speicherbereichen möglich ist.The invention is based on the object for a main memory of the type specified above Specify storage school arrangement in which a very flexible, differentiated according to access or information types Protection of memory areas is possible.

Diese Aufgabe wird erfindungsgemäß durch die im Kennzeichen des Hauptanspruches beschriebene Anordnung gelöst.According to the invention, this object is achieved by the arrangement described in the characterizing part of the main claim solved.

Durch die kombinierte Verwendung von Speicherschutzschlüsseln einerseits und Zugriffsschlüsseln, welche an verschiedenen Zugriffs- oder Informaticnsarten zugeordnet sind, andererseits, läßt sich der Schutz variabler Speicherbereiche sehr flexibel den Bedürfnissen anpassen. Auch ist die vorgeschlagene Anordnung kompatibel für Systeme sowohl ohne als auch mit Übersetzung von Adressen zur dynamischen Speicherbenutzung. Through the combined use of memory protection keys on the one hand and access keys, which are assigned to different types of access or information, on the other hand, the protection of variable memory areas can be adapted very flexibly to the needs. Also is the proposed arrangement Compatible for systems with and without translation of addresses for dynamic memory use.

Eine vorteilhafte Weiterbildung der Erfindung ist dadurch gekennzeichnet, daß Umschalteinrichtupgen vorgesehen sind, um den Schlüsselauswahleinrichtungen wahlweise entweder einen, in einem Schlüsselregister des Prozessors enthaltenen Benutzerschlüssel oder einen Schaltungsbedingten, dem Überwachungsprogramm zugeordneten Sonderschlüssel zuzuleiten.An advantageous further development of the invention is characterized in that switching devices are provided to select either one of the key selectors, in a key register the processor contained user key or a circuit-related, the monitoring program assigned special key.

Diese Wahlmöglichkeit gestattet es, den Benutzerschlüssel im Zugriffsschlüsselregister beizubehalten und dabei zugleich doch einen Schutz gegen unerlaubte Zugriffe des Überwachungsprogrammes zu erzielen. Es braucht also nicht ein eigener Schlüssel für das Überwachungsprogramm anstelle des gegenwärtig verwendeten Benützerschlüssels im Zugriffsschlüsselregister abgespeichert zu werden. Vielmehr ergibt sich die Möglichkeit, die Zugriffe vom Überwachungsprogramm aus auf andere Weise zu überwachen.This option allows the user key to be retained in the access key register and at the same time to achieve protection against unauthorized access by the monitoring program. It does not need a separate key for the monitoring program instead of the current one used user key to be stored in the access key register. Rather, that arises Ability to monitor access from the monitoring program in another way.

Diese und weitere vorteilhafte Weiterbildungen der Erfindung sind den Unteransprüchen zu entnehmen.These and further advantageous developments of the invention can be found in the subclaims.

Ein Ausführungsbeispiel der Erfindung wird im folgenden anhand von Zeichnungen beschrieben. Es zeigtAn embodiment of the invention is described below with reference to drawings. It shows

Fig. IA-I allgemein das Prinzip der Adreßschlüsselauswahl aufgrund von Speicherzugriffs-Steuersignalen, welche die Art des Zugriffs identifizieren;Figure IA-I shows generally the principle of address key selection based on memory access control signals which identify the type of access;

Fig. lA-2 allgemein das Prinzip der Adreßübersetzung für den Speicherzugriff, wobei die logische Eingangsadresse aus einem speziell generierten Adreßschlüssel und der im Programm erscheinenden Adresse besteht;Fig. 1A-2 shows the principle of address translation in general for memory access, the logical input address from a specially generated address key and the address appearing in the program;

Fig. IB eine Übersicht der verschiedenen möglichen Speicherzugriffsarten;Fig. IB an overview of the various possible Memory access types;

Fig. IC in Blockform eine Übersichtsdarstellung einer Datenverarbeitungsanlage mit erweiterbarem Hauptspeicher, die als Ausführungsbeispiel beschrieben wird;Fig. IC in block form an overview of a data processing system with an expandable Main memory, which is described as an exemplary embodiment;

F i g. 1D eint spezielle Ausführungsform der in F i g. 1A gezeigten Anordnungen;F i g. 1D combines a special embodiment of the in F i g. 1A;

Fig.2A eine Übersichtsdarstellung der bei den Prozessoroperationen und E/A-Operationen vorkommenden Speicherzugriffe, sowie der verschiedenen Adreßbereiche;FIG. 2A shows an overview of those occurring in the processor operations and I / O operations Memory accesses, as well as the various address areas;

F i g. 2 B eine Übersicht der Speicherzugriffsvorgänge bei E/A-Operationen;F i g. 2 B shows an overview of the memory access processes during I / O operations;

Fig. 3A Einzelheiten eines E/A-Unterkanals, der bei jedem Unterkanalbefehl einen Adreßschlüssel erthält und diesen für jeden Datenzugriff zur Ausführung des Befehls abgibt;3A shows details of an I / O subchannel which receives an address key with each subchannel command and issues this for each data access for executing the command;

Fig.3B die relevanten Teile eines E/A-Kanals, der eine Mehrzahl von Unterkanälen mit einer Speicherprioritätsaus wahlschaltung verbindet;Fig. 3B shows the relevant parts of an I / O channel comprising a plurality of sub-channels with a memory priority select circuit connects;

F i g. 3C in Blockform eine Speicherprioritätsauswahlschaltung mit einer Kanalauswahlschaltung, durch welche E/A-Kanäle und Prozessor über den Hauptspeicherbus mit Speicher und Übersetzer verbunden sind, und die je einen ausgewählten Adreßschlüssel sowie eine Adresse für einen Speicherzugriff abgeben;F i g. 3C shows, in block form, a memory priority selection circuit with a channel selection circuit through which I / O channels and processor over the main memory bus are connected to memory and translator, and each have a selected address key as well submit an address for memory access;

F i g. 3D Einzelheiten einer Aktivadreßschlüssel-Auswahlschaltung, bei der auch ein Operandenbereichsabgleich erreicht werden kann;F i g. 3D details of an active address key selection circuit, with which an operand range comparison can also be achieved;

F i g. 4 Einzelheiten eines Prozessors, welche für die Speicherzugriffssteuerung mit Adreßschlüsseln relevant sind;F i g. 4 Details of a processor which are relevant for memory access control with address keys are;

F i g. 5 das Aufteilungsformat des Adreßschlüsselregisters in einem bevorzugten Ausführungsbeispiel;F i g. Figure 5 shows the partition format of the address key register in a preferred embodiment;

Fig.6 das Inhaltsformat der im Ausführungsbeispiel vorgesehenen Segmentregister;6 shows the content format in the exemplary embodiment provided segment register;

F i g. 7 Einzelheiten der Eingabe- und Ausgabesteuerung einer einzelnen Bitposition im Adreßschlüsselregister; F i g. 7 details of the input and output control of a single bit position in the address key register;

F i g. 8A schematisch die Vorgänge eines Befehls zum Laden bzw. Abspeichern eines Segmentspeichers;F i g. 8A schematically shows the operations of a command for loading or storing a segment memory;

Fig.8B schematisch die Vorgänge bei Ausführung eines Befehls zum Laden bzw. Abspeichern des Adreßschlüsselregisters aus einem bzw. in einen Speicher;8B schematically shows the processes during execution a command for loading or storing the address key register from or into a Storage;

F i g. 8C schematisch die Vorgänge bei Ausführung eines Befehls zum Laden bzw. Abspeichern des Adreßschlüsselregisters aus einem bzw. in ein Allgemeinregister; F i g. 8C schematically shows the processes when executing a command for loading or saving the Address key register from or into a general register;

F i g. 9A und 9B ein Blockschaltbild einer bevorzugten Ausführungsform des Übersetzers gemäß Fig. IC, der eine 19 Bit lange logische Maschinenadresse in eine 24F i g. 9A and 9B show a block diagram of a preferred embodiment of the translator according to FIG a 19-bit long logical machine address into a 24

Bit lange physische Adresse für den Speicherzugriff umwandelt;Converts bit long physical address for memory access;

Fig.9C, 9D-1, 9D-2, 9E, 9F-1 und 9F-2 Einzelheiten des in Fig. 9A/9B in Blockform gezeigten Übersetzers;Figures 9C, 9D-1, 9D-2, 9E, 9F-1 and 9F-2 details the translator shown in block form in Figs. 9A / 9B;

F i g. 9G die Arbeitsweise der in Fig.9C gezeigten Vorgriffsschaltungen zur jeweiligen Auswahl des Innenspeichers (ilasisspeicher), Außenspeichers (Zusatzspeicher) oder Asynchronspeichers, sowie die Interpretation der 24 Bit langen physischen Adresse durch die gewählte Speichereinheit beim Zugriff;F i g. 9G illustrates the operation of that shown in Fig. 9C Look-ahead circuits for the respective selection of the internal storage (ilasis storage), external storage (additional storage) or asynchronous storage, as well as the interpretation of the 24-bit long physical address by the selected storage unit upon access;

Fig. 10 eine Schaltungsanordnung im Prozessor zur Auswahl zwischen den betriebsarten »Speicherschutz ohne Übersetzung« und »Speicherschutz mit Übersetzung«; 10 shows a circuit arrangement in the processor for selecting between the operating modes »memory protection without translation "and" memory protection with translation ";

F i g. 11 Speicherschutzsteuerschaltungen zur Verwendung bei übersetzungsfreier Betriebsart;F i g. 11 memory protection control circuits for use in translation-free operating mode;

Fig. 12 das Format eines Speicher-Speicher-Befehls;Fig. 12 shows the format of a store-store command;

Fig. 13A relevante Teile des Formats eines Freigabe-/Sperrbefehls zur Festlegung der Betriebsarten mit spezieller Adreßbereichsauswahl (z. B. übersetzungsfreie Adressierung mit Speicherschutz, Speicherschutz mit Übersetzung, Operandenbereichsabgleich);Figure 13A shows relevant parts of the format of an enable / disable command to define the operating modes with special address range selection (e.g. translation-free Addressing with memory protection, memory protection with translation, operand area comparison);

Fig. 13B aufeinanderfolgende Zustände eines Adreßschlüsselregisters, wenn bei einer Unterbrechung Operandenbereichsabgleich erfolgt;13B shows successive states of an address key register, if, in the event of an interruption, the operand area is synchronized;

Fig. 14 eine Schaltungsanordnung für eine alternative Speicherschutzbetriebsart mit Übersetzung, welche eine Alternative zu der Speicherschutzbetriebsart mit Adreßschlüsselübersetzung darstellt;14 shows a circuit arrangement for an alternative Memory protection mode with translation, which is an alternative to the memory protection mode with Represents address key translation;

Fig. 15 schematisch ein alternatives Verfahren zur Adreßschlüsselübersetzung, das in einem Prozessor als Alternative zur Übersetzeranordnung mit mehreren Registerstapeln dienen kann;15 schematically shows an alternative method for address key translation which is implemented in a processor as Can serve as an alternative to the translator arrangement with several register stacks;

Fig. 16 Zugriff zu parallelen Grundspeichcrmoduln mittels mehrerer aktiver Adreßschlüssel in einem Multiprozessorsystem;16 Access to parallel basic memory modules by means of several active address keys in one Multiprocessor system;

Fig. 17 Steuerschaltungseinheiten aus dem Prozessor, zur Durchführung des in F i g. 8A gezeigten Befehls zum Laden/Abspeichern eines Segmentregisters;17 control circuit units from the processor, to carry out the in F i g. Segment register load / store instruction shown in Figure 8A;

Fig. 18 schematisch die Vorgänge zum Laden und zum Abspeichern bei Klassenunterbrechungen.18 schematically shows the processes for loading and storing in the event of class interruptions.

1. Beschreibungeines Ausführungsbeispiels1. Description of an embodiment

Fig. IA und Fig. IB zeigen die wesentlichen Merkmale eines Ausführungsbeispiels der Erfindung. Fig. IA zeigt eine Adreßschlüssel-AuswahlschaltungFIGS. 1A and 1B show the essentials Features of an embodiment of the invention. Fig. 1A shows an address key selection circuit

20. die je nach Art der Speicherzugriffsanforderung (welche durch Signale auf den Leitungen 21, 22, 23, 24 oder 25 angezeigt werden) einen der Schlüsselregisterabschnitte 31, 32, 33, 34 oder 35 auswählt, welche folgende Schlüssel enthalten: CS-Schlüssel. /S-Schlüssel. OPl Schlüsse!, OP2-Sch!üsse! und OP 3-Schlüssel. Derjenige dieser Schlüssel, welcher der vorliegenden Speicherzugriffsanforderung entspricht, wird durch die AAS-Auswahlschaltung 20 als aktiver Adreßschlüssel (AAS) ausgegeben. Dieser aktive Adreßschlüssel steuert die Adressierung des Hauptspeichers des Systems während des nächsten Speicherzugriffs, d. h. Abruf oder Speicherung von Daten im Hauptspeicher. Bei dieser Adressierungsoperation bestimmt der aktive Adreßschlüssel AAS den oberen Teil (höherwertige Stellen) der logischen Adresse, die von der Anlage für den Speicherzugriff benutzt wird20. Which, depending on the type of memory access request (which are indicated by signals on lines 21, 22, 23, 24 or 25), selects one of the key register sections 31, 32, 33, 34 or 35 which contain the following keys: CS keys. / S key. OPl closing !, OP2-shots! and OP 3 key. The one of these keys which corresponds to the present memory access request is output by the AAS selection circuit 20 as an active address key (AAS). This active address key controls the addressing of the main memory of the system during the next memory access, ie retrieval or storage of data in the main memory. In this addressing operation, the active address key AAS determines the upper part (higher-order digits) of the logical address that is used by the system for memory access

Die Signale auf den ZugriffsanforderungsleitungenThe signals on the access request lines

21, 22, 23, 24 und 25 stellen jedes eine andere Art von Zugriffsanforderung dar. welche von den Kanälen und Prozessoren gestellt werden können, die Zugriff zum gleichen Hauptspeicher haben. Diese Anforderungsleitungen sind in Fig. IA folgendermaßen bezeichnet: E/A-Zugriff, Befehlszugriff, OPl-Zugriff, OP2-Zugriff und OP3-Zugriff. Wenn nur eins dieser Zugriffsanforderungssignale auftritt, dann wird sofort der Inhalt des betreffenden Adreßschlüsselregisterabschnitts als AAS ausgegeben. Falls mehrere Anforderungssignale gleichzeitig auftreten, wird durch Prioritätsschaltungen in der /4-4S-Auswahlschaltung 20 bestimmt, in welcher Reihenfolge die betreffenden Adreßschlüssel als AAS ausgegeben werden. Dabei ist eine bestimmte Prioritätsordnung vorgegeben, so daß z. B. eine E/A-Zugriffsanforderung für eine Cycle-Steal-Operation den Vorrang hat, um zuerst den CS-Schlüssel auszugeben. Die Befehlsabrufanforderung wird als zweite bedient, um den /S-Schlüssei als AAS auszugeben. Als dritte wird die OP l-Zugriffsanforderung bedient, um den OP !-Schlüssel als AAS auszugeben; schließlich werden die OP2- und OP3-Zugriffsanforderungen als vierte und fünfte bedient, um den OP2-Schlüssel bzw. OP3-Schlüssel als /MSauszugeben.21, 22, 23, 24 and 25 each represent a different type of access request which can be made by the channels and processors having access to the same main memory. These request lines are designated in Figure IA as follows:. I / O access, instruction access, OPL access, OP2 and OP3 access access. If only one of these access request signals occurs, then the content of the relevant address key register section is immediately output as AAS . If several request signals occur simultaneously, it is determined by priority circuits in the / 4-4S selection circuit 20 in which order the relevant address keys are output as AAS . A certain priority order is given, so that, for. For example, an I / O access request for a cycle steal operation has priority to issue the CS key first. The command fetch request is serviced second to output the / S key as AAS. Third, the OP 1 access request is served in order to issue the OP ! Key as AAS; finally, the OP2 and OP3 access requests are served as fourth and fifth in order to output the OP2 key and OP3 key as / MS, respectively.

Es besteht also eine bestimmte Beziehung zwischen den verschiedenen Arten von Zugriffsanforderungen und den speziellen Schlüsselregisterabschnitten.So there is a certain relationship between the different types of access requests and the special key register sections.

In einem Prozessor enthält ein Adreßschlüsselregister (ASR) folgende Abschnitte: den /S-Schlüsselabschnitt (ISS), welcher den Befehlsabrufanforderungen für den Zugriff zu jeder Instruktion zugeordnet ist, und die Schlüsselregisterabschnitte für die Schlüssel OPl (OP iS) bis OP3 (OPiS), welche zu den verschiedenen Arten von Operanden-Zugriffen gehören, die zur Ausführung der Befehle benötigt werden.In a processor, an address key register (ASR) contains the following sections: the / S key section (ISS), which is assigned to the command retrieval requests for access to each instruction, and the key register sections for the keys OP1 (OP iS) to OP3 (OPiS), which belong to the different types of operand accesses required to execute the instructions.

Außerdem hat jeder E/A-Unterkanal einen entsprechenden CS-Schlüsselregisterabschnitt (CSS). Es kann auch vorkommen, daß mehrere E/A-Unterkanäle gleichzeitig einen Zugriff zum Hauptspeicher anfordern. Deshalb sind CSS-Prioritätsauswahlschaltungen vorgesehen, um bei gleichzeitigen Anforderungen die CS-Schlüssel in einer vorgegebenen Reihenfolge auszugeben. In addition, each I / O subchannel has a corresponding CS Key Register Section (CSS). It can also happen that several I / O subchannels request access to the main memory at the same time. Therefore, CSS priority selection circuits are provided in order to output the CS keys in a predetermined order in the event of simultaneous requests.

Falls überdies mehrere Prozessoren zum gleichen Hauptspeicher Zugriff haben, sind weitere Prioritätsschaltungen vorgesehen, um die Anforderungen dieser Prozessoren in vorgegebener bestimmter Reihenfolge zu bedienen.In addition, if several processors have access to the same main memory, further priority circuits are provided to meet the requirements of these To operate processors in a predetermined specific order.

Fig. IA veranschaulicht die Erfindung in einem System mit Prozessor und Kanaleinheit, bei dem aktive Adreßschlüssel benutzt werden und in dem nur ein Teil der in einem Datenverarbeitungssystem an und für sich möglichen Speicherzugriffsarten verwendet wird. Fig. IB zeigt eine größere Zahl verschiedener Speicherzugriffsarten. Die in einem bestimmten System verwendbaren Speicheiviigriffstypen sind auf solche eingeschränkt, die durch die Schaltungen des Systems identifizierbar sind. Das heißt, es werden im System Schaltungen benötigt, welche verschiedene Arten von Speicherzugriffsanforderungen feststellen können, und zwar jeweils zu der Zeit wenn die betreffende Zugriffsanforderung auftritt F i g. 1B zeigt mehr Zugriffsarten als die Anordnung, welche in F i g. 1A gezeigt ist In F i g. 1B sind acht Speicherzugriffsarten in drei Zugriffskategorien eingeteilt:Figure IA illustrates the invention in one System with processor and channel unit in which active address keys are used and in which only a part which is used in a data processing system in and of itself possible memory access types. Fig. IB shows a large number of different types of memory access. Those in a particular system usable spoke handle types are based on such which can be identified by the circuitry of the system. That is, it will be in the system Needs circuits that can detect different types of memory access requests, and although in each case at the time when the relevant access request occurs F i g. 1B shows more types of access than the arrangement shown in FIG. 1A is shown in FIG. 1B are eight memory access modes in three Divided into access categories:

(1) Befehlszugriff,(1) command access,

(2) Operanden-Zugriff und(2) operand access and

(3) eine Zugriffskategorie, die den Prozessorereignissen zugeordnet ist(3) an access category representing the processor events assigned

jeder Kanal enthält K Unterkanäle, und jeder Unterkanal hat drei Speicherzugriffskategorien:each channel contains K subchannels, and each subchannel has three memory access categories:

(1) Kanalbefehlszugriff,(1) channel command access,

(2) E/A-Datenzugriff und(2) I / O data access and

(3) eine Zugriffskatagorie für E/A-Ereignisse.(3) an access category for I / O events.

Zu jeder Zugriffskatagorie gehört mindestens eine Speicherzugriffsart.Each access category has at least one memory access type.

Bei irgendeiner bestimmten Anlage können nur die Speicherzugriffsarten verwendet werden, die in der Maschinenkonstruktion durch ein identifizierendes Signal, d. h. ein Speicheranforderungssignal, vorgesehen sind.For any particular system, only those memory access modes can be used that are specified in the Machine design by an identifying signal, d. H. a memory request signal is provided are.

So ist z. B. die Befehlszugriffskategorie in der Anlage durch ein Befehlsabrufsanforderungssignal gekennzeichnet. Die Operanden-Zugriffskategorie kann in der Anlage durch sechs verschiedene Arten von Operanden-Zugriffen identifiziert werden (F i g. IB). Diese sind unterteilt in direkte und indirekte Operanden-Zugriffsarten, wobei zu der Unterkategorie der direkten Zugriffe diejenigen Zugriffe gehören, welche Adressen benutzen, die direkt aus dem Befehl abgeleitet sind, während die Unterkategorie der indirekten Zugriffe solche Operanden betrifft, bei denen die Adressen indirekt aus der Operanden-Adresse eines Befehls abgeleitet sind. Zu jeder Unterkategorie gehören drei verschiedene Operanden-Zugriffsarten, welche durch die Schaltung der Anlage identifiziert werden können als Anforderungssignale für Quellenabruf, Senkenabspeicherung und Senkenabruf. Jede dieser sechs Operandenzugriffsarten kann bei der Konstruktion einer Anlage vorgesehen werden, und die betreffenden von der Anlage ider.tifizierbaren Signale können aus jedem Befehl abgeleitet werden, und zwar vom Operationscode und von den Operandenfeldern. Die Quellenabruf-Operandenart betrifft Daten, die als Quelle einer Befehlsausführung benutzt werden: sie wird nicht verändert, sondern nur benutzt, um die Ergebnisse einer Befehlsausführung zu erstellen. Auf der anderen Seite bezieht sich die Senkenabspeicherung-Operandenart auf Zugriffe, bei denen die Resultate einer Befehlsausführung gespeichert werden. Die Senkenabruf-Operandenart ist das Resultat einer früheren Befehlsausführung, welche als Quelle für die Ausführung eines nachfolgenden Befehls benutzt wird. Für viele Datenverarbeitungsanlagen wurde es jedoch für praktisch befunden, bei der Konstruktion den Senkenabspeicherungs-Operandentyp und den Senkenabruf-Operandentyp zu einem einzelnen Senkenabspeicherungs/-abruf-Operandentyp zusammenzufassen.So is z. B. denotes the command access category in the system by a command fetch request signal. The operand access category can be defined in the system by six different types of operand access can be identified (Fig. IB). These are divided into direct and indirect operand access types, with the sub-category of direct Accesses those accesses belong to which use addresses which are derived directly from the command, while the subcategory of indirect access concerns operands for which the addresses are derived indirectly from the operand address of an instruction. Each sub-category has three different operand access types, which can be identified by the circuitry of the system as request signals for source retrieval, sink storage and sink retrieval. Each of these six Operand access types can be provided in the construction of a system, and the relevant Signals that can be identified by the system can be derived from any command, namely from the Opcode and from the operand fields. The Get Source Operand Type applies to data saved as Source of an instruction execution: it is not changed, but only used to create the To create the results of a command execution. On the other hand, the sink store refers to the operand type to accesses in which the results of a command execution are saved. the The sink call operand type is the result of an earlier command execution which is used as the source for the Execution of a subsequent command is used. For many data processing systems, however, it was found to be useful in designing the sink dump operand type and the sink fetch operand type group into a single sink dump / fetch operand type.

Prozessorereignis-Zugriffe werden hervorgerufen durch das Auftreten interner Prozessorereignisse, wie z. B. Datenfehler. Maschinenfehler. Adressierungsausnahme usw.. die zu einer langen Liste bekannter Ereignisse gehören, welche die üblichen Prozessorunterbrechungen, d. h. interne Unterbrechungen, hervorrufen. Die Kategorie der Prozessorereigniszugriffe kann z. B. den Zugriff zu einem Bereich des Hauptspeichers einschließen, der ein Unterbrechungs-Verarbeitungsprogramm und andere Programme zur Verarbeitung von Signalen enthält, die mit der Unterbrechung im Zusammenhang stehen, und in dem weiterhin Daten gespeichert sind, die mit der Unterbrechung im Zusammenhang stehen, so z. B. Abschlußaufzeichnungen. Processor event accesses are caused by the occurrence of internal processor events such as z. B. Data error. Machine failure. Addressing exception etc .. which make a long list of known ones Events that include the usual processor interrupts, i. H. internal interruptions. The category of processor event accesses can e.g. B. access to an area of the main memory include an interrupt handler and other programs for processing signals associated with the interruption in the Are related, and in which data is still stored that was related to the interruption in Related, so z. B. Closing Records.

Jeder Kanal hat eine Mehrzahl von Unterkanälen, die eine Vielzahl von verschiedenen Zugriffsarten durchführen. So gehört z.B. zu jedem Unterkanal eine E/A-Datenzugriffskategorie mit den Zugriffsarten E/A-Abruf und E/A-Abspeicherung. Bei manchen Anlagen sind diese beiden durch die Konstruktion zu einem einzelnen Zugriffstyp zusammengefaßt, den man E/A-Abruf/Abspeicherungszugriff nennt. Die mit Unterkanalereignissen zusammenhängenden Zugriffe wer-■> den durch Unterbrechungen signalisiert, die für den Prozessor extern sind, d. h. externe Unterbrechungen. Es werden üblicherweise viele verschiedene externe Unterbrechungen verwendet, so z. B. die Geräteschlußunterbrechung, Gerätefehlerunterbrechung, E/A-Da-Each channel has a plurality of subchannels that perform a variety of different types of access. For example, each sub-channel has an I / O data access category with the types of access I / O retrieval and I / O storage. In some systems, these two are closed by the design combined into a single type of access called I / O polling / storing access. The ones with sub-channel events Related accesses are ■> signaled by interruptions that are necessary for the Processor are external, d. H. external interruptions. There will usually be many different external Used interruptions, e.g. B. the device end interruption, device error interruption, I / O data

i" tenfehlerunterbrechungen usw.error interrupts, etc.

Zusammenfassend kann man sagen, daß mit der Erfindung die Möglichkeit geschaffen wird, die Adressiervorgänge im Hauptspeicher für jede der verschiedenen Speicherzugriffsarten, die in F i g. 1B gezeigt sind,In summary, it can be said that the invention creates the possibility of addressing in main memory for each of the various types of memory access shown in FIG. 1B are shown,

ι ■> separat zu beeinflussen. Zu den in F i g. 1B gezeigten Zugriffsarten gehören die acht verschiedenen Speicherzugriffsarten, welche jedem Prozessor zur Verfügung stehen, und die vier verschiedenen Speicherzugriffsarten, welche jedem Unterkanal zur Verfügung stehen.ι ■> to be influenced separately. The in F i g. 1B shown Access types include the eight different memory access types, which are available to each processor, and the four different memory access types, which are available to each sub-channel.

.μ Diese Möglichkeit der separaten Beeinflussungen ist dadurch gegeben, daß man für jede der Zugriffsarten, welche in einer Anlage vorgesehen sind, einen separaten Schlüsselregisterabschnitt vorsieht. Das Ausführungsbeispiel, welches in F i g. 1A gezeigt ist, benutzt.μ This possibility of separate influencing is given by having one for each of the types of access that are provided in a system provides a separate key register section. The embodiment shown in FIG. 1A is used

r> nur vier verschiedene Prozessorzugriffsarten, welche im gewählten Beispiel durch ein Adreßschlüsselregister dargestellt sind, das vier verschiedene Registerabschnitte hat. Die Anzahl der Registerabschnitte im Adreßschlüsselregister ASR kann jedoch beliebig gewähltr> only four different types of processor access, which in the example chosen are represented by an address key register that has four different register sections. The number of register sections in the address key register ASR can, however, be selected as desired

in werden entsprechend der Anzahl verschiedener Zugriffsarten, die in der Konstruktion der Anlage vorgesehen sind.in are according to the number of different types of access, which are provided in the construction of the system.

Auf jeden Fall wird für jede durch die Schaltungen der Maschine identifizierbare Zugriffsart ein .45/?-Regi-In any case, a .45 /? - Regi-

n sterabschnitt oder ein CS-Registerabschnitt vorgesehen mit entsprechenden Vorrichtungen in der /4.4S-AuS-wahlschaltung. um einen ausgewählten Registerabschnitt auszulesen, wenn die entsprechende Zugriffsanforderung bedient wird, wobei dann der Inhalt desn ster section or a CS register section is provided with corresponding devices in the /4.4S-AuS- selector circuit. by a selected register section read out when the corresponding access request is served, with the content of the

απ ausgewählten Registerabschnitts der aktive Adreßschlüssel wird, welchen die Anlage als Adreßkomponente benutzt, um den Adressiervorgang für den betreffenden Speicherzugriff zu beeinflussen. Für die durch den aktiven Adreßschlüssel AAS gegebene Adreßkompo-απ selected register section becomes the active address key, which the system uses as an address component in order to influence the addressing process for the relevant memory access. For the given by the active address key AAS Adreßkompo-

>', nente kann folgendes gelten: >', nente can be:

(1) Sie kann eine direkte Beziehung zur physischen Adresse haben, indem der AAS mit der Programm-(1) It can have a direct relationship to the physical address by connecting the AAS with the program

.() adresse verkettet wird, so daß beide zusammen eine physische Adresse im Hauptspeicher ergeben;. () address is concatenated so that both together result in a physical address in main memory;

(2) sie kann einen fest vorgegebenen Speicherzugriff im Hauptspeicher ermöglichen, wie es im Ausführungsbeispicl der Fig. 11 gezeigt ist;(2) It can enable a permanently specified memory access in the main memory, as in the exemplary embodiment shown in Fig. 11;

._ (3) sie kann zur Bestimmung einer verschiebbaren Adresse für durch Schlüssel identifizierte Speicherbereiche dienen, wobei man innerhalb jedes Bereiches sequentielle Programmadressen benötigt, wie es in F i g. 15 gezeigt ist;._ (3) it can be used to determine a relocatable address for memory areas identified by keys serve, whereby sequential program addresses are required within each area, as shown in FIG. 15 is shown;

(| (4) sie kann in noch flexiblerer Art für die Bestimmung von verschiebbaren Adressen dienen, wobei auch noch innerhalb der durch Schlüssel identifizierten Bereiche eine Adreßverschiebung möglich ist, so wie es im Ausführungsbeispiel der Fig. IA dargestellt ist. (| (4) it can be used in an even more flexible manner for the determination of shiftable addresses, with address shifting also still possible within the areas identified by the key, as shown in the exemplary embodiment in FIG. 1A.

Die Hauptspeichereingangsadresse, welche durch die in F i g. 1A gezeigte Anordnung bereitgestellt wird, istThe main memory entry address identified by the in Fig. 1A is provided

die Kombination eines aktiven Adreßschlüssels AAS mit einer im Programm erscheinenden Adresse. Die letztere ist eine Adresse, welche die Anlage in einem in Ausführung befindlichen Programm sieht, wie z. B. die Befehlsabrufadresse im Befehlsadreßregister, und die Operanden-Adressen in den Befehlen des Programms. Wenn ein Programm geschrieben wird, so sind nur im Programm erscheinende Adressen bekannt. Der Anwendungsprogrammierer bekümmert sich um die /4y4S-Operationen nur insoweit, als er seine Operandendaten separat vom Programm zusammenfaßt. Der Systemprogrammierer spezifiziert allgemein die Prozessorereigniszugriffsbereiche und ihren Inhalt, und der E/A-Programmierer spezifiziert allgemein die E/A-Kanalbefehls- und Ereigniszugriffsbereiche und ihren Inhalt. In Fig, IA besetzt die 44S-Komponente K Bit-Positionen im höherstelligen Teil der kombinierten Eingangsadresse, und die im Programm erscheinende Adresse besitzt 16 Bitstellen, so daß es insgesamt eine Eingangsadresse für die Anlage mit 16 + K Bitstellen ergibt.the combination of an active address key AAS with an address appearing in the program. The latter is an address which the system sees in a program being executed, such as e.g. B. the instruction fetch address in the instruction address register, and the operand addresses in the instructions of the program. When a program is written, only addresses appearing in the program are known. The application programmer only cares about the / 4y4S operations to the extent that he combines his operand data separately from the program. The system programmer generally specifies the processor event access areas and their contents, and the I / O programmer generally specifies the I / O channel command and event access areas and their contents. In FIG. 1A, the 44S component occupies K bit positions in the higher-order part of the combined input address, and the address appearing in the program has 16 bit positions, so that in total it results in an input address for the system with 16 + K bit positions.

Bei der in Fig. IA gezeigten Anordnung ist die Eingangsadresse einschließlich des /l/AS-Feldes eine logische Maschinenadresse, für welche noch eine Übersetzung erforderlich ist, um eine gewünschte Speicherstelle im Datenverarbeitungssystem zu erreichen. Auf der andpren Seite wird in der in F i g. 11 gezeigten Anordnung der aktive Adreßschlüssel AAS als direkt benutzte Einschränkungen der physischen Adresse verwendet, welche nicht übersetzt wird.In the arrangement shown in FIG. 1A, the input address including the / I / AS field is a logical machine address for which a translation is still required in order to reach a desired storage location in the data processing system. On the other hand, in the in FIG. 11, the active address key AAS is used as directly used restrictions on the physical address which is not translated.

A. Übersetzer mit RegisterstapelnA. Translator with stacks of tabs

Der in Fig. IA gezeigte Übersetzer enthält eine Mehrzahl von Segmentregisterstapeln mit den Nummern 0 bis 2K. Jeder Schlüsselregisterabschnitt im Prozessor oder in einem Unterkanal enthält mindestens einen Schlüssel mit K Bits, mit dem man jeden der Stapel adressieren kann.The translator shown in FIG. 1A contains a plurality of segment register stacks with the numbers 0 to 2K . Each key register section in the processor or in a subchannel contains at least one key with K bits which can be used to address each of the stacks.

Der aktive Adreßschlüssel AAS wird in eine Stapeladressiereinrichtung 40 eingegeben und dekodiert, um den gewünschten Stapel auszuwählen. Danach wird mit den höherwerligen Bit-Positionen 0— P der im Programm erscheinenden Komponente der Eingangsadresse ein Segmentregister (SR) innerhalb des adressierten Stapels ausgewählt. Bit-Positionen 0 bis 12 des gewählten Segmentregisters enthalten eine zugeordnete Blocknummer, welche die Bit-Positionen 0 bis 12 der physischen Adresse eines bestimmten physischen Blocks im Hauptspeicher darstellen, zu dem dann zugegriffen wird.The active address key AAS is entered into a batch addressing device 40 and decoded in order to select the desired batch. Then a segment register (SR) within the addressed stack is selected with the higher-order bit positions 0— P of the component of the input address that appears in the program. Bit positions 0 to 12 of the selected segment register contain an assigned block number which represents bit positions 0 to 12 of the physical address of a particular physical block in main memory which is then accessed.

Die restlichen Bit-Positionen 13 — 23 der physischen Adresse, welche 24 Bits umfaßt, geben die relative Byte-Adresse (D) innerhalb des gewählten physischen Blocks an; sie sind identisch mit der relativen Byte-Adresse D in der Eingangsadresse, wo sie in den niederwertigen Bit-Positionen (P+1) bis 15 stehen. Der Zugriff zu einem bestimmten physischen Block wird auch gesteuert durch Kennzeichen-Bits in den restlichen Bit-Positionen 13—15 im gewählten Segmentregister SR. Die Einteilung der Segmentregister SR ist in F i g. 6 gezeigt; der Inhalt der Validitäts-Bit-Position 13 (V) zeigt an, ob der Inhalt des Blocknummemfeldes gültig ist Falls er ungültig ist (d. h. V=O), kann der Inhalt des gewählten Segmentregisters nicht zur Generierung einer physischen Adresse benutzt werden, und es erfolgt dann eine Adressierungsausnahme-Unterbrechung. Die Kennzeichen-Bit-Position 14 gibt an, ob der adressierte Block nur gelesen werden darf. Falls Bit 14 auf eins gesetzt ist, darf in dem betreffenden Block nicht geschrieben werden, und es sind dann nur Abruf-Zugriffe gestattet. Bit 15 ist nicht benutzt. Das Zweitwort mit den Bit-Positionen 16 bis 31 ist reserviert und wird für ι das vorliegende Ausführungsbeispiel auch nicht benutzt.The remaining bit positions 13-23 of the physical address, which comprise 24 bits, indicate the relative byte address (D) within the selected physical block; they are identical to the relative byte address D in the input address, where they are in the lower-value bit positions (P + 1) to 15. Access to a particular physical block is also controlled by identifier bits in the remaining bit positions 13-15 in the selected segment register SR. The division of the segment registers SR is shown in FIG. 6 shown; the content of the validity bit position 13 (V) indicates whether the content of the block number field is valid. If it is invalid (ie V = O), the content of the selected segment register cannot be used to generate a physical address, and it an addressing exception interrupt then occurs. The identifier bit position 14 indicates whether the addressed block may only be read. If bit 14 is set to one, the block in question may not be written to, and only polling accesses are then permitted. Bit 15 is not used. The second word with the bit positions 16 to 31 is reserved and is also not used for the present exemplary embodiment.

B. Erweiterbarer HauptspeicherB. Expandable main memory

F i g. IC zeigt die Konfiguration eines Datenverarbeitungssystems, das einen neuartigen erweiterbarenF i g. IC shows the configuration of a data processing system, the one new expandable

ίο Hauptspeicher zur Verarbeitung übersetzter Adressen hat. Der Hauptspeicher besteht mindestens aus einem inneren Speicherteil 51, im folgenden kurz Innenspeicher genannt, der bis zu 64 K Bytes Speicherkapazität hat. Die erste mögliche Erweiterung ist die Hinzufügungίο Has main memory for processing translated addresses. The main memory consists of at least one internal memory section 51, hereinafter referred to as internal memory for short, which has a storage capacity of up to 64 K bytes. The first possible extension is addition

i> eines äußeren Speicherteils 52, im folgenden kurz Außenspeicher genannt, durch den der Speicher um 64 K Bytes erweitert werden kann, so daß der Hauptspeicher dann 128 K Bytes umfaßt. Dann kann zusätzlich ein erweiterbarer asynchroner Speicher 53, im folgendeni> an external memory part 52, hereinafter referred to as external memory for short, by means of which the memory can be expanded by 64 K bytes so that the main memory then comprises 128 K bytes. Then an expandable asynchronous memory 53, in the following

2(i auch kurz Asynchronspeicher genannt, hinzugefügt werden, womit die Kapazität des Hauptspeichers auf maximal 16 777 216 Bytes (d.h. 224) erweitert werden kann.2 (i also called asynchronous memory for short) can be added, with which the capacity of the main memory can be expanded to a maximum of 16 777 216 bytes (ie 2 24 ).

Zur Adreßübersetzung ist ein Übersetzer 59 vorgese-A translator 59 is provided for address translation.

2i hen, der auch Schnittstelleneinrichtungen enthält für die Verbindung des Außenspeichers 52 und des Asynchronspeichers 53 mit der Hauptspeicherkonfiguration.2i hen, which also contains interface facilities for the Connection of external storage 52 and asynchronous storage 53 to the main storage configuration.

Ein Hauptspeicherbus 56.4 (mit Bus sind im folgenden Sammelleitungen bezeichnet) verbinde; einen Prozes-A main memory bus 56.4 (with bus are below Collectors designated) connect; a process

Jd sor 54 und einen E/A-Kanal 55 über eine Speicherprioritätsauswahlschaltung 56 mit der Hauptspeicherkonfiguration. Der Hauptspeicherbus 56A ist auch mit dem Übersetzer 59 und mit dem Innenspeicher 51 verbunden. Jd sor 54 and an I / O channel 55 through a memory priority selection circuit 56 with the main memory configuration. The main memory bus 56A is also connected to the translator 59 and to the internal memory 51.

η Innenspeicher-Zyklus-Signalleitungen 54Λ verbinden den Innenspeicher 51 direkt mit der Speicherprioritätsauswahlschaltung 56. Sie übertragen Innenspeicherzyklussignale (7SZ-Signale), welche 16 Bit lange, nicht übersetzte physische Adressen darstellen, die vom Prozessor generiert werden, wenn er im Nichtübersetzungsbetrieb arbeitet. Wenn der Prozessor im Übersetzungsbetrieb arbeitet, werden für ISZ die fünf höherwertigen Bits vom Übersetzer bereitgestellt; sie enthalten ein Kartenauswahlsignal (welches eine be-Internal memory cycle signal lines 54Λ connect internal memory 51 directly to memory priority selection circuit 56. They carry internal memory cycle signals (7SZ signals) which represent 16-bit untranslated physical addresses generated by the processor when it is in non-translation mode. When the processor is working in translation mode, the five most significant bits for ISZ are provided by the translator; they contain a card selection signal (which

4> stimmte Karte von bis zu vier Karten auswählt, aus denen der Innenspeicher besteht) sowie die Felder CSY und CSX (die einen bestimmten Speicherbereich auf der gewählten Karte auswählen, wobei diese Bereiche 4096 Bits umfassen). Die fünf höherwertigen Bits auf den4> select the correct card from up to four cards that make up the internal memory) as well as the CSY and CSX fields (which select a specific memory area on the selected card, these areas being 4096 bits). The five most significant bits on the

V) Adreßbusleitungen 00-04 werden vom Übersetzer zum Prozessor übertragen, um von diesem während eines Innenspeicherzyklus /SZbenutzt zu werden. Bit 13 bis 22 werden vom Speicheradreßregister des Prozessors abgegeben, um eine bestimmte Wortstelle im Speicherbereich auszuwählen, und das letzte Bit 23 wählt ein bestimmtes Byte in diesem Wort aus, wenn es sich um eine Schreiboperation handelt Die Byte-Adressierung mittels des Bit 23 wird nur für Schreiboperationen benutzt, da bei Leseoperationen nur ganze Wörter adressiert werden (1 Wort enthält 2 Bytes). Für eine Schreiboperation wird das letzte Adreßbit 23 entweder auf 0 oder auf 1 gesetzt um entweder das linke oder das rechte Byte in einem Wort zu adressieren. V) Address bus lines 00-04 are transferred from the translator to the processor in order to be used by the latter during an internal memory cycle / SZ. Bit 13 to 22 are output from the memory address register of the processor in order to select a specific word location in the memory area, and the last bit 23 selects a specific byte in this word if it is a write operation Used for write operations, since read operations only address whole words (1 word contains 2 bytes). For a write operation, the last address bit 23 is set either to 0 or to 1 in order to address either the left or the right byte in a word.

Wenn der Prozessor nur mit dem Innenspeicher arbeitet (d. h, wenn im System kein Außenspeicher und kein Asynchronspeicher vorgesehen ist), dann adressiert der Prozessor den Innenspeicher nur mit physischen, 16 Bit langen Adressen, die vom Speicheradreßregister aufIf the processor only works with the internal memory (i.e., if there is no external memory in the system and no asynchronous memory is provided), then the processor only addresses the internal memory with physical, 16 Bit long addresses from the memory address register

dem Bus 54/4 direkt abgegeben werden. Die vom Prozessor abgegebenen, 16 Bit langen Adressen reichen gerade aus zur Adressierung der Höchstkapazität des Innenspeichers (d. h. 64K). Bei dieser Minimalkonfiguration werden mit den 16 Bit langen physischen Adressen Speicherschutzschlüssel benutzt entsprechend den Nichtübersetzungsspeicherschutzschaltungen, die in F i g. 11 gezeigt sind.can be handed over directly to bus 54/4. The 16-bit addresses provided by the processor are sufficient just about to address the maximum capacity of the internal memory (i.e. 64K). With this minimal configuration are used with the 16-bit long physical addresses memory protection keys according to the Non-translation memory protection circuits shown in FIG. 11 are shown.

Die Speicherschutzschlüssel benutzen die Möglichkeit der separaten Adreß-bereichsbestimmung, welche durch die Adreßschlüsselregisterabschnitte für verschiedene Speicherzugriffsarten gegeben ist. Die Kombination der Aktivadreßschlüsselauswahlschaltungen mit den Speicherschutzschlüsseln gehört auch zu der in dieser Beschreibung dargestellten Erfindung. Das hier dargestellte Merkmal der Aktivadreßschlüsselschaltungen, durch welche separate Adreßbereichsbestimmungen je nach Speicherzugriffsart möglich sind, kann separat kombiniert werden, entweder mit der Benutzung von Speicherschlüsseln bei Verwendung von nicht verschiebbaren Adressen oder mit der Benutzung von Adreßschlüsseln bei Verwendung verschiebbarer Adressen.The memory protection keys use the option of determining which address areas are separately is given by the address key register sections for different types of memory access. The combination of the active address key selection circuits with the memory protection keys also belongs to the in invention illustrated in this specification. The feature of the active address key circuits shown here, by which separate address area determinations are possible depending on the type of memory access can be combined separately, either with the use of storage keys when using not relocatable addresses or with the use of address keys when using relocatable Addresses.

Wenn man die Möglichkeit der Adreßverschiebung wünscht, die erlaubt, daß der Hauptspeicher über die Kapazitätsgrenze des Innenspeichers von 64K hinaus erweitert werden kann, muß ein Übersetzer vorgesehen werden, wie es in Fig. IC gezeigt ist. Es kann dann ein Außenspeicher hinzugefügt werden, welcher mit dem Übersetzer durch Außenspeicherzyklus-Signalleitungen 58 verbunden wird, welche die Außenspeicherzyklussteuerung (OSZ)ermöglichen, die in F i g. 9G dargestellt ist.If one desires the possibility of address shifting, which allows the main memory to be expanded beyond the capacity limit of the internal memory of 64K, a translator must be provided as shown in FIG. IC. An external memory can then be added which is connected to the translator by external memory cycle signal lines 58 which enable the external memory cycle control (OSC) shown in FIG. 9G is shown.

Der Übersetzer ermöglicht auch eine zusätzliche Erweiterung des Hauptspeichers über die Kapazitätsgrenze von 128K, welche für den Innenspeicher und Außenspeicher gilt, hinaus durch Hinzufügung einer Asynchronspeichereinheit. Die Asynchronspeichereinheit benutzt die übersetzten, 24 Bit langen Adressen in anderer Art als der Außenspeicher, wie dies in F i g. 9G für den Asynchronspeicherzyklus (ASZ) gezeigt ist. Beim Asynchronspeicherzyklus .45Zwerden die Bit-Positionen 0 bis 6 benutzt, und in diesen Bit-Positionen steht mindestens ein 1-Bit, weil man mehr als 16 Bit braucht, um eine Zahl darzustellen, die größer als 128K ist. Durch die Benutzung der Bit-Positionen 0 bis 6 unterscheidet sich der Asynchronspeicherzyklus vom Außenspeicherzyklus, bei welchem diese Bit-Positionen nicht benutzt werden; beim Außenspeicherzyklus werden nur die Bit 7 bis 23 benutzt Diese besonderen Bedingungen für die Bit-Positionen 0 bis 6 werden dazu benutzt, um ein Paar von Vorgriffbits zu setzen, welche in F i g. 9G gezeigt sind, wobei die zugehörigen von 64K hinaus erweitert werden kann, muß ein Übersetzer vorgesehen werden, wie es in Fig. IC gezeigt ist Es kann dann ein Außenspeicher hinzugefügt werden, welcher mit dem Übersetzer durch Außenspeicherzyklus-Signalleitungen 58 wird, welche die Außenspeicherzyklussteuerung (OSZ) ermöglichen, die in F i g. 9G_dargestellt istThe translator also enables the main memory to be expanded beyond the capacity limit of 128K, which applies to the internal and external memories, by adding an asynchronous memory unit. The asynchronous memory unit uses the translated, 24-bit addresses in a different way than the external memory, as shown in FIG. 9G for the asynchronous storage cycle (ASZ) is shown. The bit positions 0 to 6 are used in the asynchronous memory cycle .45Z, and at least one 1 bit is in these bit positions because more than 16 bits are needed to represent a number that is greater than 128K. By using bit positions 0 to 6, the asynchronous memory cycle differs from the external memory cycle, in which these bit positions are not used; only bits 7 through 23 are used in the out-of-memory cycle. These special conditions for bit positions 0 through 6 are used to set a pair of look-ahead bits which are shown in FIG. 9G, with the associated one being expandable from 64K, a translator must be provided as shown in FIG (OSZ) allow the in F i g. 9G_ is shown

Der Übersetzer ermöglicht auch eine zusätzliche Erweiterung des Hauptspeichers über die Kapazitätsgrenze von 128K, welche für den Innenspeicher und Außenspeicher gilt, hinaus durch Hinzufügung einer Asynchronspeichereinheit Die Asynchronspeichereinheit benutzt die übersetzten, 24 Bit langen Adressen in anderer Art als der Außenspeicher, wie dies in F i g. 9C für den Asynchronspeicherzyklus (ASZ) gezeigt ist Beim Asynchronspeicherzyklus ASZwerden die Bif-Positionen 0 bis 6 benutzt, und in diesen Bit-Positionen steht mindestens ein 1-Bit, weil man mehr als 16 Bit braucht, um eine Zahl darzustellen, die größer als 128K -, ist. Durch die Benutzung der Bit-Positionen 0 bis 6 unterscheidet sich der Asynchronspeicherzyklus vom Außenspeicherzyklus, bei welchem diese Bit-Positionen nicht benutzt werden; beim Außenspeicherzyklus werden nur die Bit 7 bis 23 benutzt. Diese besonderenThe translator also enables an additional expansion of the main memory beyond the capacity limit of 128K, which applies to the internal memory and external memory, by adding an asynchronous memory unit G. 9C for the asynchronous storage cycle (ASZ) is shown in the asynchronous storage cycle ASZ , the Bif positions 0 to 6 are used, and in these bit positions there is at least one 1-bit, because you need more than 16 bits to represent a number that is larger than 128K -, is. By using bit positions 0 to 6, the asynchronous memory cycle differs from the external memory cycle, in which these bit positions are not used; Only bits 7 to 23 are used in the external storage cycle. This particular one

ίο Bedingungen für die Bit-Positionen 0 bis 6 werden dazu benutzt, um ein Paar von Vorgriffbits zu setzen, welche in Fig.9G gezeigt sind, wobei die zugehörigen Schaltungen und Vorgänge in weiteren Einzelheiten im Zusammenhang mit den Fig.9A und 9B beschriebenίο Conditions for the bit positions 0 to 6 are added is used to set a pair of look ahead bits shown in Figure 9G, with the associated Circuits and processes are described in more detail in connection with FIGS. 9A and 9B

i) werden.i) be.

Der Übersetzer hat eine Verbindung zur Hauptspeicherbusschnittstelle, über welche er logische Adressen einschließlich der Aktivadreßschlüssel vom Prozessor für die Übersetzung erhält. Der Übersetzer enthältThe translator has a connection to the main memory bus interface, over which he logical addresses including the active address key from the processor for the translation. The translator contains

2(i auch Schnittstellen für den Außenspeicher und den Asynchronspeicher.2 (i also interfaces for the external storage tank and the Asynchronous storage.

C. Adreßbereichs-VerteilungC. Address Range Distribution

Fig. 2 A zeigt die Beziehungen zwischen den 2") verschiedenen Speicherzugriffsarten, welche durch verschiedene Arten von Prozessorbefehlen und Kanalbefehlen hervorgerufen werden, und den entsprechenden Datenadreßbereiehen, die in dem Ausführungsbeispiel benutzt werden. In Fig. 2A ist nur eine κι Untermenge der Zugriffsarten benutzt, die in Fig. IB gezeigt wurden. Wie in F i g. 2A dargestellt, wird ein Befehlsabruf im Befehlsadreßbereich 60 unter Benutzung des /SS ausgeführt. Außerdem sind zwei verschiedene Operanden-Zugriffsarten in Fig. 2A gejj zeigt, weiche in den Datenadreßbereiehen 61 und 62 ausgeführt werden, wobei die Inhalte der Schlüsselregisterabschnitte OPISund OP2Sbenutzt werden.2A shows the relationships between the 2 ") different types of memory access which are caused by different types of processor commands and channel commands, and the corresponding data address areas used in the exemplary embodiment. In FIG. 2A, only a κι subset of the types of access is used As shown in Fig. 2A, an instruction fetch is carried out in the instruction address area 60 using the / SS and 62 are executed using the contents of the key register sections OPIS and OP2S.

Cl Prozessoradreßbereichs-VerteilungCl processor address range distribution

4(i F i g. 2A veranschaulicht die Speicherzugriffe, welche auf Grund verschiedener Prozessorbefehlsarten vorgenommen werden. Ein Speicher-Speicherbefehl ruft Daten im OPIS-Datenbereich 61 oder im OP2S-Datenbereich 62 ab und bewirkt eine Speicherung der4 (i FIG. 2A illustrates the memory accesses which are carried out on the basis of different types of processor commands. A memory memory command calls up data in the OP IS data area 61 or in the OP2S data area 62 and stores the

<r> Resultate in den OP2S-Datenadreßbereich 62. Ein Befehl für direkte Speicheroperationen holt seine Daten vom ISS-Adreßbereich 60 und speichert seine Resultate in den OP 2S- Datenadreßbereich 62 oder in ein Allgemeinregister (AR) Ein Register-Speicher-Befehl verschiebt Daten von einem allgemeinen Register 63 zum OP2S-Datenadreßbereich 62; ein Speicher-Register-Befehl holt Daten vom OP 2S-Datenadreßbereich 62 und speichert sie in einem Allgemeinregister 63. Eän Verzweigungsbefehl holt einen Verzweigungszielbefehl auch vom ISS- Adreßbereich 60.<r> Results in the OP2S data address area 62. An instruction for direct memory operations fetches its data from the ISS address area 60 and stores its results in the OP 2S data address area 62 or in a general register (AR). A register-store instruction moves data from general register 63 to OP2S data address area 62; a store register instruction fetches data from the OP 2S data address area 62 and stores it in a general register 63. A branch instruction fetches a branch target instruction from the ISS address area 60 as well.

C2 E/A-Unterkanaladreßbereichs-Verteilung C2 I / O subchannel address range distribution

Zwei verschiedene Arten von E/A-Unterkanalbefehlen sind in Fig.2A gezeigt Die eine Befehlsart wird Direkt-Programmsteuerungs-E/A-Befehl genanntTwo different types of I / O subchannel commands are shown in Figure 2A Called a direct program control I / O instruction

(DPS E/A) und bewirkt eine E/A-Operation, die synchron mit dem Hauptprogramm abläuft, d. h, das Hauptprogramm läuft nicht weiter, bis die E/A-Operation beendet ist wobei sowohl der E/A-Befehl als auch die Daten aus dem OP2S-Adreßbereich 62 entnommen werden. (DPS I / O) and causes an I / O operation that runs synchronously with the main program, i. That is, the main program does not continue until the I / O operation is complete, and both the I / O command and the data are taken from the OP2S address area 62.

Die andere E/A-Befehlsart bewirkt die normale Art von asynchronen E/A-Operationen, welche allgemeinThe other I / O command type has the normal effect of asynchronous I / O operations, which in general

als Cycle-Steal-E/A-Operationen (CS) bezeichnet werden. Für diese zweite Befehlsr.rt muß das E/A-Programm selbst (d. h. die Kanalbefehle) im »Schlüssel = 0-Kanalprogrammadreßh sreich« 64 (siehe F i g. 2A) gespeichert werden, während die Datenzugriffe, welche ■> für das Kanalprogramm ausgeführt werden, durch Schlüssel gesteuert werden, welche in den betreitenden Kanalbefehlen spezifiziert sind, so daß durch jeden Kanalbefehl (z. B. GSB) jeweils ein anderer der Adreßbereiche 65 bis 66 ausgewählt werden kann. Das heißt also, daß jedes E/A-Gerät sein eigenes Unterkanalprogramm hat, in welchem die Befehle die Möglichkeit haben, jeweils einen anderen Schlüsselwert in den Adreßschlüsselregisterabschnitt jedes Unterkanals einzugeben, so daß es für jeden Unterkanal möglich ist, bei ι ί jedem Kanalbefehl zu einem anderen Adreßbereich zuzugreifen. Damit hat also jeder Kanal die Möglichkeit, den Datenadreßbereich, zu dem er zugreift, bei Bedarf beliebig zu verschieben.known as cycle steal I / O (CS) operations. For this second command, the I / O program itself (ie the channel commands) must be stored in the "key = 0-Kanalprogrammadreßh sreich" 64 (see FIG. 2A), while the data accesses, which ■> for the channel program are carried out, are controlled by keys which are specified in the relevant channel commands, so that each channel command (z. B. GSB) can select a different one of the address areas 65 to 66. This means that each I / O device has its own sub-channel program in which the commands have the option of entering a different key value in the address key register section of each sub-channel, so that it is possible for each sub-channel to assign each channel command with ι ί to access another address range. This means that each channel has the option of moving the data address area to which it is accessing as required.

F i g. 2B zeigt etwas genauer die Art und Weise, in der die E/A-Operationen ihre Adreßschlüssel bestimmen können, um verschiedene Datenadreßbereiche im Hauptspeicher auszuwählen.F i g. Figure 2B shows in somewhat greater detail the manner in which the I / O operations determine their address keys to select different data address areas in main memory.

Wie in Fig. 2B gezeigt, enthält das Hauptprogramm einen E/A-Betriebsbefehl, der einen E/A-Vorgang 2ϊ auslöst, und deshalb befindet sich der E/A-Betriebsbefehl im /SS-Adreßbereich. Der OP-Codeteil des Befehls gibt an, daß es sich um einen E/A-Betriebsbefehl handelt, und das /?2-Feld bezeichnet ein Register, dessen Inhalt mit dem Adreßfeld kombiniert werden «1 muß, um eine Adresse zu erzeugen, die direkt oder indirekt einen »Indirekten Gerätesteuerblock« (IGSB) im OP2S-Adreßbereich bezeichnet. Falls mit indirekter Adressierung gearbeitet wird, steht die indirekte Adresse selbst im OP2S-Adreßbereich. Die IGSB- r> Adresse ist entweder eine direkte oder eine indirekte Adresse, abhängig vom Wert des /-Bit im E/A-Betriebsbefehl. Das heißt also, daß der E/A-Betriebsbefehl im /SS-Adreßbereich steht und der IGSB im OP2S-Adreßbereich steht. ■»»As shown in Fig. 2B, the main program contains an I / O operation command which initiates an I / O operation 2ϊ, and therefore the I / O operation command is in the / SS address area. The OP code portion of the instruction indicates that it is an I / O operation instruction, and the /? 2 field designates a register, the contents of which must be combined with the address field «1 in order to generate an address which directly or indirectly denotes an »indirect device control block« (IGSB) in the OP2S address area. If indirect addressing is used, the indirect address itself is in the OP2S address area. The IGSB- r> address is either a direct or an indirect address, depending on the value of the / bit in the I / O operating command. This means that the I / O operation command is in the / SS address area and the IGSB is in the OP2S address area. ■ »»

Es gibt zwei Arten von indirekten Gerätesteuerblökken IGSB: There are two types of indirect device control blocks IGSB:

(1) Einen CS-Typ oder(1) A CS type or

(2) einen DPS-Typ. -r>(2) a type of DPS. -r>

Das Kanalbefehlsfeld CMD im IGSB gibt an, ob eine CS-Operation oder eine DPS-Operation eingeleitet wird. Wenn der IGSB ein DPS-Typ ist, enthält sein zweites Wort direkte Daten, die entweder an das ίο adressierte Gerät übertragen oder von diesem empfangen werden, je nachdem, ob das Kanalbefehlsfeld CMD anzeigt, ob es eine E/A-Lese- oder -Schreiboperation ist.The channel command field CMD in the IGSB indicates whether a CS operation or a DPS operation is being initiated. If the IGSB is a DPS type, its second word contains direct data that is either transmitted to or received by the device addressed ίο, depending on whether the channel command field CMD indicates whether there is an I / O read or Write operation is.

Wenn das CMD-FeId anzeigt, daß der IGSB vom v> CS-Typ ist, enthält das zweite Wort im IGSB die Adresse des Unterkanalprogramms für das Gerät, welches durch das CA-FeId im IGSB adressiert ist. Der erste Kanalbefehl (d. h. Kanalsteuerwort), welcher Gerätesteuerblock 0 (GSB-O) genannt wird, befindet w> sich in dem Adreßteil des IGSB. Ein Feld im CSS-O. welches Verkettungsadresse genannt wird, gibt den Ort des nächsten Unterkanalsteuerwortes an, welches GSB-\ genannt wird und welches ebenso eine Verkettungsadresse enthält, die den nächsten GSB ·" lokalisiert usw., bis der letzte CSßaufgefunden ist.If the CMD field indicates that the IGSB is of the v> CS type, the second word in the IGSB contains the address of the sub-channel program for the device which is addressed by the CA field in the IGSB. The first channel command (ie channel control word), which is called device control block 0 (GSB-O) , is located in the address part of the IGSB. A field in the CSS-O. which is called the concatenation address indicates the location of the next subchannel control word which is called GSB- \ and which also contains a concatenation address which locates the next GSB · "and so on until the last CSß is found.

In diesem Ausführungsbeispiel befindet sich also das gesamte Kanalprogramm im »Schlüssel = 0-Adreßbereich«. In this embodiment there is therefore that entire channel program in the »key = 0 address area«.

Jeder Gerätesteuerblock GSB hält jedoch in seiner ersten Wonstelle EA ein Schlüsselfeld, welches der Adreßschlüssel für Daten ist, auf die der betreffende GSB zugreift GSB-O enthält z. B. ein Schliisselfeld, welches als Schlüssel für GSB-O bezeichnet wird und welches den Adreßbereich für einen zusammenhängenden Block logischer Adressen angibt, welcher an der Datenadresse beginnt, die in dem Feld von GSB-O enthalten ist das sich an der Stelle £4+14 befindet. Der Schlüssel für GSB-O kann jeden beliebigen Schlüsselwert haben. In ähnlicher Weise enthält das nächste Steuerwort GSB-X einen Schlüssel für GSB-X, der jeden beliebigen Schlüsselwert haben kann, zur Festlegung des Adreßbereiches für die Daten, welche innerhalb GSB-X adressiert werden. Der Schlüssel wert in GSB-X kann also verschieden sein von dem Schlüsselwert in GSB-O usw.However, each device control block GSB holds a key field in its first EA , which is the address key for data accessed by the GSB concerned. GSB-O contains z. B. a key field, which is referred to as the key for GSB-O and which specifies the address range for a contiguous block of logical addresses, which begins at the data address contained in the field of GSB-O that is at the position £ 4 + 14 is located. The key for GSB-O can have any key value. Similarly, the next control word GSB-X contains a key for GSB-X, which can have any key value, to define the address area for the data which are addressed within GSB-X. The key value in GSB-X can therefore be different from the key value in GSB-O etc.

Hieraus wird ersichtlich, daß sich aus der Erfindung eine sehr große Flexibilität in der Adreßbereichsauswahl während des Retriebes von E/A-Geräten im System ergibt. Bei Benutzung von Speicherschutzschlüsseln ohne Obersetzung können in den Gerätesteuerblöcken GSB verschiedene Schlüsselwerte benutzt werden, um einen speziellen selektiven Speicherschutz für die E/A-Datenzugriffe zu bekommen.It can be seen from this that the invention results in a very high degree of flexibility in the selection of the address range during the operation of I / O devices in the system. When using memory protection keys without translation, different key values can be used in the device control blocks GSB in order to obtain special, selective memory protection for the I / O data accesses.

Wenn überdies im System im Übersetzungsbetrieb gearbeitet wird, werden für jeden Zugriff alle E/A-Datenadressen durch den Übersetzer übersetzt (siehe F i g. 1 D) in der gleichen Weise, wie die Prozessoradressen übersetzt werden.If, moreover, the system is working in translation mode, all I / O data addresses are used for each access translated by the translator (see Fig. 1 D) in the same way as the processor addresses to be translated.

Fig. 3A zeigt Schaltungseinzelheiten für die Steuerung der GSß-Schlüsseloperationen. Jeder E/A-Unterkanal enthält eine kleine prozessorähnliche Steuereinheit zur Steuerung der Operation eines angeschlossenen E/A-Gerätes, das von beliebiger Art sein kann. Diese prozessorähnliche Steuereinheit steuert die Verarbeitung der GSß-Schlüssel durch den betreffenden E/A-Unterkanal. Der GSß-Schlüssel wird in ein GSß-Schlüsselregister 301 in der Unterkanalsteuereinheit vom E/A-Datenbus des Kanals eingegeben, wenn jeweils ein Gerätesteuerblock GSB im Schlüssel = 0-Adreßbereich entnommen wird.Figure 3A shows circuit details for controlling the GSβ key operations. Each I / O subchannel contains a small processor-like control unit for controlling the operation of an attached I / O device, which can be of any type. This processor-like control unit controls the processing of the GSß keys through the relevant I / O subchannel. The GSß key is entered in a GSß key register 301 in the sub-channel control unit from the I / O data bus of the channel when a device control block GSB in the key = 0 address area is taken.

Eine Mehrzahl von Unterkanälen ist in der üblichen Weise mit einem einzelnen Kanal verbunden. Jeder Unterkanal kann sich mit seinem Kanal durch speziell dafür vorgesehene Protokollsignale verständigen. Ein Unterkanal, der Bedienung durch den Kanal anfordert, wird durch einen Aufruf-Vorgang ausgewählt. Nach der Auswahl durch den Aufruf-Vorgang überträgt der Kanaldatenbus Steuersignale und Daten zwischen dem Unterkanal und dem Hauptspeicher. Durch ein Signal, welches von der Aufrufauswahlsteuerung 310 an die Unterkanal-/?OS-Steuerung 311 gelangt, wird bewirkt, daß ein Wort aus dem Festspeicher ROS 312 in ein ROS-Datenregister 313 eingegeben wird, um die notwendigen Unterkanaloperationen zu steuern. Eine der Unterkanaloperationen ist ein GSß-Abruf des nächsten Adreßfeldes im laufenden GSB vom Adreßbereich mit Schlüssel =0. Das GSß-Abruffeld in einem /?OS-Wort wird von einem ROS-Decodierer 314 entschlüsselt, welcher dann ein GSß-Abrufsteuersignal abgibt, das die UND-Glieder 315 (0), 315 (1) und 315 (2) aktiviert, welche eine Eingabe in das GSB-Schlüssclregister 301 bewirken, das ein Teil des Registerstapels ist, der den ganzen Gerätesteuerblock GSB empfängt. Nachdem der GSß-Abruf ausgeführt ist. wird der GSB im Unterkanal gespeichert, das GSß-Abruf-SignalA plurality of subchannels are connected to a single channel in the usual manner. Each subchannel can communicate with its channel using protocol signals specially provided for this purpose. A subchannel requesting service by the channel is selected by a calling process. After the selection by the calling process, the channel data bus transfers control signals and data between the subchannel and the main memory. A signal which is passed from the call selection controller 310 to the subchannel / OS controller 311 causes a word from the read only memory ROS 312 to be entered into a ROS data register 313 in order to control the necessary subchannel operations. One of the subchannel operations is a GSß retrieval of the next address field in the current GSB from the address area with key = 0. The GSβ request field in a /? OS word is decrypted by a ROS decoder 314 , which then outputs a GSβ request control signal which activates AND gates 315 (0), 315 (1) and 315 (2), which cause an entry in the GSB key register 301 , which is part of the register stack which receives the entire device control block GSB. After the GSß poll is executed. if the GSB is stored in the subchannel, the GSß polling signal

beendet und ein »Kein GSß-Abruf«-Steuersignal aktiviert welches die UND-Glieder 316 (O), 316 (1) und 316(2) freigibt, um den GSß-Schlüssel aus dem GSß-Schlüsselregister auszugeben, so daß dieser als CS-Schlüssel für die GSß-Datenzugriffsoperationen zur Verfugung steht. Der CS-Sclilüssel wird über den Bedingungscodebus zum Kanal in Fig.3B übertragen. Der Kanal überträgt dann den CS-Schlüssel zum CS-Schlüsselbus, der mit der Speicherprioritätsauswahlschaltung in F i g. 3C verbunden ist.terminated and a "no GSß-Abruf" control signal is activated which enables the AND gates 316 (O), 316 (1) and 316 (2) to output the GSß key from the GSß key register so that it can be used as CS Key is available for GSß data access operations. The CS key is transmitted to the channel in Figure 3B via the condition code bus. The channel then transmits the CS key to the CS key bus associated with the memory priority selection circuit in FIG. 3C is connected.

CSSpeicherprioritäts-AuswahlsehaltungCSS storage priority selection policy

In Fig. 3C ist gezeigt, daß der CS-Schlüssel vom Kanalbus einer Kanalauswahlschaltung 331 zugeführt wird, die mit den Kanalbussen von allen Kanälen verbunden ist, die an den Prozessor angeschlossen sind, und welche einem CS-Schlüssel von einem der Kanäle Priorität gibt.In Fig. 3C, the CS key is shown from the channel bus to a channel selection circuit 331 which is connected to the channel buses of all channels connected to the processor and which gives priority to a CS key from one of the channels.

Mit jeder Unterkanalsteuereinheit ist auch eine Mehrzahl von Steuerleitungen verbunden, darunter ein :u Steuerbus und ein E/A-Adreßbus. Der E/A-Adreßbus überträgt die Datenadresse, welche vom GSB hergeleitet wurde. Zum E/A-Steuerbus gehört eine CS-Anforderungsleitung, welche anzeigt, ob sich eine Adresse auf dem E/A-Adreßbus befindet (F i g. 3B).A plurality of control lines are also connected to each subchannel control unit, including a : u control bus and an I / O address bus. The I / O address bus transmits the data address which was derived from the GSB. The I / O control bus includes a CS request line which indicates whether an address is on the I / O address bus (Fig. 3B).

Die Speicherprioritätsauswahlschaltung 56 ist mit CS-Zyklus-Anforderungsleitungen eines jeden der Kanäle 1 ... P verbunden, welche an einen Prozessor angeschlossen sind. Durch die Schaltung 332 wird jeweils ein bestimmter CS-Schlüssel ausgewählt und an die Kanalauswahlschaltung 331 abgegeben, welche den CS-Schlüssel des ausgewählten Unterkanais an die A4S-Auswahlschaltungen 333 überträgt, welche auch die Prozessoradreßschlüssel von den Prozessor-/\S/?- Bussen erhalten. Gesteuert von der Speicherprioritäts-Zyklusschaltung332 wählen die ^/tS-Auswahlschaltungen 333 jeweils einen der empfangenen Adreßschlüssel als den aktiven Adreßschlüssel AAS des Systems aus. Fig. 3D zeigt Einzelheiten der AAS-Auswahlschaltung 333. The memory priority selection circuit 56 is connected to CS cycle request lines of each of the channels 1 ... P which are connected to a processor. A specific CS key is selected by the circuit 332 and sent to the channel selection circuit 331, which transmits the CS key of the selected sub-channel to the A4S selection circuit 333, which also transmits the processor address key from the processor / \ S /? Buses obtain. Under the control of the memory priority cycle circuit 332, the ^ / tS selection circuits 333 each select one of the received address keys as the active address key AAS of the system. 3D shows details of the AAS selection circuit 333.

D. ProzessorD. Processor

Fig.4 zeigt Einzelheiten der für die Beschreibung wesentlichen Teile des Systeniprozessors, der sich gegebenenfalls gleichzeitig mit den CS-Schlüsscln um einen Speicherzugriff bemüht. Die Prozessor--4S/i-Busse (Sammelleitungen) sind mit den Ausgängen des Adreßschlüsselregisters ASR verbunden. Die Speicherprioritätszyklusschaltung 332 (Fig. 3C), welche von bekannter Bauart sein kann, bestimmt die Reihenfolge, in welcher den miteinander konkurrierenden Anforderungen ein Zugriff gewährt wird, d. h. also die Reihenfolge, in welcher die entsprechenden Adreßschlüssel als aktiver Adreßschlüssel AAS an den Ausgängen der 4/4S-Auswahlschaltungen (Fig. 3D) erscheinen.FIG. 4 shows details of the parts of the system processor which are essential for the description and which, if necessary, tries to access the memory at the same time as the CS keys. The processor 4S / i buses (bus lines) are connected to the outputs of the address key register ASR . The memory priority cycle circuit 332 (FIG. 3C), which can be of a known type, determines the order in which the competing requests are granted access, that is to say the order in which the corresponding address keys are used as active address keys AAS at the outputs of FIG / 4S select circuits (Fig. 3D) appear.

Fig. 4 zeigt diejenigen Steuereinrichtungen im Prozessor, die mit dem Adreßsehlüssc-lregister ASR zusammenarbeiten. Das ASR wird geladen vom Prozessordatenbus (Datensammelleitung) mittels der Eingabesteuerung (EG). und die verschiedenen Adreßschlüssel werden aus dem Adreßschlüsselregister auf den Prozessordatenbus ausgegeben mit Hilfe der Ausgabesteuerung (AC). Die EG- und ,4G-Steucrsigna-Ie werden vom Prozessor-ROS-Dekodiercr abgegeben. Der Inhalt des Adreßschlüsselregisters ASR wird ständig abgegeben an die Prozessor-ASR-Busse, nämlich den /SS-Bus, den OP2S-Bus und den OBA-Bus. welche mit Eingängen der ^SS-Auswahlschaltung 333 (F i g. 3C) verbunden sind, von welcher Einzelheiten in Fig.3D gezeigt sind. Die /4AS-Auswahlschaltungen nehmen die Auswahl zwischen diesen drei Prozessorschlüsseln und etwa gleichzeitig vorliegenden CS-Schlüsseln vor und bestimmen damit welcher von diesen Schlüsseln der aktive Adreßschlüssel AAS wird. F i g. 7 zeigt im Detail die /4S7?-Steuerschaltung anhand der Eingabe- und Ausgabeschaltungen für eine einzelne Bitposition des ASR. Alle anderen Bitpositionen des ASR haben entsprechende Steuerschaltungen.4 shows those control devices in the processor which cooperate with the address key ASR . The ASR is loaded from the processor data bus (data bus) by means of the input control (EG). and the various address keys are output from the address key register onto the processor data bus with the aid of the output control (AC). The EG and 4G control signals are issued by the processor ROS decoder. The content of the address key register ASR is continuously transferred to the processor ASR buses, namely the / SS bus, the OP2S bus and the OBA bus. which are connected to inputs of the SS selection circuit 333 (Fig. 3C), details of which are shown in Fig. 3D. The / 4AS selection circuits make the selection between these three processor keys and CS keys which are present approximately at the same time and thus determine which of these keys becomes the active address key AAS. F i g. 7 shows in detail the / 4S7? Control circuit based on the input and output circuits for a single bit position of the ASR. All other bit positions of the ASR have corresponding control circuits.

Aus F i g. 4 ist ersichtlich, daß der Prozessor-ROS-Dekodierer 405 (Festspeicher-Dekodierer) Ausgangsleitungen hat, deren jede durch ein bestimmtes ROS-Wort, wenn dieses ins KOS-Datenregister 406 eingegeben ist, aktiviert wird, um Eingabe und Ausgabe bei den 4SÄ-Registerabschnitten ISS, OPiS und OP2S zu steuern bzw. um andere Prozessoroperationen zu veranlassen.From Fig. 4 it can be seen that the processor ROS decoder 405 (read-only memory decoder) has output lines, each of which is activated by a particular ROS word when this is entered in the KOS data register 406 , in order to enable input and output at the 4SÄ- To control register sections ISS, OPiS and OP2S or to initiate other processor operations.

D.l Register für letzten aktiven
Adreßschlüssel AAS
Dl register for last active
Address key AAS

Der in Fig.4 gezeigte Prozessor enthält auch ein Register für den letzten aktiven Adreßschlüssel, mit dessen Eingangsseite eine /4/4S-TorschaItung 407 verbunden ist, welche einerseits an den v4/4S-Bus von F i g. 3D angeschlossen ist und andererseits an einen Inverter, der mit einer Prozessorfehlerkippschaltung 401 verbunden ist. Das Ausgangssignal der AAS-Torschaltung 407 wird in das Register 408 für den letzten aktiven Adreßschlüssel AAS eingegeben, wenn ein Prozessorspeicherzyklussignal (von Fig. 17) vorliegt. Das Register 408 speichert jeden auf dem AAS-Bus vorliegenden aktiven Adreßschlüssel vom Prozessor-Adreßschlüsselregister ASR. sofern die Fehlerkippschaltung 401 keinen Fehler auf einer Fehlersperrleitung anzeigt.The processor shown in FIG. 4 also contains a register for the last active address key, to the input side of which a / 4 / 4S gate circuit 407 is connected which, on the one hand, is connected to the v4 / 4S bus of FIG. 3D is connected and on the other hand to an inverter which is connected to a processor error flip-flop 401 . The output of the AAS gate circuit 407 is entered into the last active address key AAS register 408 when a processor memory cycle signal (of Fig. 17) is present. Register 408 stores each active address key present on the AAS bus from the processor address key register ASR. provided that the fault toggle circuit 401 does not indicate a fault on a fault blocking line.

Wenn aber ein Maschinenfehler MCK) oder ein Programmfehler (PCK) im Prozessor auftritt, wird die Fehlerkippschalmng 401 gesetzt. Als Folge davon wird die /4/tS-Torsehaltung 407 gesperrt, weil das Fehlersperrsigna! abfällt, um dadurch den letzten aktiven Adreßschlüssel des Prozessors zurückzuhatten (LKSA). welcher zu der Zeit vorlag, als die Fehlerkippschaltung 401 gesetzt wurde. Das Maschinenfehlersignal (MCK) und das Programmfehlersignal (PCK) werden in einen Zwangsadreßdecodierer 402 eingegeben (außer während eines Segmentregister-Zyklus), um in die ROS-Steuerschaltung 403 zwangsweise eine Festspeicheradresse einzugeben, welche den Aufruf eines Diagnoseprogramms bewirkt, welches die Fehlerbedingung beseitigt entweder durch wiederholte Ausführung der fehlerhaften Funktion, bis sie korrekt ausgeführt ist, oder durch Ausführung einer Abschlußoperation (logout), wenn festgestellt wird, daß der Fehler ein Dauerfchler ist. Das 44S-Register 408 bewahrt inzwischen den LKSA auf, um die zuletzt gültig gewesene Adreßbereichsfestlegung aufrechtzuerhalten, während im Prozessor Fehlerbehebungs-Operationen ablaufen, so daß nach Behebung der Fehlerbedingung das System unter Beibehaltung der zuletzt benutzten Adreßbereichsfestlegung die Arbeit wieder aufnehmen kann.If, however, a machine error (MCK) or a program error (PCK) occurs in the processor, the error flip alarm 401 is set. As a result, the / 4 / tS gatekeeping 407 is locked because the error lock signal a! falls to thereby have back the last active address key of the processor (LKSA). which was at the time the error toggle 401 was set. The machine error signal (MCK) and the program error signal (PCK) are input to a forced address decoder 402 (except during a segment register cycle) to force a read-only memory address into the ROS control circuit 403 , which causes a diagnostic program to be called, which either removes the error condition by repeating the faulty function until it is performed correctly, or by performing a logout operation if the fault is determined to be a persistent problem. The 44S register 408 now holds the LKSA to maintain the last valid address range setting while the processor is performing error recovery operations so that once the error condition has been corrected, the system can resume work while retaining the last used address range setting.

Eine der jeweils letzten diagnostischen Operationen, die vorgenommen werden, bevor der Zustand eines Prozessors geändert werden kann, ist die Speicherung des Gesamtzustandes des Prozessors in einem Niveau-Statusblock (NBS) im Hauptspeicher, wozu der InhaltOne of the last diagnostic operations that are carried out before the status of a processor can be changed is the storage of the overall status of the processor in a level status block (NBS) in main memory, including the content

des Adreßschlüsselregisters ASR gehört Durch ein Signal AGAASR (Ausgabe aus dem Register für den letzten aktiven Adreßschlüssel) wird der Inhalt des Registers 408 (LKSA) an den Prozessordatenbus ausgegeben; ein gleichzeitig auftretendes Signal EG OP1 S bewirkt die Eingabe des LKSA in den OfIK-Registerabschnitt des ASR für die Diginose- oder Fehlerbehebungsoperationen (siehe Abschnitt H3). Wenn die Fehlerbehebungsoperationen beendet sind, wird der letzte normale ASÄ-Wert vom NSB im Speicher wieder geladen, um den normalen Betrieb wieder aufzunehmen.belonging to the address key register ASR . A signal AGAASR (output from the register for the last active address key) outputs the content of register 408 (LKSA) to the processor data bus; a simultaneously occurring signal EG OP 1 S causes the LKSA to be entered in the OfI K register section of the ASR for the diagnostic or error correction operations (see section H3). When the debug operations are complete, the last normal ASÄ value is reloaded from the NSB in memory to resume normal operation.

D.2 Befehle zum Laden/Abspeichern des ASR D.2 Commands for loading / saving the ASR

Fig.8B und 8C zeigen die Befehle zur Steuerung folgender beiden Operationen:Fig. 8B and 8C show the commands for controlling the following two operations:

(1) Laden des Adreßschlüssels in das ASR entweder von einer Wortstelle im Hauptspeicher oder von einem bezeichneten Allgemein-Register AR; (1) Loading the address key into the ASR either from a word location in main memory or from a designated general register AR;

(2) die Abspeicherung von Adreßschlüsseln vom ASR entweder in eine Wortstelle im Hauptspeicher oder in ein bezeichnetes Allgemeinregister A R. (2) the storage of address keys by the ASR either in a word position in the main memory or in a designated general register A R.

F i g. BB zeigt die Vorgänge bei Ausführung des Befehls »AS7?/Speicher Laden/Abspeichern«. Mit diesem einzelnen Befehl kann entweder das Laden des ASR aus dem Hauptspeicher oder das Abspeichern des Inhalts des ASR in den Hauptspeicher gesteuert werden.F i g. BB shows the processes when executing the command »AS7? / Load / Save memory«. This single command can be used to control either the loading of the ASR from the main memory or the saving of the contents of the ASR in the main memory.

F i g. 8B zeigt die Einteilung des 16 Bit langen Befehls »ASÄ/Speicher Laden/Abspeichern«. Er ist gekennzeichnet durch den 5-Bit-OP-Code und das 3-Bit-Modifizierfeld in den Bit-Positionen 13 bis 15. Das /C-FeId in den Bit-Positionen 5 bis 7 adressiert den Teil des ASR (oder das ganze ASR)1 der eingegeben oder ausgegeben werden soll. Die K-Werte O, 1, 2 oder 3 bezeichnen die Registerabschnitte ISS, OP2S, OPiSbzw. das gesamte ASR zur Benutzung durch diesen Befehl. Eine logische Hauptspeicheradresse wird erzeugt mit Hilfe des /?ß-Feldes in den Bit-Positionen 8 und 9, welches ein Basisregister bezeichnet, und die Zugriffsmodusbits 10 und 11 (AM), welche angeben, ob ein Wort ein angehängtes Feld an eine Instruktion ist, die ein Adreßfeld enthält, wobei der Inhalt des AM-Feldes und des RB- Registers kombiniert werden, um die effektive Adresse derjenigen Wortstelle im Hauptspeicher zu erzeugen, welche durch die Ausführung dieses Befehls entweder geladen oder abgespeichert wird. Das Bit X in der Bit-Stelle 12 gibt an, ob es sich um einen Ladebefehl oder einen Abspeicherbefehl handelt. Wenn Λ"=0 ist, dann wird der Inhalt der adressierten Wortstelle in demjenigen ASR-TeW abgespeichert, der durch das AC-FeId bezeichnet ist. Wenn das X-Bh= 1 ist, dann wird der angegebne AKR-TeW in der adressierten Wortstelle abgespeichert.F i g. 8B shows the division of the 16-bit long command »ASÄ / Load / Save memory«. It is characterized by the 5-bit OP code and the 3-bit modifier field in bit positions 13 to 15. The / C field in bit positions 5 to 7 addresses the part of the ASR (or the whole ASR) 1 to be entered or output. The K values O, 1, 2 or 3 designate the register sections ISS, OP2S, OPiS or the entire ASR for use by this command. A logical main memory address is generated with the aid of the /? Ss field in bit positions 8 and 9, which designates a base register, and access mode bits 10 and 11 (AM), which indicate whether a word is an appended field to an instruction which contains an address field, the contents of the AM field and the RB register being combined in order to generate the effective address of that word position in the main memory which is either loaded or stored by the execution of this instruction. Bit X in bit position 12 indicates whether it is a load command or a save command. If Λ "= 0, then the content of the addressed word position is stored in that ASR-TeW which is identified by the AC field. If X-Bh = 1, then the specified AKR-TeW is in the addressed word position saved.

In ähnlicher Weise stellt Fig.8C die bei der Ausführung des Befehls »AS/?/Register Laden/Abspeichern« ausgeführten Operationen dar; der einzige Unterschied gegen Fig.8B ist, daß statt einer Hauptspeicherwortstelle bei der Ausführung dieses Befehls ein Allgemein-Register AR benutzt wird. Demgemäß bezeichnet in Fig.8C das /?-Feld in den Bit-Positionen 8 bis 10 ein bestimmtes Allgemein-Register AR, welches zum Laden oder Abspeichern eines oder mehrerer Schlüssel in oder von dem bezeichneten Teil (bzw. den bezeichneten Teilen) des ASR benutzt wird.In a similar way, FIG. 8C shows the operations carried out when executing the command "AS /? / Register Load / Save"; the only difference from FIG. 8B is that a general register AR is used instead of a main memory word location when this instruction is executed. Accordingly, in FIG. 8C, the /? Field in bit positions 8 to 10 designates a specific general register AR which is used for loading or storing one or more keys in or from the designated part (or designated parts) of the ASR is used.

Die entsprechenden Operationen werden im Prozessor ausgeführt aufgrund von Signalen auf den mit EG bzw. AG bezeichneten Ausgangsleitungen des Prozessor- ÄOS-Decodierers 405 (Fig.4), welche mit den auf dem Datenpfad des Prozessors auftretenden Signalen die im Zusammenhang mit Fig.8B beschriebenen Operationen veranlassen.The corresponding operations are carried out in the processor on the basis of signals on the output lines labeled EG or AG of the processor AOS decoder 405 (FIG. 4), which with the signals occurring on the data path of the processor are those described in connection with FIG Initiate operations.

E. ÜbersetzerE. Translator

ίο Fig. 9A und 9B enthalten Einzelheiten des in F i g. IC gezeigten Übersetzers 59, welcher die mit Fig. IA beschriebenen Übersetzungsvorgänge für Adreßverschiebungen vornimmt Diese Adreßverschiebungs-Übersetzungsschaltungen können den physischen Adreßbereich von 64K (216) Bytes auf 16 Millionen (224) Bytes vergrößern, was also einer Erweiterung des Innenspeichers von 64 K Bytes entspricht9A and 9B contain details of the in FIG. IC shown translator 59, wherein the translation operations described with FIG. IA for Adreßverschiebungen making the Adreßverschiebungs translation circuitry may the physical address range of 64K (2 16) bytes to 16 million (2 24) bytes larger, which thus an extension of the internal memory of 64 K Bytes

Durch den Übersetzer wird der Adreßbereich des Hauptspeichers insofern vergrößert als dieser den aktiven Adreßschlüssel AAS und die 16 Bit lange, im Programm erscheinende Adresse vom Prozessor oder von einem Unterkanal gemeinsam als logische Eingangsadresse aufnimmt und diese Eingangsadresse in eine 24 Bk lange, physische Adresse umwandelt, dieThe address range of the main memory is enlarged by the translator as it takes the active address key AAS and the 16-bit long address appearing in the program from the processor or from a subchannel as a logical input address and converts this input address into a 24 Bk long physical address. the

2ϊ Zugriff zum Innenspeicher, Außenspeicher oder Asynchron-Speicher hat.2ϊ Access to internal storage, external storage or Has asynchronous storage.

Dieser Übersetzungsvorgang ermöglicht die dynamische Zuteilung physischer Speicherkapazität zu logischen Adreßbereichen und die gemeinsame BenutzungThis translation process enables the dynamic allocation of physical storage capacity to become logical Address ranges and sharing

ίο physischer Speicherkapazität von mehreren logischen Adreßbereichen. 8 Sätze (Stapel) von je 32 Segmentregistern (SR) sind für die 8 verschiedenen möglichen Werte der Adreßschlüssel vorgesehen, was insgesamt 256 Segmentregister ergibt. Jeder geladene Stf-Stapelίο physical storage capacity of several logical address areas. 8 sets (stacks) of 32 segment registers (SR) each are provided for the 8 different possible values of the address key, which results in a total of 256 segment registers. Each loaded stf stack

ii kann eine vollständige Abbildung eines Speicherbereiches enthalten, der bis zu 64K Bytes enthält, die in Blöcken von je 2K Byte Speicherkapazität verteilt sein können. Mit einem Stapel kann auch ein Adreßbereich adressiert werden, der weniger als 64K Bytes hat, indemii can be a complete mapping of a memory area containing up to 64K bytes, which are distributed in blocks of 2K bytes each can. A stack can also be used to address an address range that has fewer than 64K bytes by

-to man lediglich die Validitäts-Bit-Position in einem oder mehreren der Segmentregister auf eins setzt, so daß nur diejenigen Segmentregister, bei denen die Validitäts-Bit = 0 sind, die Blöcke mit je 2K Bytes Kapazität bezeichnen, welche zu einem adressierbaren Bereich-to just put the validity bit position in an or sets several of the segment registers to one, so that only those segment registers for which the validity bit = 0, which denote blocks with a capacity of 2K bytes each, which become an addressable area

<n gehören, der durch einen zugeordneten Adreßschlüssel identifiziert ist.<n belong to that by an assigned address key is identified.

Für jeden Adreßschlüssel ist ein separater Segmentregisterstapel vorgesehen, um ein schnelles Umschalten der logischen Adreßbereiche zu ermöglichen, ohne dieA separate segment register stack is provided for each address key to enable rapid switching of the logical address areas without the

"><> Notwendigkeit der Wegspeicherung und Wieder-Einspeicherung der Adreßbereichspeicherabbildungen des Systems."> <> Necessity of path storage and re-storage the system's address space mappings.

Der Adreßverschiebungsübersetzer, der in den F i g. 9A und 9B gezeigt ist, ermöglicht eine ErweiterungThe address shift translator shown in Figs. 9A and 9B allows expansion

rir) des Hauptspeichers durch einen Außenspeicher von bis zu 64K Bytes in Inkrementen von 16K Bytes auf je einer Karte, welche als die fünfte bis achte Karte für den Außenspeicher bezeichnet sind. Der Innenspeicher besteht aus der ersten bis vierten Karte, welche auch je r i r ) of the main memory by an external memory of up to 64K bytes in increments of 16K bytes on one card each, which are designated as the fifth to eighth cards for the external memory. The internal memory consists of the first to fourth cards, whichever one

w) eine Kapazität von 16K Bytes haben. Erweiterungen der Speicherkapazität über die 128K Bytes des Innenspeichers und Außenspeichers hinaus bedürfen einer zusätzlichen Asynchronspeichereinheit (Fi g. IC), durch welche der physische Speicher von 128K Bytes bis zuw) have a capacity of 16K bytes. Extensions to the Storage capacity beyond the 128K bytes of the internal memory and external memory require one additional asynchronous storage unit (Fi g. IC) which the physical memory of 128K bytes up to

<" einem Maximum von 16 Millionen Bytes vergrößert verden kann.<"enlarged to a maximum of 16 million bytes can verden.

Der größte durch die Maschine statisch adressierbare Adreßbereich, welcher allen gleichzeitig ablaufendenThe largest address area that can be statically addressed by the machine, which is all simultaneously running

Programmen zur Verfügung steht, wenn alle Segmentregister mit verschiedenen physischen Blockadressen geladen sind, beträgt 219 Bytes. Diese Grenze ist bestimmt durch die 19 Bit lange Eingangsadresse, welche in F i g. 1A gezeigt ist und die entsieht, wenn ein 3 Bit langer aktiver Adreßschlüssel an die 16 Bit lange, im Programm erscheinende Adresse angehängt wird, um so eine 19 Bit lange logische Maschineneingangsadresse für den Übersetzer zu erzeugen. Für ein einzelnes Programm besteht die Adressierungsmöglichkeit bis zu drei verschiedenen Adreßbereichen, weiche durch die drei Abschnitte des ASR definiert sind, nämlich ISS, OPiS und OP2S. was also eine Adressierbarkeit eines Adreßbereiches von max. 64K. bis zu max. 192 K Bytes ergibt.Programs available when all segment registers are loaded with different physical block addresses is 2 19 bytes. This limit is determined by the 19-bit long input address, which is shown in FIG. 1A and which occurs when a 3-bit long active address key is appended to the 16-bit long address appearing in the program in order to generate a 19-bit long logical machine input address for the translator. For a single program there is the option of addressing up to three different address areas, which are defined by the three sections of the ASR , namely ISS, OPiS and OP2S. which means an addressability of an address range of max. 64K. results in up to max. 192 K bytes.

Das heißt, für einen physischen Hauptspeicher mit einer Kapazität zwischen 512K Bytes und 16 Millionen Bytes ergibt sich eine Adressierungsmöglichkeit von nur bis zu 512K. Bytes bei einem bestimmten geladenen Inhalt der Segmentregister; dies wird ah die größte statische Maschinenadressierbarkeit bezeichnet. Wenn man nun eine Adressierung über die 512K Bytes des statischen Maximums hinaus vornehmen will, so muß man die Segmentregister durch Programme umladen, um eine Adressierbarkeit anderer Bereiche im Hauptspeicher zu erhalten.That is, for a physical main memory with a capacity between 512K bytes and 16 million Bytes results in an addressing option of only up to 512K. Bytes at a particular loaded Content of the segment register; this is called the greatest static machine addressability. if addressing via the 512K bytes of the If you want to make a static maximum, you have to reload the segment registers by programs, in order to obtain addressability of other areas in the main memory.

Die statische Adressierbarkeit kann leicht vergrößert werden durch die Hinzufügung weiterer Bits zu dem Adreßschlüssel im ASR und durch die Vergrößerung der zugehörigen Schaltungen, um dadurch eine entsprechend größere Anzahl von Segmentregisterstapeln zu unterstützen.The static addressability can easily be increased by adding more bits to the address key in the ASR and by increasing the size of the associated circuitry in order to support a correspondingly larger number of segment register stacks.

Wenn in das System ein Übersetzer eingebaut wird, wie er in Fig. IA gezeigt ist, so wird seine Benutzung durch ein Bit Nr. 14 im Prozessorstatuswort (PSW) gesteuert, und zwar durch Ausgangsleitungen des Prozessor-flOS-Decoders in F i g. 4 bei Vorliegen des in Fig. 13A gezeigten Freigabe/Sperrbefehls. Bit 14 im Freigabe/Sperroefehl gibt an, ob im System ein Übersetzer vorgesehen ist oder nicht, und Bit 7 gibt an, ob er freigegeben oder gesperrt sein soll. Die in F i g. 10 gezeigte Schaltung bestimmt, ob der Übersetzer freigegeben wird oder nicht. Wenn der Übersetzer nicht freigegeben wird und wenn das 5P-Bit in dem in Fig. 13A gezeigten Befehl auf 1 gesetzt ist, wird die in Fig. 11 gezeigte Schaltung zum Speicherschutz bei NichtÜbersetzung verwendet. Falls Adressierbarkeit nur in einem kleinen Adreßbereich benötigt ist und falls sehr schnelle Verarbeitung gewünscht wird, kann der Übersetzer gesperrt werden.If a translator is built into the system as shown in FIG. 1A, its use is controlled by bit number 14 in the processor status word (PSW) through output lines of the processor FLOS decoder in FIG. 4 when the enable / disable command shown in FIG. 13A is present. Bit 14 in the enable / disable command indicates whether a translator is provided in the system or not, and bit 7 indicates whether it should be enabled or disabled. The in F i g. The circuit shown in FIG. 10 determines whether or not the translator is enabled. When the translator is not enabled and when the 5P bit in the instruction shown in Fig. 13A is set to 1, the non-translation memory protection circuit shown in Fig. 11 is used. If addressability is only required in a small address area and if very fast processing is required, the translator can be blocked.

Fi g. 9A und 9B zeigen im einzelnen die Schaltungen, Busleitungen und Schnittstwllenleitungen für den Übersetzer 59 des Systems von Fig. IC gemäß folgender Aufstellung:Fi g. 9A and 9B show in detail the circuits, Bus lines and interface lines for the translator 59 of the system of Fig. IC according to the following list:

E.1 Schnittstelle Prozessor/ÜbersetzerE.1 Processor / translator interface

(1) Speicheradreßbus 901. Er hat 15 Leitungen, welche die logische Programmadresse vom Speicheradreßregister (SAR) des Prozessors zum Übersetzer übertragen. Nach der Adreßübersetzung werden die fünf werthöchsten Bits der Übersetzeradresse an den Prozessor zurückgeschickt, um, falls erforderlich, zur Adressierung des Innenspeichers 51 benutzt zu werden. Die 10 niederwertigen Bits (D-FeId) brauchen nicht übersetzt zu werden.(1) Memory address bus 901. It has 15 lines which carry the logical program address from the processor's memory address register (SAR) to the translator. After the address translation, the five most significant bits of the translator address are sent back to the processor in order to be used for addressing the internal memory 51, if necessary. The 10 low-order bits (D-field) do not need to be translated.

(2) Speicherdatenbus 902 zum Speicher. Er enthält 16 Datenleitungen und zwei Paritätsleitungen. Er übertragt Speicherdaten und Segmentregisterinhalte vom Prozessor zum Übersetzer.(2) Memory data bus 902 to memory. It contains 16 data lines and two parity lines. It transfers memory data and segment register contents from the processor to the translator.

(3) Speicherdatenbus 903 vom Speicher. Er enthält 16 Datenleitungen und zwei Paritätsleitungen. Er überträgt Speicherdaten vom Übersetzer und den Inhalt der Segmentregister (SR)zum Prozessor.(3) Memory data bus 903 from memory. It contains 16 data lines and two parity lines. It transfers memory data from the translator and the content of the segment register (SR) to the processor.

(4) 3us für aktiven Adreßschlüssel (/MS-Bus). Diese drei Leitungen übertragen den aktiven Adreßschlüssel AAS von der Speicherprioritätsauswahlschaltung (Fig.3C) zum Übersetzer, um einen bestimmten Segmentregisterstapel im Übersetzer auszuwählen.(4) 3us for active address key (/ MS-Bus). These three lines transmit the active address key AAS from the memory priority selection circuit (FIG. 3C) to the translator in order to select a particular stack of segment registers in the translator.

(5) Speicherschreiben OPO. Einzelleitung vom Prozessor, die dem Übersetzer signalisiert, daß eine(5) Memory writing OPO. Single line from the processor that signals to the translator that a

η Schreiboperation im Speicher auszuführen ist mit dem linken Byte des Wortes, das gegenwärtig auf dem Speicherdatenbus zum Speicher vorliegt. Diese Leitung wird aktiviert, wenn das niedrigste Bit Nr. 23 der 24 Bit langen physischen Adresse gleich 0 ist.η write operation in memory is to be carried out with the left byte of the word currently on the memory data bus to memory. This line is activated when the lowest bit number 23 of the 24-bit physical address equals 0.

(6) Speicherschreiben OPl. Einzelleitung vom Prozessor, die dam Übersetzer signalisiert, daß eine Schreiboperütion im Speicher auszuführen ist mit dem rechten Byte des Wortes, daß sich auf dem Speicherdatenbus zum Speicher befindet. Diese Leitung wird aktiviert, wenn das niedrigste Bit Nr. 23 der 24 Bit langen physischen Adresse gleich 1 ist.(6) Memory writing OPl. Single line from the processor, which signals to the translator that a write operation is to be carried out in the memory with the right byte of the word that is on the memory data bus to the memory. This line is activated when the lowest bit number 23 of the 24-bit physical address equals 1.

(7) Übersetzerfreigabe. Einzelleitung, welche ein Prozessorsignal an den Übersetzer abgibt, daß den(7) Translator approval. Single line that sends a processor signal to the translator that the

Übersetzer für seine Funktion freigibt. Dieses Signal wird aktiviert durch den Freigabe/Sperrbefehl. Approves the translator for his function. This signal is activated by the enable / disable command.

(8) Speicheranforderung an Übersetzer. Diese Einzel-)■) leitung überträgt ein Prozessorsignal, welches den Übersetzer auffordert, die logische Adresse vom Speicheradreßbus zu übersetzen. Ein Mikrozyklus (220 Nanosekunden) wird automatisch übersprungen, um dem Übersetzer einen Zugriff zum(8) Memory requirements for translators. This single) ■) line transmits a processor signal which asks the translator for the logical address of the To translate memory address bus. A micro cycle (220 nanoseconds) is automatically skipped, to give the translator access to the

mi betreffenden Segmentregister zu ermöglichen, um die physische Adresse zu ermitteln und um zu bestimmen, ob ein Zugriff zum Innenspeicher, Außenspeicher oder zum Asynchronspeicher erforderlich ist.mi relevant segment register to enable to determine the physical address and to determine whether access to the internal storage, External storage or asynchronous storage is required.

■i j (9) Zeitgeberimpulse A, B, C, D. Diese vier Leitungen übertragen Prozessorzeitgeberimpulse von 55 Nanosekunden Dauer, welche den Synchronismus zwischen dem Prozessor und dem Übersetzer herstellen.■ ij (9) timer pulses A, B, C, D. These four lines carry processor timer pulses of 55 nanoseconds in duration, which establish synchronism between the processor and the translator.

ίο (10) Übersetzer/SAR durchgeben. Das Signal auf dieser Leitung gibt an, daß der Übersetzer die fünf höchstwertigen Bits der übersetzten physischen Speicheradresse 55 Nanosekunden nach Beginn dieses Signals auf den Speicheradreßbus gegeben hat. Es veranlaßt den Prozessor, daß er Bits 00-04 der übersetzten Adresse vom Adreßbus an den Innenspeicher weitergeben soll.ίο (10) pass on translator / SAR . The signal on this line indicates that the translator has placed the five most significant bits of the translated physical memory address on the memory address bus 55 nanoseconds after the start of this signal. It causes the processor to pass bits 00-04 of the translated address from the address bus to the internal memory.

(11) Innenspeicherzyklus (ISZ). Diese Leitung überträgt ein vom Übersetzer generiertes Signal, welches den(11) Internal storage cycle (ISZ). This line transmits a signal generated by the translator, which the

to Prozessor auffordert, dem Innenspeicher 51 mit jeder neuen physischen Adresse ein Speicherzeitsignal zur Verfugung zu stellen. Wenn ein Außenspeicher- oder Asynchronspeicherzyklus (OSZ oder ASZ) ausgeführt werden soll, wird dieseto the processor to provide the internal memory 51 with a storage time signal with each new physical address. If an external storage or asynchronous storage cycle (OSZ or ASZ) is to be executed, this will be

b5 Leitung deaktiviert, so daß der innere Speicher nicht ausgewählt wird.b5 line deactivated, so that the inner memory is not selected.

(12) Übersetzerspeicher besetzt. Diese Leitung überträgt einen vom Übersetzer generiertes Signal,(12) Translator memory occupied. This line transmits a signal generated by the translator,

Taktsignale stoppen soll. Diese Leitung wird nur aktiviert bei Zugriffen zur Asynchronspeichereinheit 53. Wenn der Übersetzer die entsprechende Antwort von der Asynchronspeichereinheit 53 bekommen hat, wird diese Leitung deaktiviert, und die Taktsignale werden wieder gestartet, um den Speicherzyk'us zu beenden. Diese Stillegung der Speichertaktsignale durch eine Asynchronspeichereinheit ist der Grund für deren asynchrone Arbeitsweise und der Grund dafür, daß ihr Zugriffszyklus langer ist als der Zugriffszyklus beim Innenspeicher 51 oder Außenspeicher 52.Should stop clock signals. This line is only activated when the asynchronous storage unit is accessed 53. When the translator receives the appropriate response from the asynchronous storage unit 53 this line is deactivated and the clock signals are started again at the End memory cycle. This shutdown of the memory clock signals by an asynchronous memory unit is the reason for their asynchronous operation and the reason that their access cycle is longer than the access cycle for Internal storage 51 or external storage 52.

(13) Übersetzer eingebaut. Diese Leitung überträgt ein vom Übersetzer generiertes Signal, welches dem Prozessor anzeigt, daß ein Übersetzer 59 im System eingebaut ist.(13) Translator built in. This line transmits a signal generated by the translator, which the Processor indicates that a translator 59 is built into the system.

(14) Übersetzer ungültige Speicheradresse. Diese Leitung überträgt ein vom Übersetzer generiertes Signal, das dem Prozessor anzeigt, daß die soeben an den Übersetzer übertragene logische Adresse ungültig ist; es erfolgt dann eine Programmfehleranzeige (PCK). (14) Translator invalid memory address. This line carries a signal generated by the translator which indicates to the processor that the logical address just transmitted to the translator is invalid; a program error display (PCK) then appears.

(15) Übersetzer Speicherschutzanzeige. Diese Leitung überträgt ein vom Übersetzer generiertes Signal, welches dem Prozessor anzeigt, daß ein Versuch gemacht wurde, im Speicher in einen Block zu schreiben, in dessen Segmentregister das Bit 14 auf 1 gesetzt ist, wodurch angezeigt wird, daß für diesen Block nur Leseoperationen erlaubt sind.(15) Translator memory protection indicator. This line transmits a signal generated by the translator, which indicates to the processor that an attempt has been made to enter a block in memory write, in whose segment register bit 14 is set to 1, which indicates that for only read operations are allowed in this block.

(16) Überwachungsprogrammzustand oder Cycle-Steal-Zyklus. Diese Leitung überträgt ein vom Prozessor generiertes Signal an den Übersetzer, welches anzeigt, daß dieser das Nur-Lese-Bit 14 im adressierten Segmentregister ignorieren soll, weil die vorliegende Speicherzugriffsanforderung entweder vom Überwachungsprogramm oder von einem E/A-Unterkanal stammt.(16) Monitoring program status or cycle steal cycle. This line transmits a signal generated by the processor to the translator, which indicates that this should ignore the read-only bit 14 in the addressed segment register, because the present memory access request either from the monitoring program or from comes from an I / O subchannel.

(17) Zyklusende. Diese Leitung überträgt ein vom Prozessor generiertes Signal, welches dem Übersetzer anzeigt, daß jetzt der Speicherzyklus beendet wird.(17) End of cycle. This line transmits a signal generated by the processor, which is sent to the translator indicates that the memory cycle is now ended.

(18) Segrnentregisterzyklus. Diese Leitung überträgt ein vom Prozessor generiertes Signal, welches dem Übersetzer anzeigt, daß die Segmentregister aktiviert werden. Gleichzeitig werden die Leitungen Speicher Schreiben OPO bzw. Speicher Schreiben OPX benutzt, um anzuzeigen, ob der Zyklus ein Lese- oder Schreib-Zyklus als Teil eines Befehls »Segmentregister abspeichern« oder »Segmentregister laden« ist.(18) Segment register cycle. This line transmits a signal generated by the processor which indicates to the translator that the segment registers are being activated. At the same time, the lines Write Memory OPO or Write Memory OPX are used to indicate whether the cycle is a read or write cycle as part of a “save segment register” or “load segment register” command.

E.2 Schnittstelle Übersetzer/AußenspeicherE.2 Translator / external storage interface

Die Schnittstelle vom Übersetzer zum Außenspeicher ist in Fig. 9B gezeigt Zu ihr gehören folgende Leitungen:The interface from the translator to the external memory is shown in FIG. 9B. It includes the following Cables:

(1) Kartenauswahlleitungen. Diese vier Leitungen, welche bezeichnet sind mit Kartenauswahl 8OK, 96K. 112K und 128K, wählen je eine Speicherkarte von 16K Bytes im Außenspeicher aus.(1) Card select lines. These four lines which are labeled with card selection 8OK, 96K. 112K and 128K, choose one memory card each of 16K bytes in the external memory.

(2) Leitungen TCSX und TCSY. Diese sechs Leitungen übertragen X-Koordinaten und V-Koordinaten für die ausgewählte Karte, um einen bestimmten Bereich auf dieser Karte auszuwählen.(2) TCSX and TCSY lines. These six lines carry X coordinates and V coordinates for the selected map in order to select a specific area on that map.

(3) Leitungen »Byte O Schreiben« und »Byte 1 Schreiben«. Diese vier Leitungen übertragen(3) "Write byte O" and "Write byte 1" lines. These four lines transmit

Zeitgebersignale zu den vier Außenspeicherkarten um ein Byte zu schreiben.Timer signals to the four external memory cards to write a byte.

Wenn der Übersetzer die physische Speicheradresse vom entsprechenden Segmentregister erhält, bestimmt er, ob ein Zugriff zum Innenspeicher, zum Außenspeicher oder zum Asynchronspeicher gemacht werden muß; er aktiviert die Schnittstellenleitungen zum Außenspeicher nur, wenn ein Außenspeicherzyklus erforderlich ist. Die Leitungsbrücken, welche in der Außenspeichersteuerung eingebaut werden (F i g. 9B) zeigen an, welche der vier Karten der Außenspeichereinheit installiert sind.When the translator receives the physical memory address from the corresponding segment register, it is determined whether access is made to the internal memory, the external memory or the asynchronous memory got to; it only activates the interface lines to the external storage when an external storage cycle is in progress is required. The cable bridges that are built into the external storage tank control (Fig. 9B) indicate which of the four cards of the external storage unit are installed.

E.3 Schnittstelle Übersetzer/AsynchronspeicherE.3 Translator / asynchronous memory interface

Die Schnittstelle vom Übersetzer zum Asynchronspeicher (F i g. 9A und 9B) umfaßt folgende Leitungen:The interface from the translator to the asynchronous memory (Figs. 9A and 9B) comprises the following lines:

(1) Asynchronspeicher Ausgabedaten/Parität. Diese 16 Datenleitungen und zwei Paritätsleitungen bilden den Speicherdatenbus zur Asynchronspeichereinheit. (1) Asynchronous storage output data / parity. These 16 data lines and two parity lines form the memory data bus to the asynchronous memory unit.

(2) Asynchronspeicher Eingabedaten/Parität. Diese 16 Datenleitungen und zwei Paritätsleitungen bilden den Speicherdatenbus von der Asynchronspeichereinheit zum Prozessor und zum Kanal.(2) Asynchronous storage input data / parity. These form 16 data lines and two parity lines the memory data bus from the asynchronous memory unit to the processor and to the channel.

(3) Asynchronspeicher unteres SAR Aus. Diese 13 Leitungen übertragen die 13 höherwertigen Bits der physischen Adresse, welche die Blockadresse in der Asynchronspeichereinheit bilden. Sie bilden die oberen SÄft-Bits 0—12, welche im Asynchronspeicherzyklus in F i g. 9G gezeigt sind.(3) Asynchronous storage lower SAR off. These 13 lines carry the 13 most significant bits of the physical address, which form the block address in the asynchronous storage unit. They form the upper SÄft bits 0-12, which in the asynchronous memory cycle in FIG. 9G.

(4) Asynchronspeicher oberes SAR Aus. Diese zehn Leitungen übertragen die 10 niederwertigen Bits 13 —22 im Asynchronspeicherzyklus, aber nicht Bil 23 des Asynchronspeicherzyklus (F i g. 9G). Die Bil 13 bis 22 adressieren ein Wort im ausgewählter Block.(4) Asynchronous storage upper SAR off. These ten lines carry the 10 low order bits 13-22 in the asynchronous storage cycle, but not picture 23 of the asynchronous storage cycle (FIG. 9G). Figures 13 to 22 address a word in the selected block.

(5) Byte 0 Schreiben. Diese Leitung überträgt das niedrigste Bit Nr. 23 der physischen Adresse um anzuzeigen, ob das linke Byte des adressierter Wortes während des Asynchronspeicherzyklus für eine Speicheroperation benutzt wird.(5) Byte 0 write. This line transfers the lowest bit # 23 of the physical address indicate whether the left byte of the addressed word during the asynchronous memory cycle for a memory operation is used.

(6) Byte 1 Schreiben. Diese Leitung informiert der Asynchronspeicher, daß das rechte Byte des gerade adressierten Wortes während des Asynchronspeicherzyklus einer Speicheroperation unterliegt.(6) Byte 1 write. This line informs the asynchronous memory that the right byte of the addressed word is subject to a memory operation during the asynchronous memory cycle.

(7) Asynchronspeicherauswahl. Diese Leitung zeigt dem adressierten Speichermodul an, daß eir Speicherzyklus begonnen werden soll. Diese Aiiswahlleitiing wird nur aktiviert während eines Asynchronspeicherzyklus und wenn keine logische Befehlsadresse und keine Speicherschutzanzeige vom Übersetzer festgestellt wurden.(7) Asynchronous memory selection. This line indicates to the addressed memory module that eir Storage cycle is to be started. This election line is only activated during a Asynchronous memory cycle and if there is no logical command address and no memory protection display detected by the translator.

(8) Schnittstellentakt und Schnittstellentakt 90°. Diese zwei Taktsignale haben eine Periode von 44C Nanosekunden mit einer Impulsdauer von 50% prc Periode. Die beiden Taktsignale haben eine Phasenverschiebung von 90° gegeneinander; sie sind nur aktiv, wenn das Asynchron-Speicheraus wahlsignal auch aktiv ist. Diese Taktsignale könner in der Asynchron-Speichereinheit für folgende: benutzt werden: Synchronisierung innerhalb dei Speichereinheit Vermeidung von Problemen beirr Wiedereinschreiben, Einspeicherung von Daten ir Kippschaltungen und zur Erzeugung von Antwort Signalen zu den vorgegebenen Zeitpunkten.(8) Interface cycle and interface cycle 90 °. These two clock signals have a period of 44C Nanoseconds with a pulse duration of 50% prc period. The two clock signals have one Phase shift of 90 ° to each other; they are only active when the asynchronous memory is off dial signal is also active. These clock signals can be stored in the asynchronous storage unit for the following: can be used: synchronization within the storage unit to avoid problems Rewriting, storing of data in flip-flops and for generating responses Signals at the specified times.

(9) Rückantwort. Auf dieser Leitung erscheint ein S;gnal von der Asynchronspeichereinheit, wenn der adressierte Speicherplatz installiert ist.(9) Reply. An S appears on this line ; gnal from the asynchronous storage unit if the addressed storage space is installed.

(10) Schreibzeitgabesignal. Diese Leitung zum ausgewählten Asynchronspeichermodul wird während der zweiten Hälfte des Schreibzyklus aktiviert, nachdem der Übersetzer eine Rückantwort erhalten hatte. Das Schreibzeitgabesignal wird nur aktiviert, wenn die Auswahlleitung auch aktiviert ist.(10) Write timing signal. This line to the selected asynchronous storage module is during activated in the second half of the write cycle after the translator received a reply would have. The write timing signal is only activated if the select line is also activated is.

(11) Normales Asynchronspeicherzyklusende. Auf dieser Leitung wird ein Zeitgabeimpuls abgegeben, wenn die Rückantwortleitung ein Signal vom Synchronspeicher erhält. Es wird von der ausgewählten Asynchronspeichereinheit als Bestätigungssignal benutzt, um die Rückstellung der Kippschaltungen, welche während des Zyklus gesetzt wurden, zu erreichen und um die Wiederauswahl während desselben Zyklus beim Abfallen des Asynchronspeicherauswahlsignals zu verhindern. (11) Normal asynchronous storage cycle end. On this Line is given a timing pulse when the response line receives a signal from Synchronous memory receives. It is used as a confirmation signal by the selected asynchronous storage unit used to reset the trigger circuits set during the cycle and to re-select to prevent during the same cycle when the asynchronous memory selection signal falls.

E.4 SegmenlregisterauswahlE.4 Segment register selection

Einzelheiten der Segmentregistersteuerschaltungen sind in F i g. 9C gezeigt. Ein Segmentregister wird durch ein Konzentrationsverfahren ausgewählt. Zunächst wird in allen Registerstapeln die gewünschte Speicherstelle ausgewählt durch Adressierung aller Register mit den höherwertigen Bitstellen 0-4 der im Programm erscheinenden logischen Adresse, so daß aus jedem Stapel der Inhalt des gewählten Registers ausgegeben wird. Dann wird mit Hilfe der /tAS-Bits eine Auswahl unter den Stapeln getroffen, wobei durch diese Auswahl eines der acht vorgewählten Register endgültig ausgewählt wird. Dies wird so erreicht, daß man zunächst den Wert des A/45-Bits 2 benutzt, um von den vorgewählten Segmentregistern zur Einschränkung zunächst vier auszuwählen, und zwar entweder von den gradzahligen oder den ungradzahligen Stapeln. Die vom AAS-Bn 1 beaufschlagten Leitungen mit dem Signal echt (T) und Komplement (C) werden dann dazu benutzt, um von den zwei Gruppen von Stapelausgangssignalen nur eine auszuwählen, und zwar entweder die Stapel 0,1 und 4,5 oder die Stapel 2,3 und 6.7 (hierbei bedeutet das Komma zwischen den Stapelnummern »oder«). Es werden also die Ausgabesignale eines Paares von Registern benutzt, und zwar entweder von den Stapeln 0.1 und 4.5. wenn -4/4,S-Bh 1 im Zustand 0 ist. oder von den Stapeln 2,3 und 6.7. wenn das AAS-Bh 1 im Zustand 1 ist. Von dem ausgewählten Paar wird schließlich ein einzelnes Register ausgewählt aufgrund des Zustandes des S/?-Hoch-Niedrig-Auswahl-Bit (AAS-Bh 0), welches dem Konzentrator 921 in F i g. 9A zugeführt wird, welcher eine Auswahl aus dem vorausgewählten Paar von Stapeln trifft und schließlich nur von einem einzigen Register aus einem ausgewählten Stapel die Ausgangswerte abgibt.Details of the segment register control circuits are shown in FIG. 9C shown. A segment register is selected by a concentration method. First, the desired memory location is selected in all register stacks by addressing all registers with the higher-order bit positions 0-4 of the logical address appearing in the program, so that the content of the selected register is output from each stack. A selection is then made among the stacks with the aid of the / tAS bits, one of the eight preselected registers being finally selected by this selection. This is achieved by first using the value of A / 45 bit 2 to first select four of the preselected segment registers for restriction, either from the even or the odd stacks. The lines applied by the AAS-Bn 1 with the signal real (T) and complement (C) are then used to select only one of the two groups of stack output signals, namely either the stacks 0, 1 and 4, 5 or the Stack 2, 3 and 6.7 (here the comma between the stack numbers means "or"). The output signals from a pair of registers are used, either from stacks 0.1 and 4.5. when -4 / 4, S-Bh 1 is in state 0. or from stacks 2,3 and 6.7. when the AAS-Bh 1 is in state 1. From the selected pair, a single register is finally selected based on the state of the S /? - high-low selection bit (AAS-Bh 0) which the concentrator 921 in FIG. 9A is supplied, which makes a selection from the preselected pair of stacks and finally only outputs the output values from a single register from a selected stack.

E-5 Steuerung zum Laden/Abspeichern
der Segmentregister
E-5 control for loading / saving
the segment register

F i g. 8A zeigt die Operationen der Befehle zum Laden und Abspeichern der Segmentregister (SR). F i g. 17 zeigt die Prozessorspeichersteuerung und F i g. 9A und 9B zeigen die zugehörigen Obersetzersteuerungen, welche zur Ausführung dieser Befehle benötigt werden.F i g. 8A shows the operations of the instructions for loading and storing the segment registers (SR). F i g. 17 shows the processor memory control and FIG. Figures 9A and 9B show the associated translator controls needed to execute these commands.

In F i g. 8A ist gezeigt, wie der Befehl »S/? Laden« die Eingabe einer physischen Blockadresse in ein gewähltes Segmentregister von einem adressierten Wortspeicherplatz im Hauptspeicher steuert. Der Befehl »SR Abspeichern« bewirkt das Kopieren des Inhalts eines ausgewählten Segmentregisters in eine adressierte Wortspeicherstelle im Hauptspeicher.In Fig. Figure 8A shows how the "S /? Load «controls the entry of a physical block address into a selected segment register from an addressed word storage location in main memory. The command »SR Save« causes the contents of a selected segment register to be copied into an addressed word memory location in the main memory.

Das Format der 16 Bit langen Befehle zum Laden und Abspeichern der Segmentregister wird bestimmt durch einen 5 Bit langen OP-Codc und ein 3 Bit langes Modifizierfeld, welche in den Bit-Positionen 0 bis 4 bzw. 13 bis 15 stehen.The format of the 16-bit long commands for loading and saving the segment registers is determined by a 5-bit long OP-Codc and a 3-bit long modifying field, which are in the bit positions 0 to 4 and 13 to 15.

Das Bit X in der Bit-Position 12 des S/?-Befeh!s gibt an, ob es sich um eine Lade- oder um eine Abspeicher-Operation handelt. Wenn Xauf 0 gesetzt ist, wird der Inhalt der adressierten Wortspeicherstelle im Hauptspeicher in das ausgewählte Segmentregister geladen. Wenn das A"-Bit auf 1 gesetzt ist, dann wird der Inhalt des gewählten Segmentregister in der adressierten Wortspeicherstelle abgespeichert.Bit X in bit position 12 of the S /? Command indicates whether it is a load or a save operation. When X is set to 0, the contents of the addressed word storage location in main memory are loaded into the selected segment register. If the A "bit is set to 1, then the content of the selected segment register is stored in the addressed word memory location.

Das /?-Fe!d in den Bit-Positionen 5 bis 7 adressiert ein Allgemein-Register (AR), welches die Adresse des ausgewählten Segmentregisters enthält, welches geladen oder dessen Inhalt abgespeichert werden soll. Im Allgemein-Register ist das Schlüsselfeld in den Bit-Positionen 5 bis 7 eine Stapelnummer, die den gewählten Stapel identifiziert, und die ΛΛ-Bit-Positionen O bis 4 enthalten eine Segmentregisternummer, welche das gewählte Segmentregister identifiziert, welches geladen oder aus dem abgespeichert werden soll.The /? - Fe! D in bit positions 5 to 7 addresses a general register (AR) which contains the address of the selected segment register which is to be loaded or whose content is to be saved. In the general register, the key field in bit positions 5 to 7 is a batch number which identifies the selected batch, and ΛΛ-bit positions 0 to 4 contain a segment register number which identifies the selected segment register, which is loaded or saved from the shall be.

Die gewünschte Wortspeicherstelle im Hauptspeicher wird adressiert mit Hilfe einer logischen Adresse, welche generiert wird unter Benutzung des /?ß-Feldes in den Bit-Positionen 8 und 9, die ein Basisregister angeben: das /4M-FeId in den Bit-Positionen 10 und 11 (Zugriffsart) gibt an. ob ein Zugriffsart-Wort der Instruktion folgt. Der Inhalt des Zugriffsart-Wortes (AM-Wori) und des /?ß-Registers werden kombiniert, um die effektive (d. h. im Programm erscheinende) Adresse der Hauptspeicherwortstelle zu generieren, welche durch Ausführung der Instruktionen geladen oder aus der abgespeichert werden soll. Falls das System im Übersetzerbetrieb arbeitet, wird die generierte effektive Adresse in den Übersetzer eingegeben (Fig. 9A und 9B) zusammen mit dem aktiven Adreßschlüssel AAS. um eine logische Maschineneingabeadresse zu bilden. Der Übersetzer gibt eine 24 Bit lange physische Adresse ab. mit der ein Zugriff zu der adressierten Wortspeicherstelle möglich ist. Somit ist es möglich, daß bei dem Segmentregister, welches geladen werden soll, sein vorheriger Inhalt in einer Übersetzungsoperation benutzt wird, bevor dieser Inhalt durch den Segmentregisterladebefehl zu einer anderen physischen Blockadresse verändert wird.The desired word storage location in the main memory is addressed with the aid of a logical address which is generated using the /? Ss field in bit positions 8 and 9, which specify a base register: the / 4M field in bit positions 10 and 11 (type of access) indicates. whether an access type word follows the instruction. The content of the access type word (AM word) and the /? Ss register are combined in order to generate the effective (ie appearing in the program) address of the main memory word position which is to be loaded by executing the instructions or to be saved from. If the system is operating in the translator mode, the generated effective address is entered into the translator (FIGS. 9A and 9B) together with the active address key AAS. to form a logical machine input address. The translator provides a 24-bit physical address. with which access to the addressed word memory location is possible. It is thus possible that the previous content of the segment register which is to be loaded is used in a translation operation before this content is changed to a different physical block address by the segment register load command.

Wenn der Prozessor nicht im Übersetzerbetrieb arbeitet, ist die generierte effektive Adresse die physische Adresse im Hauptspeicher.When the processor is not operating in translator mode, the effective address generated is the physical address in main memory.

Bits 13 und 14 der adressierten Wortspeicherstelle im Hauptspeicher enthalten die Werte für das Validitäts-Bit V und das Nur-Lese-Bit R. welche in das Segmentregister zu laden sind um dessen Wirkung zu steuern, wenn es für eine angeforderte Übersetzung benutzt wird.Bits 13 and 14 of the addressed word memory location in the main memory contain the values for the validity bit V and the read-only bit R. which are to be loaded into the segment register in order to control its effect when it is used for a requested translation.

F i g. 17 zeigt die Steuereinrichtungen des Prozessors, die bei Ausführung der Befehle zum Laden bzw. Abspeichern der Segmentregister benutzt werden. Diese Steuerschaltungen im Prozessor generieren ein Segmentregisterzyklussignai. welches vom Übersetzer (Fig.9A und 9B) benutzt wird, um das Laden oder Abspeichern eines Segmentregisters zu bewirken.F i g. 17 shows the control devices of the processor which are used when the instructions for loading and unloading are executed. Saving the segment register can be used. These control circuits in the processor generate a Segment register cycle signal. which is used by the translator (Fig. 9A and 9B) to load or To effect storage of a segment register.

Durch einen Befehl zum Laden oder Abspeichern eines Segmentregisters werden im Prozessor Mikrobefehle abgerufen, welche ein Signal »Anforderung zum Laden/Abspeichern eines Segmentregisters« erzeugen und danach ein Signal für eine Prozessoranforderung eines Speicherzyklus. Das erste Signal setzt eine Kippschaltung 481 »SR-Anforderung folgt« (Fig. 17), und das zweite Signal gelangt an ein UND-Glied 482, welches durch das Γ-Ausgangssignal der Kippschaltung 481 freigegeben wird. Bei aktivem Ausgangssignal des UND-Gliedes 482 wird eine Sfl-Phasenkippschaltung (PH) für einen Zyklus gesetzt; deren Ausgangssignal aktiviert das UND-Glied 484, wenn der Übersetzer eingebaut ist. Das Ausgangssignal des UND-Gliedes 484 setzt eine Kippschaltung 486 »S/f-Anforderung« um anzuzeigen, daß ein Zugriff zu einem Segmentregister erforderlich ist. Das Γ-Ausgangssignai der Kippschaltung 486 gibt das UND-Glied 488 frei, um so ein S/?-Zyklussignal zu erzeugen unter der Voraussetzung, daß keine CS-Zyklusanforderung vorliegt, da CS-Zyklen die höchste Priorität haben. Der 5/?-Zyklus hat zweithöchste Priorität, und ein normaler Prozessor-Speicherzyklus hat niedrigste Priorität; dies wird bewirkt durch ein UND-Glied 493, das ein Prozessorspeicherzyklussignal auf Leitung 494 nur dann erzeugt, wenn kein 5>?-Anforderungssignal vom C-Ausgang der Kippschaltung 486 an seinem Eingang vorliegt. Der andere Eingang des UND-Gliedes 493 ist mit dem Γ-Ausgang der Prozessorzyklus-Kippschaltung verbunden. (Der 7-Ausgang einer Kippschaltung gibt das echte oder wahre Ausgangssignal ab, während der C-Ausgang das Komplementärsignal abgibt.)A command to load or save a segment register calls up microinstructions in the processor which generate a signal “Request for loading / saving a segment register” and then a signal for a processor request for a memory cycle. The first signal sets a multivibrator 481 "SR request follows" (FIG. 17), and the second signal arrives at an AND element 482, which is enabled by the Γ output signal of the multivibrator 481. When the output signal of the AND element 482 is active, an Sfl phase toggle circuit (PH) is set for one cycle; the output of which activates the AND gate 484 when the translator is installed. The output of AND gate 484 sets a toggle 486 "S / f request" to indicate that access to a segment register is required. The Γ output signal of the flip-flop 486 enables the AND gate 488 in order to generate an S /? Cycle signal, provided that there is no CS cycle request, since CS cycles have the highest priority. The 5 /? Cycle has the second highest priority and a normal processor memory cycle has the lowest priority; this is effected by an AND gate 493 which generates a processor memory cycle signal on line 494 only when there is no 5>? request signal from the C output of the flip-flop 486 at its input. The other input of the AND gate 493 is connected to the Γ output of the processor cycle flip-flop. (The 7 output of a multivibrator gives the real or true output signal, while the C output gives the complementary signal.)

Wenn während der Ausführung eines Befehls zum Laden oder Abspeichern eines Segmentregisters das UND-Glied 488 durch das T-Ausgangssignal der Kippschaltung 486 freigegeben wird, erhält sein anderer Eingang das Γ-Ausgangssignal von der Prozessorzykluskippschaltung 490, die immer dann aktiviert wird, wenn eine Speicherzyklusanforderung vom Prozessor vorliegt. Die Kippschaltung 490 wird durch ein Ausgangssignal des UND-Gliedes 491 gesetzt; dessen einer Eingang erhält zur Freigabe das Signal »kein CS-Zyklus« (welches dann auftritt, wenn keine E/A-Speicher-Zugriffsanforderung vorliegt). Der andere Eingang des UND-Gliedes 491 erhält zur Freigabe das Γ-Ausgangssignal (wahres Ausgangssignal) der Prozessorspeicheranforderungskippschaltung 492, die immer gesetzt wird, wenn eine Prozessoranforderung für einen Speicherzyklus vorliegt. If the AND gate 488 is enabled by the T output signal of the flip-flop 486 during the execution of an instruction to load or save a segment register, its other input receives the Γ output signal from the processor cycle toggle circuit 490, which is activated whenever a memory cycle request is made from the processor. The flip-flop 490 is set by an output of the AND gate 491; one of its inputs receives the signal »no CS cycle« for release (which occurs when there is no I / O memory access request). The other input of the AND gate 491 receives the release of the Γ output signal (true output signal) of the processor memory request toggle circuit 492, which is always set when there is a processor request for a memory cycle.

Während ein Segmentregisterzyklussignal auf Leitung 923 vorliegt, wird das auszuwählende Segmentregister von der laufenden Adresse im Prozessorspeicheradreßregister SAR adressiert. Daraufhin erfoigi eine Auswahloperation für das Segmentregister in der gleichen Weise, wie es bei der Beschreibung des Übersetzers im Abschnitt »Segmentregisterauswahl« erläutert wurde.While a segment register cycle signal is present on line 923, the segment register to be selected is addressed by the current address in the processor memory address register SAR. A selection operation for the segment register is then carried out in the same way as was explained in the description of the translator in the section »Segment register selection«.

Wie bereits erwähnt, bestimmt der Binärwert des X- Bit im BefehL ob eine Lade- oder Abspeicher-Operation ausgeführt wird; zu diesem Zweck wählt das X-Bit eine Lade- oder Abspeicher-Mikroroutine vom Prozessorfestspeicher ROS. Für eine Segmentregisterladeoperation generiert die Mikroroutine zunächst eine Prozessorspeicheranforderung, während der das durch den SÄ-Befehl adressierte Wort aus dem Hauptspeicher abgerufen und in das Prozessorspeicherdatenregister SDR eingegeben wird Danach gibt die Mikroroutine das Anforderungssignal für das Laden/Abspeichern desAs already mentioned, the binary value of the X bit in the instruction determines whether a load or store operation is being carried out; for this purpose the X bit selects a load or store micro-routine from the processor fixed memory ROS. For a segment register load operation, the microroutine first generates a processor memory request, during which the word addressed by the SÄ instruction is fetched from the main memory and entered into the processor memory data register SDR

Segmentregisters ab, worauf eine weitere Prozessoranforderung für einen Speicherzyklus folgt. Dies veranlaßt die Schaltung in F i g. 17, um in der oben beschriebenen Art und Weise einen S/?-Zyklus zu generieren, welcher das Segmentregister auswählt und bewirkt, daß der Inhalt des Speicherdatenregisters SDR in das ausgewählte Segmentregister übertragen wird.Segment register, followed by a further processor request for a memory cycle. This causes the circuit in FIG. 17, in order to generate an S /? Cycle in the manner described above which selects the segment register and causes the content of the memory data register SDR to be transferred into the selected segment register.

Der Befehl »Segmentregister abspeichern« läuft ähnlich ab, aber mit umgekehrtem Ablauf der Mikroroutine, so daß zuerst die Schaltung in Fig. 17 veranlaßt wird, einen 5/?-Zyklus zu generieren, während das Segmentregister ausgewählt und sein Inhalt in das Speicherdatenregister SDR übertragen wird. Dann bewirkt die Mikroroutine eine normale Prozessorspeicheranforderung, welche veranlaßt, daß der Inhalt des SDR in die adressierte Speicherstelle im Hauptspeicher übertragen wird.The "save segment register" command is similar, but with the reverse sequence of the micro-routine, so that the circuit in FIG. 17 is first caused to generate a 5 /? Cycle while the segment register is selected and its contents are transferred to the memory data register SDR will. The micro-routine then causes a normal processor memory request which causes the contents of the SDR to be transferred to the addressed memory location in main memory.

E.6 Steuerung für Vorgriffs-ÜbersetzereinheitE.6 Control for look ahead translator unit

Wenn bei der Adreßübersetzung der Blockadreßteil der physischen Adresse aus den Bits 0 — 4 der logischen Adresse erzeugt wird, wird zum Zugriff für die Auswahl und das Auslesen eines Segmentregisters SR ein Prozessortaktzyklus benötigt. Ein weiterer Prozessortaktzyklus würde zum Zugriff benötigt (falls die Vorgriffsschaltungen nicht vorgesehen wären), um die ausgelesene Blockadresse zu decodieren, um den Schnittstellenbus zu der benötigten Speichereinheit auszuwählen, d. h. zum Innenspeicher, zum Außenspeicher oder zum Asynchronspeicher, zu dem die physische Blockadresse übertragen werden muß. Wenn eine Vorgriffsschaltung vorgesehen wird, braucht man keine zusätzliche Zeit zur Auswahl des benötigten Schnittstellenbus, und man braucht die ausgelesene Blockadresse nicht zu decodieren, um die benötigte Speichereinheit zu bestimmen. Das heißt, daß durch die Vorgriffsschaltung die Zugriffszeit bei Übersetzung um einen Prozessortaktzyklus verkürzt wird. Während des Übersetzungsvorgangs liegen die D-Bits der Positionen 5 bis 15 der logischen Adresse ständig auf dem Hauptspeicherbus vom Prozessorspeicheradreßregister SAR vor. Für die D-Bits wird also keine zusätzliche Übersetzungszeit benötigt; sie werden gleichzeitig an alle drei Speichereinheiten abgegeben.If the block address part of the physical address is generated from bits 0-4 of the logical address during the address translation, a processor clock cycle is required for access to select and read out a segment register SR . Another processor clock cycle would be required to access (if the look-ahead circuits were not provided) to decode the read block address in order to select the interface bus to the required memory unit, i.e. to the internal memory, to the external memory or to the asynchronous memory to which the physical block address must be transferred . If a look-ahead circuit is provided, there is no need for additional time to select the required interface bus, and there is no need to decode the read block address in order to determine the required memory unit. This means that the look-ahead circuit shortens the access time during translation by one processor clock cycle. During the translation process, the D bits in positions 5 to 15 of the logical address are always available on the main memory bus from the processor memory address register SAR . No additional translation time is therefore required for the D bits; they are delivered to all three storage units at the same time.

Für die Vorgriffsschaltungen werden in jedem Segmentregister (SR) in jedem der acht Stapel (Fig.9A) zwei Bit-Positionen vorgesehen, die als Vorgriffsbits bezeichnet sind. Die Einteilung der Segmentregister zeigt Fig.6. Die beiden Vorgriffbits werden generiert und in das Segmentregister eingesetzt wenn die Blocknummer durch die Prozessorspeichersteuerung in das Segmentregister eingesetzt wird; diese Steuerung, weiche die in F i g. SA gezeigten Operationen ausführt ist in F i g. 17 gezeigt Die Vorgriffsbits zeigen an, ob der Innenspeicher, der Außenspeicher oder der Asynchronspeicher den Block enthält welcher der Blocknummer im SR entspricht Wenn die Vorgriffbits gesetzt sind und die Segmentregister geladen sind, werden die Vorgriffbits bei jedem Speicherzugriff mit Übersetzung benutzt um die Bestimmung und Auswahl der erforderlichen Speichereinheit parallel mit der schaltungsmäßigen Übersetzung der logischen Eingangsadresse durchzuführen. Die Blocknummer, nicht aber die Vorgriffbits, können durch ein Programm gelesen werden, das einen SÄ-Speicherbefehl benutztFor the look-ahead circuits, two bit positions, which are referred to as look-ahead bits, are provided in each segment register (SR) in each of the eight stacks (FIG. 9A). The division of the segment registers is shown in Fig. 6. The two look-ahead bits are generated and inserted into the segment register when the block number is inserted into the segment register by the processor memory controller; this control, soft the in Fig. SA performs operations shown in FIG. Shown 17 Vorgriffsbits indicate whether the internal memory, external memory or the Asynchronspeicher containing the block which the block number in the SR corresponds When the Vorgriffbits are set and the segment registers are loaded, the Vorgriffbits be with each memory access with translation used to set the determination and selection the required memory unit in parallel with the circuit translation of the logical input address. The block number, but not the look-ahead bits, can be read by a program using a SÄ memory instruction

Die Vorgriffbits werden in der in F i g. 9G gezeigten Art codiert Das linke Vorgriffsbit wird auf 1 gesetzt,The look-ahead bits are in the form shown in FIG. 9G shown Type coded The left look-ahead bit is set to 1,

wenn der zugehörige Block im Innenspeicher steht. Wenn das linke Bit auf 0 gesetzt ist, steht der zugehörige Block entweder im Außenspeicher oder im Asynchronspeicher. Der Wert des rechten Vorgriffsbits zeigt an, ob der Außenspeicher oder der Asynchronspeicher den Block hält. Wenn das rechte Bit gleich 0 ist, steht der Block in der Asynchronspeichereinheit.if the associated block is in the internal memory. If the left bit is set to 0, the associated bit is available Block either in external storage or in asynchronous storage. The value of the right look ahead bit indicates whether the external storage or the asynchronous storage holds the block. If the right bit is equal to 0, the is Block in the asynchronous storage unit.

Die Vorgriffsbits werden nur von den Schaltungen benutzt und sind für den Programmierer oder den Systembenutzer nicht sichtbar. Sie dienen lediglich dazu, die Speicherzugriffe zu beschleunigen und sind nicht Teil der Übersetzungsoperation.The look-ahead bits are only used by the circuits and are for the programmer or the System user not visible. They only serve to accelerate memory access and are not Part of the translation operation.

Die Schaltungen zum Setzen der Vorgriffsbits sind in Fig. 9C gezeigt. Dazu gehören die Decodierer 9OM und 902/t, denen beide der höherwertige Teil der zugeordneten Blocknummer zugeführt wird, die in ein Segrneniregistcr bei Ausführung eines Scgrncnircgästerbefehls geladen wird, wie dies im Zusammenhang mit F i g. 8A beschrieben wurde. Das ausgewählte Segmentregister befindet sich in einem der Stapel 0 bis 7 (Fig.9C). Die Blocknummer wird abgegeben vom Befehl »Segmentregister laden«, welcher die durch Programm zugeteilte Blocknummer von dem Speicherplatz im Hauptspeicher abruft, der durch den Befehl adressiert wird, wonach die Blocknummer in das Speicherdatenregister SDR (F i g. 4) eingesetzt wird. Dann gibt der Prozessor die zugeteilte Blocknummer vom SDR auf den Prozessordatenbus (F i g. 3C)1 welcher mit dem Speicherdatenbus zum Speicher (F i g. 9A) verbunden ist, über welchen die Daten übertragen werden, welche in ein adressiertes Segmentregister in einem der Stapel 0 bis 7 zu laden sind. Der Segmentregisterladeweg ist in Fig.9C im einzelnen gezeigt; die Signale auf den S/?-Eingangsleitungen 00—07 werden zur Erzeugung der Vorgriffsbits benutzt. Die Leitungen 00 bis 06 sind mit dem Eingang des 0-Decodierers 902/4 verbunden, und die Leitungen 00 bis 07 sind mit dem Eingang des 0-Decodierers 901A verbunden. Jeder der 0-Decodierer gibt eine 1 als Vorgriffssignal ab, wenn an seinen Eingängen lauter Nullen vorliegen, und gibt ein 0-Signal am Ausgang ab, wenn irgendeiner der Eingänge gleich 1 ist. Wenn der Decodierer 901/4 lauter Nullen in den Bit-Positionen 00 bis 07 feststellt, überträgt er ein 1-Bit in die linke Vorgriffsbitstelle des adresssierten Segmentregisters in den Stapeln; wenn aber irgendeines der Eingangsbits 0 bis 7 eine 1 ist, dann wird das linke Vorgriffsbit auf 0 gesetzt. Der Decodierer 901/4 zeigt an, ob der physische Block, dessen Adresse geladen wird, im Innenspeicher steht oder nicht; hiervon hängt es ab, ob ein /SZ-Signal erzeugt werden muß.The circuitry for setting the look ahead bits is shown in Figure 9C. These include the decoders 9OM and 902 / t, both of which are supplied with the higher-order part of the assigned block number, which is loaded into a segment register when a Scgrncnircgästerbefehls is executed, as described in connection with FIG. 8A has been described. The selected segment register is in one of the stacks 0 to 7 (Fig. 9C). The block number is issued by the "Load segment register" command, which retrieves the program-assigned block number from the memory location in the main memory addressed by the command, after which the block number is inserted in the memory data register SDR (FIG. 4). Then the processor gives the allocated block number from the SDR to the processor data bus (FIG. 3C) 1 which is connected to the memory data bus to the memory (FIG batches 0 to 7 are to be loaded. The segment register load path is shown in detail in FIG. 9C; the signals on the S /? input lines 00-07 are used to generate the look-ahead bits. The conduits 00-06 are connected to the input of the decoder 0 902/4, and the lines 00 to 07 are connected to the input of the decoder 901 0 A. Each of the 0 decoders outputs a 1 as a look-ahead signal if there are all zeros at its inputs, and outputs a 0 signal at the output if any of the inputs is equal to 1. If the decoder 901/4 detects all zeros in the bit positions 00 to 07, it transfers a 1 bit into the left look-ahead bit position of the addressed segment register in the stacks; but if any of the input bits 0 through 7 is a 1, then the left look-ahead bit is set to zero. The decoder 901/4 indicates whether the physical block whose address is being loaded is in internal memory or not; it depends on this whether a / SZ signal must be generated.

Wenn der Decodierer 902y4 lauter Nullen in den SÄ-Eingangsbitpositionen 0 bis 6 feststellt, dann wird das rechte Bit des adressierten Segmentregisters auf 0 gesetzt. Der Grund hierfür ist, daß, wenn das linke Vorgriffsbit anzeigt, daß die Innenspeichereinheit nicht die betroffene Speichereinheit ist und wenn Bit 0 bis 6 alle Null sind, daß dann der Decodierer 902Λ anzeigt, ob ein 1-Bit in Bit-Position 7 der physischen Adresse, die geladen wird, vorliegt oder nicht; dies schließlich zeigt an, ob der betreffende Block im Außenspeicher steht oder im Asynchronspeicher.If decoder 902y4 detects all zeros in SÄ input bit positions 0 through 6, then will the right bit of the addressed segment register is set to 0. The reason for this is that when the left Look ahead bit indicates that the internal storage unit is not the affected storage unit and if bit 0 to 6 are all zero, then the decoder 902Λ indicates whether a 1-bit is or is not present in bit position 7 of the physical address being loaded; this finally shows whether the block in question is in the external memory or in the asynchronous memory.

Bei jedem Segmentregister also, das geladen wird, werden die Vorgriffsbits so gesetzt, daß sie diejenige Speichereinheit angeben, welche den zugeordneten Block enthält Die S/?-Ladeoperation erfolgt während eines SÄ-Zyklus, der auf Leitung 923 im Konzentrator 922 (F i g. 9A) von der Grundsteuerung angezeigt wird, die im einzelnen in F i g. 9D-2 gezeigt ist.So for every segment register that is loaded, the look-ahead bits are set to be the one Specify the storage unit that contains the allocated block. The S /? Load operation occurs during of a SÄ cycle on line 923 in the concentrator 922 (Fig. 9A) is displayed by the basic control, the details in F i g. 9D-2 is shown.

Die Stapeladresse wird in den Konzentrator 922 durch die Leitungen 05 bis 07 des Speicheradreßbus 901 (F i g. 9A) eingegeben. Die Segmentregisteradresse wird von den Leitungen OO bis 04 des Speicheradreßbus 901 über das PH-Register zu den Segmentregisterstapeln 0-7 (Fig.9A) übertragen. Diese Adreßsignale gelangen auf die Leitungen 00 bit 07 des Speicheradreßbus 901 (siehe Fig.3C) vom Speicheradreßregister SAR (Fig.4) über den Prozessoradreßbus. Der Inhalt des SAR stammt aus dem Allgemein-Register, welches durch den Befehl »Segmentregister Laden« (F i g. 8A) ausgewählt wurde, von welchem Allgemein-Register die Bits 0-7 die S/?-Adreß-Bits auf den Leitungen 00 bis 07 des Bus 901 sind. (Das Allgemein-Register AR wird im Niveau-Stapel 431 [Fig.4] durch eine Niveaustapeladrcssc ausgewählt, die vorn ,4S-FeId im Befehl »Segmentregister laden« abgeleitet wurde.)The stack address is input to concentrator 922 through lines 05-07 of memory address bus 901 (Fig. 9A). The segment register address is transferred from lines OO through 04 of memory address bus 901 via the PH register to segment register stacks 0-7 (FIG. 9A). These address signals arrive on lines 00 bit 07 of memory address bus 901 (see FIG. 3C) from memory address register SAR (FIG. 4) via the processor address bus. The content of the SAR comes from the general register, which was selected by the "Load segment register" command (FIG. 8A), from which general register bits 0-7 are the S /? Address bits on the lines 00 to 07 of bus 901 are. (The general register AR is selected in the level stack 431 [Fig. 4] by a level stack address that was derived from the 4S field in the "Load segment register" command.)

Der Konzentrator 922 gibt dann die Stapeladresse des gewählten Segmentregisters auf seinen folgenden Ausgangsleitungen ab: AAS-Bn 2, /4/4S-Bit 1 und »SR Hoch-Niedrig-Auswahl« (Leitung 935). Die Leitung 935 gibt ein Eingangssignal an die Grundsteuerung in Fig.9B. Diese Schaltungen sind im einzelnen in Fig. 9D-2 gezeigt; sie erzeugen die Signale für aie Leitungen 932 und 933, die mit den Segmentregisterstapeln 0 — 7 zur Angabe des niederwertigen Stapeladreßbits verbunden sind und entsprechend der wahren und der komplementären Form des Signals auf Leitung 07 ι des Speicheradreßbus 901. Die Signale auf der Leitung 4/45-Bit 1 entsprechen der wahren und der komplementären Form der Signale auf der Busleitung 06; und das Signal auf der Leitung AAS-Bit 2 entspricht dem Signal auf der Bus-Leitung 05.The concentrator 922 then outputs the stack address of the selected segment register on its following output lines: AAS-Bn 2, / 4 / 4S-bit 1 and "SR high-low selection" (line 935). Line 935 provides an input signal to the basic controller in FIG. 9B. These circuits are shown in detail in Figures 9D-2; they generate the signals for lines 932 and 933, which are connected to the segment register stacks 0 - 7 to indicate the lower-order stack address bit and according to the true and complementary form of the signal on line 07 ι of memory address bus 901. The signals on line 4 / 45-bit 1 correspond to the true and the complementary form of the signals on bus line 06; and the signal on line AAS bit 2 corresponds to the signal on bus line 05.

Bei einem Speicherzugriff im Übersetzungsbetrieb wird ein Stapelregister ausgewählt durch die gleiche Art von Konzentrationsoperation, wie sie im Abschnitt »Segmentregister-Auswahl« beschrieben wurde. Aus den vom Konzentrator angewählten Segmentregistern When memory is accessed in compile mode, a stack register is selected using the same type of concentration operation as described in the section »Segment Register Selection«. From the segment registers selected by the concentrator

• werden die beiden Vorgriffsbits zur gleichen Zeit wie die übrigen 16 Bits ausgelesen. Für die Vorgriffsbits wird ein separater Konzentrator 931 benutzt, weil er schneller arbeitet als der weitere Konzentrator 921, der die Blockadreß-Bits für das gleiche Segmentregister• Both look ahead bits are read out at the same time as the other 16 bits. For the look ahead bits uses a separate concentrator 931 because it works faster than the other concentrator 921, the the block address bits for the same segment register

> auswählt. Am Ausgang des Konzentrators 931 wird jeweils eine von drei Ausgangsleitungen aktiviert, um den gewählten Speicherzyklus anzugeben, nämlich entweder ISZ, OSZ oder ASZ Für den Prozessor werden die /SZ-Signalleitungen 54/4 vom Prozessor> selects. At the output of the concentrator 931, one of three output lines is activated in each case in order to indicate the selected memory cycle, namely either ISZ, OSZ or ASZ . The / SZ signal lines 54/4 are used by the processor for the processor

' durch die Speicherprioritätsauswahlschaltung 56 zur Innenspeichereinheit 51 (Fig. IC) benutzt. Da die Leitungen 54/4 auf jeden Fall existieren, ob nun das oystein einen uu£i aetzer nSi Oucr PtCut, *A"r*4 «ic Innenspeicherzyklus-Steuerleitung vom Konzentrator'used by the memory priority selection circuit 56 to the internal memory unit 51 (Fig. IC). Since the lines 54/4 exist in any case, whether the oystein is a uu £ i aetzer nSi Oucr PtCut, * A "r * 4« ic internal memory cycle control line from the concentrator

5 931 mit dem Prozessor verbunden, um eine /SZ-Adressieroperation zu veranlassen. Die Leitungen für den Außenspeicherzyklus und den Asynchronspeicherzyklus führen zu den F i g. 9E bzw. 9F-1, um die Adreßauswahl in den betreffenden Einheiten zu veranlassen.5,931 connected to the processor for a / SZ addressing operation to cause. The lines for the external storage cycle and the asynchronous storage cycle lead to the F i g. 9E or 9F-1 to select the address in the units concerned.

F. OperandenbereichsabgleichF. Operand range comparison

Eine speziell vorgesehene Einrichtung ist der Operandenbereichsabgleich (OBA). Wenn diese Bedingung im Adreßschlüsselregister ASR gesetzt ist, ergibt ί>5 sich ein spezieller Adressierungszustand, bei dem alle Operandenabrufe zwangsweise im CV2.S-Adreßbere»ch stattfinden, während der Adreßbereich, der durch den O/MS-Adreßschlüssel angegeben ist, obwohl derA specially provided facility is the operand area alignment (OBA). If this condition is set in the address key register ASR , ί> 5 results in a special addressing state in which all operand calls are forced to take place in the CV2.S address area, while the address area specified by the O / MS address key, although the

Schlüssel im OP 1S-Registerabschnitt des Adreßschlüsselregisters ASR nicht geändert wird.Key in the OP 1S register section of the address key register ASR is not changed.

Der OßA-Zustand des Systems wird herbeigeführt durch den in Fig. 13A gezeigten Freigabebefehl, wenn dessen OBA-Bh 13 auf 1 gesetzt ist. Wenn dieser Befehl ausgeführt wird, bewirkt das gesetzte OBA-Bh, daß der OßA-Registerabschnitt im betreffenden ASR entsprechend geladen wird durch Eingabe vom Prozessor-ROS-Decodierer (Fig.4). Es wird keiner der Schlüssel im ASR geändert, wenn der OfiA-Zustand aktiviert wird. Es wird jedoch nicht zu dem Adreßbereich zugegriffen, der im OP IS-Abschnitt definiert ist, solange der Oß/4-Zustand im ASR aktiv ist. Die OßA-Einrichtung wird durch die in Fig.3D gezeigte Schaltung implementiert, in welcher eine Aktivierung der OßA-Leitung vom ASR zwangsweise bedingt, daß der Λ AS-Ausgang den OP 2S-SchlüsseI abgibt, jedesmal wenn bei Ausführung eines Befehls im Prozessor eine Zugriffsanforderung entweder für einen OPl-Operanden oder einen OP2-Operanden vorliegt.The OBA state of the system is brought about by the release command shown in FIG. 13A if its OBA Bh 13 is set to 1. When this command is executed, the set OBA-Bh causes the OßA register section in the relevant ASR to be loaded accordingly by input from the processor ROS decoder ( FIG. 4). None of the keys in the ASR are changed when the OfiA state is activated. However, the address area that is defined in the OP IS section is not accessed as long as the OS / 4 status is active in the ASR . The OßA device is implemented by the circuit shown in Fig.3D, in which an activation of the OßA line from the ASR forcibly requires that the Λ AS output emits the OP 2S key every time an instruction is executed in the processor There is an access request for either an OP1 operand or an OP2 operand.

Wenn der OßA-Zustand beendet wird durch Ausführung eines Sperrbefehls, dessen OßA-Bit 13 auf Null gesetzt ist, wird der Schlüsselwert im OP1 S-Registerabschnitt wieder in Benutzung genommen und bei jeder OP1 -Operandenanforderung ausgegeben.If the OßA state is ended by executing a lock command, the OßA bit 13 of which is set to zero, the key value in the OP 1 S register section is used again and is output with every OP 1 operand request.

G. Adreßbereichsbestimmung durch
Schlüsseleingabe ins ASR
G. Determination of the address range
Key entry into the ASR

Wenn die OB/4-Einrichtung gesperrt ist, haben die drei Adreßschlüssel im Adreßschlüsselregister ASR folgende Funktion:If the OB / 4 facility is locked, the three address keys in the address key register ASR have the following function:

Jeder in das ASR geladene Adreßschlüssel definiert einen Adreßbereich, dem zugegriffen werden kann, leder Adreßbereich ist ein logisch zusammenhängender Speicherbereich, zu dem durch die effektive logische Adresse zugegriffen werden kann, ohne Zuhilfenahme irgendeiner programmierten Managementfunktion für die Verteilung der vorhandenen Mittel. Jeder logische Adreßbereich enthält bis zu 64K Bytes. Alle Befehlsabrufe erfolgen in dem Adreßbereich, der durch den ISS definiert ist. Alle Leseoperationen, die einen Datenoperanden 1 betreffen (wie er im Speicher-Befehl definiert wird), erfolgen im Adreßbereich, der durch den OPlS definiert ist. (Auf Grund der Konstruktion sind keine Schreiboperationen für Operanden 1 vorgesehen.) In ähnlicher Weise erfolgen alle Schreib- und Leseoperationen, die einen Datenoperanden 2 betreffen (wie beim Entwurf der Befehlsstruktur vorgesehen), im Adreßbereich, der durch den OP2Sdefiniert ist.Each address key loaded into the ASR defines an address area that can be accessed, the address area is a logically contiguous memory area that can be accessed by the effective logical address without the aid of any programmed management function for the distribution of the available resources. Each logical address area contains up to 64K bytes. All command calls are made in the address area defined by the ISS. All read operations that relate to a data operand 1 (as defined in the memory command) take place in the address area which is defined by the OPIS. (Due to the design, no write operations are provided for operand 1.) Similarly, all write and read operations involving a data operand 2 (as provided for when designing the instruction structure) take place in the address area defined by the OP2S.

Wenn z.B. ISS=OP\S=OP2S, erfolgen alle Speicherzugriffe zu dem gleichen logischen Adreßbereich von 64K Bytes Kapazität. Wenn ISS nicht gleich OPl ist, wenn aber OP\S=OP2S. dann erfolgen die Instruktionsabrufe im ISS-Adreßbereich, und die Datenzugriffe erfolgen im OP2-Adre3bereich. Wenn ISS*OP\S*OP2S, dann erfolgt der Befehlsabruf im /SS-Adreßbereich, jeder Abruf eines Operanden 1 im OPIS-Adreßbereich und jeder Abruf oder jede Abspeicherung eines Operanden 2 im OP2S-Adreßbereich, wobei also die 3 Adreßbereiche voneinander verschieden sind. Der Datenfluß für eine Klasse von Instruktionen, bei denen drei verschiedene Adreßbereiche benutzt werden, ist in F i g. 2A dargestellt. Die Schlüsselwerte im ASR können nur gesetzt werden, wenn der Prozessor im Überwachungsprogrammbetrieb arbeitet, d. h., wenn die Befehle zum Laden des ASWpriviligiertsind.If, for example, ISS = OP \ S = OP2S, all memory accesses are made to the same logical address area with a capacity of 64K bytes. If ISS is not the same as OP1, but if OP \ S = OP2S. The instruction calls then take place in the ISS address area, and the data access takes place in the OP2 address area. If ISS * OP \ S * OP2S, then the command is called in the / SS address area, every call of an operand 1 in the OP IS address area and every call or every saving of an operand 2 in the OP2S address area, whereby the 3 address areas are different from each other are. The flow of data for a class of instructions using three different address ranges is shown in FIG. 2A shown. The key values in the ASR can only be set if the processor is working in the monitoring program mode, ie if the commands for loading the ASW are privileged.

H. Laden des ASR bei UnterbrechungH. Loading the ASR in the event of an interruption

Wenn im Prozessor eine Unterbrechung vorkommt, werden in das ASR zur Vorbereitung Adreßschlüssel für Adreßbereiche eingegeben, die von den die Unterbrechung behandelnden Programmen benötigt werden könnten. Es gibt im System eine Mehrzahl verschiedener Arten von Unterbrechungen, deren jede ihre spezielle Programmierunterstützung hat, die wiederum das Laden bestimmter Adreßschlüssel erfordert Zu den Prozessorunterbrechungen gehören: Unterbrechungen zum Überwachungsprogrammaufruf, E/A-Geräteunterbrechungen, Maschinenfehler-ZProgrammfehler-Unterbrechungen, Programm-Protokoll-Unterbrechungen, Bedienungsfeld-Umerbrechungen und Unterbrechungen bei thermischer Überlastung. Diese Prozessor-Unterbrechungen werden manchmal Klassen-Unterbrechungen genannt.If an interrupt occurs in the processor, address keys for address areas that might be required by the programs handling the interrupt are entered into the ASR in preparation. There are a number of different types of interrupts in the system, each of which has its own special programming support, which in turn requires the loading of certain address keys. Interruptions, control panel interruptions and interruptions in the event of thermal overload. These processor interrupts are sometimes called class interrupts.

Es wird angenommen, daß alle Unterbrechungs-Routinen im Adreßbereich mit Schlüsse/ = O untergebracht sind. Deshalb muß in den /SS-Abschnitt eine O geladen werden, wenn eine Unterbrechung eintritt. Da die Operandendaten, welche zur Behandlung einer bestimmten Unterbrechung benötigt werden, in einem anderen Adreßbei ;ich untergebracht sein können, kann der zu den speziellen Unterbrechungsdaten gehörende Adreßschlüsse! in den OPIS-Registerabschnitt geladen werden. Ein OP !-Schlüssel wird eingegeben, wenn eine Klassenunterbrechung erfolgt (d. h. Eingabe eines Eingangssignals in die Zwangsadreßschaltung 402 in Fig.4), und zwar zur Vorbereitung der Durchführung einer Speicher-Speicher-Übertragungsoperation vom unterbrechenden Adreßbereich (d.h. OPIS-Bereich) zum OP2S-Adreßbereich mit Schlüsse! = 0. Wenn eine Klassenunterbrechung auftritt, wird z. B. ein Niveaustatusblock NSB in den OP2S-Bereich abgespeichert, welcher den Schlüssel = O hat (d.h. OP2S=0), wobei Daten vom OP IS-Bereich abgerufen werden. Der Inhalt des ASR wird mit einem Befehl zum Abspeichern des ASR auch in den NSBeingegeben.It is assumed that all interrupt routines are accommodated in the address area with the key / = O. Therefore, an O must be loaded into the / SS section when an interrupt occurs. Since the operand data which are required for handling a specific interruption can be accommodated in a different address at; I, the address closure belonging to the special interruption data! loaded into the OP IS register section. An OP ! Key is entered when a class interrupt occurs (ie, inputting an input to the forced address circuit 402 in FIG. 4) in preparation for performing a memory-to-memory transfer operation from the interrupting address area (ie, OP IS area) to the OP 2S address area with a key! = 0. When a class break occurs, e.g. B. a level status block NSB is stored in the OP2S area, which has the key = O (ie OP2S = 0), with data being retrieved from the OP IS area. The content of the ASR is also entered in the NSB with a command to save the ASR .

Andere Zustände, bei denen alle Schlüsselwerte im ASR = O gesetzt werden, sind: Systemrückstellung und einleitendes Programmlader während denen die OP/4-Einrichtung der Übersetzer und die Speicherschutzeinrichtung alle gesperrt sind.Other states in which all key values in ASR = O are set: System reset and initial program loader, during which the OP / 4 device, the translator and the memory protection device are all blocked.

H.l Unterbrechung mit Überwachungsprogramm-Ruf (SVC-Unterbrechung)H.l Interruption with monitoring program call (SVC interruption)

Für die unten besprochenen Operationen bei der SVC-Unterbrechung ist angenommen, daß die Überwachungsprogramme im Adreßbereich mil Schlüssel = 0 untergebracht sind, und daß das Benutzer-Programm in einem anderen Adreßbereich, d.h. mit Schlüssel Φ 0, steht. Es ist weiterhin angenommen, daß ein Austausch von Daten zwischen Benutzer und Überwachungsprogramm erforderlich ist. Die Daten müssen vom Adreßbereich des Benutzers in den Adreßbereich des Überwachungsprogramms geholt werden und müssen später zum Adreßbereich des Benutzers zurückgegeben werden.For the SVC interruption operations discussed below, it is assumed that the monitoring programs are accommodated in the address area with key = 0 and that the user program is in a different address area, ie with key Φ 0. It is also assumed that an exchange of data between the user and the monitoring program is necessary. The data must be fetched from the address area of the user into the address area of the monitoring program and must later be returned to the address area of the user.

Fig. 13B zeigt die Ladeoperationen für das ASR bei einer SVC-Unterbrechung. Es wird angenommen, daß anfänglich im Benutzerzustand jeder der drei Benutzerschlüssel den Wert 2 hat und daß das OS^-FeId = C > gesetzt ist. Wenn im Prozessor der F i g. 4 ein Überwachungsprogramm Rufbefehl (SVC-Befehl) ausgeführt wird, bewirkt die Zwangsadreßschaltung, dafl eine Folge von ROS-Wörtern abgerufen und ausgeführlFigure 13B shows the load operations for the ASR in the event of an SVC interrupt. It is assumed that initially in the user state each of the three user keys has the value 2 and that the OS ^ -FeId = C> is set. If in the processor of FIG. 4 a monitoring program call command (SVC command) is executed, the forced address circuit causes a sequence of ROS words to be called up and executed

wird, wodurch der Prozessor in den Überwachungszustand gebracht wird. Es wird auch ein Niveaustatusblock NSB abgespeichert, der Inhalt von OP2San den Inhalt von OPiS ausgegeben, so daß der Adreßbereich, der die Daten enthält, die bei der Generierung der Unterbrechung beteiligt waren, adressierbar wird. Die Null-Ausgabeleitung (ACQ) vom Prozessor-ROS-Decodierer wird aktiviert und über den Prozessordatenpfad in die OP2S- und /SS-Positionen des ASR Werte eingegeben. κιwhereby the processor is brought into the monitoring state. A level status block NSB is also stored, the content of OP2S is output to the content of OPiS , so that the address area which contains the data that were involved in generating the interruption can be addressed. The zero output line (ACQ) from the processor ROS decoder is activated and values are entered into the OP2S and / SS positions of the ASR via the processor data path. κι

Daten werden vom Benutzerbereich in den Überwachungsprogrammbereich übertragen, und dann wird der Freigabebefehl (Fig. 13A) mit einer 1 in Bitposition 13 ausgeführt, um den OÄ4-Zustand 4, der in Fig. 13B gezeigt ist, herbeizuführen. Dies bewirkt, daß alle Speicherzugriffe im Adreßbereich mit Schlüssel = 0 erfolgen, während das Überwachungsprogramm im Oß-4-Zustand ausgeführt wird, wobei die Zugriffsmöglichkeit /um OP 1-Adreßbereich nicht verloren wird.Data is transferred from the user area to the supervisor area is transmitted, and then the release command (Fig. 13A) with a 1 in bit position 13 is transmitted carried out to the OÄ4 state 4 shown in Fig. 13B is shown to bring about. This has the effect that all memory accesses in the address area with key = 0 take place while the monitoring program is being executed in the Oß-4 state, with the possibility of access / to OP 1 address area is not lost.

Wenn das Überwachungsprogramm Information in den OP15- Bereich übertragen möchte, gibt der Prozessor einen Sperrbefehl ab, der den Inhalt des Ofl^-Abschnitts im ASR rückstellt; dies bewirkt Rückkehr zum OPl-Adreßbereich. Dann wird der Zustand 6 von Fig. 13B herbeigeführt durch Auswech- 2~> sein der Felder OPlS und OP 25. damit dem Überwachungsprogramm eine Adressiermöglichkeit zum Abspeichern im OP IS-Bereich gegeben wird. Das Überwachungsprogramm kann dann die Daten vom Überwachungsprogrammbereich zum Benutzerbereich v\ übertragen. Dann wird das ASR in den Benutzerzustand 7 (F i g. 13B) zurückgebracht durch Laden des ursprünglichen Inhaltes des ASR vom Niveaustatusblock NSB. If the monitoring program wants to transfer information to the OP 15 area, the processor issues a lock command which resets the content of the Ofl ^ section in the ASR ; this causes a return to the OPI address area. Then state 6 of FIG. 13B is brought about by exchanging the fields OPIS and OP 25 so that the monitoring program is given an addressing option for storage in the OPIS area. The monitoring program can then transfer the data from the monitoring program area to the user area v \ . Then the ASR is returned to user state 7 (Fig. 13B) by loading the original contents of the ASR from the level status block NSB.

Fig. 18 zeigt die Operationen, die ausgeführt werden, wenn ein SVC-Befehl ausgegeben wird. Zu diesen r> Operationen gehört die Rettung des alten Inhaltes des ASR und Laden eines neuen Inhaltes in das ASR entsprechend der nachfolgenden Übersicht, wobei die Abschnittsnummern der Übersicht und die eingekreisten Nummern an den Datenpfaden in der Fig. 18 -κι einander entsprechen. Die Ausführung des SVC-Belehls im Prozessor geschieht auf folgende Weise:Fig. 18 shows the operations performed when an SVC command is issued. These operations include saving the old content of the ASR and loading new content into the ASR according to the overview below, the section numbers of the overview and the numbers circled on the data paths in FIG. 18 corresponding to one another. The execution of the SVC-Belehls in the processor takes place in the following way:

Bereich enthält definitionsgemäß eine Adresse (d. h. einen Zeiger) zu einem Niveauspeicherblock (d.h. NSB), welcher sich seinerseits auch im Adreßbereich mit Schlüssel=0 befindet.Area by definition contains an address (ie a pointer) to a level memory block (ie NSB), which in turn is also located in the address area with key = 0.

(8) Der NSB-Zeiger in Stelle 0010 wird in das Speicheradreßregister SAR(F i g. 4) übertragen.(8) The NSB pointer in position 0010 is transferred to the memory address register SAR ( FIG. 4).

(9) An dem durch das SAR adressierten, für den NSB vorgesehenen Speicherplatz werden dann die Inhalte von BAR. TEMPA, TEMPB sowie der Allgemein Register 0-7 gespeichert (NSB). (9) at the addressed by the SAR, then for the NSB provided for storage of the contents of BAR. TEMPA, TEMPB and the general registers 0-7 are saved (NSB).

(10) Die SVC-Nummer (welche die betreffende Art von SVC-Befehl identifiziert) wird aus dem SVC-Befchl im Adreßbereich 1 kopiert in das Register R 1.(10) The SVC number (which identifies the relevant type of SVC command) is copied from the SVC command in address area 1 into register R 1.

(11) Der Inhalt des Speicherplatzes 0012 wird in das BA R übertragen.(11) The content of memory location 0012 is transferred to the BA R.

(12) Es beginnt jetzt die Ausführung der Überwachungsprogrammroutine, welche an der Speicherstelle mit Adresse 0012 beginnt. Das ist die Routine, welche durch SVC-Nummer 2 gerufen wird.(12) The execution of the monitoring program routine now begins, which starts at the memory location with address 0012. This is the routine which is called by SVC number 2.

Beim Beginn der SVC- Routine hat das ASR Folgenden Inhalt:At the beginning of the SVC routine, the ASR has the following content:

0!'\S OPZS0! '\ S OPZS

ISSISS

(1) Am Anfang der Ausführung des SVC-Befehls wird der Inhalt des ASR an das Arbeitsbercichregister (ABR) ausgegeben, und zwar über den Prozessordatenpfad durch Aktivierung des Signals AG ASR und des Signals EC ABR vom flOS-üecodierer. Diese Operation wird angezeigt durch die Übertragung des ASR-Inhaltes in das Register TEMPA in Fig. 18; es wird angenommen, daß OPIS. OP2S und ISS auf den Wert 3 gesetzt worden sind.(1) At the beginning of the execution of the SVC command, the content of the ASR is output to the working area register (ABR) via the processor data path by activating the AG ASR signal and the EC ABR signal from the flOS-üecoder. This operation is indicated by the transfer of the ASR contents to the TEMPA register in Fig. 18; it is believed that OPIS. OP2S and ISS have been set to the value 3.

(2) Ausgabe OP25 und Eingabe OPlS.(2) Output OP25 and input OPlS.

(3) OP 2S= ISS=O setzen.(3) Set OP 2S = ISS = O.

(4) Der Inhalt des Niveaustatusregisters (/VS/?/1 wird im "'' Temporärregister gespeichert (J I MPB'). (4) The content of the level status register (/ VS /? / 1 is stored in the "'' temporary register (JI MPB ').

(5) Im Register NSR' wird das Ru für den Überwachungszustand gesetzt, das llit für die Summcnmaske rückgestellt und das Protokollbii ebenfalls rückgestelh. '■>'> (5) The Ru for the monitoring status is set in the NSR ' register, the item for the summation mask is reset and the protocol is also reset. '■>'>

(6) Der Inhalt des BAR (Befehlsadreßregister) wird (1) dann um zwei Einheiten erhöht, so daß jetzt die nächste Speicherstelle adressiert wird, in welchem sich der Anfang der Daten oder ein Zeiger zu den Daten befindet. >" (2)(6) The content of the BAR (instruction address register) is then (1) increased by two units so that the next memory location is now addressed, in which the beginning of the data or a pointer to the data is located. >"(2)

(7) Wenn der Prozessor den SVC-Zustand entdeckt, (3) wird der Inhalt der Speicherstelle 0010 im (4) Adrcßbcrcich mit Schlüssel = 0 abgerufen. Dieser(7) When the processor detects the SVC state, (3) the content of memory location 0010 in (4) Address book retrieved with key = 0. This

OPlS' 0 0 OPlS ' 0 0

(Bemerkung: OPlS' ist der
\orherige Inhalt con OPlS).
(Note: OPIS ' is the
\ previous content with OPlS).

Bei anderen Klassen-Unterbrechungen werden ähnliche Arten von Operationen durchgeführt, um einen bestimmten Ladezustand des ASR zu erreichen, wie es im folgenden dargestellt ist:In the case of other class interruptions, similar types of operations are performed in order to achieve a certain state of charge of the ASR , as shown below:

H.2 Gerätebedingte UnterbrechungH.2 Device-related interruption

|1) Protokoll rückstellen. ORA sperren und Überwaehungszustände setzen.| 1) Reset protocol. Block ORA and set monitoring status.

(2) ISS= OP IS= OP 2S=O setzen.(2) Set ISS = OP IS = OP 2S = O.

(3) Die Adresse eines Gerätedatenblocks in Register 1 einsetzen.(3) Insert the address of a device data block in register 1.

(4) Die Unterbrechungsidentifikation (ID). welche vom unterbrechenden E/A-Gerät empfangen wurde, in Register 7 einsetzen.(4) The interruption identification (ID). which was received by the interrupting I / O device in register 7.

Der sich ergebende Inhalt des -4S/?ist:The resulting content of the -4S /? Is:

O/M.V ()/»2.V ISS O / MV () / »2.V ISS

0 0 00 0 0

11.3 Unterbrechung bei Maschinenfehler und
Programmfehler
11.3 Interruption in the event of a machine failure and
Bug

Protokoll rückstellen, Summenmaske sperren,Reset protocol, block total mask,

OBA sperren und Überwachungszustände setzen. Block OBA and set monitoring states.

Den NSB im Adreßbereich mit Schlüssel = 0 abspeichern.Save the NSB in the address area with key = 0.

/SS= OP2S=0 setzen.Set / SS = OP2S = 0.

LKSA im Öl' ISspeichcm. LKSA in the oil ' ISspeichcm.

Inhalt des SAR im Register 7 speichern (außer Protokollbit).Save the content of the SAR in register 7 (except for the protocol bit).

Es ergibt sich folgender Inhalt des ASR: The following content of the ASR results:

OP\SOP \ S

OPlSOPlS

ISSISS

LKSA 0 0 LKSA 0 0

(Bemerkung: LKSA ist der
letzte im Register 408 Fig. 4
gespeicherte Schlüssel bei
Auftreten der Unterbrechung).
(Note: LKSA is the
last in register 408 Fig. 4
stored keys at
Occurrence of the interruption).

H.4 Unterbrechung vom Bedienungsfeld/
Unterbrechung bei thermischer Überlastung
H.4 Interruption from the control panel /
Interruption in the event of thermal overload

(1) Protokoll rückstellen, Summenmaske sperren, OBA sperren und Überwachungszustände setzen.(1) Reset protocol, block total mask, block OBA and set monitoring states.

(2) NSB abspeichern unter Benutzung des AdreßschlüsselsO. (2) Save NSB using the address key O.

(3) /5S= OP IS= OP 2S=O setzen.Set (3) / 5S = OP IS = OP 2S = O.

Es ergibt sich folgender Zustand des ASR: The ASR is in the following state:

OPlSOPlS

onsons

ISSISS

H.5 Protokollaufzeichnungs-UnterbrechungH.5 Log recording interruption

(1) Protokoll rückstellen, Summenmaske sperren, OBA sperren und Überwachungszustände setzen. NSB abspeichern im Adreßbereich mit Schlüssel =0.(1) Reset protocol, block total mask, block OBA and set monitoring states. Save NSB in the address area with key = 0.

(2) /SSübertragen nach OP IS.(2) / SS transferred to OP IS.

(3) OP 2S= /SS=O setzen.(3) Set OP 2S = / SS = O.

Daraus ergibt sich folgender Inhalt des ASR: This results in the following content of the ASR:

OPlSOPlS

ISSISS

ISS' 0 0 ISS ' 0 0

(Bemerkung: ISS' entspricht
dem zur Zeit der Unterbrechung vorliegenden ISS).
(Note: ISS ' corresponds to
the ISS present at the time of the interruption ).

2. Schaltungen für Speicherschutz ohne Übersetzer 2. Circuits for memory protection without translator

Die in Fig. U gezeigten Speicherschutzschaltungen für übersetzungsfreie Adressierung (ÜFA-Speicherschutzschaltungen) werden benutzt, wenn der in Fig.9A und 9B gezeigte Adreßverschiebungsübersetzer entweder nicht freigegeben oder im System nicht installiert ist. Die Erfindung ermöglicht eine Abwärtskompatibilität zwischen einem System mit Übersetzer und Adreßschlüsselspeicherschutz einerseits und einem System ohne Übersetzer mit Speicherschutz andererseits. Das heißt: Programme und Daten, die in einem System benutzt werden, welches mit der ÜFA-Speicherschutzeinrichtung arbeitet, können ohne Änderung in einer Anlage benutzt werden, die einen Adreßverschiebungsübersetzer hat. Diese Wechselmöglichkeit zwischen zwei Arten von Speicherschutzschaltungen ist für Systembenutzer sehr wichtig, die mit einem relativ kleinen Speichersystem, das preiswert ist, beginnen wollen und die ihren Speicher später für ein größeres System erweitern wollen.The memory protection circuits shown in FIG for translation-free addressing (ÜFA memory protection circuits) are used if the in The address shift translator shown in Figures 9A and 9B is either not enabled or is not in the system installed. The invention enables backward compatibility between a system with translator and address key memory protection on the one hand and one On the other hand, system without translator with memory protection. That means: programs and data in one System that works with the ÜFA memory protection device can be used without changing in a facility that has an address shift translator. This option to switch between two types of memory protection circuitry is very important for system users who are familiar with a relative want to start small storage system that is inexpensive and move their storage for a larger one later Want to expand the system.

Wenn der Adreßverschiebungsübersetzer freigegeben ist und die ÜFA-Speicherschutzschaltung auch freigegeben ist, wird der Adreßverschiebungsübersetzer gesperrt. Der Zustand der ÜFA-Speicherschutzeinrichtungen wird gesteuert durch den Freigabe/Sperrbefehl, ") der in F i g. 13A gezeigt ist.When the address shift translator is enabled and so is the ÜFA memory protection circuit is enabled, the address shift translator is disabled. The condition of the ÜFA storage protection devices is controlled by the enable / disable command, "" shown in Figure 13A.

Die ÜFA-Speiche-schutzsehaltungen ermöglichen die Verhinderung unerwünschter Zugriffe zu einer Hauptspeicherstelle, sei es durch einen Prozessorbefehl oder einen E/A-Befehl, der eine nicht übersetzteThe ÜFA spoke protection circuits enable the prevention of unwanted access to a Main memory location, be it by a processor command or an I / O command that does not translate one

in Adresse benutzt Mit den ÜFA-Speichereinrichtungen wird der Hauptspeicher in Blöcke von je 2048 Byte Kapazität unterteilt. Für jeden Block des Hauptspeichers wird ein Speicherschlüsselregister in einem Registerstapel 501 (F i g. 11) vorgesehen. Jedes Registerin address used with the ÜFA storage facilities the main memory is divided into blocks of 2048 bytes each. For each block of main memory For example, a storage key register is provided in register stack 501 (Fig. 11). Every register

π ist einem bestimmten Block im Innenspeicher zugeordnet, welcher durch die fünf höchstwertigen Bits in einer 16 Bit langen, physischen Adresse ausgewählt wird, wobei dies die im Programm erscheinende Adresse ist, welche direkt von einem Programm erzeugt wird, dasπ is assigned to a certain block in the internal memory, which is selected by the five most significant bits in a 16-bit physical address, where this is the address appearing in the program, which is generated directly by a program that

2i'- im System abläuft. Bei Verwendung der ÜFA-Speicherschutzeinrichtung sind die im Programm erscheinenden Adressen die physischen Adressen; wenn aber der Übersetzer freigegeben wird, ist die im Programm erscheinende Adresse ein Teil der logischen Eingangs- 2i'- runs in the system. When using the ÜFA memory protection device, the addresses appearing in the program are the physical addresses; but if the translator is released, the address appearing in the program is part of the logical input

2~< adresse. Jedes Register hat mindestens drei Bitstellen für einen zugeordneten Speicherschlüssel und ein Nur-Lese-Bit R;es kann auch zusätzlich ein Validitätsbit V haben (nicht gezeigt). Für die drei Bit langen Speicherschlüssel sind die Bit-Positionen 0, 1 und 2 2 ~ < address. Each register has at least three bit positions for an associated storage key and a read-only bit R; it can also have an additional validity bit V (not shown). For the three-bit storage keys, the bit positions are 0, 1 and 2

in vorgesehen, welche durch einen der üblichen Befehle zum Laden von Speicherschlüsseln geladen werden können (wie z. B. im IBM-System 360).in provided which by one of the usual commands can be loaded to load storage keys (such as in the IBM system 360).

Ein zur ÜFA-Speicherschutzoperation gehörender Vergleichsteil entspricht in etwa der Arbeitsweise derA comparison part belonging to the ÜFA memory protection operation roughly corresponds to the mode of operation of

r> Speicherschlüsselschutzeinrichtungen, die in bekannten Systemen wie z. B. IBM-Systeme/360 oder IBM-Systeme/370 vorkommen. Die übrigen damit zusammenarbeitenden Teile der ÜFA-Speicherschutzeinrichtungen aber gehören zu der neuen Lösung, welche in dieserr> Storage key protectors that are known in Systems such as B. IBM systems / 360 or IBM systems / 370 occurrence. The remaining parts of the ÜFA storage protection facilities that work together but belong to the new solution, which in this one

4» Beschreibung dargestellt ist, ebenso ihre Kombination mit den besonderen /MS-Auswahlschaltungen 333 (F ig. 3D).4 »Description is shown, as well as their combination with the special / MS selection circuits 333 (Fig. 3D).

Für die Vergleichsoperation werden die höchstwertigen Bits 0-4 der 16 Bit langen physischen AdresseThe most significant bits 0-4 of the 16-bit physical address are used for the comparison operation

•r> benutzt, um dasjenige Register im Stapel auszuwählen, welches dem Innenspeicherblock zugeordnet ist.• r> used to select the register in the stack that which is assigned to the internal storage block.

Der Speicherschlüssel im ausgewählten Register wird abgerufen. Der aktive Adreßschlüssel AAS wird dann mit dem aus dem Stapel ausgewählten SpeicherschlüsselThe storage key in the selected register is obtained. The active address key AAS is then used with the storage key selected from the stack

vi in der Vergleichsschaltung 502 (Fig. 11) verglichen. Falls der Vergleicher anzeigt, daß die beiden Schlüssel gleich sind, so wird der Zugriff zugelassen, vorausgesetzt, daß die ÜFA-Speicherschutzeinrichtung freigegeben ist und daß es sich bei dem Zugriff entweder um einevi in comparison circuit 502 (Fig. 11). If the comparator indicates that the two keys are the same, access is permitted, provided that that the ÜFA memory protection device is enabled and that the access is either a

>") Abruf-Operation handelt oder um eine Schreib-Operation, wobei das Nur-Lese-Bit auf 0 gestellt ist. Die ÜFA-Speicherschutzeinrichtung ermöglicht also einen selektiven Schutz je nach Zugriffsart; mit ihr kann also bei übersetzungsfreier Adressierung ein getrennter> ") Is a retrieval operation or a write operation, where the read-only bit is set to 0. The ÜFA storage protection device thus enables one selective protection depending on the type of access; with it, with addressing without translation, a separate

Wi Speicherschutz für Adressen in den Bereichen OPiS, OP2Sund /SSerreicht werden.Wi memory protection for addresses in the areas OPiS, OP2S and / SS can be achieved.

Ein weiteres besonderes Merkmal der ÜFA-Speicherschutzeinrichtungen ist die Zugriffssteuerung bei gemeinsam benutzten Speicherbereichen, welcheAnother special feature of the ÜFA storage protection devices is the access control for shared memory areas, which

fei durch einen besonderen Schlüsselwert angezeigt ist, und i Zugriffen durch E/A-Unterkanäle. Jeder Benutzer hat Zugriff zu den speziellen, durch Schlüssel bezeichneten Speicherbereichen, die für den betreffendenfei is indicated by a special key value, and i Access through I / O sub-channels. Every user has access to the special ones identified by keys Storage areas that are available for the

Benutzer im ASR im Prozessor definiert sind; alie Benutzer können den Schlüssel=7 in jedem Registerabschnitt des ASR benutzen, um einen von den Benutzern gemeinsam benutzten Speicherbereich zu definieren. Die Schaltung 505 steuert die Zugriffe zu den gemeinsam benutzten Speicherbereichen.Users are defined in the ASR in the processor; All users can use the key = 7 in each register section of the ASR to define a memory area shared by the users. The circuit 505 controls the accesses to the shared memory areas.

Eine besondere Zugriffssteuerung für E/A-Operationen bei Benutzung der ÜFA-Speicherschutzeinrichtungen ist durch die Schaltungen 504 und 505 gegeben, welche ermöglichen, daß eine E/A-Cycle-Steal-Zugnffs- κι anforderung sowohl zu dem Speicherbereich, der für den betreffenden Benutzer in seinem ASR definiert ist, als auch zu dem gemeinsamen Speicherbereich mit Schlüssel = 7 gemacht werden kann, wobei kein E/A-Cycle-Steal-Zugriff verhindert wird durch das r, Nur-Lese-Bit im verwendeten Speicherschlüsselregister. Das heißt also, daß ein E/A-Schreibzugriff immer zugelassen wird, unabhängig vom Wert des Nur-Lese-Bits im ausgewählten Register im Stapel 501. A special access control for I / O operations when using the ÜFA memory protection devices is given by the circuits 504 and 505 , which enable an I / O cycle steal Zugnffs- κι request both to the memory area for the relevant User is defined in his ASR , as well as can be made to the shared memory area with key = 7, whereby no I / O cycle steal access is prevented by the r, read-only bit in the memory key register used. That is, I / O write access is always permitted regardless of the value of the read-only bit in the selected register in stack 501.

Falls der Prozessor im Überwachungsprogrammzustand ist, d. h„ wenn Bit 8 im NSR (Fig.4) gesetzt ist, werden die Speicherschlüsselschutzschaltungen umgangen und alle Zugriffe zu jedem beliebigen Block im Hauptspeicher erlaubt.If the processor is in the supervisory program state, i. If bit 8 is set in the NSR (Fig. 4) , the memory key protection circuits are bypassed and all access to any block in the main memory is permitted.

Zusammenfassend kann man sagen, daß die Adreßbe- 2"> reichsauswahlsteuerung, welche durch das Adreßschlüsselregister ASR gegeben ist, immer benutzt wird, sowohl bei Freigabe der ÜFA-Speicherschutzeinrichtung als auch bei Benutzung einer zusätzlich vorgesehenen Übersetzer-Einrichtung. Der aktive Adreßschlüssel ju AAS ist entweder ein CS-Schlüssel oder ein Schlürsel, der aus dem ASR ausgewählt wurde bei Ausführung eines Prozessorbefehls, in Abhängigkeit davon, welche Art Information durch den Zugriff abgerufen wird (Art von Operand bzw. Befehl). r>In summary, it can be said that the address area selection control, which is given by the address key register ASR , is always used, both when the ÜFA memory protection device is enabled and when an additionally provided translator device is used. The active address key is ju AAS either a CS key or a key that was selected from the ASR when executing a processor command, depending on which type of information is called up by the access (type of operand or command). r>

Wenn die ÜFA-Speicherschutzeinrichtung freigegeben ist, muß mindestens eine der folgenden Bedingungen erfüllt sein, damit ein versuchter Speicherzugriff erlaubt wird:When the ÜFA memory protection device is enabled, at least one of the following conditions must be met must be fulfilled so that an attempted memory access is permitted:

41)41)

(1) Die Anlage befindet sich im Überwachungsprogrammzustand. (1) The system is in the monitoring program state.

(2) Der Speicherschlüssel des adressierten Blocks ist 7. Bei einem Versuch zum Einschreiben im Speicher muß das Nur-Lese-Bit = 0 sein. -n(2) The memory key of the addressed block is 7. When an attempt is made to write to memory the read-only bit must be = 0. -n

(3) Der Speicherschlüssel des adressierten Blocks muß dem aktiven Adreßschlüssel AASg\e\ch sein. Wenn eine Speicherschreib-Operation versucht wird, muß das Nur-Lese-Bit = 0 sein.(3) The storage key of the addressed block must be the active address key AASg \ e \ ch . The read-only bit must be 0 when a memory write operation is attempted.

ίοίο

Wenn keine der obigen Bedingungen (1), (2) oder (3) erfüllt ist, gibt der Inverter 507 (Fig. 11) ein Speicherzugriffsperrsignal aus, durch welches eine Programmfehler-Unterbrechung (PCK) hervorgerufen wird, welche das entsprechende Bit im Prozessor-Zu- vi Standswortregister fPSlV-Register) setzt.If none of the above conditions (1), (2) or (3) is met, the inverter 507 (Fig. 11) outputs a memory access inhibit signal, which causes a program error interrupt (PCK) which is the corresponding bit in the processor -Zu vi status word register fPSIV register) sets.

Im Überwachungsprogramm-Zustand ist also freier Zugriff zu sämtlichen Teilen des Hauptspeichers gegeben. Ein Zugriff zu einem Speicherbereich, der einen Speicherschutzschlüssel 7 hat, ist erlaubt, unab- t>n hängig vom Wert des aktiven Adreßschlüssels AAS oder der Werte im Adreßschlüsselregister ASR, wenn das System nicht im Überwachungsprogramm-Zustand ist, vorausgesetzt, daß die durch den Wert des Nur-Lese-Bits für den adressierten Block gegebene μ Bedingung nicht verletzt wird.In the monitoring program status, there is free access to all parts of the main memory. Access to a memory area that has a memory protection key 7 is permitted, regardless of the value of the active address key AAS or the values in the address key register ASR, provided that the system is not in the monitoring program state, provided that the Value of the read-only bit for the addressed block given μ condition is not violated.

Daraus ergibt sich also, daß innerhalb eines einzelnen, durch einen Adreßschlüssel definierten adressierbaren Speicherbereiches einige Blöcke im Nur-Lese-Zustand gehalten werden können, während zu anderen Blöcken ein Schreibzugriff möglich ist; dies ist abhängig von dem Binärwert des Nur-Lese-Bits der betreffenden Blöcke im adressierbaren Speicherbereich. Das Nur-Lese-Bit kann durch das Überwachungsprogramm gesetzt werden, welches die Stapelregister lädtThis means that within a single addressable address defined by an address key Storage area some blocks can be kept read-only while other blocks write access is possible; this depends on the binary value of the read-only bit of the relevant blocks in the addressable memory area. The read-only bit can be set by the monitoring program loading the stack registers

Beim einleitenden Programm-Laden (IPL) sind sowohl die ÜFA-Speicherschutzeinrichiungen als auch die Übersetzer-Einrichtungen beide gesperrt, so daß beim einleitenden Laden in jedem Platz des Hauptspeichers eingeschrieben werden kann. Nach der erfolgreichen Durchführung des einleitenden Programm-Ladens (IPL)kann jede der beiden Speicherschutzeinrichtungen freigegeben werden und bei Vorkommen von AdreßschlOsseln im ASR, die auf 0 eingestellt sind, geht die Anlage in den Überwachungsprogramm-Zustand über.During the initial program loading (IPL) , both the ÜFA memory protection devices and the translator devices are both blocked, so that writing can be carried out in any location in the main memory during the initial loading. After the initial program loading (IPL) has been carried out successfully, each of the two memory protection devices can be released and if address keys that are set to 0 occur in the ASR, the system switches to the monitoring program status.

Die ÜFA-Speicherschutzeinrichtung und die Übersetzereinrichtung benutzen zwar gemeinsam die Einrichtung des aktiven Adreßschlüssels AAS, sie haben aber auch eine Anzahl von Merkmalen, die verschieden sind, wie z. B.:The ÜFA memory protection device and the translator device share the establishment of the active address key AAS, but they also have a number of features that are different, such as. B .:

(1) Bei der ÜFA-Speicherschutzeinrichtung ist im Überwachungsprogramm-Zustand dar Zugriff zu sämtlichen Teilen des Hauptspeichers gestattet, unabhängig vom Speicherschlüssel. In einem System mit Übersetzer kann im Überwachungsprogramm-Zustand nur zu dem Speicherbereich zugegriffen werden, der durch den aktiven Adreßschlüssel /4/4Sdefiniert ist.(1) In the monitoring program status, access to the ÜFA memory protection device is granted all parts of the main memory are permitted, regardless of the memory key. In one System with translator can only access the memory area in the monitoring program state which is defined by the active address key / 4 / 4S.

(2) Die gesamte Speicherkapazität, die in einem
ÜFA-Speicherschutzsystem durch Adreßschlüssel definiert ist, beträgt höchstens 64K Bytes. Der gesamte statische Speicher, der durch die Adreßschlüssel in einem Übersetzersystem definierbar ist, kann zu jeder Zeit eine Kapazität von bis zu 512K Bytes haben.
(2) The total storage capacity in one
ÜFA memory protection system is defined by an address key, is a maximum of 64K bytes. The entire static memory, which can be defined by the address key in a translation system, can have a capacity of up to 512K bytes at any time.

(3) In einem Übersetzersystem beginnt der durch die Adreßschlüssel definierte Adreßbereich bei der logischen Adresse 0. In einem ÜFA-Speicherschutzsystem beginnt der durch die Adreßschlüssel definierte Adreßbereich bei verschiedenen möglichen Grenzen von Blöcken von je 2K Byte Kapazität, doch ist durch den Adreßschlüssel immer eine Zugriffskontrolle je nach Art gegeben.(3) In a translator system, the address area defined by the address key begins at logical address 0. In a ÜFA memory protection system, it begins with the address key Defined address area with different possible limits of blocks of 2K bytes each Capacity, but the address key always provides access control depending on the type.

(4) Die Befehle, welche benutzt werden, um die
Speicherschlüsselregister im Prozessor zu laden oder um aus diesen abzuspeichern, sind verschieden von den Befehjen, die benutzt werden, um in einem System mit Übersetzer die Segmentregister zu laden oder aus ihnen abzuspeichern.
(4) The commands that are used to execute the
Loading memory key registers in the processor or saving from them are different from the commands used to load or save segment registers in a system with a translator.

(5) Für ein E/A-Gerät in einem System, bei dem ein Übersetzer freigegeben ist, kann keine Speicherschutz-Fehleroperation vorkommen, ein E/A-Gerät in einem System mit ÜFA-Speicherschutzeinrichtung aber kann Speicherschutz-Fehleroperationen annehmen für den Zugriff zu einer Adresse, welche nicht zu dem durch einen CS-Schlüssel oder durch einen Schlüssel = 7 definierten Bereich gehört.(5) A memory protection failure operation cannot be performed for an I / O device in a system where a translator is enabled There may be an I / O device in a system with a ÜFA memory protection device but memory protection error operations can occur accept for access to an address which is not assigned to that by a CS key or belongs to the area defined by a key = 7.

(6) Wegen der bei einem System mit Übersetzer gegebenen Flexibilität für die Adreßumsetzungen sind bei Vorliegen der ÜFA-Speicherschutzeinrichtungen bestimmte Umsetzungen von logischen in physische Adreßbereiche schwierig auszuführen, z. B. Benutzung eines gemeinsamen Bereiches für nur zwei Adreßschlüssel.(6) Because of the flexibility for address translations in a system with a translator If the ÜFA storage protection devices are available, certain conversions from logical to physical address ranges difficult to implement, e.g. B. Use of a common area for only two address keys.

3. Alternative Speicherschutz-Betriebsart (ASB)
bei Systemen mit Adreßübersetzung
3. Alternative memory protection mode (ASB)
for systems with address translation

F i g. 14 zeigt die Steuerschaltungen für eine alternative Speicherschutz-Betriebsart (ASB), die in einem Datenverarbeitungssystem verwendet werden kann. Diese Betriebsart ist eiic Alternative zur oben beschriebenen Übersetzungsbetriebsart, bei der ein mehrfach unterteiltes Adreßschlüsselregister .457C (F i g. 1 D) benutzt wird. Bei dieser alternativen Betriebsart gibt es nicht die vom Typ des Speicherzugriffs abhängige Adressierbarkeit durch den Prozessor, die mit der Anordnung gemäß Fig. ID erreicht werden kann; sie ermöglicht jedoch separate Adressierbereiche für E/A-Speicherzugriffe. Die alternative Betriebsart ermöglicht dem Prozessor eine unterschiedliche, von einen aktiven Adreßschiussei abhängige Adressierbarkeit für seine verschiedenen Programme und Daten mit unterschiedlichem Benutzeradreßschlüssel; sie erlaubt aber auch eine interaktive Beziehung des Benutzers zum Überwachungsprogramm, soweit erforderlich, ohne daß dabei der Inhalt eines Benutzerschlüsselregisters (BSR) 460 verändert werden müßte.F i g. Figure 14 shows the control circuitry for an alternate memory protection mode (ASB) that may be used in a data processing system. This mode of operation is an alternative to the translation mode described above, in which a multiply subdivided address key register .457C (FIG. 1 D) is used. In this alternative operating mode, there is no addressability by the processor which is dependent on the type of memory access and which can be achieved with the arrangement according to FIG. ID; however, it enables separate addressing areas for I / O memory access. The alternative operating mode enables the processor to have different addressability, depending on an active address group, for its various programs and data with different user address keys; however, it also allows an interactive relationship between the user and the monitoring program, if necessary, without the content of a user key register (BSR) 460 having to be changed.

In der Anordnung gemäß Fig. 14 kann nur ein einzelner Adreßschiussei in das ßS/?-Register 460 des Prozessors geladen werden, so daß sämtliche Speicherzugriffe zur Ausführung eines Elenutzerprogramms und zum entsprechenden Datenzugriff innerhalb eines einzelnen Adreßbereiches erfolgen müssen, der durch den Benutzerschlüssel im BSR 460 definiert ist; dieser Benutzeradreßschlüssel kann nicht den Wert Null haben, da dieser Wert für denjenigen Speicherbereich reserviert ist in dem die Systemüberwachungsprogramme und Systemdalen stehen. E/A-Zugriffe werden durch den CS-Schlüssel gesteuert, der von einem Unterkanal in das CS-Schlüsselregister 465 geladen werden kann.In the arrangement according to FIG. 14, only a single address key can be loaded into the ßS /? Register 460 of the processor, so that all memory accesses for executing a user program and for corresponding data access must take place within a single address area which is defined by the user key in the BSR 460 is defined; this user address key cannot have the value zero, since this value is reserved for the memory area in which the system monitoring programs and system data are located. I / O accesses are controlled by the CS key, which can be loaded into the CS key register 465 from a subchannel.

Die /4Sß-Betriebsart wird für einen Prozessor durch eine Bisposition A im Niveaustatusregister (NSR) 470 gesteuert. Wenn der Überwach jngszustand eingeschaltet ist. enthält Bitposition S eine Eins; wenn die ,4Sß-Betriebsart eingeschaltet ist, enthält Bitposition A eine Eins.The / 4Sß mode is controlled for a processor by a bis position A in the level status register (NSR) 470. When the monitoring state is switched on. bit position S contains a one; when the 4Sß mode is on, bit position A contains a one.

Wenn beide Bitpositionen S und A eine Eins enthalten, wird eine erste Art von Prozessoroperation vorgesehen, bei der das Überwachungsprogramm (welches im Adreßbereich mit Schlüssel = 0 enthalten ist) mit dem Adreßbereich des laufenden Benutzeradreßschlüssels (der im BSR 460 enthalten ist) arbeiten kann. Das heißt, daß das Überwachungsprogramm aus dem Bereich mit Schlüssel = 0 heraus arbeitet und dabei Operanden aus dem durch den Benutzerschlüssel bezeichneten AdreSbereich benutzt Das Uberwachungsprogramm kann aber nicht zu anderen Adreßbereichen im Hauptspeicher zugreifen, die zu anderen Adreßschlüsseln gehören. Dese Arbeitsweise des Überwachungsprogramms mit eingeschränkter Adressierbarkeit ermöglicht zwar den Programmen zur Umerbrechungsbehandlung. zu einem gegenwärtig unterbrochenen Benutzerprogramm und dessen Daten zuzugreifen, ohne daß dabei die Gefahr besteht, daß das Überwachungsprogramm bei einer eigenen Störung die Integrität nichtbeteiligter Bereiche des Hauptspeichers stört Im übrigen kann ein Benutzerprograrnm bei seiner Ausführung niemals zum Speicherbereich des Überwachungsprogramms zugreifen, weil Jedes Benutzerprogramm nur zu dem durch den eigenen Benutzeradreßschlüssel definierten Speicherbereich Zugriff hat.If both bit positions S and A contain a one, a first type of processor operation is provided in which the monitoring program (which is contained in the address area with key = 0) can work with the address area of the current user address key (which is contained in the BSR 460). This means that the monitoring program works from the area with key = 0 and uses operands from the address area identified by the user key. The monitoring program cannot access other address areas in the main memory that belong to other address keys. This mode of operation of the monitoring program with limited addressability enables the programs for break handling. access to a presently suspended user program and its data without there is a risk that the monitoring program in a separate fault the integrity not involved areas of the main memory disturbs Incidentally, a Benutzerprograrnm never access when executed to the storage area of the monitoring program because E very user agent only has access to the memory area defined by its own user address key.

Eine zweite Art von Prozessoroperation tritt auf.A second type of processor operation occurs.

wenn das Überwachungsprogrammbit 5 Eins und da ASB-Bh A gleich Null ist. Hierbei kann das Überwa chungsprogramm aus dem Bereich mit Schlüssel = ! heraus arbeiten, ohne den laufenden Benutzerschlüsse im BSR 460 zu stören. In diesem Fall erfolgen aiii Befehls- und Operandenzugriffe nur im Bereich mi Schlüssel = 0, und das Überwachungsprogramm darf zi keinem Benutzerbereich zugreifen. Das heißt, daß ii diesem Zustand das Überwachungsprogramm einei Zugriff weder zu dem Benutzerbereich hat, der durcl den gegenwärtigen Inhalt des BSR 460 identifiziert ist noch zu sonst einem durch irgendeinen anderei Schlüssel definierten Bereich. Durch diese Art voi Systembetrieb wird die Notwendigkdit vermieden, dei Schlüssel = 0 jeweils in das BSR 460 einzugeben.if the monitoring program bit 5 is one and ASB-Bh A is equal to zero. The monitoring program from the area with key =! work out without disturbing the running user connections in the BSR 460. In this case, commands and operands are only accessed in the area with key = 0, and the monitoring program must not access any user area. That is, in this state the monitoring program has no access to either the user area identified by the current content of the BSR 460 or any other area defined by any other key. This type of system operation avoids the need to enter each key = 0 into the BSR 460.

Eine dritte Art von Prozessoroperation ist vorgese hen, wenn das Überwachungsprogrammbit Sgleich NuI ist, wobei der Wert des ASB-Bhs A ohne Belang ist. Ii diesem Fall erfolgen alle Befehlsabrufe und Operanden Zugriffe nur in dem durch den Benutzerschlüsse definierten Bereich; zum Hauptspeicherbereich mit den Schlüssel = 0 sind dann keinerlei Zugriffe erlaubt.A third type of processor operation is provided when the monitor program bit S equals NuI, the value of the ASB-Bhs A being irrelevant. In this case, all command calls and operand accesses only take place in the area defined by the user keys; Access to the main memory area with the key = 0 is then not permitted.

Die /455-Betriebsart wird im Prozessor durch die ii Fig. 14 gezeigte Schaltungsanordnung gesteueri UND-Glied 462 wird freigegeben, wenn im NSR 47( sowohl S-Bit als auch A-Bh gesetzt sind. Damit wird dii oben beschriebene erste Art von Prozessoroperatioi eingeleitet. Daraufhin wird bei jeder Befehlsabruf-An förderung vom Prozessor (Fig.4) ein Signal übe UND-Glied 462, ODER-Glied 466 und Inverter 467 ai UND-Glied 461 gegeben, um dieses während de Befehlsabrufvorgangs zu sperren. Während das UND Glied 461 gesperrt ist, gibt es ein Nullsignal, welches dei Schlüssel = 0 darstellt, an den /14S-BuS. Ein Befehlsab ruf ist also nur im Speicherbereich des Überwachungs Programms mit dem Schlüssel = 0 erlaubt.The / 455 operating mode is controlled in the processor by the circuit arrangement shown in FIG. 14. AND gate 462 is enabled when both S-bit and A-Bh are set in NSR 47 ( Thereupon, a signal via AND element 462, OR element 466 and inverter 467 ai AND element 461 is given by the processor (FIG. 4) for each command request request, in order to block this during the command request process Member 461 is blocked, there is a zero signal, which represents the key = 0, to the / 14S-BuS. A command call is therefore only permitted in the memory area of the monitoring program with the key = 0.

Wenn keine Befehlsabruf-Anforderung vorliegt (als< in den Zeiten zwischen den Befehlsabruf-Anforderun gen), wird das UND-Glied 462 nicht freigegeben, so dal Inverter 467 ein Aktivsignal an das UND-Glied 46: abgibt, um den Benutzeradreßschlüssel aus dem BSf 460 auf den /MS-Bus zu geben, so daß ein aus den Überwachungsprogramm abgerufener Befehl zu Ope randen zugreifen kann, die in dem Bereich stehen, der zi dem im BSR460 stehenden Schlüssel gehört.If there is no command call request (as <in the times between the command call requests), the AND gate 462 is not enabled, so that the inverter 467 sends an active signal to the AND gate 46: to retrieve the user address key from the BSf 460 to the / MS bus so that a command called up from the monitoring program can access operands that are in the area that belongs to the key in the BSR 460.

Wenn im NSR das ASB-Bh A rückgestellt ist (gleicl Null), während das Überwachungsprogrammbit .! gesetzt ist (gleich Eins), bleibt das UND-Glied 4# ständig freigegeben und sperrt über den Inverter 46i das UND-Glied 461, so daß dieses ständig der Schlüssel = 0 an den AAS-Bus abgibt. Hieraus ergibt sielIf the ASB-Bh A is reset in the NSR (equal zero) while the monitoring program bit.! is set (equal to one), the AND gate 4 # remains constantly enabled and blocks the AND gate 461 via the inverter 46i, so that it continuously outputs the key = 0 to the AAS bus. From this it results

tion, bei der das Überwachungsprogramm für aiii Befehlsabrufe und Operandenzugriffe auf den Bereicl des Schlüssels = 0 eingeschränkt ist, unabhängig von Wert des Benutzerschlüssels im SS/? 460.tion where the monitoring program for aiii Command calls and operand access to the area of the key = 0 is restricted, regardless of Value of the user key in the SS /? 460

Wenn das S Bit im NSR 470 rückgestellt ist (gleicl Null), bleiben UND-Glieder 462 und 464 ständij gesperrt, so daß Inverter 467 ständig ein Freigabesigna an UND-Glied 461 liefert welches infolgedessen ohni Unterbrechung den Benutzeradreßschlüssel an dei AAS-Bus durchgibt Daraus ergibt sich die obei beschriebene dritte Art von Prozessoroperation, bei de alle Speicherzugriffe, sowohl für den Prozessor als aucl für E/A in dem HaU1..Speicherbereich erfolgen, dessei Adressierung durch den Benutzerschlüssel im BSR 461 vorgesehen ist. Das Überwachungsprogramm kann nu arbeiten, wenn Bit Sgesetzt (gleich Eins) istIf the S bit in the NSR 470 is reset (equal to zero), AND gates 462 and 464 remain locked, so that inverter 467 constantly supplies an enable signal to AND element 461, which consequently forwards the user address key to the AAS bus without interruption The result is the third type of processor operation described above, in which all memory accesses, both for the processor and also for I / O, take place in the main 1 .. memory area, the addressing of which is provided by the user key in the BSR 461. The monitoring program can only work when bit S is set (equal to one)

llicr/u 2< > \V:;\\ llicr / u 2 <> \ V:; \\

Claims (8)

Patentansprüche:Patent claims: 1. Speicherschutzanordnung für den Hauptspeicher einer Datenverarbeitungsanlage, der durch Adreßschlüssel, die von der Art des Speicherzugriffs abhängig sind und eine Blockadresse aus einem Blockadressenregisterstapel auswählen, vorzugsweise ohne virtuelle Adressenübersetzung adressiert wird, gekennzeichnetdurch1. Memory protection arrangement for the main memory of a data processing system, which by Address keys that are dependent on the type of memory access and a block address from a Select block address register stack, preferably addressed without virtual address translation is indicated by — ein Zugriffsschlüsselregister (31—35, Fig. IA-1) mit Abschnitten für mehrere Zugriffsschlüssel;- an access key register (31-35, Fig. IA-1) with sections for several Access key; — eine Auswahleinrichtung (20) zur Auswahl und ι > Weitergabe je eines Zugriffsschlüssels aus dem Zugriffsschlüsselregister als aktiver Zugriffsschlüssel aufgrund von Auswahl-Steuersignalen ;- a selection means (20) for selecting and ι> passing each of an access key from the access key register as an active access key on the basis of selection control signals; — Detektoreinrichtungen (405; 22 ... 25) in dem oder den Prozessoren der Datenverarbeitungsanlage zur Feststellung verschiedener Speicherzugriffsanforderungen nach Zugriffs- oder Informationsart, und Steuervorrichtungen (56; Fig.3C) zur Freigabe je einer Zugriffsanord- r> nung und zur Abgabe eines entsprechenden Auswahl-Steuersignals an die Auswahleinrichtungen; - Detector devices (405; 22 ... 25) in the processor or processors of the data processing system to determine different memory access requirements according to the type of access or information, and control devices (56; FIG. 3C) for releasing one access arrangement each tion and for the delivery of a corresponding selection control signal to the selection devices; — eine Gruppe von Speicherschlüssel-Registern (501, F i g. 11), deren jedes einem Speicherblock in im Hauptspeicher zugeordnet ist und ein Feld zur Aufnahme eines Speicherschlüssels aufweist, sowie Ausgabevorrichtungen zur Adressierung je eines der Spsicherschlüsselregister aufgrund der Blockadresse aus höherwertigen r> Bits einer im Speicheradreßregister des Prozessors (SAR) vorliegenden Adresse; sowie- A group of storage key registers (501, FIG. 11), each of which is assigned to a storage block in the main memory and has a field for receiving a storage key, as well as output devices for addressing one of the storage key registers based on the block address from higher-order r> Bits of an address present in the memory address register of the processor (SAR); as — eine Vergleichseinrichtung (502, Fig. 11), welche mit der Auswahleinrichtung und den Ausgabevorrichtungen zur Übertragung je m eines Zugriffsschlüssels und eines Speicherschlüssels verbunden ist, und welche ein erstes Anzeigesignal abgibt, das anzeigt, ob der Zugriffsschlüssel und der Speicherschlüssel miteinander übereinstimmten, und das über eine 1 > erste Torschaltung (508) an Ausgangsschaltkreise (506, 507) zur Freigabe bzw. Sperrung des Speicherzugriffs weitergegeben wird (Fig. 11).- A comparison device (502, Fig. 11), which with the selection device and the output devices for transmission per m an access key and a storage key is connected, and which is a first Emits an indicator signal that indicates whether the access key and the storage key matched each other, and that via a 1> first gate circuit (508) to output circuits (506, 507) for enabling or disabling of the memory access is passed on (Fig. 11). 2. Anordnung nach Patentanspruch 1, dadurch '" gekennzeichnet,2. Arrangement according to claim 1, characterized in '", — daß in jedem Speicherschlüsselregister (0... 31, 501, Fig. 11) zusätzlich eine Bitposition (R) für ein Nur-Lese-Steuerbit vorgesehen ist, sowie r> eine Koinzidenzschaltung (503), welche mit einer Ausgangsleitung der /?-Bitposition der Gruppe von Speicherschlüsselregistern verbunden ist, um an ihrem Ausgang nur dann ein Schreiberlaubnis-Steuersignal abzugeben, wenn wi beide Leitungen einen vorgegebenen Bitwert anzeigen.- that in each memory key register (0 ... 31, 501, Fig. 11) a bit position (R) is also provided for a read-only control bit, as well as r> a coincidence circuit (503) which is connected to an output line of the /? Bit position of the group of memory key registers is connected in order to emit a write permission control signal at its output only when both lines indicate a predetermined bit value. 3. Anordnung nach Patentanspruch 1, dadurch gekennzeichnet, daß3. Arrangement according to claim 1, characterized in that — eine zweite Torschaltung (505) vorgesehen ist, welche bei Empfang eines bestimmten Speicherschlüssels an ihrem Eingang freigegeben wird zur Abgabe eines zweiten Anzeigesignals an ihrem Ausgang;- A second gate circuit (505) is provided, which upon receipt of a specific Storage key is released at its input to issue a second display signal at their exit; — eine Verbindung vorgesehen ist zwischen den Ausgangsleitungen der Speicherschlüsselregister (501) für ausgelesene Speicherschlüssel, und Eingängen der zweiten Torschaltung;- a connection is provided between the output lines of the memory key register (501) for read memory keys and inputs of the second gate circuit; — der Ausgang der zweiten Torschaltung mit den Ausgangsschaltkreisen (506,507) verbunden ist, so daß diese bei Vorliegen des bestimmten Adreßschlüssels im gerade adressierten Speicherschlüsselregister ein Signal zur Freigabe des Speicherzugriffs abgeben unabhängig vom Wert eines Zugriffsschlüssels, also unabhängig vom jeweiligen Programm.- the output of the second gate circuit with the Output circuits (506, 507) is connected, so that these in the presence of the specific Address key in the currently addressed memory key register a signal for release of memory access regardless of the value of an access key, i.e. independent of the respective program. 4. Anordnung nach Patentanspruch 3, mit Umschalteinrichtungen (Fig. 10), welche eine Umschaltung vom Adreßübersetzungsbetrieb auf Nicht-Übersetzungsbetrieb, und umgekehrt, ermöglichen, mit Eingangsleitungen für Signale, welche angeben, ob ein Übersetzer eingebaut ist, ob der Übersetzer freigegeben ist, und ob der Speicherschutz mittels Speicherschlüssel freigegeben ist, dadurch gekennzeichnet, das die Umschalteinrichtungen einen Ausgang für ein Freigabesignal für übersetzungsfreien Speicherschutz haben, der mit je einem zusätzlichen Steuereingang der ersten Torschaltung (508) und der zweiten Torschaltung (505) verbunden ist, um diese mindestens bei Betriebsbereitschaft eines eingebauten Übersetzers zu sperren.4. Arrangement according to claim 3, with switching devices (Fig. 10), which a switch from address translation operation to non-translation operation and vice versa, with input lines for signals, which indicate whether a translator is installed, whether the translator is enabled, and whether the memory protection is enabled by means of the memory key, characterized in that that the switching devices have an output for a release signal for translation-free Have memory protection, each with an additional control input of the first gate circuit (508) and the second gate circuit (505) is connected to this at least when ready for operation a built-in translator. 5. Anordnung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß zusätzliche Verknüpfungsschaltungen und Steuerleitungen sowie ein Eingang für ein Cycle-Steal-Steuersignal vorgesehen sind, um bei Vorliegen einer Cycle-Steal-Anforderung von einer E/A-Einheil ein zwar vom Speicherschlüssel abhängiges, aber vom jeweiligen Zustand des Nur-Lese-Bit im betroffenen Speicherschlüsselregister unabhängiges Speicherzugriffs-Freigabe- bzw. -Sperrsignal an den Ausgangsschaltkreisen (505,507) zu erzeugen.5. Arrangement according to one of the preceding claims, characterized in that additional Logic circuits and control lines as well as an input for a cycle steal control signal are provided to respond to a cycle steal request of an I / O unit depends on the storage key, but on the respective one State of the read-only bit in the affected memory key register independent memory access enable or to generate blocking signal at the output circuits (505, 507). 6. Anordnung nach Patentanspruch 1, dadurch gekennzeichnet, daß Umschalteinrichtungen (461, 462,463,464,466, F i g. 14) vorgesehen sind, um den Schlüsselauswahleinrichtungen (469) wahlweise entweder einen in einem Schlüsselregister (460) des Prozessors enthaltenen Benutzerschlüssel oder einen schaltungsbedingten, dem Überwachungsprogramm zugeordneten Sonderschlüssel zuzuleiten.6. Arrangement according to claim 1, characterized in that switching devices (461, 462,463,464,466, Fig. 14) are provided to the Key selectors (469) optionally either one in a key register (460) of the Processor contained user key or a circuit-related, the monitoring program assigned special key. 7. Anordnung nach Patentanspruch 6, dadurch gekennzeichnet, daß ein Statusregister (470) vorgesehen ist, mit mindestens zwei Bitpositionen für Zugriffssteuerbits (S, A) und daß die Umschalteinrichtungen (461,466) drei Steuereingänge aufweisen, von denen zwei mit den Ausgängen der Statusregister-Bitpositionen und einer mit einer Befehlsabruf-Anforderungsleitung verbunden ist, wobei je nach Binärwert der Zugriffssteuerbits den Schlüsselauswahleinrichtungen zugeführt werden:7. Arrangement according to claim 6, characterized in that a status register (470) is provided with at least two bit positions for access control bits (S, A) and that the switching devices (461,466) have three control inputs, two of which with the outputs of the status register Bit positions and one is connected to a command fetch request line, depending on the binary value of the access control bits being fed to the key selection devices: a) wechselweise bei Vorliegen des Befehlsabruf-Anforderungssignals der Sonderschlüssel und bei Fehlen des Befehlsabrauf-Anforderungssignals der Benutzerschlüssel; odera) alternately when the command call request signal is present the special key and in the absence of the command request signal the user key; or b) nur der Sonderschlüssel; oderb) only the special key; or c) nur der Benutzerschlüssel.c) only the user key. 8. Anordnung nach Patentanspruch 7, dadurch gekennzeichnet, daß bei Abspeicherung des Be-8. Arrangement according to claim 7, characterized in that when storing the loading nutzerschlüssels im Zugriffsschlüsselregister (32—35, UKR) die Zugriffssteuerbits je nach Wert folgende Speicherzugriffe des Überwachungsprogrammes erlauben:user key in the access key register (32—35, UKR) the access control bits allow the following memory accesses of the monitoring program depending on the value: — zum Speicherbereich des Überwachungsprogrammes zum Bereich des Benutzers, dessen Schlüssel gerade im Zugriffsschlüsselregister gespeichert ist (für Operandenzugriffe);- to the memory area of the monitoring program to the area of the user whose The key is currently stored in the access key register (for operand access); — nur zum Speicherbereich des Überwachungs- m programmes;- only to the memory area of the monitoring m programs; — nur zum Speicherbereich des Benutzers.- only to the user's memory area.
DE19772717654 1976-04-30 1977-04-21 Memory protection arrangement Expired DE2717654C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US05/682,224 US4038645A (en) 1976-04-30 1976-04-30 Non-translatable storage protection control system
US05/681,985 US4035779A (en) 1976-04-30 1976-04-30 Supervisor address key control system

Publications (2)

Publication Number Publication Date
DE2717654A1 DE2717654A1 (en) 1977-11-10
DE2717654C2 true DE2717654C2 (en) 1981-11-12

Family

ID=27102792

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19772717654 Expired DE2717654C2 (en) 1976-04-30 1977-04-21 Memory protection arrangement

Country Status (1)

Country Link
DE (1) DE2717654C2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1147823A (en) * 1978-07-24 1983-06-07 Robert M. Best Crypto microprocessor for executing enciphered programs

Also Published As

Publication number Publication date
DE2717654A1 (en) 1977-11-10

Similar Documents

Publication Publication Date Title
DE2716051C2 (en) Data processing system with one or more processors with at least one input / output channel with several subchannels and with a memory arrangement in which keys are used for memory access
CH619309A5 (en)
CH615521A5 (en)
DE2350884C2 (en) Address translation unit
DE1774296C2 (en) Restructurable control unit for electronic digital computers
DE3607889C2 (en)
DE2417795C2 (en) Data processing system
DE2953861C2 (en)
DE2902465A1 (en) DATA PROCESSING ARRANGEMENT
DE602005002691T2 (en) Method of programming a system on chip DMA control, as well as a system on chip for it.
DE102007025397B4 (en) Multi-processor system and method of operation
DE3320858A1 (en) MEMORY MANAGEMENT ARRANGEMENT FOR MICROPROCESSOR SYSTEMS
DE2414311C2 (en) Memory protection device
DE2441754A1 (en) PROCESSOR DATA TRANSFER CONTROL ARRANGEMENT AND METHOD FOR CONTROLLING THE DATA TRANSFER OF A PROCESSOR
DE2612139A1 (en) INPUT / OUTPUT CONTROL SYSTEM
DE2542740A1 (en) MICROPROGRAM DATA PROCESSING METHOD AND EQUIPMENT FOR EXECUTING THE METHOD
DE2926589A1 (en) ARRANGEMENT FOR EXTENDING A LOGICAL COMPUTER ADDRESS
DE2755616A1 (en) ASYMMETRIC MULTIPROCESSOR
DE3741850A1 (en) VERSION UNIT FOR AN I / O PROCESSOR
DE2054830C3 (en) Information processing system with means for accessing memory data fields of variable length
DE2248296A1 (en) PROGRAM CONTROL DEVICE
DE1549531A1 (en) Digital computer system
DE2458096C2 (en) Device for loading micro-programs in a micro-programmable data processing system
DE112019002336T5 (en) STORAGE POOL ASSIGNMENT FOR A MULTICORE SYSTEM
DE2101949A1 (en) Method for protecting data groups in a multiprocessing data processing system

Legal Events

Date Code Title Description
OD Request for examination
D2 Grant after examination
8339 Ceased/non-payment of the annual fee