CH619309A5 - - Google Patents

Download PDF

Info

Publication number
CH619309A5
CH619309A5 CH527577A CH527577A CH619309A5 CH 619309 A5 CH619309 A5 CH 619309A5 CH 527577 A CH527577 A CH 527577A CH 527577 A CH527577 A CH 527577A CH 619309 A5 CH619309 A5 CH 619309A5
Authority
CH
Switzerland
Prior art keywords
memory
address
key
access
register
Prior art date
Application number
CH527577A
Other languages
English (en)
Inventor
Richard Eugene Birney
Michael Ian Davis
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of CH619309A5 publication Critical patent/CH619309A5/de

Links

Classifications

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

Description

Die vorliegende Erfindung betrifft eine Steuer- und Adressieranordnung für einen Hauptspeicher in einer Datenverarbeitungsanlage.
Der Schutz von ausgewählten Speicherbereichen gegen unerwünschtes Schreiben oder Lesen mit Hilfe von Schlüsseln ist an sich bekannt, so z.B. aus dem USA-Patent 3 825 903 oder aus dem Aufsatz «Dynamic vérification of operating system décisions von R.S.Fabry», Comm. of the ACM, Vol. 16 (1973) Seiten 659-668. Dabei werden jedem Programm Schlüssel zugeteilt, welche den oder die zum Zugriff erlaubten Speicherbereiche kennzeichnen. Hierbei war aber bisher nur eine relativ einfache und direkte Zuordnung möglich.
Der Erfindung liegt die Aufgabe zugrunde, eine Speicheran-steuerungsanordnung zu schaffen, bei der ein sehr flexibler,
nach Zugriffs- bzw. Informationsarten differenzierter Schutz von Speicherbereichen möglich ist.
Die zu schaffende Anordnung soll verwendbar sein bei direkter Benutzung von Adressen ohne Übersetzung; es sollen aber auch Einrichtungen vorgesehen sein, um sie mit einem System mit schlüsselgesteuerter Adressübersetzung kombinieren zu können.
Weiterhin soll in einfacher Weise ein Zugriff aller Benutzungsprogramme zu bestimmten, durch Allgemeinschlüssel gekennzeichneten Bereichen des Speichers möglich sein, während gleichzeitig eine individuelle Benutzerberechtigung für die einzelnen Programme für durch andere Schlüssel individuell zugeteilte Speicherbereiche möglich sein soll.
Ein Zugriff des Ueberwachungsprogrammes soll überdies zu allen Bereichen möglich sein. Ausserdem soll eine E/A-Zugriffsanforderung, wenn sonst die Schlüsselbedingung erfüllt ist, durch die vorgesehenen Schaltungen Vorrang erhalten.
Der Gegenstand der Erfindung ist in den Ansprüchen dargestellt.
Durch die kombinierte Verwendung von Speicherschutzschlüsseln einerseits und Zugriffsschlüsseln, welche den verschiedenen Zugriffs- oder Informationsarten zugeordnet sind, andererseits, lässt sich der Schutz variabler Speicherbereiche sehr flexibel den Bedürfnissen anpassen. Auch ist die vorgeschlagene Anordnung kompatibel für Systeme sowohl ohne als auch mit Ubersetzung von Adressen zur dynamischen Speicherbenutzung.
Ein Ausführungsbeispiel der Erfindung wird im folgenden anhand von Zeichnungen beschrieben. Es zeigen;
Fig.l A-l allgemein das Prinzip der Adressschlüsselauswahl aufgrund von Speicherzugriffs-Steuersignalen, welche die Art des Zugriffs identifizieren;
Fig. 1A-2 allgemein das Prinzip der Adressübersetzung für den Speicherzugriff, wobei die logische Eingangsadresse aus einem speziell generierten Adressschlüssel und der im Programm erscheinenden Adresse besteht;
Fig. 1B eine Ubersicht der verschiedenen möglichen Speicherzugriffsarten;
Fig. IC in Blockform eine Übersichtsdarstellung einer Datenverarbeitungsanlage mit erweiterbarem Hauptspeicher, die als Ausführungsbeispiel beschrieben wird;
619 309
Fig. 1D eine spezielle Ausführungsform der in Fig. 1A gezeigten Anordnungen;
Fig. 2A eine Übersichtsdarstellung der bei den Prozessoroperationen und E/A-Operationen vorkommenden Speicherzugriffe, sowie der verschiedenen Adressbereiche; ?
Fig. 2B eine Übersicht 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 des Befehls abgibt ; i »
Fig. 3B die relevanten Teile eines E/A-Kanals, der eine Mehrzahl von Unterkanälen mit einer Speicherprioritätsaus-wahlschaltung verbindet;
Fig. 3C in Blockform eine Speicherprioritätsauswahlschal-tung mit einer Kanalauswahlschaltung, durch welche E/A- j s Kanäle und Prozessor über den Hauptspeicherbus mit Speicher und Übersetzer verbunden sind, und die je einen ausgewählten Adressschlüssel sowie eine Adresse für einen Speicherzugriff abgeben;
Fig. 3D Einzelheiten einer Aktivadresschlüssel-Auswahl- 20 Schaltung, bei der auch ein Operandenbereichsabgleich erreicht werden kann;
Fig. 4 Einzelheiten eines Prozessors, welche für die Speicherzugriffssteuerung mit Adressschlüsseln relevant sind;
Fig. 5 das Aufteilungsformat des Adresschlüsselregisters in 25 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üsselregister; .1»
Fig. 8 A schematisch die Vorgänge bei Ausführung eines Befehls zum Laden bzw. Abspeichern eines Segmentregisters;
Fig. 8B schematisch die Vorgänge bei Ausführung eines Befehls zum Laden bzw. Abspeichern des Adressschlüsselregisters aus einem bzw. in ein Allgemeinregister; 35
Fig. 8C schematisch die Vorgänge bei Ausführung eines Befehls zum Laden bzw. Abspeichern des Adressschlüsselregisters aus einem bzw. in ein Allgemeinregister;
Fig. 9A und 9B ein Blockschaltbild einer bevorzugten Ausführungsform des Übersetzers gemäss Fig. 1C, der eine 19 Bit 40 lange logische Maschinenadresse in eine 24 Bit lange physische Adresse für den Speicherzugriff umwandelt;
Fig. 9C, 9D-1,9D-2,9E, 9F-1 und 9F—2 Einzelheiten des in Fig. 9 A /9B in Blockform gezeigten Übersetzers;
Fig. 9G die Arbeitsweise der in Fig. 9C gezeigten Vorgriffs- 45 Schaltung zur jeweiligen Auswahl des Innenspeichers (Basisspeicher), Aussenspeichers (Zusatzspeicher) oder Asynchronspeichers, sowie die Interpretation der 24 Bit langen physischen Adresse durch die gewählte Speichereinheit beim Zugriff;
Fig. 10 eine Schaltungsanordnung im Prozessor zur Auswahl50 zwischen den Betriebsarten «Speicherschutz ohne Übersetzung» und «Speicherschutz mit Übersetzung»;
Fig. 11 Speicherschutzsteuerschaltungen zur Verwendung bei übersetzungsfreier Betriebsart;
55
Fig. 12 das Format eines Speicher-Speicher-Befehls;
Fig. 13 A relevante Teile des Formats eines Freigabe-/Sperr-befehls zur Festlegung der Betriebsarten mit spezieller Adress-bereichsauswahl (z.B. Übersetzungsfreie Adressierung mit Speicherschutz, Speicherschutz mit Übersetzung, Operanden- 60 bereichsabgleich) ;
Fig. 13 B aufeinanderfolgende Zustände eines Adressschlüsselregisters, wenn bei einer Unterbrechung Operandenbereichsabgleich erfolgt;
Fig. 14 eine Schaltungsanordnung für eine alternative Spei- f,5 cherschutzbetriebsart mit Übersetzung, 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 Übersetzeranordnung mit mehreren Registerstapeln dienen kann;
Fig. 16 Zugriff zu parallelen Grundspeichermoduln mittels mehrerer aktiver Adressschlüssel in einem Multiprozessorsy-stem;
Fig. 17 Steuerschaltungseinzelheiten 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.
I. Beschreibung eines Ausführungsbeispiels
Fig. 1A und Fig. 1B zeigen die wesentlichen Merkmale eines Ausführungsbeispiels der Erfindung. Fig. 1A zeigt eine Adressschlüssel-Auswahlschaltung 20, die je nach Art der Speicherzu-griffsanforderung (welche durch Signale auf den Leitungen 21, 22,23,24 oder 25 angezeigt werden) einen der Schlüsselregisterabschnitte 31, 32,33, 34 oder 35 auswählt, welche folgende Schlüssel enthalten; CS-Schlüssel, IS-Schlüssel, OPl-Schlüssel, OP2-Schlüssel und OP3-Schlüssel. Derjenige dieser Schlüssel, welcher der vorliegenden Speicherzugriffsanforderung entspricht, wird durch die AAS-Auswahlschaltung 20 als aktiver Adressschlüssel (AAS) ausgegeben. Dieser aktive Adressschlüssel steuert die Adressierung des Hauptspeichers des Systems während des nächsten Speicherzugriffs, d.h. Abruf oder Speicherung von Daten im Hauptspeicher. Bei dieser Adressierungsoperation bestimmt der aktive Adressschlüssel AAS den oberen Teil (höherwertige Stellen) der logischen Adresse, die von der Anlage für den Speicherzugriff benutzt wird.
Die Signale auf den Zugriffsanforderungsleitungen 21, 22, 23,24 und 25 stellen jedes eine andere Art von Zugriffsanforderung dar, welche von den Kanälen und Prozessoren gestellt werden können, die Zugriff zum gleichen Hauptspeicher haben. Diese Anforderungsleitungen sind in Fig. 1A folgendermassen bezeichnet: E/A-Zugriff, Befehlszugriff, OP1-Zugriff, OP2-Zugriff und OP3-Zugriff. Wenn nur eins dieser Zugriffsanforderungssignale auftritt, dann wird sofort der Inhalt des betreffenden Adressschlüsselregisterabschnitts als AAS ausgegeben. Falls mehrere Anforderungssignale gleichzeitig auftreten, wird durch Prioritätsschaltungen in der AAS-Auswahlschaltung 20 bestimmt, in welcher Reihenfolge die betreffenden Adressschlüssel als AAS ausgegeben werden. Dabei ist eine bestimmte Prioritätsordnung vorgegeben, sodass z.B. eine E/A-Zugriffsanforderung für eine Cycle-Steal-Operation den Vorrang hat, um zuerst den CS-Schlüssel auszugeben. Die Befehlsabrufanforderung wird als zweite bedient, um den IS-Schlüssel als AAS auszugeben. Als dritte wird die OP1 -Zugriffsanforderung bedient, um den OPl-Schlüssel als AAS auszugeben; schliesslich werden die OP2- und OP3-Zugriffsanforderungen als vierte und fünfte bedient, um den OP2-Schlüssel bzw. OP3-Schlüssel als AAS auszugeben.
Es besteht also eine bestimmte Beziehung zwischen den verschiedenen Arten von Zugriffsanforderungen und den speziellen Schlüsselregisterabschnitten.
In einem Prozessor enthält ein Adressschlüsselregister (ASR) folgende Abschnitte: den IS-Schlüsselabschnitt (ISS), welcher den Befehlsabrufanforderungen für den Zugriff zu jeder Instruktion zugeordnet ist, und die Schlüsselregisterabschnitte für die Schlüssel OP1 (OP1S) bis OP3 (OP3S), welche zu den verschiedenen Arten von Operanden-Zugriffen gehören, die zur Ausführung der Befehle benötigt werden.
Ausserdem hat jeder E/A-Unterkanal einen entsprechenden CS-Schlüsselregisterabschnitt (CSS). Es kann auch vorkommen, dass mehrere E/A-Unterkanäle gleichzeitig einen Zugriff zum Hauptspeicher anfordern. Deshalb sind CSS-Prioritätsaus-wahlschaltungen vorgesehen, um bei gleichzeitigen Anforde-
619 309 4
rungen die CS-Schlüssel in einer vorgegebenen Reihenfolge Prozessorunterbrechungen, d.h. interne Unterbrechungen, her auszugeben. vorrufen. Die Kategorie der Prozessorereigniszugriffe kann z.B.
Falls überdies mehrere Prozessoren zum gleichen Haupt- den Zugriff zu einem Bereich des Hauptspeichers einschliessen, Speicher Zugriff haben, sind weitere Prioritätsschaltungen vor- der ein Unterbrechungs-Verarbeitungsprogramm und andere gesehen, um die Anforderungen dieser Prozessoren in vorgege- 5 Programme zur Verarbeitung von Signalen enthält, die mit der bener bestimmter Reihenfolge zu bedienen. Unterbrechung im Zusammenhang stehen, und in dem weiter-
Fig. 1A veranschaulicht die Erfindung in einem System mit hin Daten gespeichert sind, die mit der Unterbrechung im Prozessor und Kanaleinheit, bei dem aktive Adressschlüssel Zusammenhang stehen, so z.B. Abschlussaufzeichnungen,
benutzt werden und in dem nur ein Teil der in einem Datenver- Jeder Kanal hat eine Mehrzahl von Unterkanälen, die eine arbeitungssystem an und für sich möglichen Speicherzugriffsar- m Vielzahl von verschiedenen Zugriffsarten durchführen. So ten verwendet wird. Fig. 1B zeigt eine grössere Zahl verschiede- gehört z.B. zu jedem Unterkanal eine E/A-Datenzugriffskate-ner Speicherzugriffsarten. Die in einem bestimmten System gorie mit den Zugriffsarten E/A-Abruf und E/A-Abspeiche-
verwendbaren Speicherzugriffstypen sind auf solche einge- rung. Bei manchen Anlagen sind diese beiden durch die Kon schränkt, die durch die Schaltungen des Systems identifizierbar struktion zu einem einzelnen Zugriffstyp zusammengefasst, den sind. D.h., es werden im System Schaltungen benötigt, welche 15 man E/A-Abruf/Abspeicherungszugriff nennt. Die mit Unterverschiedene Arten von Speicherzugriffsanforderungen feststel- kanalereignissen zusammenhängenden Zugriffe werden durch len können, und zwar jeweils zu der Zeit, wenn die betreffende Unterbrechungen signalisiert, die für den Prozessor extrem sind, Zugriffsanforderung auftritt. Fig. 1B zeigt mehr Zugriffsarten d.h. externe Unterbrechungen. Es werden üblicherweise viele als die Anordnung, welche in Fig. 1A gezeigt ist. In Fig. 1B sind verschiedene externe Unterbrechungen verwendet, so z.B. die acht Speicherzugriffsarten in drei Zugriffskategorien eingeteilt: :n Geräteschlussunterbrechung, Gerätefehlerunterbrechung, E/A-(1) Befehlszugriff, (2) Operanden-Zugriff und (3) eine Zugriffs- Datenfehlerunterbrechungen, usw.
kategorie, die den Prozessorereignissen zugeordnet ist. Jeder Zusammenfassend kann man sagen, das mit der Erfindung
Kanal enthält K Unterkanäle, und jeder Unterkanal hat drei die Möglichkeit geschaffen wird, die Adressiervorgänge im Speicherzugriffskategorien : (1 ) Kanalbefehlszugriff, (2) E/A- Hauptspeicher für jede der verschiedenen Speicherzugriffsar-Datenzugriff und (3) eine Zugriffskategorie für E/A-Ereignisse. ^ ten, die in Fig. 1B gezeigt sind, separat zu beeinflussen. Zu den in Fig. 1B gezeigten Zugriffsarten gehören die acht verschiede-Zu jeder Zugriffskategorie gehört mindestens eine Spei- nen Speicherzugriffsarten, welche jedem Prozessor zur Verfü-cherzugriffsart. gung stehen, und die vier verschiedenen Speicherzugriffsarten,
Bei irgendeiner bestimmten Anlage können nur die Spei- welche jedem Unterkanal zur Verfügung stehen. Diese Mög-cherzugriffsarten verwendet werden, die in der Maschinenkon- M Hchkeit der separaten Beeinflussungen ist dadurch gegeben, struktion durch ein identifizierendes Signal, d.h. ein Speicheran- dass man für jede der Zugriffsarten, welche in einer Anlage forderungssignal, vorgesehen sind. vorgesehen sind, einen separaten Schlüsselregisterabschnitt vor-
So ist z.B. die Befehlszugriffskategorie in der Anlage durch sieht. Das Ausführungsbeispiel, welches in Fig. 1A gezeigt ist, ein Befehlsabrufsanforderungssignal gekennzeichnet. Die Ope- benutzt nur vier verschiedene Prozessorzugriffsarten, welche im randen-Zugriffskategorie kann in der Anlage durch sechs ver- 15 gewählten Beispiel durch ein Adressschlüsselregister dargestellt schiedene Arten von Operanden-Zugriffe identifiziert werden sind, das vier verschiedene Registerabschnitte hat. Die Anzahl (Fig. 1B) Diese sind unterteilt in direkte und indirekte Operan- der Registerabschnitte im Adressschlüsselregister ASR kann den-Zugriffsarten, wobei zu der Unterkategorie der direkten jedoch beliebig gewählt werden entsprechend der Anzahl verZugriffe diejenigen Zugriffe gehören, welche Adressen benut- schiedener Zugriffsarten, die in der Konstruktion der Anlage zen, die direkt aus dem Befehl abgeleitet sind, während die 40 vorgesehen sind.
Unterkategorie der indirekten Zugriffe solche Operanden Auf jeden Fall wird für jede durch die Schaltungen der betrifft, bei denen die Adressen indirekt aus der Operanden- Maschine identifizierbare Zugriffsart ein ASR-Registerab-Adresse eines Befehls abgeleitet sind, Zu jeder Unterkategorie schnitt oder ein CS-Registerabschnitt vorgesehen mit entspre-gehören drei verschiedene Operanden-Zugriffsarten, welche chenden Vorrichtungen in der AAS-Auswahlschaltung, um durch die Schaltung der Anlage indentifiziert werden können als45 einen ausgewählten Registerabschnitt auszulesen, wenn die ent-Anforderungssignale für Quellenabruf, Senkenabspeicherung sprechende Zugriffsanforderung bedient wird, wobei dann der und Senkenabruf. Jede dieser sechs Operandenzugriffsarten Inhalt des ausgewählten Registerabschnitts der aktive Adress-kann bei der Konstruktion einer Anlage vorgesehen werden, schlüssel wird, welchen die Anlage als Adresskomponente und die betreffenden von der Anlage identifizierbaren Signale benutzt, um dem Adressievorgang für den betreffenden Speikönnen aus jedem Befehl abgeleitet werden, und zwar vom 50 cherzugriff zu beeinflussen. Für die durch den aktiven Adress-Operationscode und von den Operandenfeldern. Die Quellen- schlüssel AAS gegebene Adresskomponente kann folgendes abruf-Operandenart betrifft Daten, die als Quelle einer gelten: (1) sie kann eine direkte Beziehung zur physischen
Befehlsausführung benutzt werden ; sie wird nicht verändert, Adresse haben, indem der AAS mit der Programmdresse versondern nur benutzt, um die Ergebnisse einer Befehlsausfüh- kettet wird, sodass beide zusammen eine physische Adresse im rung zu erstellen. Auf der anderen Seite bezieht sich die Sen- 55 Hauptspeicher ergeben; (2) sie kann einen fest vorgegebenen kenabspeicherung-Operandenart auf Zugriffe, bei denen die Speicherzugriff im Hauptspeicher ermöglichen, wie es im AusResultate einer Befehlsausführung gespeichert werden. Die führungsbeispiel der Fig. 11 gezeigt ist; (3) sie kann zur Bestim-Senkenabruf-Operandenart ist das Resultat einer früheren mung einer verschiebbaren Adresse für durch Schlüssel identifi-
Befehlsausführung, welches als Quelle für die Ausführung eines zierte Speicherbereiche dienen, wobei man innerhalb jedes nachfolgenden Befehls benutzt wird. Für viele Datenverarbei- fio Bereiches sequentielle Programmadressen benötigt, wie es in tungsanlagen wurde es jedoch für praktisch befunden, bei der Fig. 15 gezeigt ist; (4) sie kann in noch flexiblerer Art für die Konstruktion den Senkenabspeicherungs-Operandentyp und Bestimmung von verschiebbaren Adressen dienen, wobei auch den Senkenabruf-Operandentyp zu einem einzelnen Senkenab- noch innerhalb der durch Schlüssel identifizierten Bereiche eine speicherungs/-Abruf-Operandentyp zusammenzufassen. Adressverschiebung möglich ist, so wie es im Ausführungsbei-
Prozessorereignis-Zugriffe werden hervorgerufen durch das 65 spiel der Fig. 14 dargestellt ist.
Auftreten interner Prozessorereignisse, wie z.B. Datenfehler,
Maschinenfehler, Adressierungsausnahme, usw., die zu einer Die Hauptspeichereingangsadresse, welche durch die in Fig.
langen Liste bekannter Ereignisse gehören, welche die üblichen 1A gezeigte Anordnung bereitgestellt wird, ist die Kombination
5
619 309
eines aktiven Adressschlüssels AAS mit einer im Programm erscheinenden Adresse. Die letztere ist eine Adresse, welche die Anlage in einem in Ausführung befindlichen Programm sieht, wie z.B. die Befehlsabruf adresse im Befehlsadressregister, und die Operanden-Adressen in den Befehlen des Programms. 5 Wenn ein Programm geschrieben wird, so sind nur im Programm erscheinende Adressen bekannt. Der Anwendungsprogrammierer bekümmert sich um die AAS-Operationen nur insoweit, als er seine Operandendaten separat vom Programm zusammenfasst. Der Systemprogrammierer spezifiziert allge- i (l mein die Prozessorereigniszugriffsbereiche und ihren Inhalt, und der E/A-Programmierer spezifiziert allgemein die E/A-Kanalbefehls- und Ereignisszugriffsbereiche und ihren Inhalt. In Fig. 1A besetzt die AAS-Komponente K Bit-Positionen im höherstelligen Teil der kombinierten Eingangsadresse, und die 15 im Programm erscheinende Adresse besitzt 16 Bitstellen, sodass es insgesamt eine Eingangsadresse für die Anlage mit 16 + K Bitstellen ergibt.
Bei der in Fig. 1A gezeigten Anordnung ist die Eingangs-adresse einschliesslich des AAS-Feldes eine logische Maschinenadresse, für welche noch eine Übersetzung erforderlich ist, um eine gewünschte Speicherstelle im Datenverarbeitungssystem zu erreichen. Auf der anderen Seite wird in der in Fig. 11 gezeigten Anordnung der aktive Adressschlüssel AAS 2* als direkt benutzte Einschränkungen der physischen Adresse verwendet, welche nicht übersetzt wird.
A. Übersetzer mit Registerstapeln
Der in Fig. 1A gezeigte Übersetzer enthält eine Mehrzahl von Segmentregisterstapeln mit den Nummern 0 bis 2K. Jeder Schlüsselregisterabschnitt im Prozessor oder in einem Unterkanal enthält mindestens einen Schlüssel mit K Bits, mit dem man .15 jeden der Stapel adressieren kann.
Der aktive Adressschlüssel AAS wird in eine Stapeladressiereinrichtung 40 eingegeben und dekodiert, um den gewünschten Stapel auszuwählen. Danach wird mit den höherwertigen Bit-Positionen 0-P der im Programm erscheinenden 4» Komponente der Eingangsadresse ein Segmentregister (SR) innerhalb des adressierten Stapels ausgewählt. Bit-Positionen 0 bis 12 des gewählten Segmentregisters enthalten eine zugeordnete Blocknummer, welche die Bit-Positionen 0 bis 12 der physischen Adresse eines bestimmten physischen Blocks im -15 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 50 sind identisch mit der relativen Byte-Adresse D in der Eingangsadresse, wo sie in den niederwertigen Bit-Positionen (P+1) bis 15 stehen. Der Zugriff zu einem bestimmten physischen Block wird auch gesteuert durch Kennzeichen-Bits in den restlichen Bit-Positionen 13-15 im gewählten Segmentregister 55 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 Blocknummernfeldes gültig ist. Falls er ungültig ist (d.h. V = 0), kann der Inhalt des gewählten Segmentregisters nicht zur Generierung einer physischen Adresse benutzt wer- M1 den, 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 (,s ist nicht benutzt. Das Zweitwort mit den Bit-Positionen 16 bis 31 ist reserviert und wird für das vorliegende Ausführungsbeispiel auch nicht benutzt.
B. Erweiterbarer Hauptspeicher
Fig. IC zeigt die Konfiguration eines Datenverarbeitungssystems, dass einen neuartigen erweiterbaren Hauptspeicher zur Verarbeitung übersetzter Adressen hat. Der Hauptspeicher besteht mindestens aus einem inneren Speicherteil 51, im folgenden kurz Innenspeicher genannt, der bis zu 64 K Bytes Speicherkapazität hat. Die erste mögliche Erweiterung ist die Hinzufügung eines äusseren Speicherteils 52, im folgenden kurz Aussenspeicher 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 erweiterbarer asynchroner Speicher 53, im folgenden auch kurz Asynchronspeicher genannt, hinzugefügt werden, womit die Kapazität des Hauptspeichers auf maximal 16 777 216 Bytes (d.h. 224) erweitert werden kann.
Zur Adressübersetzung ist ein Übersetzer 59 vorgesehen, der auch Schnittstelleneinrichtungen enthält für die Verbindung des Aussenspeichers 52 und des Asynchronspeichers 53 mit der Hauptspeicherkonfiguration.
Ein Hauptspeicherbus 56A (mit Bus sind im folgenden Sammelleitungen bezeichnet) verbindet einen Prozessor 54 und einen E/A-Kanal 55 über eine Speicherprioritätsauswahlschal-tung 56 mit der Hauptspeicherkonfiguration. Der Hauptspeicherbus 56A ist auch mit dem Uebersetzer 59 und mit dem Innenspeicher 51 verbunden.
Innenspeicher Zyklus-Signalleitungen 54A verbinden den Innenspeicher 51 direkt mit der Speicherprioritätsauswahlschal-tung 56. Sie übertragen Innenspeicherzyklussignale (ISZ-Signale), welche 16 Bit lange nicht übersetzte physische Adressen darstellen, die vom Prozessor generiert werden, wenn er im Nichtübersetzungsbetrieb arbeitet. Wenn der Prozessor im Übersetzungsbetrieb arbeitet, werden für ISZ die fünf höherwertigen Bits vom Übersetzer bereitgestellt; sie enthalten ein Kartenauswahlsignal (welches eine bestimmte Karte von bis zu vier Karten auswählt, aus denen der Innenspeicher besteht) sowie die Felder CSY und CSX (die einen bestimmten Speicherbereich auf der gewählten Karte auswählen, wobei diese Bereiche 4 096 Bits umfassen). Die fünf höherwertigen Bits auf den Adressbusleitungen 00-04 werden vom Übersetzer zum Prozessor übertragen, um von diesem während eines Innenspeicherzy-klus ISZ benutzt zu werden. Bit 13 bis 22 werden vom Speicheradressregister des Prozessors abgegeben, um eine bestimmte Wortstelle im Speicherbereich auszuwählen, und das letzte Bit 23 wählt ein bestimmtes Byte in diesem Wort aus, wenn es sich um eine Schreiboperation handelt. Die Byte-Adressierung mittels des Bit 23 wird nur für Schreiboperationen benutzt da bei Leseoperationen nur ganze Wörter adressiert werden (1 Wort enthält 2 Bytes). Für eine Schreiboperation wird das letzte 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 Innenspeicher 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 Speicheradressregister auf dem Bus 54A direkt abgegeben werden. Die vom Prozessor abgegebenen 16 Bit langen Adressen reichen gerade aus zur Adressierung der Höchstkapazität des Innenspeichers (d.h. 64 K). Bei dieser Minimalkonfiguration werden mit den 16 Bit langen physischen Adressen Speicherschutzschlüssel benutzt entsprechend den Nichtüber-setzungsspeicherschutzschaltungen, die in Fig. 11 gezeigt sind.
Die Speicherschutzschlüssel benutzen die Möglichkeit der separaten Adressbereichsbestimmung, welche durch die Adressschlüsselregisterabschnitte für verschiedene Speicherzugriffsarten gegeben ist. Die Kombination der Aktivadressschlüs-selauswahlschaltungen mit den Speicherschutzschlüsseln gehört auch zu der in dieser Beschreibung dargestellten Erfindung. Das
619 309
6
hier dargestellte Merkmal der Aktivadressschlüsselschaltungen durch welche separate Adressbereichsbestimmungen je nach Speicherzugriffsart möglich sind, kann separat kombiniert werden, entweder mit der Benutzung von Speicherschlüsseln bei Verwendung von nicht verschiebbaren Adressen, oder mit der Benutzung von 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 von 64 K hinaus erweitert werden i o kann, muss ein Übersetzer vorgesehen werden, wie es in Fig. IC gezeigt ist. Es kann dann ein Aussenspeicher hinzugefügt werden, welcher mit dem Übersetzer durch Aussenspeicherzyklus-Signalleitungen 58 verbunden werden, welche die Aussenspei-cherzyklussteuerung (OSZ) ermöglichen, die in Fig. 9G darge- i s stellt ist.
Der Übersetzer ermöglicht auch eine zusätzliche Erweiterung des Hauptspeichers über die Kapazitätsgrenze von 128 K, welche für den Innenspeicher und Aussenspeicher gilt, hinaus durch Hinzufügung einer Asynchronspeichereinheit. Die Asyn- 211 chronspeichereinheit 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 - 25 Bit, weil man mehr als 16 Bit braucht, um eine Zahl darzustellen, die grösser als 128 K ist. Durch die Benutzung der Bit-Positionen 0 bis 6 unterscheidet sich der Asynchronspeicherzyklus vom Ausssenspeicherzyklus, bei welchem diese Bit-Positionen nicht benutzt werden; beim Aussenspeicherzyklus werden m nur die Bit 7 bis 23 benutzt. Diese besonderen Bedingungen für die Bit-Positionen 0 bis 6 werden dazu benutzt, um ein Paar von Vorgriffbits zu setzen, welche in Fig. 9G gezeigt sind, wobei die zugehörigen Schaltungen und Vorgänge in weiteren Einzelheiten im Zusammenhang mit den Fig. 9 A und 9B beschrieben 35 werden.
Der Übersetzer hat eine Verbindung zur Hauptspeicherbusschnittstelle über welche er logische Adressen einschliesslich der Aktivadressschlüssel vom Prozessor für die Übersetzung erhält. Der Übersetzer enthält auch Schnittstellen für den Aussen- -to Speicher und den Asynchronspeicher.
C. Adressbereichs- Verteilung
Fig. 2A zeigt die Beziehungen zwischen den verschiedenen 45 Speicherzugriffsarten, welche durch verschiedene Arten von Prozessorbefehlen und Kanalbefehlen 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. 1B gezeigt 50 wurden. Wie in Fig. 2A dargestellt, wird ein Befehlsabruf im Befehlsadressbereich 60 unter Benutzung des ISS ausgeführt. Ausserdem sind zwei verschiedene Operanden-Zugriffsarten in Fig. 2A gezeigt, welche in den Datenadressbereichen 61 und 62 ausgeführt werden, wobei die Inhalte der Schlüsselregisterab- ss schnitte OP1S und OP2S benutzt werden.
C.l. Prozessoradressbereichs- Verteilung Fig. 2A veranschaulicht die Speicherzugriffe, welche auf fll) Grund verschiedener Prozessorbefehlsarten vorgenommen werden. Ein Speicher-Speicherbefehl ruft Daten im OPlS-Daten-bereich 61 oder im OP2S-Datenbereich 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-Datenadressbereich 62 oder in ein Allgemeinregister (AR). Ein Register-Speicher-Befehl verschiebt Daten von einem allgemeinen Register 63 zum OP2S-Datenadressbereich 62; einSpeicher-Register-BefehlholtDatenvomOP2S-Daten-adressbereich 62 und speichert sie in einem Allgemeinregister 63. Ein Verzweigungsbefehl holt einen Verzweigungszielbefehl ; auch vom ISS-Adressbereich 60.
C.2. E/A-Unterkanaladressbereichs- Verteilung
Zwei verschiedene Arten von E/A-Unterkanalbefehlen sind in Fig. 2 A gezeigt. Die eine Befehlsart wird Direkt-Programm-) steuerungs-E/A-Befehl genannt (DPS E/A) und bewirkt eine E/A-Operation, die sychron mit dem Hauptprogramm abläuft, d.h. das Hauptprogramm läuft nicht weiter, bis die E/A-Opera-tion beendet ist, wobei sowohl der E/A-Befehl als auch die Daten aus dem OP2S-Adressbereich 62 entnommen werden.
Die andere E/A-Befehlsart bewirkt die normale Art von asynchronen E/A-Operationen, welche allgemein als Cycle-Steal-E/A-Operationen (CS) bezeichnet werden. Für diese zweite Befehlsart muss das E/A-Programm selbst (d.h. die Kanalbefehle) im «Schlüssel=0 Kanalprogrammadressbereich» 1 64 (siehe Fig. 2A) gespeichert werden, während die Datenzugriffe, welche für das Kanalprogramm ausgeführt werden, durch Schlüssel gesteuert werden, welche in den betreffenden Kanalbefehlen spezifiziert sind, sodass durch jeden Kanalbefehl (z.B. GSB) jeweils ein anderer der Adressbereiche 65 bis 66 ausgewählt werden kann. D.h. also, dass jedes E/A-Gerät sien eigenes Unterkanalprogramm hat, in welchem die Befehle die Möglichkeit haben, jeweils einen anderen Schlüsselwert in den Adressschlüsselregisterabschnitt jedes Unterkanals einzugeben, sodass es für jeden Unterkanal möglich ist, bei jedem Kanalbefehl zu einem anderen Adressbereich zuzugreifen. Damit hat also jeder Kananl die Möglichkeit, den Datenadressbereich, zu dem er zugreift, bei Bedarf beliebig zu verschieben.
Fig. 2B zeigt etwas genauer die Art und Weise in der die E/ A-Operationen ihre Adressschlüssel bestimmen können, um verschiedene Datenadressbereiche im Hauptspeicher auszuwählen.
Wie in Fig. 2B gezeigt, enthält das Hauptprogramm einen E/A-Betriebsbefehl, der einen E/A-Vorgang auslöst, und deshalb befindet sich der E/A-Betriebsbefehl im ISS-Adressbereich. Der OP-Codeteil des Befehls gibt an, dass es sich um einen E/A-Betriebsbefehl 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ätesteuerblock» (IGSB) im OP2S-Adressbereich bezeichnet. Falls mit indirekter Adressierung gearbeitet wird, steht die indirekte Adresse selbst im OP2S-Adressbereich. Die IGSB-Adresse ist entweder eine direkte oder eine indirekte Adresse, abhängig vom Wert des I-Bit im E/A-Betriebsbefehl. D.h. also, dass der E/A-Betreibsbe-fehl im ISS-Adressbereich steht und der IGSB im OP2S-Adressbereich steht.
Es gibt zwei Arten von indirekten Gerätesteuerblöcken IGSB: (1) einen CS-Typ, oder (2) einen DPS-Typ. Das Kanalbefehlsfeld CMD im IGSB gibt an, ob eine CS-Operation oder eine DPS-Operation eingeleitet wird.
Wenn der IGSB ein DPS-Typ ist, enthält sein zweites Wort direkte Daten, die entweder an das adressierte Gerät übertragen oder von diesem empfangen werden, je nachdem, ob das Kanalbefehlsfeld CMD anzeigt, ob es eine E/A-Lese- oder Schreiboperation ist.
Wenn das CMD-Feld anzeigt, dass der IGSB vom CS-Typ ist, enthält das zweite Wort im IGSB die Adresse des Unterkanalprogramms für das Gerät, welches durch das GA-Feld im IGSB adressiert ist. Der erste Kanalbefehl (d.h. Kanalsteuerwort), welcher Gerätesteuerblock 0 (GSB-0) genannt wird, befindet sich in dem Adressteil des IGSB. Ein Fels im GSB-0, welches Verkettungsadresse genannt wird, gibt den Ort des
7
619 309
nächsten Unterkanalsteuerwortes an, welches GSB-1 genannt wird, und welches ebenso eine Verkettungsadresse enthält, die den nächsten GSB lokalisiert usw., bis der letzte GSB aufgefunden ist.
In diesem Ausführungsbeispiel befindet sich also das s gesamte Kanalprogramm im «Schlüssel=0 Adressbereich».
Jeder Gerätesteuerblock GSB hält jedoch in seiner ersten Wortstelle EA ein Schlüsselfeld, welches der Adressschlüssel für Daten ist, auf die der betreffende GSB zugreift. GSB-0 enthält z.B. ein Schlüsselfeld, welches als Schlüssel für GSB-0 i o bezeichnet wird, und welches den Adressbereich für einen zusammenhängenden Block logischer Adressen angibt, welcher an der Datenadresse beginnt, die in dem Feld von GSB-0 enthalten ist, dass sich an der Stelle EA+14 befindet. Der Schlüssel für GSB-0 kann jeden beliebigen Schlüsselwert haben, is In ähnlicher Weise enthält das nächste Steuerwort GSB-1 einen Schlüssel für GSB-1, der jeden beliebigen Schlüsselwert haben kann, zur Festlegung des Adressbereichs für die Daten, welche innerhalb GSB-1 adressiert werden. Der Schlüsselwert in GSB-1 kann also verschieden sein von dem Schlüsselwert in GSB-0 2» 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 Übersetzung können in den 25 Gerätesteuerblöcken GSB verschiedene Schlüsselwerte benutzt werden, um einen spziellen selektiven Speicherschutz für die E/ A-Datenzugriffe zu bekommen.
Wenn überdies im System im Übersetzungsbetrieb gearbeitet wird, werden für jeden Zugriff alle E/A-Datenadressen 10 durch den Uebersetzer übersetzt (siehe Fig. 1D) in der gleichen Weise, wie die Prozessoradressen übersetzt 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 Ope- 35 ration eines angeschlossenen E/A-Gerätes, das von beliebiger Art sein kann. Diese prozessorähnliche Steuereinheit steuert die Verarbeitung der GSB-Schlüssel durch den betreffenden E/A-Unterkanal. Der GSB-Schlüssel wird in ein GSB-Schlüsselregister 301 in der Unterkanalsteuereinheit vom E/A-Datenbus des 40 Kanals eingegeben, wenn jeweils ein Gerätesteuerblock GSB im Schlüssel=0 Adressberich entnommen wird.
Eine Mehrzahl von Unterkanälen ist in der üblichen Weise mit einem einzelnen Kanal verbunden. Jeder Unterkanal kann 4S sich mit seinem Kanal durch spziell dafür vorgesehene Protokollsignale verständigen. Ein Unterkanal, der Bedienung durch den Kanal anfordert, wird durch einen Aufruf-Vorgang ausgewählt. Nach der Auswahl durch den Aufruf-Vorgang überträgt der Kanaldatenbus Steuersignale und Daten zwischen dem 50 Unterkanal und dem Hauptspeicher. Durch ein Signal, welches von der Aufrufauswahlsteuerung 310 an die Unterkanal-ROS-Steuerung 311 gelant, wird bewirkt, dass ein Wort aus dem Festspeicher ROS 312 in ein ROS-Datenregister 313 eingegeben wird, um die notwendigen Unterkanaloperationen zu steu- 55 ern. Eine der Unterkanaloperationen ist ein GSB-Abruf des nächsten Adressfeldes im laufenden GSB vom Adressbereich mit Schlüssel=0. Das GSB-Abruffeld in einem ROS-Wort wird von einem .ROS-Decodierer 314 entschlüsselt, welcher dann ein GSB-Abrul'steuersignal abgibt, das die UND-Glieder 315 (0) f,o
315 (1) und 315 (2) aktiviert, welche eine Eingabe in das GSB-Schlüsselregigter 301 bewirken, dass ein Teil des Registerstapels ist, der den ganzen Gerätesteuerblock GSB empfängt. Nachdem der GSB-Abruf ausgeführt ist, wird der GSB im Unterkanal gespeichert, das GSB-Abruf-Signal beendet und ein «Kein <,5 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üssel für die GSB-Datenzugriffsoperationen zur Verfügung steht. Der CS-Schlüssel wird über den Bedingungscodebus zum Kanal in Fig. 3B übertragen. Der Kanal überträgt dann den CS-Schlüssel zum CS-Schlüsselbus, der mit der Speicherprioritäts-auswahlschaltung in Fig. 3C verbunden ist.
C. 3. Speicherprioritäts-A uswahlschaltung
In Fig. 3C ist gezeigt, dass der CS-Schlüssel vom Kanalbus einer Kanalauswahlschaltung 331 zugeführt wird, die mit den Kanalbussen von allen Kanälen verbunden ist, die an den Prozessor angeschlossen sind, und welche einem CS-Schlüssel von einem der Kanäle Priorität gibt.
Mit jeder Unterkanalsteuereinheit ist auch eine Mehrzahl von Steuerleitungen verbunden, darunter ein Steuerbus und ein E/A-Adressbus. Der E/A-Adressbus überträgt die Datenadresse, welche vom GSB hergeleitet wurde. Zum E/A-Steuer-bus gehört eine CS-Anforderungsleitung, welche anzeigt, ob sich eine Adresse auf dem E/A-Adressbus befindet (Fig. 3B).
Die Speicherprioritätsauswahlschaltung 56 ist mit CS-Zyklus-Anforderungsleitungen eines jeden der Kanäle 1 .. .P verbunden, welche an einen Prozessor angeschlossen sind. Durch die Schaltung 332 wird jeweils ein bestimmter CS-Schlüssel ausgewählt und an die Kanalauswahlschaltung 331 abgegeben, welche den CS-Schlüssel des ausgewählten Unterkanals an die AAS-Auswahlschaltungen 333 überträgt, welche auch die Prozessoradresschlüssel von den Prozessor-ASR-Bus-sen erhalten. Gesteuert von der Speicherprioritäts-Zyklusschal-tung 332 wählen die AAS-Auswahlschaltungen 333 jeweils einen der empfangenen Adressschlüssel als den aktiven Adressschlüssel AAS des Systems aus. Fig. 3D 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üsseln um einen Speicherzugriff bemüht. Die Prozessor-ASR-Busse (Sammelleitungen) sind mit den Ausgängen des Adressschlüsselregisters ASR verbunden. Die Speicherprioritätszykiusschaltung 332 (Fig. 3C), welche von bekannter Bauart sein kann, bestimmt die Reichenfolge, in welcher den miteinander konkurrierenden Anforderungen ein Zugriff gewährt wird, d.h. also die Reihenfolge, in welcher die entsprechenden Adressschlüssel als aktiver Adressschlüssel AAS an den Ausgängen der AAS-Auswahlschaltungen (Fig. 3D) erscheinen.
Fig. 4 zeigt diejenigen Steuereinrichtungen im Prozessor, die mit dem Adressschlüsselregister ASR zusammenarbeiten. Das ASR wird geladen vom Prozessordatenbus (Datensammelleitung) mittels der Eingabesteuerung (EG), und die verschiedenen Adressschlüssel werden aus dem Adressschlüsselregister auf den Prozessordatenbus ausgegeben mit Hilfe der Ausgabesteuerung (AG). Die EG- und AG-Steuersignale werden vom Prozessor-ROS-Dekodierer abgegeben. Der Inhalt des Adressschlüsselregisters ASR wird ständig abgegeben an die Prozessor-ASR-Busse, nämlich den ISS-Bus, den OP2S-Bus, den OPlS-Bus und den OB A-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, und bestimmen damit, welcher von diesen Schlüsseln der aktive Adressschlüssel AAS wird. Fig. 7 zeigt im Detail die AST-Steuerschaltung anhand der Eingabe- und Ausgabeschaltungen für eine einzelne Bitposition des ASR. Alle anderen Bitpositionen des ASR haben entsprechende Steuerschaltungen.
Aus Fig. 4 ist ersichtlich, dass der Prozessor-ROS-Dekodie-rer 405 (Festspeicher-Dekodierer) Ausgangsleitungen hat,
619 309 8
deren jede durch ein bestimmtes ROS-Wort, wenn dieses ins Hauptspeicher oder das Abspeichern des Inhalts des ASR in ROS-Datenregister 406 eingegeben ist, aktiviert wird, um Ein- den Hauptspeicher gesteuert werden.
gäbe und Ausgabe bei den ASR-Registerabschnitten ISS, OP1S Fig. gjj zeigt die Einteilung des 16 Bit langen Befehls und OP2S zu steuern, bzw. um andere Prozessoroperationen zu «ASR/Speicher Laden/Abspeichern». Er ist gekennzeichnet veranlassen. 5 durch den 5-Bit-OP-Code und das 3-Bit-Modifizierfeld in den
Bit-Positionen 13 bis 15. Das K-Feld in den Bit-Positionen 5 bis D 1. Register für letzten aktiven Adressschlüssel AAS 7 adressiert den Teil des ASR (oder das ganze ASR), der
Der in Fig. 4 gezeigte Prozessor enthält auch ein Register eingegeben oder ausgegeben werden soll. Die K-Werte 0,1,2 für den letzten aktiven Adressschlüssel, mit dessen Eingangs- oder 3 bezeichnen die Registerabschnitte ISS, OP2S, OP1S seite eine AAS-Torschaltung 407 verbunden ist, welche einer- m bzw. das gesamte ASR, zur Benutzung durch diesen Befehl.
seits an den AAS-Bus von Fig. 3D angeschlossen ist und ander- Eine logische Hauptspeicheradresse wird erzeugt mit Hilfe des seits an einen Inverter, der mit einer Prozessorfehlerkippschal- RB-Feldes in den Bit-Positionen 8 und 9, welches ein Basisregi-tung 401 verbunden ist. Das Ausgangssignal der AAS-Torschal- ster bezeichnet, und die Zugriffsmodusbits 10 und 11 (AM)
tung 407 wird in das Register 408 für den letzten aktiven welche angeben, ob ein Wort ein angehängtes Feld an eine
Adressschlüssel AAS eingegeben, wenn ein Prozessorspeicher- 15 Instruktion ist, die ein Adressfeld enthält, wobei der Inhalt des zyklussignal (von Fig. 17) vorliegt. Das Register 408 speichert AM-Feldes und des RB-Registers kombiniert werden, um die jeden auf dem AAS-Bus vorliegenden aktiven Adressschlüssel effektive Adresse derjenigen Wortstelle im Hauptspeicher zu vom Prozessor-Adressschlüsselregister ASR, sofern die Fehler- erzeugen, welche durch die Ausführung dieses Befehls entweder kippschaltung 401 keinen Fehler auf einer Fehlersperrleitung geladen oder abgespeichert wird. Das Bit X in der Bit-Stelle 12 anzeigt. 211 gibt an, ob es sich um einen Ladebefehl oder einen Abspeicher-
Wenn aber ein Maschinenfehler (MCK) oder ein Pro- befehl handelt. Wenn X = 0 ist, dann wird der Inhalt der grammfehler (PCK) im Prozessor auftritt, wird die Fehlerkipp- adressierten Wortstelle in demjenigen ASR-Teil abgespeichert, Schaltung 401 gesetzt. Als Folge davon wird die AAS-Torschal- der durch das K-Feld bezeichnet ist. Wenn das X-Bit = 1 ist, tung 407 gesperrt, weil das Fehlersperrsignal abfällt, um dann wird der angegebene AKR-Teil in der adressierten Wort-
dadurch den letzten aktiven Adressschlüssel des Prozessors 25 stelle abgespeichert.
zurückzuhalten (LKSA), welcher zu der Zeit vorlag, als die jn ähnlicher Weise stellt Fig. 8C die bei der Ausführung des
Fehlerkippschaltung 401 gesetzt wurde. Das Maschinenfehlersi- Befehls « ASR/Register Laden/Abspeichern» ausgeführten gnal (MCK) und das Programmfehlersignal (PCK) werden in Operationen dar; der einzige Unterschied gegen Fig. 8B ist, dass einem Zwangsadressdecodierer 402 eingegeben (ausser wäh- statt einer Hauptspeicherwortstelle bei der Ausführung dieses rend eines Segmentregister-Zyklus), um in die ROS-Steuer- .w Befehls ein Allgemein-Register AR benutzt wird. Demgemäss Schaltung 403 zwangsweise eine Festspeicheradresse einzuge- bezeichnet in Fig. 8C das R-Feld in den Bit-Positionen 8 bis 10 ben, welche den Aufruf eines Diagnoseprogramms bewirkt, ejn bestimmtes Allgemein-Register AR, welches zum Laden welches die Fehlerbedingung beseitigt entweder durch wieder- oder Abspeichern eines oder mehrerer Schlüssel in oder von holte Ausführung der fehlerhaften Funktion, bis sie korrekt dem bezeichneten Teil (bzw. den bezeichneten Teilen) des ASR
ausgeführt ist, oder durch Ausführung einer Abschlussoperation 35 benutzt wird.
(log-out), wenn festgestellt wird, dass der Fehler ein Dauerfeh- Die entsprechenden Operationen werden im Prozessor aus ler ist. Das AAS-Register 408 bewahrt inzwischen den LKSA geführt aufgrund von Signalen auf den mit EG bzw. AG auf, um die zuletzt gültig gewesene Adressbereichsfestlegung bezeichneten Ausgangsleitungen des Prozessor-ROS-Decodie-aufrecht zu erhalten, während im Prozessor Fehlerbehebungs- rers 405 (Fig. 4), welche mit den auf dem Datenpfad des Operationen ablaufen, sodass nach Behebung der Fehlerbedin- 40 Prozessors auftretenden Signalen die im Zusammenhang mit gung das System unter Beibehaltung der zuletzt benutzten Fig. 8B beschriebenen Operationen veranlassen.
Adressbereichsfestlegung die Arbeit wieder aufnehmen kann.
E. Übersetzer
Eine der jeweils letzten diagnostischen Operationen, die Fig. 9A und 9B enthalten Einzelheiten des in Fig. IC
vorgenommen werden, bevor der Zustand eines Prozessors 43 gezeigten Ubersetzers 59, welcher die mit Fig. 1A beschriebegeändert werden kann, ist die Speicherung des Gesamtzustands nen Übersetzungsvorgänge für Adressverschiebungen vor-des Prozessors in einem Niveau-Statusblock (NSB) im Haupt- nimmt. Diese Adressverschiebungs-Übersetzungsschaltungen Speicher, wozu der Inhalt des Adressschlüsselregisters ASR können den physischen Adressbereich von 64 K (216) Bytes auf gehört. Durch ein Signal AG-AASR (Ausgabe aus dem Regi- 16 Millionen (224) Bytes vergrössern, was also einer Erweitester für den letzten aktiven Adressschlüssel) wird der Inhalt des 5(l rung des Innenspeichers von 64 K Bytes entspricht.
Registers 408 (LKSA) an den Prozessordatenbus ausgegeben; Durch den Übersetzer wird der Adressbereich des Haupt ein gleichzeitig auftretendes Signal EG OP1S bewirkt die Ein- Speichers insofern vergrössert, als dieser den aktiven Adressgabe des LKSA in den OP1 K-Registerabschnitt des ASR für die schlüssel AAS und die 16 Bit lange im Programm erscheinende Diagnose- oder Fehlerbehebungsoperationen (siehe Abschnitt Adresse vom Prozessor oder von einem Unterkanal gemeinsam H. 3.). Wenn die Fehlerbehebungsoperationen beendet sind, 55 als logische Eingangsadresse aufnimmt und diese Eingangswird der letzte normale ASR-Wert vom NSB im Speicher adresse in eine 24 Bit lange physische Adresse umwandelt, die wieder geladen, um den normalen Betrieb wieder aufzunehmen. Zugriffe zum Innenspeicher, Aussenspeicher oder Asynchron-
Speicherhat.
D. 2. Befehle zum Laden/Abspeichern des ASR Dieser Übersetzungsvorgang ermöglicht die dynamische
Fig. 8B und 8C zeigen die Befehle zur Steuerung folgender (,(1 Zuteilung physischer Speicherkapazität zu logischen Adressbe-beiden Operationen: (1) Laden des Adresschlüssels in das ASR reichen und die gemeinsame Benutzung physischer Speicherka-entweder von einer Wortstelle im Hauptspeicher oder von pazität von mehreren logischen Adressbereichen. 8 Sätze (Sta-
einem bezeichneten Allgemein-Register AR; (2) die Abspei- pel) von je 32 Segmentregistern (SR) sind für die 8 verschiede-cherung von Adressschlüsseln vom ASR entweder in eine Wort- nen möglichen Werte der Adressschlüssel vorgesehen, was ins-stelle im Hauptspeicher, oder in ein bezeichnetes Allgemeinre- ,l5 gesamt 256 Segmentregister ergibt. Jeder geladene SR-Stapel gister AR. Fig. 8B zeigt die Vorgänge bei Ausführung des kann eine vollständige Abbildung eines Speicherbereiches ent
Befehls «ASR/Speicher Laden/Abspeichern». Mit diesem ein- halten, der bis zu 64K Bytes enthält, die in Blöcken von je 2K zelnen Befehl kann entweder das Laden des ASR aus dem Byte Speicherkapazität verteilt sein können. Mit einem Stapel
9
619 309
kann auch ein Adressbereich adressiert werden, der weniger als 64 K Bytes hat, indem man lediglich die Validitäts-Bit-Position in einem oder mehreren der Segmentregister auf eins setzt,
so dass nur diejenigen Segmentregister, bei denen die Validi-täts-Bit = 0 sind, die Blöcke mit je 2K Bytes Kapazität bezeich- ^ nen, welche zu einem adressierbaren Bereich gehören, der durch einen zugeordneten Adressschlüssel identifiziert ist.
Für jeden Adressschlüssel ist ein separater Segmentregisterstapel vorgesehen, um ein schnelles Umschalten der logischen Adressbereiche zu ermöglichen ohne die Notwendigkeit der m Wegspeiche rung und Wieder-Einspeicherung der Adressbe-reichspeicherabbildungen des Systems.
Der Adressverschiebungsübersetzer, der in Fig. 9A und 9B gezeigt ist, ermöglicht eine Erweiterung des Hauptspeichers durch einen Aussenspeicher von bis zu 64 Bytes in Inkrementen i -■ von 16 K Bytes auf je einer Karte, welche als die fünfte bis achte Karte für den Aussenspeicher bezeichnet sind. Der Innenspeicher besteht aus der ersten bis vierten Karte, welche auch je eine Kapazität von 16 Bytes haben. Erweiterungen der Speicherkapazität über die 128 K Bytes des Innenspeichers und m Aussenspeichers hinaus bedürfen einer zusätzlichen Asynchronspeichereinheit (Fig. IC), durch welche der physische Speicher von 128 K Bytes bis zu einem Maximum von 16 Millionen Bytes vergrössert werden kann.
Der grösste durch die Maschine statisch adressierbare Adressbereich, welcher allen gleichzeitig ablaufenden Programmen zur Verfügung steht, wenn alle Segmentregister mit verschiedenen physischen Blockadressen geladen sind, beträgt 219 Bytes. Diese Grenze ist bestimmt durch die 19 Bit lange Ein-gangsadresse, welche in Fig. 1A gezeigt ist, und die ensteht,
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 Maschineneingangsadresse für den Übersetzer 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, OPIS und OP2S, was also eine Adressierbar-keit eines Adressbereichs von max. 64 K bis zu max. 192 K Bytes ergibt. 4(>
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 zu 512 K Bytes bei einem bestimmten geladenen Inhalt der Segmentregister; dies wird als die grösste statische Maschinenadressierbarkeit 45
bezeichnet. Wenn man nun eine Adressierung über die 512 K Bytes des statischen Maximums hinaus vornehmen will, muss man die Segmentregister durch Programme umladen, um eine Adressierbarkeit anderer Bereiche im Hauptspeicher zu erhalten. SU
Die statische Adressierbarkeit kann leicht vergrössert werden durch die Hinzufügung weiterer Bits zu dem Adresschlüssel im ASR und durch die Vergrösserung der zugehörigen Schaltungen, um dadurch eine entsprechend grössere Anzahl von Segmentregisterstapeln zu unterstützen. 55
Wenn in das System ein Übersetzer eingebaut wird, wie er in Fig. 1A gezeigt ist, so wird seine Benutzung durch ein Bit Nr. 14 im Prozessorstatuswort (PSW) gesteuert, und zwar durch Ausgangsleitungen des Prozessor-ROS-Decoders in Fig. 4, bei Vorliegen des in Fig. 13A gezeigten Freigabe/Sperrbefehls. Bit 14 fi() im Freigabe/Sperrbefehl gibt an, ob im System ein Übersetzer vorgesehen ist oder nicht, und Bit 7 gibt an, ob er freigegeben oder gesperrt sein soll. Die in Fig. 10 gezeigte Schaltung bestimmt, ob der Übersetzer freigegeben wird oder nicht. Wenn der Übersetzer nicht freigegeben wird, und wenn das SP-Bit in dem in Fig. 13 A gezeigten Befehl auf 1 gesetzt ist, wird die in Fig. 11 gezeigte Schaltung zum Speicherschutz bei NichtÜbersetzung verwendet. Falls Adressierbarkeit nur in einem kleinen
Adressbereich benötigt ist und falls sehr schnelle Verarbeitung gewünscht wird, kann der Übersetzer gesperrt werden.
Fig. 9A und 9B zeigen im Einzelnen die Schaltungen,'Busleitungen und Schnittstellenleitungen für den Übersetzer 59 des Systems von Fig. IC, gemäss folgender Aufstellung:
E.I. Schnittstelle Prozessor Übersetzer
(1) Speicheradressbus 901. Er hat 15 Leitungen, welche die logische Programmadresse vom Speicheradressregister (SAR) des Prozessors zum Übersetzer übertragen. Nach der Adressübersetzung werden die fünf werthöchsten Bits der Übersetzadresse an den Prozessor zurückgeschickt um, falls erforderlich, zur Adressierung des Innenspeichers 51 benutzt zu werden. Die 10 niederwertigen Bits (D-Feld) brauchen nicht übersetzt zu werden.
(2) Speicherdatenbus 902 zum Speicher. Er enthält 16 Datenleitungen und zwei Paritätsleitungen. Er überträgt Speicherdaten und Segmentregisterinhalte vom Prozessor zum Übersetzer.
(3) Speicherdatenbus 903 vom Speicher. Er enthält 16 Datenleitungen und zwei Paritätsleitungen. Er überträgt Speicherdaten vom Übersetzer und den Inhalt der Segmentregister (SR) zum Prozessor.
(4) Bus für aktiven Adressschlüssel (AAS-Bus). Diese drei Leitungen übertragen den aktiven Adressschlüssel AAS von der Speicherprioritätsauswahlschaltung (Fig. 3C) zum Übersetzer, um einen bestimmten Segmentregisterstapel im Übersetzer auszuwählen.
(5) Speicherschreiben OP 0. Einzelleitung vom Prozessor, die dem Übersetzer 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 Übersetzer 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.
(7) Übersetzerfreigabe. Einzelleitung, welche ein Prozessorsignal an den Übersetzer abgibt, dass den Übersetzer für seine Funktion freigibt. Dieses Signal wird aktiviert durch den Freigabe/ Sperrbefehl.
(8) Speicheranforderung an Übersetzer. Diese Einzelleitung überträgt ein Prozessorsignal, welches den Übersetzer auffordert, die logische Adresse vom Speicheradressbus zu übersetzen. Ein Mikrozyklus (220 Nanosekunden) wird automatisch übersprungen, um dem Übersetzer einen Zugriff zum betreffenden Segmentregister zu ermöglichen, um die physische Adresse zu ermitteln und um zu bestimmen, ob ein Zugriff zum Innenspeicher, Aussenspeicher oder zum Asynchronspeicher erforderlich ist.
(9) Zeitgeberimpulse A, B, C, D. Diese vier Leitungen übertragen Prozessorzeitgeberimpulse von 55 Nanosekunden Dauer, welche den Synchronismus zwischen dem Prozessor und dem Übersetzer herstellen.
(10) Üebersetzer/SAR durchgeben. Das Signal auf dieser Leitung gibt an, dass der Übersetzer die fünf höchstwertigen Bits der übersetzten physischen Speicheradresse 55 Nanosekunden nach Beginn dieses Signals auf den Speicheradressbus gegeben hat. Es veranlasst den Prozessor, dass er Bits 00-04 der übersetzten Adresse vom Adressbus an den Innenspeicher weitergeben soll.
(11) Innenspeicherzyklus (IS Z). Diese Leitung überträgt ein vom Übersetzer generiertes Signal, welches den Prozessor auffordert, dem Innenspeicher 51 mit jeder neuen physischen Adresse ein Speicherzeitsignal zur Verfügung zu stellen. Wenn
619 309
10
ein Aussenspeicher- oder Asynchronspeicherzyklus (OSZ oder ASZ) ausgeführt werden soll, wird diese Leitung deaktiviert, so dass der innere Speicher nicht ausgewählt wird.
(12) Übersetzerspeicher besetzt. Diese Leitung überträgt einen vom Übersetzer generiertes Signal, welches dem Prozes- s sor 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 Asynchronspeichereinheit 53 bekommen hat, wird diese Leitung deaktiviert, und die Taktsignale werden wieder gestartet, i c um den Speicherzyklus zu beenden. Diese Stillegung der Speichertaktsignale durch eine Asynchronspeichereinheit ist der Grund für deren asynchrone Arbeitsweise und der Grund dafür, dass ihr Zugriffszyklus länger ist als der Zugriffszyklus beim Innenspeicher 51 oder Aussenspeicher 52. 15
(13) Übersetzer eingebaut. Diese Leitung überträgt ein vom Übersetzer generiertes Signal, welches dem Prozessor anzeigt,
dass ein Übersetzer 59 im System eingebaut ist.
(14) Übersetzer ungültige Speicheradresse. Diese Leitung überträgt ein vom Übersetzer generiertes Signal, das dem Pro- 211 zessor anzeigt, das die soeben an den Übersetzer übertragene logische Adresse ungültig ist; es erfolgt dann eine Programmfehleranzeige (PCK).
(15) Übersetzer—Speicherschutzanzeige. Diese Leistung überträgt ein vom Übersetzer generiertes Signal, welches dem 25 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) Überwachungsprogrammzustand oder Cycle-Steal- m Zyklus. Diese Leitung überträgt ein vom Prozessor generiertes Signal an den Übersetzer, welches anzeigt, dass dieser das Nur-Lese-Bit 14 im adressierten Segmentregister ignorieren soll,
weil die vorliegende Speicherzugriffsanforderung entweder vom Überwachungsprogramm oder von einem E/A-Unterkanal 35 stammt.
(17) Zyklusende. Diese Leitung überträgt ein vom Prozessor generiertes Signal, welches dem Übersetzer anzeigt, dass jetzt der Speicherzyklus beendet wird.
(18) Segmentregisterzyklus. Diese Leitung überträgt ein •»» vom Prozessor generiertes Signal welches dem Uebersetzer anzeigt, dass die Segmentregister 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 «Segmentregi- 45 ster abspeichern» oder «Segmentregister laden» ist.
E. 2. Schnnittstelle Übersetzer/Aussenspeicher
Die Schnittstelle vom Übersetzer zum Aussenspeicher ist in Fig. 9B gezeigt. Zu ihr gehören folgende Leitungen: 50
(1) Kartenauswahlleitungen. Diese vier Leitungen, welche bezeichnet sind mit Kartenauswahl 80 K, 96 K, 112 K und 128 K, wählen je eine Speicherkarte von 16 K Bytes im Aussenspeicher aus.
(2) Leitungen TCSX und TCSY. Diese sechs Leitungen 55 übertragen X-Koordinaten und Y-Koordinaten für die ausgewählte Karte, um einen bestimmten Bereich auf dieser Karte auszuwählen.
(3) Leitungen «Byte 0 Schreiben» und «Byte 1 Schreiben». Diese vier Leitungen übertragen Zeitgebersignale zu den vier 60 Aussenspeicherkarten, um ein Byte zu schreiben.
Wenn der Übersetzer die physische Speicheradresse vom entsprechenden Segmentregister erhält, bestimmt er, ob ein Zugriff zum Innenspeicher, zum Aussenspeicher oder zum Asynchronspeicher gemacht werden muss ; er aktiviert die fi5 Schnittstellenleitungen zum Aussenspeicher nur, wenn ein Aus-senspeicherzyklus erforderlich ist. Die Leitungsbrücken, welche in der Aussenspeichersteuerung eingebaut werden (Fig. 9B),
zeigen an, welche der vier Karten der Aussenspeichereinheit installiert sind.
E. 3. Schnittstelle Übersetzer/Asynchronspeicher
Die Schnittstelle vom Übersetzer zum Asynchronspeicher (Fig. 9A und 9B) umfasst folgende Leitungen:
(1) Asynchronspeicher Ausgabedaten/Parität. Diese 16 Datenleitungen und zwei Paritätsleitungen bilden den Speicherdatenbus zur Asynchronspeichereinheit.
(2) Asynchronspeicher Eingabedaten/Parität. Diese 16 Datenleitungen und zwei Paritätsleitungen bilden den Speicherdatenbus von der Asynchronspeichereinheit zum Prozessor und zum Kanal.
(3) Asynchronspeicher unteres SARAus. Diese 13 Leitungen übertragen die 13 höherwertigen Bits der physischen Adresse, welche die Blockadresse in der Asynchronspeichereinheit bilden. Sie bilden die oberen SAR-Bits 0-12, welche im Asynchronspeicherzyklus in Fig. 9G gezeigt sind.
(4) Asynchronspeicher oberes SAR Aus. Diese zehn Leitungen übertragen die 10 niederwertigen Bits 13-22 im Asynchronspeicherzyklus, aber nicht Bit 23 des Asynchronspeicherzyklus (Fig. 9G). Die Bit 13 bis 22 adressieren ein Wort im ausgewählten Block.
(5) Byte 0 Schreiben. Diese Leitung überträgt das niedrigste Bit Nr. 23 der physischen Adresse, um anzuzeigen, ob das linke Byte des adressierten Wortes während des Asynchronspeicherzyklus für eine Speicheroperation benutzt wird.
(6) Byte 1 Schreiben. Diese Leitung informiert den Asynchronspeicher, dass das rechte Byte des gerade adressierten Wortes während des Asynchronspeicherzyklus einer Speicheroperation unterliegt.
(7) Asynchronspeicherauswahl. Diese Leitung zeigt dem adressierten Speichermodul an, dass ein Speicherzyklus begonnen werden soll. Diese Auswahlleitung wird nur aktiviert während eines Asynchronspeicherzyklus, und wenn keine logische Befehlsadresse und keine Speicherschutzanzeige vom Übersetzer festgestellt wurden.
(8) Schnittstellentakt und Schnittstellentakt 90° . Diese zwei Taktsignale haben eine Periode von 440 Nanosekunden mit einer Impulsdauer von 50 % pro Periode. Die beiden Taktsignale haben eine Phasenverschiebung von 90° gegeneinander; sie sind nur aktiv, wenn das Asynchron-Speicherauswahlsignal auch aktiv ist. Diese Taktsignale können in der Asynchron-Speichereinheit für folgendes benutzt werden: Synchronisierung innerhalb der Speichereinheit, Vermeidung von Problemen beim Wiedereinschreiben, Einspeicherung von Daten in Kippschaltungen, und zur Erzeugung von Antwortsignalen zu den vorgegebenen Zeitpunkten.
( (9) Rückantwort. Auf dieser Leitung erscheint ein Signal von der Asynchronspeichereinheit, wenn der adressierte Speicherplatz installiert ist.
(10) Schreibzeitgabesignal. Diese Leitung zum ausgewählten Asynchronspeichermodul wird während der zweiten Hälfte des Schreibzyklus aktiviert, nachdem der Übersetzer eine Rückantwort erhalten hatte. Das Schreibzeitsignal wird nur aktiviert, wenn die Auswahlleitung auch aktiviert ist.
(11) Normales Asynchronspeicherzyklusende. Auf dieser Leitung wird ein Zeitgabeimpuls abgegeben, wenn die Rückant-
| wortleitung ein Signal vom Asynchronspeicher erhält. Es wird von der ausgewählten Asynchronspeichereinheit als Bestätigungssignal benutzt, um die Rückstellung der Kippschaltungen, welche während des Zyklus gesetzt wurden, zu erreichen, und um die Wiederauswahl während desselben Zyklus beim Abfal-; len des Asynchronspeicherauswahlsignals zu verhindern.
E. 4. Segmentregisterauswahl
Einzelheiten der Segmentregistersteuerschaltungen sind in
11
619 309
Fig. 9C gezeigt. Ein Segmentregister wird durch ein Konzentrationsverfahren ausgewählt. Zunächst wird in allen Registerstapeln die gewünschte Speicherstelle ausgewählt durch Adressierung aller Register mit den höherwertigen Bitstellen 0—4 der im Programm erscheinenden logischen Adresse, so dass aus jedem Stapel der Inhalt des gewählten Registers ausgegeben wird. Dann wird mit Hilfe der A AS-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 AAS-Bits 2 benutzt, um von den vorgewählten Segmentregistern zur Einschränkung zunächst vier auszuwählen und zwar entweder von den gradzah-ligen oder den ungradzahligen Stapeln. Die vom AAS-Bit 1 beaufschlagten Leitungen mit dem Signal echt (T) und Komplement (C) werden dann dazu benutzt, um von den zwei Gruppen von Stapelausgangssignalen nur eine auszuwählen, und zwar entweder die Stapel 0,1 und 4,5 oder die Stapel 2,3 und 6,7. (Hierbei bedeutet das Komma zwischen den Stapelnummern «oder»). Es werden also die Ausgabesignale eines Paares von Registern benutzt, und zwar entweder von den Stapeln 0,1 und 4,5, wenn AAS-Bit 1 im Zustand 0 ist, oder von den Stapeln 2, 3 und 6,7, wenn das AAS-Bit 1 im Zustand 1 ist. Von dem ausgewählten Paar wird schliesslich ein einzelnes Register ausgewählt aufgrund des Zustandes des SR-Hoch-Niedrig-Aus-wahl-Bit (AAS-Bit 0), welches dem Konzentrator 921 in Fig. 9A 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 Ausgangswerte abgibt.
E. 5. Steuerung zum Laden!Abspeichern der Segmentregister
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 Übersetzersteuerungen, welche zur Ausführung dieser Befehle benötigt werden.
In Fig. 8A ist gezeigt, wie der Befehl «SR Laden» die Eingabe einer physischen Blockadresse in ein gewähltes Segmentregister von einem adressierten Wortspeicherplatz im Hauptspeicher steuert. Der Befehl «SR Abspeichern» bewirkt das Kopieren des Inhalts eines ausgewählten Segmentregisters in eine adressierte Wortspeicherstelle im Hauptspeicher.
Das Format der 16 Bit langen Befehle zum Laden und Abspeichern der Segmentregister wird bestimmt durch einen 5 Bit langen OP-Code und ein 3 Bit langes Modifizierfeld, welche in den Bit-Positionen 0 bis 4 bzw. 13 bis 15 stehen.
Das Bit X in der Bit-Position 12 des SR-Befehls gibt an, ob es sich um eine Lade- oder um eine Abspeicher-Operation handelt. Wenn X auf 0 gesetzt ist, wird der Inhalt der adressierten Wortspeicherstelle im Hauptspeicher in das ausgewählte Segmentregister geladen. Wenn das X-Bit auf 1 gesetzt ist, dann wird der Inhalt des gewählten Segmentregisters in der adressierten Wortspeicherstelle abgespeichert.
Das R-Feld in den Bit-Positionen 5 bis 7 adressiert ein Allgemein-Register (AR), welches die Adresse des ausgewählten Segmentregisters enthält, welches geladen oder dessen Inhalt abgespeichert werden soll. Im Allgemein-Register ist das Schlüsselfeld in den Bit-Positionen 5 bis 7 eine Stapelnummer, die den gewählten Stapel identifiziert, und die AR-Bit-Positio-nen 0 bis 4 enthalten eine Segmentregisternummer, welche das gewählte Segmentregister identifiziert, welches geladen oder aus dem abgespeichert werden soll.
Die gewünschte Wortspeicherstelle im Hauptspeicher wird adressiert mit Hilfe einer logischen Adresse, welche generiert wird unter Benutzung des RB-Feldes in den Bit-Positionen 8 und 9, die ein Basisregister angeben; das AM-Feld in den Bit-
Positionen 10 und 11 (Zugriffsart) gibt an, ob ein Zugriffsart-Wort der Instruktion folgt. Der Inhalt des Zugriffsart-Wortes (AM-Wort) und des RB-Registers werden kombiniert, um die effektive (d.h. im Programm erscheinende) Adresse der Hauptspeicherwortstelle zu generieren, welche durch Ausführung der Instruktionen geladen oder aus der abgespeichert werden soll. Falls das System im Übersetzerbetrieb arbeitet, wird die generierte effektive Adresse in den Übersetzter eingegeben (Fig. 9A und 9B) zusammen mit dem aktiven Adressschlüssel AAS, um eine logische Maschineneingabeadresse zu bilden. Der Übersetzer gibt eine 24 Bit lange physische Adresse ab, mit der ein Zugriff zu der adressierten Wortspeicherstelle möglich ist.
Somit ist es möglich, dass bei dem Segmentregister, welches geladen werden soll, sein vorheriger Inhalt in einer Übersetzungsoperation benutzt wird, bevor dieser Inhalt durch den Segmentregisterladebefehl zu einer anderen physischen Blockadresse verändert wird.
Wenn der Prozessor nicht im Übersetzerbetrieb arbeitet, ist die generierte effektive Adresse die physische Adresse im Hauptspeicher.
Bits 13 und 14 der adressierten Wortspeicherstelle im Hauptspeicher enthalten die Werte für das Validitäts-Bit V und das Nur-Lese-Bit R, welche in das Segmentregister zu laden sind, um dessen Wirkung zu steuern, wenn es für eine angeforderte Übersetzung benutzt wird.
Fig. 17 zeigt die Steuereinrichtungen des Prozessors, die bei Ausführung der Befehle zum Laden bzw. Abspeichern der Segmentregister benutzt werden. Diese Steuerschaltungen im Prozessor generieren ein Segmentregisterzyklussignal, welches vom Übersetzer (Fig. 9A und 9B) benutzt wird, um das Laden oder Abspeichern eines Segmentregisters zu bewirken. Durch einen Befehl zum Laden oder Abspeichern eines Segmentregisters werden im Prozessor Mikrobefehle abgerufen, welche ein Signal «Anforderung zum Laden/Abspeichern eines Segmentregisters» erzeugen, und danach ein Signal für eine Prozessoranforderung eines Speicherzyklus. Das erste Signal setzt eine Kippschaltung 481 «SR-Anforderung folgt» (Fig. 17), und das zweite Signal gelangt an ein UND-Glied 482, welches durch das T-Ausgangsignal der Kippschaltung 481 freigegeben wird. Bei aktivem Ausgangssignal des UND-Gliedes 482 wird eine SR-Phasenkippschaltung (PH) für einen Zyklus gesetzt; deren Ausgangssignal aktiviert das UND-Glied 484, wenn der Übersetzer eingebaut ist. Das Ausgangssignal des UND-Gliedes 484 setzt eine Kippschaltung 486 «SR-Anforderung», um anzuzeigen, 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-Zyklusanforderung vorliegt, da CS-Zyklen die höchste Priorität haben. Der SR-Zyklus hat zweithöchste Priorität, und ein normaler Prozessor-Speicherzyklus hat niedrigste Priorität; dies wird bewirkt durch ein UND-Glied 493, das ein Prozessorspeicherzyklussignal auf Leitung 494 nur dann erzeugt, wenn kein SR-Anforderungssignal vom C-Ausgang der Kippschaltung 486 an seinem Eingang vorliegt. Der andere Eingang des UND-Gliedes 493 ist mit dem T-Ausgang der Prozessorzyklus-Kippschaltung verbunden. (Der T-Ausgang einer Kippschaltung gibt das echte oder wahre Ausgangssignal ab, während der C-Ausgang das Komplementärsignal abgibt).
Wenn während der Ausführung eines Befehls zum Laden oder Abspeichern eines Segmentregisters das UND-Glied 488 durch das T-Ausgangssignal der Kippschaltung 486 freigegeben wird, erhält sein anderer Eingang das T-Ausgangssignal von der Prozessorzykluskippschaltung 490, die immer dann aktiviert wird, wenn eine Speicherzyklusanforderung vom Prozessor vorliegt. Die Kippschaltung 490 wird durch ein Ausgangssignal des UND-Gliedes 491 gesetzt; dessen einer Eingang erhält zur
10
IS
20
25
.10
35
•10
45
50
55
60
()5
619 309
12
Freigabe das Signal «kein CS-Zyklus» (welches dann auftritt, wenn keine E/A-Speicher-Zugriffsanforderung vorliegt). Der andere Eingang des UND-Gliedes 491 erhält zur Freigabe das T-Ausgangssignal (wahres Ausgangssignal) der Prozessorspei-cheranforderungskippschaltung 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 Übersetzers im Abschnitt «Segmentregisterauswahl» erläutert wurde.
Wie bereits erwähnt, bestimmt der Binärwert des X-Bit im Befehl, ob eine Lade- oder Abspeicher-Operation ausgeführt wird; zu diesem Zweck wählt das X-Bit eine Lade- oder Abspei-cher-Mikroroutine vom Prozessorfestspeicher ROS. Für eine Segmentregisterladeoperation generiert die Mikroroutine zunächst eine Prozessorspeicheranforderung, während der das durch den SR-Befehl adressierte Wort aus dem Hauptspeicher abgerufen und in das Prozessorspeicherdatenregister SDR eingegeben wird. Danach gibt die Mikroroutine das Anforderungssignal für das Laden/Abspeichern des Segmentregisters ab, worauf eine weitere Prozessoranforderung für einen Speicher- ; zyklus folgt. Dies veranlasst die Schaltung in Fig. 17, um in der ober 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 Segmentregister ausgewählt und sein Inhalt in das Speicherdatenregister SDR übertragen wird. Dann ' bewirkt die Mikroroutine eine normale Prozessorspeicheranforderung, welche veranlasst, dass der Inhalt des SDR in die adressierte Speicherstelle im Hauptspeicher übertragen wird.
E. 6. Steuerung für Vorgriffs-Übersetzereinheit
Wenn bei der Adressübersetzung der Blockadressteil der physischen Adresse aus den Bits 0-4 der logischen Adresse erzeugt wird, wird zum Zugriff für die Auswahl und das Auslesen eines Segmentregisters SR ein Prozessortaktzyklus benötigt. 45 Ein weiterer Prozessortaktzyklus würde zum Zugriff benötigt (falls die Vorgriffsschaltungen nicht vorgesehen wären), um die ausgelesene Blockadresse zu decodieren, um den Schnittstellenbus zu der benötigten Speichereinheit auszuwählen, d.h. zum Innenspeicher, zum Aussenspeicher oder zum Asynchronspei- 50 eher, zu dem die physische Blockadresse ü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. 53 D.h., dass durch die Vorgriffsschaltung die Zugriffszeit bei Übersetzung um einen Prozessorzyklus verkürzt wird. Während des Übersetzungsvorganges 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 60 wird also keine zusätzliche Übersetzungszeit benötigt; sie werden gleichzeitig an alle drei Speichereinheiten abgegeben.
Für die Vorgriffsschaltungen werden in jedem Segmentregister (SR) in jedem der acht Stapel (Fig. 9A) zwei Bit-Positionen vorgesehen, die als Vorgriffsbits bezeichnet sind. Die Einteilung der Segmentregister zeigt Fig. 6. Die beiden Vorgriffsbits werden generiert und in das Segmentregister eingesetzt, wenn die
Blocknummer durch die Prozessorspeichersteuerung in das Seg-mentregister eingesetzt wird; diese Steuerung, welche die in Fig. 8 A 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 Übersetzung benutzt, um die Bestimmung und Auswahl der erforderlichen Speichereinheit parallel mit der schaltungsmässigen Übersetzung der logischen Eingangsadresse durchzuführen.
Die Blocknummer, nicht aber die Vorgriffsbits, können durch ein Programm gelesen werden, dass einen SR-Speicher-befehl 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 Asynchronspeicher. 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.
Die Vorgriffsbits werden nur von den Schaltungen benutzt und sind für den Programmierer oder den Systembenutzer nicht sichtbar. Sie dienen lediglich dazu, die Speicherzugriffe zu beschleunigen, und sind nicht Teil der Übersetzungsoperation.
Die Schaltungen zum Setzen der Vorgriffsbits sind in Fig. 9C gezeigt. Dazu gehören die Decodierer 901A und 902A, denen beide der höherwertige Teil der zugeordneten Blocknummer zugeführt wird, die in ein Segmentregister bei Ausführung eines Segmentregisterbefehls geladen wird, wie dies im Zusammenhang mit Fig. 8 A beschrieben wurde. Das ausgewählte Segmentregister befindet sich in einem der Stapel 0 bis 7 (Fig. 9C). Die Blocknummer wird abgegeben vom Befehl «Segmentregister laden», welcher die durch Programm zugeteilte Blocknummer von dem Speicherplatz im Hauptspeicher abruft, der durch den Befehl adressiert wird, wonach die Blocknummer in das Speicherdatenregister SDR (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 Segmentregisterladeweg ist in Fig. 9C im einzelnen gezeigt; die Signale auf den SR-Eingangsleitungen 00-07 werden zur Erzeugung der Vorgriffbits benutzt. Die Leitungen 00 bis 06 sind mit dem Eingang des O-Decodierers 902A verbunden, und die Leitungen 00 bis 07 sind mit dem Eingang des O-Decodierers 901A verbunden. Jeder der O-Decodierer gibt eine 1 als Vorgriffssignal ab, wenn an seinen Eingängen lauter Nullen vorliegen, und er gibt ein 0-Signal am Ausgang ab, wenn irgendeiner der Eingänge gleich 1 ist. Wenn der Decodierer 901A lauter Nullen in den Bit-Positionen 00 bis 07 feststellt, überträgt er ein 1-Bit in die linke Vorgriffsbitstelle des adressierten Segmentregisters in den Stapeln; wenn aber irgendeines der Eingangsbits 0 bis 7 eine 1 ist, dann wird das linke Vorgriffsbit auf 0 gesetzt. Der Decodierer 901A zeigt an, ob der physische Block, dessen Adresse geladen wird, im Innenspeicher steht oder nicht; hiervon hängt es ab, ob ein ISZ-Signal erzeugt werden muss.
Wenn der Decodierer 902 A 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, dass die Innenspeichereinheit nicht die betroffene Speichereinheit 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 Adresse, die geladen wird, vorliegt oder nicht; dies schliesslich
13
619 309
zeigt an, ob der betreffende Block im Aussenspeicher steht,
oder im Asynchronspeicher.
Bei jedem Segmentregister also, das geladen wird, werden die Vorgriffsbits so gesetzt, dass sie diejenige Speichereinheit angeben, welche den zugeordneten Block enthält. Die SR-Ladeoperation erfolgt während eines SR-Zyklus, der auf Leitung 923 im Konzentrator 922 (Fig. 9A) von der Grundsteuerung 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 Segmentregisteradresse wird von den Leitungen 00 bis 04 des Speicheradressbus 901 über das PH-Register zu den Segmentregisterstapeln 0-7 (Fig. 9A) übertragen. Diese Adresssignale gelangen auf die Leitungen 00 bis 07 des Speicheradressbus 901 (Siehe Fig. 3C) vom Speicheradressregister 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-Adress-Bits auf den Leitungen 00 bis 07 des Bus 901 sind. (Das Allgemein-Register AR wird im Niveau-Stapel 431 (Fig. 4) durch eine Niveaustapeladresse ausgewählt, die vom AR-Feld im Befehl «Segmentregister laden» abgeleitet wurde).
Der Konzentrator 922 gibt dann die Stapeladresse des gewählten Segmentregisters auf seinen folgenden Ausgansleitungen ab: AAS-Bit 2, AAS-Bit 1, und «SR Hoch-Niedrig-Auswahl» (Leitung 935). Die Leitung 935 gibt ein Einganssignal an die Grundsteuerung in Fig. 9B. Diese Schaltungen sind im Einzelnen in Fig. 9D-2 gezeigt; sie erzeugen die Signale für die Leitungen 932 und 933, die mit den Segmentregisterstapeln 0-7 zur Angabe des niederwertigen Stapeladressbits verbunden sind, und entsprechend der wahren und der komplementären Form des Signals auf Leitung 07 des Speicheradressbus 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 Uebersetzungsbetrieb 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 Vòr-griffsbits 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 Konzentrators 931 wird jeweils eine von drei Ausgangsleitungen aktiviert, um den gewählten Speicherzyklus anzugeben, nämlich entweder ISZ, OSZ oder ASZ. Für den Prozessor werden die ISZ-Signalleitungen 54A vom Prozessor durch die Speicherprioritätsauswahlschaltung 56 zur Innenspei-chereinheit 51 (Fig. IC) benutzt. Da die Leitung 54A auf jeden Fall existieren, ob nun das System einen Übersetzer hat oder nicht, wird die Innenspeicherzyklus-Steuerleitung vom Konzentrator 931 mit dem Prozessor verbunden, um eine ISZ-Adressieroperation zu veranlassen. Die Leitungen für den Aussen-speicherzyklus und den Asynchronspeicherzyklus führen zu den Fig. 9E bzw. 9F-1, um die Adressauswahl in den betreffenden Einheiten zu veranlassen.
F. Operandenbereichsabgleich
Eine Speziell vorgesehene Einrichtung ist der Operandenbereichsabgleich (OBA). Wenn diese Bedingung im Adressschlüsselregister ASR gesetzt ist, ergibt sich ein spezieller Adressierungszustand, bei dem alle Operandenabrufe zwangsweise im OP2S-Adressbereich stattfinden, während der Adressbereich, der durch den OPlS-Adressschlüssel angegeben ist, obwohl der Schlüssel im OPlS-Registerabschnitt des Adressschlüsselregisters ASR nicht geändert wird.
Der OBA-Zustand des Systems wird herbeigeführt durch den in Fig. 13 A gezeigten Freigabebefehl, wenn dessen OB A-Bit 13 auf 1 gesetzt ist. Wenn dieser Befehl ausgeführt wird, bewirkt das gesetzte OBA-Bit, dass der OBA-Registerabschnitt im betreffenden ASR entsprechend geladen wird durch Eingabe vom Prozessor-ROS-Decodierer (Fig. 4). Es wird keiner der Schlüssel im ASR geändert, wenn der OBA-Zustand aktiviert wird. Es wird jedoch nicht zu dem 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 OB A-Leitung vom ASR zwangsweise bedingt, dass der AAS-Ausgang den OP2S-Schlüssel abgibt, jedesmal wenn bei Ausführung eines Befehls im Prozessor eine Zugriffsanforderung entweder für einen OP1-Operanden oder einen OP2-Operanden vorliegt.
Wenn der OBA-Zustand beendet wird durch Ausführung eines Sperrbefehls, dessen OBA-Bit 13 auf Null gesetzt ist, wird der Schlüsselwert im OPlS-Registerabschnitt wieder in Benutzung genommen, und bei jeder OP1-Operandenanforderung ausgegeben.
G. Adressbereichsbestimmung durch Schlüsseleingabe 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 Adressbereich, zu 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 Befehlsabrufe 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 OPIS definiert ist. (Auf Grund der Konstruktion sind keine Schreiboperationen für Operanden 1 vorgesehen). In ähnlicher Weise erfolgen alle Schreib- und Leseoperationen, die einen Datenoperand 2 betreffen (wie beim Entwurf der Befehlsstruktur vorgesehen), im Adressbereich, der durch den OP2S definiert ist.
Wenn z. B. ISS = OPIS = OP2S, erfolgen alle Speicherzugriffe zu dem gleichen logischen Adressbereich von 64 K Bytes Kapazität. Wenn ISS nicht gleich OP1 ist, wenn aber OPIS = OP2S, dann erfolgen die Instruktionsabrufe im ISS-Adressbereich und die Datenzugriffe erfolgen im OP2-Adressbereich. Wenn ISS =t= OPIS. =t= OP2S, dann erfolgt der Befehlsabruf im ISS-Adressbereich, jeder Abruf eines Operanden 1 im OP1S-Adressbereich, und jeder Abruf oder jede Abspeicherung eines Operanden 2 im OP2S-Adressbereich, wobei also die 3 Adressbereiche voneinander verschieden sind. Der Datenfluss für eine Klasse von Instruktionen, bei denen drei verschiedene Adressbereiche benutzt werden, ist in Fig. 2A dargestellt. Die Schlüsselwerte im ASR können nur gesetzt werden, wenn der Prozessor im Überwachungsprogrammbetrieb arbeitet, d.h. wenn die Befehle zum Laden des ASR privilegiert sind.
H. Laden des ASR bei Unterbrechung
Wenn im Prozessor eine Unterbrechung vorkommt, werden in das ASR zur Vorbereitung Adressschlüssel für Adressbereiche eingegeben, die von den die Unterbrechung behandelnden
S
10
I ^
2(1
25
Kl
.15
40
45
50
55
00
h 5
619 309
14
Programmen benötigt werden könnten. Es gibt im System eine Mehrzahl verschiedener Arten von Unterbrechungen, deren jede ihre spezielle Programmierunterstützung hat, die wiederum das Laden bestimmter Adresschlüssel erfordert. Zu den Prozessorunterbrechungen gehören: Unterbrechungen zum Überwachungsprogrammaufruf, E/A-Geräteunterbrechungen, Maschinenfehler-/Programmfehler-Unterbrechungen, Programm-Protokoll-Unterbrechungen, Bedienungsfeld-Unterbrechungen ûnd Unterbrechungen bei thermischer Überlastung. 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üssel in den OPlS-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-Übertra-gungsoperation vom unterbrechenden Adressbereich (d.h. OPlS-Bereich) zum OP2S-Adressbereich mit Schlüssel = 0. Wenn eine Klassenunterbrechung auftritt, wird z.B. ein Niveaustatusblock NSB in den OP2S-Bereich abgespeichert, welcher den Schlüssel = 0 hat (d.h. OP2S = 0), wobei Daten vom OPlS-Bereich abgerufen werden. Der Inhalt des ASR wird mit einem Befehl zum Abspeichern des ASR auch in den NSB eingegeben.
Andere Zustände, bei denen alle Schlüsselwerte im ASR = 0 gesetzt werden, sind: Systemrückstellung und einleitendes Programmladen, während denen die OPA-Einrichtung, der Übersetzer, und die Speicherschutzeinrichtung alle gesperrt sind.
H. 1. Unterbrechung mit Überwachungsprogramm-Ruf (SVC-Unterbrechung)
Für die unten besprochenen Operationen bei der SVC-Unterbrechung ist angenommen, dass die Überwachungsprogramme im Adressbereich mit Schlüssel = 0 untergebracht sind, und dass das Benutzer-Programm in einem anderen Adressbereich, d.h. mit Schlüssel +i0 steht. Es ist weiterhin angenommen, dass ein Austausch von Daten zwischen Benutzer und Überwachungsprogramm erforderlich ist. Die Daten müssen vom Adressbereich des Benutzers in den Adressbereich des Überwachungsprogramms geholt werden und müssen später zum Adressbereich des Benutzers zurückübertragen werden.
Fig. 13B zeigt die Ladeoperationen für das ASR bei einer SVC-Unterbrechung. Es wird angenommen, dass anfänglich im Benutzerzustand jeder der drei Benutzerschlüssel den Wert 2 hat, und dass das OBA-Feld = 0 gesetzt ist. Wenn im Prozessor der Fig. 4 ein Überwachungsprogramm-Rufbefehl (SVC-Befehl) ausgeführt wird, bewirkt die Zwangsadressschaltung, dass eine Folge von ROS-Wörtern abgerufen und ausgeführt wird, wodurch der Prozessor in den Überwachungszustand gebracht wird. Es wird auch ein Niveaustatusblock NSB abgespeichert, der Inhalt von OP2S an den Inhalt von OPIS ausgegeben, sodass der Adressbereich, der die Daten enthält, die bei der Generierung der Unterbrechung beteiligt waren, adressierbar wird. Die Null-Ausgabeleitung (AG 0) vom Prozessor-ROS-Decodierer wird aktiviert und über den Prozessordatenpfad in die OP2S- und ISS-Positionen des ASR Werte eingegeben.
Daten werden vom Benutzerbereich in den Überwachungsprogrammbereich übertragen, und dann wird der Freigabebefehl (Fig.l3A) mit einer 1 in Bitposition 13 ausgeführt, um den
OBA-Zustand 4, der in Fig. 13 B gezeigt ist, herbeizuführen. Dies bewirkt, dass alle Speicherzugriffe im Adressbereich mit Schlüssel = 0 erfolgen, während das Überwachungsprogramm im OBA-Zustand ausgeführt wird, wobei die Zugriffsmöglich-? keit zum OP 1 - Adressbereich nicht verloren wird.
Wenn das Überwachungsprogramm Information in den OP1 S-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 OP1-Adressbereich, io Dann wird der Zustand 6 von Fig. 13B herbeigeführt durch Auswechseln der Felder OPIS und OP2S, damit dem Überwachungsprogramm eine Adressiermöglichkeit zum Abspeichern im OPlS-Bereich gegeben wird. Das Überwachungsprogramm kann dann die Daten vom Überwachungsprogrammbereich zum i 5 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 i() ein SVC-Befehl ausgegeben wird. Zu diesen Operationen gehört die Rettung des alten Inhalts des ASR und Laden eines neuen Inhalts in das ASR entsprechend der nachfolgenden Übersicht, wobei die Abschnittsnummern der Ubersicht und die eingekreisten Nummern an den Datenpfaden in der Fig. 18 25 einander entsprechen. Die Ausführung des SVC-Befehls im Prozessor geschieht auf folgende Weise:
(I) Am Anfang der Ausführung des SVC-Befehls wird der Inhalt des ASR 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 Übertragung des ASR-Inhaltes in das Register TEMPA in Fig. 18; es wird angenommen, dass OPIS, OP2S und ISS auf den Wert 3 gesetzt worden sind.
,5 (2) Ausgabe OP2S und Eingabe OPIS.
(3) OP2S = ISS = 0 setzen.
(4) Der Inhalt des Niveaustatusregisters (NSR) wird im Temporärregister gespeichert (TEMPB').
(5) Im Register NSR' wird das Bit für den Überwachungs-40 zustand gesetzt, das Bit für die Summenmaske rückgestellt, und das Protokollbit ebenfalls rückgestellt.
(6) Der Inhalt des BAR (Befehlsadressregister) wird dann ■um zwei Einheiten erhöht, sodass jetzt die nächste Speicherstelle adressiert wird, in welchem sich der Anfang der Daten
45 oder ein Zeiger zu den Daten befindet.
(7) Wenn der Prozessor den SVC-Zustand entdeckt, wird der Inhalt der Speicherstelle ÓOlO im Adressbereich mit Schlüssel = 0 abgerufen. Dieser Bereich enthält definitionsgemäss eine Adresse (d.h. einen Zeiger) zu einem Niveauspeicherblock
50 (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
55 vorgesehenen Speicherplatz werden dann die Inhalte von BAR, TEMPA, TEMPB, sowie der Allgemein-Register 0-7 gespeichert (NSB).
(10) Die SVC-Nummer (welche die betreffende Art von SVC-Befehl identifiziert) wird aus dem SVC-Befehl im Adress-bereich 1 kopiert in das Register Rl.
(II) Der Inhalt des Speicherplatzes 0012 wird in das BAR übertragen.
(12) Es beginnt jetzt die Ausführung der Überwachungsprogrammroutine, welche an der Speicherstelle mit Adresse ,,5 0012 beginnt.
Das ist die Routine, welche durch SVC Nummer 2 gerufen wird.
15
619 309
Beim Beginn der SVC-Routine hat das ASR folgenden Inhalt:
OPIS OP2S'
OP2S 0
ISS 0
(Bemerkung: OP2S' 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:
H. 2. Gerätebedingte Unterbrechung
(1) Protokoll rückstellen, OB A sperren, und Überwa-chungszustände setzen.
(2) ISS = OPIS = OP2S = 0 setzen.
(3) Die Adresse eines Gerätedatenblocks in Register 1 einsetzen.
(4) Die Unterbrechungsidentifikation (ID), welche vom unterbrechenden E/A-Gerät empfangen wurde, in Register 7 einsetzen.
Der sich ergebende Inhalt des ASR ist:
OPIS 0
OP2S 0
ISS 0
H. 3. Unterbrechung bei Maschinenfehler und Programmfehler
(1) Protokoll rücksteilen, Summenmaske sperren, OBA sperren, und Überwachungszustände setzen. Den NSB im Adressbereich mit Schlüssel = 0 abspeichern.
(2) ISS = OP2S = 0 setzen.
(3) LKSA im OPIS speichern.
(4) Inhalt des SAR im Register 7 speichern (ausser Protokollbit).
Es ergibt sich folgender Inhalt des ASR:
OPIS LKSA
OP2S 0
ISS 0
(Bemerkung: LKSA ist der letzte im Register 408 in Fig. 4 gespeicherte Schlüssel bei Auftreten der Unterbrechung).
H. 4. Unterbrechung vom Bedienungsfeld/Unterbrechung bei thermischer Überlastung
(1) Protokoll rückstellen, Summenmaske sperren, OBA sperren, und Überwachungszustände setzen.
(2) NSB abspeichern unter Benutzung des Adresschlüs-sels 0.
(3) ISS = OPIS = OP2S = 0 setzen.
Es ergibt sich folgender Zustand des ASR:
OPIS 0
OP2S 0
ISS 0
H.5. Protokollaufzeichnungs-Unterbrechung
(1) Protokoll rückstellen, Summenmaske sperren, OBA sperren, und Überwachungszustände setzen. NSB abspeichern im Adressbereich mit Schlüssel = 0.
(2) ISS übertragen nach OPIS.
(3) OP2S = ISS = 0 setzen.
Daraus ergibt sich folgender Inhalt des ASR:
OPIS OP2S ISS
ISS' 0 0 (Bemerkung: ISS'entspricht dem zur
Zeit der Unterbrechung vorliegenden ISS).
2. Schaltungen für Speicherschutz ohne Übersetzer
Die in Fig. 11 gezeigten Speicherschutzschaltungen für übersetzungsfreie Adressierung (Üfa-Speicherschutzschaltun-gen) werden benutzt, wenn der in Fig. 9A und 9B gezeigte ; Adressverschiebungsübersetzer entweder nicht freigegeben oder im System nicht installiert ist. Die Erfindung ermöglicht eine Aufwärtskompatibilität zwischen einem System mit Übersetzer und Adressschlüsselspeicherschutz einerseits und einem System ohne Übersetzer mit Speicherschutz andererseits. Das 1 heisst: Programme und Daten, die in einem System benutzt werden, welches mit der ÜFA-Speicherschutzeinrichtung arbeitet, können ohne Änderung in einer Anlage benutzt werden, die einen Adressverschiebungsübersetzer hat. Diese Wechselmöglichkeit zwischen zwei Arten von Speicherschutzschaltungen ist i s für Systembenutzer sehr wichtig, die mit einem relativ kleinen Speichersystem, das preiswert ist, beginnen wollen, und die ihren Speicher später für ein grösseres System erweitern wollen.
Wenn der Adressverschiebungsübersetzer freigegeben ist, und die ÜFA-Speicherschutzschaltung auch freigegeben ist, :<> wird der Adressverschiebungsübersetzer gesperrt. Der Zustand der ÜFA-Speicherschutzeinrichtung wird gesteuert durch den Freigabe/Sperrbefehl, der in Fig. 13A gezeigt ist.
Die ÜFA-Speicherschutzschaltungen ermöglichen die Verhinderung unerwünschter Zugriffe zu einer Hauptspeicherstelle, sei es durch einen Prozessorbefehl oder einen E/A-Befehl, der eine nicht übersetzte Adresse benutzt. Mit den ÜFA-Speicher-einrichtungen wird der Hauptspeicher in Blöcke von je 2048 Byte Kapazität unterteilt. Für jeden Block des Hauptspeichers wird ein Speicherschlüsselregister in einem Registerstapel 501 m (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, 35 das im System abläuft. Bei Verwendung der ÜFA-Speicherschutzeinrichtung sind die im Programm erscheinenden Adressen die physischen Adressen; wenn aber der Übersetzer freigegeben wird, ist die im Programm erscheinende Adresse ein Teil der logischen Eingangsadresse. Jedes Register hat mindestens •io drei Bitstellen für einen zugeordneten Speicherschlüssel und ein Nur-Lese-Bit R; es kann auch zusätzlich ein Validitätsbit V haben (nicht gezeigt). Für die drei langen Speicherschlüssel sind die Bit-Positionen 0,1, und 2 vorgesehen, welche durch eine der üblichen Befehle zum Laden von Speicherschlüsseln geladen 45 werden können (wie z.B. im IBM System/360).
Ein zur ÜFA-Speicherschutzoperation gehörender Vergleichsteil entspricht in etwa der Arbeitsweise der Speicherschlüsselschutzeinrichtungen, die in bekannten Systemen wie z.B. IBM-Systeme/360 oder IBM-Systeme/370 vorkommen, su Die übrigen, damit zusammenarbeitenden Teile der ÜFA-Spei-cherschutzeinrichtungen aber gehören zu der neuen Lösung, welche in dieser Beschreibung dargestellt ist, ebenso ihre Kombination mit den besonderen AAS-Auswahlschaltungen 333 (Fig. 3D).
55 Für die Vergleichsoperation werden die höchstwertigen Bits 0-4 der 16 Bit langen physischen Adresse benutzt, um dasjenige Register im Stapel auszuwählen, welches dem Innenspeicher-block zugeordnet ist.
wl Der Speicherschlüssel 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 Vergleicher anzeigt, dass die beiden Schlüssel gleich sind, so wird der Zugriff o5 zugelassen, vorausgesetzt, dass die ÜFA-Speicherschutzeinrichtung freigegeben ist, und dass es sich bei dem Zugriff entweder um eine Abruf-Operation handelt oder um eine Schreib-Opera-tion, wobei das Nur-Lese-Bit auf 0 gestellt ist. Die ÜFA-
619 309
16
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 OPIS, OP2S und ISS erreicht werden.
Ein weiteres besonderes Merkmal der ÜFA-Speicher- ,
Schutzeinrichtungen 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 1 " betreffenden Benutzer im ASR im Prozessor definiert sind; alle Benutzer können den Schlüssel = 7 in jedem Registerabschnitt des ASR benutzen, um einen von den Benutzern gemeinsam benutzten Speicherbereich zu definieren.
Die Schaltung 505 steuert die Zugriffe zu den gemeinsam ' ' benutzten Speicherbereichen.
Eine besondere Zugriffssteuerung für E/A-Operatioren bei Benutzung der ÜFA-Speicherschutzeinrichtungen ist durch die Schaltungen 504 und 505 gegeben, welche ermöglichen, dass eine E/A-Cycle-Steal-Zugriffsanforderung sowohl zu dem Spei-cherbereich, der für den betreffenden Benutzer in seinem ASR definiert ist, als auch zu dem gemeinsamen Speicherbereich mit Schlüssel = 7 gemacht werden kann, wobei kein E/A-Cycle-Steal-Zugriff verhindert wird durch das Nur-Lese-Bit im verwendeten Speicherschlüsselregister. D.h. also, dass ein E/A- 25 Schreibzugriff immer zugelassen wird unabhängig vom Wert des Nur-Lese-Bits im ausgewählten Register im Stapel 501.
Falls der Prozessor im Überwachungsprogrammzustand ist, d.h. wenn Bit 8 im NSR (Fig. 4) gesetzt ist, werden die Speicherschlüsselschutzschaltungen umgangen und alle Zugriffe zu jedem beliebigen Block im Hauptspeicher erlaubt.
Zusammenfassen kann man sagen, dass die Adressbereichs-auswahlsteuerung, welche durch das Adressschlüsselregister ASR gegeben ist, immer benutzt wird, sowohl bei Freigabe der ÜFA-Speicherschutzeinreichtung als auch bei Benutzung einer ^ zusätzlich vorgesehenen Übersetzer-Einrichtung. Der aktive Adressschlüssel AAS ist entweder ein CS-Schlüssel oder ein Schlüssel, der aus dem ASR ausgewählt wurde bei Ausführung eines Prozessorbefehls, in Abhängigkeit davon, welche Art Information durch den Zugriff abgerufen wird (Art von Ope-rand bzw. Befehl).
Wenn die ÜFA-Speicherschutzeinrichtung freigegeben ist, muss mindestens eine der folgenden Bedingungen erfüllt sein, damit ein versuchter Speicherzugriff erlaubt wird: 45
(1) Die Anlage befindet sich im Überwachungsprogrammzustand.
(2) Der Speicherschlüssel des adressierten Blocks ist 7. Bei einem Versuch zum Einschreiben im Speicher muss das Nur-Lese-Bit = 0 sein. 50
(3) Der Speicherschlüssel des adressierten Blocks muss dem aktiven Adressschlüssel AAS gleich sein. Wenn eine Speicher-schreib-Operation versucht wird, muss das Nur-Lese-Bit = 0 sein.
55
Wenn keine der obigen Bedingungen (1), (2) oder (3) erfüllt ist, gibt der Inverter 507 (Fig. 11) ein Speicherzugriffsperrsignal aus, durch welches eine Programmfehler-Unterbrechung (PCK) hervorgerufen wird, welche das entsprechende Bit im Prozes-sor-Zustandswortregister (PSW-Register) setzt. «>
Im Überwachungsprogramm-Zustand ist also freier Zugriff zu sämtlichen Teilen des Hauptspeichers gegeben. Ein Zugriff zu einem Speicherbereich, der einen Speicherschutzschlüssel 7 hat, ist erlaubt unabhängig vom Wert des aktiven Adressschlüssels AAS oder der Werte im Adressschlüsselregisters ASR, (,5 wenn das System nicht im Überwachungsprogramm-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 Adressschlüssel definierten adressierbaren Speicherbereichs einige Blöcke im Nur-Lese-Zustand gehalten werden können, während zu anderen Blöcken ein Schreibzugriff möglich ist; dies ist abhängig von dem Binärwert des Nur-Lese-Bits der betreffenden Blöcke im adressierbaren Speicherbereich. Das Nur-Lese-Bit kann durch das Überwachungsprogramm gesetzt werden, welches die Stapelregister lädt.
Beim einleitenden Programm-Laden (IPL) sind sowohl die ÜFA-Speicherschutzeinrichtungen als auch die Übersetzer-Ein-richtungen beide gesperrt, sodass beim einleitenden Laden in jedem Platz des Hauptspeichers eingeschrieben werden kann. Nach der erfolgreichen Durchführung des einleitenden Pro-gramm-Ladens (IPL) kann jede der beiden Speicherschutzeinrichtungen freigegeben werden, und bei Vorkommen von Adressschlüsseln im ASR, die auf 0 eingestellt sind, geht die Anlage in den Überwachungsprogramm-Zustand über.
Die ÜFA-Speicherschutzeinrichtung und die Übersetzereinrichtung benutzen zwar gemeinsam die Einrichtung des aktiven Adressschlüssels A AS, sie haben aber auch eine Anzahl von Merkmalen, die verschieden sind, wie z.B.:
(1) Bei ÜFA-Speicherschutzeinrichtung ist im Überwa-chungsprogramm-Zustand der Zugriff zu sämtlichen Teilen des Hauptspeichers gestattet unabhängig vom Speicherschlüssel. In einem System mit Übersetzer kann im Überwachungsprogramm-Zustand nur zu dem Speicherbereich zugegriffen werden, der durch den aktiven Adressschlüssel AAS definiert ist.
(2) Die gesamte Speicherkapazität, die in einem ÜFA-Speicherschutzsystem durch Adressschlüssel definiert ist,
beträgt höchstens 64 K Bytes. Der gesamte statische Speicher, der durch die Adressschlüssel in einem Übersetzersystem definierbar ist, kann zu jeder Zeit eine Kapazität von bis zu 512 K Bytes haben.
(3) In einem Ubersetzersystem beginnt der durch die Adressschlüssel definierte Adressbereich bei der logischen Adresse 0. In einem ÜFA-Speicherschutzsystem beginnt der durch die Adressschlüssel definierte Adressbereich bei verschiedenen möglichen Grenzen von Blöcken von je 2 K Bytes Kapazität, doch ist durch den Adressschlüssel immer eine Zugriffskontrolle je nach Art gegeben.
(4) Die Befehle, welche benutzt werden, um die Speicherschlüsselregister im Prozessor zu laden oder um aus diesen abzuspeichern, sind verschieden von den Befehlen, die benutzt werden, um in einem System mit Übersetzer die Segmentregister zu laden oder aus ihnen abzuspeichern.
(5) Für ein E/A-Gerät in einem System, bei dem ein Übersetzer freigegeben ist, kann keine Speicherschutz-Fehleroperation vorkommen, ein E/A-Gerät in einem System mit ÜFA-Speicherschutzeinrichtung aber kann Speicherschutz-Fehler-operationen annehmen für den Zugriff zu einer Adresse, welche nicht zu dem durch einen CS-Schlüssel oder durch einen Schlüssel? definierten Bereich gehört.
(6) Wegen der bei einem System mit Übersetzer gegebenen Flexibilität für die Adressumsetzungen sind bei Vorliegen der ÜFA-Speicherschutz-Einrichtungen bestimmte Umsetzungen von logischen in physische Adressbereiche schwierig auszuführen, z.B. Benutzung eines gemeinsamen Bereichs für nur zwei Adressschlüssel.
3. Alternative Speicherschutz-Betriebsart (ASB) bei Systemen mit Adressübersetzung
Fig. 14 zeigt die Steuerschaltungen für eine alternative Speicherschutz-Betriebsart (ASB), die in einem Datenverarbeitungssystem verwendet werden kann. Diese Betriebsart ist eine Alternative zur oben beschriebenen Übersetzungsbetriebsart, bei der ein mehrfach unterteiltes Adressschlüsselregister ASR
17
619 309
(Fig. 1D) benutzt wird. Bei dieser alternativen Betriebsart gibt es nicht die vom Typ des Speicherzugriffs abhängige Adressierbarkeit durch den Prozessor, die mit der Anordnung gemäss Fig. 1D erreicht werden kann; sie ermöglicht jedoch separate Adressierbereiche für E/A-Speicherzugriffe. Die alternative Betriebs- s art ermöglicht dem Prozessor eine unterschiedliche, von einem aktiven Adressschlüssel abhängige Adressierbarkeit für seine verschiedenen Programme und Daten mit unterschiedlichem Benutzeradressschlüssel; sie erlaubt aber auch eine interaktive Beziehung des Benutzers zum Überwachungsprogramm, m soweit erforderlich, ohne dass dabei der Inhalt eines Benutzerschlüsselregisters (BSR) 460 verändert werden müsste.
In der Anordnung gemäss Fig. 14 kann nur ein einzelner Adressschlüssel in das BSR-Register 460 des Prozessors gela- , s den werden, so dass sämtliche Speicherzugriffe zur Ausführung eines Benutzerprogramms 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 Überwachungszustand eingeschaltet ist, enthält Bitposition S eine Eins; wenn die ASB-Betriebsart eingeschaltet ist, enthält Bitposition A eine Eins.
Wenn beide Bitpositionen S und A eine Eins enthalten, wird eine erste Art von Prozessoroperation vorgesehen, bei der das Überwachungsprogramm (welches im Adressbereich mit Schlüssel = 0 enthalten ist) mit dem Adressbereich des laufenden Benutzeradressschlüssels (der im BSR 460 enthalten ist) „ arbeiten kann. D.h., dass das Überwachungsprogramm aus dem Bereich mit Schlüssel = 0 heraus arbeitet, und dabei Operanden aus dem durch den Benutzerschlüssel bezeichneten Adressbereich benutzt. Das Überwachungsprogramm kann aber nicht zu anderen Adressbereichen im Hauptspeicher zugreifen, die zu 4„ anderen Adresschlüsseln gehören. Diese Arbeitsweise des Überwachungsprogrammes mit eingeschränkter Adressierbarkeit ermöglicht zwar den Programmen zur Unterbrechungsbehandlung, zu einem gegenwärtigen unterbrochenen Benutzerprogramm und dessen Daten zuzugreifen, ohne dass dabei die 45 Gefahr besteht, dass das Überwachungsprogramm bei einer eigenen Störung die Integrität nicht-beteiligter Bereiche des Hauptspeichers stört. Im übrigen kann ein Benutzerprogramm bei seiner Ausführung niemals zum Speicherbereich des Überwachungsprogramms zugreifen, weil jedes Benutzerprogramm nur zu dem durch den eigenen Benutzeradressschlüssel definierten Speicherbereich Zugriff hat.
Eine zweite Art von Prozessoroperation tritt auf, wenn das Überwachungsprogrammbit S Eins und das ASB-Bit A gleich Null ist. Hierbei kann das Überwachungsprogramm aus dem 55 Bereich mit Schlüssel = 0 heraus arbeiten, ohne den laufenden Benutzerschlüssel im BSR 460 zu stören. In diesem Fall erfolgen alle Befehls- und Operandenzugriffe nur im Bereich mit Schlüssel = 0, und das Überwachungsprogramm darf zu keinem Benutzerbereich zugreifen. D.h., dass in diesem Zustand das Überwachungsprogramm einen Zugriff weder zu dem Benutzerbereich hat, der durch den gegenwärtigen Inhalt des BSR 460 identifiziert ist, noch zu sonst einem durch irgendeinen andern Schlüssel definierten Bereich. Durch diese Art von Systembetrieb wird die Notwendigkeit vermieden, den Schlüssel = 0 jeweils in das BSR 460 einzugeben.
Eine dritte Art von Prozessoroperation ist vorgesehen,
wenn das Überwachungsprogrammbit S gleich Null ist, wobei der Wert des ASB-Bit A ohne Belang ist. In diesem Fall erfolgen alle 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 A-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 Befehlsab-rufsvorgang zu sperren. Während das UND-Glied 461 gesperrt ist, gibt es ein Nullsignal, welches den Schlüssel = 0 darstellt, an den AAS-Bus. Ein Befehlsabruf ist also nur im Speicherbereich des Überwachungsprogramms mit dem Schlüssel = 0 erlaubt.
Wenn keine Befehlsabruf-Anforderung vorliegt (also in den Zeiten zwischen den Befehlsabruf-Anforderungen), wird das UND-Glied 462 nicht freigegeben, so 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 Überwachungsprogramm abgerufener Befehl zu Operanden zugreifen kann, die im Bereich stehen, der zu dem im BSR 460 stehenden Schlüssel gehört.
Wenn im NSR das ASB-Bit A rückgestellt ist (gleich Null), während das Überwachungsprogrammbit S gesetzt ist (gleich Eins), bleibt das UND-Glied 464 ständig freigegeben und sperrt über Inverter 467 das UND-Glied 461, so 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 Überwachungsprogramm für alle Befehlsabrufe und Operandenzugriffe auf den Bereich des Schlüssel = 0 eingeschränkt ist, unabhängig vom Wert des Benutzerschlüssels im BSR 460.
Wenn das S-Bit im NSR 470 rückgestellt ist (gleich Null), bleiben UND-Glieder 462 und 464 ständig gesperrt, so dass Inverter 467 ständig ein Freigabesignal 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üssel im BSR 460 gegeben ist. Das Überwachungsprogramm kann nur arbeiten, wenn Bit-S gesetzt (gleich Eins) ist.
29 Blatt Zeichnungen

Claims (5)

  1. 619 309
    PATENTANSPRÜCHE
    1. Steuer- und Adressieranordnung für einen Hauptspeicher (51, 52, Fig. IC) in einer Datenverarbeitungsanlage, gekennzeichnet durch
    — ein Zugriffsschlüsselregister 31 .. .35, Fig. 1 A—1) mit Abschnitten für mehrere Zugriffsschlüssel;
    — eine Auswahleinrichtung (20, Fig. 1 A—1 ; 333, Fig. 3C; Fig. 3D) zur Auswahl und Weitergabe je eines Zugriffsschlüssels aus dem Zugriffsschlüsselregister als aktiver Zugriffsschlüssel aufgrund von Auswahl-Steuersignalen;
    — Detektoreinrichtungen (405, Fig.4) im Prozessor der Datenverarbeitungsanlage zur Feststellung verschiedener Speicherzugriffsanforderungen nach Zugriffs- oder Informationsart, und Steuervorrichtungen (332, Fig. 3C) zur Freigabe je einer Zugriffsanforderung und zur Abgabe eines entsprechenden i s Auswahl-Steuersignals an die Auswahleinrichtung;
    — eine Gruppe von Speicherschlüsselregistern (501, Fig. 11), deren jedes einem Speicherblock im Hauptspeicher zugeordnet ist und ein Feld (0,1,2,) zur Aufnahme eines Speicherschlüssels aufweist, und aufgrund der Blockadresse aus höherwertigen Bits 20 einer im Speicheradressregister des Prozessors (SAR) vorliegenden Adresse ausgewählt werden kann;
    sowie
    -eine Vergleichseinrichtung (502, Fig.l 1), welche mit der Auswahleinrichtung und den Speicherschlüsselregistern zur 25 Übertragung je eines Zugriffsschlüssels und eines Speicherschlüssels verbunden ist, und welche ein erstes Anzeigesignal abgibt, das anzeigt, ob der Zugriffsschlüssel und der Speicherschlüssel miteinander übereinstimmen, und das über eine Torschaltung (508) an Ausgangsschaltkreise (506,507) zur Frei- .«> gäbe bzw. Sperrung des Speicherzugriffs weitergegeben wird.
  2. 2. Anordnung nach Patentanspruch 1, dadurch gekennzeichnet,
    -dass in jedem Speicherschlüsselregister (501, Fig. 11) zusätzlich eine Bitposition (R) für ein Nur-Lese-Steuerbit vorgesehen ist und dass eine Koinzidenzschaltung (503) vorgesehen ist, welche mit einer einen Schreibzugriff anzeigenden Leitung und mit einer Ausgangsleitung der R-Bitposition der Gruppe von Speicherschlüsselregistern verbunden ist, um an ihrem Ausgang nur dann ein Schreiberlaubnis-Steuersignal abzugeben, wenn beide Leitungen einen vorgegebenen Bitwert anzeigen.
  3. 3. Anordnung nach Patentanspruch 1, dadurch gekennzeichnet, dass 45
    — eine zweite Torschaltung (505) vorgesehen ist, welche bei Empfang eines bestimmten Speicherschlüssels an ihrem Eingang freigegeben wird zur Abgabe eines zweiten Anzeigesignals an ihrem Ausgang;
    — der Ausgang der zweiten Torschaltung mit den Ausgangs- 50 schaltkreisen (506,507) verbunden ist, derart, dass diese bei Vorliegen des bestimmten Speicherschlüssels im gerade adressierten Speicherschlüsselregister ein Signal zur Freigabe des Speicherzugriffs abgeben unabhängig vom Wert eines Zugriffsschlüssels, also unabhängig vom jeweiligen Programm (Fig. 11). 55
  4. 4. Anordnung nach Patentanspruch 3, mit Umschalteinrichtungen (Fig. 10), welche eine Umschaltung vom Adressüberset-zungsbetrieb auf Nichtübersetzungsbetrieb, und umgekehrt, ermöglichen, mit Eingangsleitungen für Signale, welche angeben, ob ein Übersetzer eingebaut ist, ob der Übersetzer freige- fi0 geben ist, und ob der Speicherschutz mittels Speicherschlüsseln freigegeben ist, dadurch gekennzeichnet, dass die Umschalteinrichtungen einen Ausgang mit einer Leitung (509) für ein Freigabesignal für übersetzungsfreien Speicherschutz haben, die mit je einem zusätzlichen Steuereingang der ersten Torschal- 55 tung (508) und der zweiten Torschaltung (505) verbunden ist,
    um diese mindestens bei Betriebsbereitschaft eines eingebauten Übersetzers zu sperren (Fig. 10, Fig. 11).
  5. 5. Anordnung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass zusätzliche Verknüpfungsschaltungen (504,510) und Steuerleitungen (511,512) sowie ein Eingang für ein Zyklusstehl-Steuersignal vorgesehen sind, um bei Vorliegen einer Zyklusstehl-Anforderung von einer E/A-Einheit ein zwar vom Speicherschlüssel abhängiges, aber vom jeweiligen Zustand des Nur-Lese-Bit im betroffenen Speicherschlüsselregister unabhängiges Speicherzugriffs-Freigabe- bzw. -Sperrsignal an den Ausgangsschaltkreisen (506,507) zu erzeu-1 gen (Fig. 11).
CH527577A 1976-04-30 1977-04-28 CH619309A5 (de)

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
CH619309A5 true CH619309A5 (de) 1980-09-15

Family

ID=24738749

Family Applications (1)

Application Number Title Priority Date Filing Date
CH527577A CH619309A5 (de) 1976-04-30 1977-04-28

Country Status (10)

Country Link
US (1) US4038645A (de)
JP (1) JPS52133726A (de)
AU (1) AU508044B2 (de)
BR (1) BR7702781A (de)
CA (1) CA1075367A (de)
CH (1) CH619309A5 (de)
ES (1) ES458312A1 (de)
FR (1) FR2349886A1 (de)
GB (1) GB1557112A (de)
SE (1) SE417650B (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4104721A (en) * 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
US4241401A (en) * 1977-12-19 1980-12-23 Sperry Corporation Virtual address translator utilizing interrupt level code
US4320455A (en) * 1978-01-09 1982-03-16 Honeywell Information Systems Inc. Queue structure for a data processing system
US4354225A (en) * 1979-10-11 1982-10-12 Nanodata Computer Corporation Intelligent main store for data processing systems
WO1981001066A1 (en) * 1979-10-11 1981-04-16 Nanodata Computer Corp Data processing system
US4374411A (en) * 1980-02-14 1983-02-15 Hayes Microcomputer Products, Inc. Relocatable read only memory
US4355355A (en) * 1980-03-19 1982-10-19 International Business Machines Corp. Address generating mechanism for multiple virtual spaces
US4366537A (en) * 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
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
US4439830A (en) * 1981-11-09 1984-03-27 Control Data Corporation Computer system key and lock protection mechanism
US4472790A (en) * 1982-02-05 1984-09-18 International Business Machines Corporation Storage fetch protect override controls
JPS6047624B2 (ja) * 1982-06-30 1985-10-22 富士通株式会社 アドレス変換制御方式
JPS5958700A (ja) * 1982-09-29 1984-04-04 Fujitsu Ltd 記憶保護判定方式
US4550350A (en) * 1983-07-19 1985-10-29 Software Distribution Newtork, Inc. Secure copy method and device for stored programs
JPS60107156A (ja) * 1983-11-16 1985-06-12 Hitachi Ltd デ−タ処理システム
JPS60107155A (ja) * 1983-11-16 1985-06-12 Hitachi Ltd 記憶ボリユ−ムのデ−タ保護方式
US4561051A (en) * 1984-02-10 1985-12-24 Prime Computer, Inc. Memory access method and apparatus in multiple processor systems
US4677546A (en) * 1984-08-17 1987-06-30 Signetics Guarded regions for controlling memory access
JPS6155754A (ja) * 1984-08-28 1986-03-20 Nec Corp 記憶保護方式
US4901273A (en) * 1985-03-12 1990-02-13 Pitney Bowes Inc. Electronic postage meter having a memory map decoder
US4727485A (en) * 1986-01-02 1988-02-23 Motorola, Inc. Paged memory management unit which locks translators in translation cache if lock specified in translation table
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 多重アドレス空間制御方式
US4930073A (en) * 1987-06-26 1990-05-29 International Business Machines Corporation Method to prevent use of incorrect program version in a computer system
IN169635B (de) * 1987-07-01 1991-11-23 Digital Equipment Corp
US5317717A (en) * 1987-07-01 1994-05-31 Digital Equipment Corp. Apparatus and method for main memory unit protection using access and fault logic signals
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
US5297268A (en) * 1988-06-03 1994-03-22 Dallas Semiconductor Corporation ID protected memory with a readable/writable ID template
DE68924755D1 (de) * 1988-10-31 1995-12-14 Ibm Mehrfachverarbeitungssystem und Verfahren für gemeinsame Speichernutzung.
US5483646A (en) * 1989-09-29 1996-01-09 Kabushiki Kaisha Toshiba Memory access control method and system for realizing the same
US5237668A (en) * 1989-10-20 1993-08-17 International Business Machines Corporation Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media
US5499356A (en) * 1989-12-29 1996-03-12 Cray Research, Inc. Method and apparatus for a multiprocessor resource lockout instruction
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
GB2325061B (en) * 1997-04-30 2001-06-06 Advanced Risc Mach Ltd Memory access protection
US6182174B1 (en) 1998-04-13 2001-01-30 International Business Machines Corporation Memory card interface method using multiplexed storage protect key to indicate command acceptance
US20080263256A1 (en) * 2007-04-20 2008-10-23 Motorola, Inc. Logic Device with Write Protected Memory Management Unit Registers
US9245110B2 (en) * 2013-12-17 2016-01-26 International Business Machines Corporation Stack entry overwrite protection

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US3916385A (en) * 1973-12-12 1975-10-28 Honeywell Inf Systems Ring checking hardware

Also Published As

Publication number Publication date
AU2474877A (en) 1978-11-09
AU508044B2 (en) 1980-03-06
JPS52133726A (en) 1977-11-09
SE7704966L (sv) 1977-10-31
CA1075367A (en) 1980-04-08
SE417650B (sv) 1981-03-30
GB1557112A (en) 1979-12-05
BR7702781A (pt) 1978-02-21
FR2349886A1 (fr) 1977-11-25
ES458312A1 (es) 1978-02-01
FR2349886B1 (de) 1978-10-20
US4038645A (en) 1977-07-26
JPS5736679B2 (de) 1982-08-05

Similar Documents

Publication Publication Date Title
DE2716051C2 (de) Datenverarbeitungsanlage mit einem oder mehreren Prozessoren mit mindestem einem Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der zum Speicherzugriff Schlüssel verwendet werden
CH619309A5 (de)
CH615521A5 (de)
DE2350225C2 (de)
DE69834739T2 (de) Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren
DE2854485C2 (de) Datenverarbeitungsanlage
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
DE4221278C2 (de) Busgekoppeltes Mehrrechnersystem
DE2629459C2 (de)
DE2953861C2 (de)
DE2414311C2 (de) Speicherschutzeinrichtung
DE2902465A1 (de) Datenverarbeitungsanordnung
DE2417795C2 (de) Datenverarbeitungsanlage
DE3638572C2 (de)
DE3320858A1 (de) Speicher-managementanordnung fuer mikroprozessorsysteme
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE3741850A1 (de) Ausfuehrungseinheit fuer einen i/o-prozessor
DE2441754A1 (de) Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors
DE2652869A1 (de) Datensicherungseinrichtung
EP0500973B1 (de) EEPROM und Verfahren zum Ändern einer Initialisierungsroutine im EEPROM
DE1549531A1 (de) Digitale Rechenanlage
DE3911721C2 (de)
DE3114921A1 (de) Datenverarbeitungssystem
DE2144051A1 (de) Programm Unterbrechungsanordnung für eine Datenverarbeitungsanlage
DE2717700C2 (de) Speicherzugriffsanordnung

Legal Events

Date Code Title Description
PL Patent ceased