DE2716051A1 - Datenverarbeitungsanlage, bei der zum speicherzugriff schluessel verwendet werden - Google Patents
Datenverarbeitungsanlage, bei der zum speicherzugriff schluessel verwendet werdenInfo
- Publication number
- DE2716051A1 DE2716051A1 DE19772716051 DE2716051A DE2716051A1 DE 2716051 A1 DE2716051 A1 DE 2716051A1 DE 19772716051 DE19772716051 DE 19772716051 DE 2716051 A DE2716051 A DE 2716051A DE 2716051 A1 DE2716051 A1 DE 2716051A1
- Authority
- DE
- Germany
- Prior art keywords
- access
- memory
- 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.)
- Granted
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
Description
Böblingen, den 29. März 1977 Iw-fr
Anmelderin:
International Business Machines Corporation, Armonk, N.Y. 10504
Amtliches Aktenzeichen:
Neuanmeldung
Aktenzeichen der Anmelderin:
BC 976 006
Vertreter:
Patentassessor Dipl .-Ing . L. Lewit
7030 Böblingen
Bezeichnung:
Datenverarbeitungsanlage, bei der zum Speicherzugriff Schlüssel verwendet
werden
709845/0742
271G051
! Die vorliegende Erfindung betrifft eine Datenverarbeitungsanlage mit einem
oder mehreren Prozessoren und mit einer Speicheranordnung, bei der zum
Speicherzugriff Schlüssel verwendet werden.
Speicherschutzschlüssel, die blockweise zugeordnet werden, sind bei Datenverarbeitungssystemen
schon längere Zeit bekannt (DT-PS 1 499 203). Mit den bekannten Verfahren und Einrichtungen zur Benützung von Speicherschutz-
! schlü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 Adressbereich
auf die miteinander (konkurrent) ablaufenden Programme verteilt, indem jedem Programm ein Teil des Cesamtadressbereichs 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
709845/0742
BC 9-76-006 - 8 -
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 USA-Patent 3 828 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
beeinflusst eine Adressü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 Uebersetzung benutzbare Adressbereich überschritten
würde, um auf diese Weise den Zugriff zu einem weiteren vorgesehenen Adressbereich zu steueren.
709845/0742
BC 9-76-006 - 9 -
! 709845/0742
Eine weitere Speichersteuerungstechnik, bei der keine Schlüssel benützt i
werden, ist im USA-Patent 3 854 126 beschrieben. Hierbei sind auch verschiedene
Prozessor-Betriebsarten vorgesehen, deren jeder eine Gruppe von Seitenadressregistern zugeordnet ist. Zu jeder Gruppe gehören zwei
Register-Untergruppen, eine für Daten, und die andere für Befehle. Jedem der Seitenadressregister 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 zugeordnetes 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 Adressteil dient zur Auswahl je eines Blocks innerhalb der betreffenden Seite. Der niedrigste Adressteil schliesslich bestimmt
die relative Wortadresse im ausgewählten Block.
BC 9-76-006 - 10 -
Bei allen bekannten Systemen besteht wie schon vorher gesagt, eine
relativ feste Zuordnung zwischen Programmen, Speicherbereichen und j Betriebsarten, insbesondere aus der Sicht des Benutzers.
Der Erfindung liegt die Aufgabe zugrunde, in einer Multiprozessoranlage
mit Multiprogrammierung eine Speicherzugriffssteuerung zu schaffen,
die mit Schlüsseln arbeitet und eine flexible Zuordnung von Adressbereichen zu verschiedenen Funktionen und eine zuverlässige Trennung der
Adressbereiche untereinander erlaubt.
Diese Aufgabe wird erfindungsgemäß durch die im Kennzeichen des Hauptanspruches
beschriebene Anordnung gelöst.
Bei einer Datenverarbeitungsanlage mit den erfindungsgemässen Einrichtungen
kann der Benutzer jeweils die gewünschten Adressbereiche für die verschiedenen Funktionen vor Programmablauf festlegen. Man ist
aber keineswegs gezwungen, für unterschiedliche Funktionen verschiedene Adressbereiche festzulegen. Die Schlüsselwerte zur Festlegung von Adress-
709845/0742
BC 9-76-006 - 11 -
: bereichen werden erst gewählt, wenn ein Anwendungsprogramm im
System ablaufen soll, und der Benutzer kann bestimmen, ob er
verschiedenen Funktionen unterschiedliche Adressbereiche 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
J korrekte Ausführung zu gewährleisten. Auch werden Datenbanken
jeweils mittels unterschiedlicher Schlüssel eigene Adressbereiche er-
: halten, um ihre Integrität zu gewährleisten.
J Werden die gemäss der Erfindung verfügbaren Schlüssel zur Adressierung
je eines zugeordneten Speicherabschnittes verwendet, so kann jeder Abschnitt mit der ganzen einer Programmadresse verfügbaren Adress-
ι kapazität adressiert werden, ohne dass Konflikte entstehen (die einer
} Programmadresse verfügbare Adresskapazitä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üg-
709845/0742
BC 9-76-006 - 12 -
baren 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 Adressbereiche 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 Adres-
sierung spezielle Adressbereiche für indirekt adressierte Operanden,
sogar noch in Untergruppen unterteilt, vorgesehen werden. Ebenso ist eine Zuweisung getrennter Adressbereiche für verschiedene Prozessoren
! und verschiedfene Kanäle und Unterkanäle möglich.
Die erfindungsgemäß ermoglichte Unterscheidung kann sich auf folgende
Speicherzugriffstypen erstrecken: Instruktionsablauf, Quellen-Operandenabruf
, Senken-Operandenspeicherung und Senken-Operandenabruf. Da sich die beiden letzteren Zugriffstypen zumeist auf denselben Speicher-
709845/0742
BC 9-76-006 - 13 -
j bereicherstrecken, können sie zusammengefaßt werden. !
I Unterkanalzugriffe verursachen zumeist eine Programmunterbrechung. '
i Durch die Verwendung eines Schlüssels für solche Zugriffe können die !
betreffenden Unterbrechungsprogramme in einem besonderen, geschützten i
j I
■ Bereich gehalten werden. ■
ί ι
1 Die spezielle, von Art des Zugriffs abhängige Adressierbarkeit kann sich !
z.B. auch auf indirekt adressierte Operanden beziehen. Diese Operanden I
können dann je nach Quellen- oder Senken-Verwendung untergruppiert I
werden. Ferner kann sich die von der Art des Zugriffs abhängige Ad
ressierbarkeit auch auf verschiedene Prozessoren, verschiedene Kanäle
und verschiedene Unterkanäle beziehen.
und verschiedene Unterkanäle beziehen.
: Die erfindungsgemäße Anordnung ermöglicht die vorbeschriebenen
. technischen Vorteile. Die endgültige Auswahl und Festlegung der Ad
ressierbarkeit bestimmt jedoch der Benutzer. Die Erfindung erzwingt
! also nicht eine unterschiedliche Adressierbarkeit je nach Art des Speicher-
i Zugriffs, sondern sie überlässt die flexible Auswahl dem Benutzer,
I der spezielle Schlüssel für die betreffenden Speicherzugriffsarten fest-
j legt. Erst im Anwendungsprogramm braucht also entschieden zu werden.
709845/0742
BC 9-76-006 -H-
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, ! dass für diese Bereiche nur Lesezugriffe durchgeführt werden.
j Vorteilhafte Weiterbildungen der Erfindung sind den Unteransprüchen
! zu entnehmen.
70984S/0742
BC 9-76-006 15 _
Ein Ausführungsbeispiel der Erfindung wird im folgenden anhand von Zeichnungen
beschrieben. Es zeigen:
Fig. 1Λ-1 allgemein das Prinzip der Adressschlüsselauswahl aufgrund von
Speicherzugriffs-Stcuersignalen, welche die Art des Zugriffs identifizieren;
Fig. 1Λ-2 allgemein das Prinzip der Adressübsraetzung für den Speicherzugriff,
wobei die logische Eingangsadresse aus einem speziell generierten Adressschlüssel und der im Programm erscheinenden Adresse besteht;
Fig. IB eine Uebersicht der verschiedenen möglichen Speicherzugriffsarten;
Fig. IC in Blockform eine Uebersichtsdarstellung einer Datenverarbeitungsanlage
mit erweiterbarem Hauptspeicher, die als Ausführungsbeispiel beschrieben
wird;
Fig. ID eine spezielle Ausführungsform der in Fig. IA gezeigten Anordnungen;
Fig. 2A eine Uebersichtsdarstellung der bei den Prozessoroperationen und
E/A-Operationen vorkommenden Speicherzugriffe, sowie der verschiedenen
Adressbereiche;
Fig. 2B eine Uebersicht der Speicherzugriffsvorgänge bei E/A-Operationen;
Fig. 3A Einzelheiten eines E/A-Unterkanals, der bei jedem Unterkanalbefehl
einen Adressschlüssel erhält und diesen für jeden Datenzugriff zur Ausführung
709845/0742
des Befehls abgibt;
BC9-76-006 . -18-
Fig. 3B die relevanten Teile eines Κ/Λ-Kanals, der eine Mehrzahl von
Unterkanälen mit einer Speicherpriovita'tsauswahlschaltung verbindet;
Fig. 3C in Blockform eine Speichorprioritätsnuswahlschaltung mit einer
Kanalauswahlsc.lialtung, durch welche Ε/Λ-Kaiiäle und Prozessor über den
Hauptspeicherbus mit Speicher und Ucbersetzer verbunden sind, und die je
einen ausgewählten Adressteil]üssel sowie eine Adresse für einen Speicherzugriff
abgeben;
Fig. 3D Einzelheiten einer Aktivadrcssschlüssel-Auswahlschaltung, bei der
auch ein Operandenbereichsabgleich erreicht werden kann;
Fig. 4 Einzelheiten eines Prozessor:;, welche für die Speicherzugriffssteuerung
mit Adressschliisseln relevant sind;
Fig. 5 das Aufteilungsformat des Adressschlüsselregisters in einem bevorzugten
Ausführungsbeispiel;
Fig. 6 das Inhaltsformat der im Ausführungsbeispiel vorgesehenen Segmentregister;
Fig. 7 Einzelheiten der Eingabe- und Ausgabesteuerung einer einzelnen Bitposition
im Adressschlüsselrcgistor;
Fig. 8A schematisch die Vorgänge bei Ausführung eines Befehls zum Laden
bzw. Abspeichern eines Segmentregisters;
709845/0742
BC9-76-006 -19-
Fig. 8B schemati sch die Vorgänge bei Ausführung eines Befehls zum Laden
bzw· Abspeichern des Adressschlüsselregisters aus einem bzw. in einen
Speicher;
bzw· Abspeichern des Adressschlüsselregisters aus einem bzw. in einen
Speicher;
Fig. 8C schematisch die Vorgänge bei Aus£ühi"ung eines Befehls zum Laden
bzw. Abspeichern des Adressschlüssclregisters aus einem bzw. in ein
Allgemeinregistcr;
bzw. Abspeichern des Adressschlüssclregisters aus einem bzw. in ein
Allgemeinregistcr;
Fig. 9A und 9B ein Blockschaltbild einer bevorzugten Ausführungsform des
Uebersetzers gemäss Fig. IC, der eine 19 Bit lange logische Maschinenadresse
in eine 24 Bit lange physische Adresse für den Speicherzugriff umwandelt;
Fiß. 9C, 9D-1, 9D-2, 9E, 9F-1 und 9F-2 Einzelheiten des in Fig. 9Λ/9Β in
Blockform gezeigten Uebersetzers;
Fig. 9G die Arbeitsweise der in Fig. 9C gezeigten Vorgriffsschaltungen zur
jeweiligen Auswahl des Innenspeichers (Basisspeicher), Aussenspeichers
(Zusatzspeichcr) oder Asynchronspeichers, sowie die Interpretation der 24 Bit langen physischen Adresse durch die gewählte Speichereinheit beim Zugriff;
(Zusatzspeichcr) oder Asynchronspeichers, sowie die Interpretation der 24 Bit langen physischen Adresse durch die gewählte Speichereinheit beim Zugriff;
Fig. 10 eine Schaltungsanordnung im Prozessor zur Auswahl zwischen den
Betriebsarten "Speicherschutz ohne Ucbersetzung" und "Speicherschutz mit Uebersetzung";
Betriebsarten "Speicherschutz ohne Ucbersetzung" und "Speicherschutz mit Uebersetzung";
Fig. 11 Speicherschutzsteuerschaltungen zur Verwendung bei übersetzungsfreici
Betriebsart;
709845/0742
BC9-76-006 -20-
Fig. 12 das Format, eines Speicher-Speichcr-Bcfchic;
Fig. 13Λ relevante Teile des Formats eines Frcigabe-/Sperrbefehls zur
Festlegung der Betriebsarten mit spezieller Adressbereichsauswahl (z.B.
übersetzungsfreie Adressierung mit Speicherschutz, Speicherschutz mit
Uebersetzung, Operandenbereichsabglcich);
Fig. 13B aufeinanderfolgende Zustände eines Adressschlüsselregistcrs,
wenn bei einer Unterbrechung Operandenbereichsabgleich erfolgt;
Fig. 14 eine Schaltungsanordnung für eine alternative Speicherschutzbetriebsart
mit Uebersetzung, welche eine Alternative zu der Speicherschutzbetriebsart
mit Adressschlüsselübersetzung darstellt;
Fig. 15 schematisch ein alternatives Verfahren zur Adressschlüsselübersetzung,
das in einem Prozessor als Alternative zur Uebersetzeranordnung mit
mehreren Registerstapeln dienen kann;
Fig. 16 Zugriff zu parallelen Grundspcichermoduln mittels mehrerer aktiver
Adressschlüssel in einem Multiprozessorsystem;
Fig. 17 Steuerschaltungseinzelhciten 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.
709845/0742.
BC9-76-006 -21-
1. Beschreibung eines Ausftihrungsbcispicls
Fig. 1Λ und Fig. IB zeigen die wesentlichen Merkmale eines Ausführungsbeispicls
der Erfindung. Fig. 1Λ zeigt eine Adressschlüsscl-Auswahlschaltung
2O1 die je nach Art der Speicherzugriffsanforderung (welche
durch Signale auf den Leitungen 21, 22, 23, 24 oder 25 angezeigt werden)
einen der Schltissclregisterabschnitte 31, 32, 33, 34 oder 35 auswählt,
welche folgende Schlüssel enthalten: CS-Schlüssel, IS-Schlüssel, OPl-
Schlüssel, OP2-Schlüssel und OP3-Schlüssel. Derjenige dieser Schlüssel,
welcher der vorliegenden Speicherzugriffsanforderung entspricht, wird
durch die AAS-Auswahlschaltung 20 als aktiver Adrcssschlüssel (AAS)
ausgegeben. Dieser aktive Adrcsschlü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 Adressicrungsoperation bestimmt der aktive Adresschlüssel AAS den
oberen Teil (ihöherwertige Stellen) der logischen Adresse, die von der
Anlage für den Speicherzugriff benutzt wird. ι
Die Signale auf den Zugriffsanforderungslcitungen 21, 22, 23, 24 und
stellen jedes eine andere Art von Zugriffsanforderung dar, welche von den Kanälen und Prozessoren gestellt werden können, die Zugriff zum
BC9-76-006 -22-
709845/0742
gleichen Hauptspeicher haben. Diese Anfordcrungslejtungen sind in
Fig. IA folgendcrmassen bezeichnet: E/A-Zugriff, Bcfehlszugriff, OPl-Zugriff,
OP2- Zugriff und OP3-Zugriff. Wenn nur eine dieser Zugriffsanforderungssignale
auftritt, dann wird sofort der Inhalt des betreffenden Adressschlüsselregistcrabschnitls als AAS ausgegeben. Falls mehrere
Anforderungssignale gleichzeitig auftreten, wird durch Prioritätsschaltungen in der .AAS - Auswahlschaltung 20 bestimmt, in welcher
Reihenfolge die betreffenden Adrcssschlüssel als AAS ausgegeben werden. Dabei ist eine bestimmte Prioritätsordnung vorgegeben, sodass z.B.
eine E/A-Zugriffsanforderung für eine Cyclc-Steal-Operation den Vorrang
hat, um zuerst den CS-Schlüssel auszugeben. Die Befehlsabruf
anforderung wird als zweite bedient, um den IS-Schlüssel als AAS auszugeben. Als dritte wird die OPl-Zugriffsanforderung bedient, um den
OPl-Schlüssel als AAS auszugeben; schliesslich werden die OP2 - und
OP3-Zugriff sanforderungen als vierte und fünfte bedient, um den OP2-Schlüssel
bzw. OP3-Schlüssel als AAS auszugeben.
Es besteht also eine bestimmte Beziehung zwischen den verschiedenen
Arten von Zugriffsanforderungen und den speziellen Schlüsselregisterabschnitten .
BC9-76-006 -23-
709845/0742
Li einem Prozessor enthält ein Adressschlüsselregister (ASR) folgende
Abschnitte: den IS-Schlüsselabschnitt (ISS), welcher den Befchlsabruf anfordcrungcn
für den Zugriff üu jeder Instruktion zugeordnet ist, und
die Schlüssclregisterabschnittc für die Schlüssel OPl (OPlS) bis OP3
(OP3S), welche zu den verschiedenen Arten von Operanden. Zugriffen gehören,
die zur Ausführung der Befehle benötigt werden.
Ausserdeni hat jeder E/A-Untcrkanal einen entsprechenden CS-Schlüssel-
registerabschnitt (CSS). Es kann auch vorkommen, dass mehrere E/A- Unterkanäle gleichzeitig einen Zugriff zum Hauptspeicher anfordern.
Deshalb sind CSS-Prioritätsauswahlschaltungen vorgesehen, um bei gleichzeitigen Anforderungen die CS-Schlüssel in einer vorgegebenen
Reihenfolge auszugeben.
Falls überdies mehrere Prozessoren zum gleichen Hauptspeicher Zu
griff haben, sind weitere Prioritätsschaltungcn vorgesehen, um die An
forderungen dieser Prozessoren in vorgegebener bestimmter Reihen folge zu bedienen.
Fig. IA veranschaulicht die Erfindung in einem System mit Prozessor
und Kanaleinheit, bei dem aktive Adrcssschlüsscl benutzt werden und in
BC9-76-006
709^45/0742
dem nur ein Teil der in einem Datcnverarbeitungssy stern an und für
sich möglichen Speicherzugriffsarten verwendet wird. Fig. IB zeigt
eine grössere Zahl verschiedener Speicherzugriffsarten. Die in einem bestimmten
System ^ verwendbaren Speicherzugriffstypen sind auf solche
eingeschränkt, die durch die Schaltungen ties Systems identifizierbar
sind. D.h., 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. Fig. IB zeigt mehr Zugriffsarten als die Anordnung, welche in
Fig. IA ßczcigt ist. In Fig. IB sind acht Speicherzugriffsarten in drei
Zugriffskategorien eingeteilt: (1) Befehlszugriff, (2) Operanden-Zugriff
und (3) eine Zugriffskategorie, die den Prozessorercignissen zugeordnet
ist. Jeder Kanal enthält K Unterkanäle, und jeder Unterkanal hat drei Speicherzugriffskategorien: (1) Kanalbefehlszugriff, (2) E/A-Datenzugriff
und (3) eine Zugriffskategoric für E/A-Ereignisse.
Zu jeder Zugriffskategorie gehört mindestens eine Speichcrzugriffsart.
Bei irgendeiner bestimmten Anlage können nur die Speicherzugriffsarten
verwendet werden, die in der Maschinenkonstruktion durch ein identifizierendes
Signal, d.h. ein Spcichcranforderungssignal, vorgesehen sind.
BC9-76-006
So ist ζ. D. die Bcfehlszugriffskategorie in der Anlage durch ein Befehlsabruf
sanforde rungs signal gekennzeichnet. Die Operanden-Zugriffskategorie kann in der Anlage durch sechs verschiedene Arten von
Operanden-Zugriffen identifiziert werden (Fig. IB). Diese sind·
unterteilt in direkte und indirekte Operanden-Zugriffsarten, wobei
zu der Unterkategorie der direkten Zugriffe diejenigen Zugriffe gehören, welche Adressen benutzen, die direkt aus dem Befehl abgeleitet sind,
•während die Unterkategorie der indirekten Zugriffe solche Operanden
betrifft, bei denen die Adressen indirekt aus der Operanden-Adresse
eines Befehls abgeleitet sind. Zu jeder Unterkategorie gehören drei verschiedene
Operanden-Zugriff sarten, welche durch die Schaltung der Anlage
identifiziert werden können als Anforderungssignalc für Quellenabruf,
Senkenabspcicherung 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 Operandenfeldern. Die Quellcnabruf-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 Senkcnabspeicherung - Operandenart auf Zugriffe, bei denen die Resultate
709845/0742
BC9-76-006 -26-
einer Befehlsausführung gespeichert werden. Die Senkenabruf- Opernndcnart
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 Senkenabspeiclicrungs-Operandentyp
und den Senkenabruf-Operandentyp zu einem einzelnen Senken abspeicher-
ungsZ-abruf-Operandcntyp zusammenzufassen.
Prozessorereignis s-Zugriffe v/erden hervorgerufen durch das Auftreten
interner Prozessorereignisse, wie z.B. Datenfchlcr, Maschinen!ehler,
Adressierungsausnahme, usw, die zu einer langen Liste bekannter Ereignisse
gehören, welche die üblichen Prozessorunterbrechungen.d. h.
interne Unterbrechungen, hervorrufen. Die Kategorie der Prozessorereigniszugriffe
kann z.B. den Zugriff zu einem Bereich des Hauptspeichers einschliessen, der ein Unterbrechungs-Verarbcitungsprogramm
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. Abschlussaufzeichnungen.
Jeder Kanal hat eine Mehrzahl von Unterkanälen, die eine Vielzahl von
709845/0742
BC9-76-006 -27-
verschiedenen Zugriffsarten durchführen. So gehört z.B. zu jedem
Unterkanal eine E/A-Datenzugriffskatcgorie mit den ZugriffsartenK/A-Abruf
und E/A-Abspeicherunß. . Bei manchen Anlagen sind diese beiden durch
die Konstruktion zu einem einzelnen Zugriffstyp zusammengefasst, den
man E/A-Abruf/Abspeicherungszugriff nennt. Die mit Untcrkanalereig-
nisscn 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äteschlussunterbrechung, Geräte
fehle runterbrechung, E/A~DatenfehlerUnterbrechungen, usw.
Zusammenfassend kann man sagen, das mit der Erfindung die Möglichkeit geschaffen wird, die Adressiervorgänge im Hauptspeicher für jede
der verschiedenen Speicherzugriffsarten, die in Fig. IB gezeigt sind,
separat zu beeinflussen. Zu den in Fig. IB gezeigten Zugriffsarten ge
hören die acht verschiedenen Speicherzugriffsarten, welche jedem
Prozessor zur Verfügung stehen, und die vier verschiedenen Speicher- zugriffsarten, welche jedem Unterkanal zur Verfügung stehen. Diese
Möglichkeit der separaten Beeinflussungen ist dadurch gegeben, dass man für jede der Zugriffsarten, welche in einer Anlage vorgesehen sind,
einen separaten Schlüsselregisterabschnitt vorsieht. Das Ausführungs-
709845/0742
BC9-76-006 -28-
bcispicl , welches in Fig. IA gezeigt ist, benutzt nur vier verschiedene
Prozessorzugriffsarten, welche im gewählten Beispiel durch ein Adressschlüs selregi ster dargestellt sind, das vier verschiedene
Registerabschnittc hat. Die Anzahl der Regislerabschnittc im Adrcssschltisselregister
ASR kann jedoch beliebig gewählt werden entsprechend der Anzahl verschiedener Zugriffsarten, die in der Konstruktion der
Anlage vorgesehen sind.
Auf jeden Fall wird für jede durch die Schaltungen der Maschine identifizierbare
Zugriffsart ein ASR-Regislerabschnitt oder ein CS-Registerabschnitt
vorgesehen mit entsprechenden Vorrichtungen in der AAS-Auswahlschaltung,
um einen ausgewählten Registerabschnitt auszulesen, wenn die entsprechende Zugriffsanforderung bedient wird, wobei dann
der Inhalt des ausgewählten Registerabschnitts der aktive Adressschlüsscl
wird, welchen die Anlage als Adresskomponenlc benutzt, um
den Adressiervorgang für den betreffenden Speicherzugriff zu beeinflussen.
Für die durch den aktiven Adressschlüsscl AAS gegebene Adresskomponente kann folgendes gelten: (1) sie kann eine direkte Beziehung
zur physischen Adresse haben, indem der AAS mit der Programmadresse
verkettet wird, sodass beide zusammen eine physische Adresse im Hauptspeicher ergeben; (2) sie kann einen fest vorgegebenen
709845/0742
BC9-76-006 -29-
Speicherzugriff im Hauptspeicher ermöglichen, wie es im Ausführungsbcispiel
der Fig. 11 gezeigt ist;(3).si.e kann zmrBeStimmung einer verschiebbaren
Adresse für durch Schlüssel identifizierte Speicherbereiche
^SOtJHontiel Ic)
dienen, wobei man innerhalb jedes BcreichesYProgrammadressen 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 Adressverschiebung möglich ist, so wie es im Ausführungsbeispiel der
Fig. IA dargestellt ist.
Die Hauptspeichcreingangsadresse , welche durch die in Fig. IA gezeigte
Anordnung bereit gestellt wird, ist die Kombination eines aktiven Adressschlüsscls 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 Bcfehlsabrufadrcsse im Befehlsadressrcgister,
und die Operanden-Adressen in den Befehlen des Programms. Wenn ein Programm geschrieben wird, so sind nur im
Programm erscheinende Adressen bekannt. Der Anwcndungsprogrammiererbekümmert sich um die AAS-Opcrationcn nur insoweit, als er seine
Operandendaten separat vom Programm zusammenfasst. Der System·· Programmierer spezifiziert allgemein die Prozcssorercigniszugriffs-
709845/0742
BC9-76-006 -30-
bereiche und ihren Inhalt, und der E/A-Programmierer spezifiziert
allgemein die Ε/Λ-Kanalbcfehls- und Ereignisszugriffsbereiche und
ihren Inhalt. In Fig. 1Λ besetzt die AAS-Kornponcnte K Bit-Positionen
im höher stclligcn Teil der kombinierten Eingangsadresse, und die im
Programm erscheinende Adresse besitzt 16 Bitstellcn, sodass es insgesamt
eine Eingangsadresse für die Anlage mit 16 + K Bitstellen ergibt.
Bei der in Fig. IA gezeigten Anordnung ist die Eingangsadressc cinschlicsslich
des AAS-Feldcs eine logische Maschinenadresse, für
welche noch eine UeberSetzung erforderlich' ist, um eine gewünschte
Speicherstelle im Datenverarbeitungssystem zu erreichen. Auf der anderen Seite wird in der in Fig. 11 gezeigten Anordnung der aktive
Adressschlüssel AAS als direkt benutzte Einschränkungen der physischen Adresse verwendet, welche nicht übersetzt wird.
A. Ucbersetzer mit Register stapeln ,
Der in Fig. IA gezeigte Ucbersetzer enthält eine Mehrzahl von Segment-
register stapeln mit den Nummern 0 bis 2 . Jeder Schlüsselregisterabschnitt
im Prozessor oder in einem Untcrkanal enthält mindestens einen Schlüssel mit K Bits,mit dem man jeden der Stapel adressieren kann.
70984 5/0742
BC9-76-006 ' -31-
Der aktive Adressschlüssel AAS wird in eine Stapeladressicrcinrich-
tung 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
Segmentregistcr (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 13 - 23 der physischen Adresse, welche
24 Bit umfasst, 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 nicderwertigen
Bit-Positionen (P+l) 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 Fig. 6 gezeigt; der Inhalt der Validitäts-Bit-Position 13 (V) zeigt an, ob der Inhalt des Blocknummcrn-
fcldes gültig ist. Falls er ungültig ist (d.h. V = O^kann der Inhalt des
gewählten Segmentregisters nicht zur Gencricrung einer physischen
709845/0742
BC9-76-006 -32-
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 Zweilwort mit den Bit-Positionen 16 bis 31 ist reserviert und wird
für das vorliegende Ausführungsbeispiel auch nicht benutzt.
B. Erweiterbarer Hauptspeicher
Fig. IC zeigt die Konfiguration eines Datenvcrarb^itungssystems, dass
einen neuartigen erweiterbaren Hauptspeicher zur Verarbeitung übersetzter Adressen hat. Der Hauptspeicher besteht mindestens aus einem
inneren Speicherten 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 äusscren Speichertciis 52, im folgenden kurz Aussenspcicher genannt, durch den der Speicher um 64 K-Bytes
erweitert werden kann, sodass der Hauptspeicher dann 128 K Bytes umfasst. Dann kann zusätzlich ein crwcitcrbarcr asynchroner Speicher
53, im folgenden auch kurz Asynchronspeicher genannt, hinzugefügt werden, womit die Kapazität des Hauptspeichers auf maximal
709845/0742
BC9 -76-006 -33-
24
16'777'216 Bytes (d.h. 2 ) erweitert werden kann.
16'777'216 Bytes (d.h. 2 ) erweitert werden kann.
Zur Adressübersetzung ist ein Uebersetzer 59 vorgesehen, der auch
Schnittstelleneinrichtungcn enthält für die Verbindung des Ausscnspeichers
52 und des Asynchronspeichers 53 mit der Hauptspeicherkonfiguration.
Ein Ilauptspcicherbus 56A (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 56A ist auch mit dem Ueber- sctzer 59 und mit dem Innenspeicher 51 verbunden.
Innenspeicher Zyklus-Signalleitungen 54A verbinden den Innenspeicher
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übersetzungsbctrieb arbeitet. Wenn der Prozessor im Uebersctzungsbetrieb arbeitet, werden für ISZ die fünf
höherwertigen Bits vom Uebersctzer bereitgestellt; sie enthalten ein Kartenauswahlsignal (welches eine bestimmte Karte von bis zu vier
709845/0742
BC9-76-006 ' ' -34-
Karten auswählt, aus denen der Innenspeicher besteht.) sowie die
Felder CSY und CSX (die einen bestimmten Speicherbereich auf der gewählten Karte auswählen, wobei diese Bereiche 4Ό96 Bits umfassen).
Die fünf höhcrwertigen Bits auf den Adressbusleitungcn 00-04 werden
vom Uebersetzer zum Prozessor übertragen, um '. von diesem während
eines Inncnspcichc rzyklus ISZ benutzt zu werden. Bit 13 bis 22 werden
vom Speicheradres s r cgistc r des Prozessors abgegeben, um eine bc-.
stimmte Wortslclle 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 Lescopcrationen nur
ganze Wörter adressiert werden (1 Wort enthält 2 Bytes). Für eine Schreiboperation wird das letzte Adressbit 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 Innerispeicher arbeitet (d.h. wenn im
System kein Aussenspeicher und kein Asynchronspeicher vorgesehen ist),
dann adressiert der Prozessor den Innenspeicher nur mit physischen
16 Bit langen Adressen; die vom Spcicheradrcssrcgister auf dem Bus 54A
direkt abgegeben werden. Die vom Prozessor abgegebenen 16'Bit langen
709845/0742
BC9_76-006 I -35-
Adressen reichen gerade aus zur Adressierung der Höchstkapazität
des Innenspeichers (d.h. 64K). Bei dieser Minimalkonfiguralion werdet
mit den 16.Bit langen physischen Adressen Speicherschutzschlüsscl benutzt entsprechend den Nichlüberselzungsspeicherschutzschaltungcn,
die in Fig. 11 gezeigt sind.
Die Speicherschutzschlüssel benutzen die Möglichkeit der separaten
Adressbcreichsbcstimmung, welche durch die Adressschlüsselregisterabschnitte für verschiedene Speicherzugriffsarten gegeben ist. Die
Kombination der Aktivadrcssschlüsselauswahlschaltungen mit den Speicherschutzschlüsscln gehört auch zu der in dieser Beschreibung
dargestellten Erfindung. Das hier dargestellte Merkmal der Aklivadrcssschlüsselschaltungcn durch welche separate Adressbereichsbcstimmungen
je nach Speicherzugriifsart möglich sind, kann separat kombiniert werden, entweder mit der Benutzung von Speicherschlüsscln
bei Verwendung von nicht verschiebbaren Adressen, oder mit der Benutzung von Adressschlüsseln, bei Verwendung verschiebbarer
Adressen.
Wenn man die Möglichkeit der Adressverschiebung wünscht, die erlaubt,
-dass der Hauptspeicher über die Kapazitätsgrenze des Innenspeichers
709845/0742
BC9-76-006 * -36-
von 64K liinaus erweitert werden kann, muss ein Ucbersctzer vorgesehen
werden, wie es in Fig. IC gezeigt ist. Es kann dann ein Aussenspeichcr
hinzugefügt werden, welcher mit dem Uebersetzcr durch Aussenspei.chcrzykluR-signalleitungen
58 verbunden werden, welche die Aussenspeicherzyklus steuerung (OSZ) ermöglichen, die in Fig. 9G dargestellt ist.
Der Uebersetzcr ermöglicht auch eine zusätzliche Erweiterung des Hauptspeichers über die Kapazitätsgrenze von 128K, welche für den
Innenspeicher und Aussenspeicher gilt, hinaus durch Hinzufügung einer
Asynchronspeichereinheit. Die Asynchronspeichereinheit benutzt die
übersetzten 24 Bit langen Adressen in anderer Art als der Aussenspeicher,
wie dies in Fig. 9G für den Asynchronspeicherzyklus (ASZ) gezeigt ist.
Beim Asynchronspeicherzyklus ASZ werden die Bit-Positionen 0 bis 6 benutzt,
und in diesen Bit-Positionen steht mindestens ein 1-Bit, weil man
mehr als 16 Bit braucht, um eine Zahl darzustellen, die grosser als 128K
ist. Durch die Benutzung der Bit-Positionen 0 bis 6 unterscheidet sich
der Asynchronspeicherzyklus vom Aussenspeicherzyklus, bei welchem diese Bit-Positionen nicht benutzt werden; beim Aussenspeicherzyklus
werden nur die Bit 7 bis 23 benutzt. Diese besonderen Bedingungen für die Bit-Positionen 0 bis 6 werden dazu benutzt, um ein Paar von Vorgriffbits
zu setzen, welche in Fig. 9G gezeigt sind, wobei die zugehörigen
709845/0742
BC9-76-006 -37-
Schaltungen und Vorgänge in weiteren Einzelheiten irn Zusammenhang
mit den Fig. 9A und 9B beschrieben werden.
Der Uebcrsetzer hat eine Verbindung zur Hauptspeicherbusschnittstelle
Über welche er logische Adressen einschliesslich der Aktivadressschlüsse]
vom Prozessor für die Uebersetzung erhält. Der Ucbersetzer enthält
auch Schnittstellen für den Aussenspeicher und den Asynchronspeichcr.
Fig. 2A zeigt die Beziehungen zwischen den verschiedenen Speicherzugriffsarten,
welche durch verschiedene Arten von Prozessorbefehlen und Kanalbefehlcn hervorgerufen werden, und den entsprechenden Datenadressbereichen,
die in dem Ausführungsbeispiel benutzt werden. In Fig. 2A ist nur eine Untermenge der Zugriffsarten benutzt, die in Fig. ID
gezeigt wurden. Wie in Fig. 2A dargestellt, wird ein Bcfchlsabruf im
Befehlsadressbereich 60 unter Benutzung des ISS ausgeführt. Ausserdem sind zwei verschiedene Operanden-Zugriffsarten in Fig. 2 A gezeigt,
welche in den Datenadressbereichen 61 und 62 ausgeführt werden, wobei die Inhalte der Schlüsselregisterabschnitte OPlS und OP2S benutzt werden.
7a98A5/07A2
BC9-76-006 -38-
C.I. Prozessoradress.be reich s -Verteilung
Fig.2A veranschaulicht die Speicherjsugriffe, welche auf Grund verschiedener
Prozessorbefchlsarten vorgenommen werden. Ein Speicher-Speicherbefehl
ruft Daten im OPlS-Datenbereich 61 oder im OP2S~Datcnbereich
62 ab und bewirkt eine Speicherung der Resultate in den OP2S Datenadressbereich 62. Ein Befehl für direkte Speicheroperationen holt
seine Daten von ISS-Adressbereich 60 und speichert seine Resultate
in den OP2S-Datcnadressbereich 62 oder in ein Allgemeinregister (AR).
Ein Register-Speicher-Befehl verschiebt Daten von einem allgemeinen Register 63 zum OP2S-Datenadrcssbercich 62; ein Speicher-Register-Befehl
holt Daten vom OP2S-Datcnadressbereich 62 und speichert sie in einem Allgemcinregister 63. Ein Verzweigungsbefehl holt einen Verzweigungsziclbefehl
auch vom ISS-Adrcssbercich 60.
Zwei verschiedene Arten von E/A-Unterkanalbefchlen sind in Fig. 2A
gezeigt. Die eine Befehlsart wird Direkt-Programmsteuerungs-E/A-Befchl
genannt (DPS E/A) und bewirkt eine E/A-Operation,die synchron
mit dem Hauptprogramm abläuft, d.h. das Hauptprogramm läuft nicht
709845/0742
BC9-76-006 " -39-
weiter, bis die Ε/Λ-Ope ration beendet ist, wobei sowohl der E/A-Bcfehl
als auch die Daten aus dem OP2S-Adressbcrcich 62 entnommen werden.
Die andere E/A -Befchlsart bewirkt die normale Art von asynchronen
E/A-Operationen, welche allgemein als Cycle-Steal-E/A-Operationen
(CS) bezeichnet werden. Für diese zweite Dcfehlsart muss das E/AProgramm
selbst (d.h. die Kanalbefchle) im "Schlüsselt Kanalprogramm-
adrcssbereich" 64 (siehe Fig. 2A) gespeichert werden, während die Daten
zugriffe, welche für das Kanalprogramm ausgeführt werden, durch Schlüssel gesteuert werden, welche in den betreffenden Kanalbefehlen
spezifiziert sind, sodass durch jeden Kanalbcfehl (z.B. GSB ) jeweils
ein anderer der Adressbereiche 65 bis 66 ausgewählt werden kann. D.h. also, dass jedes E/A-Gerät sein eigenes Unterkanalprogramm hat, in
welchem die Befehle die Möglichkeit haben, jeweils einen anderen Schlüsselwort in den Adressschlüsselregisterabschnitt jedes Unterkanals
einzugeben, sodass es für jeden Unterkanal möglich ist, bei jedem Kanal befehl zu einem anderen Adressbereich zuzugreifen. Damit hat also
jeder Kanal die Möglichkeit, den Datenadressbereich, zu dem er zu
greift,bei Bedarf beliebig zu verschieben.
Fig. 2B zeigt etwas genauer die Art und Weise, in der die E/A-Operationen
709845/0742
BC9-76-006 · -40-
ihre Adrcssschlüssel bestimmen können, um verschiedene Datenadrcssbereichc
im Hauptspeicher auszuwählen.
Wie in Fig. 2B gezeigt, enthält das Hauptprogramm einen E/A-Betricbsbefehl,
der einen E/A-Vorgang auslöst, und deshalb befindet sich der E/A-Betricbsbefehl im ISS-Adressbereich. Der OP-Codeteil des Befehls
gibt an, dass es sich um einen E/A-Betriebsbcfchl handelt, und das
R2-Feld bezeichnet ein Register, dessen Inhalt mit dem Adressfeld kombiniert werden muss, um eine Adresse zu erzeugen, die direkt oder
indirekt einen "Indirekten Gerätesteucrblock" (IGSB) im OP2S-Adressbereich
bezeichnet. Falls mit indirekter Adressierung gearbeitet wird, steht die indirekte Adresse selbst im OP2S-Adressbereich. Die IGSB-Adrcsse
ist entweder eine direkte oder eine indirekte Adresse, abhängig vom Wert des I-Bit im E/A-Betricbsbefehl. D.h. also, dass der E/A-Bctriebsbefchl
im ISS-Adressbereich steht und der IGSB im OP2S-Adressbercich
steht.
Es gibt zwei Arten von indirekten Gerätesteuerblöcken IGSB: (1) einen
CS-Typ, oder (2) einen D PS-Typ. Das Kanalbefchlsfeld CMD im IGSB
gibt an, ob eine CS-Opcration oder eine DPS-Opcration eingeleitet wird.
BC9-76-006 . 7 09&-Λι5/07Α2
27 Ib Ö 51
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 Kanalbcfehlsfcld CMD anzeigt,
ob es eine E/A-Lese- oder Schreiboperation ist.
Wenn das CMD-FeId anzeigt,dass der IGSB vom CS-Typ ist, enthält das
zweite Wortim.IGSB die Adresse des Untcrkanalprograms für das Gerät,
welches durch das GA-FeId im IGSB adressiert ist. Der erste Kanalbe-
iehl (d.h. Kanalsteuerwort), welcher Gcrätcsteuerblock 0 (GSBrO) genanntwird,
befindet sich in dem Adressteil 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 Verkettungsadressc enthält, die den nächsten GSB lokalisiert
usw, bis der letzte GSB aufgefunden ist.
• In diesem Ausführungsbeispiel befindet sich also das gesamte Kanal
programm im "Schlüssel=0 Adressbereich". ,
Jeder Gerätesteuerblock GSB hält jedoch in seiner ersten Wortstclle
EA ein Schlüsselfeld, welches der Adrcssschlüssel für Daten ist, auf
die der betreffende GSB zugreift. GSB-O enthält z.B. ein Schlüssclfeld,
70984S707Ä2
BC9-76-006 -42-
-η/
welches als Schlüssel füi -^-y-^bezcichnet wird, und welches den Adressbereich
für einen zusammenhängenden Block logischer Adressen angibt, welcher an der Datenadresse beginnt, die indem 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üsselwort haben. In ähnlicher 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 Adressbercichs für die
Daten, welche innerhalb GSB-I adressiert werden. Der Schlüsselwort
in GSB-I kann also verschieden sein von dem Schlüsselwert in GSB-O
usw.
Hieraus wird ersichtlich, dass sich aus der Erfindung eine sehr grosse
Flexibilität in der Adressbereichsauswahl während dem Betrieb von E/A-Geräten im System ergibt. Bei Benutzung von Speicherschutzschlüsseln
ohne Uebersetzung 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 Uebcrsetzungsbetrieb gearbeitet wird,
werden für jeden Zugriff alle E/A-Datenadressen durch den Uebersetzcr tibersetzt (siehe Fig. ID) in der gleichen Weise, wie die Prozessoradressen
7 0 98,4 57 07 42
BC9-76-006 -43-
tibersetzt werden.
Fig. 3A zeigt Schaltungseinzelheiten für die Steuerung der GSB-Schlüsseloperationen.
Jeder E/A-Unterkanal enthält eine kleine prozessor-' ähnliche Steuereinheit zur Steuerung der Operation eines angeschlossenen
E/A-Gerätes, das von beliebiger Art sein kann. Diese prozessorähnlichc
Steuereinheit steuert die Verarbeitung der GSB-Schlüsscl durch
den betreffenden E/A-Untcrkanal. Der GSB-Schlüsscl wird in ein GSB-Schlüsselregister
301 in der Untcrkanalstcucreinhcit vom E/A-Datenbus des Kanals eingegeben, wenn jeweils ein Gerätcsteucrblock GSB im
Schlüssel =0 Adressbereich 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-Vor gang 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, dass ein Wort aus dem Festspeicher ROS 312 in
709845/0742
BC9-76-006 -"-44-
ein ROS-Datcnregister 313 eingegeben wird, um die notwendigen Unterkanaloperationen
zu steuern. Eine der Unterkanaloperationen ist ein GSB-Abruf des nächsten Adressfeldes im laufenden GSB vom Adrcssbercich
mit Schlüsse] ■» 0. ·. Das GSB-Abruffcld in einem ROS-Wort
wird von einem ROS-Dccodierer 314 entschlüsselt, welcherdann ein GSB-Abrufstcuersignal abgibt, das die UND-Glieder 315 (0) 315 (1) und
315 (Z) aktiviert, welche eine Eingabe in das GSB-Schlüssclregistcr
bewirken, das ein Teil des Registerstapels ist, der den ganzen Gcrätcsteuerblock
GSB empfängt. Nachdem der GSB-Abruf ausgeführt ist, wird der GSB im Unterkanal gespeichert, das GSB-Abruf-Signal beendet und
ein "Kein GSB-Abruf-Steuersignal aktiviert, welches die UND-Glieder
316 (0^316(1) und 316 (2) freigibt, um den GSB-Schlüssel aus dem GSB-Schlüsselregister
auszugeben, sodass dieser als CS-Schlüsscl für die GSB-Datenzugriffsoperationen zur Verfügung steht. Der CS-Schlüssel
wird über den Bedingungscodebus zum Kanal in Fig. 3B übertragen. Der Kanal überträgt dann den CS-Schlüssel zum CS-Schlüsselbus, der mit
der Speicherprioritätsauswahlschaltung in Fig. 3C,verbunden ist.
In Fig. 3C ist gezeigt, dass der CS-Schlüssel vom Kanalbus einer
709845/0742
BC9-76-006 -45-
Kanalauswahlschaltung 331 zugeführt wird, die mit den Kanalbussen von
allen Kanälen verbunden ist, die an den Prozessor angeschlossen sind, und welche einem CS-Schlüssel von einem der Kanäle Priorität gibt.
Mit jeder Unterkanalstcucreinheit ist auch eine Mehrzahl von Steucrleitungen
verbunden, darunter ein Steuerbus und ein E/A~Adressbus. Der E/A-Adressbus überträgt die Datenadresse, welche vom GSB hergeleitet
wurde. Zum E/A-Steuerbus gehört eine CS-Anforderungs- .
leitung, welche anzeigt, ob sich eine Adresse auf dem E/A-Adressbus
befindet (Fig. 3B).
Die Speicherprioritätsauswahlschaltung 56 ist mit CS-Zyklus-Anforde rungsleitungen
eines jeden der Kanäle 1...P verbunden, welche an einen Prozessor angeschlossen sind. Durch die Schallung 332 wird jeweils
ein bestimmter CS-Schlüssel ausgewählt und an die Kanalauswahlschaltung
331 abgegeben, welche den CS-Schlüssel des ausgewählten Untcrkanals an die AAS-Auswahlschaltungen 333 überträgt, welche auch
die Prozessoradressschlüsscl von den Prozcssor-ASR-Bussen erhalten.
Gesteuert von der Speiche rprioritäts-Zyklusschaltung 332 wählen die
AAS-Auswahlschaltungen 333 jeweils einen der empfangenen Adrcss- schlüsscl als den aktiven Adressschlüssel AAS des Systems aus. Fig. 3D
7O984B/07A2
BC9-76-006 -46-
zeigt Einzelheiten der AAS-Auswahlschaltung 333.
D. Prozessor
Fig. 4 zeigt Einzelheiten der für die Beschreibung wesentlichen Teile
des Systemprozessors, der sich gegebenenfalls gleichzeitig mit den CS-Schlüsscln um einen Speicher zugriff bemüht. Die Prozessor-ASR-Busse
(Sammelleitungen) sind mit den Ausgängen des Adressschlüsselregisters ASR verbunden. Die Speicherprioritätszyklusschaltung 332
(Fig. 3C), welche von bekannter Bauart sein kann, bestimmt die Reihenfolge,in
welcher den miteinander konkurrierenden Anforderungen ein Zugriff gewährt wird, d.h. also die Reihenfolge, in welcher die entsprechenden
Adressschlüssel als aktiver Adrcssschlüssel AAS an den Ausgängen der AAS-Auswahlschaltungen (Fig. 3D) erscheinen.
Fig. 4 zeigt diejenigen Steuereinrichtungen im Prozessor, die mit dem
Adrcsschlüssclregister ASR zusammenarbeiten. Das ASR wird geladen
Vom Prozessordatenbus (Datensammelleitung) mittels der Eingabe-Steuerung (EG),und die verschiedenen Adressschlüssel werden aus dem
Adressschlüsselregister auf den Prozessordatenbus ausgegeben mit Hilfe der Ausgabesteuerung (AG). Die EG- und AG-Stcuersignale werden
709845/0742
BC9-76-006 -47-
voiTi Prozessor-ROS-Dekodierer abgegeben. Der Inhalt des Adrcssschllisselregir.tcrs
ASR wird ständig abgegeben an die Prozessor-ASR-'
Busse, nämlich den ISS-Bus, den OP2S-Dus, den OPlS-Bu s und den
OBA-Bus, welche mit Eingängen der ASS-Auswahlschaltung 333 (Fig. 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, lind bestimmen damit^welchcr von diesen Schlüsseln der aktive
Adressschlüssel AAS wird. Fig. 7 zeigt irn Detail die ASR-Stcuer- schaltung anhand der Eingabe - und Ausgabeschaltungcn für eine einzelne
Ditposition des ASR. Alle anderen Bitpositiönen des ASR haben ent
sprechende Steuerschaltungen.
Aus Fig. 4 ist ersichtlich, dass der Prozessor- ROS-Dekodicrer
(Festspeichcr-Dckodierer) Ausgangsleitungen hat, deren jede durch ein bestimmtes ROS-Wort, wenn dieses ins ROS-Datenregister 406 eingegeben
ist,aktivicrt wird, um Eingabe und Ausgabe bei den ASR-Registerab-
schnittcn ISS, OPlS und OP2S zu steuern, bzw. um andere Prozessor
operationen zu veranlassen.
709845/0742
BC9-76-006 -48-
D. 1 Register für letzten aktiven Adressschlüssel AAS
Der in Fig. 4 gezeigleProzcssor enthält auch ein Register für den
letzten aktiven Adresschlüsscl, mit dessen Eingangsseitc eine AAS— Torschaltung 407 verbunden ist, welche einerseits an den AAS-Bus von
Fig. 3D angeschlossen ist und andererseits an einen Inverter, der mit
einer Prozessorfchlerkippschaltung 401 verbunden ist. Das Ausgangssignal
der AAS-Torschallung 407 wird in das Register 408 für den
letzten aktiven Adrcssschlüssel AAS eingegeben, wenn ein Prozessorspeicherzyklussignal
(von Fig. 17) vorliegt. Das Register 408 speichert jeden auf dem AAS-Bus vorliegenden aktiven Adressschlüssel vom
Prozessor-Adrcssschlüssclregister ASR, sofern die Fehlerkippschaltung
401 keinen Fehler auf einer Fehlerspcrrleitung anzeigt.
Wenn aber ein Maschincnfehlcr (MCK) oder ein Programmfchler (PCK)
im Prozessor auftritt, wird die Fchlerkippschallung 401 gesetzt. Als
Folge davon wird die AAS-Torschaltung 407 gesperrt, weil das Fehlersperrsignal
abfällt,um dadurch den letzten aktiven Adrcssschlüssel des Prozessors zurückzuhalten (LKSA)7 welcher zu der Zeit vorlag, als die
Fehlerkippschaltung 401 gesetzt wurde. Das Masc.hincnfchlcrsignal (MCK) und das Programmfehlersignal (PCK) werden in einem Zwangs-
709845/0742
BC9-76-006 -49-
adrcssdecodierer 402 eingegeben (ausser während eines Segmentregister-Zyklus),
um in die ROS-Stcuerschaltung 403 zwangsweise
eine Festspcichcradressc einzugeben, welche den Aufruf eines
Diagnoseprogramms bewirkt, welches die Fehlcrbcdingung beseitigt entweder durch wiederholte Ausführung der fehlerhaften Funktion, bis
sie korrekt ausgeführt ist, oder durch Ausführung einer Abschlussoperation (log-out), wenn festgestellt wird, dass der Fehler ein
Dauerfchler ist. Das AAS-Register 408 bewahrt inzwischen den LKSA auf, um die zuletzt gültig gewesene Adressbereichsfestlegung aufrecht
zu erhalten, während im Prozessor Fehlerbchcbungs-Operationen ablaufen,
sodass nach Behebung der Fchlerbedingung das System unter Beibehaltung der zuletzt benutzten Adressbereichsfestlegung 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
Adressschlüsselregisters ASR gehört. Durch ein Signal "AG AASR (Ausgabe aus dem Register für den letzten aktiven Adrcss-
schlüsscl) wird der Inhalt des Registers 408 (LKSA) an den Prozessor-
709845/0742
BC9-76-006 -50-
datenbus ausgegeben; ein gleichzeitig auftretendes Signal EG OPlS bewirkt die Eingabe des LKSA in den OPIK-Registerabschnitt des ASR
für die Diagnose- oder Fehle rbchcbungsopernlionen (siehe Abschnitt
H. 3). Wenn die Fchlerbchcbungsoperationen beendet sind, wird der
letzte normale ASR-V/crt 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 Adrcssschlüssels in das ASR entweder von
einer Wortstclle im Hauptspeicher oder von einem bezeichneten Allgemein-Register
AR; . (2) . die Abspeichcrung von Adressschlüsseln vom ASR entweder in eine Wortstclle im Hauptspeicher,
oder in ein bezeichnetes Allgemeinregister AR. Fig. 8B zeigt die Vorgänge bei Ausführung des Befehls "ASR/Speicher Laden/Abspcichcrn"
Mit diesem einzelnen Befehl kann entweder das Laden des ASR aus dem Hauptspeicher oder das Abspeichern des Inhalts des ASR in den Hauptspeicher
gesteuert werden.
Fig. 8B zeigt die Einteilung des 16 Bit langen Befehls "ASR/Spcichcr
709845/0742
BC9-76-006 -51-
Laden/Abspeichern". Er ist gekennzeichnet durch den 5-J3it-OP-Codc
und das 3-Bit-Modifizicricld 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 ASK), der eingegeben oder ausgegeben werden soll. Die K-Werte
0, 1, Z oder 3 bezeichnen die Registcrabschnilte ISS, OP2S, OPlS bzw.
das gesamte ASR, zur Benutzung durch diesen Befehl. Eine logische Hauptspeicheradresse wird erzeugt mit Hilfe des RB-Feldcs in den
Bit-Positionen 8 und 9,welches ein Basisregistcr bezeichnet, und die
Zugriffsmodusbits 10 und 11 (AM) welche angeben, ob ein Wort ein angehängtes
Feld an eine Instruktion ist, die ein Adrcssfeld enthält, wobei der Inhalt des AM-Feldes und des RB-Registers kombiniert werden, um
die effektive Adresse derjenigen Wortstclle im Hauptspeicher zu er
zeugen, 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 Wortstellc in demjenigen
ASR-Teil abgespeichert, der durch das K-FeId bezeichnet ist. Wenn das
X-Bit = 1 ist, dann wird der angegebene AKR-Tcil in der adressierten
Wortslelle abgespeichert.
In ähnlicher Weise stellt Fig. 8C die bei der Ausführung des Befehls
BC9-76-006
"ASR/Rcgistcr J.,adcn/Abspeiehern" ausgeführten Operationen dar; der
einzige Unterschied gegen Fig. 8B ist, dass statt einer Hauptspeichcrworlstclle
bei der Ausführung dieses Befehls ein Allgemein-Register
AR benutzt wird. Dcmgemäss bezeichnet in Fig. 8C das R-FeId in den
Bit-Positionen 8 bis 10 ein bestimmtes Allgemein-Rcgister 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 Ausgangslcitungcn
des Prozessor-ROS-Dccodierers 405 (Fig. 4), welche mit den auf dem Datenpfad des Prozessors auftretenden Signalen die im Zusammenhang
mit Fig. 8B beschriebenen Operationen veranlassen.
Fig. 9A und 9B enthalten Einzelheiten des in Fig. IC gezeigten Uebersetzers
59, welcher die mit Fig. IA beschriebenen Uebersetzungsvorgänge
für Adressverschiebungen vornimmt. Diese Adressverschicbungs-Uebersetzungsschaltungen
können den physischen Adressbereich von
BC9-76-006
7098*5/0^2
64 K (2 ) Bytes auf 16 Millionen (2 ) Bytes vergrössern, was also
einer Erweiterung des Inncnspcichcrs von 64 K Bytes entspricht.
Durch den Ucbersctzer wird der Adressbereich des Hauptspeichers insofern vcrgrössert, als dieser den aktiven Adressschlüssel AAS und
die 16 Bit lange im Programm erscheinende Adresse vom Prozessor oder von einem Unlerkanal gemeinsam als logische Eingangsadresse
aufnimmt und diese Eingangsadresse in eine 24 Bit lange physische
Adresse umwandelt, die Zugriff zum Innenspeicher, Aussenspeicher oder Asynchron-Speichcr hat.
Adresse umwandelt, die Zugriff zum Innenspeicher, Aussenspeicher oder Asynchron-Speichcr hat.
Dieser Uebersetzungsvorgang ermöglicht die dynamische Zuteilung physischer Speicherkapazität zu logischen Adressbereichen und die
gemeinsame Benutzung physischer Speicherkapazität von mehreren logischen Adressbereichen. 8 Sätze (Stapel) von je 32 Segmentregistern
(SR) sind für die 8 verschiedenen möglichen Werte der Adressschlüssel vorgesehen, was insgesamt 256 Segment register ergibt. Jeder geladene
SR-Stapel kann eine vollständige Abbildung eines Speicherbereiches
enthalten, der bis zu 64K Bytes enthält, die in Blöcken von je 2K Byte Speicherkapazität· verteilt sein können. Mit einem Stapel kann auch
ein Adressbereich adressiert werden, der weniger als 64K Bytes hat,
709846/0742
BC9-76-006 -54-
in-^lcm man lediglich die Validitäts-Bit-Position in einem oder mehreren
der Scgmcntrcgister auf eins setzt, sodass nur diejenigen Segmentregister, bei denen die Validitäts-Bit - 0 sind, die Blöcke mit je 2K
. Bytes Kapazität bezeichnen, welche zu einem adressierbaren Bereich gehören, der durch einen zugeordneten Adressschlüsscl identifiziert
ist.
Für jeden AdrcssschlUssel ist ein separater Segmentregistcrstapel vorgesehen,
um ein schnelles Umschalten der logischen Adressbereiche zu ermöglichen ohne die Notwendigkeit der Wegspeichcrung und Wieder-Einspeicherung
der Adrcscbcreichspcicherabbildungen des Systems.
Der AdressverSchiebungsübersetzer, der in den Fig. 9A und 9B gezeigt
ist, ermöglicht eine Erweiterung des Hauptspeichers durch einen Aussenspeicher von bis zu 64 K Bytes in Inkrementcn von 16K Bytes auf
je einer Karte, welche als die fünfte bis achte Karte für den Aussenspeicher bezeichnet sind. Der Innenspeicher best.eht aus der ersten
bis vierten Karte, welche auch je eine Kapazität von 16K Bytes haben. Erweiterungen der Speicherkapazität über die 128 K Bytes des Innenspeichers
und Aussenspeichers hinaus bedürfen einer zusätzlichen Asynchronspeichcrcinheit (Fig. lC),durch welche der physische
BC 9-76-006 7 0 9 8 4 B /£7-4 2
Speicher von 128KByles bis zu einem Maximum von 16 Millionen Bytes
vergrösscrt werden kann.
Dpr grösste durch die Maschine statisch adrtssierbare Adressbercich,
welcher allen gleichzeitig ablaufenden Programmen zur Verfügung Steht, wenn alle Segmentregister mit verschiedenen physischen Block-
19
adressen geladen sind, beträgt 2 Bytes. Diese Grenze ist bestimmt durch die 19 Bit lange Eingangsadresse, welche in Fig. IA gezeigt ist, und die entsteht, wenn ein 3 Bit langer aktiver Adressschlüssel an die 16 Bit lange im Programm erscheinende Adresse angehängt wird, um so eine 19 Bit lange logische Maschinencingangsadressc für den Ucbersetzer zu erzeugen. Für ein einzelnes Programm besteht die Adressierungsmöglichkeit bis zu drei verschiedenen Adressbereichen, welche durch die drei Abschnitte des ASR definiert sind, nämlich ISS, OPlS und OP2S, was also eine Adressicrbarkeit eines Adressbereichs von max. 64 K bis zu max. 192 K Bytes ergibt.
adressen geladen sind, beträgt 2 Bytes. Diese Grenze ist bestimmt durch die 19 Bit lange Eingangsadresse, welche in Fig. IA gezeigt ist, und die entsteht, wenn ein 3 Bit langer aktiver Adressschlüssel an die 16 Bit lange im Programm erscheinende Adresse angehängt wird, um so eine 19 Bit lange logische Maschinencingangsadressc für den Ucbersetzer zu erzeugen. Für ein einzelnes Programm besteht die Adressierungsmöglichkeit bis zu drei verschiedenen Adressbereichen, welche durch die drei Abschnitte des ASR definiert sind, nämlich ISS, OPlS und OP2S, was also eine Adressicrbarkeit eines Adressbereichs von max. 64 K bis zu max. 192 K Bytes ergibt.
D.h.: 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 ?.u 512K Bytes bei einem bestimmten geladenen Inhalt
der Segmentregistcr; dies wird als die grösste statische Maschinen-
BC9.76-006 7 09 8Λ7
adrcssicrbarkcit bezeichnet. Wenn man nun eine Adressierung über die
512K Bytes des statischen Maximums hinaus vornehmen will, so muss man die Segmentregisler du rc Ii Programme umladen, um eine Adrcssicrbarkcit
anderer Bereiche im Hauptspeicher zu erhalten.
Die statische Adressierbarkeil kann leicht vcrgrösscrt werden durch
die Hinzufügung weiterer Bits zu dem Adressschlüsscl im ASR und durch die Vergrösserung der zugehörigen Schaltungen, um dadurch eine entsprechend
grössere Anzahl von Segmentrcgisterstapeln zu unterstützen.
Wenn in das System ein Uebcrsetzcr eingebaut wird, wie er in Fig. IA
gezeigt ist,, so wird seine Benutzung durch ein Bit Nr. 14 im Prozessorstatuswort
(PSW) gesteuert, und zwar durch Ausgangslcitungcn des Prozessor-ROS-Decoders in Fig. 4, bei Vorliegen des in Fig. 13 A gezeigten
Frcigabe/Sperrbefchls. Bit 14 im Freigabe/Sperrbefehl gibt an,
ob im System ein Ucbersetzcr vorgesehen ist oder nicht, und Bit 7 gibt
an, ob er freigegeben oder gesperrt sein soll. Die in Fig. 10 gezeigte
Schaltung bestimmt, ob der Uebersctzer freigegeben wird oder nicht. Wenn der Uebersetzer nicht freigegeben wird, und wenn das SP-Bit in dem in
Fig. 13 A gezeigten Befehl auf 1 gesetzt ist, wird die in Fig. 11 gezeigte
Schaltung zum Speicherschutz bei NichtÜbersetzung verwendet. Falls
709.84B/0742
BC9-70-000 -57-
S? 2 71 b O 51
Adressierbarkeit nur in einem kleinen Adressbereich benötigt ist und
falls sehr schnelle Verarbeitung gewünscht wird, kann der Ucbersetzcr
gesperrt werden.
Fig. 9A und 9 B zeigen im Einzelnen die Schaltungen, Busleitungcn und
Schnittstcllciileitungcn für den Ucbersctzcr 59 des Systems von Fig. IC,
gemäss folgender Aufstellung:
(1) Speicheradressbus 901. Er hat 15 Leitungen, welche die logische
Programmadresse vom Speicheradressregister (SAR) des Prozessors zum Ucbersetzer übertragen. Nach der Adressübersetzung werden
die fünf werthöchsten Bits der Uebersetzadresse 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 Datcnleitungen
und zwei Paritätsleitungen. Er überträgt Speicherdaten und Segmcntregisterinhaltc
vom Prozessor zum Uebcrsetzer.
7 0 9 Ö A 5/0 7 4 2
BC9-76-006 " -58-
271B051
(3) Speicherdatcnbuc 903 vom Speicher. Er enthält 16 Datcnlcitungcn
und zwei Paritätsleitungen. Er überträgt Speicherdaten vom Ucbcr setzcr und den Inhalt der Segmentregister (SK) zum Prozessor.
(4) Bus für aktiven Adressschliisscl (AAS-Bus). Diese drei Leitungen
übertragen den aktiven Adrcsschlüssel AAS von der Speicherprioritätsauswahlschaltung
(Fig. 3C) zum Uebersetzer, um einen bestimmten Segmcntregisterstapel im Uebersetzer auszuwählen.
(5) Speicher schreiben OP O. Einzelleitung vom Prozessor, die dem
Uebersetzer signalisiert, dass 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
Uebersetzer signalisiert, dass eine Schreiboperation im Speicher auszuführen ist mit dem rechten Byte des Wortes, dass sich auf
dem Speicherdatenbus zum Speicher befindet. Diese Leitung wird aktiviert, wenn das niedrigste Bit Nr. 23 der 24 Bit langen
physischen Adresse gleich 1 ist.
709845/0742
BC9-76-006 ■' -59-
(7) Uebcrsctzerfreigabc. Einzelleitung, welche ein Prozessorsignal
an den Uebersetzer abgibt, dass den Uebersetzer für seine Funktion freigibt. Dieses Signal wird aktiviert durch den Freigabe/Sperr
bc fehl.
(8) Speicheranforderung an Uebersetzer. Diese Einzelleitung überträgt
ein Prozcssorsignal, welches den Uebersetzer auffordert, die logische Adresse vom Speicheradressbus zu übersetzen. Ein
Mikrozyklus (220 Nanosekunden) wird automatisch übersprungen, um dem Uebersetzer einen Zugriff zum betreffenden Segmentregister zu ermöglichen, um die physische Adresse zu ermitteln
und um zu bestimmen^ ob ein Zugriff zum Innenspeicher, Ausseiispeicher
oder zum Asynchronspeicher erforderlich ist.
(9) Zeitgeberimpulsc A, B, C, D. Diese vier Leitungen übertragen
Prozessorzeitgeberimpulse von 55 Nanosekunden Dauer, welche den Synchronismus zwischen dem Prozessor und dem Ueberselzer
herstellen.
(10) Ucbersctzcr/SAR durchgeben. Das Signal auf dieser Leitung gibt
an, dass der Uebersetzer die fünf höchstwertigen Bits der über-
BC9-76-006
ίο
setzten physischen Speicheradresse 55 Nanosckunden nach Beginn dieses
Signals auf den Spoichcradressbus gegeben hat. Es veranlasst den Prozessor, dass er Bits 00-04 der übersetzten Adresse vorn Adressbus
an den Innenspeichcr weitergeben soll.
(11) Innenspeicherzyklus (ISZ). Diese Leitung überträgt ein vom Uebersetzer
generiertes Signal, welches den Prozessor auffordert, dem Innenspeicher
51 mit jeder neuen physischen Adresse ein Speicherzeitsignal zur Verfügung zu stellen. Wenn ein Ausscnspeicher- oder Asynchronspeicherzyklus
(OSZ oder ASZ) ausgeführt werden soll, wird diese Leitung deaktiviert, so dass der innere Speicher nicht ausgewählt wird.
(12) Uebersetzerspeicher besetzt. Diese Leitung überträgt einen vom Ucbersetzer
generiertes Signal, welches dem Prozessor anzeigt, dass er die Taktsignale stoppen soll. Diese Leitung wird nur aktiviert bei
Zugriffen zur Asynchronspeichereinheit 53. Wenn der Uebersetzer die entsprechende Antwort von der Asynchronspeichercinheit 53 bekommen
hat, wird diese Leitung deaktiviert, und die Taktsignale werden wieder gestartet, um den Speicherzyklus zu beenden. Diese Stillegung der
Spcichertaktsignale durch eine Asynchronspeichereinheit ist der Grund
für deren asynchrone Arbeitsweise und der Grund dafür, dass ihr Zu-
BC9-76-006 7098 4 59X17
griffszyklus länger ist als der Zugriffszyklus beim Innenspeicher
oder Aussenspeicher 52. ·
(13) Uebersetzer eingebaut. Diese Leitung überträgt ein vom Uebersetzer
generiertes Signal, welches dem Prozessor anzeigt, dass ein Uebersetzer 59 im System eingebaut ist.
(14) Uebersetzer ungültige Speicheradresse. Diese Leitung überträgt ein
vom Uebersetzer generiertes Signal, das dem Prozessor anzeigt, dass die soeben an den Uebersetzer übertragene logische Adresse
ungültig ist; es erfolgt dann eine Programmfehlcranzeige (PCK).
(15) Uebersetzer Speicherschutzanzeige. Diese Leitung überträgt ein
vom Uebersetzer generiertes Signal, welches dem Prozessor anzeigt, dass ein Versuch gemacht wurde, im Speicher in einen Block zu
schreiben, in dessen Segmentregister das Bit 14 auf 1 gesetzt ist, wodurch angezeigt wird, dass für diesen Block nur Leseoperationen
erlaubt sind.
(16) Ueberwachungsprogrammzustand oder Cycle-Steal-Zyklus. Diese
Leitung Überträgt ein vom Prozessor generiertes Signal an den
BC9-76-006 7 0 984-52/07 A 2
Uebersetzer, welches anzeigt, dass dieser das Nur-Lcse-Bit 14 im
adressierten Scgmentrcgistcr ignorieren soll, weil die vorliegende Speicherzugriffr.anfordcrung entweder vom Ueberwachungsprogramni
oder von einem E/A-Untc rkanal stammt.
(17) Zykluscndc. Diese Leitung überträgt ein vom Prozessor generiertes
Signal, welches dem Uebersetzer anzeigt, dass jetzt der Speicherzyklus beendet wird.
(18) Segmentregisterzyklus. Diese Leitung überträgt ein vom Prozessor
generiertes Signal, welches dem Uebersetzer anzeigt, dass die Segmenlregistcr aktiviert werden. Gleichzeitig werden die Leitungen
Speicher Schreiben OP 0 bzw. Speicher Schreiben OP 1 benutzt, um
anzuzeigen, ob der Zyklus ein Lese- oder Schreib- Zyklus als Teil eines Befehls "Segmentregister abspeichern' oder "Segmentregister
laden" ist.
Die Schnittstelle vom Uebersetzer zum Aussenspeicher ist in Fig. 9B gezeigt.
Zu ihr gehören folgende Leitungen:
BC9-76-006 70 98*5/07
(1) Kartcnauswahlleitungen. Diese vier Leitungen, welche bezeichnet sind
mit Kartenauswahl 8OK, 96K, 112K und 128K,wählcn je eine Speicherkarte
von 16K Bytes im Aussenspcicher aus.
(2) Leitungen TCSX und TCSY. Diese sechs Leitungen übertragen X-Koordinaten
und Y-Koordinatcn ftir die ausgewählte Karte, um einen bestimmten Bereich auf dieser Karte auszuwählen.
(3) Leitungen "Byte 0 Schreiben" und "Byte 1 Schreiben". Diese vier
Leitungen übertragen Zeitgebersignale zu den vier Aussenspeicher- karten.um ein Byte zu schreiben.
Wenn der Uebersetzer die physische Speicheradresse vom entsprechenden
Segmentregister erhält, bestimmt er, ob ein Zugriff zum Innenspeicher, sum Aussenspcicher oder zum Asynchronspeicher gemacht werden muss;
er aktiviert die Schnittstellenleitungen zum Aussenspcicher nur, wenn ein
Aussenspeicherzyklus erforderlich ist. Die Leitungsb'rücken, welche in
der Aussenspeichersteuerung eingebaut werden (Fig. 9B), zeigen an, welche
der vier Karten der Aussenspeichereinheit installiert sind.
709845/0742
BC9-76-006 -64-
K. 3 Schnittst olio U eher sei y.cr/A s yncli r on s pe i c h c r
Die Schnittstelle vom Uebersetzer zum Asynchronspeichcr (Fig. 9A und
9B) umfasst folgende Leitungen:
(1) Asynchronspeicher Ausgabedaten/Parität. Diese 16 Datenleitungen und
zwei Paritätsleitungcn bilden den Speicherdatenbus zur Asynchrons
peiche reinheit.
(2) Asynchronspeicher Eingabedaten/Parität. Diese 16 Datenleitungcn und
zwei Paritätsleitungen bilden den Speicherdatenbus von der Asynchronspeichcreinheit
ium Prozessor und zum Kanal.
(3) Asynchronspeicher unteres SAR Aus. Diese 13 Leitungen übertragen
die 13 höherwertigen Bits der physischen Adresse, welche die Blockadresse
in der Asynchronspeichercinheit bilden. Sie bilden die oberen
SAR-Bits 0 - 12, welche im Asynchronspeicherzyklus in Fig. 9G gezeigt
sind.
(4) Asynchronspeicher oberes SAR Aus. Diese zehn Leitungen Übertragen
die 10 niederwertigen Bits 13 - 22 im Asynchronspeicherzyklus, aber
709845/0742
BC9-76-006 ' -65-
nicht Bit 23 des Asynchronspcichcrzyklus (Fig. 9G). Die Bit 13 bis
adressieren ein Wort im ausgewählten Block.
(5) Byte 0 Schreiben. Diese Leitung überträgt das niedrigste Bit Nr. 23
der physischen Adresse, um anzuzeigen, ob das linke Byte des adressierten Wortes während des Asynchronspeicherzyklus für eine
Speichcroperation benutzt wird.
(6) Byte 1 Schreiben. Diese Leitung informiert den Asynchronspeichcr,
dass das rechte Byte des gerade adressierten Wortes während des Asynchronspeicherzyklus einer Speichcroperation unterliegt.
(7) Asynchronspeicherauswahl. Diese Leitung zeigt denn adressierten
Speichermodul an, dass ein Speicherzyklus begonnen werden soll. Diese Auswahllcitung wird nur aktiviert während eines Asynchronspeicherzyklus,
und wenn keine logische Befehlsadresse und keine Speicherschutzanzeige vom Uebersetzer festgestellt wurden.
(8) Schnittstcllenlakt und Schnittstellentakt 90 . Diese zwei Taktsignale
haben eine Periode von 440 Nanosckundcn mit einer Impulsdauer von 50 % pro Periode. Die beiden Taktsignalc haben eine Phasenver-
709845/0742
BC9-76-006 -66-
Schiebung von 90 gegeneinander; sie sind nur aktiv, wenn das Asynchron-Speichcrauswahlsignal auch aktiv ist. Diese Taktsignale
können in der Asynchron-Spcichereinheit für folgendes benutzt werden: Synchronisierung innerhalb der Speichereinheit, Vermeidung von
Problemen beim Wiedcrcinschreibcn, Einspeicherung von Daten in
Kippschaltungen, und zur Erzeugung von Antwortsignaleii zu den vorgegebenen
Zeitpunkten.
Rückantwort. Auf dieser Leitung erscheint ein Signal von der Asynchronspeichereinheit,
wenn der adressierte Speicherplatz installiert ist.
Schrcibzeifgabo-signal. Diese Leitung zum ausgewählten Asynchronspeichermodul
wird während der zweiten Hälfte des Schreibzyklus aktiviert, nachdem der Uebersetzer eine Rückantwort erhalten hatte.
Das Schrcibzeitgabe-'Signal 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 Asynchron-
speichercinhcit als Bestätigungssignal benutzt, um die Rückstellung der
BC9-76-006 -67? 09845/0742
Kippschaltungen, welche während des Zyklus gesetzt wurden, zu erreichen,
und Ulm die Wiederauswahl während desselben Zyklus beim
Abfallendes Asynchronspeichcrauswahlsignals zu verhindern.
E. h Sepmcntrogisterauswahl
Einzelheiten der Segmentrcgistersteuerschaltungen sind in Fig. 9C gezeigt.
Ein Segmentregister wird durch ein Konzentrationsverfahren ausgewählt. Zunächst wird in allen Registcrstapeln die gewünschte Speicher-Stelle
ausgewählt durch Adressierung aller Register mit den höherwertigen Bitstellcn 0-4 der im Programm erscheinenden logischen Adresse,
sodass 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, dass man zunächst den
Wert des XAS-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 Stapelausgangssignalcn nur eine auszuwählen, und zwar entweder die Stapel 0,1 und 4, 5 oder die
709845/0742
BC9-76-006 -68-
Stapel 2, 3 und 6, 7. (Hierbei bedeutet das Komma zwischen den Stapelnummern
"oder"). Es weiden 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 schlicsslich ein einzelnes Register ausgewählt aufgrund des Zustandcs des SR-Hoch-Niedrig-Auswahl-Bit
(AAS-Bit 0), welches dem Konzentrator 921 in Fig. 9Λ zugeführt wird, welcher eine Auswahl aus dem vorausgewählten Paar von
Stapeln trifft und schliesslich nur von einem einzigen Register aus einem
ausgewählten Stapel die Ausgangswertc abgibt.
E. 5 Steuerung zum Ladcn/Abspcichern der Segment register
Fig. 8A zeigt die Operationen der Befehle zum Laden und Abspeichern
der Segmentregister (SR). Fig. 17 zeigt die Prozessorspeichersteuerung, und Fig. "9A und 9B zeigen die zugehörigen Ucbersetzersteuerungen, welche
zur Ausführung dieser Befehle benötigt werden.
In Fig. 8A ist gezeigt, wie der Befehl "SR Laden" die Eingabe einer
physischen Blockadrcsse in ein gewähltes Segmcntregistcr von einem adressierten Wortspcichcrplatz im Hauptspeicher steuert. Der Befehl
BC9-76.006 7 059-8 4 5 / 0 7 A 2
"SR Abspeichern" bewirkt das Kopieren des Inhalts eines ausgewählten
Segmentregisters in eine adressierte Wortspcicherstelle 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 Modifizierfcld, welche in den Bit-Positionen 0 bis A 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 Abspeichcr-Operatioii handelt. Wenn X auf 0
gesetzt ist, wird der Inhalt der adressierten Wortspcicherstelle im Hauptspeicher
in das ausgewählte Segmentregister geladen. Wenn das X-Bit auf 1 gesetzt ist, dann wird der Inhalt des gewählten Segmentregisters
in der adressierten Wortspeicherstclle abgespeichert.
Das R-FeId in den Bit-Positionen 5 bis 7 adressicr.t ein Allgemein-Registn r
(AR), welches die Adresse des ausgewählten Scgmcntrcgistcrs 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 Stapclnummcr, die den gewählten Stapel identifiziert, und die AR-Bit-
-709845/0742
BC9-76-006 -70-
Positionen 0 bis 4 enthalten eine Segmcnlregisternummcr, welche das
gewählte Segmenlrcgister identifiziert, welches geladen oder aus dem
abgespeicliert werden soll.
Die gewünschte Wortspeicherstelle im Hauptspeicher wird adressiert
mit Hilfe einer logischen Adresse, welche generiert wird unter Benutzung des RB-Feldes in den Bit-Positionen 8 und 9, die ein Basisregister
angeben; das AM-FeId in den Bit-Positionen 10 und 11 (Zugriffsari) gibt
an, ob ein Zugriffsart-Wort der Instruktion folgt.. Der Inhalt des Zugriffsart-Wortes
(AM-Wort) und des RB-Rcgisters werden kombiniert, um die effektive (d.h. im Programm erscheinende) Adresse der Hauptspeicherwortstclle
zu generieren, welche durch Ausführung der Instruktionen geladen oder aus der abgespeicliert werden soll. Falls das System im Uebersetzerbetrieb
arbeitet, wird die generierte effektive Adresse in den Uebcrsetzter eingegeben (Fig. 9A und 9B) zusammen mit dem aktiven Adressschlüsscl
AAS, um eine logische Maschincneingabcadresse zu bilden. Der
Uebersetzcr gibt eine 24 Bit lange physische Adresse ab, mit der ein Zugriff zu der adressierten Wortspcicherstelle möglich ist. Somit ist es
möglich, dass bei dem Segmentregister, welches geladen werden soll, sein vorheriger Inhalt in einer Uebersetzungsoperation benutzt wird, bevor
dieser Inhalt durch den Segmcntrcgisterladebefehl zu einer anderen
BC9-76-006 7 Q g 974-5 /0742
ORIGINAL INSPECTED
physischen ßlockadrcsse verändert wird.
Wenn der Prozessor nicht im Uc.bersetzerbetrieb arbeitetest die generierte
effektive Adresse die physische Adresse im Hauptspeicher.
Bits 13 und 14 der adressierten Wortspcichcrstelle im Hauptspeicher
enthalten die Werte für das Validitäls-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 Uebersetzung benutzt wird.
Fig. 17 zeigt die Steuereinrichtungen des Prozessors, die bei Ausführung
der Befehle zum Laden bzw. Abspeichern dei* Segmcntregister benutzt
werden. Diese Steuerschaltungen im Prozessor generieren ein Segmentregistcrzyklussignal,
welches vom Ucbersetzer (Fig. 9A und 9B) benutzt wird,um das Laden oder Abspeichern eines Segmentregisters zu bewirken.
Durch einen Befehl zum Laden oder Abspeichern eines Segmentregislers
werden im Prozessor Mikrobefehle abgerufen, welche ein Signal "An
forderung zum Laden/Abspcichcrn 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
709845/0742.
BC9-76-006 -72-
durch das T-Ausgangssignal der Kippschaltung 481 freigegeben wird. Bei
aktivem Ausgangssignal des UND-Gliedes 482 wird cine SR-Phascnkippschaltung
(PH) für einen Zyklus gesetzt; deren Aus gangs signal aktiviert das UND-Glied 484, wenn der Uebersetzcr eingebaut ist. Das Ausgangssignal
des UND-Gliedes 484 setzt eine Kippschaltung 486 "SR- Anforde rung"
um anzuzeigen, dass 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,
dass keine CS-Zyklusanfordcrung vorliegt, da CS-Zyklen die höchste
Priorität haben. Der SR-Zyklus hat zweithöchste Priorität, und ein
normaler Prozcssor-Spcichcrzyklus hat niedrigste Priorität; dies wird
bewirkt durch ein UND-Glied 493, das ein Prozcssorspeicherzyklussignal
auf Leitung 494 nur dann erzeugt, wenn kein SR-Anforderungssignal vom
C-Ausgang der Kippschaltung 486 an seinem Eingang vorliegt. Der andere Eingang des UND-Gliedes 493 ist mit dem T-Ausgang der Prozessorzyklus-Kippschaltung
verbunden. (Der T-Ausgang einer Kippschaltung gibt das echte oder wahre Ausgangssignal ab, während der C-Ausgang das
Komplementärsignal abgibt).
Wenn während der Ausführung eines Befehls zum Laden oder Abspeichern
eines Segmentregisters das UND-Glied 488 durch das T-Ausgangssignal
709845/0742
BC9-76-006 -73-
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
11 kein CS-Zyklus" (welches dann auftritt, wenn keine E/A-Spcichcr-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 Prozessorspeicheradressregister
SAR adressiert. Daraufhin erfolgt eine Auswahloperation . für das Segmentregister in der gleichen Weise, wie es
bei der Beschreibung des Uebersetzers im Abschnitt "Segmentregisterauswahl"
erläutert wurde.
Wie bereits erwähnt, bestimmt der Binärwert des X-Bit im Befehl, ob
eine Lade- oder Abspcichcr-Operation ausgeführt wird; zu diesem Zweck
wählt das X-Bit eine Lade- oder Abspeicher-Mikroroutine vom Prozessor-
7098A5/0742
BC9-76-006 - -74-
festspeichcr ROS. Für eine Segmentregisterladeoperation generiert die
Mikroroutine zunächst eine Prozc.ssorspeichcranfordcrung, wälircnd der
das durch den SR-Bcfehl adressierte Wort aus dem Hauptspeicher abgerufen und in das Prozessorspcichcrdatcnregistcr SDR eingegeben wird.
Danach gibt die Mikroroutine das Anforderungs signal für das Laden/Abspeichern des Segmentregisters ab, worauf eine weitere Prozessoranforderung
für einen Speicherzyklus folgt. Dies veranlasst die Schaltung in Fig. 17, um in der oben beschriebenen Art und Weise einen SR-Zyklus
zu generieren, welcher das Segmentregister auswählt und bewirkt, dass 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 dass zuerst die Schaltung in
Fig. 17 veranlasst wird, einen SR-Zyklus zu generieren, während das Segmentregistcr ausgewählt und sein Inhalt in das Speicherdatenregister
SDR übertragen wird. Dann bewirkt die Mikroroutirte eine normale Prozessorspeicheranforderung, welche veranlasst, dass der Inhalt des
SDR in die adressierte Speicherstellc im Hauptspeicher übertragen wird.
E. 6 Steuerung für Vorgriffs-Ucbersetzercinheit .
Wenn bei der Adressübcrsetzunc der Blockadrcssteil der physischen Adresse aus den Bits 0~4 der logischen Adresse erzeugt wird, wird zum
709845/0742
BC9-76-006 · -75-~ '
Zugriff für die Auswahl und das Auslesen eines Segmentregisters SR ein
Prozessortaktzyklus benötigt. Ein weiterer Prozessortaktzyklus würde zuiTi Zugriff benötigt Γ falls die Vorgriffsschaltungcn nicht vorgesehen
wären), um die ausgclcsene Blockadresse κιι decodieren, um den Schnittstellcnbus
zu der benötigten Speichereinheit auszuwählen, d.h. zum Innenspeicher, zum Aussenspeichcr oder zum Asynchronspcichcr, zu
dem die physische Blockadressc übertragen werden muss. Wenn eine
Vorgriffsschaltung vorgesehen wird, braucht man keine zusätzliche Zeit zur Auswahl des benötigten Schnittstellenbus, und man braucht die ausgelesene
Blockadresse nicht zu decodieren, um die benötigte Speichereinheit zu bestimmen. D.h., dass durch die Vorgriffsschallung die Zugriffszeit bei Uebersetzung um einen Prozessortaktzyklus verkürzt wird.
Während des Uebersetzungsvorgangs liegen die D-Bits der Positionen 5 bis .15 der logischen Adresse ständig auf dem Hauptspeicherbus vom
Prozessorspeicheradressregister SAR vor. Für die D-Bits wird also keine zusätzliche Uebersetzungszcit 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
BC9-76-006
7096^5/0742
Fig. 6. Die beiden Vorgriffsbits werden generiert und in das Segmentregister
eingesetzt, wenn die Blocknummer durch die Prozessorspeichcrsteuerung
in das Segmentregister eingesetzt wird; diese Steuerung, welche die in Fig. 8A gezeigten Operationen ausführt, ist in Fig. 17 gezeigt. Die
Vorgriffsbits zeigen an, ob der Innenspeicher, der Aussenspeicher 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 Uebersetzung benutzt, um die Bestimmung und Auswahl der
erforderlichen Speichcreinheit parallel mit der schaltuiigsmässigen Uebersetzung der logischen Eingangsadresse durchzufuhren.
Die Blocknummer, nicht aber die Vorgriffsbits, können durch ein Programm gelesen werden, dass einen SR-Speicherbefehl benutzt.
Die Vorgriffsbits werden in der in Fig. 9G gezeigten Art codiert. Das
linke Vorgriffsbit wird auf 1 gesetzt, wenn der zugehörige Block im Innenspeicher steht. Wenn das linke Bit auf 0 gesetzt ist, steht der zugehörige
Block entweder im Aussenspeicher oder im Asynchronspeichcr. Der Wert des rechten Vorgriffsbits zeigt an, ob der Aussenspeicher oder
der Asynchronspeicher den Block hält. Wenn das rechte Bit gleich 0 ist, steht der Block in der Asynchronspeichereinheit.
709845/0742
BC9-76-006 -77-
Die Vorgriffsbits werden nur von den Schaltungen benutzt und sind für
den Programmierer oder den Systembenutzer nicht sichtbar. Sie dienen
lediglich dazu, die Spcichcrzugriffc zu beschleunigen, und sind nicht
Teil der Ucbersetzungsopcration.
Die Schaltungen zum Setzen der Vorgriffsbits sind in Fig. 9C gezeigt.
Dazu gehören die Decodierer 901A und 902A, denen beide der höherwcrtige
Teil der zugeordneten Blocknummer zugeführt wird, die in ein Segmentregister bei Ausführung eines Segmentrcgisterbefchls geladen
wird, wie dies im Zusammenhang mit Fig. 8A beschrieben wurde. Das ausgewählte Segmentregister befindet sich in einem der Stapel 0 bis 7
(Fig. 9C). Die Blocknummer wird abgegeben vom Befehl "Segmentregister
laden", welcher die durch Programm zugeteilte Blocknummer von dem Speicherplatz im Hauptspeicher abruft, der durch den Befehl adressiert
wird, "Wonach die Blocknuinmer in das Speiclierdatenregister SDR (Fig. 4) eingesetzt wird. Dann gibt der Prozessor die zugeteilte Blocknummer
vom SDR auf den Prozessordatenbus (Fig. 3C), welcher 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 Segmentrcgisterladeweg ist in
Fig. 9C im einzelnen gezeigt; die Signale auf den SR-Eingangslcitungen
709845/0742 "
BC9-76-006 -78-
ORlG)NAL INSPECTED^
00-07 werden zur Erzeugung der Vorgriffbits benutzt. Die Leitungen 00
bis 06 sind mit dem Eingang des O-Decodierers 902A vcrbimdcn,und die
Leitungen 00 bis 07 sind mit dem Eingang des O-Dccodierers 901Λ verbunden.
Jeder der O-Dccodiercr gibt eine 1 als Vorgriffssigna) 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 901A lauter Nullen in den Bit-Positionen 00 bis 07 feststellt,
überträgt er ein 1-Bit in die linke Vorgriffsbitstelle des adressierten
Segmentregisters in den Stapeln; wenn aber irgendeines der Eingangsbits
0 bis 7 eine 1 ist, dann wird das linke Vorgriffsbit auf 0 gesetzt. Der Decodierer 90lAzeigt an, ob der physische Block, dessen Adresse geladen
wird, im Innenspeicher steht oder nicht; hiervon hängt es ab, ob ein ISZ-Signal erzeugt werden muss.
Wenn der Decodierer 902A 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, dass wenn das linke Vorgriffsbit
anzeigt, das die Innenspeichereinheit nicht die betroffene Speichercinheit ist und wenn Bit 0 bis 6 alle Null sind, dass dann der
Decodierer 902A anzeigt, ob ein 1-Bit in Bit-Position 7 der physischen Adressen die geladen wird, vorliegt oder nicht; dies schliesslich zeigt an,
7098A5/0742
- BC9-76-006 -79-
ORIGINAL INSPECTED
ob der betreffende Block irn Ausscnspeicher sieht, oder im Asynchronspcichcr.
Dei jedem Segmentregister also, das geladen wird, werden die Vorgriffsbits
so gesetzt, dass sie diejenige Speichereinheit angeben, welche den
zugeordneten Block enthalt. Die SR-Ladeoperation erfolgt während eines
SR-Zyklus, der auf Leitung 923 im Konzentrator 922 (Fig. 9A) von der
Grundsteucrung angezeigt wird, die im Einzelnen in Fig. 9D-2 gezeigt ist.
Die Stapeladresse wird in den Konzentrator 922 durch die Leitungen 05
bis 07 des Speicheradressbus 901 (Fig. 9A) eingegeben. Die Segmentrcgisteradressc
wird von den Leitungen 00 bis 04 des Speicheradressbus 901 über das PH-Register zu den Segmentregisterstapeln 0-7 (Fig. 9A)
tibertragen. Diese Adresssignale gelangen auf die Leitungen 00 bis 07 des
Speichcradrcssbus 901 (Siehe Fig. 3C) vom Speichcradressregister SAR
(Fig. 4) über den Prozessoradressbus. 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 Bits 0-7 die SR-Adrcss-Bits auf den Leitungen 00 bis 07 des Bus
901 sind. (Das Allgcmein-Rcgistcr AR wird im Niveau-Stapel 431 (Fig. 4)
709845/0742
x. ■ .
BC9-76-006 -80-
durch eine Niveaustapeladresse ausgewählt, die vom AR-FcId im Befehl
"Segmentregister laden" abgeleitet wurde).
Der Konzentrator 922 gibt dann die Stapeladresse des gewählten Segmentregisters
auf seinen folgenden Ausgangsleitungcn ab: AAS-Bit 2, AAS-Bit 1, und "SR Iloch-Nicdrig- 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 Segmcntregisterstapeln 0-7 zur Angabe
des niederwcrtigen Stapeladrcssbits verbunden sind, und enlsprechend
der wahren und der komplementären Form] Signals auf Leitung
07 des Speichcradressbus 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 Uebersetzungsbctricb«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
709^45/0742
BC9-76-006 -81-
. Vorgriffsbits wird ein separater Konzentrator 931 benutzt, weil er
schneller arbeitet als der weitere Konzentrator 921, der die Blockadress-Bits
für das gleiche Segmentregister auswählt. Am Ausgang des Konzen-
trators 931 wird jeweils eine von drei Ausgangslcitungcn aktiviert,um den
gewählten Speicherzyklus anzugeben, nämlich entweder ISZ , OSZ oder
ASZ. Für den Prozessor werden die ISZ-Signalleitungen 54A vom
Prozessor durch die Speicherprioritätsauswahlschallung 56 zur Innenspeichereinheit
51 (Fig. IC) benutzt. Da die Leitungen 54A auf jeden Fall existieren, ob nun das System einen Uebersetzer 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 Aussenspeicherzyklus und den Asynchronspeicherzyklus
führen zu den Fig. 9E bzw. 9F-1, um die Adressauswahl in den
betreffenden Einheiten zu veranlassen.
Eine speziell vorgesehene Einrichtung ist der Operandenbereichsabgleich
(ODA). Wenn diese Bedingung im Adressschlüsselrcgister ASR gesetzt
ist, ergibt sich ein spezieller Adressicrungszustand, bei dem alle
Operandenabrufe zwangsweise im OPZs-Adrcesbcreich stattfinden,
während der Adressbereich, der durch den OPlS-Adressschlüssel angc-
709B45/07U
BC9-76-006 -82- . ·
ORIGINAL INSPECTED
geben ist, obwohl der Schlüssel im OPlS-Rcgisterabschnitt des Adrcss-Schlüsselregisters
ASR nicht geändert wird.
Der OBA-Zustand des Systems wird herbeigeführt durch den in Fig. 13 A
gezeigten Freigabebefehl, wenn dessen OBA-Bit 13 auf 1 gesetzt ist. Wenn
dieser Befehl ausgeführt wird, bewirkt das gesetzte OBA-Bit,dass der
OBA-Rcgistcrabschnitt im betreffenden ASR entsprechend geladen wird durch Eingabe vom Prozessor-ROS-Decodiercr (Fig. 4). Es wird keiner
der Schlüssel im ASR geändert, wenn der OBA-Zustand aktiviert wird.
Es wird jedoch nicht zu dem Adressbereich zugegriffen, der im OPlS-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, dass der AAS-Ausgang den OP2S-Schlüssel abgibt, jedesmal
wenn bei Ausführung eines Befehls im Prozessor eine Zugriffsanfordcrung
entweder für einen OPl-Operanden oder einen OP2-Operanden vorliegt.
Wenn der OBA-Zustand beendet wird durch Ausführung eines Sperrbefchls,
dessen OBA-Bit 13 auf Null gesetzt ist, wird der Schlüssel wert im OPlS-Registerabschnitt
wieder in Benutzung genommen, und bei jeder OPr-
BC9-76-006 709845/0742
Operandenanforderung ausgegeben.
G. Adressbercichsbcstimmung durch Schillsscleingabc ins ASR
Wenn die OBA-Einrichtung gesperrt ist, haben die drei Adressschlüssel
im Adressschlüsselregister ASR folgende Funktion:
Jeder in das ASR geladene Adressschlüssel definiert einen Adrcssbcrcich,.".
dem zugegriffen werden kann. Jeder Adressbereich 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 Adressbereich enthält bis zu 64 K Bytes. Alle Befehlsabrufc
erfolgen in dem Adressbereich, der durch den ISS definiert ist. Alle Leseoperationen, die einen Datenoperanden 1 betreffen (wie er
im Speicher-Befehl definiert wird^ erfolgen im Adressbereich, der durch
den OPlS definiert ist. (Auf Grund der Konstruktion sind keine Schrciboperationen
für Operanden 1 vorgesehen). In ähnlicher Weise erfolgen alle Schreib-und Leseoperationen,die einen Datenoperand 2 betreffen (wie
beim Entwurf der Bcfehlsstruktur vorgesehen), im Adrcssbcreichi
ι ■
der durch den OP2 S definiert ist.
BC9-76-006 Τ&9845/0742
Wenn z.B. ISS- OPlS= OP2S, erfolgen alle Speicher Zugriffe zu dem
gleichen logischen Adressberci c.h von 64K Bytes Kapazität. Wenn ISS
nicht gleich OPl ist, wenn aber OPlS = OP2S, dann erfolgen die Instruktionsabrufc
im ISS-Adrcssbcreich und die Datenzugriffe erfolgen im OP2-Adressbcreich.
Wenn ISS / OPlS / OP2S, dann erfolgt der Befehlsabruf
im ISS-Adrcssbcreich, jeder Abruf eines Operanden 1 im OPlS - Adressbereich, und jeder Abruf oder jede Abspeicherung eines Operanden 2 im
OP2S-Adressbereich, wobei also die 3 Adressberciche voneinander verschieden
sind. Der Datenfluss für eine Klasse von Instruktionen^bei denen
drei verschiedene Adressbereiche benutzt werden, ist in Fig. ZA dargestellt.
Die Schlüsselwcrte im ASR können nur gesetzt werden, wenn der Prozessor im Ueberwachungsprogrammbctrieb arbeitet, d.h. wenn die
Befehle zum Laden des ASR privilegiert, sind.
Wenn im Prozessor eine Unterbrechung vorkommt, werden in das ASR
zur Vorbereitung Adressschlüssel für Adressbereiche 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
BC9-76-006
wiederum das Laden bestimmter Adressschlüssel erfordert. Zu den Prozessorunterbrechungen gehören: Unterbrechungen zum Ucberwachungsprogrammaufruf,
E/A-Gerätunterbrechungen, Maschincnichler-/Programmiehler-Unterbrechungen,
Programm-Protokoll-Unterbrechungen, Bedienungsfeld-Unterbrechungcn
und Unterbrechungen bei thermischer Uoberlastung.
Diese Prozessor-Unterbrechungen werden manchmal Klassen-Unterbrechungen genannt.
Es wird angenommen, dass alle Unterbrechungs-Routinen im Adressbereich
mit Schlüssel = 0 untergebracht sind. Deshalb muss in den ISS-Abschnitt
eine 0 geladen werden, wenn eine Unterbrechung eintritt. Da die Operandendaten, welche zur Behandlung einer bestimmten Unterbrechung
benötigt werden, in einem anderen Adressbereich untergebracht sein können, kann der zu den speziellen Unterbrechungsdaten gehörende
Adressschlüsscl in den OPIS-Registerabschnitt geladen werden. Ein OPl-
Schlüssel wird eingegeben, wenn eine Klassenunterbrechung erfolgt (d.h.
Eingabe eines Eingangssignals in die Zwangsadressschaltung 402 in Fig. 4), und zwar zur Vorbereitung der Durchführung einer Speicher-Speicher-Uebertragungsope
ration vom unterbrechenden Adressbereich (d.h. OPlS-Bereich) zum OP2S-Adressbercich mit Schlüssel = 0. Wenn eine Klassenunterbrechung
auftritt, wird z.B. ein Nivcaustatusblock NSB in den OP2S-
BC9-76-006 70984-^/07 42
Bereich abgespeichert, wclcherden Schlüssel = O hat (d.h. OP2S = O),
wobei Daten vom OPlS-Bercich abgerufen werden. Der Inhalt des ASR
wird mit einem Defehl zum Abspeichern, des ASR auch in den NSB eingegeben.
Andere Zustände, bei denen alle Schlüsselwcrte im ASR = 0 gesetzt
werden, sind: Systemrückstelluiig und einleitendes Programmladcn ,
während denen die ΟΡΑ-Einrichtung, der Uebersctzer, und die Speicherschutzeinrichtung
alle gesperrt sind.
H, 1 Unterbrcchung mit Ueberwachungsprogramm-Ruf (SVC-Unlcrbrechung)
FiLr die unten besprochenen Operationen bei der SVC-Unterbrechung ist
angenommen, dass die Ueberwachungsprogramme im Adressbercich mit Schlüssel = 0 untergebracht sind, und dass das Benutzer-Programm in
einem anderen Adressbereich, d.h. mit Schlüssel / 0 steht. Es ist weiterhin angenommen, dass ein Austausch von Daten zwischen Benutzer
und Ueberwachungsprogramm erforderlich ist. Die Daten müssen vom Adressbereich des Benutzers in den Adressbereich des Ucberwachungsprogramms
geholt werden und müssen später zum Adressbercich des Benutzers zurückübertragen werden.
BC9-76-006
Fig. 13B zeigt die Ladeoperationen für das ASU bei einer SVC-Unterbrechung.
Es wird angenommen, dass anfänglich im Benutzer—zustand jeder der drei Bcnutzerschlüsscl den Wert 2 hat, und dass das OBA-FcJd
= 0 gesetzt ist. Wenn im Prozessor der Fig. 4 ein Uebcrwachungsprogramm ·
Rufbefehl (SVC-Befehl) ausgeführt wird, bewirkt die Zwangsadressschaltung,
dass eine Folge von ROS-Wörtcrn abgerufen und ausgeführt wird, wodurch der Prozessor in den Ueberwachungszustand gebracht
wird. Es wird auch ein Niveaustatusblock NSB abgespeichert, der Inhalt
von OPZS an den Inhalt von OPlS ausgegeben, sodass der Adressbereich.
der die Daten enthält, die bei der Gcncricrung der Unterbrechung beteiligt waren, adressierbar wird. Die Null-Ausgabcicitung (AG O) vom
Prozessor-ROS-Decodierer wird aktiviert und über den Prozessordatenpfad
in die OP2S- und ISS-Positionen des ASR Werte eingegeben.
Daten werden vom Benutzerbereich in den Ueberwachungsprogrammbcreich
Übertragen^und dann wird der Freigabebefehl (Fig. 13 A) mit einer
1 in BitpositionJ3 ausgeführt, um den OBA- Zustand ,4 , der in Fig. 13B
gezeigt ist, herbeizuführen. Dies bewirkt, dass alle Speicherzugriffe
im Adressbereich mit Schlüssel= 0 erfolgen, während das Ucberwachungsprogramm
im OBA-Zustand ausgeführt wird, wobei die Zugriffsmöglichkeit
zum OPl-Adressbercich nicht verloren wird.
BC9-76-006
Wenn das Ucberwachungsprogramm Information in den OPlS-Bereich
übertragen möchte, gibt der Prozessor einen Sperrbefehl ab, der den-Inhalt
des OBA-Abschnitts im ASR rückstellt; dies bewirkt Rückkehr
zum OPl-Adressbcrcich. Dann wird der Zustand 6 von Fig. 13B herbeigeführt
durch Auswechseln der Felder OPlS und OPZS, damit dem Ucberwachungsprogramm
eine Adressiermöglichkeit zum Abspeichern im OPlS-Bereich gegeben wird. Das Ucbcrwachungsprogramrn kann dann die
Daten vom Uebcrwachungsprogrammbercich 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.
Fig. 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 Uebersicht, wobei die Abschnittsnummern der Uebersicht
und die eingekreisten Nummern an den Datenpfaden in der Fig. 18
einander entsprechen. Die Ausführung des SVC-Befchls im Prozessor geschieht auf folgende Weise:
(1) Am Anfang der Ausführung des SVC-Befchls wird der Inhalt des ASR
709845/0742."
B C9-76-006 -89-
an das Arbeitsbereichregister (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 Uebcrtragung des ASR-Inhaltes in das Register
TEMPA ind Fig. 18; es wird angenommen, dass OPlS, OP2S und ISS auf den Wert 3 gesetzt worden sind.
(2) Ausgabe OP2S und Eingabe OPlS.
(3) OP2S = ISS = 0 setzen. -.■
(4) Der Inhalt des Niveaustatusregisters (NSR) wird im Temporärregister
gespeichert (TEMPB1).
(5) Im Register NSR1 wird das Bit für den Ueberwachungszustand
gesetzt, das Bit für die Summenmaske rückgestellt, und das Protokollbit ebenfalls riickgestcllt.
(6) Der Inhalt des BAR (Befehlsadressregister) wird dann um zwei Einheiten erhöht, sodass jetzt die nächste Speichcrstellc adressiert
■wird, in welchem sich der Anfang der Daten oder ein Zeiger ziu
den Daten befindet.
709845/0742
• BC9-76-006 -90-
INSPECTED
271bO51
(7) Wenn der Prozessor den SVC-Zustand entdeckt, wird der Inhalt
der Speicher st eile 0010 im Adressbereich mit Schlüssel = 0 abgerufen.
Dieser Bereich enthält dcfinitionsgemiiss eine Adresse
(d.h. einen Zeiger) zu einem Niveauspcicherblock (d.h. NSB), welcher sich seinerseits auch im Adressbereich mit Schlüssel -0
befindet.
(8) Der NSB-Zeiger in Stelle 0010 wird in das Speicheradressregister
SAR (Fig. 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-Rcgister 0-7 gespeichert (NSB).
(10) Die SVC-Nummer (welche die betreffende Art von SVC-Befehl
identifiziert) wird aus dem SVC-Befehl im Adressbereich 1
kopiert,in das Register Rl.
(11) Der Inhalt des Speicherplatzes 0012 wird in das BAR übertragen.
(12) Es beginnt jetzt die Ausführung der Ueberwachungsprogramm-
routine, welche an der Speicherstclle mit Adresse 0012 beginnt.
709845/0742
■ u
BC°»76-006 -91- .
OHlüiNAL iiNSPtCTED
2 71 b O 51
Das ist die Routine, welche durch SVC Nummer 2 gerufen wird.
Beim Beginn der SVC-Routine hat das ASR folgenden Inhalt:
OPlS OP2S ISS
OP2S1 O O (Bemerkung: OP2S1 ist der
vorherige Inhalt von OP2S).
Bei den anderen Klassen-Unterbrechungen werden ähnliche Arten von
Operationen durchgeführt um einen bestimmten Ladezustand des ASR zu
erreichen, wie es im Folgenden dargestellt ist:
(1) Protokoll rückstellen, OBA sperren, und Ueberwachungszustände setzen. ·
(2) ISS = OPlS = OP2S --- O setzen.
(3) Die Adresse eines Gerätedatenblocks in Register 1 einsetzen.
(4) Die Unterbrechungsidentifikation (ID), welche vom unterbrechenden
709845/0742
BC9-76-006 -92-
E/A-Gerät empfangen wurde, in Register 7 einsetzen.
Der sich ergebende Inhalt des ASR ist:
OPlS OP2S ISS
OPlS OP2S ISS
(1) Protokoll rückstellen, Summenmaske sperren, OBA sperren, und
Ueberwachungszustände setzen. Den NSB im Adressbereich mit Schlüssel = 0 abspeichern.
(2) ISS = OP2S = 0 setzen.
(3) LKSA im OPlS speichern.
(4) Inhalt des SAR im Register 7 speichern (ausser Protokollbit). .
Es ergibt sich folgender Inhalt des ASR:
Register 408 in Fig. 4 gespeicherte Schlüssel bei Auftretender Unterbrechung).
709845/0742
BC9-76-006 . -93-
H. 4 Unterbrechung vom Bedienungsfeld/ Unterbrechung bei thernu scher Ucbcri astunR
(1) Protokoll rückstellen, Summenmaske sperren, OBA sperren,
und Ucberwachungüzustände setzen.
(2) NSB abspeichern unter Benutzung des Adressschlüssels
(3) ISS = OPlS = OP2S = 0 setzen.
Es ergibt sich folgender Zustand des ASR:
0 0 0
(1) Protokoll rückstellen, Summenmaske sperren, OBA sperren,
und Ueberwachungs zustände setzen. NSB äbspeich'ern im Adrcssbereich mit Schlüssel = 0.
(2) ISS übertragen nach OPlS.
7098?t/0742
ORIGINAL IRSPECTED
(3) OP2S = ISS = O setzen.
Daraus ergibt sich folgender Inhalt des ASR:
OPlS OP2S ISS
ISS1 0 0 (Bemerkung: ISS' entspricht dem zur
Zeit der Unterbrechung vorliegenden ISS).
2. Schaltungen für Speicherschutz ohne Uebersctzer
Die in Fig. 11 gezeigten Speicherschutzschaltungen für iibersctzungsf reie
Adressierung (UFA-Speicherschutzschaltungen) werden benutzt, wenn der
in Fig. 9A und 913 gezeigte Adressverschiebungsübersetzer entweder
nicht freigegeben oder im System nicht installiert ist. Die Erfindung ermöglicht
eine Aufwärtskompatibilität zwischen einem System mit Ucbcrsetzer und Adressschlüsselspeicherschutz einerseits und einem System
ohne Uebersetzer mit Speicherschutz andererseits. Das heisst: Programme
und Daten,die in einem System benutzt werden, welches mit der UFA-Speicherschutzeinrichtung
arbeitet, können ohne Aendcrung in einer An lage benutzt werden, die einen Adressverschiebungsübersetzer hat. Diese
Wechselmöglichkeit zwischen zwei Arten von Speicherschutzschaltungen ist für Systembenutzer sehr wichtig, die mit einem relativ kleinen Speicher-
7Q9P8.45V0
BC9-76-006 -95-
system, das preiswert ist, beginnen wollen, und die ihren Speicher
später für ein grösseres System erweitern wollen.
Wenn der Adrcssvcrschiebungsiibcrsctzer freigegeben ist, und die UFA-Speichcrschutzschaltung
auch freigegeben ist, wird der Adrcssverschicbungsiibersctzcr gesperrt. Der Zustand der UFA-Speicherschutzeinrichtungen
wird gesteuert durch den Freigabe/Spcrrbefchl, der in
Fig. 13A gezeigt ist.
Die UFA-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 UFA-Speichcreinrichtungen wird der Hauptspeicher
in Blöcke von je 2048 Byte Kapazität unterteilt. Für jeden Block des Hauptspeichers wird ein Speicherschliisselregister in einem
Registerstapel 501 (Fig. 11) vorgesehen. Jedes Register ist einem bestimmten Block im Innenspeicher zugeordnet, welcher durch die fünf
höchstwertigen Bits in einer 16 Bit langen physischen Adresse ausgewählt wird, wobei dies die im Programm erscheinende Adresse ist, welche
direkt von einem Programm erzeugt wird, das im System abläuft. Bei
Verwendung der ÜFA-Speicherschutzeinrichtung sind die im Programm
BC9-76-006 -96-
709845/0742
erscheinenden Adressen die physischen Adressen; wenn aber der Uebersetzer
freigegeben wird, ist die im Programm erscheinende Adresse ein Teil der logischen Eingangsadresse. Jedes Register hat mindestens
drei Bitstellcn für einen zugeordneten Speicherschlüssel und ein Nur-Lese-Bit
R; es kann auch zusätzlich ein Validilätsbil V haben (nicht gezeigt). Für die drei Bit langen Spcichcrschlüssel sind die Bit-Positionen
0, 1 und 2 vorgesehen, welche durch eine der üblichen Befehle zum Laden
von Speicherschlüsscln geladen werden können, (wie z.B. im IBM System/
360.
Ein zur UFA-Spcicherschutzoperation gehörender Verglcichsteil entspricht
in etwa der Arbeitsweise der Spcicherschlüsselschutzcinrichtungcn,
die in bekannten Systemen wie z.B. IBM-Sy sterne/3 60 oder IBM-Systeme/
370 vorkommen. Die übrigen, damit zusammenarbeitenden Teile der UFA-Speicherschutzcinrichtungen aber gehören zu der neuen Lösung",
welche in dieser Beschreibung dargestellt ist, ebenso ihre Kombination
mit den besonderen AAS - Auswahlschaltungcn 333 (Fig. 3D).
Für die Verglcichsopcration werden die höchstwertigen Bits 0-4 der
16 Bit langen physischen Adresse benutzt, um dasjenige Register im Stapel auszuwählen, welches domänenspeicher block zugeordnet ist.
BC9-76-006 , -97-
709$45/074·2
Der Speicherschlüsscl im ausgewählten Register wird abgerufen. Der
aktive Adressschlüssel AAS wird dann mit dem aus dem Stapel ausgewählten
Speicherschlüssel in der Vergleichsschaltung 502 (Fig. 11) verglichen. Falls der Verglcicher anzeigt, dass die beiden Schlüssel gleich
sind, so wird der Zugriff zugelassen, vorausgesetzt, dass die ÜFA-Speichcrschutzeiririchtung
freigegeben ist, und dass es sich bei dein 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 OPlS, OP2S
und ISS erreicht werden.
Ein weiteres besonderes Merkmal der UFA-Speichcrschutzcinrichtungen
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önnenden Schlüssel = 7 in jedem Registerabschnitt, des ASR benutzen, um
einen von den Benutzern gemeinsam benutzten Speicherbereich zu definieren.
BC9-76-00O "98-
709845/074.2
Die Schaltung 505 steuert die Zugriffe zu den gemeinsam benutzten Spei c her her eic lien.
Eine besondere Zugriffsstcuerung für E/A-Operationen bei Benutzung
der UFA-Speicherschutzeinrichtungen ist durch die Schaltungen 504 und 505 gegeben, welche ermöglichen, dass eine E/A-Cycle-Steal- Zugriffsanforderung sowohl zu dem Speicherbereich, der für den betreffenden
Benutzer in seinem ASR definiert ist, als auch zu dem gemeinsamen Speicherbereich mit Schlüssel = 7 gemacht werden kann, wobei kein
E/A-Cycle-Steale-Zugriff verhindert wird durch das Nur-Lese-Bit im
verwendeten Speicherschlüsselregister. D.h: also, dass 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 Ueberwachungsprogrammzustand ist, d.h. wenn
Bit 8 im NSR (Fig. 4) gesetzt ist, werden die Speicherschlüsselschutzschaltungen
umgangen und alle Zugriffe zu jedem boliebigen Block im Hauptspeicher erlaubt.
Zusammenfassend kann man sagen, dass die Adressbereichsauswahlsteuerung,
welche durch das Adressschlüsselregister ASR gegeben ist,
BC9-76-006 -99- .·
709.845/0742.
immer benutzt wird, sowohl bei Freigabe der UFA-Speicherschutzeinrichtung
als auch bei Benutzung einer zusätzlich vorgesehenen Ucberselzcr-Einrichtung.
Der aktive AdrcssschlüsselAAS ist entweder ein CS-Schlüssel
oder ein Schlüssel, der aus dem ASR ausgewählt wurde bei
Ausführung eines Prozessorbcfehls, in Abhängigkeit davon, welche Art
Information durch den Zugriff abgerufen wird (Art von Operand bzw. Befehl).
Wenn die UFA-Speicherschutzeinrichtung freigegeben ist, muss mindcstc3is
eine der folgenden Bedingungen erfüllt sein, damit ein versuchter Speicherzugriff erlaubt wird:
(1) Die Anlage befindet sich im Ueberwachungsprogrammzustand.
(2) Der Speicherschlüssel des adressierten Blocks ist 7. Bei einem
Versuch zum Einschreiben im Speicher muss das Nur-Lese-Bit = sein . . ,
(3) Der Spcicherschliisscl des adressierten Blocks muss dem aktiven
Adressschliissel AAS gleich sein. Wenn eine Spcichcrschreib-Operation versucht wird, muss das Nur-Lesc-Bit = 0 sein. ·
BC9-76-006 ' -100-
709845/074-2
Wenn keine der obigen Bedingungen (1), (2) oder (3) erfüllt ist, gibt der
Inverter 507 (Fig. 11) ein Speicherzugriff sperr signal aus, durch welches
eine 'Programmfehlcr-Unterbrcchung (PCK) hervorgerufen wird, welche
das entsprechende Bit im Prozessor-Zustandswortregister (PSW-Register)
setzt. ■
Im Ueberwachungsprogramm- Zustand ist also freier Zugriff zu sämtlichen
Teilen des Hauptspeichers gegeben. Ein Zugriff zu einem Speicherbereich, der einen Speicherschutzschlüsscl 7 hat, ist erlaubt unabhängig vom Wert
des aktiven Adressschliissels AAS oder der Werte im Adressschlüsselregister
ASR, wenn das System nicht im Ueberwachungsprogramm-Zustand ist, vorausgesetzt, dass die durch den Wert des Nur-Lese-Bit für
den adressierten Block gegebene: Bedingung nicht verletzt wird.
Daraus ergibt sich also, dass innerhalb eines einzelnen, durch einen
AdresSS'chlüssel definierten adressierbaren Speicherbereichs einige
Blöcke im Nur-Lese-Zustand gehalten werden könndn, während zu anderen
Blöcken ein Schreibzugriff möglich ist; dies ist abhängig von dem Binärwert des Nur-Lese-Bits der betreffenden Blöcke im adressierbaren
Speicherbereich. Das Nur-Lese-Bit kann durch das Ueberwachungsprogramm
gesetzt werden, welches die Stapelregister lädt.
BC9-76-006 7 o g-fcO? $/0 7 4 2
Beim einleitenden Programm-Laden (IPL) sind sowohl die UFA-Speichcrschutzeinrichtungen
als auch die Uebersetzcr-Einrichlungcn beide gesperrt,
sodass 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 Speicherschutzcinrichtungcn freigegeben werden, und bei Vorkommen
von Adressschlüsseln im ASR;die auf 0 eingestellt sind, geht die Anlage
in den Ueberwachungsprogramm-Zustand über.
Die UFA-Spcicherschutzcinrichtung und die Uebersetzercinrichtung be
nutzen zwar gemeinsam die Einrichtung des aktiven Adressschlüssels AAS, sie haben aber auch eine Anzahl von Merkmalen, die verschieden
sind, wie z.B.:
(1) Bei der UFA-Speicherschutzeinrichtung ist im Ueberwachungsprogramm-Zustand
der Zugriff zu sämtlichen Teilen des Hauptspeichers gestattet unabhängig vom Speicherschlüss'el. In einem
System mit Uebersetzer kann im Ueberwachungsprogramm-Zustand
nur zu dem Speicherbereich zugegriffen werden, der durch den aktiven Adressschlüssel AAS definiert ist.
BC9-76-006 v-102-
709.845/0742
AOX
2 71 β Ο 51
(2) Die gesamte Speicherkapazität, die in einem UFA-Spcichcrschulzsystem
durch Adres schlüssel definiert ist, beträgt höchstens 64K Bytes. Der gesamte statische Speicher, der durch die Adressschlüssel
in einem Uebcrsetzersystern definierbar ist, kann zu jeder
Zeit eine Kapazität von bis zu 512K Bytes haben.
(3) In einem Uebersetzersystcm beginnt der durch die Adressschlüssel
definierte Adressbereich bei der logischen Adresse 0. In einem UFA-SpeicherSchutzsystem
beginnt der durch die Adressschlüsscl definierte Adressbereicli bei verschiedenen möglichen Grenzen von Blöcken
von je 2K Byte Kapazität, doch ist durch" den Adressschlüssel immer eine Zugriffskontrolle je nach Art gegeben.
(4) Die Befehle, welche benutzt worden, um die Spcicherschlüsselregister
im Prozessor zu laden oder um aus diesen abzuspeichern, sind verschieden von den Befehlen, die benutzt werden, um in einem
System mit Uebersetzcr die Segmentregister üu laden oder aus
ihnen abzuspeichern.
(5) Für ein E/A-Gerät in einem System, bei dem ein Ucbersetzer freigegeben
ist, kann keine Spcicherschutz-Fchlcropcration vorkommen,
7 09845/0742
BC9-76-006 . -.103.- ·
ein E/A-Gerät in einem System mit UFA-Spcicherschutzcinrichtung aber kann Speicherschutz-Fchleroperationcn annehmen für den Zugriff
zu einer Adresse, welche nicht zu dem durch einen CS-Schlüssel oder
durch einen Schlüssel=7 definierten Bereich gehört.
(6) Wegen der bei einem System mit Uebersctzcr gegebenen Flexibilität
für die Adressumsetzungen sind bei Vorliegen der UFA-Speicherschutz-Einrichtungcn
bestimmte Umsetzungen von logischen in physische Adressberciche schwierig auszuführen, z.B. Benutzung eines gemein-.samen
Bereichs für nur zwei Adressschlüssel. '
3. Alternative Speicherschutz-Betriebsart (ASB) bei Systemen mit Adrcssübcrsctzunß
.
Fig. IA 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
Uebersetzungsbetriebsart, bei der ein mehrfach unterteiltes Adress-Schlüsselregister
ASR (Fig. ID) benutzt wird. Bei dieser alternativen Betriebsart gibt es nicht die vom Typ des Speicherzugriffs abhängige
Adressierbarkcit durch den Prozessor, die mit der Anordnung gemäss Fig. ID
erreicht werden kann; sie ermöglicht jedoch separate Adrcssierbcrcichc
für E/A-Spcicherzugriffe. Die alternative Betriebsart ermöglicht dem Prozessor eine unterschiedliche, von einem aktiven Adrcssschlüsscl abhängige
709845/0742 BC9-76-006 -I04- "
ι mit unter^-
Adrcssierbarkeit für seine verschiedenen Programme und Daten
schiedlichem Benutzeradrcssschlüssel; sie erlaubt aber auch eine interaktive
Beziehung des Benutzers zum Ueberwachungsprogramm, soweit erforderlich,
ohne dass dabei der Inhalt eines Benutzerrchliisselregis ters (BSR)
460 verändert werden müsste.
In der Anordnung gcmass Fig. 14 kann nur ein einzelner Adressschlüssel in
das BSR-Registcr 460 des Prozessors geladen werden, so dass sämtliche
Speicherzugriffe zur Ausführung eines Benutzerprogramnis und zum entsprechenden
Datenzugriff innerhalb eines einzelnen Adressbereichs erfolgen müssen, der durch den Benutzeradressschlüssel im BSR 460 definiert ist;
dieser Benutzeradressschlü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 Ueberwachungszustand 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 Ueberwachungsprogramm (welches im Adressbereich mit Schlüssel ·* 0 enthalten ist) mit dem Adressbereich
des laufenden Benutzcradrcssschlüsscls (der im BSR 460 enthalten ist)
709845/0742
BC9-76-006
arbeiten kann· D.h., dass das Ueberwachungsprogramm aus dem Bereich mit
Schlüssel » 0 heraus arbeitet, und dabei Operanden aus dem durch den
Benutzerschlüssel bezeichneten Adressbereich benutzt. Das Ueberwachungs- prograram kann aber nicht zu anderen Adressbercichen im Hauptspeicher zugreifen,
die zu anderen Adressschlüsseln gehören. Diese Arbeitsweise des Ueberwachungs-
prograromes mit eingeschränkter Adressierbarkeit ermöglicht zwar den Pro
grammen zur Unterbrechungsbehandlung, zu einem gegenwärtig unterbrochenen
Benutzerprogranim und dessen Daten zuzugreifen, ohne dass dabei die Gefahr
besteht, dass das Ueberwachungsprogramm bei einer eigenen Störung die
Integrität nicht-beteiligter Bereiche des Hauptspeichers stört. Im übrigen
kann ein Benutzerprogramm bei seiner Ausführung niemals zum Speicherbereich
des Uebcrwachungsprogramms zugreifen, weil jedes Benutzerprogranim nur zu dem durch den eigenen Benutzeradressschlüssel definierten Speicherbereich Zugriff hat.
Eine zweite Art von Prozessoroperation tritt auf, wenn das Ueberwachungs-
programmbit S Eins und das ASB-Bit A gleich KuIl ist. Hierbei kann das
Ueberwachungsprogramm aus dem Bereich mit Schlüssel =,' 0 heraus arbeiten,
ohne den laufenden Benutzcrschlüssel im BSR 460 zu stören. In diesem Fall
er.folgen alle Befehls- und Operandenzugriffe nur im Bereich mit Schlüssel ■ 0, und das Ueberwachungsprogramm darf zu keinem Benutzerbereich zugreifen.
D.h., dass in diesem Zustand das Uebcwachungsprogramm einen Zugriff weder
su dem Benutzerbereich hat, der durch den gegenwärtigen Inhalt des BSR
identifiziert ist, noch zu sonst einem durch irgendeinen andern Schlüssel
definierten Bereich. Durch diese Art von Systembetrieb wird die Notwendig
keit vermieden, den Schlüssel = 0 jeweils in das BSR 460 einzugeben.
709845/0742
BC9-76-006 -106-
Eine dritte Art von Prozessoroperation ist vorgesehen, wenn das Ueberwachungsprograninibit
S gleich Null ist, wobei der Wert des ASB-Bit Λ ohne
Belang ist. In diesem Fall erfolgen alle Befehlsabrufe und Operandenzugriffe
nur in dem durch den Benutzerschlüssel definierten Bereich; zum Hauptspeicherbereich
mit dem Schlüssel = 0 sind dann keinerlei Zugriffe erlaubt.
Die ASB-Betriebsart wird im Prozessor durch die in Fig. 14 gezeigte
Schaltungsanordnung gesteuert. UND-Glied 462 wird freigegeben, wenn im NSR 470 sowohl S-Bit als auch Α-Bit gesetzt sind. Damit wird die oben
beschriebene erste Art von Prozessoroperation eingeleitet. Daraufhin wird bei jeder Befehlsabruf-Anforderung vom Prozessor (Fig. 4) ein Signal über
UND-Glied 462, ODER-Glied 466 und Inverter 467 an UND-Glied 461 gegeben, um dieses während dem Befehlsabrufsvorgang zu sperren. Während das UND-Glied
461 gesperrt ist, gibt es ein Nullsignal, welches den Schlüssel = 0 dar
stellt, an den AAS-Bus. Ein Befehlsabruf ist also nur im Speicherbereich des
Ueberwachungsprogramms 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,
6O dass Inverter 467 ein Aktivsignal an das UND-Glied 461 abgibt, um den
Benutzeradressschlüssel aus dem BSR 460 auf den AAS-Bus zu geben, so dass ein. aus dem Ueberwachungsprogramm abgerufener Befehl zu Operanden zugreifen
kann, die in dem Bereich stehen, der zu dem im BSR 460 stehenden Schlüssel
gehört.
BC9-76-006 -A07-
709845/0742
Wenn im NSR das ASB-BiL Λ rückgcsleilL ist (gleich Null), während clK^ '
Ueberwachungsprograinmbit S gesetzt ist (gleich Eins), bleibt das UND-Glied
464 ständig freigegeben und sperrt über Inverter 467 das UND-Glied 461, so
dass 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
Ueberwachungsprogrnmm für alle Befehlsabrufe und Operandenzugriffe auf den
Bereich des Schlüssels = 0 eingeschränkt ist, unabhängig vom Wert des Benutzerschliissels 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 dass Inverter 467 ständig ein Freigabcsignal an UND-Glied 461 liefert, welches infolgedessen ohne Unterbrechung
den Benutzeradressschlü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üsscl im BSR 460 gegeben ist. Das Ueberwachungsprogramm kann nur arbeiten, wenn
Bit S gesetzt (gleich Eins) ist.
BC9-76-006 -108-
40Ä
Leerseite
Claims (7)
- PATENTANSPRÜCHE 'M J Datenverarbeitungsanlage mit einem oder mehreren Prozessoren und mit einer Speicheranordnung, bei der zum Speicherzugriff Schlüssel verwendet werden, dadurch gekennzeichnet,dass bei jedem Prozessor Zugriffssteuerschaltungen (Fig. IA-1; 332, Fig. 3; 405, Fig. 4) vorgesehen sind zur Abgabe verschiedener Zugriffsauswahlsignale auf besonderen Leitungen (22 ... 25, Fig. 1A-1, Fig. 3C) für verschiedene Arten von Speicherzugriff, zu denen mindestens Befehlsabruf und Operandenzugriff gehören;dass eine Schlüsselregisteranordnung (Fig. 1A-1; 420, Fig. 4) mit mehreren parallelen Schlüsselregisterabschnitten (31 ... 35) 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 dass Schlüsselauswahleinrichtungen (20, Fig. IA-I; 333, Fig. 3C Fig. 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 (Fig. 9A) verbunden sind, und auf denen jeweils ein Schlüssel aus einem der Schlüsselregisterabschnitte gemäss dem vorliegenden Zugriffsauswahlsignal abgegeben wird.709845/0742BC 9-76-006ORIGINAL INSPECTED
- 2. Datenverarbeitungsanlage nach Patentanspruch 1, dadurchgekennzeichnet, dass von den Zugriffssteuerschaltungen (Fig. IA-I)Zugriffs,auswahlsignale sowohl für Befehlsabruf als auch für zwei unterschiedliche Arten von Operandenzugriffen abgegeben werden, wobei die eine Zugriffsart nur Operandenabrufe einschliesst und die andere Zugriffsart sowohl Operandenabspeicherungen als auch Operandenabrufe einschliesst, und dass in der Schlüsselregisteranordnung für mindestens jede dieser beiden Operandenzugriffsarten und für Befehlsabrufe je ein Schlüsselregistcrabschnitt bzw. Schlüsselregister vorgesehen ist.BC9-76-006 - 2 -709845/0742
- 3. Datenverarbeitungsanlage nach Patentanspruch 1, dadurch gekennzeichnet, dass für mindestens einen Eingabe/Ausgabekanal eine E/A- Steuerschaltung (55, Fig. 33) zur Abgabe eines Zugriffsanfordcrungssignals für einen Eingabe/Ausgabe Speicherzugriff vorgesehen ist, dass zu der Schlüsselregisteranordnung mindestens ein weiterer Schlüsselregisterabschnitt (31, Fig. IA-I) gehört, welcher den E/A-Speicherzugriffen zugeordnet ist, und dass die Schlüsselauswahlcinrichtungen zusätzliche Dateneingänge aufweisen, die mit dem Schlüssclregisterabschnitt für E/A-Speicherzugriffe verbunden sind, sowie einen Steuereingang für ein Zugriffsauswahlsignal (Zl, Fig. IA-I) für E/A-Speicherzugriff, welches vom entsprechenden Zugriffsanforderungssignal abgeleitet ist.BC9-76-006 - 3 -709845/0742
- 4. Datenverarbeitungsanlage nach Patentanspruch 1, dadurchgekennzeichnet, dass Zugriffsprioritätsschaltungen (332, Fig. 3C) vorgesehen sind , denen separate Zugriffsanforderungssignalc (OP2-Abr.-Anf. , Bef. -Abr. -Anf. , 405, Fig. 4) für die verschiedenen Arten von Speicherzugriffen zuführ bar sind, und dass diese Zugriffsprioritätsschaltungen jeweils ein Zugriffsauswahlsignal OP2-Zugriffszyklus, Bef. Abrufzyklus, Fig. 3C) abgeben,, wobei bei gleichzeitig vorliegenden Speicher Zugriffsanforderungen für mehrere Zugriffsarten jeweils eine nach vorgegebenem, Schema Priorität erhält.BC9-76-006 - 4 -709845/0742
- 5. Datenverarbeitungsanlage nach Patentanspruch 3 und 4, da durch gekennzeichnet, dass die Zugriffsanforderungssignale von Eingabe / Ausgabekanälen jeweils eine Cycle-Steal-Speicherzugriffsoperation betreffen, und dass die Zugriffsprioritätsschaltungen (332, Fig. 3C) einer Cycle-Steal-Zugriffsanforderung Priorität vor allen Anforderungen für andere Arten von Speicherzugriffen geben, und ein entsprechendes Zugriffsauswahlsignal ( CS-Zyklus, Fig. 3C) an einem Ausgang abgeben.BC9-76-006 - 5 -709845/0742
- 6. Datenverarbeitungsanlage nach Patentanspruch 3 oder 4,dadurch gekennzeichnet, dass mehrere Eingabe / Ausgabekanäle vorgesehen sind, und dass 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, Fig. 3C) zuzuführen.BC9-76-006 - 6 -709845/074227T6051
- 7. Datenverarbeitungsanlage nach Patentanspruch 1, dadurch gekennzeichnet, dass die Ausgänge der Schlüsselauswahleinrichtungen (20, Fig. IA-I; 333, Fig. 3C) mit einem in den Speicherzugriffseinrichtungen vorgesehenen Adressübersetzer (Fig. 9A/9B) verbunden sind, um den jeweils ausgewählten Adressschlüssel an Selektionseinrichtungcn im Adressübersetzer zu übertragen.BC9-76-006 - 7 -709845/07U
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 true DE2716051A1 (de) | 1977-11-10 |
DE2716051C2 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) |
Families Citing this family (135)
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 |
US4037207A (en) * | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | System for controlling address keys under interrupt conditions |
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 |
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 |
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 |
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 |
US7356817B1 (en) | 2000-03-31 | 2008-04-08 | Intel Corporation | Real-time scheduling of virtual machines |
US7013484B1 (en) | 2000-03-31 | 2006-03-14 | Intel Corporation | Managing a secure environment using a chipset in isolated execution mode |
US7194634B2 (en) | 2000-03-31 | 2007-03-20 | Intel Corporation | Attestation key memory device and bus |
US7013481B1 (en) | 2000-03-31 | 2006-03-14 | Intel Corporation | Attestation key memory device and bus |
US6507904B1 (en) | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
US6957332B1 (en) * | 2000-03-31 | 2005-10-18 | Intel Corporation | Managing a secure platform using a hierarchical executive architecture in isolated execution mode |
US6769058B1 (en) | 2000-03-31 | 2004-07-27 | Intel Corporation | Resetting a processor in an isolated execution environment |
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 |
US7082615B1 (en) | 2000-03-31 | 2006-07-25 | Intel Corporation | Protecting software environment in isolated execution |
US7073071B1 (en) | 2000-03-31 | 2006-07-04 | Intel Corporation | Platform and method for generating and utilizing a protected audit log |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6934817B2 (en) | 2000-03-31 | 2005-08-23 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US7111176B1 (en) | 2000-03-31 | 2006-09-19 | Intel Corporation | Generating isolated bus cycles for isolated execution |
US6990579B1 (en) | 2000-03-31 | 2006-01-24 | Intel Corporation | Platform and method for remote attestation of a platform |
US7089418B1 (en) | 2000-03-31 | 2006-08-08 | Intel Corporation | Managing accesses in a processor for isolated execution |
US6678825B1 (en) | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US6760441B1 (en) | 2000-03-31 | 2004-07-06 | Intel Corporation | Generating a key hieararchy for use in an isolated execution environment |
US6795905B1 (en) * | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
US6996710B1 (en) | 2000-03-31 | 2006-02-07 | Intel Corporation | Platform and method for issuing and certifying a hardware-protected attestation key |
US6976162B1 (en) | 2000-06-28 | 2005-12-13 | Intel Corporation | Platform and method for establishing provable identities while maintaining privacy |
US7793111B1 (en) * | 2000-09-28 | 2010-09-07 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US7389427B1 (en) | 2000-09-28 | 2008-06-17 | Intel Corporation | Mechanism to secure computer output from software attack using 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 |
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 |
US7225441B2 (en) | 2000-12-27 | 2007-05-29 | Intel Corporation | Mechanism for providing power management through virtualization |
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 |
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 |
US6809734B2 (en) | 2001-03-22 | 2004-10-26 | Sony Computer Entertainment Inc. | Resource dedication system and method for a 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 |
US7093104B2 (en) * | 2001-03-22 | 2006-08-15 | Sony Computer Entertainment Inc. | Processing modules for computer architecture for broadband networks |
US7231500B2 (en) * | 2001-03-22 | 2007-06-12 | Sony Computer Entertainment Inc. | External data interface in 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 |
US7096497B2 (en) * | 2001-03-30 | 2006-08-22 | Intel Corporation | File checking using remote signing authority via a network |
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 |
US20020144121A1 (en) * | 2001-03-30 | 2002-10-03 | Ellison Carl M. | Checking file integrity using signature generated in isolated execution |
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 |
US20030126453A1 (en) * | 2001-12-31 | 2003-07-03 | Glew Andrew F. | Processor supporting execution of an authenticated code instruction |
US7308576B2 (en) * | 2001-12-31 | 2007-12-11 | Intel Corporation | Authenticated code module |
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 |
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 |
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
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 |
US20030196100A1 (en) * | 2002-04-15 | 2003-10-16 | Grawrock David W. | Protection against memory attacks following reset |
US7058807B2 (en) * | 2002-04-15 | 2006-06-06 | Intel Corporation | Validation of inclusion of a platform within a data center |
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 |
US7318235B2 (en) * | 2002-12-16 | 2008-01-08 | Intel Corporation | Attestation using both fixed token and portable token |
US20040117318A1 (en) * | 2002-12-16 | 2004-06-17 | Grawrock David W. | Portable token controlling trusted environment launch |
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 |
US7366305B2 (en) * | 2003-09-30 | 2008-04-29 | Intel Corporation | Platform and method for establishing trust without revealing identity |
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 |
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 | 北京奇虎科技有限公司 | 数据库访问请求的分析方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1499203C (de) * | 1972-11-02 | International Business Machines Corp., Armonk, N.Y. (V.St.A.) | Schaltungsanordnung zum Speicherschutz bei Datenverarbeitungsanlagen mit Simultanbetrieb | |
US3828327A (en) * | 1973-04-30 | 1974-08-06 | Ibm | Simplified storage protection and address translation under system mode control in a data processing system |
US3854126A (en) * | 1972-10-10 | 1974-12-10 | Digital Equipment Corp | Circuit for converting virtual addresses into physical addresses |
Family Cites Families (6)
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 |
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 AU AU24746/77A patent/AU508001B2/en not_active Expired
- 1977-05-02 BR BR7702822A patent/BR7702822A/pt unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1499203C (de) * | 1972-11-02 | International Business Machines Corp., Armonk, N.Y. (V.St.A.) | Schaltungsanordnung zum Speicherschutz bei Datenverarbeitungsanlagen mit Simultanbetrieb | |
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 |
Also Published As
Publication number | Publication date |
---|---|
ATA253877A (de) | 1983-11-15 |
CA1092716A (en) | 1980-12-30 |
FR2349918B1 (de) | 1981-06-19 |
GB1557122A (en) | 1979-12-05 |
JPS5738999B2 (de) | 1982-08-18 |
SE7704963L (sv) | 1977-10-31 |
BR7702822A (pt) | 1978-04-04 |
DE2716051C2 (de) | 1982-06-09 |
AU2474677A (en) | 1978-11-09 |
SE417551B (sv) | 1981-03-23 |
FR2349918A1 (fr) | 1977-11-25 |
JPS52132738A (en) | 1977-11-07 |
AT375204B (de) | 1984-07-10 |
US4037214A (en) | 1977-07-19 |
AU508001B2 (en) | 1980-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2716051A1 (de) | Datenverarbeitungsanlage, bei der zum speicherzugriff schluessel verwendet werden | |
CH619309A5 (de) | ||
DE2350884C2 (de) | Adreßumsetzungseinheit | |
CH615521A5 (de) | ||
DE60010907T2 (de) | Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter | |
DE2350225C2 (de) | ||
DE1774296C2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE2807476C2 (de) | Speichereinrichtung mit mehreren virtuellen Adreßräumen | |
DE2354521C2 (de) | Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln | |
DE602005002691T2 (de) | Verfahren zur Programmierung einer System auf Chip DMA Steuerung, sowie ein System auf Chip dafür. | |
DE2414311C2 (de) | Speicherschutzeinrichtung | |
DE2953861C2 (de) | ||
DE2902465A1 (de) | Datenverarbeitungsanordnung | |
DE2916658A1 (de) | Selbstprogrammierbarer mikroprozessor | |
DE2501853A1 (de) | Prozessor fuer ein datenverarbeitungssystem | |
DE2423194A1 (de) | Vorrichtung zur adressengewinnung und -berechnung in einem segmentierten speicher | |
DE2430127A1 (de) | Einrichtung zur steuerung des speicherzugriffs konkurrierender benutzer | |
DE2612139A1 (de) | Ein/ausgang-steuerungssystem | |
DE68929080T2 (de) | Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor | |
DE2441754A1 (de) | Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors | |
DE112019002336T5 (de) | Speicherpoolzuordnung für ein mehrkern-system | |
DE3855524T2 (de) | Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator | |
DE3911721C2 (de) | ||
DE2144051A1 (de) | Programm Unterbrechungsanordnung für eine Datenverarbeitungsanlage | |
DE2458286A1 (de) | Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen |
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 |