DE2437200A1 - Informationsverarbeitungsanlage - Google Patents
InformationsverarbeitungsanlageInfo
- Publication number
- DE2437200A1 DE2437200A1 DE2437200A DE2437200A DE2437200A1 DE 2437200 A1 DE2437200 A1 DE 2437200A1 DE 2437200 A DE2437200 A DE 2437200A DE 2437200 A DE2437200 A DE 2437200A DE 2437200 A1 DE2437200 A1 DE 2437200A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- data
- control
- register
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/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; CALCULATING OR 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; CALCULATING OR 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
Pcrtenianwälie
Dr.-Iivj. Wilhelm Reiche!
Rl
Rl
-Ing Wclioa
pg
6 Frankiuri a. M. 1
Paiksiraße 13 _ 4 ^ λμι
7. August 1974
78if3 P 24 37 200.7 ™=
EURSOUGHS CORPORATION, Detroit, Michigan, V.St.A.
Informationsverarbeitungsanlage
Die Erfindung betrifft eine InformatiOnsverarbeitungsanlage,
sie besieht sich insbesondere auf eine Simultanverarbeitungsanlage und auf ein Organisations- und Steueruntersystem für diese
Simultanverarbeitungsanlage.
In bekannten Informationsverarbeitungsanlagen mit mehreren Prozessoren
kann nur ein Prozessor als Steuer- oder Hauptprozessor betrachtet werden» Eine Funktion dieses Hauptprozessors besteht in der
Steuerung der Bedienung der Unterbrecher durch die Bausteine der Informationsverarbeitungsanlage. Während des Betriebes führt
jeder Prozessor einer Mehrprozessoranlage ein anderes Programm durch, so kann z.B. ein Prozessor ein Programm hoher Prioritätsebene
und ein anderer Prozessor ein Programm niederer Ebene durchführen. Wird eine Unterbrechung, z. B. von einer Eingabeeinheit
gefordert, so setzt - unter der Voraussetzung, daß der erste Prozessor als Steuer- oder Hauptprozessor arbeitet,
und daß die Forderung nach Unterbrechung eine niedrigere Priorität
als die Priorität des vom ersten Prozessor ausgeführten Programms hoher Prioritätsebene besitzt - der erste Prozessor die Ausführung
seines Programmes bis zum vollständigen Abschluß fort, bevor das Unterbrechungsprogramm durchgeführt wird. Selbstverständlich
ist es möglich, daß das Unterbrechungsprogramm von wesentlich höherer Prioritätsebene als das vom zweiten Prozessor
509809/1044 bad original
243720Q
ausgeführte Programm niederer Ebene ist. Die Priorität war
dann in derartigen Inforinationsverarbeitungsanlagen bekannter
Art streng von der Beziehung zwischen dem Unterbrecher-Aufruf und dem in dem Steuerprozessor durchgeführten Programm bestimmt.
Ohne eine zentrale Steuerung der Unterbrecher und der Auablendvorgänge
(masking) muß jeder Prozessor über die Annahme oder Ablehnung einer Aufgabenübertragung selbst entscheiden. In
Anlagen bekannter Art ist eine zentrale Unterbrecher-Adressenliste vorgesehen; um aber einen Prozessor anzuweisen, einen
Unterbrecher zu steuern oder zu unterdrücken, muß der Prozessor angesteuert werden; während der Prozessor angesteuert ist,
muß er entscheiden, ob die Priorität des Unterbrechers so groß ist, daß sie eine Unterbrechung rechtfertigt. Aus diesem Grund
sind in den Anlagen bekannter Art Einrichtungen vorgesehen, mit Hilfe derer jeder Prozessor einer Mehrprozessoranlage zu
einem Steuerprozessor gemacht wurde, wobei eine wirkungsvollere Verarbeitung von Kommunikationsanforderungen höherer
Priorität als das jeweils ausgeführte Programm ermöglicht wird. Diese Einrichtungen sind im allgemeinen in einer zentralen
Steueranlage enthalten, die eine Unterbrechung eines Prozessors ausblendet oder verhindert, der ein Programm einer höheren
Prioritätsebene als das vom Unterbrecher-Modul geforderte Programm ausführt, und die die Unterbrechung eines Prozessors
ermöglicht, der ein Programm niederer Prioritätsebene als das vom Unterbrecher-Modul geforderte Programm ausführt. In
derartigen Mehrprozessoranlagen ist es üblich, daß sich mehrere
Datenprozessoren in einen Speicher und in die gleichen Eingabe/ Ausgabeeinrichtungen teilen; allerdings ist dabei ein zusätzlicher
Prozessor erforderlich, der das Hauptsteuerprogramm ausführt und spezielle Operationen einem oder mehreren angeschlossenen,
nachgeordneten Prozessoren zuordnet. In einer derartigen Anlage werden alle Befehlsfunktionen von dem Haupt- oder Steuer-
509809/10U
prozessor durchgeführt, alle anderen Prozessoren arbeiten nur
als pheriphere Erweiterung des Haupt- oder Steuerprozessors. Um allerdings eine Anlage herkömmlicher Art vollständig in
Modulbauweise erstellen zu können, in der mehrere Prozesse enthalten und durchführbar sind, muß die Hardware-Ausstattung
aller Prozessoren notwendigerweise untereinander identisch sein. Das bedeutet, daß jeder Prozessor gleiche Einrichtungen
zur Bearbeitung aller Programme einschließlich des Hauptsteuerprogramms
enthalten muß, welches für die Aufstellung des Programmfahrplans und die Zuordnung der Einrichtungen innerhalb
des Systems verantwortlich ist.
Moderne Datenverarbeitungsgroßanlagen finden vielfache Anwendung
für sine Simultanverarbeitung, die eine konkurrierende schubweise Verarbeitung, eine Realzeitverarbeitung und eine Verarbeitung
im Zeitwechselverfahren enthalten kann, um eine Vielzahl
derartiger unabhängiger Jobs oder Aufgaben unterzubringen, sind die Anlagen bekannter Art mit Öperationssystemen oder
Steuerprogrammen ausgestattet, die solche Verfahrensschritte, wie z.B. die Reihenfolge der Aufgaben, die Zuordnung der Speicher
und ähnliches überwachen. Als Teil des Operationssystems sind außerdem mehrere Kompilierer oder Sprachumsetzer vorgesehen,
die es dem Programmierer ermöglichen, ohne Kenntnis der Schaltungscharakteristik der Anlage mehrere Programmiersprachen
zu verwenden. In Anlagen bekannter Art führt jeder der Datenprozessoren
abwechselnd aufeinanderfolgende Teile der vielen Benutzerprogramme durch. In einem derartigen System läuft ein
Prozessor, der ein spezielles Programm durchführt, solange, bis
das Programm entweder von sich aus die Steuerung des Datenprozessors
freigibt oder bis es unfreiwillig unterbrochen wird Ein Programm gibt die Steuerung frei, wenn es mangels
Eintreffens irgend eines zukünftigen Ereignisses nicht fortgesetzt werden kann, d.h. wenn z.B.keine Eingabedaten mehr ein-
509809/10A A
gehen oder wenn das Programm beendet ist. Der freie Prozessor wird unmittelbar anschließend zur Durchführung eines anderen,
wartenden und fertigen Programmes eingesetzt, er beginnt entweder mit der Ausführung eines neuen Programmes oder mit
der Durchführung eines unterbrochenen Programmes von der Unterbrechungsstelle
aus. Der Prozessor führt dieses Programm wiederum bis an eine Stelle aus, an der das Programm den
Prozessor freigibt oder unterbrochen wird. In der Zwischenzeit stehen die pausierenden Programme auf Abruf und warten auf
entsprechende Ereignisse, bei deren Eintreffen die Programme zur weiteren Verarbeitung freigegeben werden. Auf der anderen
Seite sind die unterbrochenen Programme im allgemeinen sofort wieder zur Durchführung freigegeben, sie müssen nur auf eine
Zuordnung zu einem Datenprozessor warten, die zur Erzielung einer maximalen Effizienz der Anlage nach einer vorgegebenen
Regel erfolgt.
Ein Programm kann als eine Reihe von Befehlen zur Ansteuerung des zugewiesenen Datenprozessors aufgefaßt werden, um nacheinander
die einzelnen Schritte auszuführen, die zur Durchführung einer speziellen Datenverarbeitungsoperation erforderlich
sind. Der Datenprozessor steht mit dem Arbeitsspeicher der Anlage in Verbindung, um aus den entsprechenden Speicherzellen
die durchzuführenden Befehle und die zu verarbeitenden Datenwörter auszulesen,, und um im Speicher verarbeitete Datenwörter
zu speichern. Die meisten Befehle enthalten einen Operationsteil, der festlegt, welche Operationsart der Datenprozessor
durchführen muß, und einen Adressenteil, der die Lage einer Speicherzelle im Arbeitsspeicher angibt, aus dem das Datenwort
zur Verarbeitung ausgelesen wird, oder in den ein verarbeitetes Datenwort eingegeben wird. Der Datenprozessor liefert
509809/1044
eine Adressendarstellung, um diejenige Speicherzelle zu benennen,
aus der der nächste Befehl gewonnen wird.
Da die Auslese- und- Speicheraeit des Arbeitsspeichers sehr
klein sein muß, um mit der sehr hohen Geschwindigkeit der Befehlsverarbeitung
moderner Datenprozessoren kompaktibel zu . seins sind die Kosten für Arbeit®Speicherkapazität relativ
hochο Aus wirtschaftlichen Gründen ist deshalb in Anlagen her-.
k5amlich@r Art die .GrSße des schnellen-Arbeitsspeichers und
entsprechend auch di@ Anzahl d©r Program«.hinsichtlich der
pro Zeit speicherbaren'InformationsDenge-.entsprechend begrenzt.
um dieses Problem in herkömmlichen Anlagen zu verringern, ist.
zusätzliche Speicherkapazität9 sogenannte Programmbibliotheken
und Datenregist©r8 vorgesehen8 us di© über die Eingabeeinrichtungen
erhaltenen BenutgerpragraaE© aufsunehaien, die auf
einen Durchführungsabruf ?Jart@no JD±©e© zusätzliche Speicherkapazität
wi^d tereh ©in© g
langsamer MEil£s©geig|s©r8l>
an den
langsamer MEil£s©geig|s©r8l>
an den
g® !»©lativ billiger und
ist der die sur
JPrograa»© iaad Inforiiationen
Hllfespeicher
©j? fewirkt ejlae ajeJLt-·
Daten, b®¥or diese
lieh begrenzt®
aa ©in®
ver-
.sah! von Job® g
als ist
s® stemo^a. wwä ihre
±m tos» SsOgo ©sin» ©iae
Jobs
; Θ§100/1§44
Organisations- und Steueruntersystem mit einer Gruppe von
Organisation«- und Steuerprogrammen, Programmteilen und Subroutinen
erforderlich, um die überwachung über die Datenverarbeitungsanlage
zu steuern und auszuüben. Die Gruppe der Organisationsund
Steuerprogramme, der Programmteile und der Subroutinen
wird als "Operatianssystem" bezeichnet· Der wichtigste Zweck
des Oparationssystems besteht darin, die Benutzerprogramme
wirkisags¥oll gleichzeitig durchzuführen durch eine geeignete
Zuordnung der begrenzten SysteEeinrichtungen zu den Programmen,
wobei diese Einrichtungen die Datenprozessoren, Speicher und
und Auegabeainrichtungen enthalten»
Es sei bemerkt, daß die Irt der Aufgabe oder der Jobs, für
die die Anlage eingesetzt werden soll, das Operationssystem
fe©eiB£3UiBt, welches wiederum die Auslegung der Anlage selbst
mitbestimmt. Wird di® Anlage job-orientiert ausgelegt," dann
llb®rwach\iiig®progr&wi so gestaltet, daß es eine «ta»
M®ag« von PrOgrassaen und. it« damit £u®asmenhM2i(tziden
ausführt, let dagegen die Anlag« für Realzeit«
(tiÄt»8hariag) aiisgelegt, so Yerwnndet
die »inlanfeiicicn Baten für die
¥«rttili»i auf die imterschiedlichea Verarbeitungs-Sofern
dl· Anlag® für sines Zeitweeliselbetrieb aus-
at9 wird d«r Schuts Teracliiedener Prograinme und züge-Slariclittaig»B.
wiclitig.
eins Eiapröseseoranlas· aimultan arbeiten kann» wird
QiiQg1 6rad an Flexibilität alt siaer Hehrprozessora&lag&
la der eise Aßsalil voneinander unabhängiger Prozess®
?i?oa©6sor®ii SEgeofdatt weröea, kaaris 3«ispi9le derartig-;?;?
öciB si?lieit®ad©r /Silagen sind 4a den aEsrikanisefeeis Paten·;,y^Ln
Q*&*9 ^M la der SS-PS 3»*111139 angegebene, Eis,
zentraler Prozessor von dem Typ, der in der US-PS 3»V11>139
eingesetzt ist, ist in der US-PS 3,¥31,376 offenbart. Die genannten
US-Patentschriften befinden sich alle im Besitz der Anmelderin dieser Erfindung.
Die oben genannten Anlagen verwenden Operationssysteme, die für
Simultanverarbeitungsanlagen entworfen sind. Ein spezielles Kennzeichen der vorliegenden Erfindung besteht darin," daß die Prozessormoduln
in einer Schaltungstechnik ausgeführt sind,,mit Hilfe derer sich Systembefehle mit größerer Geschwindigkeit ausführen
lassen, als das in herkömmlichen Anlagen möglich war. Traditionell
ist die Frequenz von Daten- oder Zentralprozessoren entsprechend den längsten Ausbreitungsstrecken festgelegt, die in der Logik
vorhanden sind. In den meisten Fällen ist diese kritische Strecke in dem Addiermechanismus oder in dein Verbindungssystem mit dem
Hauptspeicher gegeben. Jede andere elektrische oder logische Strecke innerhalb eines Prozessors ist dann kürzer als diese
kritische Strecke, und in vielen Fällen, wie z.B. in einfachen
Registerbewegungen, werden die Operationen mit einer Geschwindigkeit
durchgeführt, die oberhalb der Grundtaktfrequenz liegt. Da der Operandenaddierer oder die Verbindung zum Hauptspeicher nur während
weniger Prozent der Arbeitszeit betrieben wird, besitzt ein Zentralprozessor
herkömmlicher Art einen relativ kleinen Wirkungsgrad.
Ein weiterer Faktor, -der bezüglich der Arbeitsgeschwindigkeit
eine wichtige Rolle spielt, liegt in der Beschränkung auf Ein-Wort
Bezugsvorgänge (single word referencing) des Hauptspeichers. Diese Beschränkungen sind besonders nachteilig in einem Aufbau,
in dem diese Bezugsvorgänge des Speichers auf einer "need then demand"-Basis vorgenommen werden. Diese Technik
509809/1OAA
läßt sich zwar leicht mechanisch durchführen, sie verleiht den Operationen aber einen seriellen Charakter.
In modernen Datenverarbeitungsanlagen sind Systemprogramme, wie z.B.
Service-Programme besonders vorteilhaft, die ihrer Art nach rekursiv
oder jederzeit verwendbar sind. Außerdem ist es vorteilhaft, daß diese Rekursivität in einer Hierachie von Ebenen und nicht nur in
einer Ebene vorhanden ist. Zusätzlich ist es vorteilhaft und sogar notwendig, daß die Systemprogramme und die Benutzerprogramme im
Speicher vor unberechtigten Eingaben oder Entries geschützt sind, die durch andere, an anderer Stelle durchgeführte Prozesse in derselben
Anlage auftreten könnten. Weiter vorteilhaft sind Punktionen für verschiedene Primärsprachen, wobei diese Funktionen, sofern
möglich, als Schaltungen ausgebildet sein sollen, um schnellere Ausführungszeiten zu ermöglichen.
Wichtiger noch ist es, daß moderne Großanlagen für Informationsverarbeitung
nicht nur bezüglich ihrer Genauigkeit, sondern auch bezüglich ihrer Verläßlichkeit eine hohe Qualität besitzen. Es ist
daher wünschenswert, sehr zuverlässige Anlagen zu bauen, die insbesondere ihre Funktion als ganzes trotz Ausfällen in einzelnen Moduln
der Anlage fortsetzen.
Aufgabe dieser Erfindung ist es, eine verbesserte Informationsverarbeitungsanlage
für verschiedene Anwendungszwecke, wie z.B. für Zeitwechselbetrieb, für wissenschaftliche Problemlösungen und andere
Datenverarbeitungsaufgaben anzugeben. Die Informationsverarbeitungsanlage soll dabei einen hohen Grad an Modularität besitzen und in
der Lage sein, ,gleichzeitig Rechenvorgänge auf mehreren Verarbeitungsebenen
durchzuführen. Die Informationsverarbeitungsanlage soll zuverlässig arbeiten und außerdem Einrichtungen zur Verringerung
der Ausfallrate enthalten..
509809/1044
Diese Aufgabe wird erfindungsgemäß durch eine Informationsverarbeitungsanlage
gelöst, die dadurch auf die besonderen Erfordernisse der Benutzer zugeschnitten werden kann, daß
Zentralprozessor-Moduln, Eingabe/Ausgabemoduln und Speichermoduln unter der Kontrolle und Steuerung eines mehrere Ebenen
enthaltenden Operationssystems oder Hauptsteuerprogramms in einer elektronischen Netz- oder Austauschschaltung (Exchanges)
angeordnet werden, wobei das Hauptsteuerprogramm den Systemdurchlauf maximiert, indem gesteuerte Wechselwirkungen zwischen unabhängigen
Rechenvorgängen, Eingabe- und Ausgabevorgängen über die Speichermoduln der Austauschschaltung stattfinden. Das mehrstufige
Operationssystem macht den Mehrprozessorenbetrieb und die Simultanverarbeitung funktional und praktisch durch dynamische
Steuerung der Systemhilfsmittel und durch die planvolle Einteilung der Jobs in dem Simultanmischer. Erhöhte Geschwindigkeit
und Zuverlässigkeit der Befehlsdurchführung' wird durch eine Reduzierung oder Ausblendung der bezüglich des Speichers vorhandenen
organisatorischen Operationen erreicht, indem der Hauptprozessor von der Verarbeitung von Eingangs- und Ausgangsoperationen
befreit wird, sie wird außerdem erreicht durch die Anwendung von Ausfälle reduzierenden Maßnahmen (fail-soft measures), die eine
Systemrückstufung minimieren.
Die drei Hauptbereiche der Hauptprozessormoduln sind für unabhängigen
und parallelen Betrieb ausgelegt und gestatten eine Beschleunigung arithmetischer Berechnungen und der Verarbeitung
von Daten, sie gestatten auch die zeitliche Überschneidung dieser Berechnungen und Verarbeitungsschritte mit Speicheranforderungen.
Außerdem enthalten die'Hauptprozessormoduln schnelle örtliche Speicher
aus integrierten Schaltungen, die einen Transfer mehrerer Wörter zwischen einem Hauptprozessormodul und dem Hauptspeicher der Anlage ge-
503809/1044
statten und eine Vorwegnahme der erforderlichen Bestandteile
für Programme und Datenwörter ermöglichen, wobei die Wartezeit für die. Durchführung von Transfers vom und zum Hauptspeicher
reduziert und teilweise virtuell eliminiert wird.
Eine größere Zugriffsmöglichkeit zum Hauptspeicher wird für alle Benutzer durch eine Verringerung der Speicherzugriffszeiten
dadurch erreicht, daß eine Vier-Wegverschachtelung von Adressen im Hauptspeicher und Einrichtungen für einen phasengesteuerten
Mehrworttransfer von Information vorgesehen sind,
der von und zum Hauptspeicher in Gruppen von bis zu vier Wörtern erfolgt. Gemäß der Erfindung werden alle Eingangs- und Ausgangsoperationen
asynchron durch den Eingabe- und Ausgabemodul durchgeführt, der unabhängig vom Hauptprozessormodul ist, wodurch
letzterer zur Ausführung anderer wichtiger Arbeiten frei ist.
Die Verläßlichkeit der Hardware der Anlage aufgrund angemessener Rückstufung (degradation) oder Ausfall-Verringerung (fail-soft)
wird dadurch erzielt, daß das mehrstufige Operationssystem die Fähigkeit besitzt, dynamisch und automatisch die Moduln der Anlage
neu- und umzuordnen, um fehlerhafte Moduln auszuscheiden, und daß separate Spannungsversorgungen und redundante Regler für jeden
Modul vorgesehen sind. Die modulare Bauweise und redundante Hauptleitungen stellen ebenso fail-soft-Eigenschaften der vorliegenden
Erfindung dar. In allen größeren Moduln der Anlage sind Schaltungen zur Fehlerwahrnehmung und Fehlermeldung vorgesehen, die
das mehrstufige Operationssystem mit Information versorgen, die zur Durchführung der fail-soft-Analyse und zur dynamischen
Umordnung der Systemeinrichtungen erforderlich ist. Die Speichermoduln
sind unabhängig vom mehrstufigen Operationssystem mit
Einzelbit-Fehlerkorrektureinrichtungen versehen.
509809/ 1
Das mehrstufige Operationsystem der vorliegenden Erfindung enthält
eine Basisebene und N nachfolgende Ebenen. Die Basisebene,
die als der Kern bezeichnet wird, stellt den Kern der Anlage dar und ist die einzige Verbindung zwischen der Systemsoftware
und der Systemhardware, sie stellt außerdem die Operationsumgebung (operating environment) für die nächste Ebenje dar,
die aus einem oder mehreren Steuerprogrammen besteht. Einem Steuerprogramm, welches unter der Kontrolle des Kernes arbeitet,
sind von dem Kern mehrere Aufgaben der Programmüberwachung, der Systemüberwachung und der Eingabe/Ausgabesteuerung delegiert,
außerdem stellt dieses Programm die Operationsumgebung für Benutzer-oder Anwendungsprogramme dar. Im allgemeinen ist
also ein Prozeß auf einer Ebene der Anlage verantwortlich für von diesem Prozeß geschaffene Prozesse auf der nächst höheren
und.sonst keiner anderen Ebene. Die Zuverlässigkeit der Anlage wird also teilweise durch die Isolation der Umgebungen der
Steuerprogramme erreicht, da der Kern als Verbindung zwischen
einem Steuerprogramm und der Systemhardware auftritt. Unter Kontrolle des Kernes ist es daher möglich, gleichzeitig mehrere
Steuerprogramme durchzuführen, von denen jedes darauf zugeschnitten
ist, einen speziellen Typ von Anwendungen, z.B. Stapelarbeit, das Testen von Hardwaremoduln oder Zeitwechselbetrieb
zu unterstützen.
Im folgenden werden weitere Aufgaben, Eigenschaften und Vorteile der vorliegenden Erfindung anhand der Beschreibung der bevorzugten
Ausführungsformen und der zugehörigen Zeichnungen näher
erläutert. Es zeigen:
5 09 8 09/TOAA
Fig. 1 eine allgemeine Anordnung der vorliegenden Erfindung;
Fig. 2 ein allgemeines Blockdiagramm der Anlage nach der
Erfindung;
Fig. 3 ein Blockdiagramm mit Einzelheiten der in
Fig. 2 dargestellten Anlage;
Fig. if ein vereinfachtes Blockdiagramm eines Hauptprozessormoduls
der vorliegenden Erfindung;
Fig. 5 ein Funktionsdiagramm eines Stapelpufferspeichers,
der in den Hauptprozessormodul nach Fig. /f eingesetzt
ist;
Fig. 6 ein Funktionsdiagramm eines Stapelpufferspeichers und eines Stapelspeicherbereiches, die in dem Hauptprozessormodul
nach Fig. k eingesetzt sind;
Fig. 7 ein Funktionsdiagramm des Betriebs eines Stapelpufferspeichers;
Fig. 8 ein verallgemeinertes Funktionsdiagramm eines Puffersystems
nach der vorliegenden Erfindung;
Fig. 9 ein verallgemeinertes Blockdiagramm einer Datenvermittlungseinheit,
die in dem Hauptprozessormodul nach Fig. k eingesetzt ist;
Fig. 10 eine Darstellung des Formats eines Fail-Registers des Hauptprozessormoduls nach Fig. i+;
509809/10U
Fig. 11 ein vereinfachtes Blockdiagramm der Anlage nach der
Erfindung;
Fig. 12 ein Diagramm, welches die modulare Organisation eines
Eingabe/Ausgabemoduls nach der vorliegenden Erfindung aufzeigt;
Fig. 13 eine allgemeine Darstellung eines Eingabe/Ausgabe-Untersystems
nach der vorliegenden Erfindung;
Fig. IJf ein Diagramm, welches die informätionstransferraten
des Eingabe/Ausgabenmoduls nach Fig. 12 angibt;
Fig. 15 ein Funktionsdiagramm einer Jobdarstellung für den
Eingabe/Ausgabemodul nach Fig. 12; .
Fig. 16 eine Darstellung des Formates eines Hausadressen-Steuerwortes,
welches in der vorliegenden Erfindung Verwendung findet;
Fig. 17 eine Darstellung des Formats eines Einheitentabelle-Steuerwortes,
welches in der vorliegenden Erfindung Verwendung findet;
Fig. 18 eine Darstellung des Formats eines Eingabe/Ausgabe-Warteschlangekopf-Steuerwortes,
welches in der vorliegenden Erfindung verwendet wird;
Fig. 19 eine Darstellung des Formats eines Eingabe/Ausgabe-Warteschlangeschwanz-Steuerwortes,
welches in der vorliegenden : Erfindung verwendet wird; .
509809/1044
Fig. 20 eine Darstellung des Formats eines Status-Warteschlangekopf-Steuerwortes,
das in der vorliegenden Erfindung verwendet wird;
Fig. 21 eine Darstellung des Formates eines Eingabe/Ausgabesteuerblockes,
welches in der vorliegenden Erfindung verwendet wird;
Fig. 22 die Darstellung eines Formates eines Eingabe/Ausgabesteuerwortes,
wie es in der vorliegenden Erfindung eingesetzt wird;
Fig. 23 ein Diagramm, in dem die Funktionsbereiche des Eingabe/ Ausgabemoduls nach Fig. 12 angegeben sind;
Fig. 2if ein Blockdiagramm eines Eingabe/Ausgabemoduls nach
Fig. 12; .
Fig. 25 ein Funktionsdiagramm einer typischen Datentransfer-Klassifikation
für einen Eingabe/Ausgabemodul nach Fig. 12;
Fig. 26 ein Funktionsdiagramm einer typischen Eingabe/Ausgabeanschlußverbindung
mit dem Hauptprozessormodul nach Fig. 4 und dem Hauptspeicher des in Fig. 2 dargestellten
Systems;
Fig. 27 ein Funktionsdiagramm, in dem der Daten/Fehlerwahrnehinungsfluß
des Eingabe/Ausgabemoduls nach Fig. dargestellt ist;
509809/ 1
Fig. 28 ein Funktionsdiagramm, welches die Eingabe/Ausgabepfadredundanz
aufzeigt;
Fig. 29 ein Diagramm, welches die Modularität eines Speicheruntersystems
des Systems nach Fig. 2 angibt;
Fig. 30 ein Funktionsdiagramm, welches den Transfer der
Datenwörter zwischen Speicher und einem Benutzer des Speichers wiedergibt;
Fig. 31 eine Darstellung einer Anschlußverbindung zwischen
einer Speichereinheit, einem Speichersteuermodul
und einer Anforderungseinheit (requesting unit) angibt;
einer Speichereinheit, einem Speichersteuermodul
und einer Anforderungseinheit (requesting unit) angibt;
Fig. 32 ein vereinfachtes Blockdiagramm eines Speichersteuermoduls
der vorliegenden Erfindung;
Fig· 33 ein detailliertes Blockdiagramm eines Speichersteuermoduls
der vorliegenden Erfindung;
Fig. 3*f eine Darstellung einer Signalanschlußverbindung
zwischen einem Speichersteuermodul und einer Anforderungs.
einheit;
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 einem Speichersteuermodul und einer Speichereinheit;
5 0 9 8 0 97 1 0 A A
Fig. 37 ein Diagramm, welches die Verschachtelung der
Speichereinheiten zeigt;
Fig. 38 ein Blockdiagramm einer Speichereinheit nach der
Erfindung;
Fig. 39 den zeitlichen Verlauf der Signale für einen Speicherlogikmodul
nach der Erfindung;
Fig. ZfO den zeitlichen Verlauf der Signale eines Speichermoduls
nach der Erfindung;
Fig. /4.1 ein Blockdiagramm des Taktgebersystems nach der
Erfindung;
Fig. 42 ein vereinfachtes Blockdiagramm des mehrstufigen
Operationssystems nach der Erfindung; und
Fig. 4-3 eine Darstellung des Formats des fail-Registers
des Eingabe/Ausgabemoduls nach Fig. 12.
Die Informationsverarbeitungsanlage nach der Erfindung stellt eine symmetrische (balanced), flexibel modulare, simultanverarbeitende und mehrere Prozessoren enthaltende Vielzweckgroßrechenanlage
dar, die für so unterschiedliche Verwendungszwecke wie time-sharing (Zeitwechselbetrieb), die Lösung wissenschaftlicher
Probleme und der kommerziellen Datenverarbeitung einsetzbar ist. Die Anlage nach der vorliegenden Erfindung
ist so ausgebildet, daß sie die Handhabung komplexer Datenstrukturen
und schwieriger Programmstrukturen ermöglicht, die durch augenblicklich verwendete Sprachen höherer Ebene und
durch die Anforderungen komplizierter Probleme gegeben sind,
509809/10U
die Anlage ist so ausgelegt, daß sie in wirtschaftlicher Weise
den großen Anforderungen großer Datenbanken im on-line-Betrieb
und bei Archivspeicherung genügt und sehr große Netzwerke von Datenverbindungseinrichtungen entsprechend akkomodiert.
Die Anlage nach der Erfindung stellt ein sehr schnelles, modularesj
parallel verarbeitendes System mit außergewöhnlich vielseitigen Verwendungsmöglichkeiten und Ausbildungsformen
dar und kann auf die Verarbeitungserfordernisse eines Benutzers dadurch zugeschnitten werden, daß Hauptprozessormoduln, Eingabe/
Ausgabemoduln und Speichermoduln in ein elektronisches Gitteroder Austauschnetz in verschiedener Weise je nach den exakten
Bedürfnissen des Benutzers angeordnet werden. Sofern die außergewöhnlich hohen Eigenschaften und Anpassungsfähigkeit von einem
einzigen Faktor abgeleitet werden könnten, so würde dieser Faktor in dem erzielten Gleichgewicht zu suchen sein, das aufgrund
der durch das Austauschnetz erreichbaren gesteuerten Wechselwirkung zwischen den unabhängig arbeitenden Rechen-, Eingabe/Ausgabe-
und Speichermoduln erzielbar ist. Mit diesem Aufbau, der noch im Detail beschrieben wird, wird der Durchfluß der vorliegenden
Anlage insgesamt maximiert, die Maximierung der einzelnen Elemente der Anlage erfolgt jedoch nicht auf Kosten
oder zum Nachteil anderer Elemente.
Der Schlüssel zu diesem wirkungsvollen und ausgewogenen Einsatz der Anlage nach der Erfindung liegt in dem mehrstufigen Operationssystem,
einem Software-Exekutivoperationssystem, welches
automatisch die optimale Verwendung aller Hilfsmittel des
Systems sicherstellt. Dieses Operationssystem, welches den Mehrprozessorbetrieb und die Simultanverarbeitung sowohl
funktional als auch durchführbar macht, indem es· die Systemhilfsmittel
dynamisch steuert und die Jobs oder Aufgaben in ge-
509809/10AA
planter Reihenfolge in den Simultanmischer (multi-programming mix)
eingibt, soll in Einzelheiten beschrieben werden. Während des Betriebes weist das mehrstufige Operationssystem die Systemeinrichtungen
so an, daß diese die Anforderungen erfüllen, die das in die Datenverarbeitungsanlage eingegebene Programm stellt.
Das Operationssystem weist dabei kontinuierlich und automatisch Einrichtungen immer neu zu, startet Jobs, und überwacht ihre
Durchführung.
Weitere Eigenschaften der Modularität und Flexibilität der
Anlage nach der Erfindung bestehen in der Erweiterungsfähigkeit (d.h. der Fähigkeit, weitere Hardwaremoduln ohne eine Reprogrammierung
hinzuzufügen) und in der gesteigerten Zuverlässigkeit, die durch Verwendung einer fail-soft-Technik erreicht
wird ( die zusätzlich zu Einrichtungen zur Fehlerwahrnehmung und Fehlerkorrektur, zur Redundanz der Datenleitungen und
zur Unabhängigkeit und Redundanz der Spannungsversorgungen vorgesehen ist),.welche fehlerbehaftete Modulen aus der Anlage
nimmt und die Fortsetzung der Datenverarbeitung (wiederum, ohne eine Reprogrammierung) selbst mit einem zeitweilig
reduziertem Aufbau der Anlage gestattet.
Obwohl die Anlage nach der Erfindung sehr groß und ungewöhnlich kompliziert ist und daher auch in der Lage ist, komplexe Berechnungen
auszuführen, so ist diese Anlage doch für die Personen, die sie bedienen und benutzen, verstehbar:
Die Programmierung wird nur in problemorientierten Sprachen hoher Ebene (COBOL , ALGOL , POROlRAN, PL/I und ESPOL) durchgeführt;
die Steuersprache, mit der die Jobs in die Anlage eingegeben werden, ist eine einfache, dem Englischen ähnliche SDrache
freier Form; und die Mitteilungen, die zwischen dor Anlage und dem Operator ausgetauscht werden, sind kurz, klar und einfach
zu lernen.
509809/1044
Obwohl der ausgewogene Einsatz der Hauptkomponenten der Anlage
unter der Kontrolle und der Koordination des mehrstufigen Operationssystems den Schlüssel für den hohen Durchfluß der
Anlage darstellt, so, werden die positiven Eigenschaften der Anlage zu einem großen Teil auch dadurch erzielt, daß.die Ausführungsgeschwindigkeit
für Befehle durch eine Reduktion oder Ausblendung organisatorischer Operationen erhöht wird, die
hinsichtlich einer Bezugnahme zum Speicher erfolgen, wobei die Hauptprozessormoduln von der Verarbeitung von Eingabe/Ausgabeoperationen
befreit werden; die positiven Eigenschaften der Anlage werden auch durch Anwendung von fail-soft-Maßnahmen
erzielt, die die Systemrückstufung (Degradation) minimieren. Die Zentraleinheit-Hardware der Anlage ist streng nach Schaltkreisund
Verdrahtungsregeln und bewährten Entwurfs- und Packungstechniken ausgelegt, die in der Fachwelt bekannt sind.
Diese Tatsache und die Verwendung monolithischer, integrierter Schaltkreise in den einzelnen Elementen ermöglicht es, daß
die Anlage ständig mit hoher Arbeitsfrequenz betrieben wird.
Die fail-soft-Eigenschaften der Anlage nach der Erfindung sind
so ausgebildet, daß sie die Anlage während 100% der Zeit in Betrieb halten, die Systemrückstüfung (degradation) minimieren
und den Benutzer mit Hilfsmitteln zur Durchführung seiner
eigenen Datenbearbeitung ausstatten. Diese Ziele werden durch eine spezielle Kombination von Hardware und Software im gesamten
System realisiert. Die Anlage nach der vorliegenden Erfindung wird funktionstüchtig gehalten:durch eine höhere
Zuverlässigkeit der Hardware, durch den Einbau von Fehlerwahrnehmungsschaltungen
in der gesamten Anlage, durch eine Einzel-Bitfehlerkorrektur von Fehlern im Speicher, durch eine
Registrierung von Fehlern für eine ,Softwareanalyse, durch Modulbauweise,
durch die Verwendung separater Spannungsversorgungen
509809/1OAA
und redundanter Regler für jeden Modul, durch die Verwendung redundanter Hauptleitungen und durch die Eigenschaft des mehrstufigen
Operationssystems, die Modulen der Anlage so umzuordnen, daß fehlerhafte Modulen zeitweise ausgeschlossen werden.
Zusammengefaßt bedeutet das, daß die Wahrnehmung und die Meldung von Fehlern durch Hardware und die Analyse der Fehler" durch
Software vorgenommen wird, und daß die Um- und Neuanordnung der Anlage dynamisch durch eine mehrstufige Operation vorgenommen
wird. Aufgrund der Modulbauweise der Spannungsversorgungen und der Verwendung von redundant geregelter Spannungsversorgungen für kritische Spannungen wird die fehlerhafte
Funktion der Spannungsversorgung minimiert, sie hat keine katastrophalen Störungen zur Folge.
Die Minimierung der Systemdegradation wird durch den Einsatz
von Diagnose-Programmen und -Einrichtungen zur schnellen Identifizierung und Ausbesserung der Fehler und zur überprüfung eines
reparierten Moduls erreicht, die vor der erneuten Eingliederung des Moduls in die benutzte Anlage erfolgt. Der Diagnose-Teil
des mehrstufigen Operationssysteras ist zur Identifizierung
eines fehlerhaften Moduls ausgelegt, und durch die Verwendung einer Diagnose-Einheit bleibt ein Fehler in irgendeinem
Modul der Zentraleinheit oder in einem Plattendateioptimierer auf eine einzige Taktperiode und auf ein Flipflop und dessen
zugehörige logischen Schaltkreise beschränkt. Durch Verwendung eines Kartentesters in der Diagnose-Einheit kann schließlich
der mit einem Fehler behaftete integrierte Schaltkreis identifiziert werden.
Um den Benutzer mit Hilfsmitteln zur Durchführung der Datenverarbeitung
und -rückgewinnung zu versorgen, enthält die Anlage nach der Erfindung den Einrichtungen der Anlage zugeordnete
509809/1044
Plattenspeicher (installation allocated disk), geschützte
Plattendateien (disk files), Duplizierregister (duplicate files) und Fehler anweisungen '(fault statements) 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 (protected disk files) 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 (duplicate disk files) erfolgt, um das Problem fataler Plattendateifehler zu vermeiden. Das
mehrstufige Operationssystem nach der Erfindung 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 (fault statements) kann der
Benutzer die Ereignisse festsetzen, die durch sein Programm hervorgerufen werden sollen, falls bestimmte Fehler auftauchen.
Physikalisch fallen die Komponenten der Anlage nach der Erfindung
in drei Kategorien. Die erste Kategorie enthält die Hauptkomponenten der Anlage, insbesondere die Hauptprozessormoduln 20,
die Eingabe/Ausgabemoduln 10, die Speichermoduln 30a, die kollektiv den Hauptspeicher 30 darstellen, die Diagnose-Einheiten 26 und die Operatorkonsole 27, vergleiche Fig. \,
Die zweite Kategorie enthält die peripheren Steuereinrichtungen , 38 und Vermittlungseinrichtungen, den Plattendateioptimierer ifO,
den Datenvermittlungsprozessor 36 und WechselspannungsVersorgungen.
509809/10 A4
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 Fig. 2 dargestellt.
Bis zu δ Speichermoduln 30a stehen im Austausch mit bis zu 8 Anforderungseinheiten, sog. Requestoren, 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. Eine Hauptleitung 32 ist zur
Versorgung der Steuerungen der Speichermodulen 30a, der Hauptprozessormodulen 20, der Eingabe/Ausgabemodulen 10 und der
Plattendateioptimierer ^O vorgesehen. An die Hauptleitung 32
sind entweder eine oder zwei Diagnose-Einheiten 26 angeschlossen. Jeder Eingabe/Ausgabemodul 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 8 sehr schnelle Steuereinrichtungen enthalten) und zwischen dem Hauptspeicher 30 und den
bis zu Jf Datenvermittlungsprozessoren 36 zu transferieren. Er
ist außerdem in der Lage, bis zu ij- Plattendateioptimierer ifO
zu bedienen (die Plattendateioptimierer ijO dienen zur Verbesserung
509809/1044
der Transferrate von Daten zwischen dem Hauptspeicher 30
und den Plattendateien). In einer "bevorzugten AusfUhrungsform
beträgt die Anzahl der schnellen, mittelschnellen und längsamen peripheren Geräte, die über Steuer- und Vermittlungseinrichtungen
an einen 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 Magnetbandcluster 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 Plattendateispeichermodulen vorhanden, die einen virtuellen Speicher darstellen, der die Speicherkapazität des Hauptspeichers
30 der Anlage erheblich vergrößert, vgl. Fig. 3. Die Moduln, die über Steuereinrichtungen an den Eingabe/Ausgabemodulen
10 angeschlossen sind, sind folgende: (1) head-per-track-Plattendateioptimierer ifO, um Speicherbänke
mit optimalem Zugriff zur Speicherung von etwa if50 Millionen
bis 8 Milliarden 8-Bit Bytes von Information pro ELngabe/Ausgabemodul
10 zu realisieren, deren Zugriffszeit tatsächlich im Bereich zwischen 2 bis 6 Millisekunden oder J* bis 10 Millisekunden
liegt; (2) haed-per-track-Plattendateimoduii, die
(ohne die Steuerung des Optimierere) in RAM-Speicherbänke von
15 Millionen bis 16 Milliarden 8-Bit Bytes pro Eingabe/Ausgabe-
509809/1 OAA
modul 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/Ausgabemodul 10 eingebaut werden und deren mittlere
Zugriffszeit 30 Millisekunden beträgt.
Neben den 255 peripheren Geräten, die z.B. in einem Exngabe/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 Zf programmierbaren Datenvermittlungsprozessoren 36
bedient werden, die durch einen einzigen Eingabe/Ausgabemodul IO 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 nach der Erfindung ausgestattet ist, werden voll in einer Ausführungsform realisiert, die zwei
Hauptprozessormoduln 20, zwei Eingabe/Ausgabemoduln 10, vier
Speichermoduln . 30a, eine Diagnose-Einheit 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
509809/10U
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 Verfügung steht. Selbstverständlich sind Ergänzungen der peripheren Geräte und ihrer Steuer- und Verniittlungseinrichtungen,
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 failso ft-Eigenschaf ten der Anlage nach der Erfindung und besitzt
alle Vorteile, die durch die Möglichkeit der Verarbeitung von if Wort trans fers 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 der vorliegenden Erfindung 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 Informationsverarbeitungsanlage
nach der Erfindung dar. Die Komponenten und Untersysteme enthalten die Hauptprozessormodul 20, dag
Eingabe/Ausgabeuntersystem, das Spaicheruntersystem, die Diagnose
Einheit 26, die Bedienungskonsolen 27, das Plattendateiuntersystem,
das Datenvermittlungsuntersystem und das Leistungsversorgungsuntersystem.
Der Hauptprozessormodul 20 stellt das Element der Anlage dar,
in dem die Rechensc-hritte ausgeführt werden. In der bevorzugten
Ausführungsform arbeitet der Hauptprozessormodul mit einer
Taktfrequenz von 16 MHz. Der Hauptprozessormödul 20 enthält
509809/1044
drei größere, voneinander unabhängige, asynchron arbeitende Bereiche, den Programmbereich Zf2, den Ausführungsbereich l+h- und
den Speicherbereich ^6, vgl. Fig. if. Eine Kommunikation zwischen
diesen Bereichen wird mittels Warteschlangen der Operationen (queues of operations) 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 i\2L führt befehlsdekodierende Operationen
von Maschinencode-Zeichenfolgen (object code strings) und absolute Adressenberechnungen durch, der Ausführungsbereich i+if
führt alle arithmetischen und logischen Datenoperationen durch , und der Speicherbereich 2f6 führt alle Funktionen mit Speichercharakter
durch. Die allgemeinen Verbindungsleitungen und der Datenfluß zwischen diesen drei Bereichen ist in Fig. /f dargestellt.
Wie schon angegeben, wird eine Kommunikation zwischen diesen Bereichen durch Warteschlangen hergestellt.
Der Programmbereich i\2. enthält einen Programmpuffer Zf8 und
eine Programmwalze (program barrel) 5k>
eine Programmsteuereinheit 56, eine Fehlerkontrollogik 58 und eine Adresseneinheit
6Oe Der Programmbereich l\2. besitzt die Aufgabe, aus der Maschinencodezeichenfolge
jeden Befehl herauszuziehen und die Durchführung dieser Befehle zu veranlassen. Der Programmbereich l\2.
steuert und antwortet außerdem auf das Fehlerunterbrechungssystem, welches später beschrieben wird. Die primäre Aufgabe
des Progranrabereiches l\2. besteht darin, die Mas chinencodez eichenfolge
in Operationen aufzuteilen, die dann in die geeignete V/arteschlangen
plaziert werden und so an den Ausführungsbereich l\k
gelangen. Einige wenige Befehle werden ganz von dem Programmbereich l\Z ausgeführt, so z.B. ein nicht bedingter Sprung
(unconditional branch), andere
509809/1044
Befehle werden teilweise durchgeführt.
In der bevorzugten Ausführungsform wird die "polnische"
Schreibweise (Präfix-Schreibweise) als Basis für den ALGOL-Kompilierungsalgorithmus
der Anlage verwendet. Durch die Kpmpiüerer-Umsetzung
wird von dem Ausdruck der Ursprungssprache 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 (logical entity)
überprüft wird, folgt eine spezielle Prozedur nach, durch die der Ausdruck in "polnischer" 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ärspräche) dar, welches direkt durch den
ADD-Befehl der Maschinensprache ersetzt wird. Die Sprache-Zeichenfolge,
die einer Zeichenfolge in "polnispher"-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 Plattendateien gespeichert. Wird ein Programm ausgeführt, so werden die
Programmsegmente,wie benötigt, im Speicher zur Verfügung 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; die Programm-Code-Zeichenfölge wird daher oft als
"re-entrant" oder "rekursiv11 bezeichnet.
509 809/1 04A
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 nach der Erfindung 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 ^rogrammsteuerwort (PCW) stellt nicht nur im Segment-Wörterverzeichnis
einen Index dar, um den richtigen Segmentdiskriptor aufzufinden, es stellt außerdem einen Index 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
(items) vom Stapel genommen werden (jeweils eine Einheit 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 eine einfach organisierbare Einrichtung
dar, um einen dynamischen Vorgang eines Programms während seiner Verarbeitung festzuhalten, sondern er ist auch bei der
509809/1044
Verarbeitung der Programm-Code-Zeichenfolgen, die auf "polnische·1'.
Schreibweise basieren, einsetzbar.
In einer bevorzugten Ausfuhrungsform werden, wenn ein Job
aktiviert ist, zwei Plätze an der Spitze des Stapels (A und B) zum Stapel des Jobs verbunden, vgl. Fig. 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
zv/ei 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 V/ort 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 Stapels und der Inhalt des LOSR-Registers 67
definiert die obere Grenze des Stapels. Der Job wird unter-,
brochen, sobald das S-Register 63 auf den Wert gesetzt wird,
509809/1OAA
-30- 24372QÜ
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. V/ö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,
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 Platz 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 (tag bits) 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
509809/ 1 0 A
Erozeß läuft umgekehrt ab, wenn ein doppeltgenauer- Operand aus dem Stapel in die oberen Stapelplätze zurückkehrt. D.h. die
am wenigsten 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. Fig. 6, enthält
z.Bo Information, die noch nicht in den Kern- oder Hauptspeicher
30 eingeschrieben wurde, er enthält außerdem Kopien der in dem Kern- oder 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 Mf 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 Speicher, der sogenannte assoziierte Speicher ^Z des Speichers wird eingesetzt, um Daten aufzunehmen,
die von der vorausschauenden Programmeinheit zusammengetragen werden und sich nicht im Stapelpuffer befinden. Obwohl 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 Stapelpuffers 50 bewirkt,
daß die Daten des Stapelpuffers 50 in den Kernspeicher kopiert
509 80 9/104A
werden.
Eine äußerst wichtiger Aspekt der Anlage nach der Erfindung besteht in der Erhaltung des dynamischen Ablaufes für das Programm,
welches verarbeitet wird. Zwei Listen des Programmablaufes werden in dem Stapel der Anlage aufrecht erhalten, die addressing
environment-Liste und die stack-history-Liste. Beide Listen sind
dynamisch, sie verändern sich, während der Job längs verschiedener Programmpfade mit sich verändernden Datensets fortschreitet.
Die beiden Listen wachsen und verkleinern sich in Übereinstimmung mit der Prozedurtiefe des Programmes. Beide
Listen werden automatisch durch die Systemhardware erzeugt.
Es wird nun auf den Ausführungsbereich /fif des Hauptprozessors
20 Bezug genommen. Der Ausführungsbereich i^t enthält eine Ausführungseinheit
62 und eine Ausführungseinheit-Eingabewarteschlange 6*f. Der Ausführungsbereich ifif ist verantwortlich für
die gesamten Daten- und Steuermanipulationen, die den Stapel betreffen. Der Ausführungsbereich kk führt alle arithmetischen
und logischen Operationen und die bezüglich des Stapels vorgenommenen Steuerfunktionen durch. Der Ausführungsbereich
wird in geordneter Weise von einer:l£Lrst-in, first-outi-Liste
von Operationen betrieben, die von dem Programmbereich tg. in
ihre Operatorwarteschlange eingegeben sind.
Der Speicherbereich ^6 enthält eine Speichereinheit 66, die
Stapelpuffereinheit 50, den assoziierten Speicher 52 und eine
Vermittlungseinheit 68. Der Speicherbereich Zf6 ist für alle
Funktionen verantwortlich, die Speiehervorgänge betreffen.
Einige der Aufgaben des Speicherbereiches 46 sind implizierter
Natur, wie z.B. die Versorgung des Stapelpuffers 50, aber die meisten Operationen sind explizit und resultieren direkt aus
509809/1044
der Verarbeitung des Programmcodes. Implizite Operationen des
Speicherbereiches Zf6 sind entweder von dem Programmbereich 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 Speicher oder den Hauptspeicher 30 bezieht, wobei im letzteren Fall ein Hauptspeieherzyklus erforderlich
ist.
Diese größeren Bereiche sind in Einheiten unterteilt, die relativ unabhängig voneinander arbeiten. Die Programmsteuereinheit
56 des Programmbereichs 42 stellt eine asynchron funktionierende
Logikeinheit dar, die den Progranimpuffer 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 (overhead) verursachen. Varzweigungspunkte, die sich innerhalb des Puffers 48 befinden,
werden automatisch wahrgenommen und der Code wird ohne einen Programmabruf vom Hauptspeicher 30 eingegeben.
In der bevorzugten Ausfuhrungsform 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ächliphe physikalische Konfiguration besteht aus zwei Speichern von je 16 Wörtern. Wie in Fig. 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 1st außerdem in
509 80-9/104
vier Segmente, O bis 3» unterteilt. Der Puffer wird mit Segmenten
aus vier Wörtern pro Hauptspeicherreferenz gefüllt. Der Algorithmus., mit dem der Programmpuffer 48 gefüllt wird, basiert
mehr auf einer Vorwegnahme, als auf einem Ausharren, bis der Puffer 48 leer ist, so daß der volle Vorteil der natürlichen
Verzögerungszeit der Hauptspeicher-Sammelleitung 47 ausgeschöpft wird, vgl." Fig. 2. Bei der Eingabe der Wörter werden
diese alternativ in die ungeraden und geradzahligen Teile des
Programmpuffers 48 eingegeben. Von jedem eingegebenen Wort
wurde von allen 51 Bits die Paritätskontrolle durchgeführt. Während das einzelne Wort in den Programmpuffer 48 plaziert
wird, wird Parität erzeugt und mit jeder Silbe gespeichert; auf diese Weise wird, unabhängig von der Anzahl der Silben oder der
Route durch den Hauptprozessor 20, die Vollständigkeit eines gegebenen
Befehls durch Parität von jeder individuellen Silbe aufrechi erhalten.
Die Adresseneinheit 60 des Programmbereiches 42 enthält die
zur Berechnung absoluter Adressen erforderliche Logik. Diese Adresseneinheit 60 besitzt einen Speicherbereich von 48 Wörtern
mit 20 Bits. Der Speicherbereich 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
Eingaberegister des Speicherbereiches wird verwendet, um Daten für einen Schreibzyklus zu puffern, damit die Steuerlogik,
anstatt bis zum Ende des Speicherzyklusses zu warten, sofort freigegeben werden kann. Das Eingaberegister dient auch dazu,
einen Wert für'den Addierer/Komparator für nachfolgende Rechenschritte,
wie sie bei der Verarbeitung von Zeichenfolgen (string processing) auftreten (z.B. Index plus Konstante plus
Basis), bereit zu halten. Alle Schreibzyklen in dein Speicher-
509809/1044
bereich der Adresseneinheit 60 werden durch den Ausführungsbereich i|Jf gesteuert, diese Zyklen können dagegen zur Adressen—
berechnung entweder von dem Ausführungsbereich kk oder dem
Programmbereich l\2. des Hauptpro?essormoduls 20 initiiert werden·
Separate Leseregister sind für diese beiden Bereiche vorgesehen und ein Prioritätsresolver löst auftauchende Konflikte. Es sei
erwähnt, daß die Adresseneinheit 60 sich nicht direkt in der "pipeline1
befindet und daher nicht von einer Warteschlange betrieben ist. Wie schon erwähnt, ist die Adresseneinheit 60 nur in dem
Maße autonom, daß ein Schreibzyklus für den IC-Speicher eines
Hauptprozessormoduls 20 durch die Auslöselogik nur ausgelöst und nicht vollständig gesteuert zu werden braucht.
Die Fehlerkontrollogik 58 des Programmbereiches l\2. soll bei
der allgemeinen Wartung und bei der Fehlersuche unter Leitung des fail-soft-Teils des mehrstufigen Operationssystems helfen.
Die Fehlersuche wird von einem System mehrerer Ebenen von Kontrollzuständen unterstützt, welches mit alternierenden
Stapel- und Nullanzeigeeinrichtungen gekoppelt ist. Die Fehlerkontrollogik 58 enthält ein Fehlerbedingung-Register, welches
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 operatorunabhängige Unterbrecher. .
Die Befehlseinheit 62 des Befehlsbereiches Zj4 eines Hauptprozessormoduls
20 stellt» den Abschluß (final stop) des Datenkanals (processing pipeline) dar. Die Mehrzahl der Befehle wird
nicht vervollständigt, da die Befehlseinheit 62 die einzige Einheit in dem Prozessor 20 ist, welche durch Wertdaten
(value data) betrieben wird. Diese Einheit besitzt außerdem einige Steuerwortformation-und Adressenberechnungsaufgaben.
508809/1044
Diese Einheit enthält die beiden oberen Stapelregister Δ und B
und kann zeitweise Teile von Zeichenfolgen speichern, die sie bearbeitet.
Die Alisführungseinheit 62 ist genauso wie die Programmsteuereinheit
56 von einer Warteschlange betrieben. Alle Operationen und mit
Operatoren in Zusammenhang stehende Daten werden in die Warteschlange der Ausführungseinheit 62 durch die Programmsteuereinheit
56 platziert. Die Wertdateneingaben (value data inputs) werden durch die Speichereinheit 66 des Speicherbereiches Jf6
vorgenommen. Die Verantwortung für die Steuerung beim Einschreiben in 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 Eingabewarteschlange wird aus offensichtlichen . Gründen durch den Programmbereich if2 ü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 Zf6 eines Hauptprozessormoduls
20 enthält die zur Steuerung aller auf den Hauptspeicher,30 gerichteten Bezugnahmen (references) erforderliche
Logik. Die Bezugnahmen zum Hauptspeicher lassen sich unabhängig von der Programmoperatorfunktion oder als direktes
Resultat eines Operatorbefehls auslösen. Die Steuerung des
509809/1044
Programmpuffers Jf8, des assoziierten Speichers 52 und des
Stapelpuffers 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 Warteschlange entweder durch die Programmsteuerung oder den
Befehlsbereich ifif eingegeben.
Die Speichereinheit 66 (auch als Speichersteuereinheit 66 bezeichnet)
ist für die Überwachung der Stapelfunktionen 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 Grenzen muß die Speichereinheit 66 die Anzahl der örtlichen Anschlüsse
(locals) mit beachten, damit die überprüfung der Grenzen entsprechend den Tatsachen erfolgt.
Di'e Eingabewarteschlange wird im wesentlichen von allen Unterbereichen
des Hauptprozessors 20 gesteuert. Die Programmsteuereinheit % 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"not local " bestimmt ist, löst die Speicherst
euer einheit 66 eine Bezugnahme zum Hauptspeicher 30 aus. Im
Fall, daß während einer Bezugnahme zum Hauptspeicher irgend etwas außergewöhnliches passiert, löst die Speichereinheit 66
ein Beendigungssignal aus und übermittelt die Daten und zur Beschreibung
des Problems ausreichende Steuerinformation über
509809/1044
die 'Ausführungseinheit-Eingabewarteschlange 6k- an die Ausführungseinheit
62. Es ist notwendig, daß die Reaktion auf Störungen durch die Speichereinheit 66 aufgeschoben wird, da
diese Einheit bsi der Durchführung von Abruffunktionen der in
Ausführung befindlichen Programmstelle voraus ist· Die Ausführungseinheit 62 stellt einen Teil des Hauptprozessors 20 dar, der die
in Ausführung befindliche Programmstelle definiert. Aus diesem Grund darf solange zur änderung der Reihenfolge innerhalb des
Programms nichts unternommen werden, bis der zugehörige Operator die Spitze der Eingabewarteschlange Sk erreicht. Bezüglich. Speicherfunktionen
sind die Ausführungseinheit 62 und die Speichereinheit 66 schon synchronisiert und eine Reaktion auf Fehler findet sofort
statt.
In einer bevorzugten Ausführungsform ist die Speichereinheit 66
in der Lage, innerhalb der eigenen Einheit Operationen zu überlappen. Diese Situation ist immer dann vorhanden, wenn eine
Bezugnahme zum Hauptspeicher 30 ausgelöst ist. Wenn die Vermittlungseinheit
68 des Speicherbereichs if6 eine externe Bezugnahme
bearbeitet, kann die Speichereinheit 66 zum nächsten Entry ihrer Eingabewarteschlange 70 übergehen. Für den Fall, daß die Bezugnahmeoperationen
variabel, d.h. lokal auf den Stapelpuffer 50 oder den assoziierten Speicher 52 gerichtet sind, so wird die
lokale Bezugnahme parallel zur Hauptspeicherbezugnahme vervoll-.ständigt.
Die Überlappung ist nicht auf eine Operation beschränkt. Die Speiehereinheit 66 ist zur Verarbeitung von Operationen aus
ihrer Eingabewarteschlange 70 solange wie möglich frei oder solange frei, bis eine externe Bezugnahme vervollständigt ist.
Der Vorteil die'ser Überlappung resultiert aus der Tatsache, daß die meisten Bezugnahmen auf Variablen, die bei der Herstellung eines
Terminaldeskriptors verwendet wird, lokal sind. Obwohl die Größe
509809/1044
auf die von dem Terminaldeskriptor eine Bezugnahme erfolgt, extern ist (insbesondere Datenfelder), ist die im Hauptspeicher
30 verbrachte Zeit durch die nachfolgende Deskriptorkonstruktion
wirkungsvoll ausgeblendet.
Der Programmpuffer ^8 des Programmbereiches l\2. ist durch einen
32-Wortbereich eines lokalen Prozessorspeichers gegeben, der verwendet wird, um einen Teil des Maschinencode-Befehlsprogramms
aufzunehmen. Da der Programmpuffer 48 in Mehrwortsegmenten
auf den neuesten Stand gebracht wird, wird der volle Vorteil des "phased"-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
i*8 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 (data references) 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 zuletzt 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. Fig. 6. Der primäre Zweck des Stapelpuffers 50 besteht darin, örtlich einen Teil der
509809/ 1044
Stapelumgebung in irgend einem von 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 Entries in den Stapelpuffer 50 eingehen , wird bei Sättigung des Stapelpuffers
ein Segment der Pufferentries 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 Mehrwortsegnenten
durchgeführt, um den vollen Vorteil des nphased"-Speichersystems wahrzunehmen. Dieses "Fenster" von
Stapelentries strebt danach, die laufende Adressierumgebung (addressing environment) des ausführenden Programmstapels
aufzunehmen. Der Stapelpuffer 50 kann innerhalb gewisser Grenzen
direkt adressiert v/erden, 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 Fig. 7 gezeigt ist, ist die Hauptspeicheradresse des
Puffers 50 oder der neueste Entry 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 einem Jobstapel zugeordnet ist, werden die obersten vier V/orte des »-»tapelspeicherbereiches
vom Hauptspeicher 30 in den Stapelpuffer
509809/1044
50 transferiert. Nachfolgende Stapelausweitungen 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 (phased memory
system) 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 kana als "Fenster" der Stapelentries
betrachtet werden, die längs des ^auptspeicherstapels
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 D.aten und Entries, 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 SAH enthält
509809/1044
immer die absolute Adresse des tiefsten Stapelentrys in den
Puffer 50. Um Entries 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. Fig, 7, die die Stapelpufferadressen der ältesten
und neuesten Entries speichern. Da der Stapelpuffer ein Adressierschema
mit zyklischem Arbeitsablauf verwendet, dienen die BTP- und TPP-Register hauptsächlich als Zeiger, denn der absolute
Wert ist nicht wichtig. Die TPP-, BTPT S-jSAR- und SLR-Register
werden eingesetzt, um das Stapelpuffer-MFenster" dem Hauptspeicherstapel
zuzuordnen, wie in Fig. 7 gezeigt ist. Fig. 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 Entries
angezeigt· Ein zusätzlicher Expansionsbereich muß für den Stapel geschaffen werden, wenn der Stapelpuffer 50 voll ist.
Wenn diese Situation eintritt, nimmt das Stapeladressenregister SAR um den Wert /4 zu, und das SLR-Register stellt dann die
führende Adresse der 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 Stapelpuffer 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 St'apelpuffers 50 vor der Verriegelungsbezugnahme (lock reference) zum Hauptspeicher 30. Dadurch ist
509809/1 OA 4
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-Registers 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 Stapelpuffer 50 enthaltenen Bereichs befinden. In der bevorzugten
Ausführungsform ist der assoziierte Puffer oder Speicher
52 als ein Prozessor-IC-Speicher mit 16 V/orten 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 (residue on the address) und if überschüssigen
Bits zusammengesetzt. Der assoziierte Speicher 52, vgl. Fig. 8, wird mit beliebigen Größen gefüllt, auf die durch
ein IRW (indirect reference word) Bezug.genommen wird, es sei
denn, die Größe besteht aus einem doppeltgenauen Operanden oder einem anderen IRW. Derartige Entries enthalten Datendeskriptoren,
Schrittindexwörter und einfachgenaue Operanden..Die erhaltenen
Datendeskriptoren können solche Dope-Vektorentries 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
kopiert. 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
509809/1044
kann. Nachdem der assoziierte Speicher 52 voll ist, wird immer der
am längsten gehaltene Entry ü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 Hauptspeieherplatζ auf den neuesten Stand
gebrachte Aus diesem Grund sind gültige Entries in den assoziierten
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 ^Z. nie in den Hauptspeicher 30 überschrieben werden.
Nach einer erfolgreichen Auffüllung des lokalen Speichers kann
die AusfUhrungeeinheit 62 fortfahren, Operatoren in ihre Warteschlange
schlange einzugeben, obwohl der Speichervorgang in den Hauptspeicher 3C 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, falle erforderlich, die gesamte Information
im assoziierten Speicher 52 ungültig machen, so z.B. dann,
wenn in das mehrstufige Operationssystem zum Zwecke einer Umordnung (reallocation) eingegriffen wird. Von jedem Wort
wird in dem assoziierten Speicher ^Z eine Aufzeichnung
(record) aufrecht erhalten. Wenn Information aus dem Haupt-
509809/1044
speicher 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 Stape.lpuffer der Vorzug gegeben der eine spätere Kopie deser angeforderten
Information enthalten kann8 die durch eine Serie von Funktionen
erzeugt wurde, die pusfe-dora-Operationea verursachen·
Si® Vermittlungseinheit (CU) 68 stellt die Nahtstelle zwischen
dem Hauptprozessormodul 20 und dem Hauptspeicher 30 dar. Alle Zugriffe zum Hauptspeicher werden durch diese Einheit ausge- .
führt«, Anforderungen von Speieheroperationen werden an die
Vermittlungseinheit 68 von dem Programmpuffer 4.8, der Speicher
einheit 66 und dem Stapelpuffer 50 herangetragen. Die von der
Vermittlungseinaeit 68 aus dem Hauptspeicher 30 entnommene
Information wird den Ausführungseinheiten 62, dem Stapelpuffer 5O9 dem assoziierten Speicher 52 oder, zur Programmcodierung,
dem Programmpuffer kB Übermittelt. Den abfragenden GPlt-Siiiheiten wird.der Zugriff zu der GIF-Einheit 68 nach einem
Prioritätsschlüseel gewährt. Die höchste Priorität wird dem
Stapelpuffer 50 eingeräumts da die AusfShruagseinheit 62
auf die Ergebnisse der durch den Stapeipuffer 50 vorgenommenen
Abfragen wartet« Die Abfragen des Stapaipuffere werden vorgenommen wenn an dem Stapelpuffer eine Füll-, Leer- oder Ver-
. fallsoperation vorgenommen wird«, Der Speichereinheit 66 wird
die zweithöchste Priorität eingeräumt$ da die Ausführungseinheit
62 evtl. auf die Ergebnisse einar Abfrage der Speicher-
'50 9 809/1044
einheit wartet. Abfragen des Programmpuffers besitzen die dritthöchste Priorität, da diese Abfragen im Vorgriff auf
notwendige zusätzliche Programmeοdes stattfinden.
Die größeren Logikelemente der. CU-Einheit 68 bestehen aus
Eingabe (IN) und Ausgabe (OP)-Registern 302 und 30%, aus einem
Vermittlungsadressenregister (CA) 306, dem Vermittlungslängenregister
(CLN) 308, dem Remember-Suspend-Register (RS)- 310,
den Fall-Registern (FL) 70 und der Steuerlogik, vgl. Fig. 9. Obwohl das Fall-Register 70 der CQ-Einheit 68 zugeordnet ist,
wird es durch die Fehlerkontrollogik 58 eingesetzt und soll
später beschrieben werden.
Bei Einzelwort-Speicheroperationen ist die absolute Speicheradresse
der Operation in dem CA-Register 306 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 ^-Wort-Abrufe erforderlich sind (sofern der Speicheraufbau if-Wort-phasing erlaubt). Sofern nach dem
ersten it-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 %-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
in das CA-Register 306 und das CLN-Register 308 zurückge-
5G9809/10U
geben und das Abrufen des Codes wird fortgesetzt.
Wenn Zugriff zum Hauptspeicher 30 erforderlich ist, vergleicht die
GU-Steuerlogik^ die sechs signifikantesten Bits der Adresse in
dem GA°»Hegister 306 mit den für jeden Speichersteuermodul gegebenen
Grenzen (wird weiter unten ausführlich berichtet) und wählt den geeigneten Modul aus. Dann wird die Startadresse und
weitere Steuerinformation für die Operation dem ausgewählten Modul in einem Speichersteuerwort zugeführt. Das Steuerwort
wird in de® Eingaberegister JQ2. umgewandelt (assembled) dann
an das Ausgaberegister 30^ weitergeleitet und an den adressierten
Speiehersteuermodul geschickt. Die Ankunft des Steuerwortes
wird von dem Speichersteuermodul bestätigt.
Für Abrufoperationen teilt der Speichersteuermodul der CU-ELnheit
68 durch die Übermittlung eines "Daten-vorhandenN-Signals
(DAP) und der angeforderten Daten an die CU-ELriheit 68 mit,
daß ein Zugriff gewährt wurde„ Die Daten werden von dem IN-Hegister
302 aufgenommen und anschließend dem Programapuffer
if89 dem Stapelpuffer 50, dem - assoziierten Speicher 52 oder,
falls geeignet, dem EWH zugeführt·'.
Die CU-ünheit 68 erhält Daten für Speicheroperationen entweder
durch die Eingabewarteschlange 70 oder den Stapelpuffer 50.
Sie Daten für Speieheroperationen werden in das IN-Register
302 gepufferts bis die CU-Elnhe.it 68 Speicherzugriff erhält.
Mach dem Transfer des Steuerwortes und der Bestätigung des
Erhalts dieses Wortes benachrichtigt der Speichersteuermodul die GU-Einheit 68 von dem Zugriff, in--dem er. ein "Daten-Sende"-Signal
an die CU-Einhelt 68 abgibt. Bei Erhalt des Zugriffs
leitet die CU-Einheit 68 die Daten in das Ausgaberegister
weiter und das Wort wird dann dem ausgewählten Speichersteuer-Hiodul
zugeführt.
509809/1044
Zum besseren Verständnis des physikalischen und begrifflichen
Aufbaus des Hauptprozessormoduls 20 werden nun einige der
grundlegenden Operationskonzepte des Hauptprozessormoduls 20
angegeben·
In der bevorzugten Ausführungsform ist der Hauptprozessormodul
20 als Datenkanal-Verarbeitungseinheit (pipeline processing unit) ausgebildet. Aus diesem Grund können alle Verarbeitungsstellen simultan an verschiedenen Aufgaben arbeiten. Sobald
irgend ein Befehl durch den Datenkanal hindurchgelaufen ist, werden von den verschiedenen Verarbeitungsstellen (processing
stations) 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 Hehrwortsegmenten 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 Hikrooperatoren
aufgeteilt, die von der Aueführungseinheit 62 zur Verarbeitung in eine Warteschlange eingeordnet werden· Sie Programmsteuereinheit 56 entscheidet, welche Daten zur Ausführung des
Kikrooperators 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ührungeeinheit 62 weiter.
Wenn die Aueführungseinheit 62 also MikroOperatoren verarbeitet, sind die erforderlichen Daten la allgemeinen sofort vorhanden
und gestatten* es der Ausführungseinheit 62, die geforderten
Verarbeitungsschritte ohne Verzögerung durchzuführen· Die von der Aueftthrungeeinheit 62 gewonnenen Ergebnisse können entweder
In einem der lokalen Speicherbereiche gespeichert oder durch dl·
SOfIOf/I044
Speiehereinheit 66 und die CÜ-ELnheit 68 dem Hauptspeicher
30 zugeführt werden. Durch Verwendung dieser Datenkanaltechnik wird eine relativ langsame Verarbeitung ohne Gefärdung der
Zuverlässigkeit der-Ausrüstung erzielt.
Zur weiteren Steigerung der Verarbeitungsgeschwindigkeit wird innerhalb des Prozessors 20 ausgiebig von Pufferspeicherbereichen
gebrauch geraacht,, Biese lokalen Speicherbereiche, die'schon
beschrieben sind, werden zur Speicherung des Programittcodes,
eines Teiles des aktiven Programmstapels und häufig auch von aufgerufenen Variablen verwendet·
In einer bevorzugten Ausführungsform wird durch Verwendung von spezielle^ sehr schnellen integrierten Speicherschaltkreisen
(XG) für den Programmpuffer 48, den Stapelpuffer 30
und den assoziierten Speicher 52 die Wartezelt,- die bei der
Vervollständigung von Datentransfers von und zum Hauptspeicher 30 entsteht9 reduziert und manchmal fast eliminiert. Da diese
Speicher autonom gefüllt werden (2 oder if 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» (need followed by demand) ), wird beim
Wiederauffüllen ihres Inhalts die normale Hauptspeicher-Leerlaufzeit
vorteilhaft ausgenutzt. Der Programmpuffer 48 er- *
möglicht eine lokale Speicherung für bis zu 32 60-Bit-Programmwörter
und ermöglicht ein-rasches !anfangen (tight loop capture)
von Programmschleifen mit 32 oder wosiger Wörtern. Eine einmal
im Puffer befindliche Schleife kann wiederholt aus dem Puffer herausgeholt werden s ohne weitere Programmwörter aus dem
Hauptspeicher 30 zu entnehmen«, Der 32»Worte-Stapelpuffer 50
ermöglicht eine lokale Speicherung für (und daher einen schnellen Zugriff zu) Deskriptorens>
Variabein und Steuerwörtern und der Spitze des Stapels eines ausgeführten Jobs· Der assoziierte
509809/1044
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 nach der vorliegenden Erfindung stellt nicht nur eine auf kongeniale Hardware aufbauende
Softwarekonstruktion dar. Vielmehr ist der Hardware-Mechanismus zur Strukturierung und Handhabung des Stapels auf den Hauptprosessormodul
20 zugeschnitten. Dieser Hardware-Stapelmechanismus erlaubt es, daß die Steuerung von untergeordneten Routines, von
Verbindungen zwischen den Prozessen und der Bearbeitung von Unterbrechern in einer wirkungsvollen und einheitlichen V/eise
geschieht.
Der Schutz des Speichers (die Verhinderung, daß ein Programm-Zugriff
zum Speicher erlangt oder daß dem Speicher nicht zugeordnete Änderungen von Daten vorgenommen werden) wird durch
eine Kombination von Hardware- und Software-Mechanismen erreicht. ^1® Hardware-Mechanismen beinhalten 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, Datende.skriptoren,
Segmentde.skriptoren, Speicherung, 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.
509809/1044
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 Entry 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 Unterbrecherbedingung
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 auftreten 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 mehrstufigen Operationssystem
verwendet wird oder in dem normalen Zustand, der sowohl vom Benutzerprogramm als auch vom mehrstufigen Operationssystem
verwendet wird. Die Unterbrecher-Verarbeitungsprozedur des mehrstufigen Operationssystems 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 let, und daß der Hauptprozessor
im Steuerzustand privilegierte Befehle ausführen kann, die im normalen Zustand vom Hauptprozessor 20 nicht durchgeführt
werden.
6Ö9609/10U
Neben diesen zwei Zuständen kann der Hauptprozessormodul 20
außerdem In einem von fünf Unterbrechermoden arbeiten, nämlich in dem Normalemode (CMO), dem Steuermode 1 (CMI)9 dem Steuermode
2 (CM2), dem Steuermode 3 (CM3) und dem Steuermode k (CMIf).
Die Durchführung der Restwertkontrolle (residual checking) bei allen arithmetischen 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 Prozessor erzeugt und die Ursache der Störung im Speicher des Fall-Registers 70 des Prozeseormoduls 20 registriert.
Das Fail-Register (FR) 70, vgl. Fig. 10, befindet sich innerhalb der CU-Einheit 68 des Hauptprozessormoduls 20 und wird eingesetzt,
um zusätzliche Information über den Inneren Prozessoraufbau
und speicherbezogene Fehler-Bedingungen bereitzustellen.
Das FR-Reglster 70 kann als aus drei Teilen bestehend betrachtet
werden; KIn Teil, der die innerhalb des Hauptprozessormoduls
auftretenden Fehler betrifft,ein Teil, der die speicherbezogenen Fehler betrifft und ein 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 der drei Teile des Registers 70 betreffenden Unterbrecher auftaucht bevor das Register gelesen
und geleert ist, wird dieser Teil vollständig mit der Information über den häufigsten Unterbrecher tiberschrieben. In einer Anlage,
die mehr als einen Hauptprozessormodul 20 enthält, können alle
Hauptprozessormoduln 20 in einem Steuerzustand oder einem
509809/1044
normalen Zustand und in einem der Unterbrechermoden arbeiten.
Die einseinen Teile des GPM-Fail-Registers 70 werden folgendermaßen
eingesetzt: Der prozessorinterne Fehlerteil wird für alle prozessor-interne Fehler verwendet Cprozessorinterne,
speicherbezogena Fehler betreffen auch den speicherbezogenen
Teil)«, Der speicherbezogene Teil wird außerdem für die Parität des Speichers, Speicher«= fail 1 und ungültige Zugriffs-Pehler
eingesetzt, sofern der Parameter P2 nicht verwendet wird, in diesem Fall sind dann alle P2 null. Der speicherbezogene Teil
wird außerdem für alle Speicher-fail°»2<»Unterbrecher verwendet.
Das Fortsetzungsbit wird nur bei Alarm» und Unterbrechern verwendet. Die Spelcher-Fail-Ί und-2-Unterbrecher werden weiter
unten ausführlich beschrieben. ·
Zusätzlich zu den obigen Unterbrecherbedingungen meldet der
Speicherteil des Fail-Registers 70 außerdem ©ine Unterbrecher-Reeovery-Routine
mit Hilfe eines Steuermodulteils eines Speichermoduls 30a , der weiter unten beschrieben wird. Sofern, eine
Unterbrecherbedingung wahrgenommen wird, wird ein diese Bedingung anzeigendes Bit in das 27-Bit Fail-Register 70 geleitet. Die
Anzeige des Fehlers findet allerdings in einer 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 abzuspeichernde Daten
beschrieben. Fehlerbedingungen, die weitergegeben werden, enthalten;
Paritats-, Rest-, Kontinuitäts- und Dekodierfehler in
der Ausführungseinheitj Warteschlange-Uberschreibungs- und Restwertfehler
in der Adresseneinheit; interne Fehler in der Programmeinheit
und Speicher fehl er im geschützten Speicher.
5098 0 9/1044
- 5k -
Der prozessorinterne Teil des Fail-Registers 70 nimmt Paritats-,
Rest-, kontinuitäts- und Dekodierfehler wahr. Der speicherbezogene
Teil des Fail-Registers 70 nimmt mehrere verschiedene Typen von Unterbrecherbedingungen wahr· Ein Anschlußfehler
der während des Betriebs zwischen der CU-Einheit 68 und anderen
Teilen des Hauptprozessors 20 wahrgenommen wird , wird ebenso wie ein während einem Zugriff zum Hauptspeicher 30 wahrgenommener
Paritätsfehler dem Fail-Register 70 zugeführt. Außerdem wird vom Fail-Register 70 die Unterbrecherbedingung wahrgenommen und
weitergeleitet, die dann auftritt, wenn eine Adresse im Hauptspeicher 30 nicht existiert, und wenn ein "Speicherzeit AUS^Signal
im Hauptprozessor erscheint· . .
Der Hauptprozessormodul 20 arbeitet in dem Normalmode (CMO)
bis eine Unterbrecherbedingung wahrgenommen wurde. Die ersten drei Steuermoden (CMI, CM2, CM3) gestatten es rekursiven Versuchen,
in die Hardwareunterbrecherroufcine einzugehen^ d.h. in
die Fehlerkontrollogik 58 des Hauptprozessormoduls 20). Die
Steuermode if (CMIt) 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.
Es wird nun auf das Eingabe-ZAusgabeuntersystem der vorliegenden
Erfindung Bezug genommen. Die primäre Funktion des Eingabe-/ Ausgabeuntersystems besteht in der Steuerung und Speicherung
des Transfers von Datenfeldern fester Länge zwischen dem
509809/1OAA
Hauptspeicher 30 (Ebene 1) und den Speichermedien der peripheren Einrichtungen (Ebene 3) der Informationsverarbeitungsanlage.
Die peripheren Einrichtungen stellen die Medien dar, durch welche der Anlagenbenutzer mit der Anlage konxmiziert. In der
erfindungsgemäßen 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 Operationssystems. Das Eingabe-/Ausgabeuntersystem enthält einen oder
mehrere Eingabe«»/Ausgabemodulen 1O8 die als I0M bezeichnet sind,
und eine oder mehrere periphere Steuerschränke 39» vgl. Fig.
und 11 ο Das Eingabe-»/Ausgabeuntersystem 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 Eingaben/Ausgabemodulen 10 und die Anzahl der peripheren Steuerschränke
39 innerhalb eines Eingabe-/Ausgabe-Untersystems
von den Anforderungen der Benutzer abhängig. Diese Grenzen bestehen darin, daß (a) die Gesamtzahl der Hauptprozessormodulen
20 und der Eingabe-/Auag©beiEodulen 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ühruugsform stellt das beim Entwurf
des Eingabe->/Au@gabemoduls 10 angewendete Kodulkonzept eine
wirkungsvolle und ökonomische Befriedigung der Anforderungen
des Benutzers an die Anlage dar». Das Modulbauweise-Konzept betrifft primär die Verbindbarkeit (Interface capability)
und insbesondere die Verbindbarkeit mit peripheren Geräten (peripheral interface capability), die durch die Patenservice-Unterbereiche
gegeben ist« Diese Unterbereiche sind asynchron
509809/1044
* 56 -
und stellen getrennte periphere Verbindbarkeit sicher.
Diese Eindeutigkeit, die ans der asynchronen Natur der modularen Unterbereiche abgeleitet ist, stellt einen failsoft-Vorteil
dar. Datenservice-Störungen sind auf einen speziellen Anschlußbereich (Interface area) beschränkt und gestatten es
daher den restlichen Anschlußeinrichtungen, ihre Arbeit fortzusetzen. 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-Mode in Verbindung zu treten, wobei
die phasengeordnete Speichertransfer-Eigenschaften (phased memory transfer) der Anlage verwendet werden. Diese wirkungsvolle
Angleichung der Geschwindigkeit der Einrichtungen an den Speicher erzeugt eine höhere Eingabe-ZAusgabemodul-Transferrate.
Die Modulbauweise des Eingabe-/Ausgabemoduls 10 wird durch
Verwendung von Adaptern erreicht, vgl* Fig. 12. Diese Adapter sind weiter unten definiert· Der PC-Adapter A (PC-ADP-A)
liefert dem ersten Steuerschrank (PCC) 39 zehn periphere Steuereinrichtungskanäle (PC) und Ready-line-Einrichtungen
für drei Anschlüsse· Der PC-Adapter B (PC-ADP-B) liefert dem zweiten PCC 39 zehn periphere Steuereinrichtungskanäle (PC)
und Ready-line-Einrichtungen für vier Anschlüsse· Der Plattendatei-Steuereinrichtungsadapter
A (DFC/ADP-A) stellt vier Plattendate'i-Steuereinrichtungskanäle DFG zum ersten PCC 39
her, die nur den Platten-Steuereinrichtungen zur Verfügung stehen. Der Plattendatei-ßteuereinrichtuagsadapter B (DFC-ADP-B)
liefert vier Plattendatei-Steuereinrichtungekanäle zum zweiten PCC 39$ die nur den Platten-Steuereinrichtungen zur
Verfügung stehen. Der Abtastkanal (scan bue)-Adapter (SC/ADP)
liefert Abtast-Kanaleinrichtungeü für den Eingabe-/Ausgabemodul 10 zum Betreiben des Datenkonunikationsprozessors (DCP) 36
4 4
ORIGINAL INSPECTED
und des Plattendatei-Optimierers (DPO) 40. Der Plattendatei-Optimiereradapter
(DFO/ADP) liefert zwei Plattendatei-Optimiererkanäle
(DFO) f der Datenkommunikationsprozessor-Adapter Δ (DCP)
liefert einen Datenkommunikationsprozessor-Kanal (DCP) für den ersten Datenkommunikationsprozessor 36· Der Datenkommunikationsprozessor-Adapter
B (DCP/ADP-B) liefert einen DCP-Kanal pro Adapter (für die DCPs 2, 3 und if werden drei Adapter verwendet).
Der Speicherkanaladapter(HB/ADP) liefert Einrichtungen
zum Betrieb des Ei2igabe-/Ausgabemoduls mit einer zweiten Gruppe
von acht Speichern. Der Sehutzschalter-Adapter A (SWI/ADP-A)
liefert Einrichtungen zum Betrieb .mit zwei (E) Speichermodulen
30a. (Zwei werfen für die ersten vier Speichermodulen 30a verwendet)
ο Der Sehutzschalter-Adapter B (SWI/ADP-B) liefert Einrichtungen
zum Betrieb mit zwei Speichermodulen 30a (werden für alle zusätzlichen Speichermodulen 30a eingesetzt).
Die beim Entwurf des Eingabe-/Ausgabemoduls 10 vorgesehene Modulbauweise gestattet es dem Eingabe~/Ausgabeuntersystem,
eine Vielzahl von lOM/PCC-Kombinationen zu enthalten und erlaubt daher den Anschluß peripherer Einrichtungen in vielen Konfigurationen«,
Als Beispiel möglicher Typen von Anschlußverbindungen zwischen den Eingabe-/Ausgabeuntersystemen der vorliegenden
Erfindung und peripheren Einrichtungen ist Fig. 10 angegeben.
Das ELngabe«/Au8gabeuntersystem kann, wie in dieser Figur gezeigt
istj ü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ß demBenutzer
der Anlage maximaler Durchlauf und Flexibilität zukommt und
dabei ein Minimum an Hauptprozessororganisation (overhead) erforderlich ist. Der Eingabe-/Ausgabemodul 10 ist dadurch
509809/1044
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 (request
"map" concept) dar. Im wesentlichen wird dabei der Eingabe-/Ausgabemodul
10 über eine Warteschlange von einem"Bild" von Eingabe-/Ausgabeanforderungen betrieben, das sich im Hauptspeicher
30 befindet. Wird eine Eingabe-/Ausgabeoperation verlangt, so ändert der Hauptprozessormodul 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 er die Eingabe-/Ausgabeanforderung
erkennt und auslöst. Da der Hauptspeicher 30 (in dem sich das Bild befindet) in der bevorzugten Ausführungsform ein gemeinsam genutztes Gerät (shared resource) darstellt,
können der Hauptprozessor 20 und die ELngabe-/Ausgabemoduln 10 asynchron zu dem Bild Zugriff erlangen und es asynchron verarbeiten.
Sofern der 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 Eüngabe-/Ausgabemodul-Transferzeiten von und zu 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-/Ausgabemodul 10 einen speziellen,
festverdrahteten Multiprozessor, der das Bild (map) bedient. Zusätzlich zu diesem Überlappungsvorteil steigert der Eingabe-/
Ausgabemodul 10 den Systemdurchfluß durch verschiedene Techniken, so z.B. durch die Verringerung der Systemprozessor-Operationen,
indem Realzeit-Dialog-Schleifen (real time interactive loops, z.B. der Plattendateioptimierer
509809/1 ΟΛΑ
direkt und ohne Durchlauf betrieben warden, oder
durch die Verringerung der Systemprozessor-Operationen, indem Schlußzyklen der Geräte (device termination cycles .) ablaufen,
die den Durchlauf erhöhen. Außerdem läßt sich der Systemdurchfluß durch eine Aufteilung der Datenbedienung des Eingabe-/Ausgabemoduls
10 in Unterbereiche erhöhen, die speziell so angelegt ist, daß sie den vier prinzipiellen Klassen von Datendurchfluß
Rechnung trägt9 deh. dem schubweisen Durchlauf (Zeilendrucker9
Kartenleser etc«,)» dem schnellen Durchlauf (Plattendateien) g der Datenvermittlung (DatenkoBmunikationsprozessor 36)
und dem Healzeit-Dialog-Durchlauf (Plattendateibptimierer IfO),
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 ihre
Geräteklassen gepuffert, wodurch sie es. einem Eingabe-/Aüsgabemodul
10 ermöglichen, mit der Durchlaufkapazität eines Speichers (memory port) des Speicheruntersystems zu laufen. Erhöhter
Durchfluß wird außerdem dadurch erreicht, daß es dem Eingabe-/ Ausgabemodul 10 ermöglicht wird,, einen T-ransferpfad zu einem
Gerät auszuwählen, wenn dieser Pfad verfügbar wird (im weiteren als aufgeschobene Verbindung bezeichnet).
Wie in Fig. 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 in Betrieb gesetzt werden, so ist mit der Herstellung des Pfades„ über den ein Prozeß an D2 geliefert werden kann, gleich- :
zeitig ein Auswählvorgang zwischen zwei Eingabe-/Ausgabeuntersystemen
(E/A-Untersystem 1 und Z) und zwischen Kanälen A und B oder C und D) innerhalb der einzelnen Eingabe-/Ausgabe-Untersysteme
verbunden. Wird der Pfad durch ein Programm im Voraue festgelegt, so
509809/10-44
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 Parallelismus 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-/Ausgabemodul 10 unabhängig von irgendwelchen-Hauptprozessormodul-Aufgaben
bedient (serviced), sobald ein Pfad zu der gewählten Einrichtung verfügbar ist.
Damit der Hauptprozessormodul 20 E/A-Anforderungen in eine Warteschlange bringen, die Eingabe-/Ausgabemoduln 10
Pfade auswählen und die Anforderungen oder Abrufe (requests) bedienen (service) 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
(I/0-Control block base address pointers, IOCB),
(Warteschlangekopf- und Warteschlangeschwanz-Tabellen) zu Beginn (kalter Start) in den Ebene-1-Speicher. Diese Tabellen
ermöglichen es jedem Eingabe-/Ausgabemodul 10, die von ihm bedienbaren Einrichtungen
509809/1044
und die Ordnung oder Priorität der Austauscheinrichtungen
(exchange devices) zu kennen,' sie bilden den von den Hauptprozessormoduln 20 verwendeten Mechanismus, um die Anforderungen
(requests) in Warteschlangen anzuordnen. Wenn eine Anforderung
verarbeitet wird (oder der Beginn eines E/A-Prozesses), so erfolgt durch einen Eingabe-/Ausgabeiaodul 10 ein Datentransfer
und der Hauptprozessormodul 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 RLngabe~/Ausgabemodulen über die Ebene-1-Speicherplätze
informierens 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 (to service)„ Alle E/A»Anforderungen werden auf
der als Hausadresse-Ebene bezeichneten Ebene gemacht. D.h., jeder Prozessor, der zur Durchführung von E/A-Anforderungen
auffordert9 muß eine Einheiten-Bezeichnungsnummer (unit designate
numbers ÜD) zur "Verwendung als Index in die Einheiten-Tabelle
(IJT) 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-Unterbrecher
bits (status queue header interrupt bit, 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 werdane ■
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. Ik gibt die Zusammensetzung der Transferrate eines Eingabe-/
Ausgabemoduls IO 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-Uhtersystem-Bildes
(IOSM) 312 dargestellt, welches für den in Fig. 13 angegebenen
Aufbau des E/A-Untersystems erforderlich ist. Wie sich der Fig. 15 entnehmen läßt, ist das IOSM-Bild 312 aus einer
Hausadresse (HA) 3^ht einer Einheiten-Tabelle (UT 316), der
durch einen Kopf 318 (IOQH) und einen Schwanz (IOQP) 320
definierten Warteschlangetabelle, dem Status-Warteschlangekopfteil
(status queue header, SQH) 322 und einem ELngabe-/Ausgabe-Steuerblock
(IOCB) 32^· zusammengesetzt. Die folgenden Absätze
sind einer Beschreibung dieser Elemente gewidmet.
Die Hausadresse 31 ^ besteht aus einem So ftware-auf gebaut en
Grundwort, welches zur Kommunikation mit einem Eingabe-/Ausgabemodul
10 verwendet wird. Die Hausadresse 3H 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 Fig.
dargestellt und in Tabelle 1 definiert.
509809/1044
Bit(s)
DEFINITION DES HAÜSADRESSENFELDES
Funktion
Parität (51) Kennbit (50-^8)
Sperrung
Bits W bis Steuern (Ig bis
Bits (39 bis 36)
Einheiten-Bezeichnung (UD) (35 bis 28)
Kanalnummer (2? bis 23) Bits (22 bis 20)
j, Qj UT oder
(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 HÄ-Fdrter zur IQM-Ver-"
Wendung zur Verfügung stehen. Wird zurückgesetzt, wenn IOM die HA-Wörter
bedient
nicht verwendet
Definieren die Steuercodes des HA-Wortes
nicht verwendet
8-Bit-Code, wird mit der UT-Basisadresse verwendet, um aus dem Ebene-1-Speicher
das -ÜT-Wort für die in Betrieb zu setzende Einrichtung zu indizieren
und zu holen, wird mit der QH-Basisadresse verwendete um das QH-Wort,
welches zur lOCB-Basisadresse zeigt, aus dem Ebene-1-Speicher zu holen.
identifiziert einen der 32 möglichen lOM-Kanäle
nicht verwendet
werden zur Herstellung einer neuen Basisadresse öder, während einer
Kaltstart-Operation, zum Transfer folgender Basisadressen in"das IOM
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. ÜTi20-Bit-Adresse, die die Basisadresse
von UT anzeigt.
c. SQieine 20-Bit-Adresse, die auf ein
Status-Warteschlange-Kopfteil (SQH) zeigt.
adresse 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.
509809/1044
-■65-
Für jede periphere Einrichtung (maximal bis zu 255 Einrichtungen)
ist in den E/A-Untersystem ein UT-Wort erforderlich. Jedes UT-Wort stellt das durch den XOM 10 verwendete Hauptelement dar
und dient als E/A- Anforderung. Jedes UT-Wort für einen Austausch (exchange) enthält Zeiger für die erste Einheitenbezeichnungsnumnier
und die nächsten Einheitenbezeiehnungsnummern (NUD) und deren zugehörige Kanalnummer-Basisadressen-Tabellierung
für den Typ von Einrichtungens der für die E/A-Anforderung
verwendet fd.rd„ Die verschiedenen Felder in der Einheitentabelle
UT sind in Fig. 1? gezeigt und in Tabelle 2 definiert.
Die Formate und Definitionen des Eingabe-»/Ausgabe-Warteschlangenkopfes(XOQH)
und des EingabeVAusgabe~Warteschlangeschwanzes
(XOQT) sind in den Figo 18 und 19 und in den Tabellen 3 und If '
angegebene ■ . -
Eine Stätus°Warteschlange (SQ) besteht aus beendeten E/A-Steuerblöcken
3Zk (1OCB)3 die von einem-IQSf 10 zusammengesetzt sindo Wenn eine Anforderung "beendet ist, so fügt
dieser Etagabe/ÄusgabemodOl (XQM) IO den. Sndssustand
(termination status) in das fünft© Wortfeld des E/A-Steuerblocks
(XOCB)0 Der XOCB wird dann von der Sinheiten-Warteschlange
herausgenommen und an die Status-Warteschlaage (SQ) angehärigt.
Wenn das Software~attentioxi~Bit la. üA-Steuerwort (XOCW)
gesetzt ist (durch Software- gesetzt)^ oder wenn das Unterbrecherbit
in dem SQH zu der Zeit gesetzt istsin der der XOCB
an die SQ angehängt wird9 so wird ein Kanalunterbrechersignal
vom XOM 10 ah den Hauptprozessor 20 abgegeben* Wenn ein nicht
kanalbezogener Fehler wahrgenommen wird9 so sendet der lOM 10
ein XOM~Fehler-Unterbrechersignal und kein Kanalunterbrechersignal
an den Hauptprozessor 20«, ■· . " "
509809/104A
- 66 -Tabelle 2
DEFINITION DES EINHEITEN-TABELLENWORTES
Bit(s) Parität. (51) Kennbit (50 bis Sperrung (LK) (itf)
Magnetband (MGT) (if6)
Plattenstapel (DSPK)
Bits (I^ » 40)
Plattendatei»
optimierer (DFO) (39)
Exchange (EX) (38).
Job (JB) (37) Funktion
stellt eine ungerade Parität für das zu transferierende Wort her
kennzeichnet das Wort als ein einfach· genaues (000) Wort
gibt an, sofern gesetzt, daß das UT-Wort weiterhin verarbeitet wird
gibt an, sofern gesetzt, daß diese Job-Anforderung ein Magnetband betrifft
(durch Software gesetzt)
gibt an, sofern gesetzt, daß diese Jobt-iAnforderung 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, daß die Einheit mit einem Exchange verbunden
ist. Sofern dieses Bit gesetzt ist (und bei gesetztem Job-Bit)f wird ein
"ring walk" ausgeführt (das Bit wird durch Software gesetzt). Wir 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 si 1) und nicht mit dem
DFO (Bit 39) verwendet.
509809/10U
. 67 -
belegt (BZ) (36) gibt an, sofern gesetzt, daß diese
Einheit belegt ist (durch den IOM gesetzt)
#V
'Erste Einheiten-Bezeichnung (FUD) (35 his
28) . zeigt auf die erste Einheiten-Be
zeichnungsnummer, die sich auf den Exchange bezieht
adresse (27 bis 23) 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»
*) Letzter Kanal des
(22 und 21) gibt die zwei am wenigstens signi
fikanten Bits der letzten Kanalnummer des Exchanges an, für den die Einrichtung eingesetzt ist·
(16) gibt an, sofern gesetzt, daß die
letzte Einheiten-Bezeichnung im
x) Nächste Einheiten-Bezeichnung (NUD)
(15 his 8). zeigt auf die nächste Einheiten-
Bezeichnungsnummer, die mit dem Exchange verbunden ist.
(7 bis 3) . diese Bits geben den Kanal an,
. der zur Bedienung der Einrichtung verwendet wurde (durch den IOH gesetzt)
«") gelten nur für Exchange-Einrichtungen
509809/1OAA
- 6ο -
Tabelle 3
WARTESCHLANGE-KOPF (IOQH)
WARTESCHLANGE-KOPF (IOQH)
Bit(s) ' Funktion
Parität (51) , liefert eine ungerade Parität für
das zu transferierende Wort
Kennbits (50 bis if8) kennzeichnet das Wort als einfach -
genaues (000) Wort
(If7 bis 20) nur für Software-Verwendung
(19 bis O) 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.
809/1OAA
Bit(s) Parität (51)
Kennbits (50 bis if8)
(if7 bis 20) (19 bis O)
Tabelle 4
WARTESCHLANGE-SCHWANZ (IOQT)
WARTESCHLANGE-SCHWANZ (IOQT)
Funktion
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.
509809/1044
Ein Status-Warteschlange-Kopfteil (SQH), vgl. Fig. 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 (Iocked-fetched) und
bezüglich einer Nullbedingung getestet (Bit if1 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 beendeten
IOCB in das nächste Verbindungsfeld (link fild, NL) des zuletzt
beendeten IOCB und außerdem in das Schwanzadressenfeld des SQH eingefügt. Die verschiedenen Felder des SQH-Wortes sind in
Tabelle 3 definiert.
In einer bevorzugten Ausfuhrungsform besteht ein IOCB, vgl.
Fig. 21, aus einem Block von sechs (oder mehr) 51-Bit-Wörtern.
Diese Wörter werden zur Auslösung von Serviceanforderungen (IOCW} zur Vermittlung von Serviceanforderungen, zur Weiterleitung
von Anforderungen und Anforderung-Endzuständen (requests termination statuses) 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 IOM 10, verwendet die Resultat-Deskriptorinformation
um ein Resultat-Deskriptorwort (RD) zu bilden und speichert dieses Resultatdeskriptorwort in dem
sechsten Wortfeld des IOCB. Der beendete IOCB wird dann an die Status-Warteschlange (SQ) angefügt. Um die
Beendigung einer Anforderung abzuschließen, wird der Warteschlangekopf (QH) und der Warteschlangeschwanz (QT) der QH-
509809/1044
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.
50 98 0 9/1OAA
243720Q
STATUS-WARTESCHLANGEKOPFTEIL
Bit(s) Funktion
Bit(s) Funktion
Parität (51) liefert ungerade Parität für das
zu transferierende Wort
Kennbits (50 bis 48) kennzeichnen das Wort als einfach-
genaues (000) Wort
Sperrung (LK) (47) gibt an, sofern gesetzt, daß das
SQH-Wort weiter verarbeitet wird
Bit (46) nicht verwendet
Änderung (45) benachrichtigt die Software, sofern
gesetzt, daß ein Status-Änderungsvektor erschienen ist.
CPM-Nummer (44 bis 42) zeigt auf den CPM, der durch einen
Kanalunterbrecher oder Zählerunterbrecher unterbrochen wird.
Null (41) 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.
Unterbrecher (40) gibt an, sofern gesetzt (durch Software), daß das CPM-Nummernfeld bei
Jobende unterbrochen werden soll (wird durch I0M zurückgesetzt)
Kopf (39 bis 20) eine 20-Bitadresse, die auf den IOCB
der ersten fertigen Einrichtung zeigt (wird nicht verwendet, sofern
Bit 41 a O)
Schwanz (19 bis 0) eine 20-Bitadresse, die auf den IOCB
der letzten fertigen Einrichtung zeigt (wird nicht verwendet, sofern
Bit 41 β 0)
509809/1044
Die Steuerung wird dann der E/A-Startlogik übertragen, um die
nächste Anforderung auszulosen. Die verschiedenen Felder des IOCB sind in Tabelle 6 definiert. Das IOCW, welches in Fig. 22
dargestellt ist, ist das vierte Wort in dem IOCB. Das Eingabe/ Ausgabe-Steuerwort CK)CW) enthält ein Standardsteuerfeld (SCF),
welches Information·enthält, die fUr die Datenservicebereiche
(wie z.B. das Speicher-Schutzbit, ein Speicher-Versagungsbit und ein Software-tensionbit des IOH-10) nützlich ist.* Die
verschiedenen Felder des IOCW sind in Tabelle 7 definiert.
509 809/1OAA
Tabelle 6 EINGABE/AUSGABE-STEUESBLOCK (IOCB)
Wortfeld Funktion
E/A-Verkettung (ML)
Sidelink
Pufferdeskriptor
IOCW
Ebene-1-Adresse des nächsten IOCB, die für diese Einrichtung (Bits O bis
19) in eine Warteschlange eingereiht
ist
Verbindung zu einem anderen Job in dieser Seitenkette (side chain);
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 ^O bis )
c) Adresse des nächsten IOCB in der Seitenkette (Bits 20 bis 29)
d) Bits 8 bis 19, nicht verwendet
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 O 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 IOCW-Inhaltes, vgl. die Fig. 9 bis
und die Tabellen 9 bis 7.
509809/1044
Wortfeld Funktion
CDL dieses Wortfeld, enthält das Kanal-
bezeichnungs-ebeneninformationswort (CDL), welches zu dem Kanal transferiert
wird, der für die Operation ausgewählt wurde
IOED die Beendigung (normal oder Fehler)
der Operation veranlaßt den IOM, in dieses Wortfeld die Resultat-Deskriptorinformation
(RD) zu tibertragen.
Hinweis: Der übersetzer addiert bei der endgültigen Adresse
(Bereichsbasisadresse + Pufferlänge).
509809/ 1 OA A
Tabelle 7
IOCW
IOCW
Die verschiedenen Felder des IOCW sind folgendermaßen definiert: x
Parität (51) liefert eine ungerade Parität für das
zu transferierende Wort
Kennbits (50 bis 48) kennzeichnet das Wort ale ein einfachgenaues (000) Wort
ASCII (ASC) (if7) gibt an, sofern gesetzt, daß eine
ASCII-Übersetzung erforderlich ist
Link (LK) (46) gibt an, sofern gesetzt, daß ein
Link zu einem anderen IOCW erforderlich ist. (Die Adresse des neuen
IOCW wird in den Bits 0 bis 19 gespeichert)
Software Attention (SA)
(45) 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
Eingabe/Ausgabe (E/A)
(44) gibt an, sofern gesetzt, daß der
Transfer eine Eingabeoperation darstellt. Gibt an, sofern zurückgesetzt,
daß der Transfer eine Ausgabeoperation darstellt
Speicher-Verhinderung ·
(MINH) (43) gibt an, sofern gesetzt, daß keine
Daten aus oder in den Speicher
transferiert werden
übersetzen (TRA) (42) gibt an, sofern gesetzt, daß eine
interne IOM-Übersetzung benötigt wird
509809/1OAA
- 11 -
Bit(s) Funktion
Frame-Länge (FML)
Speicher-Schutz (MP) (IfQ)
ßückwärtsAorwärts (B/F) (39)
Kennbit-Steuerung (TCTL) (37 und 36)
(35 bis O) 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-!-Speicher während eines
Schreibvorganges nicht in einen Speicherplatz einspeichert und sendet
ein Fail-Signal, wenn das- Speicherwort des Bit 2*8 mit einem Wert 1 enthält
gibt , sofern gesetzt, eine RUckwärtsOperation
einer Bandeinheit und, sofern zurückgesetzt, eine Vorwärtsoperation einer Bandeinheit an.
besitzen folgende Bedeutung: 37 36 ·
0 O speichere einfachgenaue
Kennbits
1 1 speichere doppelt genaue
Kennbits
0 1 speichere Programm-Kennbits
1 O Kennbit-Feld-Transfer nicht verwendet
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 Datentransfers zwischen den Ebene-1-Speichermedien
und allen peripheren Einheiten unabhängig von
den Hauptprozessoren 20 eingesetzt. Die Eingabe/Ausgabemodulen 10
509809/1044
empfangen Befehle von den 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 (terminate information) 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-/Ausgäbevorgänge
(tolerations) von bis zu 28 peripheren Steuereinrichtungen (PC) 38 zu verarbeiten und maximal bis zu 255 peripheren Einrichtungen,
vier Datenkommunikationsprozessoren 36 und vier Plattendateioptimierer (DPO) IfO zu versorgen. Physikalisch kann
jeder Eingabe-/Ausgabemodul 10 als in die folgenden sechs Funktionalbereiche unterteilt betrachtet werden, vgl. Fig. 23:
(1) der übersetzer 73, (2) die Speicheranschlußeinheit (MIU) 7^,
(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 Übersetzer 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
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.
509809/10U
Die Speicheranschlußeinheit (MIÜ) 7k führt alle Datentransfers
von der Ebene-1 zur Ebene-3 zwischen dem Eingabe-/Ausgabemodul 10 und bis zu 8 Ebene-1-Speichersteuereinrichtungen (MCM) durch.
Die MIÜ 7k nimmt Fehlerbedingungen des Ebene-1-Speichers wahr
und überträgt diese an die anfragende Funktionseinheit des Eingabe-/Ausgabemoduls 10 und an den übersetzer 72. Die MIU Ik
verarbeitet die durch die Funktionseinheiten des Eingabe-/Ausgabemoduls
10 erfolgenden Zugriffsanforderungen an d.en 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 (scan interface unit",SCI) 76, die
die Datenkommunikationsprozessor-Speicheranschlußeinheit (DCI) 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) MO kommuniziert. Der Abtastkanal 79 zu
den vier DFOs ifO wird von zwei Eingabe-/Ausgabemodu3n 10 gleichzeitig benutzt. Der übersetzer 72 veranlaßt Abtastoperationen
durch Übermittlung eines Abtaststeuerwortes zur Abtastanschlußeinheit
(SCI) 76. Wenn eine Abtast-Aus-Operation (scan-out) 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
in das Register, welches im übersetzer 72 das B-Register genannt wird. Wenn durch, die Abtast-Anschlußeinheit
76 ein Fehler wahrgenommen wird, so wird diese Fehlerinformation von der Abtast-Anschlußeinheit 76 in das F-Register bezeichnete
509809/1044
Register des Übersetzers 72 gegeben. Die von der Abtast-Aaschlußeinheit
76 wahrgenommenen Fehler stellen sogenannte "nicht bereit"-Fehler
dar, die dann vorkommen, wenn ein über den Abtastkanal 79 adressierter Plattendateioptimierer ZfO oder ein Datenkommunikationsprozessor
36 nicht mit einem "Bereit"-Signal
innerhalb von drei Mikrosekunden antwortet, sie stellen sogenannte
Modul-Fehler dar, die dann vorkommen, wenn ein über den Abtastkanal 79 adressierter Plattendateioptimierer kO oder
Datenkommunikationsprozessor 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 Speichertransferoperationen
schließen folgende Operationen ein: (a) Holen (ein Wort); (b) Speichern mit flashback (ein Wort); und
(c) geschütztes Speichern mit flashback (ein Wort). Alle von der DCI 7B oder der Speicheranschlußeinheit 7 k wahrgenommenen
Fehler bei einer DCI-Speicheranforderung werden in den Datenkommunikationsprozessor
36 umgesetzt, der die Speicheranforderung ausgelöst hat.
Die periphere Steueranschlußeinheit (PCI) 80 ermöglicht es, an den Eingabe-/Ausgabemodul 10 bis zu 20 periphere Steuereinrichtungen
(PC) 38 anzuschließen und den Datentransfer zwischen diesen Steuereinrichtungen und der Speicheranschlußeinheit
(MIU.) 7k durch den übersetzer 72 zu koordinieren. In
der bevorzugten Ausführungsform benötigt jede periphere Steuereinrichtung
(PC) 38 zum Transfer der Daten einen Servicezyklus von einer Mikrosekunde Dauer. Durch eine Überlappung der
509809/1044
Servicezyklen und durch die Verwendung lokaler Speicherfenster (eine 1-Taktperiode, während der eine bestimmte Operation
durchgeführt werden kann, sofern keine höhere Priorität angefordert wird), ist es möglich^ alle zwanzig Kanäle im Multiplexverfahren
zu betreiben.
Mit der Plattendatei-Änschlußeinheit (DFI) 82 können bis zu
acht Plattendateisteuergeräte (DFC)-Bi mit einem ELngabe-/Ausgabemodul
10 verbunden werden*
Die DFI 82 enthält zwei unabhängige modulare Teile 9 γόη denen
jeder vier Datenkanäle, die an- je ein DFG 81 angeschlossen sind, bedientο Jeder Teil steuert über einen 16-Bit-Datenkanal
die Datentransfers mittels, der DFCs mit einer Transferrate von zwei
8-Bit-Zeichen pro Transferzeito Die Ebene-!-Transferrate
beträgt zwei Worte (2x1+8 Bits) pro Transferzeit. Jeder Datenkanal
enthält einen Vier-Wort-Datenspeicherbereich, einen sogenannten
lokalen Datenspeicher(MD)0 Auf Befehl des Übersetzers
72 löst die Plattendatei=AnsehluBeinheit 82 Anforderungen mit
den zugehörigen Plattendateisteuergeräten. (DFCs) 81 aus.
Während Datentransferoperationen tritt die Plattendatei»An»
sehlußeinheit 82 mit der SpeicheransehlEBeiaheit 7k ia Verbindung
9 um einen Ebene«=.1=Zugriff zu erhalten. Bei Jobende
übermittelt die Plattendatei"Anschlußeinheit 82 dem übersetzer
72 den Endstatus und wartet dann auf eine erneute Inbetriebnahme«
Der gesamte Fluß der SteuerTOrgänge zwischen dem Hauptspeicher
30 und bis zu 235 peripheren Einrichtungen erfolgt über den als
Speicheranschlußeinheit 7k bezeichneten Unterbereich des IOM,
den als übersetzer 72 bezeichneten Unterbereiches des IOM
509809/1OA
und einen der vier IOM-Unterbereiehe, die pufferbar sind, um
sich der ihnen zugeordneten Klasse von Datentransfers anzupassen, vgl. Fig. 2h· Der übersetzer 72 bringt den Steuervorgang
für eine Jobanforderung je nach der Datenklasse (d.O. 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 7kl 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 7k*
Typische periphere Einrichtungen, die den einzelnen Datentrans ferklassen zugeordnet sind, sind in Fig. 25 dargestellt.
Außerdem sind in Fig. 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 Fig. 3» i& der die Anschlußeigenschaften
(interface capability) für den Fall angegeben sind, dass 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.
509809/1044
- 83 -
Die periphere Steueranschlußeinheit (PCI) 8O 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 ELngabe»/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 5 Kanäle für Groß-Steuereinrichtungen
und bis zu 5 Kanäle für kleine Steuereinrichtungen enthält, vgl. Fig. 2„ In jedem der PCC-Steuerschränke 39 sind die
großen Kanäle mit 0 bis if 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 (single line control und die magnetic tape control (MTC) ) können direkt an die
peripheren Einheiten angeschlossen sein, oder, nur im Fall der MTC9 über Exchanges angeschlossen sein. Alle nichtverwendeten
Kanäle im PCC-Steuerschrank 39 werden leer gelassen.
Die periphere Steueranschlußeinheit 80 bündelt (multiplex) alle zwanzig Kanäle 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. Fig. 3, d.h. die
Verwendung von zwei Eingabe-/Ausgabemodulen 10 und geeigneter Exchanges (Zf χ 16) ermöglicht den Zugriff von 64 Magnetbandeinheiten
(MTU) an jeden der beiden Eingabe-/Ausgabemodulen 10. Wie in Fig..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 singleline-Steuereinrichtungen
(SLC) 87.
509 8-0 9/1044
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 ¥on 4 Kanälen, mit-einer gesamten Plattendatei-Kanalkapazität
▼on 3 Kanälen pro Singahe-/Ausgabemodul 10· Jeder der vier
Kanäle eines Bereiches der DFI 82 kann einen einzelnen DFI-.PCO-Steuerschrank
(DFI/PCC-cabinet) 81 bedienen· Dieser Steuersckrank
enthält nur große Kanäle (maximal h), die entweder
citn Flattendateien oder den Plattendstapeln zugeordnet sind.
Me Kanäle Mannen an die peripheren Einrichtungen entweder direkt
oder über Exchanges angeschlossen sein. In einer typischen» in ?igo 5 gezeichneten Ausbildungsform erlaubt die Verwendung von
zwei iiainaien DFIs (3 Kanäle pro I0M für jede Plattendatei
and Jeden Plattenstapel) und geeignete Exchanges (2 χ 24 ELa&teadateien, 2 χ 16 für die Plattenstapel) den Zugriff von
80 Plattendatei-Elektronikeinheiten (DFü) (400 Plattendatei-Speichereinheiten)
und 64 Plattenstapel (DPQ) zu jedem der beiden Mngabe-/Ausgabemodulen 10 (IOM 1 oder IOM 2)·
Die Abtastanschlußeinheit (SCI) 76 besteht aus zwei Bereichen,
einem PFO-Abtastanechluß 76a und einem DCP Abtastanschluß 76b«
Der Platiendateioptimierer (DFO)-Abtastanschluß 76a stellt die Abtast-SiaL- und Abtast-Aus-Steuerung für bis zu k BFOs 40 über
den Abtastkanal her. Sofern ein zweiter Eingabe-/Ausgabemodul
10 eingesetzt wird, wird der DFO-Abtastkanal von beiden IOM ,gemeinsam benutzt. Der DCP-Abtastanschluß 76b stellt die Abtast-Aus«Steuerung
her und liefert Über einen Abtastkanal eine Verbindung mit bis zu 4 BCP 36. Die Abtastanschlußeinheit 76
wird nicht für DCP-Abtast-län-Funktionen (DCP scan-in functions)
eingesetzt 9 die durch den Datenkommunikationsprozessor 36 ausgelöst
werden· Wegen dieser Funktionen stellt der Datenkommunikationsprozessor 36 über die Speicheranschlußeinheit 74 sine
direkte Verbindung zum Hauptspeicher 30 her· Der DCP-Abtast-
509809/1044
kanal 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-/Ausgabemodul
ausgelöste Abtast-Aus-Operation, sie liefert außerdem
den Datenanschluß für die von dem Plattendateioptimierer ausgelösten
Abtast-Ein-Operationen. In den Eingabe-/Ausgabemoduln
10 sind Anschlüsse für bis zu k Datenkommunikationsprozessoren
36 vorgesehen», Die Verwendung von zwei Eingabe-/Ausgabemodu3n
10 in einer Anlage gestattet den Anschluß von 8 Datenkommunikationsprozessoren
36·
In Fig. 26 ist eine typische AnschluE-Konfiguratioii zwischen
den Eingabe-/Ausgabemodul2i .10, den Übersetzern 72 für die
Speichermodulen 30a, und den Hauptprozessormodulen 20 dargestellt,,
Im folgenden wird eine kurz® Beschreibung der Anschlußkapazität der Unterbereiche der Speieheranschlußeinheit
?if eines Eingabe~/Ausgabemoduls mit dem Hauptspeicher 30 und
eines Übersetzer-Unterbereiches 72 eines Eingabe-/Ausgabemoduls 10 mit dem Hauptprozessormodul 20 der Anlage geliefert. Der
Speicher aiischlußeinheit-'ünt erber eich enthält 8 Anschlußbereiche,
vgl«Fig. 26. Jeder Anschlußbereich ist einem bestimmten Speichersteuermodul
(MCM) 72 zugeordnet und mit diesem über eine Speicher-Sammelleitung
verbunden. Der lOM/MCM-Anschluß mit Sammelleitung
wird im weiteren als Speicher-Benutzerpaar bezeichnet. Eine
ähnliche Einrichtung existiert innerhalb des Hauptprozessormöduls (CHI) 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
CPMAl(M-Anschluß mit Sammelleitung wird auch als -Speicher-Benutzerpaar
bezeichnet. In der bevorzugten Ausführungsform beträgt die
Anschlußkapazität eines MCM 72 8 Speichersammelleitungen, von
509809/1044
denen jede mit einem und nur einen Eingabe-/Ausgabemodul 10 oder Hauptprozeesoraodul 20 verbunden ist. Aus diesem Grund
ist diQ maximale Anzahl der an einen MCM 72 anschließbarem
Häuptprozeasormodul 20 und Eingabe-/Ausgabemodulen 10 auf 8 begrenzt.
Sie maximale Anzahl der in einer erfindungsgemäßen 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 Hauptprozessormoduin
20 und zwei Speichersteuermodul (MCM) 72· Dieser Aufbau
sieht insgesamt δ 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 (^), ist
auch dargestellt* Jeder dieser MCM besitzt in der bevorzugten Ausführungsform der Erfindung Zugriff zu 262, Ilfif Wörtern des
Speichers (If MSU von je 65,536 Wörtern). Jeder Eingabe-/Ausgabemodul
10 oder jeder Hauptprozessormodul 20 besitzt daher, bei einem der Fig. 26 entsprechenden Aufbau, einen Zugriff
zu 5%k 288 Wörtern des Speichere.
Der Anschluß zwischen den Eingabe-/Ausgabemodu3n 10 und den
Hauptprozessormoduln 20 besteht hur aus einer Unterbrecher-Sammelleitung.
D.er Übersetzer-Unterbereich 72 eines Eingabe-/
Ausgabemoduls 10 wird von dem Hauptprozessormodul 20 über die Sammelleitung von Jobanforderungen informiert, und der übersetzer
72 informiert den Hauptprozessormodul 20 über die Sammelleitung, wenn nichtkanalbezogene IOM-Fehler vorhanden
sind» Zusätzlich benutzt der Übersetzer 72 die Sammelleitung, um den Hauptprozessormodul 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-
509809/1044
änderung durch einen Vektor oder einen Plattenstapel. Die Unterbrechersammelleitung wird von allen Eingabe-/Ausgabemoduli
10 und HauptprozessormodulP- ZO gemeinsam benutzt.
In der bevorzugten Ausführungsform arbeitet der Kingabe-/Ausgabesaodul
10 bei der Auslösung, der Bedienung und dem Ende eines
Eingaben/Ausgabetransfers asynchron mit dem Sauptprozessormodul
20 zusammen^ und-verwendet dabei ©ine sogenannte" job map "(auch
als request map bezeichnet9 dem sogenannten Abruf-Bild)· Wie
schon angegeben, besteht die s8Job map" im wesentlichen aus fünf
software-konstruierten Elemente9 die die Jobanforderung, die
periphere Einrichtung und den lOH-Kanal definieren. Im allgemeinen
informieren die aap=Elem©ate den lamptproaeseormodul 20
über dessen IFM-peripheresi Hilfsmittel Wk& deren Statue, Sofern
erforderlich s, ändert der HSauptprozessormoäwl/20 ils in ©iner
Warteechlange befindliche J©b©nforderung ^e? MJote map11 la "dem
von der G8jo"b map96 gelaschten üsfaiag und teterteleht dem 2Ü&-
gabec=/Amsgabemodul 1O9 im Ser^riee smzuiord©ipao Bar Eingabe-/
Ausgabsmoehal 10 ^es-sehsfft_ sich dasa Zugriff' zur "job map", um
den Eingaben/Ausgabe Job ®n bestimmea «ad au@2sul@eeu· Da die
88 Job aapSB ®ia worn Elagabe«/Aiasgabemodul !0 waä. dem Hauptprozessor
20 ges©iMsam b©nmtst©e ffilfeadttel darstellt 9 sind die I0M-Transfergeitesi
ausgeblendet (masked) durch das kontinuierliche
Verarbeiten und Einbauen aen©r Anfordenaagea in Warteschlangen ·
durch den Hauptprozessormodul 20. Auf diese Weise wird ein
Sjstemdurehlauf mit ©iae? miaiaaien Hauptprozessor-
©rzielto
Der Eingaben/Ausgaben©dul 10 führt auch die Pfadauswahl bis zur
angeforderten Einrichtung durch ( im Gegensatz zur programmierten
Vorwahl eiaes Pfades, die allgemein verwendet wird). Diese Art
509809/1044
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 programmierte Vorwahl nicht verwendet werden kann» Diese Situationen machen im allgemeinen eine Einbeziehung des
Hauptprozessormoduls 20 und des Eingabe-/Ausgabemoduls IO erforderlich. Da der KLngabe-/Ausgabemodul 10 in der erfindungsgemäßen
Anlage die Pfadauswahl durchfuhrt, endet die" Mitarbeit des Hauptprozessormoduls 20 bei der Jobauslösung, wenn ein
Unterbrecher an den Eingabe-/Auegabemodul 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 Baten zwischen dem Eingabe-/Ausgabemodul 10 und anderen Zentraleinheit-Modulen,
innerhalb des Eingabe-/Ausgabemoduls 10 selbst und zwischen dem Eingabe-/Ausgabemodul 10 und den peripheren
Einrichtungen tiberwacht· Spezielle Sorgfalt wird darauf
verwendet, daß alle Speicheroperationen ungestört und unbeeinflußt ablaufen. Im allgemeinen enthält die Fehlerwahrnehmungshardware
eine Paritätskontrolle und Erzeugungsschaltkreise (generate circuitry), Schaltkreise für die Modulo-N-Kontrolle,
Schaltungen zur Wahrnehmung unzulässiger Befehle, Bedingungen und Steuerzustände, (control states), Zeitsperre-Schaltungen
für Speichertransfers, Abtastkanaloperationen und interne IOM-Transfers.
In der bevorzugten Auefü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
509809/1044
Eingabe-/Ausgabemodul 10 enthält eine umfangreiche Fehlerwahrnehmungslogik,
die den Operationsfluß (operational flow) eines Eingabe-/Ausgabemoduls auf einer Intermodul/Intramodul-Basis
längs der Einrichtungen-Daten-Transferebene tiberwacht.
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 (validity)
des geschützten und nicht gestörten Hauptspeichers 30 "ersetzt wird. Dieses Konzept stellt die Grundlage eines wirkungsvollen
fail-soft-Systems dar. Die Fehlerwahrnehmungshardware des
ELngabe-/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, DFI 82, Abtastkanäle und die Datenseryice-Unterbereiche 78)
eine Parität (Kontrolle und Erzeugung) eines internen Registertransfers
zwischen und innerhalb aller IOM-Unterbereiche; eine
Parität (Kontrolle und Erzeugung) eines internen lokalen Speicherstapels innerhalb jedes Unterbereiches,, eine kontinuierliche
Wahrnehmung unzulässiger Befehle, Bedingungen und Steuerzuständen innerhalb der Steuerlogik der einzelnen Unterbereiche; eine
fiestwertkontrolle für alle arithmetischen Opertionen 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 .
509809/104A
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 vor»
banden«
Der Fluß beginnt mit dem Abrufen der Anforderung-Steuerinformation
aus dem Hauptspeicher 30· Der Abruf be fehl vom Eingabe-/
Ausgabemodul 10 wird zuerst gegen eine MCM-Zugriffsmaske für
diesen I0M 10 überprüft und anschließend durch den HCM 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
und JSwei-Bit-Wahrnehmungsprufung. Anschließend werden
in den IOM 10 die Steuerdaten 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 (residue). 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 Speicheranschlußeinheit (MIU) 7k empfängt diese Adresse, überprüft den
Restwert, um den internen Transfer zu veritizieren, erzeugt
ein geeignetes Steuerwort und sendet die Anforderung vom ELngabe-/Ausgabemodul 10 zu der Speichersteuerung. Die abgerufenen
Daten werden in das Arbeitsregister des Übersetzers 72 zurückgeschickt
und durchlaufen dabei sämtliche genannten Kontrollen.
509809/1044
Die Daten werden erneut vom übersetzer 72 beurteilt, geeignete
Felder werden zu der Basisadresse addiert9 der Bestwert wird überprüft
(Modulo-N-Kontrolle)und es werden zusätzliche Steuerdaten dem Hauptspeicher
30 entnommen^ bis der übersetzer ?2 genügend Daten
hats vm einen Anforderungsdiskriptor (request description ID)
zu erzeugeng der einem Datenservice-Unterbereich eines IOM 10
zugeschickt wird. Die ursprüngliche Parität wird aus dem Hauptspeicher 30 entnommen 9 um den Anforderung-Deskriptor (BD)
aufzubauen. Die Gültigkeit und die Aussicht des Diskriptors, ausgelöst zu werden;, entspricht daher der Gültigkeit (validity),
die vorhanden war§ als der Job durch den Hauptprozessormodul
20 unter dessen kombinierten Endkontrollen angefordert wurde.
Der Anforderungsdeskriptor9 der z.B. aus der Plattendatei stammt,
wird dem geeigneten DFI-Unterbereich übermittelt· Machdem dieser
Deskriptor in das Anforderungsregister des DFI-Unterbereiches
eingegeben wurde5 kontrolliert die DFI 82 den Bestwert in den
Speicheradressen-und Byte-Zählfeldern9 und kontrolliert die
Gültigkeit (validity) der Steuerfeldkombination (control field · ' ;
combination), lachdem der Deskriptor diese Kontrollen durchlaufen
hat«, wird er in dem zugehörigen lokalen Speicherkanalplatz
gespeichert und die Plattensteuereinrichtung wird durch übertragung der ClL°Sequenz* ausgelöst. Bei jeder nachfolgenden,
von der Plattendatei ausgelösten Anforderung eines ßatentransfers
zum Kingabe-/Ausgabemodul 10 wird dieser Deskriptor aus
dem lokalen Speicher entnommen und in dem Anforderungsregister
gespeichert9 der Bestwert wird von der Speicheradresse und dem
Bytesä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 sindg sind die Daten für den Puffer geeignet. Das Bytezählfeld,
die Steuerinformation und der Datenpuffer werden alle auf den neuesten Stand gebracht. Bestwerte und Paritätbits werden ver-
509809/1044
ä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 7k$ an den Speicheradressenplatz (memory address*location).
Die MIU 7k empfängt die Adresse, überprüft des Restwert, um
die interne Transfersammelleitung zu verifizieren und schickt das richtige Steuerwort an den Übersetzer (auch als Speichersteuereinrichtung
bezeichnet, memory controller) 72. Die Daten werden aus dem Puffer in die MIU 7k rait 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 alle 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 (validity) des Hauptspeichers
30 gesichert ist, zu diesem Zweck werden insbesondere Module
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 vertrauenswürdigen Basis aus starten.
In der bevorzugten Ausführungsform werden die von einem Eingabe-/
Ausgabenodul 10 und den peripheren Steuereinrichtungen 38 wahrgenommenen
Eingabe-/Ausgabefehler von dem IOM 10 verarbeitet.
509809/1044
Diese Fehler werden durch den IOM TO in zwei Kategorien einge-.
teilt: (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-Begisterformat gespeichert. Unterbrecher werden
bei allen fail-Register-Entries, für die Resultat-Deskriptor-Entries
aber nur erzeugt, sofern dies in dem Anforderungs-Eingabe-/Ausgabe-Steuerwort
(IOCW) oder in dem Bit 40 des Status-Warteschlangekopfes (SQH) gefordert wird. Die Status-Report-Entries
stellen die Basis für Diagnosemaßnahmen der fail-soft-Software dar, die später beschrieben werden.
Das Fail-Register 71 des Eingabe-/Ausgabemoduls 10 versetzt
den übersetzer Ί2. 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 HFail-Unit"-Bezeichnungsnummer (Fail-ÜD No » 2.33)·
Wenn ein Fehler auftritt, der den Einsatz der "Fail-Unit"-Bezeichnungsnummer
erforderlich macht, so wird der Inhalt des Fail-Registers 71 in das Resultat-Deskriptorwort (RD) des E/A-Steuerblockes
(IOCB) eingegeben, auf den der E/A-Warteschlangekopf
der Fail-Unit-Bezeichnungsnummer zeigt. Der Fail-IOCB
wird dann von der Warteschlange der FaIl-IOCBs 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 (normal termination). Ein Fehlerunterbrecher
wird bei allen Fehlern, die den Einsatz des Fall-Registers erfordern, an den Prozessor gesendet, vgl. Fig. 43·.
Dieses Register ist in Tabelle 8 definiert. Das IOM-fail-Register
509809/10 44
- 9h -
ist eini*8-Bit-Register, welches diejenige Information enthält,
die Fehler betrifft, die nicht mit einem speziellen Kanal oder einer speziellen Einrichtung in Zusammenhang stehen.
Dieser Fehlertyp ist es, der einen IOM-Fehlerunterbrecher
verursacht.
Sofern Fehler auftreten und unmittelbar nach ihrem Auftreten wahrgenommen werden und aufgelistet werden sollen, 1st es
äußerst wichtig, daß innerhalb des Untersystems ein weiterer Ubertragungspfad existiert. Auf der Modul-Ebene ist Redundanz
bei den näheren Speichern, Speichersteuereinrichtungen, CPs und IOMs gegeben. Auf der IOM-Ebene ist Anschlußredundanz
(connectivity redunduncy) bei allen Sammelleitungsverbindungen gegeben, vgl. Fig. 28. Die angegebene Redundanz kann durch
Um- und Neuordnung verändert werden. Die Modulbauweise des Eingabe-/Ausgabemoduls 10 stellt dabei, wie ersichtlich, einen
Faktor erhöhter Redundanz dar.
509809/1044
- 95 -
Tabelle 8
E/A-FAIL-ßEGISTER-BITS
E/A-FAIL-ßEGISTER-BITS
Bit | Furüfctj | Gibt den Betriebsmode des Übersetzers an, wenn ein Fehler auf tauchte |
|
OO - | -.. | Lon | |
01 - | nicht verwendet | Ausnahme-Bit; dieses Bit gibt an, daß eine "1" in dem Fail-Register existiert |
|
02 - | SNM: | ||
03 - | RWM: | Abtast-Mode | |
Ok - | TM: | Ring-Walk-Mode | |
05 - | SM: | Terminate-Mode | |
Start-Mode | |||
- HMi Hausadressen-Mode
- SNE: stellt Abtastfehler dar, wenn die
Bits 9 - \k gesetzt sind
- TLK: Tabelle gesperrt; der übersetzer be
sitzt eine Zeitsperre und versucht es, eine gesperrte Einheitentabelle
oder einen Status-Warteschlangekopf zu holen
- SBE: Abtastkanalfehler; gibt einen Pari
tätsfehler auf dem Abtastkanal an. SNE (Bit 07) ist auch gesetzt.
- TOE: Zeitsperrefehler; TOE stellt einen
Abtastkanal-Zeitsperrefehler dar, sofern SNE (Bit 07) gesetzt ist.
TOE gibt einen Datenservice-Zeitsperre fehler an, sofern SNE zurückgesetzt ist.
9809/
Bit
Funktion
11 (if SNEsO) - IBE
11 | (if SNEaI) | - DAE |
12 | (if SNE=O) | - HAE: |
12 | (if SNEaI) | - QSE: |
13 | (if SNEaO) | - BE: |
13 | (If SNEaI) | - SUNA |
1if | (if SNEaO) | - RSE: |
(If SNEaI) | - NAQE | |
15 | - AGE: |
16 - MEs
Bits 17 - 2/p Einheiten-Bezeichnung:
Bits 25-2?: Speicher-Fehlerkode
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 Pufferregister-Paritätsfehler
Speichereinheit ist nicht verfügbar
Restwertfehler (Speicheradresse);
die fehlerhafte Adresse soll in die Bits 28 bis.47 eingefügt werden.
Kein Zugriff zum DFO-Exchange
Aktiver Kanal-Stapel-Fehler· Die Adresse (Kanalnummer) des Wortes in
dem Stapel, der den Paritätsfehler verursachte, soll in die Bits 28 bis 32 eingegeben werden.
Speicherfehler; der Speicherfehler oder von der MIU wahrgenommene
Fehler wird durch Dekodierung der Bits 25, 26, Z7 des Fail-Registers gefunden.
eine Einheitenbezeichnung, bei der alle Bits den Wert 1 besitzen (Z55)
kennzeichnet einen Fail-Register-Resultatdeskriptor
dieses Feld ist nur gültig, wenn Bit 16 (ME) gesetzt ist (vgl. Teil
6.0.)
509809/1044
243720ό
Bits 28 - 32 - Kanalnr.
Bits 28 - if7 -Speicher-Adresse
Dieses Feld enthält nur dann eine Kanalnummer, wenn Bit 15 (ACE)
gesetzt ist.
Dieses Feld enthält den Speicher-»
platz, 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 Speieheruntersystem der bevorzugten
Ausführungsform der Erfindung Bezug genommen. Das Speicheruntersystem
88 stellt den Hauptspeicher der Informationsverarbeitungsanlage
dar. Das Speicheruntersystem 88 speichert Informationsworte, die durch zwei verschiedende Typen von Eequesto·
ren, insbesondere dem Hauptprozessormodul 20 oder einem Eingabe-/ Ausgabemodul 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. Fig. 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 Requestoren durchgeführt werden
kann.
Ein Speichermodul 30a besteht aus einem Speichersteuermodul (MCM) 92, dör entweder ein oder zwei Speicherschränke (MSC)
9*f (memory storage cabinets) steuert. Ein Speichersteuermodul
92, der nur einen Speicherschrank steuert, wird als ein 2-MSU-Speichermodul
93 bezeichnet. Ein Speichersteuermodul 92, der zwei Speicherschränke Sk steuert, wird als ein 2f-MSU-Speicher-
509809/1044
modul 95 bezeichnet. Jeder Speicherschrank (MSC) 9Jf enthält
zwei unabhängig adressierbare 2-Braht-Kernspeichereinheiten
(MSU 96). In einer bevorzugten Ausführungsform enthält jede
MSU 96 einen Speichermodul (MSM) 98 mit einer Speicherkapazität
von 65536 Hörtem (393216 Bytes); sie enthält weiter einen
Speicherlogikmodul (VSM) 100. zum Anschließen der TTL-Schaltkreise
der MSU 96 mit den CTL-Schaltkreisen des MCM 92, und sie
enthält einen unabhängigen Versorgungsspannungsmodul -(MTU) 102 für jede MSU 96.
In der bevorzugten Ausführungsform beträgt die maximale
Speichergröße 1ΟΖ$576 Wörter (6291^56 Bytes), die in acht
2-MSlJ-Modulen 93 oder in vier 4-MSU-Modulen 95 gepackt sein
können und 10^8576 Wörtern entsprechen. Ein vollständiges Failsoft-System
erfordert mindestens drei Speichermodulen 30a.
In dem Speicheruntersystem 88 sind drei Speichermodul-Anordnungen erkennbar· Diese drei Anordnungen bestehen aus (a) einem
SpeichersteuermoduKMCM) 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 auf ein Minimum. Die modulare Bauweise, separate Spannungsversorgungen und das redundante Samnelleitungskonzept erlauben
eine weiche Um- und Neuordnung (soft reconfiguration). Im
509809/1044
Im Falle der Störung" einer Kernspeichereinheit (MSU) 96 ordnet
das System die dem Spelchersteuermbdul (MCM) 92: verfügbaren
MSIJs in folgender Weise prögrai^
95 wird so umgeordnet, daß ermit nur zwei JMSUs 96 iariaeitet,
die dem MCM .92 verfügbar sind, Wenn der4 die gestörten MSTJs
enthaltende Schrank für "den MÖft" 93 „nicht mehr zur Verfügung
stehtι oder ein 2-MSU-Sp^ichermodul 95. wird so umgeordnet, daß
er nur mit einem, dem MCM921 zur Verfügung stehenden MSU 96
arbeitet. Privilegierte Betriebsmoden gestatten eine Softwaresteuerung
der Anlage während einer Fehlererholzeit (error recovery)« Der programmierte Haltbefehl (programmatic halt
road) setzt das mehrstufige pperationssystem ohne Intervention des Operators wieder in Betrieb. Benutzerpfogramme, die durch
die Störung nicht betroffen sind, werden an dem Punkt ihrer
Unterbrechung neu gestartet und unter Verwendung der verfügbaren Einrichtungen fortgesetzte Eine Systemrückstufung (system
degradation) wird durch "diese "weiche IJm- und Neuordnung11
durch eine rasche s isolierte Störimgsbeseitijgung ..und eine
rasche überprüfung der "repariertes Einheiten auf'"ein Minimum
reduziert«,
In der bevorzugtes Ausführungsform ist innerhalb der Anlage
kein spezieller Suordnungsbefehl 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.Bo Modul O (O) einen MCM mit zwei MSUs
96 darstellen; Modul eins (1) kann einen MCM mit vier MSUs
darstellen, etc.
Die Speicherkapazität der üntersysteme kann durch das mehrstufige
Operationssystem programmiert und unter Berücksichtigung der ausgewählten Requestoren auf die Untersysteme verteilt, sein,
509809/1044
243720°
d.h. die MCMs 0, 1, 2, 3 lassen sich den Requestoren O, 1, 2 zuordnen
und die M(JMs 4, 5 und 6 lassen eich den Requestoren 3, *f und
zuordnen. In der bevorzugten AusfUhrungsform arbeitet das
Speicheruntersystem 88 mit einer Taktfrequenz von 8 MHz· Die Zugriffszelt beträgt 1,0 Mikrosekunden. Me 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 96 und eines Speichermoduls 30a reduziert. Dadurch 1st es der zweiten
MSU 96 möglich, die Vorbereitung für einen Speicherzyklus zu beginnen, während die erste MSU 96 den Transfer seines Wortes
durchführt. Auf diese Weise ist die durch ein zweites, drittes oder viertes Wort bedingter Speicherzyklus-overhead-Zeit ausgeblendet
(masked).
In einem Mehrwort-Transfer (als phasing bezeichnet) werden Wörter in bis zu vier Wörtern enthaltende Gruppen transferiert;
ein Wort wird pro Taktzyklus transferiert. Die maximale Any.ahl
an Wörter, die im phasing-Verfahren übertragen werden kann,
ist durch die Anzahl der Wörter gegeben, die nacheinander übermittelt werden und ist durch die Anzahl N von Kernspeichereinheiten
(MSTJ) 96 begrenzt, die durch den MCM 92 gesteuert
sind; K - 2 für einen 2-MSU-Modul 93 und N = Zf für einen
/f-MSF-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)· Die Grenze in dem MCM 92 wird in
folgender Weise festgelegt. Die Grenze ist gleich einer ELnwortoperation,
wenn die Startadresse für den Requestor innerhalb 7 Wörter aus dem Ende des dem MCM 92 zugänglichen Speichers liegt;
509809/1044
die Grenze ist dagegen gleich der Anzahl der dem MCM 92 zur Verfügung stehenden MSUs 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-Worter-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 (record) 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 besitzen 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 Kennbits 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
Requestor an einen MCM 92 übertragen wird, addiert der Requestor
ein 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.
509809/1044
Ein in einer Kernspeichereinheit (MSU) 96 gespeichertes Wort
(Speicherwort) besteht aus 60 Bits. Wenn ein MCH 92 ein 52-Bit-Wort
aus einem Requestor empfängt, addiert der MCH 92 sieben
spezielle Paritätsbits, sogenannte Prüfbits (check bits) und
addiert ein weiteres Bit, um die ungerade Parität des gesamten 60-Bit-Wortes zu erhalten. Der HCM 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 Fig. 31 dargestellt. Jeder Requestormodul kann bis zu 10^8576 kontinuierliche
Speicherwörter adressieren. Diese 1048576 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 (requestor
inhibit register) 10^ ab, vgl. Fig. 32. Das Requestorsperrregister
10^ 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 Requestorsperrregister
10/f der betrachteten Gruppe von Speichermodulen 30a
so gesetzt, daß nur ausgewählten Requestoren der Zugriff gestattet ist, so ist es möglich, die Anlage in mehrere unabhängige
Datenverarbeitungsuntersysteme logisch zu teilen, von
509809/1044
- 103 -
denen jedes vielleicht sein eigenes Master-Steuerprogramm
besitzt und einem speziellen Teil der gesamten zu verarbeitenden Information zugeordnet ist. Die Nummer der Hardwareeinheiten
für die Requestormodu3& lauten O bis 7· Die Bitposition des
Requestorsperregisters lOif korrespondiert mit der Nummer der Sequestoreinheit
mit einer 0 als am wenigsten signifikantes Bito Sofern ein Requestorbit in dem Requestorsperregister
102* auf OH gesetzt ist, erhält die diesem Bit entsprechende
Einheit keinen Zugriff zum Speichermodul 30a. Das Requestorsperregister
101* wird durch einen Hequestorsperregister-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 Lage9 die Anordnung der Anlage entsprechend wechselnder Anforderungen
zu verändern»
In der bevorzugten Ausfuhrungsform ist die Größe des benutzbaren
Speichers innerhalb des Speiehermodiale 30a veränderlich
ρ sie beträgt bei.nur einer MSU 96 65536 Wörter, sie
beträgt bei vier ESUs 2621 ifif Wörter. Die Adressierung innerhalb
eines Speichermoduls 30a wird durch zwei Speichergrenzwertregister
106s 108 gesteuert, die die niederste und höchste
zur Verfügung stehende Adresse angeben. Die höchste, zur Verfugung stehende Adresse ist immer 16383 Adressen größer
als die in dem für den oberen Grenzwert vorgesehenen Grenzwertregister
108 enthaltene Adresse· Die Speichergrenzwertregister 106 und 108 besitzen eine Länge von 6 Bits. Der MCM
"sieht" den in der Kernspeichereinheit (MSU) 96 enthaltenen
Speicherinhalt als eine Zahl aus 1638^-Wortsegmenten.
In der bevorzugten Ausführungsform enthält eine Speicheradresse
20 Bits, von denen die ersten sechs Bits ein 1638if-Speicherwortsegment
innerhalb der von jedem Requestor adressierbaren
509809/1044
Wörter darstellen. Die weiteren 1 if Bits werden zur
Adressierung des Wortes in dem vorbezeichneten Segment verwendet. Die signifikantesten sechs Bits einer Speicheradresse
werden mit den sechs Bits der beiden Speichergrenzwertregister 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
Speichergrenzwert-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 MCM 92 zugeordnet wird, indem in den Speicher mit sukzessiv höheren 16384-Wortsegmenten eingegangen wird. Wenn eine MSU
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 1Oif setzen,
um zu vermeiden, daß ein Zugriff zum gesamten Speichermodul 30a erfolgt.
Durch das Setzen des Requestorsperrregisters 101+ und der
Speichergrenzwertregister 106 und 108 lassen sich Gruppen von Speichermoduln 30a ausblenden (mask), 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 (MCM) 92. Der MCM 92 verbindet alle Requestoren, d.h.
ELngabe-/Ausgabemoduln (IOM) 10 und Hauptprozessormoduln
509809/104A
(CPM) 20 mit den MSUs 96, die von dem MCM 92 gesteuert werden. Wie schon angegeben, ist 8 die maximale Anzahl der
MCl-Is pro Anlage. Die logischen Funktionen eines MCM 92 sind folgende: Auflösung der Priorität, Datentransfer« und-Steuerung,
und Fehlerwahrnehmung·
Die Prioritatsauflösungslogik, vgl. Fig. 32, steuert die
Verbindungen zwischen den einzelnen Requestoren und dem MCM
Von dem MCM 92 werden nur diejenigen Requestoren bedient, die
durch den Inhalt des Requestorsperregisters AOk 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 Requestorsperrregisters
lOif 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 Hauptprozessormoduüii 20 zugeordnet. In einer Anlage
mit zwei CPMs und zwei IOMs, werden z.B. den CPMs die Priorität 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 niedrigerer
Priorität darauf wartet, bedient.zu werden.
Die Datentransfer- und Steuerlogik liefert die zur Wegsteuerung der Daten zwischen dem Requestor und der MSU 96 erforderlichen
Steuersignale. Diese Logik besitz/t 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
5 0 :;i 8 0 -3 / 1 0 /, 4
Requestor und den Eingängen der MSU 96 vorgesehen; sie meldet
die Fehler in ein Fail-Register 112 des MCM 92 und benachrichtigt
den Requestor, daß ein Fehler vorhanden ist; und sie korrigiert ELn-Bit-Fehler, die in der MSU 96 während einer
Abrufoperation auftreten.
Alle Verbindungen zwischen dem MCM 92 und den Requestoren werden über 78 separate Zweiweg-Leitungen
an identische Empfänger-Schaltungs-/Treiberschaltkreise (switching interlock receiver/driver circuits) Ilif geführt,
die in allen RequestormoduHn enthalten sind, vgl. Fig. 31·
Eine Gruppe von 52 Leitungen ist für das Steuerwort 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 so}.l. Das Steuerwort wird in dem Steuerwortregister.118
und dem Eingaberegister 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.
5 0 'J B C) 9 / 1 0 4 /,
Wenn ein Paritatsfehler wahrgenommen wird, wird das Steuerwort
in das Fail-Register 112 geleitet; durch den MCM 92 werden
ein Requestorbetrieb-Beendigungssignal und ein Fail-Unterbreehersignal
erzeugt und dem Requestor zugeleitet. Außerdem wird der Inhalt des Failregisters 112, sofern vom Requestor
angewiesen, über ein Speicherpufferregister 12.1+ 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 (read-modify write) ). Durch einenPrüfbitgenerator 130 des
MCiI 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 den Requestor gegeben. Das Datenwort
wird in das Eingaberegister 120 eingegeben,, das für die Fehler-
5 0 9 8 0 9 / 1 0 4 A
Wahrnehmungslogik 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) 12/f 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ätzen der MSU 96 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überprUfung
durch, während die am wenigsten 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 (record) und außerdem den Verarbeitungsprozeß mit korrekten Daten fortzusetzen. Sofern
ein 2-Bit-Fehler auftaucht, schickt der MCM 92 ein Fail-1-Unterbrechereignal
(wird später beschrieben) an den Requestor und gibt die Fail-Daten in das MCM-Fail-Register 112 ein.
509809/10U
Wenn das Steuerwort eine Spezialanforderung darstellt (z.B. entweder "Lade Requestorsperregister" 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 10V oder zum Speichergrenzwertregister
106 oder 108 oder einem der MSU verfügbaren Register stattfindet, welches in der MCU-Steuereinheit 128
vorgesehen ist. Wenn das Steuerwort eine "Lade Reqüestorsperrregister
"-Operation enthält, wird das Requestorsperregister lOif 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 dein 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
*ig· 33 kurz geschildert. Eine Requestoranschlußeinheit 132
enthält die Empfänger-/Treiber-Schaltlogik 112*, 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 Fig. 3 dargestellt. Jeda* 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 stellen 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 Requestoren und MCMs identisch, so daß die Treiber/Empfängerkreise der' verschiedenen
509809/1 OAA
Moduln- untereinander auswechselbar 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 Leistung
versorgt sind.
Der in Fig. 3k dargestellte Fluß von Daten und Steuersignalen
zwischen dem MCM 92 und dem Requestor wird im folgenden beschrieben.
Daten und Parität werden zwischen einem Requestor und einem MCM 92 über eine dafür vorgesehene Gruppe von 52 Zweiweg-Datenleitungen
13*f transferiert. Diese Leitungen 13*f v/erden
außerdem zur übertragung des Steuerwortes verwendet. Eine ungerade
Parität wird erzeugt und alle Wörter transferiert, und das Paritätsbit wird in Koinzidenz mit den Daten übertragen.
Ein Spezialanforderungssignal (RQSN) wird von einem CPM 20 eingesetzt, um Zugriff zu einem MCM 92 zu erlangen (unabhängig
vom Inhalt des Requestorsperregisters 10If), und um Requestor-Sperrwerte
oder Speichergrenzwerte einzugeben. Das RQSN-Signal geht bei Koinzidenz mit einem Anforderungssignal (REQ) in den
"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 spezielle Anforderungsleitung zum
MCM 92 weitergeleitet, während das Anforderungssignal (REQ) vom Requestor über eine Anforderungsleitung lifO zum MCM 92
übertragen wird.
5 U c) V> U 1J MUA
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 Bestätigungssignals (ACK) über
eine Bestätigungsleitung 136 aus dem MCM 92. Der Anforderungsimpuls
wird vom Requestor über eine Anforderungsimpuls-Leitung 1i*2 zum MCM 92 geleitet.
Ein Datenabtastimpuls-Signal (data-strobe signal) (DSTB) wird
über eine Datenabtastimpulsleitung H6 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
Mg. geschickt, um den MCM 92 davon zu informieren,
daß ein Steuerwort über die Datenleitungen 13k 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 MGM 92 über eine
"Daten-verfügbar"-Leitung 1lf8 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 Bestätigungssignal (ACK) mit der Dauer einer Taktperiode wird über eine Bestätigungsleitung
136 zum Requestor geschickt, um anzuzeigen, daß
509809/1044
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 N-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 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 TaIitperioden, 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 Requestoroperationabschluß-Leitung
ein 1-Taktperiode dauerndes Signal (RQC),um das Ende des Beitrags
der Requestoren an der Speicheroperation anzugeben.
509809/1044
Die Vermittlung der oberen Grenzwertadresse zwischen einem MCM 92 und einem Requestor geschieht durch die sechs signifikantesten
Bits des höchsten^O-Bit-Speicherzugriffs, der von dem MCM 92 durchführbar ist (die am wenigsten signifikanten
lif Bits werden alle als "1" angenommen). Die Vermittlung der
unteren Grenzwertadresse erfolgt durch die signifikantesten sechs Bits des niedersten 20-Bit-Speicherzugriffes, derdurchden
MCM 92 durchführbar ist (die am wenigsten signifikanten lif Bits
werden alle als "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 steady-state -Signal, welches die Verbindungen unterbricht, wenn der MCM 92 einen
Leistungszyklus nach oben oder nach unten durchläuft (the MCM 92 is power cycling up or down) 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 Steady-state-Signal, welches
die Verbindungen unterbricht, wenn der Requestor Leistungszyklen nach pben oder nach unten durchläuft (power cycling
up or down).
Der MCM 92 überträgt ein FAIL-I-Unterbrechersignal' (FAL1)
von einer Taktperiodedauer an den Requestor, wenn einer der folgenden Fehler vorkommt: (1) Steuerwort^-Paritätsfehler; (2) unrecht-
509809/10U
- 11 if- -
243720Q1
mäßiger Operationscode; (3) falscher MCM; (4) Datenabtastiinpuls
fehler; (5) Zwei-Bit fehler; 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 Verbindungsleitung
16^f an den Requestor.
Der MCM 92 überträgt ein FAIL-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-V/örter-Schreiboperation, sofern das betrachtete
Speicherwort eine "1" im Bit ^8 besitzt. Die FAIL-I und FAIL-2-Unterbrechersignale
erscheinen zeitlich nie später als ein Requestoroparationsabschluß-Signal
(RQOS), welches vom KCM 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 MCM 92 besteht darin, den angeforderten Kanal auszuwählen,
der von dem MCM 92 bedient werden soll. Die Reihenfolge
der Servicinganforderungen (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 verschaltet
509809/1044
(Hardwired), so daß in einem System mit zwei HauptprozessormoduLn
20 und zwei Eingabe-/Ausgabemoduln 10 den Eingabe-/ Ausgabemoduli 10 die Prioritäten 0 und 1 zugeordnet sind und
den Hauptprozessormoduln 20 die Prioritäten 6 und 7 zugeordnet sind. Der Prioritätsresolver 116 garantiert, daß ein einzelner
Requestor hoher Priorität keinen Zugriff zum Hauptspeicher 30 mit nacheinander erfolgenden Speicheranforderungen erhält,
sofern ein Requestor niederer Priorität den Speicher jangefordert
hat. Der Prioritätsresolver 116 oder der MCM 92 setzen
die Verbindungen mit den entsprechenden Requestoren je nach den Requestorsperrsignalen in Betrieb oder außer Betrieb, ausgenommen
sind Hauptprozessormoduln 20 mit Spezialanforderungen. Die Spezialanförderung läuft an der Sperregisterprüfung vorbei,
un entweder das Requestorsperregister 104» die Speichergrenzwertregister
106 und 108 zu beladen, oder um den Inhalt des Fail-Registers 112 zu entnehmen. Der Prioritätsresolver 116
des MCM 92 schließt diejenigen Requestoren von einer weiteren Bedienung aus, die gestört sind und weitere Requestoren ausschließen
könnten.
In der bevorzugten Ausfiihrungsform besteht das Eingaberegister
120 des MCM 92 aus einem 52-Bit-Register, welches vom MCM 92
eingesetzt wird, um zeitweise die vom Requestor erhaltenen Steuerwörter und Datenwörter zu puffern. Das Eingaberegister
120 stellt eine Datenquelle für das Speicherpuffer-, register (MBR) 12lf dar, die die
überprüfung der Parität eines Datenwortes und eine Erzeugung
von Prüfbits ermöglicht. Während des Beginns einer Operation
wird eine Kopie des Steuerwortes in das Eingaberegister 120 zur Paritätskontrolle eingegeben.
509809/1044
Das Eingangssignal des Requestors (entweder ein Datenwort oder ein Steuerwort) wird mittels eines Empfänger-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.
Je nach den am Ausgang des Eingaberegisters 120 vorhandenen Transfersignalen
werden die Eingaberegister-Bits (IR-Bits) in das Speicherpufferregister (MBR) 12if., den Prüf bit-Generator
130 mit Schaltkreisen zur Paritätskontrolle, das Speichergrenzwertregister
106, IO8 und das Requestorsperregister 10*f transferiert.
Besteht die Information im Eingaberegister 120 aus einem Steuerwort, aus Speichergrenzwertregister-Daten oder aus
Requestorsperregister-Daten, so wird nur eine Paritätskontrolle durch den Prüfbitgenerator 130 vorgenommen. Besteht die Information
im Eingaberegister 120 aus einem zu speichernden Datenwort, so führt der Prüfbitgenerator I30 eine Paritätskontrolle
aus und erzeugt dann 8 Prüfbits, um das 60-Bit~Datenwort zur
Speicherung zu vervollständigen.
Besteht die im Eingaberegister 120 enthaltene Information aus Speichergrenzwertregisterdaten, so werden nur die ersten 16
Bits (Bit 0 bis 15) mittels eines Eingaberegister/Grenzwertspeicher-Transfersignalt
transferiert. Bit 0 bis 11 wird in das Speichergrenzwertregister eingegeben (Bit 4 bis 9 als
oberer Grenzwert der Speicheradressen, Bit 10 bis 15 als
unterer Grenzwert der Speicheradressen), Bits 0 bis 3 wird
in das "Datenvorhanden"-Register eingegeben, welches aus einem
Teil der MSU-Steuereinheit 128 besteht und als IAV bis I1AV
bezeichnet ist. Diese Daten stellen die Speichergrenzwerte
509809/1044
(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 O bis 7) des Eingaberegisters mittels eines Eingaberegister/ Requestorsperregister-Transfersignals transferiert, um festzustellen,
welcher der Requestoren Zugriff zu einern^ 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 122f 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 if8 "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 das anfänglich im Steuerwortregister 118 befindliche Steuerwort während des Prüfvorganges
angereichert wurde, damit ein geschütztes Bit 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
509809/1044
Requestor einen Taktzyklus nach der Übermittlung des Anforderungssignales übermittelt, es koinzidiert mit dem
Änforderungsabtastimpuls.
Das Requestorsperregister 1O^ 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 92 gehindert werden. Alle Ausgangssignale
des Requestorsperregisters 104 sind fest mit einem Requestor
(hardwired) verdrahtet, wodurch dem Requestor, der das "Ebenevorhanden"-Au8löeesignal
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ß dieses Register von jedem beliebigen Hauptprozessor 20 programmiert
beladen wird. Das Requestorsperregister \0k wird durch Eingangssignale
von einem Requestor über das Eingaberegister 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 verfügen kann
(die am wenigsten signifikanten lif Bits werden zu 11O" 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
50 980 9/104A
]i+ Bits sind alle zu "1" angenommen). 1+ Bits geben die MSU-Verfügbarkeit
an.
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 festgelegt und nur verändert, sofern eine Um- und
Neuordnung des Speichere 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 T2-Adressenbits (untere und obere Grenzwerte) werden mit den 6 signifikantesten Bits der Steuerwortadresse
des Requestors verglichen. Liegt die Steuerwortadresse nicht innerhalb de s 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 fest verschaltet (hardwired) zugeführt und werden mit vorgegebenen
Speichergrenzwerten für jeden Requestor verglichen. Liegt die Speicheroperationsadresse des Requestors innerhalb
eines HCM-Grenzwertes, so löst der Requestor ein Anforderungssignal aus, um Zugriff zu diesem MCM zu erlangen, sofern das
entsprechende Requestorsperregister-Bit nicht gesetzt ist.
509809/10U
Die Ausgabebits (1AV bis /jAV) werden den Speichersteuereinrichtungen
zugeführt, um festzustellen, welche MSUs diesem MCM zur Verfügung stehen. Erfindungsgemäß besitzt die Wartungsdiagnose-Einheit
(MDU) und der MCM-Bedienungstisch Einrichtungen zur Steuerung und zum Ablesen der Speichergrenzwertregister
106 und 108 und aller anderer Flipflops.
Das Speicherpufferregister (MBR) 121+ besteht aus einem 60-Bit-Register,
welches vom MCM zeitweilig als Pufferregiater für die zu bzw. aus den MSUs transferierten Datenwörter eingesetzt
wird. Die Eingabequellen für das MBH 12if (für Datentransfer
zu einer MSU) sind folgende: (a) Das Eingaberegister 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-Erapfänger-/Treiberlogik 11k die Eingabequelle dar.
Das MBR 12Zf 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 (00 bis 51) vom
Eingaberegister 120 zum MBR 12/f 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üfbitε (Bit 52 bis 59) geleitet worden. Diese Prüfbits
werden mittels eines Prüfbitgenerator/MBR-Transfersignals
zum MBR 12if transferiert, welches während der gesamten Schreiboperation
vorhanden ist. Das die Beladung des MBR 12/j. auslösende
Signal ist vorhanden, wenn das Schreiboperation-Auslöseflipflop-
509809/1044
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 (fetch operation) werden 60 Bits
aus dem Speicher über die Empfänger-/Treiberlogik zum MBR
12/f mittels eines Transfer signals transferiert, welches während
des gesamten Abrufzyklusses vorhanden ist· Das Freigabesignal (enable signal) ist verfügbar, wenn das Datentransfer-Steuerflipflop
gesetzt ist und die Wortezählzahl (word count) größer als O 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 Speieherdatenwort existiert. Wenn
die Prüfbits keinen Fehler feststellen, wird das Datenwort im Ausgaberegister 126 zu dem Requestor geschickt, sofern jedoch
ein Ein-Bit-Fehler festgestellt wird,, erzeugt die Fehlerwahrnehmungslogik
110 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-Registerihformation,
mit Ausnahme des Bits 51» vor Plazierung
in das Ausgaberegister 126 zum MBR 12^ transferiert.
Die Fehlerwahrnehmungslogik 110 (zur Fehlerkontrolle, Fehlerwahrnehmung
und Fehlerkorrektur eingesetzt) bedient sich dreier Störungsunterbrechersignale: FAH, 1, FAIL 2 und FAIL S. Das
FAIL-I-Unterbrechersignal, auch als FAIL 1-Signal bezeichnet,
wird erzeugt und an den Requestor gesendet, wenn ein nicht korrigierbarer Fehler auftaucht , auch wenn dadurch die Requeetor-Speicheroperation
nicht abgeschlossen wird» Das Fail-Register 112 wird ait.
509809/1044
folgender Information beladen, um die Störungsanalyse zu vereinfachen: (a) R/W-Bit, (b) MSü-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 folgende 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-I-Unterbrechersignal
(FAL1) wird bei jedem während oder nach einer Requestoroperation-Verlaufszeit
(requestor-operation complete time) wahrgenommenen internen Fehler dem nächsten Requestor übermittelt. Das Auftreten
eines Prüfbitgenerator-Fehlers stellt insofern eine Ausnahme dar, als das FAIL-I-Signal dann dem ursprünglichen
Requestor zugeleitet wird. Innerhalb des Fail-Registers betreffen das R/W-Bit und die Requestorkanalnuinmer den ersten
Requestor, und Bit Zf8 des Fail-Registers 118 wird gesetzt, um
anzugeben, daß es sich um eine "verzögerte" Unterbrechungssituation handelt.
509809/1044
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 das FAIL-Register 118 eingegeben.
In der bevorzugten Ausführungsform besteht das Fail-Register
118 aus einem 52-Bit (Bit OO 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-Register-Abrufoperation wird die
Information über das Speicherpufferregister (MBR) 12Jf und das
Ausgaberegister 126 an den 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 des MCM-Fail-Wortes sind in Tabelle 9
definiert.
509809/1044
- 12/f -
Tabelle 9
Feld Bits Beschreibung
(Bit /f8) gesetzt ist, daß der MCM
einen internen Fehler wahrgenommen hat, während oder nachdem das Requestoroperations-Vervollständigungsflipflop
(EOC) gesetzt ist. Das Unterbrechersignal wird bis zur Meldung der nächsten
verzögerten Unterbrechung durch eine Requestoroperation gespeichert.
wahrgenommen wurde, ob die ausgeführte Operation in einer Schreiboperation
oder einer Leseoperation bestand.
für den MCM verfügbar sind. Die Interpretation des Feldes lautet:
Bit Bit
Ml. AL.
0 0 kein MSU verfügbar
0 1 ein MSW verfügbar
1 0 zwei MSUs verfügbar 1 1 vier MSUs verfügbar
zugeordnete Zahl (O bis 15), die in das MCM-Nummemfeld des Fail-Wortes
plaziert ist, um den speziellen MCM mit der Fehlerbedingung zu identifizieren.
REQ CHNL NO. 1*0:3 Das Requestorkanal-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).
509809/1044
Ein 1-Bit-Fehler (1B).gibt an, daß
sich ein einzelnes Bit in fehlerhaftem Zustand befand, während der FehlerüberprUfung eines Datenwortes,
weiches aus dem Speicher ausgelesen wird.
INT if si Das "interne Fehler"-Bit (IMT) gibt
an, daß innerhalb des MCM,oder der MSU eine logische Störung auftrat.
Bits O bis 3 im Fail-Wortregister müssen überprüft werden, um den
Fehlertyp festzustellen. - '-■
INT ER TYPE 3'Λ Diese Bits enthalten einen Kode, der
die Art der Störung anzeigt, wenn das "interne Fehler"-Bit eine "1" ist.
Die nachfolgend aufgelisteten Kodes definieren die Fehler:
Fail-Wort-Register- angezeigter
bits Fehlertyp
§210
Ö* O" O* MSUnicht verfügbar ·
Ö* O" O* MSUnicht verfügbar ·
0 0 0 1 "Lesen-verfügbar"-Fehler 0 0 10 Prüfbitgeneratorfehler
0 0 11 Adressenzählerstörung
0 10 0 TBTJ-Adressenfehler
0 1 0 1 Päritätsgenerator-
(MSU-Steuerungs-)störung
0 110 Datenzeitgeb'erfehler 0 111 Datentransfersteuerungs-
störung (DTC) 10 00 MSU-Verfügbarbits-
fehler
ER BIT NO 37:6 Wenn ein Ein-Bit-Fehler auftaucht,
wird die Binärzahl des Bits, welches gestört ist, in das Fehlerbit-Nummernfeld
eingegeben.
0 9/104A
0 | 1 |
1 | O |
1 | 1 |
ER ADDRS 31: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 Fehleradresse gehört 2-Bit 1-Bit zu einem:
1-Bit-Fehler 2-Bit-Fehler 1-Bit-Fehler
CWP 11:1 Gibt eine unrichtige Steuerwortparität
an, wenn das CV/P-Bit den Yfert "1"
besitzt.
IOP 10:1 Die durch das Steuerwort spezifizierte
Operation, die den Fehler verursachte, 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) Wortlänge = O
(2) Wortlänge > 1 für eine Ein-Wort-Operation
(3) der Spezial-Anforderungsabtastimpuls ist nicht vorhanden bei einem Requestorsperr-Ladesignal
oder einen Speichergrenzwert-Ladesignal
WRA 9:1 " Gibt an, wenn das WRA-Bit (falsche
Adresse-Bit) gesetzt ist, daß die 6 signifikantesten Bits der Adresse
des Steuerwortas nicht innerhalb der Adressengrenzwerte liegen, die diesem
KCM zugeordnet sind.
509809/104
Feld Bits Beschreibung
DWP 8:1 Ein Datenwort-Paritätsfehler.(DWP)
gibt an, daß ein Datenwort mit gerader
Parität aus dem Requestor während der Schreiboperation empfangen wurde.
STB 7:1 Ein Daten-Abtastimpulsfehler (STB)
gibt an, daß entweder zu viele oder zu wenig Datenabtastimpulse vom
MCM während eines N-langen Überschreibvorganges oder eines geschützten
N-langen Schreibvorganges empfangen wurden.
2B 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.
509809/1044
In der bevorzugten Ausführungsform verwendet der MCM 92 das
Speicherpufferregister (MBR) 12if als Datenquelle für die Fehlerwahrnehmungslogik 110, die feststellt, ob eine Bitkorrektur für die von der MSU 96 zum MCM 92 transferierten Wörter
erforderlich 1st. Im MCM 92 befindet sich das MBR 124 und
außerdem Lochkarten (logic cards). Die Logik zur Fehierwahrnehmung und -korrektur ist in Fig. 35 dargestellt und wird
im folgenden kurz beschrieben·
Die horizontale Zahlenzeile in Flg. 35 gibt die Bitposition
Innerhalb des 60-Bit-Stapelwortes an. Das Format eines zwischen
einem MCM 92 und einem Requestor transferuerten Wort ist folgendes: Bit 00 bis Bit W? stellen Datenbits dar (sie stehen
6 EBCDIC-Zeichen oder 8 BCL-Zeichen oder 12 Ziffern, etc. zur
Verfügung), die Bits if8 bis 50 stellen Kennbits (zur Wortsteuerung) dar, und Bit 51 ist ein Paritätsbit (ungerade Parität ist die korrekte Parität) für die Bits OO bis 51. Bit 52
bis 59 werden von einem MCM nicht an einen Requestor übertragen· Die Bits 52 bis 58 sind sogenannte Prüfbits, Bit 59 stellt ein
Qesamtparitätsbit (ungerade Parität stellt die korrekte Parität dar) für das 60-Bit-Stapelwort dar.
Die horizontalen Zellen der X*s 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 X's gekennzeichnet. Insgesamt gibt es
sieben verschiedene Masken· Bei jeder Maske wird das durch X Im Prüfbitfeld gekennzeichnete Bit gesetzt oder zurückgesetzt,um eine
gerade Paritat 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,
509809/1044
dann würde Bit 1 im Prüf bit feld gesetzt, um für die betrachteten
Bits gerade Parität herzustellen.
sol darauf hingewiesen, daß das Qesamtparitätsbit (Bit 59)
oder zurückgesetzt wird, um für alle Bits in dem 60- ■'
Bitwort einschließlich der Prüfbits eine ungerade Parität her-Ba
jedes Wort aus der MSl 96 zurückgewonnen wird,
der MCM 92 die Gesamtwortparität und wendet erneut sieben Hasken an, um festzustellen, ob eines oder mehrere
Bits sieh verändert haben· Bor MGM 92 nimmt zwei rerschiedene
¥©& Fehlers währ.
ist «torch 1-Bit-Fehler gegeben· In der
«Bit-Fehler, sei es ein Bit (drop— out) oder ein aufgenommenes Bit
und korrigiert* T-Bit-Fehler werden
eimer fehlerhaftes Qesamtparität und der
@±m@e ©Äer laetaerer Gruppe*?©hler wahrgenommen.
felilevbafter Fsritiät virS l8@li@rt und im MCM-
126 korrigiert· Bern zweiten Srusdtyp «teilen
«ta, 2«Bit-Fehl@r werdem uutth die Anzeige
O^gtEwart ©iüee oder
IBr 2»Mt-»Fehl·!? iffit ■
114 4
den Fehler für Wartungszwecke und gestattet eine Fortsetzung
der Datenverarbeitung.
Sind swei Bits des 60-Bit-Wortes fehlerhaft» so gibt eine
überprifuQg der Parität des gesamten Wortes nicht an, ob ein
Fehler vorhanden ist. In diesem Fall wird durch den frberprtfiBgetorgang
nur das Vorhandensein eines oder mehrerer drappemfehler festgestellt· Diese Information ist nicht geeignet,,
di® Position d@e Fehlers zu lokalisieren, sie wird aber
verwendet hb aiuraselgeii, daß ein Fehler existiert· Mohr als
zwei f@itlerhafte Bits erscheinen entweder als ein nicht korrigierbarer
1-Bit-Fehler, als ein 2-Bit-Fehler oder als kein
ist zu bemerken, daß 1-Bit-Fehler wahrg®-
vollständig während der verfügbaren Zeit korrigiert
Di* Fehlerkorrektur ein·· 1«Bit-Fehlers erfordert
drei iiCÜ«-T*]EtImpule·, d.h. 375 Ranosekunden. 2-Bit-Fehler
wategettom*·» und ger&dsahlige Mehrfach-Bit-Fehler können
wtrdea, eie werden aber nicht korrigiert· Wenn
Mthrfiicli-Bit-Fehltr wahrgenommen werden, so
Bit kßrri£i#r'i und di· Dattn dem Beqy#stor sugeftthrt
C eis® Fwifltiikoatroll· kann dann ·ν%1Φ seigen, daß ein Fehler
cue Fehler gerader und ungerader Pari tut besitzt,
el» Parität der-entsprechendes; Qruppea geprüft oder
wird» wird als 3ardwar#*ti$rmng des Prffifbitgenerators.
identiflsiert· Bau Auagaberegieter 126 besteht aus eines
welches sum Puffern von DatenwlSrteni Ceii^>
FaÜ-Bafe«} verwendet wird, die wüorend ®£n#i'
ite3£@j^?«i;iöi! t& eis·» iefatetor- öteermittelt werden· 1»
SO9B0S/1O44
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 12if geliefert, das die vom Hauptspeicher transferierten Daten speichert. Die Korrektur der 1-Blt-Fehler
wird vorgenommen, nachdem das Ausgaberegister 126 aus dem HBR 12if beladen wurde. Das Ausgangssignal des Ausgaberegisters
126 wird über die Empfänger-/Treiberlogik dem Requestor zugeführt.
Die MCM-MSU-Verbindungseinheit 135 enthalt die Empfänger- und
Treiberleitungspuffer, die Verbindungs-Logikebenen für die Steuerung und den Datenfluß darstellen, vgl. Fig. 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-Steuerslgnale eingegangen.
60 Dateneingabe-Leitungen ifO2 sind eingesetzt, um Information
von dem MCM 92 zu der MSU 96 zu transferieren, die in einen adressierten Speicherplatz eingegeben werden soll. In ähnlicher
Welse werden 60 Datenausgabeleitungen eingesetzt, um die
aus einem adressierten MSU-Speicherplatz ausgelesene Information
dem MCM 92 'zuzuführen. Ein Lesestartsignal (read available signal) wird von der MSU 96 als ein führendes Signal (leading
signal) geliefert, welches den MCM 92 davon informiert, daß Daten
50 9809/1OA
aus dem adressierten Speicherplatz der MSU. 96 über die Datenausgabeleitunen ifOif innerhalb einer vorgegebenen Zeitdauer In
den MCH 92 eingegeben werden· Das Lesestartsignal wird über
eine Leitung ifO6 übertragen·
Ein MSU-Paritätsfehlersignal wird von der HSU geliefert und
zeigt dem HCM 92 an, daß die HSTJ 96 einen Paritätsfehler innerhalb
der Adressen- oder Steuersignalen wahrgenommen hat, d$.e von
dem HCH zur HSU gesendet wurden. Wenn ein Pari täts fehler auf diesen Leitungen existiert, führt die HSU einen nichtbedingten
Leee/RUckstellVorgang (read/restore) mit dem adressierten
Speicherplatz aus, um die gespeicherten Daten zu erhalten· Das MSU-Paritätsfehlersignal wird mittels einer Leitung /fO8
zwischen einer HSU 96 und einem MCM 92 übertragen.
.Ein MSU-VerfUgbarkeitssignal teilt, sofern es "wahr" ist, dem
MCM 92 mit, daß die MSU 96 mit Leistung versorgt wird. Dieses Signal wird über eine Leitung if 10 übermittelt. Eine Adressenparitätsleitung if 12 stellt den Ausgangsanschluß eines Paritätsgenerators dar, der die zur MSU führenden Adressen- und Operationssteuerleitungen (für B/HT-Operationen) überprüft· Die erzeugte
Gesamtparität ist ungerade.
Der MCM 92 liefert ein Lese/Schreibmodesignal, welches, sofern
es "wahr11 ist, die MSU 96 in Kenntnis setzt, daß eine Schreiboperation ausgeführt werden soll; sofern das Signal "nicht wahr"
ist, führt die HSU 96 eine Lese/Rtickstelloperation aus. Das
Lese/Schreibmodesignal wird über eine Verbindungeleitung übertragen.
Ein Lese/Hodifizieren/Schreibsignal gibt an, sofern es in
Verbindung mit dem Lese/Schreibmodesignal auftritt, welche
509809/1044
Schreibänderungen ausgeführt werden sollen. Dieses Signal
wird über eine Leitung 440 zwischen einem HCH 92 und einer
HSÜ 96 übertragen. Wenn die Lese/Schreibmodeleitung 414
"wahr" ist und die Lese/foodifizieren/Schreibleitung 440 "nicht
wahr1* ist, so führt die HSIJ 96 eine Lösch/Schreiboperation
darch» Wenn die Lese/Schireihmodeleitung 414 "wahr11 ist und di·
L@s®^odifizieren/Schreibl®itimg «wahr1» Ist, so führt di· HSU
96 eis© Lese/Modlfisieren/Schrelboper&tion durch. Ein Speicher»
wird über eine Leitung 418 an die HSU 96
;s üb eine der drei oben defilierten Operationen:
Lüsehen/Selreilban. oder Leeen/Hodifizieren/
L. Ei& Speiehers^lue-Aualösesignal wird
L@s@/H©di fizieren-Schreib-
©iiraalp ras <&®m. Start au©stäl£$senf - und
©ijasäslß w dem Scte©ife@at©li d©r 0p©?ati@si auasislSeen· SLn
Söhr®iboperation
in das Schreib· über di· Leitung
der Leae/Hodi-Bmtanquelle
<.i©e Operators'
ft sw# IiSW f$
Schließlich wird noch ein Leistungsversorgungssignal erzeugt,
welches die Steuerung der Leistungsversorgung durch den MCH 92 gestattet.
Im weiteren wird nun die Beschreibung der Funktionsweise des MCH 92 fortgesetzt· Die MSU-Steuereinheit 128 dient dazu, daB
die cteuersignale und Adressen zur richtigen MSH gelangen; zur
zeitUekesi Steuerung der Lese-oder Schreihvorgänge (elaaehließlieh
allw farlationen) und zw Adrtasrak&imreloftt 'die fir die
MSf^Ionfiguraiioiien erforderlich ist«,
Za der 1»verzmgt®a AusfUhrungs form kann d«r MCM 92 -während des
eier Anlag® oder eines Anlagexitests im on-Hne-Beiriel»
der Modulwartungstests is, off-line»Betrieb arbeiten·
Alle Bmtentranefere sind wortorientiert. ELn zwischen am MCM
eisern Ketpeetor transferiertes Wort enthält 1*8
wt& 1 Paritätsbit
Im folgend«® liird mm die K#raepeich*rölnheit (MSTJ) 96
M® Keraepeichereinheit 9€ «peichert
S«m«p«ich«rctap«l9 der dl« Eigenschaft besitzt,
auf Inforderusg Terfügbar zu. «achtn· All®
lieiim£ii der Itraspeichereiishtlt 96 sind durch eines MCM .
fdtacrte ötr ein·» speziellen MSH 96 (maxi «al % MSV· pro
E f€| zug»ordufft int· Aur diesem Onuid durchlauf «n all®
> <--^r->mr$,tLati.*^-, di# den Sp·!efe«modul 30a ben^tifeKf
iad MCl 92 b#TOF ei« durch die MSH 96 ausgelöst werdtE·
Si tBtMIt Ä· trforderlichtii Sp»ich#r«le»#ste9 Treili«s;
r&€)iam&£««cl!alt3k7«i«ef Adr····&« uns B«.f«moglet«?
»ad SctotibsBlp ELcricIitungea zur Zeitetaiierimg1 und %ir\
ύ· U if ς» 1C/ , ·,( 4 4
die zur Durchführung der geforderten Operationen notwendig ist.
In der bevorzugten Ausführungsform besitzt eine MSU 96 65 536
Adressenspeicherplätze mit je 6O-Bits Speicherkapazität. Unter
diesen 60 Bits befinden sich 2f8 Datenbits, 3 Kennbits, 1 Paritätsbit
für das Requestorwort, 7 Bits stehen zur Fehler-Wahrnehmung
zur Verfügung, 1 Bit stellt das Gesamtparitätsbit für das Wort dar, während es sich im Speichermodul 30 befindet.
Die 7 Fehlerwahrnehmungsbits und das Gesamtparitätsbit reichen
aus, einen 1-Bit-Fehler innerhalb des 6O-Bit-Feldes wahrzunehmen.
Wenn Information 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 /f8 Datenbits, 3
Kenntbits und 1 Paritätsbit transferiert.
In der bevorzugten Ausführungsform arbeitet die MSU 96 in
drei Betriebsmoden: der Lese/Rückstellmode (R/R), der Löschen/
Schreibmode (C/W), und der Lesen/Modifizieren/Schreibmode (R/M/W),
Die MSU 96 liest bei einer R/R-Operation Daten aus der durch
den MCM $2. definierten Speicheradresse aus und gibt diese Daten
in die zur MSU 96 führenden Sammelleitung. Die MSU 96 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ätze aus und gibt diese Daten
in die zum MCM 92 führende Sammelleitung. Die MSU 96 erhält vom MCM 92 Information und speichert diese in die adressierten
Speicherplätze. Bei folgenden MCM-Operationen wird diese MSU-
509809/1044
Operation verwendet: (a) überschreiben einzelner Wörter, mit
oder ohne flashback, (b) überschreiben einer N-Länge und (c) geschütztes Schreiben einzelner Wörter. Die HSU 96 liest bei
einer R/M/W-Operation Daten aus den durch den MCH 92 adressierten
Speicherplatz aus und gibt diese Information in die zu dem MCM führende Sammelleitung, Die HSU 96 speichert auf Befehl des
MCM 92 in dieselbe Adresse entweder die ursprüngliche, aus dem
Speicher ausgelesene Information oder eine vom HCM 92 übertragene
Information. Diese MSU-Operation findet bei eiern geschützten
N-Wort-Schreiben Verwendung.
In der bevorzugten Ausführungsform sind einer MSU 96 drei
Register zugeordnet, ein Speicheradressenregister (MAß) 170,
ein Speicherschreibregister (MWR) 172 und ein Speicherleseregister
(MRR) 17**. Die MSU 96 enthält außerdem einen Kernstapel
mit 65 536 Wörtern zu je 60 Bit. Von diesen 60 Bits sind kB Datenbits, 3 Kenntbits und 1 Paritätsbit für das
Requestorwort, 7 Bits stehen für die Fehlerwahrnehmung zur Verfügung und 1 Bit stellt das Gesamtparitätsbit für das
Wort dar, während dieses sich im Speichermodul 30a 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üfbits 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 96 eingesetzt wird, um den Kernstapel-Speicherplatz zu identifizieren, in den bzw. aus dem die Information (60 Bits)
gespeichert bzw. abgerufen wird. Das Speicherschreibregister
509809/1(HA
(MWR) 172 ist ein 60-Bit-Register, welches von der MSU 96
eingesetzt wird, um diejenige Information aus dem MCM 92 zu puffern, die in einen Stapelspeicherplatz eingeschrieben
werden soll· Das Speicherleseregister (MRB) \7k ist ein 60-Bit-Regißter,
welches eingesetzt wird, um diejenige Information zu puffern, die aus dem Stapel-Speicherplatz an den MCM 92
transferiert werden soll. Das MRS 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-phasing
ist zu bemerken, daß ein großer Prozentsatz der Speicher-,
operationen 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
96 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 96 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 96 ihren Zyklus vollständig durchläuft·
Diese Prozedur ist als sogenannte Verschachtelung (interlacing) bekannt. Ein if-MSU-Modul 95 ist zum Beispiel derart verschachtelbar,
daß if aufeinanderfolgende Adressen in vier verschiedenen
MSUs 96 untergebracht sind. Als Folge dieses
509809/1044
Mehrfach-Worttransfers (phasing) entstehen Gruppen von je if Wörtern,
je eine Gruppe während eines Taktzykluses. 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 Speichermodul (MSM) I78 erforderlich
sind. Eine grundlegende Funktion des Speicherlogikmoduls
176 besteht darin, die Speichersteuermodul-Logikebenen mit
den Logikebenen des Speichermoduls 178 kompaktibel 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 Pufferstufen
konvertiert werden·
Der MSM I78 enthält einen 60-Bit-Wort-Kernspeicher für 65 536 Worte,
das Speicherleseregister (MBB) 17k» zugeordnete Adreaeendekodierlogik,
Lese- und Schreibtreiber und Steuer- und Zeitsteuerlogik. In den folgenden Absätzen werden in Verbindung
mit der Fig. 38 und den Zeitsteuerdiagrammen, Fig. 39 und IfO,
funktionale Flußdiagramme der Lese/RUckstell-(HR), Löschen/
Schreib-(C/W) und Lesen/Modifizieren/Schreiboperationen (RMW)
näher erläutert.
509809/1044
Vor der Auslösung einer Speicheroperation muß der MCM 92.
ein Signal erhalten, welches bewirkt, daß eine MCU 96 verfügbar ist (das MAV-Signal). Der MCM 92 erzeugt und sendet
dann an die MSU 96 ein Speicherzyklus-Auslösesignal (IMC, welches von dem MLM 196 zur Erzeugung eines Speicherzyklus-Startsignal
für den MSM 178 verwendet wird. Wie in Fig. 38
dargestellt, enthält der MLM 176 eine Zeitverzögerung, aufgrund derer die 16-Bit-rAdresse (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 Adressenbits 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 den 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 eine gerade Parität wahrgenommen wird, liegt ein Fehler vor, aufgrund dessen ein Speicher-Paritätsfehlersignal
(MPE) durch den MRM 176 erzeugt und an den MCM 92 geleitet wird. Das MPE-Signal durchläuft eine von einem Adressenparität-Abtastimpuls
(APS-Signal,in dem MSM-Steuerbereich erzeugt) ausgesteuerte Torschaltung und gelangt dann zum MCM 92, in dem
ein Störungsunterbrecher erzeugt und dem Requestor zugeführt wird. Der Speicherlogikmodul 176 löst außerdem mittels eines
Datenwortauswahl-Negationssignal (WES) eine ^ese/Rückstelloperation
aus,· wobei das WES-Signal, die ursprünglichen Daten
(nun im MSM-Leseregister 174 enthalten) in den adressierten
Speicherplatz zurückschreibt.
509809/1044
Es wird nun angenommen, daß das MAV-Signal vorhanden ist,
(MSU verfügbar), daß eine Leseoperation ausgeführt werden soll, und daß das Adressenkontrollbit 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 (BWM) 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 1st, 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-Signal (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 I74. ein. Nach etwa 800 Nanosekunden
werden die Daten im Leseregister (RXXX) wieder in ihren ursprünglichen Adressenplatz zurückgestellt (restored) vgl· Fig. ZjO·
Der Inhalt des Leseregisters (RXXX) wird dem Speicherpuffer-
509809/1044
register 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 Nanosekunden), 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/Schrelboperation enthält
eine Leseoperation und eine Löschen/Schreiboperation und zusätzlich die zur Durchführung dieser Operation erforderlichen
zusätzlichen Steueroperationen· Um eine Lese/Modifizieren/Schreiboperation
zu starten, muß das IMC-Signal (Speicherzyklus-Auslö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ß
509809/1044
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 1M "-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 Lesezyklus1 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 14CM 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-Signal vorhanden ist, werden die Schreibdaten (WNN) durch
ein Schreibabtastsignal (WST) in dem MLM-Schreibregister
verriegelt (locked). Sofern eines der Wörter geschützt war, wird vom MCM 92 kein Speicherauswahlwort-Signal, 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.
509809/1CK4
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-Zeitsteuer-Iogik.i86
erzeugt) beendet wird.
Im folgenden wird nun auf das Plattendatei-Untersystem der vorliegenden Erfindung Bezug genommen. Durch das Plattendatei-Untersystem
wird eine äußerst schnelle, modulare, randomaccess-Ausdehnung
des Hauptspeichers 30 ermöglicht. Das Plattendatei-Untersystem
kann read-per- track -Plattendateispeichermoduln . und disk-pack-Speichermoduln enthalten, die mit einem
£ingabe-/Ausgabemodul 10 mittels Exchanges und Steuereinrichtungen
verbunden sind. Durch die Steuerung des Plattendateioptimierers (DFO) k0 können read-per-track-Plattendateimoduln 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 ifO eingesetzt, um die Transferrate der Daten zwischen dem Hauptspeicher
30 und den Plattendateimodulen zu optimieren (mittels der Eingabe-/Ausgabemodulen 10, der Plattendateisteuereinrichtungen
81 und mittels Exchanges), vgl. Fig. 2. Zur übertragung der Steuerinformation wird der Optimierer IfO über eine Abtastsammelleitung
mit einem Eingabe-/Ausgabemodul und mit Plattendateimodulen entweder direkt oder indirekt über andere Platten-
dateioptimierer verbunden.
Ohne den Plattendateioptimierer können head-per-track-Plattendateimodulen
in random-access- Speicherbänken mit einer Speicherkapazität von 15 bis 16 Milliarden 8-Bit-Bytes pro Eingabe-Aus-
509809/1OAA
gabemodul 10 eingesetzt werden. Disk-pack-Speichermoduln
können in randora-access-Speioherbänke mit einer Speicherkapazität
von 121 Millionen bis 15,5 Milliarden 8-Bit-Bytes
pro Eingabe-/Ausgabemodul 10 eingesetzt werden.
In einem Plattendatei-üntersystem, 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 Jobsin die Warteschlange der IOCBs für jede Plattendatei-Elektronikeinheit (EU) 171
eingefügt werden, die Beziehung zu der Platten startadresse, die durch jede Job-Anfrage und
die laufende Plattenposition (relativ zum Plattenanfang (head) ) 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 mehrer Jobanforderungen reduziert. Die Jobanforderungen werden bevorzugt in die
Warteschlangen der IOCBs für die DFOs ZfO eingegeben und nicht, v/ie 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, undfsofern 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 (head)).Diese Information wird
zur Aufrechterhaltung eines Job-Stapelzeigers verwendet, der
509809/1044
fortlaufend die bezüglich der Platten/Plattenanfangposition
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 Zustandsle,itungen ü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 (SCI) 76 des IOM 10
tastet diese Statusleitungen ab, um festzustellen, ob in Warteschlangen aufgereihte Steuerwörter von irgendeinem DFO l\Q
vorhanden sind. Wenn die Statusleitungen irgend eines DFO hO
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. Obersetzer
72 und die SCI-Einheit 76 des IOM 10 in das richtige Format
gebracht und dann über die Abtastsammelleitung allen DFOs
ij.0 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 Bestätigungssignal
an diesen DFO dar.
509809/104/»
Als Antwort auf das empfangene Abtastadressenwort transferiert der identifizierte DFO ifO ein Abtastinformationswort über die
Abtastsammelleitung zum IOM 10. Dieses Wort enthält eine
vollständige Speicherverbindungsadresse (memory link address), die von dem IOM 10 benutzt wird, um dem identifizierten DFO JfO
Zugriff zum lOM-Job-Bild (IOM job map.) zu verschaffen. Ein
durchgeführter Zugriff zu diesem Bereich liefert Information, die festlegt, ob diejenige EU-Einheit 171, 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 DFI-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 ifO eingegeben.
Er wird dann später noch einmal zu diesem DFO ifO zum
Zwecke einer erneuten Optimierung und eines erneuten Versuches einer Jobauslösung transferiert.
Tritt in einem DFO oder einem IOM 10 eine Störung auf, so verbleibt die Verantwortung für die Warteschlange des
Plattendatei-Untersystenfc bei den verbleibenden, intakten DFOs
und IOMs. Die folgenden Bedingungen lassen sich dann noch ausführen: (a) ein Zugriff zu dem Plattendatei-Untersystem
ist von den verbliebenen on-line DFO und IOM durchführbar (DFO und IOM-Störung), (b) der verbliebene DFO hO 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).
509809/1044
In der bevorzugten Ausfuhrungsform 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. Den Kern dieses
Datenvermittlungsnetzwerkes stellt der Datenvermittlungsprozessor 36 dar. Der Datenvermittlungsprozessor 36 ist ein kleiner,
programmierbarer, Speziairechner, 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 (DCI) 78 eines IOM
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 BCL, (c) USASCII
in EBCDIC, (d) USASCII in Internal, (e) BCL in EBCDIC, (f) Internal in USASCII und (g) Internal in BCL.
In der bevorzugten Ausfuhrungsform 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. if1 dargestellt.
Wie in Fig. ^1 dargestellt, enthält der Haupttaktgeber 173
drei Teilschaltungen: Einen kristallgesteuerten Haupttaktgeber
175, einen PllHz-Zählor 177 und einen kristallgesteuerten
5''Hs-Tjktgeb"r 179. Der kristallgesteuerte Haupttaktgeber
b^nitr-- fo]/;ondo drei Ausgangssignale: ein 16 MHz-Signal,
5 0 9 8 0 9/1044
welches den CEMs 20 als Takiaignal für die Programmsteuereinheit
56, die Speichereinheit 66 und die Ausführungseinheit
62 zugeführt ist; ein 8 MHz-Phase-1 -Signal, das der Vermittlungseinheit
68, den IOMs 10 und den MDUs 2.6 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 MHz-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 Modul von den normalen Speisegeräten getrennt sind. Wenn
also der den Haupttaktgeber enthaltende MCM ausfällt, so betreibt der Haupttaktgeber 173 die restlichen MCMs und Systemmodu3n
. Die Verteilung der Taktsignale an die anderen Moduln (vgl. Fig. ZfI) 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-Schaltkreis
auch von der Diagnose-Einheit (MDü) 26 geliefert werden. Ob der Einzelimpuls oder das Haupttaktgebersignal verwendet
wird, wird durch einen für jeden Modul vorgesehenen
509809/1044 ·
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 Modulen 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 (system resource) 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 (degradation) 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 halten, 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 neu zu ordnen und dadurch einen fehlerhaften Modul zeitweilig
von der Anlage abzutrennen.
509809/1044
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 (changes of environment)
zu ermöglichen. Diese Einrichtungen gestatten es dem mehrstufigen Operationssystem, eine störungsfreie Umgebung zu
suchen, in der Wiederherstellungsvorgänge (recovery tasks) (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.
509809/1044
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 ifO 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 (installation allocated disk) geschützte Plattendateien,
duplizierte Plattendateien und Fehlerstatements der in der Anlage verwendeten Programmiersprachen höherer Ebene . ·
erreicht.
Umfangreiche Fehlerprüfeinrichtungen erlauben die schnelle Wahrnehmung eines Fehlers und stellen eine Grundvoraussetzung
einer Fail-soft-Anordnung dar. Diese Einrichtungen sind kombiniert mit Einrichtungen, mit Hilfe derer Fehler in die
Fail-Register der Hauptkomponenten der Anlage gemeldet werden können, und mit Einrichtungen zur Korrektur von !-Bit-Fehlern
in dem Speicher.
Bezüglich der Modulo N-Kontrolle bei allen arithmetischen
Operationen und bezüglich der Paritätskontrolle und der Kontinuitätskontrolle bei Datentransfers, die die Fehlerwahrnehmung
509809/
- lpe. -
innerhalb des Hauptprozessormoduls 20 erheblich erleichtern, wird ein internes Prozessorunterbrechersignal erzeugt und
die Ursache der Störung 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. Eine Module N-Kontrolle des
Steuermodes 3 (CM 3) wird vorgenommen, um Fehler auf den Datenkanälen 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ßerdem werden Modulo-N-Kontrollen
an den von der Adresseneinheit an die Ausführungseinheit geschickten Adressen vorgenommen, und für die von.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-Kontrolle den wichtigsten
Schritt zur Wahrnehmung eines Fehlers dar, der durch ein besonderes Datentransfersignal verursacht wird. Die Kontinuitätsprüfung,
d.h. der Einsatz eines Gültigkeitsbits (validitybit), 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 Ausftihrungseinheit
wahrzunehmen.
Für die Wahrnehmung und Meldung von Fehlern in dem IOM 10
sind Einrichtungen vorhanden, die alle bei einem Datentransfer in oder aus der Anlage vorkommenden Fehler wahrnehmen können.
509809/1044
In dem IOM IO werden zur Fehlerwahrnehmung eine Paritätskontrolle
aller Datentransfers^eineModulo N-Kontrolle aller
arithmetischen Operationen, Paritätskontrolle aller Operationen der lokal en 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-/Ausgabeuntersystem 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-/Ausgabemoduls 10 gemeldet, und es wird ein IOM-FetüLerunterbrechersignal
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 10) wird von der Störung und von dem aufgetretenen
Fehlertyp benachrichtigt (ein FAIL-2-Unterbrechersignal
509809/1044
wird erzeugt). Die Fähigkeit des MCM 92, eine Korrektur von 1-Bit-Fehlern durchzuführen, erhöht nicht nur die Verfügbarkeit
und Einsatζfähigkeit außerordentlich, sondern eliminiert
auch, was noch viel wichtiger ist, eine Quelle transienter Fehler, die bis zum Aufbau einer Zeichenfolge (pattern)
vorkommen. In der erfindungsgemäßen Anlage werden die transienten Fehler korrigiert und der Inhalt des Fail-Registers liefert die
Information zum Aufbau der Störungs-Zeichenfolge (failure pattern).
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 Fehlers benachrichtigt (es wird ein FAIL-1-Unterbrechersignal
erzeugt). (Ein FAIL-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 Anlage, sondern auch die physikalische Redundanz
der Moduln und Kabel und außerdem die Isolation von Moduln erforderlich. Logische Operationen, wie die redudante 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 Ausfuhrungsform sind die Verbindungen zwischen
den Moduln und die Leistungsversorgung daher so ausgelegt,
509809/1044
daß die Unabhängigkeit der Moduln bewahrt ist. Die Unabhängigkeit
der Hauptmoduln (main-frame modules) 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-/Ausgabemodu3n werden als Requestoren behandelt,
von denen jeder einen eigenen Kanal zu 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-/AusgabemodulQ ) 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 Unterbrechersignalen
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 Zustahdstabelle im Speicher auf
den neuesten Stand zu bringen, gestört ist. Ein anderer Prozessor würde dann den gesamten Inhalt (load) übernehmen,
den gestörten Prozessor vom Speicher abtrennen, die Wiederherstellungsprozeduren
für die von dem gestörten Prozessor
509809/1044
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 Eingabe-/ 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 besitzen nicht nur die zentralen Komponenten der Anlage unabhängige Speiseeinrichtungen und zugehörige Regler, sondern
die kritischen 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. Sowohl die on-line und
stand-alone-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 IfO vorgesehen.
In der bevorzugten Ausführungsform der Diagnoseeinheit 26
ist ein Bedienungstisch vorgesehen, der in Verbindung mit einer Magnetbandeinheit 35 zur off-line-Prüfung des Hauptprozessormoduls
20, des Eingabe-/Ausgabemoduls 10, des MCM 92 und des Plattendateioptimierers ifO und beim Testen der Karten dieser
Komponenten der Anlage verwendet wird. Wenn beim Einsatz der on-line-Sicherheits- und Diagnoseprogramme ein gestörter Modul
509809/1044
identifiziert wurde, wird die Ursache der Störung mittels der Modultest- und Kartentesteinrichtungen der Diagnoseeinheit
zuerst auf der Kartenebene (card level) und schließlich auf Schaltkreisebene (circuit level) 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 Bedienungstafeln 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 den Wartungsaufgaben 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 dein Test unterzogenen Modul; es 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 vorgespeieherten 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 Kartentester der Diagnoseeinheit
vorgenommen, in dem nämlich Eingangssignalfolgen an eine Karte angelegt werden, die Ausgangssignale abgetastet und
mit vorgegebenen Vergleichssignalen verglichen werden.
Die den Einrichtungen der Anlage zugeordneten Plattenspeicher (installation allocated disk) ermöglichen es dem Benutzer,
die physikalische Zuordnung seiner kritischen Plattendateien anzugeben, um die Wartung
509809/1OAA
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 mehrstufige 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 System der vorliegenden Erfindung stellt eine echte Synthese von Hardware und S oftware dar. Die erfindungsgemäße
Software ist kein nachträglicher Einfall. Einerseits sind viele, herkömmlicherweise durch Software ausgeführte Funktionen
in die Hardware eingebaut, andererseits hängt die Steuerung und der ausgewogene Einsatz der Eardwareeinrichtungen von der
Software ab. Die bemerkenswerten Eigenschaften der Software . ,
nach der Erfindung liegen darin, daß (1) die gesamte Software in der Kompilierersprache höherer Ebene geschrieben ist und
Assemblersprachen und Maschinensprache dabei ausgeschlossen wurde, und daß (2) es ohne erneute Kompilierung möglich ist,
alle Anwendungsprogramme, Kompilierer-und Benutzerprogramme durchzuführen. Die erstgenannte Eigenschaft eliminiert die
Schwierigkeiten bei der Kommunikation des Menschen mit dem Rechner, indem sowohl vom Menschen als auch von der Maschine
509809/10U
verstehbare Sprachen verwendest werden, die an zweiter Stelle
genannte Eigenschaft stellt die Kompatibilität der Software
mit dem Maschinencode her.
Das mehrstufige Operationssystem nach der Erfindung enthält einen Kern 200 und ein oder mehrere Steuerprogramme 202,
vgl. Fig. lf2. Der Kern 200 stellt das Zentrum des Operationssystems dar, liefert 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 bestimmten Verwendungszweckes oder Jobs zugeschnitten ist, sei es eine schubweise zu verarbeitende Aufgabe, das Testen
von Hardwaremoduln, oder ein time-sharing-Verfahren. Jedes Steuerprogramm
bedient sich bei der Zuordnung von Einrichtungen und Pro- '
grammlaufplanen (scheduling) zu bestimmten Jobs der geeigneten Strategie
und braucht keine irrelevaten Strategien (irrelevant strategus) 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 experimentielle Software entstört wird.
509809/1OAA
Zweitens wird das mehrstufig? Operationssystem, bei einem
stärker modularen Aufbau, verständlich und besser organisierbar,
und daher werden dann auch Schreibvorgänge, die Wartung und eine Erweiterung 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 und CPM-Zeitplansteuerung,
(b) die physikalische E/A-Auslösung und Beendigung; (c) die Verarbeitung der Unterbrechersignale; (d) und die Programmstopp-Ladefunktionen
und weitere Fehlerwahrnehmungs- und Korrekturfunktionen· Andererseits liefert das Steuerprogramm 202 der
vorliegenden Erfindung die Operationsumgebung für die Benutzerprogramme
206· Das Steuerprogramm 202 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 erfindungsgemäßen mehrstufigen Operationssystems als Basisebene des Systems betrachtet
werden, die Steuerprogramme 202 stellen die nächste Ebene und die Benutzerprogramne 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.
509809/1044
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^Modülo-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 1-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 Anlagenteils 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
509809/1044
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, seijie 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 20if. 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;
509809/1044
- 163 - 243720Ό
(2) eine größere Kontrolle über die Verwendung dieser Hilfseinrichtungen
möglich ist; und daß (3) die Störungen der Moduln (CEM, IOM, MCM) 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 Speicherplatteneinheit begonnen wird. Zusätzlich müssen die MPC-Informationstabelle
und das Platteninhaltsverzeichnis auf der Platte präsent sein. Wenn diese Startbedingungen erfüllt sind, wird eine Stopp/Ladeoperation
durchgeführt, um die ersten 8192 Wörter des MCP in den Hauptspeicher 30 «inzulesen (der Hauptspeicher 30 steuert
logischen Segmenten von 163&f Wörtern des Programms
und beginnt mit der Durchführung des MCP,
Die Funktionen, die die MCP-Codedatei von einem Magnetband
auf die Plätte speichern und . die MCP-Infonnationstabelle
und das Platten-Inhaltsverzeichnis aufstellen oder revidieren, werden durch ein Systemladeprogramm ausgeführt. Dieses Programm
509809/1044
besitzt die Form eines Kartensatzes, der die Maschinencodebefehle
enthalt, 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-Üntersystem, die Größe der für das Platteninhaltsverzeichnis und für die übertragung
von Programmteilen (overlay) benötigten Plattenberei,che, die für die Um- und Neuordnung benötigten Platteneinheiten, die
auf speziellen Überwachungsgeräten angezeigten Tabellen, dasjenige Band, aus dem das MCP zur Speicherung herausgenommen
wurde und verschiedene Laufzeit-Systemangaben.
In der bevorzugten Ausfuhrungsform 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 Hardwareunterbrechersignal 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 Benutzerprogramme und bestimmte
509809/1(KA
MCP-Funktionen ausgeführt werden. In einer Mehrprozessoranlage bearbeitet jeder Prozessor seine eigenen Unterbrechersignale;
d.h., alle Prozessoren können gleichzeitig im Steuerzustand sein. .
Ein Eingang (entry) 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 Unterbrechersignalen gesteuert zugelassen oder nicht zugelassen sein. Der
Wechsel vom Steuerzustand 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
509809/1044
-,66- 243720°
Unterbrechernetzwerk ausgestattet. Die einem Prozessor zugeordneten
internen Unterbrechersignale werden direkt in dieses Netzwerk eingegeben und örtlich in diesem Prozessor gestapelt.
Externe Unterbrechersignale können dagegen von irgend einem Prozessor der Anlage zur Verfugung gestellt werden. Silbenabhängige Unterbrechersignale werden von der Prozessor-Operatorlogik
wahrgenommen. Diese silbenabhängige Unterbrechersignale umfassen Aritmethikfehler-,Präsenzbit-,Speicherschutz-
und ungültige Operanden-Ünterbrechersignale. Mit Ausnahme der
Arithmetikfehler-Unterbrechersignale, für die eine programmierte Steuerung zur Verfügung gestellt 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-Operatorlogik 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 Programm fehlern herrühren. Diese Unterbrechersignale enthalten diejenigen Unterbrechersignale
für ein gestörtes Auslesen aus dem Speicher, eine ungültige Adresse und ein ungültiges Programmbefehlswort, 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 Herausnähme des Moduls erforderliche Um- und Neuanordnung der Anlage
automatisch vom MCP vorgenommen. Das Hauptkriterium dafür, ob
509809/1044
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 Steuerzustand ü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,
PI 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 Unter-
509809/104A
brechersignals zu analysieren. Für einige Unterbrechersignale, 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 (memory links), 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 Hardwardoperator
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 Betrieb"-befindlichen Speicher-Anschlüsse enthalten die Stapelnummer des Anforderungsprozesses, die Länge des "in
Betrieb"-Bereiches, ein Verfügbarkeitsbit in der "aus"-Position,
einen Code, der die Benutzung 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 Anlage· Werden die verschiedenen Speichermedien
der Anlage als eine Hirachievon Speichern angesehen, so folgt aus dieser Betrachtung, daß das MCP die Zuordnung und das Ende
der Zuordnung aller Speicher der Anlage steuert.
509809/10U
Für den Speicherschutz ist eine Kombination aus Hardware-und
Softwareeinrichtungen vorgesehen. Eine Aufgabe der Hardware besteht in der automatischen Wahrnehmung von Zugriffs- und
Befehlsversuchen (attempt) 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,
Datendeskriptoren 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 Speicherbereich, einem Job zugeordnet, um die Speicherung für Basisprogramme und Datenreferenzen
zu ermöglichen. Außerdem kann der Stapel Daten und Jobverläufe (job history) 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
(linkage) wird durch das Stapel-Zeigerregister (S-Register
63) bewirkt, welches dip 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ührungs-
509 809/1044
einheit-62 des CPM 20 schnellen Zugriff für 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 Speicherplätze 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 platziert 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 Base-of-Stack-Register
(BOSR) 65 und dem Limit-of-Stack-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
das Benutzerprogramm diese absoluten Adressen nicht ändern. In der bevorzugten Ausfuhrungsform sind die Deskriptoren in
508809/1044
drei Kategorien, in Daten, Zeichenfolgen (string) 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-Deskriptoren 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 Langenfeld begrenzt. Segment-Deskriptoren werden zur Auffindung von Programmsegmenten verwendet.
Diese Deskriptoren enthalten entweder die Hauptspeicheroder 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 Misohindex (mix indix) jedes Jobs, der in die Anlage
eingegeben wurde. Eine Tabelle der peripheren Einheiten besitzt für jede periphere Einheit einen Eingang (Entry) in das System.
509809/ 1 OAA
Jeder Eingang enthält den Zustand der korrespondierenden
Einheit und die dieser Einheit zugeordnete Datei.
Die Zeitplan-Routine (scheduling routine) des MCP bestimmt die Reihenfolge der zu.bearbeitenden Jobs und die optimale
Programmischung, 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 Sheet-Warteschlange vor, um den Stapelverarbeitungsmodus (batch-mode process) zeitlich festzulegen. Die Sheet-Warteschlange
besteht aus einer angeschlossenen Liste von Prozessen, die auf ihre Durchführung warten. Jeder Entry in die
Sheet-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 Entrys in
den Zeitplanprozeß, die Größe und den Speicherplatz der Code-
509809/1044
segmente, die Größe des Arbeitsspeicherstapels und die
Größe und Speicherplatz der Information des Prozeßstapels. Nachdem die CONTROL CAHD ihre Aufgabe ausgeführt hat, und
sofern genügend freie Einrichtungen der Anlage vorhanden sind, wird der Entry aus der Sheet-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 übergeleitet 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-Prqzedur
des MCP bearbeitet. PRESENCE BIT wird eingegeben, wodurch folgende Schritte stattfinden, um das Segment in den Speicher
zu bringen: (1) PRESENCE BIT rufteine 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) DISKIO 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
509809/1044
der Job .fährt in seinem Durchlauf fort.
Ein im Speicher befindliches Programm belegt separat zugeordnete Bereiche, d.h. jeder Teil des Programms kanr» 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) das 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; (if) vom Programm verwendete Datenbereiche, die von den
Datendeskriptoren oder Zeichenfolge-Deskriptoren aus dem Stapel des Programms zugeordnet und aufgerufen (referenced) werden;
und (5) die MCP-Stapel und das Segmentwörterverzeichnis, die Variablen enthalten, die das MCP und die MCP-Segmentwörterverzeichnis-Entrys
betreffen.
Sobald ein Job läuft, werden zusätzliche Segmente des Programmcodes
und der Daten benötigt. Der Jobstapel enthält Speicherplätze für einfache Variablen und Feld - Datendeskriptoren,
509809/1044
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 Datendeskriptors 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-Prozedur, 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 Kernspeicherplä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 angemessen großen
Speicherbereiches erfolgen und als überlagerbar (overlayable) oder nicht überlagerbar markiert werden. Wenn ein "in Betrieb11-
509809/1 044 . "
— I/o —
Bereich benutzt wird, wird er an den vorher benutzten "in Betrieb"-Bereich mittels der in den Speicheranschlüssen
enthaltenen Left-off-Anschluß-und Zeigerfeider 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 tiberlagerbaren 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 der nicht benutzte
Teil verfügbar gemacht und 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
509809/1044
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, wenn dieses Ereignis auftritt. Ein Software-Unterbrecher
tritt ein, wenn ein Prozeß durch direkten Eingriff anderer Prozesse unterbrochen wird» Ein Prozeß kann unterbrochen
werden, wenn er eine Unterbrecher-Vereinbarung (Statement) innerhalb seines Bereiches besitzt.
Ein Prozeß kann das Eintreten eines Ereignisses mittels einer CAUSE-Vereinbarung abrufen. Das MCP-tastet die Unterbrecher-V/arteschlange
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 Entry 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 (interchannel interrupt).
Anschließend führt das MCP dem mit der Unterbrecher-Vereinbarung in Zusammenhang stehenden Statement Steuerungsmittel zu·
Mit der Veryollständigung dieses Statements, kehrt der Prozeß zu dem Ausgangspunkt der Steuerung zurück es sei denn, daß
ein Transfer von Steuerungsmitteln in dem Unterbrecher-Statement
vorgesehen ist. In diesem Fall kehrt der Prozeß nicht in den
509809/10U
vor dem.Unterbrecher vorhandenen Steuerzustand zurück, sondern
transferiert Steuerungsmittel, wie in der Unterbrecher-Vereinbarung angegeben.
Während das MCP die Unterbrecher-Warteschlange abtastet und dabei freigegebene Unterbrecher in inaktiven Stapeln findet,
nimmt es einen Entry in die Software-Unterbrecher-Warteschlange vor, unternimmt aber mit diesem Stapel erst etwas, we"nn er
aktiv wird«. Unmittelbar nachdem der Stapel aktiv gemacht wurde, Überprüft das MCP die Software-Unterbrecher-Warteschlange, 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-Datenbereiche des Hauptspeichers 30 werden an die Tabelle der verfügbaren
Speicher zurückgegeben; (if) alle Jobende-Entries werden in der Systemahilage (system log) für den Job gebracht, und (5)
der Stapel des Jobs wird in die Schluß-Warteschlange eingefügt.
Alle Eingabe-/Ausgabeoperationen der Anlage werden vom MCP ausgeführt.
Das MCP ordnet automatisch, sofern das möglich ist,
509809/10U
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 Ausgabendateien werden automatisch durch das
MCP zugeordnet, wenn für diese Datei eine geeignete Einheit existiert. Im Falle von Plattendateien wird ein Plattendatei-Wörterverzeichnis-Entry
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 oder random), die Dateimode (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 Dateititel dar, der derjenigen Einheit zugeordnet ist, die die Datei oder den Titel in dem Plattendatei-Kopfteil
enthält. Der tatsächliche Dateiname ist identisch mit dem
symbolischen Dateinamen, es sei denn, es liegt eine andere Spezifikation aufgrund Etikettensteuer-Anweisungen vor.
Um für eine Datei eine dynamische Spezifizierung der tatsächlichen
Dateinamen zu ermöglichen, sind drei Tabellen notwendig: Ein Prozeß-Parameterblock, ein Etikett-Gleichungsblock
und ein Datei-Informationsblock. Durch CONTBOLCARD wird
für alle Dateien in einem Job ein Prozeß-Paramterblock ge-
5098 0-9/10U
schaffen· Dieser Block enthält den symbolischen Dateinamen
und die gesamte, für diesen Prozeß spezifizierte Kompilierzeit» oder Ausführungszeit-Etikett-Gleichungsinformation
(compilations or execution time lable equation information). Der Etikett-Gleichungsblock und der Datei-Informätionsblock
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 von Dateieigenschaftön. 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 physikalische 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-Gleichungeblock
gestattet die Veränderung der Datei-Spezifikationen, wie z.B. der Puffergröße und der Blockungsfaktoren, während der Programmaue
führ ungszeit, 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 (logical record) enthält, wird die Datei
als Blockdatei bezeichnet. Wenn ein Job zu einer Datei Zugriff erlangt, wird ein physikalischer Datensatz aus einem Speicherbereich
herausgeschrieben oder eingelesen, der als Pufferbereich für die Datei zur Verfügung steht. Wenn die Datei als Block
SeSS0t/1Oii
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 mehrere Puffer
eingesetzt werden. 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 ^atenvermittlungsprozessor
36 vorgenommen.
Diejenigen Vorgänge des Datenvermittlungssystems, die auf Anwendungen
ausgerichtet sind, werden durch das Nachrichten-. SteuersystemprogrammiMCS) betrieben. Diese Vorgänge schließen
die Jobsteuerung und die Unterhaltung der Datei aus der Ferne ein. Das Nachrichten-Steuersystemprogramm koordiniert zusätzlich
509809/10U
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.
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 (comprehensive system log) bewerkstelligt.
Steuerkarten und einem verstehenden Systemregister (comprehensive system log) bewerkstelligt.
Der Zustand der Anlage und der in Bearbeitung stehenden Jobs wird auf den Anzeigeeinheiten angezeigt. Spezielle Fragen,
die kurzfristige Antworten 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-Tabellen und Job-Tabellen. Der Operator tritt mit dem MCP durch Eingabe-/Ausgabe-Machrichten (messages) 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, zu Benutzerprogrammen und zu Hardwaremoduln der Anlage»
die kurzfristige Antworten 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-Tabellen und Job-Tabellen. Der Operator tritt mit dem MCP durch Eingabe-/Ausgabe-Machrichten (messages) 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, zu Benutzerprogrammen und zu Hardwaremoduln der Anlage»
Ein Benutzer Übergibt der Anlage einen Job als eine Seihe von
Steuerkarten und als einen Kartenstapel in :- Ursprungssprache. Alternativ braucht der Benutzer nur eine Reihe von Steuerkarten zu
509809/1044
übergeben oder eine Steuervereinbarung an der Eingabeschalttafel auslösen, sofern er diejenigen Programme vorher auf
Platte gespeichert hatte, deren Durchführung er wünscht, und sofern er die Namen dieser Programme in das Platten-Wörterverzeichnis
auf dem Weg einer fehlerfreien Kompilierung eingegeben hat.
Für einen Job, der eine Kompilierung erforderlich macht, muß die erste Steuerkarte eine Kompiliervereinbarung enthalten,
die den einzusetzenden Kompilierer und den Typ der Kompilierung angibt. Drei Formen sind dabei'möglich: Kompilieren und Ausführen,
Kompilieren für die Bibliothek und Kompilieren für die Syntaxkontrolle. Die weiteren Typen der Steuerkarte können
für alle Jobs verwendet werden, gleichgültig ob sie eine Kompilierung erfordern oder nicht erfordern. Diese Typen von
Steuerkarten enthalten eine AusführungsVereinbarung, eine
Prozeßzeitvereinbarung, eine Prioritätsvereinbarung, Kernspeicherum fang-Vereinbarung, eine E/A-Zeit-Vereinbarung
und E/A-Einheiten-Vereinbarungen, die Dateietiketten bestimmten E/A-Einheiten zuordnen.
Das HCP unterhalt auf der Platte ein Systemregister (system
log), welches eine Aufzeichnung aller Aktivitäten innerhalb der Anlage darstellt· Neben den Fehlern in der Anlage und der
Wartungsstatistik macht dieses Register dem Benutzer noch folgende 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 nach der Erfindung kein Allheilmittel für den kontinuierlichen Betrieb
509809/10 A4
und die sich daraus ergebenden Probleme anbietet. Allerdings
stellt es einen brauchbaren Rahmen zum Aufbau eines kontinuierlich betriebenen Operationssystems dar, da die distributiven
Eigenschaften der erfindungsgemäßen 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 Hardware die
Störungshäufigkeit auf ein Minimum, und die Software minimiert
die Auswirkung einer vorkommenden Störung. XM 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 $2 und mindestens zwei Eingabe-/
Ausgabemoduln 10 enthalten. Außerdem muß eine Systemplatte in einem von den beiden IOMs 10 gemeinsam benutzten Exchange
vorhanden sein, oder es müssen zwei Kopien der Systemplatte, je eine für jeden IOM 10, oder alle beide von den IOMs 10
gemeinsam benutzt, vorhanden sein. Es müssen außerdem mindestens zwei, normalerweise aber mehr E/A-Anzeigeeinheiten, mindestens
eine für jeden IOM 10 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 Eingangsund
Ausgangseinrichtungen und -geräte erreicht, wobei die
relativ langsamen peripheren Geräte optimal genutzt werden,
und sie wird durch die Vornahme von Ausführungshandlungen erreicht, um so allen Prozeßbedingungen virtuell gerecht zu
werden und die nachteiligen Auswirkungen der Systemrückstufung auf ein Minimum zu reduzieren. Sie Gesamtrate und Effizienz, mit
mit der Jobs unter Steuerung des mehrstufigen Operationssystems verarbeitet werden können, wird durch Erhöhung der Ausführungs-
509809/1044
geschwindigkeit individueller Benutzerprograimne (insbesondere
durch Verwendung eines reentrant-Codes,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.
509809/1044
Claims (2)
1. .Modulare, Simultan-Informationsverarbeitungsanlage,
dadurch gekennzeichnet,, daß mehrere Speichermoduln (3Oa) zu einem Daten- und
Steuerinformation speichernden, Mehrfach-Zugriff besitzenden Hauptspeicher (30) verbunden sind, daß mehrere
Hauptprozessormoduln (20) zur Verarbeitung der Daten in Übereinstimmung mit der Steuerinformation vorgesehen
sind, daß mehrere Eingabe/Ausgabemoduln (10) für den Datentransfer vorgesehen sind, daß den Hauptprozessormoduln
(20) und den Eingabe/Ausgabemoduln (10) Einrichtungen zugeordnet sind, die Zugriff zum Hauptspeicher
(30) herstellen, und daß den Speichermoduln (30a), den Hauptprozessormoduln (20) und den Eingabe/Ausgabemoduln
(10) Einrichtungen zur Wahrnehmung und Meldung von Fehlern innerhalb dieser Moduln zugeordnet sind.
2. . Informationsverarbeitungsanlage nach Anspruch 1,
dadurch gekennzeichnet, daß den Speichermoduln (30a) Einrichtungen zur Wahrnehmung
und zur Korrektur aller 1-Bit-Fehler zugeordnet sind.
ReRb/Pi.
509809/10U
e
Programmsteuerwort - PCW
Plätze an der Spitze des Stapels - TOS
"Daten vorhandentl-Signal - DAP
Wort mit indirekter Bezugnahme - IRW
Normalmode - CMO
Steuermode 1 - CM1
Steuermode 2 - CM2
Steuermode 3 - CM3
Steuermode 4 - CM4
PC-Adapter A - PC/ADP A
PC-Adapter B - PC/ADP-B
Plattendateisteuereinrichtungs-Adapter - DFC-ADP-B
509809/1044 οκβΙΝ«. ihbfkied
Abtastkanal-Adapter Plattendateioptimierer-Adapter
Da t enkoinmunikati onspr ο ζ ess or-Adapt er A
Datenkommunikationsprozessor-Adapter B Speicherkanaladapter Schutzschalter-Adapter A
Schutzschalter-Adapter B Einheitenbezeichnungsnummer Erste Einheitenbezeichnungsnummer
Nächste Einheitenbezeichnungsnummer Einheitentabelle Eingabe/Ausgabe-Warteschlangeschwanz
Status-Warteschlange Eingabe/Ausgabesteuerwort
Nächster Anschluß Aktiver Kanalstapel Re sultatdeskriptor Standardsteuerfeld Lokaler Datenspeicher
Datenschreibsignal Schreiben-Abtastimpulssignal Schreiben-Auswahlsignal .
Datenparitäts-Abtastsignal Spezialanforderungssignal Anforderungssignal
Bestätigungssignal Anforderungs-Abtastimpulssignal Datenabtastimpulssignal
"Daten-verfügbarn-Signal
Requestoroperations-Verlaufzeit Datensendesignal nDaten-vorhandenn-Signal
Eine Taktperiode dauerndes Signal
Requestoroperations-Ausführungszeit · Nachrichten-Steuersystemprogramm
Software-Unterbrechersignal Parameter
Parameter
Lesen/RUckstellmode
DFO/ADP DCP/ADP-A DCP/ADP-B MB/ADP SWI/ADP-A SWI/ADP-B
UD FUD NUD UT IOQT
SQ IOCW NL ACS RD SCF LMD "WNN WST WDS
DPS RQSN REQ ACK RSTB DSTB DAV ROC SND DAPB RQOS ORT MCS FALS PI
P2 R/R
509 809/10
ORIGINAL INSPECTED
Löschen/Schreibande - ^ ^ 'cjW
Lesen/Modifizieren/Schreibmode - R/M/W
Speicherzyklus-Auslösesignal - IMC
Speicherzyklus-Startsignal - SMC
Paritätsbit; Paritätsabtastsignal - PAR
Speicher-Paritätsfehlersignal - MPE
Adressenparitäts-Abtastsignal - APS
Datenwortauswahl-Negationssignal - WDS
Lesen/Schreibmode - RWM
" Speicherwerfügbar "-Signal - MPA
Zyklusende Signal - EOC
ltLesen-verfügbar-ausw-Signal - MAO
nLesen-verfügbarw-Signal - - RXA
Leseregister Daten - RXXX
509 809/1044 QftieiNAL
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 true DE2437200A1 (de) | 1975-02-27 |
DE2437200C2 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 (164)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE31318E (en) * | 1973-09-10 | 1983-07-19 | Computer Automation, Inc. | Automatic modular memory address allocation system |
DE2438536C2 (de) * | 1974-08-10 | 1985-12-12 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V., 8000 München | Multiprozessoranordnung mit räumlich verteilten Mikroprozessorstationen |
IT1020701B (it) * | 1974-09-02 | 1977-12-30 | Olivetti & Co Spa | Contabile elettronica biprogramma bile |
US4048623A (en) * | 1974-09-25 | 1977-09-13 | Data General Corporation | Data processing system |
US4104718A (en) * | 1974-12-16 | 1978-08-01 | Compagnie Honeywell Bull (Societe Anonyme) | System for protecting shared files in a multiprogrammed computer |
US4010450A (en) * | 1975-03-26 | 1977-03-01 | Honeywell Information Systems, Inc. | Fail soft memory |
DE2546202A1 (de) * | 1975-10-15 | 1977-04-28 | Siemens Ag | Rechnersystem aus mehreren miteinander verbundenen und zusammenwirkenden einzelrechnern und verfahren zum betrieb des rechnersystems |
JPS5296836A (en) * | 1976-02-10 | 1977-08-15 | Toshiba Corp | Multiplex data processing system |
GB1572894A (en) * | 1976-03-04 | 1980-08-06 | Post Office | Data processing equipment |
US4096567A (en) * | 1976-08-13 | 1978-06-20 | Millard William H | Information storage facility with multiple level processors |
US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4096571A (en) * | 1976-09-08 | 1978-06-20 | Codex Corporation | System for resolving memory access conflicts among processors and minimizing processor waiting times for access to memory by comparing waiting times and breaking ties by an arbitrary priority ranking |
US4148098A (en) * | 1976-10-18 | 1979-04-03 | Xerox Corporation | Data transfer system with disk command verification apparatus |
US4093985A (en) * | 1976-11-05 | 1978-06-06 | North Electric Company | Memory sparing arrangement |
US4177514A (en) * | 1976-11-12 | 1979-12-04 | General Electric Company | Graph architecture information processing system |
US4103326A (en) * | 1977-02-28 | 1978-07-25 | Xerox Corporation | Time-slicing method and apparatus for disk drive |
US4174537A (en) * | 1977-04-04 | 1979-11-13 | Burroughs Corporation | Time-shared, multi-phase memory accessing system having automatically updatable error logging means |
JPS53124943A (en) * | 1977-04-08 | 1978-10-31 | Agency Of Ind Science & Technol | Composite information processor |
US4199811A (en) * | 1977-09-02 | 1980-04-22 | Sperry Corporation | Microprogrammable computer utilizing concurrently operating processors |
US4276594A (en) * | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
US4266271A (en) * | 1978-10-10 | 1981-05-05 | Chamoff Martin E | Reconfigurable cluster of data-entry terminals |
EP0012016A1 (de) * | 1978-11-30 | 1980-06-11 | Sperry Corporation | Speicherzugriffssteuerung |
US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
US4253144A (en) * | 1978-12-21 | 1981-02-24 | Burroughs Corporation | Multi-processor communication network |
GB2059652B (en) * | 1979-09-29 | 1983-08-24 | Plessey Co Ltd | Memory protection system using capability registers |
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 |
US4342083A (en) * | 1980-02-05 | 1982-07-27 | The Bendix Corporation | Communication system for a multiple-computer system |
US4348739A (en) * | 1980-02-12 | 1982-09-07 | International Business Machines Corporation | Terminal providing communication system information output |
US4322846A (en) * | 1980-04-15 | 1982-03-30 | Honeywell Information Systems Inc. | Self-evaluation system for determining the operational integrity of a data processing system |
FR2482331B1 (fr) * | 1980-05-06 | 1986-03-21 | Thomson Csf Mat Tel | Procede d'arbitration centralisee, et arbitreur centralise pour systeme multiprocesseur |
JPS57757A (en) * | 1980-06-04 | 1982-01-05 | Hitachi Ltd | Job execution schedule system |
US4412281A (en) * | 1980-07-11 | 1983-10-25 | Raytheon Company | Distributed signal processing system |
EP0048767B1 (de) | 1980-09-27 | 1985-03-20 | Ibm Deutschland Gmbh | Prioritätsstufengesteuerte Unterbrechungseinrichtung |
US4491907A (en) * | 1980-12-15 | 1985-01-01 | Texas Instruments Incorporated | Plurality of processors sharing the memory, the arithmetic logic unit and control circuitry all on a single semiconductor chip |
US4388684A (en) * | 1981-03-27 | 1983-06-14 | Honeywell Information Systems Inc. | Apparatus for deferring error detection of multibyte parity encoded data received from a plurality of input/output data sources |
EP0076846B1 (de) * | 1981-04-16 | 1988-01-27 | Ncr Corporation | Datenverarbeitungssystem mit fähigkeit zur fehlerkontrolle |
JPS57189396A (en) * | 1981-05-14 | 1982-11-20 | Nec Corp | Controller for plural storage parts in data processing system |
US4555759A (en) * | 1981-05-18 | 1985-11-26 | International Business Machines Corp. | Selective use of restored file setups |
US4675810A (en) * | 1981-05-22 | 1987-06-23 | Data General Corp. | Digital data processing system having a uniquely organized memory system using object-based addressing and in which operand data is identified by names accessed by name tables |
US4514800A (en) * | 1981-05-22 | 1985-04-30 | Data General Corporation | Digital computer system including apparatus for resolving names representing data items and capable of executing instructions belonging to general instruction sets |
US4498131A (en) * | 1981-05-22 | 1985-02-05 | Data General Corporation | Data processing system having addressing mechanisms for processing object-based information and a protection scheme for determining access rights to such information |
WO1983001135A1 (en) * | 1981-09-18 | 1983-03-31 | Rovsing As Christian | Multiprocessor computer system |
US4837675A (en) * | 1981-10-05 | 1989-06-06 | Digital Equipment Corporation | Secondary storage facility empolying serial communications between drive and controller |
US4825406A (en) * | 1981-10-05 | 1989-04-25 | Digital Equipment Corporation | Secondary storage facility employing serial communications between drive and controller |
US4811279A (en) * | 1981-10-05 | 1989-03-07 | Digital Equipment Corporation | Secondary storage facility employing serial communications between drive and controller |
US4495567A (en) * | 1981-10-15 | 1985-01-22 | Codex Corporation | Multiprocessor/multimemory control system |
US4455601A (en) * | 1981-12-31 | 1984-06-19 | International Business Machines Corporation | Cross checking among service processors in a multiprocessor system |
US4451884A (en) * | 1982-02-02 | 1984-05-29 | International Business Machines Corporation | Cycle stealing I/O controller with programmable offline mode of operation |
US4472790A (en) * | 1982-02-05 | 1984-09-18 | International Business Machines Corporation | Storage fetch protect override controls |
US4519032A (en) * | 1982-06-09 | 1985-05-21 | At&T Bell Laboratories | Memory management arrangement for microprocessor systems |
US4648031A (en) * | 1982-06-21 | 1987-03-03 | International Business Machines Corporation | Method and apparatus for restarting a computing system |
US4491838A (en) * | 1982-07-28 | 1985-01-01 | International Business Machines Corporation | Starloop communication network and control system therefor |
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 |
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 |
US5140592A (en) * | 1990-03-02 | 1992-08-18 | Sf2 Corporation | Disk array system |
US5233618A (en) * | 1990-03-02 | 1993-08-03 | Micro Technology, Inc. | Data correcting applicable to redundant arrays of independent disks |
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 |
US5956524A (en) * | 1990-04-06 | 1999-09-21 | Micro Technology Inc. | System and method for dynamic alignment of associated portions of a code word from a plurality of asynchronous sources |
US5233692A (en) * | 1990-04-06 | 1993-08-03 | Micro Technology, Inc. | Enhanced interface permitting multiple-byte parallel transfers of control information and data on a small computer system interface (SCSI) communication bus and a mass storage system incorporating the enhanced interface |
US5214778A (en) * | 1990-04-06 | 1993-05-25 | Micro Technology, Inc. | Resource management in a multiple resource system |
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 |
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 | 関東自動車工業株式会社 | 自動車の発進方向表示装置 |
US5594915A (en) * | 1991-11-13 | 1997-01-14 | Atalla; Martin M. | Microcell computer system and method using cell access switch and functionally partitioned moving memory architecture |
US5564107A (en) * | 1991-11-13 | 1996-10-08 | Atalla; Martin M. | Microcell computer system and method using cell access switch and moving memory architecture |
US5506955A (en) * | 1992-10-23 | 1996-04-09 | International Business Machines Corporation | System and method for monitoring and optimizing performance in a data processing system |
SE500940C2 (sv) * | 1993-02-10 | 1994-10-03 | Ellemtel Utvecklings Ab | Sätt och system för att i ett distribuerat operativsystem demontera en kedja av sammanlänkade processer |
US5867640A (en) * | 1993-06-01 | 1999-02-02 | Mti Technology Corp. | Apparatus and method for improving write-throughput in a redundant array of mass storage devices |
DE69518403T2 (de) * | 1994-01-10 | 2001-03-29 | The Dow Chemical Co., Midland | Ein massiv multiplexierter, superskalarer prozessor mit harvard-architektur |
US20030088611A1 (en) * | 1994-01-19 | 2003-05-08 | Mti Technology Corporation | Systems and methods for dynamic alignment of associated portions of a code word from a plurality of asynchronous sources |
US5553232A (en) * | 1994-06-13 | 1996-09-03 | Bull Hn Informations Systems Inc. | Automated safestore stack generation and move in a fault tolerant central processor |
US5557737A (en) * | 1994-06-13 | 1996-09-17 | Bull Hn Information Systems Inc. | Automated safestore stack generation and recovery in a fault tolerant central processor |
US5555424A (en) * | 1994-10-06 | 1996-09-10 | The Dow Chemical Company | Extended Harvard architecture computer memory system with programmable variable address increment |
US5875294A (en) | 1995-06-30 | 1999-02-23 | International Business Machines Corporation | Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states |
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 |
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 |
US5729726A (en) * | 1995-10-02 | 1998-03-17 | International Business Machines Corporation | Method and system for performance monitoring efficiency of branch unit operation in a processing system |
US5691920A (en) * | 1995-10-02 | 1997-11-25 | International Business Machines Corporation | Method and system for performance monitoring of dispatch unit efficiency in a processing system |
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 |
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 |
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 |
JP2000501217A (ja) * | 1996-01-24 | 2000-02-02 | サン・マイクロシステムズ・インコーポレイテッド | 配列アクセス境界チェックを加速したプロセッサ |
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 |
US7305585B2 (en) * | 2002-05-23 | 2007-12-04 | Exludus Technologies Inc. | Asynchronous and autonomous data replication |
US20050216910A1 (en) * | 2002-05-23 | 2005-09-29 | Benoit Marchand | Increasing fault-tolerance and minimizing network bandwidth requirements in software installation modules |
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 |
EP1573538A2 (de) * | 2002-08-28 | 2005-09-14 | Livedevices Limited | Verbesserungen in bezug auf die stapelbenutzung in computerbezogenen betriebssystemen |
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 |
US8650470B2 (en) | 2003-03-20 | 2014-02-11 | Arm Limited | Error recovery within integrated circuit |
US8185812B2 (en) * | 2003-03-20 | 2012-05-22 | Arm Limited | Single event upset error detection within an integrated circuit |
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 |
US7278080B2 (en) * | 2003-03-20 | 2007-10-02 | Arm Limited | Error detection and recovery within processing stages of an integrated circuit |
US7260001B2 (en) * | 2003-03-20 | 2007-08-21 | Arm Limited | Memory system having fast and slow data reading mechanisms |
US7650331B1 (en) * | 2004-06-18 | 2010-01-19 | Google Inc. | System and method for efficient large-scale data processing |
US7590620B1 (en) | 2004-06-18 | 2009-09-15 | Google Inc. | System and method for analyzing data records |
US7756919B1 (en) * | 2004-06-18 | 2010-07-13 | Google Inc. | Large-scale data processing in a distributed and parallel processing enviornment |
DE102004048945B4 (de) * | 2004-10-07 | 2007-10-11 | Nec Electronics (Europe) Gmbh | Systemüberwachungseinheit |
US20060294049A1 (en) * | 2005-06-27 | 2006-12-28 | Microsoft Corporation | Back-off mechanism for search |
US20070067455A1 (en) * | 2005-08-08 | 2007-03-22 | Microsoft Corporation | Dynamically adjusting resources |
US20070067510A1 (en) * | 2005-09-22 | 2007-03-22 | Gladfelter David K | I/O configuration, and logging of resources associated with I/O open requests |
US7581142B2 (en) * | 2006-01-03 | 2009-08-25 | Nec Laboratories America, Inc. | Method and system usable in sensor networks for handling memory faults |
US8046766B2 (en) * | 2007-04-26 | 2011-10-25 | Hewlett-Packard Development Company, L.P. | Process assignment to physical processors using minimum and maximum processor shares |
US8171386B2 (en) * | 2008-03-27 | 2012-05-01 | Arm Limited | Single event upset error detection within sequential storage circuitry of an integrated circuit |
US8161367B2 (en) * | 2008-10-07 | 2012-04-17 | Arm Limited | Correction of single event upset error within sequential storage circuitry of an integrated circuit |
US8510538B1 (en) | 2009-04-13 | 2013-08-13 | Google Inc. | System and method for limiting the impact of stragglers in large-scale parallel data processing |
US8311982B2 (en) * | 2010-02-11 | 2012-11-13 | Hewlett-Packard Development Company, L. P. | Storing update data using a processing pipeline |
US9389913B2 (en) | 2010-07-08 | 2016-07-12 | Hewlett Packard Enterprise Development Lp | Resource assignment for jobs in a system having a processing pipeline that satisfies a data freshness query constraint |
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 |
DE112019003204T5 (de) * | 2018-06-26 | 2021-03-11 | Fanuc America Corporation | Visualisierung und modifizierung von arbeitsrandbereichen unter verwendung von erweiterter realität |
CN110111254B (zh) * | 2019-04-24 | 2023-03-24 | 天津大学 | 一种基于多级递归引导和渐进监督的深度图超分辨率方法 |
CN113821367B (zh) * | 2021-09-23 | 2024-02-02 | 中国建设银行股份有限公司 | 确定故障设备影响范围的方法及相关装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3411139A (en) * | 1965-11-26 | 1968-11-12 | Burroughs Corp | Modular multi-computing data processing system |
US3623011A (en) * | 1969-06-25 | 1971-11-23 | Bell Telephone Labor Inc | Time-shared access to computer registers |
Family Cites Families (10)
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 |
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 |
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 BR BR5822/74A patent/BR7405822D0/pt unknown
- 1974-07-15 GB GB3116274A patent/GB1454198A/en not_active Expired
- 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 JP JP49089391A patent/JPS5914776B2/ja not_active Expired
- 1974-07-31 IT IT25802/74A patent/IT1017774B/it active
- 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
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3411139A (en) * | 1965-11-26 | 1968-11-12 | Burroughs Corp | Modular multi-computing data processing system |
US3623011A (en) * | 1969-06-25 | 1971-11-23 | Bell Telephone Labor Inc | Time-shared access to computer registers |
Non-Patent Citations (2)
Title |
---|
Harold Lorin, Parallelism in Hardware and Software, Prentice-Hall Inc., 1972, S. 335-340 * |
IEEE Transactions on Computers, Vol. C-19, No. 12, Dezember 1970, S. 1153-1159 * |
Also Published As
Publication number | Publication date |
---|---|
DE2437200C2 (de) | 1985-06-05 |
IT1017774B (it) | 1977-08-10 |
CA1029131A (en) | 1978-04-04 |
GB1454198A (en) | 1976-10-27 |
FR2295486B1 (de) | 1978-07-21 |
US3905023A (en) | 1975-09-09 |
FR2295486A1 (fr) | 1976-07-16 |
JPS5914776B2 (ja) | 1984-04-06 |
BR7405822D0 (pt) | 1975-05-27 |
BE818364A (fr) | 1974-12-02 |
JPS5073541A (de) | 1975-06-17 |
CH574646A5 (de) | 1976-04-15 |
NL7410212A (nl) | 1975-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2437200A1 (de) | Informationsverarbeitungsanlage | |
DE2716051C2 (de) | Datenverarbeitungsanlage mit einem oder mehreren Prozessoren mit mindestem einem Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der zum Speicherzugriff Schlüssel verwendet werden | |
DE2458065C2 (de) | Datenverarbeitungsanlage | |
DE69021712T2 (de) | Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme. | |
DE2400161C2 (de) | ||
DE3751616T2 (de) | Parallel-Grossrechner. | |
DE3689287T2 (de) | Datenverarbeitungsgerät. | |
EP0048767B1 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE2104733C2 (de) | Eingabe/Ausgabe-Einrichtung für eine Datenverarbeitungsanlage | |
EP0952520B1 (de) | Vorrichtung zur fehlertoleranten Ausführung von Programmen | |
DE2612083A1 (de) | Verfahren und vorrichtung zur ein/ausgang-datenverarbeitung | |
DE2459675A1 (de) | Datenverarbeitungssystem | |
DE2054835C2 (de) | Steuereinrichtung in einem Prozessor einer Mehrprozessor-Datenverarbeitungsanlage | |
DE2350884A1 (de) | Datenverarbeitungssystem | |
DE2719295A1 (de) | Programmsteuerung | |
DE2500006A1 (de) | Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen | |
DE2612139A1 (de) | Ein/ausgang-steuerungssystem | |
DE3131341A1 (de) | "pufferspeicherorganisation" | |
DE2740056A1 (de) | Mulitprozessor-rechnersystem | |
CH522921A (de) | Rechneranlage | |
DE1449532B2 (de) | Datenverarbeitungsanlage | |
DE1524209A1 (de) | Leitwerk fuer eine Rechenanlage | |
CH619309A5 (de) | ||
DE2629459A1 (de) | Datenverarbeitungssystem | |
DE2517276A1 (de) | Datenverarbeitungssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
8128 | New person/name/address of the agent |
Representative=s name: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING. |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |