DE2437200A1 - Informationsverarbeitungsanlage - Google Patents

Informationsverarbeitungsanlage

Info

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
Application number
DE2437200A
Other languages
English (en)
Other versions
DE2437200C2 (de
Inventor
Frank Joseph Perpiglia
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unisys Corp
Original Assignee
Burroughs Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Burroughs Corp filed Critical Burroughs Corp
Publication of DE2437200A1 publication Critical patent/DE2437200A1/de
Application granted granted Critical
Publication of DE2437200C2 publication Critical patent/DE2437200C2/de
Expired legal-status Critical Current

Links

Classifications

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

Description

Pcrtenianwälie
Dr.-Iivj. Wilhelm Reiche!
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
!»©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;
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.
A. Hauptprozessor
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.
Das Eingabe-ZAusgabe-Untersystem
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)
Tabelle 1
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.
S^^Fi1^1^ ^ Kf~ und Sl
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 -
Bit(s) Funktion
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
Kanalnummer-Basis-
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
Exchanges (LCEX) _
(22 und 21) gibt die zwei am wenigstens signi
fikanten Bits der letzten Kanalnummer des Exchanges an, für den die Einrichtung eingesetzt ist·
Bits(20 bis 17) nicht verwendet Letzte Einheit (LST)
(16) gibt an, sofern gesetzt, daß die
letzte Einheiten-Bezeichnung im
Exchange ist·
x) Nächste Einheiten-Bezeichnung (NUD)
(15 his 8). zeigt auf die nächste Einheiten-
Bezeichnungsnummer, die mit dem Exchange verbunden ist.
Verwendeter Kanal
(7 bis 3) . diese Bits geben den Kanal an,
. der zur Bedienung der Einrichtung verwendet wurde (durch den IOH gesetzt)
Bits (2 bis O) nicht verwendet
«") gelten nur für Exchange-Einrichtungen
509809/1OAA
- 6ο -
Tabelle 3
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)
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
Tabelle 5
STATUS-WARTESCHLANGEKOPFTEIL
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
Bit(s) Funktion
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
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
TAG 50:3 ' Gibt an, wenn das tJnterbrechungsbit
(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.
R/W /f7:1 Das R/W-Bit gibt an, wenn ein Fehler
wahrgenommen wurde, ob die ausgeführte Operation in einer Schreiboperation oder einer Leseoperation bestand.
MSU AV 46:2 Das MSU AV-FeId gibt an, welche MSU(s)
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
MCM NO . J+lf:k Die MCM-Nummer ist eine im voraus
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
Beschreibung
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 ·
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
Feld Bits Beschreibung
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,
SAD ORIGINAL
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.
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.
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»
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)

Patentansprüche
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
509809/1044 Bezugs2437200 Abkürzung Begriff zeichen IOM Eingabe/Ausgabemodul 10 CPM Hauptprozessormodul 20 MDU Diagnose-Einheit 26 - - Operatorkonsole 27 Hauptspeicher 30 - Speichermodul . 30a - Hauptleitung 32 - Magnetbandeinheit 35 Df1P Datenvermittlungsprozessor 36 Datenkommunikationsprozessor ■ - Periphere Steuereinrichtungen 38 PCI/PCC Peripherer Steuerschrank 39 DFO Plattendateioptimierer 40 - Programmbereich 42 - Ausführungsbereich 44 - Speicherbereich 46 - Programmpuffer 48 - 32-Vörter-Stapelpuffer 50 - Assoziierter Speicher 52 - Programmwalze 54 - Programasteuereinheit . 56 - Fehlerkontrollogik 58 Adresseneinheit 60 Ausführungseinheit 62 S Stapelzeiger-Register 63 - Ausführungseinheit-Eingabewarteschlange 64 BOSR Base-of-Stack-Register 65 - Speichereinheit 66 LOSR Limit-of-Stack-Register 67 CU Vermittlungseinheit 68 - Eingabewarteschlange 70 FR Fail-Register 71 _ übersetzer 72 MIU SpeicheranschluSeinheit 74 SCI Abtastanschlußeinheit 76 - DFO-Abtastanschluß 76a ORIGINAL INSPECTED
DCP-Abtastanschluß 509809/10AA 76b 24372O0 108 - Datenkommunikationsprozessor- 7p Ty1T - Speicheranschlußeinheit IJL. J. - Abtastkanal 79 - Periphere Steueranschlußeinheit 80 PCI - Plattendatei-Steuereinrichtungen ΆΛ - PFl/PCC-Steuerschrank O I - Plattendatei-Anschlußeinheit 82 DFI MBR Magnetbandeinheit 83 MTU - SPO-Einheit
e
85 SPO -
Single-line-Steuereinrichtungen 87 SLC - Speicheruntersystem 88 - - Speicher-Requestor-Schalter/Schaltnetzwerk 90 - " - Speichersteuermodul 92 MCM - 2-MSU-Speichermodul 93 - - Speicherschrank 94 MSC - 4-MSU-Spelchermodul 95 - Kernspeichereinheit 96 MSU Speichermodul 98 MSM Speicherlogikmodul 100 MLM Versorgungsspannungsmodul 102 MPU Requestorsperregister 104 - Speichergrenzwertregi ster 106, Fehlerwahrnehmungslogik 110 Fail-Register 112 Empfänger/ üreiberlogik 114 Prioritätsresolver 116 Steuerwortregister 118 Eingaberegister 120 Steuereinrichtungen 122 Speicherpufferregister. 124 Ausgaberegister 126 MSU-Steuereinheit 128 Prüfbitgenerator 130 Requestoranschlußeinheit 132 Datenleitung 134 MCM-MSU-Verbindungseinheit 135 Bestätigungsleitung 136 Anforderungsleitung 138
509809/1044 140 2437200 Anforderungsleitung 142 Anforderungsimpulsleitung 146 - Datenabtastimpulsleitung 152 - "Daten-vorhandenn-Leitung 154 - Requestoroperationsabschluß-Leitung 156 - Leitung 158 - Leitung 160 - Requestorauslöseleitung 162 - MCM-Auslöseleitung 164 - Verbindungsleitung 166 - Verbindungsleitung 170 - Speicheradressenregister 171 MAR Plattendatei-Elektronikeinheit 172 EU Speicherschreibregister 173 MWR Haupttaktgeber 174 - Speicherleseregister 175 MRR Kristallgesteuerter Haupttaktgeber 776 - Speicherlogikmodul 177 MLM 2 MHz-Zähler 178 - Speichermodul 179 MSM Kristallgesteuerter 5MHz-Taktgeber 180 - Leseregister 186 - MSM-Zeitsteuerlogik 200 - Kern 202 - Steuerprogramm 204 Systemhardware 206 - Benutzerprogramme 298 - Unterbrecherkanal 302 Eingaberegister 304 IN Ausgaberegister . 306 OP Vermittlungsadressenregister 308 CA Vermittlungslängenregister 310 CLN Remember-Suspend-RegSster, 312 RS EjLngabe/Ausgabe-Untersystembild 314 IOSM Hausadresse 316 ■ HA Einheiten-Tabelle 318 UT Kopf der Warteschlangetabelle 320 IOQH Schwanz der Warteschlangetabelle 322 IOQP Status-Warteschlangekopf
Eingabe/Ausgabe-Steuerblock 324 **· - SQ-Register 326 - Dateneingabeleitungen 402 - Datenausgabeleitungen 404 - Leitung 406 - Leitung 408 - Leitung 410 - Adressenparitätsleitung 412 ■ - Lesen/Schreibmodeleitung 414 - Leitung 420 - Leitung 422 - Leitung 424 - Lesen/Modifizieren/Schreibleitung 440 SAR Stapeladressenregister - SLR Stapelgrenzregister
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
DE2437200A 1973-08-15 1974-08-02 Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise Expired DE2437200C2 (de)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
DE2437200A1 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 (163)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE31318E (en) * 1973-09-10 1983-07-19 Computer Automation, Inc. Automatic modular memory address allocation system
DE2438536C2 (de) * 1974-08-10 1985-12-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V., 8000 München Multiprozessoranordnung mit räumlich verteilten Mikroprozessorstationen
IT1020701B (it) * 1974-09-02 1977-12-30 Olivetti & Co Spa Contabile elettronica biprogramma bile
US4048623A (en) * 1974-09-25 1977-09-13 Data General Corporation Data processing system
US4104718A (en) * 1974-12-16 1978-08-01 Compagnie Honeywell Bull (Societe Anonyme) System for protecting shared files in a multiprogrammed computer
US4010450A (en) * 1975-03-26 1977-03-01 Honeywell Information Systems, Inc. Fail soft memory
DE2546202A1 (de) * 1975-10-15 1977-04-28 Siemens Ag Rechnersystem aus mehreren miteinander verbundenen und zusammenwirkenden einzelrechnern und verfahren zum betrieb des rechnersystems
JPS5296836A (en) * 1976-02-10 1977-08-15 Toshiba Corp Multiplex data processing system
GB1572894A (en) * 1976-03-04 1980-08-06 Post Office Data processing equipment
US4096567A (en) * 1976-08-13 1978-06-20 Millard William H Information storage facility with multiple level processors
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4096571A (en) * 1976-09-08 1978-06-20 Codex Corporation System for resolving memory access conflicts among processors and minimizing processor waiting times for access to memory by comparing waiting times and breaking ties by an arbitrary priority ranking
US4148098A (en) * 1976-10-18 1979-04-03 Xerox Corporation Data transfer system with disk command verification apparatus
US4093985A (en) * 1976-11-05 1978-06-06 North Electric Company Memory sparing arrangement
US4177514A (en) * 1976-11-12 1979-12-04 General Electric Company Graph architecture information processing system
US4103326A (en) * 1977-02-28 1978-07-25 Xerox Corporation Time-slicing method and apparatus for disk drive
US4174537A (en) * 1977-04-04 1979-11-13 Burroughs Corporation Time-shared, multi-phase memory accessing system having automatically updatable error logging means
JPS53124943A (en) * 1977-04-08 1978-10-31 Agency Of Ind Science & Technol Composite information processor
US4199811A (en) * 1977-09-02 1980-04-22 Sperry Corporation Microprogrammable computer utilizing concurrently operating processors
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4266271A (en) * 1978-10-10 1981-05-05 Chamoff Martin E Reconfigurable cluster of data-entry terminals
EP0012016A1 (de) * 1978-11-30 1980-06-11 Sperry Corporation Speicherzugriffssteuerung
US4253144A (en) * 1978-12-21 1981-02-24 Burroughs Corporation Multi-processor communication network
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
GB2059652B (en) * 1979-09-29 1983-08-24 Plessey Co Ltd Memory protection system using capability registers
US4516199A (en) * 1979-10-11 1985-05-07 Nanodata Computer Corporation Data processing system
WO1981001066A1 (en) * 1979-10-11 1981-04-16 Nanodata Computer Corp 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
DE3070320D1 (en) 1980-09-27 1985-04-25 Ibm Deutschland Priority stage controlled interruption device
US4491907A (en) * 1980-12-15 1985-01-01 Texas Instruments Incorporated Plurality of processors sharing the memory, the arithmetic logic unit and control circuitry all on a single semiconductor chip
US4388684A (en) * 1981-03-27 1983-06-14 Honeywell Information Systems Inc. Apparatus for deferring error detection of multibyte parity encoded data received from a plurality of input/output data sources
AU545258B2 (en) * 1981-04-16 1985-07-04 Ncr Corporation Data processing system having error checking capability
JPS57189396A (en) * 1981-05-14 1982-11-20 Nec Corp Controller for plural storage parts in data processing system
US4555759A (en) * 1981-05-18 1985-11-26 International Business Machines Corp. Selective use of restored file setups
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
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
EP0088789B1 (de) * 1981-09-18 1987-08-05 CHRISTIAN ROVSING A/S af 1984 Multiprozessor-rechnersystem
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
US4870566A (en) * 1984-08-27 1989-09-26 International Business Machines Corp. Scannerless message concentrator and communications multiplexer
US4627054A (en) * 1984-08-27 1986-12-02 International Business Machines Corporation Multiprocessor array error detection and recovery apparatus
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
US5140592A (en) * 1990-03-02 1992-08-18 Sf2 Corporation Disk array 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
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
US5414818A (en) * 1990-04-06 1995-05-09 Mti Technology Corporation Method and apparatus for controlling reselection of a bus by overriding a prioritization protocol
US5233692A (en) * 1990-04-06 1993-08-03 Micro Technology, Inc. Enhanced interface permitting multiple-byte parallel transfers of control information and data on a small computer system interface (SCSI) communication bus and a mass storage system incorporating the enhanced interface
US5214778A (en) * 1990-04-06 1993-05-25 Micro Technology, Inc. Resource management in a multiple resource system
US5956524A (en) * 1990-04-06 1999-09-21 Micro Technology Inc. System and method for dynamic alignment of associated portions of a code word from a plurality of asynchronous sources
US5426427A (en) * 1991-04-04 1995-06-20 Compuserve Incorporated Data transmission routing system
US5285456A (en) * 1991-05-15 1994-02-08 International Business Machines Corporation System and method for improving the integrity of control information
EP0513519A1 (de) * 1991-05-15 1992-11-19 International Business Machines Corporation Speichersystem für Multiprozessorsysteme
CA2067576C (en) * 1991-07-10 1998-04-14 Jimmie D. Edrington Dynamic load balancing for a multiprocessor pipeline
JPH0516558U (ja) * 1991-08-19 1993-03-02 関東自動車工業株式会社 自動車の発進方向表示装置
US5594915A (en) * 1991-11-13 1997-01-14 Atalla; Martin M. Microcell computer system and method using cell access switch and functionally partitioned moving memory architecture
US5564107A (en) * 1991-11-13 1996-10-08 Atalla; Martin M. Microcell computer system and method using cell access switch and moving memory architecture
US5506955A (en) * 1992-10-23 1996-04-09 International Business Machines Corporation System and method for monitoring and optimizing performance in a data processing system
SE500940C2 (sv) * 1993-02-10 1994-10-03 Ellemtel Utvecklings Ab Sätt och system för att i ett distribuerat operativsystem demontera en kedja av sammanlänkade processer
US5867640A (en) * 1993-06-01 1999-02-02 Mti Technology Corp. Apparatus and method for improving write-throughput in a redundant array of mass storage devices
SG44642A1 (en) * 1994-01-10 1997-12-19 Dow Chemical Co A massively multiplexed superscalar harvard architecture computer
US20030088611A1 (en) * 1994-01-19 2003-05-08 Mti Technology Corporation Systems and methods for dynamic alignment of associated portions of a code word from a plurality of asynchronous sources
US5553232A (en) * 1994-06-13 1996-09-03 Bull Hn Informations Systems Inc. Automated safestore stack generation and move in a fault tolerant central processor
US5557737A (en) * 1994-06-13 1996-09-17 Bull Hn Information Systems Inc. Automated safestore stack generation and recovery in a fault tolerant central processor
US5555424A (en) * 1994-10-06 1996-09-10 The Dow Chemical Company Extended Harvard architecture computer memory system with programmable variable address increment
US5875294A (en) 1995-06-30 1999-02-23 International Business Machines Corporation Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states
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
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
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
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
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5678003A (en) * 1995-10-20 1997-10-14 International Business Machines Corporation Method and system for providing a restartable stop in a multiprocessor system
US6067415A (en) * 1995-12-26 2000-05-23 Kabushiki Kaisha Toshiba System for assisting a programmer find errors in concurrent programs
WO1997027544A1 (en) * 1996-01-24 1997-07-31 Sun Microsystems, Inc. Processor with accelerated array access bounds checking
US6163761A (en) * 1996-02-15 2000-12-19 Henkel Corporation System for monitoring and controlling production and method therefor
US6202174B1 (en) * 1996-09-16 2001-03-13 Advanced Micro Devices Inc Method for identifying and correcting errors in a central processing unit
US5784394A (en) * 1996-11-15 1998-07-21 International Business Machines Corporation Method and system for implementing parity error recovery schemes in a data processing system
US6560682B1 (en) * 1997-10-03 2003-05-06 Intel Corporation System and method for terminating lock-step sequences in a multiprocessor system
US6430708B1 (en) * 1998-04-17 2002-08-06 Visa International Service Association Method and apparatus for testing job control language (JCL) members
US6282671B1 (en) * 1998-11-10 2001-08-28 International Business Machines Corporation Method and system for improved efficiency of parity calculation in RAID system
US7908216B1 (en) * 1999-07-22 2011-03-15 Visa International Service Association Internet payment, authentication and loading system using virtual smart card
GB0102515D0 (en) * 2001-01-31 2001-03-21 Hewlett Packard Co Network adapter management
US20020140710A1 (en) * 2001-04-02 2002-10-03 Fliflet Brandon L. Method and apparatus for dynamically balancing graphics workloads on a demand-based zone renderer
US6895498B2 (en) * 2001-05-04 2005-05-17 Ip-First, Llc Apparatus and method for target address replacement in speculative branch target address cache
US7421693B1 (en) 2002-04-04 2008-09-02 Applied Micro Circuits Corporation Logic for synchronizing multiple tasks at multiple locations in an instruction stream
US7437535B1 (en) 2002-04-04 2008-10-14 Applied Micro Circuits Corporation Method and apparatus for issuing a command to store an instruction and load resultant data in a microcontroller
US6938132B1 (en) * 2002-04-04 2005-08-30 Applied Micro Circuits Corporation Memory co-processor for a multi-tasking system
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
US20050216910A1 (en) * 2002-05-23 2005-09-29 Benoit Marchand Increasing fault-tolerance and minimizing network bandwidth requirements in software installation modules
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
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
AU2003255827A1 (en) * 2002-08-28 2004-03-19 Livedevices Limited Improvements relating to stack usage in computer­related operating systems
GB2392515B (en) * 2002-08-28 2005-08-17 Livedevices Ltd Improvements relating to stack usage in computer-related operating systems
US7447794B1 (en) * 2002-12-04 2008-11-04 Silicon Graphics, Inc. System and method for conveying information
US7260001B2 (en) * 2003-03-20 2007-08-21 Arm Limited Memory system having fast and slow data reading mechanisms
US7278080B2 (en) * 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
US8185812B2 (en) 2003-03-20 2012-05-22 Arm Limited Single event upset error detection within an integrated circuit
WO2004084070A1 (en) * 2003-03-20 2004-09-30 Arm Limited Systematic and random error detection and recovery within processing stages of an integrated circuit
US8650470B2 (en) 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
US7650331B1 (en) * 2004-06-18 2010-01-19 Google Inc. System and method for efficient large-scale data processing
US7756919B1 (en) 2004-06-18 2010-07-13 Google Inc. Large-scale data processing in a distributed and parallel processing enviornment
US7590620B1 (en) 2004-06-18 2009-09-15 Google Inc. System and method for analyzing data records
DE102004048945B4 (de) * 2004-10-07 2007-10-11 Nec Electronics (Europe) Gmbh Systemüberwachungseinheit
US20060294049A1 (en) * 2005-06-27 2006-12-28 Microsoft Corporation Back-off mechanism for search
US20070067455A1 (en) * 2005-08-08 2007-03-22 Microsoft Corporation Dynamically adjusting resources
US20070067510A1 (en) * 2005-09-22 2007-03-22 Gladfelter David K I/O configuration, and logging of resources associated with I/O open requests
US7581142B2 (en) * 2006-01-03 2009-08-25 Nec Laboratories America, Inc. Method and system usable in sensor networks for handling memory faults
US8046766B2 (en) * 2007-04-26 2011-10-25 Hewlett-Packard Development Company, L.P. Process assignment to physical processors using minimum and maximum processor shares
US8171386B2 (en) * 2008-03-27 2012-05-01 Arm Limited Single event upset error detection within sequential storage circuitry of an integrated circuit
US8161367B2 (en) * 2008-10-07 2012-04-17 Arm Limited Correction of single event upset error within sequential storage circuitry of an integrated circuit
US8510538B1 (en) 2009-04-13 2013-08-13 Google Inc. System and method for limiting the impact of stragglers in large-scale parallel data processing
US8311982B2 (en) * 2010-02-11 2012-11-13 Hewlett-Packard Development Company, L. P. Storing update data using a processing pipeline
WO2012005728A1 (en) * 2010-07-08 2012-01-12 Hewlett-Packard Development Company, L.P. Resource assignment for jobs in a system having a processing pipeline
US8493120B2 (en) 2011-03-10 2013-07-23 Arm Limited Storage circuitry and method with increased resilience to single event upsets
US8862938B2 (en) 2011-04-18 2014-10-14 General Electric Company System, method, and apparatus for resolving errors in a system
JP2012242877A (ja) * 2011-05-16 2012-12-10 Sony Corp メモリ管理装置、メモリ管理方法、および、制御プログラム
US9141438B2 (en) 2011-06-30 2015-09-22 Net Navigation Systems, Llc Logic for synchronizing multiple tasks
DE102015211458A1 (de) * 2015-06-22 2016-12-22 Robert Bosch Gmbh Verfahren und Vorrichtung zum Absichern einer Programmzählerstruktur eines Prozessorsystems und zum Überwachen der Behandlung einer Unterbrechungsanfrage
CN106776439A (zh) * 2015-11-20 2017-05-31 英业达科技有限公司 数据传输系统及其方法
US10318175B2 (en) * 2017-03-07 2019-06-11 Samsung Electronics Co., Ltd. SSD with heterogeneous NVM types
US10802932B2 (en) * 2017-12-04 2020-10-13 Nxp Usa, Inc. Data processing system having lockstep operation
CN110111254B (zh) * 2019-04-24 2023-03-24 天津大学 一种基于多级递归引导和渐进监督的深度图超分辨率方法
CN113821367B (zh) * 2021-09-23 2024-02-02 中国建设银行股份有限公司 确定故障设备影响范围的方法及相关装置

Citations (2)

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

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US27703A (en) * 1860-04-03 Improvement in cultivators
NL283162A (de) * 1961-09-13
US3319226A (en) * 1962-11-30 1967-05-09 Burroughs Corp Data processor module for a modular data processing system for operation with a time-shared memory in the simultaneous execution of multi-tasks and multi-programs
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
US3812468A (en) * 1972-05-12 1974-05-21 Burroughs Corp Multiprocessing system having means for dynamic redesignation of unit functions
US3792448A (en) * 1973-05-21 1974-02-12 Burroughs Corp Failsoft peripheral exchange

Patent Citations (2)

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

* Cited by examiner, † Cited by third party
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
JPS5914776B2 (ja) 1984-04-06
US3905023A (en) 1975-09-09
NL7410212A (nl) 1975-02-18
BR7405822D0 (pt) 1975-05-27
CA1029131A (en) 1978-04-04
IT1017774B (it) 1977-08-10
CH574646A5 (de) 1976-04-15
FR2295486A1 (fr) 1976-07-16
DE2437200C2 (de) 1985-06-05
JPS5073541A (de) 1975-06-17
FR2295486B1 (de) 1978-07-21
BE818364A (fr) 1974-12-02
GB1454198A (en) 1976-10-27

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
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
DE2722099C2 (de)
DE2400161C2 (de)
EP0048767B1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE2104733C2 (de) Eingabe/Ausgabe-Einrichtung für eine Datenverarbeitungsanlage
DE69730276T2 (de) Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes
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
DE2500006A1 (de) Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE3131341A1 (de) &#34;pufferspeicherorganisation&#34;
CH522921A (de) Rechneranlage
DE1524209A1 (de) Leitwerk fuer eine Rechenanlage
EP0333123A2 (de) Modular strukturiertes ISDN-Kommunikationssystem
CH619309A5 (de)
DE2629459A1 (de) Datenverarbeitungssystem
DE2517276A1 (de) Datenverarbeitungssystem
DE2750721A1 (de) Ein/ausgabe-system
DE1524102B2 (de) Elektronische, aus baueinheiten aufgebaute datenverarbeitungsmaschine

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