DE2416609C2 - Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen - Google Patents

Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen

Info

Publication number
DE2416609C2
DE2416609C2 DE2416609A DE2416609A DE2416609C2 DE 2416609 C2 DE2416609 C2 DE 2416609C2 DE 2416609 A DE2416609 A DE 2416609A DE 2416609 A DE2416609 A DE 2416609A DE 2416609 C2 DE2416609 C2 DE 2416609C2
Authority
DE
Germany
Prior art keywords
address
register
bit
program
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE2416609A
Other languages
English (en)
Other versions
DE2416609A1 (de
Inventor
Neil Clair Berglund
John Willis Kerr
Jerome Urban Rochester Minn. 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Description

Die Erfindung betrifft eine Datenverarbeitungsanlage gemäß dem Oberbegriff des Anspruchs 1.
Eine solche Anlage ist aus der Zeitschrift »Computers and Automation«, July 1966, Seiten 19 bis 23 bekanntgeworden. Diese Einrichtung gestattet jedoch nicht die Berücksichtigung von hinsichtlich der Speicheradressierung und der Instruktionsdurchführung möglichen Betriebsarten.
Die Erfindung findet außerdem spezielle Anwendung in Cor-iputersystemen mit erweiterten Funktionen. Zahlreiche Computersysteme sind ursprünglich mit einer Architektur entworfen, die auf einem bestimmten Bedarf basiert. Wenn das System einmal in Verwendung genommen wurde, entsteht oft eine Nachfrage nach einem Computersystem mit einer erweiterten Funktion, wie z. B. Multiprogrammierung und Adressierung eines erweiterten Speicherbereiches. Das Hauptproblem besteht dann darin, die Funktion eines existierenden Systems unter Verwendung der Grundarchiteklur oder Konstruktion zu einem vollständig neuen System zu erweitern. Besondere Beachtung verdienen hierbei die bei Programmunterbrechungen auftretenden Probleme.
In bekannten Programmunterbrechungseinrichtungen erfolgt die Wahl des dem Unterbrechungsniveau entsprechenden Adreßregisters (und damit eines neuen Speicherbereiches) durch die aktive Unterbrechungsstufe. Solche Programmunterbrechungseinrichtungen sind aus der DE-OS 14 49 568 und der DE-AS 15 24 209 bekannt, wobei jedoch die Auswahl nicht nur zwischen Adreßregistern, sondern allgemeiner zwischen Programmarbeitsregistern, die jeder Programmunterbrechungs-Prioritätsstufe zugeordnet sind, erfolgt. Diese bekannten Einrichtungen ermöglichen jedoch nicht eine Wahl sowohl des Adreßregisters als auch der Betriebsart, in der das System innerhalb dieses Unterbrechungsniveaus arbeiten soll, und auch nicht einen Wechsel der Betriebsart innerhalb der aktiven Unterbrechungsstufe auf selektive Weise innerhalb eines Operationszyklus.
Die erweiterte Speicheradressierung, d. h. die Adressierung eines vergrößerten Speichers mit Adressen der Grundgröße ist in den US-Patentschriften 32 92 151, 33 03 477.33 95 392 und 35 53 653 beschrieben. Die Verbindung mit einem Speicherschutz, der von der verwendeten Betriebsart abhängt, ist jedoch nicht möglich.
Als Betriebsarten im obigen Sinne kommen vor allem in Betracht:
— das Adressieren eines erweiterten Speicherbereiches unter Beibehaltung der bisher verwendeten Adressenlänge.
— der Schutz von Speichersegmenten, beispielsweise von Benutzerprogrammen, gegen unzulässiges Schreiben oder Lesen,
— das Ausführen von Übersetzungen vor logischen Adressen in reale Adressen,
- das Ausführen von privilegierten Instruktionen durch gleichzeitige Unterdrückung der Ausführung von nichtprivilegierten Instruktionen,
— das fallweise Ausschalten der starren Pricritätsrtgelung, etc.
Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, eine Datenverarbeitungsanlage der eingangs genannten Art anzugeben, welche es gestattet, zu jeder Programmunterbrechungs-Prioritätsstufe eine bestimmte Betriebsart auswählen zu können.
Diese Aufgabe wird erfindungsgemäß durch die im Kennzeichen des Hauptanspruches beschriebene Datenverarbeitungsanlage gelöst.
Die Erfindung hat den Vorteil, daß auch bei Multiprogrammierung mit verschiedenen Progranimunterbrechungsniveaus die Adressierung eines erweiterten Speicherbereiches und die Verwendung einer einfachen Speicherschutzeinrichtung ermöglicht wird. Die Multiprogrammierung wird hierdurch wesentlich vereinfacht. Neben der erweiterten Speicheradressierung und der Erzielung des Speicherschutzes sowie der Übersetzung virtueller Adressen ermöglicht die Erfindung auch die Verwendung von privilegierten Instruktionen, von Programm-Fehlersignalen und einer maskierten Programmunterbrechung, wobei die Wahl der Betriebsau in jedem Operationszyklus erfolgen kann. Die Vereinfachung der Programmierung wird vor allem dadurch erreicht, daß durch jede Programmunterbrechung auf irgendeinem Prioritätsniveau zugleich auch die gewünschte Betriebsart des Systems gewählt werden kann. Die Unterbrechungsroutine kann dabei in einem Speicherblock gespeichert werden, der dem aktivierten Unterbrechungsniveau direkt zugeordnet ist.
Vorteilhafte Weiterbildungen der Erfindung sind den Unteransprüchen zu entnehmen.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschließend näher beschrieben. Es zeigt
Fig. 1 einen Kombinationsplan für die Fig. la und Ib,
Fig. la und Ib zusammen in einem Blockdiagramm die Datenverarbeitungsanlage,
F i g. 2a und 2b von links nach rechts zusammengelegt schematisch in einem Blockdiagramm die Logik zur Adressierung, zum Laden und Speichern der Programmbetriebsartregister, der Adressierlogik, der Logik zum Laden und Speichern der Adreßübersetzungsregister und der Logik zum Einstellen und Abfühlen der Adressenerweiterungs-Bitstelle in den Ein/Ausgabe-Adreßregistern,
Fig. 3 in einem schematischen Logikdiagramm die Logik zur Erzeugung der durch die in Fig. 2 gezeigte Logik benutzten Steuersignale aufgrund der Lade- und Speicherinstruktionen der CPU,
Fig.4 in einem schematischen Blockdiagramm die Logik zum Erkennen von Programmpriifbedingungen, die Logik zur Erzwingung des Operationsendes, die Logik für die Zugriffssperre zum Datenspeicher und zum Schreiben in diesel1 Speicher sowie die Logik für die Anforderung der Unterhrechungsstufen 0 und 7.
F i g. 5 in einem 'ichi'maüschen Logikdiagramm die Logik zur Erzeugung der durch die in F i g. 4 gezeigte Logik benutzten Steuersignale aufgrund von Kommandoinstruktionen der CPU und
F i g. 6 in einem schematischen Logikdiagramm die Unterbrechungsslufcnlogik.
Allgemeine Beschreibung
Das Ausführungsbeispiel der Erfindung kann z. B. verwendet werden in einem Computersystem, wie es beschrieben ist in den Handbüchern »IBM 5410 Processing Unit Theroy of Operation«, Copyrighted 1963, 1970,1971 by International Business Machines Coroporation und »IBM 5410 Processing Unit Diagrams«, Copyrighted 1969 by International Basiness Machines Corporation. Die Erfindung verbessert das Datenverarbeitungssystem der dort beschriebenen Art unter anderem durch Veränderung zu einem Multiprogramming-System. Ein solches System ist grundsätzlich insofern ein vielseitigeres Datenverarbeitungssystem, als mehr als ein Benutzerprogramm die Datenverarbeitungsoperation steuern können, wo ein Überwachungsprogramm die lobumschaltung steuert. Die in F i g. 1 gezeigte Hauptspeichereinheit 10 hat eine erweiterte Kapazität und kann in diesem Beispiel 128 K Datenbytes von je acht Biis (0—7) speichern. Die Speicherkapazität der Speichereinheil 10 reicht zur gleichzeitigen Speicherung des Überwachungsprogrammes und eines oder mehrerer Benutzerprogramme aus.
Alle Bytepositionen im Hauptspeicher 10 können nicht mehr einzeln durch die Adresse im Speicheradreßregister (SAR) 20 adressiert werden, weil die größte Adresse im Register 20 und in den Registern 100, von wo die Adresse im Register stammt, einzeln nur 64 K Bytes adressieren können. Das Überwachungsprogramm wird in den unteren K Bytes gespeichert, d. h. z.B. in den ersten 16 K Bytes, und die Benutzerprogranime werden in den höheren K Bytes des Speichers gespeichert. Ein Benutzerprogramm ist z. B. in den Bytes 16—64 K und ein anderes in den Bytes 64—128 K gespeichert. Der Speicheradreßbetrieb, d. h, ob die oberen oder die unteren 64 K Bytes adressiert werden, wird bestimmt durch Steuerbits, die in den Programmbetriebsartenregistern 500 gespeichert sind und durch Unterbrechungsstufen des Datenverarbeitungssystems gewählt werden.
Es gibt im wesentlichen neun Unterbrechungsstufen und somit neun Programmbetriebsartenregister 500. Die neunte Unterbrechungsstufe ist in Wirklichkeit die Programmstufe oder keine Unterbrechungsstufe mehr.
so Die Programmbetriebsartenregister 500 können vom Programm mit Datenbits über eine neue Instruktion Laden/Speichern Programmbetriebsartenregister geladen werden. Der Inhalt eines Programmbetriebsartenregisters kann zur E/A-Zeit eines Instruktionszyklus verändert werden. Jedes Programmbetriebsartenregister hat sieben Bits und drei Bitpositionen dieser acht Bitpositionen dienen der Steuerung des Adrsssierbetriebes. Diese drei Bitpositionen eines jeden Registers sind der Einfachheit halber als Gruppen in Fig. 1 ge-
bo zeigt und speisen den Adreßübersetzungstabellenblock 510.
Die erweiterte Adressierung erfolgt wahlweise durch die Aureßübersetzungstabellenregister 550, die ebenfalls vom Programm geladen werden können mit einer
b5 neuen Instruktion Laden/Speichern Adreßübersetzungstabelle. Es gibt 32 Adreßübersctzungstabellenregister und jedes Register enthält acht Bits. Vor. diesen acht Bits sind sechs Bits für die werthohen Adreßbits für
den Hauptspeicher vorgesehen und die beiden anderen geben an, ob der adressierte Speicherbereich für das Lesen oder das Schreiben geschützt ist.
Aus der obigen Erklärung geht hervor, daß die Programmbetriebsartenregister 500 durch die aktive Unterbrechungsstufe gewählt werden, um die Betriebsarten des Systems und unter anderem den Adreßübersetzungsbelrieb zu bestimmen. Der Adreßübersetzungsbetrieb ist während verschiedener Maschinenzyklen einer Instruktion ein- oder ausgeschaltet, abhängig von den Steuerbits im gewählten Programmbetriebsartenregister 500. Wenn der Adreßübersetzungsbetrieb für einen Maschinenzyklus läuft, werden die werthohen Adreßbits aus dem Adreßübersetzungstabellenregister 550 genommen, die durch die Bits 0—4 auf der Sammelleitung 22 der im SAR 20 enthaltenen 16 Bits großen logischen Adresse gewählt wurden. Das gewählte Adreßübersetzungstabellenregister 550 gibt sechs werthohe Adreßbits an den Hauptspeicher über die Sammelleitung 569 und die durch das UND-Glied 570 dargestellte UND-Glied-Logik (für jedes Adreßbit ist ein separates UND-Glied vorhanden) und das ODER-Glied 573. Die durch das UND-Glied 570 dargestellten UND-Glieder werden durch ein Übersetzungssignal vorbereitet, welches durch die Adreßübersetzungstabellenlogik 510 erzeugt wird. Das Übersetzungssignal wird über die Leitung 516 an das UND-Glied 570 und den Inverter 571 angelegt.
Wenn das Übersetzungsvorbereitungssignal fehlt, bereitet der Inverter 571 die durch das UND-Glied 572 dargestellten UND-Glieder zur Leitung der Bits 0—4 des SAR 20 auf die Sammelleitung 22 und Bit 17 vom Ausgabesatz eines Speicherelementes 21 der 17. Position vor, welches dem SAR 20 hinzugefügt wurde. Diese 17. Bitposition wird gemäß späterer Beschreibung nur bei E/A-Zyklen benutzt. Die übrigen Bits 5—15 im SAR 20 werden direkt über die Sammelleitung 23 an den Hauptspeicher geleitet. Durch diese Anordnung kann mit Ausnahme der E/A-Geräte, die für die Datenübertragung Zyklen entnehmen, eine 16 Bit große logische Adresse 128 K. Speicherbytes dadurch adressieren, daß die fünf werthohen Bits im SAR 20 zum Wählen eines der Register 550 benutzt werden, die sechs Adreßbits enthalten.
Die E/A-Geräte benutzen eine physikalische Speicheradresse des 17. Bits, weil sie nicht mit den Adreßübersetzungstabellenregistern 550 arbeiten. Die E/AGeräte benutzen die Adreßübersetzungstabellenregister 550 nicht, weil das Überwachungsprogramm den Inhalt dieser Register für einen anderen Benutzer verändert, wenn die E/A-Operationen für noch einen dritten Benutzer ausgeführt werden. Die zentrale Verarbeitungseinheit kann somit nützliche Arbeit für einen Benutzer leisten, während ein anderer darauf wartet, daß ein E/A-Gerät seinen Betrieb beendet. Gemäß späterer Erklärung können E/A-Geräte die 64 K Grenze überschreiten.
Die E/A-Geräte-LSRs 600 wurden so modifiziert, daß jedes 17 Bits hat Die E/A-LSRs 600 werden mit 16 Bits auf die übliche Weise geladen. Das 17. Bit wird während einer zum Laden der anderen 16 Bits benutzen LlO-Instruktion geladen. Das in die 17. Position geladene Bit hängt ab von der Bitbedingung des E/A > 64 K Bit in gewählten PMR 500. Die auf die LlO-Instruktion und E/A > 64 K Bit ansprechende Logik im gewählten PMR 500 wird durch den Block 530 dargestellt. Diese Logik 530 enthält auch die Logik zum Einschalten des 17. Bits in den LSRs 600 in den richtigen Zustand, wenn die Adresse für ein E/A-Gerät die 64 K Grenze überschreitet. Das 17. Bit eines E/A-LSR 600 kann nicht in einem gewählten PMR 500 gespeichert werden durch eine Abfrageinstruktion, die an ein E/A-Geräte-LSR zur r> selben Zeit abgegeben wird, wie die anderen 16 Bits in den Speicher geschrieben werden. Der Zustand des 17. Bits im E/A-Gerät-LSR wird unter Steuerung des Logikblockes 540 in das gewählte PMR 500 gesetzt. Das im gewählten PMR 500 gespeicherte Bit kann dann in
κι den Hauptspeicher 10 übertragen werden, um die Zustandsprüfung dieses Bits zu erleichtern.
Die zusätzlichen zwei Bits in jedem Adreßübersetzungstabellenregister 550 werden für den Speicherschutz benutzt. Der Speicherschutz ist so vorgesehen,
is daß Benutzerprogramme gleichzeitig im Speicher stehen können, ohne daß ein Programm die Daten eines anderen Programms verändert oder zerstört. Die Speicherschutzfunktion liefert Abruf- und Schreibschutz der gewählten Bereiche des Hauptspeichers. Der Speicherschutzbetrieb wird bestimmt durch eine Bitposition in den Programmartenregistern 500. Wenn das Speicherschulzbit im gewählten oder aktiven Programmbetriebsartenregister 500 eine Eins ist, dann ist die Speicherschutzfunktion aktiv, wogegen sie abgeschaltet ist, wenn dieses Bit null ist. Ob ein Bereich im Hauptspeicher gegen Abruf oder Schreiben geschützt ist oder nicht, wird bestimmt durch den Zustand des Abruf- und Schreibschutzbit in dem gewählten Adreßübersetzungstabcllenregister 550 (ATT).
Da 32 ATT-Register 550 vorhanden sind, ist der Speicher in 2 K Blocks geschützt. Nur 64 K Speicherpositionen werden weiterhin zu einem Zeitpunkt adressiert und somit sind die anderen 64 K automatisch geschützt, da es keine Möglichkeit gibt, sie ohne Veränderung des Inhaltes des ATT-Registers 550 zu adressieren. Der Abrufschutz verhindert ein Lesen der Daten aus einer bestimmten Stelle im Hauptspeicher. Wenn das Abrufschutzbit im gewählten ATT-Register 550 eine Eins ist und der Speicherschutzbetrieb aktiv ist gemäß Bestim-
4» mung durch das Speicherschutzbit im aktiven PMR-Register 500, erzeugt die Abruf/Schreibschutzlogik 625 ein Signal, welches die Datenübertragung vom Register 30 auf das B-Register 35 verhindert. Der Schreibschutz verhindert die Dateneingabe in eine bestimmte Stelic im Hauptspeicher 10. Der Schreibschutz erfolgt, wenn das Schreibschutzbit im gewählten ATT-Register 550 eine Eins ist und der Speicherschutzbetrieb läuft. Die Abruf/ Schreibschutzlogik 625 reagiert auf die gerade erwähnten Betriebszustände und erzeugt ein Signal zum Sperren der Datenschreibung in den Hauptspeicher.
Außer dem Speicherschutz zur leichteren Multiprogrammierung benötigt man auch eine Aufgabenumschaltung durch die Überwachungsprogrammsteuerung. Für eine effektive Multiprogrammierung wird die Steuerung der zentralen Verarbeitungseinheit einem Benutzer übergeben, wenn ein anderer die zentrale Verarbeitungseinheit benutzt habender Benutzer auf E/A wartet. Für die notwendige Steuerung kann kein Benutzerprogramm sein eigenes E/A-Kommando geben. Um
bo diesen Zustand zu sichern, sind alle E/A-Kommandos bevorrechtigte Kommandos und werden durch das bevorrechtigte Überwachungsprogramm abgegebea Die Benutzerprogramme laufen unterprivilegiert, um sicherzustellen, daß sie keine E/A-Kommandos abgeben
b5 können. Die Benutzerprogramme benötigen also die , Bedienung des Überwachungsprogrammes für E/A-Kommandos und andere privilegierte Operationen, wie Registerkommandos. Der privilegierte Betrieb wird be-
stimmt durch ein entsprechendes Privilegierungsbctriebsbit im aktiven PMR 500. Wenn dieses Bit eine biniirc F.ins ist, können sowohl privilegierte als auch unterpnvilegierte Kommandos ausgeführt werden. Wenn dieses Hit eine binäre Null ist, können die privilegierten Kommandos jedoch nicht ausgeführt werden. Die Überwachungsaufrufinstruktion (SVC) sorgt für die Kommunikation zwischen dem unterprivilegierten Benut/.erprogramm und dem privilegierten Überwachungsprogramm. Bei Abgabe verursacht diese Instruktion eine Operationsumschaltung auf die Unterbrechungsstufe 0. Diese Unterbrechungsstufe mit der untersten Priorität bringt ein zugehöriges PMR 500 in den aktiven Zustand. Das zur Unterbrechungsstufe 0 gehörende Privilegierungsbetriebsbit ist immer eingeschaltet. Die Unterbrechungsroutine 0, die ein Teil des Überwachungsprogramms ist. kann daher alle Kommandos abgeben. Während dieser Unterbrechung kann ein nicht privilegierter Benutzer mit dem Überwachungsprogramm kommunizieren. Das zugehörige PMR 500 hat Bits, die bestimmen, ob die Adreßübersetzung aktiv ist oder nicht. Mit diesen Bits kann z. B. einem im hochwertigen 64 K Teil des Speichers stehenden Benutzerprogramm die Möglichkeit gegeben werden, auf das Überwachungsprogramm umzuschalten, welches in den unteren 64 K des Speichers steht, ohne daß der Inhalt der Adreßübersetzungsregister 550 verändert werden muß.
Ein Maskenunterbrechungsbetrieb ist vorgesehen, um eine Unterbrechung des Überwachungsprogramms zu verhindern, wenn es einen Schalter zwischen Benutzerprogramm stellt. Der Maskenunterbrechungsbetrieb wird durch ein Maskenunterbrechungsbit in den PMRs 500 bestimmt. Wenn dieses Bit eine Eins ist. werden Unterbrechungen mit hoher Priorität ausstehend gehalten, bis das Maskenunterbrechungsbit auf Null umgeschaltet ist.
Die Unterbrechungsstufe mit der höchsten Priorität ist für die Programmprüfungsunterbrechung oder die Unterbrechungsstufe 7 reserviert. Diese Unterbrechungsstufe wurde hinzugefügt, um eine Möglichkeit zu schaffen, einen ganzen Systemstop zu verhindern, wenn ein Benutzerprogramm Fehler erzeugt hat. wie einen ungültigen Operationscode, ungültige Speicheradressen, eine ungültige E/A-Einheitenadresse, Speicherverletzungen oder Verletzungen privilegierter Kommandos. Ein Gerät zeigt mit einer gelieferten Statusinformation die Fehlerquelle und die Adresse an, an der der Fehler auftrat. Dadurch hat der Programmierer die Möglichkeit, die Fehlerursache zu analysieren und entsprechende Schritte in der Unterbrechungsroutine zu unternehmen.
Die vorliegende Erfindung bietet also Funktionen zur Erleichterung der Multiprogrammierung eines Datenverarbeitungssystems. Programmbetriebsarten register mit Bits zur Steuerung der Systembetriebsart in bezug auf die Adreßübersetzung, privilegierte Operationen, E/ A > 64 K, Speicherschutz und Maskenunterbrechungen werden durch die aktive Unterbrechungsstufe oder Sonderinstruktionen Laden/Speichern CPU gewählt. Die Adreßübersetzung kann auf zyklischer Basis betrieben und die Adreßübersetzungstabellenregister, gewählt durch die werthohen Bits der logischen Adresse, können die werthohen Bits für die physikalische Adresse liefern. Die wertniederen Bits der physikalischen Adresse werden durch die wertniederen Bits der logischen Adresse geliefert.
Die privilegierte Betriebsart hindert einen Benutzer daran, das System mit Wartezustand festzuhalten, wo keine nützliche Arbeit geleistet wird, und somit eine wirksame Multiprogrammierung zu verhindern. Eine programmgesteuerte Unierbrcchungsstufe sorgt für die Kommunikation /wischen lienutzerprograintncn und
ι dem Überwachungsprogramm. Mit einer CPU-Kommandoinstruktion wird die Unterbrechungsstufe 0 für den privilegierten Betrieb aktiv gemacht. Das Überwachungsprogramm behandelt alle E/A-Kommandos und nach Start eines E/A-Gerätes für einen Benutzer lädt es die Adreßübersetzungsregister 550 so, daß sie auf einen anderen Benutzer zeigen und gibt diesem Benutzer die Steuerung, um die verfügbare CPU-Zeit maximal zu nutzen. E/A-Gcräle benutzen die Adreßübersetzungstabelle nicht, sondern eine 17 Bit große physikalische Adresse, die in den E/A-Geräte-Arbeitsregistern 600 enthalten ist. Das 17. Bit kann in das E/A-Geräte-Arbeitsspeicherregister gesetzt werden durch das E/-A > 64 K Bit im aktiven Programmbetriebsartenregister.
Der Speicherschutz gibt die Möglichkeit, mehr als Benutzerprogramm gleichzeitig im Hauptspeicher zu speichern, wodurch andere Benutzerprogramme vor Veränderung durch das aktive Benutzerprogramm beschützt sind. Eine Programmprüfungsunterbrechung oder eine Unterbrechung der Stufe 7 ermöglicht den fortgesetzten Betrieb durch andere Benutzerprogramme, wenn ein Benutzerprogramm Fehler hervorgerufen hat, die sonst zu einem Betriebsstillstand des Systemes führen würden.
Genaue Beschreibung des Ausführungsbeispieles
Das Blockdiagramm der F i g. 1 ist eine modifzierte Version des in den beiden obengenannten Handbüchern J5 beschriebenen Computersystemes.
Programmebetriebsartenregist er (PMRs)
Die Programmbetriebsartenregister (PMRs) 500 sind in F i g. 2 als konventionelle Register gezeigt. Es sind neun PMRs vorhanden, eines für jede Unterbrechungsstufe (0—7) und eines für die unterbrechungsfreie oder Programmstufe. Jedes PMR hat sieben Bits. Die Bitposition 0 ist ungenutzt und die Bitpositionen 1. 2 und 3 dienen der Adreßübersetzung im EB-Zyklus, EA-Zyklus und 1-Zyklus. Die Zyklen EA und EB sind lnstruktionsausführungszyklen, wogegen die 1-Zyklen Instruktionsabrufzyklen sind gemäß Beschreibung auf Seite 3-1 der oben angegebenen Quelle 1. Die Adreßübersetzung kann also auf Zyklusbasis abhängig von den Bitstellungen der Bits 1,2 und 3 erfolgen.
Die Bits 4,5 und 6 werden für E/A > 64 K, den privilegierten Betrieb bzw. den Speicherschutz verwendet Das dem Bit 7 entsprechende Maskenunterbrechungsbit ist in den PMRs aus Gründen der Zeiteinteilung enthalten. Der Inhalt der PMRs kann zur EB-Zeit eines Instruktionszyklus verändert werden, muß jedoch von der Taktzeit 0 einer I-Operation bis zur Taktzeit 0 der nächsten 1-Operation zur Verfügung stehen. Daher ist ein Programmbetriebsartensteuerregister 501 als Pufferregister vorgesehen und seine Eingänge sind mit den Ausgängen der PMRs 500 und mit dem Leiter verbunden, der das Maskenunterbrechungsbit führt. Die Bits 1 —6 des Registers 501 werden unter Steuerung des UND-Gliedes 502 geladen, welches ein Ausgangssignal abgibt, wenn ein 1-OP-Zyklussignal gleichzeitig mit einem O-Taktsignal vorhanden ist. Das Bit 7 des Registers 501 wird direkt von der ALU-Sammelleitung 41 durch
das UND-Glied 504 gleichzeitig mit den PMRs 500 geladen.
Die PMRs 500 in Fig. 2 werden mit Datenbits von der ALU-Sammelleitung 41 geladen. Die Datenbits kommen im allgemeinen vom Hauptspeicher 10, die ALU 40 in F i g. 1 ist jedoch Teil eines gemeinsamen Datenweges gemäß der Erklärung in der Quelle 1. Es ist zu beachten, daß das Bit 4 für E/A > 64 K über das ODER-Glied 507 geladen wird. Das ODER-Glied 507 hat einen Biteingang von der ALU-Sammelleitung 41 und einen Biteingang vom UND-Glied 541. Das UND-Glied 541 wird durch das UND-Glied 542 eingeschaltet und leitet die durch das 17. Bit des gewählten E/A-Geräte LSR 600 dargestellte Bitbedingung. Das UND-Glied 542 wird leitend geschaltet durch ein SNS-Instruktionssignal, irgendein E/A-LSR-SEL-Signa! und ein EB-Zyklussignal. Obwohl die Daten zum Laden der PMRs 500 entweder von der ALU-Sammelleitung 41 oder dem 17. Bit der E/A-Geräte-LSRs 600 kommen, werden die PMRs unter Steuerung der UND-Glieder 503 und 504 geladen.
Das UND-Glied 503 liefert ein Ladesignal zur Taktzeit 4, wenn ein Ausgangssignal vom UND-Glied 542 anliegt. Das ist die andere Möglichkeil zum Laden des Bits 4 des gewählten PMR 500. Der normale Weg zum Laden eines PMR 500 ist die CPU-Ladeinstruktion. Die jeweilige Bedeutung einer CPU-Ladeinstruktion hängt ab vom Q-Code im Q-Register 60. In Fig.3 steht der Operationscode (OP-Code) einer CPU-Ladeinstruktion im OP-Coderegister 55. Die werthohen Bits 0—4 werden durch die Decodierlogik 71 für die erste Nichtverzweigungsadresse decodiert. Die Ausgabe dieser Logik schaltet die UND-Glieder 545 und 546 ein. Die CPU-Ladedecodierlogik 543 reagiert auf die Bits 4—7 im OP-Coderegister 55 in der entsprechenden Konfiguration und liefert ein Signal an das UND-Glied 545, welches ein Signal an das UND-Glied 505 weiterleitet, das durch die Ausgabe der PM R-Decodierlogik 547 leitend geschaltet wird. Diese Logik liefert ein Ausgangssignal, wenn die Bits 0—3 im Q-Register 60 die richtige Konfiguration haben. Das Ausgangssignal vom UND-Glied 505 ist das Ladesignal PMR INST, welches an das UND-Glied 504 in Fi g. 2 angelegt wird. Dieses UND-Glied 504 hat außerdem Eingänge zum Empfang eines 5er-Taktsignales und eines EB-Signales.
Das aktive PMR 500 wird normalerweise durch die aktive Unterbrechungsstufe gewählt. Die Unterbrechungsstufen 0—7 sind gemäß Darstellung in Fig.6 binär codiert. Die Unterbrechungen 1 —6 sind die normalen Unterbrechungen und kommen gemäß Darstellung in der Quelle 1 von der Sammelleitung 46. Die Unterbrechungen !—6 bedienen ein Kathodenstrahlröhren-Bildschirmgerät (CRT) bzw. BSCA, MLTA, SlOC, OP END und einen Taktgeber. Die Unterbrechungen werden an die Polaritätshalteschaltungen 702—707 des Unterbrechungsprioritätsregisters 700 entsprechend angelegt Die Unterbrechungsstufen 0 und 7, die das später zu beschreibende Überwachungsprogramm bzw. die Programmprüfung bedienen, werden an die Polaritätshalteschaltungen 701 bzw. 708 geleitet Die Polaritätshalteschaltungen 701—708 werden unter Steuerung des UND-Gliedes 709 eingeschaltet, welches ein Signal OP END GATE und ein Taktsignal 5-8 empfängt.
Die Unterbrechungsstufe 7 hat die höchste Priorität und die Unterbrechungsstufe 0 die niedrigste. Die Unterbrechungsstufenprioritätslogik ist als Logik 710 dargestellt und funktioniert genauso, wie es in den beiden Quellen 1 und 2 beschrieben ist Das Unterbrechungsregister 750 empfängt die Unterbrechungen vom Unterbrechungsprioritätsregister 700 über die Prioritätslogik 710. Die das Unterbrechungsregister 750 bildenden Polaritätshalteschaltungen 751 — 758 werden unter Steuerung des ODER-Gliedes 738 eingeschaltet. Das ODER-Glied 738 empfängt ein OP END-Erzwingungssignal und ein Signal vom UND-Glied 737. Das UND-Glied 737 empfängt ein OPEN D-Signal, ein Steuersignal M/C VORSCHALTEN und ein Signal vom Inverter 736. Der ίο Inverter 736 ist mit seinem Eingang an den Maskenunterbrechungsausgang des PMR-Steuerregisters 501 angeschlossen. Ein Maskenunterbrechungsbit im Register 501 verhindert also das Setzen jeglicher neuen Unterbrechung in das Register 750.
Die Unterbrechungsstufen sind im Unterbrechungsregister 750 binär codiert durch die ODER-Glieder 761, 762 und 763. Das ODER-Glied 764 liefert ein Ausgabesignal, sobald eine Unterbrechungsstufe 0—7 aktiv ist. Die Ausgänge der ODER-Glieder 761, 762, 763 und 764 werden zur Wahl des aktiven PMR 500 benutzt. Zusätzlich zur bereits unterschriebenen Unterbrechungsschaltung wird von der Verriegelung 740 noch ein Bedienungssignal für jede Unterbrechungsstufe geliefert. Die Verriegelung 740 empfängt Einschalteingänge von der Prioritätslogik 710 und ist mit ihrem Rückstelleingang an den Inverter 739 angeschlossen. Die Verriegelung 740 hat auch einen Eingang vom ODER-Glied 738. Die IAR- und ARR-Wahllogik 766 reagiert auf die Unterbrechungsstufeneingänge vom Register 750 und erzeugt Steuersignale, die an die LSR-Wahlsteuerlogik 80 in F i g. 1 angelegt werden.
Die binär codierten Unterbrechungsstufen, d. h. die Ausgänge der ODER-Glieder 761, 762, 763 und 764 in F i g. 6 werden darstellungsgcmäß durch die Sammelleitung 765 in Fig. 2 an eine Anzahl von UND-Gliedern (eines für jeden binären Eingang) angelegt, die durch das UND-Glied 772 dargestellt sind, um eines der PMRs 500 über das ODER-Glied 774 zu wählen. Diese UND-Glieder werden durch den Inverter 771 bei Fehlen eines Signales vom UND-Glied 770 eingeschaltet, welches beim Fehlen eines Signales LD/ST PMR INST auftritt. Das Signal LD/ST PMR INST stellt den anderen Weg zum Wählen des aktiven PMR dar. Die Bits zum Wählen eines PMR 500 mit dem Signal LD/STPMR INST kommen vom Q-Register 60 in F i g. 3. Diese Bits 4—7 vom Q-Regisier 60 werden über die Sammelleitung 775 an eine entsprechende Anzahl von UND-Gliedern angelegt, die durch das UND-Glied 773 in Fi g. 2 dargestellt sind. Dieses UND-Glied wird durch den Ausgang des U N D-Gliedes 770 eingeschaltet, welches das Signal LD/ ST PMR INST und das EB-Signal empfängt Das Signal LD/ST PMR INST kümriit vom ODER-Glied 517 in Fig. 3.
Das ODER-Glied 517 empfängt Eingänge von den UND-Gliedern505 und 506. Das UND-Glied 505 wurde oben beschrieben und sein Ausgang ist das Signal LADEN PMR INST. Die Ausgabe des UND-Gliedes ist ein Signal Speicher PMR INST aufgrund der Eingänge von dem PMR-Decodierer 547 und dem UND-Glied 546. Die Ausgänge der Decodierlogik 71 und der CPU-Speicherdecodierlogik 544 werden an das UND-Glied 546 gelegt Somit wird von einer Speicher-CPU- oder Ladc-CPU-Instruktion ein Signal L/S PMR INST erzeugt, wenn der Q-Code der Instruktion so ist, daß der PM R-Decodierer 547 ein Ausgangssignal liefert.
Ein gewähltes PMR 500 wird in den Hauptspeicher über die CPU-Speicherinstruktion mit dem entsprechenden Q-Code geladen. Der Inhalt des gewählten
PMR zusammen mit dem Maskenunterbrechungsbit vom PMR-Steuerregister 501 wird in das A-Register 45 in F i g. 1 über die Sammelleitung 780 eingegeben. Die Daten im A-Register45 werden dann in den Hauptspeicher IO über die Al.U 40 und das Speieherdatenregisler 30 übertragen.
Adreßübersetzung
Die Adreßübersetzung liefert eine erweiterte Speicheradresse. Das Computersystem der Fig. 1 hai eine normale Datenbahn von 1 Byte Breite und eine Adreßbahn von 2 Byte Breite. Daten werden innerhalb des Computersystems jeweils byteweise übertragen. Mehrere aufeinanderfolgende Speicherzugriffe können jedoch zur Vervollständigung einer Operation erforderlich sein. Wie in der unter 1 erwähnten Quelle beschrieben ist, wird das Speicheradreßregister SAR 20 in Fig. 1 mit jeweils zwei Bytes von einem der LSRs 100 während der ersten Funktions/eit eines Maschinenzyklus geladen. Während der E/A-Zyklen liefert der E/A-Geräteanschluß natürlich die Wahl des als Adreßregister zugeordneten LSR 600.
Das SAR 20 wird somit normalerweise mit einer Fig. 3. Die Adreßübersetzungstabellenregister 550 werden somit mit Daten geladen durch eine CPU-Ladcinstruktion und insbesondere eine Ladeinstruktion mit dem OP-Code hexadezimal 3F und einem Q-Code von
'> hexadezimal 0»X«. wobei »X« eine Hexadezimalzahl von 0 bis /ist. Die werthohen riilsO—3 des Q-Codes, d. h. 0000 zeigen an, daß die Operation für die Adreßübersetzung gilt und die zu ladenden Register werden durch die wertniederen Q-Bits 4 — 7 und einem Bit gela-
iü den. welches durch das erste E-Zyklussignal erzeugt wird, das während eines Instruktionszyklus auftritt und über den Leiter 587 gesendet wird. Die wertniederen Q-Bits und das Signal 1ST Ε-Zyklus werden über die Sammelleitung 588 bzw. den Leiter 587 an fünf durch das UND-Glied 581 dargestellte UND-Glieder angelegt. Diese UND-Giieder werden durch ein Signal vom UND-Glied 582 vorbereitet, so daß sie die Adreßüberseizungstabellenregisier 550 über das ODER-Glied 585 wählen. Das UND-Glied 582 ist mit seinen Eingängen so verbunden, daß es ein Signal LD/ST ATT INST vom ODER-Glied 518 in F i g. 3 und ein EB-Zyklussignal von den Steuerungen 80 in F i g. 1 empfangt.
Die Adreßübersetzungstabellenregister 550 werden üblicherweise durch die werthohen Bit 0—4 der Adres-
16 Bit großen Adresse versorgt, die direkt eines der 25 se im SAR 20 in Fig. 2 gewählt. Diese Bits werden über
64 K Bytes im Hauptspeicher adressieren kann. Um eines der 128 K Bytes zu adressieren, ist eine 17 Bit große Adresse erforderlich. Obwohl die 17. Position 21 zusätzlich zum SAR 20 besteht, um eine 16 Bit große Adresse vom E/A-Geräte-LSR 600 zu ermöglichen, wird das SAR 20 mit Ausnahme der E/A-Geräteadressen mit zwei Bytes oder 16 Bits aus einem der 16 Bit großen allgemeinen Register 100 geladen. Diese 2 Byte große Adresse wird dann abhängig von den Adreßübersetzungssteuerbits im aktiven PMR 500 zu einer 17 Bit großen Adresse erweitert oder nicht.
Die Adreßübersetzungslogik5I0 in Fig. 1 enthält die UND-Glieder 511, 512 und 513 in Fig. 2. Diese UND-Glieder 511, 512 und 513 sind mit den Ausgängen des PMR-Steuerregisters 501 für die Bitpositionen EB XLATE, EA XLATE und 1 XLATE entsprechend verbunden und werden durch Steuersignale EB-Zyklus, EA-Zyklus und 1-Zyklus eingeschaltet. Die Ausgaben dieser UND-Glieder werden an das ODER-Glied die Sammelleitung 22 an eine entsprechende Anzahl von UND-Gliedern angelegt, die durch das UND-Glied 583 dargestellt sind. Diese UND-Glieder 583 werden durch ein Signal vom Inverter 584 vorbereitet. Wenn also ein Ausgang vom UND-Glied 582 fehlt, werden die UN D-Glieder 583 zum Wählen eines der Adreßübersetzungstabellenregister 550 eingeschaltet. Die Adreßbits El 5, 0, 1, 2. 3 und 4 in dem gewählten Adreßübersetzungstabellenregister 550 werden über die Sammellei-
J5 tung 569 an eine entsprechende Anzahl von UND-Gliedern angelegt, die durch das UND-Glied 570 dargestellt sind. Die UND-Glieder 570 werden durch das Übersetzungssignal auf dem Leiter 516 vom ODER-Glied 514 eingeschaltet.
Daraus ist zu ersehen, daß die werthohen Bits einer erweiterten Adresse von einem Adreßübersetzungstabellenregister 550 kommen. Die wertniederen Bits 5—15 der erweiterten Adresse werden direkt an das Hauptspeicheradreßregister 575 gegeben vom SAR
geleitet und wenn ein entsprechendes Signal an seinem 45 20 über die Sammelleitung 23.
Ausgang auf der Leitung 516 erscheint, ist es das Übersetzungssignal. Der Leiter 516 ist an das UND-Glied und den Inverter 571 angeschlossen. Wenn also auf dem Leiter 516 ein Übersetzungssignal liegt, wird das UND-Glied 570 eingeschaltet und das an den Inverter angeschlossene UND-Glied 572 wird nicht eingeschaltet.
Das UND-Glied 570 ist repräsentativ für fünf UND-Glieder, deren Eingänge an die Bitpositionen E15,0,1,2, Wenn das Übersetzungssignal nicht vorhanden ist. werden die werthohen Bits 0—4 der Adresse und die Bitposition 21 über die Sammelleitung 22 an die UND-Glieder 572 angelegt, die durch den Ausgang des Inverters 571 eingeschaltet werden.
Der Inhalt eines gewählten ATT-Registers 550 kann im Hauptspeicher 10 durch eine CPU-Speicherinstruktion gespeichert werden.
Die CPU-Speicherinstruktion zum Speichern des In-
3 und 4 der Adreßübersetzungstabellenregister 55 haltes eines ATT-Registers 550 hat einen OP-Code von
(ATT)-Register550 angeschlossen sind. Die Adreßüber- hexadezimal 3E, Fig.3, und einen Q-Code von 0»X«,
Setzungstabellenregister 550 sind konventionelle 8 Bit worin »X« eine Hexadezimalzahl von 0 bis F ist Mit
große Register (mit dem Parirätsbit P 9), in denen die dem »X«-Te\\ des Q-Codes werden zwei ATT-Register
sechs Bits E15, 0,1, 2, 3 und 4 werthohe Adreßbits und 550 gewählt, die zu speichern sind. Die Wahl erfolgt
die übrigen beiden Bits Abrufschlüssel- und Schreib- bo über die UND-Glieder 581 unter Steuerung der UND-
schlüsselbits sind. Glieder 582 in F i g. 2. Die CPU-Speicherinstruktion Bt
Es gibt 32 Adreßübersetzungstabellenregister 550, das Signal LD/ST ATT INST durch das ODER-Glied
die mit Daten aus dem Hauptspeicher 10 über die ALU- 518 in F i g. 3 laufen, weil das UND-Glied 509 das Signal
Sammelleitung 41 unter Steuerung eines Signales vom STORE ATT INST leitet Der Inhalt der zwei gewählten UND-Glied 580 geladen werden. Das UND-Glied 580 65 ATT-Register 550 wird in zwei aufeinanderfolgenden
ist so verbunden, daß es das Signal LD ATT INST, ein Zyklen in den Hauptspeicher über das A-Register 45,
EB-Zyklussignal und ein Taktsignal 5 empfängt Das Si- die ALU 40 und das Speicherdatenregister 30 geleitet, gnal LD ATT INST kommt vom UND-Glied 549 in
E/A > 64 K
Einen Teil des CoTtputersystems bildende E/A-Geräte Obertragen Daten und einige Kommandos an das System über die E/A- Eingangsdatensammeileitung 46 in Fig. 1. Die oben erwähnten Unterbrechungsanforderungen werden durch die E/A-Geräte über die Eingangssammelleitung 46 gesendet Außerdem werden Daten auf der Dateneingangssammelleitung 46 in das Α-Register eingegeben und können z. B. über die ALU 40 in den Hauptspeicher 10 übertragen werden. E/AGeräte benutzen Geräte LSRs 600, um Hauptspeicheradressen für Speicherreferenzen festzuhalten.
E/A-Geräte haben die Möglichkeit, die vollen 128 K Bytes im Hauptspeicher 10 zu adressieren, indem man eine 17. Bitposition 601 zu den E/A-Geräte-LSRs 600 hinzufügt. Diese 17. Bitposition wird durch ein E/A 64 K-Bit in dem PMRs 500 gesetzt Die Bitposition E/-A > 64 K im PMR-Steuerregister501 ist mit einem EinGlied 507. Der Inhalt des gewählten PMR kann dann in den Speicher 10 durch eine CPU-Speicherinstruktion mit OP-Code und Q-Code zum Speichern von PMRs eingegeben werden, d. h. hexadezimal 3E 1 »X«, worin »X« eine Hexadezimalzahl 0 oder 8-Fist
Der Zustand des gespeicherten PMR-lnhaltes kann dann durch zusätzliche Instruktionen zur Ausführung logischer Operationen in bekannter Art analysiert werden. Zwei separate Instruktionen· sind erforderlich, um
!0 das 17. Bit eines E/A-Geräte-LSR zu speichern und somit kann eine Unterbrechung zwischen den beiden Instruktionen auftreten. Dadurch werden jedoch keine Probleme geschaffen, weil jede Unterbrechungsstufe ihr zugehöriges PMR 500 über die UND-Glieder 772 und das ODER-Glied 774 in Fig.2 wählt. Wenn also nach einer Abfrageinstruktion und bevor der Inhalt des aktiven PMR 500 in den Hauptspeicher gespeichert wurde, eine Unterbrechung auftritt, zerstört oder verändert keine andere Unterbrechung den inhalt des zu
gang des UND-Gliedes 531 in Fig.2 der E/A-LSRs 20 speichernden PMR, weil die Unterbrechung ihr eigenes Bit 17 Logik 530 verbunden. Dieses UND-Glied hat PMRSOOwählt. ebenfalls Eingänge zum Empfang des Signales LIO INSTR, eines EB-Zyklussignales und eines jeden Signales E/A LSR SEL. Wenn alle Eingangsbedingungen für das UND-Glied 531 erfüllt sind, wird die Position 601 25 eines Geräte-LSR 600 über das ODER-Glied 536 auf Eins oder Null gesetzt, abhängig von der Bitbedingung in der Bitposition E/A > 64 K des Registers 501.
Position 601 eines E/A-Geräte-LSR 600 wird ebenfalls eingeschaltet, wenn die Adresse für ein E/A-Gerät eine 64 K Grenze während der Adreßerhöhung des E/ A-Geräte-LSR überschreitet. Das Überschreiten der 64 K Grenze wird durch Anlegen des Ausganges der Position 601 an die Polaritätshalteschaltung 532 erkannt, die durch ein ungerades CD-Signal eingeschaltet oder gepulst wird. Die Ausgabe der Polaritätshalteschaltung 532 wird an das Antivalenzglied 533 zusammen mit einem binären A-Vergleichersteuersignal von der Steuerung 80 angelegt. Die Ausgabe der Antivalenzschaltung 533 speist die Antivalenzschaltung 534, die auch ein binäres Übertragsignal empfängt. Die Ausgabe der Antivalenzschaltung 534 wird an das UND-Glied 535 geleitet, welches durch ein 8er-Taktsignal vorbereitet wird. Die Antivalenzschaltungen 533 und 534 Bevorrechtigter Betrieb
Mit dem bevorrechtigten Betrieb wird eine wirksame Multiprogrammierung des Computersystems sichergestellt. Um die CPU-Zeit maximal zu nutzen, wenn ein Benutzerprogramm auf den Abschluß einer E/A-Operation wartet, wird die Nutzung der CPU inzwischen einem anderen Benutzerprogramm übertragen. Um auf diese Weise zu arbeiten, muß das Überwachungsprogramm E/A-Kommandos abgeben, so daß ein Benutzerprogramm keine E/A-Kommandos abgeben kann, die das System in einen Wartezustand auf den Abschluß der E/A-Operation versetzt. Der bevorrechtigte Betrieb stellt sicher, daß kein Benutzer E/A-Kommandos abgeben kann, indem E/A-Kommandos nicht ausführbar gemacht werden, während die Steuerung beim Benutzerprogramm liegt.
Der bevorrechtigte Betrieb wird wirksam, wenn das aktive Programmbetriebsartenregister PMR 500 und danach das Register 501 ein ler-Bit in der Bitposition 5 des Registers hat. Im bevorrechtigten Betrieb sind alle Instruktionen ausführbar. Alle E/A-Kommandos sind
funktionieren als ein 1 Bit große ALU, die auf Überträ- 45 bevorrechtigt, weil sie nur im bevorrechtigten Betrieb
ge aus der werthohen Position in die Einstellposition 601 über das UND-Glied 535 und das ODER-Glied 536 in eine Bitstellung reagiert, die der Bitstellung entgegengesetzt ist, in der sie sich vor der Adreßerhöhcng beausgeführt werden können. Das Überwachungsprogramm arbeitet im bevorrechtigten Betrieb und die nicht bevorrechtigten Benutzerprogramme fordern das Überwachungsprogramm zur Abgabe von E/A-Kom-
fand. Die Speicheradresse kann also die 64 K Grenze in 50 mandos auf. Das Benutzerprogramm teilt seine Bediejeder Richtung überschreiten. nungsanforderungen dem Uberwachungsprogramm mit
55
Die Bitstellung in Position 601 des E/A-Geräte-LSR kann in ein PMR 500 gesetzt werden mittels einer Abfrageinstruktion SNS. Wenn eine SNS-Instruktion gegeben wird, wird ein Signal SNS INST an das UND-Glied 542 in F i g. 2 angelegt, welches außerdem als Eingänge ein E/A-LSR-Wahlsignal und ein EB-Zyklussignal empfängt. Die Ausgabe des UND-Glied 542 wird an die UND-Glieder 503 und 541 angelegt. Das UND-Glied 503 steuert das Laden der PMRs 500, wogegen das UND-Glied 541 die Dateneingabe in die Position Bit 4 des gewählten PMR 500 steuert. Das UND-Glied 503 wird durch ein 4cr-Taktsignal eingeschaltet. Das UND-Glied 542 liefert das Leitsignp.l für das UND-Glied 541 und das zuleitende Signal kommt von der Position 601 eines gewählten E/A-Gerälc-LSR. Das durch das UND-Glied 541 geleitete Signal gelangt in die Bitposition 4 des gewählten PMR 500 über das ODER-einer CPU-Kommandoinstruktion mit, die einen OP-Code von hexadezimal FA und einen Q-Code von hexadezimal 10 hat, die in einer Überwachungsaufrufinstruktion SVC resultieren. Eine SVC-Instruktion schaltet das System auf die immer bevorrechtigte Unterbrechungsstufe 0 um. Die Routine der Unterbrechungsstufe 0 ist ein Teil des Überwachungsprogrammes und kann Benutzeranforderungen verarbeiten, weil sie bevorrechtigt ist. Die vier werthohen Bits und die vier wertniederen Bits des hexadezimalen OP-Code F 4 werden durch die Komniandoforniatlogik 800 und die CCP-Decodierlogik 810 in F i g. 5 decodien zu Ausgangssignalen an das UND-Glied 815. Das UND-Glied 815 empfangt hr) auch einen Eingang von der "ADecodierlogik 820. die ein Alisgangssignal abgibt, wenn die vier wertniederen Bits des Q-Code im Q-Register60 alle null sind.
Die Ausgabe des UND-Gliedes 815 zeigt eine CPU-
Kommandoinstruktion CCP an und wird an die UND-Glieder 823 und 824 angelegt. Das UND-Glied 824 liefert ein Ausgabesignal SVC INST, wenn der SVC-Decodierer 822 erkennt, daß die ν er werthohen Bits des O-Codes 0001 sind. Das Signal SVC INST wird an das UND-Glied 830 in Fig.4 zusammen mit einem IR-Signal und einem 5er-Taktsignal angelegt. Der Ausgang des UND-Gliedes liefert eine Eingabe an das UND-Glied 833, welches die Einstellung der Unterbrechungsanforderungsverriegelung 834 für die Stufe 0 steuert. Der andere Eingang zum UND-Glied 833 kommt vom Inverter 831, der die 6 Bit Ausgabe der ALU-Sammelleitung 41 invertiert. Die Verriegelung 834 wird unter Steuerung des UND-Gliedes 832 zurückgestellt, welches Eingänge vom UND-Glied 830 und vom Bit 6 der ALU-Sammelleitung 41 empfängt. Der Ausgang der Anforderungsverriegelung 834 ist mit der Polaritätshalteschaltung 701 des Unterbrechungspriorilätsregisters 700 in F i g. 6 verbunden.
Eine CPU-Kommandoinstruktion mit einem Q-Code, der eine SVC-lnstruktion anzeigt, aktiviert also die Unterbrechungsstufe 0, vorausgesetzt, daß der R-Code während des IR-Zyklus in der Bitposition 6 ein O-Bit hat. Diese Unterbrechungsstufe wählt dann ihr zugehöriges PMR 500 in der oben beschriebenen Art. Das gewählte PMR 500 hat seine eigenen Bitbedingungen für die Adreßübersetzung, E/A > 64 K, für den bevorrechtigten Betrieb, den Speicherschutz und die maskierte Unterbrechung. Die Unterbrechungsstufe 0 wird zurückgestellt, indem man einen R-Code so vorsieht, daß das ALU-Bit 6 während des IR-Zyklus auf Eins steht. Der R-Code ist Teil der vom Hauptspeicher 10 kommenden Instruktion und läuft durch die ALU 40, nachdem er vom Speicher 10 abgerufen wurde. Er steht somit zur Unterstützung bei der Einstellung und Rückstellung der Verriegelung 834 zur Verfugung.
Mit der Programmprüfungsunterbrechungsfunktion wird eine wirksame Mulliprogrammierung des Computersystems sichergestellt. Wenn ein Benutzer einen Fehler macht, braucht nicht das ganze System gestoppt zu werden, sondern die Steuerung wird einem anderen Benutzer übergeben. Die Programmprüfungsunterbrechungsstufe 7 wird außerdem durch die CPU-Kommandoinstruktion gesteuert, in der gemäß Darstellung in Fig. 5 die werthohen Bits des Q-Code 0010 sind. Die Programmprüfungs-Decodierlogik 821 reagiert auf die Bitbedingungen und liefert ein Signal an das UND-Glied 823, welches durch das Signal CCP INST vom UND-Glied 815 vorbereitet wird. Das UND-Glied 823 liefert ein Ausgabesignal PROGCK INST an das UND-Glied 850 in Fig.4, um die Unterbrechungsanforderungsverriegelung 851 für die Stufe 7 zurückzustellen. Das UND-Glied 850 empfängt als Eingänge außerdem das IR-Zyklussignal, ein 5er-Taktsignal und ein Signal vom Bit 6 der ALU-Sammelleitung 41. Obwohl das ALU-Bit 6 auch zur Rückstellsteuerung der Unterbrechungsanforderungsverriegelung 834 für die Stufe 0 verwendet wird, gibt es hier keine Überschneidungen, weil die jeweilige CPU-Kommandoinstruktion d. h. SVC INST oder PROG CK INST festlegt, ob die Verriegelung 834 oder die Verriegelung 851 zurückgestellt werden.
Die Verriegelung 851 wird zur Taktzeit 8 unter Steuerung des UND-Gliedes 849 verriegelt. Das UND-Glied 849 wird vom ODER-Glied 845 gespeist, welches ungültige Bedingungen oder Fehler, die eine Programmprüfunterbrechung verursachen, darstellende Signale empfängt. Im verriegelten Zustand aktiviert die Verriegelung 851 die Unterbrechung der Stufe 7 dadurch, daß ihr eingeschalteter Ausgang mit der Polaritätshalteschaltung 706 des Unterbrechungsprioritätsregisters 700 in Fig.6 verbunden ist. Die Unterbrechungsstufe 7 hat die Unterbrechungen mit der höchsten Priorität und Vorrang gegenüber allen Unterbrechungen.
Die Ungültigkeits- oder Fehlerbedingungen zur Aktivierung der Programmprüfunterbrechungsstufe 7 werden durch die UND-Glieder 843, 844, 846, 847 und die ίο Decodierlogik 848 erkannt. Das UND-Glied 843 leitet bei Einschaltung durch den I-OP-Zyklus ein Signal, welches einen ungültigen OP-Code als durch die Decodierlogik 840 erkannt anzeigt. Die Decodierlogik 840 reagiert auch auf OP-Codes, die bevorrechtigte Instruktionen bezeichnen, und gibt ein Signal an das UND-Glied 842. Dieses liefert ein Ausgabesignal an das UND-Glied 844, wenn das Vorrechtsbetriebsbit im aktiven PMR 500 eine Null ist. Der Inverter 841 invertiert die Null dieses Vorrechtsbetriebsbits des aktiven PMR 500 und schaltet damit das UND-Glied 842 ein. Das UND-Glied 844 wird durch das l-OP-Zyklussignal leitend geschaltet.
Die Decodierschaltung 840 liefert auch ein Speicherdatengruppensignal an das UND-Glied 847, welches ein Schreibverletzungssignal an das ODER-Glied 845 und an die Schaltung zum Sperren des Schreibvorganges neuer Daten in den Hauptspeicher 10 gemäß Beschreibung in der Quelle 2 leitet. Das UND-Glied 847 empfängt als Eingänge auch für das Speicherschutzbetriebsbit vom aktiven PMR 500 über das PMR-Steuerregister 501 ein Signal Nicht-E/A-Zyklus- ein EB-Zyklussignal und das Schreibschutzbitsignal vom gewählten Adreßübersetzungstabellenregister 550.
Abrufverletzungen werden durch das UND-Glied 846 erkannt, welches als Eingänge Signal von der Spei cherschutzbitposition des aktiven PMR 500 über das PMR-Steuerregister 501, das Abrufschutzpositionsbit des gewählten Adreßübersetzungstabellenregisters 550 und ein Signal Nicht-E/A-Zyklus empfängt. Das von dem UND-Glied 846 geleitete Abrufverletzungssignal wird nicht nur an das ODER-Glied 845 angelegt, sondern auch zur Zugriffssperre zur adressierten Speicherposition im Hauptspeicher 10 verwendet.
Eine ungültige Adreßbedingung wird durch die Decodierlogik 848 erkannt, die das ungültige Adreßsignal an das ODER-Glied 845 leitet. Die Decodierschaltung 848 reagiert auf Bits auf der Sammelleitung 576 und ein Spcichergrößensignal und entwickelt das ungültige Adreßsignal. Die ungültige Adreßbedingung und das Prüfprogramm für den ungültigen OP-Code stehen gegenwärtig in dem in der Quelle 1 beschriebenen Computcrsystem zur Verfügung, obwohl sie dort keine Programmprüfung auslösen, sondern das System zu einem abrupten Stillstand bringen.
Das einschaltende Ausgangssignal der Verriegelung 951 wird an das UND-Glied 852 angelegt, um ein Operationsendsignal zur Taktzeit 0 mit einem M/C-Vorschaltsignal zu erzwingen. Das erzwungene OP-Endsignal wird an das ODER-Glied 738 in Fig.6 angelegt, um sicherzustellen, daß die Unterbrechungsstufe 7 bO durch das Maskierungsunterbrechungsbit nicht maskiert werden kann.
Über den Einschaltausgang der Verriegelung 851 wird auch das Laden des Programmprüfadreßregisters 870 und des Programmprüfstatusregisters 860 in F i g. 1 b5 gesteuert. Das Programmprüfadreßregister 870 wird geladen, wenn die Verriegelung 851 verriegelt ist, mit den unteren 16 Bits der 17 Bits auf der Sammelleitung 576. Das 17. Bit der Hauptspeicheradresse auf der Sani-
meileitung 576 wird in das Programmprüfregister 860 zusammen mit dem Programmprüfsteuerbit und dem Fehlerstatusbit gesetzt, die von den UND-Gliedern 843, 844, 846, 847 und der Decodierschaltung 848 in Fig.4 kommen. Der Inhalt des Programmprüfstatusregisters 860 und des Programmprüfadreßregisters 870 kann im Hauptspeicher 10 über die Sammelleitung 880, das A-Register 45, die ALU 40 und das Datenspeicherregister 30 gespeichert werden. Nachdem der Inhalt dieser Register gespeichert worden ist, kann mit Programmroutinen die Bitstellungen der gespeicherten Daten untersuchen.
Aus der obigen Beschreibung geht hervor, daß die CPU-Kommandoinstruktion mit einem OP-Code von hexadezimal F4 und einem Q-Code von hexadezimal 10 die Operation auf die Unterbrechungsstufe 0 umschaltet, damit das Überwachungsprogramm die Steuerung übernehmen kann. Das Ein- und Ausschalten in die bzw. aus der Unterbrechungsstufe 0 wird durch den R-Code während eines IR-Zyklus bestimmt. Eine CPU-Kommandoinstruktion mit dem hexadezimalen OP-Code F 4 und dem hexadezimalen Q-Code 20 schaltet die Operation aus der Unterbrechungsstufe 7 aus. Die Unterbrechungsstufe 7 ist aktiv, sobald eine Programmprüfung auftritt Wenn eine Programmprüfung auftritt, wird die laufende Adresse für den Hauptspeicher auf der Sammelleitung 576 in einem Programmprüfadreßregister 870 und die Statusinformation im Programmprüfstatusregister 860 gespeichert. Diese Information wird dann in den Hauptspeicher 10 gespeichert, so daß sie vom Programm analysiert werden kann. Der Betrieb des Computersystems läuft weiter mit der Abgabe einer CPU-Kommandoinstruktion zum Ausschalten aus der Unterbrechungsstufe 7.
Speicherschutz
Mit dem Speicherschutz wird verhindert, daß ein Benutzerprogramm den Inhalt eines anderen Benutzerprogrammes oder des Überwachungspiogramtnes verändert oder zerstört. Ob der Speicherschutz wirksam ist oder nicht, wird bestimmt durch die Stellung des Bits 6 in den PMRs 500. Wenn dieses Bit des aktiven PMR 500 eine Eins ist, ist der Speicherschutz wirksam. Ob ein Bereich im Speicher 10 geschützt ist oder nicht, wird bestimmt durch die BitsO und 1 in dem gewählten Adreßübersetzungstabellenregister 550. Bit 0 ist der Abrufschutzschlüssel, der das Lesen von Daten aus dem Speicher 10 im Speicherschutzbetrieb verhindert. Bit 1 ist der Schreibschutzschlüssel, der das Schreiben von Daten in den Speicher 10 im Speicherschutzbetrieb verhindert.
Das Abrufschutzsignal wird durch das UND-Glied
846 in F i g. 4 entwickelt. Als Eingänge empfängt es das Speicherschutzsignal vom aktiven PMR 500 über das PMR-Steuerregister 501, das Abrufschutzbitsignal von dem gewählten Adreßübersetzungstabellenregister 550 und ein Signal Nicht-E/A-Zyklus von der Steuerung 80. Die Ausgabe des UND-Gliedes 846 ist ein Abrufverletzungssignal, mit dem der Zugriff zum Speicher 10 gesperrt wird, indem man das in der Quelle 2 erwähnte Signal SDR XFER steuert. Das Schrcibschutz- oder Schieibvcrlet/iingssignal wird durch das UND-Glied
847 entwickelt. Dieses hat Eingänge vom Decodierer 840, der Speicherschutzbitposition des Registers 501, der Schreibschutzbitposition des gewählten Adreßübersetzungstabellenregisters 550, und als Eingangssignale das EB-Zyklussignal und das Signal Nicht-E/A-Zyklus.
Mit dem Ausgangssignal des UND-Gliedes 847 wird das Schreiben von Daten in den Speicher 10 gesperrt, indem man das in der Quelle 2 erwähn;e GRP-Speicherdatensignal steuert.
Maskenunterbrechung
In einigen Fällen muß eine Unterbrechung mit höherer Priorität zurückgehalten werden, ausgenommen ist
to die Unterbrechungsstufe 7 mit höchster Priorität Das Überwachungsprogramm benutzt z. B. die unterste Unterbrechungsstufe und es gibt Zeiten, wenn das Überwachungsprogramm die Steuerung übernehmen muß und nur durch die Programmprüfung unterbrochen werden darf. Der maskierte Unterbrechungsbetrieb wii d gesteuert durch das Bit 7 des in F i g. 2 gezeigten Programmbetriebsarien-Steuerregisters 501, welches für diese Bitposition direkt von der ALU-Sammelleitung 41 geladen wird. Das Bit 7 des Registers 501 wird direkt von der ALU-Sammelleitung 41 geladen, um eine Registerverzögerungszeit für das Laden des PMR-Steuerregisters 501 zu vermeiden. Wenn eine Unterbrechung ausmarkiert ist, muß die Maske aktiv sein, bevor ein 1-OP-Zyklus beginnt, sonst kann eine Unterbrechung auftreten. Die Bits 1 —6 des Registers 501 werden zur Taktzeit 0 des I-OP-Zyklus geladen, die zu spät liegt, um Unterbrechungen noch maskieren zu können. Das Unterbrechungsmaskenbit wird direkt in das PMR-Steuerregister 501 geladen und steht somit von der EB-Taktzeit 5 bis zur EB-Taktzeit 5 einer PMR-Ladeinstruktion zur Verfügung, die das Bit 7 abschaltet. Das Unterbrechungsmaskenbit wird an den Inverter 736 in Fig.6 angelegt, um das UND-Glied 737 zu sperren. Dadurch wird verhindert, daß der Zustand der Polari-
J5 tätshalteschaltungen 751—758 verändert wird und somit bleibt der Betrieb in der laufenden oder aktiven Unterbrechungsstufe. Wenn das Maskenunterbrechungsbit eine Null ist, wird das UND-Glied 737 natürlich durch den Inverter 736 vorbereitet und Unterbrechungen höherer Priorität können den Zustand der Polaritätshalteschaltungen 751 —758 umschalten.
Hierzu 7 Blatt Zeichnungen

Claims (8)

Patentansprüche:
1. Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen, von denen jeweils nur eine aktiv ist. wobei die einzelnen zu verarbeitenden Benutzerprogramme im Hauptspeicher der Anlage gespeichert und gegen unzulässigen Zugriff geschützt sind, dadurch ge- ίο kennzeichnet, daß jeder Programmunterbrechungs-Prioritätsstufe ein Programn.betriebsartregister (PMR 500) zugeordnet ist, dessen Bitstellen, abhängig von jeweils bestimmten Betriebsarten, verschiedene Adressierungs- und Instruktionsausführungseinrichtungen (510,530,550,45) der Anlage auswählen und steuern (Register 501, Fig.2a), und daß eine Auswahleinrichtung (Fig.6) vorgesehen ist. die aufgrund eines empfangenen Programmunterbrechungssignales (Leitung 46) das der aktivierten Programmunterbrechungs-Prioritätsstufe zugeordnete Programmbetriebsartregister auswählt.
2. Anlage nach Anspruch 1, dadurch gekennzeichnet, daß eine Bitstelle in jedem Programmbetriebsartregister (500), die Durchführung einer Adressen-Übersetzungs-Betriebsart angibt, wobei die Adressenübersetzung während eines Operationsausführungszyklus eines Instruktionszyklus stattfindet.
3. Anlage nach Anspruch 1, dadurch gekennzeichnet, daß eine Bitstelle in jedem Programmbetriebsartregister(SOO) die Durchführung einer Ein/Ausgabe-Betriebsart angibt, wobei Zugriffe zum Hauptspeicher in einem erweiterten Teil des Hauptspeichers stattfinden.
4. Anlage nach Anspruch 3, dadurch gekennzeich- J5 net, daß Ein/Ausgabe-Adreßregister (600) mit einer Vielzahl von Bitstellen vorgesehen sind, die von Ein/ Ausgabe-Steuereinheiten (80) bei der Adressierung des Hauptspeichers gesetzt werden, wobei eine Adressenerweiterungs-Bitstelle (601) in den Ein/ Ausgabe-Adreßregistern die Erweiterung des Hauptspeichers betrifft.
5. Anlage nach Anspruch 4, dadurch gekennzeichnet, daß die Bitstelle in jedem Programmbetriebsartregister (500), welche die Durchführung einer Ein/ 45 s Ausgabe-Betriebsart angibt, auf den Wert des Bits in der Adressenerweiterungsbitstelle gesetzt wird.
6. Anlage nach Anspruch 2, gekennzeichnet durch eine Vielzahl von adressierbaren Adreßübersetzungsregistern (550), Bitstellen zur Bildung des hochwertigen Teiles einer Adresse zur Adressierung eines erweiterten Bereiches des Hauptspeichers enthalten, durch Einrichtungen (20, 22, 583) zur Auswahl eines Adreßübersetzungsregisters durch die hochwertigen Bits (22) einer angelegten Speicheradresse (SAR 20), sowie durch Übersetzungslogikeinrichtungen (510), welche durch die Bitstelle des ausgewählten Programmbetriebsartregisters, die die Durchführung der Adressenübersetzungs-Betriebsart angibt, in Tätigkeit gesetzt werden und die hoch- t>o wertigen Adressenbits vom ausgewählten Adreßübersetzungsregisler zu einem Hauptspeicheradressenregister (575) zur Adressierung des Hauptspeichers zusammen mit den niederwcrtigen Bits (23) der angelegten Speicheradresse weiterleiten (UND- br> Glied 570), wobei bei inaktiver Adressenübersetzungs-Betriebsart die hochwertigen Bits (22) zusammen mit den niederwertigen Bits (23) der angelegten Speicheradresse zur Adressierung des Hauptspeichers verwendet werden.
7. Anlage nach Anspruch 6. dadurch gekennzeichnet, daß in den Adreßübersetzungsregistern (550) Bitstellen zur Speicherung von Lese- und Schreibspeicherschutzbits vorhanden sind.
8. Anlage nach Anspruch 1, dadurch gekennzeichnet, daß eine Bitstelle in jedem Programmbetriebsartregister (500) die Durchführung einer maskierten' Programmunterbrechung angibt, wobei abhängig von dieser Bitstelle die Auswahl einer Programmunterbrechungs-Prioritätsstufe verhindert wird und die Anlage in der vorher ausgewählten Programmunterbrechungs- Prioritätsstufe weiterarbeitet.
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 DE2416609A1 (de) 1974-11-14
DE2416609C2 true DE2416609C2 (de) 1984-08-30

Family

ID=23399697

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2416609A Expired DE2416609C2 (de) 1973-04-30 1974-04-05 Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen

Country Status (6)

Country Link
US (1) US3828327A (de)
JP (1) JPS5423544B2 (de)
CA (1) CA1012650A (de)
DE (1) DE2416609C2 (de)
FR (1) FR2227577B1 (de)
GB (1) GB1440695A (de)

Families Citing this family (33)

* 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
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4037207A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation System for controlling address keys under interrupt conditions
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
US4638426A (en) * 1982-12-30 1987-01-20 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence
US4757533A (en) * 1985-09-11 1988-07-12 Computer Security Corporation Security system for microcomputers
JPH0731609B2 (ja) * 1985-09-18 1995-04-10 日本電気株式会社 Vmモード変更装置
JP3023425B2 (ja) * 1987-10-09 2000-03-21 株式会社日立製作所 データ処理装置
US5201043A (en) * 1989-04-05 1993-04-06 Intel Corporation System using both a supervisor level control bit and a user level control bit to enable/disable memory reference alignment checking
US5764969A (en) * 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
US6724554B1 (en) 1995-03-10 2004-04-20 Iomega Corporation Read/write protect scheme for a disk cartridge and drive
US5644444A (en) * 1995-03-10 1997-07-01 Iomega Corporation Read/write protect scheme for a disk cartridge and drive
US5925109A (en) * 1996-04-10 1999-07-20 National Instruments Corporation System for I/O management where I/O operations are determined to be direct or indirect based on hardware coupling manners and/or program privilege modes
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
FR2775370B1 (fr) 1998-02-20 2001-10-19 Sgs Thomson Microelectronics Procede de gestion d'interruptions dans un microprocesseur
US7539828B2 (en) * 2000-08-08 2009-05-26 Faronics Corporation Method and system for automatically preserving persistent storage
US6842803B2 (en) 2001-07-09 2005-01-11 Advanced Micro Devices, Inc. Computer system with privileged-mode modem driver
US7185183B1 (en) 2001-08-02 2007-02-27 Mips Technologies, Inc. Atomic update of CPO state
US7181600B1 (en) * 2001-08-02 2007-02-20 Mips Technologies, Inc. Read-only access to CPO registers
US7634638B1 (en) * 2002-10-22 2009-12-15 Mips Technologies, Inc. Instruction encoding for system register bit set and clear
US8521969B2 (en) * 2006-10-11 2013-08-27 Intel Corporation Apparatus and method for directing micro architectural memory region accesses
JP5395838B2 (ja) * 2011-03-25 2014-01-22 株式会社東芝 マルチコアシステム
CN104111866A (zh) * 2013-04-18 2014-10-22 鸿富锦精密工业(深圳)有限公司 中断控制系统和方法

Family Cites Families (16)

* 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
BE634161A (de) * 1962-07-03
DE1181461B (de) * 1963-10-08 1964-11-12 Telefunken Patent Adressenaddierwerk einer programm-gesteuerten Rechenmaschine
US3473155A (en) * 1964-05-04 1969-10-14 Gen Electric Apparatus providing access to storage device on priority-allocated basis
US3373408A (en) * 1965-04-16 1968-03-12 Rca Corp Computer capable of switching between programs without storage and retrieval of the contents of operation registers
US3398405A (en) * 1965-06-07 1968-08-20 Burroughs Corp Digital computer with memory lock operation
FR1455163A (fr) * 1965-06-18 1966-04-01 Cie Francaise Philips Sélecteur de priorité pour machine à calculer fonctionnant en temps réel
US3395392A (en) * 1965-10-22 1968-07-30 Ibm Expanded memory system
FR1567705A (de) * 1967-06-09 1969-04-08
US3560935A (en) * 1968-03-15 1971-02-02 Burroughs Corp Interrupt apparatus for a modular data processing system
US3599162A (en) * 1969-04-22 1971-08-10 Comcet Inc Priority tabling and processing of interrupts
US3701977A (en) * 1969-10-27 1972-10-31 Delaware Sds Inc General purpose digital computer
US3614740A (en) * 1970-03-23 1971-10-19 Digital Equipment Corp Data processing system with circuits for transferring between operating routines, interruption routines and subroutines
US3740722A (en) * 1970-07-02 1973-06-19 Modicon Corp Digital computer
US3676852A (en) * 1970-07-20 1972-07-11 Ibm Multiple program digital computer
JPS4930578B1 (de) * 1970-09-30 1974-08-14

Also Published As

Publication number Publication date
FR2227577A1 (de) 1974-11-22
GB1440695A (en) 1976-06-23
US3828327A (en) 1974-08-06
CA1012650A (en) 1977-06-21
FR2227577B1 (de) 1976-06-25
DE2416609A1 (de) 1974-11-14
JPS5011144A (de) 1975-02-05
JPS5423544B2 (de) 1979-08-14

Similar Documents

Publication Publication Date Title
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
DE2722099C2 (de)
DE2515696C2 (de) Datenverarbeitungssystem
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
EP0011685B1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
DE2456578C2 (de) Datenverarbeitungsanlage
DE2517276A1 (de) Datenverarbeitungssystem
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2417795C2 (de) Datenverarbeitungsanlage
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE2458065A1 (de) Datenverarbeitungsanlage mit sicherung der daten gegen unberechtigten zugriff
DE2719253A1 (de) Schnittstellenschaltung fuer datenverarbeitungsanlagen
DE2714805A1 (de) Datenverarbeitungssystem
CH619309A5 (de)
DE2758152A1 (de) Speicherschutzanordnung
DE2251876B2 (de) Elektronische datenverarbeitungsanlage
CH623947A5 (de)
DE2317870A1 (de) Programmgesteuertes unterbrechungssystem fuer ein- und ausgabe in einem digitalen rechenwerk
DE2755616A1 (de) Asymmetrischer multiprozessor
DE2054835A1 (de) Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE1474063A1 (de) Datenverarbeitungsanlage
DE2617127A1 (de) Mehrfachprogramm-datenverarbeitungssystem
DE2364323C2 (de) Verfahren zur Behandlung von Unterbrechungsbedingungen in einer Datenverarbeitungsanlage
DE4238099C2 (de) Mikroprozessor mit mehreren Betriebsmoden

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