DE2716051C2 - 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 - Google Patents
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 werdenInfo
- Publication number
- DE2716051C2 DE2716051C2 DE2716051A DE2716051A DE2716051C2 DE 2716051 C2 DE2716051 C2 DE 2716051C2 DE 2716051 A DE2716051 A DE 2716051A DE 2716051 A DE2716051 A DE 2716051A DE 2716051 C2 DE2716051 C2 DE 2716051C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- access
- address
- key
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
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/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
Description
Die vorliegende Erfindung betrifft eine Datenverarbeitungsanlage mit einem oder mehreren Prozessoren
mit mindestens einem Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der
zum Speicherzugriff Schlüssel verwendet werden.
Speicherschutzschlüssel, die Speicherblockweise zugeordnet
werden, sind bei Datenverarbeitungssystemen schon längere Zeit bekannt (DE-PS 14 99 203). Mit den
bekannten Verfahren und Einrichtungen zur Benutzung von Speicherschutzschlüsseln ist aber keine unabhängige
Hauptspeicheradressierung für verschiedene, miteinander ablaufende Programme möglich. Vielmehr wurde
bisher der gesamte, für den Hauptspeicher des Systems verfügbare Adreßbereich auf die miteinander (konkurrent)
ablaufenden Programme verteilt, indem jedem Programm ein Teil des Gesamtadreßbereichs zugeteilt
wurde. Alle Zugriffe eines Programms, dem jeweils ein Schlüssel und ein Programmstatuswort (PSW) zugeteilt
ist, erfolgen in dem einen Speicherbereich, der durch den betreffenden Schlüssel identifiziert wird. Bei den
bisher bekannten Lösungen gab es auch nicht die Möglichkeit, innerhalb eines einzelnen Programmes
verschiedene Schlüssel für verschiedene Zugriffsarten zu benutzen.
Bei diesen bekannten Verfahren hängt die einwandfreie Arbeit des Systems ganz davon ab, ob die
Schlüsselzuteilung einwandfrei funktioniert Wenn beim Laden mehrerer Programme zufällig eine zweimalige
Zuordnung eines Schlüssels zu einem PSW oder zu einem Speicherblock vorkommt, so können sich
verhängnisvolle Fehler ereignen, indem ein Programm zu einem Bereich zugreift, der eigentlich einem anderen
Programm vorbehalten ist.
Im US-Patent 38 28 327 ist eine Speichersteueranordnung beschrieben, bei der keine Schlüssel benutzt
werden. Es sind bei diesem System verschiedene Betriebsarten vorgesehen, und der jeweilige Betriebsart-Zustand
beeinflußt eine Adreßübersetzung-Steuerung. Eine am oberen Ende den Adressen zugefügte
Bitposition, die normalerweise nicht zu den Programmadressen gehört, wird bei E/A-Unterbrechungsoperationen
benutzt, wenn der ohne Übersetzung benutzbare Adreßbereich überschritten würde, um auf diese Weise
den Zugriff zu einem weiteren vorgesehener Adreßbereich zu steuern.
Eine weitere Speichersteuerungstechnik, bei der keine Schlüssel benützt werden, ist im US-Patent
38 54 126 beschrieben. Hierbei sind auch verschiedene Prozessor-Betriebsarten vorgesehen, deren jeder eine
Gruppe von Seitenadreßregistern zugeordnet ist. Zu jeder Gruppe gehören zwei Register-Untergruppen,
eine für Daten, und die andere für Befehle. Jedem der Seitenadreßregister ist eine Vielzahl zusammenhängender
physischer Blöcke von je 64 Speicherplätzen zugeordnet, dies ist eine Seite mit variabler Länge. Zu
jeder Prozessorbetriebsart gehört also ein fest zugeorci- m
neies Paar von Register-Untergruppen, getrennt für Daten und Befehle. Der höherwertige Teil einer
logischen Programmadresse bestimmt ein einzelnes Register in der ausgewählten Gruppe, dessen Inhalt eine
Seite identifiziert, die variable Länge hat und aus zusammenhängenden physischen Blöcken besteht. Ein
mittlerer Adreßteil dient zur Auswahl je eines Blocks innerhalb der betreffenden Seite. Der niedrigste
Adreßteil schließt bestimmt die relative Wortadresse im ausgewählten Block.
Bei allen bekannten Systemen besteht wie schon vorher gesagt, eine relativ feste Zuordnung zwischen
Programmen, Speicherbereichen und Betriebsarten, insbesondere aus der Sicht des Benutzers.
Der Erfindung liegt die Aufgabe zugrunde, in einer Multiprozessoranlage mit Multiprogrammierung eine
Speicherzugriffsstfiuerung zu schaffen, die mit Schlüsseln
arbeitet und eine flexible Zuordnung von Adreßbereichen zu verschiedenen Funktionen und eine
zuverlässige Trennung der Adreßbereiche untereinander erlaubt.
Diese Aufgabe wird erfindungsgemäß durch die im Kennzeichen des Hauptanspruches beschriebene Anordnung
gelöst.
Bei einer Datenverarbeitungsanlage mit den erfindungsgemäßen Einrchtungen kann der Benutzer jeweils
die gewünschten Adreßbereiche für die verschiedenen Funktionen vor Programmablauf festlegen. Man ist aber
keineswegs gezwungen, für unterschiedliche Funktionen verschiedene Adreßbereiche festzulegen. Die
Schlüsselwerte zur Festlegung von Adreßbereichen werden erst gewählt, wenn ein Anwendungsprogramm
im System ablaufen soll, und der Benutzer kann bestimmen, ob er verschiedene Funktionen unterschiedlicher
Adreßbereiche zuordnen will, oder ob er für mehrere Funktionen durch Zuordnung eines gemeinsamen
Schlüssels den gleichen Bereich zuweisen will. Miteinander (konkurrent) ablaufenden Programmen
wird man aber im allgemeinen für den Befehlsabruf unterschiedliche Schlüssel zuweisen, um eine korrekte
Ausführung zu gewährleisten. Auch werden Datenbanken jeweils mittels unterschiedlicher Schlüssel eigene
Adreßbereiche erhalten, um ihre Integrität zu gewährleisten.
Werden die gemäß der Erfindung verfügbaren Schlüssel zur Adressierung je eines zugeordneten
Speicherabschnittes verwendet, so kann jeder Abschnitt mit der ganzen einer Programmadresse verfügbaren
Adreßkapazität adressiert werden, ohne daß Konflikte entstehen (die einer Programmadresse verfügbare
Adreßkapazität ist gegeben durch die Anzahl von Bitpositionen der im Programm erscheinenden Adressen).
Die verschiedenen, den Schlüsseln zugeordneten Speicherabschnitte können irgendwo in der ganzen
Speicheranordnung liegen; sie können aneinander grenzen oder sich auch teilweise überlappen. Die
gesamte Kapazität des Speichers kann dabei ein Vielfaches der einen Programmadresse verfügbaren
Kapazität sein.
Es können im Rahmen der Erfindung auch für Ereignisse, die normale programmierte Prozessor- oder
Kanaloperationen unterbrechen, mittels zugeordneten Schlüssel separate Adreßbereiche festgelegt werden. So
können Systemprogramme, die in bestimmten Ausnahmesituationen benötigt werden, eigene schlüsselgeschützte
Speicherbereiche haben.
Auch können bei der flexiblen Schlüsselzuordnung und variablen Adressierung spezielle Adreßbereiche für
indirekt adressierte Operanden, sogar noch in Untergruppen unterteilt, vorgesehen werden. Ebenso ist eine
Zuweisung getrennter Adreßbereiche für verschiedene Prozessoren und verschiedene Kanäle und Unterkanäle
möglich.
Die erfindungsgemäß ermöglichte Unterscheidung kann sich auf folgende Speicherzugriffstypen erstrekken:
Instruktionsabruf, Quellen-Operandenabruf, Senken-Operandenspeicherung und Senken-Operandenabruf.
Da sich die beiden letzteren Zugriffstypen zumeist auf denselben Speicherbereich erstrecken,
können sie zusammengefaßt werden.
Unterkanalzugriffe verursachen zumeist eine Programmunterbrechung.
Durch die Verwendung eines Schlüssels für solche Zugriffe können die betreffenden
Unterbrechungsprogramme in einem besonderen, geschützten Bereich gehalten werden.
Die spezielle, von Art des Zugriffs abhängige Adressierbarkeit kann sich z. B. auch auf indirekt
adressierte Operanden beziehen. Diese Operanden können dann je nach Quellen- oder Senken-Verwendung
untergruppiert werden. Ferner kann sich die von der Art des Zugriffs abhängige Adressierbarkeit auch
auf verschiedene Prozessoren, verschiedene Kanäle und verschiedene Unterkanäle beziehen.
Die erfindungsgemäße Anordnung ermöglicht die vorbeschriebenen technischen Vorteile. Die endgültige
Auswahl und Festlegung der Adressierbarkeit bestimmt jedoch der Benutzer. Die Erfindung erzwingt also nicht
eine unterschiedliche Adressierbarkeit je nach Art des Speicherzugriffs, sondern sie überläßt die flexible
Auswahl dem Benutzer, der spezielle Schlüssel für die betreffenden Speicherzugriffsarten festlegt. Erst im
Anwendungsprogramm braucht also entschieden zu werden, wie die Adressierbarkeit unter den verschiedenen
Speicherzugriffstypen aufgeteilt werden soll. Natürlich können auch ein oder mehrere Zugriffstypen
zur gleichen Adressierbarkeit zusammengefaßt werden,
indem sie denselben Schlüssel zugeteilt bekommen. Die Erfindung liegt also in neuen Steuer-, Register- und
Auswahleinrichtungen, deren Verwendung sich beim Gebrauch der Datenverarbeitungsanlage als vorteilhaft
erweisen.
Erfindungsgemäß ist sowohl eine vollkommene Trennung der durch die einzelnen Schlüssel definierten
Speicherbereiche als auch eine teilweise Überlappung dieser Bereiche möglich. Die physische Beginnadresse
dieser Speicherblöcke kann irgendwo im Speicher liegen, ist also nicht von vornherein festgelegt. Bei
teilweiser Überlappung von zwei Bereichen kann sich dennoch eine konfliktfreie Arbeitsweise dadurch ergeben,
daß für diese Bereiche nur Lesezugriffe durchgeführt werden.
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, welche 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;
Fig. ID eine spezielle Ausführungsform der in F i g. 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;
F i g. 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;
Fig.3C in Blockform eine Speicherprioritätsauswahlschaltung
mit einer Kanalauswahlschaltung, durch weiche 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 erreicht werden kann;
Fig.4 Einzelheiten eines Prozessors, welche für die
Speicherzugriffssteuerung mit Adreßschlüsseln relevant sind;
F i g. 5 das Aufteflungsformat des Adreßschlüsselregisters
in einem bevorzugten Ausführungsbeispiel;
Fi g. 6 das Inhaltsformat der im Ausführungsbeispiel
vorgesehenen Segmentregister;
Fig./ Einzelheiten der Eingabe- und Ausgabesteuerung
einer einzelnen Bitposition im Adreßschlüsselregister;
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-1 und 9F-2 Einzelheiten
des in F i g. 9A/9B in Blockform gezeigten Übersetzers;
Fig.9G die Arbeitsweise der in Fig.9C gezeigten
Vorgriffsschaltungen zur jeweiligen Auswahl des Innenspeichers (Basisspeicher), Außenspeichers (Zusatzspeicher)
oder Asynchronspeicher, sowie die Interpretation der 24 Bit langen physischen Adresse durch
die gewählte Speichereinheit beim Zugriff;
2> Fig. 10 eine Schaltungsanordnung im Prozessor zur Auswahl zwischen den Betriebsarten »Speicherschutz ohne Übersetzung« und »Speicherschutz mit Übersetzung«;
2> Fig. 10 eine Schaltungsanordnung im Prozessor zur Auswahl zwischen den Betriebsarten »Speicherschutz ohne Übersetzung« und »Speicherschutz mit Übersetzung«;
F i g. 11 Speicherschutzsteuerschaltungen zur Verwendung
bei übersetzungsfreier Betriebsart;
Fig. 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);
F i g. 13B aufeinanderfolgende Zustände eines Adreßschlüsselregisters,
wenn bei einer Unterbrechung Operandenbereichsabgleich erfolgt;
4Ii F i g. 14 eine Schaltungsanordnung für eine alternative Speicherschutzbetriebsart mit Übersetzung, welche eine Alternative zu der Speicherschutzbetriebsart mit Adreßschlüsselübersetzung darstellt;
4Ii F i g. 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 Übersetzungsanordnung mit mehreren Registerstapeln dienen kann;
Fig. 16 Zugriff zu parallelen Grundspeichermoduln
mittels mehrerer aktiver Adreßschlüssel in einem so Multiprozessorsystem;
F i g. i 7 Steuerschaitungseinzeiheiten aus dem Prozessor,
zur Durchführung des in Fig.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 AdreßschMssel-Auswahlschaltung
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
OPI-Schlüssel, OP 2-Schlüssel und OP 3· Schlüssel.
Diese Schlüssel haben folgende Bedeutung:
CS-Schlüssel: Zyklusentnahme (»Cycle Steal«)-Schlüssel. Bei einer Zyklusentnahme wird ein Zugriff zum Speicher (Innenspeicher) von einem Kanal aus derart durchgeführt, daß der Prozessortakt während dieses Zugriffs wohl angehalten wird, jedoch keine Programmunterbrechung mit einem Absprung zu einem Unterprogramm durchgeführt wird.
IS-Schlüssel: Interner Speicherschlüssel.
CS-Schlüssel: Zyklusentnahme (»Cycle Steal«)-Schlüssel. Bei einer Zyklusentnahme wird ein Zugriff zum Speicher (Innenspeicher) von einem Kanal aus derart durchgeführt, daß der Prozessortakt während dieses Zugriffs wohl angehalten wird, jedoch keine Programmunterbrechung mit einem Absprung zu einem Unterprogramm durchgeführt wird.
IS-Schlüssel: Interner Speicherschlüssel.
Es erfolgt ein Zugriff zum Innenspeicher zwecks Abruf einer Instruktion.
OP 1 -, OP 2-, OP 3-Schlüssel: Operandenschlüssel zu
verschiedenen Operandenbereichcn, aufgeteilt
nach Zugriff zur Operandenquelle oder Operandensenke.
OPI: Abruf einer Quelle.
OP 2: Abspeicherung an der Senke.
OP 3: Abruf an der Senke.
OP 2: Abspeicherung an der Senke.
OP 3: Abruf an der Senke.
Derjenige dieser Schlüssel, welcher der vorliegenden
Speicherzugriffsanforderung entspricht, wird durch die AAS-Auswahlschaltung 20 als aktiver Adreßschlüssel
(AAS) ausgegeben. Dieser aktive Adreßschlüssel steuert die Adressierung des Hauptspeichers des Systems
während des nächsten Speicherzugriffs, d. h. Abruf oder Speicherung von Daten im Hauptspeicher. Bei dieser
Adressierungsoperation bestimmt der aktive Adreßschlüssel AAS den oberen Teil (höherwertige Stellen)
der logischen Adresse, die von der Anlage für den Speicherzugriff benutzt 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, OP 1-Zugriff, OP2-Zugriff
und OP 3-Zugriff. Wenn nur eins dieser Zugriffsanforderungssignale auftritt dann wird sofort der Inhalt des
betreffenden Adreßschlüsseiregisterabschnitts 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-Steal-Operation den Vorrang
hat, um zuerst den CS-Schlüssel auszugeben. Die Befehlsabrufanforderung wird als zweite bedient, um
den IS-Schlüsse! als AAS auszugeben. Als dritte wirrj Hip
OP 1 -Zugriffsanforderung bedient, um den OP 1 -Schlüssel als AAS auszugeben; schließlich werden die OP 2-
und OP 3-Zugriffsanforderungen als vierte and fünfte bedient, um den OP 2-Schlüssel bzw. OP 3-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 OP1
(OP IS) bis OP 3 (OP 3S), 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 vorge-) sehen, um bei gleichzeitigen Anforderungen die CS-Schlüssel in einer vorgegebenen Reihenfolge auszugeben.
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 vorge-) sehen, 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äts-
K) schaltungen 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 Adrcßschlüsse! benutzt werden und in dem nur ein Teil
der in einem Datenverarbeitungssystem an und für sich möglichen Speicherzugriffsarten verwendet wird.
Fig. IB zeigt eine größere Zahl verschiedener
Speicherzugriffsarten. Die in einem bestimmten System verwendbaren 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. 1A gezeigt ist In F i g. 1B sind acht Speicherzugriffsarten in drei
Zugriffskategorien eingeteilt: (1) Befehlszugriff, (2) Operanden-Zugriff 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 Speicherajgriffsarten 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 Befehlsabrufanforderungssignal 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 solche Operanden betrifft bei denen die Adressen
indirekt aus der Operanden-Adresse eines Befehls abgeleitet sind Zu jeder Unterkategorie gehören drei
verschiedene Operanden-Zugriffsarten, weiche 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 den Operandenfeldem. 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 Senkenab- n> speicherungsAabruf-Operandentyp zusammenzufassen.
Prozessorereignis-Zugriffe werden hervorgerufen durch das Auftreten interner Prozessorereignisse, wie
z. B. Datenfehler, Maschinenfehler, Adressierungsausnahme, usw, die zu einer langen Liste bekannter r,
Ereignisse gehören, welche die üblichen Prozessorunterbrechungen, d. h. interne Unterbrechungen, hervorrufen.
Die Kategorie der Prozessorereigniszugriffe kann z. B. den Zugriff zu einem Bereich des Hauptspeichers
einschließen, der ein Unterbrechungs-Verarbeitungsprogramm und andere Programme zur Verarbeitung
von Signalen enthält, die mit der Unterbrechung im Zusammenhang stehen, und in dem weiterhin Daten
gespeichert sind, die mit der Unterbrechung im Zusammenhang stehen, so z. B. Abschlußaufzeichnun- :>
gen.
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 jo
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 F i g. 1B gezeigten
Zugriffsarten gehören die acht verschiedenen Speicherzugriffsarten, welche jedem Prozessor zur Verfügung
stehen, und die vier verschiedenen Speicherzugriffsarten, welche jedem Unterkanal zur Verfügung stehen.
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 Ausfuhrungsbeispiel,
welches in F i g. 1A gezeigt ist, benutzt
nur vier verschiedene Prozessorzugriffsarten, welche im gewählten Beispiel durch ein Adreßschlüsselregister
dargestellt sind, das vier verschiedene Registerabschnitte hat Die Anzahl der Registerabschnitte im Adreßschlüsselregister
ASR kann jedoch beliebig gewä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 Zugrart ein ASR-Registerabschnitt
oder ein CS-Registerabschnitt mit entsprechenden Vorrichtungen in der AAS-Auswahlschaltung
vorgesehen, 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 Adressiervorgang für den betreffenden
Speicherzugriff zu beeinflussen. Für die durch den aktiven Adreßschlüssel AAS gegebene Adreßkomponente
kann folgendes gelten: (1) 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 Fig. 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 Fig. 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 Befehlsadreßregister, und die Operanden-Adressen in den Befehlen des Programms.
Wenn ein Programm geschrieben wird, so sind nur im Programm erscheinende Adressen bekannt. Der Anwendungsprogrammierer
bekümmert sich um die 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 isi, um eine gewüiischie
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. Obersetzer mit Registerstapeln
Der in F i g. 1A gezeigte Obersetzer 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 Blockniimmemfeldes 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,
daß einen neuartigen erweiterbaren Hauptspeicher zur Verarbeitung übersetzter Adressen
hat Der Hauptspeicher besteht mindestens aus einem inneren Speicherteil 51, im folgenden kurz Innenspeicher
genannt, der bis zu 64 K Bytes Speicherkapazität hat. Die erste mögliche Erweiterung ist die Hinzufügung
eines äußeren Speicherteils 52, im folgenden kurz Außenspeicher genannt, durch den der Speicher um
64 K Bytes erweitert werden kann, so daß der Hauptspeicher dann 128 K Bytes umfaßt Dann kann
zusätzlich ein erweiterbarer asynchroner Speicher 53, im 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 vorgesehö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 4096
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 lnnenspeicherzyklus 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 ein bestimmtes Byte in diesem Wort aus, wenn es
sich um eine Schreiboperation handelt. Die Byte-Adressierung mittels des Bit 23 wird nur für Schreiboperationen
benutzt, da bei Leseoperationen nur ganze Wörter adressiert werden (1 Wort enthält 2 Bytes). Für eine
Schreiboperation wird das letzte Adreßbit 23 entweder auf 0 oder auf 1 gesetzt um entweder das linke oder das
rechte Byte in einem Wort zu adressieren.
Wenn der Prozessor nur mit dem Innenspeicher arbeitet (d. h. wenn im System kein Außenspeicher und
kein Asynchronspticher vorgesehen ist), dann adressiert der Prozessor den Innenspeicher nur mit physischen 16
Bit langen Adressen, die vom Speicheradressenregister auf dem Bus 54.4 direkt abgegeben werden. Die vom
Prozessor abgegebenen 16 Bit langen Adressen reichen
gerade aus zur Adressierung der Höchstkapazität des Innenspeichers (d. h. 64 K). Bei dieser Minimp.lkonfiguration
werden mit den 16 Bit langen physischen Adressen Speicherschutzschlüssel benutzt entsprechend
den N'ichtübersetzungsspeicherschutzschaltungen, die in F i g. 11 gezeigt sind.
Die Speicherschutzschlüssel benutzen die Möglichkeit der separaten Adreßbereichsbestimmung, welche
durch die Adreßschlüsselregisterabschnitte für verschiedene Speicherzugriffsarten gegeben ist Die Kombination
der Aktivadreßschlüsselauswahlschaltungen mit den Speicherschutzschlüsseln gehört auch zu der in
dieser Beschreibung dargestellten Erfindung. Das hier dargestellte Merkmal der Aktivadreßschlüsselschaltungen
durch welche separate Adreßbereichsbestimmungen je nach Speicherzugriffsart möglich sind, kann
separat kombiniert werden, entweder mit der Benutzung von Speicherschlüsseln bei Verwendung von nicht
verschiebbaren Adressen, oder mit der Benutzung von Adreßschlüsseln, bei Verwendung verschiebbarer
Adressen.
Wenn man die Möglichkeit der Adreßverschiebung
! i>:::::au lui
uit V.1 lauL/t, uaLf uci
uuct uic
Verbindung des Außenspeichers 52 und des Asynchronspeichers 53 mit der Hauptspeicherkonfiguration.
Ein Hauptspeicherbus 56Ä (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 5t verbunden.
Innenspeicher-Zyklus-Signalleitungen 54A verbinden den Innenspeicher 5i 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
Kapazitätsgrenze des Innenspeichers von 64 K hinaus erweitert werden kann, muß ein Übersetzer vorgesehen
werden, wie es in F i g. IC gezeigt ist. Es kann dann ein
Außenspeicher hinzugefügt werden, welcher mit dem Übersetzer durch Außenspeicherzyklus-Signalleitungen
58 verbunden werden, welche die Außenspeicherzyklussteuerung (OSZ) ermöglichen, die in F i g. 9G dargestellt
ist
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 übersetzen 24 Bit Ismgen 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-Po-
sitionen 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 >o 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 Haupt-Speicherbusschnittstelle
ü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 den
Asynchronspeicher.
C Adreßbereichs-Verteilung
Fig.2A zeigt die Beziehungen zwischen den
verschiedenen Speicherzugriffsarten, welche durch verschiedene Arten von Prozessorbefehlen und Kanal- 2>
befehlen hervorgerufen werden, und den entsprechenden Datenadreßbereichen, die in dem Ausführungsbeispiel
benutzt werden. In Fig.2A ist nur eine Untermenge der Zugriffsarten benutzt die in F i g. 1B
gezeigt wurden. Wie in Fig.2A dargestellt, wird ein jo
Befehlsabruf im Befehlsadreßbereich 60 unter Benutzung des ISS ausgeführt. Außerdem sind zwei
verschiedene Operanden-Zugriffsarten in Fig.2A gezeigt,
welche in den Datenadreßbereichen 6t und 62 ausgeführt werden, wobei die Inhalte der Schlüsselregisterabschnitte
OPlS und OP 2S benutzt werden.
C. 1. Prozessoradreßbereichs-Verteilung
F i g. 2A veranschaulicht die Speicherzugriffe, welche auf Grund verschiedener Prozessorbefehlsarten vorgenommen
werden. Ein Speicher-Speicherbefehl ruft Daten im OP lS-Datenbereich 61 oder im OP 2S-Datenbereich
62 ab und bewirkt eine Speicherung der Resultate in den OP 2S Datenadreßbereich 62. Ein
Befehl für direkte Speicheroperationen holt seine Daten von ISS-Adreßbereich 60 und speichert seine Resultate
in den OP 2S-Datenadreßbereich 62 oder in ein Allgemeinregister (AR). Ein Register-Speicher-Befehl
verschiebt Daten von einem allgemeinen Register 63 zum OP 2S-Datenadreßbereich 62; ein Speicher-Register-Befehl
holt Daten vom OP 2S-Datenadreßbereich 62 und speichert sie in einem Allgemeinregister 63. Ein
Verzweigungsbefehl holt einen Verzweigungszielbefehl auch vom ISS-Adreßbereich 60.
C. 2. E/A-Unterkanaladreßbereichs-Verteilung
55
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 t>o
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 OP 2S-Adreßbereich 62 entnommen werden.
Die andere E/A-Befehlsart bewirkt die normale Art t>5
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=O
Kanalprogrammadreßbereich« 64 (siehe Fig.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 Unterkanalprogramm hat in welchem die Befehle die Möglichkeit
haben, jeweils einen anderen Schlüsselwert in den Adreßschlüsselregisterabschnitt jedes Unterkanals einzugeben,
so daß es für jeden Unterkanal möglich ist bei jedem Kanalbefehl zu einem anderen Adreßbereich
zuzugreifen. Damit hat also jeder Kanal die Möglichkeit den Datenadreßbereich, zu dem er zugreift bei Bedarf
beliebig zu verschieben.
F i g. 2B zeigt etwas genauer die Art und Weise, in der die E/A-Operationen ihre Adreßschlüssel bestimmen
können, um verschiedene Datenadreßbereiche im Hauptspeicher auszuwählen.
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-Adrcßbereich. Der OP-Codeteil des Befehls
gibt an, daß es sich um einen E/A-Betriebsbefehl handelt, und das R 2-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ätesteuerblockv.· (IGSB)
im OP 2S-Adreßbereich bezeichnet Falls mit indirekter Adressierung gearbeitet wird, steht die indirekte
Adresse selbst im OP 2S-Adreßbereich. Die IGSB-Adresse 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 OP 2S-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 O (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=O Adreßbereich«.
Jeder Gerätesteuerblock GSB hält jedoch in seiner ersten Wortste.lle 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 von 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 äh: ächer Weise enthält das
nächste Steuerwort GSB-I einen Schlüssel für GSB-I, 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
in 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ßbereichsauswahl
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 gleiche Weise, wie die Prozessoradressen
übersetzt werden.
F i g. 3A zeigt Schaltungseinheiten für die Steuerung der GSB-Schlüsselöperationen. 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-Schlüssel durch den betreffenden E/A-Unterkanal. Der GSB-Schlüssel wird in ein
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 Unterkanaloperationen 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, bo
Nachdem der GSB-Abruf ausgeführt ist, wird der GSB im Unterkanal gespeichert, das GSB-Abruf-Signal
beendet und ein »Kein GSB-Abrufw-Steuersignal aktiviert, welches die UND-Glieder 316 (0), 316 (1) und
316 (2) freigibt, um den GSB-Schlüssel aus dem tv, GSB-Schlüsselregister auszugeben, so daß dieser als
CS-Schlüssel für die GSB-Datenzugriffsoperationen zur
Verfügung steht. Der CS-Schlüssel wird über den Bedingungscodebus zum Kanal in Fig.3B übertragen.
Der Kanaj überträgt dann den CS-Schlüssel zum CS-Schlüsselbus, der mit der Speicherprioritätsauswahlschaltung
in F i g. 3C, verbunden ist
Q 3. Speicherprioritäts-Auswahlschaltung
In Fig.3C ist gezeigt, daß der CS-Schlüssel vom
Kanalbus einer Kanalsauswahlschaltung 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 oine 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 i g. 3B).
Die Speicherprioritätsauswahlschaltung 56 ist mit CS-Zyklus-Anforderungsleitungen eines jeden der Kanäle
1 ... P verbunden, welche an einen Prozessor angeschlossen sind. Durch die Schaltung 332 wird
jeweils ein bestimmter CS-Schlüssel ausgewählt und an die Kanalauswahlschaltung 331 abgegeben, welche den
CS-Schlüssel des ausgewählten Unterkanals an die AAS-Auswahlschaltungen 333 überträgt, welche auch
die Prozessoradreßschlüssel 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
Fig.4 zeigt Einzelheiten der für die Beschreibung
wesentlichen Teile des Systernprozessors, 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üsselregister 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 (F i g. 3D)
erscheinen.
Fig.4 zeigt diejenigen Steuereinrichtungen im Prozessor, die mit dem Adreßschlüsselregister ASR
zusammenarbeiten. Das ASR wird geladen vom Prozessordatenbus (Datensammelleitung) mittels der
Eingabesteuerung (EG), und die verschiedenen Adreßschlüssel werden aus dem Adreßschlüsselregister auf
den Prozessordatenbus ausgegeben mit Hilfe der Ausgabesteuerung (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ämlich den ISS-Bus, den OP2S-Bus, den OP ΙΑ-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 etwa 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 Bitposition 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 OP 2S zu
steuern, bzw. um andere Prozessoroperationen zu veranlassen.
D. 1 Register für letzten aktiven AdreßschlüsseJ AAS
Dei in Fig.4 gezeigte Prozessor enthält auch ein
Register für den letzten aktiven Adreßschlüssel, mit dessen Eingangsseite eine AAS-TorschaJtung 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
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, welche den Aufruf eines Diagnoseprogramms bewirkt welches die Fehlerbedingung
beseitigt entweder durch wiederholte Ausführung der fehlerhaften Funktion, bis sie korrekt ausgeführt ist,
oder durch Ausführung einer Abschlußoperation (logout), wenn festgestellt wird, daß der Fehler ein
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 Prozessors geändert werden kann, ist die Speicherung
des Gesamtzustands des Prozessors in einem Niveau-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
OP IK-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 Allge-
mein-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 die-
sem einzelnen Befehl kann entweder das Laden des
ASR aus dem Hauptspeicher oder das Abspeichern des Inhalts des ASR in den Hauptspeicher gesteuert
werden.
F i g. 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 ASRX der eingegeben oder ausgegeben
jo werden soll. Die K-Werte 0,1, 2 oder 3 bezeichnen die
Registerabschnitte ISS, OP 2S, OP IS bzw. das gesamte ASR, zur Benutzung durch diesen Befehl. Eine logische
Hauptspeicheradresse wird erzeugt mit Hilfe des RB-Feldes in den Bit-Positionen 8 und 9, welches ein
Basisregister bezeichnet und die Zugriffsmodusbits 10 und 11 (AM) welche angeben, ob ein Wort 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 Wortsteüe im Hauptspeicher zu erzeugen, welche durch
die Ausführung dieses Befehls entweder geladen oder abgespeichert wird. Das Bit X in der Bit-Stelle 12 gibt
an, ob es sich um einen Ladebefehl oder einen Abspeicherbefehl handelt. Wenn 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-BU=I 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.
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 von 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 Prozessors-ROS-Decodierers 405 (F i g. 4), welche mit den auf
dem Datenpfad des Prozessors auftretenden Signalen die im Zusammenhang mit Fig.8B beschriebenen
Operationen veranlassen.
E. Obersetzer
Fig. 9A und 9B enthalten Einzelheiten des in Fig. IC
gezeigten Übersetzers 59, welcher die mit Fig. IA beschriebenen Obersetzungsvorgänge für Adreßverschiebungen
vornimmt. Diese Adreßverschiebungs- > Obersetzungsschaltungen 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 Hauptspeiehers 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 Unterkanai gemeinsam als logische Eingangsadresse aufnimmt und diese Eingangsadresse in eine 24 ι ί
Bit lange physische Adresse umwandelt, die Zugriff zum Innenspeicher, Außenspeicher oder Asynchron-Speicher
hat
Dieser Übersetzungsvorgang ermöglicht die dynamische Zuleitung physischer Speicherkapazität zu logisehen
Adreßbereichen und die gemeinsame Benutzung physischer Speicherkapazität von mehreren logischen
Adreßbereichen. 8 Sätze (Stapel) von je 32 Segmentregistern (SR) sind für die 8 verschiedenen möglichen
Werte der Adreßschlüssel vorgesehen, was insgesamt 256 Segmentregister ergibt Jeder geladene 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
Validitäts-Bit=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 Adreß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 Inkremen ten 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 so
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 Innenspeichers und Außenspeichers hinaus bedürfen
einer zusätzlichen Asynchronspeichereinheit (F i g- IC), durch welche der physische Speicher von 128 K Bytes
bis zu einem Maximun von 16 Millionen Bytes vergrößert werden kann.
Der größte durch die Maschine statisch adressierbare Adreßbereich, welcher allen gleichzeitig ablaufenden
Programmen zur Verfügung steht, wenn alle Segmentregister mit verschiedenen physischen Blockadressen
geladen sind, beträgt 219 Bytes. Diese Grenze ist bestimmt durch die 19 Bit lange Eingangsadresse,
welche in F i g. 1A gezeigt ist, und die entsteht, wenn ein
3 Bit langer aktiver Adreßschlüssel an die 16 Bit lange im Programm erscheinend? 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 OP 2S, 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 Maschinenadressierbarkeit bezeichnet Wenn
man nun eine Adressierung über die 512 K Bytes des statischen Maximuns 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 Übersetzer 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/Sperrbefehl gibt an, ob im System ein Übersetzer vorgesehen ist oder nicht, und Bit 7 gibt an,
ob er freigegeben oder gesperrt sein soll. Die in F i g. 10 gezeigte Schaltung bestimmt ob der Übersetzer
freigegeben wird oder nicht Wenn der Obersetzer nicht freigegeben wird, und wenn das SP-Bit in dem in
Fig. 13A gezeigten Befehl auf 1 gesetzt ist wird die in F i g. 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.
F i g. 9A und 9B zeigen im Einzelnen die Schaltungen, Busleitungen und Schnittstellenleitungen für den Übersetzer
59 des Systems von Fig. IC, gemäß folgender
Aufstellung:
E. 1 Schnittstelle Prozessor/Übersetzer
(1) Speicheradreßbus 901. Er hat 15 Leitungen, welche die logische Programmadresse vom Speicheradreßregister
(SAR) des Prozessorrs 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ätsauswahl-
schaltung (F i g. 3C) zum Übersetzer, um einen bestimmten Segmentregisterstapel im Übersetzer
auszuwählen.
(5) Speicherschreiben OP 0. 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 OP 1. 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 Prozessorzeitgerimpulse von 55 Nanosekunden
Dauer, welche den Synchronismus zwischen dem Prouessor 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 51 mit
jeder neuen physischen Adresse ein Sneicherzeitsignal zur Verfugung zu stellen. Wenn ein
Außenspeicher- oder Asynchronspeicherzyklus (OSZ oder ASZ) ausgeführt werden soll, wird diese
Leitung deaktiviert, so daß der innere Speicher nicht ausgewählt wird.
(12) Obersetzerspeicher besetzt Diese Leitung tiberträgt
einen vom Obersetzer generiertes Signal welches dem Prozessor anzeigt, daß er die
Takteignale 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 Speicherzykhis zu beenden. Diese Stillegung der
Speichertaktsignale durch eine Asynchron
speichereinheit ist der Grund für deren asynchrone Arbeitsweise und der Grund dafür, daß ihr
Zugriffszyklus länger 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 Zyklusentnahme. Diese Leitung überträgt ein vom Prozessor
generiertes Signal an den Übersetzer, welches anzeigt, daß dieser das Nur-Lese-Bit 14 im
adressierten Segmentregister ignorieren soll, weil die vorliegende Speicherzugriffsanforderung entweder
vom Überwachungsprogramm oder vor einem E/A-Unterkanal stammt.
(17) Zyklusende. Diese Leitung überträgt ein vorr
Prozessor generiertes Signal, welches dem Übersetzer anzeigt, daß jetzt der Speicherzyklus
beendet wird.
(18) Segmentregisterzyklus. Diese Leitung überträgi ein vom Prozessor generiertes Signal, welches den
Übersetzer anzeigt, daß die Segmentregistei aktiviert werden. Gleichzeitig werden die Leitun
gen Speicher-Scheiben OP 0 bzw. Speicher-Schrei ben OP 1 benutzt, um anzuzeigen, ob der Zyklus eii
Lese- oder Schreib-Zyklus als Teil eines Befehl: »Segmentregister abspeichern« oder »Segmentre
gister laden« ist.
E. 2 Schnittstelle Übersetzer/Außenspeicher
Die Schnittstelle vom Übersetzer zum Außenspeichei ist in Fig.9B gezeigt. Zu ihr gehören folgend«
Leitungen:
(1) Kartenauswahlleitungen. Diese vier Leitungen welche bezeichnet sind mit Kartenauswahl 80 K
96 K, 112 K und 128 K, wählen je eine Speicherkar
te von 16 K Bytes im Außenspeicher aus.
(2) Leitungen TCSX und TCSY. Diese sechs Leitungei übertragen X-Koordinaten und V-Koordinaten fO
die ausgewählte Karte, um einen bestimmte! Bereich auf dieser Karte auszuwählen.
(3) Leitungen »Byte 0 Schreiben« und »Byte Schreiben«. Diese vier Leitungen übertragei
Zeitgebersignale zu den vier Außenspeicherkarter um ein Byte zu schreiben.
Wenn der Übersetzer die physische Speicheradress* vom entsprechenden Segmentregister erhält, bestimm
er, ob ein Zugriff zum Innenspeicher, zum Außenspei eher oder zum Asynchronspeicher gemacht werdei
muß; er aktiviert die Schnittstellenleitungen zur Außenspeicher nur, wenn ein Außenspeicherzyklu
erforderlich ist. Die Leitungsbrücken, welche in de Außenspeichersteuenmg eingebaut werden (Fig.9B
zeigen an, welche der vier Karten der Außenspeichereinheit installiert sind.
E. 3 Schnittstelle Übersetzer/Asynchronspeicher
Die Schnittstelle vom Übersetzer zum Asynchronspeicher (F i g. 9A und 9B) umfaßt folgende Leitungen:
(1) Asynchronspeicher Ausgabedaten/Parität. Diese 16 Datenleitungen und zwei Paritätsleitungen
bilden den Speicherdatenbus zur Asynchronspeichereinheit.
(2) Asynchronspeicher Eingabedaten/Parität. Diese 16 Datenleitungen und zwei Paritätsleitungen bilden
den Speicherdatenbus von der Asynchronspeichereinheit zum Prozessor und zum Kanal.
(3) Asynchronspeicher unteres SAR Aus. Diese 13 ir)
Leitungen übertragen die 13 höhcrwcrtigen Bits der physischen Adresse, welche die Blockadresse in
der Asynchronspeichereinheit bilden. Sie bilden die oberen SAR-Bits 0—12, welche im Asynchronspeicherzyklus
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 3«
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 Speichermodu! 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) Schnittstellentakt 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. Rückantwort Auf dieser Leitung erscheint ein
Signal von der Asynchronspeichereinheit, wenn der adressierte Speicherplatz installiert ist
SchreibzeitgabesignaL Diese Leitung zum ausgewählten Asynchronspeichermodul wird während eo 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 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.
SchreibzeitgabesignaL Diese Leitung zum ausgewählten Asynchronspeichermodul wird während eo 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 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-Bits 2 benutzt, um von den vorgewählten Segmentregistern zur Einschränkung
zunächst vier auszuwählen, und zwar entweder von den gradzahligen oder den ungradzahligen Stapeln. Die vom
AAS-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-Bit (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
Segmentregister
F i g. 8A zeigt die Operation der Befehle zum Laden
und Abspeichern der Segmentregister (SR). F i g. 17 zeigt die Prozessorspeichersteuerung, und F i g. 9A und
9B zeigen die zugehörigen Übersetzersteuerungen, welche zur Ausführung dieser Befehle benötiet werden.
In F i g. 8A ist gezeigt, wie der Befehl »SR Laden« die
Eingabe einer physischen Blockadresse in ein gewähltes Segmentregister von einem adressierten 'Wortspeicherplatz
im Hauptspeicher steuert Der Befehl »SR Abspeichern« bewirkt das Kopieren des Inhalts eines
ausgewählten Segmentregisters in eine adressierte Wortspeicherstelle im Hauptspeicher.
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 Xauf 0 gesetzt ist,
wird der Inhalt der adressierten Wortspeicherstelle hn
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 Hauptspei- \r>
eher 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 2« 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 generierte
effektive Adresse in den Übersetzer (F i g. 9A und 9B) zusammen mit dem aktiven Adreßschlüssel AAS
eingegeben, um eine logische Maschineneingabeadresse jo zu bilden. Der Übersetzer gibt eine 24 Bit lange
physische Adresse ab, mit der ein Zugriff zu der adressierten Wortspeicherstelle möglich ist. Somit ist es
möglich, daß bei dem Segmentregister, welches geladen werden soll, sein vorheriger Inhalt in einer Übersetzungsoperation
benutzt wird, bevor dieser Inhalt durch den Segmentregisterladebefehl zu einer anderen physischen
Blockadresse verändert wird.
Wenn der Prozessor nicht im Übersetzerbetrieb arbeitet, ist die generierte effektive Adresse die w
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.
F i g. 17 zeigt die Steuereinrichtung des Prozessors,
die bei Ausführung der Befehle zum Laden bzw. Abspeichern der Segmentregister benutzt werden, so
Diese Steuerschaltungen im Prozessor generieren ein SegmentregisterzykhissignaL, 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 as
(PH) für einen Zyklus gesetzt; deren Ausgangssignal aktiviert das UND-Glied 484, wenn der Obersetzer
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 normales 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 Ausgangssignai 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 Prozessorspeicheradreßregister 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 Lade- oder Abspeicher-Operation
ausgeführt wird; zu diesem Zweck wählt das X-Bit eine Lade- oder Abspeicher-Mikroroutine vom Prozessorfestspeicher
ROS. Für eine Segmentregisterladeoperation generiert die Mikroroutine zunächst eine
Prozessorspeicheranforderung, während der das durch den SR-Befehl adressierte Wort aus dem Hauptspeicher
abgerufen und in das Prozessorspeicherdatenregister SDR eingegeben wird. Danach gibt die rviikrorouiine
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 Prozessor-
Speicheranforderung, 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 werden (falls die
vorgriffsschaltungen nicht vorgesehen wären), um die ausgelesene Blockadresse zu decodieren und um den
Schnittstellenbus zu der benötigten Speichereinheit auszuwählen, d. h. zum Innenspeicher, zum Außenspeicher
oder zum Asynchronspeicher, zu dem die physische Bloekadresse ü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 Bloekadresse nicht zu decodieren, um die benötigte Speichereinheit
zu bestimmen. Das heißt, daß durch die Vorgriffsschaltung die Zugriffszeit bei Übersetzung um einen
Prozessortaktzyklus verkürzt wird. Während des Übersetzungsvorgangs liegen die D-Bits der Positionen
5 bis 15 der logischen Adresse ständig auf dem Hauptspeicherbus vom Prozessorspeicheradreßregister
SAR vor. Für die D-Bits wird also keine zusätzliche Übersetzungszeit benötigt; sie werden gleichzeitig an
alle drei Speichereinheiten abgegeben.
Für die Vorgriffsschaltungen werden in jedem Segmentregister (SR) in jedem der acht Stapel
(Fig.9A) zwei Bit-Positionen vorgesehen, die als Vorgriffsbits bezeichnet sind. Die Einteilung der
Segmentregister zeigt 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 Fig.8A gezeigten Operationen
ausführt, ist in F i g. 17 gezeigt Die Vorgriffsbits
zeigen an, ob der Innenspeicher, der Außenspeicher oder der Asynchronspeicher den Block enthält, welcher
der Blocknummer im SR entspricht Wenn die 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 Vorgnffsbits werden in der in F: g. 9G gezeigter.
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 Asynchron speicher. Der Wert des rechten Vorgnffsbits 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 Obersetzungsoperation.
Die Schaltungen zum Setzen der Vorgriffsbits sind in Fig.9C gezeigt Dazu gehören die Decodierer 901A
und 902A denen beide der höherwertige Teil der zugeordneten Blocknurnmer zugeführt wird, die in ein
Segmentregister bei Ausführung eines Segmentregisterbefehls geladen wird, wie dies im Zusammnhang mit
F i g. 8A beschrieben wurde. Das ausgewählte Segmentregister befindet sich in einem der Stapel 0 bis 7
(Fig.9C). Die Blocknummer wird abgegeben vom Befehl »Segmentregister laden«, welcher die durch
Programm zugeteilte Blocknummer von dem Speicher-
lu platz 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
is mit dem Speicherdatenbus zum Speicher (Fig.9A)
verbunden ist, über welchen die Daten übertragen werden, welche in ein adressiertes Segmentregister in
einem der Stapel 0 bis 7 zu laden sind. Der Segmentregisterladeweg ist in Fig.9C im einzelnen
gezeigt; die Signale auf den SR-Eingangsleitungen 00—07 werden zur Erzeugung der Vorgriffbits benutzt.
Die Leitungen 00 bis 06 sind mit dem Eingang des 0-Decodierers 902Λ 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 O-Signal am Ausgang
ab, wenn irgendeiner der Eingänge gleich 1 ist. Wenn der Decodierer 901Λ lauter Nullen in den Bit-Positionen
jo 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 901 A zeigt an, ob der physische
iί 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 Vorgnffsbits so gesetzt daß sie diejenige
Speichereinheit angeben, welche den zugeordneten 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. 9 A) eingegeben. Die Segmentregisteradresse wird von den Leitungen 00 bis 04 des Speicheradreßbus 901
über das PH-Register zu den Segmentregisterstapeln 0—7 (Fig.9A) übertragea Diese Adreßsignale gelangen auf die Leitungen 00 bis 07 des SpeicheradreBbus
901 (Siehe Fig.3C) vom Speicheradreßregister SAR
(Fig.4) über den ProzessoradreBbus. Der Inhalt des
SAR stammt aus dem Allgemein-Register, welches durch den Befehl »Segmentregister Laden« (Fig.8A)
ausgewählt wurde, von welchem Allgemein-Register die
Bhs 0—7 die SR-AdreB-Bits auf den Leitungen 00 bis 07
des Bus 901 sind. (Das Allgemein-Register AR wird im
Niveau-Stapel 431 (Fig.4) durch eine Niveaustapeladresse ausgewählt, die vom AR-FeId im Befehl
»Segmentregister laden« abgeleitet wurde.)
Der Konzentrator 922 gibt dann die Stapeladresse des gewählten Segmentregisters auf seinen folgenden
Ai'sgangsleitungen ab: AAS-Bh 2, AAS-Bit 1, und »SR Hoch-Niedrig-Auswahl« (Leitung 935). Die Leitung 935
gibt ein. Eingangssignal an die Grundsteuerung in Fig.9B. Diese Schaltungen sind im Einzelnen in
Fig.9D-2 gezeigt; sie erzeugen die Signale für die Leitungen 932 und 933, die mit den Segmentregisterstapeln
0—7 zur Angabe des niederwertigen Stapeladreßbits verbunden sind, und entsprechend der wahren und
der komplementären Form des Signals auf Leitung 07 des Speicheradreßbus 901. Die Signale auf der Leitung
AAS-Bit 1 entsprechen der wahren und der komplementären Form der Signale auf der Busleitung 06; und
das Signal auf der Leitung AAS-Bit 2 entspricht dem Signal auf der Bus-Leitung 05.
Bei einem Speicherzugriff im Übersetzungsbetrieb wird ein Stapelregister ausgewählt durch die gleiche Art
von Konzentrationsoperation, wie sie im Abschnitt »Segmentregister-Auswahl« beschrieben wurde. Aus
den vom Konzentrator angewählten Segmentregistern werden die beiden Vorgriffsbits zur gleichen Zeit wie
die übrigen 16 Bits ausgelesen. Für die Vorgriffsbits wird ein separater Konzentrator 931 benutzt, weil er
schneller arbeitet als der weitere Konzentrator 921, der die Blockadreß-Bits für das gleiche Segmentregister jo
auswählt. Am Ausgang des Konzentrator 931 wird jeweils eine von drei Ausgangsleitungen aktiviert, um
den gewählten Speicherzyklus anzugeben, nämlich entweder ISZ, OSZ oder ASZ. Für den Prozessor
werden die ISZ-Signalleitungen 54Λ vom Prozessor
durch die Speicherprioritätsauswahlschaltung 56 zur Innenspeichereinheit 51 (Fig. IC) benutzt. Da die
Leitungen 54A 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-Adressieroperation
zu veranlassen. Die Leitungen für den Außenspeicherzyklus und den Asynchronspeicherzyklus
führen zu den F i g. 9E bzw. 9F-1, um die Adreßauswahl
in den betreffenden Einheiten zu veranlassen.
F. Operandenbereichsabgleich
45
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 OP 2S-Adreßbereich stattfinden, während der Adreßbereich, der durch den
OP1 S-Adreßschlüssel angegeben ist, obwohl der
Schlüssel im OP lS-Registerabschnitt des Adreßschlüsselregister
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 bo
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 OP IS-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 OP 2S-Schlüssel abgibt, jedesmal
wenn bei Ausführung eines Befehls im Prozessor eine Zugriffsanforderung entweder für einen OP 1-Operanden
oder einen OP 2-Operanden vorliegt
Wenn der OBA-Zustand beendet wird durch Ausführung eines Sperrbefehls, dessen OBA-Bit 13 auf Null
gesetzt ist, wird der Schlüssel im OP lS-Registerabschnitt
wieder in Benutzung genommen, und bei jeder OP 1-Operandenanforderung ausgegeben.
G. Adreßbereichsbestimmung durch
Schlüsseleingabe ins ASR
Schlüsseleingabe 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 et.:hä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 definiert
wird), erfolgen im Adreßbereich, der durch den OP IS
definiert ist. (Auf Grund der Konstruktion si.id 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 OP 2S definiert ist.
Wenn z.B. ISS=OP IS=OP2S, erfolgen alle
Speicherzugriffe zu dem gleichen logischen Adreßbereich von 64 K Bytes Kapazität Wenn ISS nicht gleich
OP 1 ist, wenn aber OP IS=OP 2S, dann erfolgen die Instruktionsabrufe im ISS-Adreßbereich und die Datenzugriffe
erfolgen im OP 2-Adreßbereich. Wenn ISSTtOP 1 S# OP 2S, dann erfolgt der Befehlsabruf im
ISS-Adreßbereich, jeder Abruf eines Operanden 1 im OP IS-Adreßbereich, und jeder Abruf oder jede
Abspeicherung eines Operanden 2 im OP 2S-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
W<;nn im Prozessor eine Unterbrechung vorkommt,
werden in das ASR zur Vorbereitung Adreßschlüssel für Adreßbereiche eingegeben, die von den die Unterbrechung
behandelnden Programmen benötigt werden könnten. Es gibt im System eine Mehrzahl verschiedener
Arten von Unterbrechungen, deren jede ihre spezielle Programmierunterstützung hat, die wiederum
das Laden bestimmter Adreßschlüssel erfordert Zu den Prozessorunterbrechungen gehören: Unterbrechungen
zum Überwachungsprogrammaufruf, E/A-Geräteunterbrechungen, Maschinenfehler-ZProgrammfehler-Unterbrechungen,
Programm-Protokoll-Unterbrechurigen, Bedienungsfeld-Unterbrechungen und Unterbrechun-
gen bei thermischer Überlastung. Dieser Prozessor-Unterbrechungen werden manchmal Klassen-Unterbrechungen
genannt
Es wird angenommen, daß alle Unterbrechungs-Routinen im Adreßbereich mit Schlüssel=0 untergebracht
sind. Deshalb muß in den ISP-Abschnitt eine 0 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 Unterbrechungsdaten gehörende Adreßschlüssel
in den OP lS-Registerabschnitt geladen werden. Ein OP 1-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. OP IS-Bereich)
zum OP 2S-Adreßbereich mit Schlüssel=0. Wenn eine Klassenunterbrechung auftritt, wird z. B. ein Niveaustatusblock
NSB in den OP2S-Bereich abgespeichert welcher den Schlüssel = 0 hat (d.h. OP2S=O), wobei
Daten vom OP IS-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 Programmladen, während denen die ΟΡΑ-Einrichtung der Übersetzer, und die Speicherschutzeinrichtung
alle gesperrt sind.
H. 1 Unterbrechung
mit Überwachungsprogramm-Ruf
(SVC-Unterbrechung)
Für die unten besprochene Operation bei der SVC-Unterbrechung ist angenommen, daß die Überwachungsprogramme
im Adreßbereich mit Schlüsse! = 0 untergebracht sind, und daß das Benutzer-Programm in
einem anderen Adreßbereich, d. h. mit Schlüssel 0 steht. Es ist weiterhin angenommen, daß ein Austausch von
Daten zwischen Benutzer und Überwachungsprogramm erforderlich ist. Die Daten müssen vom
Adreßbereich des Benutzers in den Adreßbereich des Überwachungsprogramms geholt werden und müssen
später zum Adreßbereich des Benutzers zurü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 OP 2S an den Inhalt von OP IS ausgegeben, so daß der Adreßbereich, der
die Daten enthält, die bei der Generierung der Unterbrechung beteiligt waren, adressierbar wird. Die
Null-Ausgabeleitung (AGO) vom Prozessor-ROS-Decodierer wird aktiviert und über den Prozessordatenpfad
in die OP 2S- und ISS-Positionen des ASR Werte eingegeben.
Daten werden vom Benutzerbereich in den Überwachungsprogrammbereich
übertragen, und dann wird der Freigabebefehl (Fig. 13A) mit einer 1 in Bitposition 13
ausgeführt, um den 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 OP 1-Adreßbereich nicht verloren wird.
Wenn das Überwachungsprogramm Information in den OP IS-Bereich übertragen möchte, gibt der
Prozessor einen Sperrbefehl ab, der den Inhalt des OBA-Abschnitts im ASR rückgestellt; dies bewirkt
Rückkehr zum OP1-Adreßbereich. Dann wird der
Zustand 6 von Fi g. 13B herbeigeführt durch Auswechseln
der Felder OPlS und OP 2S, damit dem Überwachungsprogramm eine Adressiermöglichiteit
zum Abspeichern im OP IS-Bereich gegeben wird. Das Überwachungsprogramm kann die Daten vom Überwachungsprogrammbereich
zum Benutzerbereich übertragen. Dann wird das ASR in den Benutzerzustand 7 (Fig. 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 folgende 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 EG ABR vom ROS-Decodierer. Diese Operation wird angezeigt durch die Übertragung
des ASR-Inhaltes in das Register TEMPA in Fig. 18; es wird angenommen, daß OP IS, OP2S
und ISS auf den Wert 3 gesetzt worden sind.
(2) Ausgabe OP 2S und Eingabe OPlS.
(3) OP 2S = 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ückgestellt und das Protokollbit ebenfalls rückgestellt.
(6) Der Inhalt des BAR (Befehlsadreßregister) wird dann um zwei Einheiten erhöht, so daß die nächste
Speicherstelle adressiert wird, in welchem sich der Anfang der Daten oder ein Zeiger zu den Daten
so 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üseel = 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-RegisterO—7 gespeichert. (NSB).
(10) Die SVC-Nummer (welche die betreffende Art von
bs SVC-Befehl identifiziert) wird aus dem SVC-Befehl
im Adreßbereich 1 kopien in das Register R 1.
(11) Der Inhalt des Speicherplatzes 0012 wird in das
BAR übertragen.
OP2S
ISS
10
OP2S' 0
(Bemerkung: OP2S' ist der vorherige Inhalt von 0P2S).
Bei den anderen Klassen-Unterbrechungen werden ähnliche Arten von Operationen durchgefülirt 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) ISS=OP 1S=OP 2S=O setzen.
(3) Die Adresse eines Gerätedatenblocks in Register 1 einsetzen.
(4) Die Unterbrechungsidentifikation (I D), welche vom unterbrechenden E/A-Gerät empfangen wurde, in
Register 7 einsetzen.
Der sich ergebende Inhalt des ASR ist:
OPlS
0P2S
ISS
OO 0
H. 3 Unterbrechung bei Maschinenfehler und Programmfchler
(1) Protokoll rückstellen, Summenma^ke sperren,
OBA sperren, und Überwachungszustände setzen. Den NSB im Adreßbereich mit Schlüssel = 0
abzuspeichern.
ISS=OP 2S = O setzen.
LKSA im OP IS speichern.
ISS=OP 2S = O setzen.
LKSA im OP IS speichern.
45
Inhalt des SAR im Register 7 speichern (außer Protokollbit).
Es ergibt sich folgender Inhalt des ASR:
Es ergibt sich folgender Inhalt des ASR:
OP2S
ISS
LKSA 0 0 (Bemerkung: LKSA ist der
letzte im Register 408 in Fig. 4 gespeicherte Schlüssel bei Auftreten
der Unterbrechung.)
H. 4 Unterbrechung vom Bedienungsfeld/ Unterbrechung bei thermischer Überlastung
(1) Protokoll rückstellen, Sumincnmaske sperren,
OBA sperren, und Überwachungszustiinde setzen.
(2) NSB abspeichern unter Benutzung de;- Adreßschlüsseis
0.
(3) ISS = OP IS = OP 2S = 0setzen.
Es ergibt sich folgender Zustand des ASR:
55
(12) Es beginnt jetzt die Ausfürung 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
0 0 0
II. 5 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 OP 1S.
(3) OP 2S=ISS=O setzen.
Daraus ergibt sich folgender Inhalt des ASR:
15
0P2S
ISS
ISS' O O (Bemerkung: ISS'
entspricht dem zur Zeit
der Unterbrechung vorliegenden ISS.)
der Unterbrechung vorliegenden ISS.)
2. Schaltungen für Speicherschutz
ohne Übersetzer
ohne Übersetzer
Die in F i g. 11 gezeigten Speicherschutzschaltungen
für übersetzungsfreie Adressierung (ÜFA-Speicherschutzrchaltungen)
werden benutzt, wenn der in F i g. 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üsselspeicherschutz einerseits und einem
System ohne Übersetzer mit Speicherschutz andererseits. Das heißt: Programme und Daten, die in einem
System benutzt werden, welches mit der ÜFA-Speicherschutzeinrichtung
arbeitet, können ohne Änderung in einer Anlage benutzt werden, die einen Adreßverschiebungsübsrsetzer
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 auch
freigegeben ist, wird der Adreßverschiebungsübersetzer
gesperrt. Der Zustand der ÜFA-Speicherschutzeinrichtungen wird gesteuert durch den Freigabe/Sperrbefehl,
der in F i g. 13A gezeigt ist.
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
Registerstapel 501 (F i g. 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
Obersetzer freigegeben wird, ist die im Programm
erscheinende Adresse ein Teil der logischen Eingangsadresse. Jedes Register hat mindestens drei Bitstellen
für einen zugeordneten Speicherschlüpsel 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 System/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-Auswahlschekungen 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 Innenspeicherblock 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 der Vergleichsschaltung 502 (Fig. 11) verglichen.
Falls der Vergleicher anzeigt, daß die beiden Schlüssel gleich sind, so wird der Zugriff zugelassen, vorausgesetzt,
daß die ÜFA-Speicherschutzeinrichtung freigegeben ist, und daß es sich bei dem Zugriff entweder um
eine Abruf-Operation handelt oder um eine Schreib-Operation, wobei das Nur-Lese-Bit auf 0 gestellt ist. Die
ÜFA-Speicherschutzeinrichtung ermöglicht also einen selektiven Schutz je nach Zugriffsart; mit ihr kann also
bei übersetzungsfreier Adressierung ein getrennter Speicherschutz für Adressen in den Bereichen OP IS,
OP 2S 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 gemeinsamen benutzten Speicherbereichen.
Eine besondere Zugriffssteuerung für E/A-Operationen
bei Benutzung der ÜFA-Speicherschutzeinrichtungen ist durch die Schaltungen 504 und 505 gegeben,
welche ermöglichen, daß eine E/A-Cycle-Steal-Zugriffsanforderung
sowohl zu dem Speicherbereich, der für den betreffenden Benutzer in einem 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.
(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 (PSW-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üsselregisters 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 Speicherbereich 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
so 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 definierbar 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 laden
oder um aus diesen abzuspeichern, sind verschieden 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-Speicherschutzeinrichtung
aber kann Speicherschutz-Fehleroperationen annehmen für den Zugriff zu einer Adresse,
welche nicht zu dem durch einen CS-Schlüssel oder durch einen Schlüssel = 7 definierten Bereich a
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 4!l
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äß Fig. ID erreicht werden
kann; sie ermöglicht jedoch separate Adressierbereiche für E/A-Speicherzugriffe. Die alternative Betriebsart
ermöglicht dem Prozessor eine unterschiedliche, von 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) verändert werden müßte.
In der Anordnung gemäß Fig. 14 kann nur em
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überwachungsprogramme 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 Überwachungszustand 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 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 Adressierbarkeit 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 nichtbeteiligter 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 Überwachungsprogramm aus dem Bereich mit Schlüssel = C
heraus arbeiten, ohne den laufenden Benutzerschlüsse] im BSR 460 zu stören. In diesem Fall erfolgen alle
Befehls- und Operandenzugriffe nur im Bereich mh Schlüssel=0, und das Überwachungsprogramm darf zu
keinem Benutzerbereich zugreifen. Das heißt, daß ir
diesem Zustand das Überwachungsprogramm einer 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 NuIi
ist, wobei der Wert des ASB-Bit A ohne Belang ist Ir
diesem Fall erfolgen alle Befehlsabrufe und Operandenzugriffe nur in dem durch den Benutzerschlüsse!
definierten Bereich; zum Hauptspeicherbereich mit den Schlüssel=0 sind dann keinerlei Zugriffe erlaubt
Die Betriebsart wird im Prozessor durch die ii
Fig. 14 gezeigte Schaltungsanordnung gesteuert UND-GBed 462 wird freigegeben, wenn im NSR 47(
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 (Fig.4) ein Signal über
UND-Glied 462, ODER-Glied 466 und Inverter 467 an UND-Glied 461 gegeben, um dieses während des
Befehlsabrufsvorgangs 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 Befehlsabruf-Anforderungen),
wird das UND-Glied 462 nicht freigegeben, so daß 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 Üerbwachungsprogrammbit 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üssel = 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.
Hicr/ii 2() Blatt Zeichnuimen
Claims (7)
1. Datenverarbeitungsanlage mit einem oder mehreren Prozessoren, mit mindestens einem
Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der zum Speicherzugriff
Schlüssel verwendet werden, dadurch gekennzeichnet,
— daß bei jedem Prozessor Zugriffssteuerschaltungen (Fig. IA-I; 332, Fig.3C; 405, Fig.4)
vorgesehen sind zur Abgabe verschiedener Zugriffsauswahlsignale auf besonderen Leitungen
(22 ... 25, Fig. IA-I, Fig.3C) für verschiedene Arten von Speicherzugriff, zu
denen mindestens Befehlsabruf und Operandenzugriff gehören;
— daß eine Schlüsselregisteranordnung (Fig. IA-I; 420, Fig.4) mit mehreren parallelen
Schlüsselregisterabschnitten (31 ... 35, Fig. 1) bzw. Schlüsselregistern vorgesehen ist,
wobei mindestens jeder Prozessor- und Kanal-Speicherzugriffsart für die ein besonderes
Zugriffsauswahlsignal vorgesehen ist, ein Schlüsselregisterabschnitt bzw. Schlüsselregister
zugeordnet ist;
— und daß Schlüsselauswahleinrichtungen (20, F i g. 1A-I; 333, F i g. 3C; Fi g. 3D) vorgesehen
sind mit Dateneingängen, die mit den Ausgängen der Schlüsselregisterabschnitte verbunden
sind, sowie mit Steuereingängen für die Zugriffsauswahlsignale, und mit Ausgängen, die
mit Speicherzugriffseinrichtungen (F i g. 9A) verbunden sind, und auf die jeweils ein Schlüssel
aus einem der Schlüsselregisterabschnitte gemäß dem vorliegenden Zugriffsauswahlsignal
abgegeben wird.
2. Datenverarbeitungsanlage nach Patentanspruch 1, dadurch gekennzeichnet, daß von den
Zugriffssteuerschaltungen (Fig. IA-I) der einzelnen
Prozessoren Zugriffs aus wahlsignale sowohl für *o Befehlabruf als auch für zwei unterschiedliche Arten
von Operandenzugriffen abgegeben werden, wobei die eine Zugriffsart nur Operandenabrufe einschließt
und die andere Zugriffsart sowohl Operandenabspeicherungen als auch Operandenabrufe einschließt,
und daß in der Schlüsselregisteranordnung für mindestens jede dieser beiden Operandenzugriffsarten
und für Befehlsabrufe je ein Schlüsselregisterabschnitt bzw. Schlüsselregister vorgesehen
ist.
3. Datenverarbeitungsanlage nach Patentanspruch 1, dadurch gekennzeichnet, daß für mindestens
einen Eingabe-/Ausgabekanal eine E/A-Steuerschaltung (55, F i g. IC) zur Abgabe eines
Zugriffsanforderungssignals für einen Eingabe-/Ausgabe-Speicherzugriff vorgesehen ist, daß zu der
Schlüsselregisteranordnung mindestens ein weiterer Schlüsselregisterabschniit (31, Fig. IA-I) gehört,
welcher den E/A-Speicherzugriffen zugeordnet ist, und daß die Schlüsselauswahleinrichtungen zusätzliehe
Dateneingänge aufweisen, die mit dem Schlüsselregisterabschnitt für E/A-Speicherzugriffe verbunden
sind, sowie einen Steuereingang für ein Zugriffsauswahlsignal (21, Fig. IA-I) für
E/A-Speicherzugriff, welches vom entsprechenden Zugriffsanforderungssignal abgeleitet ist.
4. Datenverarbeitungsanlage nach Patentanspruch 1, dadurch gekennzeichnet, daß Zugriffsprioritätsschaltungen
(332, Fig.3C) vorgesehen sind,
denen separate Zugriffsanforderungssignale (OP 2-Abr.-Anf.,
Bef.-Abr.-Anf„ 405, Fig.4) von den
Zugriffssteuerschaltungen (405, Fig.4) für die verschiedenen Arten von Speicherzugriffen zuführbar
sind, und daß diese Zugriffsprioritätsschaltungen jeweils ein Zugriffsauswahlsignal an die Schlüsselregisteranordnung
(420, Fig.4}, OP2-Zugriffszyklus,
Bef.-Abrufzyklus, Fig.3C) abgeben, wobei bei
gleichzeitig vorliegenden Speicherzugnffsanforderungen
für mehrere Zugriffsarten jeweils eine nach vorgegebenen Schema Priorität erhält
5. Datenverarbeitungsanlage nach Patentanspruch 3 und 4, dadurch gekennzeichnet, daß die
Zugriffsanforderungssignale von den Eingabe-/Ausgabekanälen jeweils eine Cycle-Steal-Speicherzugriffsoperation
betreffen, und daß die Zugriffsprioritätsschaltungen (332, F i g. 3C) einer Cycle-Steal-Zugriffsanforderung
Priorität vor allen Anforderungen für andere Arten von Speicherzugriffen geben, und
ein entsprechendes Zugriffsauswahlsignal (CS-Zyklus, F i g. 3C) an einem Ausgang abgeben.
6. Datenverarbeitungsanlage nach Patentanspruch 3 oder 4, dadurch gekennzeichnet, daß
mehrere Eingabe-/Ausgabekanäle vorgesehen sind, und daß entsprechende Kanal-Auswahlschaltungen
(331, Fig.3C) für Schlüssel vorgesehen sind, um jeweils nur einen von einem E/A-Kanal abgegebenen
Schlüssel den Schlüsselauswahleinrichtungen (333, F i g. 3C) zuzuführen.
7. Datenverarbeitungsanlage nach Patentanspruch 1, dadurch gekennzeichnet, daß die Ausgänge
der Schlüsselauswahleinrichtungen (20, Fig. IA-I;
333, F i g. 3C) mit einem in den Speicherzugriffseinrichtungen vorgesehenen Adreßübersetzer
(Fig.9A/9B) verbunden sind, um den jeweils ausgewählten Adreßschlüssel an Selektionseinrichtungen
im Adreßübersetzer zu übertragen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/681,984 US4037214A (en) | 1976-04-30 | 1976-04-30 | Key register controlled accessing system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2716051A1 DE2716051A1 (de) | 1977-11-10 |
DE2716051C2 true DE2716051C2 (de) | 1982-06-09 |
Family
ID=24737703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2716051A Expired DE2716051C2 (de) | 1976-04-30 | 1977-04-09 | 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 |
Country Status (10)
Country | Link |
---|---|
US (1) | US4037214A (de) |
JP (1) | JPS52132738A (de) |
AT (1) | AT375204B (de) |
AU (1) | AU508001B2 (de) |
BR (1) | BR7702822A (de) |
CA (1) | CA1092716A (de) |
DE (1) | DE2716051C2 (de) |
FR (1) | FR2349918A1 (de) |
GB (1) | GB1557122A (de) |
SE (1) | SE417551B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2717700A1 (de) * | 1976-04-30 | 1977-11-10 | Ibm | Speicherzugriffsanordnung |
Families Citing this family (134)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4162529A (en) * | 1975-12-04 | 1979-07-24 | Tokyo Shibaura Electric Co., Ltd. | Interruption control system in a multiprocessing system |
US4340932A (en) * | 1978-05-17 | 1982-07-20 | Harris Corporation | Dual mapping memory expansion unit |
US4246638A (en) * | 1978-09-14 | 1981-01-20 | Thomas William J | Method and apparatus for controlling usage of a programmable computing machine |
JPS55119745A (en) * | 1979-03-07 | 1980-09-13 | Hitachi Ltd | Information processing unit |
US4408292A (en) * | 1979-09-27 | 1983-10-04 | Sharp Kabushiki Kaisha | Data print control in an electronic cash register |
US4328542A (en) * | 1979-11-07 | 1982-05-04 | The Boeing Company | Secure implementation of transition machine computer |
US4355355A (en) * | 1980-03-19 | 1982-10-19 | International Business Machines Corp. | Address generating mechanism for multiple virtual spaces |
US4500952A (en) * | 1980-05-23 | 1985-02-19 | International Business Machines Corporation | Mechanism for control of address translation by a program using a plurality of translation tables |
US4434502A (en) | 1981-04-03 | 1984-02-28 | Nippon Electric Co., Ltd. | Memory system handling a plurality of bits as a unit to be processed |
JPS593774A (ja) * | 1982-06-30 | 1984-01-10 | Fujitsu Ltd | アクセス処理方式 |
JPS5958700A (ja) * | 1982-09-29 | 1984-04-04 | Fujitsu Ltd | 記憶保護判定方式 |
US4500961A (en) * | 1983-06-03 | 1985-02-19 | Motorola, Inc. | Page mode memory system |
US4589092A (en) * | 1983-12-12 | 1986-05-13 | International Business Machines Corporation | Data buffer having separate lock bit storage array |
US4709326A (en) * | 1984-06-29 | 1987-11-24 | International Business Machines Corporation | General locking/synchronization facility with canonical states and mapping of processors |
US4777588A (en) * | 1985-08-30 | 1988-10-11 | Advanced Micro Devices, Inc. | General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance |
US4682283A (en) * | 1986-02-06 | 1987-07-21 | Rockwell International Corporation | Address range comparison system using multiplexer for detection of range identifier bits stored in dedicated RAM's |
JPS6376034A (ja) * | 1986-09-19 | 1988-04-06 | Hitachi Ltd | 多重アドレス空間制御方式 |
US5361341A (en) * | 1987-10-02 | 1994-11-01 | Sgs-Thomson Microelectronics, S.A. | Device for enabling the use of the contents of memory areas of an electronic microprocessor system |
US5023773A (en) * | 1988-02-10 | 1991-06-11 | International Business Machines Corporation | Authorization for selective program access to data in multiple address spaces |
US4979098A (en) * | 1988-02-10 | 1990-12-18 | International Business Machines Corporation | Multiple address space token designation, protection controls, designation translation and lookaside |
US5220669A (en) * | 1988-02-10 | 1993-06-15 | International Business Machines Corporation | Linkage mechanism for program isolation |
US4945480A (en) * | 1988-02-10 | 1990-07-31 | International Business Machines Corporation | Data domain switching on program address space switching and return |
US5247647A (en) * | 1988-07-28 | 1993-09-21 | International Business Machines Corp. | Detection of deletion of stored data by concurrently executing processes in a multiprocessing data processing system |
US5390310A (en) * | 1991-09-30 | 1995-02-14 | Apple Computer, Inc. | Memory management unit having cross-domain control |
US5627987A (en) * | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
US5548746A (en) * | 1993-11-12 | 1996-08-20 | International Business Machines Corporation | Non-contiguous mapping of I/O addresses to use page protection of a process |
FR2728363A1 (fr) * | 1994-12-20 | 1996-06-21 | Sgs Thomson Microelectronics | Dispositif de protection de l'acces a des mots memoires |
US5724551A (en) * | 1996-05-23 | 1998-03-03 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers |
US6807620B1 (en) * | 2000-02-11 | 2004-10-19 | Sony Computer Entertainment Inc. | Game system with graphics processor |
US6795905B1 (en) | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
US7111176B1 (en) | 2000-03-31 | 2006-09-19 | Intel Corporation | Generating isolated bus cycles for isolated execution |
US7013484B1 (en) | 2000-03-31 | 2006-03-14 | Intel Corporation | Managing a secure environment using a chipset in isolated execution mode |
US6996710B1 (en) | 2000-03-31 | 2006-02-07 | Intel Corporation | Platform and method for issuing and certifying a hardware-protected attestation key |
US7013481B1 (en) | 2000-03-31 | 2006-03-14 | Intel Corporation | Attestation key memory device and bus |
US6934817B2 (en) | 2000-03-31 | 2005-08-23 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6678825B1 (en) | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US6769058B1 (en) | 2000-03-31 | 2004-07-27 | Intel Corporation | Resetting a processor in an isolated execution environment |
US7073071B1 (en) | 2000-03-31 | 2006-07-04 | Intel Corporation | Platform and method for generating and utilizing a protected audit log |
US7356817B1 (en) | 2000-03-31 | 2008-04-08 | Intel Corporation | Real-time scheduling of virtual machines |
US7089418B1 (en) | 2000-03-31 | 2006-08-08 | Intel Corporation | Managing accesses in a processor for isolated execution |
US6957332B1 (en) | 2000-03-31 | 2005-10-18 | Intel Corporation | Managing a secure platform using a hierarchical executive architecture in isolated execution mode |
US6754815B1 (en) | 2000-03-31 | 2004-06-22 | Intel Corporation | Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set |
US7194634B2 (en) | 2000-03-31 | 2007-03-20 | Intel Corporation | Attestation key memory device and bus |
US7082615B1 (en) | 2000-03-31 | 2006-07-25 | Intel Corporation | Protecting software environment in isolated execution |
US6990579B1 (en) | 2000-03-31 | 2006-01-24 | Intel Corporation | Platform and method for remote attestation of a platform |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6507904B1 (en) | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
US6760441B1 (en) | 2000-03-31 | 2004-07-06 | Intel Corporation | Generating a key hieararchy for use in an isolated execution environment |
US6976162B1 (en) | 2000-06-28 | 2005-12-13 | Intel Corporation | Platform and method for establishing provable identities while maintaining privacy |
US7389427B1 (en) | 2000-09-28 | 2008-06-17 | Intel Corporation | Mechanism to secure computer output from software attack using isolated execution |
US7793111B1 (en) | 2000-09-28 | 2010-09-07 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US7215781B2 (en) * | 2000-12-22 | 2007-05-08 | Intel Corporation | Creation and distribution of a secret value between two devices |
US7035963B2 (en) | 2000-12-27 | 2006-04-25 | Intel Corporation | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
US7225441B2 (en) | 2000-12-27 | 2007-05-29 | Intel Corporation | Mechanism for providing power management through virtualization |
US7818808B1 (en) | 2000-12-27 | 2010-10-19 | Intel Corporation | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
US6907600B2 (en) * | 2000-12-27 | 2005-06-14 | Intel Corporation | Virtual translation lookaside buffer |
US7117376B2 (en) * | 2000-12-28 | 2006-10-03 | Intel Corporation | Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations |
US7231500B2 (en) * | 2001-03-22 | 2007-06-12 | Sony Computer Entertainment Inc. | External data interface in a computer architecture for broadband networks |
US6809734B2 (en) | 2001-03-22 | 2004-10-26 | Sony Computer Entertainment Inc. | Resource dedication system and method for a computer architecture for broadband networks |
US6526491B2 (en) * | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US6826662B2 (en) | 2001-03-22 | 2004-11-30 | Sony Computer Entertainment Inc. | System and method for data synchronization for a computer architecture for broadband networks |
US7093104B2 (en) * | 2001-03-22 | 2006-08-15 | Sony Computer Entertainment Inc. | Processing modules for computer architecture for broadband networks |
US7233998B2 (en) * | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
US7516334B2 (en) * | 2001-03-22 | 2009-04-07 | Sony Computer Entertainment Inc. | Power management for processing modules |
US7096497B2 (en) * | 2001-03-30 | 2006-08-22 | Intel Corporation | File checking using remote signing authority via a network |
US20020144121A1 (en) * | 2001-03-30 | 2002-10-03 | Ellison Carl M. | Checking file integrity using signature generated in isolated execution |
US7272831B2 (en) | 2001-03-30 | 2007-09-18 | Intel Corporation | Method and apparatus for constructing host processor soft devices independent of the host processor operating system |
US7191440B2 (en) * | 2001-08-15 | 2007-03-13 | Intel Corporation | Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor |
US7024555B2 (en) | 2001-11-01 | 2006-04-04 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
US7103771B2 (en) * | 2001-12-17 | 2006-09-05 | Intel Corporation | Connecting a virtual token to a physical token |
US20030126454A1 (en) * | 2001-12-28 | 2003-07-03 | Glew Andrew F. | Authenticated code method and apparatus |
US7308576B2 (en) * | 2001-12-31 | 2007-12-11 | Intel Corporation | Authenticated code module |
US20030126453A1 (en) * | 2001-12-31 | 2003-07-03 | Glew Andrew F. | Processor supporting execution of an authenticated code instruction |
US7480806B2 (en) * | 2002-02-22 | 2009-01-20 | Intel Corporation | Multi-token seal and unseal |
US7631196B2 (en) | 2002-02-25 | 2009-12-08 | Intel Corporation | Method and apparatus for loading a trustable operating system |
US7124273B2 (en) * | 2002-02-25 | 2006-10-17 | Intel Corporation | Method and apparatus for translating guest physical addresses in a virtual machine environment |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7028149B2 (en) | 2002-03-29 | 2006-04-11 | Intel Corporation | System and method for resetting a platform configuration register |
US7162644B1 (en) | 2002-03-29 | 2007-01-09 | Xilinx, Inc. | Methods and circuits for protecting proprietary configuration data for programmable logic devices |
US20030191943A1 (en) * | 2002-04-05 | 2003-10-09 | Poisner David I. | Methods and arrangements to register code |
US20030196096A1 (en) * | 2002-04-12 | 2003-10-16 | Sutton James A. | Microcode patch authentication |
US7076669B2 (en) * | 2002-04-15 | 2006-07-11 | Intel Corporation | Method and apparatus for communicating securely with a token |
US7058807B2 (en) * | 2002-04-15 | 2006-06-06 | Intel Corporation | Validation of inclusion of a platform within a data center |
US20030196100A1 (en) * | 2002-04-15 | 2003-10-16 | Grawrock David W. | Protection against memory attacks following reset |
US7127548B2 (en) | 2002-04-16 | 2006-10-24 | Intel Corporation | Control register access virtualization performance improvement in the virtual-machine architecture |
US7139890B2 (en) * | 2002-04-30 | 2006-11-21 | Intel Corporation | Methods and arrangements to interface memory |
US7024519B2 (en) * | 2002-05-06 | 2006-04-04 | Sony Computer Entertainment Inc. | Methods and apparatus for controlling hierarchical cache memory |
US6820177B2 (en) * | 2002-06-12 | 2004-11-16 | Intel Corporation | Protected configuration space in a protected environment |
US7142674B2 (en) * | 2002-06-18 | 2006-11-28 | Intel Corporation | Method of confirming a secure key exchange |
US7392415B2 (en) * | 2002-06-26 | 2008-06-24 | Intel Corporation | Sleep protection |
US20040003321A1 (en) * | 2002-06-27 | 2004-01-01 | Glew Andrew F. | Initialization of protected system |
US7124327B2 (en) | 2002-06-29 | 2006-10-17 | Intel Corporation | Control over faults occurring during the operation of guest software in the virtual-machine architecture |
US6996748B2 (en) | 2002-06-29 | 2006-02-07 | Intel Corporation | Handling faults associated with operation of guest software in the virtual-machine architecture |
US7296267B2 (en) * | 2002-07-12 | 2007-11-13 | Intel Corporation | System and method for binding virtual machines to hardware contexts |
US7165181B2 (en) | 2002-11-27 | 2007-01-16 | Intel Corporation | System and method for establishing trust without revealing identity |
US20040117532A1 (en) * | 2002-12-11 | 2004-06-17 | Bennett Steven M. | Mechanism for controlling external interrupts in a virtual machine system |
US7073042B2 (en) * | 2002-12-12 | 2006-07-04 | Intel Corporation | Reclaiming existing fields in address translation data structures to extend control over memory accesses |
US20040117318A1 (en) * | 2002-12-16 | 2004-06-17 | Grawrock David W. | Portable token controlling trusted environment launch |
US7318235B2 (en) * | 2002-12-16 | 2008-01-08 | Intel Corporation | Attestation using both fixed token and portable token |
US7318141B2 (en) | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
US7793286B2 (en) * | 2002-12-19 | 2010-09-07 | Intel Corporation | Methods and systems to manage machine state in virtual machine operations |
US7900017B2 (en) * | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
US20040128465A1 (en) * | 2002-12-30 | 2004-07-01 | Lee Micheil J. | Configurable memory bus width |
US7076802B2 (en) * | 2002-12-31 | 2006-07-11 | Intel Corporation | Trusted system clock |
US7415708B2 (en) * | 2003-06-26 | 2008-08-19 | Intel Corporation | Virtual machine management using processor state information |
US7424709B2 (en) | 2003-09-15 | 2008-09-09 | Intel Corporation | Use of multiple virtual machine monitors to handle privileged events |
US7287197B2 (en) * | 2003-09-15 | 2007-10-23 | Intel Corporation | Vectoring an interrupt or exception upon resuming operation of a virtual machine |
US7739521B2 (en) | 2003-09-18 | 2010-06-15 | Intel Corporation | Method of obscuring cryptographic computations |
US7610611B2 (en) * | 2003-09-19 | 2009-10-27 | Moran Douglas R | Prioritized address decoder |
US7177967B2 (en) | 2003-09-30 | 2007-02-13 | Intel Corporation | Chipset support for managing hardware interrupts in a virtual machine system |
US20050080934A1 (en) | 2003-09-30 | 2005-04-14 | Cota-Robles Erik C. | Invalidating translation lookaside buffer entries in a virtual machine (VM) system |
US7366305B2 (en) * | 2003-09-30 | 2008-04-29 | Intel Corporation | Platform and method for establishing trust without revealing identity |
US7237051B2 (en) | 2003-09-30 | 2007-06-26 | Intel Corporation | Mechanism to control hardware interrupt acknowledgement in a virtual machine system |
US7636844B2 (en) | 2003-11-17 | 2009-12-22 | Intel Corporation | Method and system to provide a trusted channel within a computer system for a SIM device |
US20050108171A1 (en) * | 2003-11-19 | 2005-05-19 | Bajikar Sundeep M. | Method and apparatus for implementing subscriber identity module (SIM) capabilities in an open platform |
US20050108534A1 (en) * | 2003-11-19 | 2005-05-19 | Bajikar Sundeep M. | Providing services to an open platform implementing subscriber identity module (SIM) capabilities |
US8156343B2 (en) | 2003-11-26 | 2012-04-10 | Intel Corporation | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
US8037314B2 (en) | 2003-12-22 | 2011-10-11 | Intel Corporation | Replacing blinded authentication authority |
US7802085B2 (en) | 2004-02-18 | 2010-09-21 | Intel Corporation | Apparatus and method for distributing private keys to an entity with minimal secret, unique information |
US20050216920A1 (en) * | 2004-03-24 | 2005-09-29 | Vijay Tewari | Use of a virtual machine to emulate a hardware device |
US8224639B2 (en) | 2004-03-29 | 2012-07-17 | Sony Computer Entertainment Inc. | Methods and apparatus for achieving thermal management using processing task scheduling |
US7356735B2 (en) * | 2004-03-30 | 2008-04-08 | Intel Corporation | Providing support for single stepping a virtual machine in a virtual machine environment |
US7620949B2 (en) | 2004-03-31 | 2009-11-17 | Intel Corporation | Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment |
US7490070B2 (en) | 2004-06-10 | 2009-02-10 | Intel Corporation | Apparatus and method for proving the denial of a direct proof signature |
US20050288056A1 (en) * | 2004-06-29 | 2005-12-29 | Bajikar Sundeep M | System including a wireless wide area network (WWAN) module with an external identity module reader and approach for certifying the WWAN module |
US7305592B2 (en) | 2004-06-30 | 2007-12-04 | Intel Corporation | Support for nested fault in a virtual machine environment |
US7840962B2 (en) | 2004-09-30 | 2010-11-23 | Intel Corporation | System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time |
US8146078B2 (en) | 2004-10-29 | 2012-03-27 | Intel Corporation | Timer offsetting mechanism in a virtual machine environment |
US8924728B2 (en) | 2004-11-30 | 2014-12-30 | Intel Corporation | Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information |
US8533777B2 (en) * | 2004-12-29 | 2013-09-10 | Intel Corporation | Mechanism to determine trust of out-of-band management agents |
US7395405B2 (en) | 2005-01-28 | 2008-07-01 | Intel Corporation | Method and apparatus for supporting address translation in a virtual machine environment |
US7809957B2 (en) | 2005-09-29 | 2010-10-05 | Intel Corporation | Trusted platform module for generating sealed data |
US8014530B2 (en) | 2006-03-22 | 2011-09-06 | Intel Corporation | Method and apparatus for authenticated, recoverable key distribution with no database secrets |
CN109766327A (zh) * | 2015-05-29 | 2019-05-17 | 北京奇虎科技有限公司 | 数据库访问请求的分析方法和装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3377624A (en) * | 1966-01-07 | 1968-04-09 | Ibm | Memory protection system |
US3576544A (en) * | 1968-10-18 | 1971-04-27 | Ibm | Storage protection system |
GB1329721A (en) * | 1970-05-26 | 1973-09-12 | Plessey Co Ltd | Data processing devices |
GB1410631A (en) * | 1972-01-26 | 1975-10-22 | Plessey Co Ltd | Data processing system interrupt arrangements |
US3854126A (en) * | 1972-10-10 | 1974-12-10 | Digital Equipment Corp | Circuit for converting virtual addresses into physical addresses |
US3828327A (en) * | 1973-04-30 | 1974-08-06 | Ibm | Simplified storage protection and address translation under system mode control in a data processing system |
US3825903A (en) * | 1973-04-30 | 1974-07-23 | Ibm | Automatic switching of storage protect keys |
US3916385A (en) * | 1973-12-12 | 1975-10-28 | Honeywell Inf Systems | Ring checking hardware |
-
1976
- 1976-04-30 US US05/681,984 patent/US4037214A/en not_active Expired - Lifetime
-
1977
- 1977-02-24 FR FR7706016A patent/FR2349918A1/fr active Granted
- 1977-04-05 CA CA275,572A patent/CA1092716A/en not_active Expired
- 1977-04-05 GB GB14269/77A patent/GB1557122A/en not_active Expired
- 1977-04-06 JP JP3862377A patent/JPS52132738A/ja active Granted
- 1977-04-09 DE DE2716051A patent/DE2716051C2/de not_active Expired
- 1977-04-12 AT AT0253877A patent/AT375204B/de not_active IP Right Cessation
- 1977-04-29 SE SE7704963A patent/SE417551B/xx not_active IP Right Cessation
- 1977-05-02 BR BR7702822A patent/BR7702822A/pt unknown
- 1977-05-02 AU AU24746/77A patent/AU508001B2/en not_active Expired
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2717700A1 (de) * | 1976-04-30 | 1977-11-10 | Ibm | Speicherzugriffsanordnung |
Also Published As
Publication number | Publication date |
---|---|
AU2474677A (en) | 1978-11-09 |
BR7702822A (pt) | 1978-04-04 |
US4037214A (en) | 1977-07-19 |
GB1557122A (en) | 1979-12-05 |
CA1092716A (en) | 1980-12-30 |
DE2716051A1 (de) | 1977-11-10 |
AT375204B (de) | 1984-07-10 |
JPS5738999B2 (de) | 1982-08-18 |
AU508001B2 (en) | 1980-03-06 |
FR2349918B1 (de) | 1981-06-19 |
FR2349918A1 (fr) | 1977-11-25 |
SE417551B (sv) | 1981-03-23 |
JPS52132738A (en) | 1977-11-07 |
SE7704963L (sv) | 1977-10-31 |
ATA253877A (de) | 1983-11-15 |
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) | ||
DE2350884C2 (de) | Adreßumsetzungseinheit | |
CH615521A5 (de) | ||
DE1774296C2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE69233655T2 (de) | Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren | |
DE2350225C2 (de) | ||
DE4104781C2 (de) | Speicherzugriffssteuerung | |
DE2322674C3 (de) | Mikroprogramm-Steuereinrichtung | |
DE2953861C2 (de) | ||
DE2926589A1 (de) | Anordnung zur verlaengerung einer logischen computeradresse | |
DE2847934A1 (de) | Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher | |
DE2902465A1 (de) | Datenverarbeitungsanordnung | |
DE3508291A1 (de) | Realzeit-datenverarbeitungssystem | |
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
DE2130299A1 (de) | Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen | |
DE2441754A1 (de) | Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors | |
DE2458096C2 (de) | Einrichtung zum Laden von Mikroprogrammen in einer mikroprogrammierbaren Datenverarbeitungsanlage | |
DE3114921C2 (de) | Mikroprogramm-Speicheranordnung | |
DE1549531A1 (de) | Digitale Rechenanlage | |
DE112019002336T5 (de) | Speicherpoolzuordnung für ein mehrkern-system | |
DE3911721C2 (de) | ||
DE69822364T2 (de) | Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen | |
DE2717700C2 (de) | Speicherzugriffsanordnung | |
EP0265636A1 (de) | Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
Q176 | The application caused the suspense of an application |
Ref document number: 2717700 Country of ref document: DE |
|
D2 | Grant after examination | ||
8339 | Ceased/non-payment of the annual fee |