DE2416609A1 - Einrichtung zum vereinfachten speicherschutz und zur adressuebersetzung - Google Patents
Einrichtung zum vereinfachten speicherschutz und zur adressuebersetzungInfo
- Publication number
- DE2416609A1 DE2416609A1 DE2416609A DE2416609A DE2416609A1 DE 2416609 A1 DE2416609 A1 DE 2416609A1 DE 2416609 A DE2416609 A DE 2416609A DE 2416609 A DE2416609 A DE 2416609A DE 2416609 A1 DE2416609 A1 DE 2416609A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- bit
- register
- gate
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
Description
Böblingen, 1. April 1974
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
Amtl. Aktenzeichen: Neuanmeldung
Aktenzeichen der Anmelderin: RO 973 008
Einrichtung zum vereinfachten Speicherschutz und zur Adreßübersetzung
Die Erfindung betrifft eine Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprograminierung.
Die Erfindung findet spezielle Anwendung in Computersystemen mit erweiterter Funktion. 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. Das Hauptproblem besteht
dann darin, die Funktion eines existierenden Systems unter Verwendung der Grundarchitektur oder Konstruktion zu einem vollständig
neuen System zu erweitern.
In den bekannten Programmunterbrechungseinrichtungen erfolgt die Wahl des dem Unterbrechungsniveau entsprechenden Adreß-
A 0 9 8 4 6 / 0 7 1 3
registers durch die aktive Unterbrechungsstufe, wobei jedoch
eine Wahl sowohl des Adreßregisters als auch der Betriebsart, in der das System für diese Unterbrechungsstufe laufen sollte
und die mögliche wahlweise Umschaltung der Betriebsart auf der Basis des Operationszyklus innerhalb der aktiven Unterbrechungsstufe
nicht möglich ist.
Die erweiterte Speicheradressierung, d.h. die Adressierung eines vergrößerten Speichers mit Adressen der Grundgröße ist in den
US-Patentschriften Nr. 3 292 151, 3 303 477, 3 395 392 und 3 553 653 beschrieben. Die Verbindung mit einem Speicherschutz,
der von der verwendeten Betriebsart abhängt, ist jedoch nicht möglich.
Der Erfindung liegt die Aufgabe zugrunde, den Verwendungsbereich,
einer Datenverarbeitungsanlage unter Beibehaltung des Systemaufbaus auszudehnen.
Diese Aufgabe wird erfindungsgemäß durch die im Kennzeichen des
Haxiptanspruches beschriebene Einrichtung gelöst.
Die Erfindung hat den Vorteil, daß auch bei Multiprogrammierung
mit verschiedenen Programmunterbrechungsniveaus 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
ermöglicht die Erfindung auch die Verwendung von privilegierten Instruktionen, einer Programmüberprüfung und
einer maskierten Programmunterbrechung, wobei die Wahl der Betriebsart 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. Spelcterblock gespeichert werden, der dem.aktivierten
UnterbreclHHigsnxveau direkt zugeordnet ist.
VorteiUiafte Weiterbildungen der Erfindung sind den Unteranspriiciieo.
zu entnehmen.
Ein ÄBsflihrraigsbeispiel der Erfindung ist in den Zeichnungen
dargestellt und wird anschließend näher beschrieben. Es zeigen:
Fig. 1 einen Kombinationsplan für die Fign. la und 1b#
Fign. la rand Ib zusammen in einem Blockdiagramm die Erfindung,
Figm. 2a und 2B von links nach rechts zusammengelegt schematisch
in einem Blockdiagramm die Logik zur Adressierung, zum Laden und Speichern der
Betriebsartenprogrammregister, der Adressierlogik,
der Logik zum Laden und Speichern der Ädreßübersetzungstabellenregister und der
Logik zum Einstellen und Abfühlen des 17. Bit in den E/A-Arbeitsspeicherregistern,
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 Programmprüfbedingungen, die
Logik zur Erzwingung des Operationsendes, die
Logik für die Zugriffssperre zum Datenspeicher und zum Schreiben in diesen Speicher sowie
die Logik für die Anforderung der Unterbrechungsstufen
O und 7,
ro 97a ooa
409Ö46/Ü713
Fig."5 in einem schematischen Logikdiagramm die Logik
zur Erzeugung der durch die in Fig. 4 gezeigte Logik benutzten Steuersignale aufgrund von
Kommandoinstruktionen der CPU und
Fig. 6 in einem schematischen Logikdiagramm die
Unterbrechungsstufenlogik.
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 Theory of Operation", Copyrighted 1969, 1970, 1971 by International
Business Machines Corporation und "IBM 5410 Processing Unit Diagrams", Copyrighted 1969 by International Business
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 Jobumschaltung
steuert. Die in Fig. 1 gezeigte Hauptspeiehereinheit
10 hat eine erweiterte Kapazität und kann in diesem Beispiel 128K Datenbytes von je acht Bits (0-7) speichern. Die Speicherkapazität
der Speichereinheit 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 64K Bytes adressieren können. Das Überwachungsprogramm wird in den unteren K Bytes gespeichert, d.h. z.B.
in den ersten 16K Bytes, und die Benutzerprogramme werden in
RO 973 008
409846/0713
-R-
den höheren K Bytes des Speichers gespeichert. Ein Benutzerprogramm
ist z.B. in den Bytes 16-64K und ein anderes in den Bytes 64-128K gespeichert. Der Speicheradreßbetrieb, d.h., ob
die oberen oder die unteren 64K Bytes adressiert werden, wird bestimmt durch Steuerbits, die in den Programmbetriebsartenregistern
500 gespeichert sind und durch Unterbrechungsstufen des Datenverarbeitungssystems gewählt werden. v
Es gibt im wesentlichen neun Unterbrechungsstufen und somit neun Programmbetriebsartenregister 500. Die neunte Unterbrechungsstufe
ist in Wirklichkeit die Programmstufe oder keine Unterbrechungsstufe mehr. Die Programmbetriebsartenregister
können vom Programm mit Datenbits über eine neue Instruktion Laden/Speichern Programmbetriebsartenregister geladen werden.
Der Inhalt eines Programmbetriebsartenregisters kann zur E/AZeit eines Instruktionszyklus verändert werden. Jedes Programmbetriebsartenregister
hat sieben Bits und drei Bitpositionen dieser acht Bitpositionen dienen der Steuerung des Adressierbetriebes.
Diese drei. Bitpositionen eines jeden Registers sind der Einfachheit halber als Gruppen in Fig. 1 gezeigt und speisen
den Adreßübersetzungstabellenblock 510.
Die erweiterte Adressierung erfolgt wahlweise durch die AdreßüberSetzungstabellenregister
550, die ebenfalls vom Programm geladen werden können mit einer neuen Instruktion Laden/Speichern
Adreßübersetzungstabelle. Es gibt 32 Adreßübersetzungstabellenregister
und jedes Register enthält acht Bit. Von 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ßübersetzungsbetrieb zu bestimmen. Der Adreßübersetzungs-
80973008 409846/0713
betrieb ist während verschiedener Maschinenzyklen einer Instruktion,
ein- oder ausgeschaltet, abhängig von den Steuerbits im gewählten Programmbetriebsartenregister 5OO. 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 Bit 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
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/AZyklen 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 128K 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. Bit, weil sie nicht mit den Adreßübersetzungstabellenregistern
550 arbeiten. Die E/A-Geräte benutzen die Adreßübersetzungstabellenregister 550 nicht, weil das Überwachungsprogramm den
Inhalt dieser Register für einen anderen Benutzer verändert, wenn
RO 973 008
409846/U7 13
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-Puffer die 64K Grenze überschreiten.
Die E/A-Geräte-LSRs 600 wurden.so modifiziert, daß jedes
17 Bit 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 benutzten LIO-Instruktion geladen. Das in die 17. Position geladene Bit hängt ab von der Bitbedingung
des E/A > 64K Bit im gewählten PMR 500. Die auf die LIO-Instruktion und E/A >
64K Bit ansprechende Logik im gewählten PMR 500 wird durch den Block 530 dargestellt. Diese Logik
enthält auch die Logik zum Einschalten des 17. Bit in den LSRs 600 in den richtigen Zustand, wenn die Adresse für ein
E/A-Gerät die 64K 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 selben Zeit abgegeben wird, wie die anderen 16 Bits in
den Speicher geschrieben werden. Der Zustand des 17. Bit im E/A-Geräte-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 Bit zu erleichtern.
Die zusätzlichen zwei Bits in jedem Adreßübersetzungstabellenregister
550 werden für den Speicherschutz benutzt. Der Speicherschutz ist so vorgesehen, daß Benutzerprogramme gleichzeitig
im Speicher stehen können, ohne daß ein Programm die Daten eines anderen Programmes 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 Speicherschutzbit im gewählten
RO 973 008
409846/0713
-R-
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ßübersetzungstabellenregister 550 (ATT).
Da 32 ATT-Register 550 vorhanden sind, ist der Speicher in 2K Blocks geschützt. Nur 64K Speicherpositionen werden weiterhin
zu einem Zeitpunkt adressiert und somit sind die anderen 64K 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äß Bestimmung 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 Stelle 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.
Äuß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/AKommando geben. Um diesen Zustand zu sichern, sind alle E/ARO
973 008
409846/0713
Kommandos bevorrechtigte Kommandos und werden durch das bevorrechtigte
Überwachungsprogramm abgegeben. Die Benutzerprogramme laufen unterprivilegiert, um sicherzustellen, daß sie keine
E/A-Kommandos abgeben 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 bestimmt durch ein entsprechendes
Privilegierungsbetriebsbit im aktiven PMR 5CX). Wenn diese Bit eine binäre Eins ist, können sowohl privilegierte als auch
unterprivilegierte Kommandos ausgeführt werden. Wenn diese Bit 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 Benutzerprogramm und dem privilegierten überwachungsprogramm. Bei Abgabe verursacht diese Instruktion eine Operationsumschaltung
auf die Unterbrechungsstufe O. 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 überwachungsprogrammes
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 64K Teil des Speichers stehenden Benutzerprogramm die
Möglichkeit gegeben werden, auf das überwachungsprogramm umzuschalten,
welches in den unteren 64K des Speichers steht, ohne daß der Inhalt der AdreßüberSetzungsregister 550 verändert
werden muß.
Ein Maskenunterbrechungsbetrieb ist vorgesehen, um eine Unterbrechung
des überwachungsprogrammes zu verhindern, wenn es
einen Schalter zwischen Benutzerprogrammen stellt. Der Maskenunterbrechungsbetrieb
wird durch ein Maskenunterbrechungsbit in den PMRs 500 bestimmt. Wenn dieses Bit eine Eins ist, wer-
R0 973 °08 409846/0713
den 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
Prograranprü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 einem 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 anr aa 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 MuItiprograminierung eines Datenverarbeitungssystems.
Programmbetriebsartenregister mit Bits zur Steuerung der Systeittbetriebsart
in bezug auf die AdreßüberSetzung, privilegierte Operationen, E/A
> 64K, 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 im Wartezustand festzuhalten, wo keine nützliche
Arbeit geleistet wird, und somit eine wirksame MuI^programmierung
zu verhindern. Eine programmgesteuerte Unterbrechungsstufe
sorgt für die Kommunikation zwischen Benutzerprograminen und dem Oberwachungsprogramm. Mit einer CPU-Kommandoinstruktion
wird die Unterbrechungsstufe O für den privilegierten Betrieb
RO 973 008
409846/U 7-1 3
aktiv gemacht. Das Überwachungsprogramm behandelt alle E/AKommandos
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-Geräte 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
> 64K 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.
Das Blockdiagramm der Fig. 1 ist eine modifizierte Version des in den beiden obengenannten Handbüchern beschriebenen
Computersystemes.
Die Programmbetriebsartenregister (PMRs) 500 sind in Fig. 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 dienen der Adreßübersetzung im EB-Zyklus, EA-Zyklus und I-Zyklus.
Die Zyklen EA und EB sind Instruktionsausführungszyklen, wo-
RO 973 008
4 0 9 8 A 6 / 0 7 1 3
gegen die I-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 > 64K, 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 O einer I-Operation bis zur Taktzeit O der
nächsten I-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 I-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 Fig. 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
> 64K ü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-Signal
und ein EB-Zyklussignal. Obwohl die Daten zum Laden der PMRs 500 entweder von der ALU-Sammelleitung 41 oder dem
RO 973 008
409846/0 713
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öglichkeit zum Laden des Bit 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 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 PMR-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 Fig. 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 1-6 bedienen ein Kathodenstrahlröhren-Bildschirmgerät
(CRT) bzw. BSCA, MLTA, SIOC, 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
RO 973 008
409846/U713
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 ünterbrechungsstufe 7 hat die höchste Priorität und die
ünterbrechungsstufe 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 Prioritatslogik
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 OP END-Signalr 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 Ünterbrechungsstufen sind im Ünterbrechungsregister 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 Ünterbrechungsschaltung
wird von der Verriegelung 740 noch ein Bedienungssignal für
jede Unterbrechungsstufe geliefert. Die Verriegelung 740 empfängt
Einschalteingänge von der Prioritätslogik 7IO und ist mit ihrem
Ruckstelleingang an den Inverter 73 9 angeschlossen. Die Verriegelung
740 hat auch einen Eingang vom ODER-Glied 738. Die IAR- und ARR-Wahllogik 766 reagiert auf die Unterbrechungsstufeneingänge
vom Regi-itnr 750 und erzeugt Steuersignale, die an
RO 973 00i3
4 D η ö ; κ / υ ν ι Ί
die LSR-Wahlsteuerlogik 80 in Fig. 1 angelegt werden.
Die binär codierten Unterbrechungsstufen, d.h. die Ausgänge
der ODER-Glieder 761, 762, 763 und 764 in Fig. 6 werden darstellungsgemäß
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 77.2 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 U)/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/ST PMR INST kommen
vom Q-Register 6O in Fig. 3. Diese Bits 4-7 vom Q-Register
werden über die Sammelleitung 775 an eine entsprechende Anzahl von UND-Gliedern angelegt, die durch das UND-Glied 773 in Fig.
2 dargestellt sind. Dieses UND-Glied wird durch den Ausgang des UND-Gliedes 770 eingeschaltet, welches das Signal LD/ST
PMR INST und das EB-Signal empfängt. Das Signal LD/ST PMR INST
kommt vom ODER-Glied 517 in Fig. 3.
Das ODER-Glied 517 empfängt Eingänge von den UND-Gliedern und 506. Das UND-Glied 505 wurde oben beschrieben und sein
Ausgang ist das Signal LADEN PMR INST. Die Ausgabe des UND-Gliedes 506 ist ein Signal Speichern 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 Lade-CPU-Instruktion ein Signal L/S
PMR INST erzeugt, wenn der Q-Code der Instruktion so ist, daß der PMR-Decodierer 547 ein Ausgangssignal liefert.
Ein gewähltes PMR 500 wird in den Hauptspeicher 10 über die CPU-Speicherinstruktion mit dem entsprechenden Q-Code geladen.
Der Inhalt des gewählten PMR zusammen mit dem Maskenunter-
RO 973 008
4Ü9846/U713
brechungsbit vom PMR-Steuerregister 501 wird in das Α-Register
45 in Fig. 1 über die Sammelleitung 780 eingegeben. Die Daten im A-Register 45 werden dann in den Hauptspeicher 10 über die
AHJ 40 und das Speicherdatenregister 30 übertragen.
Die Adreßübersetzung liefert eine erweiterte Speicheradresse. Das Computersystem der Fig. 1 hat 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 Funktionszeit 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 16 Bit großen Adresse versorgt, die direkt eines der 64K Bytes im Hauptspeicher
adressieren kann, um eines der 128K 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ßübersetzungslogik 51Ö 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 I XLATE entsprechend ver-
RO 973 008
409846/0713
- Yi -
bunden und werden durch Steuersignale EB-Zyklusf EA-Zyklus und
I-Zyklus eingeschaltet. Die Ausgaben dieser UND-Glieder werden
an das ODER-Glied 514 geleitet und wenn ein entsprechendes
Signal an seinem Ausgang auf der Leitung 516 erscheint, ist es das Übersetzungssignal. Der Leiter 516 ist an das UND-Glied
570 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 571 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, 3 und 4 der Adreßübersetzungstabellenregister
(ATT)-Register 550 angeschlossen sind. Die Adreßübersetzungstabellenregister 550 sind konventionelle
8 Bit große Register (mit dem Paritätsbit P 9), in denen die sechs Bits E15, 0, 1, 2, 3 und 4 werthohe Adreßbits und
die übrigen beiden Bits Abrufschlüssel- und Schreibschlüsselbits sind.
Es gibt 32 Adreßübersetzungstabellenregister 550, die mit Daten aus dem Hauptspeicher 10 über die ALU-Sammelleitung 41
unter Steuerung eines Signales vom UND-Glied 580 geladen werden. Das UND-Glied 580 ist so verbunden, daß es das Signal LD ATT
INST, ein EB-Zyklussignal und ein Taktsignal 5 empfängt. Das
Signal LD ATT INST kommt vom UND-Glied 549 in Fig. 3. Die Adreßübersetzungstabellenregister 550 werden somit mit Daten
geladen durch eine CPU-Ladeinstruktion und insbesondere eine Ladeinstruktion mit dem OP-Code hexadezimal 3F und einem Q-Code
von hexadezimal O11X", wobei "X" eine Hexadezimalzahl von 0 bis
F ist. Die werthohen Bits 0-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 geladen, welches durch das erste E-rZyklussignal
erzeugt wird, das während eines Instruktionszyklus auftritt und über den Leiter 587 gesendet wird. Die wertniederen Q-Bits
und das Signal IST Ε-Zyklus werden über die Sammelleitung
RO 973 008
409846/0713
bzw. den Leiter 587 an fünf durch das UND-Glied 581 dargestellte
UND-Glieder angelegt. Diese UND-Glieder werden durch ein Signal vom UND-Glied 582 vorbereitet, so daß-sie die Adreßübersetzungstabellenregister
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 Fig. 3 und ein EB-Zyklussignal von den Steuerungen 80 in Fig. 1 empfängt.
Die Adreßübersetzungstabellenregister 550 werden üblicherweise durch die werthohen Bits 0-4 der Adresse im SAR 20 in Fig. 2
gewählt. Diese Bits werden über 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 UND-Glieder 583 zum Wählen eines der Adreßübersetzungstabellenregister 550 eingeschaltet.
Die Adreßbits E15, 0, 1, 2, 3 und 4 in dem gewählten
Adreßübersetzungstabellenregister 550 werden über die Sammelleitung 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 20 über
die Sammelleitung 23.
Wenn das übersetzungssignal nicht vorhanden ist, werden die
werthohen Bits 0-4 der Adresse und die 17. Bitposition 21 über die Sammelleitung 22 am 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.
RO 973 008
409846/0713
Die CPU-Speicherinstruktion zum Speichern des Inhaltes eines ATT-Registers 550 hat einen OP-Code von hexadezimal 3E, Fig. 3,
und einen Q-Code von O11X", worin X eine Hexadezimalzahl von 0
bis F ist. Mit dem "X"-Teil des Q-Codes werden zwei ATT-Register 550 gewählt, die zu speichern sind. Die Wähl erfolgt über die
UND-Glieder 581 unter Steuerung der UND-Glieder 582 in Fig. 2. Die CPU-Speicherinstruktion läßt das Signal LD/ST ATT INST durch
das ODER-Glied 518 in Fig. 3 laufen, weil das UND-Glied 509 das Signal STORE ATT INST leitet. Der Inhalt der zwei gewählten
ATT-Register 550 wird in zwei aufeinanderfolgenden Zyklen in den Hauptspeicher über das A-Register 45, die ALU 40 und
das Speicherdatenregister 30 geleitet.
E/A > 64K
Einen Teil des Computersystems bildende E/A-Geräte übertragen Daten und einige Kommandos an das System über die E/A-Eingangsdatensammelleitung
46 in Fig. 1. Die oben erwähnten Unterbrechung sanf orderungen werden durch die E/A-Geräte über die Eingangssammelleitung
46 gesendet. Außerdem werden Daten auf der Dateneingangssammmelleitung 46 in das Α-Register eingegeben
und können z.B. über die ALU 40 in den Hauptspeicher 10 übertragen
werden. E/A-Geräte benutzen Geräte LSRs 600, um Hauptspeicheradressen
für Speicherreferenzen festzuhalten.
E/A-Geräte haben die'Möglichkeit, die vollen 128K 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 64K-Bit in den PMRs 500 gesetzt. Die Bitposition E/A > 64k im PMR-Steuerregister 501 ist mit einem
Eingang des UND-Gliedes 531 in Fig. 2 der E/A-LSRs Bit 17 Logik 530 verbunden. Dieses UND-Glied hat 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 eines
Geräte-LSR 600 über das ODER-Glied 536 auf Eins oder Null ge-
RO 973 008
409846/0713
- 2Ci -
setzt, abhängig von der Bitbedingung in der Bitposition E/A > 64K 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 64K Grenze während der Adreßerhöhung des E/A-Geräte-LSR überschreitet. Das Überschreiten
der 64K Grenze wird durch Anlegen des Ausganges der Position 601 an die Polaritätshaiteschaltung 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 funktionieren als eine 1 Bit große
ALU, die auf Überträ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öhung befand. Die
Speicheradresse kann also die 64K Grenze in jeder Richtung überschreiten.
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 Fig. 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
wird durch ein 4er-Taktsignal eingeschaltet. Das UND-Glied liefert das Leitsignal für das UND-Glied 541 und das zuleitende
Signal kommt von der Position 601 eines gewählten E/A-Geräte-
RO 973 008 4098 A6/07 13
LSR. Das durch das UND-Glied 541 geleitete Signal gelangt in die Bitposition 4 des gewählten PMR 500 über das ODER-Glied 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-F ist.
Der Zustand des gespeicherten PMR-Inhaltes kann dann durch
zusätzliche Instruktionen zur Ausführung logischer Operationen in bekannter Art analysiert werden. Zwei separate Instruktionen
sind erforderlich, um 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 speichernden PMR, weil die Unterbrechung ihr eigenes PMR 500 wählt.
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/AOperation
versetzt. Der bevorrechtigte Betrieb stellt sicher, daß kein Benutzer E/A-Kommandos abgeben kann, indem E/AKommandos
nicht ausführbar gemacht werden, während die Steuerung beim Benutzerprogramm liegt.
ro 973 008 409846/071
Der bevorrechtigte Betrieb wird wirksam, wenn das aktive Programmbetriebsartenregister
PMR 500 und danach das Register 501 ein 1er-Bit in der Bitposition 5 des Registers hat. Ha bevorrechtigten
Betrieb sind alle Instruktionen ausführbar. Alle E/A-Kommandos sind bevorrechtigt, weil sie nur -im bevorrechtigten
Betrieb ausgeführt werden können. Das Überwachungsprogramm arbeitet im bevorrechtigten Betrieb und die nicht bevorrechtigten
Benutzerprogramme fordern das überwachungsprogramm zur Abgabe
von E/A-Kommandos auf. Das Benutzerprogramm teilt seine Bedienungsanforderungen
dem Überwachungsprogramm mit einer CPU-Kommandoinstruktion
mit, die einen OP-Code von hexadezimal F4 und einen Q-Code von hexadezimal 10 hat, die in einer Überwachungsaufruf
Instruktion SVC resultieren. Eine SVC-lnstruktion 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 F4
werden durch die Kommandoformatlogik 8OO und die CCP-Decodierlogik
810 in Fig. 5 decodiert zu Ausgangssignalen an das UND-Glied 815. Das UND-Glied 815 empfängt auch einen Eingang von
der 0-Decodierlogik 820, die ein Ausgangssignal abgibt, wenn die vier wertniederen Bits des Q-Code im Q-Register 6O 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 vier werthohen Bits des Q-Codes OOO1 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 O steuert. Der andere Eingang zum UND-Glied 833 kommt vom Inverter 831,
der die 6 Bit Ausgabe der ALU-Sammelleitung 41 invertiert. Die
ro 973 OO8 409846/071 3
Verriegelung 834 wird unter Steuerung des UND-Gliedes 832 zurückgestellt,
welches Eingänge vom UND-Glied 830 und vom Bit der ALU-Sammelleitung 41 empfängt. Der Ausgang der Anforderungsverriegelung 834 ist mit der Polaritätshalteschaltung 701 des
Unterbrechungsprioritätsregisters 700 in Fig. 6 verbunden.
Eine CPU-Kommandoinstruktion mit einem Q-Code, der eine SVC-Instruktion
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 > 64K, 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 Multiprogrammierung 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 PROG CK INST an das UND-Glied 850 in Fig. 4, um die
Unterbrechungsanforderungsverriegelung 851 für die Stufe 7 zurückzustellen. Das UND-Glied 850 smpfängt als Eingänge
ro 973 008 4098 46/ 07 13
außerdem das IR-Zyklussignal, ein 5er-Taktsignal und ein Signal
vom Bit 6 der ALU-Sammelleitung 41. Obwohl das ALÜ-Bit 6 auch
zur Rückstellsteuerung der Unterbrechungsanforderungsverriegelung 834 für die Stufe O 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 708 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 Vorrechtsbetriebbit 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 I-OP-Zyklussignal leitend
geschaltet.
Die Decodierschaltung 840 liefert auch ein Speicherdaten-
RO 973 008 409846/0713
gruppensignal an das UND-Glied 847, welches ein Schreibverletz
ungs signal 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 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 Schreibschutzbit
signal vom gewählten Adreßübersetzungstabellenregister 550.
AbrufVerletzungen werden durch das UND-Glied 846 erkannt, welches
als Eingänge -Signal von der Speicherschutzbitposition 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 IO verwendet.
Eine ungültige Adreßbedingung wird durch die Decodierlogik
erkannt, die das ungültige Adreßsignal an das ODER-Glied leitet. Die Decodierschaltung 848 reagiert auf Bits auf der
Sammelleitung 576 und ein Speichergröß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 Computersystem zur Verfügung,
obwohl sie dort keine Programmprüfung auslösen, sondern das System zu einem abrupten Stillstand bringen.
Das einschaltende Ausgangssignal der Verriegelung 851 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. angelegt, um sicherzustellen, daß die Unterbrechungsstufe 7
durch das Maskierungsunterbrechungsbit nicht maskiert werden
ro 973 008 409846/0713
über den Einschaltausgang der Verriegelung 851 wird auch das
Laden des Programmprüfadreßregisters 870 und des Programmpruf-Statusregisters
860 in Fig. 1 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
Sammelleitung 576 wird in das Programmprüfregister 86O 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 87O kann im Hauptspeicher 10 über die Sammelleitung 88Q, 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-Kommando-Instruktion
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 F4 und dem hexadezimalen Q-Code 20 schaltet die Operation aus der Unterbrechungsstufe 7 aus. Die Unter—
brechungsstufe 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 Programmprufadreßregister 870 und die Statusinformation im
ProgrammprüfStatusregister 86O 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
ro 973 008 4 0 9 8 4 6/0713
Ausschalten aus der Unterbrechungsstufe 7. Speicherschutz
Mit dem Speicherschutz wird verhindert, daß ein Benutzerprogramrn
den Inhalt eines anderen Benutzerprogrammes oder des Überwachunsprogrammes verändert - oder zerstört. Ob der Speicherschutz
wirksam ist oder nicht, wird bestimmt durch die Stellung des Bit 6 in den PMRs 5OO. Wenn dieses Bit des aktiven PMR
eine Eins ist, ist der Speicherschutz wirksam. Ob ein Bereich im Speicher 1O geschützt ist oder nicht, wird bestimmt durch
die Bits O und 1 in dem gewählten Adreßübersetzungstabellenregister
550, Bit O 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 Fig. 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 Abrufverletzungs-
signal r mit dem der Zugriff zum Speicher 10 gesperrt wird,
indem man das in der Quelle 2 erwähnte Signal SDR XFER steuert. Das Schreibschutz- oder Schreibverletzungssignal wird durch
das UND-Glied 847 entwickelt. Dieses hat Eingänge vom Decodierer 84O, 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ähnte GRP-Speicherdatensignal steuert.
ro 973 008 4 0 9 8 4 6/0713
In einigen Fällen muß eine Unterbrechung mit höherer Priorität zurückgehalten werden, ausgenommen ist 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 wird gesteuert durch das
Bit 7 des in Fig. 2 gezeigten Programmbetriebsarten-Steuerregisters 501, welches für diese Bitposition direkt von der
MiU-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 ausmaskiert ist,
muß die Maske aktiv sein, bevor ein I-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 Polaritätshaltes
chaltungen 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.
ro 973 008 409846/071 3
Claims (12)
1.) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit
und Multiprograminierung mit mehreren Unterbrechungsprioritätsstufen,
von denen jeweils nur eine aktiv ist,
dadurch gekennzeichnet, daß jeder Unterbrechungsstufe ein Betriebsartregister (500) zugeordnet ist, dessen
Bitstellen die verschiedenen Betriebsarten der Anlage steuern und daß eine Auswahleinrichtung (Fig. 6) vorgesehen
ist, .die aufgrund des empfangenen Programmunterbrechungssignales das dieser Priorität zugeordnete Betriebsartregister
auswählt.
2. Anlage nach Anspruch 1, dadurch gekennzeichnet, daß eine. Bitstelle die Durchführung einer Adressenübersetzungs-Betriebsart
angibt.
3. Anlage nach Anspruch 2, dadurch gekennzeichnet, daß die
Adressenübersetzung während eines Operationsausführungszyklus eines Instruktionszyklus stattfindet.
4. Anlage nach Anspruch 1, dadurch gekennzeichnet, daß eine
Bitstelle im Betriebsartregister (500) die Durchführung einer privilegierten Operationsbetriebsart angibt.
5. Anlage nach Anspruch 1, dadurch gekennzeichnet, daß eine Bitstelle im Betriebsartregister (500) die Durchführung
einer Eingangs/Ausgangs-Betriebsart angibt, wobei Zugriffe zum Hauptspeicher in einem erweiterten Teil des Hauptspeichers
stattfinden.
6. Anlage nach Anspruch 5, dadurch gekennzeichnet, daß Eingangs/Ausgangsadreßregister
mit einer Vielzahl von Bitstellen vorgesehen sind, die von Eingangs/Ausgangs-Steuereinheiten
bei der Adressierung des Hauptspeichers gesetzt
ro 973 008 4 0 9 8 A 6 / 0 7 1 3
werden, wobei eine Bitstelle in den Eingangs/Ausgangs-Adreßregistern
die Erweiterung des Hauptspeichers betrifft.
7. Anlage nach Anspruch 6, dadurch gekennzeichnet, daß das Eingangs/Ausgangs-Betriebs
ar tbit im Betriebsartregister (500) auf den Wert des Adressenerweiterungsbits gesetzt wird.
8. Anlage nach Anspruch 1, dadurch gekennzeichnet, daß eine
Bitstelle im Betriebsartregister (50O) die Durchführung einer Speicherschutzoperation angibt.
9. Anlage nach Anspruch 1, dadurch gekennzeichnet, daß eine
Bitstelle im Betriebsartregister (500) die Durchführung einer maskierten Programmunterbrechung angibt.
10. Anlage nach Anspruch 9, dadurch gekennzeichnet, daß
abhängig von dem Betriebsartbit, das sich auf die maskierte Unterbrechung bezieht, die Auswahl einer Proarammunterr
brechungsstufe verhindert wird und die Anlage in der vorher ausgewählten Programmunterbrechungsstufe weiterarbeitet.
11. Einrichtung nach Anspruch 2, gekennzeichnet durch eine
Vielzahl von adressierbaren Adreßübersetzungsregister (550), die Bitstellen zur Bildung des hochwertigen Teiles einer
Adresse zur Adressierung des erweiterten Bereiches des Hauptspeichers enthalten, durch
Einrichtungen zur Auswahl eines Adressenübersetzungsregisters durch die hochwertigen Bits der angelegten
Adresse,
sowie durch OberSetzungseinrichtungen, welche durch
das Betriebsartbit zur Durchführung der Adressenübersetzung in Tätigkeit gesetzt werden und die hochwertigen
Adressenbits vom ausgewählten Adreßübersetzungsregister zum Hauptspeicheradressenregister zur Adressierung des
RO973OO8 409846/0713
Hauptspeichers zusammen mit den niederwertigen Adressenbits
weiterleiten,
wobei bei Abwesenheit des Betriebsartbits zur Durchführung der Adressenübersetzung die hochwertigen Adressenbits
zusammen mit den niederwertigen Adressenbits der angelegten Adresse zur Adressierung des Hauptspeichers verwendet
werden.
12. Anlage nach Anspruch 11, dadurch gekennzeichnet, daß in
den Adreßübersetzungsregister (550) Bitstellen zur Speicherung von Lese- und Schreibspeicherschutzbits vorhanden
sind.
ro 973 008 40 9846/0713
Leerseite
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 true DE2416609A1 (de) | 1974-11-14 |
DE2416609C2 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 |
JPH0658646B2 (ja) * | 1982-12-30 | 1994-08-03 | インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション | デ−タ持続性が制御される仮想記憶アドレス変換機構 |
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 |
US7181600B1 (en) * | 2001-08-02 | 2007-02-20 | Mips Technologies, Inc. | Read-only access to CPO registers |
US7185183B1 (en) | 2001-08-02 | 2007-02-27 | Mips Technologies, Inc. | Atomic update of CPO state |
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 | 鸿富锦精密工业(深圳)有限公司 | 中断控制系统和方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1449568A1 (de) * | 1962-07-03 | 1969-03-27 | Sperry Rand Corp | Datenverarbeitungssystem |
DE1524209B2 (de) * | 1965-04-16 | 1971-12-30 | Rca Corp., New York, N.Y. (V.St.A.) | Programmgesteuerte datenverarbeitungsanlage |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3292151A (en) * | 1962-06-04 | 1966-12-13 | Ibm | Memory expansion |
DE1181461B (de) * | 1963-10-08 | 1964-11-12 | Telefunken Patent | Adressenaddierwerk einer programm-gesteuerten Rechenmaschine |
US3473156A (en) * | 1964-05-04 | 1969-10-14 | Gen Electric | Data processing unit for providing sequential memory access and record thereof under control of external apparatus |
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
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1449568A1 (de) * | 1962-07-03 | 1969-03-27 | Sperry Rand Corp | Datenverarbeitungssystem |
DE1524209B2 (de) * | 1965-04-16 | 1971-12-30 | Rca Corp., New York, N.Y. (V.St.A.) | Programmgesteuerte datenverarbeitungsanlage |
Non-Patent Citations (1)
Title |
---|
US-Z.: Computers and Automation, 1966, H.7, S.19-23 * |
Also Published As
Publication number | Publication date |
---|---|
FR2227577A1 (de) | 1974-11-22 |
CA1012650A (en) | 1977-06-21 |
US3828327A (en) | 1974-08-06 |
JPS5011144A (de) | 1975-02-05 |
JPS5423544B2 (de) | 1979-08-14 |
DE2416609C2 (de) | 1984-08-30 |
GB1440695A (en) | 1976-06-23 |
FR2227577B1 (de) | 1976-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2416609A1 (de) | Einrichtung zum vereinfachten speicherschutz und zur adressuebersetzung | |
DE2755273C2 (de) | ||
DE1499722C2 (de) | Einrichtung zur Modifizierung von Informationswörtern | |
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE2907181C2 (de) | Prozessor mit einem Befehlssatz-Modifizierregister | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
DE2117936A1 (de) | Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2501853A1 (de) | Prozessor fuer ein datenverarbeitungssystem | |
DE2758152A1 (de) | Speicherschutzanordnung | |
DE2646162A1 (de) | Speicherersatzschaltung | |
DE2746505C2 (de) | ||
DE2441754A1 (de) | Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors | |
DE2755616A1 (de) | Asymmetrischer multiprozessor | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE2440628A1 (de) | Datenverarbeitungsanlage mit mikroprogrammierung | |
DE2744359C2 (de) | ||
DE2364323C2 (de) | Verfahren zur Behandlung von Unterbrechungsbedingungen in einer Datenverarbeitungsanlage | |
DE2906685C2 (de) | ||
DE2245284A1 (de) | Datenverarbeitungsanlage | |
EP1407348B1 (de) | Verfahren zum ansteuern einer zentralen verarbeitungseinheit für eine adressierung bezüglich eines speichers und controller | |
DE2747304A1 (de) | Einrichtung zur mikrobefehlssteuerung | |
DE2801853A1 (de) | Integrierte digitale datenverarbeitungseinrichtung | |
DE2242009C2 (de) | Verfahren und Anordnung zum Erkennen, ob im Mikroprogramm einer Datenverarbeitungsanlage vorgesehene Verzweigungsoperationen ausgeführt werden |
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 |