DE2716520C2 - Datenverarbeitungsanlage mit Adreßübersetzeranordnung - Google Patents
Datenverarbeitungsanlage mit AdreßübersetzeranordnungInfo
- Publication number
- DE2716520C2 DE2716520C2 DE19772716520 DE2716520A DE2716520C2 DE 2716520 C2 DE2716520 C2 DE 2716520C2 DE 19772716520 DE19772716520 DE 19772716520 DE 2716520 A DE2716520 A DE 2716520A DE 2716520 C2 DE2716520 C2 DE 2716520C2
- Authority
- DE
- Germany
- Prior art keywords
- address
- memory
- register
- processor
- key
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
7. Anlage nach Anspruch 1, dadurch gekennzeichnet,
— daß die getrennten, schnellen Decodierschaltungen (931, F i g. 9D-1) mit Ausgangsleitungen
(903—906; F i g. 9C) der zusätzlichen Vorgriffsbitpositionen mehrerer Registerstapel verbunden
sind;
— und daß sie einen Steuereingang (935) für ein vom jeweiligen Adreßschlüssel abhängiges
Auswahlsignai aufweisen, und jeweils nur die Vorgriffsbitsignale eines Übersetzungsregisters
(Stapel 0 ... 7) zur Erzeugung des Speicherauswahl-Steuersignals durchschalten.
Die Erfindung betrifft eine Datenverarbeitungsanlage der im Oberbegriff des Anspruchs 1 beschriebener Art.
Für die Übersetzung von logischen, im Programm vorgegebenen Adressen in physische (reale) Adressen,
weiche die jeweils tatsächlich zu adressierenden Speicherstellen angeben, sind zahlreiche Anordnungen
und Verfahren bekannt geworden.
Das USA-Patent 38 28 327 beschreibt eine Speicheradressieranordnung
welche einen einzelnen Stapel (eine Gruppe von Registern) für die Übersetzung von
Programmadressen enthält. Je nach der jeweiligen Betriebsart (z. B. Prozessorunterbrechung oder Eingabe/Ausgabe-Betrieb)
wird bestimmt, ob eine Einrichtung zur Adreßübersetzung benutzt wird oder nicht. Bei
E/A-Zugriffen werden die Adressen normalerweise nicht übersetzt; jedoch ist ein Bit in der werthöchsten
Position vorgesehen, welches nicht Teil der programmierbaren Adressen ist, welches aber bei einer
E/A-Unterbrechung benutzt wird, wenn der Zugriff außerhalb des Bereichs der normalen programmierbaren
Adressen liegen müßte. Der Zugriff erfolgt dann in einem zweiten, alternativen Speicherbereich, so daß
kein Konflikt mit der Speicherstelle entsteht, welche die gleiche Programmadresse hat, aber im Grundspeicherbereich
(dessen Kapazität der Programmadreßlänge entspricht) liegt.
Ein anderes bekannt gewordenes Speicheradressierverfahren ist im USA-Patent 38 54 126 beschrieben.
Hierbei wird je nach Prozessorbetriebiart (Überwachungsbetrieb, Benutzerbetrieb usw.) eine bestimmte
Adreßregistergruppe aus mehreren, den Betriebsarten zugeordneten Registergruppen ausgewählt. Jede Registergruppe
besteht aus zwei Untergruppen von Adreßregistern, eine für Daten und eine für Befehle. Es
sind Seiten (Speicherblöcke bzw. Datenblöcke) unterschiedlicher Länge vorgesehen. Jedes Adreßregister
enthält die Anfangsadresse einer zugeordneten Seite (Speicherblock) im Speicher. Außerdem ist noch jedem
Seitenadreßregister ein Seitenbeschreibungsregister zugeordnet, in welchem die Anzahl der physisch
aneinandergrenzenden, je 32 WGrt-Speicherstellen umfassenden Speicherabschnitte angegeben ist, welche
zu der betreffenden Seite gehören (Angabe der variablen Länge). Zu jeder Prozessorbetriebsart gehört
also ein Paar von Register-Untergruppen wobei die eine Untergruppe für Daten und die andere für Befehle
bestimmt ist Der höherwertige Teil einer logischen Adresse aus dem Programm identifiziert ein gewünschtes
Register in der gewählten Untergruppe, und dessen
κι Inhalt gibt die Lage und Anzahl unmittelbar aufeinanderfolgender
Speicherabschnitte an, die zu der betreffenden Seite gehören. Der mittlere Teil der logischen
Adresse gibt die relative Adresse des Speicherabschnitts innerhalb der Gruppe aufeinanderfolgender
Speicherabschnitte an, für welchen das zugeordnete Seitenbeschreibungsregister angibt, daß er die gesuchte
Speichergestelle enthält Der niederwertige Teil der logischen Adresse schließlich gibt die relative Adresse
der Wort-Speicherstelle innerhalb des ausgewählten Speicherabschnitts an.
Die meisten heute benutzten Datenverarbeitungsanlagen arbeiten mit programmgesteuerten Übersetzungssystemen.
Bei diesen programmgesteuerten Übersetzungssystemen sind Nebentabellen-Pufferschaltungen
(look-aside translation buffer) für die direkte Adreßumwandlung vorgesehen, die nach einmal erfolgter
Adreßübersetzung durch das Programm für eine Beschleunigung der Speicherzugriffe sorgen (die übersetzte
Adresse wird in den Nebentabellen-Puffer
jo eingeschrieben, so daß nachfolgende Zugriffe zum gleichen Speicherplatz mit höherer Geschwindigkeit
erfolgen können). Wegen der unvermeidlichen Kapazitätsbeschränkung für den Nebentabellen-Puffer kann
dieser nur relativ wenige übersetzte und kurz zuvor noch benutzte Adressen aufbewahren. Bei erneutem
Zugriff zu einer Adresse, die nicht mehr im Nebentabellen-Puffer ist, muß der vollständige und langsamere
Programm-Übersetzungsweg wieder durchlaufen werden.
In den bekannt gewordenen Systemen ist bei vorgegebenen Programmadressen keine flexible Adreßbereichsfestlegung
möglich, weil die verschiedenen Übersetzerregister entweder allen Zugriffs- und Betriebsarten
gleich zugänglich s.nd, oder in Gruppen den verschiedenen Zugriffs- bzw. Betriebsarten fest zugeordnet
sind. Zu einer Adreßbereichsverschiebung müßten die Übersetzerregister neu geladen werden.
Auch haben die bekannten Einrichtungen den Nachteil, daß sie Adressen bestimmter Länge und fester
Zugriffsgeschwindigkeiten bzw. synchroner Arbeitsweise voraussetzen. Dies macht es jedoch unmöglich zu den
bestehenden Speichereinheiten des Hauptspeichers noch andere Einheiten hinzuzufügen, wobei diese
zusätzlichen Speichereinheiten u. U. eine andere Zugriffszeit haben als die bestehenden.
Wenn der Hauptspeicher aus mehreren, unterschiedlich aufgebauten oder unterschiedlich angeschlossenen
Einheiten besteht, muß, bevor der eigentliche Speicherzugriff mittels der übersetzten Adresse erfolgt, die
bo Steuer- bzw. Anschlußeinrichtung der jeweils betroffenen
Speichereinheit ausgewählt werden. Wenn die benötigten Programm- und Datenblöcke aber in den
verschiedenen Einheiten des Hauptspeichers beliebig verschiebbar sind, ist vor der Adreßübersetzung die
betroffene Speichereinheit nicht bekannt.
Bei den herkömmlichen Anordnungen zur Adreßübersetzung müßte nun zunächst eine ganze Adreßübersetzung
erfolgen, ehe man die betroffene Einheit
identifizieren und ihre Steuereinrichtung auswählen kann. Das führt zu Zeitverlust, weil die eigentliche
Adressierung zum Speicherzugriff erst nach dieser Vorauswahl erfolgen kann.
im USA-Patent 38 28 327 ist eine Steueranordnung für einen Speicher beschrieben, bei welcher der
höchstwertigen Bitstelle der Adresse noch ein weiteres Bit vorangestellt wird, welches jedoch nicht Teil der im
Programm erscheinenden Adressen ist, sondern auch die verschiedenen Betriebsarten des Systems (Unterbrechung,
E/A-Betrieb, usw.) festgelegt wird.
Eine weitere Anordnung zur Übersetzung von logischen in reale Adressen ist aus Proceedings Spring
Joint Computer Conference 1966, Seiten 62 bis 69 bekannt geworden. Diese Anordnung verwendet die is
eingangs beschriebenen Nebentabellen-Pufferschaltungen und weist deshalb die beschriebenen Nachteile auf.
Außerdem ist in der genannten Anordnung der virtuelle Adressenraum aus Adressierungsgründen in Segmente
und Seiten aufgeteilt. Deshalb muß bei der Adressenübersetzung ein zweistufiges Verfahren durchlaufen
werden, welches als Folge der in jeder Stufe nötigen Addition zeitraubend ist.
Der Erfindung liegt daher die Aufgabe zugrunde, in einer Datenverarbeitungsanlage der im Oberbegriff des
Anspruchs 1 geschilderten Art eine Anordnung zur Übersetzung von logischen Adressen anzugeben,
welche die schnelle und zugleich geschützte Adressierung von Speichereinheiten verschiedener Größe und
Geschwindigkeit ermöglicht und hinsichtlich der Art der Speicherzugriffe (Instruktionen, Operanden, Eingangs-/
Ausgangs-Anforderungen) eine optimale Trennung und Unabhängigkeit aufweist.
Diese Aufgabe wird erfindungsgemäß durch die im Kennzeichen des Hauptanspruches beschriebene Einrichtung
gelöst.
In einer erfindungsgemäßen Anlage werden Adreßschlüssel, welche realen (physischen) Adreßbereichen
zugeordnet werden können, zur Adreßübersetzung benutzt. Diese Schlüssel werden je nach gewünschter
Zuteilung von Speicherbereichen in einzelne Abschnitte eines Schlüsselregisters geladen, von wo sie der
Auswahlschaltung zugeführt werden können. Dabei kann für jeden Adreßbereich die gesamte, durch die
Länge der im Programm erscheinenden Adressen gegebene Adreßkapazität verwendet werden. Jedem
Schlüsselwert kann ein eigener Segmentregisterstapel (Übersetzungsregister-Gruppe) zugeordnet werden,
wobei jeder Stapel im Grenzfall mindestens ein Segmentregister enthält. In die Segmentregister können
reale (physische) Blockadresssr. gelader, werden, so daß
die bekannte blockweise Verschiebung von Adressen im Speicher durch Umladen möglich ist. Da die Auswahl
eines Adreßschlüssels von der Art des Speicherzugriffs abhängig ist, wird hierdurch zugleich eine Trennung von
einzelnen Speicherbereichen, d. h. ein Speicherschutz erzielt
Für jeden Speicherzugriff wird zunächst der entsprechende Adreßschlüssel ausgewählt und damit ein
Segmentregisterstapel adressiert, der seinerseits den zugeordneten physischen Bereich des Speichers bestimmt.
Dieser Bereich kann aus Blöcken bestehen, die über den gesamten physischen Speicher verstreut sind.
Alle Speicherzugriffe, die den gleichen Schlüssel benutzen, sind auf diesen Bereich des Hauptspeichers
beschränkt und jeder durch einen Adreßschlüssel identifizierte Teil des Hauptspeichers ermöglicht eine
fortlaufende logische Adressierung im Rahmen des von der Programmadreßlänge gegebenen Gesamtbereichs,
wobei aber eine Verschiebung innerhalb des gesamten physischen Hauptspeichers durch Änderung der zugeteilten
Blockadressen in den Segmentregistern eines zu einem bestimmten Adreßschlüssel gehörenden Registerstapels
möglich ist.
Mit jedem Registerstapel kann also eine mit einem bestimmten Schlüsselwert assoziierte Menge von
logischen Adressen auf eine Mehrzahl von nicht zusammenhängenden Blöcken im physischen Speicher
abgebildet werden. Es ergibt sich durch die Verwendung mehrerer Registerstapel eine Unabhängigkeit zwischen
den programmgegebenen logischen Adressen und den zugeordneten Speicherstellen im physischen Speicher.
Die Größe des physischen Hauptspeichers muß in keinem bestimmten Zusammenhang zur Gesamtzahl
der Segmentregisterstapel und der Anzahl Segmentregister pro Stapel stehen. Einerseits brauchen nicht alle
Segmentregister gültige zugeordnete Blockadressen zu enthalten, wenn z. B. der Hauptspeicher weniger
physische Blockadressen als Segmentregister aufweist. Andererseits kann die Anzahl der Segmentregister auch
kleiner sein als die Anzahl der im Hauptspeicher vorhandenen physischen Blöcke. In jedem der Fälle
kann ein erfindungsgemäßer Übersetzer zufriedenstellend arbeiten; er kann also Speicher sehr unterschiedlicher
Größen unterstützen und ermöglicht somit eine problemlose Erweiterung des Hauptspeichers von einer
Grundausstattung aus mit verschiedenartigen Speichereinheiten, auch unterschiedlichen Technologien und
unterschiedlicher Entfernung zueinander.
Mit der Erfindung wird durch wenige zusätzliche auf die Vorgriffbits bezogene Schaltungsmittel auf einfache
Weise durch Vorauswahl eine Verkürzung der Zeit für den Speicherzugriff bewirkt. Beim Laden eines Übersetzungsregisters
werden aus der geladenen Adresse direkt Vorgriffbits abgeleitet, welche mit einer minimalen
Bitzahl die jeweils betroffene Speichereinheit identifizieren. Wenn dann eine Adreßübersetzung
erfolgte, werden die Vorgriffbits mit adressiert und können sofort an spezielle, sehr schnell arbeitende
Decodierschaltungen ausgegeben werden, die dann unmittelbar ein Signal zur Identifizierung und Auswahl
der betroffenen Speichereinheit abgeben. Da die speziellen Decodierschaltungen nur wenige Bits und
nicht die gesamte Blockadresse verarbeiten, können sie gut so aufgebaut werden, daß sie gegenüber den
anderen Schaltungsteilen besonders schnell arbeiten.
Ein Innenspeicherzyklus wird vom Übersetzer für jeden Zugriff zum Basis- oder Innenspeicher erzeugt.
Die Adreßübertragung zwischen Basisspeicher und Übersetzer ist aber keine direkte, sondern führt über
eine Verbindungsschaltung beim Prozessor. Vom Übersetzer können die höherwertigen oder Blockadreßbits
für den Speicher geliefert werden, während das Prozessor-Speicheradreßregister die niedrigen Adreßbus
(relative Adresse im Speicherblock) abgibt
Vorteilhafte Weiterbildungen der Erfindung sind den Unteransprüchen zu entnehmen.
Ein Ausführungsbeispiel der Erfindung wird im folgenden anhand von Zeichnungen beschrieben. Es
zeigt
Fig. IA-I allgemein das Prinzip der Adreßschlüsselauswahl
aufgrund von Speicherzugriffs-Steuersignalen, weiche die Art des Zugriffs identifizieren;
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;
F i g. 1B eine Übersicht der verschiedenen möglichen
Speicherzugriffsarten;
Fig. IC in Blockform eine Übersichtsdarstellung einer Datenverarbeitungsanlage mit erweiterbarem
Hauptspeicher, die als Ausführungsbeispiel beschrieben wird;
F i g. 1D eine spezielle Ausführungsform der in Fig. IA gezeigten Anordnungen;
Fig. 2A eine Übersichtsdarstellung der bei den Prozessoroperationen und E/A-Operationen vorkommenden
Speicherzugriffe, sowie der verschiedenen Adreßbereiche;
F i g. 2B eine Übersicht der Speicherzugriffsvorgänge bei E/A-Operationen;
Fig. 3A Einzelheiten eines E/A-Unterkanals, der bei jedem Unterkanalbefehl einen Adreßschlüssel erhält
und diesen für jeden Datenzugriff zur Ausführung des Befehls abgibt;
F i g. 3B die relevanten Teile eines E/A-Kanals, der eine Mehrzahl von Unterkanälen mit einer Speicherprioritätsauswahlschaltung
verbindet;
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. 3D Einzelheiten einer Aktivadreßschlüssel-Auswahlschaltung,
bei der auch ein Operandenbereichsabgleich erreiciit werden kann;
F i g. 4 Einzelheiten eines Prozessors, welche für die Speicherzugriffssteuerung mit Adreßschlüsseln relevant
sind;
F i g. 5 das Aufteilungsformat des AdreßschlüsseJregisters in einem bevorzugten Ausführungsbeispiel;
Fig.6 das Inhaltsformat der im Ausführungsbeispiel
vorgesehenen Segmentregister;
F i g. 7 Einzelheiten der Eingabe- und Ausgabesteuerung
einer einzelnen Bitposition im Adressenschlüsse!- register;
F i g. 8A schematisch die Vorgänge bei Ausführung eines Befehls zum Laden bzw. Abspeichern eines
Segmentregisters;
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;
Fig.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. 9A und 9B ein Blockschaltbild einer bevorzugten Ausführungsform des Übersetzers gemäß Fig. IC, der
eine 19 Bit lange logische Maschinenadresse in eine 24 Bit lange physische Adresse für den Speicherzugriff
umwandelt;
Fig.9C, 9D-1, 9D-2, 9E, 9F-! und 9F-2 Einzelheiten
des in F i g. 9A/9B in Blockform gezeigten Übersetzers;
F i g. 9G die Arbeitsweise der in F i g. 9C gezeigten
Vorgriffsschaltungen zur jeweiligen Auswahl des Innenspeichers (Basisspeicher), Außenspeichers (Zusatzspeicher)
oder Asynchronspeichers, sowie die Interpretation der 24 Bit langen physischen Adresse
durch die gewählte Speichereinheit beim Zugriff;
Fig. 10 eine Schaltungsanordnung im Prozessor zur Auswahl zwischen den Betriebsarten »Speicherschutz
ohne Übersetzung« und »Speicherschutz mit Übersetzung«;
Fig. 11 Speicherschutzsteuerschaltungen zur Verwendung bei übersetzungsfreier Betriebsart;
l·' i g. 12 das Format eines Speicher-Speicher-Befehls;
l·' i g. 12 das Format eines Speicher-Speicher-Befehls;
F i g. 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);
Fig. 13B aufeinanderfolgende Zustände eines Adreßschlüsselregisters,
wenn bei einer Unterbrechung Operandenbereichsabgleich erfolgt;
Fig. 14 eine Schaltungsanordnung für eine alternative
Speicherschutzbetriebsart mit Übersetzung, welche eine Alternative zu der Speicherschutzbetriebsart mit
Adreßschlüsselübersetzung darstellt;
Fig. 15 schematisch ein alternatives Verfahren zur Adreßschlüsselübersetzung, das in einem Prozessor als
Alternative zur Übersetzeranordnung mit mehreren Registerstapeln dienen kann;
Fig. 16 Zugriff zu parallelen Grundspeichermoduln mittels mehrerer aktiver Adreßschlüssel in einem
Multiprozessorsystem;
Fig. 17 Steuerschaltungseinheiten aus dem Prozessor,
zur Durchführung des in F i g. 8A gezeigten Befehls zum Laden/Abspeichern eines Segmentregisters;
Fig. 18 schematisch die Vorgänge zum Laden und
zum Abspeichern bei Klassenunterbrechungen.
1. Beschreibung eines Ausführungsbeispiels
Fig. IA und Fig. IB zeigen die wesentlichen
Merkmale eines Ausführungsbeispiels der Erfindung. F i g. 1A zeigt eine Adressenschlüssel-Auswahlschaltung
Ϊ5 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, IS-Schlüssel,
OPl-Schlüssel, OP2-Schlüssel und OP3-Schlüssel. Derjenige
dieser Schlüssel, welcher der vorliegenden Speicherzugriffsanforderung entspricht, wird durch die
AAS-Auswahlschaltung 20 als aktiver Adreßschlüs?el
(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)
so der logischen Adresse, die von der Anlage für den Speicherzugriff benutzt wird.
Die Signale auf den Zugriffsanforderungsleitungen 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
AAS-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-Steai-Operation den Vor-
rang hat, um zuerst den CS-Schlüssel auszugeben. Die
Befehlsabrufanforderung wird als zweite bedient, um den IS-Schlüssel als AAS auszugeben. Als dritte wird die
OPl-Zugriffsanforderung bedient, um den OPl-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
AAS auszugeben.
Es besteht also eine bestimmte Beziehung zwischen den verschiedenen Arten von Zugriffsanforderungen
und den speziellen Schlüsselregisterabschnitten,
In einem Prozessor enthält ein Adreßschlüsselregister (ASR) folgende Abschnitte: den IS-Schlüsselabschnitt
(ISS), welcher den Befehlsabrufanforderungen für den Zugriff zu jeder Instruktion zugeordnet ist. und die
Schlüsselregisterabschnitte für die Schlüssel OPI (OPlS) bis OP3 (OP3S), welche zu den verschiedenen
Arten von Operanden-Zugriffen gehören, die zur Ausführung der Befehle benötigt werden.
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.
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.
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.
F i g 1B zeigt eine größere Zahl verschiedener Speicherzugriffsarten. Die in einem bestimmten System
verwendbaren Speicherzugriffstypen 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. IA gezeigt ist In Fig. IB sind acht Speicherzugriffsarten in drei
Zugriffskategorien eingeteilt:
(1) Befehlszugriff,
(2) Operanden-Z>.;griff und
(3) eine Zugriffskategorie, die den Prozessorereignissen zugeordnet ist.
Jeder Kanal enthält K Unterkanäle, und jeder Unterkanal hat drei Speicherzugriffskategorien:
(1) Kanalbefehlszugriff,
(2) E/A-Datenzugriff und
(3) eine Zugriffskategorie für E/A-Ereignisse.
Zu jeder Zugriffskategorie gehört mindestens eine Speicherzugriffsart
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.
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. 1 B). 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 solcher 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 identifizierbaren Signale können aus jedem Befehl abgeleitet werden, und zwar vom
Operationscode und von dem 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, welches 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 Senken abspeicherungsAabruf-Operandentyp zusammenzufassen.
Prozessorereignisse-Zugriffe werden hervorgerufen durch das Auftreten interner Prozessorereignisse, wie
z. B. Datcnfchler, Maschinenfehler. Adressierungsausnahme,
usw. die zu einer langen Liste bekannter Ereignisse gehören, welche die üblichen Prozessorunterbrechungen,
d. h. interne Unterbrechungen, hervorgerufen. 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 eespeichert sind, die mit der Unterbrechung im
Zusammenhang stehen, so z. B. Abschlußaufzeichnungen.
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 werden durch Unterbrechungen signalisiert, die für den Prozessor extern sind, d.h. externe Unterbrechungen.
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 werden 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-Datenfehlerunterbrechungen, usw.
Zusammenfassend kann man sagen, das mit der Erfindung die Möglichkeit geschaffen wird, die Adressiervorgänge
im Hauptspeicher für jede der verschiedenen Speicherzugriffsarten, die in Fig. IB gezeigt sind,
separat zu beeinflussen. Zu den in Fig. IB gezeigten
Zugriffsarten gehören die acht verschiedenen Speicherzugriffsarten, welche jedem Prozessor zur Verfugung
stehen, und die vier verschiedenen Speicherzugriffsarten, welche jedem Unterkanal zur Verfügung stehen.
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 nur vier verschiedene Prozessorzugriffsarten, welche im
gewählten Beispiel durch ein Adressenschlüsselregister dargestellt sind, das vier verschiedene Registerabschnitte
hat. Die Anzahl der Registerabschnitte im Adreßschlüsselregister ASR kann jedoch beliebig gewählt
werden entsprechend der Anzahl verschiedener Zugriffsarten, die in der Konstruktion der Anlage
vorgesehen sind.
Auf jeden Fall wird für jede durch die Schaltungen der Maschine identifizierbare Zugriffsart ein ASR-Regislerabschnitt
oder ein CS-Registerabschnitt vorgesehen mit entsprechenden Vorrichtungen in der AAS-Auswahlschaltung,
um einen ausgewählten Registerabschnitt auszulesen, wenn die entsprechende Zugriffsanforderung
bedient wird, wobei dann der Inhalt des ausgewählten Registerabschnitts der aktive Adreßschlüssel
wird, welchen die Anlage als Adreßkomponente benutzt, um den Ädressiervorgang für den betreffenden
Speicherzugriff zu beeinflussen. Für die durch den aktiven Adreßschlüssel AAS gegebene Adreßkomponente
kann folgendes gelten:
(!) sie kann eine direkte Beziehung zur physischen Adresse haben, indem der AAS mit der Programmadresse
verkettet wird, so daß beide zusammen eine physische Adresse im Hauptspeicher
ergeben;
(2) sie kann einen fest vorgegebenen Speicherzugriff im Hauptspeicher ermöglichen, wie es im Ausführungsbeispiel
der F i g. 11 gezeigt ist;
(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;
(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
Die Hauptspeichereingangsadresse, welche durch die in Fig. IA gezeigte Anordnung bereit gestellt wird, ist
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 Befehlsadressenregister, 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 AAS-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 AAS-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.
Bei der in Fig. IA gezeigten Anordnung ist die
Eingangsadresse einschließlich des AAS-Feldes eine logische Maschinenadresse, für welche noch eine
Übersetzung erforderlich ist, um eine gewünschte Speicherstelle im Datenverarbeitungssystem zu erreichen.
Auf der anderen 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.
A. Übersetzer mit Registerstapeln
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.
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öherwertigen 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.
Die restlichen Bit-Positionen 12—23 der physischen Adresse, welche 24 Bit 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 Blocknummernfeldes 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
B. Erweiterbarer Hauptspeicher
F i g. IC zeigt die Konfiguration eines Datenverarbeitungssystems,
das einen neuartigen erweiterbaren Hauptspeicher zur Verarbeitung übersetzter Adressen
hat Der Hauptspeicher besteht mindestens aus einem inneren Speicherteil 51, im folgenden kurz Inr.enspeicher
genannt, der b:\ zu 64 K Bytes Speicherkapazität hat. Die erste mögliche Erweiterung ist die Hinzul'ügung
eines äußeren Speicherteüs 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 folgenden 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.
Zur Adreßübersetzung ist ein Übersetzer 59 vorgesehen, der auch Schnittstelleneinrichtungen enthält für die
Verbindung des Außenspeichers 52 und des Asynchronspeichers 53 mit der Hauptspeicherkonfiguration.
Ein Hauptspeicherbus 56/4 (mit Bus sind im folgenden
Sammelleitungen bezeichnet) verbindet einen Prozessor 54 und einen E/A-Kanal 55 über eine Speicherprioritätsauswahlschaltung
56 mit der Hauptspeicherkonfiguration. Der Hauptspeicherbus 56Λ ist auch mit dem
Übersetzer 59 und mit dem Innenspeicher 51 verbunden.
Innenspeicher Zyklus-Signalleitungen 54A verbinden
den Innenspeicher 51 direkt mit der Speicherprioritätsauswahlschaltung 56. Sie übertragen Innenspeicherzyklussignale
(iSZ-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 bestimmte 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 4 096 Bits umfassen). Die fünf höherwertigen Bits auf den
Adreßbusleitungen 00—04 werden vom Übersetzer zum Prozessor übertragen, um von diesem während
eines Innenspeicherzyklus ISZ benutzt 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 bestimmte 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.
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 Speicheradressenregister auf dem Bus 54A direkt abgegeben werden. Die vom
Prozessor abgegebenen 16 Bit langen Adressen reichen gerade aus zur Adressierung der Höchstkapazität des
Innenspeichers (d. h. 64 K). Bei dieser Minimalkonfiguration
werden mit dem 16 Bit langen physischen Adressen Speicherschutzschlüssel benutzt entsprechend
den Nichtübersetzungsspeicherschutzschaltiingen. die
in F i g. 11 gezeigt sind.
Die Speicherschulzschlü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üsselwahlschaltungen 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 Adrcßbereichsbestimmungen je
nach Speicherzugriffsart möglich sind, kann separat kombiniert werden, entweder mit der Benutzung von
to Speicherschlüsseln bei Verwendung von nicht verschiebbaren Adressen, oder mit der Benutzung von
Adreßschlüsseln, bei Verwendung verschiebbarer Adressen.
Wenn man die Möglichkeit der A dreßverschiebung wünscht, die erlaubt, daß der Hauptspeicher über die Kapazitätsgrenze des Innenspeichers von 64 K hinaus erweitert werden kann, muß ein Übersetzer vorgesehen werden, wie es in F ig. IC gezeigt ist Es kann dann ein Außenspeicher hinzugefügt werden, welcher mit dem
Wenn man die Möglichkeit der A dreßverschiebung wünscht, die erlaubt, daß der Hauptspeicher über die Kapazitätsgrenze des Innenspeichers von 64 K hinaus erweitert werden kann, muß ein Übersetzer vorgesehen werden, wie es in F ig. IC gezeigt ist Es kann dann ein Außenspeicher hinzugefügt werden, welcher mit dem
Übersetzer durch Außenspeicherzyklus-Signalleitungen 58 verbunden werden, weiche die Außenspeicherzyklussteuerung
(OSZ) ermöglichen, die in F i g. 9G dargestellt
Der Übersetzer ermöglicht auch eine zusätzliche Erweiterung des Hauptspeichers über die Kapazitätsgrenze von 128 K, 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 ASZ werden 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 128 K 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 Fig.9G gezeigt sind, wobei die zugehörigen Schaltungen und Vorgänge in weiteren Einzelheiten im
Zusammenhang mit den Fig.9A und 9B beschrieben werden.
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ält auch Schnittstellen für den Außenspeicher und der
Asynchronspeicher.
C. Adreßbereichs-Verteiiung
Fig. 2A zeigt die Beziehungen zwischen den verschiedenen .Speicherzugriffsarten, welche durch
verschiedene Arten von Prozessorbefehlen und Kanalbefehlen hervorgerufen werden, und den entsprechenden
Datenadreßbereichen, die in dem Ausführungsbei-
fco spiel 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 eir Befehlsabriif im Befehlsadreßbereich 60 unter Benutzung
des ISS ausgeführt. Außerdem sind zwe
M verschiedene Opeianden-Zugriffsarten in F i g. 2A gezeigt,
welche in den Datenadreßbereichen 61 und 62 ausgeführt werden, wobei die Inhalte der Schlüsselregisterabschnitte
OPIS und OP2S benutzt werden.
F i g. 2A veranschaulicht die Speicherzugriffe, welche auf Grund verschiedener Piozessorbefehlsarten vorgenommen werden. Ein Speicher-Speicherbefehl ruft
Daten im OPl S-Datenbereich 61 oder irn OP2S-Datenbereich 62 ab und bewirkt eine Speicherung der
Resultate in den OP2S Datenadreßbereich 62. Ein
Befehl für direkte Speicheroperationen holt seine Daten von ISS-Adreßbereich 60 und speichert seine Resultate
in den OP2S-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 OP2S-Datenadreßbereich
62 und speichert sie in einem Allgemeinregister 63. Ein Verzweigungsbefehl holt einen Verzweigungszielbefehl
auch vom ISS-Adreßbereich 60.
Zwei verschiedene Arten von E/A-Unterkanalbefehlen sind in Fig.2A gezeigt Die eine Befehlsart wird
Direkt-Programmsteuerungs-E/A-Befehl genannt (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.
Die andere E/A-Befehlsart bewirkt die normale Art von asynchronen E/A-Operationen, welche allgemein
als Cycle-Steal-E/A-Operationen (CS) bezeichnet werden. Für diese zweite Befehlsart muß das E/A-Programm selbst (d. h. die Kanalbefehle) im »Schlüssel = 0
Kanalprogrammadreßbereich« 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 betreffenden
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 Unterka
nalprogramm hat, in welchem die Befehle die Möglich keit 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.
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 auszuv. ählen.
Wie in Fig. 2B gezeigt, enthält das Hauptprogramm
einen E/A-Betriebsbefehl, der einen E/A-Vorgang auslöst, und deshalb befindet sich der E/A-Betriebsbefehl
im ISS-Adreßbereich. Der OP-Codeteil des Befehls gibt an, daß es sich um einen E/A-Betriebsbefehl
handelt, und das R2-Feld bezeichnet ein Register, dessen Inhalt mit dem Adreßfeld kombiniert werden muß, um
eine Adresse zu erzeugen, die direkt oder indirekt einen »Indirekten Gerätesteuerblock« (IGSB) im 0P2S-Adreßbereich
bezeichnet. Falls mit indirekter Adressierung gearbeitet wird, steht die indirekte Adresse selbst
im OP2S-Adreßbereich. Die IGSB-Adressc ist entweder eine direkte oder eine indirekte Adresse, abhängig vom
Wert des I - Bit im E/A-Betriebsbefehl. Das heißt, also, daß der E/A-Betriebsbefehl im ISS-Adreßbereich steht
und der IGSB im OP2S-Adreßbereich steht
Es gibt zwei Arten von indirekten Gerätesteuerblökken IGSB:
(1) einen CS-Typ, oder
(2) einen D PS-Typ.
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 nach dem, ob das Kanalbefehlsfeld CMD anzeigt, ob
es eine E/A- Lese- oder Schreiboperation ist
Wenn das CMD-FeId anzeigt, daß der IGSB vom
CS-Typ ist enthält das zweite Wort im IGSB die Adresse des Unterkanalprogramms für das Gerät,
welches durch das GA-FeId im IGSB adressiert ist. Der
erste Kanalbefehl (d.h. Kanalsteuerwort), welcher
Gerätesteuerblock 0 (GSB-O) genannt wird, befindet sich in dem Adreßteil des IGSB. Ein Feld im GSB-O,
welches Verkettungsadresse genannt wird, gibt den Ort des nächsten Unterkanalsteuerwortes an, welches
GSB-I genannt wird, und welches ebenso eine Verkettungsadresse enthält, die den nächsten GSB
lokalisiert usw. bis der letzte GSB aufgefunden ist.
In diesem Ausführungsbeispiel befindet sich also das gesamte Kanalprogramm im »Schlüssel = 0 Adreßbe
reich«.
Jeder Gerätesteuer'olock GSB hält jedoch in seiner
ersten Wortstelle 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 Schlüsselfeld,
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 vom GSB-O enthalten ist, das sich an der Stelle EA +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-1 einen Schlüssel für GSB-1, der jeden
beliebigen Schlüsselwert haben kann, zur Festlegung des Adreßbereichs für die Daten, welche innerhalb
GSB-I adressiert werden. Der Schlüsselwert im GSB-I
kann also verschieden sein von dem Schlüsselwert in GSB-O usw.
Hieraus wird ersichtlich, daß sich aus der Erfindung eine sehr große Flexibilität in der Adreßbereichsaus wahl während dem Betrieb von E/A-Geräten im System
ergibt. Bei Benutzung von Speicherschutzschlüsseln ohne Übersetzung 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.
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.
F i g. 3A zeigt Schaltungseinzelheiten für die Steuerung der GSB-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 GSB-Schliissel durch den betreffenden
E/A-Unterkanal. Der GSB-Schlüssel wird in ein
117
GSB-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.
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-ROS-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 Unterkanaloperationem ist ein GSB-Abruf des
nächsten Adreßfeldes im laufenden GSB vom Adreßbereich mit Schlüssel = 0. Das GSB-Abruffeld in einem
ROS-Wort wird von einem ROS-Decodierer 314 entschlüsselt, welcher dann ein GSB-Abrufsteuersignal
abgibt, das die UND-Glieder 315 (0) 315 (1) und 315 (2) aktiviert, welche eine Eingabe in das GSB-Schlüsselregister
301 bewirken, das ein Teil des Registerstapels ist, der den ganzen Gerätesteuerblock GSB empfängt.
Nachdem der GSB-Abruf ausgeführt ist, wird der GSB im Unterkanal gespeichert, das GSB-Abruf-Signal
beendet und ein »Kein GSB-Abruf«-Steuersignal aktiviert, welches die UND-Glieder 316(0), 316(1) und
316(2) freigibt, um den GSB-Schlüssel aus dem
GSB-Schlüsselregister auszugeben, so daß dieser als CS-Schlüssel für die GSB-Datenzugriffsoperationen zur
Verfügung steht. Der C!5-Schlü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.
CJSpeicherprioritäts-Auswahlschaltung
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.
Mit jeder Unterkanalsteuereinheit ist auch eine Mehrzahl von Steuerleitungen verbunden, darunter ein
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 ig. 3B).
Die Speicherprioritätsauswahlschaltung 56 ist mit CS-Zyklus-Anforderungsleitungen eines jeden der Kanäle
1 ... P verbunder,, 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 Unterkanals an die AAS-Auswahlschaltungen 333 überträgt, welche auch
die Prozessoradreßschlüssd von den Prozessor-ASR-Bussen erhalten. Gesteuert von der Speicherprioritäts-Zyklusschaltung
332 wählen die AAS-Auswahlschaltungen 333 jeweils einen der empfangenen Adreßschlüssel
als den aktiven Adreßschlüssel AAS des Systems aus.
F i g. 3D zeigt Einzelheiten der AAS-Auswahlschaltung
333.
D. Prozessor
H ig.4 zeigt Einzelheiten der für die Beschreibung
wesentlichen Teile des Systemprozessors, der sich gegebenenfalls gleichzeitig mit den CS-Schlüsseln um
einen Speicherzugriff bemüht Die Prozessor-ASR-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 AAS-Auswahlschaltungen (Fig.3D)
erscheinen.
F i g. 4 zeigt diejenigen Steuereinrichtungen im Prozessor, die mit dem Adreßschlüsselregister ASR zusammenarbeiten. Das ASR wird geladen vom Prozessordatenbus (Datensammelleitung) mittels der Eingebesteuerung (EG), und die verschiedenen Adreßschlüssel werden aus dem Adreßschlüsselregister auf den Prozessordatenbus ausgegeben mit Hilfe der Ausgabesteuerung (AG). Die EG- und AG-Steuersignale werden vom Prozessor-ROS-Dekodierer abgegeben. Der Inhalt des Adreßschlüsselregisters ASR wird ständig abgegeben an die Prozessor-ASR-Busse, nämlieh den ISS-Bus, den OP2S-Bus, den OPl S-Bus und den OBA-Bus, welche mit Eingängen der ASS-Auswahlschaltung 333 (F i g. 3C) verbunden sind, von welcher Einzelheiten in Fig. 3D gezeigt sind. Die AAS-Auswahlschaltungen nehmen die Auswahl zwischen diesen drei Prozessorschlüsseln und etwas gleichzeitig vorliegenden CS-Schlüsseln vor, und bestimmen damit, welcher von diesen Schlüsseln der aktive Adreßschlüssel AAS wird. Fig.7 zeigt im Detail die ASR-Steuerschaltung anhand der Eingabe- und Ausgabeschaltungen für eine einzelne Bitpositionen des ASR. Alle anderen Bitpositionen des ASR haben entsprechende Steuerschaltungen.
F i g. 4 zeigt diejenigen Steuereinrichtungen im Prozessor, die mit dem Adreßschlüsselregister ASR zusammenarbeiten. Das ASR wird geladen vom Prozessordatenbus (Datensammelleitung) mittels der Eingebesteuerung (EG), und die verschiedenen Adreßschlüssel werden aus dem Adreßschlüsselregister auf den Prozessordatenbus ausgegeben mit Hilfe der Ausgabesteuerung (AG). Die EG- und AG-Steuersignale werden vom Prozessor-ROS-Dekodierer abgegeben. Der Inhalt des Adreßschlüsselregisters ASR wird ständig abgegeben an die Prozessor-ASR-Busse, nämlieh den ISS-Bus, den OP2S-Bus, den OPl S-Bus und den OBA-Bus, welche mit Eingängen der ASS-Auswahlschaltung 333 (F i g. 3C) verbunden sind, von welcher Einzelheiten in Fig. 3D gezeigt sind. Die AAS-Auswahlschaltungen nehmen die Auswahl zwischen diesen drei Prozessorschlüsseln und etwas gleichzeitig vorliegenden CS-Schlüsseln vor, und bestimmen damit, welcher von diesen Schlüsseln der aktive Adreßschlüssel AAS wird. Fig.7 zeigt im Detail die ASR-Steuerschaltung anhand der Eingabe- und Ausgabeschaltungen für eine einzelne Bitpositionen des ASR. Alle anderen Bitpositionen des ASR haben entsprechende Steuerschaltungen.
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 ROS-Datenregister 406 eingegeben ist,
aktiviert wird, um Eingabe und Ausgabe bei den ASR-Registerabschnitten ISS, OPlS und OP2S zu
steuern, bzw. um andere Prozessoroperationen zu veranlassen.
D.l Register für letzten aktiven
Adreßschlüssel AAS
Adreßschlüssel AAS
Der in Fig. 4 gezeigte Prozessor enthält auch ein Register für den letzten aktiven Adreßschlüssel, mit
dessen Eingangsseite eine AAS-Torschallung 407
verbunden ist, welche einerseits an den AAS-Bus von Fig. 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 h1) vorliegenden aktiven Adreßschlüssel vom Prozessor-Adreßschlüsselregister
ASR, sofern die Fehlerkippschaltung 401 keinen Fehler auf einer Fehlersperrleitung
anzeigt.
Wenn aber ein Maschinenfehler (MCK.) oder ein
Programmfehler (PCK) im Prozessor auftritt, wird die Fehlerkippschaltung 401 gesetzt Als Folge davon wird
die AAS-Torschaltung 407 gesperrt, weil das Fehlersperrsignal
abfällt, um dadurch den letzten aktiven Adreßschlüssel des Prozessors zurückzuhalten (LKSA),
welcher zu der Zeit vorlag, als die Fehlerkippschaltung 401 gesetzt wurde. Das Maschinenfehlersignal (MCK)
und das Programmfehlersignal (PCK) werden in einem Zwangsadreßdecodierer 402 eingegeben (außer während
eines Segmentregister-Zyklus), um in die ROS-Steuerschaltung 403 zwangsweise eine Festspeicheradresse
einzugeben, weiche 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
Dauerfehler ist Das AAS-Register 408 bewahrt inzwischen den LKSA auf, um die zuletzt gültig
gewesene Adreßbereichsfestlegung aufrecht zu erhalten, 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.
Eine der jeweils letzten diagnostischen Operationen, die vorgenommen werden, bevor der Zustand eines
Prozessers geändert werden kann, ist die Speicherung des Gesamtzustands des Prozessors in einem Ni.eau-Statusblock
(NSB) im Hauptspeicher, wozu der Inhalt des Adreßschlüsselregisters ASR gehört. Durch ein
Signal AG AASR (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
EGOPlS bewirkt die Eingabe des LKSA in den OPl K-Registerabschnitt des ASR für die Diagnoseoder
Fehlerbehebungsoperationen (siehe Abschnitt H.3). Wenn die Fehlerbehebungsoperationen beendet
sind, wird der letzte normale ASR-Wert vom NSB im Speicher wieder geladen, um den normalen Betrieb
wieder aufzunehmen.
D.2 Befehle zum Laden/Abspeichern des ASR
Fig.8B und 8C zeigen die Befehle zur Steuerung folgender beiden Operationen:
(1) Laden des Adreßschlüssels in das ASR entweder von einer Wortstelle im Hauptspeicher oder von
einem bezeichneten Allgemein-Register AR;
(2) die Abspeicherung von Adreßschlüsseln vom ASR entweder in eine Wortstelle im Hauptspeicher,
oder in ein bezeichnetes Allgemeinregister AR.
F i g. 8B zeigt die Vorgänge bei Ausführung des Befehls »ASR/Speicher Laden/Abspeichern«. Mit diesem
einzelnen Befehl kann entweder cas Laden des ASR aus dem Hauptspeicher oder das Abspeichern des
Inhalts des ASR in den Hauptspeicher gesteuert werden.
F i g. 8B zeigt die Einteilung des 16 Bit langen Befehls
»ASR/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 K-FeId in den Bit-Positionen 5 bis 7 adressiert den Teil des ASR
(oder das ganze ASR), der eingegeben oder ausgegeben werden soll. Die K-Werte 0, 1, 2 oder 3 bezeichnen die
Registerabschnitte ISS, 0P2S, OPlS bzw. das gesamte ASR, zur Benutzung durch diesen Befehl. Eine logische
Hauptspeicheradresse wird erzeugt mit Hilfe des RB-Feldes den Bit-Positionen S und 9, welches ein
Barisregister bezeichnet, und die Zugriffsmodusbits 10 und 11 (AM) weiche 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, weiche 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 X = O ist,
dann wird der Inhalt der adressierten Wortstelle in demjenigen ASR-Teil abgespeichert, der durch das
K-FeId bezeichnet ist. Wenn das X-Bit = 1 ist, dann wird
der angegebene AKR-Teil in der adressierten Wortstelle abgespeichert.
In ähnlicher Weise stellt Fig.8C die bei der Ausführung des Befehls »ASR/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.
In ähnlicher Weise stellt Fig.8C die bei der Ausführung des Befehls »ASR/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 R-FeId in den
Bit-Positionen 8 bis 10 ein bestimmtes Allgemein-Register AR, welches zum Laden oder Abspeichern eines
oder mehrerer Schlüssel in oder vo.i dem bezeichneten Teil (bzw. den bezeichneten Teilen) des ASR benutzt
wird.
Die entsprechenden Operationen werden im Prozessor ausgeführt aufgrund von Signalen auf den mit EG
bzw. AG bezeichneten Ausgangsleitungen des Prozessor- ROS-Decodierers 405 (Fig.4), welche mit den auf
dem Datenpfad des Prozessors auftretenden Signalen die im Zusammenhang mit F i g. 8B beschriebenen
Operationen veranlassen.
E. Übersetzer
Fig. 9A und 9B enthalten Einzelheiten des in Fig. 1C
gezeigten Übersetzers 59, welcher die mit Fig. IA beschriebenen Übersetzungsvorgänge für Adreßverschiebung
vornimmt. Diese Adreßverschiebungs-Übersetzungsschaltungen können den physischen Adreßbereich
von 64 K (216) Bytes auf 16 Millionen (224) Bytes
vergrößern, was also einer Erweiterung des Innenspeichers von 64 K Bytes entspricht.
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
Bit lange physische Adresse umwandelt, die Zugriff zum Innenspeicher, Außenspeicher oder Asynchron-Speicherhat.
Dieser Übersetzungsvorgang ermöglicht die dynamische Zuteilung physischer Speicherkapazität zu logischen
Adreßborcichcn und die gemeinsame Benutzung
physischer Speicherkapazität von mehreren logischen Adreßbereichen 8 Sätze (Stapel) von je 32 Segmentregistcn
(SR) sind für die 8 verschiedenen möglichen Werte der Adreßschlüssel vorgesehen, was insgesamt 256
Segmentregister ergibt. Jeder geladene SR-Stapel kann eine vollständige Abbildung eines Speicherbereiches
enthalten, der bis zu 64 K Bytes enthält, die in Blöcken von je 2 K Byte Speicherkapazität verteilt sein können.
Mit einem Stapel kann auch ein Adreßbereich adressiert
werden, der weniger als 64 K Bytes hat, indem man lediglich die Validitäts-Bit-Position in einem oder
mehreren der Segmentregister auf eins setzt, so daß nur diejenigen Segmentregister, bei denen die Validiläts-Bh
= O sind, die Blöcke mit je 2 K Bytes Kapazität ·> bezeichnen, welche zu einem adressierbaren Bereich
gehören, der durch einen zugeordneten Adreßschlüssel identifiziert ist.
Für jeden Adreßschlüssel ist ein separater Segmentregisterstapel vorgesehen, um ein schnelles Umschalten
der logischen Adreßbereiche zu ermöglichen ohne die Notwendigkeit der Wegspeicherung und Wieder-Einspeicherung
der Adreßbereichspeicherabbildungen des Systems.
Der Ädreßverschiebungsübersetzer, der in den
F i g. 9A und 9B gezeigt ist, ermöglicht eine Erweiterung des Hauptspeichers durch einen Außenspeicher von bis
zu 64 K Bytes in Inkreinenten von 16 K. 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 eine Kapazität von 16 K Bytes haben. Erweiterungen
der Speicherkapazität über die 128 K Bytes des Innep.speichers und Auöenspeichers hinaus bedürfen
einer zusätzlichen Asynchronspeichereinheit (Fig. IC),
durch welche der physische Speicher von 128 K Bytes bis zu einem Maximum von 16 Millionen Bytes
vergrößert werden kann.
Der größte durch die Maschine statisch adressierbare Adreßbereich, welcher allen gleichzeitig ablaufenden jo
Programmen zur Verfügung steht, wenn alle Segmentregister mit verschiedenen physischen Blockadressen
geladen sind, beträgt 2·9 Bytes. Diese Grenze ist bestimmt durch die 19 Bit lange Eingangsadresse,
welche in F i g. 1A gezeigt ist, und die entsteht, 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, welche
durch die drei Abschnitte des ASR definiert sind, nämlich ISS, OPlS und OP2S, was also eine
Adressierbarkeit eines Adreßbereichs von max. 64 K bis zu max. 192 K Bytes ergibt.
Das heißt, für einen physischen Hauptspeicher mit einer Kapazität zwischen 512 K Bytes und 16 Millionen
Bytes ergibt sich eine Adressierungsmöglichkeit von nur bis zu 512 K Bytes bei einem bestimmten geladenen
Inhalt der Segmentregister; dies wird als die größte
statische Maschinenadressierbarkeii bezeichnet. Wenn
man nun eine Adressierung über die 512 K Bytes des statischen Maximums hinaus vornehmen will, so muß
man die Segmentregister durch Programme umladen, um eine Adressierbarkeit anderer Bereiche im Hauptspeicher
zu erhalten.
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.
Wenn in das System ein Obersetzer eingebaut wird, wie er in F i g. 1A gezeigt ist, so wird seine Benutzung
durch ein Bit Nr. 14 im Prozessorstatuswort (PSW) gesteuert, und zwar durch Ausgangsleitungen des
Prozessor-ROS-Decoders in F i g. 4, bei Vorliegen des in Fig. 13A gezeigten Freigabe/Sperrbefehls. Bit 14 im
Freigabe/Speirbefehl 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 Fi g. 10 gezeigte Schaltung bestimmt, ob der Übersetzer
freigegeben wird oder nicht. Wenn der Übersetzer nicht freigegeben wird, und wenn das SP-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.
Fi g. 9A und 9B zeigen im Einzelnen die Schaltungen,
Busleitungen und Schnittstellenleitungen für den Übersetzer 59 des Systems von Fig. IC1 gemäß folgender
Aufstellung:
E.l Schnittstelle Prozessor/Übersetzer
(1) Speicheradreßbus 901. Es 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 Übersetzadresse
an den Prozessor zurückgeschickt um, falls erforderlich, zur Adressierung des Innenspeichers
51 benutzt zu werden. Die 10 niederwertigen Bits (D-Feld) brauchen nicht übersetzt werden.
(2) Speicherdatenbus 902 zum Speicher. Er enthält 16 Datenleitungen und zwei Paritätsleitungen. Er
überträgt Speicherdaten und Segmentregisterinhalte vom Prozessor zum Übersetzer.
(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.
(4) Bus für aktiven Adreßschlüssel (AAS-Bus). Diese drei Leitungen übertragen den aktiven Adreßschlüssel
AAS von der Speicherprioritätsauswahlschaltung (F i g. 3C) zum Übersetzer, um einen
bestimmten Se.gmentregisterstapel im Übersetzer auszuwählen.
(5) Speicherschreiben OPO. Einzelleitung vom Prozessor, die dem Übersetzer signalisiert, daß eine
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.
(6) Speicherschreiben OPl. Einzelleitung vom Prozessor, die dem Übersetzer signalisiert, daß eine
Schreiboperation 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 list
(7) Übersetzerfreigabe. Einzelleitung, welche ein Prozessorsignal an den Übersetzer abgibt daß den
Übersetzer für seine Funktion freigibt Dieses Signal wird aktiviert durch den Freigabe/Sperrbefehl.
(8) Speicheranforderung an Übersetzer. Diese Einzelleitung ü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
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.
(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.
(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.
(11) Innenspeicherzyklus (ISZ). Diese Leitung überträgt
ein vom Übersetzer generiertes Signal, welches den Prozessor auffordert, dem Innenspeicher 5i mit
jeder neuen physischen Adresse ein Speicherzeitsignal zur Verfügung zu stellen. Wenn ein
Außenspeicher- oder Asynchronspeicherzyklus (OSZ pder ASZ) ausgeführt werden soll, wird diese
Leitung deaktiviert, so daß der innere Speicher nicht ausgewählt wird.
(12) Übersetzerspeicher besetzt. Diese Leitung überträgt
einen vom Übersetzer generiertes Signal, welches dem Prozessor anzeigt, daß er die
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
Speicherzyklus 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.
(13) Übersetzer eingebaut. Diese Leitung überträgt ein vom Übersetzer generiertes Signal, welches dem
Prozessor anzeigt, daß ein Übersetzer 59 im System eingebaut ist.
(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).
(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.
(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 Überwachungsprograrnm oder von einem E/A-Unterkanal stammt
(17) Zyklusende. Diese Leitung überträgt ein vom
Prozessor generiertes Signal, welches dem Übersetzer anzeigt, daß jetzt der Speicherzyklus
beendet wird.
(18) Segmentregisterzyklus. 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 OPl benutzt, um anzuzeigen, ob der
(18) Segmentregisterzyklus. 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 OPl benutzt, um anzuzeigen, ob der
ίο Zyklus ein Lese- oder Schreib-Zyklus als Teil eines
Befehls »Segmentregister abspeichern« oder »Segmentregister laden« ist.
E.2 Schnittstelle Übersetzer/Außenspeicher
Die Schnittstelle vom Übersetzer zum Außenspeicher ist in Fig.9B gezeigt. Zu ihr gehören folgende
Leitungen:
(1) Kartenauswahlleitungen. Diese vier Leitungen, welche bezeichnet sind mit Kartenauswahl 8OAC,
ii2K und 128/C, wählen je eine Speicherkarte von
16 K Bytes im Außenspeicher aus.
(2) Leitungen TCSX und TCSY. Diese sechs Leitungen übertragen X-Koordinaten und Y-Koordinaten für
die ausgewählte Karte, um einen bestimmten Bereich auf dieser Karte auszuwählen.
(3) Leitungen »Byte 0 Schreiben« und »Byte 1 Schreiben«. Diese vier Leitungen übertragen
Zeitgebersignale zu den vier Außenspeicherkarten, um ein Byte zu schreiben.
Wenn der Übersetzer die physische Speicheradresse vom entsprechenden Segmentregister erhält, bestimmt
er, ob ein Zugriff zum Innenspeicher, zum Außenspeieher
oder zum Asynchronspeicher gemacht werden muß; er aktiviert die Schniitstellenleitungen zum
Außenspeicher nur, wenn ein Außenspeicherzyklus erforderlich ist. Die Leitungsbrücken, welche in der
Außenspeichersteuerung eingebaut werden (Fig.9B), zeigten an, welche der vier Karten der Außenspeichereinheit
installiert sind.
E.3 Schnittstelle Übersetzer/Asynchronspeicher
Die Schnittstelle vom Übersetzer zum Asynchronspeicher(Fig.9A
und 9B) umfaßt folgende Leitungen:
(1) Asynchronspeicher Ausgabedaten/Parität. Diese 16 Datenleitungen und zwei Paritätsleitungen
bilden den Speicherdatenbus zur Asynchron-Speichereinheit.
(2) Asynchronspeicher Eingabedaten/Parität. Diese Ί6
Datenleitungen und zwei Paritätsleitungen bilden den Speicherdatenbus von der Asynchronspeichereinheit
zum Prozessor und zum Kanal.
(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 SAR-Bits 0—12, welche im Asynchron-Speicherzyklus
in F i g. 9G gezeigt sind.
(4) Asynchronspeicher oberes SAR Aus. Diese zehn Leitungen übertragen die 10 niederwertigen Bits
13—22 im Asynchronspeicherzyklus, aber nicht Bit 23 des Asynchronspeicherzyklus (F i g. 9G). Die Bit
13 bis 22 adressieren ein Wort im ausgewählten Block.
(5) Byte 0 Schreiben. Diese Leitung überträgt das niedrigste Bit Nr. 23 der physischen Adresse, um
anzuzeigen, ob das linke Byte des adressierten Wortes während des Asynchronspeicherzyklus für
eine Speicheroperation benutzt wird.
(6) Byte 1 Schreiben. Diese Leitung informiert den Asynchronspeicher, daß das rechte Byte des gerade
adressierten Wortes während des Asynchronspeicherzyklus einer Speicheroperation unterliegt.
(7) Asynchronspeicherauswahl. Diese Leitung zeigt dem adressierten Speichermodul an, daß ein
Speicherzyklus begonnen werden soll. Diese Auswahlleitung wird nur aktiviert während eines
Asynchronspeicherzyklus, und wenn keine logische Befehlsadresse und keine Speicherschutzanzeige
vom Übersetzer festgestellt wurden.
(8) Schnättstellentakt und Schnittstellentakt 90°. Diese
zwei Taktsignale haben eine Periode von 440 Nanosekunden mit einer Impulsdauer von 50% pro
Periode. Die beiden Taktsignale haben eine Phasenverschiebung von 90° gegeneinander; sie
sind nur aktiv, wenn das Asynchron-Speicherauswahlsignal auch aktiv ist. Diese Taktsignale können
in der Asynchron-Speichereinheit für folgendes benutzt werden: Synchronisierung innerhalb der
Speichereinheit, Vermeidung von Problemen beim Wiedereinschreiben, Einspeicherung von Daten in
Kippschaltungen, und zur Erzeugung von Antwortsignalen zu den vorgegebenen Zeitpunkten.
(9) Rückantwort. Auf dieser Leitung erscheint ein Signal von der Asynchronspeichereinheit, wenn der
adressierte Speicherplatz installiert ist.
(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.
(11) Normales Asynchronspeicherzyklusende. Auf dieser
Leitung wird ein Zeitgabeimpuls abgegeben, wenn die Rückantwortleitung ein Signal vom
Asynchronspeicher 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.
E.4 Segmentregisterauswahl
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 AAS-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 AAS-Bit 2 benutzt, um von den vorgewählten Segmentregistern zur Einschränkung
zunächst vier auszuwählen und zwar entweder von den gradzahligen oder den ungr;:-dzahligen Stapeln. Die vom
AAS-Bit 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 AAS-Bit 1 im Zustand 0 ist, oder von den Stapeln 2,3 und 6,7, wenn das AAS-Bit
1 im Zustand 1 ist. Von dem ausgewählten Paar wird
ίο schließlich ein einzelnes Register ausgewählt aufgrund
des Zustandes des SR-Hoch-Niedrig-Auswahl-Bii (AAS-Bit 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.
E.5 Steuerung zum Laden/Abspeichern
der Segmentregister
der Segmentregister
Fig. 8A zeigt die Operationen der Befehle zum
Laden und Abspeichern der Segmentregister (SR). Fig. 17 zeigt die Prozessorspeichersteuerung, und
F i g. 9A und 9B zeigen die zugehörigen Übersetzersteuerungen, welche zur Ausführung dieser Befehle
benötigt werden.
In F i g. 8A ist gezeigt, wie der Befehl »SR Laden« die Eingabe einer physischen Blockadressc in ein gewähltes
Segmentregister von einem adressierten Wortspeicherplatz im Hauptspeicher steuert. Der Befehl »SR
jo Abspeichern« bewirkt das Kopieren des Inhalts eines
ausgewählten Segmentregisters in eine adressierte Wortspeicherstelle im Hauptspeicher.
Das Format der 16 Bit langen Befehle zum Laden und Abspeichern der Segmentregister wird bestimmt durch
einen 5 Bit langen OP-Code und ein 3 Bit langes Modifizierfeld, welche in den Bit-Positionen 0 bis 4 bzw.
13 bis 15 stehen.
Das Bit X in der Bit-Position 12 des SR-Befehls gibt
an, ob es sich um eine Lade- oder um eine Abspeicher-Operation handelt. Wenn X auf 0 gesetzt ist,
wird der Inhalt der adressierten Wortspeicherstelle im Hauptspeicher in das ausgewählte Segmentregister
geladen. Wenn das X-Bit auf 1 gesetzt ist, dann wird der Inhalt des gewählten Segmentregisters in der adressierten
Wortspeicherstelle abgespeichert.
Das R-FeId 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 AR-Bit-Positionen 0 bis 4 enthalten eine Segmentregisternummer, welche das
gewählte Segmentregister identifiziert, welches geladen oder aus dem abgespeichert werden soll.
Die gewünschte Wortspeicherstelle im Hauptspeicher wird adressiert mit Hilfe einer logischen Adresse,
welche generiert wird unter Benutzung des RB-Feldes in den Bit-Positionen 8 und 9, die ein Basisregister
angeben; das AM-FeId in den Bit-Positionen 10 und 11
(Zugriffsart) gibt an, ob ein Zugriffsart-Wort der Instruktion folgt Der Inhalt des Zugriffsart-Wortes
(AM-Wort) und des RB-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 gene-
rierte 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 Übersetzung 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 Überset-7ungsoperation
benutzt wird, bevor dieser Inhalt durch den Segmentregisterladebefehl zu einer anderen physischen
Blockadresse verändert wird.
Wenn der Prozessor nicht im Übersetzerbetrieb arbeitet, ist die generierte effektive Adresse die
physische Adresse im Hauptspeicher.
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.
Fig. 17 zeigt die Steuereinrichtung des Prozessors, die bei Ausführung der Befehle zum Laden bzw.
Abspeichern der Segmentregister benutzt werden. Diese Steuerschaltungen im Prozessor generieren ein
Segmentregisterzyklussignal, welches vom Übersetzer (Fig.9A und 9B) benutzt wird, um das Laden oder
Abspeichern eines Segmentregisters zu bewirken. 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 T-Ausgangssignal der Kippschaltung
481 freigegeben wird. Bei aktivem Ausgangssignal des UND-Gliedes 482 wird eine SR-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 »SR-Anforderung«, um
anzuzeigen, daß ein Zugriff zu einem Segmentregister erforderlich ist Das T-Ausgangssignal der Kippschaltung
486 gibt das UND-Glied 488 frei, um so ein SR-Zyklussignal zu erzeugen unter der Voraussetzung,
daß keine CS-Zyklusanforderung vorliegt, da CS-Zyklen
die höchste Priorität haben. Der SR-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 SR-Anforderungssignal vom C-Ausgang der
Kippschaltung 486 an seinem Eingang vorliegt. Der andere Eingang des UND-Gliedes 493 ist mit dem
T-Ausgang der Prozessorzyklus-Kippschaltung verbunden. (Der T-Ausgang einer Kippschaltung gibt das echte
oder wahre Ausgangssignal ab, während der C-Ausgang das Komplementärsignal abgibt).
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 T-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 T-Ausgangssignal (wahres Ausgangssignal) der
Prozessorspeicheranforderungskippschaltung 492, die immer gesetzt wird, wenn eine Prozessoranforderung
für einen Speicherzyklus vorliegt.
Während ein Segmentregisterzyklussignal auf Leitung 923 vorliegt, wird das auszuwählende Segmentregister
von der laufenden Adresse im Prozessorspeicheradressenregister SAR adressiert. Daraufhin erfolgt
eine Auswahloperation für das Segmentregister in der gleichen Weise, wie es bei der Beschreibung des
Übersetzers im Abschnitt »Segmentregisterauswahl« erläutert wurde.
Wie bereits erwähnt, bestimmt der Binärwert des X-Bit im Befehl, ob eine Lande- 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 SR-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 des 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 SR-Zyklus zu generieren, welcher das Segmentregister auswählt und bewirkt, daß der
Inhalt des Speicherdatenregisters SDR in das ausgewählte Segmentregister übertragen wird.
Der Befehl »Segmentregister abspeichern« läuft ähnlich ab, aber mit umgekehrten Ablauf der Mikroroutine,
so daß zuerst die Schaltung in Fig. 17 veranlaßt
wird, einen SR-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.
E.6 Steuerung für Vorgriffs-Übersetzereinheit
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 Blockadressen ü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 Prozessorspeicheradressenregi-
ster SAR vor. Für die D-Bits ν. ird also keine zusätzliche
Übersetzungszeit benötigt; sie werden gleichzeitig an alle drei SpeichereinL ;iten abgegeben.
Für die Vorgriffsschaitungen 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 F i g. 6. Die beiden Vorgriffsbits
werden generiert und in das Segmentregister eingesetzt, wenn die Blocknummer durch die Prozessorspeichersteuerung
in das Segmentregister eingesetzt wird; diese Steuerung welche die in F i g. 8A gezeigten Operationen
ausführt, ist in Fi 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 Vorgriffsbits
gesetzt sind und die Segmentregister geladen sind, werden die Vorgriffsbits 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 Vorgriffsbits, können durch ein Programm gelesen werden, daß einen SR-Speicherbefehl benutzt.
Die Vorgriffsbits werden in der in F i g. 9G gezeigten Art codiert. Das linke Vorgriffsbit wird auf 1 gesetzt,
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 Vorgriffsbils 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.
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.
Die Schaltungen zum Setzen der Vorgriffsbits sind in Fig. 9C gezeigt. Dazu gehören die Decodierer 901A
und 902/4, denen beide der höherwertige Teil der zugeordneten Blocknummer zugeführt wird, die in ein
Segmentregister bei Ausführung eines Segmentregisterbefehls geladen wird, wie dies im Zusammenhang
mit Fig.8A beschrieben wurde. Das ausgewählte Segmentregister befindet sich in einem der Stapel 0 bis 7
(F i g. 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 (Fig. 4) eingesetzt wird.
Dann gibt der Prozessor die zugeteilte Blocknummer vom SDR auf den Prozessordatenbus (F i g. 3C), welcher
mit dem Speicherdatenbus zum Speicher (Fig.9A) verbunden ist, über welchen die Daten übertragen
werden, welche in ein adressiertes Segmentregister in einem <ler Stapel 0 bis 7 zu laden sind. Der
Segmentregisterladeweg ist in Fig. 9C im einzelnen gezeigt; die Signale auf den SR-Eingangsleitungen
00 — 07 werden zur Erzeugung der Vorgriffbits 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 901/4
verbunden. Jeder der 0-Decodierer gibt eine 1 als Vorgriffssignal ab, wenn an seinen Eingängen lauter
Nullen vorliegen, und ergibt ein 0-Signal am Ausgang ab, wenn irgendeiner der Eingänge gleich 1 ist. Wenn
der Decodierer 901A lauter Nullen in den Bit-Positionen
00 bis 07 feststellt, überträgt er ein 1-Bit in die linke Vorgriffsbitstelle des adressierten 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 90M zeigt an, ob der physische
Block, dessen Adresse geladen wird, im Innenspeicher steht oder nicht; hiervon hängt es ab, ob ein ISZ-Signal
erzeugt werden muß.
Wenn der Decodierer 902Λ lauter Nullen in den
SR-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 das die Innenspeichereinheit nicht
die betroffene Speichereinheit ist und wenn Bit 0 bis 6 alle Null sind, daß dann der Decodierer 902A 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.
Bei jedem Segmentregister also, das geladen wird, werden die Vcrgriffsbits so gesetzt, daß sie diejenige
Speichereinhe'·' angeben, welche den uugeordneten Block enthält. Die SR-Ladeoperation erfolgt während
eines SR-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.
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 00 bis 04 des Speicheradreßbus 901
über das PH-Register zu den Segmentregisterstapelr 0-7 (Fig.9A) übertragen. Diese Adreßsignale gelangen
auf die Leitungen 00 bis 07 des Speicheradreßbus
J5 901 (Siehe F i g. 3C) vom Speicheradreßregister SAR
(Fig.4) über den Prozessoradreßbus. Der Inhalt de;
SAR stammt aus dem Allgemein-Register, welche; durch den Befehl »Segmentregister Laden« (F i g. 8A^
ausgewählt wurde, von welchem Allgemein-Register die Bits 0-7 die SR-Adreß-Bits auf den Leitungen 00 bis 07
des Bus 901 sind. (Das Allgemein-Register AR wird irr Niveau-Stapel 431 (Fig.4) durch eine Niveaustapel·
adresse ausgewählt, die vom AR-FeId im Befeh »Segmentregister laden« abgeleitet wurde).
Der Konzentrator 922 gibt dann die Stapeladress« des gewählten Segmentregisters auf seinen folgender
Ausgangsleitungen ab: AAS-Bit 2, AAS-Bit 1, und »SP Hoch-Niedrig-Auswahl« (Leitung 935). Die Leitung 93i
gibt ein Eingangssignal an die Grundsteuerung ir
M Fig.9B. Diese Schaltungen sind im Einzelnen ir
Fig.9D-2 gezeigt; sie erzeugen die Signale für di( Leitungen 932 und 933, die mit den Segmentregistersta
pein 0—7 zur Angabe des niederwertigen Stapeladreß
bits verbunden sind, und entsprechend der wahren um der komplementären Form des Signals auf Leitung Oi
des Speicheradreßbus 901. Die Signale auf der Leitung AAS-Bit 1 entsprechen der wahren und der komple
mentären Form der Signale auf der Busleitung 06; unc das Signal auf der Leitung AAS-Bit 2 entspricht den
to Signal auf der Bus-Leitung 05.
Bei einem Speicherzugriff im Übersetzungsbetriet wird ein Stapelregister ausgewählt durch die gleiche Ar
von Konzentrationsoperation, wie sie im Abschnit »Segmentregister-Auswahl« beschrieben wurde. Au:
e5 den vo'Ti Konzentrator angewählten Segmentregisterr
werden die beiden Vorgriffsbits zur gleichen Zeit wi< die übrigen 16 Bits ausgelesen. Für die Vorgriffsbits win
ein separater Konzentrator 931 benutzt, weil e
schneller arbeitet als der weitere Konzentrator 921, der die Blockadreß-Bits für das gleiche Segmentregister
auswählt Am Ausgang des Konzentrator 931 wird jeweils ein von drei Ausgan^sleitungen aktiviert, um den
gewählten Speicherzyklus anzugeben, nämlich entweder ISZ, OSZ oder ASZ. Für den Prozessor werden die
lSZ-Signalleitungen 54Λ vom Prozessor durch die
Speicherprioritätsauswahlschaltung 56 zur Innenspeichereinheit
51 ^Fi g. IC) benutzt. Da die Leitungen
SAA auf jeden Fall existieren, ob nun das System einen Übersetzer hat oder nicht, wird die Innenspeicherzyklus-Steuerleitung
vom Konzentrator 931 mit dem Prozessor verbunden, um eine ISZ-Adressieropei ation
zu veranlassen. Die Leitungen für den Außenspeicherzyklus und den Asynchronspeicherzyklus führen zu den
Fig.9E bzw. 9F-1, um die Adreßauswahl in den betreffenden Einheiten zu veranlassen.
F. Operandenbereichsabgleich
Eine speziell vorgesehene Einrichtung ist der Operandenbereichsabgleich (OBA). Wenn diese Bedingung
im Adreßschlüsselregister ASR gesetzt ist, ergibt sich ein spezieller Adressierungszustand, bei dem alle
Operandenabrufe zwangsweise im OP2S-Adreßbereich stattfinden, während der Adreßbereich, der durch den
OPl S-Adreßschlüssel angegeben ist, obwohl der Schlüssel im OPIS-Registerabschnitt des Adreßschlüsselregisters
ASR nicht geändert wird.
Der OBA-Zustand des Systems wird herbeigeführt durch den in Fig. 13A gezeigten Freigabebefehl, wenn
dessen OBA-Bit 13 auf 1 gesetzt ist. Wenn dieser Befehl ausgeführt wird, bewirkt das gesetzte OBA-Bit, daß der
OBA-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 OBA-Zustand aktiviert
wird. Es wird jedoch nicht zu dem Adreßbereich zugegriffen, der im OPI S-Abschnitt definiert ist, solange
der OBA-Zustand im ASR aktiv ist. Die OBA-Einrichtung wird durch die in Fig.3D gezeigte Schaltung
implementiert, in welcher eine Aktivierung der OBA-Leitung vom ASR zwangsweise bedingt, daß der
AAS-Ausgang den OP2S-Schlüssel abgibt, jedesmal wenn bei Ausführung eines Befehls im Prozessor eine
Zugriffsanforderung entweder für einen OPI-Operanden oder einen OP2-Operanden vorliegt.
Wenn der OBA-Zustand beendet wird durch Ausführung eines Sperrbefehls, dessen OBA-Bit 13 auf Null
gesetzt ist, wird der Schlüsselwert im OPlS-Registerabschnitt
wieder in Benutzung genommen, und bei jeder OPl -Operandenanforderung ausgegeben.
G. Adreßbereichsbestimmung durch
Schlüssvleingabe ins ASR
Schlüssvleingabe ins ASR
Wenn die OBA-Einrichtung gesperrt ist, haben die drei Adreßschlüssel im Adreßschlüsselregister ASR
folgende Funktion:
Jeder in das ASR geladene Adreßschlüssel definiert einen Adreßbereich dem zugegriffen werden kann.
Jeder 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 64 K 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 definert
wird), erfolgen im Adrelibereich, 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 Datenoperand 2 betreffen (wie beim
Entwurf der Befehlsstruktur vorgesehen), im Adreßbereich, der durch den 0P2S definiert ist
Wenn z.B. ISS = OP1S = OP2S, erfolgen alle
Speicherzugriffe zu dem gleichen logischen Adreßbereich von 64 K Bytes Kapazität Wenn ISS nicht gleich
OPl ist wenn aber OP1S = OP2S, dann erfolgen die
Instruktionsabrufe im ISS-Adreßbereich und die Datenzugriffe erfolgen im OP2-Adreßbereich. Wenn ISS#
OP1S#OP2S dann erfolgt der Befehlsabruf im ISS-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 Fig.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
ASR privilegiert sind.
H. Laden des ASR bei Unterbrechung
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 best'mmter Adreßschlüssel erfordert. Zu den
Prozessorunterbrechungen gehören: Unterbrechungen zum Überwachungsprogrammaufruf, E/A-Geräteunterbrechungen,
Maschinenfehler-ZProgrammfehler-Unterbrechungen,
Programm-Protokoll-Unterbrechungen, Bedienungsfeld-Unterbrechungen und Unterbrechungen
bei thermischer Überlastung. Diese Prozessor-Unterbrechungen werden manchmal Klassen-Unterbrechungen
genannt.
Es wird angenommen, daß alle Unterbrechungs-Routinen im Adreßbereich mit Schlüssel = O untergebracht
sind. Deshalb muß in den ISS-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ßbereich untergebracht sein können, kann
der zu den speziellen Unterbrechungsdaten gehörende Adreßschlüssel in den OPIS-Registerabschnitt geladen
werden. Ein OPl-Schlüssel wird eingegeben, wenn eine Klassenunterbrechung erfolgt (d. h. Eingabe eines
Eingangssignals in die Zwangsadreßschaltung 402 in F i g. 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üssel = O. Wenn eine Klassenunterbrechung auftritt, wird z. B. ein Niveaustatusblock
NSB in den OP2S-Bereich abgespeichert, welcher den Schlüssel = 0 hat (d.h. OP2S = 0), wobei
Daten vom OPl S-Bereich abgerufen werden. Der Inhalt des ASR wird mit einem Befehl zum Abspeichern des
ASR auch in den NSB eingegeben.
Andere Zustände, bei denen alle Schlüsselwerte im ASR = O gesetzt werden, sind: Systemrückstellung und
einleitendes Programmlader!, während denen die
ΟΡΑ-Einrichtung der Übersetzer, und die Speicherschutzeinrichtung
alle gesperrt sind.
H.l Unterbrechung mit Überwachungsprogramm-Ruf
(SVC-Unterbrechung)
Für die unten besprochenen Operationen bei der SVC-Unterbrechung ist angenommen, daß die Überwachungsprogramme
im Adreßbereich mit 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 Übevwachungsprogramms geholt werden und müssen
später zum Adreßbereich des Benutzers zurückübertragen werden.
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 OBA-FeId =0 gesetzt ist. Wenn im Prozessor der Fig.4 ein
Überwachungsprogramm Rufbefehl (SVC-Befehl) ausgeführt wird, bewirkt die Zwangsadreßschaltung, daß
eine Folge von ROS-Wörtern abgerufen und ausgeführt wird, wodurch der Prozessor in den Überwachungszustand
gebracht wird. Es wird auch ein Niveaustatusblock NSB abgespeichert, der Inhalt von OP2S an 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
(AG 0) vom Prozessor-ROS-Decodierer wird aktiviert und über den Prozessordatenpfad in die
OP2S- und ISS-Positionen des ASR Werte eingegeben.
Daten werden vom Benutzerbereich in den Uberwachungsprogrammbcreich
übertragen, und dann wird der Freigabebefehl (Fig. 13A) mit einer 1 in Bitposition 13
ausgeführt, um den OBA-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
OBA-Zustand ausgeführt wird, wobei die Zugriffsmöglichkeit zum OPl -Adreßbereich nicht verloren wird.
Wenn das Überwachungsprogramm Information in den OPIS-Bereich übertragen möchte, gibt der
Prozessor einen Sperrbefehl ab, der den Inhalt des OBA-Abschnitts im ASR rückstellt; dies bewirkt
Rückkehr zum OPI-Adreßbereich. Dann wird der Zustand 6 von Fig. 13B herbeigeführt durch Auswechseln
der Felder OPlS und OP2S, damit dem Überwachungsprogramm eine Adressiermöglichkeit
zum Abspeichern im OPIS-Bereich gegeben wird. Das Überwachungsprogramm kann dann die Daten vom
Überwachungsprogrammbereich zum Benutzerbereich ü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.
F i g. 18 zeigt die Operationen, die ausgeführt werden,
wenn ein SVC-Befehl ausgegeben wird. Zu diesen Operationen gehört die Rettung des alten Inhalts des
ASR und Laden eines neuen Inhalts 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-Befehls im Prozessor geschieht auf folgender Weise:
(1) Am Anfang der Ausführung des SVC-Befehls wird der Inhalt des ASR an das Arbeitsbereichsregister
(ABR) ausgegeben, und zwar über den Prozessordatenpfad durch Aktivierung des Signals AG ASR
und des Signals EGABR vom ROS-Decodierer. Diese Operation wird angezeigt durch die Übertragung
des ASR-Inhaltes in das Register TEMPA in Fig. 18; es wird angenommen, daß OPlS, OP2S
und ISS auf den Wert 3 gesetzt worden sind.
(2) Ausgabe OP2S und Eingabe OPlS.
(3) OP2S = ISS = O setzen.
(4) Der Inhalt des Niveaustatusregisters (NSR) wird im Temporärregister gespeichert (TEMPB').
(5) Im Register NSR' wird das Bit für den Überwachungszustand gesetzt, das Bit für die Summenmaske
rückgesteüt, und das Protokollbit ebenfalls rückgestellt.
(6) Der Inhalt des BAR (Befehlsadreßregister) wird 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.
(7) Wenn der Prozessor den SVC-Zustand entdeckt, wird der Inhalt der Speicherstelle 0010 im
Adreßbereich mit Schlüssel = 0 abgerufen. Dieser 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.
(8) Der NSB-Zeiger in Stelle 0010 wird in das Speicheradreßregister SAR (F i g. 4) übertragen.
(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).
(10) Die SVC-Nummer (welche die betreffende Art von SVC-Befehl identifiziert) wird aus dem SVC-Befehl
im Adreßbereich 1 kopiert in das Register Rl.
(11) Der Inhalt des Speicherplatzes 0012 wird in das BAR übertragen.
(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.
Beim Beginn der SVC-Routine hat das ASR folgenden Inhalt:
OPlS 0P2S ISS
OP2S' 0 0 (Bemerkung:
OP2S' ist der vorherige
Inhalt von OP2S)
Inhalt von OP2S)
Bei den anderen Klassen-Unterbrechungen werden ähnliche Arten von Operationen durchgeführt um einen
bestimmten Ladezustand des ASR zu erreichen, wie es im folgenden dargestellt ist:
H.2 Gerätebedingte Unterbrechung
(1) Protokoll rückstellen. OBA sperren, und Überwachungszustände
setzen.
(2) lSS = OPIS = OP2S = 0setzen.
(3) Die Adresse eines Gerätedatenblocks in Register 1 einsetzen.
(4) Die Unterbrechungsidentifikation (ID). welche vom unterbrechenden E/A-Gerät empfangen wurde, in
Register 7 einsetzen.
Der sich ergebende Inhalt des ASR ist:
OPlS
0
0
OP2S
0
0
ISS
HJ Unterbrechung bei Maschinenfehler und
Programmfehler
(1) Protokoll rückstellen, Summenmaske sperren,
OBA sperren, und Überwachungszustände setzen. Den NSB im Adreßbereich mit Schlüssel = O
abspeichern.
(2) ISS = 0P2S = O setzen.
(3) LKSA im OPl S speichern.
(4) Inhalt des SAR im Register 7 speichern (außer Protokollbit).
Es ergibt sich folgender Inhalt des ASR:
OPlS OP2S ISS
LKSA O O (Bemerkung: LKSA ist
der letzte im Register 408 in F i g. 4 gespeicherte Schlüssel bei Auftreten
der Unterbrechung)
H.4 Unterbrechung vom Bedienungsfeld/ Unterbrechung bei thermischer Überlastung
(1) Protokoll rückstellen, Summenmaske sperren, OBA sperren, und Überwachungszustände setzen.
(2) NSB abspeichern unter Benutzung des Adreßschlüssels O.
(3) ISS = OPlS = OP2S = 0setzen.
Es ergibt sieb folgender Zustand des ASR:
OPlS
0
0
OP2S
0
0
ISS
0
0
H-S-Protokollaufzeichnungs-Unterbrechung
(1) Protokoll rückstellen, Summenmaske sperren, OBA sperren, und Überwachungszustände setzen,
NSB abspeichern im Adreßbereich mit Schlüssel =0.
(2) ISS übertragen nach OPlS.
(3) OP2S= ISS = O setzen.
Daraus ergibt sich folgender Inhalt des ASR:
0P2S
0
0
ISS
(Bemerkung: ISS' entspricht dem zur Zeit der Unterbrechung
vorliegenden ISS)
2. Schaltungen für Speicherschutz ohne Übersetzer
Die in F i g. 11 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 Aufwärtskompatibilität
zwischen einem System mit Übersetzer und AdreßschlüsselsDeicherschutz 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-Speicherschutzemrichtung
arbeitet, können ohne Änderung in einer Anlage benutzt werden, die einen Adressenverschiebungsü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.
Wenn der Adreßverschiebungsübersetzer freigegeben ist, und die ÜFA-Speicherschutzschaltung such
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
Die ÜFA-Speicherschutzschaltungen ermöglichen die Verhinderung unerwünschter Zugriffe zu einer
Hauptspeicherstelle, sei es durch einen Prozessorbefehl oder einen E/A-Befehl, der eine nicht übersetzte
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
Registerstapel501 (Fig. 11) vorgesehen. Jedes 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 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 Eingangsadresse. Jedes Register hat mindestens drei Bestellen
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
vorgesehen, welche durch eine der üblichen Befehle zum Laden von Speicherschlüsseln geladen werden
können, wie z. B. im IBM Systen,/ 360.
Ein zur ÜFA-Speicherschutzoperation gehörender Vergleichsteil entspricht in etwa der Arbeitsweise der
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 dieser Beschreibung dargestellt ist, ebenso ihre Kombination
mit den besonderen AAS-Auswahlschaltungen 333 (F ig. 3D).
Für die Vergleichsoperation werden die höchstwertigen Bits 0—4 der 16 Bit langen physischen Adresse
benutzt, um dasjenige Register im Stapel auszuwählen, welches dem lnnenspeicherblock zugeordnet ist.
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üssel in 'ier 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
eine Abruf-Operation handelt oder um eine Schreib-Operation, wobei das Nur-Lese-Bit auf 0 gestellt ist. Die
ÜFA-Speichersehutzeinrichtung ermöglicht also einen
selektiven Schutz je nach Zugriffsart; mit ihr kann also bei übersetzungsfreier Adressierung ein getrennter
Speicherschutz für Adressen in den Bereichen OPlS, OP2S und ISS erreicht werden.
Ein weiteres besonderes Merkmal der ÜFA-Speicherschutzeinrichtungen
ist die Zugriffssteuerung bei gemeinsam benutzten Speicherbereichen, welche durch einen besonderen Schlüsselwert angezeigt ist, und
bei Zugriffen durch E/A-Unterkanäle. Jeder Benutzer hat Zugriff zu den speziellen, durch Schlüssel bezeichneten
Speicherbereichen, die für den betreffenden Benutzer im ASR im Prozessor definiert sind; alle
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.
Eine besondere Zugriffssteuerung für E/A-Operationen
bei Benutzung der ÜFA-Speicherschutzeinrichtung ist durch die Schaltungen 504 und 505 gegeben, welche
ermöglichen, daß eine E/A-Cycle-Steal-Zugriffsanforderung
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-Steale-Zugriff verhindert wird durch das 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.
Falls der Prozessor im Überwachungsprogrammzustand ist, d. h. wenn Bit 8 im NSR (F i g. 4) gesetzt ist,
werden die Speicherschlüsselschutzschaltungen umgangen und alle Zugriffe zu jedem beliebigen Block im
Hauptspeicher erlaubt.
Zusammenfassend kann man sagen, daß die Adreßbereichsauswahlsteuerung,
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
AAS ist entweder ein CS-Schlüssel oder ein Schlüssel,
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).
Wenn die ÜFA-Speicherschutzeinrichtung freigegeben ist, muß mindestens eine der folgenden Bedingungen
erfüllt sein, damit ein versuchter Speicherzugriff erlaubt wird:
(1) Die Anlage befindet sich im Überwachungsprogrammzustand.
(2) Der Speicherschlüssel des adressierten Blocks ist 7. Bei einem Versuch zum Einschreiben im Speicher
muß das Nur-Lese-Bit=0 sein.
(3) Der Speicherschlüssel des adressierten Blocks muß dem aktiven Adreßschlüssel AAS gleich sein. Wenn
eine Speicherschreib-Operation versucht wird, muß das Nur-Lese-Bit = 0 sein.
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-Zustandswortregister (PS W-Register) setzt.
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 unabhä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-Bit
für den adressierten Block gegebene Bedingung nicht verletzt wird.
Daraus ergibt sich also, daß innerhalb eines einzelnen, durch einen Adreßschlüssel definierten adressierbaren
Speicherbereiche 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ädt.
Beim einleitenden Programm-Laden (IPL) sind sowohl die ÜFA-Speicherschutzeinrichtungen 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ßschlüsseln
im ASR, die auf 0 eingestellt sind, geht die Anlage in den Überwachungsprogramm-Zustand über.
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.:
(1) Bei der ÜFA-Speicherschutzeinrichtung ist im Überwachungsprogramm-Zustand der 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 AAS definiert ist.
(2) Die gesamte Speicherkapazität, die in einem ÜFA-Speicherschutzsystem durch Adreßschlüssel
definiert ist, beträgt höchstens 64 K Bytes. Der gesamte statische Speicher, der durch die Adreßschlüssel
in einem Übersetzersystem definiert ist, kann zu jeder Zeit eine Kapazität von bis zu 512 K
Bytes haben.
(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 2 K Byte Kapazität, doch ist durch den Adreßschlüssel
immer eine Zugriffskontrolle je nach Art gegeben.
(4) Die Befehle, welche benutzt werden, um die Speicherschlüsselregister im Prozessor zu lader
oder um aus diesen abzuspeichern, sind verschieder von den Befehlen, die benutzt werden, um in einem
System mit Übersetzer die Segmentregister zu laden oder aus ihnen abzuspeichern.
(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-Speicherschutzein-
richtung 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.
(6) Wegen der bei einem System mit Übersetzer gegebenen Flexibilität für die Adreßumsetzungen
sind bei Vorliegen der ÜFA-Speicherschutz-Einrichtungen bestimmte Umsetzungen von logischen
in physische Adreßbereiche schwierig auszuführen, z. B. Benutzung eines gemeinsamen Bereichs für
nur zwei Adreßschlüssel.
3. Alternative Speicherschutz-Betriebsart (ASB)
bei Systemen mit Adreßübersetzung
bei Systemen mit Adreßübersetzung
F i g. 14 zeigt die Steuerschaltungen für eine alternative Speicherschutz-Betriebsart (ASB), die in einem
Datenverarbeitungssystem verwendet werden kann. Diese Betriebsart ist eine Alternative zur oben
beschriebenen Übersetzungsbetriebsart, bei der ein mehrfach unterteiltes Adreßschlüsselregister ASR
(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äß F i g. 1D erreicht werden
kann; sie ermöglicht jedoch separate Adressierbereiche für E/A-Speicherzugriffe. Die alternative Betriebsart
ermöglicht dem Prozessor eine unterschiedliche, von einem aktiven Adreßschlüssel 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.
In der Anordnung gemäß Fig. 14 kann nur ein einzelner Adreßschlüssel in das BSR-Register 460 des
Prozessors geladen werden, so daß sämtliche Speicherzugriffe zur Ausführung eines Benutzerprogramms und
zum entsprechenden Datenzugriff innerhalb eines ίο
einzelnen Adreßbereichs erfolgen müssen, der durch den Benutzeradreßschlü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überwachungsprogram- «5
me und Systemdaten stehen. E/A-Zugriffe werden durch den CS-Schlüssel gesteuert, der von einem Unterkanal
in das CS-Schlüsselregister 465 geladen werden kann.
Die ASB-Betriebsart wird für einen Prozessor durch eine Bitposition A im Niveaustatusregister (NSR) 470
gesteuert. Wenn der Uberwaehungszusiäiid eingeschaltet
ist, enthält Bitposition S eine Eins; wenn die ASB-Betriebsart eingeschaltet ist, enthält Bitposition A
eine Eins.
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 &o
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 Adreßbereich benutzt Das Überwachungsprogramm
kann aber nicht zu anderen Adreßbereichen im Hauptspeicher zugreifen, die zu anderen
Adreßschlüsseln gehören. Diese Arbeitsweise des Überwachungsprogrammes mit eingeschränkter Adressierbarkei;
ermöglicht zwar den Programmen zur Unterbrechungsbehandlung, 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 nicht-beteiligter Bereiche des Hauptspeichers
stört. Im übrigen kann ein Benutzerprogramm 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.
Eine zweite Art von Prozessoroperation tritt auf, wenn das Überwachungsprogrammbit S Eins und das
ASB-Bit A gleich Null ist. Hierbei kann das ÜberwaciiUiigSpiugiäffiiii
äUS dein Bereich iiiil Schlüssel = 0
heraus arbeiten, ohne den laufenden Benutzerschlüssel im BSR 460 zu stören. In diesem Fall erfolgen alle
Befehls- und Operandenzugriffe nur im Bereich mit Schlüssel = 0, und das Überwachungsprogramm darf zu
keinem Benutzerbereich zugreifen. Das heißt, daß in diesem Zustand das Überwachungsprogramm einen
Zugriff weder zu dem Benutzerbereich hat, der durch den gegenwärtigen Inhalt des BSR 460 identifiziert ist,
noch zu sonst einem durch irgendeinen anderen Schlüssel definierten Bereich. Durch diese Art von
Systembetrieb wird die Notwendigkeit vermieden, den Schlüssel = 0 jeweils in das BSR 460 einzugeben.
Eine dritte Art von Prozessoroperation ist vorgesehen, wenn das Überwachungsprogrammbit S gleich Null
ist, wobei der Wert des ASB-Bit A ohne Belang ist. In diesem Fall erfolgen alle Befehlslabrufe und Operandenzugriffe
nur in dem durch den Benutzerschlüssel definierten Bereich; zum Hauptspeicherbereich mit dem
Schlüssel = 0 sind dann keinerlei Zugriffe erlaubt.
Die ASB-Betriebsart wird im Prozessor durch die in Fig. 14 gezeigte Schaltungsanordnung gesteuert.
UND-Glied 462 wird freigegeben, wenn im NSR 470 sowohl S-Bit als auch Α-Bit gesetzt sind. Damit wird die
oben beschriebene erste Art von Prozessoroperation eingeleitet. Daraufhin wird bei jeder Befehlsabruf-Anforderung
vom Prozessor (F i g. 4) ein Signal über UND-Glied 462, ODER-Glied 466 und Inverter 467 an
UND-Glied 461 gegeben, um dieses während dem Befehlsabrufsvorgang zu sperren. Während das UND-Glied
461 gesperrt ist, gibt es ein Nullsignal, welches den Schlüssel = 0 darstellt, an den AAS-Bus. Ein Befehlsabruf
ist also nur im Speicherbereich des Überwachungsprogramms mit dem Schlüssel = 0 erlaubt.
Wenn keine Befehlsabruf-Anforderung vorliegt (also in den Zeiten zwischen den Befehisabruf-Anforderun-
j, wiiu uaa
101 uii.iii ti cigcgcucit, au uau
Inverter 467 ein Aktivsignal an das UND-Glied 461 abgibt, um den Benutzeradreßschlüssel aus dem BSR
460 auf den AAS-Bus zu geben, so daß ein aus dem Überwachungsprogramm abgerufener Befehl zu Operanden
zugreifen kann, die in dem Bereich stehen, der zu dem im BSR 460 stehenden Schlüssel gehört.
Wenn im NSR das ASB-Bit A rückgestellt ist (gleich Null), während das Überwachungsprogrammbit S
gesetzt ist (gleich Eins), bleibt das UND-Glied 464 ständig freigegeben und sperrt über Inverter 467 das
UND-Glied 461, so daß dieses ständig den Schlüsse!=0 an den AAS-Bus abgibt Hieraus ergibt sich die oben
beschriebene zweite Art von Prozessoroperation, bei der das Überwachungsprogramm für alle Befehlsabrufe
und Operandenzugriffe auf den Bereich des Schlüssels =0 eingeschränkt ist, unabhängig vom Wert des
Benutzerschlüssels im BSR 460.
Wenn das S-Bit im NSR 470 rückgestellt ist (gleich Null), bleiben UND-Glieder 462 und 464 ständig
gesperrt, so daß Inverter 467 ständig ein Freigabesignal an UND-Glied 461 liefert, welches infolgedessen ohne
Unterbrechung den Benutzeradreßschlüssel an den AAS-Bus durchgibt. Daraus ergibt sich die oben
beschriebene dritte Art von Prozessoroperation, bei der alle Speicherzugriffe, sowohl für den Prozessor als auch
für E/A, in dem Hauptspeicherbereich erfolgen, dessen Adressierung durch den Benutzerschlüssel im BSR 460
gegeben ist. Das Überwachungsprogramm kann nur arbeiten, wenn Bit S gesetzt (gleich Eins) ist.
Hierzu 29 Blatt Zeichnungen
Claims (1)
- Patentansprüche:1. Datenverarbeitungsanlage mit einer Tabellen-Übersetzeranordnung zur schrittweisen Übersetzung von durch einen Prozessor vorgegebenen, Stapelregisteradressen enthaltenden logischen Adressen in reale Biockadressen für den Zugriff zu einer aus mehreren Speichereinheiten bestehenden Speicheranordnung, gekennzeichnet durch vom Prozessor (54, Fig. IC und Fig.4) und von einer Kanalzugriffssteuerung (F i g. 1 D) abgegebene und die Art des Speicherzugriffs (Operanden-, Instruktionszugriff, E/A-Anforderung) angebende Steuersignale (Fig. ID; 22, 23, 24 bzw. 21), sowie durch eine von diesen Steuersignalen angesteuerte Auswahlschaltung (20, Fig. ID; 333, Fig.3C) zur von der Art des Speicherzugriffs abhängigen Auswahl eines einen Adreßbereich kennzeichnenden Adreßschlüssels für jeden Speicherzugriff, und durch eine Stapel-Adressiereinrichtung (40, F i g. 1D;F i g. 9A/9C) in der Übersetzeranordnung (F i g. 1D; F i g. 9A, 9B) zur Auswahl eines dem ausgewählten Adreßschlüssel zugeordneten Übersetzungsregisterstapels (Stapel 0 bis 7, Fig. ID; Fig.9C), dessen einzelne Register (SEG.-REG. Fig. ID) durch eine in der logischen Adresse enthaltenen Registernummer ausgewählt werden, wobei in jedem Übersetzungsregister (Segmentregister, Fig.6) außer der realen Blockadresse noch mehrere zusätzliche Bitpositionen vorgesehen sind (Vorgriffbits, Fig.9G), die die Speichereinheit (z.B. Innen-, Außen-, Asynchron-Speicher), welche den durch die reale Blockadresse bezeichneten Datenblock enthält, anzeigen und schnellen Decodierschaltungen (931, Fig. 9D-1) zugeführt werden, die an ihren Ausgängen direkte Steuersignale (ISZ, OSZ, ASZ) zur Auswahl einer Speichereinheit abgeben, so daß diese Steuersignale zeitlich vor der Decodierung der realen Blockadresse zur Verfügung stehen und die zur Ansteuerung der Speichereinheit benötigten Einheiten (z. B. Adressensammelleitung, Adresscndecodierer) vorbereiten können.2. Anlage nach Anspruch 1, dadurch gekennzeichnet,— ein Tolzeitzähler (910), welcher bei Auftreten eines Steuersignals (ASZ) für den beginn eines AsynchronspeicherzykJus aktiviert wird und nach vorgegebener Zeit ein Zeitgrenzsignal abgibt;— eine Eingangsschaltung (911) für ein von einem adressierten Asynchronspeicher abgegebenes Antwortsignal, welches dessen Installierung und Betriebsbereitschaft anzeigt;— sowie eine mit dem Ausgang des Totzeitzählers (910) verbundene Fehleranzeigeschaltung (912), welche ein Ausgabesignal zum Anzeigen einer ungültigen Speicheradresse abgibt, wenn das Antwortsignal nicht innerhalb der vorgegebenen Zeit eintrifft.4. Anlage nach Anspruch 2, dadurch gekennzeichnet, daß in der zweiten Anschluß- und Steuereinrichtung (Fig.9-1/9F-2) für einen zusätzlichen Asyncronspeicher weiterhin enthalten sind:— eine erste Kippschaltung (913) zur Besetztanzeige der Asynchronspeichersteuerung, welche bei Auftreten eines den Beginn eines Asynchronspeicherzyklus anzeigenden Signals (ASZ) gesetzt wird, und die eine zum Frozessor (54) führende Ausgangsleitung aufweist, die ein Steuersignal zur vorübergehenden Sperrung des Prozessortaktsignals abgibt;— eine zweite Kippschaltung (914) zur Anzeige eines Normal-Asynchronspeicherzyklus-Endes, die mit dem Totzeitzähler (910) und mit der Eingangsschaltung (911) verbunden ist;— sowie Verbindungen vom Ausgang der zweiten Kippschaltung (914) und vom Ausgang der Fehleranzeigeschaltung (912) zu einem Rückstelleingang der ersten Kippschaltung (913), um bei Auftreten eines Normal-Asynchronspeicherzyklus-Endsignals oder bei Auftreten des Signals für eine ungültige Speicheradresse die erste Kippschaltung (913) zurückzustellen und durch Beendigung eines Besetztanzeige-Steuersignals die Wiederfreigabe der Prozessortaktsignale zu bewirken.— daß ein Hauptspeicher (Innenspeicher 51) höchstens eine Anzahl Speicherstellen aufweist, welche der Länge der im Prozessor (54) übertragbaren und speicherbaren Programm- so adressen entspricht, und— daß im Adreßübersetzer außerdem folgende Einrichtungen vorgesehen sind:— eine erste Anschluß- und Steuereinrichtung (Fig. 9E) für einen zusätzlichen Außenspeicher, der synchron mit dem Hauptspeicher (51) und dem Prozessor (54) arbeitet;— eine zweite Anschluß- und Steuereinrichtung (Fig. 9F-I/9F-2) für einen zusätzlichen Asynchronspeicher, der aufgrund separater Zeitsteuersignale asynchron zum Hauptspeicher (51) und Prozessor (54) net. arbeitet.3. Anlage nach Anspruch 2, dadurch gekennzeichnet, daß in der zweiten Anschluß- und Steuereinrichtung (Fi g. 9F-1/9F-2) für einen zusätzlichen AsynchronsDeicher enthalten sind:5. Anlage nach Anspruch 1, dadtirch gekennzeichnet, daß mit den Übersetzerregister-Eingangsleitungen, welche zum Laden der physischen Blockadressen dienen, Codeumsetzerschaltungen (9OM, 902A Fig. 9C) verbunden sind, deren Ausgänge (901 B, 902Ö) mit Eingängen für zusätzliche Bitpositionen der Übersetzungsregister (Stapel 0—7) verbunden sind, um diese Positionen im jeweils adressierten Übersetzungsregister entsprechend den Codeumsetzer-Ausgangssignalen (9015, 902S^ zu laden; so daß mit einer minimalen Anzahl von in den zusätzlichen Bitpositionen enthaltenden Vorgriffsbits die jeweilige Speichereinheit unabhängig von der Länge der verwendeten Blockadresse eindeutig identifiziert werden kann.6. Anlage nach Anspruch 1, dadurch gekennzeichdaß die Adressicrcinrichtungen für die Übersetzerregister sowohl Eingänge (00 ... 04) für vom Prozessor gelieferten Blockadressen als auch Eingänge (AAS, Bit 1, 2, 3) für zusätzliche Adreßschlüssel aufweisen;— und daß zusätzliche Auswahlschaltungen (921, F i g. 9A) vorgesehen sind, um aufgrund mindestens eines Teils der Adreßschlüssel eine Auswahl unter den Ausgangsleitungen mehrerer Übersetzungsregister (S:apel 0... 7) vorzunehmen, auf welchen Ausgangssignale von adressierten Übersetzerregistern vorliegen.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/682,227 US4050094A (en) | 1976-04-30 | 1976-04-30 | Translator lookahead controls |
US05/682,222 US4037215A (en) | 1976-04-30 | 1976-04-30 | Key controlled address relocation translation system |
US05/682,223 US4042911A (en) | 1976-04-30 | 1976-04-30 | Outer and asynchronous storage extension system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2716520A1 DE2716520A1 (de) | 1977-11-10 |
DE2716520C2 true DE2716520C2 (de) | 1984-05-03 |
Family
ID=27418398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19772716520 Expired DE2716520C2 (de) | 1976-04-30 | 1977-04-14 | Datenverarbeitungsanlage mit Adreßübersetzeranordnung |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE2716520C2 (de) |
-
1977
- 1977-04-14 DE DE19772716520 patent/DE2716520C2/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE2716520A1 (de) | 1977-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2716051C2 (de) | Datenverarbeitungsanlage mit einem oder mehreren Prozessoren mit mindestem einem Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der zum Speicherzugriff Schlüssel verwendet werden | |
CH619309A5 (de) | ||
CH615521A5 (de) | ||
DE2350884C2 (de) | Adreßumsetzungseinheit | |
DE1774296C2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE69124905T2 (de) | Datenverarbeitungsvorrichtung zur dynamischen Zeiteinstellung in einem dynamischen Speichersystem | |
DE68918754T2 (de) | Datenverarbeitungsgerät mit selektivem Befehlsvorausholen. | |
DE3689696T2 (de) | Datenverarbeitungssystem mit einem Hauptprozessor und einem Ko-Prozessor mit gemeinsamen Betriebsmitteln. | |
DE68927492T2 (de) | Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten | |
DE3685876T2 (de) | Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher. | |
DE3151745C2 (de) | ||
DE3853759T2 (de) | Datenprozessor mit zwei Betriebsmoden. | |
DE2417795C2 (de) | Datenverarbeitungsanlage | |
DE68923863T2 (de) | Ein-/Ausgabecachespeicherung. | |
DE2953861C2 (de) | ||
DE2414311C2 (de) | Speicherschutzeinrichtung | |
DE2902465A1 (de) | Datenverarbeitungsanordnung | |
DE3852695T2 (de) | Multiprozessorsystem mit mehreren Speichern. | |
DE68920929T2 (de) | Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen. | |
DE2517276A1 (de) | Datenverarbeitungssystem | |
DE2755616A1 (de) | Asymmetrischer multiprozessor | |
DE68929080T2 (de) | Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor | |
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
DE68922545T2 (de) | Zugeordneter Dienstprozessor mit Übertragungsmöglichkeiten zwischen Kanälen. | |
DE2612054A1 (de) | Verfahren zur adressentwicklung und prozessor zur durchfuehrung des verfahrens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8181 | Inventor (new situation) |
Free format text: BIRNEY, RICHARD EUGENE, BOCA TATON, FLA., US DAVIS, MICHAEL IAN HOOD, ROBERT ALLEN GRAYBIEL, LYNN ALLAN, BOCA RATON, FLA., US KAHN, SAMUEL, MT. VIEW, CALIF., US OSBORNE, WILLIAM STEESE BOURKE, DONALL GARRAID PUTTLITZ, FREDERIC JOHN BOURKE, DONALL GARRAID, BOCA RATON, FLA., US |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |