DE2416609A1 - Einrichtung zum vereinfachten speicherschutz und zur adressuebersetzung - Google Patents

Einrichtung zum vereinfachten speicherschutz und zur adressuebersetzung

Info

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
Application number
DE2416609A
Other languages
English (en)
Other versions
DE2416609C2 (de
Inventor
Neil Clair Berglund
John Willis Kerr
Jerome Urban Petrie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2416609A1 publication Critical patent/DE2416609A1/de
Application granted granted Critical
Publication of DE2416609C2 publication Critical patent/DE2416609C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/145Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling 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.
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 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.
Genaue Beschreibung des Ausführungsbeispieles
Das Blockdiagramm der Fig. 1 ist eine modifizierte Version des in den beiden obengenannten Handbüchern beschriebenen Computersystemes.
Programmbetriebsartenregister (PMRs)
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.
Adreßübersetzung
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.
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/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
Maskenunterbre chung
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)

PATENTANSPRÜCHE
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
DE2416609A 1973-04-30 1974-04-05 Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen Expired DE2416609C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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