CH615521A5 - - Google Patents

Download PDF

Info

Publication number
CH615521A5
CH615521A5 CH527477A CH527477A CH615521A5 CH 615521 A5 CH615521 A5 CH 615521A5 CH 527477 A CH527477 A CH 527477A CH 527477 A CH527477 A CH 527477A CH 615521 A5 CH615521 A5 CH 615521A5
Authority
CH
Switzerland
Prior art keywords
memory
address
processor
key
register
Prior art date
Application number
CH527477A
Other languages
English (en)
Inventor
Donall Garraid Bourke
Frederic John Puttlitz
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 CH615521A5 publication Critical patent/CH615521A5/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

Die vorliegende Erfindung betrifft eine Datenverarbei-2( tungsanlage mit Prozessor und mit erweiterbarer Hauptspeicheranordnung, welche mindestens einen Innenspeicher und einen Adressübersetzer aufweist.
Die Erweiterung des Hauptspeichers einer Datenverarbeitungsanlage durch Hinzufügen von Speichereinheiten ist an sich :5 bekannt.
Im USA-Patent 3 828 327 ist eine Steueranordnung für einen Speicher beschrieben, bei welcher der höchstwertigen Bitstelle der Adresse noch ein weiteres Bit vorangestellt wird, welches jedoch nicht Teil der im Programm erscheinenden io Adressen ist, sondern durch die verschiedenen Betriebsarten des Systems (Unterbrechung, E/A-Betrieb, usw.) festgelegt wird.
In den USA-Patenten 3 343 140,3 247 488 und 3 274 554 wurden Anlagen dargestellt, bei denen ein Prozessortaktsignal 35 gesperrt wird, wenn eine Prioritätsschaltung einer Speicherzu-griffsanforderung Priorität gibt, die von einer anderen Einheit als dem betreffenden Prozessor kommt. Im USA-Patent 3 343 140 z.B. ist eine Hauptspeicheranordnung beschrieben mit einer Mehrzahl von identischen, synchron arbeitenden Spei-4o cherbänken, wobei jede Speicherbank eine eigene Prioritätsschaltung sowie Adress-und Datenregister hat. Jede Speicherbank arbeitet synchron (d.h. in Phase) mit dem Prozessortakt (z.B. Phasenzähler der Recheneinheit). Eine Rückkopplungs-Schaltungsanordnung in jeder Speicherbank kann den Prozes-45 sortakt vorübergehend sperren, wenn die Speicherbank eine Zugriffsanforderung vom Prozessor vorübergehend zurückstellt, um einer anderen Einheit mit höherer Priorität Zugriff zu gewähren ; wenn aber die Zugriffsanforderung angenommen wurde, arbeitet die Speicherbank weiterhin im Synchronbetrieb, so Der Erfindung liegt die Aufgabe zugrunde, ein Datenverarbeitungssystem mit einer Speicheranordnung zu schaffen, die einen Übersetzer zur Ermöglichung von Adressverschiebungen enthält, und bei der eine Erweiterung des Hauptspeichers von einer Grundausstattung aus mit verschiedenartigen Speicherein-55 heiten möglich ist. Dabei soll es möglich sein, auch Speichereinheiten unterschiedlicher Technologie zu verwenden, und zusätzliche Speichereinheiten des Hauptspeichers in grösseren Entfernungen anzuschliessen. Schliesslich soll die Speicheranordnung eine Erweiterung der Adressen ermöglichen über die Länge 60 hinaus, welche durch die normalerweise im Prozessor verwendeten Formate gegeben ist, so dass eine flexible Adressierimg auch bei vergrösserter Speicherkapazität mit verschiedenen Einheiten möglich ist.
Der Gegenstand der Erfindung ist den Ansprüchen zu ent-65 nehmen.
Die erweiterbare Hauptspeicheranordnung hat eine spezielle Art der Verbindung zwischen Prozessor, Übersetzer und Speichereinheiten.
615 521
Die bei einem zusätzlichen Asynchronspeicher auftretenden Zeitvariationen können dadurch bewältigt werden, dass man eine Schaltung und Leitung zur Abgabe eines Übersetzer-Besetztsignals vorsieht, welches für eine Sperrung des Prozessortaktes sorgt, bis ein Antwortsignal des Asynchronspeichers auf besonderer Leitung eintrifft. Diese Sperrung ist unabhängig von irgendwelchen Prioritätsvorgängen für unterschiedliche Arten von Speicherzugriffen.
Weiter kann eine Zeitbegrenzerschaltung vorgesehen werden, um die Sperrung des Prozessortakts auf eine vorgegebene Maximalzeit zu begrenzen, welche schliesslich nach Überschreitung dieser Zeit ein Ungültigkeitssignal abgibt, welches auf Fehlen oder Nichtfunktionsfähigkeit des adressierten Teils des Asynchronspeichers hinweist, und die Weiterarbeit wieder einleitet.
Ein Ausführungsbeispiel der Erfindung wird im folgenden anhand von Zeichnungen beschrieben. Es zeigen:
Fig. 1 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 Übersicht der verschiedenen möglichen Speicherzugriffsarten ;
Fig. IC in Blockform eine Übersichtsdarstellung einer Datenverarbeitungsanlage mit erweiterbarem Hauptspeicher, die als Ausführungsbeispiel beschrieben wird;
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;
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-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 Aktivadressschlüssel-Auswahlschaltung, bei der auch ein Operandenbereichsabgleich erreicht werden kann;
Fig. 4 Einzelheiten eines Prozessors, welche für die Spei-cherzugriffssteuerung mit Adressschlüsseln relevant sind ;
Fig. 5 das Aufteilungsformat des Adressschlüsselregisters in einem bevorzugten Ausführungsbeispiel;
Fig. 6 das Inhaltsformat der im Ausführungsbeipiel vorgesehenen Segmentregister;
Fig. 7 Einzelheiten der Eingabe- und Ausgabesteuerung einer einzelnen Bitposition im Adressschlüsselregister;
Fig. 8A schematisch die Vorgänge bei Ausführung eines Befehls zum Laden bzw. Abspeichern eines Segmentregister;
Fig. 8B schematisch die Vorgänge bei Ausführung eines Befehls zum Laden bzw. Abspeichern des Adressschlüsselregisters aus einem bzw. in einen Speicher;
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. IC, der eine 19 Bit lange logische Maschinenadresse in eine 24 Bit lange physische Adresse für den Speicherzugriff umwandelt;
s Fig. 9C, 9D-1, 9D-2,9E, 9F-1 und 9F-2 Einzelheiten des in Fig. 9A/9B in Blockform gezeigten Übersetzers;
Fig. 9C die Arbeitsweise der in Fig. 9C gezeigten Vorgriffsschaltungen zur jeweiligen Auswahl des Innenspeichers (Basisspeicher), Aussenspeichers (Zusatzspeicher) oder Asynchron-l» speichers, sowie die Interpretation der 24 Bit langen physischen Adresse durch die gewählte Speichereinheit beim Zugriff;
Fig. 10 eine Schaltungsanordnung im Prozessor zur Auswahl zwischen den Betriebsarten «Speicherschutz ohne Übersetzung» und «Speicherschutz mit Übersetzung» ;
15 Fig. 11 Speicherschutzsteuerschaltungen zur Verwendung bei übersetzungsfreier Betriebsart;
Fig. 12 das Format eines Speicher-Speicher-Befehls;
Fig. 13A relevante Teile des Formats eines Freigabe-/Sperr-befehls zur Festlegung der Betriebsarten mit spezieller Adressai bereichsauswahl (z.B. übersetzungsfreie Adressierung mit Speicherschutz, Speicherschutz mit Übersetzung, Operandenbereichsabgleich) ;
Fig. 13B aufeinanderfolgende Zustände eines Adressschlüsselregisters, wenn bei einer Unterbrechung Operandenbereichs-25 abgleich erfolgt;
Fig. 14 eine Schaltungsanordnung für eine alternative Speicherschutzbetriebsart mit Übersetzung, welche eine Alternative zu der Speicherschutzbetriebsart mit Adressschlüsselübersetzung darstellt ;
so 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 35 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 ;
4» Fig. 18 schematisch die Vorgänge zum Laden und zum Abspeichern bei Klassenunterbrechungen.
1. Beschreibung eines Ausführungsbeispiels
Fig. 1A und Fig. 1B zeigen die wesentlichen Merkmale eines 45 Ausführungsbeispiels der Erfindung. Fig. 1A zeigt eine Adress-schlüssel-Auswahlschaltung 20, die je nach Art der Speicherzugriff sanf orderung (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 so 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 Adress-55 schlüssel steuert die Adressierung des Hauptspeichers des Systems während des nächsten Speicherzugriffs, d.h. Abruf oder Speicherung von Daten im Hauptspeicher. Bei dieser Adressierungsoperation bestimmt der aktive Adressschlüssel AAS den oberen Teil (höherwertige Stellen) der logischen Adresse, die so 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. 65 Diese Anforderungsleitungen sind in Fig. 1A folgendermassen bezeichnet: E/A-Zugriff, Befehlszugriff, OPl-Zugriff, OP2-Zugriff und OP3-Zugriff. Wenn nur eins dieser Zugriffsanforderungssignale auftritt, dann wird sofort der Inhalt des betref
615 521
fenden 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-Zugriffsan-forderung 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 OPl-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 Anforderungen die CS-Schlüssel in einer vorgegebenen Reihenfolge auszugeben.
Falls überdies mehrere Prozessoren zum gleichen Hauptspeicher Zugriff haben, sind weitere Prioritätsschaltungen vorgesehen, um die Anforderungen dieser Prozessoren in vorgegebener bestimmter Reihenfolge zu bedienen.
Fig. 1A veranschaulicht die Erfindung in einem System mit Prozessor und Kanaleinheit, bei dem aktive Adressschlüssel benutzt werden und in dem nur ein Teil der in einem Datenverarbeitungssystem an und für sich möglichen Speicherzugriffsarten verwendet wird. Fig. 1B zeigt eine grössere Zahl verschiedener Speicherzugriffsarten. Die in einem bestimmten System verwendbaren Speicherzugriffstypen sind auf solche eingeschränkt, die durch die Schaltungen des Systems identifizierbar sind. D.h., es werden im System Schaltungen benötigt, welche verschiedene Arten von Speicherzugriffsanforderungen feststellen können, und zwar jeweils zu der Zeit, wenn die betreffende Zugriffsanforderung auftritt. Fig. 1B zeigt mehr Zugriffsarten als die Anordnung, welche in Fig. 1A gezeigt ist. In Fig. 1B sind acht Speicherzugriffsarten in drei Zugriffskategorien eingeteilt: (1) Befehlszugriff, (2) Operanden-Zugriff und (3) eine Zugriffskategorie, die den Prozessorereignissen zugeordnet ist. Jeder Kanal enthält K Unterkanäle, und jeder Unterkanal hat drei Speicherzugriffskategorien: (1) Kanalbefehlszugriff, (2) E/A-Datenzusgriff und (3) eine Zugriffskategorie für E/A-Ereignisse.
Zu jeder Zugriffskategorie gehört mindenstens eine Spei-cherzugriffsart.
Bei irgendeiner bestimmten Anlage können nur die Speicherzugriffsarten verwendet werden, die in der Maschinenkonstruktion durch ein identifizierendes Signal, d.h. ein Speicheranforderungssignal, vorgesehen sind.
So ist z.B. die Befehlszugriffskategorie in der Anlage durch ein Befehlsabrufsanforderungssignal gekennzeichnet. Die Ope-randen-Zugriffskategorie kann in der Anlage durch sechs verschiedene Arten von Operanden-Zugriffen identifiziert werden (Fig. 1B). Diese sind unterteilt in direkte und indirekte Operan-den-Zugriffsarten, wobei zu der Unterkategorie der direkten Zugriffe diejenigen Zugriffe gehören, welche Adressen benutzen, die direkt aus dem Befehl abgeleitet sind, während die Unterkategorie der indirekten Zugriffe solche Operanden betrifft, bei denen die Adressen indirekt aus der Operanden-Adresse eines Befehls abgeleitet sind. Zu jeder Unterkategorie gehören drei verschiedene Operanden-Zugriffsarten, welche durch die Schaltung der Anlage identifiziert werden können als Anforderungssignale für Quellenabruf, Senkenabspeicherung und Senkenabruf. Jede dieser sechs Operandenzugriffsarten kann bei der Konstruktion einer Anlage vorgesehen werden, io und die betreffenden von der Anlage identifizierbaren Signale können aus jedem Befehl abgeleitet werden, und zwar vom Operationscode und von den Operandenfeldern. Die Quellen-abruf-Operandenart betrifft Daten, die als Quelle einer Befehlsausführung benutzt werden ; sie wird nicht verändert, 15 sondern nur benutzt, um die Ergebnisse einer Befehlsausführung zu erstellen. Auf der anderen Seite bezieht sich die Sen-kenabspeicherung-Operandenart auf Zugriffe, bei denen die Resultate einer Befehlsausführung gespeichert werden. Die Senkenabruf-Operandenart ist das Resultat einer früheren 2o Befehlsausführung, welches als Quelle für die Ausführung eines nachfolgenden Befehls benutzt wird. Für viele Datenverarbeitungsanlagen wurde es jedoch für praktisch befunden, bei der Konstruktion den Senkenabspeicherungs-Operandentyp und den Senkenabruf-Operandentyp zu einem einzelnen Senkenab-25 speicherungs/-abruf-Operandentyp zusammenzufassen.
Prozessorereignis-Zugriffe werden hervorgerufen durch das Auftreten interner Prozessorereignisse, wie z.B. Datenfehler, Maschinenfehler, Adressierungsausnahme, usw, die zu einer langen Liste bekannter Ereignisse gehören, welche die üblichen 1,1 Prozessorunterbrechungen, d.h. interne Unterbrechungen, hervorrufen. Die Kategorie der Prozessorereigniszugriffe kann z.B. den Zugriff zu einem Bereich des Hauptspeichers einschliessen, der ein Unterbrechungs-Verarbeitungsprogramm und andere Programme zur Verarbeitung von Signalen enthält, die mit der 35 Unterbrechung im Zusammenhang stehen, und in dem weiterhin Daten gespeichert sind, die mit der Unterbrechung im Zusammenhang stehen, so z.B. Abschlussaufzeichnungen.
Jeder Kanal hat eine Mehrzahl von Unterkanälen, die eine Vielzahl von verschiedenen Zugriffsarten durchführen. So gehört z.B. zu jedem Unterkanal eine E/A-Datenzugriffskategorie mit den Zugriffsarten E/A-Abruf und E/A-Abspeicherung. Bei manchen Anlagen sind diese beiden durch die Konstruktion zu einem einzelnen Zugriffstyp zusammengefasst, den 4S man E/A-Abruf/Abspeicherungszugriff nennt. Die mit Unterkanalereignissen zusammenhängenden Zugriffe werden durch Unterbrechungen signalisiert, die für den Prozessor extern sind, d.h. externe Unterbrechungen. Es werden üblicherweise viele verschiedene externe Unterbrechungen verwendet, so z.B. die Geräteschlussunterbrechung, Gerätefehlerunterbrechung, E/A-Datenfehlerunterbrechungen, usw.
Zusammenfassend kann man sagen, das mit der Erfindung die Möglichkeit geschaffen wird, die Adressiervorgänge im Hauptspeicher für jede der verschiedenen Speicherzugriffarten, 55 die in Fig. 1B gezeigt sind, separat zu beeinflussen. Zu den in Fig. 1B gezeigten Zugriffsarten gehören die acht verschiedenen Speicherzugriffsarten, welche jedem Prozessor zur Verfügung stehen, und die vier verschiedenen Speicherzugriffsarten, welche jedem Unterkanal zur Verfügung stehen. Diese Möglichkeit 60 der separaten Beeinflussungen ist dadurch gegeben, dass man für jede der Zugriffsarten, welche in einer Anlage vorgesehen sind, einen separaten Schlüsselregisterabschnitt vorsieht. Das Ausführungsbeispiel, welches in Fig. 1A gezeigt ist, benutzt nur vier verschiedene Prozessorzugriffsarten, welche im gewählten 65 Beispiel durch ein Adressschlüsselregister dargestellt sind, das vier verschiedene Registerabschnitte hat. Die Anzahl der Registerabschnitte im Adressschlüsselregister ASR kann jedoch beliebig gewählt werden entsprechend der Anzahl verschiede50
615 521
ner Zugriffsarten, die in der Konstruktion der Anlage vorgesehen sind.
Auf jeden Fall wird für jede durch die Schaltung der Maschine identifizierbare Zugriffsart ein ASR-Registerab-schnitt oder ein CS-Registerabschnitt vorgesehen mit entspre- 5 chenden Vorrichtungen in der AAS-Auswahlschaltung, um einen ausgewählten Registerabschnitt auszulesen, wenn die entsprechende Zugriffsanforderung bedient wird, wobei dann der Inhalt des ausgewählten Registerabschnitts der aktive Adressschlüssel wird, welchen die Anlage als Adresskomponente 10 benutzt, um den Adressiervorgang für den betreffenden Speicherzugriff zu beeinflussen. Für die durch den aktiven Adressschlüssel AAS gegebene Adresskomponente kann folgendes gelten: (1) sie kann eine direkte Beziehung zur physischen Adresse haben, indem der AAS mit der Programmadresse 15 verkettet wird, sodass beide zusammen eine physische Adresse im Hauptspeicher ergeben; (2) sie kann einen fest vorgegebenen Speicherzugriff im Hauptspeicher ermöglichen, wie es im Ausführungsbeispiel der Fig. 11 gezeigt ist: (3) sie kann zur Bestimmung einer verschiebbaren Adresse für durch Schlüssel 2» identifizierte Speicherbereiche dienen, wobei man innerhalb jedes Bereiches sequentielle Programmadressen benötigt, wie es in Fig. 15 gezeigt ist; (4) sie kann in noch flexiblerer Art für die Bestimmung von verschiebbaren Adressen dienen, wobei auch noch innerhalb der durch Schlüssel identifizierten Bereiche eine 25 Adressverschiebung möglich ist, so wie es im Ausführungsbeispiel der Fig. 1A dargestellt ist.
Die Hauptspeichereingangsadresse, welche durch die in Fig. 1A gezeigte Anordnung bereit gestellt wird, ist die Kombination eines aktiven Adressschlüssels AAS mit einer im Programm M erscheinenden Adresse. Die letztere ist eine Adresse, welche die Anlage in einem in Ausführung befindlichen Programm sieht, wie z. B. die Befehlsabrufadresse im Befehlsadressregister, und die Operanden-Adressen in den Befehlen des Programms.
Wenn ein Programm geschrieben wird, so sind nur im Pro- 35 gramm 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 allgemein die Prozessorereigniszugriffsbereiche und ihren Inhalt, 40 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 im Programm erscheinende Adresse besitzt 16 Bitstellen, sodass 45 es insgesamt eine Eingangsadresse für die Anlage mit 16 + K Bitstellen ergibt.
Bei der in Fig. 1A gezeigten Anordnung ist die Eingangsadresse einschliesslich des AAS-Feldes eine logische Maschinenadresse, für welche noch eine Übersetzung erforder- 5° lieh ist, um eine gewünschte Speicherstelle im Datenverarbeitungssystem zu erreichen. Auf der anderen Seite wird in der in Fig. 11 gezeigten Anordnung der aktive Adressschlüssel AAS als direkt benutzte Einschränkungen der physischen Adresse verwendet, welche nicht übersetzt wird. ss
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 Unterka- mi nal enthält mindestens einen Schlüssel mit K Bits, mit dem man jeden der Stapel adressieren kann.
Der aktive Adressenschlüssel AAS wird in eine Stapeladressiereinrichtung 40 eingegeben und dekodiert, um den gewünschten Stapel auszuwählen. Danach wird mit den höher- es wertigen Bit-Positionen 0 - P der im Programm erscheinenden Komponente der Eingangsadresse ein Segmentregister (SR) innerhalb des adressierten Stapels ausgewählt. Bit-Positionen 0
bis 12 des gewählten Segmentregisters enthalten eine zugeordnete Blocknummer, welche die Bit-Positionen 0 bis 12 der physischen Adresse eines bestimmten physischen Blocks im Hauptspeicher darstellen, zu dem dann zugegriffen wird.
Die restlichen Bit-Positionen 13-23 der physischen Adresse, welche 24 Bit umfasst, geben die relative Byte-Adresse (D) innerhalb des gewählten physischen Blocks an; sie sind identisch mit der relativen Byte-Adresse D in der Eingangsadresse, wo sie in den niederwertigen Bit-Positionen (P+1) bis 15 stehen. Der Zugriff zu einem bestimmten physischen Block wird auch gesteuert durch Kennzeichen-Bits in den restlichen Bit-Positionen 13 -15 im gewählten Segmentregister SR. Die Einteilung der Segmentregister SR ist in 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 werden, und es erfolgt dann eine Adressierungsausnahme-Unterbrechung. Die Kennzeichen-Bit-Position 14 gibt an, ob der adressierte Block nur gelesen werden darf. Falls Bit 14 auf eins gesetzt ist, darf in dem betreffenden Block nicht geschrieben werden, und es sind dann nur Abruf-Zugriffe gestattet. Bit 15 ist nicht benutzt. Das Zweitwort mit den Bit-Positionen 16 bis 31 ist reserviert und wird für das vorliegende Ausführungsbeispiel auch nicht benutzt.
B. Erweiterbarer Hauptspeicher
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 Ubersetzer 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 Übersetzer 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 Ubersetzungsbetrieb 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 Innenspei-cherzyklus ISZ benutzt zu werden. Bit 13 bis 22 werden vom Speicheradressregister des Prozessors abgegeben, um eine
615 521
6
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. 64K). B dieser Minimalkonfiguration werden mit den 16 Bit langen physischen Adressen Speicherschutzschlüssel benutzt entsprechend den Nichtüberset-zungsspeicherschutzschaltungen, 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 hier dargestellte Merkmal der Aktivadressschlüsselschaltungen durch welche separate Adressbereichsbestimmungen je nach Speicherzugriffsaxt 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 64K hinaus erweitert werden 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 dargestellt ist.
Der Übersetzer ermöglicht auch eine zusätzliche Erweiterung des Hauptspeichers über die Kapazitätsgrenze von 128K, welche für den Innenspeicher und Aussenspeicher gilt, hinaus durch Hinzufügung einer Asynchronspeichereinheit. Die Asynchronspeichereinheit benutzt die übersetzten 24 Bit langen Adressen in anderer Art als der Aussenspeicher, wie dies in Fig. 9G für den Asynchronspeicherzyklus (ASZ) gezeigt ist. Beim Asynchronspeicherzyklus ASZ werden die Bit-Positionen 0 bis 6 benutzt, und in diesen Bit-Positionen steht mindestens ein 1-Bit, weil man mehr als 16 Bit braucht, um eine Zahl darzustellen, die grösser als 128K ist. Durch die Benutzung der Bit-Positionen 0 bis 6 unterscheidet sich der Asynchronspeicherzyklus vom Aussenspeicherzyklus, bei welchem diese Bit-Positionen nicht benutzt werden; beim Aussenspeicherzyklus werden nur die Bit 7 bis 23 benutzt. Diese besonderen Bedingungen für die Bit-Positionen 0 bis 6 werden dazu benutzt, um ein Paar von Vorgriffbits zu setzen, welche in Fig. 9G gezeigt sind, wobei die zugehörigen Schaltungen und Vorgänge in weiteren Einzelheiten im Zusammenhang mit den Fig. 9 A und 9B beschrieben 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 Aussenspeicher und den Asynchronspeicher.
C. Adressbereichs-Verteilung
Fig. 2A zeigt die Beziehungen zwischen den verschiedenen 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 wurden. Wie in Fig. 2A dargestellt, wird ein Befehlsabruf im Befehlsadressbereich 60 unter Benutzung des ISS ausgeführt. Ki 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üsselregisterabschnitte OP1S und OP2S benutzt werden.
is C. 1. Prozessoradressbereichs-Verteilung
Fig. 2A veranschaulicht die Speicherzugriffe, welche auf Grund verschiedener Prozessorbefehlsarten vorgenommen werden. Ein Speicher- Speicherbefehl ruft Daten im OPlS-Daten-bereich 61 oder im OP2S-Datenbereich 62 ab und bewirkt eine 2oSpeicherung 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 25 einem allgemeinen Register 63 zum OP2S-Datenadressbereich 62 ; ein Speicher-Register-Befehl holt Daten vom OP2S-Daten-adressbereich 62 und speichert sie in einem Allgemeinregister 63. Ein Verzweigungsbefehl holt einen Verzweigungszielbefehl auch vom ISS-Adressbereich 60.
30
C. 2. E/A-Unterkanaladressbereichs- Verteilung
Zwei verschiedene Arten von E/A-Unterkanalbefehlen sind in Fig. 2A gezeigt. Die eine Befehlsart wird Direkt-Programm-steuerungs-E/A-Befehl genannt (DPS E/A) und bewirkt eine 35 E/A-Operation, die synchron mit dem Hauptprogramm abläuft, d.h. das Hauptprogramm läuft nicht weiter, bis die E/A-Operation beendet ist, wobei sowohl der E/A-Befehl als auch die Daten aus dem OP2S-Adressbereich 62 entnommen werden. Die andere E/A-Befehlsart bewirkt die normale Art von 4„ 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» 64 (siehe Fig. 2A) gespeichert werden, während die Datenzu-45 griffe, 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 sein eige-50 nes Unterkanalprogramm hat, in welchen die Befehle die Möglichkeit haben, jeweUs 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 55 also jeder Kanal 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 auszu-60 wä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 65 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
7
615 521
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-Betriebsbefehl 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 nach dem, 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 Feld im GSB-0, welches Verkettungsadresse genannt wird, gibt den Ort des 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 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 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, das sich an der Stelle EA+14 befindet. Der Schlüssel für GSB-0 kann jeden beliebigen Schlüsselwert haben. In ähnlicher Weise enthält das nächste Steuerwort GSB-1 einen Schlüssel für GSB-1, der jeden beliebigen Schlüsselwert haben kann, zur Festlegung des 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 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 Ubersetzung können in den Gerätesteuerblöcken GSB verschiedene Schlüsselwerte benutzt werden, um einen speziellen selektiven Speicherschutz für die E/A-Datenzugriffe zu bekommen.
Wenn überdies im System im Übersetzungsbetrieb gearbeitet wird, werden für jeden Zugriff alle E/A-Datenadressen durch den Übersetzer übersetzt (siehe Fig. 1D) in der gleichen Weise, wie die Prozessoradressen übersetzt werden.
Fig. 3 A zeigt Schaltungseinzelheiten für die Steuerung der GSB-Schlüsseloperationen. Jeder E/A-Unterkanal enthält eine kleine prozessorähnliche Steuereinheit zur Steuerung der Operation eines angeschlossenen E/A-Gerätes, das von beliebiger Art sein kann. Diese prozessorähnliche Steuereinheit steuert die Verarbeitung der GSB-Schlüssel durch den betreffenden E/A-Unterkanal. Der GSB-Schlüssel wird in ein GSB-Schlüsselregi-ster 301 in der Unterkanalsteuereinheit vom E/A-Datenbus des Kanals eingegeben, wenn jeweils ein Gerätesteuerblock GSB im Schlüssel=0 Adressbereich entnommen wird.
Eine Mehrzahl von Unterkanälen ist in der üblichen Weise mit einem einzelnen Kanal verbunden. Jeder Unterkanal kann sich mit seinem Kanal durch speziell dafür vorgesehene Protokollsignale verständigen. Ein Unterkanal, der Bedienung durch den Kanal anfordert, wird durch einen Aufruf-Vorgang ausgewählt. Nach der Auswahl durch den Aufruf-Vorgang überträgt der Kanaldatenbus Steuersignale und Daten zwischen dem 5 Unterkanal und dem Hauptspeicher. Durch ein Signal, welches von der Aufrufauswahlsteuerung 310 an die Unterkanal-ROS-Steuerung 311 gelangt, wird bewirkt, dass ein Wort aus dem Festspeicher ROS 312 in ein ROS-Datenregister 313 eingegeben wird, um die notwendigen Unterkanaloperationen zu steu-lo 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-Abrufsteuersignal abgibt, das die UND-Glieder 315 (0) 15 315 (1) und 315 (2) aktiviert, welche eine Eingabe in das GSB-Schlüsselregister 301 bewirken, das ein Teil des Registerstapels ist, der den ganzen Gerätesteuerblock GSB empfängt. Nachdem der GSB-Abruf ausgeführt ist, wird der GSB im Unterkanal gespeichert, das GSB-Abruf-Signal beendet und ein «Kein 20 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 25 zum Kanal in Fig. 3B übertragen. Der Kanal überträgt dann den CS-Schlüssel zum CS-Schlüsselbus, der mit der Speicherpriori-tätsauswahlschaltung in Fig. 3C verbunden ist.
C. 3. Speicherprioritäts-Auswahlschaltung
30 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. 45 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 Prozessoradressschlüssel von den Prozessor-ASR-Bus-50 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.
55
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, so Die Prozessor-ASR-Busse (Sammelleitungen) sind mit den Ausgängen des Adressschlüsselregisters ASR verbunden. Die Speicherprioritätszyklusschaltung 332 (Fig. 3C), welche von bekannter Bauart sein kann, bestimmt die Reihenfolge, in welcher den miteinander konkurrierenden Anforderungen ein 65 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.
615 521
8
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 Prozes-sor-ASR-Busse, nämlich den ISS-Bus, den OP2S-Bus, den OPlS-Bus und den OBA-Bus, welche mit Eingängen der ASS-Auswahlschaltung 333 (Fig. 3C) verbunden sind, von welcher Einzelheiten in Fig. 3D gezeigt sind. Die AAS-Auswahlschal-tungen nehmen die Auswahl zwischen diesen drei Prozessorschlüsseln und etwa gleichzeitig vorliegenden CS-Schlüsseln 15 vor, und bestimmen damit, welcher von diesen Schlüsseln der aktive Adressschlüssel AAS wird. Fig. 7 zeigt im Detail die ASR-Steuerschaltung anhand der Eingabe- und Ausgabeschaltungen für eine einzelne Bitposition des ASR. Alle anderen Bitpositionen des ASR haben entsprechende Steuerschal- 2<> tungen.
Aus Fig. 4 ist ersichtlich, dass der Prozessor-ROS-Dekodie-rer 405 (Festspeicher-Dekodierer) Ausgangsleitungen hat,
deren jede durch ein bestimmtes ROS-Wort, wenn dieses ins ROS-Datenregister 406 eingegeben ist, aktiviert wird, um Ein- 25 gäbe und Ausgabe bei den ASR-Registerabschnitten ISS, OP1S und OP2S zu steuern, bzw. um andere Prozessoroperationen zu veranlassen.
D.l Register für letzten aktiven Adressschlüssel AAS 30
Der in Fig. 4 gezeigte Prozessor enthält auch ein Register für den letzten aktiven Adressschlüssel, mit dessen Eingangsseite eine AAS-Torschaltung 407 verbunden ist, welche einerseits an den AAS-Bus von Fig. 3D angeschlossen ist und andererseits an einen Inverter, der mit einer Prozessorfehlerkipp- 35 Schaltung 401 verbunden ist. Das Ausgangssignal der AAS-Torschaltung 407 wird in das Register 408 für den letzten aktiven Adressschlüssel AAS eingegeben, wenn ein Prozessorspeicherzyklussignal (von Fig. 17) vorliegt. Das Register 408 speichert jeden auf dem AAS-Bus vorliegenden aktiven 40
Adressschlüssel vom Prozessor-Adressschlüsselregister ASR, sofern die Fehlerkippschaltung 401 keinen Fehler auf einer Fehlersperrleitung anzeigt.
Wenn aber ein Maschinenfehler (MCK) oder ein Programmfehler (PCK) im Prozessor auftritt, wird die Fehlerkipp- 45 Schaltung 401 gesetzt. Als Folge davon wird die AAS-Torschaltung 407 gesperrt, weil das Fehlersperrsignal abfällt, um dadurch den letzten aktiven Adressschlüssel des Prozessors zurückzuhalten (LKSA), welcher zu der Zeit vorlag, als die Fehlerkippschaltung 401 gesetzt wurde. Das Maschinenfehlersi- 50 gnal (MCK) und das Programmfehlersignal (PCK) werden in einem Zwangsadressdecodierer 402 eingegeben (ausser während eines Segmentregister-Zyklus), um in die ROS-Steuer-schaltung 403 zwangsweise eine Festspeicheradresse einzugeben, welche den Aufruf eines Diagnoseprogramms bewirkt, 55 welches die Fehlerbedingung beseitigt entweder durch wiederholte Ausführung der fehlerhaften Funktion, bis sie korrekt ausgeführt ist, oder durch Ausführung einer Abschlussoperation (log-out), wenn festgestellt wird, dass der Fehler ein Dauerfehler ist. Das AAS-Register 408 bewahrt inzwischen den LKSA hl) auf, um die zuletzt gültig gewesene Adressbereichsfestlegung aufrecht zu erhalten, während im Prozessor Fehlerbehebungs-Operationen ablaufen, sodass nach Behebung der Fehlerbedingung das System unter Beibehaltung der zuletzt benutzten Adressbereichsfestlegung die Arbeit wieder aufnehmen kann. 65
Eine der jeweils letzten diagnostischen Operationen, die vorgenommen werden, bevor der Zustand eines Prozessors geändert werden kann, ist die Speicherung des Gesamtzustands des Prozessors in einem Niveau-Statusblock (NSB) im Hauptspeicher, wozu der Inhalt des Adressschlüsselregisters ASR gehört. Durch ein Signal AG AASR (Ausgabe aus dem Register für den letzten aktiven Adressschlüssel) wird der Inhalt des ; Registers 408 (LKSA) an den Prozessordatenbus ausgegeben; ein gleichzeitig auftretendes Signal EG OPIS bewirkt die Eingabe des LKSA in den OP1 K-Registerabschnitt des ASR für die Diagnose- oder Fehlerbehebungsoperationen (siehe Abschnitt H. 3). Wenn die Fehlerbehebungsoperationen beendet sind, ) wird der letzte normale ASR-Wert von NSB im Speicher wieder geladen, um den normalen Betrieb wieder aufzunehmen.
D.2 Befehle zum Laden/Abspeichern des ASR
Fig. 8B und 8C zeigen die Befehle zur Steuerung folgender . beiden Operationen: (1) Laden des Adressschlüssels in das ASR entweder von einer Wortstelle im Hauptspeicher oder von einem bezeichneten Allgemein-Register AR; (2) die Abspeicherung von Adressschlüsseln von ASR entweder in eine Wortstelle im Hauptspeicher, oder in ein bezeichnetes Allgemeinre-( gister AR. Fig. 8B zeigt die Vorgänge bei Ausführung des Befehls «ASR/Speicher Laden/Abspeichern». Mit diesem einzelnen Befehl kann entweder das Laden des ASR aus dem Hauptspeicher oder das Abspeichern des Inhalts des ASR in den Hauptspeicher gesteuert werden.
Fig. 8B zeigt die Einteilung des 16 Bit langen Befehls «ASR/Speicher Laden/Abspeichern». Er ist gekennzeichnet durch den 5-Bit-OP-Code und das 3-Bit-Modifizierfeld in den Bit-Positionen 13 bis 15. Das K-Feld in den Bit-Positionen 5 bis 7 adressiert den Teil des ASR (oder das ganze ASR), der eingegeben oder ausgegeben werden soll. Die K-Werte 0,1,2 oder 3 bzeichnen die Registerabschnitte ISS, OP2S, OPIS bzw. das gesamte ASR, zur Benutzung durch diesen Befehl. Eine logische Hauptspeicheradresse wird erzeugt mit Hilfe des RB-Feldes in den Bit-Positionen 8 und 9, welches ein Basisregister bezeichnet, und die Zugriffsmodusbits 10 und 11 (AM) welche angeben, ob ein Wort ein angehängtes Feld an eine Instruktion ist, die ein Adressfeld enthält, wobei der Inhalt des AM-Feldes und des RB-Registers kombiniert werden, um die effektive Adresse derjenigen Wortstelle im Hauptspeicher zu erzeugen, welche durch die Ausführung dieses Befehls entweder geladen oder abgespeichert wird. Das Bit X in der Bit-Stelle 12 gibt an, ob es sich um einen Ladebefehl oder einen Abspeicherbefehl handelt. Wenn X = 0 ist, dann wird der Inhalt der adressierten Wortstelle in demjenigen ASR-Teil abgespeichert, der durch das K-Feld bezeichnet ist. Wenn das X-Bit = 1 ist, dann wird der angegebene AKR-Teil in der adressierten Wortstelle abgespeichert.
In ähnlicher Weise stellt Fig. 8C die bei der Ausführung des Befehls «ASR/Register Laden/Abspeichern» ausgeführten Operationen dar; der einzige Unterschied gegen Fig. 8B ist,
dass statt einer Hauptspeicherwortstelle bei der Ausführung dieses Befehls ein Allgemein-Register AR benutzt wird. Dem-gemäss bezeichnet in Fig. 8C das R-Feld in den Bit-Positionen 8 bis 10 ein bestimmtes Allgemein-Register AR, welches zum Laden oder Abspeichern eines oder mehrerer Schlüssel in oder von dem bezeichneten Teil (bzw. den bezeichneten Teilen) des ASR benutzt wird.
Die entsprechenden Operationen werden im Prozessor aus-" geführt aufgrund von Signalen auf den mit EG bzw. AG bezeichneten Ausgangsleitungen des Prozessor-ROS-Decodie-rers 405 (Fig. 4), welche mit den auf dem Datenpfad des Prozessors auftretenden Signalen die im Zusammenhang mit Fig. 8B beschriebenen Operationen veranlassen.
E. Übersetzer
Fig. 9A und 9B enthalten Einzelheiten des in Fig. IC gezeigten Übersetzers 59, welcher die mit Fig. 1A beschriebenen Übersetzungsvorgänge für Adressverschiebungen vor-
9 615 521
nimmt. Diese Adressverschiebungs-Übersetzungsschaltungen man die Segmentregister durch Programme umladen, um eine können den physischen Adressbereich von 64K (216) Bytes auf Adressierbarkeit anderer Bereiche im Hauptspeicher zu er-
16 Millionen (224) Bytes vergrössern, was also einer Erweite- halten.
rung des Innenspeichers von 64 K Bytes entspricht. Die statische Adressierbarkeit kann leicht vergrössert wer-
Durch den Übersetzer wird der Adressbereich des Haupt- 5 den durch die Hinzufügung weiterer Bits zu dem Adressschlüs-
speichers insofern vergrössert, als dieser den aktiven Adress- sei im ASR und durch die Vergrösserung der zugehörigen schlüssel AAS und die 16 Bit lange im Programm erscheinende Schaltungen, um dadurch eine entsprechend grössere Anzahl
Adresse vom Prozessor oder von einem Unterkanal gemeinsam von Segmentregisterstapeln zu unterstutzen.
als logische Eingangsadresse aufnimmt und diese Eingangs- Wenn in das System ein Übersetzer eingebaut wird, wie er in adresse in eine 24 Bit lange physische Adresse umwandelt, die m Fig. 1A gezeigt ist, so wird seine Benutzung durch ein Bit Nr. 14 Zugriff zum Innenspeicher, Aussenspeicher oder Asynchron- im Prozessorstatuswort (PSW) gesteuert, und zwar durch AusSpeicher hat. gangsleitungen des Prozessor-ROS-Decoders in Fig. 4, bei Vor-
Dieser Übersetzungsvorgang ermöglicht die dynamische hegen des in Fig. 13A gezeigten Freigabe/Sperrbefehls. Bit 14
Zuteilung physischer Speicherkapazität zu logischen Adressbe- im Freigabe/Sperrbefehl gibt an, ob im System ein Übersetzer reichen und die gemeinsame Benutzung physischer Speicherka- 15 vorgesehen ist oder nicht, und Bit 7 gibt an, ob er freigegeben pazität von mehreren logischen Adressbereichen. 8 Sätze (Sta- oder gesperrt sein soll. Die in Fig. 10 gezeigte Schaltung pel) von je 32 Segmentregistern (SR) sind für die 8 verschiede- bestimmt, ob der Übersetzer freigegeben wird oder nicht. Wenn nen möglichen Werte der Adressschlüssel vorgesehen, was ins- der Übersetzer nicht freigegeben wird, und wenn das SP-Bit in gesamt 256 Segmentregister ergibt. Jeder geladene SR-Stapel dem in Fig. 13A gezeigten Befehl auf 1 gesetzt ist, wird die in kann eine vollständige Abbildung eines Speicherbereiches ent- 20 Fig-11 gezeigte Schaltung zum Speicherschutz bei Nichtüber-
halten, der bis zu 64K Bytes enthält, die in Blöcken von je 2K Setzung verwendet. Falls Adressierbarkeit nur in einem kleinen
Byte Speicherkapazität verteilt sein können. Mit einem Stapel Adressbereich benötigt ist und falls sehr schnelle Verarbeitung kann auch ein Adressbereich adressiert werden, der weniger als gewünscht wird, kann der Übersetzer gesperrt werden.
64K Bytes hat, indem man lediglich die Validitäts-Bit-Position Fig. 9A und 9B zeigen im Einzelnen die Schaltungen, Busin einem oder mehreren der Segmentregister auf eins setzt, 25 leitungen und Schnittstellenleitungen für den Ubersetzer 59 des sodass nur diejenigen Segmentregister, bei denen die Validitäts- Systems von Fig. IC, gemäss folgender Aufstellung:
Bit=0 sind, die Blöcke mit je 2K Bytes Kapazität bezeichnen,
welche zu einem adressierbaren Bereich gehören, der durch E. 1 Schnittstelle Prozessor/Übersetzer einen zugeordneten Adressschlüssel identifiziert ist. (1) Speicheradressbus 901. Er hat 15 Leitungen, welche die
Für jeden Adressschlüssel ist ein separater Segmentregister- m logische Programmadresse vom Speicheradressregister (SAR)
Stapel vorgesehen, um ein schnelles Umschalten der logischen des Prozessors zum Übersetzer übertragen. Nach der Adress-
Adressbereiche zu ermöglichen ohne die Notwendigkeit der Übersetzung werden die fünf werthöchsten Bits der Übersetz-
Wegspeicherung und Wider-Einspeicherung der Adressbe- adresse an den Prozessor zurückgeschickt um, falls erforderlich,
reichspeicherabbildungen des Systems. zur Adressierung des Innenspeichers 51 benutzt zu werden. Die
Der Adressverschiebungsübersetzer, der in den Fig. 9A und 35 10 niederwertigen Bits (D-Feld) brauchen nicht übersetzt
9B gezeigt ist, ermöglicht eine Erweiterung des Hauptspeichers werden.
durch einen Aussenspeicher von bis zu 64K Bytes in Inkremen- (2) Speicherdatenbus 902 zum Speicher. Er enthält 16
ten von 16K Bytes auf je einer Karte, welche als die fünfte bis Datenleitungen und zwei Paritätsleitungen. Er überträgt Speiachte Karte für den Aussenspeicher bezeichnet sind. Der Innen- cherdaten und Segmentregisterinhalte vom Prozessor zum
Speicher besteht aus der ersten bis vierten Karte, welche auch je 40 Übersetzer.
eine Kapazität von 16K Bytes haben. Erweiterungen der Spei- (3) Speicherdatenbus 903 vom Speicher. Er enthält 16
cherkapazität über die 128K Bytes des Innenspeichers und Datenleitungen und zwei Paritätsleitungen. Er überträgt Spei-Aussenspeichers hinaus bedürfen einer zusätzlichen Asynchron- cherdaten vom Ubersetzer und den Inhalt der Segmentregister
Speichereinheit (Fig. IC), durch welche der physische Speicher (SR) zum Prozessor.
von 128K Bytes bis zu einem Maximum von 16 Millionen Bytes 45 (4) Bus für aktiven Adressschlüssel (AAS-Bus). Diese drei vergrössert werden kann. Leitungen übertragen den aktiven Adressschlüssel AAS von der
Der grösste durch die Maschine statisch adressierbare Speicherprioritätsauswahlschaltung (Fig. 3C) zum Übersetzer,
Adressbereich, welcher allen gleichzeitig ablaufenden Program- um einen bestimmten Segmentregisterstapel im Übersetzer aus-
men zur Verfügung steht, wenn alle Segmentregister mit ver- zuwählen.
schiedenen physischen Blockadressen geladen sind, beträgt 219 5« (5) Speicherschreiben OP 0. Einzelleitung vom Prozessor,
Bytes. Diese Grenze ist bestimmt durch die 19 Bit lange Ein- die dem Übersetzer signalisiert, dass eine Schreiboperation im gangsadresse, welche in Fig. 1A gezeigt ist, und die entsteht, Speicher auszuführen ist mit dem linken Byte des Wortes, das wenn ein 3 Bit langer aktiver Adressschlüssel an die 16 Bit lange gegenwärtig auf dem Speicherdatenbus zum Speicher vorliegt,
im Programm erscheinende Adresse angehängt wird, um so eine Diese Leitung wird aktiviert, wenn das niedrigste Bit Nr. 23 der
19 Bit lange logische Maschineneingangsadresse für den Über- 55 24 Bit langen physischen Adresse gleich 0 ist.
setzer zu erzeugen. Für ein einzelnes Programm besteht die (6) Speicherschreiben OP 1. Einzelleitung vom Prozessor,
Adressierungsmöglichkeit bis zu drei verschiedenen Adressbe- die dem Übersetzer signalisiert, dass eine Schreiboperation im reichen, welche durch die drei Abschnitte des ASR definiert Speicher auszuführen ist mit dem rechten Byte des Wortes, dass sind, nämlich ISS, OPIS und OP2S, was also eine Adressierbar- sich auf dem Speicherdatenbus zum Speicher befindet. Diese keit eines Adressbereichs von max. 64 K bis zu max. 192 K 6() Leitung wird aktiviert, wenn das niedrigste Bit Nr. 23 der 24 Bit
Bytes ergibt. langen physischen Adresse gleich 1 ist.
D.h. : für einen physischen Hauptspeicher mit einer Kapazi- (7) Übersetzerfreigabe. Einzelleitung, welche ein Prozessor-
tät zwischen 512 K Bytes und 16 Millionen Bytes ergibt sich signal an den Übersetzer abgibt, dass den Übersetzer für seine eine Adressierungsmöglichkeit von nur bis zu 512 K Bytes bei Funktion freigibt. Dieses Signal wird aktiviert durch den Frei-
einem bestimmten geladenen Inhalt der Segmentregister ; dies « gabe/Sperrbefehl.
wird als die grösste statische Maschinenadressierbarkeit (8) Speicheranforderung an Übersetzer. Diese Einzelleitung bezeichnet. Wenn man nun eine Adressierung über die 512 K überträgt ein Prozessorsignal, welches den Übersetzer auffor-
Bytes des statischen Maximums hinaus vornehmen will, so muss dert, die logische Adresse vom Speicheradressbus zu überset-
615 521
10
zen. 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 erfor- 5 derlich 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. 1 ()
(10) Übersetzer 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 1 s übersetzten Adresse vom Adressbus an den Innenspeicher weitergeben soll.
(11) Innenspeicherzyklus (ISZ). Diese Leitung überträgt ein vom Übersetzer generiertes Signal, welches den Prozessor auffordert, dem Innenspeicher 51 mit jeder neuen physischen 2» Adresse ein Speicherzeitsignal zur Verfügung zu stellen. Wenn 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 -s ein vom Übersetzer generiertes Signal, welches dem Prozessor anzeigt, dass er die Taktsignale stoppen soll. Diese Leitung wird nur aktiviert bei Zugriffen zur Asynchronspeichereinheit 53.
Wenn der Übersetzer die entsprechende Antwort von der Asynchronspeichereinheit 53 bekommen hat, wird diese Leitung deaktiviert, und die Taktsignale werden wieder gestartet, um den Speicherzyklus zu beenden. Diese Stillegung der Speichertaktsignale durch eine Asynchronspeichereinheit ist der Grund für deren asynchrone Arbeitsweise und der Grund dafür, dass ihr Zugriffszyklus länger ist als der Zugriffszyklus beim Innen- 35 Speicher 51 oder Aussenspeicher 52.
(13) Übersetzer eingebaut. Diese Leitung überträgt ein vom Übersetzer generiertes Signal, welches dem Prozessor anzeigt,
dass ein Übersetzer 59 im System 59 eingebaut ist.
(14) Übersetzer ungültige Speicheradresse. Diese Leitung •»» überträgt ein vom Übersetzer generiertes Signal, das dem Prozessor anzeigt, dass die soeben an den Übersetzer übertragene logische Adresse ungültig ist ; es erfolgt dann eine Programmfehleranzeige (PCK).
(15) Übersetzer Speicherschutzanzeige. Diese Leistung 45 überträgt ein vom Übersetzer generiertes Signal, welches dem Prozessor anzeigt, dass ein Versuch gemacht wurde, im Speicher in einen Block zu schreiben, in dessen Segmentregister das Bit
14 auf 1 gesetzt ist, wodurch angezeigt wird, dass für diesen Block nur Leseoperationen erlaubt sind. 50
(16) Überwachungsprogrammzustand oder Cycle-Steal-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,
weü die vorliegende Speicherzugriffsanforderung entweder vom55 Überwachungsprogramm oder von einem E/A-Unterkanal stammt.
(17) Zyklusende. Diese Leitung überträgt ein von Prozessor generiertes Signal, welches dem Übersetzer anzeigt, dass jetzt fi() der Speicherzyklus beendet wird.
(18) Segmentregisterzyklus. Diese Leitung überträgt ein vom Prozessor generiertes Signal, welches dem Übersetzer anzeigt, dass die Segmentregister aktiviert werden. Gleichzeitig werden die Leitungen Speicher Schreiben OP 0 bzw. Speicher 65 Schreiben OP 1 benutzt, um anzuzeigen, ob der Zyklus ein Lese- oder Schreib-Zyklus als Teil eines Befehls «Segmentregister abspeichern» oder «Segmentregister laden» ist.
E. 2. Schnittstelle Übersetzer / Aussenspeicher
Die Schnittstelle vom Übersetzer zum Aussenspeicher ist in Fig. 9B gezeigt. Zu ihr gehören folgende Leitungen:
(1) Kartenauswahlleitungen. Diese vier Leitungen, welche bezeichnet sind mit Kartenauswahl 80K, 96K, 112K und 128K, wählen je eine Speicherkarte von 16K Bytes im Aussenspeicher aus.
(2) Leitungen TCSX und TCSY. Diese sechs Leitungen übertragen X-Koordinaten und Y-Koordinaten für die ausgewählte Karte, um einen bestimmten Bereich auf dieser Karte auszuwählen.
(3) Leitungen «Byte 0 Schreiben» und «Byte 1 Schreiben». Diese vier Leitungen übertragen Zeitgebersignale zu den vier 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 Schnittstellenleitungen zum Aussenspeicher nur, wenn ein Aussenspeicherzyklus 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 SAR Aus. Diese 13 Leitungen übertragen die 13 höherwertigen Bits der physischen Adresse, welche die Blockadresse in der Asynchronspeichereinheit bilden. Sie bilden die oberen SAR-Bits 0 -12, welche im 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: Synchronisierimg innerhalb der Speichereinheit, Vermeidung von Problemen beim Wiedereinschreiben, Einspeicherung von Daten in Kipp-
11
615 521
Schaltungen, 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 Ubersetzer eine Rückantwort erhalten hatte. Das Schreibzeitgabesignal wird nur aktiviert, wenn die Auswahlleitung auch aktiviert ist.
(11) Normales Asynchronspeicherzyklusende. Auf dieser Leitung wird ein Zeitgabeimpuls abgegeben, wenn die Rückantwortleitung ein Signal vom Asynchronspeicher erhält. Es wird von der ausgewählten Asynchronspeichereinheit als Bestätigungssignal benutzt, um die Rückstellung der Kippschaltungen, welche während des Zyklus gesetzt wurden, zu erreichen, und um die Wiederauswahl während desselben Zyklus beim Abfallen des Asynchronspeicherauswahlsignals zu verhindern.
E. 4 Segmentregisterauswahl
Einzelheiten der Segmentregistersteuerschaltungen sind in 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, sodass aus jedem Stapel der Inhalt des gewählten Registers ausgegeben wird. Dann wird mit Hilfe der AAS-Bits eine Auswahl unter den Stapeln getroffen, wobei durch diese Auswahl eines der acht vorgewählten Register endgültig ausgewählt wird. Dies wird so erreicht, dass man zunächst den Wert des AAS-Bits 2 benutzt, um von den vorgewählten Segmentregistern zur Einschränkung zunächst vier auszuwählen und zwar entweder von den gradzahligen oder den ungradzahligen Stapeln. Die vom AAS-Bit 1 beaufschlagten Leitungen mit dem Signal echt (T) und Komplement (C) werden dann dazu benutzt, um von den zwei Gruppen von Stapelausgangssignalen nur eine auszuwählen, und zwar entweder die Stapel 0,1 und 4, 5 oder die Stapel 2,3 und 6,7. (Hierbei bedeutet das Komma zwischen den Stapelnummern «oder»). Es werden also die Ausgabesignale A 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 der SR-Hoch-Niedrig-Auswahl-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 Ubersetzersteuerungen, 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.
45
55
65
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 Ubersetzerbetrieb 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-Ausgangssignal der Kippschaltung 481 freigegeben wird. Bei aktivem Ausgangssignal des UND-Gliedes 482 wird eine SR-Phasenkippschaltung (PH) für einen Zyklus gesetzt ; deren Ausgangssignal aktiviert das UND-Glied 484, wenn der Ubersetzer 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
615 521
12
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 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 Abspeicher-Mikroroutine vom Prozessorfestspeicher ROS. Für eine Segmentregisterladeoperation generiert die Mikroroutine zunächst eine Prozessorspeicheranforderung, während der das durch den SR-Befehl adressierte Wort aus dem Hauptspeicher abgerufen und in das Prozessorspeicherdatenregister SDR eingegeben wird. Danach gibt die Mikroroutine das Anforderungssignal für das Laden/Abspeichern des Segmentregisters ab, worauf eine weitere Prozessoranforderung für einen Speicherzyklus folgt. Dies veranlasst die Schaltung in Fig. 17, um in der oben beschriebenen Art und Weise einen SR-Zyklus zu generieren, welcher das Segmentregister auswählt und bewirkt, dass der Inhalt des Speicherdatenregisters SDR in das ausgewählte Segmentregister übertragen wird.
Der Befehl «Segmentregister abspeichern» läuft ähnlich ab, aber mit umgekehrten Ablauf der Mikroroutine, so dass zuerst die Schaltung in Fig. 17 veranlasst wird, einen SR-Zyklus zu generieren, während das 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. 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 Asynchronspeicher, zu dem die physische Blockadresse übertragen werden muss. Wenn eine Vorgriffsschaltung vorgesehen wird, braucht man keine zusätzliche Zeit zur Auswahl des benötigten Schnitt-5 stellenbus, und man braucht die ausgelesene Blockadresse nicht zu decodieren, um die benötigte Speichereinheit zu bestimmen. D.h., dass durch die Vorgriffsschaltung die Zugriffszeit bei Übersetzung um einen Prozessortaktzyklus verkürzt wird. Während des Übersetzungsvorgangs liegen die D-Bits der Positionen m 5 bis 15 der logischen Adresse ständig auf dem Hauptspeicherbus vom Prozessorspeicheradressregister SAR vor. Für die D-Bits wird also keine zusätzliche Übersetzungszeit benötigt; sie werden gleichzeitig an alle drei Speichereinheiten abgegeben.
Für die Vorgriffsschaltungen werden in jedem Segmentregi-15 ster (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-2o mentregister eingesetzt wird; diese Steuerung, welche die in Fig. 8A gezeigten Operationen ausführt, ist in Fig. 17 gezeigt. Die Vorgriffsbits zeigen an, ob der Innenspeicher, der Aussenspeicher oder der Asynchronspeicher den Block enthält, welcher der Blocknummer im SR entspricht. Wenn die Vorgriffsbits 25 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 Block-io nummer, nicht aber die Vorgriffsbits, können durch ein Programm gelesen werden, dass einen SR-Speicherbefehl benutzt.
Die Vorgriffsbits werden in der in Fig. 9C gezeigten Art codiert. Das linke Vorgriffsbit wird auf 1 gesetzt, wenn der zugehörige Block im Innenspeicher steht. Wenn das linke Bit 35 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.
4o 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. 45 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 ausge-50 wä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 55 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 Segment-50 register 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 65 00 bis 07 sind mit dem Eingang des O-Decodierers 901A verbunden. Jeder der 0-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
13
615 521
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 902A lauter Nullen in den SR-Ein-gangsbitpositionen 0 bis 6 feststellt, dann wird das rechte Bit des adressierten Segmentregisters auf 0 gesetzt. Der Grund hierfür ist, dass wenn das linke Vorgriffsbit anzeigt, das die Innenspei-chereinheit 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 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 Lei • tung 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 Ausgangsleitungen ab: AAS-Bit 2, AAS-Bit 1, und «SR Hoch-Niedrig-Auswahl» (Leitung 935). Die Leitung 935 gibt ein Eingangssignal an die Grundsteuerung in Fig. 9B. Diese Schaltungen sind im Einzelnen in Fig. 9D-2 gezeigt; sie erzeugen die Signale für die Leitungen 932 und 933, die mit den Segmentregisterstapeln 0-7 zur Angabe des niederwertigen 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 Übersetzungsbetrieb wird ein Stapelregister ausgewählt durch die gleiche Art von Konzentrationsoperation, wie sie im Abschnitt «Segmentregister-Auswahl» beschrieben wurde. Aus den vom Konzentrator angewählten Segmentregistern werden die beiden Vorgriffsbits zur gleichen Zeit wie die übrigen 16 Bits ausgelesen. Für die Vor-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 Leitungen 54A auf jeden Fall existieren, ob nun das System einen Übersetzer hat oder nicht, wird die Innenspeicherzyklus-Steuerleitung vom Konzentrator 931 mit dem Prozessor verbunden, um eine ISZ-Adressieroperation zu veranlassen. Die Leitungen für den Aus-s senspeicherzyklus und den Asynchronspeicherzyklus führen zu den Fig. 9E bzw. 9F-1, um die Adressauswahl in den betreffenden Einheiten zu veranlassen.
F. Operandenbereichsabgleich i » 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, 15 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. 13A gezeigten Freigabebefehl, wenn dessen OBA-2,1 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 "5 wird. Es wird jedoch nicht zu dem Adressbereich zugegriffen, der im OPIS-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 30 AAS-Ausgang dem OP2S-Schlüssel abgibt, jedesmal wenn bei Ausführung eines Befehls im Prozessor eine Zugriffsanforderung entweder für einen OP2-Operanden vorliegt.
Wenn der OBA-Zustand beendet wird durch Ausführung eines Sperrbefehls, dessen OBA-Bit 13 auf Null gesetzt ist, wird der Schlüsselwert im OPlS-Registerabschnitt wieder in Benutzung genommen, und bei jeder OPl-Operandenanforderung ausgegeben.
4o 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 45 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, so 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 OP1 S definiert ist. 55 (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 OP2 S definiert ist.
60 Wenn z.B. ISS = OPlS=OP2S, erfolgen alle Speicherzugriffe zu dem gleichen logischen Adressbereich von 64K Bytes Kapazität. Wenn ISS nicht gleich OP1 ist, wenn aber OPlS=OP2S, dann erfolgen die Instruktionsabrufe im ISS-Adressbereich und die Datenzugriffe erfolgen im OP2-Adress-65 bereich. Wenn ISS £ OPIS 4= OP2S, dann erfolgt der Befehlsabruf im ISS-Adressbereich, jeder Abruf eines Operanden 1 im OPlS-Adressbereich, und jeder Abruf oder jede Abspeicherung eines Operanden 2 im OP2S-Adressbereich, wobei also die
615 521
14
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. s wenn die Befehle zum Laden des ASR privilegiert sind.
H. Laden des ASR bei Untersuchung
Wenn im Prozessor eine Unterbrechung vorkommt, werden in das ASR zur Vorbereitung Adressschlüssel für Adressberei- i » che eingegeben, die von den die Unterbrechung behandelnden Programmen benötigt werden könnten. Es gibt im System eine Mehrzahl verschiedener Arten von Unterbrechungen, deren jede ihre spezielle Programmierunterstützung hat, die wiederum das Laden bestimmter Adressschlüssel erfordert. Zu den Pro- i s zessorunterbrechungen gehören: Unterbrechungen zum Überwachungsprogrammaufruf, E/A-Gerätunterbrechungen, Maschinenfehler-/Programmfehler-Unterbrechungen, Programm-Protokoll-Unterbrechungen, Bedienungsfeld-Unterbre-chungen und Unterbrechungen bei thermischer Überlastung. 20 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 25 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 wer- 30 den. Ein OP1-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-Übertragungsoperation vom unterbrechenden Adressbereich (d.h. OPIS- 35 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 OP1S-Bereich abgerufen werden. Der Inhalt des ASR wird mit einem 40 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 45 sind.
H.l Unterbrechung mit Überwachungsprogramm-Ruf (SVC-Unterbrechung)
Für die unten besprochenen Operationen bei der SVC- 5I) 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 0 steht. Es ist weiterhin angenommen, dass ein Austausch von Daten zwischen Benutzer 55 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 60 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-Position des ASR Werte eingegeben.
Daten werden vom Benutzerbereich in den Überwachungsprogrammbereich übertragen, und dann wird der Freigabebefehl (Fig. 13 A) mit einer 1 in Bitposition 13 ausgeführt, um den OBA-Zustand 4, der in Fig. 13B gezeigt ist, herbeizuführen. Dies bewirkt, dass alle Speicherzugriffe im Adressbereich mit Schlüssel = 0 erfolgen während das Überwachungsprogramm im OBA-Zustand ausgeführt wird, wobei die Zugriffsmöglichkeit zum OP1-Adressbereich nicht verloren wird.
Wenn das Überwachungsprogramm Information in den OPlS-Bereich übertragen möchte, gibt der Prozessor einen Sperrbefehl ab, der den Inhalt des OBA-Abschnitts im ASR rückstellt; dies bewirkt Rückkehr zum OP1-Adressbereich. 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 Benutzerbereich übertragen. Dann wird das ASR in den Benutzerzustand 7 (Fig. 13B) zurückgebracht durch Laden des ursprünglichen Inhaltes des ASR vom Niveaustatusblock NSB.
Fig. 18 zeigt die Operationen, die ausgeführt werden, wenn ein SVC-Befehl ausgegeben wird. Zu diesen Operationen gehört die Rettung des alten Inhalts des ASR und Laden eines neuen Inhalts in das ASR entsprechend der nachfolgenden Übersicht, wobei die Abschnittsnummern der Übersicht und die eingekreisten Nummern an den Datenpfaden in der Fig. 18 einander entsprechen. Die Ausführung des SVC-Befehls im Prozessor geschieht auf folgende Weise :
(1) Am Anfang der Ausführung des SVC-Befehls wird der Inhalt des ASR an das 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.
(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 Überwachungszustand 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 oder ein Zeiger zu den Daten befindet.
(7) Wenn der Prozessor den SVC-Zustand entdeckt, wird der Inhalt der Speicherstelle 0010 im Adressbereich mit Schlüssel = 0 abgerufen. Dieser Bereich enthält definitionsgemäss eine Adresse (d.h. einen Zeiger) zu einem Niveauspeicherblock (d.h. NSB), welcher sich seinerseits auch im Adressbereich mit Schlüssel = 0 befindet.
(8) Der NSB-Zeiger in Stelle 0010 wird in das Speicheradressregister SAR (Fig. 4) übertragen.
(9) An dem durch das SAR adressierten, für den NSB vorgesehenen Speicherplatz werden dann die Inhalte von BAR, TEMPA, TEMPB, sowie der Allgemein-Register 0-7 gespeichert (NSB).
(10) Die SVC-Nummer (welche die betreffende Art von SVC-Befehl identifiziert) wird aus dem SVC-Befehl im Adressbereich 1 kopiert in das Register Rl.
(11) Der Inhalt des Speicherplatzes 0012 wfrd in das BAR übertragen.
(12) Es beginnt jetzt die Ausführung der Überwachungsprogrammroutine, welche an der Speicherstelle mit Adresse 0012 beginnt.
Das ist die Routine, welche durch SVC Nummer 2 gerufen wird.
Beim Beginn der SVC-Routine hat das ASR folgenden Inhalt:
OPIS OP2S ISS
OP2S' 0 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, OBA 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 N unterbrechenden E/A-Gerät empfangen wurde, in Register 7 einsetzen.
Der sich ergebende Inhalt des ASR ist:
OPIS OP2S ISS 0 0 0
H.3 Unterbrechung bei Maschinenfehler und Programmfehler
(1) Protokoll rückstellen, 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 OP2S ISS
LKSA 0 0 (Bemerkung: LKSA ist der letzte im Register 408 in Fig. 4 gespeicherte Schlüssel bei Auftreten der Unterbrechung).
H.4 Unterbrechung vom Bedienungsfeld/Unterbrechung bei thermischer Überlastung
(1) Protokoll rückstellen, Summenmaske sperren, OBA sperren, und Überwachungszustände setzen.
(2) NSB abspeichern unter Benutzung des Adressschlüssels 0.
(3) ISS = OPIS = OP2S = 0 setzen.
Es ergibt sich folgender Zustand des ASR:
OPIS OP2S ISS 0 0 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:
15 615 521
OPIS OP2S ISS
ISS' 0 0 (Bemerkung: ISS'entspricht dem zur Zeit der Unterbrechung vorliegenden ISS).
5
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. 9 A und 9B gezeigte io 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 15 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 2d 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, 25 wird der Adressverschiebungsübersetzer gesperrt. Der Zu stand der ÜFA-Speicherschutzeinrichtungen 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, 3« 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 2 048 Byte Kapazität unterteilt. Für jeden Block des Hauptspeichers wird ein Speicherschlüsselregister in einem Registerstapel 501 35 (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, 40 das im System abläuft. Bei Verwendung der ÜFA-Speicherschutzeinrichtung sind die im Programm erscheinenden Adressen die physischen Adressen; wenn aber der Ubersetzer freigegeben wird, ist die im Programm erscheinende Adresse ein Teil der logischen Eingangsadresse. Jedes Register hat mindestens 45 drei Bitstellen für einen zugeordneten Speicherschlüssel und ein Nur-Lese-Bit R; es kann auch zusätzlich ein Validitätsbit V haben (nicht gezeigt). Für die drei Bit langen Speicherschlüssel sind die Bit-Positionen 0,1 und 2 vorgesehen, welche durch eine der üblichen Befehle zum Laden von Speicherschlüsseln so geladen werden können, (wie z.B. im IBM System/360).
Ein zur ÜFA-Speicherschutzoperation gehörender Ver-gleichsteü entspricht in etwa der Arbeitsweise der Speicherschlüsselschutzeinrichtungen, die in bekannten Systemen wie z.B. IBM-Systeme/360 oder IBM-Systeme/370 vorkommen. 55 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).
so 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.
Der Speicherschlüssel im ausgewählten Register wird abge-65 rufen. 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
615 521
16
zugelassen, vorausgesetzt, dass die ÜFA-Speicherschutzeinrich-tung 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-Speicherschutzeinrichtung ermöglicht also einen selektiven 5 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 i » benutzten Speicherbereichen, welche durch einen besonderen Schlüsselwert angezeigt ist, und bei Zugriffen durch E/A-Unterkanäle. Jeder Benutzer hat Zugriff zu den speziellen,
durch Schlüssel bezeichneten Speicherbereichen, die für den betreffenden Benutzer im ASR im Prozessor definiert sind ; alle 15 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. 20
Eine besondere Zugriffssteuerung für E/A-Operationen bei Benutzung der ÜFA-Speicherschutzeinrichtungen ist durch die Schaltung 504 und 505 gegeben, welche ermöglichen, dass eine E/A-Cycle-Steal-Zugriffsanforderung sowohl zu dem Speicherbereich, der für den betreffenden Benutzer in seinem ASR 25 definiert ist, als auch zu dem gemeinsamen Speicherbereich mit Schlüssel =7 gemacht werden kann, wobei kein E/A-Cycle-Steale-Zugriff verhindert wird durch das Nur-Lese-Bit im verwendeten Speicherschlüsselregister. D.h. also, dass ein E/A-Schreibzugriff immer zugelassen wird unabhängig vom Wert des m 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 j edem beliebigen Block im Hauptspeicher erlaubt. 3 5
Zusammenfassend kann man sagen, dass die Adressbe-reichsauswahlsteuerung, welche durch das Adressschlüsselregister ASR gegeben ist, immer benutzt wird, sowohl bei Freigabe der ÜFA-Speicherschutzeinrichtung als auch bei Benutzung einer zusätzlich vorgesehenen Übersetzer-Einrichtung. Der 40 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 Operand bzw. Befehl). 45
Wenn die ÜFA-Speicherschutzeinrichtung freigegeben ist, muss mindestens eine der folgenden Bedingungen erfüllt sein, damit ein versuchter Speicherzugriff erlaubt wird :
(1) Die Anlage befindet sich im Überwachungsprogrammzustand. 50
(2) Der Speicherschlüssel des adressierten Blocks ist 7. Bei einem Versuch zum Einschreiben im Speicher muss das Nur-Lese-Bit =0 sein.
(3) Der Speicherschlüssel des adressierten Blocks muss dem aktiven Adressschlüssel AAS gleich sein. Wenn eine Speicher- 55 schreib-Operation versucht wird, muss das Nur-Lese-Bit =0 sein.
Wenn keine der obigen Bedingungen (1), (2) oder (3) erfüllt ist, gibt der In verter 507 (Fig. 11) ein Speicherzugriff sperrsignal aus, durch welches eine Programmfehler-Unterbrechung (PCK) w> 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üsselregister ASR, 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-Einrichtungen beide gesperrt, sodass beim einleitenden Laden in jedem Platz des Hauptspeichers eingeschrieben werden kann. Nach der erfolgreichen Durchführung des einleitenden Programm-Ladens (IPL) kann jede der beiden 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 AAS, sie haben aber auch eine Anzahl von Merkmalen, die verschieden sind, wie z.B. :
(1) Bei der Ü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 64K 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 512K Bytes haben.
(3) In einem Übersetzersystem 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 2K Byte 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-Fehleroperationen annehmen für den Zugriff zu einer Adresse, welche nicht zu dem durch einen CS-Schlüssel oder durch einen Schlüssel =7 definierten Bereich gehört.
(6) Wegen der bei einem System mit Übersetzer gegebenen Flexibilität für die 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 i 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
615 521
(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 Betriebsart ermöglicht dem Prozessor eine unterschiedliche, von einen 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, 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 geladen 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, enhä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 Uberwachungsprogramm kann aber nicht zu anderen Adressbereichen im Hauptspeicher zugreifen, die zu anderen Adressschlüsseln gehören. Diese Arbeitsweise des Überwachungsprogrammes mit eingeschränkter Adressierbarkeit ermöglicht zwar den Programmen zur Unterbrechungsbehandlung, zu einem gegenwärtig unterbrochenen Benutzerprogramm und dessen Daten zuzugreifen, ohne dass dabei die 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 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 Benut-s zerbereich 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.
io Eine dritte Art von Prozessoroperation ist vorgesehen,
wenn das Überwachugsprogrammbit 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 Hauptspeicherbe-i5 reich 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 20 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 25 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 3o 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 in dem Bereich ste-35 hen, 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 4o den Schlüssel =0 an den AAS-Bus abgibt. Hieraus ergibt sich die oben beschriebene zweite Art von Prozessoroperation, bei der das Überwachungsprogramm für alle Befehlsabrufe und Operandenzugriffe auf den Bereich des Schlüssels =0 eingeschränkt ist, unabhängig vom Wert des Benutzerschlüssels im 45 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 Benut-50 zeradressschlü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. 55 Das Überwachungsprogramm kann nur arbeiten, wenn Bit S gesetzt (gleich Eins) ist.
C
15 Blatt Zeichnungen

Claims (4)

  1. 615 521
    PATENTANSPRÜCHE
    1. Datenverarbeitungsanlage mit Prozessor und mit erweiterbarer Hauptspeicheranordnung, welche mindestens einen Innenspeicher (51) und einen Adressübersetzer (59) aufweist, dadurch gekennzeichnet,
    - dass der Innenspeicher höchstens eine Anzahl Speicherstellen aufweist, welche der Länge jeder einzelnen der im Prozessor (Fig. 4) übertragbaren und speicherbaren Programmadressen entspricht, und dass der Innenspeicher sowohl durch vorgegebene Programmadressen als auch durch übersetzte Adressen adressierbar ist ;
    - dass der Adressübersetzer eine Mehrzahl von Registergruppen (Fig. 1A-2 ; Fig. 9c) zur Aufnahme von echten Blockadressen aufweist, wobei die Register durch vom Prozessor abgegebene logische Blockadressen auswählbar sind;
    - dass beim Prozessor eine Verbindungs- und Auswahlschaltung (56, Fig. 3C) vorgesehen ist mit Übertragungsleitungen (901) zur Übertragung von logischen Adressen zum Adressübersetzer als auch zur Rückübertragung von übersetzten Adressen, und mit Übertragungsleitungen (54A) zur Übertragung von Adressignalen zum Innenspeicher;
    - und dass im Adressübersetzer ausserdem folgende Einrichtungen vorgesehen sind:
    - eine erste Anschluss- und Steuereinrichtung (Fig. 9E) für einen zusätzlichen Aussenspeicher, der synchron mit dem Innenspeicher und dem Prozessor arbeitet;
    - eine zweite Anschluss-und Steuereinrichtung (Fig. 9F-1/ 9F-2) für einen zusätzlichen Asynchronspeicher, der aufgrund separater Zeitsteuersignale asynchron zum Innenspeicher und Prozessor arbeitet;
    -eineSteueranordnung(903 .. .906, Fig. 9C; 931,935, Fig. 9D-1) zur Erzeugung von Steuersignalen (ISO, OSZ, ASZ) zur Auswahl des Innenspeichers oder je eines der angeschlossenen zusätzlichen Speicher für einen Speicherzyklus.
  2. 2. Anlage nach Patentanspruch 1, dadurch gekennzeichnet, dass Selektionseinrichtungen (Fig. 9A; Fig. 9C) vorgesehen sind, um aufgrund eines Adressschlüssels eine von mehreren Registergruppen (Fig. A-l ; Fig. 9C) im Adressübersetzer (59) für die Übersetzung auszuwählen ; dass eine Speichervorrichtung (20, Fig. 1A; 420, Fig. 4) vorgesehen ist, um gleichzeitig mehrere Adressschlüssel zu speichern; und dass Auswahl- und Übertragungseinrichtungen (332,333, Fig. 3C; Fig. 3D) vorgesehen sind, um aufgrund von Steuersignalen des Prozessors je einen der in der Speichervorrichtung enthaltenen Adressschlüssel auszuwählen und den Selektionseinrichtungen zuzuführen.
  3. 3. Anlage nach Patentanspruch 1, dadurch gekennzeichnet, dass in der zweiten Anschluss- und Steuereinrichtung (Fig. 9F-1/9F-2) für einen zusätzlichen Asynchronspeicher enthalten sind:
    - eine Totzeitvorrichtung (910), welche bei Auftreten eines Steuersignals (ASZ) für den Beginn eines Asynchronspeicherzyklus aktiviert wird und nach vorgegebener Zeit ein Zeitgrenzsignal abgibt;
    - eine Aufnahmeschaltung (911) für ein von einem adressierten Asynchronspeicher abgegebenes Antwortsignal, welches dessen Installierung und Betriebsbereitschaft anzeigt;
    - sowie eine mit dem Ausgang der Totzeitvorrichtung verbundene Fehleranzeigeschaltung (912), welche ein Ausgangssignal zum Anzeigen einer ungültigen Speicheradresse abgibt, wenn das Antwortsignal nicht innerhalb der vorgegebenen Zeit eintrifft.
  4. 4. Anlage nach Patentanspruch 3, dadurch gekennzeichnet, dass in der zweiten Anschluss- und Steuereinrichtung (Fig. 9F-1/9F-2) für einen zusätzlichen Asynchronspeicher weiterhin enthalten sind:
    - eine erste Kippschaltung (913) zur Besetztanzeige der Asynchronspeichersteuerung, welche bei Auftreten eines den Beginn eines Asynchronspeicherzyklus anzeigenden Signals
    (ASZ) gesetzt wird, und die eine zum Prozessor führende Ausgangsleitung aufweist, die ein Steuersignal zur vorübergehenden Sperrung des Prozessortaktsignals abgibt;
    — eine zweite Kippschaltung (914) zur Anzeige eines Nor-
    s mal-Asynchronspeicherzyklus-Endes, die mit der Totzeitschaltung und mit der Antwortsignal- Ausnahmeschaltung verbunden ist;
    - sowie Verbindungen vom Ausgang der zweiten Kippschaltung und vom Ausgang der Fehleranzeigeschaltung zu einem io Rückstelleingang der ersten Kippschaltung, um bei Auftreten eines Normal-Asynchronspeicherzyklus-Endesignals oder bei Auftreten des Signals für eine ungültige Speicheradresse die erste Kippschaltung zurückzustellen und durch Beendigung des Besetztanzeige-Steuersignals die Wiederfreigabe der Prozessor-i? taktsignale zu bewirken.
CH527477A 1976-04-30 1977-04-28 CH615521A5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/682,223 US4042911A (en) 1976-04-30 1976-04-30 Outer and asynchronous storage extension system

Publications (1)

Publication Number Publication Date
CH615521A5 true CH615521A5 (de) 1980-01-31

Family

ID=24738744

Family Applications (1)

Application Number Title Priority Date Filing Date
CH527477A CH615521A5 (de) 1976-04-30 1977-04-28

Country Status (10)

Country Link
US (1) US4042911A (de)
JP (1) JPS52132741A (de)
AU (1) AU507989B2 (de)
BR (1) BR7702819A (de)
CA (1) CA1078070A (de)
CH (1) CH615521A5 (de)
ES (1) ES458320A1 (de)
FR (1) FR2349888A1 (de)
GB (1) GB1557120A (de)
SE (1) SE418778B (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
SE403322B (sv) * 1977-02-28 1978-08-07 Ellemtel Utvecklings Ab Anordning i en styrdator for forkortning av exekveringstiden for instruktioner vid indirekt adressering av ett dataminne
US4363091A (en) * 1978-01-31 1982-12-07 Intel Corporation Extended address, single and multiple bit microprocessor
US4340932A (en) * 1978-05-17 1982-07-20 Harris Corporation Dual mapping memory expansion unit
US4373179A (en) * 1978-06-26 1983-02-08 Fujitsu Limited Dynamic address translation system
US4246637A (en) * 1978-06-26 1981-01-20 International Business Machines Corporation Data processor input/output controller
JPS559260A (en) * 1978-07-03 1980-01-23 Nec Corp Information processing system
FR2431732A1 (fr) * 1978-07-19 1980-02-15 Materiel Telephonique Dispositif de conversion d'adresse virtuelle en adresse reelle
US4388685A (en) * 1978-08-04 1983-06-14 Digital Equipment Corporation Central processor with apparatus for extended virtual addressing
US4258419A (en) * 1978-12-29 1981-03-24 Bell Telephone Laboratories, Incorporated Data processing apparatus providing variable operand width operation
US4521858A (en) * 1980-05-20 1985-06-04 Technology Marketing, Inc. Flexible addressing and sequencing system for operand memory and control store using dedicated micro-address registers loaded solely from alu
US4403283A (en) * 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
US4386401A (en) * 1980-07-28 1983-05-31 Sperry Corporation High speed processing restarting apparatus
US4368515A (en) * 1981-05-07 1983-01-11 Atari, Inc. Bank switchable memory system
US4432053A (en) * 1981-06-29 1984-02-14 Burroughs Corporation Address generating apparatus and method
US4638426A (en) * 1982-12-30 1987-01-20 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence
US4858109A (en) * 1985-02-14 1989-08-15 Ag Communication Systems Corporation Program code fetch from data memory arrangement
US4916603A (en) * 1985-03-18 1990-04-10 Wang Labortatories, Inc. Distributed reference and change table for a virtual memory system
IT1183808B (it) * 1985-04-30 1987-10-22 Olivetti & Co Spa Circuito elettronico per collegare un microprocessore ad una memoria ad elevata capacita
JPS62102344A (ja) * 1985-10-29 1987-05-12 Fujitsu Ltd バツフア・メモリ制御方式
US5293594A (en) * 1986-05-24 1994-03-08 Hitachi, Ltd. Data processing system having a plurality of register groups and a logical or circuit for addressing one register of one of the register groups
JPH01112450A (ja) * 1987-10-27 1989-05-01 Sharp Corp メモリ管理ユニット
US5008811A (en) * 1988-02-10 1991-04-16 International Business Machines Corp. Control mechanism for zero-origin data spaces
US5155834A (en) * 1988-03-18 1992-10-13 Wang Laboratories, Inc. Reference and change table storage system for virtual memory data processing system having a plurality of processors accessing common memory
US5113512A (en) * 1988-06-21 1992-05-12 Matsushita Electric Industrial Co., Ltd. System for managing a storage medium reducing physical space needed
US5317706A (en) * 1989-11-15 1994-05-31 Ncr Corporation Memory expansion method and apparatus in a virtual memory system
US5423013A (en) * 1991-09-04 1995-06-06 International Business Machines Corporation System for addressing a very large memory with real or virtual addresses using address mode registers

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
FR130806A (de) * 1973-11-21
US3916385A (en) * 1973-12-12 1975-10-28 Honeywell Inf Systems Ring checking hardware
FR122199A (de) * 1973-12-17
US3909798A (en) * 1974-01-25 1975-09-30 Raytheon Co Virtual addressing method and apparatus
FR119649A (de) * 1975-03-24

Also Published As

Publication number Publication date
FR2349888B1 (de) 1980-12-19
GB1557120A (en) 1979-12-05
JPS52132741A (en) 1977-11-07
SE418778B (sv) 1981-06-22
AU2475077A (en) 1978-11-09
ES458320A1 (es) 1978-03-01
AU507989B2 (en) 1980-03-06
SE7704955L (sv) 1977-10-31
JPS5751132B2 (de) 1982-10-30
BR7702819A (pt) 1978-04-04
FR2349888A1 (fr) 1977-11-25
US4042911A (en) 1977-08-16
CA1078070A (en) 1980-05-20

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
CH615521A5 (de)
CH619309A5 (de)
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE2350225C2 (de)
DE2350884C2 (de) Adreßumsetzungseinheit
DE4221278C2 (de) Busgekoppeltes Mehrrechnersystem
DE2629459C2 (de)
DE2953861C2 (de)
DE2414311C2 (de) Speicherschutzeinrichtung
DE2523372B2 (de) Eingabe-ZAusgabe-Anschlußsteuereinrichtung
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE2902465A1 (de) Datenverarbeitungsanordnung
DE2422802A1 (de) Datenverarbeitungsanlage
DE2928488A1 (de) Speicher-subsystem
DE2441754A1 (de) Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors
DE2755616A1 (de) Asymmetrischer multiprozessor
DE2809602A1 (de) Kanalbus-steuereinrichtung
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
DE1549531A1 (de) Digitale Rechenanlage
DE2144051A1 (de) Programm Unterbrechungsanordnung für eine Datenverarbeitungsanlage
EP0935214B1 (de) Chipkarte mit integrierter Schaltung
DE2828741A1 (de) Einrichtung fuer die weiterleitung von speicherzugriffsanforderungen
DE3911721A1 (de) Schaltung zur verzoegerten freigabe eines schreibvorganges in einen vorratsspeicher fuer ein zweifachbus-mikrocomputersystem
DE2717700C2 (de) Speicherzugriffsanordnung

Legal Events

Date Code Title Description
PL Patent ceased