DE2416609C2 - Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen - Google Patents
Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-PrioritätsstufenInfo
- Publication number
- DE2416609C2 DE2416609C2 DE2416609A DE2416609A DE2416609C2 DE 2416609 C2 DE2416609 C2 DE 2416609C2 DE 2416609 A DE2416609 A DE 2416609A DE 2416609 A DE2416609 A DE 2416609A DE 2416609 C2 DE2416609 C2 DE 2416609C2
- Authority
- DE
- Germany
- Prior art keywords
- address
- register
- bit
- program
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Description
Die Erfindung betrifft eine Datenverarbeitungsanlage gemäß dem Oberbegriff des Anspruchs 1.
Eine solche Anlage ist aus der Zeitschrift »Computers
and Automation«, July 1966, Seiten 19 bis 23 bekanntgeworden. Diese Einrichtung gestattet jedoch nicht die
Berücksichtigung von hinsichtlich der Speicheradressierung und der Instruktionsdurchführung möglichen Betriebsarten.
Die Erfindung findet außerdem spezielle Anwendung in Cor-iputersystemen mit erweiterten Funktionen.
Zahlreiche Computersysteme sind ursprünglich mit einer Architektur entworfen, die auf einem bestimmten
Bedarf basiert. Wenn das System einmal in Verwendung genommen wurde, entsteht oft eine Nachfrage nach einem
Computersystem mit einer erweiterten Funktion, wie z. B. Multiprogrammierung und Adressierung eines
erweiterten Speicherbereiches. Das Hauptproblem besteht dann darin, die Funktion eines existierenden Systems
unter Verwendung der Grundarchiteklur oder Konstruktion zu einem vollständig neuen System zu erweitern.
Besondere Beachtung verdienen hierbei die bei Programmunterbrechungen auftretenden Probleme.
In bekannten Programmunterbrechungseinrichtungen erfolgt die Wahl des dem Unterbrechungsniveau
entsprechenden Adreßregisters (und damit eines neuen Speicherbereiches) durch die aktive Unterbrechungsstufe. Solche Programmunterbrechungseinrichtungen
sind aus der DE-OS 14 49 568 und der DE-AS 15 24 209
bekannt, wobei jedoch die Auswahl nicht nur zwischen Adreßregistern, sondern allgemeiner zwischen Programmarbeitsregistern,
die jeder Programmunterbrechungs-Prioritätsstufe zugeordnet sind, erfolgt. Diese
bekannten Einrichtungen ermöglichen jedoch nicht eine Wahl sowohl des Adreßregisters als auch der Betriebsart,
in der das System innerhalb dieses Unterbrechungsniveaus arbeiten soll, und auch nicht einen Wechsel der
Betriebsart innerhalb der aktiven Unterbrechungsstufe auf selektive Weise innerhalb eines Operationszyklus.
Die erweiterte Speicheradressierung, d. h. die Adressierung eines vergrößerten Speichers mit Adressen der
Grundgröße ist in den US-Patentschriften 32 92 151, 33 03 477.33 95 392 und 35 53 653 beschrieben. Die Verbindung
mit einem Speicherschutz, der von der verwendeten Betriebsart abhängt, ist jedoch nicht möglich.
Als Betriebsarten im obigen Sinne kommen vor allem in Betracht:
— das Adressieren eines erweiterten Speicherbereiches unter Beibehaltung der bisher verwendeten
Adressenlänge.
— der Schutz von Speichersegmenten, beispielsweise von Benutzerprogrammen, gegen unzulässiges
Schreiben oder Lesen,
— das Ausführen von Übersetzungen vor logischen
Adressen in reale Adressen,
- das Ausführen von privilegierten Instruktionen durch gleichzeitige Unterdrückung der Ausführung
von nichtprivilegierten Instruktionen,
— das fallweise Ausschalten der starren Pricritätsrtgelung, etc.
Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, eine Datenverarbeitungsanlage der eingangs
genannten Art anzugeben, welche es gestattet, zu jeder Programmunterbrechungs-Prioritätsstufe eine bestimmte
Betriebsart auswählen zu können.
Diese Aufgabe wird erfindungsgemäß durch die im Kennzeichen des Hauptanspruches beschriebene Datenverarbeitungsanlage
gelöst.
Die Erfindung hat den Vorteil, daß auch bei Multiprogrammierung mit verschiedenen Progranimunterbrechungsniveaus
die Adressierung eines erweiterten Speicherbereiches und die Verwendung einer einfachen
Speicherschutzeinrichtung ermöglicht wird. Die Multiprogrammierung
wird hierdurch wesentlich vereinfacht. Neben der erweiterten Speicheradressierung und der
Erzielung des Speicherschutzes sowie der Übersetzung virtueller Adressen ermöglicht die Erfindung auch die
Verwendung von privilegierten Instruktionen, von Programm-Fehlersignalen
und einer maskierten Programmunterbrechung, wobei die Wahl der Betriebsau
in jedem Operationszyklus erfolgen kann. Die Vereinfachung der Programmierung wird vor allem dadurch erreicht,
daß durch jede Programmunterbrechung auf irgendeinem Prioritätsniveau zugleich auch die gewünschte
Betriebsart des Systems gewählt werden kann. Die Unterbrechungsroutine kann dabei in einem
Speicherblock gespeichert werden, der dem aktivierten Unterbrechungsniveau direkt zugeordnet ist.
Vorteilhafte Weiterbildungen der Erfindung sind den Unteransprüchen zu entnehmen.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschließend näher
beschrieben. Es zeigt
Fig. 1 einen Kombinationsplan für die Fig. la und
Ib,
Fig. la und Ib zusammen in einem Blockdiagramm
die Datenverarbeitungsanlage,
F i g. 2a und 2b von links nach rechts zusammengelegt schematisch in einem Blockdiagramm die Logik zur
Adressierung, zum Laden und Speichern der Programmbetriebsartregister, der Adressierlogik, der Logik
zum Laden und Speichern der Adreßübersetzungsregister
und der Logik zum Einstellen und Abfühlen der Adressenerweiterungs-Bitstelle in den Ein/Ausgabe-Adreßregistern,
Fig. 3 in einem schematischen Logikdiagramm die
Logik zur Erzeugung der durch die in Fig. 2 gezeigte Logik benutzten Steuersignale aufgrund der Lade- und
Speicherinstruktionen der CPU,
Fig.4 in einem schematischen Blockdiagramm die
Logik zum Erkennen von Programmpriifbedingungen, die Logik zur Erzwingung des Operationsendes, die Logik
für die Zugriffssperre zum Datenspeicher und zum Schreiben in diesel1 Speicher sowie die Logik für die
Anforderung der Unterhrechungsstufen 0 und 7.
F i g. 5 in einem 'ichi'maüschen Logikdiagramm die
Logik zur Erzeugung der durch die in F i g. 4 gezeigte
Logik benutzten Steuersignale aufgrund von Kommandoinstruktionen der CPU und
F i g. 6 in einem schematischen Logikdiagramm die Unterbrechungsslufcnlogik.
Allgemeine Beschreibung
Das Ausführungsbeispiel der Erfindung kann z. B. verwendet werden in einem Computersystem, wie es
beschrieben ist in den Handbüchern »IBM 5410 Processing
Unit Theroy of Operation«, Copyrighted 1963, 1970,1971 by International Business Machines Coroporation
und »IBM 5410 Processing Unit Diagrams«, Copyrighted 1969 by International Basiness Machines Corporation.
Die Erfindung verbessert das Datenverarbeitungssystem der dort beschriebenen Art unter anderem
durch Veränderung zu einem Multiprogramming-System. Ein solches System ist grundsätzlich insofern ein
vielseitigeres Datenverarbeitungssystem, als mehr als ein Benutzerprogramm die Datenverarbeitungsoperation
steuern können, wo ein Überwachungsprogramm die lobumschaltung steuert. Die in F i g. 1 gezeigte
Hauptspeichereinheit 10 hat eine erweiterte Kapazität und kann in diesem Beispiel 128 K Datenbytes von je
acht Biis (0—7) speichern. Die Speicherkapazität der Speichereinheil 10 reicht zur gleichzeitigen Speicherung
des Überwachungsprogrammes und eines oder mehrerer Benutzerprogramme aus.
Alle Bytepositionen im Hauptspeicher 10 können nicht mehr einzeln durch die Adresse im Speicheradreßregister (SAR) 20 adressiert werden, weil die größte Adresse im Register 20 und in den Registern 100, von wo die Adresse im Register stammt, einzeln nur 64 K Bytes adressieren können. Das Überwachungsprogramm wird in den unteren K Bytes gespeichert, d. h. z.B. in den ersten 16 K Bytes, und die Benutzerprogranime werden in den höheren K Bytes des Speichers gespeichert. Ein Benutzerprogramm ist z. B. in den Bytes 16—64 K und ein anderes in den Bytes 64—128 K gespeichert. Der Speicheradreßbetrieb, d. h, ob die oberen oder die unteren 64 K Bytes adressiert werden, wird bestimmt durch Steuerbits, die in den Programmbetriebsartenregistern 500 gespeichert sind und durch Unterbrechungsstufen des Datenverarbeitungssystems gewählt werden.
Alle Bytepositionen im Hauptspeicher 10 können nicht mehr einzeln durch die Adresse im Speicheradreßregister (SAR) 20 adressiert werden, weil die größte Adresse im Register 20 und in den Registern 100, von wo die Adresse im Register stammt, einzeln nur 64 K Bytes adressieren können. Das Überwachungsprogramm wird in den unteren K Bytes gespeichert, d. h. z.B. in den ersten 16 K Bytes, und die Benutzerprogranime werden in den höheren K Bytes des Speichers gespeichert. Ein Benutzerprogramm ist z. B. in den Bytes 16—64 K und ein anderes in den Bytes 64—128 K gespeichert. Der Speicheradreßbetrieb, d. h, ob die oberen oder die unteren 64 K Bytes adressiert werden, wird bestimmt durch Steuerbits, die in den Programmbetriebsartenregistern 500 gespeichert sind und durch Unterbrechungsstufen des Datenverarbeitungssystems gewählt werden.
Es gibt im wesentlichen neun Unterbrechungsstufen und somit neun Programmbetriebsartenregister 500.
Die neunte Unterbrechungsstufe ist in Wirklichkeit die Programmstufe oder keine Unterbrechungsstufe mehr.
so Die Programmbetriebsartenregister 500 können vom Programm mit Datenbits über eine neue Instruktion
Laden/Speichern Programmbetriebsartenregister geladen werden. Der Inhalt eines Programmbetriebsartenregisters
kann zur E/A-Zeit eines Instruktionszyklus verändert werden. Jedes Programmbetriebsartenregister
hat sieben Bits und drei Bitpositionen dieser acht Bitpositionen dienen der Steuerung des Adrsssierbetriebes.
Diese drei Bitpositionen eines jeden Registers sind der Einfachheit halber als Gruppen in Fig. 1 ge-
bo zeigt und speisen den Adreßübersetzungstabellenblock
510.
Die erweiterte Adressierung erfolgt wahlweise durch die Aureßübersetzungstabellenregister 550, die ebenfalls
vom Programm geladen werden können mit einer
b5 neuen Instruktion Laden/Speichern Adreßübersetzungstabelle.
Es gibt 32 Adreßübersctzungstabellenregister und jedes Register enthält acht Bits. Vor. diesen
acht Bits sind sechs Bits für die werthohen Adreßbits für
den Hauptspeicher vorgesehen und die beiden anderen geben an, ob der adressierte Speicherbereich für das
Lesen oder das Schreiben geschützt ist.
Aus der obigen Erklärung geht hervor, daß die Programmbetriebsartenregister
500 durch die aktive Unterbrechungsstufe gewählt werden, um die Betriebsarten des Systems und unter anderem den Adreßübersetzungsbelrieb
zu bestimmen. Der Adreßübersetzungsbetrieb ist während verschiedener Maschinenzyklen einer
Instruktion ein- oder ausgeschaltet, abhängig von den Steuerbits im gewählten Programmbetriebsartenregister
500. Wenn der Adreßübersetzungsbetrieb für einen Maschinenzyklus läuft, werden die werthohen Adreßbits
aus dem Adreßübersetzungstabellenregister 550 genommen, die durch die Bits 0—4 auf der Sammelleitung
22 der im SAR 20 enthaltenen 16 Bits großen logischen Adresse gewählt wurden. Das gewählte Adreßübersetzungstabellenregister
550 gibt sechs werthohe Adreßbits an den Hauptspeicher über die Sammelleitung 569 und die durch das UND-Glied 570 dargestellte
UND-Glied-Logik (für jedes Adreßbit ist ein separates UND-Glied vorhanden) und das ODER-Glied 573. Die
durch das UND-Glied 570 dargestellten UND-Glieder werden durch ein Übersetzungssignal vorbereitet, welches
durch die Adreßübersetzungstabellenlogik 510 erzeugt wird. Das Übersetzungssignal wird über die Leitung
516 an das UND-Glied 570 und den Inverter 571 angelegt.
Wenn das Übersetzungsvorbereitungssignal fehlt, bereitet der Inverter 571 die durch das UND-Glied 572
dargestellten UND-Glieder zur Leitung der Bits 0—4 des SAR 20 auf die Sammelleitung 22 und Bit 17 vom
Ausgabesatz eines Speicherelementes 21 der 17. Position vor, welches dem SAR 20 hinzugefügt wurde. Diese
17. Bitposition wird gemäß späterer Beschreibung nur bei E/A-Zyklen benutzt. Die übrigen Bits 5—15 im
SAR 20 werden direkt über die Sammelleitung 23 an den Hauptspeicher geleitet. Durch diese Anordnung
kann mit Ausnahme der E/A-Geräte, die für die Datenübertragung Zyklen entnehmen, eine 16 Bit große logische
Adresse 128 K. Speicherbytes dadurch adressieren,
daß die fünf werthohen Bits im SAR 20 zum Wählen eines der Register 550 benutzt werden, die sechs Adreßbits
enthalten.
Die E/A-Geräte benutzen eine physikalische Speicheradresse des 17. Bits, weil sie nicht mit den Adreßübersetzungstabellenregistern
550 arbeiten. Die E/AGeräte benutzen die Adreßübersetzungstabellenregister 550 nicht, weil das Überwachungsprogramm den
Inhalt dieser Register für einen anderen Benutzer verändert, wenn die E/A-Operationen für noch einen dritten
Benutzer ausgeführt werden. Die zentrale Verarbeitungseinheit kann somit nützliche Arbeit für einen Benutzer
leisten, während ein anderer darauf wartet, daß ein E/A-Gerät seinen Betrieb beendet. Gemäß späterer
Erklärung können E/A-Geräte die 64 K Grenze überschreiten.
Die E/A-Geräte-LSRs 600 wurden so modifiziert, daß
jedes 17 Bits hat Die E/A-LSRs 600 werden mit 16 Bits
auf die übliche Weise geladen. Das 17. Bit wird während einer zum Laden der anderen 16 Bits benutzen LlO-Instruktion
geladen. Das in die 17. Position geladene Bit hängt ab von der Bitbedingung des E/A
> 64 K Bit in gewählten PMR 500. Die auf die LlO-Instruktion und
E/A > 64 K Bit ansprechende Logik im gewählten PMR 500 wird durch den Block 530 dargestellt. Diese
Logik 530 enthält auch die Logik zum Einschalten des 17. Bits in den LSRs 600 in den richtigen Zustand, wenn
die Adresse für ein E/A-Gerät die 64 K Grenze überschreitet. Das 17. Bit eines E/A-LSR 600 kann nicht in
einem gewählten PMR 500 gespeichert werden durch eine Abfrageinstruktion, die an ein E/A-Geräte-LSR zur
r> selben Zeit abgegeben wird, wie die anderen 16 Bits in den Speicher geschrieben werden. Der Zustand des
17. Bits im E/A-Gerät-LSR wird unter Steuerung des Logikblockes 540 in das gewählte PMR 500 gesetzt. Das
im gewählten PMR 500 gespeicherte Bit kann dann in
κι den Hauptspeicher 10 übertragen werden, um die Zustandsprüfung
dieses Bits zu erleichtern.
Die zusätzlichen zwei Bits in jedem Adreßübersetzungstabellenregister
550 werden für den Speicherschutz benutzt. Der Speicherschutz ist so vorgesehen,
is daß Benutzerprogramme gleichzeitig im Speicher stehen
können, ohne daß ein Programm die Daten eines anderen Programms verändert oder zerstört. Die Speicherschutzfunktion
liefert Abruf- und Schreibschutz der gewählten Bereiche des Hauptspeichers. Der Speicherschutzbetrieb
wird bestimmt durch eine Bitposition in den Programmartenregistern 500. Wenn das Speicherschulzbit
im gewählten oder aktiven Programmbetriebsartenregister 500 eine Eins ist, dann ist die Speicherschutzfunktion
aktiv, wogegen sie abgeschaltet ist, wenn dieses Bit null ist. Ob ein Bereich im Hauptspeicher
gegen Abruf oder Schreiben geschützt ist oder nicht, wird bestimmt durch den Zustand des Abruf- und
Schreibschutzbit in dem gewählten Adreßübersetzungstabcllenregister 550 (ATT).
Da 32 ATT-Register 550 vorhanden sind, ist der Speicher
in 2 K Blocks geschützt. Nur 64 K Speicherpositionen werden weiterhin zu einem Zeitpunkt adressiert
und somit sind die anderen 64 K automatisch geschützt, da es keine Möglichkeit gibt, sie ohne Veränderung des
Inhaltes des ATT-Registers 550 zu adressieren. Der Abrufschutz verhindert ein Lesen der Daten aus einer bestimmten
Stelle im Hauptspeicher. Wenn das Abrufschutzbit im gewählten ATT-Register 550 eine Eins ist
und der Speicherschutzbetrieb aktiv ist gemäß Bestim-
4» mung durch das Speicherschutzbit im aktiven PMR-Register
500, erzeugt die Abruf/Schreibschutzlogik 625 ein Signal, welches die Datenübertragung vom Register 30
auf das B-Register 35 verhindert. Der Schreibschutz verhindert die Dateneingabe in eine bestimmte Stelic im
Hauptspeicher 10. Der Schreibschutz erfolgt, wenn das Schreibschutzbit im gewählten ATT-Register 550 eine
Eins ist und der Speicherschutzbetrieb läuft. Die Abruf/ Schreibschutzlogik 625 reagiert auf die gerade erwähnten
Betriebszustände und erzeugt ein Signal zum Sperren der Datenschreibung in den Hauptspeicher.
Außer dem Speicherschutz zur leichteren Multiprogrammierung
benötigt man auch eine Aufgabenumschaltung durch die Überwachungsprogrammsteuerung.
Für eine effektive Multiprogrammierung wird die Steuerung der zentralen Verarbeitungseinheit einem
Benutzer übergeben, wenn ein anderer die zentrale Verarbeitungseinheit benutzt habender Benutzer auf E/A
wartet. Für die notwendige Steuerung kann kein Benutzerprogramm sein eigenes E/A-Kommando geben. Um
bo diesen Zustand zu sichern, sind alle E/A-Kommandos
bevorrechtigte Kommandos und werden durch das bevorrechtigte Überwachungsprogramm abgegebea Die
Benutzerprogramme laufen unterprivilegiert, um sicherzustellen, daß sie keine E/A-Kommandos abgeben
b5 können. Die Benutzerprogramme benötigen also die , Bedienung des Überwachungsprogrammes für E/A-Kommandos
und andere privilegierte Operationen, wie Registerkommandos. Der privilegierte Betrieb wird be-
stimmt durch ein entsprechendes Privilegierungsbctriebsbit
im aktiven PMR 500. Wenn dieses Bit eine biniirc F.ins ist, können sowohl privilegierte als auch unterpnvilegierte
Kommandos ausgeführt werden. Wenn dieses Hit eine binäre Null ist, können die privilegierten
Kommandos jedoch nicht ausgeführt werden. Die Überwachungsaufrufinstruktion (SVC) sorgt für die Kommunikation
zwischen dem unterprivilegierten Benut/.erprogramm und dem privilegierten Überwachungsprogramm.
Bei Abgabe verursacht diese Instruktion eine Operationsumschaltung auf die Unterbrechungsstufe 0.
Diese Unterbrechungsstufe mit der untersten Priorität bringt ein zugehöriges PMR 500 in den aktiven Zustand.
Das zur Unterbrechungsstufe 0 gehörende Privilegierungsbetriebsbit
ist immer eingeschaltet. Die Unterbrechungsroutine 0, die ein Teil des Überwachungsprogramms
ist. kann daher alle Kommandos abgeben. Während dieser Unterbrechung kann ein nicht privilegierter
Benutzer mit dem Überwachungsprogramm kommunizieren. Das zugehörige PMR 500 hat Bits, die bestimmen,
ob die Adreßübersetzung aktiv ist oder nicht. Mit diesen Bits kann z. B. einem im hochwertigen 64 K Teil
des Speichers stehenden Benutzerprogramm die Möglichkeit gegeben werden, auf das Überwachungsprogramm
umzuschalten, welches in den unteren 64 K des Speichers steht, ohne daß der Inhalt der Adreßübersetzungsregister
550 verändert werden muß.
Ein Maskenunterbrechungsbetrieb ist vorgesehen, um eine Unterbrechung des Überwachungsprogramms
zu verhindern, wenn es einen Schalter zwischen Benutzerprogramm stellt. Der Maskenunterbrechungsbetrieb
wird durch ein Maskenunterbrechungsbit in den PMRs 500 bestimmt. Wenn dieses Bit eine Eins ist. werden
Unterbrechungen mit hoher Priorität ausstehend gehalten, bis das Maskenunterbrechungsbit auf Null
umgeschaltet ist.
Die Unterbrechungsstufe mit der höchsten Priorität ist für die Programmprüfungsunterbrechung oder die
Unterbrechungsstufe 7 reserviert. Diese Unterbrechungsstufe wurde hinzugefügt, um eine Möglichkeit zu
schaffen, einen ganzen Systemstop zu verhindern, wenn
ein Benutzerprogramm Fehler erzeugt hat. wie einen ungültigen Operationscode, ungültige Speicheradressen,
eine ungültige E/A-Einheitenadresse, Speicherverletzungen oder Verletzungen privilegierter Kommandos.
Ein Gerät zeigt mit einer gelieferten Statusinformation die Fehlerquelle und die Adresse an, an der der
Fehler auftrat. Dadurch hat der Programmierer die Möglichkeit, die Fehlerursache zu analysieren und entsprechende
Schritte in der Unterbrechungsroutine zu unternehmen.
Die vorliegende Erfindung bietet also Funktionen zur Erleichterung der Multiprogrammierung eines Datenverarbeitungssystems.
Programmbetriebsarten register mit Bits zur Steuerung der Systembetriebsart in bezug
auf die Adreßübersetzung, privilegierte Operationen, E/ A > 64 K, Speicherschutz und Maskenunterbrechungen
werden durch die aktive Unterbrechungsstufe oder Sonderinstruktionen Laden/Speichern CPU gewählt.
Die Adreßübersetzung kann auf zyklischer Basis betrieben und die Adreßübersetzungstabellenregister, gewählt
durch die werthohen Bits der logischen Adresse, können die werthohen Bits für die physikalische Adresse
liefern. Die wertniederen Bits der physikalischen Adresse werden durch die wertniederen Bits der logischen
Adresse geliefert.
Die privilegierte Betriebsart hindert einen Benutzer daran, das System mit Wartezustand festzuhalten, wo
keine nützliche Arbeit geleistet wird, und somit eine wirksame Multiprogrammierung zu verhindern. Eine
programmgesteuerte Unierbrcchungsstufe sorgt für die
Kommunikation /wischen lienutzerprograintncn und
ι dem Überwachungsprogramm. Mit einer CPU-Kommandoinstruktion
wird die Unterbrechungsstufe 0 für den privilegierten Betrieb aktiv gemacht. Das Überwachungsprogramm
behandelt alle E/A-Kommandos und nach Start eines E/A-Gerätes für einen Benutzer lädt es
die Adreßübersetzungsregister 550 so, daß sie auf einen anderen Benutzer zeigen und gibt diesem Benutzer die
Steuerung, um die verfügbare CPU-Zeit maximal zu nutzen. E/A-Gcräle benutzen die Adreßübersetzungstabelle
nicht, sondern eine 17 Bit große physikalische Adresse, die in den E/A-Geräte-Arbeitsregistern 600
enthalten ist. Das 17. Bit kann in das E/A-Geräte-Arbeitsspeicherregister gesetzt werden durch das E/-A
> 64 K Bit im aktiven Programmbetriebsartenregister.
Der Speicherschutz gibt die Möglichkeit, mehr als Benutzerprogramm gleichzeitig im Hauptspeicher zu
speichern, wodurch andere Benutzerprogramme vor Veränderung durch das aktive Benutzerprogramm beschützt
sind. Eine Programmprüfungsunterbrechung oder eine Unterbrechung der Stufe 7 ermöglicht den
fortgesetzten Betrieb durch andere Benutzerprogramme, wenn ein Benutzerprogramm Fehler hervorgerufen
hat, die sonst zu einem Betriebsstillstand des Systemes führen würden.
Genaue Beschreibung des Ausführungsbeispieles
Das Blockdiagramm der F i g. 1 ist eine modifzierte Version des in den beiden obengenannten Handbüchern
J5 beschriebenen Computersystemes.
Programmebetriebsartenregist er (PMRs)
Die Programmbetriebsartenregister (PMRs) 500 sind in F i g. 2 als konventionelle Register gezeigt. Es sind
neun PMRs vorhanden, eines für jede Unterbrechungsstufe (0—7) und eines für die unterbrechungsfreie oder
Programmstufe. Jedes PMR hat sieben Bits. Die Bitposition 0 ist ungenutzt und die Bitpositionen 1. 2 und 3
dienen der Adreßübersetzung im EB-Zyklus, EA-Zyklus und 1-Zyklus. Die Zyklen EA und EB sind lnstruktionsausführungszyklen,
wogegen die 1-Zyklen Instruktionsabrufzyklen sind gemäß Beschreibung auf Seite 3-1 der
oben angegebenen Quelle 1. Die Adreßübersetzung kann also auf Zyklusbasis abhängig von den Bitstellungen
der Bits 1,2 und 3 erfolgen.
Die Bits 4,5 und 6 werden für E/A > 64 K, den privilegierten
Betrieb bzw. den Speicherschutz verwendet Das dem Bit 7 entsprechende Maskenunterbrechungsbit
ist in den PMRs aus Gründen der Zeiteinteilung enthalten. Der Inhalt der PMRs kann zur EB-Zeit eines
Instruktionszyklus verändert werden, muß jedoch von der Taktzeit 0 einer I-Operation bis zur Taktzeit 0 der
nächsten 1-Operation zur Verfügung stehen. Daher ist
ein Programmbetriebsartensteuerregister 501 als Pufferregister vorgesehen und seine Eingänge sind mit den
Ausgängen der PMRs 500 und mit dem Leiter verbunden, der das Maskenunterbrechungsbit führt. Die
Bits 1 —6 des Registers 501 werden unter Steuerung des UND-Gliedes 502 geladen, welches ein Ausgangssignal
abgibt, wenn ein 1-OP-Zyklussignal gleichzeitig mit einem
O-Taktsignal vorhanden ist. Das Bit 7 des Registers 501 wird direkt von der ALU-Sammelleitung 41 durch
das UND-Glied 504 gleichzeitig mit den PMRs 500 geladen.
Die PMRs 500 in Fig. 2 werden mit Datenbits von der ALU-Sammelleitung 41 geladen. Die Datenbits
kommen im allgemeinen vom Hauptspeicher 10, die ALU 40 in F i g. 1 ist jedoch Teil eines gemeinsamen
Datenweges gemäß der Erklärung in der Quelle 1. Es ist zu beachten, daß das Bit 4 für E/A
> 64 K über das ODER-Glied 507 geladen wird. Das ODER-Glied 507 hat einen Biteingang von der ALU-Sammelleitung 41
und einen Biteingang vom UND-Glied 541. Das UND-Glied 541 wird durch das UND-Glied 542 eingeschaltet
und leitet die durch das 17. Bit des gewählten E/A-Geräte LSR 600 dargestellte Bitbedingung. Das UND-Glied
542 wird leitend geschaltet durch ein SNS-Instruktionssignal,
irgendein E/A-LSR-SEL-Signa! und ein EB-Zyklussignal. Obwohl die Daten zum Laden der PMRs 500
entweder von der ALU-Sammelleitung 41 oder dem 17. Bit der E/A-Geräte-LSRs 600 kommen, werden die
PMRs unter Steuerung der UND-Glieder 503 und 504 geladen.
Das UND-Glied 503 liefert ein Ladesignal zur Taktzeit 4, wenn ein Ausgangssignal vom UND-Glied 542
anliegt. Das ist die andere Möglichkeil zum Laden des Bits 4 des gewählten PMR 500. Der normale Weg zum
Laden eines PMR 500 ist die CPU-Ladeinstruktion. Die jeweilige Bedeutung einer CPU-Ladeinstruktion hängt
ab vom Q-Code im Q-Register 60. In Fig.3 steht der Operationscode (OP-Code) einer CPU-Ladeinstruktion
im OP-Coderegister 55. Die werthohen Bits 0—4 werden durch die Decodierlogik 71 für die erste Nichtverzweigungsadresse
decodiert. Die Ausgabe dieser Logik schaltet die UND-Glieder 545 und 546 ein. Die CPU-Ladedecodierlogik
543 reagiert auf die Bits 4—7 im OP-Coderegister 55 in der entsprechenden Konfiguration
und liefert ein Signal an das UND-Glied 545, welches ein Signal an das UND-Glied 505 weiterleitet, das durch
die Ausgabe der PM R-Decodierlogik 547 leitend geschaltet wird. Diese Logik liefert ein Ausgangssignal,
wenn die Bits 0—3 im Q-Register 60 die richtige Konfiguration haben. Das Ausgangssignal vom UND-Glied
505 ist das Ladesignal PMR INST, welches an das UND-Glied 504 in Fi g. 2 angelegt wird. Dieses UND-Glied
504 hat außerdem Eingänge zum Empfang eines 5er-Taktsignales und eines EB-Signales.
Das aktive PMR 500 wird normalerweise durch die aktive Unterbrechungsstufe gewählt. Die Unterbrechungsstufen
0—7 sind gemäß Darstellung in Fig.6 binär codiert. Die Unterbrechungen 1 —6 sind die normalen
Unterbrechungen und kommen gemäß Darstellung in der Quelle 1 von der Sammelleitung 46. Die Unterbrechungen
!—6 bedienen ein Kathodenstrahlröhren-Bildschirmgerät
(CRT) bzw. BSCA, MLTA, SlOC, OP END und einen Taktgeber. Die Unterbrechungen werden an die Polaritätshalteschaltungen 702—707 des
Unterbrechungsprioritätsregisters 700 entsprechend angelegt Die Unterbrechungsstufen 0 und 7, die das
später zu beschreibende Überwachungsprogramm bzw. die Programmprüfung bedienen, werden an die Polaritätshalteschaltungen
701 bzw. 708 geleitet Die Polaritätshalteschaltungen 701—708 werden unter Steuerung
des UND-Gliedes 709 eingeschaltet, welches ein Signal OP END GATE und ein Taktsignal 5-8 empfängt.
Die Unterbrechungsstufe 7 hat die höchste Priorität und die Unterbrechungsstufe 0 die niedrigste. Die Unterbrechungsstufenprioritätslogik
ist als Logik 710 dargestellt und funktioniert genauso, wie es in den beiden
Quellen 1 und 2 beschrieben ist Das Unterbrechungsregister 750 empfängt die Unterbrechungen vom Unterbrechungsprioritätsregister
700 über die Prioritätslogik 710. Die das Unterbrechungsregister 750 bildenden Polaritätshalteschaltungen
751 — 758 werden unter Steuerung des ODER-Gliedes 738 eingeschaltet. Das ODER-Glied
738 empfängt ein OP END-Erzwingungssignal und ein Signal vom UND-Glied 737. Das UND-Glied
737 empfängt ein OPEN D-Signal, ein Steuersignal M/C
VORSCHALTEN und ein Signal vom Inverter 736. Der ίο Inverter 736 ist mit seinem Eingang an den Maskenunterbrechungsausgang
des PMR-Steuerregisters 501 angeschlossen. Ein Maskenunterbrechungsbit im Register
501 verhindert also das Setzen jeglicher neuen Unterbrechung in das Register 750.
Die Unterbrechungsstufen sind im Unterbrechungsregister 750 binär codiert durch die ODER-Glieder 761,
762 und 763. Das ODER-Glied 764 liefert ein Ausgabesignal, sobald eine Unterbrechungsstufe 0—7 aktiv ist.
Die Ausgänge der ODER-Glieder 761, 762, 763 und 764 werden zur Wahl des aktiven PMR 500 benutzt. Zusätzlich
zur bereits unterschriebenen Unterbrechungsschaltung wird von der Verriegelung 740 noch ein Bedienungssignal
für jede Unterbrechungsstufe geliefert. Die Verriegelung 740 empfängt Einschalteingänge von der
Prioritätslogik 710 und ist mit ihrem Rückstelleingang an den Inverter 739 angeschlossen. Die Verriegelung
740 hat auch einen Eingang vom ODER-Glied 738. Die IAR- und ARR-Wahllogik 766 reagiert auf die Unterbrechungsstufeneingänge
vom Register 750 und erzeugt Steuersignale, die an die LSR-Wahlsteuerlogik 80
in F i g. 1 angelegt werden.
Die binär codierten Unterbrechungsstufen, d. h. die Ausgänge der ODER-Glieder 761, 762, 763 und 764 in
F i g. 6 werden darstellungsgcmäß durch die Sammelleitung 765 in Fig. 2 an eine Anzahl von UND-Gliedern
(eines für jeden binären Eingang) angelegt, die durch das UND-Glied 772 dargestellt sind, um eines der PMRs
500 über das ODER-Glied 774 zu wählen. Diese UND-Glieder werden durch den Inverter 771 bei Fehlen eines
Signales vom UND-Glied 770 eingeschaltet, welches beim Fehlen eines Signales LD/ST PMR INST auftritt.
Das Signal LD/ST PMR INST stellt den anderen Weg zum Wählen des aktiven PMR dar. Die Bits zum Wählen
eines PMR 500 mit dem Signal LD/STPMR INST kommen vom Q-Register 60 in F i g. 3. Diese Bits 4—7 vom
Q-Regisier 60 werden über die Sammelleitung 775 an eine entsprechende Anzahl von UND-Gliedern angelegt,
die durch das UND-Glied 773 in Fi g. 2 dargestellt sind. Dieses UND-Glied wird durch den Ausgang des
U N D-Gliedes 770 eingeschaltet, welches das Signal LD/ ST PMR INST und das EB-Signal empfängt Das Signal
LD/ST PMR INST kümriit vom ODER-Glied 517 in
Fig. 3.
Das ODER-Glied 517 empfängt Eingänge von den UND-Gliedern505 und 506. Das UND-Glied 505 wurde
oben beschrieben und sein Ausgang ist das Signal LADEN PMR INST. Die Ausgabe des UND-Gliedes
ist ein Signal Speicher PMR INST aufgrund der Eingänge von dem PMR-Decodierer 547 und dem UND-Glied
546. Die Ausgänge der Decodierlogik 71 und der CPU-Speicherdecodierlogik
544 werden an das UND-Glied 546 gelegt Somit wird von einer Speicher-CPU- oder Ladc-CPU-Instruktion ein Signal L/S PMR INST erzeugt,
wenn der Q-Code der Instruktion so ist, daß der PM R-Decodierer 547 ein Ausgangssignal liefert.
Ein gewähltes PMR 500 wird in den Hauptspeicher
über die CPU-Speicherinstruktion mit dem entsprechenden Q-Code geladen. Der Inhalt des gewählten
PMR zusammen mit dem Maskenunterbrechungsbit vom PMR-Steuerregister 501 wird in das A-Register 45
in F i g. 1 über die Sammelleitung 780 eingegeben. Die
Daten im A-Register45 werden dann in den Hauptspeicher
IO über die Al.U 40 und das Speieherdatenregisler
30 übertragen.
Adreßübersetzung
Die Adreßübersetzung liefert eine erweiterte Speicheradresse. Das Computersystem der Fig. 1 hai eine
normale Datenbahn von 1 Byte Breite und eine Adreßbahn von 2 Byte Breite. Daten werden innerhalb des
Computersystems jeweils byteweise übertragen. Mehrere aufeinanderfolgende Speicherzugriffe können jedoch
zur Vervollständigung einer Operation erforderlich sein. Wie in der unter 1 erwähnten Quelle beschrieben
ist, wird das Speicheradreßregister SAR 20 in Fig. 1 mit jeweils zwei Bytes von einem der LSRs 100
während der ersten Funktions/eit eines Maschinenzyklus geladen. Während der E/A-Zyklen liefert der E/A-Geräteanschluß
natürlich die Wahl des als Adreßregister zugeordneten LSR 600.
Das SAR 20 wird somit normalerweise mit einer Fig. 3. Die Adreßübersetzungstabellenregister 550
werden somit mit Daten geladen durch eine CPU-Ladcinstruktion und insbesondere eine Ladeinstruktion mit
dem OP-Code hexadezimal 3F und einem Q-Code von
'> hexadezimal 0»X«. wobei »X« eine Hexadezimalzahl
von 0 bis /ist. Die werthohen riilsO—3 des Q-Codes,
d. h. 0000 zeigen an, daß die Operation für die Adreßübersetzung gilt und die zu ladenden Register werden
durch die wertniederen Q-Bits 4 — 7 und einem Bit gela-
iü den. welches durch das erste E-Zyklussignal erzeugt
wird, das während eines Instruktionszyklus auftritt und über den Leiter 587 gesendet wird. Die wertniederen
Q-Bits und das Signal 1ST Ε-Zyklus werden über die Sammelleitung 588 bzw. den Leiter 587 an fünf durch
das UND-Glied 581 dargestellte UND-Glieder angelegt. Diese UND-Giieder werden durch ein Signal vom
UND-Glied 582 vorbereitet, so daß sie die Adreßüberseizungstabellenregisier
550 über das ODER-Glied 585 wählen. Das UND-Glied 582 ist mit seinen Eingängen so
verbunden, daß es ein Signal LD/ST ATT INST vom ODER-Glied 518 in F i g. 3 und ein EB-Zyklussignal von
den Steuerungen 80 in F i g. 1 empfangt.
Die Adreßübersetzungstabellenregister 550 werden üblicherweise durch die werthohen Bit 0—4 der Adres-
16 Bit großen Adresse versorgt, die direkt eines der 25 se im SAR 20 in Fig. 2 gewählt. Diese Bits werden über
64 K Bytes im Hauptspeicher adressieren kann. Um eines der 128 K Bytes zu adressieren, ist eine 17 Bit große
Adresse erforderlich. Obwohl die 17. Position 21 zusätzlich
zum SAR 20 besteht, um eine 16 Bit große Adresse vom E/A-Geräte-LSR 600 zu ermöglichen, wird das
SAR 20 mit Ausnahme der E/A-Geräteadressen mit zwei Bytes oder 16 Bits aus einem der 16 Bit großen
allgemeinen Register 100 geladen. Diese 2 Byte große Adresse wird dann abhängig von den Adreßübersetzungssteuerbits
im aktiven PMR 500 zu einer 17 Bit großen Adresse erweitert oder nicht.
Die Adreßübersetzungslogik5I0 in Fig. 1 enthält die
UND-Glieder 511, 512 und 513 in Fig. 2. Diese UND-Glieder 511, 512 und 513 sind mit den Ausgängen des
PMR-Steuerregisters 501 für die Bitpositionen EB
XLATE, EA XLATE und 1 XLATE entsprechend verbunden und werden durch Steuersignale EB-Zyklus,
EA-Zyklus und 1-Zyklus eingeschaltet. Die Ausgaben
dieser UND-Glieder werden an das ODER-Glied die Sammelleitung 22 an eine entsprechende Anzahl
von UND-Gliedern angelegt, die durch das UND-Glied 583 dargestellt sind. Diese UND-Glieder 583 werden
durch ein Signal vom Inverter 584 vorbereitet. Wenn also ein Ausgang vom UND-Glied 582 fehlt, werden die
UN D-Glieder 583 zum Wählen eines der Adreßübersetzungstabellenregister
550 eingeschaltet. Die Adreßbits El 5, 0, 1, 2. 3 und 4 in dem gewählten Adreßübersetzungstabellenregister
550 werden über die Sammellei-
J5 tung 569 an eine entsprechende Anzahl von UND-Gliedern
angelegt, die durch das UND-Glied 570 dargestellt sind. Die UND-Glieder 570 werden durch das Übersetzungssignal
auf dem Leiter 516 vom ODER-Glied 514 eingeschaltet.
Daraus ist zu ersehen, daß die werthohen Bits einer erweiterten Adresse von einem Adreßübersetzungstabellenregister
550 kommen. Die wertniederen Bits 5—15 der erweiterten Adresse werden direkt an
das Hauptspeicheradreßregister 575 gegeben vom SAR
geleitet und wenn ein entsprechendes Signal an seinem 45 20 über die Sammelleitung 23.
Ausgang auf der Leitung 516 erscheint, ist es das Übersetzungssignal.
Der Leiter 516 ist an das UND-Glied und den Inverter 571 angeschlossen. Wenn also auf dem
Leiter 516 ein Übersetzungssignal liegt, wird das UND-Glied
570 eingeschaltet und das an den Inverter angeschlossene UND-Glied 572 wird nicht eingeschaltet.
Das UND-Glied 570 ist repräsentativ für fünf UND-Glieder, deren Eingänge an die Bitpositionen E15,0,1,2,
Wenn das Übersetzungssignal nicht vorhanden ist. werden die werthohen Bits 0—4 der Adresse und die
Bitposition 21 über die Sammelleitung 22 an die UND-Glieder
572 angelegt, die durch den Ausgang des Inverters 571 eingeschaltet werden.
Der Inhalt eines gewählten ATT-Registers 550 kann im Hauptspeicher 10 durch eine CPU-Speicherinstruktion
gespeichert werden.
Die CPU-Speicherinstruktion zum Speichern des In-
3 und 4 der Adreßübersetzungstabellenregister 55 haltes eines ATT-Registers 550 hat einen OP-Code von
(ATT)-Register550 angeschlossen sind. Die Adreßüber- hexadezimal 3E, Fig.3, und einen Q-Code von 0»X«,
große Register (mit dem Parirätsbit P 9), in denen die dem »X«-Te\\ des Q-Codes werden zwei ATT-Register
sechs Bits E15, 0,1, 2, 3 und 4 werthohe Adreßbits und 550 gewählt, die zu speichern sind. Die Wahl erfolgt
die übrigen beiden Bits Abrufschlüssel- und Schreib- bo über die UND-Glieder 581 unter Steuerung der UND-
schlüsselbits sind. Glieder 582 in F i g. 2. Die CPU-Speicherinstruktion lä Bt
die mit Daten aus dem Hauptspeicher 10 über die ALU- 518 in F i g. 3 laufen, weil das UND-Glied 509 das Signal
ist so verbunden, daß es das Signal LD ATT INST, ein Zyklen in den Hauptspeicher über das A-Register 45,
EB-Zyklussignal und ein Taktsignal 5 empfängt Das Si- die ALU 40 und das Speicherdatenregister 30 geleitet,
gnal LD ATT INST kommt vom UND-Glied 549 in
E/A > 64 K
Einen Teil des CoTtputersystems bildende E/A-Geräte
Obertragen Daten und einige Kommandos an das System über die E/A- Eingangsdatensammeileitung 46 in
Fig. 1. Die oben erwähnten Unterbrechungsanforderungen werden durch die E/A-Geräte über die Eingangssammelleitung
46 gesendet Außerdem werden Daten auf der Dateneingangssammelleitung 46 in das Α-Register eingegeben und können z. B. über die ALU
40 in den Hauptspeicher 10 übertragen werden. E/AGeräte benutzen Geräte LSRs 600, um Hauptspeicheradressen
für Speicherreferenzen festzuhalten.
E/A-Geräte haben die Möglichkeit, die vollen 128 K Bytes im Hauptspeicher 10 zu adressieren, indem man
eine 17. Bitposition 601 zu den E/A-Geräte-LSRs 600 hinzufügt. Diese 17. Bitposition wird durch ein E/A
64 K-Bit in dem PMRs 500 gesetzt Die Bitposition E/-A > 64 K im PMR-Steuerregister501 ist mit einem EinGlied
507. Der Inhalt des gewählten PMR kann dann in den Speicher 10 durch eine CPU-Speicherinstruktion
mit OP-Code und Q-Code zum Speichern von PMRs eingegeben werden, d. h. hexadezimal 3E 1 »X«, worin
»X« eine Hexadezimalzahl 0 oder 8-Fist
Der Zustand des gespeicherten PMR-lnhaltes kann
dann durch zusätzliche Instruktionen zur Ausführung logischer Operationen in bekannter Art analysiert werden.
Zwei separate Instruktionen· sind erforderlich, um
!0 das 17. Bit eines E/A-Geräte-LSR zu speichern und somit
kann eine Unterbrechung zwischen den beiden Instruktionen auftreten. Dadurch werden jedoch keine
Probleme geschaffen, weil jede Unterbrechungsstufe ihr zugehöriges PMR 500 über die UND-Glieder 772
und das ODER-Glied 774 in Fig.2 wählt. Wenn also
nach einer Abfrageinstruktion und bevor der Inhalt des aktiven PMR 500 in den Hauptspeicher gespeichert
wurde, eine Unterbrechung auftritt, zerstört oder verändert keine andere Unterbrechung den inhalt des zu
gang des UND-Gliedes 531 in Fig.2 der E/A-LSRs 20 speichernden PMR, weil die Unterbrechung ihr eigenes
Bit 17 Logik 530 verbunden. Dieses UND-Glied hat PMRSOOwählt. ebenfalls Eingänge zum Empfang des Signales LIO
INSTR, eines EB-Zyklussignales und eines jeden Signales
E/A LSR SEL. Wenn alle Eingangsbedingungen für das UND-Glied 531 erfüllt sind, wird die Position 601 25
eines Geräte-LSR 600 über das ODER-Glied 536 auf Eins oder Null gesetzt, abhängig von der Bitbedingung
in der Bitposition E/A > 64 K des Registers 501.
Position 601 eines E/A-Geräte-LSR 600 wird ebenfalls eingeschaltet, wenn die Adresse für ein E/A-Gerät
eine 64 K Grenze während der Adreßerhöhung des E/ A-Geräte-LSR überschreitet. Das Überschreiten der
64 K Grenze wird durch Anlegen des Ausganges der Position 601 an die Polaritätshalteschaltung 532 erkannt,
die durch ein ungerades CD-Signal eingeschaltet oder gepulst wird. Die Ausgabe der Polaritätshalteschaltung
532 wird an das Antivalenzglied 533 zusammen mit einem binären A-Vergleichersteuersignal von
der Steuerung 80 angelegt. Die Ausgabe der Antivalenzschaltung 533 speist die Antivalenzschaltung 534,
die auch ein binäres Übertragsignal empfängt. Die Ausgabe der Antivalenzschaltung 534 wird an das UND-Glied
535 geleitet, welches durch ein 8er-Taktsignal vorbereitet wird. Die Antivalenzschaltungen 533 und 534
Bevorrechtigter Betrieb
Mit dem bevorrechtigten Betrieb wird eine wirksame
Multiprogrammierung des Computersystems sichergestellt. Um die CPU-Zeit maximal zu nutzen, wenn ein
Benutzerprogramm auf den Abschluß einer E/A-Operation wartet, wird die Nutzung der CPU inzwischen einem
anderen Benutzerprogramm übertragen. Um auf diese Weise zu arbeiten, muß das Überwachungsprogramm
E/A-Kommandos abgeben, so daß ein Benutzerprogramm keine E/A-Kommandos abgeben kann, die
das System in einen Wartezustand auf den Abschluß der E/A-Operation versetzt. Der bevorrechtigte Betrieb
stellt sicher, daß kein Benutzer E/A-Kommandos abgeben kann, indem E/A-Kommandos nicht ausführbar gemacht
werden, während die Steuerung beim Benutzerprogramm liegt.
Der bevorrechtigte Betrieb wird wirksam, wenn das aktive Programmbetriebsartenregister PMR 500 und
danach das Register 501 ein ler-Bit in der Bitposition 5
des Registers hat. Im bevorrechtigten Betrieb sind alle Instruktionen ausführbar. Alle E/A-Kommandos sind
funktionieren als ein 1 Bit große ALU, die auf Überträ- 45 bevorrechtigt, weil sie nur im bevorrechtigten Betrieb
ge aus der werthohen Position in die Einstellposition 601 über das UND-Glied 535 und das ODER-Glied 536
in eine Bitstellung reagiert, die der Bitstellung entgegengesetzt ist, in der sie sich vor der Adreßerhöhcng beausgeführt
werden können. Das Überwachungsprogramm arbeitet im bevorrechtigten Betrieb und die
nicht bevorrechtigten Benutzerprogramme fordern das Überwachungsprogramm zur Abgabe von E/A-Kom-
fand. Die Speicheradresse kann also die 64 K Grenze in 50 mandos auf. Das Benutzerprogramm teilt seine Bediejeder
Richtung überschreiten. nungsanforderungen dem Uberwachungsprogramm mit
55
Die Bitstellung in Position 601 des E/A-Geräte-LSR kann in ein PMR 500 gesetzt werden mittels einer Abfrageinstruktion
SNS. Wenn eine SNS-Instruktion gegeben wird, wird ein Signal SNS INST an das UND-Glied
542 in F i g. 2 angelegt, welches außerdem als Eingänge ein E/A-LSR-Wahlsignal und ein EB-Zyklussignal
empfängt. Die Ausgabe des UND-Glied 542 wird an die UND-Glieder 503 und 541 angelegt. Das UND-Glied
503 steuert das Laden der PMRs 500, wogegen das UND-Glied 541 die Dateneingabe in die Position
Bit 4 des gewählten PMR 500 steuert. Das UND-Glied 503 wird durch ein 4cr-Taktsignal eingeschaltet. Das
UND-Glied 542 liefert das Leitsignp.l für das UND-Glied
541 und das zuleitende Signal kommt von der Position 601 eines gewählten E/A-Gerälc-LSR. Das
durch das UND-Glied 541 geleitete Signal gelangt in die Bitposition 4 des gewählten PMR 500 über das ODER-einer
CPU-Kommandoinstruktion mit, die einen OP-Code von hexadezimal FA und einen Q-Code von hexadezimal
10 hat, die in einer Überwachungsaufrufinstruktion SVC resultieren. Eine SVC-Instruktion schaltet das
System auf die immer bevorrechtigte Unterbrechungsstufe 0 um. Die Routine der Unterbrechungsstufe 0 ist
ein Teil des Überwachungsprogrammes und kann Benutzeranforderungen verarbeiten, weil sie bevorrechtigt
ist. Die vier werthohen Bits und die vier wertniederen Bits des hexadezimalen OP-Code F 4 werden durch
die Komniandoforniatlogik 800 und die CCP-Decodierlogik
810 in F i g. 5 decodien zu Ausgangssignalen an das UND-Glied 815. Das UND-Glied 815 empfangt
hr) auch einen Eingang von der "ADecodierlogik 820. die
ein Alisgangssignal abgibt, wenn die vier wertniederen Bits des Q-Code im Q-Register60 alle null sind.
Die Ausgabe des UND-Gliedes 815 zeigt eine CPU-
Kommandoinstruktion CCP an und wird an die UND-Glieder
823 und 824 angelegt. Das UND-Glied 824 liefert ein Ausgabesignal SVC INST, wenn der SVC-Decodierer
822 erkennt, daß die ν er werthohen Bits des O-Codes 0001 sind. Das Signal SVC INST wird an das
UND-Glied 830 in Fig.4 zusammen mit einem IR-Signal
und einem 5er-Taktsignal angelegt. Der Ausgang des UND-Gliedes liefert eine Eingabe an das UND-Glied
833, welches die Einstellung der Unterbrechungsanforderungsverriegelung
834 für die Stufe 0 steuert. Der andere Eingang zum UND-Glied 833 kommt vom
Inverter 831, der die 6 Bit Ausgabe der ALU-Sammelleitung 41 invertiert. Die Verriegelung 834 wird unter
Steuerung des UND-Gliedes 832 zurückgestellt, welches Eingänge vom UND-Glied 830 und vom Bit 6 der
ALU-Sammelleitung 41 empfängt. Der Ausgang der Anforderungsverriegelung 834 ist mit der Polaritätshalteschaltung
701 des Unterbrechungspriorilätsregisters 700 in F i g. 6 verbunden.
Eine CPU-Kommandoinstruktion mit einem Q-Code, der eine SVC-lnstruktion anzeigt, aktiviert also die Unterbrechungsstufe
0, vorausgesetzt, daß der R-Code während des IR-Zyklus in der Bitposition 6 ein O-Bit hat.
Diese Unterbrechungsstufe wählt dann ihr zugehöriges PMR 500 in der oben beschriebenen Art. Das gewählte
PMR 500 hat seine eigenen Bitbedingungen für die Adreßübersetzung, E/A >
64 K, für den bevorrechtigten Betrieb, den Speicherschutz und die maskierte Unterbrechung.
Die Unterbrechungsstufe 0 wird zurückgestellt, indem man einen R-Code so vorsieht, daß das
ALU-Bit 6 während des IR-Zyklus auf Eins steht. Der R-Code ist Teil der vom Hauptspeicher 10 kommenden
Instruktion und läuft durch die ALU 40, nachdem er vom Speicher 10 abgerufen wurde. Er steht somit zur
Unterstützung bei der Einstellung und Rückstellung der Verriegelung 834 zur Verfugung.
Mit der Programmprüfungsunterbrechungsfunktion wird eine wirksame Mulliprogrammierung des Computersystems
sichergestellt. Wenn ein Benutzer einen Fehler macht, braucht nicht das ganze System gestoppt zu
werden, sondern die Steuerung wird einem anderen Benutzer übergeben. Die Programmprüfungsunterbrechungsstufe
7 wird außerdem durch die CPU-Kommandoinstruktion gesteuert, in der gemäß Darstellung in
Fig. 5 die werthohen Bits des Q-Code 0010 sind. Die Programmprüfungs-Decodierlogik 821 reagiert auf die
Bitbedingungen und liefert ein Signal an das UND-Glied 823, welches durch das Signal CCP INST vom
UND-Glied 815 vorbereitet wird. Das UND-Glied 823 liefert ein Ausgabesignal PROGCK INST an das UND-Glied
850 in Fig.4, um die Unterbrechungsanforderungsverriegelung
851 für die Stufe 7 zurückzustellen. Das UND-Glied 850 empfängt als Eingänge außerdem
das IR-Zyklussignal, ein 5er-Taktsignal und ein Signal
vom Bit 6 der ALU-Sammelleitung 41. Obwohl das ALU-Bit 6 auch zur Rückstellsteuerung der Unterbrechungsanforderungsverriegelung
834 für die Stufe 0 verwendet wird, gibt es hier keine Überschneidungen, weil die jeweilige CPU-Kommandoinstruktion d. h. SVC
INST oder PROG CK INST festlegt, ob die Verriegelung 834 oder die Verriegelung 851 zurückgestellt werden.
Die Verriegelung 851 wird zur Taktzeit 8 unter Steuerung des UND-Gliedes 849 verriegelt. Das UND-Glied
849 wird vom ODER-Glied 845 gespeist, welches ungültige Bedingungen oder Fehler, die eine Programmprüfunterbrechung
verursachen, darstellende Signale empfängt. Im verriegelten Zustand aktiviert die Verriegelung
851 die Unterbrechung der Stufe 7 dadurch, daß ihr eingeschalteter Ausgang mit der Polaritätshalteschaltung
706 des Unterbrechungsprioritätsregisters 700 in Fig.6 verbunden ist. Die Unterbrechungsstufe 7 hat
die Unterbrechungen mit der höchsten Priorität und Vorrang gegenüber allen Unterbrechungen.
Die Ungültigkeits- oder Fehlerbedingungen zur Aktivierung der Programmprüfunterbrechungsstufe 7 werden
durch die UND-Glieder 843, 844, 846, 847 und die ίο Decodierlogik 848 erkannt. Das UND-Glied 843 leitet
bei Einschaltung durch den I-OP-Zyklus ein Signal, welches
einen ungültigen OP-Code als durch die Decodierlogik 840 erkannt anzeigt. Die Decodierlogik 840 reagiert
auch auf OP-Codes, die bevorrechtigte Instruktionen bezeichnen, und gibt ein Signal an das UND-Glied
842. Dieses liefert ein Ausgabesignal an das UND-Glied 844, wenn das Vorrechtsbetriebsbit im aktiven PMR 500
eine Null ist. Der Inverter 841 invertiert die Null dieses Vorrechtsbetriebsbits des aktiven PMR 500 und schaltet
damit das UND-Glied 842 ein. Das UND-Glied 844 wird durch das l-OP-Zyklussignal leitend geschaltet.
Die Decodierschaltung 840 liefert auch ein Speicherdatengruppensignal
an das UND-Glied 847, welches ein Schreibverletzungssignal an das ODER-Glied 845 und
an die Schaltung zum Sperren des Schreibvorganges neuer Daten in den Hauptspeicher 10 gemäß Beschreibung
in der Quelle 2 leitet. Das UND-Glied 847 empfängt als Eingänge auch für das Speicherschutzbetriebsbit
vom aktiven PMR 500 über das PMR-Steuerregister 501 ein Signal Nicht-E/A-Zyklus- ein EB-Zyklussignal
und das Schreibschutzbitsignal vom gewählten Adreßübersetzungstabellenregister 550.
Abrufverletzungen werden durch das UND-Glied 846 erkannt, welches als Eingänge Signal von der Spei
cherschutzbitposition des aktiven PMR 500 über das PMR-Steuerregister 501, das Abrufschutzpositionsbit
des gewählten Adreßübersetzungstabellenregisters 550 und ein Signal Nicht-E/A-Zyklus empfängt. Das von
dem UND-Glied 846 geleitete Abrufverletzungssignal wird nicht nur an das ODER-Glied 845 angelegt, sondern
auch zur Zugriffssperre zur adressierten Speicherposition im Hauptspeicher 10 verwendet.
Eine ungültige Adreßbedingung wird durch die Decodierlogik 848 erkannt, die das ungültige Adreßsignal an
das ODER-Glied 845 leitet. Die Decodierschaltung 848 reagiert auf Bits auf der Sammelleitung 576 und ein
Spcichergrößensignal und entwickelt das ungültige Adreßsignal. Die ungültige Adreßbedingung und das
Prüfprogramm für den ungültigen OP-Code stehen gegenwärtig in dem in der Quelle 1 beschriebenen Computcrsystem
zur Verfügung, obwohl sie dort keine Programmprüfung auslösen, sondern das System zu einem
abrupten Stillstand bringen.
Das einschaltende Ausgangssignal der Verriegelung 951 wird an das UND-Glied 852 angelegt, um ein Operationsendsignal
zur Taktzeit 0 mit einem M/C-Vorschaltsignal zu erzwingen. Das erzwungene OP-Endsignal
wird an das ODER-Glied 738 in Fig.6 angelegt,
um sicherzustellen, daß die Unterbrechungsstufe 7 bO durch das Maskierungsunterbrechungsbit nicht maskiert
werden kann.
Über den Einschaltausgang der Verriegelung 851 wird auch das Laden des Programmprüfadreßregisters
870 und des Programmprüfstatusregisters 860 in F i g. 1 b5 gesteuert. Das Programmprüfadreßregister 870 wird
geladen, wenn die Verriegelung 851 verriegelt ist, mit den unteren 16 Bits der 17 Bits auf der Sammelleitung
576. Das 17. Bit der Hauptspeicheradresse auf der Sani-
meileitung 576 wird in das Programmprüfregister 860
zusammen mit dem Programmprüfsteuerbit und dem Fehlerstatusbit gesetzt, die von den UND-Gliedern 843,
844, 846, 847 und der Decodierschaltung 848 in Fig.4
kommen. Der Inhalt des Programmprüfstatusregisters 860 und des Programmprüfadreßregisters 870 kann im
Hauptspeicher 10 über die Sammelleitung 880, das A-Register 45, die ALU 40 und das Datenspeicherregister
30 gespeichert werden. Nachdem der Inhalt dieser Register gespeichert worden ist, kann mit Programmroutinen
die Bitstellungen der gespeicherten Daten untersuchen.
Aus der obigen Beschreibung geht hervor, daß die CPU-Kommandoinstruktion mit einem OP-Code von
hexadezimal F4 und einem Q-Code von hexadezimal 10
die Operation auf die Unterbrechungsstufe 0 umschaltet,
damit das Überwachungsprogramm die Steuerung übernehmen kann. Das Ein- und Ausschalten in die bzw.
aus der Unterbrechungsstufe 0 wird durch den R-Code während eines IR-Zyklus bestimmt. Eine CPU-Kommandoinstruktion
mit dem hexadezimalen OP-Code F 4 und dem hexadezimalen Q-Code 20 schaltet die Operation
aus der Unterbrechungsstufe 7 aus. Die Unterbrechungsstufe 7 ist aktiv, sobald eine Programmprüfung
auftritt Wenn eine Programmprüfung auftritt, wird die laufende Adresse für den Hauptspeicher auf der Sammelleitung
576 in einem Programmprüfadreßregister 870 und die Statusinformation im Programmprüfstatusregister
860 gespeichert. Diese Information wird dann in den Hauptspeicher 10 gespeichert, so daß sie vom Programm
analysiert werden kann. Der Betrieb des Computersystems läuft weiter mit der Abgabe einer CPU-Kommandoinstruktion
zum Ausschalten aus der Unterbrechungsstufe 7.
Speicherschutz
Mit dem Speicherschutz wird verhindert, daß ein Benutzerprogramm den Inhalt eines anderen Benutzerprogrammes
oder des Überwachungspiogramtnes verändert
oder zerstört. Ob der Speicherschutz wirksam ist oder nicht, wird bestimmt durch die Stellung des Bits 6
in den PMRs 500. Wenn dieses Bit des aktiven PMR 500 eine Eins ist, ist der Speicherschutz wirksam. Ob ein
Bereich im Speicher 10 geschützt ist oder nicht, wird bestimmt durch die BitsO und 1 in dem gewählten
Adreßübersetzungstabellenregister 550. Bit 0 ist der Abrufschutzschlüssel, der das Lesen von Daten aus dem
Speicher 10 im Speicherschutzbetrieb verhindert. Bit 1 ist der Schreibschutzschlüssel, der das Schreiben von
Daten in den Speicher 10 im Speicherschutzbetrieb verhindert.
Das Abrufschutzsignal wird durch das UND-Glied
846 in F i g. 4 entwickelt. Als Eingänge empfängt es das Speicherschutzsignal vom aktiven PMR 500 über das
PMR-Steuerregister 501, das Abrufschutzbitsignal von dem gewählten Adreßübersetzungstabellenregister 550
und ein Signal Nicht-E/A-Zyklus von der Steuerung 80.
Die Ausgabe des UND-Gliedes 846 ist ein Abrufverletzungssignal, mit dem der Zugriff zum Speicher 10 gesperrt
wird, indem man das in der Quelle 2 erwähnte Signal SDR XFER steuert. Das Schrcibschutz- oder
Schieibvcrlet/iingssignal wird durch das UND-Glied
847 entwickelt. Dieses hat Eingänge vom Decodierer 840, der Speicherschutzbitposition des Registers 501,
der Schreibschutzbitposition des gewählten Adreßübersetzungstabellenregisters 550, und als Eingangssignale
das EB-Zyklussignal und das Signal Nicht-E/A-Zyklus.
Mit dem Ausgangssignal des UND-Gliedes 847 wird das Schreiben von Daten in den Speicher 10 gesperrt, indem
man das in der Quelle 2 erwähn;e GRP-Speicherdatensignal steuert.
Maskenunterbrechung
In einigen Fällen muß eine Unterbrechung mit höherer Priorität zurückgehalten werden, ausgenommen ist
to die Unterbrechungsstufe 7 mit höchster Priorität Das
Überwachungsprogramm benutzt z. B. die unterste Unterbrechungsstufe
und es gibt Zeiten, wenn das Überwachungsprogramm die Steuerung übernehmen muß und nur durch die Programmprüfung unterbrochen
werden darf. Der maskierte Unterbrechungsbetrieb wii d gesteuert durch das Bit 7 des in F i g. 2 gezeigten
Programmbetriebsarien-Steuerregisters 501, welches für diese Bitposition direkt von der ALU-Sammelleitung
41 geladen wird. Das Bit 7 des Registers 501 wird direkt von der ALU-Sammelleitung 41 geladen, um eine
Registerverzögerungszeit für das Laden des PMR-Steuerregisters 501 zu vermeiden. Wenn eine Unterbrechung
ausmarkiert ist, muß die Maske aktiv sein, bevor ein 1-OP-Zyklus beginnt, sonst kann eine Unterbrechung
auftreten. Die Bits 1 —6 des Registers 501 werden zur Taktzeit 0 des I-OP-Zyklus geladen, die zu spät liegt,
um Unterbrechungen noch maskieren zu können. Das Unterbrechungsmaskenbit wird direkt in das PMR-Steuerregister
501 geladen und steht somit von der EB-Taktzeit 5 bis zur EB-Taktzeit 5 einer PMR-Ladeinstruktion
zur Verfügung, die das Bit 7 abschaltet. Das Unterbrechungsmaskenbit wird an den Inverter 736 in
Fig.6 angelegt, um das UND-Glied 737 zu sperren. Dadurch wird verhindert, daß der Zustand der Polari-
J5 tätshalteschaltungen 751—758 verändert wird und somit bleibt der Betrieb in der laufenden oder aktiven
Unterbrechungsstufe. Wenn das Maskenunterbrechungsbit eine Null ist, wird das UND-Glied 737 natürlich
durch den Inverter 736 vorbereitet und Unterbrechungen höherer Priorität können den Zustand der Polaritätshalteschaltungen
751 —758 umschalten.
Hierzu 7 Blatt Zeichnungen
Claims (8)
1. Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung
mit mehreren Programmunterbrechungs-Prioritätsstufen,
von denen jeweils nur eine aktiv ist. wobei die einzelnen zu verarbeitenden Benutzerprogramme
im Hauptspeicher der Anlage gespeichert und gegen unzulässigen Zugriff geschützt sind, dadurch ge- ίο
kennzeichnet, daß jeder Programmunterbrechungs-Prioritätsstufe
ein Programn.betriebsartregister
(PMR 500) zugeordnet ist, dessen Bitstellen, abhängig von jeweils bestimmten Betriebsarten,
verschiedene Adressierungs- und Instruktionsausführungseinrichtungen
(510,530,550,45) der Anlage auswählen und steuern (Register 501, Fig.2a), und
daß eine Auswahleinrichtung (Fig.6) vorgesehen
ist. die aufgrund eines empfangenen Programmunterbrechungssignales
(Leitung 46) das der aktivierten Programmunterbrechungs-Prioritätsstufe zugeordnete
Programmbetriebsartregister auswählt.
2. Anlage nach Anspruch 1, dadurch gekennzeichnet, daß eine Bitstelle in jedem Programmbetriebsartregister
(500), die Durchführung einer Adressen-Übersetzungs-Betriebsart angibt, wobei die Adressenübersetzung
während eines Operationsausführungszyklus eines Instruktionszyklus stattfindet.
3. Anlage nach Anspruch 1, dadurch gekennzeichnet, daß eine Bitstelle in jedem Programmbetriebsartregister(SOO)
die Durchführung einer Ein/Ausgabe-Betriebsart angibt, wobei Zugriffe zum Hauptspeicher
in einem erweiterten Teil des Hauptspeichers stattfinden.
4. Anlage nach Anspruch 3, dadurch gekennzeich- J5
net, daß Ein/Ausgabe-Adreßregister (600) mit einer Vielzahl von Bitstellen vorgesehen sind, die von Ein/
Ausgabe-Steuereinheiten (80) bei der Adressierung des Hauptspeichers gesetzt werden, wobei eine
Adressenerweiterungs-Bitstelle (601) in den Ein/ Ausgabe-Adreßregistern die Erweiterung des
Hauptspeichers betrifft.
5. Anlage nach Anspruch 4, dadurch gekennzeichnet, daß die Bitstelle in jedem Programmbetriebsartregister
(500), welche die Durchführung einer Ein/ 45 s Ausgabe-Betriebsart angibt, auf den Wert des Bits in
der Adressenerweiterungsbitstelle gesetzt wird.
6. Anlage nach Anspruch 2, gekennzeichnet durch eine Vielzahl von adressierbaren Adreßübersetzungsregistern
(550), Bitstellen zur Bildung des hochwertigen Teiles einer Adresse zur Adressierung
eines erweiterten Bereiches des Hauptspeichers enthalten, durch Einrichtungen (20, 22, 583) zur Auswahl
eines Adreßübersetzungsregisters durch die hochwertigen Bits (22) einer angelegten Speicheradresse
(SAR 20), sowie durch Übersetzungslogikeinrichtungen (510), welche durch die Bitstelle des
ausgewählten Programmbetriebsartregisters, die die Durchführung der Adressenübersetzungs-Betriebsart
angibt, in Tätigkeit gesetzt werden und die hoch- t>o
wertigen Adressenbits vom ausgewählten Adreßübersetzungsregisler
zu einem Hauptspeicheradressenregister (575) zur Adressierung des Hauptspeichers
zusammen mit den niederwcrtigen Bits (23) der angelegten Speicheradresse weiterleiten (UND- br>
Glied 570), wobei bei inaktiver Adressenübersetzungs-Betriebsart die hochwertigen Bits (22) zusammen
mit den niederwertigen Bits (23) der angelegten Speicheradresse zur Adressierung des Hauptspeichers
verwendet werden.
7. Anlage nach Anspruch 6. dadurch gekennzeichnet, daß in den Adreßübersetzungsregistern (550)
Bitstellen zur Speicherung von Lese- und Schreibspeicherschutzbits vorhanden sind.
8. Anlage nach Anspruch 1, dadurch gekennzeichnet, daß eine Bitstelle in jedem Programmbetriebsartregister
(500) die Durchführung einer maskierten' Programmunterbrechung angibt, wobei abhängig
von dieser Bitstelle die Auswahl einer Programmunterbrechungs-Prioritätsstufe
verhindert wird und die Anlage in der vorher ausgewählten Programmunterbrechungs-
Prioritätsstufe weiterarbeitet.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US00356006A US3828327A (en) | 1973-04-30 | 1973-04-30 | Simplified storage protection and address translation under system mode control in a data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2416609A1 DE2416609A1 (de) | 1974-11-14 |
DE2416609C2 true DE2416609C2 (de) | 1984-08-30 |
Family
ID=23399697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2416609A Expired DE2416609C2 (de) | 1973-04-30 | 1974-04-05 | Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen |
Country Status (6)
Country | Link |
---|---|
US (1) | US3828327A (de) |
JP (1) | JPS5423544B2 (de) |
CA (1) | CA1012650A (de) |
DE (1) | DE2416609C2 (de) |
FR (1) | FR2227577B1 (de) |
GB (1) | GB1440695A (de) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1442078A (en) * | 1973-07-21 | 1976-07-07 | Ibm | Data handling system |
US3947823A (en) * | 1973-12-26 | 1976-03-30 | International Business Machines Corp. | Means for coordinating asynchronous main store accesses in a multiprocessing system using virtual storage |
US4159516A (en) * | 1976-03-23 | 1979-06-26 | Texas Instruments Incorporated | Input/output controller having selectable timing and maskable interrupt generation |
US4037207A (en) * | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | System for controlling address keys under interrupt conditions |
US4037214A (en) * | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
US4093983A (en) * | 1976-06-15 | 1978-06-06 | International Business Machines Corporation | Fast and normal rate instruction fetching |
US4218739A (en) * | 1976-10-28 | 1980-08-19 | Honeywell Information Systems Inc. | Data processing interrupt apparatus having selective suppression control |
US4342082A (en) * | 1977-01-13 | 1982-07-27 | International Business Machines Corp. | Program instruction mechanism for shortened recursive handling of interruptions |
US4099243A (en) * | 1977-01-18 | 1978-07-04 | Honeywell Information Systems Inc. | Memory block protection apparatus |
JPS6013501B2 (ja) * | 1978-09-18 | 1985-04-08 | 富士通株式会社 | 仮想計算機システムにおけるチヤネルアドレス制御方式 |
FR2453468A1 (fr) * | 1979-04-06 | 1980-10-31 | Cii Honeywell Bull | Procede et systeme d'exploitation d'une memoire adressable permettant d'associer a volonte des qualificatifs aux donnees contenues dans la memoire |
FR2453467A1 (fr) * | 1979-04-06 | 1980-10-31 | Cii Honeywell Bull | Procede et systeme d'exploitation d'une memoire adressable permettant d'associer a volonte des extensions aux donnees contenues dans la memoire |
JPS5775366A (en) * | 1980-10-28 | 1982-05-11 | Sharp Corp | Programmable electronic computer |
US4926316A (en) * | 1982-09-29 | 1990-05-15 | Apple Computer, Inc. | Memory management unit with overlapping control for accessing main memory of a digital computer |
WO1984002784A1 (en) * | 1982-12-30 | 1984-07-19 | Ibm | Virtual memory address translation mechanism with controlled data persistence |
US4757533A (en) * | 1985-09-11 | 1988-07-12 | Computer Security Corporation | Security system for microcomputers |
JPH0731609B2 (ja) * | 1985-09-18 | 1995-04-10 | 日本電気株式会社 | Vmモード変更装置 |
JP3023425B2 (ja) * | 1987-10-09 | 2000-03-21 | 株式会社日立製作所 | データ処理装置 |
US5201043A (en) * | 1989-04-05 | 1993-04-06 | Intel Corporation | System using both a supervisor level control bit and a user level control bit to enable/disable memory reference alignment checking |
US5764969A (en) * | 1995-02-10 | 1998-06-09 | International Business Machines Corporation | Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization |
US5644444A (en) * | 1995-03-10 | 1997-07-01 | Iomega Corporation | Read/write protect scheme for a disk cartridge and drive |
US6724554B1 (en) | 1995-03-10 | 2004-04-20 | Iomega Corporation | Read/write protect scheme for a disk cartridge and drive |
US5925109A (en) * | 1996-04-10 | 1999-07-20 | National Instruments Corporation | System for I/O management where I/O operations are determined to be direct or indirect based on hardware coupling manners and/or program privilege modes |
JP4079506B2 (ja) * | 1997-08-08 | 2008-04-23 | 株式会社東芝 | 不揮発性半導体メモリシステムの制御方法 |
FR2775370B1 (fr) * | 1998-02-20 | 2001-10-19 | Sgs Thomson Microelectronics | Procede de gestion d'interruptions dans un microprocesseur |
US7539828B2 (en) * | 2000-08-08 | 2009-05-26 | Faronics Corporation | Method and system for automatically preserving persistent storage |
US6842803B2 (en) * | 2001-07-09 | 2005-01-11 | Advanced Micro Devices, Inc. | Computer system with privileged-mode modem driver |
US7185183B1 (en) | 2001-08-02 | 2007-02-27 | Mips Technologies, Inc. | Atomic update of CPO state |
US7181600B1 (en) * | 2001-08-02 | 2007-02-20 | Mips Technologies, Inc. | Read-only access to CPO registers |
US7634638B1 (en) * | 2002-10-22 | 2009-12-15 | Mips Technologies, Inc. | Instruction encoding for system register bit set and clear |
US8521969B2 (en) * | 2006-10-11 | 2013-08-27 | Intel Corporation | Apparatus and method for directing micro architectural memory region accesses |
JP5395838B2 (ja) * | 2011-03-25 | 2014-01-22 | 株式会社東芝 | マルチコアシステム |
CN104111866A (zh) * | 2013-04-18 | 2014-10-22 | 鸿富锦精密工业(深圳)有限公司 | 中断控制系统和方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3292151A (en) * | 1962-06-04 | 1966-12-13 | Ibm | Memory expansion |
NL294820A (de) * | 1962-07-03 | |||
DE1181461B (de) * | 1963-10-08 | 1964-11-12 | Telefunken Patent | Adressenaddierwerk einer programm-gesteuerten Rechenmaschine |
US3473155A (en) * | 1964-05-04 | 1969-10-14 | Gen Electric | Apparatus providing access to storage device on priority-allocated basis |
US3373408A (en) * | 1965-04-16 | 1968-03-12 | Rca Corp | Computer capable of switching between programs without storage and retrieval of the contents of operation registers |
US3398405A (en) * | 1965-06-07 | 1968-08-20 | Burroughs Corp | Digital computer with memory lock operation |
FR1455163A (fr) * | 1965-06-18 | 1966-04-01 | Cie Francaise Philips | Sélecteur de priorité pour machine à calculer fonctionnant en temps réel |
US3395392A (en) * | 1965-10-22 | 1968-07-30 | Ibm | Expanded memory system |
FR1567705A (de) * | 1967-06-09 | 1969-04-08 | ||
US3560935A (en) * | 1968-03-15 | 1971-02-02 | Burroughs Corp | Interrupt apparatus for a modular data processing system |
US3599162A (en) * | 1969-04-22 | 1971-08-10 | Comcet Inc | Priority tabling and processing of interrupts |
US3701977A (en) * | 1969-10-27 | 1972-10-31 | Delaware Sds Inc | General purpose digital computer |
US3614740A (en) * | 1970-03-23 | 1971-10-19 | Digital Equipment Corp | Data processing system with circuits for transferring between operating routines, interruption routines and subroutines |
US3740722A (en) * | 1970-07-02 | 1973-06-19 | Modicon Corp | Digital computer |
US3676852A (en) * | 1970-07-20 | 1972-07-11 | Ibm | Multiple program digital computer |
JPS4930578B1 (de) * | 1970-09-30 | 1974-08-14 |
-
1973
- 1973-04-30 US US00356006A patent/US3828327A/en not_active Expired - Lifetime
-
1974
- 1974-02-28 FR FR7407871A patent/FR2227577B1/fr not_active Expired
- 1974-03-01 GB GB928574A patent/GB1440695A/en not_active Expired
- 1974-03-18 CA CA195,289A patent/CA1012650A/en not_active Expired
- 1974-03-28 JP JP3404074A patent/JPS5423544B2/ja not_active Expired
- 1974-04-05 DE DE2416609A patent/DE2416609C2/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
JPS5423544B2 (de) | 1979-08-14 |
FR2227577B1 (de) | 1976-06-25 |
US3828327A (en) | 1974-08-06 |
JPS5011144A (de) | 1975-02-05 |
DE2416609A1 (de) | 1974-11-14 |
FR2227577A1 (de) | 1974-11-22 |
GB1440695A (en) | 1976-06-23 |
CA1012650A (en) | 1977-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2416609C2 (de) | Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen | |
DE2722099C2 (de) | ||
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE3689287T2 (de) | Datenverarbeitungsgerät. | |
DE3587622T2 (de) | Emulationseinrichtung in einem Datenverarbeitungssystem. | |
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE3688978T2 (de) | Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen. | |
EP0011685B1 (de) | Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung | |
DE2456578C2 (de) | Datenverarbeitungsanlage | |
DE2517276A1 (de) | Datenverarbeitungssystem | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2417795C2 (de) | Datenverarbeitungsanlage | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE2458065A1 (de) | Datenverarbeitungsanlage mit sicherung der daten gegen unberechtigten zugriff | |
DE2719253A1 (de) | Schnittstellenschaltung fuer datenverarbeitungsanlagen | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
CH619309A5 (de) | ||
DE2758152A1 (de) | Speicherschutzanordnung | |
DE2251876B2 (de) | Elektronische datenverarbeitungsanlage | |
CH623947A5 (de) | ||
DE2755616A1 (de) | Asymmetrischer multiprozessor | |
DE2054835A1 (de) | Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE2533737A1 (de) | Datenprozessor | |
DE2617127A1 (de) | Mehrfachprogramm-datenverarbeitungssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |