DE2437200C2 - Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise - Google Patents

Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise

Info

Publication number
DE2437200C2
DE2437200C2 DE2437200A DE2437200A DE2437200C2 DE 2437200 C2 DE2437200 C2 DE 2437200C2 DE 2437200 A DE2437200 A DE 2437200A DE 2437200 A DE2437200 A DE 2437200A DE 2437200 C2 DE2437200 C2 DE 2437200C2
Authority
DE
Germany
Prior art keywords
memory
control
data
bit
word
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
DE2437200A
Other languages
English (en)
Other versions
DE2437200A1 (de
Inventor
Frank Joseph Springfield Pa. Perpiglia
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.)
Unisys Corp
Original Assignee
Burroughs 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 Burroughs Corp filed Critical Burroughs Corp
Publication of DE2437200A1 publication Critical patent/DE2437200A1/de
Application granted granted Critical
Publication of DE2437200C2 publication Critical patent/DE2437200C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0748Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

Gegenstand der Erfindung ist eine Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise nach dem Oberbegriff des Patentanspruchs 1.
Es ist eine Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise aus der US-PS 34 11 139 mit mehreren mit einem Hauptspeicher mit Mehrfach-Zugriff verbundenen Speichermodulen, mehreren Hauptprozessormodulen und mehreren Eingabe- und Ausgabemodulen bekannt, die über zusätzliche Kommunitationseinheiten mit den mehreren Speichermoduien des Hauptspeichers in Verbindung stehen. Die bekannte Datenverarbeitungsanlage enthält somit mehrere Funktionsmodule, die wiederum in einzelne Einheiten unterteilt sind, wobei jedes der Funktionsmodule in der Lage ist, die für die Datenverarbeitung notwendigen Schritte selbständig und unabhängig von anderen Modulen durchzuführen. Durch die Verwendung modular aufgebauter Steuerprogramme wird eine modulare Software erreicht, die in Verbindung mit der modularen Hardware eine parallele Datenverarbeitung auf verschiedenen Ebenen gestattet. Dadurch kann eine Anzahl von einander unabhängiger Prozesse mehreren Prozessoren zugeordnet werden. Die bekannte Datenverarbeitungsanlage enthält jedoch kein Serviceprogramm, so daß bei Ausfall eines der Module eine Reduzierung der Funktion der gesamten Datenverarbeitungsanlage auf die verbleibenden Module erfolgen muß, so daß die Anlage und ihre Funktion beeinträchtigt ist und nur noch einen Teil der parallelen Datenverarbeitungsprozesse durchführen
Aus der Literaturstelle »Parallelism in Hardware and Software«, Harold Lorin, Prentice-Hall Inc., 1972, Seiten 335—340, ist ein modulares Multiprozessorsystem bekannt, das aus mehreren Speichermodulen, Haupiprozessormodulen sowie Eingabe- und Ausgabemodulen besteht und bei dem zusätzlich jedem Modul eine Einrichtung zur Wahrnehmung und Meldung von Fehlern innerhalb dieses Moduls zugeordnet ist. Dadurch ist die parallele Verarbeitung mehrerer getrennter Prozesse bei voll funktionsfähiger Anlage und eine Erhöhung der Redundanz für den Ausfall von Teilen der Multiprozessoranlage verbunden. Die Modulbauweise gestattet es, bei Auftreten eines Fehlers das betreffende Modul zu isolieren und zur Fehlerbeseitigung in einfacher Weise auszutauschen. Darüber hinaus ermöglicht eine Erhöhung der Redundanz durch zusätzliche Module in Verbindung mit einem geeigneten Steuerprogramm im Fehlerfall Umgehungspfade um das gestörte Modul aufzubauen, wobei das
o5 fehlerhafte Modul identifiziert und nach außen gemeldet wird. Durch entsprechende Umadressierung kann ein weitgehend ungestörter Betrieb auch bei Ausfall eines Moduls gewährleistet werden, indem neue Datenpfade geschaltet werden, die in gewissem Umfang auch einen weiteren parallelen Betrieb ermöglichen.
Aus der US-PS 36 23 011 ist eine Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise
mit mehreren Prozessoreinheiten, Programmspeichereinheiten, variablen Speichereinheiten und Eingabe/Ausgabeeinheiten bekannt, die mehrere unabhängige Datenverarbeitungssysteme ergeben. Zusätzlich ist ein Wartungs- und Diagnose-Untersystem vorgesehen, das Zugriff zu allen kritischen Elementen der Datenverarbeitungsanlage über einen Diagnose- und Wartungsbus hat und Teile der Datenverarbeitungsanlage prüft und überwacht, und Daten in die verschiedenen Elemente einschreibt bzw. ausliest so daß Fehler wahrgenommen und Systemumorganisationen vorgenommen werden können.
In der Literaturstelle »IEEE Traioactions on Computers«, volume C-19 No. 12, Dezember 1970, Seiten 1153 bis 1159 sind mehrere Verfahren zur Fehlererkennung in Steuerungs- und Datenübertragungsschaltungen beschrieben, zu denen Paritätskontrollen sowie Modulo-N Kontrollen mit Mehrbit-Kontrollworten gehören. In einem erweiterten Paritätskontrollverfahren mittels einer Modulo-N-Kontrolle können eine gerade Anzahl von Einrichtungsfehlern erkannt und das fehlerhafte Element eliminiert werden.
Aufgabe der vorliegenden Erfindung ist es, eine Mehrfachprogrammierungs-Datenverarbeitungsanlage nach dem Oberbegriff des Patentanspruchs 1 zu schaffen, bei der ein aufgetretener Fehler in einem Modul oder in mehreren Modulen schnellstmöglich erfaßt und registriert wird, das betreffende Modul oder die betreffenden Module lokalisiert werden und die Fehlerabhilfe einfach durchführbar und mit einer minimalen Rückstufung der Gesamtleistung der Datenverarbeitungsanlage verbunden ist.
Diese Aufgabe wird erfindungsgemäß durch die Kombination der Merkmale des Patentanspruchs 1 gelöst.
Mit der Mehrfachprogrammierungs-Datenverarbeitungsanlage nach der Erfindung wird sichergestellt, daß ein aufgetretener Fehler in einem Modul oder in mehreren Modulen schnellstmöglich erfaßt und registriert wird und das betreffende Modul oder die betreffenden Module lokalisiert werden. Durch die Isolation des fehlerhaften Moduls mittels eines über einen Unterbrecherkanal abgegebenen Unterbrechersignals und einem erneuten Testen des als fehlerhaft registrierten Moduls über eine Taktperiode und Rückstufung der fehlerfreien Module nur im Falle eines erneuten Auftretens des Fehlers in dem betreffenden Modul ist die Fehlerabhilfe einfach durchführbar und mit einer minimalen Rückstufung der Gesamtleistung der Datenverarbeitungsanlage verbunden.
Eine vorteilhafte Weiterbildung der Erfindung ist durch eine Einrichtung zur Korrektur aller 1· Bit-Fehler in einer mit der Speicher-Steuereinheit verbundenen Speichereinheit der Speichermodule empfangenen Information vor der Weiterleitung der Information zum Speicherbus gegeben.
Anhand eines in der Zeichnung dargestellten Ausführungsbeispieles soll der der Erfindung zugrundeliegende Gedanke näher erläutert werden. Es zeigt F i g. 1 ein Blockschaltbild einer Mehrfachprogrammierungs-Datenverarbeitungsanlage; F i g. 2 ein detailliertes Blockschaltbild der Anlage gemäß Fig. 1;
F i g. 3 ein Blockschaltbild mit Einzelheiten der in F i g. 2 dargestellten Anlage; F i g. 4 ein vereinfachtes Blockschaltbild eines Hauptprozessormoduls;
F i g. 5 ein Funktionsdiagramm eines Stapelpufferspeichers, der in dem Hauptprozessormodul nach F i g. 4 eingesetzt ist;
Fig.6 ein Funktionsdiagramm eine Stapelpufferspeichers und eines Stapelspeicherbereiches, die in dem Hauptprozessormodui nach F i g. 4 eingesetzt sind;
F i g. 7 ein Funktionsdiagramm des Betriebs eines Stapelpufferspeichers; F i g. 8 ein verallgemeinertes Funktionsdiagramm eines Puffersystems;
F i g. 9 ein verallgemeinertes Blockschaltbild einer Datenvermittlungseinheit, die in dem Hauptprozessormodul nach Fig. 4 eingesetzt ist;
F i g. 10 eine Darstellung des Formats eines Fail-Registers des Hauptprozessormoduls nach F i g. 4; F i g. 11 ein vereinfachtes Blockschaltbild der Anlage mit einem Datenvermittlungsprozessor; Fig. 12 ein Diagramm, welches die modulare Organisation eines Eingabe/Ausgabemoduls aufzeigt:
Fig. 13 eine allgemeine Darstellungeines Eingabe/Ausgabe-Untersystems;
Fig. 14 ein Diagramm, welches die Informationstransferraten des Eingabe/Ausgabemoduls nach Fig. 12 angibt;
Fig. 15 ein Funktionsdiagramm einer Jobdarstellung für den Eingabe/Ausgabemodul nach Fig. 12; Fig. 16eine Darstellung des Formatseines Hausadressen-Steuerwortes; F i g. 17 eine Darstellung des Formats eines Einheitentabelle-Steuerwortes; F i g. 18 eine Darstellung des Formats eines Eingabe/Ausgabe-Warteschlange-Kopf-Steuerwortes; F i g. 19 eine Darstellung des Formals eines Eingabe/Ausgabe-Warteschlangeschwanz-Steuerwortes; F i g. 20 eine Darstellung des Formats eines Status-Warteschlangekopf-Steuerwortes:
F i g. 21 eine Darstellung des Formats eines Eingabe/Ausgabesteuerblockes; F i g. 22 die Darstellung eines Formats eines Eingabe/Ausgabesteuerwortes;
Fig.23 ein Diagramm, in dem die Funktionsbereiche des Eingabe/Ausgabemoduls nach Fig. 12 angegeben sind;
Fig. 24ein Blockdiagramm eines Eingabe/Ausgabemoduls nach Fig. 12;
F i g. 25 ein Funktionsdiagramm einer typischen Datentransfer-Klassifikation für einen Eingabe/Ausgabemodul nach Fig. 12;
Fi g. 26 ein Funktionsdiagramm einer typischen Eingabe/Ausgabeanschlußverbindung mit dem Hauptprozessormodul nach F i g. 4 und dem Hauptspeicher des in F i g. 2 dargestellten Systems;
Fig. 27 ein Funktionsdiagramm, in dem der Daten/Fehler,-ahrnehmungsfluß des Eingabe/Ausgabemcduls nach Fig. 12 dargestellt ist; F i g. 28 ein Funktionsdiagramm, welches die Eingabe/Ausgabepfadredundanz aufzeigt; F i g. 29 ein Diagramm, welches die Modularität eines Speicheruntersystems des Systems nach F i g. 2 angibt; F i g. 30 ein Funktionsdiagramm, welches den Transfer der Datenwörter zwischen Speicher und einem Benut-
zer des Speichers wiedergibt;
Fig.31 eine Darstellung einer Anschlußverbindung zwischen einer Speichereinheit, einem Speichersteuermodul und einer Anforderungseinheit;
F i g. 32 ein vereinfachtes Blockdiagramm einer Speichersteuereinheit;
F i g. 33 ein detailliertes Blockdiagramm einer Speichersteuereinheit;
F i g. 34 eine Darstellung einer Signalanschlußverbindung zwischen der Speichersteuereinheit und einer Anforderungseinheit;
Fig.35 ein Diagramm, welches die Funktionslogik zur Fehlerwahrnehmung und -Verbesserung in einem Speichermodul angibt;
ίο Fig.36 eine Darstellung einer Daten- und Steueranschlußverbindung zwischen einer Speichersteuereinheit und einer Speichereinheit;
F i g. 37 ein Diagramm, welches die Verschachtelung der Speichereinheiten zeigt;
F i g. 38 ein Blockdiagramm einer Speichereinheit;
F i g. 39 den zeitlichen Verlauf der Signale für einen Speicherlogikmodul;
F i g. 40 den zeitlichen Verlauf der Signale eines Speichermoduls;
F i g. 4Ί ein Biockdiagramin des Takigebersysterns;
F i g. 42 ein vereinfachtes Blockdiagramm des mehrstufigen Operationssystems, und
F i g. 43 eine Darstellung des Formats des Ausfall-Registers des Eingabe/Ausgabemoduls nach Fig. 12.
Die in Fig. 1 dargestellte Mehrfachprogrammierungs-Datenverarbeitungsanlageenthält Plattenspeicher, geschützte Plattendateien, Duplizierregister und Fehleranweisungen für die in der Anlage verwendeten Programmiersprachen höherer Ebene. Die den Einrichtungen der Anlage zugeordneten Plattenspeicher erlauben es dem Benutzer, die physikalische Zuordnung seiner kritischen Plattendateien zu spezifizieren, um die Erhaltung und Rekonstruktion dieser Dateien zu erleichtern. Die geschützten Plattendateien erlauben es dem Benutzer, Zugriff zum letzten Teil der in einen Speicher eingeschriebenen gültigen Daten vor einem unerwarteten Systemstopp zu erlangen. Die Verwendung von Duplizierregistern erfolgt, um Plattendateifehler zu vermeiden. Das mehrstufige Operationssystem hält mehr als eine Kopie jeder Zeile der Plattendatei; sofern ein Zugriff zu einem Datensatz nicht zu erreichen ist, wird daher versucht, Zugriff zur Kopie dieses Datensatzes zu erlangen. Durch die Verwendung von Fehleranweisungen kann der Benutzer die Ereignisse festsetzen, die durch sein Programm hervorgerrufen werden sollen, falls bestimmte Fehler auftauchen.
Physikalisch fallen die Komponenten der Anlage in drei Kategorien. Die erste Kategorie enthält die Hauptkomponenten der Anlage, insbesondere die Hauptprozessormoduln 20, die Eingabe/Ausgabemoduln 10, die Speichermoduln 30a, die zusammen den Hauptspeicher 30 darsteilen, die Diagnose-Einheiten 26 und die Operatorkonsole 27.
Die zweite Kategorie enthält die peripheren Steuereinrichtungen 38 und Vermittlungseinrichtungen, den Plauendateioptimierer 40,den Datenvermittlungsprozessor 36 und Wechselspannungsversorgungen.
Die dritte Kategorie enthält periphere Standardeinrichtungen, die an das zentrale System mittels bekannten Steuereinrichtungen, Adaptoren, Vermittlungseinrichtungen und bekannten, von fern anschließbaren Einrichtungen verbunden sind, die an das zentrale System über Leitungsadaptoren und die Datenvermittlungsprozessoren 36 angeschlossen sind.
Die Anordnung der Komponenten dieser drei Kategorien in einer Anlage und der Umfang dieser Anlage hängt von dem Verwendungszweck und der Aufgabenstellung des Benutzers ab. In den folgenden Abschnitten soll die maximale und die typische Ausstattung der Anlage mit vollständigen fail-soft-Eigenschaften beschrieben werden.
Der theoretische Maximalaufbau der Anlage ist in F i g. 2 dargestellt. Bis zu 8 Speichermoduln 30a stehen im 4; Austausch mit bis zu 8 Anforderungseinheiten, der Speichermoduln 30a, d. h. mit Hauptprozessormoduln 20 und Eingabe/Ausgabemoduln 10. Jede .Signalabfrageeinheit des Speichers ist in der Lage, den vollständigen Inhalt des sehr schnellen Hauptspeichers 30 zu adressieren und abzufragen. Ein Diagnose- und Wartungsbus 32 ist zur Versorgung der Steuerungen der Speichermodule 30a, der Hauptprozessormodule 20, der Eingabe/Ausgabemodule 10 und der Plattendateioptimierer 40 vorgesehen. An den Diagnose- und Wartungsbus 32 sind entweder eine oder zwei Diagnoseeinheiten 26 angeschlossen. Jeder Eingabe/Ausgabemodu! 10 ist mit einer Rate von bis zu 6,75 Millionen Bytes pro Sekunde in der Lage, Daten simultan zwischen dem Hauptspeicher 30 und 28 peripheren Steuereinrichtungen (darin sind S sehr schnelle Steuereinrichtungen enthalten) und zwischen dem Hauptspeicher 30 und den bis zu 4 Datenvermittlungsprozessoren 36 zu transferieren. Er ist außerdem in der Lage, bis zu 4 Plattendateioptimierer 40 zu bedienen (die Plattendateioptimierer 40 dienen zur Verbesserung der Transferrate von Daten zwischen dem Hauptspeicher 30 und den Plattendateien). In einer bevorzugten Ausführungsform beträgt die Anzahl der schnellen, mittelschnellen und langsamen peripheren Geräte, die über Steuer- und Vermittlungseinrichtungen an ein Eingabe/Ausgabemodul 10 angeschlossen werden oder die in einem Eingabe/Ausgabeuntersystem enthalten sind, 255 Geräte. Hierbei ist jeder Kartenleser, Pseudoleser- und Kartenlocher, Zeilendrucker, Bandleser, Lochstreifenlocher, Anzeigeterminal des Operators, jede freistehende Magnetbandeinheit, jede Station auf einem Magnetbandgruppe und jede elektronische Einheit in einem Plattendatei-Untersystem als ein Gerät gezählt Durch geeignete Querverbindungen über Vermittlungseinrichtungen ist es möglich, Datenwege zwischen den Plattendateien, Plattenstapeln oder Magnetbandeinheiten herzustellen, die sich in mehreren Eingabe/Ausgabemodulen 10 befinden. Auf diese Weise stehen die peripheren Geräte allen Eingabe/Ausgabemoduln 10 der Anlage zur Verfügung.
Unter den verfügbaren peripheren Geräten sind Plattendateien und Plattendateispeichermodule vorhanden, die einen virtuellen Speicher darstellen, der die Speicherkapazität des Hauptspeichers 30 der Anlage erheblich vergrößert, vgl. F i g. 3. Die Module, die über Steuereinrichtungen an den Eingabe/Ausgabemodulen 10 angeschlossen sind, sind folgende: (1) Plattendateioptimierer 40, um Speicherbänke mit optimalem Zugriff zur
Speicherung von etwa 450 Millionen bis 8 Milliarden 8-Bit-Bytes Information pro Eingabe/Ausgabemodul 10 zu realisieren, deren Zugriffszeit tatsächlich im Bereich zwischen 2 bis 6 Millisekunden ober 4 bis 10 Millisekunden liegt; (2) Plattendateimodule, die (ohne die Steuerung des Optimierers) in RAM-Speicherbänke von 15 Millionen bis 16 Milliarden 8-Bit-Bytes pro Eingabe/Ausgabemodul 10 eingebaut werden und deren durchschnittliche Zugriffszeit zwischen 20 und 35 Millisekunden liegt; (3) Plattenstapelspeichermoduln, die in RAM-Speicherbänke mit einer Kapazität von 121 Millionen bis mehreren Milliarden von 8-Bit-Bytes pro Eingabe/Ausgabeniodul 10 eingebaut werden und deren mittlere Zugriffszeit 30 Millisekunden beträgt.
Neben den 255 peripheren Geräten, die z. B. in einem Eingabe/Ausgabeuntersystem enthalten sind, ist ein sehr großes Netzwerk von entfernt angebrachten Terminals, entfernt angebrachten Steuereinrichtungen und entfernt aufgestellten Rechnern vorhanden, welches von bis zu 1024 Leitungen versorgt wird, die von den 4 programmierbaren Datenvermittlungsprozessoren 36 bedient werden, die durch einen einzigen Eingabe/Ausgabemodul 10 steuerbar sind. Normalerweise versorgt jede Leitung mehrere entfernt angebrachte Geräte, und selbstverständlich ist es möglich, daß Anlagen mit mehreren Eingabe/Ausgabemodulen 10 mehr als ein Datenvermittlungsnetzwerk besitzen. Die maximale Anzahl von Datenvermittlungsprozessoren 36, die in der Anlage nach der vorliegenden Erfindung eingesetzt werden können, beträgt 28 Geräte (7 Eingabe/Ausgabemodulen).
Die Leistungsfähigkeit, Geschwindigkeit, Flexibilität und Zuverlässigkeit, mit der die Anlage ausgestattet ist, werden voll in einer Ausführungsform realisiert, die zwei Hauptprozessormoduln 20, zwei Eingabe/Ausgabemoduln 10, vier Speichermoduln 30a, eine Diagnoseeinheit 26 und die zugehörige Magnetbandeinheit 35 und zwei Bedienungskonsolen 27 (je eine für je einen Eingabe/Ausgabemodul 10) enthält. Neben diesen zentralen Komponenten muß diese typische fail-soft-Konfiguration zwei Plattendateispeicher-Untersysteme (je eines für je einen Eingabe/Ausgabemodul 10) oder ein einziges Plattendateiuntersystem enthalten, welches beiden Eingabe/ Ausgabemodulen 10, den peripheren Steuereinrichtungen 38 und den Wechselspannungsversorgungen durch Vermittlungseinrichtungen gleichermaßen zur Verfugung steht. Selbstverständlich sind Ergänzungen der peripheren Geräte und ihrer Steuer- und Vermittlungseinrichtungen, der Datenvermittlungsprozessoren 36 und der entfernt angebrachten Geräte je nach Verwendungszweck und Art der auszuführenden Arbeiten erforderlich. Eine Anlage mit der genannten Ausstattung besitzt die vollständigen fail-soft-Eigenschaften der Anlage und besitzt alle Vorteile, die durch die Möglichkeit der Verarbeitung von 4 Worttransfers von Daten von und zum Hauptspeicher 30 gegeben sind.
Die folgenden Absätze stellen eine Beschreibung der wichtigsten Komponenten und der Funktionsuntersysteme dar, die durch das mehrstufige Operationssystem gesteuert werden und in einer solchen Konfiguration angeordnet sind, die speziellen Bedürfnissen der Datenverarbeitung genügt. Dieser Aufbau stellt die bevorzugte Ausführungsform der Datenverarbeitungsanlage dar. Die Komponenten und Untersysteme enthalten die Hauptprozessormodule 20, das Eingabe/Ausgabeuntersystem, das Speicheruntersystem, die Diagnoseeinheit 26, die Bedienungskonsolen 27, das Plattendateiuntersystem, das Datenvermittlungsuntersystem und das Leistungsversorgungsuntersystem.
A. Hauptprozessor
Der Hauptprozessormodul 20 stellt das Element der Anlage dar, in dem die Rechenschritte ausgeführt werden. In der bevorzugten Ausführungsform arbeitet der Hauptprozessormodul mit einer Taktfrequenz von 16 MHz. Der Hauptprozessormodul 20 enthält drei größere, voneinander unabhängige, asynchron arbeitende Bereiche, den Programmbereich 42, den Ausführungsbereich 44 und den Speicherbereich 46, vgl. F i g. 4. Eine Kommunikation zwischen diesen Bereichen wird mittels Warteschlangen durchgeführt. Aufgrund der Parallelarbeitsweise des Hauptprozessormoduls 20 finden arithmetische Berechnungen, Datenverarbeitung, die Berechnung von Adressen und der Datentransfer zum und vom Speicher gleichzeitig statt.
Der Programmbereich 42 führt befehlsdekodierende Operationen von Maschinencode-Zeichenfolgen und absolute Adressenberechnungen durch, der Ausführungsbereich 44 führt alle arithmetischen und logischen Datenoperationen durch, und der Speicherbereich 46 führt alle Funktionen mit Speichercharakter durch. Die allgemeinen Verbindungsleitungen und der Datenfluß zwischen diesen drei Bereichen ist in F i g. 4 dargestellt. Wie schon angegeben, wird eine Kommunikation zwischen diesen Bereichen durch Warteschlangen hergestellt.
Der Programmbereich 42 enthält einen Programmpuffer 48 und eine Programmwalze 54, eine Programmsteuereinheit 56, eine Fehlerkontrollogik 58 und eine Adresseneinheit 60. Der Programmbereich 42 besitzt die Aufgabe, aus der Maschinencodezeichenfoige jeden Befehl herauszuziehen und die Durchführung dieser Befehie zu veranlassen. Der Programmbereich 42 steuert und antwortet außerdem auf das Fehlerunterbrechungssystem, welches später beschrieben wird. Die primäre Aufgabe des Programmbereiches 42 besteht darin, die Maschinencodezeichenfoige in Operationen aufzuteilen, die dann in die geeignete War'.eschlangen plaziert werden und so an den Ausführungsbereich 44 gelangen. Einige wenige Befehle werden ganz von dem Programmbereich 42 ausgeführt, so z. B. ein nicht bedingter Sprung, andere Befehle werden teilweise durchgeführt.
In der bevorzugten Ausführungsform wird die Präfix-Schreibweise als Basis für den ALGOL-Kompilierungsalgorithmus der Anlage verwendet Durch die Kompilierer-Umsetzung wird von dem Ausdruck der Ursprungs- spräche mittels einer von links nach rechts laufenden Abtastung in einem Zeitpunkt jeweils ein Symbol überprüft und zu logischen Einheiten zusammengesetzt Da jede logische Einheit überprüft wird, folgt eine spezielle Prozedur nach, durch die der Ausdruck in Präfix-Schreibweise in seiner endgültigen Form mit einer Abtastung des Ausdrucks der Ursprungssprache konstruiert ist Wenn das Programm kompiliert ist, so wird der rechnerische Teil des Quellprogramms (Primärprogramms) in eine Zeichenfolge von Befehlen einer Maschinensprache umgesetzt Ein Beispiel stellt das Pluszeichen ( + ) in der Ursprungssprache (Primärsprache) dar. welches direkt durch den ADD-Befehl der Maschinensprache ersetzt wird. Die Sprache-Zeichenfolge, die einer Zeichenfolge in Präfix-Schreibweise ähnelt soll im weiteren mit Programm-Code-Zeichenfolge bezeichnet werden. Diese Code-
Zeichenfolge wird je nach Struktur des Programms in zwei oder mehr Segmente unterschiedlicher Länge unterteilt. Die Programmsegmente werden normalerweise in Plattetidateien gespeichert. Wird ein Programm ausgeführt, so werden die Programmsegmente, wie benötigt, im Speicher zur Verfugung gestellt. Da derartige Programmsegmente nicht modifiziert werden können, kann z. B. eine einzige Kopie eines Programmsegments im Speicher für mehrere gleichzeitige Befehle desselben Programms verwendet werden.
Wie schon erwähnt, kann eine Programm-Code-Zeichenfolge in zwei oder mehr Programmsegmente unterteilt werden. Für jedes Programmsegment ist ein einzelner Segmentdeskriptor vorhanden, der die Länge und den Speicherplatz des Programmsegments definiert. Die Segmentdeskriptoren sind in einem speziellen Stapelspeicher gespeichert, der Segment-Wörterverzeichnis genannt wird. Auf diese Weise gehört zu jedem Job nicht
ίο nur ein Job-Stapelspeicher sondern außerdem auch noch ein Segment-Wörterverzeichnis-Stapelspeicher. Zusätzlich besitzt das mehrstufige Operationssystem seinen eigenen Stapelspeicher und sein eigenes Segment-Wörterverzeichnis. Innerhalb des Job-Stapelspeichers ist für jede Einsprungstelle in ein Segment des Codes ein Programmsteuerwort (PCW) vorgesehen. Das Programmsteuerwort (PCW) stellt nicht nur im Segment-Wörterverzeichnis einen Index dar, um den richtigen Segmentdiskriptor aufzufinden, es stellt außerdem einen Index
!5 in dem Programmsegment selbst dar, um das richtige Programmwort und die richtige Programmsilbe aufzufinden.
Den Konstanten und Variablen eines Programmes werden Speicherplätze innerhalb des »Stapels« eines Programmes zugeordnet, wenn es kompiliert wird. Der Stapel kann als ein Analogon eines physikalischen Stapels betrachtet werden, bei dem die letzte Einheit auf der Spitze des Stapels liegt. Wenn die Einheiten vom Stapel genommen werden (jeweils eine Einhtit zu einem Zeitpunkt), so stellt die Einheit auf der Stapelspitze diejenige Einheit dar, die zuerst abgenommen wird. Die Einheit an der Basis des Stapels bleibt solange an der Basis des Stapels, bis alle anderen Einheiten vom Stapel abgenommen wurden. Der Stapel stellt nicht nur eins einfach organisierbare Einrichtung dar, um einen dynamischen Vorgang eines Programms während seiner Verarbeitung festzuhalten, sondern er ist auch bei der Verarbeitung der Programm-Code-Zeichenfolgen, die auf Präfix-Schreibweise basieren, einsetzbar.
In einer bevorzugten Ausführungsform werden, wenn ein Job aktiviert ist, zwei Plätze an der Spitze des Stapels (A und B) zum Stapel des Jobs verbunden, vgl. F i g. 5. Diese Verbindung wird durch ein Stapelzeiger-Register (S) 63 vorgenommen, das die Speicheradresse des zuletzt im Stapel plazierten Wortes enthält. Die beiden obersten Stapelplätze (A und B), auch als TOS bezeichnet, erweitern den Stapel derart, daß ein schneller Zugriff für die Datenverarbeitung möglich ist. Daten, die über die beiden obersten Plätze in den Stapel eingebracht wurden, sind so geordnet, daß der letzte in den Stapel plazierte Operand als erster Operand wieder entnommen werden kann. Die totale Kapazität der obersten Stapelplätze (A und B) beträgt zwei Operanden. Sobald ein dritter Operand in die obersten Stapelplätze eingegeben wird, wird der erste Operand aus den oberen Stapelplätzen in den Stapel gegeben. Das Stapelzeiger-Register (S) 63 nimmt um den Wert 1 zu, bevor ein Wort in den Stapel eingegeben wird und nimmt um den Wert 1 ab, nachdem ein Wort aus dem Stapel entnommen ist und in die oberen Stapelplätze gegeben wurde. Als Ergebnis zeigt das Stapelzeiger-Register (S) 63 kontinuierlich das zuletzt in den Stapel des Jobs plazierte Wort an.
In der bevorzugten Ausführungsform ist der Stapel des Jobs zum Schutz des Speichers durch zwei Register begrenzt: durch das Base-of-Stack-Register (BOSR) 65 und durch das Limit-of-Stack-Register (LOSR) 67. Der Inhalt des BOSR-Registers 65 definiert die Basis des Stapeis und der Inhalt des LOSR-Registers 67 definiert die obere Grenze des Stapels. Der Job wird unterbrochen, sobald das S-Register 63 auf den Wert gesetzt wird, der entweder im LOSR-Register 67 oder im BOSR-Register 65 enthalten ist.
Der Inhalt der oberen Stapelplätze wird automatisch vom Hauptprozessor 20 aufrecht erhalten, um die Bedürfnisse des laufenden Operators zu erfüllen. Sofern der laufende Operator einen Datentransfer in den Stapel erforderlich macht, nehmen die oberen Stapelplätze die einlaufenden Daten auf, und der die Kapazität der oberen Stapelplätze überschreitende Inhalt, sofern überhaupt vorhanden, wird in den Stapel geleitet Wörter werden aus dem Stapel in die oberen Stapelplätze gebracht. Diese Wörter werden von den Operatoren verwendet, die eine Gegenwart von Daten in den oberen Stapelplätzen erfordern. Diese Operatoren bewegen dagegen explizit keine Daten in den Stapel.
so In einer bevorzugten Ausführungsform kann jeder der oberen Stapelplätze (A und B) zwei Speicherwörter aufnehmen. Für Operationen mit einfacher Genauigkeit enthält der Platz A einen Operanden einfacher Genauigkeit und der Platte B enthält einen anderen Operanden mit einfacher Genauigkeit. Wird jedoch ein Operand mit doppelter Genauigkeit in einen der beiden oberen Stapelplätze (A und B) gerufen, so werden die beiden Hälften des doppeltgenauen Operanden in den A oder B-Platz eingegeben. Das erste Wort wird in die oberen Stapelplätze eingegeben und die zugehörigen Kennbits werden überprüft Sofern der Wert der Kennbits doppelte Genauigkeit indiziert, wird die zweite Hälfte des Operanden in die zweite Hälfte des oberen Stapelplatzes gegeben. Doppeltgenaue Operanden werden in einfach genaue Wörter umgewandelt, wenn sie in den Stapel übergeleitet werden (die signifikanteste Hälfte des Operanden wird zuerst in den Stapel übergeleitet). Dieser Prozeß läuft umgekehrt ab, wenn ein doppeltgenauer Operand aus dem Stapel in die oberen Stapelplätze
zurückkehrt Das heißt die am wenigstens signifikante Hälfte des doppeltgenauen Operanden wird zuerst nach oben gebracht, die Kennbits besitzen einen Wert von zwei, wodurch die signifikanteste Hälfte des Operanden auch in die oberen Stapelplätze gebracht wird. In einer bevorzugten Ausführungsform enthält der Stapel einen 32-Wörter-Stapelpuffer 50, der es gestattet, daß ein Teil eines aktiven Stapels in IC-Speicherplätzen innerhalb der Hauptprozessormoduln 20 enthalten ist. Dieser Stapelpuffer 50, vgl. F i g. 6, enthält z. B. eine Information, die
noch nicht in den Kern- oder Hauptspeicher 30 eingeschrieben wurde, er enthält außerdem Kopien der in dem Hauptspeicher enthaltenen Wörter. Der Stapelpuffer 50 ermöglicht es, daß sich ein Teil des Stapels innerhalb des Hauptprozessormoduls 20 befindet, um einen schnellen Zugriff bei der Stapelbedienung durch den Ausführungsbereich 44 des Hauptprozessormoduls 20 zu gewährleisten.
Zusätzlich zu dem Teil des Stapels, der sich im Stapelpuffer 50 befindet, können bestimmte andere Daten des
Stapels in einem lokalen Speicher innerhalb des Hauptprozessormoduls 20 enthalten sein. Dieser lokale Spei-
,' eher, der sogenannte assoziierte Speicher 52 des Speichers wird eingesetzt, um Daten aufzunehmen, die von der
Γ vorausschauenden Programmeinheit zusammengetragen werden und sich nicht im Stapelpuffer befinden. Ob-
; wohl ein aktiver Stapel teilweise in dem im Hauptprozessormodul 20 enthaltenen Stapelpuffer 50 und teilweise
im Kernspeicher enthalten ist, wird der Stapelpuffer 50 immer geleert, wenn der Stapel inaktiv wird (d. h., wenn β eine Eingabeoperation in den Stapel stattfindet). Diese Leerung des Stapeipuffers 50 bewirkt, daß die D^ten des
Stapelpuffers 50 in den Hauptspeicher kopien werden.
H Ein äußerst wichtiger Aspekt der Anlage besteht in der Erhaltung des dynamischen Ablaufes für das Pro-
5 gramm, welches verarbeitet wird. Zwei Listen des Programmablaufes werden in dem Stapel der Anlage aufrecht ίί erhalten, die Umgebungsadressierungs-Liste und die Stapelspeicherhistorien-Liste. Beide Listen sind dynamisch,
ji sie verändern sich, während der Job längs verschiedener Programmpfade mit sich verändernden Datensätzen
ij fortschreitet. Die beiden Listen wachsen und verkleinern sich in Übereinstimmung mit der Prozedurtiefe des
•| Programmes. Beide Listen werden automatisch durch die Systemhardware erzeugt.
Jf Es wird nun auf den Ausführungsbereich 44 des Hauptprozessors 20 Bezug genommen. Der Ausführungsbe-
I reich 44 enthält eine Ausführungseinheit 62 und eine Ausführungseinheit-Eir.gabewarteschlange 64. Der Ausfüh-
{I rungsbereich 44 ist verantwortlich für die gesamte Daten- und Steuermanipulationen, die den Stapel betreffen.
' Der Ausführungsbereich 44 führt alle arithmetischen und logischen Operationen und die bezüglich des Stapels
I vorgenommenen Steuerfunktionen durch. Der Ausführungsbereich 44 wird in geordneter Weise von einer
>■ FIFO-Liste von Operationen betrieben, die von dem Programmbereich 42 in ihre Operatorwarteschlange
;, eingegeben sind.
.;< Der Speicherbereich 46 enthält eine Speichereinheit 66, die Stapelpuffereinheit 50, den assoziierten Speicher
!■•,; 52 und eine Vermittlungseinheit 68. Der Speicherbereich 46 ist für alle Funktionen verantwortlich, die Speicher-
;j ve -gänge betreffen. Einige der Aufgaben des Speicherbereiches 46 sind implizierter Natur, wie z. B. die Versor-
I gung des Stapelpuffers 50, aber die meisten Operationen sind explizit und resultieren direkt aus der Verarbei-
6 tung des Programmcodes. Implizite Operationen des Speicherbereiches 46 sind entweder von dem Programm- ·;: bereich 42 oder dem Ausführungsbereich 44 in die Eingabewarteschlange 70 der Speichereinheit 66 eingeordnet. ο Es ist die Aufgabe des Speicherbereiches 46, zu bestimmen, ob eine Adressenreferenz sich auf den lokalen Ii Speicher oder den Hauptspeicher 30 bezieht, wobei im letzteren Fall ein Hauptspeicherzyklus erforderlich ist.
Diese größeren Bereiche sind in Einheiten unterteilt, die relativ unabhängig voneinander arbeiten. Die Programmsteuereinheit 56 des Programmbereiches 42 stellt eine asynchron funktionierende Logikeinheit dar, die den Programmpuffer 48 versorgt und den Maschinencode in Operationen auflöst, die in die geeigneten Warteschlangen der Ausführungseinheit-Eingabewarteschlange 64 zur Durchführung eingibt. Die Organisation der Programmsteuereinheit 56 ist derart, daß mehr Silbenoperatoren, die im Programmpuffer 48 Wortgrenzen überdecken, keinen zusätzlichen organisatorischen Operationen verursachen. Verzweigungspunkte, die sich innerhalb des Puffers 48 befinden, werden automatisch wahrgenommen und der Code wird ohne einen Programmabruf vom Hauptspeicher 30 eingegeben.
In der bevorzugten Ausführungsform ist der Programmpuffer 48 des Programmbereichs 42 eines Hauptprozessormoduls 20 als eine Anordnung aus IC-Speicherchips ausgebildet, die eine gesamte lokale Speicherkapazität von 32 Wörtern mit je 60 Bits enthält. Die tatsächliche physikalische Konfiguration besteht aus zwei Speichern von je 16 Wörtern. Wie in F i g. 4 dargestellt ist, sind diese beiden Teile des Speichers so verschachtelt, daß alle ungeraden Wörter aus dem Hauptspeicher 30 in einem Teil und alle geradzahligen Wörter in dem anderen Teil des Speichers gespeichert werden. Jeder dieser Speicherteile ist außerdem in vier Segmente, 0 bis 3, ä unterteilt. Der Puffer wird mit Segmenten aus vier Wörtern pro Hauptspeicherreferenz gefüllt. Der Algorith-
I mus, mit dem der Programmpuffer 48 gefüllt wird, basiert mehr auf einer Vorwegnahme, als auf einem Aushar-
I ren, bis der Puffer 48 leer ist, so daß der volle Vorteil der natürlichen Verzögerungszeit der Hauptspeicher-Sam-
§ melleitung 47 ausgeschöpft wird, vgl. Fig.2. Bei der Eingabe der Wörter werden diese alternativ in die
i ungeraden und geradzahligen Teile des Programmpuffers 48 eingegeben. Von jedem eingegebenen Wort wurde
jf von allen 51 Bits die Paritätskontrolle durchgeführt. Während das einzelne Wort in den Programmpuffer 48
,'I plaziert wird, wird Parität erzeugt und mit jeder Silbe gespeichert; auf diese Weise wird, unabhängig von der
I Anzahl der Silben oder der Route durch den Hauptprozessor 20, die Vollständigkeit eines gegebenen Befehls
S durch Parität von j^der individuellen Silbe aufrecht erhalten.
J Die Adresseneinheit 60 des Programmbereiches 42 enthält die zur Berechnung absoluter Adressen erforderli-
§ ehe Logik. Diese Adresseneinheit 60 besitzt einen Speicherbereich von 48 Wörtern mit 20 Bits. Der Speicherbe-
g reich ist mit Eingabe- und Ausgaberegistern versehen, von denen das Ausgaberegister verwendet wird, um
£ Register während eines Addier/Komparatorzyklus' zu puffern, damit simultan ein Speicherzyklus erfolgt. Das
•i Eingaberegister des Speicherbereiches wird verwendet, um Daten für einen Schreibzyklus zu puffern, damit die
r! Steuerlogik, anstatt bis zum Ende des Speicherzyklusses zu warten, sofort freigegeben werden kann. Das
I Eingaberegister dient auch dazu, einen Wert für den Addier/Komparator für nachfolgende Rechenschritte, wie
I sie bei der Verarbeitung von Zeichenfolgen auftreten (z. B. Index plus Konstante plus Basis), bereit zu halten.
ig Alle Schreibzyklen in dem Speicherbereich der Adresseneinheit 60 werden durch den Ausführungsbereich 44
I gesteuert, diese Zyklen können dagegen zur Adressenberechnung entweder von dem Ausführungsbereich 44
p oder dem Programmbereich 42 des Hauptprozessorsmoduls 20 initiiert werden. Separate Leseregister sind für
β diese beiden Bereiche vorgesehen und eine Prioritätslöseeinrichtung löst auftauchende Konflikte. Es sei er-
;; wähnt, daß die Adresseneinheit 60 sich nicht direkt in der Leitung befindet und daher nicht von einer Warte-
\f schlange betrieben ist Wie schon erwähnt, ist die Adresseneinheit 60 nur in dem Maße autonom, daß ein
;ft Schreibzyklus für den IC-Speicher eines Hauptprozessormoduls 20 durch die Auslöselogik nur ausgelöst und
; j nicht vollständig gesteuert zu werden braucht
Die Fehlerkontrollogik 58 des Programmbereiches 42 soll bei der allgemeinen Wartung und bei der Fehlersuche unter Leitung des fail-soft-Teüs des mehrstufigen Operationssystems helfen. Die Fehlersuche wird von einem System meh-erer Ebenen von Kontrollzuständen unterstützt, welches mit alternierenden Stapel- und Nüilanzeigeeinrichtungen gekoppelt ist. Die Fehlerkontrollogik 5g giu'nält ein Fehlerbedingungs-Register, wel-
ches Systemunterbrecher speichert und den Hauptprozessor 20 in die Lage versetzt, die erforderlichen Schritte zur Behandlung dieser Unterbrecher zu unternehmen. Dieses Register speichert sowohl operatorabhängige als auch operatoranabhängige Unterbrecher.
Die befehlseinheit 62 des Befehlsbereiches 44 eines Hauptprozessormoduls 20 stellt den Abschluß des Daten-Kaiidls da,. Die Mehrzahl der Befehle wird nicht vervollständigt, da die Befehlseinheit 62 die einzige Einheit in dem Prozessor 20 ist, welche durch Daten betrieben wird. Diese Einheit besitzt außerdem einige Steuerwortformaticn- und Adressenberechnungsaufgaben.
Diese einheit enthält die beiden oberen Stapelregister A und B und kann zeitweise Teile von Zeichenfolgen speichern, die sie bearbeitet.
Die Ausführungseinheiie 62 ist genauso wie die Programmsteuereinheit 56 von einer Warteschlange betrieben. Alle Operationen und mit Operationen in Zusammenhang stehende Daten werden in die Warteschlange der Ausführungseinheit 62 durch die Programmsteuereinheit 56 platziert. Die Dateneingaben werden durch die Speichereinheit 66 des Speicherbereiches 46 vorgenommen. Die Verantwortung für die Steuerung beim Einschreiben ir; die Warteschlange wird von dem Programm und den Speichereinheiten geteilt Die einzige Aufgabe der Ausführungseinheit 62 besteht im Auslesen der Information aus der Warteschlange. Der Zustand der
Eingabev. srteschlange wird aus offensichtlichen Gründen durch den Programmbereich 42 überwacht, um wahrzunehmen, wenn die Warteschlange voll oder leer ist und eine Synchronisation der Einheiten erforderlich ist. Ein Warteschlange-Eingaberegister gibt die Daten transmittierende Einheit frei, sobald das Register gefüllt ist. Nach dem Füllen des Warteschlange-Eingaberegisters wird der folgende Schreibzyklus ausgelöst. In einer bevorzugten Ausführungsform wird die Warteschlange durch Speicherchips ausgeführt die simultane Lese- und Schreiboperationen gestatten.
Die Speichereinheit 66 des Speicherbereiches 46 eines Hauptprozessormoduls 20 enthält die zur Steuerung aller auf den Hauptspeicher 30 gerichteten Bezugnahmen erforderliche Logik. Die Bezugnahmen zum Hauptspeicher lassen sich unabhängig von der Programmoperatorfunktion oder als direktes Resultat eines Operatorbefehls auslösen. Die Steuerung des Programmpuffers 48, des assoziierten Speichers 52 und des Stapelpufters 50 stellt die unabhängigen Operationen dar. Die Bezugnahmen zum Hauptspeicher 30, die ein unmittelbares Resultat eines Operatorbefehls sind, werden der Speichereinheit 66 durch deren Eingabewarteschlange 70 geliefert. Die aktuellen Operationen sind in die Warteschlange durch die Programmsteuereinheit 56 eingegeben, während das Programm in Phase gebracht wird. Die einer Operation zugeordneten Adressen werden in die W3 neschlange entweder durch die Programmsteuerung oder den Befehlsbereich 44 eingegeben.
Die Speichereinheit 66 ist für die Überwachung de. Siapeiiuiuuionen verantwortlich, um zu entscheiden, ob diese Stapelfunktionen innerhalb der durch das BOSR-Register 65 und das LOSR-Register 67 errichteten Grenzen liegen. Bei Überprüfung dieser C rcnzen muß die Speichereinheit 66 die Arzahl der örtlichen Anschlüsse mit beachten, damit die Überprüfung der Grenzen entsprechend den Tatsachen erfolgt.
Die Eingabewarteschlange wird im wesentlichen von allen Unterbereicher des; Hauptprozessors 20 gesteuert Die Programmsteuereinheit 56 liefert außerdem den Operator. Die Adresse kann durch die Programmsteuereinheit 56 oder durch die Befehlseinheit 62 berechnet werden, und Daten für Speicherfunktionen werden stets aus der Ausführungseinheit 62 genommen. Sobald eine Bezugnahme als »nicht örtlich« bestimmt ist, löst die Speichereinheit 66 eine Bezugnahme zum Hauptspeicher 30 aus. Im Fall, daß während einer Bezugnahme zurr Hauptspeicher irgend etwas außergewöhnliches passiert, löst die Speichereinheit 66 ein Beendigungssignal au« und übermittelt die Daten und zur Beschreibung des Problems ausreichende Steuerinformation über die Ausführungseinheit-Eingabewarteschlange 64 an die Ausführungseinheit 62. Es ist notwendig, daß die Reaktion au: Störungen durch die Speichereinheit 66 aufgeschoben wird, da diese Einheit bei der Durchführung von Abruf funktionen der in Ausführung befindlichen Programmstelle voraus ist. Die Ausführungseinheit 62 stellt einer Teil des Hauptprozessors 20 dar, der die in Ausführung befindliche Programmstelle definiert. Aus diesem Grunc
darf solange zur Änderung der Reihenfolge innerhalb des Programms nichts unternommen werden, bis dei zugehörige Operator die Spitze der Eingabewarteschlange 64 erreicht. Bezüglich Speichsrfunktionen sind die Ausführungseinheit 62 und die Speichereinheit 66 schon synchronisiert und eine Reaktion auf Fehler finde sofort statt.
In einer bevorzugten Ausführungsform ist die Speichereinheit 66 in der Läse, innerhalb der eigenen Einhei Operationen zu überlappen. Dies« Situation ist immer dann vorhanden, wenn eine Bezugnahme zum Hauptspei eher 30 ausgelöst ist. Wenn die Vjrmittiungseinheit 68 des Speicherbereichs 46 eine externe Bezugnahrm bearbeitet, kann die Speichereinheit 66 zum nächsten Entry ihrer Eingabewarteschlange 70 übergehen. Für dei Fall, daß die Bezugnahmeoperationen variabel, d. h. lokal auf den Stapelpuffer 50 oder den assoziierten Speiche 52 gerichtet sind, so wird die lokale Bezugnahme parallel zur Hauptspeicherbezugnahme vervollständigt. Di<
bo Überlappung ist nicht auf eine Operation beschränkt. Die Speichereinheii €6 ist zur Verarbeitung von Operatio nen aus ihrer Eingabewarteschlange 70 solange wie möglich frei oder solange frei, bis eine externe Bezugnahm» vervollständigt ist. Der Vorteil dieser Überlappung resultiert aus der Tatsache, daß die meisten Bezugnahme! auf Variablen, die bei der Herstellung eines Terminaldeskriptors verwendet wird, lokal sind. Obwohl die Größi auf die von dem TerminaSdeskriptor ein? Bezugnahme erfolgt, extern ist (insbesondere Datenfelder), ist die in
ti1) Hauptspeicher 30 verbrachte Zeit durch die nachfolgende Deslmptorkonstruktion wirkungsvoll ausgeblendet.
Dir Programmpuffer 48 des Programmbereiches 42 ist durch einen 3"1 Wortbereich eir.es lokalen Prozessor Speichers gegeben, der verwendet wird, um einen Teil des Maschinencock-Befehlsprogramms aufzunehmen. D der Programmpuffer 48 in Mehrwortsegmenten auf den neuesten Stand gebracht wird, wird der volle Vorteil de
Phasen-Speichersystems wahrgenommen. In einer bevorzugten Ausfährungsform mittelt der Maschinencode 3,5 Befehle pro Programmwort, so daß ein großer Teil der Programmlogik dem Programmpuffer 48 zur Verfügung steht Das Puffer-»Fenster« gleitet über die Maschinencode-Zeichenfolge, um die Programmschleifen vollständig aufzunehmen; in den meisten Fällen kann daher eine Verzweigung ohne Bezugnahme auf den Hauptspeicher für das neue Programmwort stattfinden.
Der Stapelpuffer 50 besteht aus einem einem Job zugeordneten Speicherbereich, der die Speicherung von Basisprogrammen und Datenbezugnahmen ermöglicht Der Stapel ermöglicht außerdem eine zeitliche Speicherung von Daten und von Jobabläufen. Sobald ein Job aktiviert wird, wird eine Verbindung zwischen dessen Stapel und den oberen Stapelregistern (A, B) durch das Stapelzeigerregister (S) 63 hergestellt, welches die Speicheradresse des zuletzi in den Stapel eingegebenen Wortes enthält Der Stapelpuffer dient zur Ausweitung des Stapelspeicherbereiches in den lokalen Prozessor-IC-Speicher und ermöglicht einen schnellen Zugriff bei Stapelmanipulationen durch die Befehlseinheit 62, vgL F i g. 6. Der primäre Zweck des Stapelpuffers 50 besteht darin, örtlich einen Teil der Stapelumgebung in irgend einem vom 32 IC-Speicherplätzen zu halten. Das Adressierschema in diesem örtlichen Speicher wird nach Art eines zyklischen Arbeitsablaufes organisiert Daten werden in den Stapel so eingegeben, daß der zuletzt plazierte Operand im Stapel der erste ist, der entnommen werden kann. Wie schon angegeben, veranlaßt die Eingabe eines dritten Operanden in die oberen Stapelplätze den ersten Operanden, in den Stapelpuffer 50 überzugehen, sofern die beiden oberen Stapelregister (A, B) schon gefüllt waren. Während die Eingaben in den Stapelpuffer 50 eingehen, wird bei Sättigung des Stapelpuffers ein Segment der Puffereingänge autonom in den Hauptspeicher 30 weitergeleitet, so daß der Stapelpuffer 50 den oberen Bereich des Stapelspeicherbereichs behält. Jede Angleichung des Stapels an den Hauptspeicher 30 wird in Mehrwortsegmenten durchgeführt, um den vollen Vorteil des »Phasen«-Speichersystems wahrzunehmen. Dieses »Fenster« von Stapelentries strebt danach, die laufende Adressierumgebung des ausführenden Programmstapels aufzunehmen. Der Stapelpuffer 50 kann innerhalb gewisser Grenzen direkt adressiert werden, als ob er tatsächlich ein Bereich des Hauptspeichers 30 darstellen würde. Die direkte Adressierung des Stapelpuffers 50 ist für den Programmierer transparent. Aus diesem Grund ist die Kenntnis dieses Vorganges für den Programmierer nicht notwendig.
Wie in F i g. 7 gezeigt ist, ist die Hauptspeicheradresse des Puffer 50 oder der neueste Eintrag in den Stapelzeiger-Register (n) 63 enthalten. Die Hauptspeicheradresse an der Basis des Stapelpuffers 50 ist in dem Stapelgrenzregister (SLR) oder in manchen Fällen in dem Stapeladressenregister (SAR) enthalten. Nachdem der Hauptprozessormodul 20 einen Jobstapel zugeordnet ist, werden die obersten vier Worte des Stapelspeicherbereiches vom Hauptspeicher 30 in den Stapelpuffer 50 transferiert. Nachfolgende Siapelausweitungen und lokale Datenbezugnahmen werden vollständig innerhalb dieses Puffers 50 ausgeführt. Wenn der Stapelpuffer voll wird, wird ein Vierwortsegment dem Hauptspeicher zugeführt, wodurch der volle Vorteil des phasenorganisierten Speichersystems wahrgenommen wird. Verringerungen des Stapels, die zur Folge haben, daß der Stapel leer wird, veranlassen das nächste Vierwortsegment des Hauptspeicherstapels, in den Stapelpuffer 50 und die auf den neuesten Stand gebrachten Adressenregister überzugehen. Der Stapelpuffer 50 kann als »Fenster« der Stapeleinträge betrachtet werden, die längs des Hauptspeicherstapels entlang gleiten, während der Jobstapel seine Größe ändert, wodurch der Stapelpuffer immer einen Teil des oberen Bereiches des Stapels enthält. Dieser Typus einer Pufferstruktur ist insbesondere in einer Prozedur- oder Subroutine-organisierten Umgebung sehr effektiv. Um Konflikte zu reduzieren und eine mögliche Zerstörung gültiger, gemeinsam benutzter Daten im Hauptspeicher 30 zu verhindern, werden nur die aus den oberen Stapelregister (A, B) in den Stapelpuffer 50 übergeleiteten Variablen in den Hauptspeicher 30 geschickt. Dieser Vorgang kann stattfinden während einer Entleerung oder einer Puffersegmentbewegung. Die Aufgabe, die Spur dieser Grenzwert der neuen Daten zu verfolgen, wird dadurch gelöst, daß die absolute Adresse der Variablen, die noch nicht in den Hauptspeicher 30 geschickt wurde, im Stapelgrenzregister (SLR) festgehalten wird. Während der Stapelpuffer 50 längs des Hauptspeicherstapels entlang gleitet, strebt er danach, Variablen, die noch nicht in den Speicher 30 gegeben wurden, neue Daten und Eingänge, festzuhalten, die Kopien aus dem Hauptspeicherstapel darstellen. Aufgrund dieses Vorganges wird das Stapeladressenregister (SAR) immer dann verwendet, wenn der Puffer 50 sowohl neue und kopierte Daten enthält. Das Stapeladressenregister SAR enthält immer die absolute Adresse des tiefsten Stapelentrys in den Puffer 50. Um Eingänge zwischen dem Stapelpuffer und dem Hauptspeicher 30 zu übertragen, müssen die Stapelpufferadressen erhalten bleiben, die den Hauptspeicheradressen im S-Register 63 und im Stapeladressenregister SAR entsprechen. Als IC-Speicherplätze werden für diesen Zweck die BDP- und TPP-Register verwendet, vgl. F i g. 7, die die Stapelpufferadressen der ältesten und neuesten Eingänge speichern. Da der Stapelpuffer ein Adressierschema mit zyklischem Arbeitsablauf verwendet, diesenen die BTP- und TPP-Register hauptsächlich als Zeiger, denn der absolute Wert ist nicht wichtig. Die TPP-, BTP-, S-, SAR- und SLR-Register werden eingesetzt, um das Stapelpuffer-»Fenster« dem Hauptspeicherstapel zuzuordnen, wie in F i g. 7 gezeigt ist. F i g. 7 stellt eine Situation dar, in der der Hauptprozessor 20 gerade auf einen anderen Stapel übergewechselt ist, um die Programmausführung fortzusetzen. Das Füllen des Stapelpuffers 50 hat gerade begonnen mit dem Transfer des obersten Vierwortblockes aus dem Hauptspeicherstapel. Die Ausführung setzt sich fort, wie von den neuen, in dem Stapelpuffer 50 gebildeten Eingänge angezeigt. Ein zusätzlicher Expansionsbereich muß für den Stapel geschaffen werden, wenn der Stapelpuffer 50 voll ist. Wenn diese Situation eintritt, nimmt d><. Stapeladressenregister SAR um den Wert 4 zu, und das SLR-Register stellt dann die führende Adresse er Variablen dar, die in den Hauptspeicher 30 übergeleitet werden muß. Bei Vollendung dieser Operation ist das SLR-Register gleich dem SAR-Register.
Es ist manchmal erforderlich, den Stapelpufftr 50 automatisch zu leeren. Bei dieser Leerung werden alle im Puffer 50 enthaltenen und über dem SLR-Wert liegenden Variablen in den Hauptspeicher 30 übertragen. Aufgrund eines geeigneten Befehls erfolgt die Leerung des Stapelpuffers 50 vorder Verriegelungsbezugnahme zum Hauptspeicher 30. Dadurch ist sichergestellt, daß der Inhalt des Stapelpuffers 30 in den Hauptspeicher
kopiert wird und daher für einen anderen Prozessor verfügbar ist Ein Leerungsvorgang wird damit abgeschlossen, daß der Inhalt des SLR-Rcgisters gleich dem um den Wert 1 angewachsenen Inhalt des S-Registers 63 ist, wodurch angezeigt wird, daß der vollständige Inhalt des lokalen Puffers eine Kopie des Hauptspeichers ist Der assoziierte Speicher 52 stellt einen allgemeinen Datenpuffer dar, der einen schnellen Zugriff zu häufig
verwendeten Variablen und Deskriptoren gestattet, die sich außerhalb des im Stapeipuffer 50 enthaltenen Bereichs befinden. In der bevorzugten Ausführungsform ist der assoziierte Puffer oder Speicher 52 als eic Prozessor-IC-Speicher mit 16 Worten von 78 Bits ausgebildet Jedes Wort wird aus 51 Daten- und Kennbits, ein Paritätsbit, 20 Bits für die Hauptspeicheradresse, 2 Bits zur Kontrolle der Adresse und 4 überschüssige Bits zusammengesetzt Der assoziierte Speicher 52, vgl. F i g. 8, wird mit beliebigen Größen gefüllt, auf die durch ein
indirektes Bezugswort (IRW) Bezug genommen wird, es sei denn, die Größe besteht aus einem doppeltgenauen Operanden oder einem anderen IRW. Derartige Eingänge enthalten Datendeskriptoren, Schrittindexwörter und einfachgenaue Operanden. Die erhaltenen Datendeskriptoren können solche Dope-Vektoreingänge enthalten, wie sie in vieldimensionalen und unterteilten Feldanordnungen vorkommen. Wenn derartige Größen auf Anforderung der Programmsteuereinheit 56 oder der Ausführungseinheit 62 in die Vermittlungseinheit 68 gebracht
werden, werden sie zusammen mit ihrer Hauptspeicheradresse in den assoziierten Speicher 52 kopien. Bei einer zukünftigen Bezugnahme auf diese Größen können sich diese noch in dem assoziierten Speicher 52 befinden, wodurch eine Bezugnahme zum Hauptspeicher 30 eliminiert werden kann. Nachdem der assoziierte Speicher 52 vo'l ist wird immer der am längsten gehaltene Eingang überschrieben, wenn eine neue Größe in den assoziierten Speicher 52 eingegeben wird. Wenn eine Größe überschrieben ist, wird sie erneut in den assoziierten Speicher 52
bei der nächsten Bezugnahme auf diese Größe eingegeben, so daß häufig benutzte Größen im wesentlichen in dem ständigen Inhalt des assoziierten Speichers 52 vorhanden sind.
Wenn Information in eine Hauptspeicheradresse gespeichert werden soll, die im assoziierten Speicher 52 vorhanden ist, werden die Daten in diesem Platz des assoziierten Speichers gleichzeitig mit den Daten in dem Hauptspeicherplatz auf den neuesten Stand gebracht Aus diesem Grund sind gültige Eingänge in den assoziier-
ten Speicher 52 Kopien der im Hauptspeicher 30 befindlichen assoziierten Größen. Alle von der Speichersteuereinheit 66 ausgeführten Speicheroperationen werden im Hauptspeicher 30 und, sofern möglich, auch in den lokalen Bereichen durchgeführt. Da die Speicher immer den Inhalt des Hauptspeichers auf den neuesten Stand bringen, braucht der Inhalt des assoziierten Speichers 52 nie in de:= Hauptspeicher 30 überschrieben werden. Nach einer erfolgreichen Auffüllung des lokalen Speichers kann die Ausführungseinheit 62 fortfahren, Operato ren in ihre Warteschlange einzugeben, obwohl der Speichervorgang in den Hauptspeicher 30 nicht beendet ist Das ist möglich, weil Konflikte, wie z. B. geschütztes Einschreiben und zufällige Prozedurentries beim Abspeichern in den lokalen Speicher nicht wahrgenommen wurden. Die Hardware kann, falls erforderlich, die gesamte Information im assoziierten Speicher 52 ungültig machen, so z. B. dann, wenn in das mehrstufige Operationssystem zum Zwecke einer Neuordnung eingegriffen wird. Von jedem Wort wird in dem assoziierten Speicher 52 eine Aufzeichnung aufrecht erhalten. Wenn Information aus dem Hauptspeicher 30 verlangt wird, wird von der Speichersteuereinheit ein Überprüfvorgang vorgenommen, um zu entscheiden, ob die angeforderte Information sich zu diesem Zeitpunkt entweder im Stapelspeicher 50 oder im assoziierten Speicher 52 befindet. Dieser Vorgang findet statt, wenn ein Operator und eine Adresse aus der Eingabewarteschlange 70 entnommen werden. Im Fall, daß sowohl im assoziierten Speicher 52 und im Stapelpuffer 50 die angeforderte Information gefunden wird, wird dem Stapelpuffer 50 der Vorzug gegeben, der eine spätere Kopie dieser angeforderten Information enthalten kann, die durch eine Serie von Funktionen erzeugt wurde, die Stapelspeicher-Operationen verursachen.
Vermittlungseinheit 68
Die Vermittlungseinheit (CU) 68 stellt die Nahtstelle zwischen dem Hauptprozessorsmodul 20 und dem Hauptspeicher 30 dar. Alle Zugriffe zum Hauptspeicher werden durch diese Einheit ausgeführt. Anforderungen von Speicheroperationen werden an die Vermittlungseinheit 68 von dem Programmpuffer 48, der Speichereinheit 66 und dem Stapelpuffer 50 herangetragen. Die von der Vermittlungseinheit 68 aus dem Hauptspeicher 30
so entnommene Information wird den Ausführungseinheiten 62, dem Stapelpuffer 50, dem assoziierten Speicher 52 oder, zur Programmcodierung, dem Programmpuffer 48 übermittelt. Den abfragenden CPM-Einheiten wird der Zugriff zu der CU-Einheit 68 nach einem Prioritätsschlüssel gewährt. Die höchste Priorität wird dem Stapelpuf fer 50 eingeräumt, da die Ausführungseinheit 62 auf die Ergebnisse der durch den Stapelpuffer 50 vorgenommenen Abfragen wartet. Die Abfragen des Stapelpuffers werden vorgenommen, wenn an dem Stapelpuffer eine Füll-, Leer- oder Verfallsoperation vorgenommen wird. Der Speichereinheit 66 wird die zweithöchste Priorität eingeräumt, da die Ausführungseinheit 62 evtl. auf die Ergebnisse einer Abfrage der Speichereinheit wartet. Abfragen des Programmpuffers besitzen die dritthöchste Priorität, da diese Abfragen im Vorgriff auf notwendige zusätzliche Programmcodes stattfinden.
Die größeren Logikelemente der CU-Einheit 68 bestehen aus Eingabe (IN) und Ausgabe (OP)-Registern 302
bo und 304, aus einem Vermittlungsadressenregister (CA) 306, dem Vermittlungslängenregister (CLN) 308, dem Suspendierungs-Register (RS) 310, den Fail-Rcgistcrn (FL) 70 und der Steuerlogik, vgl. Fig.9. Obwohl das Fail-Register 70 der CU-Einheit 68 zugeordnet ist, wird es durch die Fehlerkontrollogik 58 eingesetzt und soll spater beschrieben werden.
Bei Einzelwort-Speicheroperationen ist die absolute Speicheradresse der Operation in dem CA-Register 306
b5 enthalten. Für Mehrwort-Operationen befindet sich die Startadresse in dem CA-Register 306. die abzurufenden oder zu speichernden Wörter befinden sich in dem CLN-Register 308. Während dieser Operation wird sowohl der Adressen- und der Wort-Zählstand bei jedem abgefragten oder gespeicherten Wort berichtigt. In der bevorzugten Ausführungsform wird der Programmcode in 8-Wort-Blöcken abgefragt, wodurch zwei 4-Wort-
i0
Abrufe erforderlich sind (sofern der Speicheraufbau 4-Wort-Abrufe erlaubt). Sofern nach dem ersten 4-Wort-Abruf des Programmcodes eine Anfrage höherer Priorität bezüglich der Verwendung einer CU-Einheit erfolgte, so wird die laufende Speicheradresse und Wortlänge in das RS-Register 310 zur zeitlich begrenzten Speicherung transferiert Der zweite 4-Wort-Abruf wird solange hinausgeschoben, bis die Anfrage höherer Priorität bedient wurde. Sofern dann keine weiteren Anfragen anhängig sind, wird der Inhalt des RS-Registers 310 in das CA-Register 306 und das CLN-Register 308 zurückgegeben und das Abrufen des Codes wird fortgesetzt.
Wenn Zugriff zum Hauptspeicher 30 erforderlich ist vergleicht die CU-Steuerlogik die sechs signifikantesten Bits der Adresse in dem CA-Register 305 mit den für jeden Speichersteuermodul gegebenen Grenzen und wählt den geeigneten Modul aus. Dann wird die Startadresse und weitere Steuerinformation für die Operation dem ausgewählten Modul in einem Speichersteuerwon zugeführt Das Steuerwort wird in dem Eingaberegister 302 umgewandelt dann an das Ausgaberegister 304 weitergeleitet und an den adressierten Speichersteuermodul geschickt Die Ankunft des Steuerwortes wird von dem Speichersteuermodul bestätigt.
Für Abrufoperationen teilt der Speichersteuermodul der CU-Einheit 68 durch die Übermittlung eines »Datenvorhanden«-Signals (DAP) und der angeforderten Daten an die CU-Einheit 68 mit, daß ein Zugriff gewährt wurde. Die Daten werden von dem IN-Register 302 aufgenommen und anschließend dem Programmpuffer 48, dem Stapelpuffer 50, dem assoziierten Speicher 52 oder, falls geeignet dem EWR zugeführt.
Die CU-Einheit 68 erhält Daten für Speicheroperationen entweder durch die Eingabewarteschlange 70 oder den Stapelpuffer 50. Die Daten für Speicheroperationen werden in das IN-Register 302 gepuffert, bis die f- CU-Einheit 68 Speicherzugriff erhält Nach dem Transfer des Steuerwortes und der Bestätigung des Erhalts
jgj dieses Wortes benachrichtigt der Speichersteuermodu! die CU-Einheit 68 von dem Zugriff, indem er ein »Daten-
K Sende«-Signal an die CU-Einheit 68 abgibt Bei Erhalt des Zugriffs leitet die CU-Einheit 68 die Daten in das
1^ Ausgaberegister 304 weiter und das Wort wird dann dem ausgewählten Speichersteuermodul zugeführt.
Jl Zum besseren Verständnis des physikalischen und begrifflichen Aufbaus des Hauptprozessormoduls 20 wer-
SJ den nun einige der grundlegenden Operationskonzepte des Hauptprozessormoduls 20 angegeben.
In der bevorzugten Ausführungsform ist der Hauptprozessormodul 20 als Pipeline-Datenverarbeitungseinheit ausgebildet Aus diesem Grund können alle Verarbeitungsstellen simultan an verschiedenen Aufgaben arbeiten. Sobald irgend ein Befehl durch den Datenkanal hindurchgebufen ist, werden von den verschiedenen Verarbeitungsstellen nacheinander Operationen durchgeführt, bis der Befehl voll ausgeführt ist.
Im allgemeinen werden die Programmoperatoren in der Programmcode-Zeichenfolge aus dem Speicher 30 in Mehrwortsegmenten abgerufen und in den Programmpuffer 48 eingegeben. Die Operatoren werden durch die Programmsteuereinheit 56 jeweils nacheinander geholt, und jeder Operator wird in einen oder mehrere Mikrooperatoren aufgeteilt die von der Ausführungseinheit 62 zur Verarbeitung in eine Warteschlange eingeordnet werden. Die Programmsteuereinheit 56 entscheidet, welche Daten zur Ausführung des Mikrooperators erforderlich sind und ruft diese Daten für die Speichereinheit 66 ab. Für Literalwerte, die in der Zeichenfolge enthalten sind, beschafft die Programmsteuereinheit 56 die Daten und leitet sie direkt zur Ausführungseinheit 62 weiter. Wenn die Ausführungseinheit 62 also Mikrooperatoren verarbeitet, sind die erforderlicher. Daten im allgemeinen sofort vorhanden und gestatten es der Ausführungseinheit 62, die geforderten Verarbeitungsschritte ohne Verzögerung durchzuführen. Die von der Ausführungseinheit 62 gewonnenen Ergebnisse können entweder in einem der lokalen Speicherbereiche gespeichert oder durch die Speichereinheit 66 und die CU-Einheit 68 dem Hauptspeicher 30 zugeführt werden. Durch Verwendung dieser Pipeline-Datentechnik wird eine relativ langsame Verarbeitung ohne Gefährdung der Zuverlässigkeit der Ausrüstung erzielt.
Zur weiteren Steigerung der Verarbeitungsgeschwindigkeit wird innerhalb des Prozessors 20 ausgiebig von Pufferspeicherbereichen Gebrauch gemacht. Diese lokalen Speicherbereiche, die schon beschrieben sind, werden zur Speicherung des Programmcodes, eines Teiles des aktiven Programmstapels und häufig auch von aufgerufenen Variablen verwendet.
In einer bevorzugten Ausführungsform wird durch Verwendung von speziellen, sehr schnellen integrierten Speicherschaltkreisen (IC) für den Programmpuffer 48, den Stapelpuffer 50 und den assoziierten Speicher 52 die Wartezeit, die bei der Vervollständigung von Datentransfers von und zum Hauptspeicher 30 entsteht, reduziert und manchmal fast eliminiert. Da diese Speicher autonom gefüllt werden (2 oder 4 Wörter gleichzeitig je nach dem Aufbau des Hauptspeichers 30, abhängig vom Prinzip der Vorwegnahme und nicht so sehr vom Prinzip »Bedarf folgt der Nachfrage«, wird beim Wiederauffüllen ihres Inhalts die normale Hauptspeicher-Leerlaufzeit vorteilhaft ausgenutzt. Der Programmpuffer 48 ermöglicht eine lokale Speicherung für bis zu 32 60-Bit-Programmwörter und ermöglicht ein rasches Einfangen von Programmschleifen mit 32 oder weniger Wörtern. Eine einmal im Puffer befindliche Schleife kann wiederholt aus dem Puffer herausgeholt werden, ohne weitere Programmwörter aus dem Hauptspeicher 30 zl entnehmen. Der 32-Worte-Stapelpuffer 50 ermöglicht eine lokale Speicherung für (und daher einen schnellen Zugriff zu) Deskriptoren, Variablen und Steuerwörtern und der Spitze des Stapels eines ausgeführten Jobs. Der assoziierte Speicher 52, der aus 16 78-Bit-Wörtern besteht, ermöglicht eine schnelle lokale Speicherung für Operanden eines Jobs, die am öftesten verwendet werden, sich aber nicht nahe genug an der Spitze des Stapels befinden, um in dem Stapelpuffer 50 Aufnahme zu finden.
Die Stapelstruktur der Anlage stellt nicht nur eine auf kongeniale Hardware aufbauende Softwarekonstruktion dar. Vielmehr ist der Hardware-Mechanismus zur Strukturierung und Handhabung des Stapels auf den Hauptprozessormodul 20 zugeschnitten. Dieser Hardware-Stapelmechanismus erlaubt es, daß die Steuerung von untergeordneten Routinen, von Verbindungen zwischen den Prozessen und der Bearbeitung von Unterbrechungen in einer wirkungsvollen und einheitlichen Weise gescr.;:ht.
Der Schutz des Speichers (die Verhinderung, daß ein Programm-Zugriff zum Speicher erlangt oder daß dem Speicher nicht zugeordnete Änderungen von Daten vorgenommen werde) wird durch eine Kombination von Hardware- und Software-Mechanismen erreicht. Die Hardware-Mechanismen beeinhalten eine automatische Wahrnehmung von Versuchen eines Programmes außerhalb eines zugeordneten Datenbereiches zu indizieren,
und die Verwendung von Kontrollbits, die durch Software gesetzt sind und das Benutzerprogramm an der Änderung von Programmwörtern, Datendeskriptoren, Segmentdeskriptoren, Speicherlinks, indirekten Referenzwörtern (IRW), Steuerwörtern und Tabellen des Software-Operationssystems hindern.
Die Operatoren des Hauptprozessormoduls 20 werden durch Vektoren, ganze Wörter, Zeichen, Bit-Gruppen und einzelne Bits in Tätigkeit versetzt. Zur Ausführung einfachgenauer und doppeltgenauer Arithmetik werden dieselben Operatorengruppen eingesetzt.
Die durch den Hauptprozessormodul 20, den Eingabe/Ausgabemodul 10 oder den Steuermodul eines Speichermoduls 30a wahrgenommenen Unterbrechungsbedingungen werden von dem Hauptprozessormodul 20 verarbeitet, der den Stapel für den Eingang in die Unterbrecher-Verarbeitungsprozedur des mehrstufigen
ίο Operationssystems vorbereitet, die erforderlichen Parameter in den Stapel plaziert und den Entry in die Unterbrecher-Verarbeitungsprozedur des Operationssystems verursacht. Durch die automatische Unterbrechung (entweder zeitlich begrenzt oder permanent, je nach der Unterbrechungsbedingung) in dem Zeitpunkt, in dem die Unterbrecherbediingung des ausgeführten Prozesses erscheint, ist die Anlage in der Lage, mit fast allen Bedingungen (normale und abnormale), die in einer simultan arbeitenden Mehrprozessoren-Umgebung auftre-
!5 ten können, umzugehen.
In einer bevorzugten Ausführungsform arbeitet der Hauptprozessormodul 20 in einem von zwei Zuständen, nämlich entweder in dem Steuerzustand, der nur von dem menrstufigen Operationssystem verwendet wird oder in dem normalen Zustand, der sowohl vom Benutzerprogramm als auch vom mehrstufigen Operationssystem verwendet wird. Die Unterbrecher-Verarbeitungsprozedur des mehrstufigen Onerationssystems wird immer im
Steuerzustand durchgeführt. Die Unterschiede zwischen den beiden Zuständen bestehen darin, daß im Steuerzustand die Verarbeitung von Unterbrecherbedingungen, die außerhalb des Hauptprozessormoduls 20 auftreten (externe Unterbrecher) nicht erlaubt, im normalen Zustand dagegen nicht verboten ist, und daß der Hauptprozessor 20 im Steuerzustand privilegierte Befehle ausführen kann, die im normalen Zustand vom Hauptprozessoi 20 nicht durchgeführt werden.
Neben diesen zwei Zuständen kann der Hauptprozessormodul 20 außerdem in einem von fünf Unterbrechermoden arbeiten, nämlich in dem Normalmode (CM 0), dem Steuermode 1 (CM 1), dem Steuermode 2 (CM 2) dem Steuermode 3 (CM 3) und dem Steuermode 4 (CM 4).
Die Durchführung der Restwertkontrolle bei allen arithemitschen Operationen und der Paritätskontrolle bei Datentransfers erleichtert die Erkennung von Fehlern innerhalb des Hauptprozessors 20 erheblich. Wenn eine
Störung innerhalb des Hauptprozessormoduls 20 auftritt, so wird ein interner Unterbrecher im Prozessoi erzeugt und die Ursache der Störung im Speicher des Fail-Registers 70 des Prozessormoduls 20 registriert.
Das Fail-Register (FR) 70, vgl. F i g. 10, befindet sich innerhalb der CU-Einheit 68 des Hauptprozessormodul: 20 und wird eingesetzt, um zusätzliche Information über den inneren Prozessoraufbau und speicherbezogen« Fehler-Bedingungen bereitzustellen.
Das FR-Register 70 kann als aus drei Teilen bestehend betrachtet werden: Ein Teil, der die innerhalb de« Hauptprozessormoduls auftretenden Fehler betrifft, ein Teil, der die speicherbezogenen Fehler betrifft und eir Bit, das nach Alarmunterbrechern ein mögliches Weiterarbeiten anzeigt.
Jeder der drei Teile wird durch die Fehlerkontrollogik 58 des Hauptprozessormoduls unabhängig gesetzt: Die drei Teile werden aber als Einheit gelesen und geleert (durch löschendes Lesen). Sofern mehr als ein, einen dei
drei Teile des Registers 70 betreffenden Unterbrecher auftaucht bevor das Register gelesen und geleert ist, wire dieser Teil vollständig mit der Information über den häufigsten Unterbrecher überschrieben. In einer Anlage, die mehr als einen Hauptprozessormodul 20 enthält, können alle Hauptprozessormoduln 20 in einem Steuerzustanc oder einem normalen Zustand und in einem der Unterbrechermodi arbeiten.
Die einzelnen Teile des CPM-Fail-Registers 70 werden folgendermaßen eingesetzt: Der prozessorinterne
Fehlerteil wird für alle prozessor-internen Fehler verwendet (prozessorinterne, speicherbezogene Fehler betref fen auch den speicherbezogenen Teil). Der speicherbezogene Teil wird außerdem für die Parität des Speichers Speicher-fail 1 und ungültige Zugriffs-Fehler eingesetzt, sofern der Parameter P2 nicht verwendet wird, ii diesem Fall sind dann alle P2 null. Der speicherbezogene Teil wird außerdem für alle Speicher-fail-2-Unterbre eher verwendet. Das Fortsetzungsbit wird nur bei Alarm- und Unterbrechern verwendet. Die Speicher-Fai]-1 und ^-Unterbrecher werden weiter unten ausführlich beschrieben.
Zusätzlich den obigen I Jnterhrecherbedingungen meldet der Speicherteil des Fail-Registers 70 außerden eine Unterbrecher-Recovery-Routine mit Hilfe' eines Steuermodulteils eines Speichermoduls 30a, der weitei unten beschrieben wird. Sofern eine Unterbrecherbedingung wahrgenommen wird, wird ein dieser Bedingunj anzeigendes Bit in das 27-Bit-Fail-Register 70 geleitet. Die Anzeige des Fehiers findet allerdings in einei
Warteschlange mit dem Operanden statt, und der Hauptprozessormodul 20 wird erst dann unterbrochen nachdem die betreffende Operation durch die Ausführungseinheit 44 beendet ist
Fehler, die intern in einem Hauptprozessormodul 20 auftreten, werden durch die im Fail-Register 70 abzuspei chernde Daten beschrieben. Fehlerbedingungen, die weitergegeben werden, enthalten: Paritäts-, Rest-, Komi nuitäts- und Dekodierfehler in der Ausführungseinheit; Warteschlange-Überschreibungs- und Restwertfehler ii
der Adresseneinheit; interne Fehler in der Programmeinheit und Speicherfehler im geschützten Speicher.
Der prozessorinterne Teil des Fail-Registers 70 nimmt Paritäts-, Rest-, Kontinuitäts-, und Dekodierfehle: wahr. Der speicherbezogene Teil des Fail-Registers 70 nimmt mehrere verschiedene Typen von Unterbrecher bedingungen wahr. Ein Anschlußfehler der während des Betriebs zwischen der CU-Einheit 68 und anderei Teilen des Hauptprozessors 20 wahrgenommen wird, wird ebenso wie ein während einem Zugriff zum Haupt
speicher 30 wahrgenommener Paritätsfehier dem Fail-Register 70 zugeführt. Außerdem wird vom Fail-Registe 70 die Unterbrecherbedingung wahrgenommen und weitergeleitet, die dann auftritt, wenn eine Adresse in Hauptspeicher 30 nicht existiert, und wenn ein »Speicherzeit AUS«-Signal im Hauptprozessor erscheint.
Der Hauptprozessormodul 20 arbeitet in dem Normalmode (CM 0) bis eine Unterbrecherbedingung wahrge
nommen wurde. Die ersten drei Steuermoden (CM 1, CM 2, CM 3) gestatten es rekursiven Versuchen, in die Hardwareunterbrecherroutine einzugehen, (d. h. in die Fehlerkontrollogik 58 des Hauptprozessormodule 20). Die Steuermode 4 (CM 4) zeigt an, daß diese Versuche nicht erfolgreich waren. Zwischen den Betriebszuständen und den Betriebsmoden des Hauptprozessormoduls 20 (CPM) besteht keine direkte Verbindung. Der Hauptprozessormodul 20 kann sich in irgend einem der vier Unterbrechermoden befinden, während er entweder im Steuerzustand oder im Normalzustand arbeitet.
Das Eingabe-/Ausgabe-Untersystem
Es wird nun auf das EingabeVAusgabeuntersystem Bezug genommen. Die primäre Funktion des Eingabe-/Ausgabeuntersystems besteht in der Steuerung und Speicherung des Transfers von Datenfeldern fester Länge zwischen dem Hauptspeicher 30 (Ebene 1) und den Speichermedien der peripheren Einrichtungen (Ebene 3) der Datenverarbeitungsanlage. Die peripheren Einrichtungen stellen die Medien dar, durch welche der Anlagenbenutzer mit der Anlage kommuniziert. In der Anlage arbeiten die peripheren Einrichtungen unabhängig von dem Hauptprozessormodul 20, sie arbeiten aber ständig unter der durch das Eingabe-/Ausgabeuntersystem ausgeübten Kontrolle und Steuerung des mehrstufigen Operationssystem. Das Eingabe-/Ausgabeuntersystem enthält einen oder mehrere Eingabe-/Ausgabemodulen 10, die als 1OM bezeichnet sind, und eine oder mehrere periphere Steuerschränke 39, vgl. F i g. 2 und 11. Das Eingabe-AAusgabeuntersystem ist in seiner Gesamtheit direkt an das Ebene-1- und das Ebene-3-Speichersystem und indirekt über das Ebene-1-Untersystem an den Hauptprozessormodul 20 angeschlossen. Innerhalb gewisser Grenzen ist die Anzahl der Eingabe-/Ausgabemoduln 10 und die Anzahl der peripheren Steuerschränke 39 innerhalb eines Eingabe-/Ausgabe-Untersystem von den Anforderungen der Benutzer abhängig. Diese Grenzen bestehen darin, daß (a) die Gesamtzahl der Hauptprozessormodulen 20 und der Eingabe-/Ausgabemodulen 10 innerhalb einer Anlage die Zahl 8 nicht übersteigen darf und daß (b) maximal 28 periphere Steuereinrichtungen 38 an einen einzelnen Eingabe-/Ausgabemodul 10 anschließbar sind.
In einer bevorzugten Ausführungsform stellt das beim Entwurf des Eingabe-/Ausgabemoduls 10 angewendete Modulkonzept eine wirkungsvolle und ökonomische Befriedigung der Anforderungen des Benutzers an die Anlage dar. Das Modulbauweise-Konzept betrifft primär die Verbindbarkeit und insbesondere die Verbindbarkeit mit peripheren Geräte, die durch die Datenservice-Unterbereiche gegeben ist. Diese Unterbereiche sind asynchron und stellen getrennte periphere Verbindbarkeit sicher. Diese Eindeutigkeit, die aus der asynchronen Natur der modularen Unterbereiche abgeleitet ist, stellt einen fail-soft-Vorteil dar. Datenservice-Störungen sind auf einen speziellen Anschlußbereich beschränkt und gestatten es daher den restlichen Anschlußeinrichtungen, ihre Arbeit tortzusetzen. Das Modulbauweise-Konzept gestattet außerdem den Einsatz zusätzlicher Datenspeicherung innerhalb ausgewählter Unterbereiche einer »device-speed«-Basis. Diese Verwendung zusätzlicher Speicherung ermöglicht es den schnelleren peripheren Einrichtungen der Anlage, mit dem Hauptspeicher 30 in einem schnelleren Mehrwort-Modus in Verbindung zu treten, wobei die phasengeordnete Speichertransfer-Eigenschaften der Anlage verwendet werden. Diese wirkungsvolle Angleichung der Geschwindigkeit der Einrichtungen an den Speicher erzeugt eine höhere Eingabe-ZAusgabemodul-Transferate.
Die Modulbauweise des Eingabe-AAusgabemoduls 10 wird durch Verwendung von Adaptern erreicht, vgl. F i g. 12. Diese Adapter sind weiter unten definiert. Der PC-Adapter A (PC-ADP-A) liefert dem ersten Steuerschrank (PCC) 39 zehn periphere Steuereinrichiungskanäle (PC) und Bereitschaftsleitungs-Einrichtungen für drei Anschlüsse. Der PC-Adapter B (PC-ADP-B) liefert dem zweiten PCC 39 zehn periphere Steuereinrichtungskanäle (PC) und Bereitschaftsleitungs-Einrichtungen für vier Anschlüsse. Der Plattendatei-Steuereinrichtungsadapter A (DFC/ADP-A) stellt vier Plattendateil-Steuereinrichtungskanäle DFC zum ersten PCC 39 her, die nur den Platten-Steuereinrichtungen zur Verfügung stehen. Der Plattendatei-Steuereinrichtungsadapter B (DFC-ADP-B) liefert vier Plattendatei-Steuereinrichtungskanäle zum zweiten PCC 39, die nur den Platten-Steuereinrichtungen zur Verfugung stehen. Der Abtastkanal-Adapter (SC/ADP) liefert Abtast-Kanaleinrichtungen für den Eingabe-/Ausgabemodul 10 zum Betreiben des Datenkommunikationsprozessors (DCP) 36 und das Plattendatei-Optimierers (DFO) 40. Der Plattendatei-Optimiereradapter (DFO/ADP) liefert zwei Plattendatei-Optimiererkanäle (DFO), der Datenkommunikationsprozessor-Adapter A (DCP) liefert einen Datenkommunikationsprozessor-Kanal (DCP) für den ersten Datenkommunikationsprozssor 36. Der Datenkommunikationsprozessor-Adapter ß(DCPZADP-B) liefert einen DCP-Kanal pro Adapter (für die DCPs 2,3 und 4 werden drei Adapter verwendet). Der Speicherkanaladapter (MB/ADP) Hefen Einrichtungen zum Betrieb des Eingabe-/ Ausgabemoduls mit einer zweiten Gruppe von acht Speichern. Der Schutzschalter-Adapter A (SW1/ADP-A) liefert Einrichtungen zum Betrieb mit zwei (2) Speichermodulen 30a. (Zwei werden für die ersten vier Speichermodulen 30a verwendet.) Der Schutzschalter-Adapter B (SWI/ADP-B) liefert Einrichtungen zum Betrieb mit zwei Speichermoduln 30a (werden für alle zusätzlichen Speichermoduien 30a eingesetzt).
Die beim Entwurf des Eingabe-/Ausgabemoduls 10 vorgesehene Modulbauweise gestattet es dem Eingabe-/ Ausgabeuntersystem, eine Vielzahl von IOM/PCC-Kombinationen zu enthalten und erlaubt daher den Anschluß peripherer Einrichtungen in vielen Konfigurationen. Als Beispiel mögücher Typen von Anschlußverbindungen zwischen den EingabeVAusgabeuntersystemen und peripheren Einrichtungen ist Fig. 10 angegeben. Das Eingabe-/Ausgabeuntersystem kann, wie in dieser F j g. gezeigt ist, über eigene und/oder gemeinsam genutzte Anschlüsse und/oder direkt mit den peripheren Einrichtungen verbunden sein.
Der Eingabe-/Ausgabemodul 10 ist so ausgebildet, daß dem Benutzer der Anlage maximaler Durchlauf und Flexibilität zukommt und dabei ein Minimum an Hauptprozessororganisation erforderlich ist. Der Eingabe-/ Ausgabemodul 10 ist dadurch gekennzeichnet, daß er mit dem Hauptprozessor 20 bei Beginn der Datenversorgung und beim Beendigen der Transfers zu den Einrichtungen asynchron arbeitet. Die Basis für diese asynchrone Betriebsweise stellt das sogenannte Abruf-Bild-Konzept dar. Im wesentlichen wird dabei der Eingabe-/Ausga-
bemodul 10 über eine Warteschlange von einem »Bild« von Eingabe-ZAusgabeanforderungen betrieben, da sich im Hauptspeicher 30 befindet. Wird eine Eingabe-ZAusgabeoperation verlangt, so ändert der Hauptprozessor- :| modul 20 das »Bild« im Hauptspeicher 30 nur in dem Umfang, der zur Eingabe der Anforderung von Interesse
ist. Der Eingabe-/Ausgabemodul 10 »verfolgt« später den Pfad des Hauptprozessors, wobei der die Eingabe-/
Ip 5 Ausgabeanforderung erkennt und auslöst. Da der Hauptspeicher 30 (in dem sich das Bild befindet) in der
f| bevorzugten Ausführungsform ein gemeinsam genutztes Gerät darstellt, können der Hauptprozessor 20 und die
K Eingabe-/Ausgabemoduln 10 asynchron zu dem Bild Zugriff erlangen und es asynchron verarbeiten. Sofern der
S Eingabe-/Ausgabemodul 10 in Betrieb gesetzt ist, fährt der Hauptprozessormodul 20 mit der Verarbeitung fort,
|| ordnet Abrufe, Prozesse etc. in Warteschlangen, so daß die Eingabe-ZAusgabemodul-Transferzeiten von und zu
tSi ίο den einzelnen Geräten asynchron sind und nicht nach Hauptprozessorzyklen ausgerichtet sind.
|ί Um diese Aufgabe wirkungsvoll ausführen zu können, enthält der erfindungsgemäße Eingabe-ZAusgabemo-
ί| dul 10 einen speziellen, festverdrahteten Multiprozessor, der das Bild bedient. Zusätzlich zu diesem Überlap-
jä pungsvorteil steigert der Eingabe-/Ausgabemodul 10 den Systemdurchfluß durch verschiedene Techniken, so
z. B. durch die Verringerung der Systemprozessor-Operationen, indem Realzeit-Dialog-Schleifen (z. B. der |s 15 Plattendateioptimierer 40) direkt und ohne Durchlauf betrieben werden, oder durch die Verringerung der
Il Systemprozessor-Operationen, indem Schlußzyklen der Geräte ablaufen, die den Durchlauf erhöhen. Außerdem
§1 läßt sich der Systemdurchfluß durch eine Aufteilung der Datenbedienung des Eingabe-/Ausgabemoduls 10 in
JJ Unterbereich erhöhen, die speziell so angelegt ist, daß sie den vier prinzipiellen Klassen von Datendurchfluß
'|< Rechnung trägt, d. h. dem schubweisen Durchlauf (Zeilendrucker, Kartenleser etc.), dem schnellen Durchlauf
ρ 20 (Plattendateien), der Datenvermittlung (Datenkommunikationsprozessor 36) und dem Realzeit-Dialog-Durch-
^ lauf (Plattendateioptimierer 40). Jeder dieser Unterbereiche ist vollständig unabhängig und arbeitet mit den
'! anderen Unterbereichen asynchron. Die Unterbereiche sind nur je einmal vorhanden und sind zur Anpassung an
j| ihre Geräteklassen gepuffert, wodurch sie es einem Eingabe-/Ausgabemodul 10 ermöglichen, mit der Durchlauf-
I; kapazität eines Speichers des Speicheruntersystems zu laufen. Erhöhter Durchfluß wird außerdem dadurch
|i 25 erreicht, daß es dem Eingabe-/Ausgabemodul 10 ermöglicht wird, einen Transferpfad zu einem Gerät auszuwäh-
*$■ len, wenn dieser Pfad verfügbar wird (im weiteren als aufgeschobene Verbindung bezeichnet).
fe Wie in F i g. 13 dargestellt ist, kann der maximale Durchlauf nur realisiert werden, wenn die Herstellung eines
Datenpfades zwischen einem Eingabe-/Ausgabemodul 10 und einer (peripheren) Einrichtung solange verzögert wird, bis diese Einrichtung zur Inangriffnahme des Jobs bereit ist. Soll z. B. die Einrichtung D2 ir. Betrieb gesetzt werden, so ist mit der Herstellung des Pfades, über den ein Prozeß an D2 geliefert werden kann, gleichzeitig ein Auswählvorgang zwischen zwei Eingabe-/Ausgabeuntersystemen (E/A-Untersystem 1 und 2) und zwischen Kanälen A und ßoder Cund Dinnerhalb der einzelnen Eingabe-/Ausgabe-Untersysteme verbunden. Wird der Pfad durch ein Programm im Voraus festgelegt, so kann sich eine Situation ergeben, in der die Einrichtung frei, der vorausgewählte Pfad dagegen nicht frei ist. Dadurch würde die Ausführung eines Abrufes unnötig verzögert, sofern kein weiterer Pfad vorhanden wäre.
Die verzögerte Herstellung von Pfaden durch Programme erfordert allgemein, daß der Hauptprozessormodul 20, der den Job begann oder auslöste, solange in Betrieb bleibt, bis die angesteuerte Einrichtung erreicht ist. Da dadurch der Parallelbetrieb der zentralen Anlage und des Eingabe-/Ausgabeuntersystems reduziert wird, ist es effektiver, wenn die Eingabe-/Ausgabemodulen 10 die Pfadauswahl treffen. Die gesamte Systemprozessorzeit, die zur Ausführung einer E/A-Operation erforderlich ist, ist dadurch auf eine Zeit beschränkt, die ein Hauptprozessormodul 20 benötigt, um einen Eingabe-/Ausgabe-Abruf in dem Ebene-1-Speicher aufzubauen und in eine Warteschlange zu bringen. Wenn die E/A-Abrufe einmal in einer Warteschlange sind, so werden sie von einem Eingabe-ZAusgabemodul 10 unabhängig von irgendwelchen Hauptprozessormodul-Aufgaben bedient, sobald ein Pfad zu der gewählten Einrichtung verfügbar ist.
Damit der Hauptprozessormodul 20 E/A-Anforderungen in eine Warteschlange bringen, die Eingabe-ZAusgabemoduln 10 Pfade auswählen und die Anforderungen oder Abrufe bedienen kann, muß eine Liste von Einheiten-Tabellen Wörter (UT), (die angeben, welche Kanäle für die E/A-Anforderungen eingesetzt werden) und eine Tabelle der E/A-Steuerblock-Basisadressenzeiger (lOCB), (Warteschlangekopf- und Warteschlangeschwanz-Tabellen) zu Beginn (kalter Start) in den Ebene': I-Speicher. Diese Tabellen ermöglichen es jedem Eingabe-ZAusgabemodul 10, die von ihm bedienbaren Einrichtungen und die Ordnung oder Priorität der Austauscheinrichtungen zu kennen, sie bilden den von den Hauptprozessormoduln 20 verwendeten Mechanismus, um die Anforderungen 'η Warteschlangen anzuordnen. Wenn eine Anforderung verarbeitet wird (oder der Beginn eines E/AProzesses), st- erfolgt durch einen Eingabe-/Ausgabemodul 10 ein Datentransfer und der Hauptprozessormodui 20 muß folgende Operationen ausführen: Er muß einzelne oder mehrere Anforderungen aufbauen, die die zur Beendigung des Jobs erforderlichen Operationen explizit definieren; er muß (b) die Anforderungen in dem Ebene-1 -Speicher speichern und (c) die zur Bedienung der Job-Anforderungen fähigen Eingabe-/Ausgabemodulen über die Ebene-1 -Speicherplätze informieren, in denen die Anforderungen gespeichert sind.
Die Anforderungen werden dann in dem Ebene-1-Speicher solange gelassen, bis ein Eingabe-/Ausgabemodul 10 bereit ist, sie zu bedienen. Alle E/A-Anforderungen werden auf der als Hausadresse-Ebene bezeichneten Ebene gemacht Das heißt, jeder Prozessor, der zur Durchführung von E/A-Anforderungen auffordert, muß eine Einheiten-Bezeichnungsnummer (UD) zur Verwendung als Index in die Einheiten-Tabelle (UT) spezifizieren und eingeben. Die Einheiten-Tabelle wird dann zusammen mit der UD-Nummer verwendet, um die Anforderungen an die angeforderte Einrichtung in eine Warteschlange einzugeben. Nach Beendigung jeder E/A-Anforderung bestimmt der Zustand des IOCB-Software-attention-Bits oder des Warteschlangeanfang-Unterbrecherbits (SQH), ob die Eingabe/Ausgabemodulen den Hauptprozessor 20 von dem beendeten Zustand unterrichten. Nachdem also die Anforderung einmal in eine Warteschlange gebracht wurde, ist die Systemsoftware zur Durchführung anderer Aufgaben frei, während die E/A-Anforderung(en) vervollständigt werden.
In der bevorzugten Ausführungsform hängt die Transferrate der Eingabe-/Ausgabemoduln 10 von dem
modularen Aufbau des Eingabe-/Ausgabemoduls 10 und den Geschwindigkeiten der Speicher ab. Fig. 14 gibt die Zusammensetzung der Transferrate eines Eingabe-/Ausgabemoduls 10 wieder, wobei die oben beschriebenen Baustein-Adapter mit enthalten sind, und ein phasenorganisiertes Speichersystem mit einem 1,5 Mikrosekunden-Zyklus verwendet wird. In Fig. 15 ist ein Diagramm eines Eingabe-ZAusgabe-Untersystem-Bildes (IOSM) 312 dargestellt, welches für den in F i g. 13 angegebenen Aufbau des E/A-Untersystems erforderlich ist. Wie sich der Fig. 15 entnehmen läßt, ist das lOSM-Bild 312 aus einer Hausadresse (HA) 314, einer Einheiten-Tabelle (UT) 316, der durch einen Kopf 318 (IOQH) und einen Schwanz (IOQP) 320 definierten Warteschlangetabelle, dem Status-Warteschlangekopfteil (SQH) 322 und einem Eingabe-/Ausgabe-Steuerblock (lOCB) 324 zusammengesetzt. Die folgenden Absätze sind einer Beschreibung dieser Elemente gewidmet.
Die Hausadresse 314 besteht aus einem Software-aufgebauten Grundwort, welches zur Kommunikalion mit einem Eingabe-/Ausgabemodul 10 verwendet wird. Die Hausadresse 314 enthält E/A-Befehl-Grundfelder, die, wenn sie dekodiert sind, die IOM-Logik veranlassen, die IOM-Operationen zu beginnen. Das Hausadressenwort wird in einem Adressenspeicherplatz des Ebene-1-Speichers gespeichert. Die Felder des Hausadressenwortes sind in F i g. 16 dargestellt und in Tabelle 1 definiert.
Tabelle 1
Definition des Hausadressenfeldes
Bit(s)
Funktion
Parität (51) i'ennbit (50-48) Sperrung (47)
Bits (46 bis 44) Steuern (43 bis 40) Bits (39 bsi 36)
Einheiten-Bezeichnung (UD) (35 bis 28)
Kanalnummer (27 bis 23) Bits (22 bis 20)
HA, SQ, UT oder QH (19 bis 0)
liefert eine ungerade Parität für das transferierte Wort kennzeichnet das Wort als ein einfachgenaues (000) Wort
sofern durch Software gesetzt, gibt es an, daß die HA-Wörter zur IOM-Verwendung zur Verfügung stehen. Wird zurückgesetzt, wenn iOM die HA-Wörter bedient
nicht verwendet
Definieren die Steuercodes des H A-Wortes
nicht verwendet
8-Bit-Code, wird mit der UT-Basisadresse verwendet, um aus dem Ebene-1-Speicher das UT-Wort für die in Betrieb zu setzende Einrichtung zu indizieren und zu holen, wird mit der QH-Basisadresse verwendet, um das QH-Wort, welches zur lOCB-Basisadresse zeigt, aus dem Ebene-!-Speicher zu holen.
identifiziert einen der 32 möglichen lOM-Kanäle nicht verwendet
werden zur Herstellung einer neuen Basisadresse oder, während einer Kaltstart-Operation, zum Transfer folgender Basisadressen in das 1OM eingesetzt:
Alle vier Register sind durch einen Befehl veränderlich, nachdem das System in Betrieb gesetzt wurde.
a) HA: 20—Bitbasisadresse, wird durch eine Kaltstartoperation gewonnen.
b) UT: 20-Bit-Adresse, die die Basisadresse von UT anzeigt
c) SQ: eine 20-Bit-Adresse, die auf ein Status-Warteschlange-Kopfteil (SQH) zeigt. Das SQH enthält die Kopf- und Schwanzadresse der Status-Warteschlange.
d) QH: eine 20-Bit-Adresse, die die Basisadresse der IO-Warteschlangetabelle angibt und zu 256 hinzuaddiert wird, um auf den IO-Warteschlangeschwanz zu zeigen.
Für jede periphere Einrichtung (maximal bis zu 255 Einrichtungen) ist in dem E/A-Untersystem ein UT-Wort erforderlich. Jedes UT-Wort stellt das durch den IOM 10 verwendete Hauptelement dar und dient als E/A-Anforderung. Jedes UT-Wort für einen Austausch enthält Zeiger für die erste Einheitenbezeichnungsnummer und die nächsten Einheitenbezeichnungsnummern (NUD) und deren zugehörige Kanalnummer-Basisadressen-Tabellierung für den Typ von Einrichtungen, der für die E/A-Anforderung verwendet wird. Die verschiedenen Felder in der Einheitentabelle UT sind in F i g. 17 gezeigt und in Tabelle 2 definiert.
Die Formate und Definitionen des Eingabe-ZAusgabe-Warteschlangenkopfes (IOQH) und des Eingabe-/Ausgabe-Warteschlangeschwanzes (IOQT) sind in F i g. 18 und 19 und in den Tabellen 3 und 4 angegeben.
15
Eine Status-Warteschlang? (SQ) besteht aus beendeten E/A-Steuerblöcken 324 (IOCB), die von einem IOM 10 zusammengesetzt sind. Wenn eine Anforderung beendet ist, so fügt dieser Eingabe/Ausgabemodul (IOM) 10 den Endzustand in das fünfte Wortfeld des E/A-Steuerblocks (IOCB). Der IOCB wird dann von der Einheiten-Warteschlange herausgenommen und an die Status-Warteschlange (SQ) angehängt. Wenn das Software-attention-Bh im E/A-Steuerwort (IOCW) gesetzt ist (durch Software gesetzt), oder wenn das Unterbrecherbit in dem SQH zu der Zeit gesetzt ist, in der der IOCB an die SQ angehängt wird, so wird ein Kanalunterbrechersignai vom 1OM iö an den Hauptprozessor 20 abgegeben. Wenn ein nicht kanalbezogener Fehler wahrgenommen wird, so sendet eier IOM 10 ein lOM-Fehler-Unterbrecru rsignal und kein Kanalunterbrechersignai an den Hauptprozessor iö.
Tabelle
Definition des Einheiten-Tabellenwortes
Bit(s) i-unkiion
Parität (51) Kennbit (50 bis 48) Sperrung (LK) (47) Magnetband (MGT) (46)
Plattenstapel (DSPK) (45)
Bits (44-40)
Plattendateioptimierer (DFO) (39)
Exchange (EX) (38)
Job (J B) (37)
belegt (BZ) (36)
*) Erste Einheiten-Bezeichnung
(FUD)(35bis28)
Kanalnummer-Basisadresse 3d (27 bis 23)
*) Letzter Kanal des Exchanges (LCEX)(22und21)
Bits (20 bis 17) Letzte Einheit (LST) (16)
stellt eine ungerade Parität für das zu transferierende Wort her
kennzeichnet das Wort als ein einfachgenaues (000) Wort
gibt an, sofern gesetzt, daß das UT-Wort weiterhin verarbeitet wird
gibt an, sofern gesetzt, JaB diese Job-Anforderung ein Magnetband betrifft (durch Software gesezt)
gibt an, sofern gesetzt, daß diese Job-Anforderung einen Plattenstapel betrifft (durch Software gesetzt)
nicht verwendet
gibt an, sofern gesetzt, daß die Einheit durch ein DFO gesteuert ist. Sofern dieses Bit gesetzt ist (durch Software), wird kein »ring walk« ausgeführt.
gibt an, sofern gesetzt, tiüii ciie Einheit mit einem Exchange verbunden ist. Sofern dieses Bit gesetzt ist (und bei gesemem Job-Bit), wird ein »ring w;!k« ausgeführt (das Bit wird durch Software gesetzt). Wird nicht verwendet, sofern Bit 39 gesetzt ist.
gibt an, sofern gesetzt, daß alle mit dieser Anforderung zusammenhängende Kanäle belegt sind, und daß für diejenige Einrichtung, für die der Job ausgeführt werden soll, keine weitere Anforderung in eine Warteschlange gebracht wird, wenn ein Kanal frei wird.
Wird nur mit Exchange-Einrichtungen (Bit 38=1) und nicht mit dem DFO (Bit 39) verwendet.
gibt an, sofern gesetzt, daß diese Einheit belegt ist (durch den 1OM gesetzt)
zeigt auf die erste Eir.heiten-Bezeichp.isrigsnumrmjr, die sich auf den Exchange bezieht.
für nicht im Exchange befindliche Einheiten: die Nummer des Kanals, mit dem die Einheit verbunden ist. Für im Exchange befindliche Einheiten: der Kanal mit der niedersten Nummer, an den der Exchange angeschlossen ist.
gibt die zwei am wenigstens signifikanten Bits der letzten Kanalnummer des Exchanges a.p, für den die Einrichtung eingesetzt ist.
nicht verwendet
gibt an, sofern gesetzt, daß die letzte Einheiten-Bezeichnung im Exchange ist.
16
Tabelle 2 (Fortsetzung)
Bit(s)
Funktion
*) Nächste Einheiten-Bezeichnung teigt auf die nächste Einheiten-Bezeichnungsnummer, die mit dem Ex-(NUD) (15 bis 8) change verbunden ist
Verwendeter Kanal (9 bis 3)
Bits (2 bis 0)
*) Gelten nur für Exchange-Einrichtungen.
Tabelle 3
Warteschlange-Kopf (1OQH)
diese Bits geben den Kanal an, der zur Bedienung der Einrichtung verwendet wurde (durch den IOM gesetzt)
nicht verwendet
Bit(s)
Funktion
Parität (51) Kennbits (50 bis 48) (47 bis 20) (19 bis 0)
Tabelle 4 Warteschlange-Schwanz (IOQT)
Hefen eine ungerade Parität für das zu transferierende Wort
kennzeichnet das Wort als einfachgenaues (000) Wort
nur für Software-Verwendung
Adresse des ersten IOCB. Sofern die Bits (19 bis 0) während des Starts einer E/A-Operation null sind, liegt eine anormale Bedingung vor und es wird ein Fail-Wort zu der Status-Warteschlange gesendet.
Bits(s)
Funktion
Parität (51) Kennbits (50 bis 48) (47 bis 20) (19 bis 0)
liefert eine ungerade Parität für das zu transferierende Wort
kennzeichnet das Wort als einfachgenaues (000) Wort
zur Software-Verwendung
Adresse des letzten IOCB.
Ein Status-Warteschlange-Kopfteil (SQH), vgl. F i g. 20, ist jedem IOM 10 zugewiesen, der von einem SQ-Register 326 des IOM 10 adressiert wird. Die SQH dient als Monitor der Status-Warteschlange (SQ) und wird von dem IOM 10 zum Aufbau und Zugriff in die Warteschlange eingesetzt. Wenn eine Anforderung endet, wird der SQH verriegelt-abgerufen und bezüglich einer Nullbedingung getestet (Bit 41 zurückgesetzt). Sofern eine Nullbedingung wahrgenommen wird, wird die Adresse des beendeten IOCB in den Kopf- und Schwanzfeldern des SQH gespeichert und das Nullbit wird gesetzt. Wenn das Nullbit als gesetzt wahrgenommen wird, dann wird die Adresse des beendeter· IOCB in das nächste Verbindungsfeld (NL) des zuletzt beendeten IOCB und außerdem in das Schwanzadressenfeld des SQH eingefügt. Die verschiedenen Felder des SQH-Wortes sind in Tabelle 5 definiert.
In einer bevorzugten Ausführungsform besteht ein IOCB, vgl. F i g. 21, aus einem Block von sechs (oder mehr) 51-Bit-Wörtern. Diese Wörter werden zur Auslösung von Servieranforderungen (IOCW), zur Vermittlung von Serviceanforderungen, zur Weiterleitung von Anforderungen und Anforderung-Endzuständen verwendet. Wenn eine Anforderung beendet ist, so führt ein Teil des Eingabe/Ausgabemoduls 10 die Einfügung der Anforderung durch und fügt ein Anforderung-Endbit in einen aktiven Kanalstapel (ACS) ein. Der Eingabe/Ausgabemodul 10, der den IOCB ausführte, holt sich dann die passende Resultat-Deskriptorinformation aus dem 1OM 10, verwendet die Resultat-Deskriptorinformation, um ein Resultat-Deskriptwort (RD) zu bilden und speichert dieses Resultatdeskriptorwort in dem sechsten Wortfeld des IOCB. Der beendete IOCB wird dann an die Statu Warteschlange (SQ) angefügt. Um die Beendigung einer Anforderung abzuschließen, wird der Warteschlangckopf (QH) und der Warteschlangeschwanz (QT) der QH-Tabelle auf null gesetzt, sofern es sich um die letzte Anforderung aus dieser Einheit handelte. Das UT-Wort für diese Einrichtung wird unverriegelt gespeichert. Sofern es mehrere Anforderungen gibt, wird die Adresse des nächsten IOCB in den Warteschlangekopf (QH) eingefügt.
17
10
20
30 35 40 45 50 55 60 b5
Tabelle
Status-Warteschlangekopfteil
Bi«s) Funktion
Parität (51) Kennbits(50bis48) Sperrung (LK.) (47) Bit (46) Änderung (45)
CPM-Nummer (44 bis 42)
Null (41)
Unterbrecher (40)
Kopf (39 bis 20)
Schwanz (19 bis 0) liefert ungerade Parität für das zu transferierende Wort
kennzeichnen das Wort als einfachgenaues (000) Wort
gibt an, sofern gesetzt, daß das SQH-Wort weiter verarbeitet wird
nicht verwendet
benachrichtigt die Software, sofern gesetzt, daß ein Status-Änderungsvektor erschienen ist
zeigt auf den CPM, der durch einen Kanalunterbrecher oder Zählerunterbrecher unterbrochen wird.
gibt an, wenn eine 0 vorhanden ist, daß die Warteschlange leer ist, sofern eine 1 vorhanden ist, daß die beendeten Jobs sich in der Warteschlange befinden.
gibt an, sofern gesetzt (durch Software), daß das CPM-Nummernfeld bei Jobende unterbrochen werden soll (wird durch IOM zurückgesetzt)
eine 20-Bitadresse, die auf den IOCB der ersten fertigen Einrichtung zeigt (wird nicht verwendet, sofern Bit 41 =0)
eine 20-Bitadresse, die auf den IOCB der letzten fertigen Einrichtung zeigt (wird nicht verwendet, sofern Bit 41 =0)
Die Steuerung wird dann der E/A-Startlogik übertragen, um die nächste Anforderung auszulösen. Die verschiedenen Felder des IOCB sind in Tabelle 6 definiert. Das lOCW, welches in F i g. 22 dargestellt ist, ist das vierte Wort in dem IOCB. Das Eingabe/Ausgabe-Steuerwort (lOCW) enthält ein Standardsteuerfeld (SCF), welches Information enthält, die für die Datenservicebereiche (wie z. B. das Speicher-Schutzbit, ein Speicher-Versagungsbit und ein Software-tensionsbit des 1OM 10) nützlich ist. Die verschiedenen Felder des lOCW sind in Tabelle 7 definiert.
Tabelle 6
Eingabe/Ausgabe-Steuerblock (IOCB)
Wortfeld Funktion
E/A-Verkettung (NL)
Sidelink
Pufferdeskriptor
lOCW Ebene-1 -Adresse des nächsten IOCB, die für diese Einrichtung (Bits 0 bis 19) in eine Warteschlange eingereiht ist
Verbindung zu einem anderen Job in dieser Seitenkette braucht nicht für dieselbe Einheit sein. Enthält:
a) Kennbits, nicht verwendet
b) Einheiten-Bezeichnung für die der nächste IOCB in eine Warteschlange gebracht wird (Bits 40 bis 47)
c) Adresse des nächsten IOCB in der Seitenkette (Bits 20 bis 39)
d) Bits 8 bis 19, nicht verwenden
e) IOM-Maske (Bits 0 bis 7), gibt an, welche 1OMs den sidelinked-Job ausführen könnten
Datendeskriptor, der zu dem Puffer zeigt, enthält:
a) Bereichs-Basisadresse (Bits 0 bis 19); diese 20-Bitadresse zeigt den Ebene-1-Speicherplatz an, an dem der mit dieser Einrichtung in Zusammenhang stehende Puffer gefunden werden kann
b) Pufferlänge (Bits 20 bis 39); gibt die Pufferlänge (in Wörtern) des Hauptspeichers an
dieses Wortfeld definiert den E/A-Job für den PCI oder DFI-Teil des IOM. Für eine detaillierte Beschreibung des Formats und der Definition des lOCW-lnhaltes, vgl. die F i g. 9 bis 7 und die Tabellen 9 bis 7.
18
Tabelle 6 (Fortsetzung) Wortfeld
Funktion
CDL
IORD
dieses Wortfeld enthält das Kanalbezeichnungs-ebeneninformationswort (CDL), welches zu dem Kanal transferiert wird, der für die Operation ausgewählt wurde
die Beendigung (normal oder Fehler) der Operation veranlaßt den 1OM, in dieses Wortfeld die Resultat-DeskriptorinformaUon (RD) zu übertragen.
Hinweis: Der Obersetzer addiert bei der endgültigen Adresse (Bereichsbasisadresse + Puiferlänge).
Tabelle 7
IOCW
Die verschiedenen Felder des IOCW sind folgendermaßen definiert:
Bit(s)
Funktion
20
Parität (Sl)
Kennbits (50 bis 48) ASCII (ASC) (47) Link (LX) (46)
Software Attention (SA) (45) Eingabe/Ausgabe (E/A) (44)
Speicher-Verhinderung (MINH) (43)
Übersetzen (TRA) (42) Frame-Länge(FML)(41)
Speicher-Schutz (MP) (40) Rückwärts/Vorwärts (B/F) (39)
Kennbit-Steuerung (TCTL) (37 und 36)
liefert eine ungerade Parität für das zu transferierende Wort
kennzeichnet das Wort als ein einfachgenaues (000) Wort
gibt an, sofern gesetzt, daß eine ASCII-Übersetzung erforderlich ist
gibt an, sofern gesetzt, daß ein Link zu einem anderen IOCW erforderlich ist (Die Adresse des neuen JOCW wird in den Bits 0 bis 19 gespeichert)
gibt an, sofern gesetzt, daß der IOM den CPM über die Kanal-Unterbrecherleitung zu dem Zeitpunkt unterbricht, an dem der IOCB in die Status-Warteschlange (SQ) eingefügt wird
gibt an, sofern gesetzt, daß der Transfer eine Eingabeoperation darstellt. Gibt an, sofern zurückgesetzt, daß der Transfer eine Ausgabeoperation darstellt
(35 bis 0)
gibt an, sofern gesetzt, daß keine Daten aus oder in den Speicher transferiert werden
gibt an, sofern gesetzt, daß eine interne IOM-Übersetzung benötigt wird
gibt an, sofern gesetzt, daß die Frame-Länge 8-Bit beträgt und, sofern zurückgesetzt, 6-Bits beträgt
gibt an, sofern gesetzt, daß der Ebene-1-Speicher während eines Schreibvorpanges nicht in einen Speicherplatz einspeichert und sendet ein Fail-Signal, wenn das Sp";· !.erwort des Bits 48 mit einem Wert 1 enthält
gibt, sofern gesetzt, eine Rückwärtsoperation einer Bandeinheit und, sofern zurückgesetzt, eine Vorwärtsoperation einer Bandeinheit an.
besitzen folgende Redeutung:
37 36
0 0 speichere einfachgenaue Kennbits
0 1 speichere doppelt genaue Kennbits
0 1 speichere Programm-Kennbits
1 0 Kennbit-Feld-Transfer
nicht verwendet
30
40 45 50 55 60
Im folgenden wird nun eine allgemeine Beschreibung der Funktionsweise des Eingabe/Ausgabemoduls 10 vorgenommen. Der Eingabe/Ausgabemodul 10 und die zugehörigen peripheren Steuerschränke 39 werden zur Steuerung des Datentransfer zwischen den Ebene-1 -Speichermedien und allen peripheren Einheiten unabhängig von den Hauptprozessoren 20 eingesetzt. Die Eingabe/Ausgabemodulen 10 empfangen Befehle von den
19
Hauptprozessoren 20 und führen diese Befehle in Verbindung mit den peripheren Steuereinrichtungen aus. Nach Beendigung eines Datentransfers erzeugt der Eingabe/Ausgabemodul 10 Beendigungsbefehle und speichert Beendigungsinformation in einen vorgegebenen Stapelbereich, der im Eingabe-/Ausgabemodul 10 liegt. In einer bevorzugten Ausführungsform ist jeder Eingabe-/Ausgabemodul 10 in der Lage, bis zu 28 simultane Eingabe-/Ausgabevorgänge von bis zu 28 peripheren Steuereinrichtungen (PC) 38 zu verarbeiten und maximal bis zu 255 peripheren Einrichtungen, vier Datenkommunikationsprozessoren 36 und vier Plattendateioptimierer (DFO) 40 zu versorgen. Physikalisch kann jeder Eingabe-/Ausgabemodul 10 als in die folgenden sechs Funktionalbereiche unterteilt betrachtet werden, vgl. Fig.23: (1) der Übersetzter 73, (2) die Speicheranschlußeinheit (MIU) 74, (3) die Abtastanschlußeinheit (SCI) 76, (4) die Datenkommunikationsprozessor-Speicheranschlußeinheit (DCI) 78, (5) die periphere Steueranschlußeinheit (PCI) 80 und die Plattendatei-Anschlußeinheit (DFI) 82.
Der Übersetzter 72 ist ein Prozessor für spezielle Zwecke, er ist in der Lage, speziell geschaltete Mikrosequenzen durchzuführen. Er stellt denjenigen Teil des Eingabe-/Ausgabemoduls 10 dar, der die E/A-Anforderungen bedient, die zur Inbetriebnahme der peripheren Einrichtungen erforderlichen Anforderungsdeskriptoren erzeugt und die Beendigung der Anforderungen und der Fehler-Zustandsbedingungen an den Hauptprozessor 20 übermittelt. Der Betrieb des Übersetzers ist so verschlüsselt, daß er auf bestimmte deklarierte Flag-Bedingungen anspricht.
Die Speicheranschlußeinheit (MIU) 74 führt alle Datentransfers von der Ebene-1 zur Ebene-3 zwischen dem Eingabe-/Ausgabemodul 10 und bis zu 3 Ebene-1-Speichersteuereinrichtungen (MCM) durch. Die MIU 74 nimmt Fehlerbedingungen des Ebene-!-Speichers wahr und überträgt diese an die anfragende Funktionseinheit
des Eingabe-/Ausgabemoduls 10 und an den Übersetzter 72. Die MIU 74 verarbeitet die durch die Funktionseinheiten des Eingabe-/Ausgabemoduls 10 erfolgenden Zugriffsanforderungen an den Ebene-1-Speicher auf einer vorgegebenen Prioritätsbasis. Die erste Priorität wird den Datenserviceanforderungen eingeräumt, die zweite Priorität ist den Anforderungen der Datenkommunikationsprozessor-Anschlußeinheit gegeben. Die dritte Priorität ist den Übersetzeranforderungen eingeräumt.
Die Abtastanschlußeinheit (SCI) 76, die die Datenkommunitkationsprozessor-Speicheranschlußeinheit (DCI) 78 enthält, schließt Speicher und Steuereinrichtungen ein, die zur Herstellung eines Abtastkanals 79 erforderlich sind, der mit vier Datenkommunikationsprozessoren (DCP) 36 und vier Plattendateioptimierer (DFO) 40 kommuniziert. Der Abtastkanal 79 zu den vier DFOs 40 wird von zwei Eingabe-/Ausgabemodu!n !0 gleichzeitig benutzt. Der Übersetzer 72 veranlaßt Abtastoperationen durch Übermittlung eines Abtaststeuerwortes zur Abtastanschlußeinheit (SCI) 76. Wenn eine Abtast-Aus-Operation gefordert wird, so wird der Übersetzer 72 davon in Kenntnis gesetzt durch den durch die Abtast-Anschlußeinheit 86 erfolgenden Abschluß der Abtastoperationen. Wenn eine Abtast-Ein-Operation gefordert wird, gibt der Übersetzer 72 die Abtast-Ein-Information ir das Register, welches im Übersetzer 72 des B-Register genannt wird. Wenn durch die Abtast-Anschlußeinheit 76 ein Fehler wahrgenommen wird, so wird diese Fehlerinformation von der Abtast-Anschiußeinheit 76 in das
F-Register bezeichnete Register des Übersetzers 72 gegeben. Die von der Abtast-Anschlußeinheit 76 wahrge nommenen Fehler stellen sogenannte »nicht bereit«-Fehler dar, die dann vorkommen, wenn ein über der Abtastkanal 79 adressierter Plattendateioptimierer 40 oder ein Datenkommunikationsprozessor 36 nicht mil einem »Bereit«-Signal innerhalb von drei Mikrosekunden antwortet, sie stellen soganannte Modul-Fehler dar die dann vorkommen, wenn ein über den Abtastkanal 79 adressierter Plattendateioptimierer 40 oder Datenkom· munikationsprozessor 36 einen Fehler bei einer Abtast-Aus- oder einer Abtast-Ein-Operation wahrnimmt.
Die Datenkommunikationsprozessor-Speicheranschlußeinheit (DCI) 78, die einen Teil der SCI 76 darstellt enthält die zum Anschluß mit den Speichersammelleitungen von vier Datenkommunikationsprozessoren (DCP 36 erforderliche Speicherkapazität und Steuereinrichtungen. Die durchgeführten Speichertransferoperationer schließen folgende Operationen ein: (a) Holen (ein Wort); (b) Speichern mit schnellem Abruf (ein Wort); und (c geschütztes Speichern mit schnellem Abruf (ein Wort). Alle von der DCI78 oder der Speicheranschlußeinheit !<■ wahrgenommenen Fehler bei einer DCI-Speicheranforderung werden in den Datenkommunikationsprozessoi 36 umgesetzt, der die Speicheranforderung ausgelöst hat.
Die periphere Steueranschlußeinheit (PCI) 80 ermöglicht es, an den EingabeVAusgabemodul 10 bis zu 2( periphere Steuereinrichtungen (PC) 38 anzuschließen und den Datentransfer zwischen diesen Steuereinrichtun
gen und der Speicheranschlußeinheit (MIU) 74 durch den Übersetzer 72 zu koordinieren. In der bevorzugter Ausführungsform benötigt jede periphere Steuereinrichtung (PC) 38 zum Transfer der Daten einen Servicezy klus von einer Mikrosekunde Dauer. Durch eine Überlappung der Servicezyklen und durch die Verwendung lokaler Speicherfenster (eine 1 -Taktperiode, während der eine bestimmte Operation durchgeführt werden kann soferti keine höhere Priorität angefordert wird), ist es möglich, alle zwanzig Kanäle im Multiplexverfahren zt betreiben.
Mit -der Plattendatei-Anschlußeinheit (DFI) 82 können bis zu acht Plattendateilsteuergeräte (DFC) 81 mi einem fciingabe-/Ausgabemodul 10 verbunden werden.
Die DFI82 enthält zwei unabhängige modulare Teile, von denen jeder vier Datenkanäle, die an je ein DFC 8: angeschlossen sind, bedient Jeder Teil steuert über einen 16-Bit-Datenkanai die Datentransfers mittels de DFCs mit einer Transferrate von zwei 8-Bit-Zeichen pro Transferzeit Die Ebene-1-Transferrate beträgt zwe Worte (2 χ 48 Bits) pro Transferzeit Jeder Datenkanal enthält einen Vier-Wort-Datenspeicherbereich, einei sogenannten lokalen Datenspeicher (LMD). Auf Befehl des Übersetzers 72 löst die Plattendatei-Anschlußeinhei ten 82 Anforderungen mit den zugehörigen Plattendateisteuergeräten (DFCs) 81 aus. Während Datentransfer operationen tritt die Plattendatei-Anschlußeinheit 82 mit der Speicheranschlußeinheit 74 in Verbindung, un
einen Ebene-1 -Zugriff zu erhalten. Bei Jobende übermittelt die Plattendatei-Anschlußeinheiten 82 dem Überset zer 72 den Endstatus und wartet dann auf eine erneute Inbetriebnahme.
Der gesamte Fluß der Steuervorgänge zwischen dem Hauptspeicher 30 und bis zu 255 peripheren Einrichten gen erfolgt über den als Speicheranschlußeinheit 74 bezeichneten Unterbereich des IOM, den als Übersetzer T.
bezeichneten Unterbereich des IOM und einen der vier lOM-Unterbereiche, die pufferbar sind, um sich der ihnen zugeordneten Klasse von Datentransfers anzupassen, vgl. F i g. 24. Der Übersetzer 72 bringt den Steuervorgang für eine Jobanfertigung je nach der Datenklasse (d. h. schubweise verarbeitete Daten, schnelle Daten, Datenkommunikation oder Realzeit, interaktive Daten) zu einem dieser vier Unterbereiche. Der gesamte Datenfluß zwischen dem Hauptspeicher 30 und den peripheren Einrichtungen erfolgt über geeignete Datentransferunterbereiche und/oder die MIU 74; der Übersetzer 72 wird hierfür nicht eingesetzt und ist zur Steuerung zusätzlicher Jobanforderungen frei. Wenn ein Datentransfer vollständig ist. wird allerdings dem Übersetzer 72 die Kontrolle über das Jobende übertragen, und der Steuerfluß zum Hauptspeicher 30 erfolgt über geeignete Datentransferunterbereiche, den Übersetzer 72 und die MIU 74.
Typische periphere Einrichtungen, die den einzelnen Datentransferklassen zugeordnet sind, sind in Fig. 25 dargestellt. Außerdem sind in F i g. 25 die Namen der Datentransferunterbereiche angegeben, auf die im weiteren Bezug genommen wird. Im folgenden wird eine kurze Beschreibung der Anschlußeigenschaften dieser Unterbereiche und ihrer physikalischen Beziehung zu typischen peripheren Einrichtungen gegeben. Diese Beschreibung nimmt Bezug auf F i g. 3, in der die Anschlußeigenschaften für den Fall angegeben sind, daß zwei maximal ausgelegte Eingabe-/Ausgabemodulen 10 und geeignete Exchanges eingesetzt werden. Es sei bemerkt, daß bis zu 28 peripheren Steuereinrichtungen 38 (DFOs) und DCPs sind hierin nicht eingeschlossen) an einen einzigen IOM 10 anschließbar sind.
Die periphere Steueranschlußeinheit (PCI) 80 eines einzelnen IOM enthält je nach den Anforderungen des Benutzers ein oder zwei Anschluß-Bereiche. Jeder dieser Bereiche besitzt eine 10-Kanalanschlußkapazität, für eine maximale Gesamtkapazität von bis zu 20 Kanälen pro Eingabe-/Ausgabemodul 10.
In einer bevorzugten Ausführungsform kann jeder 10-Kanalbereich einer PCI 80 einen einzelnen peripheren Steuerschrank (PCI/PCC)39 bedienen, der bis zu t> Kanäle für Groß-Steuereinrichtungen und bis zu 5 Kanäle für kleine Steuereinrichtungen enthält, vgl. F i g. 2. In jedem der PCC-Steuerschränke 39 sind die großen Kanäle mit 0 bis 4 nummeriert und die kleinen Kanäle mit 5 bis 9. Jede beliebige Kombination von fünf kleinen Steuereinrichtungen kann in einem PCI/PCC-Steuerschrank 39 untergebracht sein. Die großen Steuereinrichtungen wie die Magnetbandsteuerung (MTC) können direkt an die peripheren Einheiten angeschlossen sein, oder, nur im Fall der MTC, über Vermittlungseinrichtungen angeschlossen sein. Alle nichtverwendeten Kanäle im PCC-Steuerschrank 39 werden leer gelassen. Die periphere Steueranschlußeinheit 80 verbindet alle zwanzig Kanäle im Multiplexverfahren durch Erzeugung sich überlappender Datenservicezyklen von einer Mikrosekunde Dauer und durch die Verwendung von »Fenstern« in einem eigenen lokalen Speicher, wie oben beschrieben. Die typische Konfiguration, vgl. F i g. 3, d. h. die Verwendung von zwei Eingabe-/Ausgabemodulen 10 und geeigneter Vermittlungseinrichtungen (4 χ 16) ermöglicht den Zugriff von 64 Magnetbandeinheiten (MTU) an jeden der beiden Eingabe-/Ausgabemodulen 10. Wie in F i g. 3 dargestellt, besitzt der als Nr. 1 bezeichnete Eingabe-/Ausgabemodul Zugriff zu einer zusätzlichen nicht austauschbaren Magnetbandeinheit 83. beide Eingabe-/Ausgabemodulen besitzen in dieser Figur zu SPO-Einheiten 85 über die Einfachleitung-Steuereinrichtungen (SLC) 87.
Die Plattendatei-Anschlußeinheit (DFI) 82 enthält je nach den Anforderungen der Benutzer entweder einen oder zwei Anschlußbereiche. Jeder dieser Bereiche besitzt eine Anschlußkapazität von 4 Kanälen, mit einer gesamten Plattendatei-Kanalkapazität von 8 Kanälen pro Eingabe-ZAusgabemodul 10. Jeder der vier Kanäle eines Bereiches der DFI 82 kann einen einzelnen DFl-PCC-Steuerschrank (DFI/PCC-cabinet) 81 bedienen. Dieser Steuerschrank enthält nur große Kanäle (maximal <*), die entweder den Plattendateien oder den Plattenendstapeln zugeordnet sind. Die Kanäle können an die peripheren Einrichtungen entweder direkt oder über Vermittlungseinrichtungen angeschlossen sein. In einer typischen, in Fig.3 gezeichneten Ausbildungsform erlaubt die Verwendung von zwei maximalen DFIs (8 Kanäle pro IOM für jede Plattendaiei und jeden Plattenstapel) und geeignete Vermittlungseinrichtungen (2 χ 24 Plattendateien, 2 χ 16 für die Plattenstapel) den Zugriff von 80 Plattendatei-Elektronikeinheiten (DFU) (400 Plattendatei-Speichereinheiten) und 64 Plattenstapel (DPG) zu jedem der beiden Eingabe-/Ausgabemodulen 10(1OM 1 oder IOM 2).
Die Abtastanschlußeinheit (SCI) 76 besteht aus zwei Bereichen, einem DFO-Abtastanschluß 76 und einem DCP Abtastanschluß 766. Der Plattendateioptimierer (DFO)-Abtastanschluß 76a stellt die Abtast-Ein- und Abtast-Aus-Steuerung für bis zu 4 DFOs 40 über den Abtastkanal her. Sofern ein zweiter Eingabc-/Ausgabemodul 10 eingesetzt wird, wird der DFO-Abtastkanal von beiden 1OM gemeinsam benutzt. Der DCP-Abtastan-Schluß 76b stellt die Abtast-Aus-Steuerung her und Hefen über einen Abtastkanal eine Verbindung mit bis zu 4 DCP 36. Die Abtastanschlußeinheit 76 wird nicht für DCP-Abtast- Ein- Funktionen eingesetzt, die durch den Datenkommunikationsprozessor 36 ausgelöst werden. Wegen dieser Funktionen stellt der Datenkommunikationsprozessor 36 über die Speicheranschlußeinheit 74 eine direkte Verbindung zum Hauptspeicher 30 her. Der DCP-Abtastkanal wird nicht von einem zweiten Eingabe-/Ausgabemodul 10 benutzt
Die Datenkommunikationsanschlußeinheit (DCI) 78 liefert den Daten- und Steueranschluß für die von einem Eingabe-AAusgabemodul ausgelöste Abtast-Aus-Operation, sie liefert außerdem den Datenanschluß für die von dem Plattendateioptimierer ausgelösten Abtast-Ein-Oper^tionen. In den Eingabe-/Ausgabemoduln 10 sind Anschlüsse für bis zu 4 Datenkommunikationsprozessoren 36 vorgesehen. Die Verwendung von zwei Eingabe-/ Ausgabemoduln 10 in einer Anlage gestattet den Anschluß von 8 Datenkommunikationsprozessoren 36.
In Fig.26 ist eine typische Anschluß-Konfiguration zwischen den Eingabe-/Ausgabemoduln 10, den Übersetztem 72 für die Speichermodulen 30a, und den Hauptprozessormodulen 20 dargestellt. Im folgenden wird eine kurze Beschreibung der Anschlußkapazität der Unterbereiche der Speicheranschlußeinheit 74 eines Eingabe-/Ausgabemoduls mit dem Hauptspeicher 30 und eines Übersetzer-Unterbereiches 72 eines Eingabe-AAusgabemoduls 10 mit dem Hauptprozessormodul 20 der Anlage geliefert. Der Speicheranschlußeinheit-Unterbereich enthält 8 Anschlußbereiche, vgl. Fig.26. Jeder Anschlußbereich ist einem bestimmten Speichersteuermodul (MCM) 72 zugeordnet und mit diesem über eine Speichersammelleitung verbunden. Der lOM/MCM-Anschluß mit Sammelleitung wird im weiteren als Speicher-Benutzerpaar bezeichnet. Eine ähnliche Einrichtung existiert
innerhalb des Hauptprozessormoduls (CPM) 20, der auch 8 MCM-Anschlußbereiche enthält Jeder CPM-Anschlußbereich ist einem bestimmten MCM 72 zugeordnet und mit diesem über eine separate Speichersammelleitung verbunden. Dieser CPM/MCM-Anschluß mit Sammelleitung wird auch als Speicher-Benutzerpaar bezeichnet. In der bevorzugten Ausführungsform beträgt die Anschlußkapazität eines MCM 72 8 Speichersammel-
leitungen, von denen jede mit einem und nur einen Eingabe-/Ausgabemodul 10 oder Hauptprozessormodul 20 verbunden ist. Aus diesem Grund ist die maximale Anzahl der an einen MCM 72 anschließbarem Hauptprozessormodul 20 und Eingabe-/Ausgabemodulen 10 auf 8 begrenzt. Die maximale Anzahl der in der Anlage enthaltenen MCM 72 ist ebenso auf 8 begrenzt. Diese Begrenzung ist durch die 8 den MCM zugeordneten Anschlußbereichen jedes Eingabe-/Ausgabemoduls 10 oder jedes Hauptprozessors 20 gegeben. Der typische, dargestellte
ίο Speicher-Sammelleitungsaufbau enthält zwei Eingabe-/Ausgabemoduln 10, zwei Hauptprozessormoduln 20 und zwei Speichersteuermodul (MCM) 72. Dieser Aufbau sieht insgesamt 8 Speicher-Benutzerpaare (MCM 0 zum Benutzer 0 bis 3 und MCM 1 zum Benutzer 0 bis 3) vor. Die maximale Zahl von Speichereinheiten (MSU), auf die später eingegangen wird, mit der ein MCM 72 in Verbindung treten kann (4), ist auch dargestellt. Jeder dieser MCM besitzt Zugriff zu 262,114 Wörtern des Speicher (4 MSU von je 65,536 Wörtern). Jeder Eingabe-/Ausgabe-
modul 10 oder jeder Hauptprozessormodul 20 besitzt daher, bei einem der Fig.26 entsprechenden Aufbau, einen Zugriff zu 524 288 Wörtern des Speichers.
Der Anschluß zwischen den Eingabe-/Ausgabemoduln 10 und den Hauptprozessormoduln 20 besteht nur aus einer Unterbrechersammelleitung. Der Übersetzer-Unterbereich 72 eines Eingabe-/Ausgabemoduls 10 wird von dem Hauptprozessormodul 20 über die Sammelleitung von Jobanforderungen informiert, und der Überset-
zer 72 informiert den Hauptprozessormodul 20 über die Sammelleitung, wenn nichtkanalbezogene 1OM-Fehler vorhanden sind. Zusätzlich benutzt der Übersetzer 72 die Sammelleitung, um den Hauptprozessormodu! 20 zu informieren über (1) den Abschluß eines Eingabe-/Ausgabejobs, eine Überwachungsposition (SPO) oder einen Datenkommunikationsprozessor 36, sofern dies durch Software angefordert wird, und über (2) eine Statusänderung durch einen Vektor oder einen Plattenstapel. Die Unterbrechersammelleitung wird von allen Eingabe-/Ausgabemoduln 10 und Hauptprozessormoduln 20 gemeinsam benutzt.
In der bevorzugten Ausführungsform arbeitet der Eingabe-/Ausgabemodul 10 bei der Auslösung, der Bedienung und dem Ende eines Eingabe-/Ausgabetransfers asynchron mit dem Hauptprozessormodul 20 zusammen, und verwendet dabei eine sogenannte »job map« (auch als request map bezeichnet, dem sogenannten Abruf-Bild). Wie schon angegeben, besteht die »job map« im wesentlichen aus fünf software-konstruierten Elemente,
die die Jobanforderung, die periphere Einrichtung und den IOM-Kanal definieren. Im allgemeinen informieren die map-Elemente den Hauptprozessormodul 20 über dessen IPM-peripheren Hilfsmittel und deren Status. Sofern erforderlich, ändert der Hauptprozessormodul 20 die in einer Warteschlange befindliche Jobanforderung der »job map« in dem von der »job map« gewünschten Umfang und unterbricht den Eingabe-/Ausgabemodul 10, um Service anzufordern. Der Eingabe-/Ausgabemodu! 10 verschafft sich dann Zugriff zur »job map«, um den Eingabe-/Ausgabejob zu bestimmen und auszulösen. Da die »job map« ein vom Eingabe-/Ausgabemodul 10 und dem Hauptprozessor 20 gemeinsam benutztes Hilfsmittel darstellt, sind die 1OM-Transferzeiten ausgeblendet durch das kontinuierliche Verarbeiten und Einbauen neuer Anforderungen in Warteschlangen durch den Hauptprozessormodul 20. Auf diese Weise wird ein maximaler Systemdurchlauf mit einer minimalen Hauptprozessormodulzeit erzielt.
Der Eingabe-/Ausgabemodul 10 führt auch die Pfadauswahl his zur angeforderten Einrichtung durch (im Gegensatz zur programmierten Vorwahl eines Pfades, die allgemein verwendet wird). Diese Art der Pfadauswahl eliminiert Situationen, bei denen (1) die angeforderte Einrichtung frei ist, (2) der ausgewählte Pfad nicht frei ist und (3) ein Alternativpfad existiert aber aufgrund der programmierten Vorwahl nicht verwendet werden kann. Diese Sitauationen machen im allgemeinen eine Einbeziehung des Hauptprozessormoduls 20 und des Eingabe-/Ausgabemoduls 10 erforderlich. Da der Eingabe-/Ausgabemodul 10 die Pfadauswahl durchführt, endet die Mitarbeit des Hauptprozessormoduls 20 bei der Jobauslösung, wenn ein Unterbrecher an den Eingabe-/Ausgabemodul 10 geschickt wird. Der Eingabe-/Ausgabemodul 10 erzeugt dann eine Jobanforderung, wenn die angeforderte Einrichtung und irgend ein Pfad dieser Einrichtung verfügbar ist. In der bevorzugten Ausführungsform enthält der Eingabe-/Ausgabemodul 10 eine umfassende Fehlerwahrnehmungslogik, die den Fluß der
Kontrollwörter und der Daten zwischen dem Eingabe-ZAusgabemodul 10 und anderen Zentraleinheiten-Modulen, innerhalb des Eingabe-/Ausgabemodu!s 10 selbst und zwischen dem Eingabe-/Ausgabemodul 10 und den peripheren Einrichtungen überwacht. Spezielle Sorgfalt wird darauf verwendet, daß alle Speicheroperationen ungestört unü unbeeinflußt ablaufen. Im allgemeinen enthält die Fehlerwahrnehmungshardware eine Paritätskontrolle und Erzeugungsschaltkreise, Schaltkreise für die Modulo-N-Kontrolle, Schaltungen zur Wahrneh-
mung unzulässiger Befehle, Bedingungen und Steuerzustände, Zeitsperre-Schaltungen für Speichertransfers, Abtastkanaloperationen und interne lOM-Transfers. In der bevorzugten Ausführungsform enthält der Eingabe-/ Ausgabemodul 10 das Hauptkonzept des fail-soft-Verfahrens, Fehlerwahrnehmung, Fehlermeldung und Transferpfad-Redundanz enthält. Eine spezielle Bedeutung wird dabei einer ausgiebigen Fehlerwahrnehmung zugemessen, die die Basis für das fail-soft-System darstellt Der Eingabe-/Ausgabemodul 10 enthält eine umfang-
reiche Fehlerwahrnehmungslogik, die den Operationsfluß eines Eingabe-/Ausgabemoduls auf einer Intermodul/ Intramodul-Basis längs der Einrichtungen-Daten-Transferebene überwacht Dabei wird besonders darauf geachtet, daß alle Speicheroperationen ungestört und unbeeinflußt ablaufen. Dieses Konzept erlaubt es, daß ein Fehler sofort wahrgenommen und durch den Wert des geschützten und nicht gestörten Hauptspeichers 30 ersetzt wird. Dieses Konzept stellt die Grundlage eines wirkungsvollen fail-soft-Systems dar. Die Fehlerwahr-
b5 nehmungshardware des Eingabe-/Ausgabemoduls 10 enthält eine Parität (Kontrolle und Erzeugung) der Speicherdatentransfers; eine Parität (Kontrolle und Erzeugung) der Einrichtungen-Datentransfers in alle PCI 80, DFl 82. Abtastkanäle und die Datenservice-Unterbereiche 78; eine Parität (Kontrolle und Erzeugung) eines internen Registertransfers zwischen und innerhalb aller IOM-Unterbereiche; eine Parität (Kontrolle und Erzeu-
gung) eines internen lokalen Speicherstapels innerhalb jedes Unterbereiches, eine kontinuierliche Wahrnehmung unzulässiger Befehle, Bedingungen und Steuerzuständen innerhalb der Steuerlogik der einzelnen Unterbereiche; eine Restwertkontrolle für alle arithmetischen Operationen innerhalb der Unterbereiche; eine Zeitsperre bezüglich Speichertransferoperationen, eine Zeitsperre bezüglich Abtastkanal-Operationen; und eine Zeitsperre bezüglich interner Transfers zwischen dem Übersetzer 72 und allen Datenservice-Unterbereiche. Zusätzlich wird das durch den Eingabe-/Ausgabemodul 10 erzeugte Steuerwort für einen Speichertransfer durch den Übersetzer 72 bestätigt. In der bevorzugten Ausführungsform wird der Speichertransfer durch eine Ein-Bit-Fehlerkorrektur und eine 2-Bit-Fehlerwahrnehmung vervollständigt. Die Organisation der oben genannten Wahrnehmungslogik ist in Fig. 27 dargestellt. Die Wahrnehmungshardware ist ebenso wie der Daten-Steuerfluß auf der Unterbereichsebene innerhalb des Eingabe-/Ausgabemoduls 10 in den ovalen Feldern eingetragen. Es sei bemerkt, daß nur ein DFI-Unterbereich dargestellt ist. Tatsächlich ist ein zweiter, identischer DFI-Unterbereich mit eigener Wahrnehmungslogik vorhanden.
Der Fluß beginnt mit dem Abrufen der Anforderung-Steuerinformation aus dem Hauptspeicher 30. Der Abrufbefehl vom Eingabe-/Ausgabemodul 10 wird zuerst gegen einen MCM-Zugriffsmaske für diesen iOM 10 überprüft und anschließend durch den MCM bezüglich der Parität überprüft. Alle nachfolgenden Speicheroperationen unterliegen denselben Tests. Die Daten werden zum Eingabe-/Ausgabemodul 10 geschickt, sie durchlaufen zuvor eine Ein-Bit-Korrektur ur.d Zwei-Bit-Wahrnehmungsprüfung. Anschließend werden in den IOM 10 die Sieuerdaten auf Parität geprüft. Dann werden die Daten dem Übersetzer-Bereich 72 zugeleitet. Der Übersetzer 72 überprüft die Daten in seinem Arbeitsregister und führt dabei eine Paritätskontrolle durch, um den internen Kanaltransfer zu bestätigen. Sobald der Übersetzer 72 feststellt, daß es sich um einen Befehl zur Auslösung einer neuen Anforderung handelt, holt er die geeignete Basisadresse aus seinem map-Zeigerstapel und überprüft den Restwert. Er addiert das Einheitenbezeichnungsfeld (UD) vom ersten Befehl zu der Basis, bestätigt das Ergebnis durch eine Modula-N-Kontrolle fordert einen Speicherzugriff für diese Adresse. Die Syeicheranschlußeinheit (MlU) 74 emnpfängt diese Adresse, überprüft den Restwert, um den internen Transfer zu verifizieren, erzeugt ein geeignetes Steuerwort und sendet die Anforderung vom Eingabe-/Ausgabemodul 10 zu der Speichersteuerung. Die abgerufenen Daten werden in das Arbeitsregister des Übersetzers 72 zurückgeschickt und durchlaufen dabei sämtliche genannten Kontrollen.
Die Daten werden erneut vom Übersetzer 72 beurteilt, geeignete Felder werden zu der Basisadresse addiert, der Restwert wird überprüft, (Modulo-N-Kontrolle) und es werden zusätzliche Steuerdaten dem Hauptspeicher 30 entnommen, bis der Übersetzer 72 genügend Daten hat, um einen Anforderungsdiskri^or (RD) zu erzeugen, der einen Datenservice-Unterbereich eines IOM 10 zugeschickt wird. Die ursprüngliche Parität wird aus dem Hauptspeicher 30 entnommen, um den Anforderung-Deskriptor (RD) aufzubauen. Die Gültigkeit und die Aussicht des Diskriptors, ausgelöst zu werden, entspricht daher der Gültigkeit, die vorhanden war, als der Job durch den Hauptprozessormodul 20 unterdessen kombinierten Er.dkontrollen angefordert wurde. Der Anforderungsdeskriptor, der z. B. aus der Plattendatei stammt, wird dem geeigneten DFI-Unterbereich übermittelt. Nachdem dieser Deskriptor in das Anforderungsregister des DFI-Unterbereiches eingegeben wurde, kontrolliert die DFI82 den Restwert in den Speicheradressen- und Byte-Zählfeldern, und kontrolliert die Gültigkeit der Steuerfeldkombination. Nachdem der Deskriptor diese Kontrollen durchlaufen hat. wird er in dem zugehörigen lokalen Speicherkanalplatz gespeichert und die Plattensteuereinrichtung wird durch Übertragung der CDL-Sequenz ausgelöst. Bei jeder nachfolgenden, von der Plattendatei ausgelösten Anforderung eines Datentransfers zum Eingabe-/Ausgabemodul 10 wird dieser Deskriptor aus dem lokalen Speicher entnommen und in dem Anforderungsregister gespeichert, der Restwert wird von der Speicheradresse und dem Bytezählfeld kontrolliert, die Steuerinformation wird durch Parität und bedingungsmäßig bestätigt, und der Datenpuffer wird bezüglich Parität überprüft Wenn diese Tests durchlaufen sind, sind die Daten für den Puffer geeignet. Das Bytezählfeld, die Steuerinformation und der Datenpuffer werden alle auf den neuesten Stand gebracht. Restwerte und Paritätsbits werden verändert und der Anforderungsdeskriptor wird im lokalen Speicher gespeichert. Bei der nächsten Datenanforderung wird der Deskriptor dem Speicher entnommen und durch denselben Prüfzyklus geschickt.
Wenn zum Füllen des Datenpuffers genügend viele Anforderungen erfolgten, schickt die DFI 82 eine Speicheranforderung an die MIU 74, an den Speicheradressenplatz. Die MlU 74 empfängt die Adresse, überprüft den Restwert, um die interne Transfersammelleitung zu verifizieren und schickt das richtige Steuerwort an den Übersetzer (auch als Speichersteuereinrichtung bezeichnet) 72. Die Daten werden aus dem Puffer in die MIU 74 mit einer Paritätskontrolle gegeben, um den internen Daten-Sammelleitungstransfer zu verifizieren und mit der Parität an den Speicher geschickt. Diese Reihenfolge bei der Auslösung einer Anfrage und beim Verarbeiten von Datenservice findet kontinuierlich auf jedem Kanal statt. Ein Fehler an irgend einer Stelle des Flusses bewirkt einen Stopp der betreffenden Operation und die Erzeugung des betreffenden Resultatdeskriptors, um den Fehler ausfindig zu machen. Eine Fehlerwahrnehmung findet bei allen Operationen statt, bei denen ein Zeichen aus Daten in die Anlage hineingeschickt oder aus der Anlage herausgeholt wird. Besonderer Wert wird darauf gelegt, daß die Gültigkeit des Hauptspeichers 30 gesichert ist, zu diesem Zweck werden insbesondere Modulo-N-Kontrolle bei arithmetischen Operationen und bei Speicheradressen vorgenommen, und es erfolgt ein Speicherzugriff zur Überprüfung der Speichersteuerung, damit die fail-soft-Vorgänge von einer überprüften Basis aus starten.
In der bevorzugten Ausführungsform werden die von einem Eingabe-ZAusgabemodul 10 und den peripheren Steuereinrichtungen 38 wahrgenommenen Eingabe-/Ausgabefehler von dem IOM 10 verarbeitet.
Diese Fehler werden durch den IOM 10 in zwei Kategorien eingeteilt: (1) kanal- oder anforderungsbezogene Fehler und (2) Modul- oder nicht auf Anforderungen bezogene Fehler. Alle Fehler werden in der Status-Warteschlange (SQ), die sich im Ebene-1-Speicher befindet, als Fehlermeldung gespeichert. Anforderung-Fehler werden in dem Resultat-Deskriptorformat und Modulfehler in dem fail-Registerformat gespeichert. Unterbre-
eher werden bei allen fail-Register-Entries, für die Resultat-Deskriptcr-Entries aber nur erzeugt, sofern dies in dem Anforderungs-Eingabe/Ausgabe-Steuerwort (IOCW) oder in dem Bit 40 des Status-Warteschlangekopfes (SQK) gefordert wiM. Die Status-Report-Eingänge stellen die Basis für DiagnosemaDnahmen der fail-soft-Software dar, die später beschrieben werden.
Das Fail-Register 71 des Eingabe-/Ausgabemoduls 10 versetzt den Übersetzer 72 in die Lage, Fehler, die mit einer speziellen E/A-Anforderung nicht in Zusammenhang stehen, aufzulisten. Das Auflisten der Information des fail-Registers geschieht durch Verwendung einer »Fail-Unit«-Bezeichnungsnummer (Fail-UD No = 255). Wenn ein Fehit; auftritt, der den Einsatz der »Fail-Unit«-Bezeichnungsnummer erforderlich macht, so wird der Inhalt des Taii-Regirters 71 in das Resultat-Deskriptorwort (RD) des E/A-Steuerblockes (lOCB) eingegeben, auf den der E/A-Waneschlangekopf der Fail-Unit-Bezeichnungsnummer zeigt Der Fail-IOCB wird dann von der Warteschlange der Fail-lOCBs abgekoppelt (die Fail-IOCBs können bis auf die eingefügte Adresse leer sein) und wird an die Status-Warteschlange (SQ) in derselben Art angehängt wie ein normales Ende. Ein Fehlerunterbrecher wird bei allen Fehlern, die den Einsatz des Faii-Registers erfordern, an den Prozessor gesendet, vgl. F i g. 43. Dieses Register ist in Tabelle 8 definiert. Das IQM-fail-Register ist ein 48-Bit-Register, welches diejenige Information enthält, die Fehler betrifft, die nicht mit Einern speziellen Kanal oder einer speziellen Einrichtung in Zusammenhang stehen. Dieser Feh!er*yp isi es, der einen lOM-Fehierunterbrecher verursacht.
Sofern Fehler auftreten und unmittelbar nach ihrem Auftreten wahrgenommen werden und aufgelistet werden solle -i, sst es äußerst wichtig, daß innerhalb de* Untersystems ein weiterer Übertragungspfad existiert. Auf der Modul-Ebene ist Redundanz bei den näheren Speichern, Speichersteuereinrichtungen, CPs und !OMs gegeben. Auf der 1OM-Ebene ist Anschlti^reduiufonz bei allen Sammelleitungsverbindungen gegeben, vgl. F i g. 28. Die angegebene Redundanz kann i:;xh Ihr.- und Neuordnung verändert werden. Die Modulbauweise des Eingabe-/Ausgabemoduls 10 stellt dat>»S vvieessichtlich, einen Faktor erhöhter Redundanz dar.
Tabelle 8 E/A-fail-Register-Bits
Bit
Funktion
30 00 - EXC:
01 — nicht verwendet 35 02-SNM: 03 - RWM: 04-TM:
05-SM: 06-HM: 07-SNE:
08 - TLK:
09 - SBE:
5; 10 - TOE:
11 -(JfSNE = O)- IBE:
ll(ifSNE=l)- DAE:
b5 12(ifSNE = O)- HAE: 12(ifSNE=t)-QSE:
Ausnahme-Bit; dieses Bit gibt an, daß ci.ie »1« in dem Fail-Register existiert
Ahtast-Modc
Rine-Waik-Mode Terminate-Mode
Gibt den Betriebsmode des Übersetzers an, wenn ein Fehler auftauchte
Start-Mode
Hausadressen-Mode stellt Abtastfehler dar, wenn die Bits 9— 14 gesetzt sind
Tabelle gesperrt; der Übersetzer besitzt eine Zeitsperre und versucht es, eine gesperrte Einheitentabelle oder einen Status-Warteschlangenkopf zu holen
Abtastkanalfehler; gibt einen Paritätsfehler au? dem Abtastkanal an. SNE (Bit 07) ist auch gesetzt.
Zeitsperrefehler; TOE stellt einen Abtdstkanal-Zeitsperrefehler dar, sofern SNE (Bit 07) gesetzt ist. TOE gibt einen Datenservice-Zeitsperrefehler an, sofern SNE zurückgesetzt ist.
Auslösung eines Kanal-besetzt-Fehlers. Es wurde ein Versuch unternommen, einen non-exchange-Kanal zu starten, der entweder besetzt war oder dabei ist, daß seine Inanspruchnahme beendet wird.
Plattenadressen-Fehler unrechtmäßiger Hausadressenbefehl DFO-Stapelparitätsfehler
24
Tabelle 8 (Fortsetzung) Bit
Funktion
13(if SNE=O)-BE: 13(ifSNE = l)-SUNA: 14(ifSNE=0)- RSE:
H(JfSNE= I)-NAQE: 15-ACE:
16-ME:
Pufferregister-Paritätsfehler
Speichereinheit ist nicht verfügbar
Restwertfehler (Speicheradresse); die fehlerhafte Adresse soll in die Bits 28 bis 47 eingefügt werden.
Kein Zugriff zum DFO-Exchange
Aktiver Kanal-Stapel-Fehler. Die Adresse (Kanalnummer) des Wortes in dem Stapel, der den Paritätsfehler verursachte, soll in die Bits 28 bis 32 eingegeben werden.
Speicherfehler; der Speicherfehler oder von der MlU wahrgenommene Fehler wird durch Dekodierung der Bits 25, 26. 27 des Fail-Registers gefunden.
Bits 17 —24: Einheiten-Bezeichnung: eine Einheitenbezeichnung, bei der alle Bits den Wert 1 besitzen (255)
kennzeichnet einen Fail-Register-Resultatdeskriptor
Bits 25—27: Speicher-Fehlerkode: dieses Feld ist nur gültig, wenn Bit 16 (ME) gesetzt ist (vgl. Teil 6.0.)
Bits 28—32 — Kanalnummer
Bits 28—47 - Speicher-Adresse
Dieses Feld enthält nur dann eine Kanalnummer, wenn Bit 15 (ACE) gesetzt ist.
Dieses Feld enthält den Speicherplatz, bei dem ein Zugriff erfolgte, während der Fehler auftrat. Dieses Feld ist ungültig, sofern Bit 15 (ACE) gesetzt ist.
Im folgenden wird nun auf das Speicheruntersystem Bezug genommen. Das Speicheruntersystem 88 stellt den Hauptspeicher der Informationsverarbeitungsanlage dar. Das Speicheruntersystem 88 speichert Informationsworte, die durch zwei verschiedene Typen von Requestoren, insbesondere dem Hauptprozessormodul 20 oder einem EingabeVAusgabemodul 10 geliefert werden. In der bevorzugten Ausführungsform besitzt das Speicheruntersystem 88 einen modularen Aufbau mit 1 bis 8 Speichermodulen 30a, die über einen Speicher-Requestor-Schalter-Schaltnetzwerk 90 mit bis zu 8 Speicherrequestoren gekoppelt sind, vgl. F i g. 29. Das Speicheruntersystem 88 kann jeden Requestor in ein und derselben Weise bedienen, so daß jede durch einen Requestor durchgeführte Operation auch von allen anderen kequestoren durchgeführt werden kann.
Ein Speichermodul 30a besteht aus einem Speichersteuermodul (MCM) 92, der entweder ein oder zwei Speicherschränke (MSC) 94 steuert. Ein Speichersteuermodul 92, der unter einen Speicherschrank steuert, wird als ein 2-MSU-Speichermodul 93 bezeichnet. Ein Speichersteuermodul 92, der zwei Speicherschränke 94 steuert, wird als ein 4-MSU-Speichermodul 95 bezeichnet. Jeder Speicherschrank (MSC) 94 enthält zwei unabhängig adressierbare 2-Draht-Kernspeichereinheiten (MSU 96). In einer bevorzugten Ausführungsform enthält jede MSU 96 einen Speichermodul (MSM) 98 mit einer Speicherkapazität von 65 536 Wörtern (393 216 Bytes); sie enthält weiter einen Speicherlogikmodul (MLM) 100 zum Anschließen der TTL-Schaltkreise der MSU % mit dem CTL-Schaltkreisen des MCM 92, und sie enthält einen unabhängigen Versorgungsspannungsmodul (MTU) 102fürjedeMSU96.
In der bevorzugten Ausführungsform beträgt die maximale Speichergröße 1 048 576 Wörter (6 291 456 Bytes), die in acht 2-MSU-Modulen 93 oder in vier 4-MSU-Modulen 95 gepackt sein können und 1 048 576 Wörtern entsprechen. Ein vollständiges Faii-soft-System erfordert mindestens drei Speichermodulen 30a.
In dem Speicheruntersystem 88 sind drei Speichermodul-Anordnungen erkennbar. Diese drei Anordnungen bestehen aus (a) einem Speichersteuermodul (MCM) 92 und vier Kernspeichereinheiten (MSU) 96, (b) einem Speichersteuermodul (MCM) 92 und zwei Kernspeichereinheiten (MSU) 96, (c) einem Speichersteuermodul (MCM) 92 und zwei Kernspeichereinheiten (MSU) 96 oder (d) im Falle einer Störung, einem Speichersteuermodul (MCM)92 und einer Kernspeichereinheit (MSU) 96.
Das Speicheruntersystem 88 besitzt eine große Zuverlässigkeit, die das Auftauchen von Fehlern auf ein Minimum reduziert. Eine umfangreiche Fehlerwahrnehmungs- und -meldelogik erlaubt die frühe Feststellung von Störungen. Die automatische Korrektur von 1-Bit-Paritätsfehlern beschränkt die Unterbrechungen der Anlage a"f ein Minimum. Die modulare Bauweise, separate Spannungsversorgungen und das redundante Sarnrncllc ungskonzepi erlauben eine weiche Urn- und Neuordnung.
Im Falle der Störung einer Kernspeichereinheit (MSU) 96 ordnet das System die dem Speichersteuermodu! (MCM) 92 verfügbaren MSUs in folgenderWeise programmiert um. Der 4-MSU-Speichermodu! 95 wird so umgeordnet, daß er mit nur zwei MSUs 96 arbeitet, die dem MCM 92 verfügbar sind, wenn der die gestörten MSUs 96 enthaltende Schrank für den MCM 93 nicht mehr zur Verfugung steht; oder ein 2-MSU-Speichermodul 93 wird so umgeordnet, daß er nur mit einem, dem MCM 92 zur Verfügung stehenden MSU % arbeitet.
tt·- ■
Privilegierte Betriebsmoden gestatten eine Softwaresteuerung der Anlage während einer Fehlererholzeit Der programmierte Haltbefehl setzt das mehrstufige Operationssystem ohne Intervention des Operators wieder in Betrieb. Benutzerprogramme, die durch die Störung nicht betroffen sind, werden an dem Punkt ihrer Unterbrechung neu gestartet und unter Verwendung der verfügbaren Einrichtungen fortgesetzt Eine Systemrückstufung
wird durch diese »weiche Um- und Neuordnung« durch eine rasche, isolierte Störungsbeseitigung und eine rasche Oberprüfung der reparierten Einheiten auf ein Minimum reduziert
In der bevorzugten Ausführungsform ist innerhalb der Anlage kein spezieller Zuordnungsbefehl vorhanden für besondere Anordnungen eines Speichersteuermoduls (MCM) 92. Speichermodul-Adressenbereichszuordnungen basieren auf Erfordernissen der Anlage und werden durch Verwendung des Speichergrenzwortes
zugeordnet So kann z. B. Modul 0 (0) einen MCM mit zwei MSUs 96 darstellen; Modul eins (1) kann einen MCM mit vier MSUs 96 darstellen, etc
Die Speicherkapazität der Untersysteme kann durch das mehrstufige Operationssystem programmiert und unter Berücksichtigung der ausgewählten Requestoren auf die Untersysteme verteilt sein, d. h. die MCMs 0, t, 2, 3 lassen sich den Requestoren 0,1,2 zuordnen und die MCMs 4, 5 und 6 lassen sich den Requestoren 3,4 und 5 zuordnen. In der bevorzugten Ausführungsform arbeitet das Speicheruntersystem 88 mit einer Taktfrequenz von 8 MHz. Die Zugriffszeit beträgt 1,0 Mikrosekunden. Die System-Lesezugriffszeit für das erste Wort beträgt 1,750 Mikrosekunden. Die effektive System-Lesezugriffszeit für zwei oder mehr aufeinanderfolgende Wörter ist durch die Verschachtelung verschiedener MSUs % und eines Speichermoduls 30a reduziert Dadurch ist es der zweiten MSU 96 möglich, die Vorbereitung für einen Speicherzyklus zu beginnen, während die erste MSU % den Transfer seines Wortes durchführt Auf diese Weise ist die durch ein zweites, drittes oder viertes Wort bedingter Speicherzyklus-overhead-Zeit ausgeblendet
In einem Mehrwort-Transfer werden Wörter in bis zu vier Wörtern enthaltende Gruppen transferiert; ein Wort wird pro Taktzyklus transferiert Die maximale Anzahl an Wörter, die im phasig-Verfahren übertragen werden kann, ist durch die Anzahl der Wörter gegeben, die nacheinander übermittelt werden und ist durch die Anzahl N von Kernspeichereinheiten (MSU) 96 begrenzt, die durch den MCM 92 gesteuert sind; N= 2 für einen 2-MSu-Modul 93 und Λ/-4 für einen 4-MSU-Modul 95. Sofern die Wortlänge des Requestors die Grenze für einen speziellen MSM 92 überschreitet fordert der MSM 92 nur diejenige Anzahl von Wörtern aus dem Requestor an, die entsprechend seinen Grenzen erlaubt sind (im Falle der Speicherung von Daten) oder schickt nur diejenige Anzahl von Wörtern an den Requestor, die entsprechend seinen Grenzen erlaubt sind (beim Abrufen von Daten). DU 7-renze in dem MCM 92 wird in folgender Weise festgelegt Die Grenze in dem MCM 92 wird in folgender Weise festgelegt Die Grenze ist gleich einer Einwortoperation, wenn die Startadresse für den Requestor innerhalb 7 Wörter aus dem Ende des dem MCM 92 zugänglichen Speichers liegt; die Grenze ist dagegen gleich der Anzahl der dem MCM 92 zur Verfugung stehenden MUSs 96, sofern die Startadresse größer als sieben Worte aus dem Ende des dem MCM 92 verfügbaren Speichers ist. Allerdings braucht die Grenze des MCM 92 bei der Erzeugung eines Steuerwortes nicht in Betracht gezogen zu werden. Wenn z. B. ein Requestor eine 6-Wörter-Operation wünscht, so wird ein Steuerwort erzeugt, dessen Wortlängenfeld gleich 6 ist.
Die tatsächliche Anzahl der transferierten Wörter wird in der schon beschriebenen Weise bestimmt, der Requestor muß ein Verzeichnis der Anzahl von Transfers zurückbehalten, um zu entscheiden, ob zusätzliche Anforderungen an den MCM 92 zur Vervollständigung der Operation erforderlich sind.
In der bevorzugten Ausführungsform wesitzen alle in den Programmen oder der Software (Requestorwörter) verwendeten Wörter eine Länge von 48 Bits. Drei zusätzliche Bits, als Kennbits bezeichnet, identifizieren, ob das Wort als Kode, Daten oder zur Steuerung verwendet wird. Die Kenrbits gestatten einen Hardwareschutz gegen einen nicht korrekten Einsatz des Speichers und werden von der Hardware zur Steuerung vieler Verarbeitungsfunktionen des Systems verwendet. Wenn Information von einem Requester an einen MCM 92 übertragen wird, addiert der Requestor an Paritätsbit, das dem zu übertragenden 52-Bit-Wort eine ungerade Parität verleiht. Der MCM 92 überprüft das Wort bezüglich ungerader Parität, um festzustellen, daß während der Übertragung kein Fehler auftauchte.
Ein in einer Kernspeichereinheit (MSU) % gespeichertes Wort besteht aus 60 Bits. Wenn ein MCM 92 ein 52-Bit-Wort aus einem Requestor empfängt, addiert der MCM 92 sieben spezielle Paritätsbits, sogenannte Prüfbits und addiert ein weiteres Bit, um die ungerade Parität des gesamten 60-Bit-Wortes zu erhalten. Der MCM 92 schickt das 60-Bit-Wort an die MSU 96, vgl. Fig.30. Sofern sich ein Wort zufällig während seines Aufenthaltes in einer MSU 96 ändern sollte, gestatten die sieben Prüfbits zusammen mit dem Gesamtparitätsbit die Wahrnehmung des Fehlers und liefern ein Mittel zur automatischen Korrektur des Fehlers, bei dem sich ein einzelnes Bit verändert hatte.
Die für den Transfer von Kontrollsteuerwörtern und Daten zwischen dem Requestor und dem MCM 92 und der Kernspeichereinheit 96 verwendeten Signale sind in F i g. 31 dargestellt. Jeder Requestormodul kann bis zu 1 048 576 kontinuierliche Speicherwörter adressieren. Diese 1 048 576 Wörter können in aufeinanderfolgenden Speichermodulen 30a enthalten sein. Ob es einem speziellen Requestormodul gestattet ist, Zugriff zu einem speziellen Speichermodul 30a zu erlangen, hängt von dem Wert eines Bits in einem Requestorsperregister 104 ab, vgl. F i g. 32. Das Requestorsperregister 104 enthält 8 Bits, je ein Bit für jeden der 8 möglichen Requestoren (IOMs und CPMs). Auf diese Weise kann ein spezieller Speichermodul 30a von allen oder einigen Requestoren gemeinsam benutzt werden oder er kann ausschließliches Hilfsmittel für nur einen Requestor sein. Wird das Requestorsperregister 104 der betrachteten Gruppe von Speichermodulen 30a so gesetzt, daß nur ausgewählten Requestoren der Zugriff gestat:et ist, so ist es möglich, die Anlage in mehrere unabhängige Datenverarbeitungs-
bä Untersysteme logisch zu teilen, von denen jedes vielleicht sein eigenes Master-Steuerprogramm besitzt und einem spezieilen Teil der gesamten zu verarbeitenden Information zugeordnet ist. Die Nummer der Hardwareeinheiten für die Requestormoduln lauten 0 bis 7. Die Bilposition des Requestorsperregisters 104 korrespondiert mit der Nummer der Requestoreinheit mit einer 0 als am wenigsten signifikantes Bit. Sofern ein Requestorbit in
dem Requestorsperregister 104 auf ON gesetzt ist, erhält die diesem Bit entsprechende Einheit keinen Zugriff zum Speichermodul 30a. Das Requestorsperregister 104 wird durch einen Requestorsperregister-Ladebefehl gesetzt Dieser Befehl läßt sich z. B. nur durch das mehrstufige Operationssystem der vorliegenden Erfindung durchführen. Das mehrstufige Operationssystem ist daher in der Lage, die Anordnung der Anlage entsprechend S§ wechselnder Anforderungen zu verändern.
g In der bevozugten Ausführungsform ist die Größe des benutzbaren Speichers innerhalb des Speichermoduls
30a veränderlich, sie beträgt bei nur eiaer MSU 96 65 536 Wörter, sie beträgt bei vier MSUs 262 144 Wörter. Die
Adressierung innerhalb eines Speichermoduls 30a wird durch zwei Speichergrenzwertregister 106,108 gesteu-
H ert, die die niederste und höchste zur Verfugung stehende Adresse angeben. Die höchste, zur Verfugung
H stehende Adresse ist immer 16 383 Adresen größer als die in dem für den oberen Grenzwert vorgesehenen
ff Grenzwertregister 108 enthaltene Adresse. Die Speichergrenzwertregister 106 und 108 besitzen eine Länge von
p 6 Bits. Der MCM 92 »sieht« den in der Kernspeichereinheit (MSU) 96 enthaltenen Speicherinhalt als eine Zahl
\l aus 16 384-Wortsegmenten.
^ In der bevorzugten Ausführungsform enthält eine Speicheradresse 20 Bits, von denen die ersten sechs Bits ein
fjjj 16 384-Speicherwortsegment innerhalb der von jedem Requester adressierbaren 1 043 576 Wörter darstellen.
if Die weiteren 14 Bits werden zur Adressierung des Wortes in dem vorbezeichneten Segment verwendet Die
jg signifikantesten sechs Bits einer Speicheradresse werden mit den sechs Bits der beiden Speichergrenzwertregi-
'§, ster 106,108 verglichen, um festzustellen, ob die spezifische Adresse innerhalb der dem MCM 92 zugeordneten
MSUs existiert
Die Speichergrenzwertregister 106 und 108 werden durch einen Speichergrenzweri-Ladebefehl gesetzt. Dieser Befehl kann nur durch das erfindungsgemäße mehrstufige Operationssystem durchgeführt werden. Das mehrstufige Operationssystem bestimmt die Größe des Speichers, die während der Inbetriebnahme der Anlage einem ^AGM 92 zugeordnet wird, indem in den Speicher mit sukzessiv höheren 16 384-Wortsegmenten eingegangen wird. Wenn eine MSU 96 oder ein MCM 92 gestört ist, wird das mehrstufige Operationssystem von dieser Störung benachrichtigt. Das mehrstufige Operationssystem kann die Speichergrenzwertregister 106 und 108 ändern, um den Einsatz einer fehlerhaften MSU 96 zu verhindern, oder es kann das Requestorsperregister 104 setzen, um zu vermeiden, daß ein Zugriff zum gesamten Speichermodul 30a erfolgt.
Durch das Setzen des Requestorsperregisters 104 und der Speichergrenzwertregister 106 und 108 lassen sich Gruppen von Speichermoduln 30a ausblenden oder maskieren, die separate Speichersysteme bilden, darunter vielleicht sogar einige mit demselben Adressenbereich. Auf diese Weise können kritische Daten oder Programmcodes dupliziert werden, um einen zusätzlichen Schutz gegen Systemstörungen zu gewährleisten. Die folgenden Absätze beziehen sich auf eine allgemeine Beschreibung des Speichersteuermoduls (MC) 92. Der MCM 92 verbindet alle Requestoren, d. h. Eingabe-/Ausgabemoduln (IOM) 10 und Hauptprozcssormoduln (CPM) 20 mit den MSUs 96, die von dem MCM 92 gesteuert werden. Wie schon angegeben, ist 8 die maximale Anzahl der MCMs pro Anlage. Die logischen Funktionen eines MCM 92 sind folgende: Auflösung der Priorität, Datentransfer- und -Steuerung, und Fehlerwahrnehmung.
Die Prioritätsauflösungslogik, vgl. F i g. 32. steuert die Verbindungen zwischen den einzelnen Requestoren und dem MCM 92. Von dem MCM 92 werden nur diejenigen Requestoren bedient, die durch den inhalt des Requestorsperregisters 104 ausgewählt wurden. Eine Ausnahme von dieser Regel ist dadurch gegeben, daß durch den Einsatz eines speziellen Anforderungssignals die CPMs 20 in der Lage sind, den Inhalt des Requestorsperregisters 104 umzuschreiben. Die Reihenfolge, in der diese Requestoren bedient werden (Priorität) wird aus Gründen maximaler Effektivität von der Informationsverarbeitungsanlage bestimmt. Höhere Benutzerprioritäten (d. h„ höhere Nummern) werden den Hauptprozessormoduln 20 zugeordnet. In einer Anlage mit zwei CPMs und zwei IOMs, werden z. B. den CPMs die Prioritäten 6 und 7 und den IOMs die Prioritäten 0 und 1 zugeordnet. Ein Requestor wird von der Bedienung ausgeschlossen, wenn die Requestoren-Anschlußeinheit gestört ist, so daß andere Requestoren ausgeschlossen sind. Der Requestor mit der höchsten Priorität wird nicht bedient, sofern ein Requestor niedriger Priorität darauf wartet, bedient zu werden.
Die Datentransfer- und Steuerlogik Hefen die zur Wegsteuerung der Daten zwischen dem Requestor und der MSU 96 erforderlichen Steuersignal. Diese Logik besitzt die Fähigkeit, Wörter mit der Taktfrequenz zeitlich phasenverschoben zwischen dem Requestor und dem Speicher zu transferieren. Eine Fehlerwahrnehmungslogik 110 ist zur Wahrnehmung von Fehlern in dem Requestor und den Eingängen der MSU 96 vorgesehen; sie meldet die Fehler in ein Fail-Register 112 desa MCM 92 und benachrichtigt den Requestor, daß ein Fehler vorhanden ist: und sie korrigiert Ein-Bit-Fehler, die in der MSU 96 während einer Abrufoperation auftreten.
Alle Verbindungen zwischem dem MCM 92 und den Requestoren werden über 78 separate Zweiweg-Leitungen an identische Empfänger-Schaltungs-/Treiberschaltkreise 114 geführt, die in allen Requestormoduln enthalten sind, vgl. Fig.31. Eine Gruppe von 52 Leitungen ist für das Steuenvort und ein Datenwort vorgesehen. Während des Betriebes geht das Steuerwort immer dem Datenwort voraus, folglich befinden sich beide Wörter nie gleichzeitig auf der Leitung. Wenn ein Requestor einen Zugriff zu einem MCM 92 wünscht, wird ein Anforderungssignal an den MCM 92 geschickt. Der Prioritätsauflösungskreis 116 stellt fest, ob der MCM 92 aufgrund eines anderen Requestors belegt ist, oder ob dieser Requestor an einem Zugriff zu diesem speziellen MCM 92 gehindert wird. Sofern der Zugriff erlaubt ist, wird ein Anforderungsimpuls gleichzeitig mit einem Steuerwort an den MCM 92 geschickt, um die Zeittaktsteuerung auszulösen und den MCM 92 davon zu unterrichten, daß eine Lese-, Schreib- oder eine Lese-Speicher-Schreiboperation durchgeführt werden soll. Das Steuerwort wird in dem Steuerwortregister 118 und dem Eing&l'eregister 120 des MCM 92 gespeichert. Allgemeine Steuereinrichtungen 122 des MCM 92 erzeugen Tor- und Zeittaktimpulse, um das Steuerwort von dem Eingaberegister 120 zur Fehlerwahrnehmungslogik 110 zu transferieren und dort bezüglich korrekter Parität zu überprüfen.
Wenn ein Paritäsfehler wahrgenommen wird, wird das Steuerwort in das Fail-Register 112 geleitet; durch den
MCM 92 werden ein Requestorbetrieb-Beedigungssignal und ein Fail-Unterbrechersignal erzeugt und dem Requestor zugeleitet. Außerdem wird der Inhalt des Failregisters 112, sofern vom Requestor angewiesen, über ein Speicherpufferregister 124 und ein Ausgaberegister 126 des MCM 92 in den Requestor transferiert. Das Paritätsbit für das Fail-Wort wird in der Fehlerwahrnehmungslogik 110 erzeugt und im Ausgaberegister 126 dem Fail-Wort hinzugefügt.
Unter der Annahme, daß das Steuerwort keinen Fehler aufweist und sich nicht innerhalb einer speziellen Anforderung befindet, laufen folgende Ereignisse in den Steuer- und Logikschaltkreisen des MCM 92 ab. In den Steuereinrichtungen 122 werden die für die durchzuführende Operation erforderlichen Steuerimpulse erzeugt. In einer MSU-Steuereinheit 128 werden die zum Einschreiben bzw. Auslesen aus der MSU 96 benötigten
ίο Steuersignale erzeugt. Die MSU-Steuereinheit 128 legt außerdem fest, welche der MSUs eingesetzt werden, sie
identifiziert ferner die von der MSU 96 auszuführende Operation (entweder Lesen oder Schreiben oder Lesen/
Modifizieren/Schreiben). Durch einen Prüfbitgenerator 130 des MCM 92 wird ein Paritätsbit für die 2-Bit-MSU-
Operation und die 16-Bitadresse des ursprünglichen Steuerwortes vor dem Transfer in die MSU 96 erzeugt.
Wenn das Steuerwort eine Schreiboperation enthält, ist die nächste Eingabe in den MCM 92 durch das
Datenwort (oder die Gruppe von Datenwörtern, die durch die Wortlänge des Steuerwortes gegeben ist) aus dem Requestor gegeben. Das Datenwort wird in das Eingaberegister 120 eingegeben, das für die Fehierwahrnehmungslogik 110 eine Informationsquelle darstellt. Die Fehlerwahrnehmungslogik 110 überprüft die Parität des 52-Bit-Wortes, welches vom Requestor erhalten wurde, sie erzeugt dann sieben Prüfbits und das Gesamtparitätsbit für das vollständige 60-Bit-Wort. Das 52-Bit-Datenwort wird in das Speicherpufferregister (MBR) 124
weitergeleitet, indem die sieben Prüfbits und das Gesamtparitätsbit zu dem Datenwort addiert werden. Das 60-Bit-Datenwort wird dann zur Speicherung in die MSU 96 geleitet. Dieser Zyklus wird für jedes Datenwort wiederholt, welches in den Speicher eingeschrieben werden soll.
Wenn das Steuerwort eine Leseoperation enthält, wird das 60-Bit-Datenwort (oder die Gruppe der Datenwörter, die durch die Wortlänge des Steuerwortes gegeben ist) aus dem Adressenplatz oder den Adressenplät-
zen der MSU % ausgelesen und zeitweilig in dem Speicherpufferregister (MBR) 124 gespeichert. Das Datenwort wird zum Vergleich mit dem schon früher im Adressenplatz gespeicherten Wort zur Fehlerwahrnehmungslogik 110 transferiert. Die Fehlerwahrnehmungslogik 110 führt eine Fehlerüberprüfung durch, während die am wenigstens signifikanten 52 Bits des Datenworts in das Register weitergeleitet werden. Sofern eines der Bits nicht korrekt war, wird dieses spezielle Bit dadurch korrigiert, daß es in das Ausgaberegister komplementiert
wird. Das richtige Datenwort wird zusammen mit einem Fail-2-Unterbrechersignal (welches später beschrieben wird) in das Register geschickt. Das Fail-2-Unterbrechersignal ermöglicht es dem Requestor, den Fehler aufzulisten und außerdem den Verarbeitungsprozeß mit korrekten Daten fortzusetzen. Sofern ein 2-Bit-Fehler auftaucht, schick; der MCM 92 ein Fail-1-Unterbrechersignal (wird später beschrieben) an den Requestor und gibt die Fail-Daten in das MCM-Fail-Register 112 ein.
Wenn das Steuerwort eine Spezielanforderung darstellt (z. B. entweder »Lade Requestorsperregisier« oder »Lade Speichergrenzwertregister«) bereiten sich die Steuereinrichtungen 122 des MCM 92 für den Transfer des nächsten Datenwortes vor, der vom Eingaberegister 120 (nach einer Paritätskontrolle) entweder direkt zum Requestorsperregister 104 oder zum Speichergrenzwertregister 106 oder 108 oder einem der MSU verfügbaren Register stattfindet, welches in der MCU-Steuereinheit 128 vorgsehen ist. Wenn das Steuerwort eine »Lade
Requestorsperregjsterw-Operation enthält, wird das Requestorsperregister 104 mit den nächsten Daten geladen, um anzugeben, welche Requestoren nun Zugriff zum MCM 92 besitzen. Wenn das Steuerwort eine »Lade Speichergrenzwertregister«-Operation enthält, so wird die MCM- und MSU-Anordnung verändert, um die Anzahl der dem MCM 92 verfügbaren MSUs und den oberen und den unteren Grenzwert festzustellen.
Die Einzelheiten der Funktionsweise des MCM 92 ist in den folgenden Absätzen unter Bezug auf das
Blockdiagramm der F i g. 33 kurz geschildert. Eine Requestoranschiußeinheit 132 enthält die Empfänger-/Treiber-Schaltlogik 114, die für alle Verbindungen zwischen dem MCM 92 und allen Requestoren verwendet wird Die Daten- und Steuersignale, die zwischen diesen Moduln fließen, sind in F i g. 3 dargestellt. Jeder von einem MCM 92 bediente Requestor enthält diese Signale und Datenleitungen. Die 52 Informationsleitungen werden verwendet, um Steuersignale zwischen den Moduln umzusetzen. Alle 78 Treiber/Empfängerleitungen steller
so Zweiweg-Treiber/Empfängerleitungen dar, aber nur bei 52 dieser Leitungen wird von dieser Eigenschaft Verwendung gemacht. In der bevorzugten Ausführungsform sind die Treiber/Empfängerkreise in allen Requestor« und MCMs identisch, so daß die Treiber/Empfängerkreise der verschiedenen Moduln untereinander auswech seibar sind. Die Empfänger/Treiberlogik für die 26 Steuerleitungen ist identisch mit Datenleitungen; die Signale welche die Puffer in Betrieb setzen, sind immer vorhanden, wenn die Requestoren und der MCM 92 mit Leistun| versorgt sind.
Der in F i g. 34 dargestellte Fluß von Daten und Steuersignalen zwischen dem MCM 92 und dem Requestoi wird im folgenden beschrieben.
Daten und Parität werden zwischen einem Requestor und einem MCM 92 über eine dafür vorgesehem Gruppe von 52 Zweiweg-Datenleitungen 134 transferiert. Diese Leitungen 134 werden außerdem zur Übertra
gung des Steuerwortes verwendet Eine ungerade Parität wird erzeugt und alle Wörter transferiert, und da: Paritätsbit wird in Koinzidenz mit den Daten übertragen.
Ein Spezialanforderungssigna! (RQSN) wird von einem CPM 20 eingesetzt, um Zugriff zu einem MCM 92 zi erlangen (unabhängig vom Inhalt des Requestorsperregisters 104), und um Requestor-Sperrwerte oder Spei chergrenzwerte einzugeben. Das RQSN-Signal geht bei Koinzidenz mit einem Anforderungssignal (REQ) in dei
»wahren« Zustand über und bleibt in diesem »wahren« Zustand, bis zum Erhalt eines Bestätigungssignals (ACK über eine Bestätigungsleitung 136 aus dem MCM 92. Das RQSN-Signal wird vom Requestor über eine speziell! Anforderungsleitung zum MCM 92 weitergeleitet, während das Anforderungssignal (REQ) vom Requestor übe eine Anforderungsleitung 140 zum MCM 92 übertragen wird.
Ein Anforderungssignal (REQ) wird von einem Requestor ausgesendet, um einen speziellen MCM 92 auszuwählen. Das REQ-Signal geht eine Taktperiode vor einem Anforderungsimpuls (RSTB) in seinen »wahren« Zustand über und bleibt in diesem »wahren« Zustand bis zum Empfang eines Betätigungssignals (ACK) über eine Bestätigungsleitung 136 aus dem MCM 92. Der Anforderungsimpuls wird vom Requestor über eine Anforderungsimpuls-Leitung 142 zum MCM 92 geleitet.
Ein Datenabtastimpuls-Signal (DSTB) wird über eine Datenabtastimpulsleitung 146 geschickt, um den MCM 92 davon zu informieren, daß Daten über die Datenleitungen übertragen werden. Das Datenabtastsignal läuft einen Taktimpuls vor dem Datenwort her, seine Weite gibt die Anzahl der diesem Datenabtastsignal nachfolgenden Datenwörter an.
Ein Anforderungsabtastimpuls-Signal wird über die Anforderungsimpulsleitung 142 geschickt, um den MCM 92 davon zu informieren, daß ein Steuerwort über die Datenleitungen 134 transferiert wird. Dieses Signal ist zu Anfang eine dem Start des Anforderungssignals (REQ) nachfolgende Taktperiode lang »wahr«. Das Steuerwort wird in Koinzidenz mit dem Anforderungsabtastimpuls-Signal übertragen.
Ein »Daten-verfügbar«-Signal (DAV) wird vom MCM 92 über eine »Daten-verfügbar«-Leitung 148 dem Requestor zugeführt, um anzuzeigen, daß Daten verfügbar sind und in der folgenden Taktperiode übertragen werden können. Dieses Signal geht erst eine Taktperiode vor einem Datentransfer in seinen »wahren« Zustand über und verbleibt in diesem Zustand nur während der Requestoroperation Ausführungszeit (ORT-Zeit). Ein Betätigungssignal (ACK) mit der Dauer einer Taktperiode wird über eine Bestätigungsleitung 136 zum Requestor geschickt, um anzuzeigen, daß der MCM 92 das Steuerwort aufgenommen hat. Dieses Signal gibt dem Requestor an, daß er die Übertragung des Anforderungsignals (REQ) und des Anforderungsabtastimpuls-Signals (RSTB) beenden muß. Es bedeutet aber nicht notwendigerweise, daß die angeforderte Speicheroperation durchgeführt wird.
Ein Datensendesignal (SND) wird während eines N-Längen-override-Vorganges zum Requestor geschickt, es kann auch während eines geschützten AZ-Wörter-Einschreibvorganges gesendet werden. Das Datensendesignal gibt die Anzahl der Datenwörter an, die zum MCM 92 übertragen werden müssen. Die Anzahl der zu übertragenden Wörter ist gleich der Anzahl der Taktperioden, während der das Datensendesignal »wahr« ist. Es sei bemerkt, daß das Datensendesignal dann nicht übertragen wird, wenn ein Versuch unternommen wird, während einer N-Wörter-Schreiboperation in einen geschützten Bereich einzuschreiben. Außerdem muß die vom MCM 92 angeforderte Anzahl von Datenwörtern transferiert sein, bevor ein Requestor seinen Betrieb beendet.
Ein »Daten-vorhanden«-Signal (DAPB) wird über eine »Daten-vorhanden«-Leitung 152 zum Requestor geschickt, um anzuzeigen, daß vom MCM 92 ein gültiges Wort (oder Wörter) übertragen wird. Das DAPB-Signal wird in Koinzidenz mit dem Datenwort übertragen. Während der Taktperioden, während der das DAPB-Signal »wahr« ist, wird jeweils ein Wort übertragen. Die Anzahl der aufeinanderfolgend übertragenen Wörter bestimmt die Länge des DAPB-Signals.
Der MCM 92 sendet über eine Requestoroperationsabschluß-Leitung ein 1-Taktperiode dauerndes Signal (RQC), um das Ende des Beitrags der Requestoren an der Speicheroperation anzugeben.
Die Vermittlung der oberen Grenzwertadresse zwischen einem MCM 92 und einem Requestor geschieht durch die sechs signifikantesten Bits des höchsten 20-Bit-Speicherzugriffs, der von dem MCM 92 durchführbar ist (die am wenigsten signifikanten 14Bits werden alle als »1« angenommen). Die Vermittlung der unteren Grenzwertadresse erfolgt durch die signifikantesten sechs Bits des niedersten 20-Bit-Speicherzugriffes, der durch den MCM 92 durchführbar ist (die am wenigsten signifikanten 14 Bits werden alle a!s »1« angenommen). Die sechs Bits der unteren Grenzwertadresse werden vom MCM 92 über eine Leitung 156 zum Requestor übertragen, während die sechs Bits für die untere Grenzwertadresse vom MCM 92 über eine weitere Leitung 158 an den Requestor gesendet werden.
Der MCM 92 sendet über eine Requestorauslöseleitung ein Auslösesignal an den Requestor, welches die Verbindung zwischen dem MCM 92 und dem entsprechenden Requestor in Betrieb oder außer Betrieb setzt. Dieses Signal ist ein Beharrungssignal, welches die Verbindungen unterbricht, wenn der MCM 92 einen Leistungszyklus nach oben oder nach unten durchläuft oder wenn das zugehörige Requestorsperr-Flip-Flop gesetzt ist Der Requestor sendet dem MCM 92 ein Auslösesignal über eine MCM-Auslöseleitung 162, welches verwendet wird, um die Verbindungen zwischen dem Requestor und dem MCM 92 in Betrieb oder außer Betrieb zu setzen. Dieses Signal ist auch ein Beharrungssignal, welches die Verbindungen unterbricht, wenn der Requestor Leistungszyklen nach oben oder nach unten durchläuft.
Der MCM 92 überträgt ein FAILl -Unterbrechersignal (FALl) von einer Taktperiodedauer an den Requestor, wenn einer der folgenden Fehler vorkommt: (1) Steuerwort-Paritätsfehler; (2) unrechtmäßiger Operationscode; (3) falscher MCM; (4) Datenabtastimpulsfehler; (5) Zwei-Bitfehler; und (6) interne Fehler. Das MCM-Fail- Register 112 wird dann mit Information beladen, um die Fehleranalyse zu erleichtern. Der MCM 92 überträgt ein FAIL-I-Unterbrechersignal über eine Verbindungs'eitung 164 an den Requestor.
Der MCM 92 überträgt ein FAlL-2-Unterbrechersignal (FAL 2) von der Dauer einer Taktperiode über eine Verbindungsleitung 166 zum Requestor, wenn ein 1 -Bit-Fehler auftaucht Das MCM-Fail-Register 112 wird dann mit Information beladen, die die Fehleranalyse erleichtert.
Ein Software-Fehlerunterbrechersignal (FALS) mit der Dauer einer Taktperiode wird über eine Verbindungsleitung 168 vom MCM 92 an den Requestor geleitet, während einer geschützten Ein-Wort oder N-Wörter-Schreiboperation, sofern das betrachtete Speicherwort eine »1« im Bit 48 besitzt. Die FAIL-I- und FAIL-2-Unterbrechersignale erscheinen zeitlich nie später als ein Requestoroperationsabschluß-Signal (RQOS), welches vom MCM 92 über die Requestoroperationsanschluß-Leitung 154 dem entsprechenden Requestor zugeführt wird.
Im folgenden wird nun die Beschreibung der Funktionsweise des MCM 92 fortgesetzt. Die Funktion des Prioritätsresolvers 116 im Requestor besteht darin, den angeforderten Kanal auszuwählen, der von dem MCM
92 bedient werden soll. Die Reihenfoige der Serviceanforderungen (d. h. die Priorität) ist in der vorliegenden Erfindung unter dem Gesichtspunkt maximaler Effektivität entworfen und festgelegt. Die Prioritätsauswahl basiert darauf, daß der Requestorkanal mit der niedersten Nummer während simultaner Anforderungen von mehreren Requestoren die höchste Priorität besitzt, die Prioritäten sind fest verdrahtet, so daß in einem System mit zwei Hauptprozessormoduln 20 und zwei EingabeVAusgabemoduln 10 den Eingabe-/Ausgabemoduln to die Prioritäten 0 und 1 zugeordnet sind und den Hauptprozessormoduln 20 die Prioritäten 6 und 7 zugeordnet sind. Die Prioritäislöseeinrichtung 116 garantiert, daß ein einzelner Requestor hoher Priotität keinen Zugriff zum Hauptspeicher 30 mit nacheinander erfolgenden Speicheranforderungen erhält, sofern ein Requestor niederer Priorität den Speicher angefordert hat. Die Prioritätslöseeinrichtung 116 oder der MCM 92 setzen die Verbindüngen mit den entsprechenden Requestoren je nach den Requestorsperrsignalen in Betrieb oder außer Betrieb, ausgenommen sind Hauptprozessormoduln 20 mit Spezialanforderungen. Die Spezialanforderung läuft an der Sperregisterprüfung vorbei, um entweder das Requestorsperregister 104, die Speichergrenzwertregister 106 Sjj und 108 zu beladen, oder um den Inhalt des Fail-Registers 112 zu entnehmen. Die Prioritätslöseeinrichtung 116
!'" des MCM 92 schließt diejenigen Requestoren von einer weiteren Bedienung aus, die gestört sind und weitere
1« 15 Requestoren ausschließen könnten.
Ef In der bevorzugten Ausführungsform besteht das Eingaberegister 120 des MCM 92 aus einem 52-Bit-Register,
'i§ welches vom MCM 92 eingesetzt wird, um zeitweise die vom Requestor erhaltenen Sieuerwörter und Daten-
I* Wörter zu puffern. Das Eiugaberegister 120 stellt eine Datenquelle für das Speicherpufferregister (MBR) 124 dar,
1A die die Überpfüfung der Parität eines Datenwortes und eine Erzeugung von Prüfbits ermöglicht. Während des
|| 20 Beginns einer Operation wird eine Kopie des Steuerwortes in das Eingaberegister 120 zur Paritätskontrolle
ϊ: eingegeben.
J| Das Eingangssignal des Requestors (entweder ein Datenwort oder ein Steuerwort) wird mittels eines Empfän-
l|j ger-Eingaberegister-Transfersignals und eines Eingaberegister-Ladestartsignals (im MCM 92 erzeugt, um die
ρ Datenwörter und Steuerwörter in das Eingaberegister 120 zu laden) in das Eingaberegister 120 transferiert.
25 Je nach dem am Ausgang des Eingaberegister 120 vorhandenen Transfersignalen werden die Eingaberegister-
H Bits (IR-Bits) in das Speicherpufferregister (MBR) 124, den Prüfbit-Generator 130 mit Schaltkreisen zu. Daritäts- S kontrolle, das Speichergrenzwertregister 106,108 und das Requestorsperregister 104 transferiert Besteht die
¥i Information im Eingaberegister t20 aus einem Steuerwort, aus Speichergrenzwertregister-Daten oder aus
'& Requestorsperregister-Daten, so wird nur eine Paritätskontrolle durch den Prüfbitgenerator 130 vorgenommen.
j| 30 Besteht die Information im Eingaberegister 120 aus einem zu speichernden Oatenwort, so führt der Prüfbitgene-
rator 130 eine Paritätskontrolle aus und erzeugt dann 8 Prüfbits, um das 60-Bit-Datenwort zur Speicherung zu
H vervollständigen.
m Besteht die im Eingaberegister 120 enthaltene Information aus Speichergrenzwertregisterdaten, so werden
W nur die ersten 16 Bits (Bit 0 bis 15) mittels eines Eingaberegister/Grenzwertspeicher-Transfersignals transferiert.
,| 35 Bit 0 bis 11 wird in das Speichergrenzwertregister eingegeben (Bit 4 bis 9 ais oberer Grenzwert der Speicher-
ä adressen, Bit 10 bis 15 als unterer Grenzwert der Speicheradressen), Bits 0 bis 3 wird in das »Datenvorhan-
* den«-Register eingegeben, welches aus einem Teil der MSU-Steuereinheit 128 besteht und als IAV bis 4AV
bezeichnet ist. Diese Daten stellen die Speichergrenzwerte (innerhalb des gesamten Speichers) dar, die zur Verwendung durch einen Requestor verfügbar sind.
Besteht die im Eingaberegister 120 enthaltene Information aus Requestorsperregister-Daten, so werden nur die ersten 8 Bits (Bit 0 bis 7) des Eingaberegisters mittels eines Eingaberegister/Requestorsperregister-Transfersignals transferiert, um festzustellen, welcher der Requestoren Zugriff zu einem bestimmten MCM 92 besitzt Besteht die Information im Eingaberegister 120 dagegen aus einem in den Speicher einzuschreibenden 52-Bit-Datenwort, so werden die Daten während eines Schreibbefehls in das Speicherpufferregister 124 transferiert, und die Daten werden simultan zur Paritätskontrolle und zur Erzeugung von Prüfbits zum Prüfbitgenerator 130 geschickt.
Für eine geschützte N-Wörter-Schreiboperation wird außerdem ein Ausgangssignal an das Steuerwortregister 118 geleitet während über Steuerschalter, die sich auf dem Bedienungspult eines MCM 92 befinden, ein lokaler Testvorgang stattfindet. Dadurch wurden die Speicherplätze bezüglich eines geschützten Bits (Bit 48 »gesetzt«) überprüft, und das ursprüngliche Steuerwort, welches sich im Eingaberegister 120 befindet, wird dem Steuerwortregister 118 zugeleitet, um eine Schreiboperation zu starten. Dies ist erforderlich, da da* anfänglich im Steuerwortregister 118 befindliche Steuerwort während des Prüfvorganges angereichert wurde, damit ein geschütztes Bi' vorhanden ist
Das Steuerwortregister 118 besteht aus einem 52-Bit-Register in dem MCM 92; es wird zur Speicherung des vom Requestor geschickten Steuerwortes eingesetzt Das Steuerwort wird vom Requestor einen Taktzyklus nach der Übermittlung des Anforderungssignales übermittelt es koinzidiert mit dem Anforderungsabtastimpuls. Das Requestorsperregister 104 besteht aus einem 8-Bit-Register, welches vom MCM 92 eingesetzt wird, um das jeweils gültige Requestorsperrsignal zu halten. Das Ausgangssignal dieses Registers wird durch den Prioritätsresolver 116 überprüft um festzustellen, welcher Requestor oder welche Requestoren am Zugriff zum MCM eo 92 gehindert werden. Alle Ausgangssignale des Requestorsperregisters 104 sind fest mit einem Requestor verdrahtet, wodurch dem Requestor, der das »Ebene-vorhanden«-Auslösesignal empfängt Zugriff zum MCM 92 gewährt wird, sofern sein Sperrflipflop zurückgesetzt ist Die Ausgangssignale dieses Registers werden außerdem den Requestoren übermittelt um die Verbindung mit ihnen in Betrieb bzw. außer Betrieb zu setzen. Äußerst wichtig ist es dabei, daß diese Register von jedem beliebigen Hauptprozessor 20 programmiert beladen wird. Das Requestorsperregister 104 wird durch Eingangssignale von einem Requester über das Eingaberegister 120 gesetzt, oder es wird durch Eingangssignale von dem Steuertisch des MCM 92 oder von dem Bedienungstisch des Operators gesetzt. Das Speichergrenzwertregister besteht aus einem 16-Bit-Register, es enthält 6 Bits zur Anzeige der unteren Grenzwertadresse, 6-Bits zur Anzeige der oberen Grenzwertadresse und vier Bits, um die
MSU-Verfügbarkeit anzugeben. Die untere Grenzwertadresse besteht aus den sechs signifikantesten Bits der niedersten 20-Bit-Speicheradresse, über die dieser MCM verfugen kann (die am wenigsten signifikanten 14 Bits werden zu »0« angenommen). Die obere Grenzwertadresse ist durch die signifikantesten 6 Bits der höchsten 20-Bit-Speicheradresse gegeben, über die dieser MCM verfügen kann (die am wenigsten signifikanten 14 Bits sind alle zu »1« angenommen). 4 Bits gegen die MSU-Verfügbarkeit ab.
Die obere und untere Grenzwertadresse definieren die Adressierkapazität dieses MCM innerhalb des gesamten Speichersystems 30. Die MSU-Verfügbarkeit definiert die MSUs, die demjenigen MCM zur Verfügung stehen, der die maximale Wortzahl einer N-Längen-Operation bestimmt. Diese Grenzwerte können entweder programmiert eingegeben werden oder über den MCM-Steuertisch und Schalter im Bedienungstisch des Operators eingegeben werden. Die Speichergrenzwertregister-Daten werden während des Betriebsbeginnes festge- to legt und nur verändert, sofern eine Um- und Neuordnung des Speichers erforderlich ist.
Die 12 Bits für die unteren und oberen Grenzwerte werden allen Speicheranschluß-Komparatoren der Requestoren zugeführt Diese Information ermöglicht es dem Requestor, die richtige Adresse mit dem richtigen MCM-Kanal in Beziehung zu bringen. Die Ausgangssignale der 12-Adressenbits (untere und obere Grenzwerte) werden mit den 6 signifikantesten Bits der Steuerwortadresse des Requestors verglichen. Liegt die Steuerwortadresse nicht innerhalb des unteren und oberen Grenzwerts, so wird ein falsches Adressensignal an das Fail-Wort-Register geschickt, welches anschließend ein FAIL-1-Unterbrechersignal an den Requestor sendet. Die Ausgangssignale des 6-Bit-unteren-Grenzwerts und des 6-Bit-oberen-Grenzwerts werden den einzelnen Requestoren test verschaltet zugeführt und werden mit vorgegebenen Speichergrenzwerten für jeden Requestor verglichen. Liegt die Speicheroperationsadresse des Requestors innerhalb eines MCM-Grenzwertes, so löst der Requestor ein Anforderungssignal aus, um Zugriff zu diesem MCM zu erlangen, sofern das entsprechende Requestorsperregister-Bit nicht gesetzt ist.
Die Ausgabebits (IAV bis 4AV) werden den Speichersteuereinrichtunggen zugeführt, um festzustellen, welch,- MSUs diesem MCM zur Verfügung stehen. Erfindungsgemäß besitzt die Wartungs-Diagnose-Einheit (MDU) und der MCM-Bedienungstisch Einrichtungen zur Steuerung und zum Ablesen der Speichergrenzwertregister 106 und 108 und aller anderer Flipflops.
Das Speicherpufferregister (MBR) 124 besteht aus einem 60-Bit-Register, welches vom MCM zeitweilig als Pufferregister für die zu bzw. aus den MSUs transferierten Datenwörter eingesetzt wird. Die Eingabequellen für das MBR 124 (für Datentransfer zu einer MSU) sind folgende: (a) Das Eingabereigster 120 für die am wenigsten signifikanten 52-Bits (Bit 00 bis 51), (b) die Fehlerkode-Prüfbits (Bit 52 bis 58) und (c) das Gesamtparitätsbit (Bit 59). Für Datentransfers aus den MSUs stellt die MSU-Empfänger-/Treiberlogik 114 die Eingabequelle dar. Das MBR 124 ist die Datenquelle für die Fehlerkode-Prüflogik, um festzustellen, ob eine Korrektur der Bits derjenigen Wörter erforderlich ist, die von einer MSU 96 zum MCM 92 transferiert werden.
Während einer Schreiboperation werden 52 Bits (88 bis 51) vom Eingaberegister 120 zum MBR 124 mittels eines Eingaberegister/MBR-Transfersignals transferiert, das während der gesamten Schreiboperation vorhanden ist Diese 52 Bits waren eine Taktperiode vorher an den Prüfbitgenerator 130 zur Erzeugung der Prüfbits (Bit 52 bis 59) geleitet worden. Diese Prüfbits werden mittels eines Prüfbitgenerator/MBR-Transfersignals zum MBR 124 transferiert, welches während der gesamten Schreiboperation vorhanden ist. Das die Beladung des MBR 124 auslösende Signal ist vorhanden, wenn das Schreiboperation-Auslöseflipfiop- und das Datentransfer-Steuerflipflop-Signal gesetzt sind. Diese 60 Bits werden dann über die Empfänger-Treiberlogik zur Speicherung in den Speicher transferiert.
Während einer Abrufoperation werden 60 Bits aus dem Speicher über die Empfänger-ZTreiberlogik zum MBR 124 mittels eines Transfersignals transferiert, welches während des gesamten Abrufzyklusses vorhanden ist Das Freigabesignal ist verfügbar, wenn das Datentransfer-Steuerflipflop gesetzt ist und die Wortzählzahl größer als 0 ist Die ersten 52 Bits (00 bis 51) werden zum Ausgaberegister 126 transferiert, während die Prüfbits (52 bis 59) zur Fehlerwahrnehmungslogik 110 übertragen werden, um festzustellen, ob ein Fehler im Speicherdatenwort existiert. Wenn die Prüfbits keinen Fehler feststellen, wird das Datenwort im Ausgabereigster 126 zu dem Requestor geschickt, sofern jedoch ein Ein-Bit-Fehler festgestellt wird, erzeugt die Fehlerwahrnehmungslogik UO ein Korrektursignal, um das fehlerhafte Bit des Wortes zu komplementieren, bevor das "Wort aus dem Ausgaberegister 126 an den Requestor übertragen wird.
Während einer Fail-Register-Abrufoperation wird die Fail-Registerinformation, mit Ausnahme des Bits 51. vor Plazierung in das A.usgaberegister 126 zum MBR 124 transferiert.
Die Fehlerwahrpehmungslogik 110 (zur Fehlerkontrolle, Fehlerwahrnehmung und Fehlerkorrektur eingesetzt) bedient sich dreier Störungsunterbrechersignale: FAIL 1, FAIL 2 und FAIL S. Das FAIL-I-Unterbrechersignal, auch als FAIL-I-Signal bezeichnet wird erzeugt und an den Requestor gesendet wenn ein nicht korrigierbarer Fehler auftaucht, auch wenn dadurch die Requestor-Speicheroperation nicht abgeschlossen wird. Das Fail-Register 112 wird mit folgender Information beladen, um die Störungsanalyse zu vereinfachen: (a) R/W-Bit, (b) MSU-Verfügbarkeit,(c) MCM-Nummer, (d) Requestorkanalnummer, (e) Fehlertyp und (f) Fehleradresse. Die Operationen des Requestors werden immer dann vollständig ausgeführt wenn folgende Fehler wahrgenommen werden: (a) Zwei-Bit-Fehler (nur bei Abruf), (b) Prüfgeneratorfehler, (c) Adressenfehler und (d) Datenwort-Paritätsfehler. Die Operationen des Requestors werden nicht weiter ausgeführt, wenn folgende Fehler wahrgenommen werden: (a) Steuerwort-Paritätsfehler, (b) unrechtmäßige Operation, (c) falsche Adresse, (d) MSU-Paritätsfehler, (e) Lesen-verfügbar-Störung (read available failure), (f) Zwei-Bit-Fehler (geschütztes Schreiben), (g) Datenabtastimpuls-Fehler und (h) MSU-nichtverfügbar-Fehler. Die Operationen des Requestors können, brauchen aber nicht bis zu ihrem Ende durchgeführt werden, wenn folgender Fehler innerhalb des MCM wahrgenommen werden: (a) Prüfbitgenerator (MSU-Steuerung-)Störung. (b) Datenzeitgeberstörung, (c) Datentransfersteuerung-Störung und (d) MSU-Verfügbarkeitsfehler. Das FAIL-1-Unterbrechersignal (FALl) wird bei jedem während oder nach einer Requestoroperation-Verlaufszeit wahrgenommenen internen Fehler dem nächsten
Requestor übermittelt Das Auftreten eines Prüfbitgenerator-Fehlers stellt insofern eine Ausnahme dar, als das FAIL-1-Signal dann dem ursprünglichen Requestor zugeleitet wird, innerhalb des Fail-Registers 112 betreffen das R/W-Bit und c'.e Requestorkanalnummer den ersten Requestor, und Bit 48 des Fail-Registers 118 wird gesetzt um anzugeben, daß es sich um eine »verzögerte« Unterhrechungssituation handelt
Das FAIL-2-Unterbrechersignal (FAIL2) wird erzeugt wenn ein Ein-Bit-Fehler auftauchte. Wenn ein FAIL-2-Signal dem Requestor zugeleitet wurde, wird die folgende Information in ds FAIL-Register 118 eingegeben.
In der bevorzugten Ausführungsform besteht das Fail-Register 118 aus einem 52-Bit (Bit 00 bis 51) Register, in dem die ganze einschlägige Information gespeichert wird, die zur Identifizierung und Definition einer Störung erforderlich ist. Die Fail-Information verbleibt im Fail-Register 118 solange, bis eine Fail-Abrufoperationsanforderung durch den Requestor erfolgt oder, bis eine Löschoperation durchgeführt wird. Während einer Fail-Regibter-Ahrufoperation wird die Information über das Speicherpufferregister (MBR) 124 und das Ausgaberegister an de;i Requestor zurückgegeben. In dem Prüfbitgenerator 130 wird ein Wortparitätsbit für das Fail-Wort erzeugt und dem Fail-Wort vor einem Transfer in den Requestor im Ausgaberegister 126 hinzugefügt Das Format, die Bits und die Felder de? MCM-Faii-Wortes sind in Tabelle 9 definiert
Tabelle 9
Feld
Biis
Beschreibung
20 TAG
R/W
30 MSU AV
:3 Gibt an, wenn das Unterbrechungsbit (Bit 48) gesetzt ist, daß der MCM
einen intern«.! Fehler wahrgenommen hat, während oder nachdem das Requestoroperations-Vervollstündigungsflipflop (ROC) gesetzt ist Das Unterbrechersignal wire bis zur Meldung der nächsten verzögerten Unterbrechung durch eine Requestoropention gespeichert.
:1 Das R/W-Bit gibt an, wenn ein Fehler wahrgenommen wurde, ob die
ausgeführte Operation in einer Schreiboperation oder einer Leseoperation bestand.
:2 Das MSU AV-FeId gibt an, welche MSU'.s) für den MCM verfügbar sind.
Die Interpretation des Feldes lautet:
MCMNO
45 REQCHNLNO.
IB
55 ΙΝΊ INT ER TYPE
Bit 46
Bit 45
0 0
0 1
1 0
1 1
kein MSU verfügbar ein MSU verfügbar zwei MSUs verfügbar vier MSUs verfügbar
:4 Die MCM-Nummer ist eine im voraus zugeordnete Zahl (0 bis 15), die in
das MCM-Nummernfeld des Fail-Wortes plaziert ist, um den speziellen MCM mit der Fehlerbedingung zu identifizieren.
:3 Das Requestorkana'-Nummernfeld enthält die Nummer des Requestors
der während der Beladung des Fail-Registers mit dem MCM in Verbindung stand (ausgenommen, wenn eine Ein-Bit-Fehlerwahrnehmung und -korrektur erfolgt; in diesem Fall enthält das Feld die Nummer desjenigen Requestors, der das Fail-Register abruft).
5:1 Ein 1-Bit-Fehler (IB), gibt an, daß sich ein einzelnes Bit in fehlerhafterr
Zustand befand, während der Fehlerüberprüfung eines Datenwortes, welches aus dem Speicher ausgelesen wird.
:1 Das »interne Feh!er«-Bit (INT) gibt an. daß innerhalb des MCM oder dei
MSU eine logische Störung auftrat. Bits 0 bis 3 im Fail-Wortregister müs sen überprüft werden, um den Fehlertyp festzustellen.
:4 Diese Bits enthalten einen Kode, der die Art der Störung anzeigt, wenn da:
»interne Fehler«· Bit eine »1« ist. Die nachfolgend aufgelisteten Kode: definieren die Fehler:
32
ER BIT NO
ER ADDRS
Fail-Wort-Registerbits
angezeigter Fehlertyp
3 2 10
Ö Ö Ö Ö
0 0 0 1
0 0 10
0 0 11 0 10 0
1 0 1
1 1 0
0
0
Olli 10 0 0
MSU nicht verfügbar
»Lesen-verfügbar«-Fehler
Prüfbitgeneratorfehler
Adressenzählerstörung
MSU-Adressenfenler
Paritätsgenerator-(MSU-Steuerungs-)störung
Datenzeitgeberfehler
Daten transfers teuer ungsstörung (DTC)
MSU-Verfügbarbitsfehler
:6 Wenn ein Ein-Bit-Fehler auftaucht, wird die Binärzahl des Bits, welches
gestört ist, in das Fehlerbit-Nummernfeld eingegeben.
:20 Das Fehleradressenfeld enthält die Adresse des Speicherplatzes, für den ein Zugriff bestand, während ein Ein-Bit- oder Zwei-Bit-Fehler auftauchte. Die Adresse ist in folgender Weise einem Ein-Bit- oder einem Zwei-Bit-Fehler zugeordnet:
Fehleranzeige 2-Bit 1-Bit
Fehleradresse gehört zu cinerm
CWP
WRA
DWP
1-Bit-Fehler
2-Bit-Fehler
I-Bit-Fehier
11:1 Gibt eine unrichtige Steuerwortparität an, wenn das CWP-Bit den Wert
»!«besitzt.
10:1 Die durch das Steuerwort spezifizierte Operation, die den Fehler verur
sachte, bestand aus einem nicht rechtmäßigen Operationskode, sofern das IOP-Bit den Wert »1« besitzt, (vgl. auch Tabelle V-2-2) oder es wurde einer der folgenden Fehler angezeigt:
(1) Wonlänge =0
(2) Wortlänge > 1 für eine Ein-Wort-Operation
(3) der Spezial-Anforderungsabtastimpuls ist nicht vorhanden bei einem Requestorsperr-Ladesignal oder einem Speichergrenzwert-Ladesignal
:1 Gibt an, wenn das WRA-Bit (falsche Adresse-Bit) gesetzt ist, daß die 6
signifikantesten Bits der Adresse des Steuerwortes nicht innerhalb der Adressengrenzwerte liegen, die diesem MCM zugeordnet sind.
8:1 Ein Datenwort-Pari1.ätsfehler (DWP) gibt an, daß ein Datenwort mit gera
der Parität aus dem Requestor während der Schreiboperation empfangen wurde.
7:1 Ein Daten-Abtastimpulsfehler (STB) gibt an, daß entweder zu viele oder zu
wenig Datenabtastimpulse vom MCM während eines /V-langen Überschreibvorganges oder eines geschützten ΛΖ-langen Schreibvorganges empfangen wurden.
6:1 Ein 2-Bit-Fehler (2B) gibt an, daß zwei Bits in fehlerhaftem Zustand waren,
während der Fehlerüberprüfung eines Datenwortes, das aus dem Speicher ausgelesen wurde.
In der bevorzugten Ausführungsform verwendet der MCM 92 das Speicherpufferregister (MBR) 124 als Datenquelle für die Fehlerwahrnehmungslogik SJO, die feststellt, ob eine Bitkorreklur für die von der MSU % zum MCM 92 transferierten Wörter erforderlich ist. Im MCM 92 befindet sich das MBR 124 und außerdem eine logische Schaltung. Die Logik zur Fehlerwahrnehmung und -korrektur ist in Fig. 35 dargestellt und wird im folgenden kurz beschrieben.
Die horizontale Zahlenzeile in F i g. 35 gibt die Bitposition innerhalb des 60-Bit-Stapelwortes an. Das Format eines zwischen einem MCM 92 und einem Requestor transferierten Wort ist folgendes: Bit 00 bis Bit 47 stellen
Datenbits dar (sie stehen 6 EBCDIC-Zeichen oder 8 BCL-Zeichen oder 12 Ziffern, etc zur Verfügung), die Bits 48 bis 50 stellen Kennbits (zur Wortsteuerung) da, und Bit 51 ist ein Paritätsbit (ungerade Parität ist die korrekte Parität) für die Bits 00 bis 51. Bit 52 bis 59 werden von einem MCM nicht an einen Requestor übertrager. Die Bits 52 bis 58 sind sogenannte Prüfbiis, Bit 59 stellt ein Gesamtparitätsbit (ungerade Parität stellt die korrekte Parität dar)fürdas60-Bit-Stapelwortdar.
Die horizontalen Zeilen der Xs stellen eine zur Erzeugung der Prüfbits verwendete Maske dar. Die Positionen der Bits, die zur Erzeugung eines Prüfbits für eine spezielle Maske verwendet werden, sind durch die Xs gekennzeichnet Insgesamt gibt es sieben verschiedene Masken. Bei jeder Maske wird das durch Xim Prüfbitfeld gekennzeichnete Bit gesetzt oder zurückgesetzt, um eine gerade Parität für diese Gruppe von Bits zu erzeugen.
Wird z. B. die »Gruppe-1 «-Maske verwendet, wenn das Bit 01 gesetzt war und die Bits 02 bis Bit 51 und Bit 00 zurückgesetzt waren, dann würde Bit 1 im Prüfbitfeld gesetzt, um für die betrachteten Bits gerade Parität herzustellen.
Es sei darauf hingewiesen, daß das Gesamtparitätsbit (Bit 59) gesetzt oder zurückgesetzt wird, um für alle Bits in dem 60-Bitwort einschließlich der Prüfbits eine ungerade Parität herzustellen. Da jedes Wort aus der MSU 96 zurückgewonnen wird, überprüft der MCM 92 die Gesamtwortparität und wendet erneut die sieben Masken an, um festzustellen, ob eines oder mehrere Bits sich verändert haben. Der MCM 92 nimmt zwei verschiedene Grundtypen von Fehlern wahr.
Der erste Grundtypus ist durch 1-Bit-Feh!er gegeben. In der bevorzugten Ausführungsform wird ein 1-Bit-Fehler, sei es ein ausgefallenes Bit oder ein aufgenommenes Bit, wahrgenommen und korrigiert 1-Bit-Fehler werden durch eine Anzeige einer fehlerhaften Gesamtparität und der Gegenwart eines oder mehrerer Gruppenfehler wahrgenommen. Das Bit mit fehlerhafter Parität wird isoliert und im MCM-Ausgaberegister 126 korrigiert Den zweiten Grundtyp stellen die 2-Bit-Fehler dar. 2-Bit-Fehler werden durch die Anzeige einer richtigen Gesamtparität und die Gegenwart eines oder mehrerer Gruppenfehler wahrgenommen. Für 2-Bit-Fehler ist keine automatische Korrektur vorgesehen.
Ein 1-Bit-Fehler in dem 59-Bit-Wort wird durch eine Paritätsprüfung des gesamten Wortes wahrgenommen. Die Prüfbits, die durch erzeute Anwendung der Fehlerwahrnehmungsmasken erzeugt werden, geb°n die Position des fehlerhaften Bits an. Das mehrstufige Operationssystem wird dann benachrichtigt daß ein Fehler vorhanden ist, und das korrigierte Wort ist dann verfügbar. Das mehrstufige Operationssystem registriert dann den Fehler für Wartungszwecke und gestattet eine Fortsetzung der Datenverarbeitung.
Sind zwei Bits des 60-Bit-Wortes fehlerhaft, so gibt eine Überprüfung der Parität des gesamten Wortes nicht an, ob ein Fehler vorhanden ist. In diesem Fall wird durch den Oberprüfungsvorgang nur das Vorhandensein eines oder mehrerer Gruppenfehler festgestellt Diese Information ist nicht geeignet, die Position des Fehlers zu lokalisieren, sie wird aber verwendet um anzuzeigen, daß ein Fehler existiert Mehr als zwei fehlerhafte Bits erscheinen entweder als ein nicht korrigierbarer 1 -Bit-Fehler, als ein 2-Bit-Fehler oder als kein Fehler.
Zusammenfassend ist zu bemerken, daß 1 -Bit-Fehler wahrgenommen und vollständig während der verfügbaren Zeit korrigiert werden. Die Fehlerkorrektur eines 1-Bit-Fehler·: erfordert drei MCM-Taktimpulse-i d, h. 375 Nanosekunden. 2-Bit-Fehler werden wahrgenommen und geradzahlige Mehrfach-Bit-Fehler können wahrgenommen werden, sie werden über nicht korrigiert. Wenn ungeradzahlige Mehrfach-Bit-Fehler wahrgenommen werden, so wird ein Bit korrigiert und die Daten dem Requestor zugeführt (eine Paritätskontrolle kann dann evtl.
zeigen, daß ein Fehler noch existiert).
Eine Störung, die Fehler gerader und ungerader Parität besitzt, während die Parität der entsprechenden Gruppen geprüft oder erzeugt wird, wird als Hardwarestörung des Prüfbitgenerators 130 identifiziert Das Ausgaberegister 126 besteht aus einem 52-Bit-Register, welches zum Puffern von Datenwörtern (einschließlich Fail-Daten) verwendet wird, die während einer Abrufoperation an einen Requestor übermittelt werden. Das Ausgaberegister 126 enthält außerdem die Bitkorrekturlogik, die zur Korrektur der von der Fehlerwahrnehmungslogik 110 wahrgenommenen Fehler erforderlich ist. Die wesentlichen Eingangssignale des Ausgaberegisters 126 werden vom Speicherpufferregister 124 geliefert, das die vom Hauptspeicher transferierten Daten speichert. Die Korrektur der 1-Bit-Fehler wird vorgenommen, nachdem das Ausgaberegister 126 aus dem MBR 124 beladen wurde. Das Ausgangssignal des Ausgaberegisters 126 wird über die Empfänger-/Treiberlogik dem
so Requestor zugeführt.
Die MCM-MSU-Verbindungseinheit 135 enthält die Empfänger- und Treiberleitungspuffer, die Verbindungs-Logikebenen für die Steuerung und den Datenfluß darstellen, vgl. F i g. 36. Diese Steuer- und Datenleitungen sind auf fünf zu jedem Stapel führende Kabel aufgeteilt, über vier Kabel fließen Daten, ein Kabel ist für die Steuerung vorbehalten.
Im folgenden wird der Datenfluß zwischen einem MCM 92 und einer MSU 96 erläutert, und es wird außerdem auf die MCM-MSU-Steuersignale eingegangen.
60 Dateneingabe-Leitungen 402 sind eingesetzt, um Information von dem MCM 92 zu der MSU 96 zu transferieren, die in einen adressierten Speicherplatz eingegeben werden soll. In ähnlicher Weise werden 60 Datenausgabeleitungen eingesetzt, um die aus einem adressierten MSU-Speicherplatz ausgelesene Information dem MCM 92 zuzuführen. Ein Lesestartsignal wird von der MSU % als Führungssignal geliefert, welches den MCM 92 davon informiert, daß Daten aus dem adressierten Speicherplatz der MSU 96 über die Datenausgabeleitungen 404 innerhalb einer vorgegebenen Zeitdauer in den MCM 92 eingegeben werden. Das Lesestartsignal wird über eine Leitung 406 übertragen.
Ein MSU-Paritätsfehlersignal wird von der MSU geliefert und zeigt dem MCM 92 an, daß die MSU 96 einen Paritätsfehler innerhalb der Adressen- oder Steuersignalen wahrgenommen hat, die von dem MCM zur MSU gesendet wurden. Wenn ein Paritätsfehler auf diesen Leitungen existiert, führt die MSU einen nichtbedingten Lese/Rückspeichervorgang mit dem adressierten Speicherplatz aus, um die gespeicherten Daten zu erhalten. Das MSU-Paritätsfehlersignal wird mittels einer Leitung 408 zwischen einer MSU 96 und einem MCM 92
übertragen.
Ein MSU-Verfügbarkeitssignal teilt, sofern es »wahr« ist, dem MCM 92 mit, daß die MSU 96 mit Leistung versorgt wird. Dieses Signal wird über eine Leitung 410 übermittelt Eine Adressenparitätsleitung 412 stellt den Ausgangsanschluß eines Paritätsgenerators dar, der die zur MSU führenden Adressen- und Cperationssteuerleitungen (für Lese/Schreib-Operationen) überprüft Die erzeugte Gesamtparität ist ungerade.
Der MCM 92 liefert ein Lese/Schrsibmodesignal, welches, sofern es »wahr« ist, die MSU % in Kenntnis setzt, daß eine Schreiboperation ausgeführt werden soll; sofern das Signal »nicht wahr« ist, führt die MSU 96 eine Lese/Rückspeicheroperation aus. Das Lese/Schreibsignal wird über eine Verbindungsleitung übertragen.
Ein Lese/Modifizieren/Schreibsignal gibt an, lofern es in Verbindung mit dem Lese/Schreibsignal auftritt, welche Schreibänderungen ausgeführt werden sollen. Dieses Signal wird über eine Leitung 440 zwischen einem MCM 92 und einer MSU 98 übertragen. Wenn die Lese/Schreibmodeleitung 414 »wahr« ist und die Lese/Modifizieren/Schreibleitung 440 »nicht wahr« ist, so führt die MSU 96 eine Lösch/Schreiboperation durch. Wenn die Lese/Schreibmodeieitung 414 »wahr« ist und die Lese/Modifizieren/Schreibleitung »wahr« ist so führt die MSU 96 eine Lese/Modifizieren/Schreiboperation durch. Ein Speicherzyklus-Auslösesignal wird über eine Leitung 418 an die MSU 96 geliefert um eine der drei oben definierten Operationen: Lese/Rückstellen, Löschen/Schreiben oder Lesen/Modifizieren/Schreiben durchzuführen. Ein Speicherzyklus-Auslösesignal wird in Wirklichkeit zweimal während einer Lese/Modifizieren/Schreiboperation eingesetzt einmal, um den Start auszulösen, und einmal, um den Schreibanteil der Operation auszulösen. Ein Schreib-Abtastimpulssignal wird während der Schreiboperation verwendet, um Daten aus dem MCM abzutasten und in das Schreibregister der MSUs einzugeben. Dieses Signal wird über die Leitung 420 übertragen. Ein Datenwahlsignal wird während der Lese/Modifizieren/Schreiboperaticn verwendet, um eine Datenquelle für den Wiedereinschreibvorgang in den Speicher auszuwählen. Wenn das Datenwahlsignal »wahr« ist werden neue Daten, die die vom MCM in das Schreibregister der MSUs eingegeben wurden, ausgewählt; wenn das Datenwahlsignal »nicht wahr« ist (das Wort ist geschützt), wird das Leseregister der MSUs ausgewählt das die ursprünglichen, zu Beginn der Operation ausgelesenen Daten enthält. Dieses Signal wird über eine Leitung 422 übertragen. Ein Löschsignal wird verwendet um alle Steuerflipflops und Steuerregister der MSUs zu löschen. Dieses Signal wird durch den Systemlöschschalter des Bedienungstisches des Operators ausgelöst und über eine Leitung 424 vom MCM 92 zur MSU 96 geleitet.
Schließlich wird noch ein Leistungsversorgungssignal erzeugt, welches die Steuerung der Leistungsversorgung durch den MCM 92 gestattet
Im weiteren wird nun die Beschreibung der Funktionsweise des MCM 92 fortgesetzt. Die MSU-Steuereinheit 128 dient dazu, daß die Steuersignale und Adressen zur richtigen MSU gelangen; zur zeitlichen Steuerung der Lese- oder Schreibvorgänge (einschließlich aller Variationen) und zur Adressenkonversion, die für die verschiedenen MSU-Konfigurationen erforderlich ist.
In der bevorzugten Ausführungsform kann der MCM 92 während des Betriebs der Anlage oder eines Anlagentests im on-line-Betrieb und während der Modulwartungstests im offline-Betrieb arbei en. Alle Datentransfers sind woriorientiert Ein zwischen dem MCM 92 und einem Requestor transferiertes Wort enthält 48 Datenbits, 3 Kennbits und 1 Paritätsbit (ungerade).
Im folgenden wird nun die Kernspeichereinheit (MSU) 96 näher beschrieben. Die Kernspeichereinheit 96 speichert Informationen in einem Kernspeicherstapel, der die Eigenschaft besitzt, diese Information auf Anforderung verfügbar zu machen. Alle Eingänge und Ausgänge der Kernspeichereinheit % sind durch einen MCM 92 gesteuert der einem speziellen VfSU 96 (maximal 4 MSUs pro MCM 92) zugeordnet ist. Aus diesem Grund durchlaufen alle Requestoroperztionen, die den Speichermodul 30a benötigen, zuerst den MCM 92 bevor sie durch die MSU % ausgelöst werden. Die MSU % enthält die erforderlichen Speicherelemente, Treiber- und Wahrnehmungsschaltkreise, Adressen- nd Datenregister (Lesen und Schreiben), Einrichtungen zur Zeitsteuerung und zum Dekodieren, die erforderliche Leistungs- und Anschlußlogik, die zur Durchführung der geforderten Operationen notwendig ist.
In der bevorzugten Ausführungsform besitzt eine MSU % 65 536 Adressenspeicherplätze mit je 60-Bits Speicherkapazität. Unter diesen 60 Bits befinden sich 48 Datenbits, 3 Kennbits, 1 Paritätsbit für das Requestorwort, 7 Bits stehen zur Fehlerwahrnehmung zur Verfügung, 1 Bit stellt das Gesamtparitätsbit für das Wort dar, während es sich im Speichermodul 30 befindet. Die 7 Fehlerwahrnehmungsbit und das Gesamtparitätsbit reichen aus, einen 1 -Bit-Fehler innerhalb des 60-Bit-Feldes wahrzunehmen. Wenn Informationen im Speicher 30 gespeichert wird, werden diese Fehlercodebits und das Gesamtparitätsbit entsprechend der über das Stapelwort vorhandenen Information gesetzt. Zu einem Requestor werden nur die 48 Datenbits, 3 Kennbits und 1 Paritätsbit transferiert.
In der bevorzugten Ausführungsform arbeitet die MSU % in drei Betriebsarten: der Lese/Rückstellart (R/R), der Löschen/Schreibart (C/W), und der Lesen/Modifizieren/Schreibart (R/M/W). Die MSU 96 liest bei einer R/R-Operation Daten aus der durch den MCM 92 definierten Speicheradresse aus und gibt diese Daten in die zur MSU 96 führenden Sammelleitung. Die MSU % schreibt die Information wieder in die definierten Adressen des Speichers zurück. Die folgenden MCM-Operationen verwenden diese MSU-Operation: a) Abruf eines einzelnen Wortes und b) Abruf eines Wortes der Länge N.
Die MSU 96 liest bei einer C/W-Operation Daten aus den durch den MCM 92 adressierten Speicherplätzen aus und gibt diese Daten in die zum MCM 92 führende Srmmelleitung. Die MSU 96 erhält vom MCM 92 Information und speichert diese in die adressierten Speicherplätze. Bei folgenden MCM-Operationen wird diese MSU-Operation verwendet: (a) Überschreiben einzelner Wörter, mit oder ohne sofortiger Rückübertragung, (b) Überschreiben einer /V-Länge und (c) geschütztes Schreiben einzelner Wörter. Die MSU 96 liest bei einer R/M/W-Operation Daten aus den durch den MCM 92 adressierten Speicherplatz aus und gibt diese Information in die zu dem MCM führende Sammelleitung. Die MSU 96 speichert auf Befehl des MCM 92 in dieselbe Adresse
entweder die ursprüngliche, aus dem Speicher ausgelesene Information oder eine vom MCM 92 übertragene Information. Diese MSU-Operation findet bei dem geschützten N-Wort-Schreiben Verwendung.
In der bevorzugten Ausführungsform sind einer MSU % drei Register zugeordnet, ein Speicheradressenregister (MAR) 170, ein Speicherschreibregister (MWR) 172 und ein Speicherleseregister (MRR) 174. Die MSU 96 enthält außerdem einen Kernstapel mit 65 536 Wörtern zu je 60 Bit. Von diesen 60 Bits sind t8 Datenbits, 3 Kennbits und 1 Paritätsbit für das Requestorwort, 7 Bits stehen für die Fehlerwahmehmung zur Verfügung und 1 Bit stellt das Gesamtparitätsbit für das Wort dar, während dieses sich im Speichermodul 30 befindet. Die Fehlerprüfbits und das Gesamtparitätsbit reichen aus, 1-Bit-Störungen im gesamten 60-Bit-Feld wahrzunehmen. Wenn Information im Speicher gespeichert wird, werden diese Fehlerprüf bits und das Gesamtparitätsbit entsprechend der neuen, innerhalb des Stapelworts zur Verfügung stehenden Information gesetzt. An den Requestor werden nur die 48 Datenbits, die 3 Kennbits und das Paritätsbit transferiert.
In der bevorzugten Ausführungsform besteht das Speicheradressenregister (MAR) 170 aus einem 16-Bit-Register, welches von der MSU % eingesetzt wird, um den Kernstapel-Speicherplatz zu identifizieren, in den bzw. aus dem die Information (60 Bits) gespeichert bzw. abgerufen wird. Das Speicherschreibregister (MWR) 172 ist ein 60-Bit-Register, weiches von der MSü 96 eingesetzt wird, um diejenige Information aus dem MCM 92 zu puffern, die in einen Stapelspeicherplatz eingeschrieber, werden soll. Das Speicherleseregister (MRR) 174 ist ein 60-Bit-Register, welches eingesetzt wird, um diejenige Information zu puffern, die aus dem Stapel-Speicherplatz an den MCM 92 transferiert werden soll. Das MRR 174 wird außerdem als eine Schreibdatenquelle während eines geschützten N— langen Schreibvorganges eingesetzt, wenn das Wort geschützt ist.
Bezüglich der Speicher-Verschachtelung und dem Speicher-Phasenversatz ist zu bemerken, daß ein großer Prozentsatz der Speicheroperation darin besteht, mehrere Wörter zu oder von aufeinanderfolgenden Speicherplätzen zu transferieren. Bei einem Zugriff in aufeinanderfolgende Speicherplätze innerhalb einer MSU 96 wird die Transferrate durch die Zykluszeit der Kernspeichereinheit % begrenzt. Dies hat einen reduzierten Wirkungsgrad des anfordernden Moduls zur Folge, der evtl. gezwungen ist, bis zum Transfer der Information aus dem Speicher zu warten. Diese Beschränkung wird in der vorliegenden Erfindung dadurch umgangen, daß die Zuordnung der Speicheradressen in einer Weise erfolgt, daß aufeinanderfolgende Adressen in verschiedenen MSUs % untergebracht sind, vgl. Fig.37. Dadurch ist es möglich, daß sich eine zweite MSU 96 auf einen Speicherzyklus vorbereitet, während die erste MSU 96 ein Wort transferiert, umgekehrt kann die zweite MSU 96 ein Wort transferieren, während die erste MSU % ihren Zyklus vollständig durchläuft. Diese Prozedur ist als sogenannte Verschachtelung bekannt. Ein 4-MSU-Modul 95 ist zum Beispiel derart verschachtelbar, daß 4 aufeinanderfolgende Adressen in vier verschiedenen MSUs % untergebracht sind. Als Folge dieses Mehrfach-Worttransfers entstehen Gruppen von je 4 Wörtern, je eine Gruppe während eines Taktzyklusses. Ein 2-MSU-Speichermodul 93 kann so verschachtelt sein, daß sich Gruppen von je zwei Wörtern ergeben.
Die MSU 96 ist in zwei Funktionsbereiche unterteilt: In den Speicherlogikmodul (MLM) 176 und in einen Speichermodul (MSM) 178, vgl. Fig.38. Die Funktion des Speicherlogikmoduls (MLM) 176 besteht in der Durchführung der Paritätskontrolle, der Zeitsteuerung, der Steuerung und in der Bereitstellung derjenigen Konversionslogikkreise, die zur Verbindung des Speichersteuermoduls (MCM) 92 mit dem Speichermodu!
(MSM) 178 erforderlich sind. Eine grundlegende Funktion des Speicherlogikmoduls 176 besteht darin, die Speichersteuermodul-Logikebenen mit den Logikebenen des Speichermoduls 178 kompatibel zu machen. Da der Speichersteuermodul (MCM) 92 in der bevorzugten Ausführungsform in CTL-Schaltlogik und der MSM 178 in TTL-Schaltlogik ausgeführt ist, müssen die Signalebenen der logischen Schaltungen von CTL in TTL (vom MCM zum MSM) und von TTL in CTL (vom MSM zum MCM) über in dem MLM 176 enthaltene Pufferstufer konvertiert werden.
Der MSM 178 enthält einen 60-Bit-Wort-Kernspeicher für 65 536 Worte, das Speicherleseregister (MRR) 174 zugeordnete Adressendekodierlogik, Lese- und Schreibtreiber und Steuer- und Zeitsteuerlogik. In den folgenden Absätzen werden in Verbindung mit der F i g. 38 und den Zeitsteuerdiagrammen, F i g. 39 und 40, funktionale Flußdiagramme der Lese/Rückstell-(RR), Löschen/Schreib-iC/W) und Lesen/Modifizieren/Schreiboperationer (RMW) näher erläutert.
Vor der Auflösung einer Speicheroperation muß der MCM 92 ein Signal erhalten, welches bewirkt, daß eine
so MCU 96 verfügbar ist (das MAV-Signal). Der MCM 92 erzeugt und sendet dann an die MSU % ein Speicherzy klus-Auslösesignal (IMC), welches von dem MLM i96 zur Erzeugung eines Speicherzyklus-Startsignal für der MSM 178 verwendet wird. Wie in Fig.38 dargestellt, enthält der MLM 176 eine Zeitverzögerung, aufgrüne derer die 16-Bit-Adresse (ANN) im MSM 178 decodiert und dann, bevor die Lese-Daten verfügbar sind, in die
Paritätskontrolle-Schaltung zurückführbar ist (als Signal BXX identifiziert). Eine Paritätskontrolle der Adres-
senbits nach ihrer Speicherung im Speicheradressenregister 174 des MSM 178 stellt sicher, daß die ausgeführte Adresse die tatsächliche, auf Parität kontrollierte Adresse darstellt Die Paritätskontrolle wird zunächst an der kombinierten zwei Bits vorgenommen, die zur Steuerung der Operation (R/W-Mode oder R/M/W-Mode verwendet werden; sie erfolgt dann an der 16-Bit-Adresse (BXX) und am Paritätsbit (PAR). Wird eine ungerade
Parität wahrgenommen, so sind die Adressen- und Steuerwortbits wahrscheinlich korrekt, sofern jedoch ein« gerade Parität wahrgenommen wird, liegt ein Fehler vor, aufgrund dessen ein Speicher-Paritätsfehlersigna (MPE) durch den MRM 176 erzeugt und an den MCM 92 geleitet wird. Das MPE-Signal durchläuft eine vor einem Adressenparität-Abtastimpuls (APS-Signal, in dem MSM-Steuerbereich erzeugt) ausgesteuerte Torschal
tung und gelangt dann zum MCM 92, in dem ein Störungsunterbrecher erzeugt und dem Requestor zugeführ
wird. Der Speicherlogikmodul 176 löst außerdem mittels eines Datenwortauswahl-Negationssignal (WDS) eine Lese/Rückstelloperation aus, wobei das WDS-Signal die ursprünglichen Daten (nun im MSM-Leseregister 17' enthalten) in den adressierten Speicherplatz zurückschreibt
Es wird nun angenommen, daß das MAV-Signal vorhanden ist, (MSU verfügbar), daß eine Leseoperatioi ausgeführt werden soll, und daß das Adressenkontroilbit erfolgreich durch die Paritätskontrolle hindurchlief
Das Speicherzyklus-Auslösesignal (IMC), welches innerhalb des MLM 176 verzögert wurde, ermöglicht es, daß der MLM 176 das Speicherzyklus-Startsignal für den MSM 178 erzeugt, um den Lesezyklus zu starten. Zur gleichen Zeit ist der IMC-Zyklus vorhanden, und das Lese/Schreibmode-Signal (RWM) ist klein und gibt an, daß nur eine Lese/Rückstelloperation durchgeführt werden soll. Wenn das RWM-Signal klein ist, bleibt das WDS (Schreibdatenauswahl)-Signal klein und gibt damit an, daß keine neuen Schreibdaten verlangt werden. Der Lesezyklus beginnt mit dem Setzen der MSM-Speicher-Belegtkontrolle. bei der ein Speicher-Verfügbar-Signal (MPA) erzeugt wird, das den Start neuer Operationen solange verhindert, bis ein EOC-(Zyklusende-)Signal vorhanden ist, es schließt sich das Löschen des Speicheradressenregisters 170 des MSM 178 an, anschließend wird dann die neue Adresse in den Speicher eingetastet. Außerdem wird in dem MSM 178 die Speicherverzögerungs-Zeitsteuerung gestartet, die die Erzeugung der Lese-Zeitsteuerimpulse und den Zugriff zu den ausgewählten Kernen des Speichers ermöglicht. In der bevorzugten Ausführungsform wird in ungefähr 500 Nanosekunden das Lesen/Verfügbar/Aus-Signai (MAO) in dem MSM 178 erzeugt und anschließend ein Lesen-Verfügbar-Signal (RXAA) geschaffen, welches zu dem MCM 92 transferiert wird, um den MCM 92 davon zu informieren, daß Daten in einer im Voraus definierten Zeitperiode zum Transfer (RXXM) bereitstehen. Ein Fühlverstärker (S. A.) führt nach etwa 750 Nanosekunden einen Abtastvorgang durch und liest die Daten aus und führt sie in das Speicherleseregister 174 ein. Nach etwa 800 Nanosekunden werden die Daten im Leseregister (RXXX) wieder in ihren ursprünglichen Adressenplatz zurückgestellt (restored) vgl. Fig.40. Der Inhalt des Leseregisters (RXXX) wird dem Speicherpufferregister 128 des MCM 92 über die Empfänger/Treiberlogik zugeführt. Ein Zyklusende-Signal (EOC) wird nach etwa 1,5 Mikrosekunden erzeugt, um die Operation zu beenden. Das EOC-Signal führt eine Löschung aller Steuer- und Zeitsteuerflipflops durch, so daß eine neue Operation gestartet werden kann.
Im folgenden wird nun eine Löschen/Schreiboperation näher beschrieben. Die Löschen/Schreiboperation wird in der gleichen Weise wie eine Leseoperation gestartet, mit der Ausnahme, daß die Löschen/Schreiboperation im wesentlichen eine Leseoperation ohne das Rückstellen der ursprünglichen Daten darstellt. Ein 60-Bit-Schreibdatensignal (WNN), ein Schreibabtastimpulssignal (WST) und ein Löschen/Schreibmodesignal (RWM) liegen gleichzeitig an der MLM-MCM-Anschlußstelle an. Die WNN-Daten werden in das Speicherschreibregister 172 eingegeben und warten dort auf den Eingang des Schreibdatenauswahlsignals (WDS), um in den MSM-Stapel eingeschrieben werden zu können. Das WDS-Signal ist erforderlich (nach etwa 57 Nonosekunden), um die WNN-Daten in den Stapelplatz einschreiben zu können. Das Zyklusendesignal (EOC) wird dann auf dieselbe Weise wie bei der Leseoperation erzeugt.
Es wird nun die Lese/Modifizieren/Schreiboperation nöher erläutert, die während einer geschützten N-Wortoperation verwendet wird. Die Lese/Modifizieren/Schreiboperation enthält eine Leseoperation und eine Lö-Echen/Schreiboperation und zusätzlich die zur Durchführung dieser Operation erforderlichen zusätzlichen Steueroperationen. Um eine Lese/Modifizieren/Schreiboperation zu starten, muß das I MC-Signal (Speicherzyklus-Aus!ösesignal) an der MLM-MCM-Anschlußstelle (wie schon bei der Leseoperation beschrieben) vorhanden sein. Beide Steuersignale, das Lese/Modifizieren/Schreibsignal und das Löschen/Schreibsignal sind ebenso vorhanden (im Zeitdiagramm groß dargestellt), um die Bedingungen zu schaffen, die folgende Operationen ermöglichen: (1) das Auslesen der Daten RXX aus allen Speicherplätzen und die Kontrolle, ob ein »1«-Bit in Position 48 vorhanden ist (zeigt an, ob das Wort geschützt ist); (2) das Rückschreiben der ursprünglichen Wörter in den Adressenplatz mittels einer Lese/Rückstelloperation, sofern eines der Wörter geschützt ist und (3) das Einschreiben neuer Daten in die adressierten Speicherplätze, sofern keines der Wörter geschützt ist.
Während eines Lesezyklus' werden die RXX-Daten an das im MCM 92 liegende Speicherpufferregister 128 transferiert, um zu überprüfen, ob ein »Schutz«-Bit vorhanden ist. Während dieser Zeit behält das MSM-Leseregister 174 die Daten RXX. Nach ungefähr einer Mikrosekunde wird das Paritätsabtastsignal (PAR in der MSM-Zeitsteuerlogik 186 erzeugt; das PAR-Signal erzeugt ein Datenparitäts-Abtastsignal (DPS), welches im Speicherlogikmodul 176 eingesetzt wird, um den zweiten, vom MCM erzeugten IMC-Impuls (zum Betrieb des RMW erforderlich) empfangen zu können. Das IMC-Signal erzeugt dann das Speicherzyklus-Startsignal (SMC) für den Speichermodul 178; die Zeitsteuerung des Speichermoduls startet dann mit dem Schreibvorgang der Operation. Ungefähr in dem Zeitpunkt, in dem das IMC-Signa! vorhanden ist, werden die Schreibdaten (WNN) durch ein Schreibabtastsignal (WST) in dem MLM-Schreibregister Ϊ72 verriegelt. Sofern eines der Wörter geschützt war, wird vom MCM 92 kein Speicherauswahiwort-Signa!, und auch kein nachfolgendes Schreibdaten-Auswahlsignal (WSD) für den MSM 178 erzeugt. Das WSD-Signal veranlaßt, daß der Inhalt des Leseregisters 180 an den Speicher zurückgegeben wird, und daß die Operation durch ein EOC-Signal beendet wird.
Wenn vom MCM 92 ein MSW-Signal (kennzeichnet nicht geschützte Wörter) erzeugt wird, so ermöglicht es das WSD-Signal, daß die neuen Schreibdaten (WNN) in den Speicher eingetastet werden und die Operation durch ein EOC-Signal (in der MSM-Zeitsteuerlogik 186 erzeugt) beendet wird.
Im folgenden wird nun auf das Plattendatei-Untersystem der vorliegenden Erfindung Bezug genommen. Durch das Plattendatei-Untersystem wird eine äußest r-chnelle, modulare, random-access-Ausdehnung des Hauptspeichers 30 ermöglicht Das Plattendatei-Untersystem kann Spurlese-Plattendateispeichermoduln und Stapelplatten-Speichermoduln enthalten, die mit einem Eingabe-/Ausgabemodul 10 mittels Vermittlungseinheiten und Steuereinrichtungen verbunden sind. Durch die Steuerung des Plattendateioptimierers (DFO) 40 können Spurlese-Plattendateimodüln so kombiniert werden, daß Speicherbänke mit optimalem Zugriff gebildet werden können, die in der Lage sind, zwischen 450 Millionen bis 8 Milliarden von 8-Bit-Bytes an Information pro Eingabe-/Ausgabemodul 10 zu speichern.
Wie der Name besagt, werden die Plattendateioptimierer 40 eingesetzt, um die Transferrate der Daten zwischen dem Hauptspeicher 30 und den Plattendateimoduln zu optimieren (mittels der Eingabe-/Ausgabemoduler. 10, der Plattendateisteuereinrichtungen 81 und mittels Vermittlungseinheiten), vgl. Fi g. 2. Zur Übertragung der Steuerinformation wird der Optimierer 40 über eine Abtastsammelleitung mit einem Eingabe-/Ausga-
bemodul und mit Plattendateimodulen entweder direkt oder indirekt über andere Plattendateioptimierer verbunden.
Ohne den Plattendateioptimierer können Plattendateimodule mit einem Lese/Schreibkopf je Spur in Speicherbänden mit wahlfreiem Zugriff mit einer Speicherkapazität von 15 bis 16 Milliarden 8-Bit-Bytes pro Eingabe-/Ausgabemodul 10 eingesetzt werden. Plattenstapel-Speichermoduln können in Speicherbänken mit wahlfreiem Zugriff mit einer Speicherkapazität von 121 Millionen bis 15,5 Milliarden 8-Bit-Bytes pro Etngabe-/Ausgabemodul 10 eingesetzt werden.
In einem Plattendatei-Untersystem, in dem die Plattenjobs nicht optimiert sind, bringt es die Bedienung mehrerer Jobanforderungen für Platteneinheiten über einen gemeinsamen Exchange mit sich, daß zwischen
ίο jeder Bedienung einer Jobanfrage eine Verzögerung eintritt. Diese Verzögerung hängt teilweise von der Art ab, in der die Jobs in die Warteschlange der lOCBs für jede Plattendatei-Elektronikeinheit (EU) 171 eingefügt werden, die Beziehung zu der Plattenstartadresse, die durch jede Job-Anfrage und die laufende Plattenposition (relativ zum Plattenanfang) spezifiziert ist, wird dabei nicht betrachtet, da die laufende Plattenposition nicht bekannt ist.
In einem Plattendatei-Untersystem der vorliegenden Erfindung, in dem Plattendatei-Optimierer 40 verwendet werden, wird die interne Verzögerung zwischen der Bedienung mehrerer Jobanforderungen reduziert. Die Jobanforderungen werden bevorzugt in die Warteschlangen der IOCBs für die DFOs 40 eingegeben und nicht, wie in einem nicht optimierten System, in die Warteschlangen der IOCBs für die EUs 171. Nach Erhalt eines Start-E/A-HA-Befehles wird das UT-Wort abgerufen. Wenn das DFO-Bit gesetzt ist, werden die Jobanforderungen automatisch herausgetastet, und, sofern möglich, in den DFO-Jobstapel eingegeben. Die DFOs überwachen die Plattenadressen ständig, die von den Jobanforderungen in dem Stapel spezifiziert werden, und sie vergleichen diese Adressen mit der laufenden Plattenposition (bezüglich des Plattenanfangs). Diese information wird zur Aufrechterhaltung eines Job-Stapelzeigers verwendet, der fortlaufend die bezüglich der Platten/Plattenanfangsposition optimale Job-Anforderung angibt. Diese jeweils optimale Jobanforderung wird als ein in eine Warteschlange gebrachtes Steuerwort bezeichnet.
Die DFOs sind mit einem IOM 10 über eine gemeinsame Abtastsammelleitung und über individuelle Zustandsleitungen verbunden. Die Zustandsleitungen übermitteln Information, die die Fähigkeit der einzelnen DFOs betrifft, Jobanforderungen vom IOM über die Abtastsammelleitung zu erhalten. Zusätzlich übertragen die Statusleitungen Signalpegel, die das Vorhandensein von in Warteschlangen eingereihte Steuerwörter angeben.
die bedient werden müssen. Die Abtastanschlußeinheit (SCl) 76 des IOM 10 tastet diese Statusleitungen ab, um festzustellen, ob in Warteschlangen aufgereihte Steuerwörter von irgendeinem DFO 40 vorhanden sind. Wenn die Statusleitungen irgend eines DFO 40 mitteilen, daß in Warteschlangen befindliche Steuerwörter vorhanden sind, so bestimmt die SCI-Einheit 76 des IOM 10, ob ein Plattenkanal in dem Exchange verfügbar ist, an den die DFO angeschlossen ist. Ist ein derartiger Plattenkanal verfügbar, so wird ein Abtast-Adressenwort durch den
Übersetzer 72 und die SCI-Einheit 76 des IOM 10 in das richtige Format gebracht und dann über die Abtastsammelleitung allen DFOs 40 zugeleitet. Der Inhalt des über die Sammelleitung geschickten Abtastadressenwortes kennzeichnet denjenigen Exchange, der das Vorhandensein und die Verfügbarkeit eines in eine Warteschlange gebrachten Steuerwortes angab. Das Abtastadressenwort auf der Abtastsammelleitung wird nur von dem identifizierten DFO wahrgenommen, es stellt daher im wesentlichen ein Betätigungssignal an diesem DFO dar.
Als Antwort auf das empfangene Abtastadressenwort transferiert der identifizierte DFO 40 ein Abtastinformationswort über die Abtastsammelleitung zum IOM 10. Dieses Wort enthält eine vollständige Speicherverbindungsadresse, die von dem IOM 10 benutzt wird, um dem identifizierten DFO 40 Zugriff zum lOM-Job-Bild zu verschaffen. Ein durchgeführter Zugriff zu diesem Bereich liefert Information, die festlegt, ob diejenige EU-Einheit 175, die den Plattenjob steuert, verfügbar ist, und ob der früher verfügbare Plattenkanal noch verfügbar ist.
Wenn alle Bedingungen erfüllt sind, wird der Job ausgelöst und die Daten zwischen dem DFl-Bereich 82 des IOM 10 und der betreffenden EU 171 transferiert. Nach Beendigung des Datentransfers wird der Plattenjob auf normale Weise beendet. Wenn die identifizierte EU-Einheit 171 oder der Plattenkanal nicht verfügbar ist. wird der Plattenjob wieder in die Warteschlange der IOCBs für den DFO 40 eingegeben. Er wird dann später noch einmal zu diesem DFO 40 zum Zwecke einer erneuten Optimierung und eines erneuten Versuches einer
so Jobauslösung transferiert.
Tritt in einem DFO oder einem IOM 10 eine Störung auf, so verbleibt die Verantwortung für die Warteschlange des Plattenrlatei-Untersystems bei den verbleibenden, intakten DFOs und lOMs. Die folgenden Bedingungen lassen sich dann noch ausführen: (a) ein Zugriff zu dem Plattendatei-Untersystem ist von den verbliebenen on-line DFO und 1OM durchführbar (DFO und IOM-Störung), (b) der verbliebene DFO 40 ist in der Lage, Steuerwörter in Warteschlangen einzugeben, die irgend eines der Plattendateisysteme betrifft (DFO-Störung) und (c) der verbliebene IOM 10 setzt den Transfer der Steuerwörter zu bzw. von den DFOs fort (IOM-Störung). In der bervorzugten Ausführungsform besteht aufgrund eines Daten-Vermittlungsuntersystems die Möglichkeit zum Fernrechnen, Fernanfragen und on-line-Programmieren. Dieses Untersystem besteht aus einem Datenvermittlungsprozessor 36, Adapterbündel, Leitungsadapter und Ferntreiberstufen aller Art Der Kern dieses Datenvermittlungsnetzwerkes stellt der Datenvermittlungsprozessor 36 dar. Der Datenvermittlungsprozessor 36 ist ein kleiner, programmierbarer, Spezialrechner, dessen einzige Aufgabe darin besteht Daten über eine große Anzahl von Datenvermittlungsleitungen zu übertragen bzw. zu empfangen.
Bezogen auf einen Hauptprozessormodul 20 arbeitet der Datenvermittlungsprozessor 36 asynchron, nach seinem Start arbeitet er unabhängig vom Hauptprozessor. Der Datenvermittlungsprozessor 36 ist über eine Anschlußeinheit (DC!) 8 eines IOM 10 angeschlossen und wird über die Abtastanschlußeinheit (SCI) 76 des IOM 10 betrieben. Die Durchführung folgender Codeumsetzungen ist für den Datenvermittlungsprozessor 36 charakteristisch: (a) EBCDIC in USASCII, (b) EBCDIC in BCU (c) USASCII in EBCDIC, (d) USASCII in Internal, (e) BCL in EBCDIC(Q Internal in USASCII und (g) Internal in BCL
In der bevorzugten Ausführungsform ist der Haupttaktgeber der Anlage in dem mit MCM-O bezeichneten MCM-Schrank untergebracht. Obwohl alle MCMs so angeordnet sind, daß jeder einen Taktgeber aufnehmen könnte, ist doch nur ein Haupttaktgeber pro Anlage vorhanden. Ein Blockdiagramm des Taktgebersystems ist in Fig. 41 dargestellt.
Wie in Fig.41 dargestellt, enthält der Haupttaktgeber 173 drei Teilschaltungen: Einen kristallgesteuerten Haupttaktgeber 175, einen 2-MHz-Zähler 177 und einen kristallgesteucrten 5-MHz-Taktgeber 179. Der kristallgesteuerte Haupttaktgeber 175 besitzt folgende drei Ausgangssignale: ein 16-MHz-Signal. welches den COMs 20 als Taktsignal für die Programmsteuereinheit 56, die Speichereinheit 66 und die Ausführungseinheit 62 zugeführt ist; ein 8-MHz-Phase-l-Signal, das der Vermittlungseinheit 68, den 10Ms 10 und den MDUs 26 als Basistaktsignal zur internen Taktsteuerung und zur Taktsteuerung der Anschlußeinheiten zugeführt wird; und ein 8-MHz-Phase-2-Signal, welches allen MCMs 92 als Basistaktsignal zur internen Zeittaktsteuerung und zur Zeittaktsteuerung der Anschlußeinheiten zugeführt wird. Der 2-MHz-Zähler 177 teilt das 8-M Hz-Phase-1-Signal und liefert auf diese Weise ein 2-MHz-Taktsignal für den Plattendateioptimierer (DFO) 40. (Der DFO enthält keinen internen Taktgenerator). Der kristallgesteuerte 5-MHz-Taktgeber 179 liefert das Taktsignal für den Datenvermittlungsprozessor 36.
In der bevorzugten Ausführungsform erhält der Haupttaktgeber 173 seine Speisespannung von speziellen Netzgeräten, die in jedem Moul von den normalen Speisegeräten getrennt sind. Wenn also der den Hauptfaktgeber enthaltende MCM ausfällt, so betreibt der Haupttaktgeber 173 die restlichen MCMs und Systemmoduln. Die Verteilung der Taktsignale an die anderen Moduln (vgl. Fig. 41) erfolgt über 100-Ohm Koaxialleitungen.
Wie im unteren Bereich der Fig.41 dargestellt ist, wird der Haupttaktgeber am Eingang jedes Moduls gepuffert. Der Modulpuffer stellt innerhalb jedes Moduls die grundlegende Taktgebersteuerung dar, dem Eingangssignale von dem Haupttaktgeber, einem Einzelimpuls-Schaltkreis und über den Einzelimpuls-Schaltk-eis auch von der Diagnose-Einheit (MDU) 26 geliefert werden. Ob der Einzelimpuls oder das Haupttakigebersignal verwendet wird, wird durch einen für jeden Modul vorgesehenen Schalter gesteuert. Der Modulpuffer steuert die Pulsbreite und -amplitude des gewählten Eingangssignals.
Im folgenden wird nun auf die Fail-soft- und Wartungseigenschaften der vorliegenden Erfindung Bezug genommen. Die erfindungsgemäße Anlage verkörpert zwei Fail-soft-Prinzipien: 1. arbeitet jeder Modul der Anlage sehr zuverlässig, und 2. setzt die Anlage trotz Störungen einzelner Moduln ihren Betrieb fort. Die grundlegenden Ziele der Fail-soft-Ausstattung bestehen nicht nur darin, eine rasche Wahrnehmung und Isolierung von Störungen vorzunehmen, sie bestehen außerdem darin, jede Funktion der Anlage mit Hilfe mehrerer Einrichtungen der Anlage verfügbar zu machen. Mit anderen Worten, das Hauptziel besteht darin, die Anlage immer in Betrieb zu halten. Eng mit diesem Ziel sind zwei andere Ziele verbunden, nämlich (1) die Rückstufung der Anlage möglichst klein zu halten, und (2) es dem Benutzer zu ermöglichen, daß er die Rückgewinnung seiner Daten durchführen kann. Diese drei Ziele werden durch eine Kombination von Hardware und Software-Einrichtungen innerhalb der gesamten Anlage erreicht.
Das erste Ziel, die Anlage ständig in Betrieb zu ^alten, wird erreicht durch: Eine hohe Zuverlässigkeit der Hardware der Anlage, den Einbau von Fehlerwahrnehmungsschaltungen in die Anlage, die Auflistung der Fehler für eine Softwareanalyse, eine Modulbauweise, die Verwendung separater Netzgeräte und redundanter Regler für jeden Modul, die Verwendung redundanter Sammelleitungen, und durch die Eigenschaft des mehrstufigen Operationssystems, automatisch die Moduln der Anlage um- und neuzuordnen und dadurch einen fehlerhaften Modul zeitweilig von der Anlage abzutrennen.
Obwohl die Fähigkeit, die Anlage nach dem Abtrennen eines defekten Moduls neu- und umzuordnen, primär eine Funktion des mehrstufigen Operationssystems darstellt, ist die Hardware mit Einrichtungen zur Unterstützung der Software versehen. So ermöglicht es z. B. eine Masken-Logik, daß das Operationssystem ein Unterbrechersignal verzögert wahrnimmt; außerdem werden vier Unterbrechungsorganisationsebenen oder Maschinen-Betriebsmoden verwendet, um in den Zeitpunkten, in denen wiederholt Unterbrechersignale vorkommen, drei vollständige Veränderungen des Umfeldes zu ermöglichen. Diese Einrichtungen gestatten es dem mehrstufigen Operationssystem, eine störungsfreie Umgebung zu suchen, in der Wiederherstellungsvorgänge (Registrierung der Störung, Isolierung der durch den wahrgenommenen Fehler betroffenen Jobs. Systemumordnung und wiederholter Start der Benutzerjobs, die durch die Störung nicht betroffen sind) ausgeführt werden können.
Die Wahrnehmung und die Meldung von Fehlern wird also durch Hardware ausgeführt, die Um- und Neuordnung der Anlage wird dynamisch durch Software durchgeführt. Aufgrund der Modulbauweise der Anlage und der Redundanz der Verbindungsleitungen setzt eine Störung eines einzelnen Moduls oder einer einzelnen Verbindungsleitung die Anlage nicht vollständig außer Betrieb. Außerdem wird, aufgrund der Modulbauweise der Speisegeräte- und der Verwendung redundant geregelter Speisegeräte für kritische Spannungen, die Auswirkung beschädigter DC-Versorgungsgeräte auf ein Minimum reduziert sie zieht keine katastrophalen Störungen nach sich.
Das zweite Ziel, die Systemrückstufung auf ein Minimum zu reduzieren, wird durch Bereitstellung von Diagnose-Programmen und Einrichtungen erreicht, die Störungen rasch identifizieren und reparieren, und die die Funktion eines reparierten Moduls überprüfen, bevor er der vom Benutzer verwendeten Anlage wieder zur Verfügung gestellt wird. Die Diagnose-Programme identifizieren einen fehlerhaften Modul. Durch den off-line-Einsatz der Diagnose-Einheit 26 wird eine Störung in einem Hauptmodul oder in einem Plattendateioptimierer 40 bis auf eine Taktperiode und ein Flipflop und dessen zugehörige Logikschaltungen eingegrenzt. Schließlich wird durch Verwendung eines Kartentesters in der Diagnostikeinheit 26 der fehlerhafte integrierte Schaltkreis identifiziert
Das dritte Ziel, es dem Benutzer zu ermöglichen, die Zurückgewinnung der eigenen Daten selbst durchzuführen, wird durch den Einsatz von Einrichtungen wie den Einrichtungen der Anlage zugeordnete Plattenspeicher geschützte Plattendateien, duplizierte Plattendateien und Fehlerstatements der in der Anlage verwendeten
Programmiersprachen höherer Ebene erreicht
Umfangsreiche Fehlerprüfeinrichtungen erlauben die schnelle Wahrnehmung eines Fehlers und stellen eine Grundvoraussetzung einer Fail-soft-Anordnung dar. Diese Einrichtungen sind kombiniert mit Einrichtungen, mii Hilfe derer Fehler in die Faii-Register der Hauptkomponenien der Aniage gemeldet werden können, und mit
Einrichtungen zur Korrektur von 1 -Bit-Fehlern in dem Speicher.
Bezüglich der Modulo-N-Kontrolle bei allen arithmetischen Operationen und bezüglich der Paritätskontrolle ■:nd der Kontinuitätskontrolle bei Datentransfers, die die Fehlerwahrnehmung innerhalb des Hauptprozessormoduls 2ö erheblich erleichtern, wird ein internes Prozessorunterbrechersignal erzeugt und die Ursache der Sto£ üng als Speicherinhalt des Fail-Registers 70 des Prozessors festgehalten.
ίο Innerhalb der Ausführungseinheit 62 des Hauptprozessormoduls 20 wird die Parität benutzt, um Fehler in dem lokalen Speicher der Ausführungseinheit und in den von anderen Einheiten empfangenen Daten wahrzunehmen. E;ne Modulo-N-Kontrolle des Steuermodes 3 (CM 3) wird vorgenommen, um Fehler auf den Datenkanalen und in den Datenregistern, insbesondere in dem Addier- und dem Barrel-Register der Ausführungseinheit 62, aber nicht in dem lokalen Speicher der Ausführungseinheit oder den Steuerregistern wahrzunehmen. Außer dem werden Modulo-N-Kontrollen an den von der Adresseneinheit an die Aiisführungseinheit geschickten Adressen vorgenommen, und für die vor. der Ausführungseinheit an die Adresseneinheit 60 oder die Speichereinheit 66 geschickten Adressen wird ein Restwert zur Verfügung gestellt. Außerdem stellt die Modulo-N-Kontrolie den ■*nichtigsten Schritt zur Wahrnehmung eines Fehlers dar, der durch ein besonderes Datentransfersignal verursacht wird. Die Kontinuitätsprüfung, d. h. der Einsatz eines Gültigkeitsbits, welches die Gültigkeit oder Ungültigkeit des laufenden Inhalts eines Registers angibt, wird verwendet, um fehlende und manchmal auch zusätzliche Datentransfersignale in den am häufigsten verwendeten Datenkanälen der Ausführungseinheit wahrzunehmen.
Für die Wahrnehmung und Meldung von Fehlern in dem tOM i0 sind Einrichtungen vorhanden, die alle bei einem Datentransfer in oder aus der Anlage vorkommenden Fehler wahrnahmen können.
In dem IOM 10 werden zur Fehlcrwahrnehmung eine Paritätskontrolle aller Datentransfers, eine Modulo-N-Kontrolle aller arithmetischen Operationen, Paritätskontrolle aller Operationen der lokalen Speicher, der Abtast-Sammelleitungsoperationen und der Zeitsperre bei Speichertransfers vorgenommen, es werden die Speichergrenzen überprüft, es werden unrechtmäßige Befehle und Bedingungen wahrgenommen und es findet eine Paritätskontrolle der Register/Register-Transfers statt.
Besondere Sorgfalt wird bei der Adressierung des Hauptspeichers 30 verwendet. Modulo-N-Kontrollen werden bei der Berechnung der Speicheradressen durchgeführt die Speichergrenzen werden jedesmal geprüft, wenn ein Zugriff zum Hauptspeicher versucht wird.
Ein in dem Eingabe-ZAusgabeuntersystem auftretender Fehler wird einem Resultatdeskriptor (RD) gemeldet, der die Störung festhält. Sofern die Störung keine spezielle Anforderung oder Einrichtung betrifft, wird sie auch in das Fail-Register des Eingabe-/Ausgaöemoduls Iu gemeidet, unu es wird ein lOM-Fehlerunterbrechersignal erzeugt. Ein Fehler, der eine Eingabe-/Ausgabeanforderung oder eine periphere Einrichtung betrifft, (z. B. ein Paritätsfehler in einer Magnetbandeinheit) wird nur einem Resultat-Deskriptor gemeldet. Außerdem wird die Bedienung derjenigen Einrichtung, in der der Fehler auftrat, verhindert und es wird bei Bedarf ein Kanalunterbrechersignal durch die Software ausgelöst.
Alle 1 -Bit-Speicherfehler werden wahrgenommen und korrigiert. Das Fail-Register 112 des MCM 92 wird mit der Information über die Störung gefüllt, der Requestor (Hauptprozessormodul 20 oder Eingabe-/Ausgabemodul tO) wird von der Störung und von dem aufgetretenen Fehlertyp benachrichtigt (ein FAIL-2-Unterbrechersignal wird erzeugt). Die Fähigkeit des MCM 92, eine Korrektur von 1-Bit-Fehlern durchzuführen, erhöht nicht nur die Verfügbarkeit und Einsatzfähigkeit außerordentlich, sondern eliminiert auch, was noch viel wichtiger ist,
4« eine Quelle transienter Fehler, die bis zum Aufbau einer Zeichenfolge vorkommen. In der erfindungsgemäßen Anlage werden die transienten Fehler korrigiert und der Inhalt des Fail-Registers liefert die Information zum Aufbau einer Störungs-Zeichenfolge.
2-Bit-Fehler im Speicher werden wahrgenommen und gemeldet, sie werden aber nicht korrigiert. Wiederum wird das Fail-Register 112 des MCM 92 mit der Information über die Störung gefüllt und der Requestor wird von der Störung und dem Typ des aufgetretenen Dehlers benachrichtigt (es wird ein FAIL-I-Unterbrechersignal erzeugt). (Ein Γ .''.1-Unterbrechersignal wird immer dann erzeugt wenn ein nicht-korrigierbarer Fehler auftaucht).
Um einen effektiven Gebrauch von den oben genannten Fehlerwahrnehmungseinrichtungen zu machen, ist die Isolation der Fehler erforderlich. Zur Isolation der Fehler ist nicht nur eine logische Organisation der Moduln und der Anschlußeinheiten der Art'age, sondern auch die physikalische Redundanz der Moduln und Kabel und außerdem die Isolation von ModuSn erforderlich. Logische Operationen, wie die redundante Modul-Adressenauswahl für eine Kommunikation zwischen den Modulen, sind nutzlos, wenn eine einzelne Störung der Verbindungen den gesamten Verkehr zwischen den Moduln ausschalten kann. In der bevorzugten Ausführungsform sind die Verbindungen zwischen den Moduln und die Leistungsversorgung daher so ausgelegt, daß die Unabhän gigkeit der Moduln bewahrt ist. Die Unabhängigkeit d«r Hauptmoduln wird durch die Verwendung verteilt angebrachter Schutzschalter und durch ein verteilt angeordnetes Fail-soft-Leistungsversorgungs-Untersystem sichergestellt Die verteilt angebrachten Schutzschalter stellen die Verbindung zwischen den Hauptmoduln her. Die Schutzschalter sind innerhalb der Komponenten der Zentraleinheit verteilt und ihr Betrieb hängt nicht von einer einzelnen Komponenten ab. Der Hauptprozessormodul und die Eingabe-/Ausgabemoduln werden als Requestoren behandelt, von denen jeder einen eigenen Kanal tu jedem der Speichermoduln 30a besitzt. Die Prioritätsresolver 116 der MCMs 92 stellen sicher, da. jeder Requestor bedient wird. Zusätzlich befindet sich in jedem MCM 92 eine mittels Software setzbare Zugriffsmaske. Diese Einrichtung gestattet eine Aufteilung der Anlage in mehrere Anlagen, sie ermöglicht aber, was noch wichtiger ist, daß verdächtige oder fehlerhafte
Requestoren (Hauptprozessoren und Eingabe-/Ausgabemoduln) von den Operationsprogramme und Datenbasen enthaltenden Speichermodulen 30a ausgeschlossen werden können.
Die Anschlußprobleme zwischen den Komponenten der Zentraleinheit sind gelöst, da alle Komponenten der Zentraleinheit miteinander verbunden sind. Die Verbindung zwischen den Prozessoren wird einfach durch Verwendung von Unterbre- hersignalen und gemeinsam genutztem Speicher gelöst. Wenn die Prozessoren in einer Load-Sharing-Betriebsart betrieben werden, würde ein gestörter Prozessor dadurch wahrgenommen, daß seine Eigenschaft eine Zustandstabelle im Speicher auf den neuesten Stand zu bringen, gestört ist. Ein anderer Prozessor würde dann den gesamten Inhalt übernehmen, den gestörten Prozessor vom Speicher abtrennen, die Wiederhersteüungsprozeduren für die von dem gestörten Prozessor ausgeführten Aufgaben auslösen und den Operator der Anlage von der Störung benachrichtigen. Da die gesamte Information allen Prozessoren verfügbar ist, kann jeder Prozessor £ingabe-/Ausgabeanforderungen auslösen und auf die Beendigung einer Eingabe-/Ausgabeoperation antworten.
Die Bewährungsprobe für ein modulares Fail-soft-System besteht darin, ob es möglich ist, die Wartung eines Moduls durchzuführen, ohne andere Moduln dabei zu stören. In der erfindungsgemäßen Anlage sind Speisegeräte daher so verteilt, daß die einem Modul zugeführte Leistung keinen anderen Modul stört. Es besitzten nicht nur die zentralen Komponenten der Anlage unabhängige Speiseeinrichtungen sind in jedem Modul doppelt vorhanden.
Die schnelle Identifikation und Reparatur von Fehlern wird durch die Verwendung von Sicherheits- und Diagnoseprogrammen und durch den Einsatz der Modul- und Kartentesteinrichtungen der Diagnoseeinheit 26 erreicht. Die Sicherheits- und Diagnoseprogramme für die zentralen und die peripheren Einrichtungen der Anlage werden als Software der Anlage zur Verfügung gestellt. Zusätzlich sind Testbänder innerhalb der Diagnoseeinheit 26 zum off-line-Test des Hauptprozessormoduls 20, des Eingabe-/Ausgabemoduls 10, des MCM 92 und des Plattendateioptimierers 40 vorgesehen. In der bevorzugten Ausführungsform der Diagnoseeinheit 26 ist ein Bedienungstisch vorgesehen, der in Verbindung mit einer Magnetbandeinheis 35 zur cff-üne-Prüfung des Hauptprozessormoduls 20, des Eingabe-/Ausgabemoduls 10, des MCM 92 und des Plattendateioptimierers 40 und beim Testen der Karten dieser Komponenten der Anlage verwendet wird. Wenn beim Einsatz der on-line-Sicherheits- und Diagnoseprogramme ein gestörter Modul identifiziert wurde, wird die Ursache der Störung mittels der Modultest- und Kaientesteinrichtungen der Diagnoseeinheit zuerst auf der Kartenebene und schließlich auf Schaltkreisebene gesucht.
Die Diagnoseeinheit 26 ist über ausgewählte Kabel ständig mit allen Moduln verbunden, die getestet werden können. Die Tests werden von der Magnetbandeinheit 35 oder von den Bedienungsiafeln der Diagnoseeinheit 26 aus von Hand durchgeführt. Wählbare Testprogramme ermöglichen es, bei einem Fehler anzuhalten oder zyklisch weiterzulaufen. Da die zu testenden Moduln deri Wartungsau/gaben zugeordnete logische Schaltkreise besitzen, ist die Diagnoseeinheit 26 in der Lage, alle Flipflops dieser Moduln zu steuern (zu setzen und zurück zu setzen) und abzutasten. Die Diagnoseeinheit 26 steuert den Taktgeber des dem Test unterzogenen Modul; ".s können einzelne Taktimpulse und/oder ein Taktpuls verwendet werden.
Die Strategie, nach der die Moduln mittels der Diagnoseeinheit 26 getestet werden, besteht darin, einen fehlerhaften Modul eine Taktperiode lang zu betreiben und die Zustände seines Flipflops mit einer vorgespeicherten Norm zu vergleichen. Auf diese Weise bleibt eine Störung auf eine Taktperiode und auf ein Flipflop und dessen zugehörigen logischen Schaltkreise beschränkt. In ähnlicher Weise wird die Überprüfung fehlerhafter Karten durch den Kartenleser der Diagnoseeinheit 26 vorgenommen, in dem nämlich Eingangssignalfolgen an eine Karte angelegt werden, die Ausgangssignale abgetastet und mit vorgegebenen Vergleichssignalen verglichen werden.
Die den Einrichtunggen der Anlage zugeordneten Plattenspeicher ermöglichen es dem Benutzer, die physikalische Zuordnung seiner kritischen Plattendateien anzugeben, um die Wartung und Neuordnung dieser Dateien zu erleichtern. Geschützte Plattendateien erlauben es dem Benutzer, Zugriff zu dem letzten Teil der in eine Datei eingeschriebenen gültigen Daten vor einem unerwarteten Systemstopp zu erlangen. Die Verwendung von duplizierten Plattendateien erfolgt, um das folgendschwere Problem der Plattendateifehler zu vermeiden. Das mehrsiufige Operationssystem enthält mehr als eine Kopie jeder Plattendatei-Zeile; sofern kein Zugriff zu einer Platte möglich ist, wird versucht. Zugriff zu einer Kopie dieser Platte zu erlangen. Durch die Benutzung von Fehlervereinbarungen kann der Benutzer die von seinen Programmen vorgenommenen Schritte im Falle eines auftauchenden Fehlers steuern.
Nachdem nun die verschiedenen Komponenten der Informationsverarbeitungsanlage nach der Erfindung erläutert wurden, wird nun das mehrstufige Operationssystem der bevorzugten Ausführungsform näher beschrieben.
Das mehrstufige Operationssystem enthält einen Kern 200 und ein oder meherere Steuerprogramme 202, vgl. Fig.42. Der Kern 200 stellt das Zentrum des Operationssystems dar, Hefen den direkten Anschluß mit der Hardware und liefert die Operationsumgebung des Steuerprogramms 202.
Für den Einsatz einer mehrstufigen Anordnung für die Softwaresteuerung der Informationsverarbeitungsanlage gibt es zwei Hauptgründe. Erstens ist es bei der Steuerung durch ein mehrstufiges Operationssystem möglich, gleichzeitig mehrere Steuerprogramme durchzuführen, von denen jedes auf die Durchführung eines bestimmt 1 Verwendungszweckes oder Jobs zugeschnitten ist, sei es eine schubweise zu verarbeitende Aufgabe, das Testci. von Hardwaremoduln, oder ein time-sharing-Verfahren. Jedes Steuerprogramm bedient sich bei der Zuordnung von Einrichtungen und Programmlaufplänen zu bestimmten Jobs der geeigneten Strategie und braucht keine irrelevanten Strategien zu erhalten. Auf diese Weise können mehrere vom mehrstufigen Operationssystem gesteuerten Steuerprogramme sich in ein Hardwaresystem teilen, und jeder Job, der von einem Steuerprogramm gesteuert wird, zieht aus den spezialisierten Eigenschaften der Steuerprogramme, die den Job steuern, Nutzen. Außerdem erlaubt diese Anordnung die Isolierung der Produktionsumgebung eines Benutzers
von einer Umgebung, in der beispielsweise die experimentelle Software entstört wird.
Zweitens wird das mehrstufige Operationssystem, bei einem stärker modularen Aufbau, verständlich und besser organisierbar, und daher werden dann auch Schreibvorgänge, die Wartung und eine E-weiterung einfacher. Ein Benutzer kann tatsächlich seine eigenen, speziellen Steuerprogramme schreiben und trotzdem die vom
mehrstufigen Operationssystem zur Verfügung gestellten Grundfunktionen und die konventionellen Standardsteuerprogramme benutzen. Die Funktionen des Kernes bei 100 betreffen unter anderem: (a) Zuordnung der Hardwareeinrichtungen, einschließlich der Unterteilung der CPM-Zeitplansteuerung, (b) die physikalische E/A-Auslösung und Beendigung; (c) die Verarbeitung der Unterbrechersignale; (d) und die Programm stopp-Ladefanktionen und weitere Fehlerwahrnehmungs- und Korrekturfunktionen. Andererseits liefert das Steuerprogramm 202 der vorliegenden Erfindung die Operationsumgebung für die Benutzerprogramme 206. Das Steuerprogramm 20 ist unter anderem verantwortlich für: (a) die Anordnung der dem Programm während seiner Durchführung zugeordneten Einrichtungen, (b) die Verarbeitung der Datei und der logischen E/A-Funktionen, bis zur Definition spezieller physikalischer E/A-Anforderungen; (c) die Verarbeitung von Unterbrechersignalen, die durch den Kern 200 zurückgeschickt wurden und (d) die Wahrnehmungs- und Korrekturfunktionen für Fehler im Benutzerprogramm.
Strukturell kann der Kern 200 des mehrstufigen Operationssystems als Basisebene des Systems betrachtet werden, die Steuerprogramme 202 stellen die nächste Ebene und die Benutzerprogramme 206 die dritte Ebene der Systemoperationen dar. Im allgemeinen ist ein Prozeß auf einer Ebene verantwortlich für auf der nächsthöheren und keiner anderen Ebene geschaffenen Prozesse.
Aus der bisherigen Betrachtung der Komponenten der Informationsverarbeitungsanlage geht hervor, daß der Zuverlässigkeit, der Fehlerwahrnehmung, der Fehlermeldung und der Fehlerheilung und -korrektur eine große Bedeutung zukommt. Beispiele hierfür stellen die separaten Speisegeräte für die einzelnen Geräteeinheiten dar, die sicherzustellen, daß die Störung einer Geräteeinheit keine anderen Geräteeinheiten betrifft; die separaten Datenkanäle, die ebenso dafür sorgen, daß die Störung eines Kanals keinen weiteren Kanal stört; die Paritäts-, Modulo-N- und Kontinuitätskontrolle im Hauptprozessormodul 20, um richtige Daten zu liefern; die Fail-Register, die die möglichen Ursachen einer Störung enthalten; die 1-Bit-Fehlerkorrekturspeicher, die l-Bit-Fehlerkorrekturspeicher, die I-Bit-Fehler automatisch korrigieren und 2-Bit-Fehler wahrnehmen können; die Diagnoseeinheit 26, die zur Diagnose von Problemen der Schaltkreisebene eingesetzt wird; und das mehrstufige Unterbrechersystem, welches die Fehlerheilung und -korrektur vereinfacht. Der Aufbau des mehrstufigen Operationssystems nach der Erfindung trägt ebenso zur Zuverlässigkeit der Anlage bei. Im folgenden sollen einige Eigenschaften des Operationssystems näher erläutert werden, so die Isolierung der Umgebungen einzelner Steuerprogramme 202, um den Einfluß eines Fehlers auf ein anderes Steuerprogramm möglichst klein zu halten, die konstante Überprüfung durch den Kern 200, um eine auf andere Weise nicht gemeldete Störung eines CPM 20 wahrzunehmen; die Analyse von Fehlerbedingungen, die durch die Unterbrecher- und Fail-Register des von dem Fehler betroffenen Anlagenteile gemeldet wurden, ohne andere Teile der Anlage zu beeinflussen; die Softwareausstattung des mehrstufigen Unterbrechersystems, die die Korrektur von Fehlern ermöglicht, die sonst die gesamte Anlage stoppen würden; und eine programmierte Stopp/Ladeeinrichtung, die die erneute Auslösung jener von der Störung betroffenen Anlagenteile ohne die Beeinflussung anderer Anlagenteile gestattet.
In der bevorzugten Ausführungsform besitzt normalerweise jedes Steuerprogramm seinen eigenen Speicher, periphere Einrichtungen und Platten. Die Möglichkeit, daß mehrere Steuerprogramme gleichzeitig laufen, ermöglicht es, daß jedes Steuerprogramm 202 für eine spezielle Anwendung und Umgebung optimiert ist. Dadurch erhält der Benutzer die Möglichkeit, seine eigenen Steuerprogramme für eine spezielle Anwendung zu schaffen und gleichzeitig ein allgemeines Steuerprogramm für weitere Datenverarbeitungsvorgänge zu verwenden. Zusätzlich arbeitet jedes Steuerprogramm in seiner eigenen Umgebung, so daß eine Störung eines Steuerprogramms die anderen Steuerprogramme nicht beeinflußt. Dadurch kann der Benutzer Produktions- und Testumgebungen gleichzeitig bei verschiedenen Steuerprogrammen bearbeiten, so daß Produktionsläufe unbeeinflußt von der Programmentstörung fortgesetzt werden können.
Die Zuverlässigkeit der Anlage wird dadurch teilweise durch die Isolierung der Steuerprogramm-Umgebungen erreicht. Der Kern 200 arbeitet als Anschlußverbindung zwischen einem Steuerprogramm 202 und der Systemhardware 204. Der Kern trägt auf diese Weise die letzte Verantwortung für die Wahrnehmung und Eingrenzung der Fehlerbedingungen.
Eine der Basisfunktionen des Kerns 200 besteht in der direkten Steuerung der Hardware und der Zuordnung dieser Hardware zu Steuerprogrammen 202. In der bevorzugten Ausführungsform basiert die vom Kern 200 durchgeführte Zuordnung der Hilfseinrichtungen auf den physikalischen Geräteeinrichtungen, die Motivation hierfür liegt darin, daß (1) eine größere Kontrolle über die Hilfseinrichtungen als durch das Steuerprogramm 202 möglich ist; (2) eine größere Kontrolle über die Verwendung dieser Hilfseinrichtungen möglich ist; und daß (3) die Störungen der Moduln (CPM, 1OM, ivlCM) nur das Steuerprogramm 202 betrifft. Die Speicher-, Peripher-, und Platten-Einrichtungen stellen eine Steuerprogramm-Speicherumgebung dar und werden zu Beginn einem Steuerprogramm 202 als Parameter zugeführt. Diese Zuordnung der Hilfseinrichtungen sollte von einer Auslösung zur nächsten Auslösung einigermaßen stationär sein, speziell um Platten-Bedarf zu verringern. Allerdings ist Vorsorge getroffen, daß der Operator die Zuordnung modifizieren kann, daß das Steuerprogramm 202 eine Hilfseinrichtung anfordern oder zum Kern 200 (von oder in eine Gruppe mehrerer verfügbarer Systemhilfseinrichtungen) zurückführen kann, und daß der Kern 200 zusätzliche Hilfseinrichtungen in das Steuerprogramm 202 einfügen kann. Um das mehrstufige Operationssystem zur Steuerung der Anlage an die Stelle des Hauptsteuerprogramms (MCP) setzen zu können, worauf weiter unten manchmal Bezug genommen wird, muß die MCP-Codedatei auf eine Platte gespeichert werden, wobei mit der Plattenadresse 0 einer Speicherplattcneinhcil begonnen wird. Zusätzlich müssen die M PC-Informationstabelle und das Platteninhaltsverzeichnis auf der Platte
präsent sein. Wenn diese Startbedingungen erfüllt sind, wird eine Stopp/Latleoperation durchgeführt, um die ersten 8192 Wörter des MCP in den Hauptspeicher 30 einzulesen (der Hauptspeicher 30 steuert logischen Segmenten von 16 384 Wörtern des Programms und beginnt mit der Durchführung des MCP.
Die Funktionen, die die MCP-Codedatei von einem Magnetband auf die Platte speichern und die MCP-lnformationstabelle und das Platten-Inhaltsverzeichnis aufstellen oder revidieren, werden durch ein Systemladeprogramm ausgeführt Dieses Progranw besitzt die Form eines Kartensatzes, der die Maschinencodebefehle enthält, und dem sich Datenkarten zur Spezifizierung der zur Auslösung des betriebsbeginns erforderlichen Parameter anschließen. Unter den spezifizierten Größen können sich befinden: Die Anzahl und Typen der verfügbaren peripheren Einrichtungen und deren Anordnung im E'A-Untersystem, die Größe der für das Platteninhs'»Verzeichnis und für die Übertragung von Programmteilen benötigten Plauenbei dche, die für I Jm- ίο und Neuordnung benötigten Platteneinheiten, die auf speziellen Überwachungsgeräter, angezeigten Tabellen, dasjenige Band, aus dem das MCP zur Speicherung herausgenommen wurde und verschiedene Laufzeit-Systemangaben.
In der bevorzugten Ausführungsform stellt ein Prozessor-Hardwareunterbrechersystem die primäre Anschlußverbindung zwischen dem MCP und der Systemhardware dar. Hardwareunterbrechersignale werden unter bestimmten Bedingungen automatisch von der Anlage erzeugt und werden durch die MCP-Unterbrecherprozedur verarbeitet Ein Unterbrechersignal stellt ein Mittel dar, einen Prozessor aus dem von ihm durchgeführten Job herauszunehmen, sofern bestimmte vorgegebene Bedingungen auftauchen. Wenn ein Hardwareunteibrechersignal von dem MCP geliefert wurde, setzt das MCP den unterbrochenen Prozeß wieder in Gang, wenn es die Bedingungen erlauben.
Wenn ein Prozessor die das Unterbrechersignal behandelnde Prozedur des MCP durchführt befindet er sich im Steuerzustand, der einen der beiden Arbeitszustände eines Prozessors darstellt. Ein Hauptprozessormodul 20 kann in zwei Zuständen arbeiten, entweder in dem das MCP durchführenden Steuerzustand oder in dem Normalzustand, in dem Benutzerprograrnnie und bestimmte MCP-Funktionen ausgeführt werden. In einer Mehrprozessoranlage bearbeitet jeder Prczesssor seine eigenen Unterbrechersignale; d. h, alle Prozessoren können gleichzeitig im Steuerzustand sein.
Ein Eingang in den Steuerzustand findet statt, wenn der Prozessor gestartet ist und bestimmte Unterbrecherbedingungen vorliegen. Im Steuerzustand kann der Prozessor im Normalzustand nicht verfügbare privilegierte Befehle durchführen, außerdem können verschiedene Klassen von Unterbrecliersignalen gesteuert zugelassen oder nicht zugelassen sein. Der Wechsel vom Steuerstand in den Normalzustand erfolgt dann,, wenn das MCP ein Normalzustand-Programm hervor bringt, oder er erfolgte zu einem Zeitpunkt, in dem das Normalzustand-Programm einem Unterbrechersignal folgte. Im letztgenannten Fall kann es sein, daß das Benutzerprogramm nach dem Auftauchen des Unterbrechersignals nicht weiter ausgeführt wird.
Der Normalzustand schließt die Verwendung von den vom MCP benötigten privilegierten Befehle aus, erlaubt die Hardwarewahrnehmung ungültiger Operatoren und verstärkt den Speicherschutz, und die die Sicherheit betreffenden Einrichtungen. Die Abkehr vom Normalzustand erfolgt als Ergebnis einer Unterbrecherbedingung oder durch einen Aufruf an ein Steuerzustand-Programm, z. B. zur Durchführung E/A-Operationen. Viele MCP-Funktionen können im Normalzustand laufen, Unterbrechungen von im Normalzustand laufenden MCP-Funktionen lassen sich durchführen.
Die Hardware-Unterbrechersignale lassen sich in interne und externe Unterbrechersignale unterteilen. Bei den internen Unterbrechersignalen (silbenabhängig und silbenunabhängig) ist jeder Prozessor der Anlage mit einem eigenen, internen Unterbrechernetzwerk ausgestattet. Die einem Prozessor zugeordneten internen Unterbrcchersignale werden direkt in dieses Netzwerk eingegeben und örtlich in diesem Prozessor gestapelt. Externe Unterbrechersignale können dagegen von irgend einem Prozessor der Anlage zur Verfügung gestellt werden. Silbenabhängige Unterbrechersignale werden von der Prozessor-Operatorlogik wahrgenommen. Diese silbenabhängige Unterbrechersignale umfassen Arithmetikfehler—, Präsenzbit-, Speicherschutz- und ungültige Operanden-Unterbrechersignale. Mit Ausnahme der Arithmetikfehler-Unterbrechersignale, für die eine programmierte Steuerung zur Verfügung gestallt werden kann, und den Präsenzbit-Unterbrechersignalen, haben die Unterbrechersignale dieser Gruppe im allgemeinen die Beendigung des Programms zur Folge. Silbenunabhängige (Alarm-) Unterbrecherbedingungen werden normalerweise von der Prozessor-Operaiorlogik nicht vorweggenommen. Sie dienen dazu, den Prozessor über schädliche Veränderungen der Umgebung zu informieren und können sowohl von Hardwarestörungen als auch von Programmfehlern herrühren. Diese Unterbrechersignale enthalten diejenigen Unterbrechersignale für ein gestörtes Auslesen aus dem Speicher, eine ungültige Adresse und ein ungültiges Programmbefehiswort, sie haben alle die Beendigung des jeweils durchgeführten Prozesses zur Folge. Externe Unterbrecherbedingungen sind den Alarmunterbrecherbedingungen insofern ähnlich, als sie von der Operatorlogik nicht vorweggenommen werden. Allerdings machen sie kein sofortiges Eingreifen erforderlich und haben auch nicht zwingend die Beendigung des Programms zur Folge, Diese Unterbrechersignale umfassen Zwischenkanal- und interne Zeitsteuer-Unterbrechersignale. Normalerweise wird die zur Eliminierung eines gestörten Hardwaremoduls oder die für Wartungszwecke bedingte Herausnahme des Moduls erforderliche Um- und Neuanordnung der Anlage automatisch vom MCP vorgenommen. Das Hauptkriterium dafür, ob eine Einheit abtrennbar ist, besteht darin, ob sie zu dem betreffenden Zeitpunkt durch irgend einen Prozeß betrieben wird. Sofern z. B. ein Speichermodul 30a abgetrennt ist, so würde ein Versuch, einen Zugriff zu Daten durchzuführen, mit größter Sicherheit zu einer ungültigen Adresse führen. Wenn dagegen eine Einheit abgetrennt wird, z. B. ein Magnetbandantrieb, der im betreffenden Zeitpunkt nicht betrieben wird, so setzt die Anlage ihren Betrieb so fort, als sei nichts geschehen. Es ist möglich, einen Befehl zu dem MCP zu leiten, aufgrund dessen eine spezielle Einheit abgetrennt werden soll, und daß das MCP mit einer Umordnung der Anlage antwortet, um den Einsatz dieser Einheit zu vermeiden.
Wenn eine Hardware-Unterbrecherbedingung auftritt, geht der unterbrochene Prozessor in den Steuerzu-
stand über, markiert den Stapel und fügt drei Worte in die Spitze des Stapels ein. Das erste eingefügte Wort ist ein indirektes Referenzwort, das auf ein Register zeigt, welches ein Programmsteuerwort (PCW) enthält, das auf die MCP-Hardware-Unterbrecherprozedur zeigt. Dem zuerst eingegebenen Wort folgen zwei Unterbrecherparameter, Pl und P2, nach, die Information über die Art der Unterbrecherbedingung erhalten. Wenn der Prozessor in die MCP-Hardware-Unterbrecherprozedur eintritt, bleibt er im Steuerzustand, um externe Unterbrechersignale unwirksam zu machen. Der Zustand des Prozessors (Steuer- oder Normalzustand) wird durch das Steuerbit des PCW bestimmt. Besitzt das Steuerbit den Wert »1«, so führt der Prozessor eine Prozedur im Steuerzustand aus. Andernfalls arbeitet der Prozessor im Normalzustand.
Beim Eintreten in die Hardware-Unterbrecherprozedur wird der Parameter Pl analysiert, um den Typ des
ίο aufgetretenen Unterbrechersignals zu analysieren. Für einige Unterbrechesignale, wie z. B. einen Präsenzbit-Unterbrecher enthält P2 zusätzliche Information, die von der Unterbrecherprozedur verwendbar ist. Dann wird die geeignete Tätigkeit ausgelöst.
Das MCP enthält Listen der Speicherverfügbarkeit durch Verwendung von Speicher-Anschlüssen, die den sie beschreibenden Speicherbereichen zugeordnet sind. Jeder Typ eines Speicher-Anschlusses wird so verwendet,
daß eine Liste mit soviel Information entsteht, damit ein einzelner Hardwareoperator den nächsten Speicher-Anschluß und alle nachfolgenden Speicher auffindet. Die Speicherbereiche werden je nach ihrem laufenden Zustand als »in Betrieb« oder »verfügbar« klassifiziert.
Die »in Betriebw-befindlichen Speicher-Anschlüsse enthalten die Stapelnummer des Anforderungsprozesses, die Länge des »in Betriebw-Bereiches, ein Verfügbarkeitsbit in der »aus«-Position, einen Code, der die Benut-
zung des Bereiches angibt, Anschlüsse an die zuletzt zugeordneten und die demnächst »in Betrieb« befindlichen Bereiche usw. Verfügbare Speicher-Anschlüsse enthalten die Länge des Bereiches, ein Verfügbarkeitsbit in »ein«-Position, Anschlüsse zu den nächsten und zuletzt verfügbaren Bereichen usw.
Das MCP führt eine dynamische Speicherplatzzuordnung durch und verwendet dabei eine Umgebungs-Steuerroutine für alle Speichermedien, Hauptspeicher .30, Magnetplatten und die Magnetband-Bibliothek der AnIa-
ge. Werden die verschiedenen Speichermedien der Anlage als eine Hirachie von Speichern angesehen, so folgt aus dieser Betrachtung, daß das MCP die Zuordnung und das Ende der Zuordnung aller Speicher der Anlage steuert.
Für den Speicherschutz ist eine Kombination aus Hardware- und Softwareeinrichtungen vorgesehen. Eine Aufgabe der Hardware besteht in der automatischen Wahrnehmung von Zugriffs- und Befehlsvesuchen durch
ein Programm, welches außerhalb seines vorgegebenen Datenbereiches indiziert. Eine weitere Aufgabe besteht in der Verwendung eines der Steuerbits in jedem Wort als Speicherschutzbit, um zu verhindern, daß das Benutzerprogramm in die mit einem gesetzten Schutzbit versehenen Wörter des Speichers einschreibt (Das Schutzbit wird durch Software gesetzt.) Jeder Versuch, eine derartige Schreiboperation auszuführen, wird verhindert; es wird ein Unterbrechersignal erzeugt, welches die Beendigung des Programmes zur Folge hat Ein Benutzerprogramm kann daher keine Programmsegmente, Datendeskriptcren oder andere Programmwörter oder MCP-Tabellen während seiner Durchführung ändern.
In der bevorzugten Ausführungsform übt das MCP die Steuerung von Jobs durch Verwendung von Stapeln, Deskriptoren und Tabellen über den System- und den Prozeßzustand aus. Jedem Job der Anlage ist ein Stapel zugeordnet. Wie schon erläutert, ist der Stapel, ein abgegrenzter Speicherbetrieb, einem Job zugeordnet, um die
Speicherung für Basisprogramme und Datenreferenzen zu ermöglichen. Außerdem kann der Stapel Daten und Jobverläufe zeitweilig speichern. Wird ein job in einem Hauptprozessor 20 aktiviert, so werden die schnellen Speicherplätze an der Spitze des Stapels des Prozessors an den Stapel-Speicherbereich des Jobs angeschlossen. Diese Verkettung wird durch das Stapel-Zeigerregister (S-Register 63) bewirkt, welches die Adresse des zuletzt in den Stapel eingegebenen Wortes enthält. Zusätzlich wird der der Stapelspitze zugeordnete Teil des Stapel-
Speicherbereiches in den Stapelpuffer 50 eines CPM eingegeben, in einen Bereich eines lokalen Prozessor-IC-Speichers, um durch die Ausführungseinheit 62 des CPM 20 schnellen Zugriff Veränderungen des Stapels zu besitzen.
Daten werden über die Speicherplätze an der Spitze des Stapels nach dem »zuletzt-hinein, zuerst-heraus«-Prinzip in den Stapel hinein und aus diesem wieder hinaus gebracht Die gesamte Kapazität der Speicher-
platze an der Spitze des Stapels beträgt zwei Operanden. Wird ein dritter Operand in die Speicherplätze an der Spitze des Stapels geladen, so wird der erste Operand aus den Stapelspitze-Registern in den Stapel überführt Das Stapelzeiger-Register 63 nimmt jedesmal um den Wert 1 zu, wenn ein Wort aus dem Stapel genommen und in die Stapelspitze-Register plaziert wird. Als Ergebnis zeigt das Stapelzeiger-Register 63 kontinuierlich das zuletzt in den Stapel des Jobs eingegebene Wort.
Wie schon erläutert ist der Stapel des Jobs zum Schütze des Speichers von zwei Registern begrenzt dem Stapelbasis-Register (BPSR) 65 und dem Oberen-Grenzwert-Register (LOSR) 67. Der Inhalt des BOSR 65 definiert die Basis des Stapels, und das LOSR 67 definiert die obere Grenze des Stapels. Der Job wird unterbrochen, wenn das Stapelzeiger-Register 63 auf denjenigen Wert gesetzt wird, der sich in dem LOSR 67 oder dem BOSR 65 befindet
Deskriptoren sind Wörter, die zur Eingabe von Daten und Programmbereichen in den Speicher und zur Beschreibung dieser Bereiche für Steuerzwecke verwendet werden. Deskriptoren stellen die einzigen Wörter dar. die absolute Adressen enthalten, die von einem Benutzerprogramm verwendet werden können, allerdings kann aas Benutzerprogramm diese absoluten Adressen nicht ändern, in der bevorzugten Ausführungsform sind die Deskriptoren in drei Kategorien, in Daten, Zeichenfolgen und Segmente unterteilt Die Datendeskriptoren
werden im Zusammenhang mit Datenbereichen, einschließlich Eingabe-/Ausgabepufferbereiche, verwendet Ein Datendeskriptor definiert einen Speicherbereich, der an der Stelle der im Deskriptor enthaltenen Basisadresse beginnt. Die Größe des Speicherbereiches ist nach der Anzahl der Wörter in dem Längenfeld des Deskriptors enthalten. Datendeskriptoren können direkt auf jede Speicherwortadresse Bezug nehmen. Zeichenfolge-Des-
kriptoren nehmen auf Datenbereiche Bezug, die als 4, 6 oder 8-Bit-Zeichen organisiert sind. Der Deskriptor definiert einen Speicherbereich, der an der im Deskriptor enthaltenen Basisadresse beginnt. Die Größe des Speicherbereiches wird durch das Längenfeld begrenzt. Segment-Deskriptoren werden zur Auffindung von Programmsegmenten verwendet. Diese Deskriptoren enthalten entweder die Hauptspeicher- oder Plattendateiadresse eines speziellen Segmentes. Alle Programme werden durch im Segmentwörterverzeichnis-Stapel enthaltene Segmentdeskriptoren ein- und ausgegeben; alle Bezüge zu diesen Deskriptoren sind relativ. Die Eingabe oder die Entfernung eines gegebenen Programmsegmentes aus dem Speicher wird durch Auswechseln des Präsenzbits in dem betreffenden Segmentdeskriptor erreicht. Dabei ist keinerlei Suche im Stapel erforderlich.
Das MCP enthält außerdem Tabellen, die den System- und den Prozeßstatus zusammenfassen. Eine Mischtabelle enthält den Prioritätsstatus (zeitlich festgelegt, aktiv oder ausgesetzt) und den Mischindex jedes Jobs, der in die Anlage eingegeben wurde. Eine Tabelle der peripheren Einheiten besitzt für jede periphere Einheit einen Eingang in das System.
Jeder Eingang enthält den Zustand der korrespondierenden Einheit und die dieser Einheit zugeordnete Datei.
Die Zeitplan-Routine des MCP bestimmt die Reihenfolge der zu bearbeitenden Jobs und die optimale Prcgrarnmischung, wobei die Prioritätsbewertung und die Systemerfordernisse jedes Maschinencodeprogramms und die jeweils vorliegende Systemkonfiguration betrachtet werden. Das MCP enthält einen dynamischen Zeitplan-Algorithmus, d. h. einen Algorithmus, der die zeitliche Job-Reihenfolge erneut festlegt, wenn ein Job höherer Priorität in das System eingegeben wird. Die Jobpriorität kann durch eine Prioritätsvereinbarung vom Programmierer definiert werden. Wird vom Programmierer keine Priorität festgelegt, so wird ein Ersatzwert von der Hälfte der maximal zulässigen Priorität vom MCP festgelegt. Die Berechnung der Prioritäten wird in einem gut isolierten Teil des MCP durchgeführt. Dadurch kann sich der Benutzer in einfacher Weise auf seine speziellen Erfordernissen zugeschnittene Prioritätsalgorithmen zusammenstellen.
Da jeder Job von der Eingabeeinheit der Anlage (Kartenleser oder Pseudokartenleser, d. h. Magnetband oder Platte) gelesen wird, nimmt die CONTROL CARD-Interpretationsprozedur einen entry in die Warteschlange vor, um den Stapelverarbeitungsmodus zeitlich festzulegen. Die Warteschlange besteht aus einer angeschlossenen Liste von Prozessen, die auf ihre Durchführung warten. Jeder Eingang in die Warteschlange stellt einen partiell aufgebauten Prozeßstapel dar. Die in diesem Stapel aufgenommene Information enthält den für den Prozeß erforderlichen, geschätzten Anteil des Hauptspeichers 30, die Priorität, die Zeit des Eingangs in den Zeitplanprozeß, die Größe und den Speicherplatz der Codesegmente, die Größe des Arbeitsspeicherstapels und die Größe und Speicherplatz der Information des Prozeßstapels. Nachdem die CONTROL CARD ihre Aufgabe ausgeführt hat, und sofern genügend freie Einrichtungen der Anlage vorhanden sind, wird der Eingang aus der Warteschlange genommen und in eine sogenannte Ready-Warteschlange eingegeben. Wenn genügend viel Einrichtungen der Anlage vorhanden sind, um einem weiteren Job in den Programmischer hineinzulassen, wird ein unabhängiger Durchlaufprozeß RUN gestartet. RUN macht das Segmentwörterverzeichnis des Job im Hauptspeicher 30 verfügbar und transferiert die Steuerung für diesen Job.
Realzeit- und time-sharing-Anwendungen, die über die Datenvermittlungseinrichtungen in die Anlage eingegeben werden, stellen für den Mehrprogrammischer nur eine Ausweitung dar. Sobald die Steuerung an einen neuen Job übergleitet wird, taucht z. B. ein Unterbrechersignal auf, da das äußere Block-Codesegment im Hauptspeicher 30 nicht vorhanden ist. Dieses Unterbrechersignal wird mit Hilfe der PRESENCE BIT-Prozedur des MCP bearbeitet. PRESENCE BIT wird eingegeben, wodurch folgende Schritte stattfinden, um das Segment in den Speicher zu bringen:(l) PRESENCE BIT ruft eine GETSPACE-Funktion des Kerns 200, um einen Bereich des Hauptspeichers 30 für das Codesegment festzulegen (die GETSPACE-Funktion versucht, einen Bereich festzulegen, der der Anforderung genügt); (2) nachdem ein Bereich nicht festgelegt ist, ruft PRESENCE BIT eine DISKIO-Funktion, eine Platten-Eingabe-/Ausgabeprozedur, und wartet auf die Mitteilung, daß das Segment eingelesen wurde; (3) DlSKlO gibt die Anforderung in die E/A-Warteschlange ein. Nach Beendigung der Platten-Eingabe-/Ausgabeprozedur wird PRESENCE BIT benachrichtigt, daß das Segment nun verfügbar ist. PRESENCE BIT markiert den augenblicklichen Segmentdeskriptor und kehrt an der Stelle der Unterbrechung zum Job zurück, und der Job fährt in seinem Durchlauf fort.
Ein im Speicher befindliches Programm belegt separat zugeordnete Bereiche, d. h. jeder Teil des Programms kann an einer beliebigen Stelle im Speicher untergebracht sein. Die tatsächliche Adresse wird vom MCP bestimmt. Die verschiedenen Teile brauchen außerdem nicht notwendigerweise benachbarten Speicherbereichen zugeordnet sein. Register innerhalb des Prozessors und Deskriptoren im Stapel geben die Basis der verschiedenen Bereiche während der Ausführung eines Programmes an.
Die separat zugeordneten Bereiche eines Programmes sind: (1) die Programmsegmente — Befehlsfolgen, die von einem Prozessor bei der Durchführung eines Programmes ausgeführt werden: (2) des Segmentwörterverzeichnis — eine Tabelle, die für jedes Programmsegment ein Wort enthält, welches angibt, ob das Programmsegment sich im Hauptspeicher oder auf der Platte befindet, es enthält die entsprechende Hauptspeicher- oder Plattenadresse; (3) der Stapel, der alle mit dem Programm zusammenhängenden Variablen enthält, einschließlich der Steuerwörter, die den dynamischen Zustand des Job während seiner Durchführung angeben; (4) vom Programm verwendete Datenbereiche, die von den Datendeskriptoren oder Zeichenfolge-Deskriptoren aus dem Stapel des Programms zugeordnet und aufgerufen werden; und (5) die MCP-Stapel und das Segmentwörterverzeichnis, die Variablen enthalten, die das MCP und die MCP-Segmentwörterverzeichnis-Eingänge betreffen.
Sobald ein Job läuft, werden zusätzliche Segmente des Programmcodes und der Daten benötigt. Der Jodstapel enthält Speicherplätze für einfache Variablen und Feld-Datendeskriptoren, aber den Programmcode-Segmenten oder den Feldreihen werden ihre eigenen Speicherbereiche zugeordnet. Diese Zuordnung eigener Speicherbereiche für Codesegmente und Feldreihen gestattet es, daß die Segmente und Daten erst dann im Hauptspeicher 30 sind, wenn sie tatsächlich benötigt werden. Ein Bezug auf Daten oder den Code mittels eines Datendes-
kriptors oder eines Segmentdeskriptors veranlaßt den Prozessor, PRESENCE BIT im Deskriptor zu überprüfen. Wenn PRESENCE BIT aus ist, erfolgt ein Unterbrecher, der Steuerung zum PRESENCE BIT transferiert. Der nicht präsente Deskriptor wird als Parameter weitergeleitet. PRESENCE BIT liest das Adressenfeld des Deskriptors und ruft die GETSPACE-Procedur, um einen Bereich im Hauptspeicher 30 für das Codesegment
festzulegen. Parameter werden der GETSPACE-Prozedur zugeführt, so daß ein angemessen großer benachbarter Bereich des Speichers für einen speziellen Stapel reserviert wird. Nachdem GETSPACE den Bedarf an Kernspeicherpiätzen befriedigt, gibt es die Speicheradresse des von dieser Prozedur festgelegten Bereiches zurück, und PRESENCE BIT veranlaßt, daß die Information von der Platte in den Speicher eingelesen wird. Wenn das Ablesen der Platte beendet ist, speichert PRESENCE BIT die Speicheradresse der information in das
ίο Adressenfeld des Deskriptors, setzt das PRESENCE BIT auf »ein« und bringt den Deskriptor im Prozeßstapel auf den neuesten Stand. PRESENCE BIT gibt dann die Steuerung an den unterbrochenen Prozeß zurück, und es erfolgt ein Zugriff auf diese Information durch den Prozeß. Die Information ist damit im Speicher vorhanden; die Information ist erhaltbar, die Ausführung des Verarbeitungsprozesses setzt sich dann auf normale Art und Weise fort.
Die erforderliche Speicherung der betroffenen Daten oder Codes kann an der Spitze oder am Schluß eines angemessenen großen Speicherbereiches erfolgen und als überlagerbar oder nicht überlagerbar markiert werden. Wenn ein »in Betrieb«-Bereich benutzt wird, wird er an den vorher benutzten »in Betriebw-Bereich mittels der in den Speicheranschlüssen enthaltenen Left-off-Anschluß- und Zeigerfelder angeschlossen. Diese Felder enthalten die Left-off-Liste. Ein Referenzwort, welches auf den ältesten Entry in der Left-off-Liste zeigt, erlaubt es, die chronologische Reihenfolge der »in Betrieb«-Speicherbereiche zu bestimmen.
Wenn für eine bestimmte Anforderung genügend verfügbarer Speicherplatz zur Verfügung steht, wird der Überlagerungsmechanismus angerufen. Die Left-off-Liste wird durchsucht, wobei mit demjenigen überlagerbaren Bereich begonnen wird, der für die längste Zeitdauer zugewiesen war. Wenn dieser Bereich, in Kombination mit benachbarten, verfügbaren Bereichen ausreicht, der Anforderung zu genügen, wird er überlagert. Ansonsten werden benachbarte Bereiche mit kleineren Startadressen betrachtet.
Wenn die Anforderung befriedigt wird und der aufgefundene Bereich größer ist als erforderlich, wird acr nicht benutzte Teil verfügbar gemacht und die an die verfügbare Liste angeschlossen. Wird die Anforderung nicht befriedigt, so erhält man den nächst ältesten überlagerbaren Bereich, und die Left-off-Liste wird in oben beschriebener Weise durchsucht. Dieser Prozeß wird solange wiederholt, bis die Left-off-Liste erschöpft ist.
Kann die Anforderung nicht befriedigt werden, so existiert eine no-memory-Bedingung.
Software-Unterbrecher werden im Gegensatz zu Hardware-Unterbrechern zur Verwendung innerhalb des MCP und der Maschinenprogrammprozesse durch Programme definiert. Software-Unterbrecher erlauben es den Prozessen, untereinander und mit dem MCP in Verbindung zu treten. Die Software-Unterbrecher ermöglichen es, einen Prozeß zu unterbrechen (und dabei den Prozessor freizugeben), bis ein genauer bezeichnetes Ereignis eintrifft, oder einen Prozeß am Laufen zu halten und erst dann zu unterbrechen, wpnn dieses Ereignis auftritt. Ein Software-Unterbrecher tritt ein, wenn ein Prozeß durch direkten Pingriff anderer Prozesse unterbrochen wird. Ein Prozeß kann unterbrochen werden, wenn er eine Unterbrecher-Vereinbarung innerhalb seines Bereiches besitzt.
Ein Prozeß kann das Eintreten eines Ereignisses mittels einer CAUSE-Vereinbarung abrufen. Das MCP-tastet die Unterbrecher-Warteschlange ab, um festzustellen, ob ein Unterbrecher ausgelöst wurde. Wenn der Unterbrecher nicht ausgelöst und das Ereignis abberufen wurde, wird vom MCP kein Eingriff in diesen Prozeß vorgenommen und das MCP betrachtet den nächsten Prozeß innerhalb der Warteschlange.
Wenn Unterbrecher im nächsten Stapel ausgelöst werden, nimmt das MCP einen Eingang in die Software-Unterbrecher-Warteschlange vor. Diese Warteschlange wird von der Stapelnummer geordert. Wenn der Stapel aktiv ist, d. h. wenn ein anderer Prozessor mit diesem Stapel arbeitet, unterbricht das MCP diesen Prozessor über einen Zwischenkanal-Unterbrecher. Anschließend führt das MCP dem mit der Unterbrecher-Vereinbarung in Zusammenhang stehenden Statement Steuerungsmittel zu. Mit der Vervollständigung dieses Statements, kehrt der Prozeß zu dem Ausgangspunkt der Steuerung zurück es sei denn, daß ein Transfer von Steuerungsmitteln in der Unterbrecher-Vereinbarung vorgesehen ist. In diesem Fall kehrt der Prozeß nicht in den vor dem Unterbreeher vorhandenen Steuerzustand zurück, sondern transferiert Steuerungsmittel, wie in der Unterbrecher-Vereinbarung angegeben.
Während des MCP die Unterbrecher-Wsrteschlange abtastet und dabei freigegebene Unterbrecher in inaktiven Stapeln findet, nimmt es einen Eingang in die Software-Unterbrecher-Warteschlange vor, unternimmt aber mit diesem Stapel erst etwas, wenn er aktiv wird. Unmittelbar nachdem der Stapel aktiv gemacht wurde, überprüft das MCP die Software-Unterbrecher-Warteschiange, um festzustellen, ob ein auf diesen Stapel zeigender Unterbrecher vorliegt. Wird ein Unterbrecher gefunden, so führt das MCP dem der Unterbrecher-Vereinbarung zugeordneten Statement Steuermittel zu. Nach der Beendigung des Statements werden die Steuermittel, wie oben beschrieben, transferiert.
In der bevorzugten Ausführungsform finden, wenn die Durchführung eines Jobs beendet ist, folgende Vorgänge statt: (1) Alle noch ausstehenden E/A-Anforderungen werden, sofern möglich, vervollständigt; und alle offenen Dateien werden geschlossen, die Einheiten freigegeben und die Pufferspeicherbereiche an die Tabelle der verfügbaren Speicher zurückgegeben; (2) alle überlagerbaren, dem Job zugeordneten Plattenbereiche werden an die Tabelle der verfügbaren Speicher zurückgegeben; (3) alle Job-Maschinencodes und Feld-Dalenbereiche des Hauptspeichers 30 werden die Tabelle der verfügbaren Speicher zurückgegeben; (4) alle Jobende-
b5 Eingänge werden in der Systemablage für den Job gebracht, und (5) der Stapel des Jobs wird in die Schluß-Warteschlangc eingefügt.
Alle Eingabe-/Ausgabeoperationen der Anlage werden vom MCP ausgeführt. Das MCP ordnet automatisch, sofern das möglich ist. periphere Einheiten symbolischen Dateien zu. um den Umfang der für jeden Job
erforderlichen Beschäftigungszeit des Operators auf ein Minimum zu reduzieren. Immer, wenn eine Eingabedatei von einem Job angefordert wird, durchsucht das MCP seine Tabellen für geeignete periphere Einheiten, die die angeforderte Datei enthalten. Wenn der durch den Job spezifizierte Dateiname in einer bestimmten Einheit gefunden wurde, wird diese Einheit gekennzeichnet und dem Job zugeordnet. Die von einem Job angeforderten Ausgabedateien werden automatisch durch das MCP zugeordnet, wenn für diese Datei eine geeignete Einheit existiert. Im Falle von Plattendaleien wird ein Plattendatei-Wörterverzeichnis-Eintrag vorgenommen und der erforderliche Plattenspeicherplatz für die Datei bereitgestellt.
Damit das MCP periphere Einheiten mit symbolischen Dateien zuordnen kann, müssen die in der Anlage betriebenen Kompilierer folgende Information über Dateien an das MCP abgeben: Den symbolischen Dateinamen (Dateititel), den peripheren Typ (Platte, Magnetband, Karte, Papierlochstreifen etc.) den Zugriffstyp (seriell '»der wahlfrei), die Dateiart (alpha, binär etc.), die Puffergröße, die Zahl der Puffer und die Größe der logischen Datensätze. Der tatsächliche Dateiname stellt den Dateitite! dar, der derjenigen Einheit zugeordnet ist, die die Dateil oder den Titel in dem Plattendatei-Kopfteil enthält. Der tatsächliche Dateiname ist identisch mit dem symbolischen Dateinamen, es sei dann, es liegt eine andere Spezifikation aufgrund Etikettensteuer-Anweisungen vor.
Um für eine Datei eine dynamische Spezifizierung der tatsächlichen Dateinamen zu ermöglich, sind drei Tabellen notwendig: Ein Prozeß-Parameterblock, ein Etikett-Gleichungsblock und ein Datei-Informationsblock. Durch CONTROLLCARD wird für alle Dateien in einem Job ein Prozeß-Parameterblock geschaffen. Dieser Block enthält den symbolischen Dateinamen und die gesamte, für diesen Prozeß spezifizierte Kompiiierzeit- oder Ausführungszeit-Etikett-Gleichungsinformation. Der Etikett-Gleichungsblock und der Datei-lnformationsblock werden durch den Kompilierer erzeugt und durch E/A-Funktionen für jede Datei innerhalb eines Prozesses aufrecht erhalten. Der Etikett-Gleichungsblock enthält die laufende Etikettgleichung und dateizugeordnete Information für eine bestimmte Datei, einschließlich der gesamten programmierbaren Spezifikationen vo; Dateieigenschaften. Der Datei-Informationsblock enthält häufig benutzte, die Datei betreffende Information, wie z. B. den Typ des nachgesuchten Zugriffs, den Typ der zugeordneten Einheit, die angeforderte physikalisch» Einheit und weitere Eigenschaften, die von dem Typ der zugeordneten Einheit abhängen. Die Einführung der Dateieigenschaften in den Datei-Informationsblock und den Etikett-Gleichungsblock gestattet die Veränderung der Datei-Spezifikationen, wie z. B. der Puffergröße und der Blockungsfaktoren, während der Programmausführungszeit, ohne Rekompilierung des Programmes.
Maschinenprogramm-E/A-Operationen innerhalb der Anlage umfassen den automatischen Transfer von logischen Listen zwischen einer Datei und einem Job. Eine logische Liste besteht aus derjenigen Information, der sich der Job mit einer Lese- oder Schreibvereinbarung bedient. Der Umfang einer logischen Liste braucht nicht mit dem physikalischen Datensatz oder Block übereinstimmen, in die durch Hardware-E/A-Operationen ein Zugriff erlangbar ist Wenn ein physikalischer Datensatz mehr als eine logische Liste enthält, wird die Datei als Blockdatei bezeichnet Wenn ein Job zu einer Datei Zugriff erlangt, wird ein physikalischer Datensatz aus einem Speicherbereich herausgeschreiben oder eingelesen, der als Pufferbereich für die Datei zur Verfügung steht. Wenn die Datei als Block ausgebildet wird, liefert das MCP einen Datensatz-Zeiger in den Puffer. Dieser Zeiger wird in dem Prozeß für den Zugriff zu der laufenden logischen Liste verwendet. Sofern die nächste Liste noch nicht in einem Puffer präsent ist, führt das MCP automatisch die geforderte E/A-Operation aus.
Um den Durchlauf für Jobs zu erhöhen, die gleichzeitig Gruppen von physikalischen Datensätzen enthalten, können meherere Puffer eingesetzt wrden. Da das MCP alle Maschinenprogramm-E/A-Vorgänge durchführt, gestattet es ein Job mit mehreren, einer Datei zugeordneten Puffern, daß das MCP die E/A-Operationen unabhängig von dem Status des Jobs durchführt Die Bestimmung der zur effektiven Durchführung eines Jobs erforderlichen Anzahl der Puffer hängt ab vom Typ der verwendeten Dateien, der speziellen, verwendeten Hardware-Konfiguration, den Prozeß-Charakteristiken des Jobs, den Speichererfordernissen des Jobs und den Mischern des Jobs, die typischerweise als Simultanmischer ausgebildet sind. Das MCP versucht, für jeden Job, unabhängig vom Status, alle Eingabepuffer voll und alle Ausgabepuffer leer zu halten und dabei diejenige Zeit auf ein Minimum zu reduzieren, in der ein Prozeß ausgesetzt ist und auf die Beendigung einer E/A-Operation wartet.
Das MCP liefert umfassende Datenvermittlungseinrichtungen, einschließlich time-sharing-, Fernrechen- und Fernabfrage-Einrichtungen. Keine der Datenendstellen ist direkt mit dem Steuersystem verbunden, dagegen wird die erforderliche Verbindung durch eine Verbindungsleitung, Adapter und den Daterjverrnittlungsprozessor 36 vorgenommen.
Diejenigen Vorgänge des Datenvermittlungssystems, die auf Anwendungen ausgerichtet sind, werden durch das Nachrichten-Steuersystemprogramm (MCS) betrieben. Diese Vorgänge schließen die Jobsteuerung und die Unterhaltung der Datei aus der Ferne ein. Das Nachrichten-Steuersystemprogramm koordiniert zusätzlich die Verbindung zwischen den Programmen und liefert Nachrichten-Schalt-Möglichkeiten. Eine einzelne, entfernt angebrachte Station kann mit anderen entfernt liegenden Stationen oder mit mehr als einem Maschinenjob in Verbindung treten.
Eine Verbindung zwischen dem Benutzer der Anlage und dem MCP wird durch eine Kombination von Anzeigeeinheiten, Steuereinheiten (Anzeigeeinheiten mit zugehörigen Schalttafeln), Steuerkarten und einem verstehenden Systemregister bewerkstelligt
Der Zustand der Anlage und der in Bearbeitung stehenden Jobs wird auf den Anzeigeeinheiten angezeigt. Spezielle Fragen, die kurzfristige Anworten bedingen, können über die Schalttafeln eingegeben werden. Diese Fragen und Antworten werden bei ihrem Auftauchen angezeigt. Außerdem können verschiedene Tabellen zu einer Anzeige aufgerufen werden, wenn die geeigneten Auslöseimpulse über die Schalttafel eingegeben werden. Diese Tabellen enthalten die Jobmisch-, periphere Einheiten-, Etikett- und Platten-Wörterverzeichnis-Tabeilen und Job-Tabellen. Der Operator tritt mit dem MCP durch Eingabe-/Ausgabe-Nachrichten direkt in Verbindung,
die eingegeben und an den Steuereinheiten empfangen werden. Diese Eingabenachrichten enthalten alle auf Steuerkarten zugelassene Steuervereinbarungen, Vereinbarungen, um Jobs in den Mischer einzugeben und aus dem Mischer zu eliminieren, und Vereinbarungen, um aufgeschobene Jobs zu reaktivieren. Die Ausgabenachrichten gehören zu verschiedenen Funktionalbereichen des MCP, zs* Benutzerprogrammen und zu Hardwares' Moduln der Anlage.
Ein Benutzer übergibt der Anlage einen Job als eine Reihe von Steuerkarten und als einen Kartenstapei in Ursprungssprache. Alternativ braucht der Benutzer nur eine Reihe von Steuerkarten zu übergeben oder eine Steuervereinbarung an der Eingabeschalttafel auslösen, sofern er diejenigen Programme vorher auf Platte gesichert hau, deren Durchführung er wünscht, und sofern er die Namen dieser Programme in das Platten-
Wörterverzeichnis auf dem Weg einer fehlerfreien Kompilierung eingegeben hat
Für einen Job, der eine Kompilierung erforderlich macht muß die erste Steuerkarte eine Kompiliervereinbarung enthalten, die den einzusetzenden Kompilierer und den Typ der Kompilierung angibt Drei Formen sind dabei möglich: Kompilieren und Ausführen, Kompilieren für die Bibliothek und Kompilieren für die Syntaxkontrolle. Die weiteren Typen der Steuerkarte können für alle Jobs verwendet werden, gleichgülten ob sie eine Kompilierung erfordern oder nicht erfördern. Diese Typen von Steuerkarten enthalten eine Ausführungsvereinbarung, eine Prozeßzeitvereinbarung, eine Prioritätsvereinbaruiig, Kemspeicherumfang-Vereinbarung, eine ΕΆ Zeit-Vereinbarung und E/A-Einheiten-Vereinbarungen, die Dateietiketten bestimmten E/A-Einheiten zuordnen.
Das MCF unterhält das der Platte ein Systemregister, welches eine Aufzeichnung aller Aktivitäten innerhalb
der Anlage darstellt. Neben den Fehlern in der Anlage und der Wartungsstatistik macht dieses Register dem Benutzer noch folger-dc Daten verfügbar: Die Ausführungszeit für jeden Job, die Startzeit der einzelnen Jobs, die verstrichene Laufzeit der einzelnen Jobs und die tatsächliche Prozessorzeit.
Eine wichtige Eigenschaft aller Operationssysteme besteht darin, daß sie kontinuierlich betrieben werden können. Es sei bemerkt, daß das mehrstufige Operationssystem keine Gewähr für den kontinuierlichen Betrieb und die sich daraus ergebenden Probleme anbietet Allerdings stellt es sin .n brauchbaren Rahmen zum Aufbau eines kontinuierlich betriebenen Operationssystems dar, da die distributiven Eigenschaften der Ausführungsform mit den distributiven Erfordernissen eines derartigen Systems übereinstimmen. Das kontinuierlich betreibbare Operationssystem arbeitet nur kooperativ, denn die Verantwortung für die Behandlung der Fehler oder Störungen muß auf alle Teile des Systems, auf Hardware, Software und auf Benutzerprogramme verteilt werden.
Im allgemeinen reduziert die Hard vare die Störungshäufigkeit auf ein Minimum, und die Software minimiert die Auswirkung einer vorkommenden Störung. Um die Möglichkeit für einen kontinuierlichen Betrieb zu schaffen, muß die Hardwareanordnung, wie schon erläutert, mindestens zwei Hauptprozessormoduln 20 mindestens zwei, normalerweise aber drei oder mehr Speichersteuermoduln 92 und mindestens zwei Eingabe·/Ausgabemoduln 10 enthalten. Außerdem muß eine Systemplatte in einem von den beiden 1OMs 10 gemeinsam benutzten Exchange vorhanden sein, oder es müssen zwei Kopie?! der Sysicftplatte, je eine für jeden IOM 10, oder alle beide von den 1OMs 10 gemeinsam benutzt, vorhanden sein. Es müssen außerdem mindestens zwei, normalerweise aber mehr E/A-Anzeigeeinheiten, mindestens eine für jeden (OMlO vorgesehen sein.
Die integrierende Wirkung des mehrstufigen Operationssystems wird durch Koordinierung der Ausführung der Speicherprogramme, der jobs in den Prozessoren, und durch Steuerung der Eingangs- und Ausgangseinrich tungen und -gerate erreicht wobei die relativ langsamen peripheren Geräte optimal genutzt werden, und sie wird durch die Vornahme von Ausführungshandlungen erreicht um so allen ProzeBbedingungen virtuell gerecht zu werden und die nachteiligen Auswirkungen der Systemrückstufung auf ein Minimum zu reduzieren. Die Gesamtrate und Effizienz, mit mit der Jobs unter Steuerung des mehrstufigen Operationssystems verarbeitet werden können, wird durch Erhöhung der Ausführungsgeschwindigkeit individueller Benutzerprogramme, durch eine Geschwindigkeitserhöhung bei der Datenbehandlung und durch verbesserte Bedienbarkeit der Maschine erreicht. Die verbesserte Bedienbarkeit wird durch einfache, der englischen Sprache ähnliche Mitteilungen und Fehlernachrichten an den Operator bewirkt.
Hierzu 35 Biai! Zeichnungen
50
55
60
65

Claims (2)

Patentansprüche:
1. Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise mit mehreren peripheren Einrichtungen, mehreren untereinander über einen Speicherbus zu einem Hauptspeicher mit mehreren
Zugriffen verbundenen Speichermoduien, von denen jedes eine mit dem Speicherbus verbundene Speicher-Steuereinheit und mindestens eine Speichereinheit enthält, mehreren Hauptprozessormodulen, die einen Programmsteuerbereich und einen mit dem Speicherbuis verbundenen Speicherbereich enthalten, mehreren Eingabe- und Ausgabemodulen, die eine mit dem Speicherbus verbundene Speicher-Schnittstelleneinheit und eine mit dem Programmsteuerbereich jedes der Hauptprozessormodule verbundene und Steuerinfor-
mationen empfangende Obersetzereinheit enthalten, wobei den einzelnen Modulen Fehlererfassungs- und Fehlermeldeeinrichtungen zugeordnet sind, gekennzeichnet durch die Kombination folgender Merkmale:
einen mit den Speicher-Steuereinhenen (MCM) der Speichermodule (30a;, den Speicherbereichen der Hauptprozessormodule (20) und den Speicher-Schnittstelleneinheiten der Eingabe- und Ausgabemodule (10)
verbundenen Diagnose- und Wartungsbus (32),
eine mit dem Diagnose- und Wartungsbus (32) verbundene Diagnoseeinheit (26) zum systemunabhängigen Testen der Hauptprozessormodule (20). dar Eingabe- und Ausgabemodule (10) und der Speicher-Steuereinheiten (MCM) der Speicherr.iodule (30a/
eine in den Eingabe- und Ausgabemodulen (10) enthaltene Fehlerwahrnehmungslogik, die die zwischen den Modulen untereinander sowie mit den peripheren Einrichtungen auszutauschenden Daten und zusätzliche Kontrollworte (Paritäts-, Prüfbits) überwacht und Schaltungen zur Erzeugung der Kontrollworte, Paritäts-Kontrollschaltungen, Schaltungen für eine Modulo-N-Kontrolle mit Mehrbit-Kontrollworten bei arithmetischen Operationen und bei Speicheradressen sowie Schaltungen zur Wahrnehmung unzulässiger Befehle, Bedingungen und Steuerzustände umfaßt und ein fehlerhaftes Modul mittels eines über einen Unterbrecher-
kanal abgegebenen Unterbrechersignals isoliert, wobei bei Feststellung eines fehlerhaften Moduls Modultesteinrichtungen der Diagnoseeinheit (26) das fehlerhafte Modul eine Taktperiode lang betreiben und anschließend seinen Zustand mit einem vorgespeicherten Normzustand vergleichen und zur Überprüfung fehlerhafter Baugruppen (Karten) Baugruppentesteinrichtungen der Diagnoseeinheit (26) Eingangssignalfolgen an die betreffenden Baugruppen anlegen, deren Aussangssignale abtasten und mit vorgegebenen
Signalen vergleichen und wobei bei bestehendem Fehler die einzelnen fehlerfreien Module neu geordnet und verbunden werden.
2. Mehrfachprogrammierung*- Datenverarbeitungsanlage nach Anspruch 1, gekennzeichnet durch eine Einrichtung zur Korrektur aller 1-Bit-Fehler in einer mit der Speicher-Steuereinheit verbundenen Speichereinheit der Speichermoduie empfangenen Information vor der Weiterleitung der Information zum Speicherbus.
DE2437200A 1973-08-15 1974-08-02 Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise Expired DE2437200C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US388551A US3905023A (en) 1973-08-15 1973-08-15 Large scale multi-level information processing system employing improved failsaft techniques

Publications (2)

Publication Number Publication Date
DE2437200A1 DE2437200A1 (de) 1975-02-27
DE2437200C2 true DE2437200C2 (de) 1985-06-05

Family

ID=23534583

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2437200A Expired DE2437200C2 (de) 1973-08-15 1974-08-02 Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise

Country Status (11)

Country Link
US (1) US3905023A (de)
JP (1) JPS5914776B2 (de)
BE (1) BE818364A (de)
BR (1) BR7405822D0 (de)
CA (1) CA1029131A (de)
CH (1) CH574646A5 (de)
DE (1) DE2437200C2 (de)
FR (1) FR2295486A1 (de)
GB (1) GB1454198A (de)
IT (1) IT1017774B (de)
NL (1) NL7410212A (de)

Families Citing this family (163)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE31318E (en) * 1973-09-10 1983-07-19 Computer Automation, Inc. Automatic modular memory address allocation system
DE2438536C2 (de) * 1974-08-10 1985-12-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V., 8000 München Multiprozessoranordnung mit räumlich verteilten Mikroprozessorstationen
IT1020701B (it) * 1974-09-02 1977-12-30 Olivetti & Co Spa Contabile elettronica biprogramma bile
US4048623A (en) * 1974-09-25 1977-09-13 Data General Corporation Data processing system
US4104718A (en) * 1974-12-16 1978-08-01 Compagnie Honeywell Bull (Societe Anonyme) System for protecting shared files in a multiprogrammed computer
US4010450A (en) * 1975-03-26 1977-03-01 Honeywell Information Systems, Inc. Fail soft memory
DE2546202A1 (de) * 1975-10-15 1977-04-28 Siemens Ag Rechnersystem aus mehreren miteinander verbundenen und zusammenwirkenden einzelrechnern und verfahren zum betrieb des rechnersystems
JPS5296836A (en) * 1976-02-10 1977-08-15 Toshiba Corp Multiplex data processing system
GB1572894A (en) * 1976-03-04 1980-08-06 Post Office Data processing equipment
US4096567A (en) * 1976-08-13 1978-06-20 Millard William H Information storage facility with multiple level processors
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4096571A (en) * 1976-09-08 1978-06-20 Codex Corporation System for resolving memory access conflicts among processors and minimizing processor waiting times for access to memory by comparing waiting times and breaking ties by an arbitrary priority ranking
US4148098A (en) * 1976-10-18 1979-04-03 Xerox Corporation Data transfer system with disk command verification apparatus
US4093985A (en) * 1976-11-05 1978-06-06 North Electric Company Memory sparing arrangement
US4177514A (en) * 1976-11-12 1979-12-04 General Electric Company Graph architecture information processing system
US4103326A (en) * 1977-02-28 1978-07-25 Xerox Corporation Time-slicing method and apparatus for disk drive
US4174537A (en) * 1977-04-04 1979-11-13 Burroughs Corporation Time-shared, multi-phase memory accessing system having automatically updatable error logging means
JPS53124943A (en) * 1977-04-08 1978-10-31 Agency Of Ind Science & Technol Composite information processor
US4199811A (en) * 1977-09-02 1980-04-22 Sperry Corporation Microprogrammable computer utilizing concurrently operating processors
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4266271A (en) * 1978-10-10 1981-05-05 Chamoff Martin E Reconfigurable cluster of data-entry terminals
EP0012016A1 (de) * 1978-11-30 1980-06-11 Sperry Corporation Speicherzugriffssteuerung
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US4253144A (en) * 1978-12-21 1981-02-24 Burroughs Corporation Multi-processor communication network
GB2059652B (en) * 1979-09-29 1983-08-24 Plessey Co Ltd Memory protection system using capability registers
US4354225A (en) * 1979-10-11 1982-10-12 Nanodata Computer Corporation Intelligent main store for data processing systems
WO1981001066A1 (en) * 1979-10-11 1981-04-16 Nanodata Computer Corp Data processing system
US4516199A (en) * 1979-10-11 1985-05-07 Nanodata Computer Corporation Data processing system
US4342083A (en) * 1980-02-05 1982-07-27 The Bendix Corporation Communication system for a multiple-computer system
US4348739A (en) * 1980-02-12 1982-09-07 International Business Machines Corporation Terminal providing communication system information output
US4322846A (en) * 1980-04-15 1982-03-30 Honeywell Information Systems Inc. Self-evaluation system for determining the operational integrity of a data processing system
FR2482331B1 (fr) * 1980-05-06 1986-03-21 Thomson Csf Mat Tel Procede d'arbitration centralisee, et arbitreur centralise pour systeme multiprocesseur
JPS57757A (en) * 1980-06-04 1982-01-05 Hitachi Ltd Job execution schedule system
US4412281A (en) * 1980-07-11 1983-10-25 Raytheon Company Distributed signal processing system
EP0048767B1 (de) 1980-09-27 1985-03-20 Ibm Deutschland Gmbh Prioritätsstufengesteuerte Unterbrechungseinrichtung
US4491907A (en) * 1980-12-15 1985-01-01 Texas Instruments Incorporated Plurality of processors sharing the memory, the arithmetic logic unit and control circuitry all on a single semiconductor chip
US4388684A (en) * 1981-03-27 1983-06-14 Honeywell Information Systems Inc. Apparatus for deferring error detection of multibyte parity encoded data received from a plurality of input/output data sources
DE76846T1 (de) * 1981-04-16 1983-09-01 NCR Corp., 45479 Dayton, Ohio Datenverarbeitungssystem mit faehigkeit zur fehlerkontrolle.
JPS57189396A (en) * 1981-05-14 1982-11-20 Nec Corp Controller for plural storage parts in data processing system
US4555759A (en) * 1981-05-18 1985-11-26 International Business Machines Corp. Selective use of restored file setups
US4675810A (en) * 1981-05-22 1987-06-23 Data General Corp. Digital data processing system having a uniquely organized memory system using object-based addressing and in which operand data is identified by names accessed by name tables
US4514800A (en) * 1981-05-22 1985-04-30 Data General Corporation Digital computer system including apparatus for resolving names representing data items and capable of executing instructions belonging to general instruction sets
US4498131A (en) * 1981-05-22 1985-02-05 Data General Corporation Data processing system having addressing mechanisms for processing object-based information and a protection scheme for determining access rights to such information
DE3276916D1 (en) * 1981-09-18 1987-09-10 Rovsing As Christian Multiprocessor computer system
US4837675A (en) * 1981-10-05 1989-06-06 Digital Equipment Corporation Secondary storage facility empolying serial communications between drive and controller
US4825406A (en) * 1981-10-05 1989-04-25 Digital Equipment Corporation Secondary storage facility employing serial communications between drive and controller
US4811279A (en) * 1981-10-05 1989-03-07 Digital Equipment Corporation Secondary storage facility employing serial communications between drive and controller
US4495567A (en) * 1981-10-15 1985-01-22 Codex Corporation Multiprocessor/multimemory control system
US4455601A (en) * 1981-12-31 1984-06-19 International Business Machines Corporation Cross checking among service processors in a multiprocessor system
US4451884A (en) * 1982-02-02 1984-05-29 International Business Machines Corporation Cycle stealing I/O controller with programmable offline mode of operation
US4472790A (en) * 1982-02-05 1984-09-18 International Business Machines Corporation Storage fetch protect override controls
US4519032A (en) * 1982-06-09 1985-05-21 At&T Bell Laboratories Memory management arrangement for microprocessor systems
US4648031A (en) * 1982-06-21 1987-03-03 International Business Machines Corporation Method and apparatus for restarting a computing system
US4491838A (en) * 1982-07-28 1985-01-01 International Business Machines Corporation Starloop communication network and control system therefor
WO1984004190A1 (en) * 1983-04-15 1984-10-25 Convergent Technologies Inc Multi-computer computer architecture
US4573152A (en) * 1983-05-13 1986-02-25 Greene Richard E Switch matrix test and control system
US4549274A (en) * 1983-07-11 1985-10-22 Honeywell Inc. Distributed electric power demand control
US4625312A (en) * 1983-10-06 1986-11-25 Honeywell Information Systems Inc. Test and maintenance method and apparatus for investigation of intermittent faults in a data processing system
US4710868A (en) * 1984-06-29 1987-12-01 International Business Machines Corporation Interconnect scheme for shared memory local networks
US4686620A (en) * 1984-07-26 1987-08-11 American Telephone And Telegraph Company, At&T Bell Laboratories Database backup method
US4627054A (en) * 1984-08-27 1986-12-02 International Business Machines Corporation Multiprocessor array error detection and recovery apparatus
US4870566A (en) * 1984-08-27 1989-09-26 International Business Machines Corp. Scannerless message concentrator and communications multiplexer
US4729093A (en) * 1984-09-26 1988-03-01 Motorola, Inc. Microcomputer which prioritizes instruction prefetch requests and data operand requests
BG39765A1 (en) * 1985-02-14 1986-08-15 Turlakov Device for connecting 8- degree and 16- degree modules to 16- degree microprocessor system
JPS61239360A (ja) * 1985-04-16 1986-10-24 Minolta Camera Co Ltd 文書処理装置
US4725987A (en) * 1985-10-23 1988-02-16 Eastman Kodak Company Architecture for a fast frame store using dynamic RAMS
JPH0697854B2 (ja) * 1986-01-11 1994-11-30 株式会社日立製作所 電力変換装置の制御装置
GB2200483B (en) * 1987-01-22 1991-10-16 Nat Semiconductor Corp Memory referencing in a high performance microprocessor
US5008820A (en) * 1987-03-30 1991-04-16 International Business Machines Corporation Method of rapidly opening disk files identified by path names
US5148544A (en) * 1987-07-01 1992-09-15 Digital Equipment Corporation Apparatus and method for control of asynchronous program interrupt events in a data processing system
US4885739A (en) * 1987-11-13 1989-12-05 Dsc Communications Corporation Interprocessor switching network
US5146574A (en) * 1989-06-27 1992-09-08 Sf2 Corporation Method and circuit for programmable selecting a variable sequence of element using write-back
US5008805A (en) * 1989-08-03 1991-04-16 International Business Machines Corporation Real time, fail safe process control system and method
EP0419721B1 (de) * 1989-09-29 1995-03-22 Siemens Aktiengesellschaft Kommunikationssystem für miteinander verbundene speicherprogrammierbare Steuerungen
US5315708A (en) * 1990-02-28 1994-05-24 Micro Technology, Inc. Method and apparatus for transferring data through a staging memory
US5212785A (en) * 1990-04-06 1993-05-18 Micro Technology, Inc. Apparatus and method for controlling data flow between a computer and memory devices
US5140592A (en) * 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
US5233618A (en) * 1990-03-02 1993-08-03 Micro Technology, Inc. Data correcting applicable to redundant arrays of independent disks
US5134619A (en) * 1990-04-06 1992-07-28 Sf2 Corporation Failure-tolerant mass storage system
US5388243A (en) * 1990-03-09 1995-02-07 Mti Technology Corporation Multi-sort mass storage device announcing its active paths without deactivating its ports in a network architecture
US5325497A (en) * 1990-03-29 1994-06-28 Micro Technology, Inc. Method and apparatus for assigning signatures to identify members of a set of mass of storage devices
US5202856A (en) * 1990-04-05 1993-04-13 Micro Technology, Inc. Method and apparatus for simultaneous, interleaved access of multiple memories by multiple ports
US5414818A (en) * 1990-04-06 1995-05-09 Mti Technology Corporation Method and apparatus for controlling reselection of a bus by overriding a prioritization protocol
US5214778A (en) * 1990-04-06 1993-05-25 Micro Technology, Inc. Resource management in a multiple resource system
US5956524A (en) * 1990-04-06 1999-09-21 Micro Technology Inc. System and method for dynamic alignment of associated portions of a code word from a plurality of asynchronous sources
US5233692A (en) * 1990-04-06 1993-08-03 Micro Technology, Inc. Enhanced interface permitting multiple-byte parallel transfers of control information and data on a small computer system interface (SCSI) communication bus and a mass storage system incorporating the enhanced interface
US5426427A (en) * 1991-04-04 1995-06-20 Compuserve Incorporated Data transmission routing system
EP0513519A1 (de) * 1991-05-15 1992-11-19 International Business Machines Corporation Speichersystem für Multiprozessorsysteme
US5285456A (en) * 1991-05-15 1994-02-08 International Business Machines Corporation System and method for improving the integrity of control information
CA2067576C (en) * 1991-07-10 1998-04-14 Jimmie D. Edrington Dynamic load balancing for a multiprocessor pipeline
JPH0516558U (ja) * 1991-08-19 1993-03-02 関東自動車工業株式会社 自動車の発進方向表示装置
US5594915A (en) * 1991-11-13 1997-01-14 Atalla; Martin M. Microcell computer system and method using cell access switch and functionally partitioned moving memory architecture
US5564107A (en) * 1991-11-13 1996-10-08 Atalla; Martin M. Microcell computer system and method using cell access switch and moving memory architecture
US5506955A (en) * 1992-10-23 1996-04-09 International Business Machines Corporation System and method for monitoring and optimizing performance in a data processing system
SE500940C2 (sv) * 1993-02-10 1994-10-03 Ellemtel Utvecklings Ab Sätt och system för att i ett distribuerat operativsystem demontera en kedja av sammanlänkade processer
US5867640A (en) * 1993-06-01 1999-02-02 Mti Technology Corp. Apparatus and method for improving write-throughput in a redundant array of mass storage devices
SG44642A1 (en) * 1994-01-10 1997-12-19 Dow Chemical Co A massively multiplexed superscalar harvard architecture computer
US20030088611A1 (en) * 1994-01-19 2003-05-08 Mti Technology Corporation Systems and methods for dynamic alignment of associated portions of a code word from a plurality of asynchronous sources
US5553232A (en) * 1994-06-13 1996-09-03 Bull Hn Informations Systems Inc. Automated safestore stack generation and move in a fault tolerant central processor
US5557737A (en) * 1994-06-13 1996-09-17 Bull Hn Information Systems Inc. Automated safestore stack generation and recovery in a fault tolerant central processor
US5555424A (en) * 1994-10-06 1996-09-10 The Dow Chemical Company Extended Harvard architecture computer memory system with programmable variable address increment
US5875294A (en) 1995-06-30 1999-02-23 International Business Machines Corporation Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5797019A (en) * 1995-10-02 1998-08-18 International Business Machines Corporation Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5678003A (en) * 1995-10-20 1997-10-14 International Business Machines Corporation Method and system for providing a restartable stop in a multiprocessor system
US6067415A (en) * 1995-12-26 2000-05-23 Kabushiki Kaisha Toshiba System for assisting a programmer find errors in concurrent programs
DE69713400T2 (de) * 1996-01-24 2002-10-31 Sun Microsystems, Inc. Prozessor mit Bereichsüberprüfung bei Matrixzugriffen
US6163761A (en) * 1996-02-15 2000-12-19 Henkel Corporation System for monitoring and controlling production and method therefor
US6202174B1 (en) 1996-09-16 2001-03-13 Advanced Micro Devices Inc Method for identifying and correcting errors in a central processing unit
US5784394A (en) * 1996-11-15 1998-07-21 International Business Machines Corporation Method and system for implementing parity error recovery schemes in a data processing system
US6560682B1 (en) * 1997-10-03 2003-05-06 Intel Corporation System and method for terminating lock-step sequences in a multiprocessor system
US6430708B1 (en) * 1998-04-17 2002-08-06 Visa International Service Association Method and apparatus for testing job control language (JCL) members
US6282671B1 (en) * 1998-11-10 2001-08-28 International Business Machines Corporation Method and system for improved efficiency of parity calculation in RAID system
US7908216B1 (en) * 1999-07-22 2011-03-15 Visa International Service Association Internet payment, authentication and loading system using virtual smart card
GB0102515D0 (en) * 2001-01-31 2001-03-21 Hewlett Packard Co Network adapter management
US20020140710A1 (en) * 2001-04-02 2002-10-03 Fliflet Brandon L. Method and apparatus for dynamically balancing graphics workloads on a demand-based zone renderer
US6895498B2 (en) * 2001-05-04 2005-05-17 Ip-First, Llc Apparatus and method for target address replacement in speculative branch target address cache
US7421693B1 (en) 2002-04-04 2008-09-02 Applied Micro Circuits Corporation Logic for synchronizing multiple tasks at multiple locations in an instruction stream
US7437535B1 (en) 2002-04-04 2008-10-14 Applied Micro Circuits Corporation Method and apparatus for issuing a command to store an instruction and load resultant data in a microcontroller
US6978330B1 (en) * 2002-04-04 2005-12-20 Applied Micro Circuits Corporation Shared resource access via declarations that contain a sequence number of a packet
US6938132B1 (en) * 2002-04-04 2005-08-30 Applied Micro Circuits Corporation Memory co-processor for a multi-tasking system
US20050060608A1 (en) * 2002-05-23 2005-03-17 Benoit Marchand Maximizing processor utilization and minimizing network bandwidth requirements in throughput compute clusters
US20050216910A1 (en) * 2002-05-23 2005-09-29 Benoit Marchand Increasing fault-tolerance and minimizing network bandwidth requirements in software installation modules
US7305585B2 (en) * 2002-05-23 2007-12-04 Exludus Technologies Inc. Asynchronous and autonomous data replication
US20080222234A1 (en) * 2002-05-23 2008-09-11 Benoit Marchand Deployment and Scaling of Virtual Environments
US7254812B1 (en) * 2002-05-31 2007-08-07 Advanced Micro Devices, Inc. Multi-processor task scheduling
WO2004021187A2 (en) * 2002-08-28 2004-03-11 Livedevices Limited Improvements relating to stack usage in computer­related operating systems
GB2392515B (en) * 2002-08-28 2005-08-17 Livedevices Ltd Improvements relating to stack usage in computer-related operating systems
US7447794B1 (en) * 2002-12-04 2008-11-04 Silicon Graphics, Inc. System and method for conveying information
US8185812B2 (en) * 2003-03-20 2012-05-22 Arm Limited Single event upset error detection within an integrated circuit
US7278080B2 (en) * 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
JP4317212B2 (ja) * 2003-03-20 2009-08-19 アーム・リミテッド 集積回路の処理段における系統的及び確率的誤り検出及び復旧
US7260001B2 (en) * 2003-03-20 2007-08-21 Arm Limited Memory system having fast and slow data reading mechanisms
US8650470B2 (en) 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
US7650331B1 (en) * 2004-06-18 2010-01-19 Google Inc. System and method for efficient large-scale data processing
US7590620B1 (en) 2004-06-18 2009-09-15 Google Inc. System and method for analyzing data records
US7756919B1 (en) 2004-06-18 2010-07-13 Google Inc. Large-scale data processing in a distributed and parallel processing enviornment
DE102004048945B4 (de) * 2004-10-07 2007-10-11 Nec Electronics (Europe) Gmbh Systemüberwachungseinheit
US20060294049A1 (en) * 2005-06-27 2006-12-28 Microsoft Corporation Back-off mechanism for search
US20070067455A1 (en) * 2005-08-08 2007-03-22 Microsoft Corporation Dynamically adjusting resources
US20070067510A1 (en) * 2005-09-22 2007-03-22 Gladfelter David K I/O configuration, and logging of resources associated with I/O open requests
US7581142B2 (en) * 2006-01-03 2009-08-25 Nec Laboratories America, Inc. Method and system usable in sensor networks for handling memory faults
US8046766B2 (en) * 2007-04-26 2011-10-25 Hewlett-Packard Development Company, L.P. Process assignment to physical processors using minimum and maximum processor shares
US8171386B2 (en) * 2008-03-27 2012-05-01 Arm Limited Single event upset error detection within sequential storage circuitry of an integrated circuit
US8161367B2 (en) * 2008-10-07 2012-04-17 Arm Limited Correction of single event upset error within sequential storage circuitry of an integrated circuit
US8510538B1 (en) 2009-04-13 2013-08-13 Google Inc. System and method for limiting the impact of stragglers in large-scale parallel data processing
US8311982B2 (en) * 2010-02-11 2012-11-13 Hewlett-Packard Development Company, L. P. Storing update data using a processing pipeline
WO2012005728A1 (en) * 2010-07-08 2012-01-12 Hewlett-Packard Development Company, L.P. Resource assignment for jobs in a system having a processing pipeline
US8493120B2 (en) 2011-03-10 2013-07-23 Arm Limited Storage circuitry and method with increased resilience to single event upsets
US8862938B2 (en) 2011-04-18 2014-10-14 General Electric Company System, method, and apparatus for resolving errors in a system
JP2012242877A (ja) * 2011-05-16 2012-12-10 Sony Corp メモリ管理装置、メモリ管理方法、および、制御プログラム
US9141438B2 (en) 2011-06-30 2015-09-22 Net Navigation Systems, Llc Logic for synchronizing multiple tasks
DE102015211458A1 (de) * 2015-06-22 2016-12-22 Robert Bosch Gmbh Verfahren und Vorrichtung zum Absichern einer Programmzählerstruktur eines Prozessorsystems und zum Überwachen der Behandlung einer Unterbrechungsanfrage
CN106776439A (zh) * 2015-11-20 2017-05-31 英业达科技有限公司 数据传输系统及其方法
US10318175B2 (en) * 2017-03-07 2019-06-11 Samsung Electronics Co., Ltd. SSD with heterogeneous NVM types
US10802932B2 (en) * 2017-12-04 2020-10-13 Nxp Usa, Inc. Data processing system having lockstep operation
CN110111254B (zh) * 2019-04-24 2023-03-24 天津大学 一种基于多级递归引导和渐进监督的深度图超分辨率方法
CN113821367B (zh) * 2021-09-23 2024-02-02 中国建设银行股份有限公司 确定故障设备影响范围的方法及相关装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US27703A (en) * 1860-04-03 Improvement in cultivators
NL283162A (de) * 1961-09-13
US3319226A (en) * 1962-11-30 1967-05-09 Burroughs Corp Data processor module for a modular data processing system for operation with a time-shared memory in the simultaneous execution of multi-tasks and multi-programs
US3411139A (en) * 1965-11-26 1968-11-12 Burroughs Corp Modular multi-computing data processing system
US3416139A (en) * 1966-02-14 1968-12-10 Burroughs Corp Interface control module for modular computer system and plural peripheral devices
US3566357A (en) * 1966-07-05 1971-02-23 Rca Corp Multi-processor multi-programed computer system
US3548382A (en) * 1968-06-10 1970-12-15 Burroughs Corp High speed modular data processing system having magnetic core main memory modules of various storage capacities and operational speeds
US3623011A (en) * 1969-06-25 1971-11-23 Bell Telephone Labor Inc Time-shared access to computer registers
GB1394431A (en) * 1971-06-24 1975-05-14 Plessey Co Ltd Multiprocessor data processing system
US3760365A (en) * 1971-12-30 1973-09-18 Ibm Multiprocessing computing system with task assignment at the instruction level
US3768074A (en) * 1972-05-12 1973-10-23 Burroughs Corp Multiprocessing system having means for permissive coupling of different subsystems
US3792448A (en) * 1973-05-21 1974-02-12 Burroughs Corp Failsoft peripheral exchange

Also Published As

Publication number Publication date
JPS5914776B2 (ja) 1984-04-06
NL7410212A (nl) 1975-02-18
US3905023A (en) 1975-09-09
FR2295486B1 (de) 1978-07-21
DE2437200A1 (de) 1975-02-27
CA1029131A (en) 1978-04-04
GB1454198A (en) 1976-10-27
CH574646A5 (de) 1976-04-15
IT1017774B (it) 1977-08-10
BE818364A (fr) 1974-12-02
BR7405822D0 (pt) 1975-05-27
JPS5073541A (de) 1975-06-17
FR2295486A1 (fr) 1976-07-16

Similar Documents

Publication Publication Date Title
DE2437200C2 (de) Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise
DE2846495C2 (de) Zentraleinheit
DE2400161C2 (de)
DE2458065C2 (de) Datenverarbeitungsanlage
DE69730276T2 (de) Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes
DE2104733C2 (de) Eingabe/Ausgabe-Einrichtung für eine Datenverarbeitungsanlage
DE60010907T2 (de) Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter
DE19527031C2 (de) Verzweigungsprozessor für ein Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems
EP0048767B1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE2722099C2 (de)
DE69127025T2 (de) Fehlererkennung und -beseitigung in einem Datenverarbeitungssystem
DE68913629T2 (de) Satzverriegelungsprozessor für vielfachverarbeitungsdatensystem.
DE69021712T2 (de) Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme.
DE3884101T2 (de) Abholung von Operanden in Unordnung.
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
DE2719295A1 (de) Programmsteuerung
DE3151745C2 (de)
DE3486267T2 (de) Verfahren zum dynamischen Aufruf eines Dienstprogramms von einem Anwendungsprogramm aus.
DE3131341A1 (de) &#34;pufferspeicherorganisation&#34;
DE68924546T2 (de) Verfahren und Vorrichtung zur Ausführung von Befehlen für ein Vektorverarbeitungssystem.
DE2054835C2 (de) Steuereinrichtung in einem Prozessor einer Mehrprozessor-Datenverarbeitungsanlage
DE2459675A1 (de) Datenverarbeitungssystem
EP0333123A2 (de) Modular strukturiertes ISDN-Kommunikationssystem
DE2740056A1 (de) Mulitprozessor-rechnersystem
DE2350884A1 (de) Datenverarbeitungssystem

Legal Events

Date Code Title Description
OD Request for examination
8128 New person/name/address of the agent

Representative=s name: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING.

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee