DE2437200C2 - Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise - Google Patents
Mehrfachprogrammierungs-Datenverarbeitungsanlage in ModulbauweiseInfo
- 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
- data
- control
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2038—Error 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/073—Error 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0748—Error 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2002—Error 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/2007—Error 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/201—Error 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2015—Redundant 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. 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. 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-
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
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.
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
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
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.
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ö.
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)
(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.
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
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.
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
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
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)
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
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)
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
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
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
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
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.
'i§
welches vom MCM 92 eingesetzt wird, um zeitweise die vom Requestor erhaltenen Sieuerwörter und Daten-
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.
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-
¥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
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
Feld
Biis
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.
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
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
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
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
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
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
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.
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-
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.
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.
50
55
60
65
Claims (2)
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-
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.
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 (165)
| 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 |
| US4253144A (en) * | 1978-12-21 | 1981-02-24 | Burroughs Corporation | Multi-processor communication network |
| US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
| GB2059652B (en) * | 1979-09-29 | 1983-08-24 | Plessey Co Ltd | Memory protection system using capability registers |
| 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 |
| US4354225A (en) * | 1979-10-11 | 1982-10-12 | Nanodata Computer Corporation | Intelligent main store for data processing systems |
| US4356546A (en) * | 1980-02-05 | 1982-10-26 | The Bendix Corporation | Fault-tolerant multi-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 |
| DE3070320D1 (en) | 1980-09-27 | 1985-04-25 | Ibm Deutschland | Priority stage controlled interruption device |
| 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 |
| AU545258B2 (en) * | 1981-04-16 | 1985-07-04 | Ncr Corporation | Data processing system having error checking capability |
| 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 |
| 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 |
| 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 |
| EP0088789B1 (de) * | 1981-09-18 | 1987-08-05 | CHRISTIAN ROVSING A/S af 1984 | Multiprozessor-rechnersystem |
| US4811279A (en) * | 1981-10-05 | 1989-03-07 | Digital Equipment Corporation | Secondary storage facility employing serial communications between drive and controller |
| 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 |
| 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 |
| EP0139727A1 (de) * | 1983-04-15 | 1985-05-08 | Convergent Technologies Inc. | Mehrrechnerarchitektur |
| 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 |
| DE58909135D1 (de) * | 1989-09-29 | 1995-04-27 | Siemens Ag | 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 |
| US5233618A (en) * | 1990-03-02 | 1993-08-03 | Micro Technology, Inc. | Data correcting applicable to redundant arrays of independent disks |
| US5140592A (en) * | 1990-03-02 | 1992-08-18 | Sf2 Corporation | Disk array system |
| US5134619A (en) * | 1990-04-06 | 1992-07-28 | Sf2 Corporation | Failure-tolerant mass storage system |
| US5212785A (en) * | 1990-04-06 | 1993-05-18 | Micro Technology, Inc. | Apparatus and method for controlling data flow between a computer and memory devices |
| 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 |
| 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 |
| 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 |
| US5426427A (en) * | 1991-04-04 | 1995-06-20 | Compuserve Incorporated | Data transmission routing system |
| US5285456A (en) * | 1991-05-15 | 1994-02-08 | International Business Machines Corporation | System and method for improving the integrity of control information |
| EP0513519A1 (de) * | 1991-05-15 | 1992-11-19 | International Business Machines Corporation | Speichersystem für Multiprozessorsysteme |
| 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 | 関東自動車工業株式会社 | 自動車の発進方向表示装置 |
| US5564107A (en) * | 1991-11-13 | 1996-10-08 | Atalla; Martin M. | Microcell computer system and method using cell access switch and moving memory architecture |
| 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 |
| 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 |
| CA2180855A1 (en) * | 1994-01-10 | 1995-07-13 | Stephen G. Churchill | A massively miltiplexed 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| US7421693B1 (en) | 2002-04-04 | 2008-09-02 | Applied Micro Circuits Corporation | Logic for synchronizing multiple tasks at multiple locations in an instruction stream |
| 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 computerrelated 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 |
| US8650470B2 (en) | 2003-03-20 | 2014-02-11 | Arm Limited | Error recovery within integrated circuit |
| US7260001B2 (en) * | 2003-03-20 | 2007-08-21 | Arm Limited | Memory system having fast and slow data reading mechanisms |
| DE602004001869T2 (de) * | 2003-03-20 | 2007-05-03 | Arm Ltd., Cherry Hinton | Fehlererkennung und fehlerbehebung für systematische und zufällige fehler innerhalb einer verarbeitungsstufe einer integrierten schaltung |
| US7590620B1 (en) | 2004-06-18 | 2009-09-15 | Google Inc. | System and method for analyzing data records |
| US7650331B1 (en) * | 2004-06-18 | 2010-01-19 | Google Inc. | System and method for efficient large-scale data processing |
| 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 |
| WO2020006144A1 (en) * | 2018-06-26 | 2020-01-02 | Fanuc America Corporation | Visualization and modification of operational bounding zones using augmented reality |
| CN110111254B (zh) * | 2019-04-24 | 2023-03-24 | 天津大学 | 一种基于多级递归引导和渐进监督的深度图超分辨率方法 |
| CN113821367B (zh) * | 2021-09-23 | 2024-02-02 | 中国建设银行股份有限公司 | 确定故障设备影响范围的方法及相关装置 |
| CN118962060B (zh) * | 2024-08-23 | 2025-04-25 | 南京普来森仪器有限公司 | 一种基于化验室的工业溶液各组分浓度测定系统 |
Family Cites Families (12)
| 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 |
| US3812469A (en) * | 1972-05-12 | 1974-05-21 | Burroughs Corp | Multiprocessing system having means for partitioning into independent processing subsystems |
| US3792448A (en) * | 1973-05-21 | 1974-02-12 | Burroughs Corp | Failsoft peripheral exchange |
-
1973
- 1973-08-15 US US388551A patent/US3905023A/en not_active Expired - Lifetime
-
1974
- 1974-07-15 GB GB3116274A patent/GB1454198A/en not_active Expired
- 1974-07-15 BR BR5822/74A patent/BR7405822D0/pt unknown
- 1974-07-24 CA CA205,550A patent/CA1029131A/en not_active Expired
- 1974-07-29 NL NL7410212A patent/NL7410212A/xx not_active Application Discontinuation
- 1974-07-31 IT IT25802/74A patent/IT1017774B/it active
- 1974-07-31 JP JP49089391A patent/JPS5914776B2/ja not_active Expired
- 1974-08-01 BE BE147177A patent/BE818364A/xx not_active IP Right Cessation
- 1974-08-02 DE DE2437200A patent/DE2437200C2/de not_active Expired
- 1974-08-02 CH CH1066974A patent/CH574646A5/xx not_active IP Right Cessation
- 1974-08-14 FR FR7428314A patent/FR2295486A1/fr active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| FR2295486B1 (de) | 1978-07-21 |
| CA1029131A (en) | 1978-04-04 |
| JPS5073541A (de) | 1975-06-17 |
| JPS5914776B2 (ja) | 1984-04-06 |
| DE2437200A1 (de) | 1975-02-27 |
| FR2295486A1 (fr) | 1976-07-16 |
| BR7405822D0 (pt) | 1975-05-27 |
| US3905023A (en) | 1975-09-09 |
| BE818364A (fr) | 1974-12-02 |
| NL7410212A (nl) | 1975-02-18 |
| IT1017774B (it) | 1977-08-10 |
| CH574646A5 (de) | 1976-04-15 |
| GB1454198A (en) | 1976-10-27 |
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 | |
| DE3851488T2 (de) | Registerverwaltungssystem mit Ausführung von Befehlen in Unordnung in einem Computerprozessor. | |
| DE60010907T2 (de) | Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter | |
| EP0333123B1 (de) | Modular strukturiertes ISDN-Kommunikationssystem | |
| DE69127025T2 (de) | Fehlererkennung und -beseitigung in einem Datenverarbeitungssystem | |
| DE2722099C2 (de) | ||
| DE68913629T2 (de) | Satzverriegelungsprozessor für vielfachverarbeitungsdatensystem. | |
| DE3884101T2 (de) | Abholung von Operanden in Unordnung. | |
| DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
| DE68924546T2 (de) | Verfahren und Vorrichtung zur Ausführung von Befehlen für ein Vektorverarbeitungssystem. | |
| DE3486267T2 (de) | Verfahren zum dynamischen Aufruf eines Dienstprogramms von einem Anwendungsprogramm aus. | |
| DE3131341A1 (de) | "pufferspeicherorganisation" | |
| DE2459675A1 (de) | Datenverarbeitungssystem | |
| DE2612083A1 (de) | Verfahren und vorrichtung zur ein/ausgang-datenverarbeitung | |
| DE2839726A1 (de) | Datenverarbeitungsanlage mit verteilter steuerarchitektur in einem multiprozessor-system | |
| DE2740056A1 (de) | Mulitprozessor-rechnersystem | |
| DE2350884A1 (de) | Datenverarbeitungssystem | |
| DE2612139A1 (de) | Ein/ausgang-steuerungssystem | |
| DE2629459A1 (de) | Datenverarbeitungssystem | |
| DE3151745A1 (de) | Multitasking-datenverarbeitungsanlage |
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 |