DE2740056C2 - - Google Patents

Info

Publication number
DE2740056C2
DE2740056C2 DE2740056A DE2740056A DE2740056C2 DE 2740056 C2 DE2740056 C2 DE 2740056C2 DE 2740056 A DE2740056 A DE 2740056A DE 2740056 A DE2740056 A DE 2740056A DE 2740056 C2 DE2740056 C2 DE 2740056C2
Authority
DE
Germany
Prior art keywords
data
rail
output
input
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Revoked
Application number
DE2740056A
Other languages
English (en)
Other versions
DE2740056A1 (de
Inventor
James Allen San Jose Calif. Us Katzman
Joel Folsom Palo Alto Calif. Us Barlett
Richard Mccloud Sunnyvale Calif. Us Bixler
William Henry Atherton Calif. Us Davidow
John Alexander Pleasanton Calif. Us Despotakis
Peter John Graziano
Michael Dennis Los Altos Calif. Us Green
David Albert Greig
Steven John Cupertino Calif. Us Hayashi
David Robert Ben Lomond Calif. Us Mackie
Dennis Leo Scotts Valley Calif. Us Mcevoy
James Gary Treybig
Steven Warren Sunnyvale Calif. Us Wierenga
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of DE2740056A1 publication Critical patent/DE2740056A1/de
Application granted granted Critical
Publication of DE2740056C2 publication Critical patent/DE2740056C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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
    • 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
    • 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/2023Failover techniques
    • 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/2035Error 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 without idle spare hardware
    • 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/2043Error 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 where the redundant components share a common memory address space
    • 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/2097Error 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 maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/287Multiplexed DMA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Description

Die Erfindung betrifft ein fehlertolerantes Multiprozessorsystem, mit wenigstens zwei getrennten Prozessormodulen, von denen jedes eine zentrale Verarbeitungseinheit, einen Speicher und einen Eingabe-/Ausgabekanal aufweist, mit einem Interprozessor-Bussystem, um Befehle und Daten zwischen den Prozessormodulen auszutauschen, mit wenigstens zwei zwischen den Prozessormodulen angeordneten und für den Anschluß von Peripheriegeräten vorgesehenen Geräteanschlüssen, die den Datenaustausch zwischen den einzelnen Prozessormodulen und den zugehörigen Peripheriegeräten steuern, sowie mit wenigstens zwei, von dem Interprozessor- Bussystem getrennten Ein-/Ausgabe-Leitungen, die jeweils zwischen dem Eingabe-/Ausgabekanal eines der Prozessormodule und den Geräteanschlüssen verlaufen, um diese Geräteanschlüsse mit wenigstens zwei Prozessormulden zu verbinden.
Bei einem derartigen Computersystem mit mehreren Rechenwerken können die untereinander verbundenen Prozessormodule entweder parallele Datenverarbeitung durchführen oder im Mehrprogrammbetrieb in zeitlicher Verzahnung arbeiten. Dies hat zwei entscheidende Vorteile: Durch die Möglichkeit des Simultanbetriebs mehrerer Prozessoren kann die Verarbeitungsgeschwindigkeit, insbesondere von großen Datenmengen, erheblich erhöht werden, und das Versagen eines Prozessors führt nicht sofort zum Totalausfall des gesamten Computersystems, da für die Rechenarbeit immer noch wenigstens ein zweites Prozessormodul zur Verfügung steht.
Computersysteme mit mehreren Prozessormodulen zeichnen sich also durch erhöhte Auswahlsicherheit aus, jedoch gewährleistet das Vorhandensein mehrerer getrennter Prozessoren allein noch nicht, daß das System beim Versagen eines beliebigen Bauteils unbedingt betriebsfähig bleibt. Eine Möglichkeit, eine in nahezu jedem denkbaren Fall ununterbrochene Datenverarbeitung zu gewährleisten, besteht darin, daß man zwei oder mehr große monolithische Rechner zusammenarbeiten läßt, oder daß man mehrere Kleinrechner miteinander verbindet, um auf diese Weise einen Simultanbetrieb zu ermöglichen. Die erste Möglichkeit, große monolithische Rechner miteinander zu verbinden, ist unverhältnismäßig teuer, da überflüssigerweise auch Gehäuse und Kühleinrichtungen mehrfach beschafft werden müssen. Bei der anderen Lösung, mehrere Kleinrechner untereinander zu verbinden, ergibt sich der Nachteil, daß man ein spezielles Verbindungsglied zwischen den Rechnern vorsehen muß, welches ursprünglich nicht für eine derartige Betriebsweise konstruiert worden ist. Die erforderliche Verbindung wird in der Regel über die Eingabe-/Ausgabekanäle hergestellt. Solche Verbindungen arbeiten jedoch zwangsläufig langsamer als interne Übertragungseinrichtungen innerhalb des einzelnen Rechners. Aus mehreren Kleinrechnern zusammengestellte Multiprozessorsysteme zeichnen sich deshalb durch eine relativ niedrige Arbeitsgeschwindigkeit aus und sind durch das nachträgliche Vorsehen spezieller Baugruppen überdies teuer.
Bei den bisher bekannten Anordnungen ergeben sich weitere Schwierigkeiten bezüglich der Herstellung der Verbindungen zu den Peripheriegeräten. Werden nämlich mehrere Peripheriegeräte an einen einzigen Eingabe-/Ausgabekanal eines Prozessormoduls angeschlossen, so stehen im Falle des Versagens dieses Prozessormoduls die Peripheriegeräte dem System selbst dann nicht zur Verfügung, wenn der gestörte Prozessor über entsprechende Verbindungen mit einem oder mehreren weiteren Prozessoren in Kommunikationsverbindung steht. Zur Vermeidung dieser Schwierigkeiten ist es bisher üblich, einen Eingabe-/Ausgabe-Leitungsschalter zu verwenden, welcher die Eingabe-/Ausgabe-Leitungen so miteinander verbindet, daß die Peripheriegeräte auch dann zugänglich bleiben, wenn der mit diesen Peripheriegeräten zusammenarbeitende Prozessor versagt. Solche speziellen Leitungsschalter sind jedoch nicht nur kostspielig, sondern sie stellen überdies eine weitere Fehlerquelle dar, welche zum Ausfall eines erheblichen Teils des gesamten Computersystems führen kann.
Aus "P. H. Enslow (Editor), Multiprocessor and Parallel Processing", 1974, J. Wiley & Sons, Seiten 238-249, ist bereits eine Multiprozessoranlage mit zwei getrennten Prozessormodulen bekannt, von denen jeder eine zentrale Verarbeitungseinheit, einen Speicher sowie einen Eingabe-/ Ausgabekanal aufweist. Die beiden getrennten Prozessormodule sind mittels einer Interprozessor-Busleitung direkt miteinander verbunden, so daß Signale und Daten zwischen den Prozessormodulen übertragen werden können. Dieses vorbekannte Multiprozessorsystem weist ferner mehrere Geräteanschlüsse auf, welche zwischen den Prozessormodulen angeordnet sind und für die Steuerung des Datentransfers zwischen den Prozessormodulen und den damit in Beziehung stehenden Peripheriegeräten vorgesehen sind.
Diese Geräteanschlüsse sind als Zweikanal-Schalter ausgebildet. Es sind ferner zwei von der Interprozessor-Busleitung getrennte Ein-/Ausgabe-Leitungen vorhanden, die jeweils zwischen dem Eingabe-/Ausgabekanal eines der Prozessormodule und einem der Geräteanschlüsse verlaufen, so daß jeder Geräteanschluß mit beiden Prozessormodulen verbunden ist.
Aus "Elektrisches Nachrichtenwesen", 1972, Band 47, Seiten 157-161, ist ebenfalls ein Computersystem mit zwei getrennten Verarbeitungseinheiten bekannt, die über ein Sammelschienensystem mit Koppelnetz-Zugriffseinrichtungen, mit Ein-/Ausgabe-Einheiten und verschiedenen speziellen Einrichtungen für die automatische Überwachung und Wartung des Systems verbunden sind. Die zwei Verarbeitungseinheiten können untereinander über einen Datenkanal Information austauschen. Jede Verarbeitungseinheit enthält ferner einen Taktgeber, der regelmäßig Programmunterbrechungen vornimmt, sowie eine Statuseinheit. Ein Fehlererkennungsverfahren umfaßt die gegenseitige Prüfung der beiden Verarbeitungseinheiten. Beim Auftreten eines Fehlers meldet die Statuseinheit der gestörten Verarbeitungseinheit den Ausfall an die andere Verarbeitungseinheit, welche dann alle Verbindungen, die bisher die gestörte Verarbeitungseinheit bediente, übernimmt.
Da, wie bereits ausgeführt, das Vorsehen von mehreren, sich im Störfall ersetzender Prozessormodule, allein nicht ausreicht, um in jedem denkbaren Fall eine ununterbrochene Datenverarbeitung zu gewährleisten, handelt es sich bei keinem der vorbekannten Systeme um ein wirklich fehlertolerantes, also ausfallgeschütztes Computersystem.
Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, ein fehlertolerantes Multiprozessorsystem zu schaffen, welches sowohl beim Auftreten eines Fehlers innerhalb des Systems, als auch bei Erweiterung oder Wartung voll betriebsfähig bleibt.
Bei der Lösung dieser technischen Aufgabe wird ausgegangen von einem Multiprozessorsystem der eingangs erwähnten Art; gelöst wird die Aufgabe dadurch, daß das Interprozessor- Bussystem wenigstens zwei parallele Interprozessor- Schienen umfaßt, von denen jede mit den einzelnen Prozessormodulen verbunden ist, daß Steuereinrichtungen vorgesehen sind, die dem Interprozessor-Bussystem und den Prozessormodulen zugeordnet sind und den Austausch von Befehlen und Daten zwischen den jeweils zwei Prozessormodulen über die eine oder die andere Interprozessor-Schiene steuern, und daß ferner jeder Geräteanschluß wenigstens zwei getrennte Zugänge für die Verbindung mit zwei Prozessormodulen und wenigstens zwei getrennte Anschlüsse für Peripheriegeräte aufweist.
Bei dem erfindungsgemäß ausgebildeten Multiprozessorsystem sind alle wesentlichen Baugruppen, also Rechenwerke, Geräteanschlüsse für Peripheriegeräte und Datenwege, mindestens doppelt vorhanden. Die Aufteilung sämtlicher Rechnerfunktionen auf mehrfach vorhandene, unabhängige Module gewährleistet, daß bei Ausfall eines beliebigen Rechnermoduls mindestens ein weiteres entsprechendes Modul als Ersatz zur Verfügung steht, so daß die Datenverarbeitung nicht unterbrochen werden muß. Allenfalls muß eine gewisse Verschlechterung der Arbeitsgeschwindigkeit so lange in Kauf genommen werden, bis die ausgefallene oder gestörte Baugruppe wieder voll betriebsfähig ist. Hierbei kontrolliert sich das Rechnersystem selbst. Bemerkt beispielsweise ein Prozessor, daß ein anderer nicht mehr antwortet, so wird dieser für tot erklärt, gleichgültig, ob ein elektronisches Bauteil ausfiel oder ob seine Software in einen unkontrollierten Zustand verfiel. Ein anderer paralleler Prozessor übernimmt sofort die Aufgaben des ausgefallenen Rechenwerks, wobei alle wichtigen Programme automatisch und ohne Unterbrechung weiterlaufen. Bei einem derartigen fehlertoleranten System merkt selbst beim Ausfall größerer Teile ein Anwender am Bedienungsterminal nichts; nach außen ist das fehlertolerante Multiprozessorsystem ein ganz normaler Computer, nur eben weitgehend ausfallgeschützt.
Aufgrund des streng modularen Aufbaus läßt sich jede größere Einheit aus- oder einbauen, ohne daß eine Betriebsunterbrechung des Systems erforderlich wird. Das System läßt sich deshalb sowohl horizontal durch die Hinzunahme von weiteren Prozessormodulen als auch vertikal durch die Hinzunahme von Peripheriegeräten erweitern, ohne daß die laufende Datenverarbeitung unterbrochen werden muß oder eine Abänderung der übrigen Hardware oder der Software erforderlich wäre. Extreme Ausbaubarkeit ist deshalb ein weiterer wesentlicher Vorteil des erfindungsgemäßen Multiprozessorsystems.
Bevorzugt weist jedes Prozessormodul eine Interprozessor- Steuereinrichtung auf. Ferner ist es zweckmäßig, wenn jede einzelne Interprozessor-Schiene in Verbindung mit der zugehörigen Leitungssteuereinheit (Leitungssteuer-Schienen- Steuereinrichtung) und der Interprozessor-Steuereinrichtung eines der Prozessormodule ein selektives Mehrfach-Verbindungssystem von jedem beliebigen Prozessormodul zu jedem beliebigen anderen Prozessormodul bildet.
Die Ausfallsicherheit wird weiter erhöht, wenn für jedes Prozessormodul und für jeden Geräteanschluß zumindest zwei unabhängige Spannungsquellen vorgesehen sind.
Vorteilhaft ist jede einzelne Interprozessor-Schiene als synchron arbeitende Mehrfachleitung ausgebildet, und enthalten die Leitungssteuereinheiten einen Schienentaktgeber zur Zeitsynchronisation. Zwischen sämtlichen Prozessormodulen sind stets zumindest zwei voneinander völlig unabhängige Leitungswege vorhanden, so daß das Versagen einer der Interprozessor-Schienen nicht zu einer Unterbrechung des Datentransfers zwischen den angeschlossenen Prozessormodulen führen kann. Der in den Leitungssteuereinheiten vorgesehene Schienentaktgeber erlaubt es, daß die zentralen Verarbeitungseinheiten in den Prozessormodulen mit einer zur Taktfrequenz der Schienentaktgeber unterschiedlichen Taktfrequenz arbeiten, so daß die Informationen über die Interprozessor-Schienen mit sehr hoher Geschwindigkeit übermittelt werden können, ohne daß eine Übereinstimmung mit der Taktfrequenz der zentralen Verarbeitungseinheiten bestehen muß. Bei Verwendung unterschiedlicher Taktfrequenzen für die zentralen Verarbeitungseinheiten und die Leitungssteuereinheiten wird kein Haupttaktgeber benötigt, durch dessen Versagen das gesamte System eine Betriebsunterbrechung erleiden könnte.
In vorteilhafter Weiterbildung des erfindungsgemäßen Multiprozessorsystems enthalten die Interprozessor-Steuereinrichtungen wenigstens zwei Eingabe-Warteschlangenteile, je eines für jede vorhandene Interprozessor-Schiene, und ein mehrfach genutztes Ausgabe-Warteschlangenteil. Jedes Eingabe- Warteschlangenteil enthält zweckmäßigerweise eine Schienenfüllzustands-Logik, ein Senderegister, einen Eingabe- Warteschlagen-Puffer, einen Eingabe-Warteschlangen- Zähler sowie eine Prozessorleerzustands-Logik. Jedes Ausgabe-Warteschlangenteil enthält zweckmäßig ein Empfangsregister, eine Prozessorfüllzustands-Logik, eine Schienenleerzustands-Logik, einen Ausgabe-Warteschlangen- Zähler, einen Ausgabe-Warteschlangen-Puffer und einen Ausgabe-Warteschlangen-Zeiger.
Diese speziell ausgebildeten Interprozessor-Steuereinrichtungen überwachen und steuern sämtliche Übertragungsvorgänge auf den Interprozessor-Schienen. Es wird die Priorität der Datenübertragung zwischen zwei beliebigen Prozessormodulen sowie ein Zeitrahmen für die Übertragung von Informationen über die Interprozessor-Schienen zwischen einem ausgewählten Sender-Empfänger-Paar bestimmt. Die sowohl im Eingabe-Warteschlangenteil wie auch im Ausgabe- Warteschlangenteil vorgesehenen Puffer können durch eine der zentralen Verarbeitungseinheiten entleert und gefüllt werden, ohne daß die Informationsübertragung auf der zugehörigen Interprozessor-Schiene gestört wird. Außerdem kann eine Datenübertragungsgeschwindigkeit erzielt werden, welche höher ist, als sich bei einer Direktübertragung zwischen zwei Prozessormodulen erreichen ließe. Mehrere Datenübertragungen zwischen Paaren von Prozessormodulen können so miteinander zeitlich verzahnt werden, so daß sich scheinbar ein Simultanbetrieb ergibt.
In vorteilhafter Ausgestaltung der Erfindung enthält der Eingabe-/Ausgabekanal eines jeden Prozessormoduls einen Mikroprozessor, eine Datenweglogik und eine Steuerlogik, wobei die Datenweglogik ein Kanalspeicherdaten-Register, ein Ein-/Ausgabe-Datenregister, ein Kanalspeicheradressen- Register, ein Zeichenzähl-Register, ein Adressenregister, ein Prioritätsauflösungs-Register sowie eine Prioritätserzeugungs- und Prüflogik enthält. Dieses Eingabe-/ Ausgabe-System gewährleistet, daß das Versagen eines einzigen Prozessormoduls den Betrieb des Gesamtsystems nicht beeinträchtigen kann. Es ist ferner für sehr hohe Übertragungsgeschwindigkeiten geeignet. Jeder Eingabe-/ Ausgabekanal arbeitet nach dem Blockmultiplexverfahren, bei dem die Daten blockweise scheinbar simultan übertragen werden.
Hierzu weisen in zweckmäßiger Weitergestaltung der Erfindung die Geräteanschlüsse eine gemeinsame Schnittstellenlogik auf, welche über Verbindungsleitungen mit den zumindest doppelt vorhandenen Zugängen verbunden sind. Diese gemeinsame Schnittstellenlogik enthält eine Eigentumsverriegelung, welche die Verbindung der Schnittstellenlogik mit einem der Zugänge bestimmt. Die Geräteanschlüsse verfügen ferner jeweils über ein Steuerteil, welches mit der gemeinsamen Schnittstellenlogik verbunden ist. Dieses Steuerteil enthält zweckmäßigerweise einen Puffer. Die mehreren Zugänge eines jeden Geräteanschlusses umfassen vorteilhaft ein Paritätsprüfregister, eine Wahlverriegelung und eine Freigabeverriegelung.
Erfindungsgemäß sind die Zugänge jedes Geräteanschlusses so ausgebildet, daß die getrennten Zugänge logisch und physikalisch voneinander völlig unabhängig sind. Kein Bestandteil eines Zugangs bildet einen Bestandteil eines anderen Zugangs, so daß bei Versagen eines einzelnen Bauteils bei einem Zugang der Betrieb des anderen Zugangs nicht beeinträchtigt werden kann. Logische Einrichtungen gewährleisten, daß in jedem Zeitpunkt nur ein bestimmter Zugang für den Zugriff ausgewählt ist, so daß die Übertragung eventuell fehlerhafter Daten zu einem Zugang niemals zu einer Störung oder Blockierung eines anderen Zugangs führen kann. Zu jedem Geräteanschluß stehen mehrere Übertragungswege zur Verfügung, so daß eine Betriebsstörung eines der Übertragungswege nicht zu einem Ausfall, sondern allenfalls zu einer Verringerung der Datenverarbeitungs- Geschwindigkeit führen kann. Alle Geräteanschlüsse sind so gepuffert, daß sich alle Datenübertragungen zwischen den Geräteanschlüssen und den jeweiligen Ein/-Ausgabekanälen mit der maximal möglichen Übertragungsgeschwindigkeit abspielen. Da sich die Puffer nicht in den Ein-/Ausgabekanälen, sondern in den Geräteanschlüssen befinden, wird die Pufferung nur auf das bei dem betreffenden System erforderliche Maß beschränkt. Eine gesonderte Pufferung für jedes Peripheriegerät zwecks Verhinderung eines evtl. Überlaufens erübrigt sich somit.
In zweckmäßiger Weiterbildung der gemäß der Erfindung jeweils doppelt vorgesehenen Stromversorgung zumindest für jeden Geräteanschluß und jedes Prozessormodul ist jeder Geräteanschluß über eine Primärleitung, eine Ersatzleitung und einen automatischen Schalter an die wenigstens zwei unabhängige Spannungsquellen angeschlossen. Sollte eine der Spannungsquellen versagen, so wird automatisch auf eine andere Spannungsquelle umgeschaltet, wobei jede der vorhandenen Spannungsquellen den gesamten Energiebedarf des Geräteanschlusses decken kann. Zweckmäßigerweise umfaßt der automatische Schalter eine erste Diode, welche der Primärleitung zugeordnet ist, und eine zweite, der Ersatzleitung zugeordnete Diode. Diese beiden Dioden steuern automatisch den Stromfluß von der betreffenden Spannungsquelle zum zugehörigen Geräteanschluß entweder über die Primärleitung oder über die Ersatzleitung, wobei die Spannungsquellen gleichzeitig gegeneinander isoliert sind. Hierdurch wird verhindert, daß eine ausgefallene Spannungsquelle auch zum Ausfall der betreffenden anderen Spannungsquelle führt. Der Übergang von der einen Spannungsquelle auf die andere erfolgt dabei ohne jede Spannungsunterbrechung.
Ein zusätzlich zwischen dem Geräteanschluß und den zur Spannungsquelle führenden Leitungen vorgesehener, manuell betätigter Schalter ermöglicht es, den betreffenden Geräteanschluß von beiden zugehörigen Spannungsquellen abzuschalten, wenn dies zu Zwecken der Wartung oder des Austausches erforderlich ist.
Von Vorteil ist ferner eine Spannungsüberwachungs-Schaltung an jedem Geräteanschluß, welcher anspricht, wenn die erforderliche Betriebsspannung unterschritten wird.
Gemäß einer weiteren vorteilhaften Ausführungsform des erfindungsgemäßen Multiprozessorsystems ist der Speicher eines jeden Prozessormoduls über zwei Zugänge sowohl der zentralen Verarbeitungseinheit als auch dem Eingabe-/Ausgabekanal zugeordnet. Hierdurch kann die zentrale Verarbeitungseinheit des betreffenden Prozessormoduls Zugriff zum Speicher nehmen, während der Ein-/Ausgabekanal ebenfalls mit dem Speicher direkt und unter Umgehung der Zentralverarbeitungseinheit zusammenarbeiten kann. Diese doppelte Zugriffsmöglichkeit zum Speicher hat den Vorteil, daß die Zugriffe durch die zentrale Verarbeitungseinheit und den Ein-/Ausgabekanal zeitlich miteinander verzahnt werden können, was die Verarbeitungsgeschwindigkeit weiter erhöht.
Ein Ausführungsbeispiel der Erfindung wird nachstehend anhand der Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein perspektivisches Blockdiagramm eines fehlertoleranten Multiprozessorsystems mit mehreren Prozessormodulen, die durch zwei Interprozessorleitungen miteinander verbunden sind, wobei zu jeder Leitung eine Steuereinrichtung gehört, sowie mit mehreren, jeweils zwei Zugänge aufweisenden Geräteanschlüssen, wobei jeder Geräteanschluß mit den Ein-Ausgabe-Leitungen von zwei Prozessormodulen verbunden ist;
Fig. 2 in einem Blockschaltbild Einzelheiten der Verbindungen zwischen den Leitungssteuereinrichtungen und den einzelnen Prozessormodulen sowie die Verbindungen zwischen jeder Leitungssteuereinrichtung und der Interprozessor-Steuereinrichtung eines Prozessormoduls;
Fig. 3 weitere Einzelheiten der logischen Einrichtung einer der in Fig. 2 dargestellten Leitungssteuereinrichtungen;
Fig. 4 Einzelheiten der logischen Einrichtung für den mehrfach ausgenutzten Ausgabepuffer und die Steuereinrichtung bei der Interprozessor-Steuereinrichtung eines Prozessormoduls gemäß Fig. 2;
Fig. 5 die logische Einrichtung für ein Eingabewarteschlangenteil der Interprozessor-Steuereinrichtung für ein Prozessormodul;
Fig. 6 ein Zustandsdiagramm einer logischen Einrichtung für eine Leitungssteuereinrichtung, aus dem ersichtlich ist, auf welche Weise die logische Einrichtung durch die zu der Leitungssteuereinrichtung führenden Protokolleitungen beeinflußt wird, die Verbindungen zwischen der Leitungssteuereinrichtung und den Prozessormodulen herstellen;
Fig. 7 ein Zustandsdiagramm, das für die logischen Einrichtungen des mehrfach ausgenutzten Ausgabewarteschlangenteils gemäß Fig. 4 gilt;
Fig. 8 ein Zustandsdiagramm, das für die logischen Einrichtungen des Eingabewarteschlangenteils gemäß Fig. 5 gilt;
Fig. 9 einen Ablaufplan für die Übertragung eines Datenpakets zwischen einem als Sender arbeitenden Prozessormoduls und einem als Empfänger arbeitenden Prozessormoduls;
Fig. 10 ein logisches Diagramm der Schienenleerzustands-Logik und der Prozessorfüllzustands-Logik des Ausgabewarteschlangenteils gemäß Fig. 4;
Fig. 11 eine Aufstellung von logischen Gleichungen für das logische Diagramm in Fig. 10;
Fig. 12 ein Blockschaltbild der Ein-Ausgabe-Einrichtung des Multiprozessorsystems nach Fig. 1;
Fig. 13 ein Blockschaltbild des Ein-Ausgabekanals eines Prozessormoduls;
Fig. 14 einen Ein-Ausgabekanal;
Fig. 15 ein Protokolldiagramm für den Ein-Ausgabekanal, das Zustandsänderungen der T-Leitung bei der Durchführung eines Ein-Ausgabe-Vorgangs veranschaulicht, der durch das Mikroprogramm der Zentraleinheit durchgeführt wird;
Fig. 16 ein Protokolldiagramm für den Ein-Ausgabekanal, das die Zustandsänderungen der T-Leitung für eine Wiederanschluß- und Datenübertragungsfolge veranschaulicht;
Fig. 17 ein Protokolldiagramm für den Ein-Ausgabekanal, das die Zustandsänderungen der T-Leitung bei einem Abfrage-Ein-Ausgabebefehl oder einem Abfragebefehl mit hoher Priorität veranschaulicht, welche durch das Mikroprogramm der Zentraleinheit eingeleitet werden, wobei die dargestellte Folge über die T-Leitung zu einem Geräteanschluß übertragen wird;
Fig. 18 eine Tabelle zur Identifizierung der in Fig. 15 bis 17 genannten Aufgaben;
Fig. 19 ein Blockschaltbild, das den allgemeinen Aufbau der Zugänge und einen Geräteanschluß erkennen läßt;
Fig. 20 ein Blockschaltbild des Zugangs von Fig. 19;
Fig. 21 ein Blockschaltbild der Einzelheiten der Datenwege der der Schnittstelle zugeordneten gemeinsamen logischen Einrichtung des Geräteanschlusses nach Fig. 19;
Fig. 22 ein Blockschaltbild eines Datenpuffers im Steuerteil eines Geräteanschlusses nach Fig. 19;
Fig. 23 eine graphische Darstellung der Arbeitsweise des Datenpuffers nach Fig. 22 und 19;
Fig. 24 ein Ablaufschema, das die Beziehung zwischen "SERVICE OUT" aus dem Eingabe-Ausgabekanal und der Eingabe von Daten in das Zugangsdatenregister nach Fig. 21 veranschaulicht und außerdem erkennen läßt, auf welche Weise die Paritätsprüfung begonnen wird, bevor dem Register Daten eingegeben werden, und wie dieser Vorgang fortgesetzt wird, bis die Daten dem Register vollständig eingegeben worden sind;
Fig. 25 Einzelheiten der in Fig. 19 und 12 dargestellten Stromversorgungsschaltung;
Fig. 26 ein logisches Diagramm der Puffersteuerlogik des Datenpuffers nach Fig. 22 als Bestandteil eines Geräteanschlusses;
Fig. 27 eine Aufstellung der logischen Gleichungen für das Wählregister nach Fig. 20, wobei diese logischen Gleichungen durch die Zugangssteuerlogik nach Fig. 20 realisiert werden;
Fig. 28 einen Ablaufplan des zwei Leitungen betreffenden Austausches zwischen dem Ein-Ausgabekanal 109 und den Zugängen;
Fig. 29 ein logisches Diagramm für den Austausch nach Fig. 28, wobei die Logik nach Fig. 29 einen Bestandteil der T-Leitungsmaschine 143 des Ein-Ausgabekanals 109 nach Fig. 13 bildet;
Fig. 30 ein Blockschaltbild eines Stromverteilungssystems mit mehreren getrennten, unabhängigen Spannungsquellen, die den jeweils zwei Zugänge aufweisenden Geräteanschlüssen so zugeordnet sind, daß Gewähr dafür besteht, daß für jeden Geräteanschluß sowohl eine primäre Spannungsquelle als auch eine Ersatzspannungsquelle verfügbar ist;
Fig. 31 eine vergrößerte Teildarstellung einer Schalteinrichtung zum Umschalten zwischen der primären Spannungsquelle und der Ersatzspannungsquelle für einen Geräteanschluß;
Fig. 32 ein Blockschaltbild mit Einzelheiten der Spannungsquellen nach Fig. 30;
Fig. 33 ein Blockschaltbild mit Einzelheiten der senkrechten und der waagerechten Leitungen zum Zuführen von Strom von den getrennten Spannungsquellen nach Fig. 30 zu den einzelnen Geräteanschlüssen, wobei diese Anordnung das Auswählen zweier einzelner Spannungsquellen als primäre Spannungsquelle oder Ersatzspannungsquelle für einen bestimmten Geräteanschluß erleichtert;
Fig. 34 ein Blockschaltbild des Speichersystems mit Einzelheiten des Speichers eines Prozessormoduls nach Fig. 1;
Fig. 35 in einem Blockschaltbild Einzelheiten des Kartenteils des Speichers nach Fig. 34;
Fig. 36 in einem Blockdiagramm den Aufbau des logischen Speichers mit vier logischen Adressenbereichen und vier getrennten Kartenbereichen, die den vier logischen Adressenbereichen entsprechen, wobei auch Einzelheiten der Bits und der Felder eines einzelnen Eintrags des Kartenteils dargestellt sind;
Fig. 37 in einem Blockdiagramm Einzelheiten eines der Speichermodule nach Fig. 34, wobei dieser Modul als Halbleiterspeichermodul ausgebildet ist;
Fig. 38 die Schaltung eines Prüfbitgenerators, der bei dem Halbleiterspeichermodul nach Fig. 37 verwendet wird, wobei auch die logischen Gleichungen für zwei der 8-Bit-Paritätsbäume angegeben sind, mit denen bei dem Prüfbitregister gearbeitet wird;
Fig. 39 ein Diagramm eines Prüfbitkomparators, der bei dem Halbleiterspeichermodul nach Fig. 37 benutzt wird, wobei auch die logische Gleichung des 9-Bit-Paritätsbaums für das Syndrombit Null angegeben ist;
Fig. 40 ein Diagramm eines Syndromdecodierers, wie er bei dem Halbleiterspeichermodul nach Fig. 37 verwendet wird, wobei auch die logischen Gleichungen für den Betrieb des logischen Teils des Syndromdecodierers angegeben sind;
Fig. 41 ein logisches Diagramm einer Bitkomplementiereinrichtung, die bei dem Halbleiterspeichermodul nach Fig. 37 benutzt wird; und
Fig. 42 eine Darstellung der Funktionsabläufe in einem Multiprozessorsystem mit zwei Prozessoren, das nach einem Anwendungsprogramm arbeitet, welches einen kontinuierlichen Betrieb erfordert.
In Fig. 1 ist ein Teil eines erfindungsgemäßen Multiprozessorsystems in einer perspektivischen Ansicht dargestellt, wobei das Multiprozessorsystem insgesamt mit 31 bezeichnet ist.
Zu dem Multiprozessorsystem 31 gehören mehrere einzelne Prozessormodule 33, von denen jedes eine Zentraleinheit 105, einen Speicher 107, einen Ein-Ausgabekanal 109 und eine Interprozessor-Steuereinrichtung 55 aufweist.
Die einzelnen Prozessormodule sind untereinander durch Interprozessorschienen 35 verbunden.
Bei einer bestimmten Ausführungsform des Multiprozessorsystems 31 sind bis zu sechszehn Prozessormodule 33 durch zwei Interprozessorschienen 35 verbunden, die in Fig. 1 als X-Leitung bzw. als Y-Leitung bezeichnet sind.
Zu jeder Interprozessor-Schiene 35 gehört eine Steuereinrichtung 37.
Die Leitungssteuereinrichtungen 37, die Interprozessor-Schienen 35 und die Interprozessor-Steuereinrichtungen 55 bilden zusammen mit zugehörigen Mikroprozessoren 113, Mikroprogrammen 115 und Leitungsempfangstabellen 150 (Fig. 2) ein Interprozessorleitungssystem. Aufbau und Wirkungsweise dieses Systems werden im folgenden anhand von Fig. 2 bis 11 und Fig. 42 näher erläutert.
Zu dem Multiprozessorsystem 31 gehört ein Ein-Ausgabe-System zum Übertragen von Daten zwischen den Prozessormodulen 33 und Peripheriegeräten, z. B. Platten 45, Terminals 47, Magnetbandantrieben 49, Kartenlesern 51 und Zeilendruckern 53, wie es in Fig. 1 gezeigt ist.
Zu dem Ein-Ausgabe-System gehören Ein-Ausgabe-Leitungen 39, die jeweils einem Eingabe-Ausgabe-Kanal 109 eines Prozessormoduls zugeordnet sind, sowie ein oder mehrere jeweils mit mehreren Zugängen versehene Geräteanschlüsse 41, die mit den Eingabe-Ausgabe- Leitungen 39 in Verbindung stehen.
Bei dem dargestellten Ausführungsbeispiel weist jeder Geräteanschluß 41 zwei Zugänge 43 zum Anschließen an zwei verschiedene Prozessormodule 33 auf, so daß ein Zugriff zu jedem Geräteanschluß jeweils durch zwei Prozessormodule möglich ist.
Gemäß Fig. 12 gehören zu dem Ein-Ausgabe-System ein Mikroprozessor 119 und ein Mikroprogramm 121 im Eingabe-/Ausgabe-Kanal 109, die für Ein- und Ausgabe-Übertragungen vorgesehen sind.
Gemäß Fig. 12 sind der Mikroprozessor 113 und das Mikroprogramm 115 der Zentraleinheit 105 sowie eine Ein-Ausgabe-Steuertabelle 140 im Hauptspeicher 107 jedes Prozessormoduls 33 dem Eingabe-/Ausgabe- Kanal 109 betriebsmäßig zugeordnet.
Aufbau und Wirkungsweise dieser und weiterer Teile des Ein-Ausgabe- Systems werden im folgenden anhand von Fig. 12 bis 29 näher erläutert.
Weiterhin gehört zu dem Multiprozessorsystem ein Stromverteilungssystem 301, das den von getrennten Spannungsquellen gelieferten Strom auf die Prozessormodule 33 und die Geräteanschlüsse 41 so verteilt, daß eine Wartung während des Betriebs möglich ist, wobei eine redundante Stromversorgung für jeden Geräteanschluß vorhanden ist.
Gemäß Fig. 30 gehören zu dem Stromverteilungssystem mehrere getrennte unabhängige Spannungsquellen 303.
Für jeden Prozessormodul 33 ist eine gesonderte Spannungsquelle 303 vorhanden, und eine Vielfachleitung 305 führt den Strom von jeder Spannungsquelle 303 aus der Zentraleinheit 105 und dem Speicher 107 des betreffenden Prozessormoduls 33 zu.
Ferner zeigt Fig. 30, daß jeder Geräteanschluß 41 so geschaltet ist, daß er über einen automatischen Schalter 311 von zwei getrennten Spannungsquellen 303 aus mit Strom versorgt werden kann. Wenn eine Spannungsquelle für einen bestimmten Geräteanschluß versagt, wird somit dieser Geräteanschluß jeweils durch die betreffende andere Spannungsquelle 303 versorgt, und die Umschaltung erfolgt zügig und ohne jede Unterbrechung oder Pulsation des zugeführten Stroms.
Das Stromverteilungssystem arbeitet mit dem Doppelzugang des Geräteanschlusses zusammen, um einen ununterbrochenen Betrieb und einen ständigen Zugang zu den Peripheriegeräten zu gewährleisten, wenn entweder ein einzelner Zugang 43 oder eine einzelne Spannungsquelle 303 versagt.
Weiterhin ist bei dem Multiprozessorsystem bei mehreren Systemteilen gemäß Fig. 25 eine Regelschaltung 182 vorhanden, die gewährleistet, daß die Stromzufuhr zu dem betreffenden Systemteil innerhalb gewisser Grenzen gehalten wird.
Beispielsweise ist eine solche Regelschaltung bei jeder Zentraleinheit 105, bei jedem Geräteanschluß 41 und bei jeder Leitungssteuereinrichtung 37 vorhanden.
Die Regelschaltung hat die Aufgabe, ein Signal zu erzeugen, durch das der Pegel der dem betreffenden Teil zugeführten elektrischen Energie festgelegt wird, und wenn diese Energie nicht innerhalb vorbestimmter zulässiger Grenzen liegt, wird das Signal benutzt, um unmittelbar das zugehörige Leitungssignal desjenigen Teils zu sperren, zu dem die Regelschaltung gehört.
Die Regelschaltung arbeitet in vier verschiedenen Betriebszuständen, und zwar beim Abschalten der Stromzufuhr, beim Übergang zur Stromzufuhr, während der Zufuhr von Strom sowie beim Übergang aus dem Einschaltzustand in den Abschaltzustand.
Die Regelschaltung für die Stromzufuhr initialisiert sämtliche logischen Zustände des Systems, wenn die Zufuhr von Strom eingeleitet wird, und gemäß der Erfindung erfüllt die Regelschaltung eine zusätzliche und sehr wichtige Aufgabe, denn sie ermöglicht einen störungssicheren Betrieb, bei dem Wartungsarbeiten ohne Betriebsunterbrechungen durchgeführt werden können. Zu diesem Zweck wird die erfindungsgemäße Regelschaltung auf neuartige Weise verwendet, um die Schnittstellenleitungen zu steuern, über die sämtliche Interkommunikationsleitungen des Systems betrieben werden.
Aufbau und Wirkungsweise des Stromverteilungssystems werden im folgenden anhand von Fig. 30 bis 33 näher erläutert.
Zu dem Multiprozessorsystem gehört ein Speichersystem, bei dem der physikalische Speicher gemäß Fig. 36 in vier logische Adressenbereiche für Anwenderdaten, Systemdaten, den Anwendercode und den Systemcode unterteilt ist.
Zu dem Speichersystem gehören gemäß Fig. 34 eine Karte 407 und eine Steuerlogik 401 zum Umsetzen aller logischen Adressen in physikalische Adressen und zum Anzeigen von Seiten, die bei dem Bit aus dem primären Speicher fehlen, das im sekundären Speicher vorhanden ist, wie es erforderlich ist, um ein virtuelles Speichersystem zu realisieren, bei dem die physikalischen Seitenadressen für die Benutzer unsichtbar sind.
Das Speichersystem ist über zwei Zugänge erreichbar, und zwar über die Zentraleinheit 105 und den Eingabe-/Ausgabekanal 109. Somit kann der Eingabe-/Ausgabekanal 109 direkt mit dem Speicher 107 zusammenarbeiten, d. h. nicht über die Zentraleinheit 105, wenn Daten zu und von einen Geräteanschluß 41 übertragen werden sollen.
Aufbau und Wirkungsweise des Speichersystems werden weiter unten anhand von Fig. 34 bis 41 näher erläutert.
Das Speichersystem ist mit einem Fehlernachweissystem versehen, das dazu dient, alle Einzelbitfehler zu korrigieren und alle Doppelbitfehler nachzuweisen, wenn bei dem Speichersystem der Halbleiterspeicher benutzt wird. Gemäß Fig. 37 wird bei diesem Fehlernachweissystem ein 16-Bit-Datenfeld in Verbindung mit einem 6-Bit-Prüffeld verwendet, und es ist ein Datenbitkomplementierer 487 zum Korrigieren von Einzelbitfehlern vorhanden.
Einzelheiten des Fehlernachweissystems werden im folgenden anhand von Fig. 37 bis 41 näher erläutert.
Bevor mit der eingehenden Beschreibung des Systems und der vorstehend genannten Teile begonnen wird, sei bemerkt, daß in der Beschreibung bestimmte Bezeichnungen verwendet werden, deren Bedeutung nachstehend erläutert ist.
Der Ausdruck "Software" bezeichnet ein Betriebssystem oder Befehle eines Benutzerprogramms; der Ausdruck "Firmware" bezeichnet ein Mikroprogramm das in einem Festspeicher enthalten ist, und der Ausdruck "Hardware" bezeichnet elektronische logische Einrichtungen und Datenspeicher.
Bei dem Betriebssystem handelt es sich um ein Hauptsteuerprogramm, das in jedem Prozessormodul abläuft, und das die primäre Kontrolle der Zuweisung aller Systemelemente bewirkt, die für den Prozessormodul zugänglich sind. Das Betriebssystem erfüllt eine Planungsfunktion und bestimmt, welchem Prozeß der betreffende Prozessormodul vorbehalten sein soll. Ferner bestimmt das Betriebssystem die Benutzung des primären Speichers (Speicherverwaltung), und es betreibt das Dateisystem zur Verwaltung des sekundären Speichers. Weiterhin verwaltet das Betriebssystem das Nachrichtensystem. Hierdurch wird die Übertragung von Informationen über die Interprozessorleitung ermöglicht.
Der Aufbau des Betriebssystem entspricht dem modularen Aufbau des Multiprozessorsystems, d. h., es sind keine "global" zu benutzenden Elemente vorhanden.
Auf dem unteren Niveau des Software-Systems werden zwei fundamentale Sachverhalte realisiert, und zwar Verfahren und Nachrichten.
Ein Verfahren oder Prozeß ist die fundamentale Einheit der Steuerung innerhalb eines Systems.
Zu jedem Prozeß gehören private Datenraum- und Registerwerte und ein möglicherweise mehrfach ausgenutzter Codesatz. Ein Prozeß kann auch einen Zugriff zu einem gemeinsamen Datenraum bewirken.
In einem Prozessormodul 33 sind gleichzeitig mehrere Prozesse gleichzeitig vorhanden.
Bei den Prozessen kann es sich um durch den Benutzer geschriebene Programme handeln, oder den Prozessen können bestimmte Aufgaben zukommen, z. B. die Steuerung einer Ein-Ausgabe-Vorrichtung oder die Erzeugung bzw. Löschung anderer Prozesse.
Ein Prozeß kann Dienstleistungen von einem anderen Prozeß anfordern, und dieser andere Prozeß kann sich im gleichen Prozessormodul 33 befinden wie der die Anforderung stellende Prozeß, oder der andere Prozeß kann sich in einem beliebigen anderen Prozessormodul 33 befinden.
Die Prozesse arbeiten asynchron, und daher benötigen die Prozesse ein Kommunikationsverfahren, das es ermöglicht, eine Anforderung von Dienstleistungen in eine Warteschlange einzuordnen, ohne daß ein "Wettrennen" stattfindet, d. h., ohne daß sich ein Zustand ergibt, bei dem sich das Ergebnis danach richtet, bei welchem Prozeß die Folge von Vorgängen zuerst begonnen wurde; daher werden "Nachrichten" benötigt, d. h., ein geordnetes System der Kommunikation zwischen den verschiedenen Prozessormodulen, auf das im folgenden näher eingegangen wird.
Ferner muß das Erscheinungsbild aller Kommunikationen zwischen den Prozessormodulen für die Prozesse das gleiche sein, d. h., ohne Rücksicht darauf, ob sich die Prozesse im gleichen Prozessormodul oder in verschiedenen Prozessormodulen befinden.
Aus der folgenden Beschreibung wird ersichtlich, daß der Aufbau der Software dem Aufbau der Hardware entspricht, und daß verschiedene Prozesse bezüglich ihrer Anordnung und Funktion als bestimmten Teilen der Hardware gleichwertig betrachtet werden können.
Ebenso wie der Eingabe-/Ausgabe-Kanal 109 über die Ein-Ausgabe-Leitung 39 mit dem Geräteanschluß 41 verkehrt, kann z. B. ein Benutzerprozeß unter Benutzung des Nachrichtensystems eine Aufforderung an den Prozeß richten, der dem Geräteanschluß 41 zugeordnet ist, und dann meldet der Prozeß des Geräteanschlusses seinen Zustand zurück, wie auf ähnliche Weise der Geräteanschluß 41 Informationen über die Ein-Ausgabe-Leitung 39 zu dem Eingabe-/Ausgabe-Kanal 109 zurückmeldet.
Die zweite fundamentale Größe des Software-Systems, d. h. die Nachricht, besteht aus einer Anforderung von Dienstleistungen sowie etwa benötigten Daten. Wenn der Aufforderung nachgekommen worden ist, werden alle benötigten Werte zu dem Prozeß zurückgeleitet, von dem die Aufforderung stammte.
Wenn eine Nachricht zwischen Prozessen übermittelt werden soll, die sich in zwei verschiedenen Prozessormodulen 33 befinden, werden die Interprozessor-Schienen 35 benutzt. Wie erwähnt, erscheint jedoch für die Prozesse jeder Informationsaustausch zwischen Prozessen in der gleichen Weise, d. h., ohne Rücksicht darauf, ob sich die Prozesse im gleichen Prozessormodul 33 oder in verschiedenen Prozessormodulen befinden.
Dieser Aufbau der Software bietet mehrere Vorteile.
Das zum Aufbau der Software angewandte Verfahren gewährleistet außerdem einen erheblich zuverlässigeren Betrieb. Da es möglich ist, die Software in Abschnitte zu unterteilen, lassen sich die Abmessungen der Module verkleinern, und die Schnittstellen zwischen den Modulen sind deutlich ausgeprägt.
Durch die funktionelle Unterteilung wird auch die Wartung des Systems erleichtert.
Die deutliche Abgrenzung der Module und der Schnittstellen beim Software-System bietet außerdem den Vorteil, daß sich das System leicht erweitern läßt, z. B. durch Hinzufügen weiterer Prozessormodule 33 oder Geräteanschlüsse 41 zu dem Multiprozessorsystem.
Ein weiterer Vorteil für einen Benutzer des Multiprozessorsystems und des Software-Systems besteht darin, daß der Benutzer beim Schreiben seines Programms den tatsächlichen Aufbau der Maschine oder die physikalische Lage anderer Prozesse nicht zu kennen braucht.
Ebenso wie die Hardware bietet auch die Software mehrere funktionell gleichwertige Module mit redundanten Verbindungen.
Beispielsweise können für Nachrichten zwischen Prozessen in verschiedenen Prozessormodulen 33 beide Interprozessor- Schienen 35 benutzt werden. Außerdem können Geräteanschlüsse 41 durch Prozesse gesteuert werden, die in beliebigen der Prozessormodule 33 enthalten sind, welche in Verbindung mit dem Geräteanschluß stehen.
Das Multiprozessor-Hardware-System und das Software-System nach der vorstehenden Beschreibung ermöglichen es dem Benutzer, ein fehlertolerantes Anwendungsystem zu entwickeln, da die Module in Mehrfachausführung vorhanden sind und redundante Verbindungen aufweisen.
Das Interprozessor-Bussystem
Wie erwähnt, sind die einzelnen Prozessormodule 33 gemäß Fig. 1 untereinander durch zwei Interprozessor-Schienen 35 verbunden, zu denen die X-Leitung und die Y-Leitung gehören, wobei jede Leitung durch eine zugehörige Steuereinrichtung 37 gesteuert wird. Jede Interprozessor-Schiene 35 bildet in Verbindung mit der zugehörigen Steuereinrichtung 37 und der betreffenden Interprozessor- Steuereinrichtung 55, die zu jedem Prozessormodul 33 gehört, einen Mehrfachmodul-Verbindungsweg von jedem beliebigen Prozessormodul zu jedem beliebigen anderen Prozessormodul des Systems. Die Verwendung von zwei Schienen 35 gewährleistet, daß bei dem System zwei unabhängige Leitungswege zwischen sämtlichen Prozessormodulen vorhanden sind. Daher kann ein Versagen einer der Schienen 35 nicht zu einer Unterbrechung des Verkehrs zwischen den Prozessormodulen führen.
Die Leitungssteuereinrichtung 37 für jede Interprozessor-Schiene 35 ist gemäß der Erfindung vorzugsweise von den Prozessormodulen 33 getrennt.
Bei jeder Interprozessor-Schiene 35 handelt es sich um eine asynchron arbeitende Mehrfachleitung, bei der die Zeitsynchronisation durch einen Leitungstaktgeber bewirkt wird, der zu der betreffenden Steuereinrichtung 37 gehört. Die Interprozessor- Steuereinrichtungen 55 sämtlicher Module, die einer Leitung zugeordnet sind, führen Zustandsänderungen synchron mit dem Leitungstakt durch, wenn Daten über die Leitung übertragen werden.
Wie im folgenden erläutert, arbeitet die Zentraleinheit 105 mit einem anderen Takt als das Interprozessor-Bussystem. Während des Füllens einer Ausgabewarteschlange oder des Leerens einer Eingabe-Warteschlange bei der Interprozessor-Steuereinrichtung 55 durch die Zentraleinheit 105 läuft der Betrieb mit der Taktfrequenz der Zentraleinheit ab. Jedoch findet die Übermittlung von Datenpaketen über die Interprozessor-Schienen stets bei der Leitungstaktfrequenz statt.
Ein wichtiges Merkmal der Erfindung besteht darin, daß die Informationen über die Interprozessor-Schienen mit hoher Geschwindigkeit übermittelt werden, ohne daß eine Übereinstimmung mit den Taktfrequenzen der verschiedenen Zentraleinheiten 105 zu bestehen braucht. Die Geschwindigkeit, mit der Informationen über die Interprozessor-Schienen übermittelt werden, ist außerdem erheblich höher als die Geschwindigkeit, die bei direktem Zugriff zu den Speicherteilen 107 entsprechend der Speicherarbeitsgeschwindigkeit möglich wäre. Dies gewährleistet, daß eine ausreichende Leitungsbandbreite auch dann zur Verfügung steht, wenn bei einem Multiprozessorsystem zahlreiche Prozessormodule vorhanden sind.
Ein Vorteil der Verwendung unterschiedlicher Taktfrequenzen bei den Zentraleinheiten 105 besteht darin, daß kein Haupttaktgeber benötigt wird, durch dessen Versagen das gesamte System eine Betriebsunterbrechung erleiden würde.
Die Interprozessor-Steuereinrichtung 55 enthält logische Einrichtungen und Sperreinrichtungen, die es ermöglichen, die Interprozessor-Schienen 35 mit einer bestimmten Taktfrequenz und jede Zentraleinheit 105 mit ihrer eigenen unabhängigen Taktfrequenz zu betreiben, ohne daß Daten verlorengehen.
Über die Interprozessor-Schienen 35 werden die Informationen in Form von Mehrwortpaketen übermittelt. Bei einer bevorzugten Ausführungsform der Erfindung enthält jedes Paket 16 Wörter, d. h. 15 Datenwörter und ein Prüfwort.
Die Steuerlogik innerhalb der Leitungssteuereinrichtung 37 und die Interprozessor-Steuereinrichtungen 55 der einzelnen Module 33 folgen einem detaillierten Protokoll. Dieses Protokoll dient dazu, für die Übertragung von Datenpaketen ein Sender-Empfänger-Paar und einen Zeitrahmen festzulegen. Am Ende des Zeitrahmens für die Übermittlung eines Datenpakets wird die Leitungssteuereinrichtung 37 für eine weitere derartige Folge freigegeben. Auf welche Weise diese Aufgaben durchgeführt werden, wird aus der folgenden Beschreibung des Aufbaus anhand von Fig. 3 bis 9 ersichtlich.
Da der Aufbau der Y-Leitung der gleiche ist wie derjenige der X-Leitung, wird im folgenden nur eine dieser Leitungen im einzelnen beschrieben.
Gemäß Fig. 2 gehören zu jedem Leitungsbündel der Interprozessor-Schienen 35 sechzehn einzelne Datenleitungen 57, fünf einzelne Protokolleitungen 59, eine Taktleitung 61 und eine Wählleitung 63 für jeden Prozessormodul 33.
Gemäß Fig. 2 sind bei der Interprozessor-Steuereinrichtung 55 jedes Prozessormoduls 33 zwei Eingabewarteschlangenteile 65, d. h., ein X-Teil und ein Y-Teil, sowie ein Mehrfach ausgenutzter Ausgabewarteschlangenteil 67 vorhanden.
Gemäß Fig. 4 gehört zu dem mehrfach ausgenutzten Ausgabewarteschlangenteil 67 ein Ausgabewarteschlangenpuffer 69, der eine Speicheraufgabe erfüllt. Bei einer bevorzugten Ausführungsform kann der Puffer 69 sechzehn Wörter zu je sechzehn Bits aufnehmen. Der Puffer 69 wird durch die Zentraleinheit geladen und hält die Daten bis zum Zeitpunkt der Datenpaketübertragung fest, d. h., bis die Daten aus dem Puffer auf eine noch zu erläuternde Weise zu der betreffenden Leitung übermittelt werden.
Ferner weist der Ausgabewarteschlangenteil 67 ein Empfangsregister 71 auf, bei dem es sich bei der bevorzugten Ausführungsform der Erfindung um ein 4-Bit-Register handelt, das durch die Zentraleinheit mit der Nummer des Prozessormoduls geladen wird, zu dem die Daten übermittelt werden.
Zu dem Steuerteil des Ausgabewarteschlangenteils 67 gehören eine Prozessorfüllzustands-Logik 73, die synchron mit dem Takt der Zentraleinheit arbeitet, eine Schienenleerzustands-Logik 75, die synchron mit dem Takt der X- oder Y-Leitung betrieben wird, und ein Ausgabewarteschlangenzähler 77. Während des Füllens des Ausgabewarteschlangenpuffers 69 durch die Zentraleinheit tastet der Ausgabewarteschlangenzähler 77 den Puffer 69 ab, um die einzugebenen Daten jedem der sechzehn Wörter des Puffers zuzuführen; sobald das sechzehnte Wort in dem Puffer 69 gespeichert ist, beendet der Zähler 77 den Füllzustand.
Ferner weist der Ausgabewarteschlangenteil 67 einen Ausgabewarteschlangenzeiger 79 auf, der den gesamten Ausgabewarteschlangenteil entweder mit der X-Leitung oder der Y-Leitung der Schiene 35 verbindet. Der Ausgabewartschlangenzeiger 79 ermöglicht eine gemeinsame Ausnutzung der Zustands-Logik 73 und 75 und des Puffers 69 durch die X- und Y-Leitungen der Interprozessor-Schienen 35.
Gemäß Fig. 3 gehören zu der Leitungssteuereinrichtung 37 eine Logik 81 für den Steuerzustand der Leitung, ein Senderzähler 83, ein logischer Prozessorwählteil 85, ein Empfangsregister 87, ein Paketzähler 89 und ein Schienentaktgeber 91.
Gemäß Fig. 5 gehören zu jedem Eingabewarteschlangenteil 65 eine Schienenfüllzustands-Logik 93, die synchron mit dem Leitungstakt arbeitet, ein Senderegister 95, ein Eingabewarteschlangenpuffer 97, ein Eingabewarteschlangenzähler 99 und eine Prozessorleerzustands-Logik, die synchron mit dem Takt der Zentraleinheit betrieben wird.
Fig. 6 ist ein Zustandsdiagramm der Leitungssteuerlogik 81 der Leitungssteuereinrichtung 37.
Fig. 7 ist ein Zustandsdiagramm der Logik-Einrichtungen 73 und 75 des Ausgabewarteschlangenteils 67.
Fig. 8 ist ein Zustandsdiagramm der Zustands-Logiken 93 und 101 des Eingabewarteschlangenteils 65.
Gemäß Fig. 7 kann die Prozessorfüllzustands-Logik 73 entsprechend der Beschriftung vier verschiedene Zustände annehmen, und zwar die Zustände "LEER", "FÜLLEN", "GEFÜLLT" und "WARTEN". Die Schienenleerzustands-Logik 75 kann gemäß Fig. 7 vier verschiedene Zustände annehmen, und zwar "LEERLAUF", "SYNCHRONISATION", "SENDEN" und "ERLEDIGT".
In Fig. 7 bezeichnen die Vollinien mit Pfeilen jeweils Übergänge aus dem gegenwärtigen Zustand in den nächsten Zustand. Die an den mit Vollinien gezeichneten Pfeilen endenden gestrichelten Pfeile bezeichnen Bedingungen, die erfüllt sein müssen, damit der dargestellte Übergang stattfinden kann.
Die Synchronisation von mit relativ zueinander asynchronen Takten arbeitenden Zustands-Logiken bedingt einen sorgfältigen Aufbau eines Verriegelungssystems. Diese wichtigen Verriegelungen sind in den Zustandsdiagrammen durch die gestrichelten Pfeile bezeichnet. Die Verriegelungen bewirken eine Synchronisation von zwei Zustands-Logiken. In Fig. 7 und 8 bezeichnen somit die die gestrichelten Pfeile zwischen den Zustands-Logiken Signale, durch welche die angegebenen Übergänge bei den Zustands-Logiken synchronisiert bzw. qualifiziert werden.
Bezüglich des Zustandes "FÜLLEN" bei der Logik 73 sei bemerkt, daß der Speicherausgabewarteschlangenzustand erst dann zum Verlassen des Zustands "FÜLLEN" führt, wenn der Ausgabewarteschlangenzähler 77 nach dem Beginn einer mit Null beginnenden Zählung das Zählergebnis 15 erreicht hat, woraufhin vom Zustand "FÜLLEN" auf den Zustand "GEFÜLLT" übergegangen wird.
Entsprechend ist zu bemerken, daß der Zustand "SENDEN" der Logik 75 bei dem Wähl- und Sendebefehlszustand erst endet, wenn der Ausgabewarteschlangenzähler 77 das Zählergebnis 15 erreicht, woraufhin vom Zustand "SENDEN" auf den Zustand "ERLEDIGT" übergegangen wird.
In Fig. 7 bezeichnet der Stern einen Schaltschritt des Ausgabewarteschlangenzählers 77.
Fig. 6 zeigt das Zustandsdiagramm der Logik 81 der Leitungssteuereinrichtung und läßt erkennen, daß diese Logik grundsätzlich vier verschiedene Zustände annehmen kann, und zwar die Zustände "LEERLAUF", "ABRUFEN", "EMPFANGEN" und "SENDEN".
Für Fig. 6 gelten die für Fig. 7 gemachten Bemerkungen. Ein voll ausgezogener Pfeil bezeichnet einen Übergang von einem Zustand in einen anderen, und ein zu einem solchen Pfeil führender gestrichelter Pfeil bezeichnet einen Zustand, der auftreten muß, um den durch den betreffenden ausgezogenen Pfeil bezeichneten Übergang zu ermöglichen. Ein einer Zustandsänderung beigefügter Stern bezeichnet in diesem Fall die Tatsache, daß gleichzeitig mit dem angegebenen Übergang der Senderzähler 83 um eine Einheit weitergeschaltet wird.
In Fig. 6 bezeichnen die als gestrichelte Pfeile gezeichneten Ausgabelinien Protokollbefehle, die von der Leitungssteuereinrichtung an die Interprozessor-Schiene abgegeben werden.
In Fig. 6 und 7 bezeichnet ein von einem Zustand ausgehender gestrichelt gezeichneter Pfeil ein logisches Ausgangssignal des betreffenden Zustandes, z. B. ein logisches Ausgangssignal zu einer Protokolleitung (bei der Schienenleerzustands-Logik 75) oder zu einer Zustandsleitung des Prozessormoduls (bei der Prozessorfüllzustands-Logik 73).
Fig. 8 zeigt die Zustandsdiagramme für die Schienenfüllzustands-Logik 93 und die Prozessorleerzustands-Logik 101.
Das Zustandsdiagramm für die Schienenfüllzustands-Logik 93 gibt vier verschiedene Zustände an, und zwar "SYNCHRONISATION", "BESTÄTIGUNG", "EMPFANG" und "GEFÜLLT".
In dem Zustandsdiagramm für die Prozessorleerzustands-Logik 101 sind vier Zustände angegeben, und zwar "RÜCKSETZEN", "BEREITSCHAFT", "UNTERBRECHUNG" und "ZWISCHENSPEICHERN".
Bezüglich der Bedeutung der als Vollinie bzw. gestrichelt gezeichneten Pfeile in Fig. 8 gelten die vorstehend bezüglich Fig. 6 und 7 gemachten Angaben.
In Fig. 8 bezeichnet der Stern das Weiterschalten des Eingabewarteschlangenzählers 99 um eine Einheit.
Fig. 9 ist ein Ablaufschema, das die zeitliche Folge erkennen läßt, in der sich die Zustandsänderungen nach Fig. 6, 7 und 8 abspielen.
Mit Hilfe der in Fig. 9 dargestellten Folge von Schritten wird die Übermittlung eines Datenpakets von einem Prozessormodul zu einem anderen mit der Leitungstaktfrequenz durchgeführt, wobei angenommen ist, daß der betreffende Empfängermodul für den Empfang des Datenpakets bereit ist.
Fig. 9 veranschaulicht die zeitliche Abfolge bei einer erfolgreichen Paketübermittlung, wobei die einzelnen Signale von oben nach unten dargestellt sind, während die Zeit für die Leitungstakte von links nach rechts aufgetragen ist.
In Fig. 9 bezeichnet die oberste Linie den Zustand der Leitungssteuereinrichtung, wobei jeder Unterteilungsabschnitt eine Taktperiode bzw. einen Zyklus des Leitungstaktgenerators 91 nach Fig. 3 bezeichnet. Jede der zeitlichen Unterteilungen der obersten Linie setzt sich senkrecht nach unten gegenüber den verschiedenen Signalen fort, deren Bedeutung auf der linken Seite von Fig. 9 angegeben ist.
Von den in Fig. 9 von oben nach unten aufeinander folgenden Signalen ist das erste Signal unterhalb der den Zustand der Leitungssteuereinrichtung bezeichnenden Linie das Sendeanforderungssignal (eines der in Fig. 3 mit 59 bezeichneten Protokollgruppe) und insbesondere das Signal, das von dem logischen Ausgabewarteschlangenteil 67 eines beliebigen Prozessormoduls 33 stammen kann. Das Signal wird zu dem logischen Leitungssteuerzustandsteil 81 der Leitungssteuereinrichtung 37 nach Fig. 3 übermittelt.
Das in Fig. 9 als nächstes dargestellte Wählsignal repräsentiert ein Signal, das von dem logischen Prozessorwählteil 85 der Leitungssteuereinrichtung 37 ausgeht, und das jeweils nur über eine der Wählleitungen 63 zu einem zugehörigen Prozessormodul 33 übertragen wird.
Das nächste in Fig. 9 dargestellte Signal, d. h. das Sendebestätigungssignal, kann nur durch einen bestimmten Prozessor 33 erzeugt werden, wenn dieser Prozessor gewählt worden ist, und wenn sich seine Schienenleerzustands-Logik 75 im Sendezustand befindet, wie es dem dritten Zustand nach Fig. 7 entspricht. Dieses Sendebestätigungssignal wird durch die Leitungssteuereinrichtung 37 benutzt, um die Identität eines Prozessormoduls 33 festzustellen, der ein Datenpaket zu senden wünscht.
Das nächste Signal, d. h. das Empfangsbefehlssignal, repräsentiert ein Signal der Leitungssteuereinrichtung 37, das über eine der Protokolleitungen 59 übermittelt wird und zwei Aufgaben zu erfüllen hat:
Erstens fragt dieses Signal in Verbindung mit dem Empfängerwählsignal den Empfängerprozessormodul 33 ab, um festzustellen, ob dieser Empfängermodul empfangsbereit ist, wie es durch den Bestätigungszustand nach Fig. 8 angezeigt wird,
Zweitens hat dieses Signal die Aufgabe, die Schienenleerzustands-Logik 75 des empfangenden Moduls zu sperren, so daß das empfangende Modul nicht in der Lage ist, eine vorgesehene Empfängernummer zu der Datenschiene gelangen zu lassen, wenn der Ausgabewarteschlangenteil des betreffenden Empfängermoduls 33 ebenfalls ein eigenes Datenpaket bereithält, das gesendet werden soll.
Während der Zeit, während welcher der Senderprozessor das Sendebestätigungssignal liefert, führt er auch die Empfängernummer der Schiene zur Verwendung durch die Schienensteuereinrichtung 37 zu. Bei der Interprozessor-Schiene 35 handelt es sich natürlich um eine nicht richtungsgebundene Schiene, so daß die Informationen der Datenschiene 57 durch beliebiges Modul zugeführt werden können, um entweder durch die Leitungssteuereinrichtung 37 zu Steuerzwecken oder durch einen anderen Prozessor zur Übermittlung von Informationen verwendet zu werden. Es sei bemerkt, daß ein Modul 33 der Schiene Daten nur zuführen kann, wenn seine Wählleitung festgelegt ist, während das Empfangsbefehlssignal noch nicht vorhanden ist.
Während das Empfangsbefehlssignal erzeugt wird, führt die Leitungssteuereinrichtung 37 die Sendenummer der Datenleitung 57 zu, damit sie von dem gewählten Empfängerprozessormodul aufgefangen wird.
Das nächste Signal nach Fig. 9, d. h. das Empfangsbestätigungssignal, repräsentiert ein Signal, das von der Schienenfüllzustands-Logik 93 des gewählten empfangenen Moduls an den logischen Leitungssteuerzustandsteil 81 der Leitungssteuereinrichtung 37 über eine der Protokolleitungen 59 abgegeben wird, um anzuzeigen, daß sich der gewählte Empfängermodul im Bestätigungszustand nach Fig. 8 befindet und somit bereit ist, das Datenpaket zu empfangen, das durch den Sendermodul zur Übermittlung bereitgehalten wird.
Wird das Empfangsbestätigungssignal durch den Empfängermodul nicht erzeugt, werden das Senderwählsignal und der Sendebefehl nicht erzeugt, und es findet keine Übertragung eines Datenpakets innerhalb des Zeitrahmens statt.
Steht das Empfangsbestätigungssignal an, läuft die Sendebefehlsfolge nach Fig. 9 ab.
Der Sendebefehl nach Fig. 9 repräsentiert ein Signal, das vom logischen Leitungssteuerzustandsteil 81 der Leitungssteuereinrichtung 37 ausgeht und der Schienenleerzustands-Logik 75 des Senderprozessormoduls 33 über eine der Protokolleitungen 59 zugeführt wird.
In Verbindung mit einem Wählsignal des Senderprozessormoduls gibt das Sendebefehlssignal den Senderprozessormodul frei, so daß dieser ein Datenpaket dem Empfängermodul während der sechzehn Takte zuführt, die vom Sendebefehlssignal erfaßt werden.
In Fig. 9 bezeichnet die letzte Linie die Informationen, die in den Datenleitungen 57 während der vorstehend beschriebenen Folge vorhanden sind.
Die Daten werden der Schiene durch den gewählten Senderprozessormodul zugeführt und beim Empfängerprozessormodul gemäß Fig. 5 dem Eingabewarteschlangenpuffer 97 innerhalb dieses Zeitrahmens, d. h. eines Zyklus von sechzehn Takten, eingegeben. Hierbei ist angenommen, daß das Empfangsbestätigungssignal in Abhängigkeit von dem Empfangsbefehlssignal von der Leitungssteuereinrichtung empfangen wurde.
Wäre das Empfangsbestätigungssignal nicht von der Leitungssteuereinrichtung empfangen worden, wäre das Sendebefehlssignal nicht aufgetreten, und die Leitungssteuereinrichtung 37 würde wieder in ihren Abrufzustand nach Fig. 6 zurückgekehrt sein.
Im folgenden wird anhand von Fig. 2, 7, 10 und 11 ein typischer Arbeitsgang des Ausgabewarteschlangenpuffers 67 und eines Prozessormoduls 33 beschrieben.
Gemäß Fig. 10 gehören zu dem logischen Prozessorfüllzustandsteil 73 zwei Kippschaltungen A und B, und der logische Leitungsleerzustandsteil 75 weist zwei Kippschaltungen C und D auf.
Gemäß den Zustandszuweisungen, die in Fig. 10 für die Kippschaltungen A und B bzw. C und D angegeben sind, ist der Zustand "LEER" durch A=0 und B=0 definiert. Der Zustand "FÜLLEN" ist durch A=1 und B=0 definiert. Der Zustand "GEFÜLLT" ist durch A=1 und B=1 definiert, während der Zustand "WARTEN" durch A=0 und B=1 definiert ist.
Auf ähnliche Weise definieren entsprechende Kombinationen von Zuständen bei den Kippschaltungen C und D die Zustände "LEERLAUF", "SYNCHRONISATION", "SENDEN" und "ERLEDIGT". Die soeben genannten Zustandszuweisungen könnten auch in Form logischer Gleichungen angegeben werden. Z. B. gilt für den Zustand "LEER" · ; diese Schreibweise ist in Fig. 11 bei den logischen Gleichungen angewendet.
Gemäß Fig. 7 entspricht der Ausgangszustand nach dem Einschalten der Stromzufuhr oder nach der manuellen Rückstellung dem im linken oberen Teil von Fig. 7 dargestellten Leerzustand.
Der Leerzustand der Prozessorzustands-Logik 73 bewirkt, daß der Zentraleinheit 105 ein Bereitschaftssignal zugeführt wird, um das Vorhandensein dieses Zustandes anzuzeigen, wie es in Fig. 7 durch den gestrichelten Pfeil RDY angedeutet ist.
Wenn eine Übertragung über die Interprozessor-Schiene erforderlich ist, liefert die Firmware (Mikroprogramm) der Zentraleinheit in Abhängigkeit von dem Bereitschaftssignals ein Speicherempfangssignal, das in Fig. 7 durch den gestrichelten Pfeil S/RCV angedeutet ist und eine Qualifizierung (Synchronisation) des Übergangs bewirkt, durch den aus dem Leerzustand in den Zustand "FÜLLEN" übergegangen wird.
Zum Überführen von Daten in den Ausgabeschlangenpuffer 69 erzeugt die Firmware der Zentraleinheit ein Speicherausgabewarteschlangensignal entsprechend dem gestrichelten Pfeil CNT 15 S/OUTQ für jedes in dem Puffer 69 zu speichernde Wort.
Jedes dieser Speicherausgabewarteschlangensignale schaltet den Ausgabewarteschlangenzähler 77 weiter, wobei bei Null begonnen wird, bis das Zählergebnis 15 erreicht ist.
Sobald das sechzehnte Speicherausgabewarteschlangensignal erscheint, erfolgt ein Übergang aus dem Zustand "FÜLLEN" in den Zustand "GEFÜLLT", wie es in Fig. 7 durch den als Vollinie gezeichneten Pfeil angedeutet ist.
Der Zustand "GEFÜLLT" der Prozessorfüllzustands-Logik bildet einen Synchronisationszustand für die Schienenleerzustands-Logik, wie es in Fig. 7 durch den gestrichelten Pfeil angedeutet ist, der vom Zustand "GEFÜLLT" der Logik 73 nach unten zu der Logik 75 verläuft.
Die Prozessorfüllzustands-Logik 73 verbleibt im gefüllten Zustand, bis die Schienenleerzustands-Logik 75 danach den Zustand "ERLEDIGT" erreicht hat.
Bei der Schienenleerzustands-Logik 75 wird gemäß Fig. 7 der Ausgangszustand "LEERLAUF" beim Einschalten der Stromzufuhr oder beim manuellen Rückstellen erreicht.
Die Schienenleerzustands-Logik 75 verbleibt im Leerzustand, bis der Übergang in den Synchronisationszustand zugelassen wird, wie es in Fig. 7 durch den gestrichelten Pfeil angedeutet ist, der vom Zustand "GEFÜLLT" der Prozessorfüllzustands-Logik 73 ausgeht.
Die Schienenleerzustands-Logik 75 arbeitet dann weiter, ohne daß eine Qualifikation erforderlich ist, um aus dem Synchronisationszustand in den Sendezustand überzugehen.
Beim Sendezustand wird das Sendeanforderungssignal der Schiene und der Schienensteuereinrichtung zugeführt, wie es in Fig. 7 durch den gestrichelten Pfeil SND REQ angedeutet ist, der von dem Zustand "SENDEN" ausgeht.
In Abhängigkeit von diesem Sendeanforderungssignal fragt die Leitungssteuerlogik 81 nach Fig. 6 die Prozessormodule nacheinander ab, bis der Sender identifiziert ist, wie es weiter oben anhand von Fig. 9 beschrieben wurde.
Die Leitungssteuereinrichtung gibt ein Empfangsbefehlssignal und ein Wählsignal an den vorgesehenen Empfängerprozessormodul ab, und beim Empfang des Empfangsbestätigungssignals geht sie zu dem in Fig. 9 ebenfalls identifizierten Datenpaket-Zeitrahmen über.
Während des Datenpaket-Zeitrahmens erzeugt die Leitungssteuereinrichtung das Wählsignal für den Senderprozessormodul sowie das Sendebefehlssignal für diesen Modul.
In Fig. 7 sind das Wählsignal SEL und das Sendebefehlssignal SMD CMD als in das Diagramm eintretend dargestellt, wobei qualifizierende (synchronisierende) Übergänge den Zustand "SENDEN" verlassen bzw. ihm zugeführt werden.
Während die Wähl- und Sendebefehlssignale anstehen, schaltet jeder Leitungstakt den Ausgabewarteschlangenzähler 77 weiter, wobei mit dem Zählerergebnis Null begonnen wird.
Bei der sechzehnten Taktperiode der Wähl- und Sendebefehlssignale wird der Übergang, der den Sendezustand beendet und das Fortschreiten zum Zustand "ERLEDIGT" bewirkt, qualifiziert bzw. synchronisiert, wie es in Fig. 7 durch einen gestrichelten Pfeil angedeutet ist.
Wenn die Schienenleerzustands-Logik 75 den Zustand "ERLEDIGT" erreicht hat, wird ein Übergang der Prozessorfüllzustands-Logik 73 aus dem Zustand "GEFÜLLT" in den Zustand "WARTEN" qualifiziert, wie es in Fig. 7 bei dem Zustand "ERLEDIGT" durch einen gestrichelten Pfeil angedeutet wird.
Hierauf qualifiziert der Zustand "WARTEN" der Prozessorfüllzustands-Logik 73 einen Übergang der Schienenleerzustands-Logik 75 aus dem Zustand "ERLEDIGT" in den Leerlaufzustand, wie es in Fig. 7 durch den gestrichelten Pfeil im Anschluß an den Zustand "WARTEN" angedeutet ist.
Schließlich qualifiziert die Schienenleerzustands-Logik 75, die sich im Leerlaufzustand befindet, den Übergang der Prozessorfüllzustands-Logik 73 aus dem Zustand "WARTEN" in den Zustand "LEER", wie es in Fig. 7 durch den von dem Zustand "LEERLAUFEN" ausgehenden gestrichelten Pfeil angedeutet ist.
Nunmehr ist ein Datenpunkt durch den Prozessormodul dem Ausgabewarteschlangenpuffer 69 eingegeben und über die Schiene 35 zu dem Empfängerprozessormodul übermittelt worden, und die Prozessorfüllzustands-Logik 73 sowie die Schienenleerzustands-Logik 75 sind jeweils in ihren ursprünglichen Zustand zurückgekehrt.
Die vorstehende Beschreibung bezieht sich auf die in Fig. 7 dargestellten Übergänge und Qualifikationen. Die Wirkungsweise der Logiken 73 und 75 bei den anhand von Fig. 7 beschriebenen Vorgängen wird im folgenden anhand des logischen Diagramms in Fig. 10 und der in Fig. 11 angegebenen logischen Gleichungen näher erläutert.
Die in Fig. 10 dargestellten Kippschaltungen A und B sind als JK-Kippschaltungen ausgebildet, die mit Flankentriggerung arbeiten, d. h. bei denen Zustandsänderungen nur bei Taktübergängen auftreten, wie es in Fig. 10 auf der linken Seite der Kippschaltungen A und B durch kleine Dreiecke und die zugehörigen Beschriftungen angedeutet ist.
Das logische Diagramm in Fig. 10 dient in erster Linie zur Veranschaulichung des Übergangs von einem Zustand in einen anderen bei den Zustandsmaschinen nach Fig. 7. Beispielsweise spielt sich der Übergang vom Leerlaufzustand in den Synchronisationszustand bei der Schienenleerzustands-Logik 75 in der nachstehend beschriebenen Weise ab.
Um einen Übergang aus dem Leerlaufzustand in den Synchronisationszustand zu bewirken, muß die Zustandsvariable C nach Fig. 10 eingestellt werden.
Die logische Gleichung für den J-Eingang der Zustandsvariablen C ist in Fig. 11 dargestellt und mit 103 bezeichnet. Bei dieser Gleichung entspricht die Verriegelung, die in Fig. 7 durch den gestrichelten Pfeil zwischen dem Füllzustand der Prozessorfüllzustands-Logik 73 zu dem Übergang dargestellt ist, der Größe (A+B] bzw. dem Ausdruck (GEFÜLLT) in der Gleichung 103. Der Zustand bzw. der Leerlaufzustand in der Gleichung 103 nach Fig. 11 entspricht dem in Fig. 7 dargestellten Leerlaufzustand. Das Glied J der Gleichung entspricht dem J-Eingang der Kippschaltung C nach Fig. 10. Das Glied (C) entspricht dem wahren Ausgangssignal der Kippschaltung C nach Fig. 10.
Anhand von Fig. 10 und 11 werden keine weiteren Zustandsübergänge nach Fig. 7 beschrieben, denn es wird angenommen, daß diese Übergänge, die entsprechend dem logischen Diagramm in Fig. 10 und den logischen Gleichungen nach Fig. 11 durchgeführt werden, durch das vorstehende Beispiel des Übergangs aus dem Leerlaufzustand in den Synchronisationszustand hinreichend verdeutlicht worden sind.
Fig. 10 und 11 zeigen das logische Diagramm bzw. die logischen Gleichungen für das Zustandsdiagramm des Ausgabewarteschlangenpuffers 67. Für das Eingabewarteschlangenteil 65 und die Leitungssteuereinrichtung 37 sind keine entsprechenden logischen Diagramme bzw. logischen Gleichungen dargestellt worden, da diese denjenigen nach Fig. 10 und 11 ähneln und sich den Zustandsdiagrammen in Fig. 6 und 8 ohne weiteres entnehmen lassen.
Gemäß Fig. 1 ist jeder Prozessormodul 33 des Multiprozessorsystems mit den beiden Interprozessor-Schienen 35 verbunden, und er kann über jede Schiene mit sich selbst und mit jedem anderen Prozessormodul verkehren. Bei jeder Übertragung eines Datenblocks bildet ein Prozessormodul die Quelle bzw. den Sender, während ein anderer Modul den Bestimmungsort oder Empfänger bildet.
Die Übermittlung von Daten durch einen Prozessormodul über eine der Interprozessor-Schienen 35 wird mit Hilfe der Software unter Verwendung des Sendebefehls eingeleitet und durchgeführt.
Beim Sendebefehl arbeiten das Mikroprogramm 11 nach Fig. 2 und der Mikroprozessor 113 der Zentraleinheit mit dem gemeinsam ausgenutzten Ausgabewarteschlangenteil 67 der Interprozessor-Steuereinrichtung 55 zusammen, um einen Datenblock aus dem Speicher 101 auszulesen, um den Datenblock in Pakete zu zerlegen, um Paketprüfsummenwörter zu berechnen und um den Datenblock paketweise über eine Schiene zu dem Empfangsprozessormodul zu übermitteln. Parameter, die dem Sendebefehl zugeführt werden, spezifizieren die Anzahl der Wörter in dem Datenblock, die Startadresse des Datenblocks, die zu benutzende Schiene, den Empfängerprozessor und einen maximalen anfänglichen Zeitsperrenwert zum Abwarten der Verfügbarkeit des Ausgabewarteschlangenteils 67.
Der Sendebefehl endet erst nach der Übermittlung des gesamten Datenblocks; somit erscheint das Senden eines Datenblocks vom Software-Standpunkt als ein einziger Vorgang. Jedoch ist der Sendebefehl unterbrechbar und wiederaufnehmbar, so daß die Reaktion des Betriebssystems auf andere Vorgänge nicht durch die Länge der Zeit beeinträchtigt wird, die zur Beendigung eines Sendebefehls benötigt wird.
Der Empfang von Daten durch einen Prozessormodul über die Interprozessorschienen wird nicht durch einen Software-Befehl bewirkt, denn die Zeitpunkte des Eintreffens und die Quellen der Datenpakete lassen sich nicht voraussagen. Der Empfang von Daten wird durch den Empfänger freigegeben, kann jedoch nicht durch den Empfänger eingeleitet werden.
Der Mikroprozessor 113 der Zentraleinheit unterbricht die Verarbeitung der Software-Befehle nach Bedarf, um das Leitungsempfangs-Mikroprogramm 115 ablaufen zu lassen. Das Mikroprogamm entnimmt gemäß Fig. 2 das empfangene Datenpaket einem der Eingabewarteschlangenteile 65 der Interprozessor-Steuereinrichtung 55, woraufhin die Daten in einem Speicherpuffer gespeichert und die richtige Paketprüfsumme geprüft wird.
Das erneute Zusammenstellen empfangener Pakete zu Datenblöcken erfolgt gemäß Fig. 2 mit Hilfe der Schienenempfangstabelle 150 im Speicher. Die Schienenempfangstabelle enthält 32 Einträge mit je zwei Wörtern, die den beiden Interprozessor-Schienen 35 entsprechen, welche bei dem hier beschriebenen Ausführungsbeispiel eines Multiprozessorsystems zu den sechzehn vorhandenen Prozessormodulen führen. Jeder einer Schiene und einem Sender entsprechende Eintrag der Schienenempfangstabelle enthält ein Adressenwort und ein Zählwort. Das Adressenwort gibt an, in welchem Puffer der Systemdatenzone von dem Sender eintreffende Daten gespeichert werden sollen. Das Zählwort gibt an, wieviele Datenwörter noch verbleiben, bis die Übertragung des Datenblocks durch den Sender beendet ist.
Während des Empfangs jedes Datenpakets unterbindet der Mikroprozessor 113 der Zentraleinheit die Verarbeitung von Software-Befehlen, und das Schienenleerzustands-Mikroprogramm 115 wird aktiviert. Dieses Mikroprogramm liest die Adressen- und Zählwörter aus dem Eintrag der Schienenempfangstabelle des Senders, speichert das Datenpaket in dem angegebenen Bereich, prüft die Richtigkeit der Paketprüfsumme und führt eingestellte Werte der Adressen- und Zählwörter in den Eintrag der Schienenempfangstabelle zurück. Wenn das Datenpaket bewirkt hat, daß das Zählergebnis den Wert Null erreicht, oder wenn es eine falsche Prüfsumme enthielt, erzeugt das Schienenempfangs-Mikroprogramm ein Unterbrechungssignal, um der Software die Beendigung des Datenblocks zu melden. Dann nimmt das Mikroprogramm der Zentraleinheit die Verarbeitung der Software-Befehle an dem Punkt wieder auf, an dem die Verarbeitung unterbrochen wurde, ohne daß irgendeine Störung mit Ausnahme einer Verzögerung des gerade ablaufenden Programms eintritt.
Ein wichtiges Merkmal der Erfindung besteht darin, daß Datenblöcke, die von verschiedenen Sendern stammen, sämtlich gleichzeitig durch einen Empfangsprozessormodul aus Datenpaketen zusammengestellt werden können, die in beliebiger Reihenfolge eintreffen. Dieses zeitlich verzahnte Zusammenstellen von Datenblöcken aus Paketen wird so durchgeführt, daß es für die den Empfängerprozessor steuernde Software transparent ist. Die Software wird nur durch die erfolgreiche Beendigung von Datenblöcken oder fehlerhafte Übermittlungen unterbrochen.
Ferner ist die Tatsache von Bedeutung, daß bei der Interprozessor-Schienenhardware in zwei Bereichen eine zeitliche Verzahnung oder eine zeitliche Unterteilung erreicht worden ist.
Erstens ermöglichen es jede Interprozessorschiene und die zugehörige Schienensteuereinrichtung, Datenpakete nach Bedarf zwischen jedem Sender und jedem Empfänger zu übermitteln. Die Rundanfrage durch eine Schienensteuereinrichtung zur Identifizierung eines eine Anforderung stellenden Senders gewährleistet, daß sämtlichen Prozessormodulen gleiche Chancen gegeben werden, über die betreffende Schiene zu senden. Jede Schiene bildet einen Verkehrsweg, der in zeitlicher Verzahnung und ohne jedes Vorurteil von sämtlichen Prozessormodulen benutzt werden kann.
Zweitens wird jeder Eingabewarteschlangenteil 65 der Interprozessor-Steuereinrichtung 55 eines Prozessormoduls in zeitlicher Verzahnung durch von mehreren Sendern eintreffende Datenpakete benutzt. Mit anderen Worten, die Eingabewarteschlangenlogik und der Speicher eines Prozessors sind während der Dauer der Übertragung eines Datenblocks nicht einem einzigen Sender vorbehalten. Vielmehr wird jedes empfangene Datenpaket in der richtigen Weise dem Speicher durch die Schienenempfangstabelle zugeführt, und zwar durch den dem betreffenden Sender und der betreffenden Schiene entsprechenden Eintrag. Datenblöcke, die von verschiedenen Sendern stammen, werden im Speicher des Empfängers in der richtigen Weise zusammengestellt, und zwar ohne Rücksicht auf die Reihenfolge, in der die Sender von der Schiene Gebrauch machen.
Einem Prozessormodul stehen zwei Möglichkeiten zur Verfügung, um seine Fähigkeit, Datenpakete über die X-Schiene oder die Y-Schiene zu empfangen, festzulegen.
Erstens ist für jede Interprozessormaschine ein entsprechendes Bit im Unterbrechungsmaskenregister der Zentraleinheit vorhanden. Wenn das Maskenbit ansteht, werden Mikrounterbrechungen für die betreffende Schiene zugelassen. Mikrounterbrechungen (Aktivierung des Schienenempfangs-Mikroprogramms) erfolgen, wenn die Prozessorleerzustands-Logik 101 nach Fig. 5 bei einem Eingabewarteschlangenteil 65 den Mikrounterbrechungszustand erreicht, nachdem ein Datenpaket von einem Eingabewarteschlangenpuffer empfangen worden ist. Steht beim Empfang eines Datenpakets das Maskenbit nicht an, werden die Mikrounterbrechung und die nachfolgende Verarbeitung des Datenpakets zur Eingabe in den Speicher aufgeschoben, bis das Maskenbit durch einen Software-Befehl gesetzt wird.
Software-Operationen, z. B. die Änderung eines Eintrags der Schienenempfangstabelle, werden durchgeführt, während die Mikrounterbrechungen gesperrt sind, um unvorhersehbare Ergebnisse zu vermeiden. Es gehen keine Datenpakete verloren, während die Mikrounterbrechungen gesperrt sind. Das erste empfangene Datenpaket wird im Eingabewarteschlangenpuffer festgehalten, bis die Mikrounterbrechung freigegeben wird. Nachfolgende Übertragungen von Datenpaketen bei gefülltem Eingabewarteschlangenpuffer werden zurückgewiesen, denn die Schienenfüllzustands-Logik 93 befindet sich im Zustand "GEFÜLLT" und ist daher unfähig, in Abhängigkeit vom Wählsignal des Empfangsbestätigungssignal zu erzeugen.
Ein zweites Mittel zum Bestimmen der Fähigkeit, Datenpakete über die Schiene zu empfangen, besteht in der Maßnahme, die durch den Prozessormodul getroffen wird, nachdem bei der X-Schiene oder der Y-Schiene eine Empfangsbeendigungsunterbrechung stattgefunden hat (Aktivierung einer Einrichtung zum Unterbrechen des Betriebssystems).
Wird bei einem empfangenen Datenpaket ein Prüfsummenfehler festgestellt, oder wenn das in einem Datenblock verbleibende Wortzählergebnis der Schienenempfangstabelle den Wert Null erreicht, während dem Speicher ein Datenpaket eingegeben wird, setzt das Schienenempfangs-Mikroprogramm bei der X-Schiene oder der Y-Schiene das Beendigungsunterbrechungszeichen. Anderenfalls gibt das Mikroprogramm gemäß Fig. 8 das Signal RINT an die Prozessorleerzustands-Logik 101 ab, um den Empfang eines weiteren Datenpakets zu ermöglichen. Wird jedoch das Beendigungssignal gesetzt, wird das Signal RINT nicht abgegeben.
Somit ist die Software-Unterbrechungseinrichtung, die auf die Beendigung des Empfangs durch die Schiene anspricht, dafür verantwortlich, daß das Signal RINT ausgegeben wird (mit Hilfe einer RIR-Software-Instruktion), um den Eingabewarteschlangenteil 65 wieder freizugeben. Bis dies geschieht, verbleibt die Schienenfüllzustands-Logik 93 im Zustand "GEFÜLLT", und es werden keine weiteren Datenpakte empfangen.
Das Beendigungsunterbrechungssignal kann daher entweder eine Datenblockübertragung bezeichnen, bei der sich das Senden und Empfangen fehlerlos abgespielt haben, oder eine Teilübertragung, bei der ein Prüfsummenfehler festgestellt wird, wobei die Beendigungsunterbrechung als Folge des Nachweises eines Prüfsummenfehlers erfolgt. Im letzteren Fall fährt der Sender fort, den Datenblock zu senden, doch scheidet der Empfänger den Datenblock aus, nachdem der Prüfsummenzähler nachgewiesen worden ist. Dieser Fehler zeigt sich im Zählwort der Schienenempfangstabelle als negativer Wert. Hierauf wird im folgenden näher eingegangen.
Der Sendebefehl ist ein Befehl, der vier Parameterwörter im Registerstapel der Zentraleinheit erfordert.
Das erste der vier Parameterwörter ist ein Zählergebnis der Anzahl der zu übermittelnden Wörter. Dieser Wert muß der Zahl entsprechen, die von der Schienenempfangstabelle im Empfängerprozessormodul erwartet wird, wenn die Übermittlung erfolgreich vollständig durchgeführt werden soll.
Das zweite Parameterwort ist die um 1 verkleinerte Adresse im Systemdatenbereich des Senderprozessorspeichers, wo sich die zu übermittelnden Daten befinden.
Das dritte Parameterwort ist ein Zeitsperrwert, der der vollständigen Übermittlung eines einzelnen Datenpakets mit 15 Datenwörtern zugeteilt ist. Die Sperrzeit beginnt neu für jedes durch den Sendebefehl übermittelte Datenpaket.
Das vierte Parameterwort bezeichnet die zu benutzende Interprozessor-Schiene (X-Schiene oder Y-Schiene) und den Empfängerprozessormodul. Die höchste Bitstelle des Parameterworts bezeichnet die Schiene, während die vier nachgeordneten Bits bei einer Ausführungsform der Erfindung die Nummer des Empfängerprozessormoduls bezeichnen.
Am Ende eines Sendebefehls sind zwei verschiedene Zustände möglich.
Der erste Zustand besteht darin, daß bei einem Datenpaket eine Zeitsperre aufgetreten ist, daß die übrigen Datenpakete nicht übermittelt wurden, und daß die Durchführung des Befehls an diesem Punkt beendet wurde. In diesem Fall werden die verbleibenden Pakete des Datenblocks nicht übermittelt.
Der zweite mögliche Zustand zeigt an, daß eine erfolgreiche Übertragung eines Datenblocks beendet worden ist.
Gemäß einer anfänglichen Zusammenfassung des Sendevorgangs bewirkt somit der Sendebefehl, daß der Ausgabewarteschlangenpuffer 69 (Fig. 4) mit fünfzehn Datenwörtern gefüllt wird, daß eine ungeradzahlige Paritätsprüfsumme angehängt wird, und daß der Schienensteuereinrichtung 37 gemeldet wird, daß ein Datenpaket zur Übermittlung bereitsteht. Nachdem jeweils ein Datenpaket mit sechzehn Wörtern übermittelt worden ist, wird der Ablauf des Sendebefehls dort wieder aufgenommen, wo er unterbrochen wurde. Wenn das letzte Paket des Datenblocks weniger als fünfzehn Wörter enthält, werden die verbleibenden Wörter mit Nullen aufgefüllt. Der Befehl endet, wenn das letzte Paket übermittelt worden ist.
Fig. 5 zeigt das zugehörige logische Diagramm und Fig. 7 das Zustandsdiagramm für die Sendehardware.
Die erste Wirkung der Sendebefehlsfolge besteht in der Ausgabe des Senderempfangssignals an die Prozessorfüllzustands-Logik 73 (Fig. 4) und der über die Leitung M nach Fig. 4 erfolgenden Zuführung der Empfängerprozessornummer zum Empfangsregister 71. Gleichzeitig wird der Ausgabewarteschlangenzeiger 79 entsprechend dem höchsten Bit aus der Leitung M eingestellt, um den Ausgabewarteschlangenteil 67 mit der X-Schiene oder der Y-Schiene zu verbinden.
Das Speicherempfangssignal nach Fig. 4 veranlaßt die Prozessorfüllzustands-Logik 73, die sich anfänglich in ihrem Leerzustand nach Fig. 7 befindet, in den Zustand "FÜLLEN" nach Fig. 7 überzugehen. Dieser Vorgang bewirkt, daß gemäß Fig. 4 das Empfangsregister 71 mit der Nummer des Empfängerprozessors geladen wird.
Nunmehr ist der Ausgabewarteschlangenteil 67 bereit, das Datenpaket in den Ausgabeschlangenpuffer 69 aufzunehmen. Jetzt werden dem Speicher bis zu fünfzehn Wörter entnommen und mit Hilfe der Leitung M nach Fig. 4 im Ausgabewarteschlangenspeicher 69 gespeichert. Das Speichersignal bewirkt, daß jedes in der Leitung M erscheinende Wort dem Ausgabewarteschlangenpuffer 69 an einer Speicherstelle eingegeben wird, die durch den Ausgabewarteschlangenzähler 77 bezeichnet wird. Außerdem bewirkt jedes Signal für die Speicherung in dem Ausgabewarteschlangenspeicher, daß der Ausgabewarteschlangenzähler 77 um eine Einheit weitergeschaltet wird.
Während die Wörter dem Speicher entnommen werden, wird das Adressenwort um 1 vergrößert, und das zu übermittelnde Wörterzählergebnis wird um 1 verkleinert. Wenn das Zählergebnis den Wert Null errreicht, bevor dem Speicher fünfzehn Wörter entnommen worden sind, wird der verbleibende Teil des Ausgabewarteschlangenpuffers 69 mit Nullen gefüllt, um das Datenpaket zu vervollständigen.
Während die Wörter dem Ausgabewarteschlangenpuffer 67 eingegeben werden, berechnet das Mikroprogramm 115 (Fig. 2) eine Modulo-2-Summe der Datenwörter. Nachdem das fünfzehnte Datenwort geladen worden ist, wird dieses ungeradzahlige Prüfsummenwort der sechzehnten Speicherstelle des Puffers 67 eingegeben.
In diesem Zeitpunkt enthält der Ausgabewarteschlangenzähler 77 das Zählergebnis 15, und dieser Wert veranlaßt in Verbindung mit dem Ausgabewarteschlangenspeichersignal die Prozessorfüllzustands-Logik 73, gemäß Fig. 7 aus dem Zustand "FÜLLEN" in den Zustand "GEFÜLLT" überzugehen.
Jetzt hat das Mikroprogramm 115 das Laden der Daten in den Ausgabewarteschlangenpuffer 69 beendet. Das Mikroprogramm wartet nunmehr darauf, daß das Datenpaket übermittelt wird, und zu diesem Zweck prüft es das Auftreten des Bereitschaftssignals RDY nach Fig. 7.
Während das Mikroprogramm 115 auf die Übermittlung des Datenpakets wartet, schaltet es einen Zeitgeber weiter, und wenn dieser Zeitgeber abläuft, bevor das Bereitschaftssignal RDY auftritt, führt das Mikroprogramm gemäß Fig. 4 der Prozessorfüllzustands-Logik 73 das Signal CLOQ zum Freimachen des Ausgabewarteschlangenpuffers zu, wodurch die Logik 73 veranlaßt wird, gemäß Fig. 7 in ihren Leerzustand zurückzukehren, woraufhin das Mikroprogramm dann den Sendebefehl mit einer Zeitablaufanzeige beendet.
Während des normalen Betriebs ermöglicht es der Zustand "GEFÜLLT" der Prozessorfüllzustands-Logik 73 der Leitungsleerzustands-Logik 75, gemäß Fig. 7 aus dem Leerlaufzustand in den Synchronisationszustand überzugehen. Danach wird automatisch vom Synchronisationszustand auf den Sendezustand übergegangen, und hierdurch wird bewirkt, daß das Sendeanforderungssignal der Schienensteuereinrichtung 37 zugeführt wird. Das Sendeanforderunsgsignal leitet eine noch zu beschreibende Datenpaket-Übertragungsfolge ein.
Wenn, wie erwähnt, der Senderprozessormodul durch die Schienensteuereinrichtung 37 mittels einer Abfrage identifiziert worden ist, und wenn der Empfängerprozessormodul die Übertragung des Datenpakets mit Hilfe des Empfängerbestätigungssignals akzeptiert hat, wird das Datenpaket aus dem Ausgabewarteschlangenpuffer 69 nach Fig. 4 über den Ausgabewarteschlangenzeiger 79 einer der Datenschienen 57 zugeführt, um dem Eingabewarteschlangenpuffer Empfängerprozessormoduls eingegeben zu werden.
Sobald das sechzehnte Wort der Schiene zugeführt wird, bewirkt das Zählergebnis 15 des Ausgabewarteschlangenzählers in Verbindung mit dem Sendebefehlssignal und dem Senderwählsignal, daß die Schienenleerzustandslog 99999 00070 552 001000280000000200012000285919988800040 0002002740056 00004 99880ik 75 gemäß Fig. 7 aus dem Senderzustand in den Zustand "ERLEDIGT" übergeht.
Das Erreichen des Zustandes "ERLEDIGT" ermöglicht es der Prozessorfüllzustands-Logik 73, aus dem Zustand "GEFLÜLLT" in den Wartezustand überzugehen, wie es in Fig. 7 durch den gestrichelten Pfeil angedeutet ist, der vom Zustand "ERLEDIGT" zu dem soeben genannten Übergang verläuft.
Hierauf ermöglicht der Wartezustand einen Übergang aus dem Zustand "ERLEDIGT" in den Leerlaufzustand, wie es in Fig. 7 dargestellt ist.
Schließlich ermöglicht der Leerlaufzustand einen Übergang aus dem Wartezustand in den Leerzustand, wie es ebenfalls in Fig. 7 gezeigt ist.
Der Leerzustand der Prozessorfüllzustands-Logik 73 liefert das Bereitschaftssignal RDY für das Mikroprogramm 115.
Wenn das soeben übermittelte Datenpaket das letzte des betreffenden Datenblocks war, wird der Sendebefehl beendet, und die erfolgreiche Übertragung des Datenblocks wird angezeigt.
Ist das übermittelte Datenpaket nicht das letzte des Datenblocks, wird die vorstehend beschriebene Folge wiederholt, bis alle Wörter des Blocks übermittelt worden sind, oder bis ein Zeitablauffehler aufgetreten ist.
Der Sendebefehl läßt sich unterbrechen und wieder aufnehmen; jedoch ist der Sendebefehl nur zwischen Datenpaketen unterbrechbar, und eine Unterbrechung des Sendebefehls hat keine Wirkung auf die übermittelten Daten.
Somit läßt sich mit Hilfe eines einzigen Software-Befehls, d. h. des Sendebefehls, ein Datenblock von bis zu 32 767 Wörtern von einem Senderprozessormodul zu einem Empfängerprozessormodul übermitteln, und die Genauigkeit der Übermittlung wird durch die Paketprüfsumme geprüft. Außerdem spielt sich die Übermittlung mit einer hohen Geschwindigkeit ab, da es die Pufferung durch den Ausgabewarteschlangenpuffer 69 des Senderprozessormoduls ermöglicht, die Übermittlung bei der Interprozessor-Schienengeschwindigkeit unabhängig von der Speichergeschwindigkeit des Senderprozessormoduls durchzuführen. Auf diese Weise wird eine wirtschaftliche Benutzung dieses Kommunikationswegs zwischen mehreren Prozessormodulen bei Zeitunterteilung ermöglicht.
Wie erwähnt, wird kein Empfangsbefehl erzeugt.
Damit ein Prozessormodul Daten über eine Interprozessorschiene empfangen kann, muß das Betriebssystem bei diesem Modul zuerst einen Eintrag für die Schienenempfangstabelle aufstellen. Jeder Eintrag enthält die Adresse, wo die eintreffenden Daten gespeichert werden, und die Anzahl der erwarteten Wörter.
Während der Senderprozessormodul den Sendebefehl ausführt und Daten über die Schiene sendet, speichern die Schienenempfangshardware und das Mikroprogramm 115 des Empfängerprozessormoduls die Daten entsprechend dem zugehörigen Schienenempfangstabelleneintrag, wobei dies in zeitlicher Verzahnung mit der Ausführung des Software-Programms geschieht.
Wenn der Empfängerprozessormodul die erwartete Anzahl von Wörtern von einem bestimmten Sender empfängt, wird das gerade ablaufende Programm unterbrochen, und die Übertragung über die betreffende Schiene wird zu Ende geführt.
Fig. 5 zeigt das logische Diagramm und Fig. 8 das Zustandsdiagramm der Schienenempfangshardware.
Wie erwähnt, sind bei jedem Prozessormodul gleichartige X- und Y-Eingabewarteschlangenteile 65 für die X- und Y-Schienen vorhanden. Im folgenden wird daher nur einer der Eingabewarteschlangenteile näher beschrieben.
Nach der Beendigung eines vorausgehenden Empfangsvorgangs geht die Prozessorleerzustands-Logik 101 gemäß Fig. 8 aus dem Rückstellzustand in den Bereitschaftszustand über, wodurch es der Schienenfüllzustands-Logik 93 ermöglicht wird, aus dem Synchronisationszustand in den Bestätigungszustand überzugehen.
Dieser Bestätigungszustand des Eingabewarteschlangenteils 65 läßt gemäß Fig. 2 in Abhängigkeit von einem Wählsignal 63 des Prozessormoduls 33 ein Empfangsbestätigungssignal zu der Schienensteuereinrichtung 37 gelangen. Hierdurch wird die Bereitschaft des X-Eingabewarteschlangenteils 65 zum Empfangen des Datenpakets angezeigt.
Bei der vorstehend im einzelnen beschriebenen Paketübermittlungsfolge ermöglichen es das Wählsignal des Prozessormoduls und das Empfangsbefehlssignal der Schienenfüllzustands-Logik 93, aus dem Bestätigungszustand in den Empfangszustand überzugehen.
Bei dieser Zustandsänderung wird das Senderregister 95 nach Fig. 5 mit der Nummer des Senderprozessormoduls geladen.
Beim Empfangszustand wird das Datenpaket aus der Datenschiene unter der Steuerwirkung des Eingabewarteschlangenzählers 99 in den Eingabewarteschlangenpuffer 97 überführt.
Sobald das sechzehnte Wort des Datenpakets geladen wird, erfolgt gemäß Fig. 8 der Übergang aus dem Empfangszustand in den Zustand "GEFÜLLT".
Jetzt ermöglicht es der Zustand "GEFÜLLT" der Prozessorleerzustands-Logik 101, gemäß Fig. 8 aus dem Bereitschaftszustand in den Mikrounterbrechungszustand überzugehen, wodurch der Unterbrechungslogik der Zentraleinheit ein Signal zugeführt wird, um das Füllen der Eingabewarteschlange zu melden. Dieses Signal bewirkt, daß am Ende des nächsten Software-Befehls eine Mikrounterbrechung stattfindet, wenn das der Schiene entprechende Maskenbit ansteht.
Das durch die Unterbrechung aktivierte Schienenempfangs-Mikroprogramm 115 führt gemäß Fig. 5 zunächst der Prozessorleerzustands-Logik 101 ein Verriegelungssignal zu. Hierdurch wird bewirkt, daß die Prozessorleerzustands-Logik 101 aus dem Mikrounterbrechungszustand in den Zwischenspeicherzustand übergeht.
Das Verriegelungssignal dient außerdem zum Wählen der X- oder Y-Warteschlange; dies gilt jedoch mit der Einschränkung, daß dann, wenn beide Eingabewarteschlangen gefüllt und freigegeben sind, die X-Warteschlange gewählt wird.
Als nächstes gibt das Mikroprogramm 115 gemäß Fig. 5 das Signal K/SND aus, das bewirkt, daß das Senderregister 95 seinen Inhalt an die K-Schiene abgibt, um die Nummer des das Datenpaket sendenden Prozessors zu erhalten.
Mit Hilfe dieser Prozessornummer liest das Mikroprogramm 115 den Schienenempfangstabelleneintrag des Senderprozessors, um die Adressen- und Zählwörter zu erhalten.
In das Zählwort Null oder negativ, wird das Datenpaket verworfen; in diesem Fall gibt das Mikroprogramm 115 gemäß Fig. 5 das Signal RINT ab, das die Prozessorleerzustands-Logik 101 veranlaßt, gemäß Fig. 8 aus dem Zwischenspeicherzustand in den Rückstellzustand überzugehen. In diesem Fall wird kein weiterer Vorgang durchgeführt. Die Mikrounterbrechung wird beendet, und die Verarbeitung des Software-Befehls wird wieder aufgenommen.
Ist das Zählergebnis positiv, liest das Mikroprogramm 115 Wörter aus dem Eingabewarteschlangenpuffer 97 aus, umd sie der K-Schiene mit Hilfe des in Fig. 5 dargestellten Signals K/INQ zuzuführen.
Bei jedem Auftreten des Signals K/INQ wird der Eingabewarteschlangenzähler 99 betätigt, um den Eingabewarteschlangenpuffer 97 abzutasten.
Während jeweils ein Datenwort aus dem Eingabewarteschlangenzähler 97 ausgelesen wird, wird das Zählwort verkleinert, das Speicheradressenwort wird vergrößert, und das Datenwort wird im Speicher gespeichert.
Wenn das Zählwort den Wert Null erreicht, sind keine weiteren Wörter mehr im Speicher vorhanden, es wird eine Durchführungsunterbrechungsmarke gesetzt, und die Senderprozessornummer wird an einer Speicherstelle festgehalten. In diesem Fall verbleibt die Schienenfüllzustandslogik 93 im Zustand "GEFÜLLT", bis die Löschung durch einen RIR-Befehl der Software erfolgt.
Wenn ein Datenblock vollständig empfangen worden ist, enthält somit das Zählwort einen Wert zwischen -14 und Null. Nachdem die Beendigungsunterbrechung stattgefungen hat, werden keine weiteren Übertragungen zu dem Prozessor über die Schiene zugelassen, welche die Unterbrechung bewirken, bis bei der Eingabewarteschlange die Löschung durch einen RIR-Befehl erfolgt ist.
Während die Datenwörter im Speicher gespeichert werden, wird eine Modulo-2-Summe der Daten des Pakets berechnet.
Ist die Prüfsumme schlecht, wird das Wortzählergebnis im Eintrag der Schienenempfangstabelle auf -256 eingestellt, es wird eine Beendigungsunterbrechungsmarke gesetzt, und die Nummer des Senderprozessors wird gespeichert. Wie zuvor verbleibt die Schienenfüllzustandslogik 93 im Zustand "GEFÜLLT", bis die Löschung durch einen RIR-Befehl erfolgt.
Erreicht das Zählwort nicht den Wert Null, und ist die Prüfsumme gut, gibt das Schienenempfangsmikroprogramm 115 gemäß Fig. 5 das Signal RINT an die Prozessorleerzustands-Logik 101 ab, so daß die Logik 101 aus dem Zwischenspeicherzustand in den Rückstellzustand übergeht.
Wenn die Logik 101 den Rückstellzustand erreicht, kann gemäß Fig. 8 die Schienenfüllzustands-Logik 93 aus dem Zustand "GEFÜLLT" in den Synchronisationszustand übergehen.
Wenn dieser Punkt erreicht ist, ist die Logik in den Zustand zurückgeführt worden, in dem sie sich vor dem Empfang des Datenpakets befand, so daß der Empfang weiterer Pakete ermöglicht wird.
Diese weiteren Pakete können vom gleichen Sender stammen und den betreffenden Datenblock ergänzen, oder sie können von irgendeinem anderen Sender stammen.
Auf diese Weise wird die Tätigkeit des Schienenempfangsmikroprogramms 115 beendet, und der Mikroprozessor 113 nimmt die Verarbeitung von Software-Befehlen wieder auf.
Wenn eine Schienenempfangs-Beendigungsunterbrechung stattgefunden hat, entnimmt die Software-Unterbrechungseinrichtung die Nummer des Senderprozessors der Speicherstelle, wo sie festgehalten wurde, und die Unterbrechungseinrichtung kann dann feststellen, ob ein Prüfsummenfehler aufgetreten ist, und zwar durch Prüfen des Schienenempfangstabellen-Zählwortes des betreffenden Senderprozessors.
Ist ein Übermittlungsfehler aufgetreten, ist das Zählwort auf -256 eingestellt worden. Anderenfalls enthält das Zählwort einen Wert zwischen -14 und Null.
Wie erwähnt, ist somit die Schienenempfangsbeendigungs-Softwareunterbrechungseinrichtung dafür verantwortlich, daß mit Hilfe eines RIR-Software-Befehls das Signal RINT ausgegeben wird, um den Eingabewarteschlangenteil 65 wieder freizugeben.
Ebenso wie das Senden eines Datenblocks durch einen Senderprozessormodul durch die Software als ein einziger Vorgang betrachtet wird, bewirkt auch der Empfang von Daten durch einen Empfängerprozessor keine Software-Unterbrechung bei dem Empfängerprozessormodul, bis der gesamte Datenblock empfangen worden ist, oder bis ein Fehler aufgetreten ist. Außerdem kommen die Eingabewarteschlangenteile 65 als Puffer zur Wirkung, um die Übermittlung von Daten mit der Schienenübertragungsgeschwindigkeit zu ermöglichen, wobei Daten im Speicher gespeichert werden können, und wobei die Prüfung der Daten bei der Speichergeschwindigkeit möglich ist. Diese Möglichkeit der Benutzung der hohen Übertragungsgeschwindigkeit bei der Schiene gewährleistet, daß die Schiene eine ausreichende Bandbreite hat, um gleichzeitig mehrere Prozessormodule mit zeitlicher Unterteilung zu bedienen. Schließlich ermöglicht es die Verwendung eines Prüfsummenwortes bei jedem Datenpaket in Verbindung mit dem Empfängerprozessormodul, die Genauigkeit der über den Multiprozessorkommunikationsweg empfangenen Daten zu prüfen.
Informationen, die über die Interprozessorschiene gesendet werden, werden unter der steuernden Wirkung des Betriebssystems gesendet und von einem Prozeß in einem Prozessormodul 33 zu einem anderen Prozeß in einem anderen Prozessormodul übertragen. Wie weiter unten erläutert, ist ein Prozeß eine fundamentale Steuereinheit im Software-System; und in einem Prozessormodul 33 sind gleichzeitig mehrere Prozesse vorhanden. Die Informationen, die zwischen Prozessen in verschiedenen Prozessormodulen über die Interprozessorschiene übertragen werden, bestehen aus zwei Arten von Elementen, und zwar Steuerpakten und Daten.
Die Steuerpakete dienen dazu, den Empfängerprozessormodul 33 über den Beginn von Nachrichten, Löschungen und Datenübertragungen zu informieren.
Während die Interprozessorschienen 35 die Prozessormodule 33 untereinander verbinden, verkehrt ein Prozeß innerhalb eines bestimmten Prozessormoduls mit einem oder mehreren anderen Prozessen in einem anderen Prozessormodul mit Hilfe eines Verfahrens für den Multiplexbetrieb der Interprozessorschiene. Daher enthält der Schienenverkehr zwischen zwei Prozessormodulen 33 Teile von Interprozessorkommunikationen, die sich in verschiedenen Verarbeitungsstadien befinden. Viele Interprozeßkommunikationen sind daher zeitlich miteinander verzahnt, so daß der Verkehr scheinbar simultan erfolgt.
Die Hardware bewirkt eine zeitliche Unterteilung der Benutzung der Interprozessorschiene 35 auf dem Datenpaketniveau, und jeweils mehrere Prozesse verkehren miteinander sowohl innerhalb der Prozessormodule 33 sowie im erforderlichen Ausmaß über die Interprozessorschienen 35 bei Nachrichtenübertragungen, die zeitlich miteinander verzahnt sind. In keinem Fall wird eine Interprozessorschiene 35 einer bestimmten Kommunikation zwischen zwei Prozessen zugeteilt.
Die Dateninformationen werden über die Interprozessorschiene in Form eines oder mehrerer Pakete gesendet, und ihnen geht stets ein Steuerpaket voraus, und in jedem Fall folgt ein Nachlaufpaket.
Die den Datenpaketen vorausgehenden Steuerpakete werden benötigt, da eine Schiene niemals einer bestimmten Nachricht vorbehalten ist, und ein solches Steuerpaket ist daher erforderlich, um die Nachricht einwandfrei zu identifizieren und anzuzeigen, wieviele Daten in der Nachricht enthalten sind.
Die Übertragung der Informationen, d. h. des Steuerpakets, der Daten und des Nachlaufpakets, erfolgt als unteilbare Einheit, sobald sie begonnen worden ist. Der Senderprozessormodul sendet den Datenblock als einzelne Sendung, die sich aus einer bestimmten Anzahl von Datenpaketen zusammensetzt, und er sendet das Nachlaufpaket als gesonderte Sendung; erst wenn dies geschehen ist, ist der Senderprozessormodul in der Lage, Informationen zu senden, die sich auf eine andere Nachricht beziehen.
Das Nachlaufpaket hat zwei Aufgaben zu erfüllen.
Wenn während einer Datenübertragung ein Fehler auftritt, so daß der Rest des Datenblocks verworfen werden muß, zeigt das Nachlaufpaket erstens das Ende des Datenblocks an.
Wenn der Sender versucht, zu viele Daten zu senden, so daß der Datenblock wiederum verworfen werden muß, bildet das Nachlaufpaket zweitens ein Mittel zur Erkennung der Tatsache, daß Daten übermittelt worden sind, und daß die Datenübertragung vollständig durchgeführt wurde.
Die Informationen werden entweder doppelt über verschiedene Wege übertragen, so daß Gewähr dafür besteht, daß die Informationen zum Empfänger gelangen, oder es ist eine Empfängerbestätigung erforderlich, so daß die Informationen notfalls wiederholt werden. Somit kann ein Fehler bei einer einzelnen Schiene nicht zu einem Informationsverlust führen, und ein solcher Fehler macht sich für die beiden dabei in Frage kommenden Prozesse nicht bemerkbar.
Die Schienenempfangssoftware verriegelt sich mit der Schienenempfangshardware (siehe den Eingabewarteschlangenteil 65 in Fig. 2) durch die Steuerung der Informationsübertragung aus dem Eingabewarteschlangenteil in den Speicher 107.
Dies macht es z. B. möglich, die Informationen der Schienenempfangstabelle zu verändern, ohne daß ein Zeitmangel auftritt bzw. sich Synchronisationsprobleme ergeben.
Sobald die Informationen der Schienenempfangstabelle aktualisiert worden sind, wird die Verriegelung dadurch beseitigt, daß die vorherige Beendigungsunterbrechung gelöscht wird, und daß die Schienenempfangs-Mikrounterbrechungen dadurch wieder freigegeben werden, daß im Maskenregister das Schienenmaskenbit gesetzt wird.
Hierdurch werden zwei Wirkungen hervorgerufen. Die Eingabewarteschlangenhardware kann ein Datenpaket in die Eingabewarteschlange aufnehmen, und dem Schienenempfangsmikroprogramm ist es möglich, diese Informationen aus der Eingabewarteschlange in den Speicher zu überführen.
Das Hardware-Software-System ist so aufgebaut, daß auch beim Versagen der Stromzufuhr zu dem System keine Informationen verlorengehen, d. h. auch dann nicht, wenn die Versorgung mit Wechselstrom aus dem Netz vollständig ausfällt, oder wenn Netzschwankungen auftreten, die zu einem kurzzeitigen Versagen der Stromzufuhr zu einem Teil des Systems führen.
Bei dem Hardware-Software-System wird gemäß Fig. 3 ein Stromversorgungswarnsignal dem Eingabewarteschlangenteil 65 nach Fig. 2 zugeführt, so daß der Eingabewarteschlange höchstens ein weiteres Informationspaket eingegeben werden kann, nachdem das Warnsignal eingetroffen ist.
Die Software erzeugt in diesem Fall einen Sendebefehl, um zu bewirken, daß die Eingabewarteschlangen gefüllt sind. Hierdurch wird praktisch gewährleistet, daß keine Übertragungen zu Ende geführt werden, nachdem das Warnsignal dem Prozessormodul 33 zugeführt worden ist, so daß der Zustand jeder Übertragung bekannt ist, wenn die Stromversorgung der logischen Einrichtungen unterbrochen wird.
Die Interprozessorschienen 35 werden durch das Betriebssystem benutzt, um festzustellen, daß sich weitere Prozessormodule des Systems in Betrieb befinden. In Abständen von N Sekunden sendet jeder Prozessormodul 33 über jede Interprozessorschiene ein Kontrollpaket zu jedem Prozessormodul. In Abständen von 2N sec muß jeder Prozessormodul ein solches Paket von jedem Prozessormodul des Systems empfangen haben. Ein Prozessormodul, der nicht reagiert, wird als abgeschaltet betrachtet. Wenn ein Prozessormodul seine eigene Nachricht nicht erhält, weiß dieser Modul, daß bei ihm eine Störung vorliegt, und daraufhin arbeitet er nicht mehr mit Ein-Ausgabe-Geräteanschlüssen zusammen.
Fig. 42 zeigt schematisch, auf welche Weise ein bestimmtes Anwendungsprogramm ohne Unterbrechung ablaufen kann, und zwar auch dann, wenn verschiedene Teile des Multiprozessorsystems ausfallen.
Jede der Einzeldarstellungen in Fig. 42 zeigt ein Multiprozessorsystem mit zwei Prozessormodulen 33, die durch zwei Interprozessorschienen 35, d. h. eine X-Schiene und eine Y-Schiene miteinander verbunden sind, ferner mit einem Geräteanschluß 41, der mehrere Tastaturterminals steuert, sowie mit einem weiteren Geräteanschluß 41 zum Steuern einer Platte.
In Fig. 42 veranschaulichen die Einzeldarstellungen, daß verschiedene Teile des Multiprozessorsystems betriebsunfähig werden und danach als betriebsfähig wieder in Gebrauch genommen werden.
Die Folge beginnt mit der Darstellung in der linken oberen Ecke von Fig. 42 und spielt sich in der durch die breiten Pfeile bezeichneten Reihenfolge ab. Somit beginnt die Folge mit dem angegebenen Anfangszustand, und sie setzt sich fort über einen Zustand, bei dem die Zentraleinheit 0 abgeschaltet ist, einen dritten Zustand, bei dem die Zentraleinheit 0 wieder in Betrieb genommen worden ist, einen vierten Zustand, bei dem die Zentraleinheit 1 abgeschaltet ist, und einen fünften Zustand, bei dem die Zentraleinheit 1 wieder in Betrieb ist.
Bei dem Anfangszustand des Multiprozessorsystems, wie er in Fig. 42 in der linken oberen Ecke dargestellt ist, ist eine Kopie PA des Anwendungsprogramms aktiv. Diese Kopie führt einen Systemaufruf durch, um die Kopie PB zu Sicherungszwecken zu erzeugen, woraufhin das Anwendungsprogramm PA der Kopie PB Informationen zuführt. Sämtliche Ein- und Ausgabevorgänge laufen hierbei über den Prozessormodul 0. Bei desem Anfangszustand kann jede Interprozessorschiene 35 versagen oder abgeschaltet werden, wie es in Fig. 42 bei der X-Schiene durch Querstriche angedeutet ist, und sie kann erneut in das Multiprozessorsystem eingeführt werden, ohne daß irgendeine Wirkung auf das Anwendungsprogramm PA hervorgerufen wird.
Bei der nächsten Einzeldarstellung in Fig. 42 mit der Bezeichnung "Zentraleinheit 0 abgeschaltet" ist der Prozessormodul 0 betriebsunfähig. Das Multiprozessorsystem informiert das Anwendungsprogramm PA, daß dieser Modul betriebsunfähig ist, und daraufhin versucht das Anwendungsprogramm PA nicht mehr, mit dem Programm PB zu verkehren. Sämtliche Ein- und Ausgabevorgänge werden durch das Multiprozessorsystem so umgeschaltet, daß sie über den Prozessormodul 1 laufen, und das Anwendungsprogramm fährt fort, die Terminals ohne jede Unterbrechung über die Ein-Ausgabeleitung 39 zu bedienen, die den Prozessormodul 1 mit den Geräteanschlüssen 41 verbindet, wie es in Fig. 42 bei der Leitung 39 auf der rechten Seite durch einen Pfeil angedeutet ist.
Der nächste Betriebszustand des Multiprozessorsystem ist in Fig. 42 im oberen Teil in der Mitte dargestellt und mit "Zentraleinheit 0 wieder in Betrieb" bezeichnet; der Prozessormodul 0 wird jetzt mittels eines vom Bedienungsplatz aus erteilten Befehls wieder in Betrieb gesetzt. Nunmehr wird der Prozessormodul 0 von der Platte aus mit Hilfe des Prozessormoduls 1 erneut mit dem Multiprozessorsystem geladen. Das Anwendungsprogramm PA wird informiert, daß der Prozessormodul 0 jetzt betriebsfähig ist, und das Anwendungsprogramm PA veranlaßt das Multiprozessorsystem, eine weitere Kopie des Anwendungsprogramms im Prozessormodul 0 zu erzeugen; diese weitere Kopie ist in Fig. 42 mit PC bezeichnet. Die Terminals arbeiten ohne Unterbrechung weiter.
Nunmehr wird der Prozessormodul 1 betriebsunfähig, wie es in Fig. 42 durch die Beschriftung "Zentraleinheit 1 abgeschaltet" angedeutet ist. Das Anwendungsprogramm PC wird hierüber durch das Multiprozessorsystem informiert, und das Anwendungsprogramm PC übernimmt die Anwendung. Das Multiprozessorsystem führt sämtliche Ein- und Ausgabevorgänge über den Prozessormodul 0 durch. Die Terminals arbeiten wiederum ohne Unterbrechung weiter.
Schließlich wird gemäß der Einzeldarstellung im rechten oberen Teil von Fig. 42 mit der Bezeichnung "Zentraleinheit 1 wieder in Betrieb" der Prozessormodul 1 durch einen vom Bedienungsplatz und von der Platte aus mit Hilfe des Prozessormoduls 0 erneut mit dem Multiprozessorsystem geladen. Das Anwendungsprogramm PC wird informiert, daß der Prozessormodul 1 wieder zur Verfügung steht, und das Anwendungsprogramm PC veranlaßt das Multiprozessorsystem, im Prozessormodul 1 eine weitere Kopie von sich selbst zu erzeugen, die in Fig. 42 als Anwendungsprogramm PD bezeichnet ist.
Nunmehr befinden sich alle Teile des Multiprozessorsystems wieder im betriebsfähigen Zustand.
Während der gesamten beschriebenen Zeitspanne wurden somit beide Interprozessorschienen und beide Prozessormodule betriebsunfähig, um danach wieder in das System eingefügt zu werden, doch wurde der Betrieb mit dem Anwendungsprogramm und den Terminals nicht unterbrochen.
Ein wichtiges Merkmal des Multiprozessorsystems besteht darin, daß nicht nur das Anwendungsprogramm weiter ablaufen kann, wenn irgendein Teil ausgefallen ist, sondern daß es auch möglich ist, den ausgefallenen Teil instandzusetzen und/oder auszutauschen, während das Anwendungsprogramm weiter abläuft. Dies gilt nicht nur für die Prozessormodule und die Interprozessorschienen, sondern auch für alle übrigen Teile des Systems, z. B. die Stromquellen, die Gebläse im Gestell usw. Somit ist das Multiprozessorsystem 31 tatsächlich ein ohne Unterbrechnung betreibbares System.
Ein-Ausgabesystem und Geräteanschluß mit zwei Zugängen
Wie erwähnt, gehören zu dem Multiprozessorsystem 31 nach Fig. 1 ein Ein-Ausgabesystem und Geräteanschlüsse 41 mit je zwei Zugängen.
Die allgemeine Aufgabe des Ein-Ausgabesystems besteht darin, die Übermittlung von Daten zwischen einem Prozessormodul 33 und Peripheriegeräten zu ermöglichen.
Ein wichtiges Merkmal der Erfindung besteht darin, daß die Übermittlung von Daten über redundate Wege möglich ist, um einen Betrieb zu gewährleisten, bei dem allenfalls eine Verlangsamung eintreten kann, so daß das Versagen eines Prozessormoduls 33 oder eines Teils eines Geräteanschlusses 41 die Übermittlung von Daten zu und von einem bestimmten Peripheriegerät nicht behindert.
Jeder Geräteanschluß 41 besitzt zwei Zugänge 43 und weitere Einrichtungen, die in Verbindung mit zwei zugehörigen Ein-Ausgabeleitungen 39 auf eine noch zu erläuternde Weise den redundaten Zugriff zu einem Peripheriegerät ermöglichen.
Das erfindungsgemäße Ein-Ausgabe-System weist ferner einige besonders wichtige Merkmale auf, die sich auf seine Leistungsfähigkeit auswirken. Eines dieser Merkmale besteht in der Geschwindigkeit bzw. der Bandbreite, mit der die Ein-Ausgabe-Schienenanordnung betrieben werden kann. Die Geräteanschlüsse 41 sammeln Daten von Peripheriegeräten, von denen die Daten mit relativ niedrigen Geschwindigkeiten übermittelt werden, und sie übermitteln die gesammelten Daten zu den Prozessormodulen nach einem Bündelmultiplexverfahren mit einer Geschwindigkeit, die gleich oder nahezu gleich der Speichergeschwindigkeit der Prozessormodule 33 ist.
Gemäß Fig. 1 arbeitet jeder Prozessormodul 33 mit mehreren einzelnen Geräteanschlüssen 41 zusammen, und diese Tatsache macht es möglich, daß jeder Geräteanschluß über die jeweils doppelt vorhandenen Zugänge 43 bei einem einzigen Multiprozessorsystem mit mehreren Prozessormodulen 33 verbunden wird.
Gemäß Fig. 12 steuert jeder Geräteanschluß 41 eine oder mehrere Vorrichtungen über Anschlüsse 111, die eine Sternschaltung bilden, bei der jede Vorrichtung unabhängig mit dem Geräteanschluß verbunden ist.
Gemäß Fig. 12 ist an einen Geräteanschluß 41 ein Plattenantrieb 45 und an einem anderen Geräteanschluß ein Magnetbandantrieb 49 angeschlossen.
Gemäß Fig. 12 gehört zu jeder Zentraleinheit 105 ein Mikroprozessor 113, dem jeweils ein Mikroprogramm 115 zugeordnet ist. Ein Teil des Mikroprogramms 115 wird durch den Mikroprozessor 113 in Erfüllung von Ein-Ausgabe-Befehlen für das Ein-Ausgabe-System durchgeführt. Gemäß Fig. 12 gehören zu den Ein-Ausgabe-Befehlen der Befehl EIO (Durchführung der Ein- und Ausgabe), der Befehl IIO (Ein-Ausgabe-Abfrage) und der Befehl HIIO (Abfrage von Ein- und Ausgabe mit hoher Priorität); diese Befehle sind in Fig. 15, 16 und 17 mit weiteren Einzelheiten dargestellt.
Dem Mikroprozessor 113 ist der Zugriff zur Ein-Ausgabeleitung 39 über den Eingabe-/Ausgabekanal 109 gemäß Fig. 12 mit Hilfe mehrerer Leitungswege 117 möglich.
Gemäß Fig. 12 gehört zu dem Eingabe-/Ausgabekanal 109 ein Mikroprozessor 119, dem ein Mikroprogramm 121 zugeordnet ist.
Bei dem Multiprozessorsystem hat das Mikroprogramm 121 die einzige Aufgabe, die im folgenden anhand von Fig. 16 beschriebene Wiederanschluß- und Datenübertragungsfolge durchzuführen.
Gemäß Fig. 12 gehört zu dem Eingabe-/Ausgabekanal 109 jedes Prozessormoduls 33 eine Datenweglogik 123.
Gemäß Fig. 13 gehören zu der Datenweglogik 123 ein Kanalspeicherdatenregister 125, ein Ein-/Ausgabe-Datenregister 127, ein Kanalspeicheradressenregister 129, ein Zeichenzählregister 131, ein Adressenregister 133 für aktive Vorrichtungen, ein Prioritätsauflösungsregister 135 sowie eine Paritätserzeugungs- und Prüflogik 137.
Zu dem Leitungsweg 117 nach Fig. 12 gehören gemäß Fig. 13 zwei Schienen, und zwar die M-Schiene und die K-Schiene.
Die M-Schiene ist eine Ausgangsschiene des Mikroprozessors 113, die Daten zu dem Ein-Ausgabe-Datenregister 127 übermittelt.
Die K-Schiene bildet eine Zuführungsschiene, die Daten von der Datenweglogik 123 zu dem Mikroprozessor 113 übermittelt.
Gemäß Fig. 12 verbindet ein Leitungsweg 139 die Datenlogik 123 mit dem Speicher 107.
Gemäß Fig. 12 gehören zu dem Leitungsweg 139 ein Hardware-Leitungsweg 139A und zwei logische Leitungswege 139B und 139C im Speicher 107 jedes Prozessormoduls 33.
Die logischen Leitungswege 139B und 139C werden im folgenden anhand von Fig. 16 näher erläutert.
Zu dem Hardware-Leitungsweg 139A gehören gemäß Fig. 13 drei Zweigleitungen.
Die erste Zweigleitung 139A-1 überträgt Daten vom Speicher zum Kanalspeicherdatenregister 125.
Ein zweite Zweigleitung 139A-2 überträgt gemäß Fig. 13 Daten vom Kanalspeicheradressenregister 129 zum Speicher.
Gemäß Fig. 13 überträgt ein dritter Leitungsweg 139A-3 Daten vom Ein-/Ausgabe-Datenregister 127 zum Speicher.
Gemäß Fig. 12 gehört zum Ein-Ausgabe-Kanal eines Prozessormoduls 33 ein Steuerlogikteil 141.
Zu dem Steuerlogikteil 141 gehören wiederum gemäß Fig. 13 eine T-Schienen-Maschine 143 sowie Anforderungsleitungen, und zwar gemäß Fig. 14 eine Rückverbindungsleitung 145, eine Unterbrechungsanforderungsleitung 147 für niedrige Priorität, eine Unterbrechungsanforderungsleitung 149 für hohe Priorität und eine Rangleitung 151.
Zu der in Fig. 12 und 14 dargestellten Ein-/Ausgabeleitung 39 gehören ferner mehrere Kanalfunktionsleitungen 153, 157 und 159, die auch in Fig. 13 angedeutet sind. Die Markierungsschiene bzw. die T-Schiene 153 besteht aus vier Leitungen, die als Funktionsleitungen zur Wirkung kommen und gemäß Fig. 14 sind drei Leitungen vorhanden, die Austauschleitungen bilden; hierzu gehören die Leitung 155 (Bedienung, Ausgabe), die Leitung 157 (Bedienung, Eingabe) und die Leitung 159 (Stop, Eingabe), die gemäß der Beschriftung in Fig. 14 Austauschleitungen bilden.
Gemäß Fig. 12 und 14 gehört zu der Ein-/Ausgabeleitung 39 ferner eine Gruppe von Datenleitungen 161, 163, 165, 167 und 169.
Die Leitungen 161 der Datenschiene und die Paritätsleitung 163 arbeiten richtungsunabhängig und dienen als Datenleitungen, und gemäß Fig. 14 umfaßt diese Gruppe sechzehn Datenschienenleitungen 161 und eine Paritätsleitung 163.
Die Leitungen 165 (Ende der Übertragung), 167 (Auffüllung, Ausgabe) und 169 (Auffüllung, Eingabe) dienen als Datenzustandsleitungen und zeigen bestimmte Bedingungen an, die sich bei den Datenleitungen 161 und 163 von Zeit zu Zeit ergeben können.
Schließlich gehört gemäß Fig. 12 und 14 zu der Ein-/Ausgabeleitung 39 eine Rücksetzleitung 171.
Jeder der in Fig. 18 dargestellten T-Schienen-Befehle erfordert ein bestimmtes Format bei der Datenschiene 161, während ein T-Schienen-Befehl gültig ist. Dieses spezielle Datenschienenformat ist in Fig. 18 bezüglich der bevorzugten Ausführungsform für die T-Schienen-Funktionen "Adresse und Befehl laden" (LAC) und "Lesen des Vorrichtungszustandes" (RDST) dargestellt.
Im Fall der T-Schienen-Funktion LAC geben die Daten bzw. das Feld, das über die Leitungen 0 bis 5 der Datenschiene 161 übermittelt wird, die durchzuführende Operation an; das Feld, das über die Leitungen 8 bis 12 der Datenschiene übertragen wird, benennt den Geräteanschluß 41 bzw. den Zugang 43, der an die Datenschiene 161 angeschlossen ist, an welchen der Befehl adressiert ist; das über die Datenschienenleitungen 13 bis 15 übertragene Feld gibt an, welche mit dem Geräteanschluß verbundene Vorrichtung durch den Geräteanschluß 41 in Abhängigkeit von diesem Befehl betätigt werden soll.
Im Fall der T-Schienen-Funktion RDST zeigen Datenschienenbits 0, 1, 2 und 3 an, daß ein Eigentümerfehler vorliegt, bzw. daß eine Unterbrechung bevorsteht, bzw. daß die Vorrichtung gesetzt ist, bzw. daß ein Paritätsfehler vorhanden ist. Die Bits 4 bis 15 melden den vorrichtungsabhängigen Zustand.
Über die T-Schiene werden die Funktionen in drei Folgen übertragen; wie es nachstehend anhand von Fig. 15, 16 und 17 beschrieben ist.
Jede T-Schienen-Funktion wird durch den Kanal herbeigeführt, und eine Austauschfolge wird zwischen dem Eingabe-/Ausgabekanal 109 und dem Geräteanschluß 41 unter Benutzung der Austauschleitungen 155, 157 und 159 durchgeführt, um den Empfang der T-Schienen-Funktion zu bestätigen. Die Steuerung der T-Schiene und des Austausches ist die Aufgabe der T-Schienen-Maschine 143 nach Fig. 13.
Fig. 23 zeigt einen Ablaufplan, der die Wirkung des Austausches zwischen dem Eingabe-/Ausgabekanal 109 und den Zugängen 43 erkennen läßt.
Gemäß Fig. 28 überträgt die Leitung 155 das Signal SVO (Bedienung, Ausgabe), während die Leitung 157 das Signal SVI (Bedienung, Eingabe) überträgt.
Der Kanaltaktzyklus ist für die Signale SVO und SVI in senkrechter Orientierung dargestellt.
Gemäß Fig. 28 ist das Signal SVI (Bedienung, Eingabe) nicht mit dem Kanaltakt synchronisiert, und es kann in jedem beliebigen Zeitpunkt durch den Geräteanschluß hervorgerufen werden, und zwar in Abhängigkeit von einem Bedienungs-Ausgabe-Signal des Eingabe-/Ausgabekanals 109.
Bevor das Signal SVO gegeben wird, benennt der Kanal 109 die T-Schienen-Funktion und erforderlichenfalls die Datenschiene.
Dann liefert der Kanal 109 ein Bedienungsausgabesignal, wie es in Fig. 28 durch den senkrechten Anstieg 279 angedeutet ist, und das Signal SVO bleibt wahr, bis der Geräteanschluß mit dem Signal SVI (281) reagiert, um den Kanalbefehl zu bestätigen; das Signal SVI bleibt wahr, bis der Kanal das Signal SVO verschwinden läßt.
Wenn der Geräteanschluß 41 das Bedienungseingabesignal SVI liefert, beseitigt der Kanal 109 das Bedienungsausgabesignal SVO, wie es in Fig. 28 durch den senkrechten Abfall 283 angedeutet ist, innerhalb einer Zeitspanne, die typisch zwischen einem und zwei Taktzyklen liegt, und in Abhängigkeit hiervon läßt der Geräteanschluß das Bedienungseingabesignal SVI entsprechend dem senkrechten Abfall 285 in Fig. 28 verschwinden.
Nachdem der Geräteanschluß 41 das Bedienungseingabesignal SVI zum Verschwinden gebracht hat, kann der Kanal 109 erneut ein Bedienungsausgabesignal SVO für die nächste Übermittlung liefern; jedoch liefert der Kanal das Signal SVO erst nach dem Verschwinden des Signals SVI.
In Fig. 28 bezeichnen die Pfeile 281A, 283A und 285A die Reaktionen auf die Vorgänge 297, 281 und 283.
Der Austausch wird mit der Hinterflanke des senkrechten Abfalls 285 nach Fig. 28 beendet.
Bei einer Ausgabeübertragung akzeptiert das Schnittstellen-Datenregister 213 des Geräteanschlusses die Daten an der Vorderflanke des Signals SVO (senkrechter Anstieg 279), und die Daten werden zum Steuerteil 187 des Geräteanschlusses (Fig. 19) an der Rückflanke des Signals SVO entsprechend dem senkrechten Abfall 283 in Fig. 28 übertragen.
Bei einer Eingabeübertragung akzeptiert der Kanal 109 Daten vom Geräteanschluß an der Rückflanke des Signals SVO entsprechend dem senkrechten Abfall 283 nach Fig. 28.
Somit wird ein Austausch über zwei Leitungen benutzt, um den Informationsaustausch zwischen dem Kanal 109 und dem zugehörigen Geräteanschluß 41 zu bewirken, da diese Teile asynchron arbeiten.
Hierbei handelt es sich um den allgemeinen Austauschzustand, der in Fig. 15, 16 und 17 als Austausch 2L bezeichnet ist.
Außerdem kommen ggf. zwei spezielle Überlegungen bezüglich des Austausches in Frage.
Erstens werden Kanalbefehle, die zum Wählen eines Geräteanschlusses benutzt werden, nicht durch das Signal SVI ausgetauscht, denn während dieser Zeit wird kein einzelner Geräteanschluß gewählt.
Gemäß Fig. 18 gehören zu diesen Befehlen die nachstehenden Befehle:
SEL:
Wählen
LAC: Adresse und Befehl laden
HPOL: Unterbrechungsabruf bei hoher Priorität
LPOL: Unterbrechungsabruf bei niedriger Priorität und
RPOL: Wiederverbindungs-Unterbrechungsabruf
Ferner werden Befehle, die benutzt werden, um eine Folge zu beenden, nicht durch das Signal SVI ausgetauscht, denn sie bewirken, daß sich ein gewählter Geräteanschluß selbst abschaltet.
Zu diesen Befehlen gehören gemäß Fig. 18 die folgenden Befehle:
DSEL:
Abschalten
ABTI: Befehl (Ein-Ausgabe) abbrechen und
ABTD: Daten verwerfen
Bei allen genannten Befehlen, die nicht ausgetauscht werden, liefert der Kanal gemäß Fig. 28 das Signal SVO bzw. 155 während einer bestimmten Zeitspanne von z. B. zwei Taktperioden, und dann läßt der Kanal das Signal SVO verschwinden. Diese Art des Austausches ist in Fig. 15, 16 und 17 als Austausch 1L bezeichnet.
Zweitens wird eine Datenübertragung normalerweise ausgetauscht, abgesehen davon, daß dann, wenn ein Geräteanschluß zu melden wünscht, daß er keiner weiteren Bedienung bedarf, dieser Geräteanschluß anstelle des Signals SVI das Signal STI (Eingabestopp) zurückgibt. Wenn danach das Signal SVO von dem Kanal fallen gelassen wird, schaltet sich der Zugang selbst ab. Im übrigen bewirkt das Signal STI einen Austausch in der gleichen Weise wie das Signal SVI.
Als weitere Bedingung für alle Austausche gilt, daß der Kanal dann, wenn er die Abgabe des Signals SVO vorbereitet, einen Zeitgeber anlaufen läßt (Bestandteil der T-Schienen-Maschine 143 nach Fig. 13), der dann abläuft, und ein Fehlersignal setzt, wenn der nächste Austauschzyklus nicht innerhalb der durch den Zeitgeber bestimmten Zeitspanne eingeleitet und zu Ende geführt wird. Wenn der Zeitgeber abläuft, wird ein Fehlersignal an einem geeigneten Punkt innerhalb der Folge gesetzt, und dem Geräteanschluß 41 wird gemäß der Beschreibung anhand von Fig. 15, 16 und 17 entweder das Signal ABTI (EIO-, IIO- oder HIIO-Folge) oder das Signal ABTD (Wiederanschlußfolge) zugeführt.
Fig. 29 zeigt die Logik für den in Fig. 28 dargestellten Austausch. Diese Logik bildet einen Bestandteil der T-Schienen-Maschine 143 nach Fig. 13 und ist für die vorstehend genannte allgemeine Austauschbedingung verantwortlich.
Zu der Logik nach Fig. 29 gehören eine Bedienungsausladekippschaltung 287 und eine Bedienungseingabe-Synchronisationskippschaltung 289. Gemäß Fig. 29 sind die Kippschaltungen 287 und 289 physikalisch innerhalb des Kanals 109 untergebracht.
Zu dem Geräteanschluß 41 gehören eine Verknüpfungslogik 291 und ein Sender 293 der ein Bedienungseingabesignal SVI zum D-Eingang der Kippschaltung 289 zurücksendet.
Die Logik nach Fig. 29 arbeitet in der nachstehend beschriebenen Weise.
Der Eingabe-/Ausgabekanal 109 setzt das Bedienungsausgabesignal, indem er den J-Eingang der Kippschaltung 287 einschaltet; wenn der nächste Taktzyklus beginnt, wird das Bedienungsausgabesignal den Geräteanschluß durch einen Sender 295 zugeführt.
Wenn die Verknüpfungslogik 291 des Geräteanschlusses betriebsbereit ist, gibt sie den Sender 293 frei, um das Bedienungseingabesignal SVI zu der Kippschaltung 289 zurückzuleiten und hierdurch den Austausch abzuschließen.
Gemäß Fig. 19 ist bei dem Geräteanschluß mit zwei Zugängen jeder der beiden Zugänge 43 eines Geräteanschlusses 41 durch eine physikalische Verbindung 197 mit der gemeinsamen Schnittstellenlogik 181 verbunden, deren Einzelheiten aus Fig. 21 ersichtlich sind, und jeder Zugang 43 ist außerdem über eine logische Verbindung 183 der gemeinsamen Schnittstellenlogik 181 so zugeordnet, wie es durch eine Eigentumsverriegelung 185 bestimmt wird.
Wie in Fig. 19 durch die Verbindungslinie 180 angedeutet, ist die gemeinsame Schnittstellenlogik 181 dem Steuerteil 187 des Geräteanschlusses 41 zugeordnet. Zu diesem Steuerteil 187 gehört ein Puffer 189.
Die in Fig. 19 schematisch angedeuteten, doppelt vorhandenen Zugänge 43, deren Einzelheiten aus Fig. 23 ersichtlich sind, bilden wichtige Bestandteile des erfindungsgemäßen Multiprozessorsystem, denn sie gewährleisten, daß sich der Betrieb des Ein-Ausgabe-Systems bei einer Störung allenfalls verlangsamt, jedoch nicht unterbrochen wird.
Die Zugänge 43 und die zugehörigen Systemteile sind so aufgebaut, daß die beiden Zugänge eines Geräteanschlusses 41 logisch und physikalisch voneinander unabhängig sind. Somit bildet kein Bestandteil eines Zugangs 43 einen Bestandteil des anderen Zugangs 43 eines bestimmten Geräteanschlusses 41, und das Versagen eines einzelnen Teils, z. B. eines integrierten Schaltkreises, bei einem Zugang kann den Betrieb des anderen Zugangs nicht beeinträchtigen.
Jeder Zugang 43 arbeitet gemäß Fig. 19 als Schnittstelle zwischen einem Prozessormodul 33 und einem Geräteanschluß und schließlich über den Geräteanschluß zwischen dem Prozessormodul und der betreffenden Vorrichtung. Der Zugang 43 bildet die Einheit, die mit dem Prozessormodul sowie mit dem Steuerteil 187 des Geräteanschlusses verkehrt, und zwar jeweils entsprechend dem Zustand der Eigentümerverriegelungseinrichtung 185.
Mit anderen Worten, der Zugang 43 selbst stellt die Verbindung zu einem Prozessormodul durch Setzen seines Wählbits 173 in der nachstehend beschriebenen Weise in Abhängigkeit von über den Eingabe-/Ausgabekanal 109 empfangenen Befehlen her.
Jeder einzelne Zugang 43 eines bestimmten Geräteanschlusses 41 kann unabhängig mit einem Prozessormodul 33 verbunden werden, und zwar gleichzeitig damit, daß der andere Zugang des Geräteanschlusses mit einem anderen Modul verbunden wird. Jedoch bestimmt die Eigentumsverriegelung 185 die logische Verbindung zwischen dem Steuerteil 187 des Geräteanschlusses und einem der beiden Zugänge 43 derart, daß in jedem Zeitpunkt nur ein Zugang den Geräteanschluß steuern kann.
Die Decodierlogik bestimmt, welche Funktion in jedem bestimmten Zeitpunkt durch die T-Schiene 153 übertragen wird.
Die Steuerlogik kombiniert T-Schienen-Funktionen, um bestimmte Funktionen des Zugangs herbeizuführen, z. B. um ein Wählbit zu setzen, um ein Wählbit zu löschen oder um den Unterbrechungszustand abzulesen.
Die Wirkungsweise der Steuerlogik ist in Fig. 27 durch die zugehörigen logischen Gleichungen dargestellt.
Wenn in der noch anhand von Fig. 15, 16 und 17 zu beschreibenden Weise eine Verbindungsfolge über die Ein-/Ausgabeleitung 39 übermittelt werden soll, wird einer der Zugänge 43, und zwar nur der an die Ein-/Ausgabeleitung 39 angeschlossene Zugang eines Geräteanschlusses 41 im logischen Sinne durch Setzen des zugehörigen Wählbits nach Fig. 19 an die Schiene angeschlossen.
Diese logische Verbindung wird durch einen Teil der Daten bestimmt, die bei dieser Verbindungsfolge übermittelt werden. Nach dem Herstellen der Verbindung reagiert der betreffende Zugang 43 auf Kanalprotokolle dadurch, daß er Informationen zwischen dem Kanal und dem Steuerteil des Geräteanschlusses weitergibt. Der Vorrichtungsadressenkomparator 193 ist derjenige Bestandteil des Zugangs 43, welcher die eindeutige Adresse des Zugangs bestimmt.
Der Vorrichtungsadressenkomparator 193 nach Fig. 20 bestimmt die eindeutige Adresse für einen bestimmten Zugang 43 dadurch, daß er das Vorrichtungsadressenfeld in der Datenschiene 161 während einer T-Schienen-Funktion LAC mit Adressenrangierleitungen vergleicht, die einem bestimmten Zugang 43 zugeordnet sind. Wenn die durch den Kanal 109 übermittelte Adresse der durch die Rangierleitungen bei einem bestimmten Zugang 43 bestimmten Adresse entspricht, wird gemäß Fig. 27 das Glied ADD COMP generiert, und die Wahlverriegelung 173 für diesen Zugang wird gesetzt, wobei angenommen ist, daß die übrigen in Fig. 27 angegebenen Bedingungen das Setzen des Wählbits zulassen. Hierauf reagiert der Zugang 43 auf alle T-Schienen-Operationen, bis die Folge mit der Löschung des Wählbits endet.
Zu den in Fig. 27 verwendeten Abkürzungen gehören die folgenden:
ADD COMP:
Adressenvergleich (Geräteanschlußadresse)
PAROKFF: Paritätsrichtigkeits-Kippschaltung
SEL: Wählen
OWN: Eigentümer und
SELBIT: Wählbit
Das Paritätsprüfregister 177 nach Fig. 20 steht insofern in einer Beziehung zu der Paritätserzeugungs- und Prüflogik 137 nach Fig. 13, als diese Logik bei der Ausgabe die Parität generiert, die durch das Register 177 des Zugangs 43 geprüft werden soll, und diese Parität muß zutreffen; anderenfalls wird der Vorgang durch den Ein-Ausgabe-Kanal 109 des Prozessormoduls 33 abgebrochen. Bei der Eingabe generiert die gemeinsame Schnittstellenlogik 181 auf ähnliche Weise das Paritätssignal, das durch die Paritätslogik 137 geprüft wird.
Gemäß Fig. 24 wird die Paritätsprüfung eingeleitet, bevor dem Register Daten eingegeben werden, und diese Paritätsprüfung wird fortgesetzt, bis das Register sämtliche Daten enthält. Mit anderen Worten, bei der D-Schiene wird die Parität durch das Zugangsparitätsregister immer dann geprüft, wenn der Kanal das Signal SVO mit einer Ausgabe-T-Schienen-Funktion liefert, und die Parität wird während der Dauer des Signals SVO überwacht, um zu gewährleisten, daß die Daten in der D-Schiene während der Dauer des Signals SVO stabil sind, während der Zugang die Daten zum Datenregister 213 nach Fig. 21 übermittelt.
Diese Paritätsprüfung findet bei jeder Transaktion innerhalb einer T-Schienen-Folge statt, und wenn während einer beliebigen Transaktion innerhalb der Folge ein Paritätsfehler aufgetreten ist, wird dieser Fehler in Abhängigkeit von einer T-Schienen-Funktion während einer Folge als Zustandsbit zurückgemeldet. Beispielsweise zeigt bei der EIO-Folge nach Fig. 18 und 15 die Rückführung des P-Bits für das Signal RDST an, daß der Zugang während der EIO-Folge einen Paritätsfehler bestimmt hat.
Gemäß Fig. 18 ist das Paritätsfehlerbit ein Bit Nr. 3 in der D-Schiene, das in Abhängigkeit von einer RDST-Funktion in der T-Schiene erscheint.
Tritt ein Paritätsfehler in irgendeinem Zeitpunkt außerhalb einer EIO-Folge auf, wird dieser Paritätsfehler während des Leseunterbrechungszustandes RIST der T-Schiene auf ähnliche Weise gemeldet, wie es weiter oben bezüglich des Signals RDST in der T-Schiene beschrieben ist.
Gemäß Fig. 24 wird der Paritätsfehler am Beginn einer EIO-, IIO- oder einer HIIO-Folge oder einer Wiederanschlußfolge gelöscht.
Wird während irgendeiner Folge ein Paritätsfehler festgestellt, wird er durch das Paritätsprüfregister registriert, um über die D-Schiene in Abhängigkeit von einer T-Schienen-Funktion RDST oder RIST zurückgemeldet zu werden.
Gemäß Fig. 20 hat die Freigabeverriegelung 175 bei dem Zugang 43 die Aufgabe, es dem Ein-Ausgabe-System zu ermöglichen, sich von Fehlern einer bestimmten Art zu erholen, die anderenfalls beide Ein-Ausgabe-Schienen betriebsunfähig machen würden, welche mit einem bestimmten Geräteanschluß 41 verbunden sind. Die Freigabeverriegelung 175 ermöglicht dies, indem sie nicht zuläßt, daß der Zugang 43 der Ein-/Ausgabeleitung 39 irgendwelche Signale zuführt.
Die Freigabeverriegelung 175 wird durch einen speziellen Sperrbefehl gelöscht. Hierbei handelt es sich um eine T-Schienen-Funktion in Form eines Ladeadressenbefehls LAC, wobei ein spezieller Operationscode über die D-Schiene 161 übertragen wird.
Nach dem Löschen der Freigabeverriegelung 175 kann diese Einrichtung nicht programmäßig zurückgesetzt werden.
Zu dem Zugang 43 gehört ein Zustandsmultiplexer 195, der den weiter obenerwähnten Eigentümerfehler zurückleitet, wenn der Geräteanschluß 41 logisch mit dem anderen Zugang 43 dieses Geräteanschlusses verbunden ist, um anzuzeigen, daß der Geräteanschluß zu dem anderen Zugang gehört, und daß diesen Zugang zugeführte Befehle ignoriert werden.
Bei dem Zugang 43 nach Fig. 20 ist ein Schnittstellensender- und -empfänger 197 für jede Eingabeleitung vorhanden, d. h. für die Leitungen SVI, STI, Datenschiene, Parität, PADI, RCI, LIRQ, HIRQ der Ein-Ausgabe-Schiene 39 nach Fig. 14. Die Sende- und Empfangseinrichtungen 197 übermitteln Daten von dem Zugang 43 zu dem Eingabe-/Ausgabekanal 109, wenn die Wahlverriegelung 173 gesetzt ist und die T-Schienen-Funktion bei der T-Schiene 153 es erfordert, daß der Geräteanschluß 41 Informationen zu dem Kanal zurückleitet. Die Einrichtungen 197 übermitteln ständig Informationen von der Datenschiene 161 aus zu dem Zugang 43.
Ein Merkmal der Erfindung besteht darin, daß die Stromzuführungsregelschaltung 182 in Zuordnung zu den Sende- und Empfangseinrichtungen 197 zur Wirkung kommt, um das Verhalten der Sende- und Empfangseinrichtungen zu regeln, wenn der Geräteanschluß 41 ein- oder ausgeschaltet ist, und zwar derart, daß die Übermittlung fehlerhafter Signale zu der Ein-Ausgabe-Schiene verhindert wird, während die Stromzufuhr ein- oder ausgeschaltet wird. Dieses Merkmal ist vom Standpunkt der Aufrechterhaltung der Übertragungsverbindungen von besonderer Bedeutung.
Gemäß Fig. 20 gehören zu jeder Sende- und Empfangseinrichtung 197 ein Empfänger 198 und ein Sender 200.
Zum Freigeben des Senders 200 dient eine Freigabeleitung 202.
Der Freigabeleitung 202 werden mehrere Glieder zugeführt, und zwar das Wählbit 173, eine erforderliche Eingabefunktion aus der T-Schiene und ein Signal der Stromversorgungsschaltung 182.
Bei einer bestimmten Ausführungsform der Erfindung wird das Signal der Stromversorgungsschaltung mittels einer "wire or"-Verbindung dem Ausgang des Gatters zugeführt, das die übrigen Glieder so kombiniert, daß das Ausgangssignal der Stromversorgungsschaltung die übrigen Glieder dadurch wirkungslos macht, daß sie die Freigabeleitung 202 abschaltet. Hierdurch wird gewährleistet, daß der Sender 200, bei dem es sich z. B. um einen Schaltkreis vom Typ 8T26A oder 7438 handelt, in den Zustand des hohen Widerstandes gebracht wird, bis die Stromversorgungsschaltung feststellt, daß die Stromversorgung ausreicht, um ein einwandfreies Arbeiten der integrierten Schaltkreise sicherzustellen. Die Ausgangsstufe der Stromversorgungsschaltung ist so ausgebildet, daß sich eine Eigenschaft vorteilhaft ausnutzen läßt, die bei dem hier verwendeten integrierten Schaltkreis für die Sende- und Empfangseinrichtung gegeben ist. Wenn bei diesem speziellen integrierten Schaltkreis die Treiberfreigabeleitung 202 zwischen zwei Diodenspannungsabfällen über dem Erdpotential gehalten wird, werden die Ausgangstransistoren des Senders ohne Rücksicht auf den Pegel der Stromzufuhr zu dem integrierten Schaltkreis in den Abstandzustand gebracht. Dies gewährleistet, daß die Treiberschaltung die Schiene nicht betätigen kann.
Diese spezielle Kombination von Merkmalen ermöglicht eine Betriebsweise, bei welcher das Ausgangssignal des integrierten Schaltkreises geregelt wird, wenn die Stromzuführung einsetzt oder sich verringert; im Gegensatz hierzu ist normalerweise das Ausgangssignal eines integrierten Schaltkreises nicht definiert, wenn die Stromzufuhr einen bestimmten Pegel unterschreitet.
Die gleiche Schaltung wird bei den X- und Y-Schienen des Interprozessorschienensystems benutzt, um die Sende- und Empfangseinrichtungen zu steuern und die durch die Interprozessorsteuereinrichtung 55 erzeugten Steuersignale zu kontrollieren. Gemäß Fig. 30 ist jede Zentraleinheit 105 mit einer Spannungsüberwachungsschaltung 182 versehen, die der Stromversorgungsschaltung 182 des Geräteanschlusses ähnelt. Somit steuern die Stromversorgungsschaltungen die Sender für alle Geräteanschlüsse 41 und sämtliche Interprozessor-Steuereinrichtungen 55.
Weitere Einzelheiten der Spannungsüberwachungsschaltung 182 sind aus Fig. 25 ersichtlich.
Die Stromversorgungschaltung hat die Aufgabe, zwei verschiedene Spannungspegel der Quelle für eine Spannung von 5 V zu detektieren.
Wenn die Stromzufuhr versagt, fühlt die Schaltung 182 den Punkt, an dem die Spannung einen bestimmten Pegel unterschreitet, bei dem die Logik des Geräteanschlusses oder der Zentraleinheit in einen unbestimmten Zustand übergeht. An diesem Punkt liefert die Schaltung Signale, um das System gegenüber der Logik zu schützen, die danach einen nicht definierbaren Zustand annimmt.
Der zweite Spannungspegel, der durch die Spannungsüberwachungsschaltung gefühlt wird, ist ein Wert, der Auftritt, wenn die zugeführte Spannung zunimmt. Dieser zweite Pegel, bei dem die Spannung gefühlt wird, ist im Vergleich zu dem ersten Pegel um etwa 100 mV höher, damit das System mit Hysterese arbeitet, um das Auftreten von Schwingungen zu verhindern.
Die Stromversorgungsschaltung verbleibt in einem stabilen Zustand, nachdem sie eine der Spannungsbedingungen gefühlt hat, bis sie die andere Spannungsbedingung fühlt, woraufhin eine Zustandsänderung eintritt. Der Zustand, in dem sich die Stromversorgungsschaltung jeweils befindet, bestimmt den Spannungspegel, bei dem der Übergang in den anderen Zustand herbeigeführt wird.
Somit liefert die Spannungsüberwachungsschaltung 182 ein Signal, durch das angezeigt wird, daß die zugeführte Spannung innerhalb vorbestimmter zulässiger Betriebsgrenzen für den Geräteanschluß 41 liegt. Ist dies nicht der Fall, wird das Ausgangssignal der Schaltung 182 dazu benutzt, auf direktem Wege die betreffenden Schienensignale des Geräteanschlusses 41 zu sperren.
Die Spannungsüberwachungsschaltung 182 erzeugt ein binäres Ausgangssignal. Bei dem Ausgangssignal 1 liegt die Spannung innerhalb der zulässigen Grenzen. Erscheint das Ausgangssignal 0, zeigt diese Tatsache an, daß die Spannung unter einer zulässigen Grenze liegt.
Zu der in Fig. 25 dargestellten Spannungsüberwachungsschaltung 182, die nachstehend näher erläutert wird und mit dem Geräteanschluß 41 zusammenarbeitet, weist sieben Ausgangstreiberstufen auf, von denen Gebrauch gemacht wird, um die Schaltung 182 mit dem Geräteanschluß 41 zu verbinden. Zwar wird die gleiche Schaltung 182 auch bei der Zentraleinheit 105 und der Schienensteuereinrichtung 37 verwendet, doch sind in diesen Fällen weniger Ausgangstreiberstufen vorhanden.
Gemäß Fig. 25 gehören zu der Schaltung 182 eine Stromquelle 184 und ein Differentialverstärker 186.
Der Differentialverstärker 186 weist als einen Eingang eine Leitung 188 zum Zuführen einer temperaturkompensierten Bezugsspannung und als zweiten Eingang eine Leitung 190 auf, wobei das über die Leitung 190 zugeführte Eingangssignal die Spannung anzeigt, die durch die Schaltung 182 gefühlt werden soll.
Die in der Leitung 188 erscheinende Bezugsspannung wird durch eine Zenerdiode 192 bestimmt.
Zu dem Differentialverstärker 186 gehören zwei einander angepaßte Transistoren 194 und 196.
Die in der Leitung 190 erscheinende Spannung wird durch Widerstände 198, 200 und 202 bestimmt, bei denen es sich um Metallfilmwiderstände handelt, durch die der Schaltung 182 eine hochgradige Temperaturstabilität verliehen wird.
Die in den Leitungen 204 und 206 erscheinenden Ausgangssignale des Differentialverstärkers 186 werden einer Anordnung mit drei Transistoren 208, 210 und 212 zugeführt, die ihrerseits den Hauptausgangssteuertransistor 214 steuert.
Der Hauptausgangssteuertransistor 214 treibt sämtliche mit ihm verbundenen Ausgangstreiber. Bei der in Fig. 25 dargestellten Anwendung der Schaltung 182 bei einem Geräteanschluß 41 treibt der Hauptausgangstransistor 214 z. B. die Ausgangsstufen 216-228. Die Ausgangsstufe 216 dient zum Löschen der Logik, die Ausgangsstufen 218, 220 und 222 werden in Verbindung mit den Schnittstellenvorrichtungen eines Zugangs 43 des Geräteanschlusses verwendet, und die Ausgangsstufen 224, 226 und 228 arbeiten mit der Schnittstellenvorrichtung des anderen Zugangs 43 des Geräteanschlusses zusammen.
Schließlich ist bei der Schaltung 182 eine Hysterese-Regeleinrichtung 230 vorhanden, zu der Widerstände 232 und 234 sowie ein Transistor 236 gehören.
Nimmt man an, daß während des Betriebs aus dem Abschaltzustand in den Einschaltzustand übergegangen wird, wird die Spannung der Stromquelle 184 dem Differentialverstärker 186 und dem Hauptausgangssteuertransistor 214 zugeführt. In diesem Zeitpunkt ist die in der Leitung 190 vorhandene Spannung niedriger als die Spannung in der Leitung 188, so daß der Differentialverstärker 186 den Hauptausgangssteuertransistor 214 im abgeschalteten Zustand hält. Hierdurch werden die Ausgangsstufen 216-228 eingeschaltet.
Hierdurch wird erreicht, daß die Schaltung 182 das Ausgangssignal 0 liefert, um anzuzeigen, daß die Spannung nicht innerhalb der gewünschten Grenzen liegt.
Nimmt die Spannung zu, erhöht sich die Eingangsspannung in der Leitung 190, bis sie gleich der Bezugsspannung in der Leitung 188 ist. An diesem Punkt treibt der Differentialverstärker 186 den Hauptausgangssteuertransistor 214, der somit eingeschaltet wird. Hierdurch wird die Basistreiberspannung bei den Ausgangsstufen 216-228 beseitigt, so daß diese Stufen abgeschaltet werden. Nunmehr liefert die Schaltung 182 das Ausgangssignal 1, um anzuzeigen, daß die Spannung innerhalb der erforderlichen Grenzen liegt.
Nunmehr kommt die Hysterese-Regelschaltung 230 zur Wirkung. Während sich die zugeführte Spannung erhöhte, war der Transistor 236 der Hysterese-Regelschaltung 230 eingeschaltet. Wenn dies der Fall ist, scheint der Widerstandswert des Widerstandes 202 kleiner zu sein als derjenige Wert, der vorhanden ist, wenn der Transistor 236 abgeschaltet ist.
Der Punkt, an dem der Hauptausgangssteuertransistor 214 eingeschaltet wird, ist der Punkt, an dem der Hysterese-Regeltransistor 236 abgeschaltet wird. Das Abschalten des Hysterese-Regeltransistors 236 führt zu einem kleinen Spannungssprung in der Leitung 190, durch den der Differentialverstärker 186 in dem Zustand verriegelt wird, bei dem er den Hauptausgangstransistor 214 im eingeschalteten Zustand hält.
Die Stromversorgungsschaltung 182 bleibt in diesem Zustand stabil, wobei der Hauptausgangssteuertransistor 214 eingeschaltet ist, während die Ausgangstreiberstufen 216-228 abgeschaltet bleiben, bis die Spannung von dem Wert +5 V bis unterhalb eines Schwellenwertes zurückgeht, der durch die an der Leitung 190 liegende Spannung bestimmt wird.
Sobald die Spannung in der Leitung 190 die Bezugsspannung in der Leitung 188 unterschreitet, d. h., wenn die Spannung beim Versagen der Stromzufuhr unter 5 V zurückgeht, schaltet der Differentialverstärker 186 den Hauptausgangssteuertransistor 214 ab, wodurch die Ausgangstreiberstufen 216-228 eingeschaltet werden.
Da der Hysterese-Regeltransistor 236 während des Spannungsabfalls abgeschaltet war, muß die dem Eingang der Schaltung 182 zugeführte Spannung etwas weiter zurückgehen, als bis zu dem Punkt, an dem die Schaltung 182 fühlte, daß die Spannung während des Einschaltstadiums innerhalb der erforderlichen Grenzen lag.
Diese Differenz oder Hysterese wird verwendet, um zu verhindern, daß ein bei der zugeführten Spannung von 5 V vorhandenes Rauschen bei der Schaltung zu irgendwelchen Schwingungen führt, die fälschlicherweise anzeigen, daß die Stromzufuhr versagt.
Die Spannungsüberwachungsschaltung 182 nach Fig. 25 ermöglicht ein sehr genaues Fühlen der beiden genannten Spannungen, mittels welcher der jeweilige Zustand nachgewiesen wird, d. h., ob das Ausgangssignal eine 1 oder eine 0 ist.
Damit die beiden Spannungen sehr genau gefühlt werden können, muß es bei der Schaltung 182 möglich sein, anfängliche Toleranzen bei den verschiedenen Schaltungselementen sowie während des Betriebs auftretene Temperaturänderungen zu kompensieren. Bei der Schaltung 182 bildet die Zenerdiode 192 das einzige kritische Schaltungselement, bei dem eine Kompensation infolge seiner anfänglichen Toleranzen erforderlich ist, und diese Kompensation wird dadurch bewirkt, daß der Widerstand 198 entsprechend gewählt wird.
Diese Temperaturkompensation wird dadurch ermöglicht, daß die Zenerdiode 192 eine aktive und nicht etwa eine passive Zenerdiode ist. Ferner wird eine wirksame Temperaturkompensation dadurch erreicht, daß die beiden Transistoren des Differentialverstärkers 186 einander angepaßt sind, und daß die Widerstände 198, 200 und 202 als Metallfilmwiderstände ausgebildet sind.
Zu jedem Zugang 43 gehören mehrere Verbindungsleitungen, die in Fig. 19 und 20 insgesamt mit 179 bezeichnet sind. Hierzu gehören die einzelnen Leitungen 201, von den 16 die Eingangsschiene bzw. die I-Schiene bilden, ferner Vorrichtungsadressenleitungen 203, Ausgangsschienenleitungen 205, von denen 16 vorhanden sind, eine Eigentumsübernahmeleitung 207 sowie allgemeine Leitungen 209, die z. B. Paritätssignale übertragen, die T-Schiene und weitere ähnliche Leitungen, die im Hinblick auf die verwendete Hardware erforderlich sind.
Die Leitungen 201, 203, 205, 207 und 209 entsprechen den mit den gleichen Bezeichnungen versehenen Leitungen nach Fig. 21, wo die gemeisame Schnittstellenlogik in einem Blockschaltbild dargestellt ist. Jedoch sind zwei Sätze jeder dieser Leitungen nach Fig. 21 vorhanden, da die gemeinsame Schnittstellenlogik 181 jedem der beiden Zugänge 43 eines Geräteanschlusses 41 zugeordnet ist.
Gemäß Fig. 21 gehört zu der gemeinsamen Schnittstellenlogik 181 die auch in Fig. 19 dargestellte Eigentumsverriegelung 185, mittels welcher die logische Verbindung zwischen der gemeinsamen Schnittstellenlogik 181 und einem Zugang 43 bestimmt wird, von dem das Eigentumübernahmesignal über die Leitung 207 empfangen worden ist.
Wie erwähnt, wird das Eigentumübernahmesignal durch die Zugangshardware aus einem gemäß Fig. 18 in der T-Schiene erscheinenden Adressen- und Befehlsladesignal mittels eines bestimmten Operationscodes im Befehlsfeld der D-Schiene abgeleitet. Wenn der Zugang gemäß Fig. 18 das Signal LAC über die T-Schiene von dem Kanal empfängt, prüft die Zugangslogik das Befehlsfeld, d. h. die 6 oberen Bits, aus der D-Schiene. Wenn das Befehlsfeld einen Code enthält, der einen Eigentumsübernahmebefehl angibt, erzeugt die Zugangshardware ein Signal, um die Eigentumsverriegelung 185 zu setzen, damit der Zugang mit der gemeinsamen Schnittstellenlogik und dann mit dem Steuerteil des Geräteanschlusses verbunden wird. Wenn das Befehlsfeld einen Löschbefehl angibt, liefert die Zugangshardware ein Signal zum Löschen der Freigabeeinrichtung des Zugangs. Dieser Vorgang spielt sich nur dann ab, wenn das Vorrichtungsadressenfeld in der D-Schiene mit den Vorrichtungsadressenschaltleitungen des Zugangs übereinstimmt, und wenn während des Befehls kein Paritätsfehler nachgewiesen wird. Mit anderen Worten, wenn bei dem Signal LAC ein Paritätsfehler nachgewiesen wird, werden keine Befehle ausgeführt, was auch für den Eigentumsübernahmebefehl, den Löschbefehl usw. gilt.
Auf diese Weise erhält der Eingabe-/Ausgabekanal 109, der den Eigentumsübernahmebefehl ausgibt, die Kontrolle über den Geräteanschluß 41, und der andere Zugang 43 wird logisch abgeschaltet. Das Eigentumsübernahmesignal kann auch ein harte Löschung des inneren Zustandes der Steuereinrichtung bewirken.
Der Zustand der Eigentumsverriegelung 185 nach Fig. 21 bestimmt auch, welcher Zugang Informationen durch den Multiplexer 211 leiten kann. Sobald die Eigentumsverriegelung 185 in einer bestimmten Richtung gesetzt ist, verbleibt sie in diesem Zustand, bis von dem anderen Zugang ein Eigentumsübernahmebefehl empfangen wird. Das Erscheinen eines Signals in der Ein-Ausgabe-Rücksetzleitung IORST bewirkt ebenfalls, daß das Eigentum an den anderen Zugang übergeben wird, nachdem der innere Zustand des Geräteanschlusses gelöscht worden ist.
Steuersignale werden durch den Zustand der Eigentumsverriegelung 185 sowie von dem betreffenden Zugang 43 gewählt und durch den Multiplexer 211 dem Steuerteil 187 eines Geräteanschlusses über einen Satz von Steuerleitungen 215 zugeführt. Daten werden wahlweise dem betreffenden Zugang 43 über Leitungen 205 entnommen und dem Datenregister 213 eingegeben und der Steuereinrichtung gemäß Fig. 21 über eine Ausgabeschiene 217 dargeboten.
Einige der Steuerleitungen 215, und zwar die Leitungen 215A, werden benutzt, um den Multiplexer 220 zu steuern, wenn Informationen aus der Steuereinrichtung gewählt werden, die über Leitungen 219 übermittelt werden, um über die Eingabeschiene 201 zu den Zugängen 43 (Fig. 20) zurückgeführt zu werden und schließlich zu dem Kanal 109 eines Prozessormoduls 33 zu gelangen. Eine Leitung 221 führt die Vorrichtungsadresse von dem betreffenden Zugang 43 zu der Eingabeschiene 201 und von dort aus zu dem Eingabe-/Ausgabekanal 109 zurück.
Der Datenpuffer 189 nach Fig. 19 ist in Fig. 22 mit weiteren Einzelheiten dargestellt.
Gemäß der Erfindung weisen viele der Geräteanschlüsse 41 einen Puffer für mehrere Wörter auf, der Informationen mit einer relativ niedrigen Geschwindigkeit von einem Peripheriegerät aufnimmt und diese Informationen dann mit oder nahezu mit der Speichergeschwindigkeit zu dem Prozessormodul überträgt, um eine maximale Ausnutzung der Bandbreite des Kanals zu ermöglichen.
Bezüglich des Aufbaus der Puffer ist es wichtig, daß die Geräteanschlüsse 41 in der Lage sind, miteinander zusammenzuarbeiten, um Zugang zu dem Kanal 109 zu erhalten, damit fehlerhafte Betriebszustände vermieden werden. Damit die Geräteanschlüsse 41 einwandfrei zusammenarbeiten können, müssen die Puffer 189 für mehrere Wörter nach bestimmten Grundsätzen ausgebildet sein.
Auf diese Grundsätze wird im folgenden näher eingegangen.
Wenn ein Geräteanschluß einen Wiederanschluß an den Kanal 109 anfordert, muß eine ausreichende restliche Puffertiefe zur Verfügung stehen, damit alle Geräteanschlüsse 41, denen eine höhere Priorität zukommt, und ein Geräteanschluß mit einer niedrigeren Priorität bedient werden können, und damit die Wiederanschluß-Wartezeit bei der Wiederanschlußanforderung auftreten kann, ohne die noch verbleibende Tiefe des Puffers zu erschöpfen. Gemäß Fig. 23 wird dies als "Pufferschwelle" T bezeichnet.
Nachdem der Puffer bedient worden ist, muß er genügend lange warten, um eine Bedienung aller Geräteanschlüsse 41 mit niedrigerer Priorität zu ermöglichen, bevor eine weitere Wiederanschlußanforderung gestellt wird. Dies wird im folgenden als "Rückhaltung" (holdoff) bezeichnet. Gemäß Fig. 23 ist die Puffertiefe D die Summe der Rückhaltetiefe und der Schwellwerttiefe.
Die Rückhaltetiefe und die Schwellwerttiefe sind eine Funktion mehrerer variabler Größen; hierzu gehören die Vorrichtungsgeschwindigkeit, die Kanalgeschwindigkeit, die Speichergeschwindigkeit, die Wiederanschlußzeit, die Anzahl der Geräteanschlüsse mit höherer Priorität an der Ein-Ausgabe-Schiene, die Anzahl der Geräteanschlüsse von niedrigerer Priorität an dieser Schiene und die maximal zulässige Datenbündellänge.
Einem Geräteanschluß von hoher Priorität an der Ein-Ausgabe-Schiene arbeitet mit einer größeren Anzahl von Geräteanschlüssen von niedrigerer Priorität an der gleichen Schiene zusammen als ein anderer Geräteanschluß mit geringer Priorität an der gleichen Ein-Ausgabe-Schiene, und daher benötigt der Geräteanschluß mit der höheren Priorität eine größere Rückhaltetiefe als der Geräteanschluß mit niedrigerer Priorität. Entsprechend benötigt ein Geräteanschluß mit niedriger Priorität an einer Ein-Ausgabe-Schiene eine größere Schwellwerttiefe als ein Geräteanschluß von höherer Priorität. Bei einem Geräteanschluß ist der Puffer 189 so ausgebildet, daß Vorteil aus der Tatsache gezogen werden kann, daß sich bei einer Vergrößerung der erforderlichen Rückhaltung die benötigte Schwellenwerttiefe verringert, und daß eine Vergrößerung der benötigten Schwellenwerttiefe zu einer Verringerung der erforderlichen Rückhaltetiefe führt. Zu diesem Zweck wird die Beanspruchung, bei der eine Wiederanschlußanforderung gestellt wird, variabel gemacht, wobei sich die tatsächliche Einstellung nach den Merkmalen der Geräteanschlüsse mit höherer bzw. niedrigerer Priorität bei einer bestimmten Ausbildung des Ein-Ausgabe-Kanals richtet. Somit entspricht die Puffertiefe dem Maximum der Schwellenwerttiefe für den schlimmsten Fall oder der Rückhaltetiefe für den schlimmsten Fall und nicht etwa der Summe dieser beiden Größen. Daher kann man die Puffertiefe auf einen Mindestwert verkleinern und die zum Füllen oder Leeren des Puffers benötigte Zeit abkürzen.
In Fig. 23 sind einige dieser Parameter graphisch dargestellt, wobei die Zeit auf der waagerechten Achse und die Wörter im Puffer auf der senkrechten Achse aufgetragen sind, um einen Ausgabevorgang darzustellen.
Beginnt man an dem Punkt D im linken oberen Teil von Fig. 23 und nimmt man an, daß der Puffer bis zur vollen Puffertiefe gefüllt ist, werden Daten zu einem Geräteanschluß mit einer Geschwindigkeit übermittelt, die durch die Linie mit dem Anstieg -RD angedeutet ist, und diese Datenübermittlung setzt sich fort, ohne daß ein Wiederanschlußsignal erzeugt wird, bis sich die Puffertiefe bis auf die Schwellwerttiefe verringert hat, die in Fig. 23 dem Schnittpunkt 223 zwischen der Linie mit dem Anstieg -RD und der Schwellwerttiefenlinie T entspricht.
An diesem Punkt wird an den Kanal 109 die Wiederanschlußaufforderung gestellt, wie es auf der waagerechten Zeitachse von Fig. 23 angegeben ist.
Die Übermittlung von Daten aus dem Puffer wird mit der Geschwindigkeit fortgesetzt, die der Linie mit dem Anstieg -RD entspricht, und die Aufforderung wird durch Geräteanschlüsse mit höherer Priorität zurückgehalten, und zwar bis zu dem Punkt 225, an dem die Aufforderung durch den Kanal 109 anerkannt wird, woraufhin der Ein-Ausgabe-Kanal mit seiner Wiederanschlußfolge für diesen Geräteanschluß beginnt.
An dem Punkt 227 ist das erste Datenwort durch den Kanal 109 zu dem Puffer 189 des Geräteanschlusses übermittelt worden, und dann überträgt der Kanal 109 Datenwörter mit einer Geschwindigkeit, die der Linie mit dem Anstieg RC entspricht, wobei diese Datenwörter zu dem Puffer 189 gelangen.
Gleichzeitig fährt der Geräteanschluß 41 fort, Datenwörter aus dem Puffer mit der Geschwindigkeit -RD zu übertragen, so daß die Gesamtgeschwindigkeit der Eingabe in den Puffer 189 der Linie mit dem Anstieg RC-RD entspricht, bis der Puffer an dem Punkt 229 erneut gefüllt ist. Sobald der Puffer gefüllt ist und sich der Geräteanschluß von dem Kanal 109 abschaltet, wird die Datenübertragung mit der Geschwindigkeit fortgesetzt, die gemäß Fig. 23 der Linie mit dem Anstieg -RC entspricht.
In Fig. 23 entspricht die Strecke tr der Zeit, die zum Aufrufen und Wählen des Geräteanschlusses und zum Übertragen des ersten Wortes benötigt wird. Hierauf wird im folgenden anhand von Fig. 16 erneut eingegangen.
In Fig. 23 bezeichnet der Buchstabe B die Strecke, die der Dauer eines Datenbündels entspricht. Diese Datenbündelzeit ist ein dynamischer Parameter. Die Länge eines bestimmten Bündels richtet sich nach der Übertragungsgeschwindigkeit des Geräteanschlusses, der Übertragungsgeschwindigkeit des Kanals, der Anzahl von Geräteanschlüssen, bei denen Übertragungen ablaufen, sowie der Kanalwiederanschlußzeit. Die maximale Zeit, die für ein Bündel zugelassen wird, wird so gewählt, daß sich eine möglichst kleine erforderliche Puffertiefe ergibt, wobei hohe Übertragungsgeschwindigkeiten möglich sind, und wobei die Anzahl der Geräteanschlüsse berücksichtigt ist, die gleichzeitig eine Übertragung bewirken können.
Fig. 22 ist ein Blockschaltbild einer bestimmten Ausführungsform eines erfindungsgemäßen Puffers 189 zur Erfüllung der anhand von Fig. 23 geschilderten Erfordernisse bezüglich der Rückhaltetiefe und der Schwellenwerttiefe.
Gemäß Fig. 22 gehören zu dem Puffer 189 ein Eingabepuffer 231, ein Pufferspeicher 233, ein Ausgabepuffer 235, ein Eingabezeiger 237, ein Ausgabezeiger 239, ein Multiplexer 241, eine anhand von Fig. 26 näher zu beschreibende Puffersteuerlogik 243, ein an letztere angeschlossener Multiplexer 245 und ein Beanspruchungszähler 247.
Ferner führen gemäß Fig. 22 zwei Gruppen 217 und 249 von Dateneingabeleitungen zu dem Eingabepuffer 231.
Zu der Gruppe 249 gehören sechzehn Dateneingabeleitungen.
Die andere Gruppe 217 setzt sich aus sechzehn Ausgabeschienenleitungen zusammen.
Die eine oder andere Gruppe von Eingabeleitungen führt jeweils Eingangssignale über den Puffer 231 und eine Gruppe von Leitungen 251 dem Pufferspeicher 233 zu. Hierbei sind sechzehn Leitungen 251 vorhanden.
Die Daten werden dem Pufferspeicher 233 entnommen und dem Ausgabepuffer 235 über sechzehn Leitungen 253 zugeführt.
Der Ausgabepuffer 235 übermittelt die Daten gemäß Fig. 19 und 21 zurück zu der gemeinsamen Schnittstellenlogik 181 über eine Gruppe von sechzehn Leitungen 219 sowie zu den in Fig. 1 dargestellten Vorrichtungen 45, 47 bzw. 49, 51 und 53 über eine Gruppe von sechzehn Leitungen 255.
Der Eingabezeiger 237 und der Ausgabezeiger 239 arbeiten mit dem Multiplexer 241 in der nachstehend beschriebenen Weise zusammen.
Werden Daten aus dem Eingabepuffer 231 in den Pufferspeicher 233 überführt, ist der Eingabe-Zeiger 237 mit dem Pufferspeicher 233 über den Multiplexer 241 verbunden, um die Stelle zu bestimmen, an der das Wort geschrieben wird.
Werden Daten aus dem Pufferspeicher 233 in den Ausgabepuffer 235 überführt, ist der Ausgabezeiger 239 mit dem Pufferspeicher 233 über den Multiplexer 241 verbunden, um die Stelle zu bestimmen, der das Wort entnommen wird.
Die Aufgabe der Puffersteuerlogik 243 nach Fig. 22 und 26 besteht darin, die Beanspruchung des Puffers 189 zu verfolgen. Diese Beanspruchung wird durch den Füllungs- oder Leerungsgrad des Puffers in Verbindung mit der Richtung der Übertragung bezüglich des Prozessormoduls (Eingabe oder Ausgabe) bestimmt. Die Beanspruchung nimmt zu, wenn der Geräteanschluß Zugriff zu dem Puffer nimmt, und sie verringert sich, wenn der Zugriff zu dem Puffer durch den Kanal erfolgt.
Bei der Ausführungsform nach Fig. 22 und 26 mißt der Beanspruchungszähler 247 die zunehmende Beanspruchung von 0 bis 15 an einem Eingang und die abnehmende Beanspruchung von 0 bis 15 an einem Ausgang. Bei einer hier nicht dargestellten anderen Ausführungsform würde bei der Puffersteuerlogik zusätzlich die Übertragungsrichtung berücksichtigt, so daß zwei neue Leitungen Zugriff zu den Zeigern 237 und 239 nehmen würden und der Beanspruchungszähler stets eine zunehmende Beanspruchung messen würde.
Gemäß Fig. 22 werden einer Kanalanforderungsleitung 215 (siehe auch Fig. 21) und einer Geräteanschluß-Anforderungsleitung 257, die mit dem Steuerteil 187 des Geräteanschlusses in Verbindung steht, Signale zugeführt, um einen Zugriff zu dem Pulver 189 anzuzeigen.
Der Multiplexer 245 wählt eine dieser Leitungen als Aufforderung zur Vergrößerung des Füllungsgrades des Puffers, und er wählt die andere Leitung als Aufforderung zur Verringerung des Füllungsgrades des Puffers auf der Basis der Übertragungsrichtung (Eingabe oder Ausgabe) gegenüber dem Prozessormodul.
Die zur Vergrößerung des Füllungsgrades des Puffers gewählte Leitung wird auch benutzt, um Daten aus den betreffenden Datenleitungen 249 oder 217 nach Fig. 22 über die Leitung 259 dem Eingabepuffer 231 einzugeben.
Der Kanal und der Geräteanschluß können gleichzeitig Zugriff zu dem Puffer 189 nehmen, und die Puffersteuerlogik 243 erfüllt diese Forderungen nacheinander. Hierbei wählt die Puffersteuerlogik 243 eine der Leitungen zum Zweck der Bedienung, während die andere Leitung unbedient bleibt, bis die Puffersteuerlogik die erste Aufforderung erfüllt hat, woraufhin sie die andere Aufforderung erfüllt.
Die Erfüllung einer Aufforderung durch die Puffersteuerlogik 243 spielt sich in der nachstehend beschriebenen Weise ab.
Zunächst ermittelt die Logik die Richtung der Übertragung (Eingabe oder Ausgabe) beim dem Pufferspeicher 233, und sie führt ein Signal der an den Multiplexer 241 angeschlossenen Leitung 261 zu, um nach Bedarf über den Multiplexer 241 den Eingabezähler 237 oder den Ausgabezähler 239 zu wählen.
Zweitens führt bei einer Ausgabeanforderung die Puffersteuerlogik 243 der Leitung 263 ein Signal zu, um drei Vorgänge durchzuführen.
  • A. Das Wort wird aus dem Eingabepuffer 231 dem Pufferspeicher 233 an der Stelle eingegeben, die durch den Eingabezähler 237 und den Multiplexer 241 bestimmt wird.
  • B. Der Beanspruchungszähler 247 wird weitergeschaltet.
  • C. Die Puffersteuerlogik 243 schaltet den Eingabezähler 237 weiter.
Drittens läßt bei einer Ausgabeübertragung die Puffersteuerlogik 243 ein Signal in der Leitung 265 erscheinen, um die nachstehenden drei Vorgänge durchzuführen.
  • A. Die Puffersteuerlogik 243 gibt dem Ausgabepuffer 235 das Wort ein, das dem Pufferspeicher 233 entnommen und durch den Ausgabezähler 239 und den Multiplexer 241 bestimmt wird.
  • B. Die Puffersteuerlogik 243 schaltet den Beanspruchungszähler 247 abwärts.
  • C. Die Puffersteuerlogik 243 schaltet den Ausgabezähler 239 weiter.
Der Beanspruchungszähler 247 bestimmt, ob der Puffer 189 gefüllt ist (D), oder ob er sich an der Schwellenwerttiefe T befindet, wie es in Fig. 22 bei den Ausgabeleitungen angegeben ist.
Das Ausgangssignal des Beanspruchungszählers 247 wird decodiert, und jeder beliebige der decodierten Werte kann benutzt werden, um anzugeben, daß sich der Puffer an der Schwellenwerttiefe befindet. Bei der bevorzugten Ausführungsform werden Schaltdrähte verwendet, um jeweils einen von sechzehn möglichen Beanspruchungswerten zu wählen, und an den Kanal 109 wird eine Wiederanschlußaufforderung gerichtet, wenn die Beanspruchung des Puffers 189 diesen Wert erreicht.
Der Steuerteil 187 des Geräteanschlusses benutzt diese drei Signale, die den Angaben in Fig. 23 entsprechen, um Wiederanschlußaufforderungen und Abschaltaufforderungen über die betreffenden Leitungen 145 bzw. 159 nach Fig. 14 und 12 zu stellen.
Das Eingabestoppsignal STI, das durch die Leitung 159 übertragen wird und in Fig. 14 und 12 dargestellt ist, steht in Beziehung zur Puffertiefe D, dem Füllungs- oder Leerungszustand des Puffers und der Übertragungsrichtung; das Eingabe-Wiederanschlußsignal RCI in der Leitung 145 nach Fig. 14 und 12 steht in Beziehung zu der Schwellenwert-Tiefenanzeige T des Beanspruchungszählers 247 nach Fig. 22. Somit erscheint das Eingabestoppsignal STI, wenn der Puffer 189 den Zustand der geringsten Beanspruchung (bei der Ausgabe gefüllt bzw. der Eingabe leer) erreicht. Das Signal STI meldet dem Kanal 109, daß der Geräteanschluß 41 beabsichtigt, die Datenbündelübertragung zu beenden. Wenn der Puffer seinen Schwellenwert durchläuft, läßt er das Signal RCI in der Leitung 145 erscheinen, um dem Kanal 109 anzuzeigen, daß der Puffer ein Datenbündel zu übertragen wünscht.
Fig. 26 zeigt Einzelheiten des Multiplexers 245, der Puffersteuerlogik 243 und des Beanspruchungszählers 247, die zu dem Puffer 189 nach Fig. 22 gehören.
Gemäß Fig. 26 gehören zu dem Mulitplexer 245 zwei Sätze von Gattern 245A und 245B, Anforderungs-Kippschaltungen 267A und 267B, eine Taktkippschaltung 269, Anforderungs-Synchronisationskippschaltungen 271A und 271B, eine Prioritätsauflösungsgatter 273 und Anforderungs-Durchführungsgatter 275A und 275B.
Der Beanspruchungszähler 247 weist einen Zählerteil 247A und einen Decodiererteil 247B auf, wie es aus Fig. 26 ersichtlich ist.
Gemäß Fig. 26 haben die beiden Sätze von Gattern 245A und 245B das in der Leitung 215 erscheinende Kanalanforderungssignal, das in der Leitung 257 erscheinende Geräteanschluß-Anforderungssignal und die Lese- und Schreibsignale verwendet, um zu bestimmen, welcher Kanal bzw. welcher Geräteanschluß dem Puffer 189 Daten eingibt bzw. ihm Daten entnimmt.
Die Anforderungskippschaltungen 267A und 267B speichern die Anforderungen, bis die Steuerlogik der Anforderung entsprochen hat.
Die Taktkippschaltung 269 erzeugt ein zweiphasiges Taktsignal, das durch die Anforderungs-Synchronisationskippschaltungen 271A und 271B sowie die Anforderungs-Ausführungsgatter 275A und 275B benutzt wird.
Die Anforderungs-Synchronisationskippschaltungen 271A und 271B synchronisieren die Anforderung mit der Taktgeneratorkippschaltung 269 und stabilisieren die Anforderung zur Durchführung.
Das Prioritätsauflösungsgatter 273 wählt jeweils eine der Anforderungen zur Durchführung und veranlaßt, daß die andere Anforderung zurückgehalten wird.
Die Anforderungs-Durchführungsgatter 275A und 275B führen die Anforderungen in Abhängigkeit von der synchronisierten Anforderung durch.
Jedes Ausgangssignal in den Leitungen 263 und 265 erfüllt die weiter obengenannten Aufgaben (Aufwärts- und Abwärtsschalten des Beanspruchungszählers, Aktualisieren des Pufferspeichers oder des Ausgabepuffers und Aktualisieren des Eingabe- bzw. des Ausgabezählers).
Außerdem löscht jedes Signal die zugehörige Anforderungskippschaltung gemäß Fig. 26 über die Leitungen 277A und 277B.
Wie erwähnt, veranschaulichen Fig. 15, 16 und 17 die drei Betriebsfolgen des Ein-Ausgabesystems.
Beim Betrieb des Ein-Ausgabe-Systems gehört zu der normalen Datenübermittlung zwischen einem Prozessormodul 33 und einem bestimmten Geräteanschluß bzw. einer Vorrichtung, z. B. einer Platte 45 nach Fig. 1, eine Folge EIO nach Fig. 15 zur Einleitung der Übermittelung.
Der EIO-Befehl wählt den betreffenden Geräteanschluß 41 und die Vorrichtung, und er bestimmt die durchzuführende Operation.
Der Geräteanschluß 41 leitet den Ein-Ausgabe-Vorgang zwischen sich und der betreffenden Vorrichtung ein.
Der Geräteanschluß 41 schließt sich periodisch wieder an den Kanal 109 an und übermittelt Daten zwischen sich und dem Kanal. Dieser periodische Wiederanschluß kann dazu dienen, Daten vom Kanal zum Geräteanschluß oder vom Geräteanschluß zum Kanal zu übermitteln.
Ist die Datenübermittlung abgeschlossen, unterbricht der Geräteanschluß 41 den Betrieb der Zentraleinheit 105, die dadurch reagiert, daß sie eine IIO- oder eine HIIO-Folge ausgibt.
Die IIO-Folge bestimmt die Identität der die Unterbrechung bewirkenden Vorrichtung und die Bedingungen, unter denen die Übertragung zu Ende geführt wird.
Die HIIO-Folge ähnelt der IIO-Folge, doch wird sie in Abhängigkeit von einer Ein-Ausgabe-Unterbrechung von hoher Priorität ausgegeben.
Der Ein-Ausgabe-Ausführungsbefehl EIO der Zentraleinheit wird durch die aus Fig. 15 ersichtlichen Zustandsänderungen der T-Schiene definiert.
Bei dem am linken Ende von Fig. 15 dargestellten ersten Zustand NOP handelt es sich um den Ruhe- oder Leerlaufzustand. Die übrigen Zustände sind die gleichen wie die in Fig. 18 durch Abkürzungen bezeichneten, d. h., es handelt sich um den Befehl "Adresse und Befehl laden" (LAC), den Befehl "Parameter laden" (LPRM), den Befehl "Zustand der Vorrichtung lesen" (RDST), den Befehl "Abschalten" (DSEL) und den Befehl "Abbrechen" (ABTI).
Ebenso wie bei den in Fig. 6, 7 und 8 dargestellten Zustandsänderungen bezeichnen die voll ausgezogenen Pfeile jeweils eine Zustandsänderung, und ein gestrichelter Pfeil bezeichnet einen Zustand, der eintreten muß, bevor eine Zustandsänderung stattfinden kann.
Der EIO-Befehl und seine Durchführung nach Fig. 15 stehen unter der direkten Steuerwirkung des Mikroprozessors 113 (Fig. 12) und der Zentraleinheit 105.
Das Einleitungssignal der Zentraleinheit wird der Zustandsmaschine nach Fig. 15 entsprechend dem gestrichelten Pfeil 117 zugeführt; das Einleitungssignal wird nur aufgenommen, wenn sich die T-Schiene im Leerlaufzustand befindet.
Sobald das Einleitungssignal der Zentraleinheit zugeführt wird, geht die T-Schiene aus dem Leerlaufzustand NOP in den Zustand LAC über.
Beim LAC-Zustand wird ein Wort dem oberen Ende des Registerstapels 112 der Zentraleinheit 105 (Fig. 12) entnommen und gemäß Fig. 14 der D-Schiene 161 zugeführt.
Wie erwähnt, wird dieses Wort dazu benutzt, einen bestimmten Geräteanschluß 41 und eines der Peripheriegeräte 45, 47, 49, 51 und 53 nach Fig. 1 zu wählen; außerdem dient dieses Wort dazu, die durchzuführende Operation zu benennen.
Beim nächsten T-Schienenzyklus geht die T-Schiene in den Zustand LPRM über.
Bei diesem Zustand zum Laden des Parameters wird das Wort, das sich gerade unter dem oberen Ende des Registerstapels 112 der Zentraleinheit 105 befindet, gemäß Fig. 14 durch den Eingabe-/Ausgabekanal 109 der T-Schiene 161 zugeführt und zu dem Geräteanschluß 41 weitergeleitet, der während des vorausgegangenen LAC-Zustandes gewählt wurde.
Am Ende des in Fig. 15 durch einen gestrichelten Pfeil bezeichneten Austauschzyklus geht die T-Schiene in den Zustand RDST über. Bei diesem Zustand meldet der Geräteanschluß 41 seinen Zustand, d. h den Zustand einer bestimmten Vorrichtung, die gewählt worden ist, und zu dem der den Zustand der Vorrichtung bezeichneten Satz von Signalen gehört, zurück, und die Signale werden dem oberen Ende des Registerstapels 112 der Zentraleinheit 105 eingegeben.
Während des Parameterlade- und Vorrichtungslesezustandes können verschiedene Fehler aufgetreten sein. Hierzu gehören ein Paritätsfehler, der Ablauf des Austausches sowie eine Anzeige eines bei dem Zustandswort vorhandenen Fehlers. Ist tatsächlich ein Fehler aufgetreten, geht die T-Schienen-Maschine 143 nach Fig. 13 aus dem Zustand RDST in den Zustand ABTI (Befehl abbrechen) über.
Der Zustand ABTI veranlaßt den Geräteanschluß 41, die Informationen LAC und LPRM zu ignorieren, die ihm vorher durch den Ein-Ausgabe-Kanal 109 zugeführt worden sind, und dann kehrt die T-Schiene bzw. der Kanal in den Leerlaufzustand NOP zurück.
Wenn jenseits des Zustandes RDST kein Fehler nachgewiesen wurde, wie es in Fig. 15 durch den gestrichelten Pfeil 114 angedeutet ist, geht die T-Schiene in den Abschaltzustand DSEL über.
Befindet sich die T-Schiene im Abschaltzustand, löscht der Geräteanschluß 41 seine Wählverriegelungseinrichtung 173, und er reagiert auf den ihm erteilten Befehl, der ihm während des Zustandes LAC zugeführt wurde, und die T-Schiene kehrt in den Leerlaufzustand NOP zurück.
Beim Betrieb des Ein-Ausgabe-Systems können mehrere Vorrichtungsanforderungssignale asynchron auftreten. Beispielsweise kann nach einer EIO-Folge ein Wiederanschlußsignal erzeugt werden, um zu fordern, daß der Kanal Daten zum Geräteanschluß überträgt. Ferner kann der Geräteanschluß 41 unter verschiedenen Bedingungen ein Signal einer Unterbrechungsanforderungsleitung zuführen, z. B. um den Abschluß einer EIO-Folge oder einen ungewöhnlichen Zustand bei einem Peripheriegerät zu melden.
Die Vorrichtungsanforderungsleitungen sind allen Geräteanschlußzugängen 43 gemeinsam, die an eine bestimmte Ein-/Ausgabeleitung 39 angeschlossen sind.
Der Kanal 109 spricht auf Wiederanschlußanforderungen an, die über die Leitung RCI bzw. 145 nach Fig. 14 gestellt werden, und die Zentraleinheit 105 spricht auf Anforderungen an, die über die Leitung LIRQ bzw. 147 nach Fig. 14 gestellt werden, und zwar mit einer IIO-Folge, sowie auf eine über die Leitung HIRQ bzw. 149 eintreffende Anforderung mit einer HIIO-Folge.
Der erste Vorgang, den der Kanal 109 oder die Zentraleinheit 105 in Abhängigkeit von einem Vorrichtungsanforderungssignal durchführt, besteht in der Bestimmung der Identität des Geräteanschlusses 41 mit der höchsten Priorität, von dem die Anforderung stammt. Mit anderen Worten, dem Kanal 109 können gleichzeitig Anforderungen von mehreren Geräteanschlüssen 41 aus zugeführt werden, und der Kanal wählt dann einen bestimmten Geräteanschluß entsprechend einem vorher festgelegten Prioritätsplan.
Bei einer bestimmten Ausführungsform der Erfindung können an einen einzigen Kanal 109 bis zu 32 Geräteanschlüsse 41 angeschlossen sein.
Die 32 Geräteanschlüsse bilden zu Abrufzwecken eine Sternschaltung, bei der die 16-Bit-Datenschiene 161 verwendet wird. Eine zusätzliche Leitung 151 (Fig. 14) dient dazu, die 32 Geräteanschlüsse in zwei Gruppen zu je 16 Anschlüssen zu unterteilen. Einer Gruppe von 16 Geräteanschlüssen wird Priorität gegenüber der anderen Gruppe zuerkannt; außerdem sind die 16 Geräteanschlüsse jeder Gruppe nach ihrer Priorität geordnet. Der Geräteanschluß, der auf das Bit 0 aus der D-Schiene während einer Abruffolge anspricht, hat die höchste Priorität innerhalb eines Rangs, und dem Geräteanschluß, der auf das Bit 15 anspricht, kommt die niedrigste Priorität zu.
Einleitend sei erwähnt, daß bei dem nachstehend beschriebenen Abrufvorgang die in Fig. 16 und 17 dargestellten Zustandsbeschreibungen unter Einschluß desjenigen Austausches eine Rolle spielen, der während des Wählzustandes SEL abläuft.
Gemäß Fig. 16 und 17 setzt der Kanal 109 die Rangleitung auf Null und präsentiert dann gemäß Fig. 1 99999 00070 552 001000280000000200012000285919988800040 0002002740056 00004 998806 die T-Schienen-Funktion RPOL, wenn die Reaktion auf eine Wiederanschlußanforderung erfolgt, während die Zentraleinheit 105 gemäß Fig. 17 eine T-Schienen-Funktion LPOL präsentiert, wenn die Zentraleinheit mit einer IIO-Folge reagiert, oder eine T-Schienen-Funktion HPOL, wenn die Zentraleinheit mit einer HIIO-Folge reagiert. Bezüglich des Abrufvorgangs besteht hierin der einzige größere Unterschied zwischen Fig. 16, wo die Reaktion des Kanals dargestellt ist, und Fig. 17, die für das Ansprechen der Zentraleinheit gilt.
Gemäß Fig. 16 und entsprechend der Reaktion des Kanals 109 auf das Erscheinen eines Signals in der RCI-Leitung 145 nach Fig. 14 ist zu bemerken, daß alle Geräteanschlüsse, bei denen eine Wiederanschlußanforderung ansteht, und die auf den Rang Null ansprechen würden, der D-Schiene ein Bit zuführen. Mit anderen Worten, alle diese Geräteanschlüsse besetzen bei der D-Schiene 161 eine Leitung, die ihrer Priorität innerhalb der Gruppe entspricht.
Gemäß Fig. 13 überträgt der Kanal 109 das Signal aus der D-Schiene zu dem Prioritätsauflösungsregister 135, dessen Ausgangssignal bestimmt, welchem Geräteanschluß die höchste Priorität entsprechend dem weiter oben behandelten Schema zukommt, und das das entsprechende Bit zur D-Schiene 161 zurückleitet, wenn die angeschlossenen Geräteanschlüsse ein Bit im Rang Null liefern.
Wenn ein oder mehrere Geräteanschlüsse beim Rang Null auf ein Signal des Prioritätsauflösungsregisters reagieren, wird das Ausgangssignal dieses Registers allen damit verbundenen Geräteanschlüssen zusammen mit dem Wählsignal SEL in der T-Schiene zugeführt, woraufhin der Geräteanschluß, dessen Priorität beim Rang Null dem Ausgangssignal des Prioritätsauflösungsregisters entspricht, gemäß Fig. 19 sein Wählbit 173 setzt, so daß der betreffende Zugang auf nachfolgende Zustände innerhalb der Folge anspricht. Diese Wirkungsweise ist in Fig. 16 durch den voll ausgezogenen Pfeil veranschaulicht, der von dem Zustand RPOL mit dem Rang Null zu dem Zustand SEL verläuft.
Wenn das Prioritätsauflösungsregister 135 feststellt, daß beim Signal Null in der Rangleitung kein Geräteanschluß angesprochen hat, stellt der Kanal 109 die Rangleitung auf 1 um und gibt erneut den T-Schienen-Befehl RPOL. Wenn dann das Prioritätsauflösungsregister feststellt, daß beim Rang 1 ein Ansprechen erfolgt ist, bringt der Kanal die T-Schienen-Wählfunktion wie zuvor zur Wirkung.
Stellt jedoch das Prioritätsauflösungsregister 135 fest, daß beim Rang 1 kein Ansprechen erfolgte, kehrt der Kanal gemäß Fig. 16 in den Leerlaufzustand NOP zurück.
Dieser letztere Vorgang ist ein Beispiel für ein Versagen, das bei einem Zugang 43 auftreten könnte, und das dazu führen würde., daß das System 31 über den anderen Zugang 43 Zugriff zu dem betreffenden Geräteanschluß 41 nimmt.
Wie erwähnt, ist die Wirkungsweise des Prioritätsauflösungsregisters 135 unter dem Einfluß einer durch die Zentraleinheit 105 eingeleiteten IIO- oder HIIO-Folge die gleiche wie sein Ansprechen auf eine Wiederanschlußfolge, die durch den Kanal in Abhängigkeit von einem Wiederanschlußsignal eingeleitet wird, das der Leitung 145 durch einen Geräteanschluß 41 zugeführt wird.
Gemäß Fig. 16 beginnt die Wiederanschlußfolge mit der vorstehend beschriebenen Abruffolge zum erneuten Anschließen des Geräteanschlusses 41 mit der höchsten Priorität, der eine Anforderung stellt.
Der nächste Schritt der Wiederanschlußfolge dient dazu, die Nummer des Geräteanschlusses festzustellen, die in dem Adressenkomparator 193 enthalten ist. Wie erwähnt, sind bei dem Adressenkomparator 193 Schaltleitungen vorhanden, die die Nummer eines physikalischen Geräteanschlusses bestimmen. Hierbei handelt es sich um die gleichen Schaltleitungen, die bei der Funktion LAC der T-Schiene während einer EIO-Folge verwendet werden, um einen bestimmten Zugang festzulegen. Bei der Wiederanschlußfolge wird die durch diese Schaltleitungen bestimmte Adresse dem Ein-Ausgabe-Kanal über die D-Schiene während des Zustandes RAC der T-Schiene wieder zugeführt, um Zugriff zu einer Tabelle zu nehmen, welche den Pufferbereich für den Geräteanschluß bestimmt.
Ferner ist es erforderlich, die Richtung der Übertragung zu bestimmen (Ein- oder Ausgabeübertragung bei dem Prozessormodul). Zur Bestimmung der Richtung der angeforderten Übertragung und der Adresse des Geräteanschlusses bringt der Kanal die T-Schiene in den RAC-Zustand, und der Geräteanschluß 41 meldet die Adresse des Geräteanschlusses und die Übertragungsrichtung zurück.
Der Kanal verwendet die durch den Geräteanschluß 41 zurückgemeldete Adresse des Anschlusses, um gemäß Fig. 12 Zugriff zu einem Zweiworteintrag 142 einer Ein-Ausgabe-Steuertabelle IOC bzw. 140 zu nehmen, durch den ein Pufferbereich 138 im Speicher 107 für den betreffenden Geräteanschluß und die Vorrichtung bestimmt wird.
In Fig. 12 ist im unteren Teil das Format eines Zweiworteintrags 142 vergrößert dargestellt, um die Einzelheiten der Felder der beiden Wörter erkennbar zu machen.
Ein Zweiworteintrag 142 ist in der IOC-Tabelle 140 für jeden der acht möglichen der 32 Geräteanschlüsse 41 vorhanden, die mit einer Ein-Ausgabe-Schiene 39 verbunden sind, welche einem bestimmten Prozessormodul 33 zugeordnet sind, und zu jedem Prozessormodul gehört eine eigene IOC-Tabelle.
Jeder Zweiworteintrag beschreibt die Pufferstelle im Hauptspeicher und die verbleibende Länge, die in jedem bestimmten Zeitpunkt bei einer bestimmten Datenübertragung zu einer bestimmten Vorrichtung übertragen werden muß. Gemäß Fig. 12 gibt das obere Wort des Eintrags 142 die Übertragungsadresse an, zu oder von welcher die Übertragung eines Datenbündels erfolgt, und das untere Wort gibt das Bytes-Zählergebnis an, das der verbleibenden Länge des Pufferbereichs und dem Übertragungszustand entspricht.
Das den Zustand der Übertragung repräsentierende Feld enthält ein Schutzbit P und ein Kanalfehlerfeld CH ERR. Zu dem letzteren Feld gehören drei Bits, die gesetzt werden können, um jeweils einen Fehler von bis zu sieben numerierten Fehlern anzuzeigen.
Die Übertragungsadresse und das Byte-Zählergebnis werden in der IOC-Tabelle 140 am Ende jeder Wiederanschluß- und Datenübertragungsfolge (Datenbündel) aktualisiert. Die Übertragungsadresse wird aufwärts gezählt, und das Byte-Zählergebnis wird am Ende jedes Bündels abwärts gezählt. Der Betrag gibt die Anzahl der innerhalb des Bündels übertragenen Bytes an.
Das zweite Wort enthält erstens ein Feld, in dem jeder während einer Wiederanschluß- und Datenübertragungsfolge auftretende Fehler zur späteren Untersuchung festgehalten werden kann, sowie zweitens ein Schutzbit, das angibt, daß der Pufferbereich im Speicher 107 gelesen, jedoch nicht beschrieben werden kann.
Das Schutzbit dient dazu, den Speicher 107 gegen eine Störung bei dem Geräteanschluß 41 zu schützen. Mit anderen Worten, wenn der Geräteanschluß 41 die Übertragungsrichtung zu dem Kanal 109 während T-Schienen-Funktion RAC (Adresse und Befehl lesen) zurückmeldete, könnte eine Störung bei dem Geräteanschluß 41 diesen veranlassen, fälschlicherweise eine Eingabeübertragung anzugeben. Dann würde der Kanal in den Eingabezustand übergehen und Daten aus dem Geräteanschluß in den Speicher übertragen, wodurch im Puffer 138 enthaltene Daten verlorengehen würden. Das Schutzbit ermöglicht es dem Programm anzugeben, daß der Kanal diesem Pufferbereich keine Daten eingeben darf; dies bedeutet, daß die Vorrichtung nur eine Ausgabeübertragung benennen kann.
Die Übertragungsadresse gibt gemäß Fig. 12 den logischen Weg 139B an.
Gemäß Fig. 13 überführt der Kanal die Übertragungsadresse in das Kanalspeicher-Adressenregister 129 und gibt das Byte-Zähl­ ergebnis dem Zeichenzählregister 131 ein.
Je nach der Übertragungsrichtung, die der Kanal dem Geräte­ anschluß während des RAC-Zustandes nach Fig. 16 entnommen hat, bringt der Kanal die T-Schiene entweder in den Eingabezustand oder den Ausgabezustand, so daß Daten zwischen dem Gerätean­ schluß 41 und dem Speicher 107 übertragen werden, wobei das Kanalspeicher-Adressenregister 129 nach Fig. 13 benutzt wird, um den logischen Weg 139C nach Fig. 12 vorzuschreiben. Das Kanalspeicher-Adressenregister 129 und das Zeichenzählregister 131 werden mit jedem Wort aktualisiert, das während der Daten­ bündelübertragung übertragen wird, um die nächste Adresse im Puffer und die Anzahl der noch zu übertragenden Zeichen anzu­ geben. Am Ende eines Datenbündels wird der Inhalt des Kanal­ speicher-Adressenregisters 129 und des Zeichenzählregisters 131 der IOC-Tabelle 140 nach Fig. 12 eingegeben.
Während des Betriebs übernimmt der Kanal 109 für jedes von dem Geräteanschluß bei einer Eingabeübertragung übertragene Wort dieses Wort mit Hilfe des weiter oben beschriebenen Aus­ tauschvorgangs, um das Wort gemäß Fig. 13 in das Ein-Ausgabe- Datenregister 127 zu überführen, woraufhin das Wort gemäß Fig. 12 über den logischen Weg 139C dem Pufferbereich im Spei­ cher 107 eingegeben wird.
Bei einer Ausgabeübertragung entnimmt der Kanal 109 dem Puffer­ bereich ein Wort über den logischen Weg 139C und überträgt das Wort zu dem Kanalspeicherdatenregister 125 nach Fig. 13. Dann überträgt der Kanal das Wort gemäß Fig. 13 zu dem Ein-Ausgabe- Datenregister 127 und führt einen Austausch mit dem Gerätean­ schluß durch, der das Wort in sein Schnittstellen-Datenregister 213 nach Fig. 21 übernimmt.
Die hohe Arbeitsgeschwindigkeit des Ein-Ausgabe-Kanals wird durch die Verwendung mehrerer Leitungen erzielt, wobei das Wort im Ein-Ausgabe-Datenregister 127 mit dem Geräteanschluß ausgetauscht wird, während der Kanal bei der Übertragung aus demSpeicher 107 gleichzeitig das nächste Wort anfordert, über­ nimmt und es dem Kanalspeicher-Datenregister 125 eingibt. Da es gerade ebenso lange dauert, dem Geräteanschluß ein Wort zu entnehmen, wie die Übernahme eines Wortes aus dem Speicher für den Geräteanschluß dauert, können die beiden Operationen über­ lappt werden.
Während der Übertragung eines Datenbündels hat der Kanal das Zählergebnis des Zeichenzählregisters 131 für jedes übertra­ gene Wort um 2 Einheiten verkleinert, da jedes Wort zwei Bytes enthält.
Die Übertragung eines Datenbündels kann auf zweierlei Weise erfolgen. Mit anderen Worten, die Übertragung eines Datenbün­ dels kann auf normale Weise abgeschlossen werden, oder sie kann mit einem Fehlerzustand enden. Im Normalfall bestehen zwei Möglichkeiten.
Bei einem ersten Betriebszustand kann das Zeichenzählregister 131 ein Zählergebnis erreichen, bei dem noch ein oder zwei Bytes zu übertragen sind. Unter diesen Umständen aktiviert der Kanal gemäß Fig. 14 die EOT-Leitung 165, um anzuzeigen, daß das Ende der Übertragung erreicht ist. Erreicht das Zähl­ ergebnis den Wert 1, aktiviert der Kanal die EOT-Leitung 165 und die Auffülleitung 167, um das Ende der Übertragung durch ein ungeradzahliges Byte anzuzeigen.
Erreicht das Zeichenzählergebnis den Wert 2, aktiviert der Kanal die Leitung EOT, doch wird die Auffülleitung 167 nach Fig. 14 nicht benötigt, da beide Bytes in der Schiene gültig sind.
In jedem Fall spricht der Geräteanschluß 41 an, indem er ge­ mäß Fig. 14 in der Leitung 159 das Eingabestoppsignal STI er­ scheinen läßt; außerdem läßt der Geräteanschluß 41 in der Leitung 169 das Auffüllsignal PADI erscheinen, wenn der Kanal das Auffüllausgabesignal PADO geliefert hat.
In diesem ersten Fall der normalen Beendigung wird die gesamte Übertragung und nicht nur diejenige eines Datenbündels durch den Kanal 109 beendet.
Der andere normale Abschluß findet statt, wenn der Geräte­ anschluß 41 das Datenbündel dadurch beendet, daß er in Abhängig­ keit von dem Signal SVO (Ausgabebedienung) das Eingabestopp­ signal STI liefert. Dies zeigt gemäß Fig. 19 an, daß der Puffer 189 den Zustand der geringsten Beanspruchung erreicht hat, was dem Punkt 229 in Fig. 23 entspricht.
Das Eingabestoppsignal STI kann sowohl bei einer Ausgabeüber­ tragung als auch bei einer Eingabeübertragung auftreten.
Wenn bei einer Eingabeübertragung der Geräteanschluß 41 sowohl die Übertragung als auch das Datenbündel abzuschließen wünscht, kann er das Eingabestoppsignal STI erzeugen, und um beim letz­ ten Wort ein ungeradzahliges Byte zu liefern, kann er außerdem das Auffüllsignal PADI erscheinen lassen.
Wenn gemäß Fig. 16 die Übertragung durch einen fehlerfreien Zustand (STI oder EOT) bei einer Ausgabe- oder Eingabeübertra­ gung abgeschlossen wird, wie es in Fig. 16 durch die mit OUT bzw. IN bezeichneten Kreise angedeutet ist, aktualisiert der Kanal 109 die IOC-Tabelleneingänge in der beschriebenen Weise, und er kehrt gemäß Fig. 16 in den Leerlaufzustand NOP zurück.
Wie erwähnt, kann die Übertragung auch durch einen Fehlerzu­ stand abgeschlossen werden.
Während der Übertragung eines Datenbündels können verschie­ dene nachstehend behandelte Fehler auftreten.
Erstens kann der Geräteanschluß 41 eine Eingabeübertragung zu einem Puffer anfordern, dessen Schutzbit P in der IOC-Tabelle in der beschriebenen Weise gesetzt worden ist.
Zweitens ist es möglich, daß der Geräteanschluß 41 nicht in Abhängigkeit von einem Auffüll-Ausgabesignal PADO des Kanals 109 ein Auffüllungs-Eingabesignal PADI zurückleitet.
Drittens kann der Kanal 109 bei der D-Schiene 161 einen Pari­ tätsfehler nachweisen.
Viertens ist es möglich, daß der Geräteanschluß 41 nicht auf ein Bedienungsausgabesignal SVO des Kanals 109 innerhalb der zugewiesenen Zeit anspricht, wie es weiter oben bezüglich der Austauschvorgänge beschrieben ist.
Fünftens kann der durch die IOC-Tabelleneingänge vorgeschrie­ bene Pufferbereich in eine Seite übertreten, die durch ihre Karte als nicht vorhanden bezeichnet wird (siehe die Beschrei­ bung des Abbildungsplans des Speichersystems).
Sechstens kann ein Paritätsfehler nachgewiesen werden, wenn Zugriff zu der Karte genommen wird, während im Verlauf einer Wiederanschlußeingabe- und Datenübertragungsfolge Zugriff zum Speicher genommen wird (siehe die Beschreibung der Paritäts­ fehlerprüfung beim Speichersystem).
Siebtens kann das Speichersystem einen nicht korrigierbaren Paritätsfehler nachweisen, wenn der Kanal 109 Zugriff zum Speicher nimmt (siehe die Beschreibung der Paritätsfehlerprü­ fung beim Speichersystem).
Wenn sich ein beliebiger dieser Fehlerzustände einstellt, geht der Kanal 109 gemäß Fig. 16 in den ABTD-Zustand (Abbrechen der Datenübertragung) über. Hierdurch wird der Geräteanschluß 41 davon informiert, daß ein Fehler aufgetreten ist und daß die Datenübertragung abgebrochen werden muß. Hierauf geht der Kanal 109 wieder in den Leerlaufzustand NOP nach Fig. 16 über.
Sobald ein Fehler auftritt, aktualisiert der Kanal 109 die IOC-Tabelleneinträge, und er verzeichnet eine Fehlernummer, die einen der vorstehend beschriebenen sieben Fehler bezeich­ net, im Fehlerfeld des zweiten Wortes des vorstehend beschrie­ benen IOC-Tabelleneintrags.
Wenn ein einzelner Fehler auftritt, wird somit die Nummer die­ ses Fehlers im Fehlerfeld des IOC-Tabelleneintrags vermerkt.
Treten mehrere Fehler auf, wählt der Kanal 109 denjenigen Feh­ ler, bei dem eine Erholung am wenigsten zu erwarten ist, und er vermerkt nur die Nummer dieses Fehlers im Fehlerfeld des IOC-Tabelleneintrags.
Ferner kann ein Fehler einer weiteren Art auftreten. Der Ge­ räteanschluß 41 kann versuchen, sich wieder an den Kanal anzu­ schließen, wenn das Zählwort in der IOC-Tabelle eine Null ist. In diesem Fall macht es der Kanal dem Geräteanschluß unmög­ lich, sich wieder anzuschließen, und der Kanal durchläuft die vorstehend anhand von Fig. 16 beschriebene Folge, doch wenn der Kanal feststellt, daß das Zählwort in der IOC-Tabelle eine Null ist, geht er unmittelbar in den ABTD-Zustand (Abbruch) über. Hierin besteht ein wichtiges Merkmal der Erfindung, denn es schützt den Prozessorspeicher gegen ein Überschreiben durch einen gestörten Geräteanschluß.
Wenn im Byte-Zählergebnis des zweiten Wortes im IOC-Tabellen- Eintrag 142 nach Fig. 12 bei einem bestimmten Geräteanschluß eine Null ist, und wenn der Geräteanschluß versucht, sich wieder mit dem Kanal 109 zu verbinden, führt der Kanal dem Geräteanschluß ein ABTD-Signal (Abbruch) zu, wobei im Kanal­ fehlerfeld des Zweiworteintrags 142 eine Null verbleibt.
In Abhängigkeit von der T-Schienenfunktion ABTD (Datenabbruch) stellt der Geräteanschluß 41 an den Kanal 109 gemäß Fig. 14 eine Unterbrechungsanforderung über die Leitung HIRQ bzw. 149 oder die Leitung LIRQ bzw. 147.
Die Geräteanschlüsse 41 können über diese beiden Leitungen jederzeit eine Unterbrechung anfordern.
Eine Unterbrechung zeigt gewöhnlich an, daß eine Datenübertra­ gung durch ein Abbruchsignal ABTD des Kanals abgeschlossen oder beendet worden ist, oder daß dies durch einen Fehlerzu­ stand bei dem Geräteanschluß 41 oder der betreffenden Vor­ richtung bewirkt worden ist, oder daß sich bei dem Geräte­ anschluß oder der damit verbundenen Vorrichtung ein besonderer Zustand eingestellt hat. Wenn z. B. Strom zugeführt wird und die Stromversorgungsschaltung anzeigt, daß die Spannung den erforderlichen Pegel hat, unterbricht der Geräteanschluß den Betrieb des Prozessormoduls, um anzuzeigen, daß sein innerer Zustand dem Rücksetzzustand entspricht, da kein Strom zuge­ führt wurde, oder da die Stromzufuhr ausgefallen war, so daß der Modul durch die Stromversorgungsschaltung 182 zurückge­ setzt wurde.
In Abhängigkeit von einer Unterbrechung gibt das im Prozessor­ modul 33 ablaufende Programm einen Ein-Ausgabe-Abfragebefehl IIO oder einen Ein-Ausgabe-Abfragebefehl mit hoher Priorität (HIIO) über die Ein-Ausgabe-Schiene 39 aus.
Der Befehl IIO wird in Abhängigkeit von einer Ein-Ausgabe­ unterbrechung von niedriger Priorität ausgegeben, d. h. einem Befehl, der gemäß Fig. 14 in der LIRQ-Leitung 147 erscheint.
Der HIIO-Befehl wird in Abhängigkeit von einer Ein-Ausgabe­ unterbrechung von hoher Priorität ausgegeben, d. h. einem Befehl, der gemäß Fig. 14 über eine Unterbrechungsanforderungs­ leitung HIRQ bzw. 149 mit hoher Priorität angefordert wird.
Gemäß Fig. 12 führt der Mikroprozessor 113 die Befehle EIO, IIO oder HIIO aus, indem er die Steuerung der Kanalsteuer­ logik 141 und der Datenweglogik 123 übernimmt.
Die Folge für diese Befehle ist in Fig. 17 dargestellt; wie erwähnt, beginnt diese Folge mit einer Abruffolge.
Der IIO-Befehl führt den Abrufvorgang mittels einer Folge durch, bei der die T-Schienen-Funktion mit dem Unterbrechungs­ abruf LPOL von niedriger Priorität arbeitet, während der HIIO-Befehl den Abruf mittels einer Folge durchführt, bei der die T-Schienen-Funktion mit dem Unterbrechungsabruf HPOL von hoher Priorität arbeitet.
Gemäß Fig. 17 endet die ebenfalls weiter oben beschriebene Abruffolge damit, daß der betreffende Geräteanschluß 41 mit Hilfe der T-Schienen-Funktion SEL (Wählen) gewählt wird.
Es wird jeweils derjenige Geräteanschluß 41 gewählt, dem die höchste Priorität zukommt und der eine Unterbrechungsanfor­ derung stellt.
Die Folge setzt sich gemäß Fig. 17 mit dem Zustand RIC (Ur­ sache der Leseunterbrechung) fort. Der Geräteanschluß 41 rea­ giert, indem er den vorrichtungsabhängigen Zustand gemäß Fig. 14 über die D-Schiene 161 zurückmeldet.
Gemäß Fig. 12 liest der Mikroprozessor 113 den Zustand der D-Schiene 161 ab und gibt ihn dem oberen Ende des Register­ stapels 112 ein.
Dann wird die Folge gemäß Fig. 17 mit der T-Schienen-Funktion RIST (Lesen des Unterbrechungszustandes) fortgesetzt. Hierauf spricht der Geräteanschluß 41 dadurch an, daß er die Nummer des Geräteanschlusses, die Einheitsnummer und vier reservierte Zustandsbits über die D-Schiene zurückmeldet.
Bei dem Zustandsfeld mit vier Bits bezeichnen je zwei Bits jeweils den Abbruch ABTD bzw. den Paritätsfehler, welch letz­ terer während einer Wiederanschluß- und Datenübertragungsfolge aufgetreten sein kann.
Der Mikroprozessor 113 nach Fig. 12 kopiert den Inhalt der D-Schiene, d. h. die Nummer des Geräteanschlusses, die Nummer der Vorrichtung und den Unterbrechungszustand, und überführt diesen Inhalt in den oberen Teil des Registerstapels 112.
Wenn während der Folge kein Fehler aufgetreten ist, wird die Folge mit dem Abschaltzustand DSEL fortgesetzt, bei dem der Geräteanschluß 41 abgeschaltet wird, und dann geht die Folge in den Leerlaufzustand NOP über, wie es in Fig. 17 längs des oberen Randes durch eine Vollinie angedeutet ist.
Wenn tatsächlich ein Fehler aufgetreten ist, bei dem es sich um einen durch den Kanal festgestellten Paritätsfehler oder um die Beendigung eines Austausches handeln kann, geht der Kanal gemäß Fig. 17 aus dem Zustand RIST in den Zustand ABTI (Abbruchfehler) über. Hierdurch wird der Geräteanschluß 41 ab­ geschaltet, und dann kehrt der Kanal 109 in den Leerlaufzustand NOP zurück, wie es in Fig. 17 durch die Vollinie am unteren Rand angedeutet ist.
Wie erwähnt, besteht ein Ein-Ausgabevorgang zwischen einem Prozessormodul und einer Ein-Ausgabevorrichtung in einem typi­ schen Fall aus einer Gruppe von Folgen, z. B. einer EIO-Folge, auf die eine gewisse Anzahl von Wiederanschluß- und Datenüber­ tragungsfolgen folgen, wobei eine IIO-Folge den Abschluß bil­ det. Hierbei können Folgen, die sich aus verschiedenen Ein- Ausgabevorgängen ergeben, zeitlich miteinander verzahnt werden, so daß sich bei mehreren Vorrichtungen die Ein-Ausgabevorgänge scheinbar gleichzeitig abspielen. Somit ist ein gleichzeitiger Zugriff zu einer großen Anzahl von Vorrichtungen möglich, wo­ bei sich die genaue Anzahl nach der Bandbreite des Kanals und der tatsächlichen Bandbreite richtet, mit der jede Vorrichtung arbeitet.
Das vorstehend beschriebene Ein-Ausgabesystem mit jeweils zwei Zugänge aufweisenden Geräteanschlüssen bietet in Verbindung mit der beschriebenen Betriebsweise mehrere wichtige Vorteile.
Hierzu gehören a) eine hohe Flexibilität, die ein Zusammenar­ beiten mit zahlreichen verschiedenen Vorrichtungen ermöglicht, b) eine maximale Ausnutzung der Systemteile, c) ein Systemaufbau, der bei einem Multiprozessorsystem den Zugriff zu Peripherie­ geräten auf eine solche Weise ermöglicht, daß sich im Fall einer Störung allenfalls eine Verlangsamung des Betriebs ergibt, d) die Möglichkeit, das Multiprozessorsystem während des Betriebs in­ standzusetzen und zu erweitern, sowie e) ein maximaler Durchsatz des Systems (im Gegensatz zu einer Betonung lediglich des Prozes­ sordurchsatzes oder des Durchsatzes des Ein-Ausgabesystems) bei einem direkt betreibbaren Transaktionssystem, bei dem eine große Anzahl von gleichzeitig ablaufenden Vorgängen durch das Ein-Ausgabesystem und die Zentraleinheit verarbeitet werden muß.
Die Möglichkeit des flexiblen Zusammenarbeitens mit den ver­ schiedensten Vorrichtungen wird dadurch erreicht, daß bei dem erfindungsgemäßen System nicht von der Annahme ausgegangen wird, daß Vorrichtungen einer bestimmten Art bestimmte Merkmale auf­ weisen. Vielmehr bietet die Erfindung einen Systemaufbau und eine Arbeitsweise, die den Einsatz der verschiedensten Vor­ richtungen ermöglichen.
Die Erfindung gestattet eine maximale Ausnutzung der System­ teile, und zwar in erster Linie dadurch, daß die Speicherband­ breite maximal ausgenutzt wird. Bei jeder Vorrichtung wird mit einer möglichst kleinen Speicherbandbreite gearbeitet. Dies er­ möglicht es, einer bestimmten Ein-Ausgabe-Schiene eine relativ große Anzahl von Vorrichtungen zuzuordnen. Wegen der konstruk­ tiv gegebenen Arbeitsgeschwindigkeit der Ein-Ausgabeschiene und der erfindungsgemäßen Puffertechnik wird jede einzelne Übertra­ gung mit einer relativ hohen Geschwindigkeit durchgeführt, die nur durch die Speichergeschwindigkeit begrenzt wird. Da die Übertragung bündelweise erfolgt, ergeben sich für jede Über­ tragung nur minimale Gemeinkosten. Hierdurch wird die Aus­ nutzung der Kanalbandbreite auf ein Maximum gebracht, und außer­ dem wird die Benutzung schnell arbeitender Vorrichtungen er­ möglicht.
Die Erfindung ermöglicht einen störungsfreien Zugriff zu den Peripheriegeräten. Zu jedem Peripheriegerät führen redundante Datenwege, und das Auftreten von Störungen wird jeweils auf einen bestimmten Datenweg begrenzt. Das Versagen eines be­ stimmten Moduls innerhalb eines Datenwegs führt nicht zu einer Beeinträchtigung des Betriebs eines Moduls, der zu einem ande­ ren zu der Vorrichtung führenden Weg gehört.
Es stehen umfassende Fehlerprüfungen zur Verfügung, um die Vollständigkeit der Daten innerhalb eines Weges, Folgefehler und Zeitsteuerfehler zu prüfen.
Schutzmerkmale verhindern, daß ein Peripheriegerät seinen eige­ nen Puffer oder den Speicher des Systems kontaminiert. Zu diesen Schutzmerkmalen gehören ein gesondertes Zählwort in jeder IOC-Tabelle und ein Schutzbit in dieser Tabelle. Die Tabelle ist für den Kanal, jedoch nicht für den Geräteanschluß zugänglich. Hierbei handelt es sich um eine zweite Schutzstufe, die den Gerätenanschluß daran hindert, sich Zugang zu irgend­ einem ihm nicht zugeteilten Speicher zu verschaffen.
Gemäß der Erfindung benötigt man bei der Ein-Ausgabe-Schiene nur eine kleine Anzahl von Leitungen, um einen flexiblen und leistungsfähigen Betrieb des Ein-Ausgabe-Systems zu ermögli­ chen.
Der Betrieb des Geräteanschlusses wird scharf abgegrenzt, wenn die Stromquelle an- oder abgeschaltet wird, um die Ein-Ausgabe- Schiene während dieser Zeit gegen fehlerhafte Signale zu schützen und um während des Betriebs sowohl Wartungsarbeiten als auch eine Erweiterung des Systems zu ermöglichen.
Gemäß der Erfindung wird von der Beanspruchung Gebrauch ge­ macht, um es den Puffern zu ermöglichen, zusammenzuarbeiten, ohne miteinander zu verkehren.
Die Überlappung von Übertragungs- und Verarbeitungsvorgängen ermöglicht die Schaffung eines direkt betreibbaren Trans­ aktionssystems.
Der direkte Speicherzugriff über mehrere Kanäle ermöglicht eine zeitlich verzahnte Übertragung von Datenbündeln bei sich überlappenden Übertragungsvorgängen und minimalen Wartezeiten bezüglich des Zugriffs zu einer Vorrichtung. Für jedes Daten­ bündel ist nur eine minimale Speicherkapazität erforderlich, und der Prozessor kann den Speicher maximal ausnutzen. Diese Kombination ermöglicht eine maximale Ausnutzung der Ein-Ausgabe- Bandbreite bei minimaler Belegung des Prozessors.
Stromversorgungs- bzw. -verteilungssystem
Zu dem Multiprozessorsystem nach der Erfindung gehört ein Stromverteilungssystem, bei dem mehrere Probleme vermieden sind, die bei den bis jetzt bekannten Systemen auftreten.
Bei vielen bekannten Stromverteilungssystemen ist es erforder­ lich, das Prozessorsystem außer Betrieb zu setzen, wenn an einem Teil des Systems Wartungsarbeiten ausgeführt werden müssen. Ferner ist es bei vielen bekannten Systemen möglich, daß eine Störung bezüglich der Stromversorgung zur Außerbe­ triebsetzung des gesamten Prozessorsystems führt.
Zu dem erfindungsgemäßen Stromverteilungssystem gehören meh­ rere getrennte unabhängige Spannungsquellen, und das System verteilt die Spannung der Spannungsquellen derart auf die Prozessormodule und die Geräteanschlüsse, daß eine Wartung während des Betriebs möglich ist, und daß die Spannung jedem Geräteanschluß auf redundante Weise zugeführt wird.
Im folgenden wird der Ausdruck "Direktbetrieb" benutzt, um auszusagen, daß dann, wenn sich ein Teil des Systems im Direkt­ betrieb befindet, dieser Teil nicht nur mit Strom versorgt und eingeschaltet ist, sondern daß er auch nutzbare Arbeit leistet.
Somit bedeutet der Ausdruck "Wartung während des Betriebs", daß Wartungsarbeiten an einem Teil des Systems durchgeführt werden, und zwar unter Einschluß periodischer präsentiver Wartungs- oder Instandsetzungsarbeiten, während sich die übrigen Teile des Systems im Direktbetrieb nach der vorste­ henden Definition befinden.
Gemäß der Erfindung kann jeder Prozessormodul oder jeder Ge­ räteanschluß abgeschaltet werden, so daß während des Betriebs des Systems eine Wartung beim abgeschalteten Zustand des Pro­ zessormoduls oder eines Geräteanschlusses möglich ist, während der Direktbetrieb des Multiprozessorsystems im übrigen weiter­ läuft. Diese Wartung während des Direktbetriebs kann unter vollständiger Erfüllung der Sicherheitsvorschriften der Ver­ sicherungsgesellschaften durchgeführt werden.
Ferner ist bei dem Spannungsverteilungssystem nach der Erfin­ dung jeder Geräteanschluß so angeschlossen, daß ihm die Be­ triebsspannung von zwei getrennten Spannungsquellen aus über eine Diodenschalteinrichtung zugeführt wird, die es ermöglicht, den Geräteanschluß von zwei Spannungsquellen aus zu versorgen, wenn sich beide Spannungsquellen in Betrieb befinden und ihn von der einen oder anderen Spannungsquelle aus zu versorgen, wenn eine der Spannungsquellen ausfällt; im Fall des Versagens einer der Spannungsquellen erfolgt die Umschaltung zügig und ohne jede Unterbrechung oder Pulsation der Spannung, so daß beim Versagen einer der beiden Spannungsquellen bei einem Ge­ räteanschluß niemals eine Unterbrechung erforderlich ist.
Ein Spannungsversorgungssystem mit einer primären Spannungs­ quelle und einer alternativ einzusetzenden Spannungsquelle für jeden einzelnen Geräteanschluß 41 mit je zwei Zugängen ist in Fig. 30 dargestellt und insgesamt mit 301 bezeichnet.
Das Spannungsversorgungssystem 301 gewährleistet, daß für je­ den Geräteanschluß 41 mit zwei Zugängen sowohl eine primäre Spannungsquelle als auch eine Ersatzspannungsquelle zur Ver­ fügung steht. Da für jeden Geräteanschluß zwei getrennte unab­ hängige Spannungsquellen vorhanden sind, bewirkt der Ausfall der primären Spannungsquelle für einen bestimmten Gerätean­ schluß nicht, daß dieser Geräteanschluß zusammen mit den damit verbundenen Vorrichtungen betriebsunfähig wird. Vielmehr be­ wirkt gemäß der Erfindung eine Schalteinrichtung eine automa­ tische Umschaltung auf die Ersatzspannungsquelle, so daß der Betrieb des Geräteanschlusses fortgesetzt werden kann. Somit arbeitet das Spannungsverteilungssystem mit dem Doppelzugangs­ system des Geräteanschlusses zusammen, um einen ununterbroche­ nen Betrieb und einen Zugriff zu den Vorrichtungen für den Fall zu gewährleisten, daß entweder ein einzelner Zugang oder eine einzelne Spannungsquelle ausfällt.
Das Spannungsverteilungssystem 301 nach Fig. 30 bietet den weiteren Vorteil, daß für jeden Prozessormodul 33 und die zugehörige Zentraleinheit 105 sowie den Speicher 107 eine gesonderte unabhängige Spannungsquelle verfügbar ist. Bei dieser Anordnung beschränkt sich die Wirkung eines Versagens irgendeiner Spannungsquelle oder der manuellen Abschaltung einer Spannungsquelle zu Instandsetzungs- oder Wartungszwecken in Verbindung mit der Spannungsquelle oder dem zugehörigen Prozessormodul daher auf nur den betreffenden Prozessormodul, so daß der Betrieb irgendeines der übrigen Prozessormodule des Multiprozessorsystems nicht beeinträchtigt wird.
Das Spannungsverteilungssystem 301 nach Fig. 30 arbeitet somit mit den einzelnen Prozessormodulen und den Gerätean­ schlüssen mit je zwei Zugängen zusammen, um zu gewährleisten, daß das Versagen oder Abschalten irgendeiner Spannungsquelle nicht zur Außerbetriebsetzung des gesamten Systems führt, oder daß irgendwelche Vorrichtungen wirkungslos werden.
Zu dem Spannungsverteilungssystem 301 gehören mehrere getrennte unabhängige Spannungsquellen 303, und jede Spannungsquelle weist gemäß Fig. 33 eine sich aus mehreren Leitungen zusammen­ setzende Schiene 305 auf, die zur Versorgung der Zentralein­ heit und des Speichers eines bestimmten Prozessormoduls dient.
Jeder Geräteanschluß 41 ist zwei der Spannungsquellen 303 über eine Primärleitung 307 und eine Ersatzleitung 309 sowie einen automatischen Schalter 311 zugeordnet.
Ferner gehört zu jedem Geräteanschluß 41 ein manuell betätig­ barer Schalter 313 zwischen dem Geräteanschluß und den Lei­ tungen 307 und 309.
Die Schalter 311 und 313 sind in Fig. 31 mit weiteren Einzel­ heiten dargestellt.
Fig. 32 zeigt weitere Einzelheiten des Aufbaus einer Spannungs­ quelle 303.
Gemäß Fig. 32 weist jede Spannungsquelle 303 einen Eingangs­ anschluß 315 zum Zuführen von Netzstrom auf. Der Anschluß 315 ist mit einem Gleichrichter 317 verbunden, und in der Aus­ gangsleitung 319 des Gleichrichters erscheint eine unterbrech­ bare Spannung IPS von 5 V, mit der die Zentraleinheit 105, der Speicher 107 und der Geräteanschluß 41 gemäß Fig. 33 gespeist wird.
Der Gleichrichter 317 liefert ferner an einer zweiten Aus­ gangsleitung 321 eine Gleichspannung von 60 V, die gemäß Fig. 32 einem Gleichspannungswandler 323 zugeführt wird.
Der Gleichspannungswandler 323 läßt in einer Leitung 325 eine Spannung von 5 V und in einer Leitung 327 eine Spannung von 12 V erscheinen.
Bei den in den Leitungen 325 und 327 erscheinenden Ausgangs­ spannungen handelt es sich bei dem erfindungsgemäßen System um nicht unterbrechbare Ausgangsspannungen, d. h., diese Lei­ tungen sind mit der Zentraleinheit und dem Speicher verbunden, wobei Halbleiterspeicher verwendet werden. Bei einem Halblei­ terspeicher darf die Spannungszufuhr nicht unterbrochen werden, denn beim Verlust der Spannung gehen sämtliche in dem Halblei­ terspeicher gespeicherte Daten verloren.
Die Spannungszufuhr über die Leitung 319 mit 5 V wird als unterbrechbare Spannungsquelle betrachtet, denn diese Spannung wird Teilen des Multiprozessorsystems zugeführt, bei denen eine Unterbrechung der Spannungszufuhr zulässig ist. Die unterbrechbare Spannung von 5 V wird Teilen der Zentralein­ heit zugeführt, bei denen es sich nicht um Halbleiterspeicher handelt, und nur solchen Teilen des Speichers, die als Kern­ speicher ausgebildet sind, so daß ein Spannungsverlust nicht zu einem Verlust an gespeicherten Daten führt, und der im folgenden näher beschriebene Geräteanschluß wird im Fall des Versagens der primären Spannungsquelle durch eine Ersatz­ spannungsquelle versorgt.
Da die Spannungszufuhr über die Leitungen 325 und 327 nicht unterbrochen werden darf, ist gemäß der Erfindung eine Hilfs­ batterie auf der Eingangsseite des Gleichspannungswandlers 323 vorhanden. Hierzu gehört ein Batterie- und Lademodul 329, der über eine Leitung 331 und eine Diode 333 an den Gleich­ spannungswandler 323 angeschlossen ist.
Bei einer bestimmten Ausführungsform der Erfindung führt die Batterie dem Spannungswandler 323 eine Spannung von 48 V zu, die im Eingangsbereich dieses Wandlers liegt.
Die Diode 333 gewährleistet, daß die Batteriespannung dem Wandler 323 zugeführt wird, wenn die Spannung in der Leitung 321 unter 48 V zurückgeht. Ferner unterbricht die Diode 333 den Stromfluß von der Batterie über die Leitung 331, wenn die Ausgangsspannung des Gleichrichters 317 in der Leitung 321 48 V überschreitet.
Ferner gehört zu jeder Spannungsquelle 303 eine Warnschaltung 335, mittels welcher bei dem Wechselstromnetzanschluß 315 ein Zustand nachgewiesen wird, der dazu führen würde, daß den Aus­ gangsleitungen 319, 325 und 327 keine ausreichende Spannung zugeführt wird. Die Warnschaltung 335 führt über eine Leitung 337 der betreffenden Zentraleinheit 105 ein Warnsignal zu, das eine unzureichende Spannung anzeigt.
Wegen der Kapazitätsspeicherung in der Spannungsquelle 303 steht zwischen dem Warnsignal und dem Verlust der unterbrech­ baren Spannung von 5 V in der Leitung 319 genügend Zeit zur Verfügung, so daß die Zentraleinheit ihren Zustand sichern kann, bevor die Spannung ausbleibt.
Jedoch darf die nicht unterbrechbare Spannung in den Leitungen 325 und 327 auch nicht für einen Augenblick unterbrochen wer­ den; die Hilfsbatterie nach Fig. 2 gewährleistet, daß die Spannungszufuhr über die Leitungen 325 und 327 nicht unter­ brochen wird, wenn die Versorgung über die Eingangsleitung 315 ausfällt.
Es ist möglich, daß eine bestimmte Spannungsquelle 303 aus irgendeinem Grund ausfällt, während die übrigen Spannungs­ quellen betriebsfähig bleiben. In einem solchen Fall begrenzt das erfindungsgemäße Spannungsverteilungssystem 301 die Wirkung des Versagens einer Spannungsquelle 303 auf den Ver­ lust einer bestimmten zugehörigen Zentraleinheit und des be­ treffenden Speichers, und der automatische Schalter 311 be­ wirkt eine automatische Umschaltung von der ausgefallenen Spannungsquelle auf die Ersatzspannungsquelle, um den zuge­ hörigen Geräteanschluß 41 in Betrieb zu halten. Der vorher mit der ausgefallenen Spannungsquelle verbundene Gerätean­ schluß 41 kann somit weiterhin mit den übrigen Prozessormodu­ len und den Teilen des Multiprozessorsystems zusammenarbeiten, da er automatisch durch die Ersatzspannungsquelle versorgt wird.
Gemäß Fig. 31 gehören zu jedem automatischen Schalter 311 zwei Dioden, und zwar eine der Primärleitung 307 zugeordnete Diode 341 und eine der Ersatzleitung 309 zugeordnete Diode 343.
Die Dioden 341 und 343 haben die Aufgabe, die Versorgung eines Geräteanschlusses 41 mit Spannung entweder über die Primärleitung 307 von der betreffenden Spannungsquelle aus oder über die Ersatzleitung 309 von der zugehörigen Spannungs­ quelle aus zu ermöglichen und die Spannungsquellen gleichzei­ tig gegeneinander zu isolieren. Hierdurch wird verhindert, daß eine ausgefallene Spannungsquelle zum Ausfallen der betreffen­ den anderen Spannungsquelle führt.
Beim normalen Betrieb läßt jede Diode eine bestimmte Strom­ menge durch, so daß jeder Geräteanschluß 41 praktisch jeweils sowohl durch die primäre Spannungsquelle als auch die Ersatz­ stromquelle gespeist wird.
Wenn eine der Spannungsquellen versagt, wird die vollständige Versorgung durch die andere Spannungsquelle übernommen, und dieser Übergang erfolgt ohne jede Spannungsunterbrechung.
Da an den Dioden 341 und 343 ein geringer Spannungsabfall stattfindet, muß die Spannung in den Leitungen 307 und 309 entsprechend höher sein als 5 V, damit dieser Spannungsabfall ausgeglichen und dem Geräteanschluß 41 eine Spannung von genau 5 V zugeführt wird. Die Leitungen 305 nach Fig. 30 verlaufen parallel zu den Leitungen 307 und 309, und die Spannung, die tatsächlich dem Speicher der Zentraleinheit zugeführt wird, muß ebenfalls 5 V betragen; daher sind in die Leitungen 305 Ausgleichsdioden 339 eingeschaltet, um zu gewährleisten, daß die Spannung jenseits dieser Dioden, die jeder Zentraleinheit zugeführt wird, genau 5 V beträgt.
Der Schalter 313 ermöglicht es, einen Geräteanschluß 41 von beiden zugehörigen Spannungsquellen abzuschalten, wenn dies zu Wertungszwecken erforderlich ist.
Die Einzelheiten des Schalters 313 sind aus Fig. 31 ersichtlich. Gemäß Fig. 31 gehören zu dem Schalter 313 ein Handschalter 345, ein Transistor 347, ein Kondensator 348 und Widerstände 350 und 352.
Der Handschalter 345 wird geschlossen, um den Transistor 347 einzuschalten, der dann die Spannung dem Geräteanschluß 31 zuführt.
Es ist wichtig, daß sowohl das Einschalten als auch das Ab­ schalten der Spannungsquellen gegenüber dem Geräteanschluß 41 zügig erfolgt, ohne daß Schwankungen auftreten, durch die die Spannungsverteilungsschaltung 182 mehr als einmal getriggert werden könnte. Der Rückkopplungskondensator 348 kommt in Ver­ bindung mit dem Widerstand 352 zur Wirkung, um die erforder­ liche zügige rampenförmige Steigerung der Spannung herbeizu­ führen, wenn der Schalter 345 geschlossen wird, um den Transi­ stor 347 einzuschalten.
Wird der Transistor 347 durch Öffnen des Schalters 345 ausge­ schaltet, kommt der Rückkupplungskondensator 348 in Verbindung mit dem Widerstand 350 zur Wirkung, damit die Spannung gleich­ mäßig zurückgeht.
Bei einer bevorzugten Ausführungsform der Erfindung handelt es sich bei sämtlichen Dioden 341, 343 und 339 um Schottky- Dioden, bei denen in der Vorwärtsrichtung ein sehr geringer Spannungsabfall stattfindet, wodurch die Energieverluste ver­ ringert werden.
Wie weiter oben bei der Beschreibung des Ein-Ausgabe-Systems und der Geräteanschlüsse 41 mit je zwei Zugängen erwähnt, ge­ hört zu jedem Geräteanschluß 41 eine Spannungsüberwachungs­ schaltung 182, die anspricht, wenn nicht die erforderliche Spannung von 5 V zugeführt wird. Die in Fig. 25 mit weiteren Einzelheiten dargestellte Spannungsüberwachungsschaltung 182 setzt den Geräteanschluß 41 zurück, um ihn von jedem äußeren Einfluß freizuhalten und ihn in einem bekannten Zustand zu halten, wenn die Spannungszufuhr durch den Schalter 313 unter­ brochen wird. Ferner gibt die Spannungsüberwachungsschaltung 182 den Geräteanschluß frei und setzt ihn wieder in Betrieb, nachdem die Spannungszufuhr über den Schalter 313 wieder auf­ genommen worden ist, so daß der Geräteanschluß mit der vorge­ schriebenen Spannung von 5 V versorgt wird.
Weitere Einzelheiten der Spannungsüberwachungsschaltung 182 nach Fig. 25 sind bereits weiter oben in Verbindung mit dem Ein-Ausgabe-System und den Geräteanschlüssen mit je zwei Zu­ gängen beschrieben worden.
Gemäß Fig. 33 wird die Spannung von jeder Spannungsquelle 303 aus einer zugehörigen Zentraleinheit 105 über eine senkrechte Schiene 305 zugeführt, und zu jeder senkrechten Schiene gehört eine geschichtete Anordnung mit fünf Schichten von elektri­ schen Leitern.
Gemäß Fig. 33 gehören zu jeder senkrechten Schiene 305 zwei verschiedene geerdete Leiter.
Einer dieser Leiter bildet die Erdungsleitung sowohl für die unterbrechbare Spannung IPS von 5 V als auch für die nicht unterbrechbare Spannung UPS von 5 V.
Ein gesonderter weiterer Leiter bildet die Erdungsleitung für die Speicherspannung. Diese Leitung gewährleistet, daß die relativ starken Schwankungen des dem Speicher zugeführten Stroms keinen Einfluß auf die Spannungen IPS und UPS von 5 V ausüben, die der Zentraleinheit 105 zugeführt werden.
Zu der waagerechten Schiene 305, 397 gehören gemäß Fig. 30 die Primärleitung 307 und die Ersatzleitung 309. Bei einer bestimmten Ausführungsform der Erfindung handelt es sich bei der Schiene 305, 307 tatsächlich um eine aus neun Lagen aufgebaute Schiene, zu der eine einzige Erdungsleitung und acht Spannungsschichten V1-V8 nach Fig. 33 gehören.
Jede Potentiallage der Schiene ist mit dem Ausgang einer anderen Spannungsquelle 303 für die unterbrechbare Spannung von 5 V verbunden. Somit ist gemäß Fig. 33 die Schicht V1 bei 351 mit der Spannungsquelle 303 und dem zugehörigen Prozessor­ modul am linken Ende von Fig. 3 verbunden; die Schicht V2 ist bei 353 an die Spannungsquelle 303 des Prozessormoduls im mittleren Teil von Fig. 33 angeschlossen usw.
Da somit die acht Lagen V1-V8 und eine gemeinsame Erdungs­ leitung GRD für jeden Geräteanschluß in der waagerechten Schiene zur Verfügung stehen, ermöglichen es nach oben ragende senkrechte Anzapfungen 355, die bei diesen acht Lagen in Abständen längs der waagerechten Schiene verteilt sind, jeden Geräteanschluß 41 zwei beliebigen Spannungsquellen 303 zuzu­ ordnen, wozu es lediglich erforderlich ist, die Primärleitung 307 und die Ersatzleitung 309 mit einem bestimmten Satz von Anzapfungen zu verbinden. Beispielsweise ist der Gerätean­ schluß 41 im linken Teil von Fig. 33 mit den Anzapfungen V1 und V2 verbunden, während der Geräteanschluß im rechten Teil von Fig. 33 mit den Anzapfungen V2 und V3 verbunden ist.
Somit kann jeder Geräteanschluß 41 mit zwei beliebigen Span­ nungsquellen 303 verbunden werden, von denen die eine die primäre Spannungsquelle und die andere die Ersatzspannungs­ quelle bildet.
Somit bietet das erfindungsgemäße Spannungsverteilungssystem mehrere wichtige Vorteile.
Das Spannungsverteilungssystem ermöglicht die Durchführung von Wertungsarbeiten während des Direktbetriebs, da ein Prozessor­ modul oder ein Geräteanschluß abgeschaltet werden kann, während alle übrigen Teile des Multiprozessorsystems betriebsfähig bleiben.
Das Spannungsverteilungssystem entspricht in jeder Hinsicht den Sicherheitsforderungen der Versicherungsgesellschaften für die Durchführung von Wartungsarbeiten an einem abgeschal­ teten Systemteil, während sich der verbleibende Teil des Multi­ prozessorsystems im Betrieb befindet.
Jeder Geräteanschluß ist zwei getrennten Spannungsquellen zu­ geordnet, so daß das Versagen einer Spannungsquelle nicht zu einer Unterbrechung des Betriebs des Geräteanschlusses führt. Vielmehr ermöglicht die elektronische Schaltanordnung nach der Erfindung einen zügigen Übergang von der Versorgung durch die beiden Spannungsquellen auf die Versorgung durch nur eine Spannungsquelle, so daß der Geräteanschluß ohne Unterbrechung in Betrieb gehalten wird.
Das Speichersystem
Gemäß Fig. 1 enthält jeder Prozessormodul 33 des Multipro­ zessorsystems 31 einen Speicher 107, der in Fig. 34 mit weite­ ren Einzelheiten dargestellt ist.
Der Speicher 107 jedes Prozessormoduls 33 ist sowohl der Zentraleinheit 105 als auch dem Eingabe-/Ausgabekanal 109 des Moduls zugeordnet. Der Speicher ist für die Zentraleinheit und den Kanal über zwei Zugänge zugänglich. Mit anderen Worten, gemäß Fig. 1 und 34 kann die Zentraleinheit 105 Zugriff zu dem Speicher nehmen, um Programmangaben oder Daten zu erhalten, und der Ein-Ausgabe-Kanal 109 kann ebenfalls mit dem Speicher direkt zusammenarbeiten, und zwar unter Umgehung der Zentral­ einheit, um Datenübertragungen zu und von einem Geräteanschluß 41 durchzuführen. Dieser doppelte Zugriff zu dem Speicher nach Fig. 34 wird im folgenden näher erläutert.
Ein Vorteil dieses doppelten Zugriffs zum Speicher besteht darin, daß die Zugriffe durch die Zentraleinheit und den Kanal zeitlich miteinander verzahnt werden können. Somit braucht weder die Zentraleinheit noch der Kanal zu warten, um Zugriff zum Speicher zu erhalten, abgesehen von Fällen, in denen sowohl die Zentraleinheit als auch der Kanal genau im gleichen Zeit­ punkt versuchen, sich Zugang zum Speicher zu verschaffen. Daher können die Zentraleinheit und der Kanal ihre getrennten Funtkionen gleichzeitig ausüben, wobei die Zentraleinheit oder der Kanal nur gelegentlich warten muß, wenn einer dieser Systemteile einen Zugriff zum Speicher genau in dem Zeitpunkt ausführt, in dem der andere Teil einen Zugriff versucht.
Der Zugriff über zwei Zugänge gestattet außerdem Hintergrunds- Ein-Ausgabe-Arbeiten. Die Zentraleinheit 105 braucht mit dem Kanal 109 nur bei der Einleitung und Beendigung von Ein-Aus­ gabe-Datenübertragungen zusammenzuarbeiten. Während der eigentlichen Ein-Ausgabe-Datenübertragung kann die Zentral­ einheit andere Aufgaben erfüllen.
Zu dem Speicher 107 nach Fig. 34 gehört ein physikalischer Speicher für bis zu 262 144 Wörter zu je sechzehn Datenbits.
Zusätzlich zu den sechzehn Datenbits enthält jedes Wort im Speicher ein Paritätsbit, wenn es sich um einen Kernspeicher handelt, oder sechs Fehlerkorrekturbits, wenn der Speicher als Halbleiterspeicher ausgebildet ist.
Das Paritätsbit ermöglicht es, einzelne Bitfehler nachzu­ weisen.
Die sechs Fehlerkorrekturbits ermöglichen den Nachweis und die Korrektur von Einzelbitfehlern sowie den Nachweis sämtli­ cher Doppelbitfehler.
Der physikalische Speicher ist begrifflich in aneinander an­ grenzende Blöcke zu je 1024 Wörtern unterteilt, die im folgen­ den als Seiten bezeichnet werden. Die Seiten im physikalischen Speicher sind mit Null beginnend fortlaufend numeriert, wobei mit dem physikalischen Speicherplatz Null begonnen wird. Bei einer Ausführungsform der Erfindung erfordert der Adressenbe­ reich des physikalischen Speichers, der sich von Null bis 262 143 erstreckt, 18 physikalische Adresseninformationsbits.
Wie aus der folgenden Beschreibung ersichtlich, ist jedoch das erfindugsgemäße Multiprozessorsystem grundsätzlich so aufge­ baut, daß mit 20 physikalischen Adresseninformationsbits ge­ arbeitet werden kann.
Bei einer Ausführungsform der Erfindung ist der physikalische Speicher physikalisch in physikalische Module zu je 32 768 Wör­ tern unterteilt. Somit stehen bei acht Modulen die genannten 262 143 Wörter zur Verfügung.
Sämtliche Speicherzugriffe werden zu einer von vier logischen Adressen durchgeführt, und zwar zu Benutzerdaten, Systemdaten, Benutzercodes und Systemcodes. Alle Befehle der Zentraleinheit arbeiten ausschließlich mit diesen logischen Adressen im Unter­ schied zu physikalischen Adressen. Daher braucht sich ein Pro­ grammierer nicht mit einer tatsächlichen physikalischen Adresse zu befassen, sondern er kann ein Programm schreiben, das aus­ schließlich auf logischen Adressen beruht, und die logischen Adressen werden durch den Kartenteil des Speichersystems in physikalische Adressen übersetzt.
Der Adressierbereich umfaßt bei jeder gegebenen logischen Adressenzone den Bereich einer logischen Adresse von 16 Bits, d. h. den Bereich von 0 bis 65 535. Somit umfaßt jeder logische Adressenbereich 64 logische Seiten zu je 1024 Wörtern.
Bei dem erfindungsgemäßen Speichersystem braucht keine be­ stimmte Entsprechung zwischen einer logischen Seite und einer physikalischen Seite zu bestehen. Somit brauchen die verschie­ denen logischen Seiten, die ein Betriebssystemprogramm oder ein Anwenderprogramm bilden, nicht in aneinander angrenzenden phy­ sikalischen Seiten vorhanden zu sein. Außerdem ist es nicht erforderlich, daß sich die logischen Seiten im physikalischen Hauptspeicher befinden; vielmehr können sie in einem sekundä­ ren Speicher, z. B. einer Platte, enthalten sein.
Auf diese Weise ist es möglich, eine virtuelle Speicherung zu verwirklichen, die zwei Vorteile bietet.
Erstens ermöglicht die virtuelle Speicherung die Benutzung eines physikalischen Hauptspeicherraums, der kleiner ist, als es die logischen Adressenbereiche erfordern würden, denn der physikalische Speicher kann durch einen sekundären physikali­ schen Speicher ergänzt werden.
Zweitens ermöglicht es die virtulelle Speicherung, Adressenräume mehrerer Benutzer (Mehrprogrammbetrieb) gemeinsam dem physikali­ schen Speicher zuzuordnen, und die einzelnen Benutzer brauchen sich nicht mit der Zuteilung physikalischer Speicherteile zwi­ schen dem Betriebssystem, sich selbst oder anderen Benutzern zu befassen.
Das erfindungsgemäße Speichersystem bietet den Benutzern beim Mehrprogrammbetrieb einen gegenseitigen Schutz dadurch, daß es sicherstellt, daß ein Benutzerprogramm den Speicherraum eines anderen Benutzerprogramms nicht lesen oder ihm Daten ein­ geben kann. Dies wird durch das verwendete Seiten- und Karten­ system erreicht. Wenn ein Benutzerprogramm abläuft, gibt die Karte für dieses Programm nur Hinweise auf die Speicherseiten des betreffenden Benutzerprogramms, zu denen bis zu 64 Code­ seiten und 64 Datenseiten gehören. Das betreffende Benutzerpro­ gramm kann keine Adressierung außerhalb seines eigenen logischen Adressenraums durchführen, und daher ist es ihm unmöglich, den Speicherraum eines anderen Benutzerprogramms zu Lese- oder Schreib­ zwecken zu benutzen.
Außerdem verhindert die Tatsache, daß die Codeseiten unveränder­ bar sind, daß sich ein Benutzerprogramm selbst zerstört.
Somit sind beim Mehrprogrammbetrieb zwei Schutzstufen vorhanden, nämlich die Tatsache, daß jede Benutzerkarte nur Hinweise auf die im Speicher enthaltenen eigenen Seiten gibt, sowie die Tat­ sache, daß sich die Codeseiten nicht verändern lassen. Ferner wird gemäß der Erfindung dieser Schutz erreicht, ohne daß es erforderlich ist, Schutzbegrenzungsregister oder Sicherungstasten bekannter Art zu verwenden.
Die erforderliche Umsetzung einer logischen Adresse mit sechzehn Bits in eine physikalische Adresse mit achtzehn Bits wird durch ein Kartensystem bewirkt. Als Bestandteil dieses Kartensystems wird eine physikalische Seitennummer durch einen Nachschlagevor­ gang innerhalb einer Karte gewonnen. Diese physikalische Seiten­ nummer wird dann mit der Adresse innerhalb einer Seite kombiniert, um die vollständige physikalische Speicheradresse zu bilden.
Hierbei wird nur die Seitennummer übersetzt. Beim Aufstellen der Karten wird die Versetzung oder Adresse innerhalb einer Seite niemals geändert.
Gemäß der Erfindung sind vier Kartenteile vorhanden, von denen jeder einem der vier logischen Adressenbereiche entspricht, die Benutzerdaten, Systemdaten, dem Benutzercode und dem Systemcode vorbehalten sind.
Die Unterteilung der logischen Adressen in diese vier getrenn­ ten Bereiche bietet wesentliche Vorteile.
Die genannte Trennung ermöglicht eine Isolierung von Programmen gegenüber den Daten, so daß die Programme niemals verändert werden. Ferner ermöglicht die Unterteilung eine Isolierung von Systemprogrammen und Daten von Benutzerprogrammen und -daten, und hierdurch wird das Betriebssystem gegen Fehler der Benutzer geschützt.
Die vier Kartenteile tragen die nachstehend erläuterten Be­ zeichnungen.
Karte 0: Benutzerdatenkarte. Mittels dieser Karte werden alle Adressen für variable Benutzerdatenbereiche übersetzt.
Karte 1: Systemdatenkarte. Diese Karte ähnelt der Benutzer­ datenkarte, und außerdem bezeichnen alle Bezugnahmen auf den Speicher durch den Ein-Ausgabe-Kanal, das Handhabungsmikropro­ gramm für die Interprozessorschiene und das Unterbrechungs­ handhabungs-Mikroprogramm diese Karte. Die Systemdatenkarte bietet einen Kanalzugang zum gesamten physikalischen Speicher, und zwar lediglich über ein Adressenwort mit sechzehn Bits.
Karte 2: Benutzercodekarte. Diese Karte definiert das aktive Benutzerprogramm. Sämtliche Benutzerbefehle und konstanten Daten werden über diese Benutzercodekarte gewonnen.
Karte 3: Systemcodekarte. Diese Karte definiert das Betriebs­ systemprogramm. Sämtliche Betriebssystembefehle und konstanten Daten werden über die Systemcodekarte gewonnen.
Jeder Kartenteil weist 64 Eingänge auf, die den 64 möglichen Seiten in jedem logischen Adressenbereich entsprechen. Jeder Eintrag enthält die nachstehend aufgeführten Informationen.
  • 1. Das Feld für die physikalische Seitennummer, deren Wert zwischen 0 und 255 liegen kann.
  • 2. Ein ungeradzahliges Paritätsbit für den Karteneintrag, das immer dann durch die Kartenlogik erzeugt wird, wenn ein Karten­ eintrag geschrieben wird.
  • 3. Ein Feld für die Geschichte der Bezugnahme. Dieses Feld um­ faßt Bezugsbits, und das höchste dieser Bits wird auf 1 gesetzt, wenn jeweils von der dem Karteneintrag entsprechenden Seite Ge­ brauch gemacht wird.
  • 4. Ein schmutziges Bit. Dieses schmutzige Bit wird auf 1 ge­ setzt, wenn ein Schreibzugriff zu der entsprechenden Speicher­ seite erfolgt.
    Die Bezugsbits und das schmutzige Bit werden durch die Speicher­ verwaltungsfunktion des Betriebssytems benutzt, um zum Wählen einer Seite zur Überlagerung beizutragen. Ferner bietet das schmutzige Bit eine Möglichkeit, unnötige Umlagerungen von Da­ tenseiten in den sekundären Speicher zu vermeiden.
  • 5. Ein Abwesenheitsbit. Ein solches Abwesenheitsbit wird anfäng­ lich durch das Betriebssystem auf 1 gesetzt, um die Tatsache zu bezeichnen, daß eine Seite im Hauptspeicher fehlt. Ein Zugriff zu einer Seite, bei der dieses Bit auf 1 gesetzt ist, bewirkt eine Unterbrechung bei der Seitenfehler-Unterbrechungseinrich­ tung des Betriebssystems, um bei dem Betriebssystem die Verwal­ tungsfunktion des virtuellen Speichers zu aktivieren. Das Ab­ wesenheitsbit wird außerdem als Schutzeinrichtung verwendet, um einen fälschlichen Zugriff durch ein Programm außerhalb des vorgesehenen logischen Adressenbereichs für den Code oder für Daten zu verhindern.
Durch das Betriebssystem werden in Verbindung mit der Karte drei Befehle mit den Bezeichnungen SMAP, RMAP und AMAP ver­ wendet.
Der Befehl SMAP (Karteneintrag setzen) wird durch die Speicher­ verwaltungsfunktion des Betriebssystems benutzt, um einen Kar­ teneintrag einzufügen. Bei diesem Befehl werden zwei Parameter benötigt, und zwar die Karteneintragadresse und die einzufügen­ den Daten.
Der Befehl Rmap (Karteneintrag lesen) wird durch die Speicher­ verwaltungsfunktion des Betriebssystems benutzt, um einen Kar­ teneintrag zu lesen. Dieser Befehl erfordert einen Parameter, und zwar die Karteneintragadresse, und das durch den Befehl zurückgemeldete Ergebnis ist der Inhalt des Karteneintrags.
Der Befehl AMAP (Alterung des Karteneintrags) bewirkt, daß das Bezugsnahmgeschichtefeld eines Karteneintrags um eine Stelle nach rechts versetzt wird. Dieser Befehl wird durch die Speicherverwaltungsfunktion des Betriebssystems benutzt, um Bezugnahmegeschichteinformationen bereitzuhalten, die als Hilfs­ mittel beim Wählen einer Seite für die Überlagerung verwendet werden.
Eine Seitenfehlerunterbrechung, die durch ein Abwesenheitsbit bewirkt wird, erfolgt, wenn eine Bezugnahme auf eine Seite durchgeführt wird, die sich im jeweiligen Augenblick nicht im Hauptspeicher befindet, oder die nicht einen Bestandteil des logischen Adressenraums des Programms oder seiner Daten bildet. Wird ein Seitenfehler festgestellt, bewirkt die Seitenfehler­ unterbrechungseinrichtung des Betriebssystems eine Unterbrechung.
Zu einer Seitenfehlerunterbrechungsfolge gehören die nachste­ hend genannten Vorgänge.
  • 1. Eine Adressenbezugnahme wird zu einer Seite durchgeführt, die im physikalischen Speicher fehlt (Abwesenheitsbit gleich 1).
  • 2. Die Seitenfehlerunterbrechung findet statt. Der Mikrocode der Unterbrechungseinrichtung bringt einen Unterbrechungs­ parameter, der die Kartennummer und die logische Seiten­ nummer bezeichnet, in eine dem Betriebssystem bekannte Speicherstelle ein. Dann wird der gegenwärtige Zustand in einem Unterbrechungsstapelmarkierer im Speicher zwischen­ gespeichert.
  • 3. Die Seitenfehlerunterbrechungseinrichtung tritt in Tätig­ keit. Wenn der Seitenfehler infolge einer Bezugnahme außer­ halb des logischen Adressenraums des Programms aufgetreten ist, wird das Programm mit einem Fehlerzustand beendet. Ist der Seitenfehler dagegen aufgetreten, da die logische Seite im physikalischen Hauptspeicher fehlte, während sie im sekundären Speicher vorhanden war, läuft ein Prozeß des Betriebssystems ab, um die fehlende Seite aus dem sekundä­ ren Speicher auszulesen, bei dem es sich gewöhnlich um eine Platte handelt, wobei die Daten in eine verfügbare Seite des primären Speichers überführt werden. Diese Informa­ tionen der physikalischen Seite und ein Abwesenheitsbit 0 werden in den Karteneintrag eingefügt. Wenn diese Speicher­ verwaltungsfunktion abgeschlossen ist, wird der Zustand, der zu dem Seitenfehler führte, wieder hergestellt.
  • 4. Der Befehl, der vorher den Seitenfehler verursachte, wird erneut durchgeführt. Da das Abwesenheitsbit im Kartenein­ trag der logischen Seite jetzt auf 0 gesetzt worden ist, tritt kein Seitenfehler auf, die Seitenadresse wird in die physikalische Seite übersetzt, die gerade aus dem sekundären Speicher entnommen wurde, und die Durchführung des Befehls wird abgeschlossen.
Wie erwähnt, kann der Ein-Ausgabe-Kanal über seinen eigenen Zugang Zugriff zum Speicher nehmen.
Datenübertragungen zum und vom Speicher durch den Ein-Ausgabe- Kanal erfolgen über die Systemdatenkarte. Mit anderen Worten, die durch den Ein-Ausgabe-Kanal bereitgestellten logischen Adressen mit sechzehn Bits werden mit Hilfe der Systemdaten­ karte jeweils in eine physikalische Adresse mit 18 Bits über­ setzt.
Somit gewährt der Kartenplan einen Ein-Ausgabe-Zugriff zu mehr Wörtern des physikalischen Speichers, als es der zugehörige Adressenzähler normalerweise zulassen würde.
Bei einer bestimmten Ausführungsform der Erfindung sind 262 144 Wörter des physikalischen Speichers (bei einer Adresse mit 18 Bits) unter Benutzung der Karte über eine logische Adresse mit nur sechzehn Bits zugänglich. Die zusätzliche Adresseninformation (die Information über die physikalische Seite) ist in der Karte enthalten und wird durch das Betriebs­ system bereitgestellt, bevor jeweils eine Ein-Ausgabe-Übertra­ gung eingeleitet wird.
Wie im folgenden näher erläutert, läßt sich die Erfindung auch leicht auf eine physikalische Adresse mit 20 erweitern.
Fig. 34 zeigt in einem Blockschaltbild Einzelheiten des Spei­ chers 107 eines Prozessormoduls 33 sowie Verbindungen von dem Speicher zu der Zentraleinheit 105 und dem Eingabe-/Ausgabekanal 109 des Prozessormoduls.
Gemäß Fig. 34 besitzt das Speichersystem 107 Zugriffzugänge sowohl für die Zentraleinheit 105 als auch für den Eingabe-/Ausgabe- Kanal 109, und der Kanal 109 wird daher für einen Zugriff zum Speicher über die Zentraleinheit 105 nicht benötigt.
Zu dem Speicher 107 gehört gemäß Fig. 34 eine Kartenspeicher­ steuerlogik 401, die das Einleiten und die Beendigung des Zu­ griffs zu physikalischen Speichermodulen 403 steuert.
Der Speicher 107 weist ferner einen Datenwegteil 405 auf, der gemäß Fig. 34 noch zu beschreibende Register enthält, die im Speicher zu schreibende Daten liefern und aus dem Speicher aus­ gelesene Daten festhalten.
Ferner ist bei dem Speicher 107 ein Kartenteil 407 vorhanden, zu dem logische Adressenregister für die Zentraleinheit und den Kanal sowie ein Kartenspeicher 409 zum Entnehmen physikalischer Seitennummern gehören.
Somit enthält der Kartenteil 407 ein Prozessorspeicheradressen­ register PMA bzw. 411 und ein Kanalspeicheradressenregister CMA bzw. 129.
Diese beiden Register sind an einen Adressenwähler 415 ange­ schlossen.
Der Adressenwähler 415 ist mit der Karte 409 durch eine logische Seitenadressenschiene 417 sowie unmittelbar mit den Speicher­ modulen durch eine Seitenversetzungsschiene 419 verbunden.
Wie in Fig. 34 durch die Zahlen 8 und 10 bei den Schienen 417 und 419 angedeutet, überträgt die logische Seitenadressenschiene 417 die acht höchsten Bits zu der Karte 409, damit sie in eine physikalische Seitennummer übersetzt werden, und die Seitenver­ setzungsschiene 419 überträgt die 10 untersten Bits einer dem Adressenwähler 415 entnommenen Seitenadresse mit 18 Bits zu den Speichermodulen 403.
Eine Ausgabeschiene 421 führt die physikalische Seitenadresse den Modulen 403. Über die Ausgabeschiene 421 werden die übersetzten acht höchsten Bits für die Adresse der physikalischen Seite übertragen.
Der Datenwegteil 405 enthält die folgenden Register: Ein Prozes­ sorspeicherdatenregister PMD bzw. 423, ein Kanalspeicherdaten­ register CMD bzw. 425, ein Register NI bzw. 431 für den nächsten Befehl, ein Speicherdatenregister MD bzw. 433 sowie ein Kanal­ datenregister CD bzw. 125.
Die Ausgangssignale der Register 423 und 425 werden einem Da­ tenwähler 427 zugeführt, dessen Ausgabeschiene 429 die Daten liefert, welche dem Speicher in den Modulen 403 eingegeben wer­ den sollen.
Einem der Speichermodule 403 entnommene Daten werden über eine Schiene 437 jeweils einem der drei Datenregister NI, MD und CD eingegeben.
Gemäß Fig. 34 ist die Kartenspeicher-Steuerlogik 401 über eine Schiene 439 auch mit jedem der Speichermodule 403 verbunden, und zu dieser Schiene gehören Befehlsleitungen zum Einleiten von Lese- und Schreiboperationen zur Übertragung von Vollzugs­ signalen aus den Speichermodulen sowie zum Abgeben von Fehler­ anzeige- oder -kennzeichnungssignalen.
Gemäß Fig. 35 gehören zu dem Kartenteil 407 ferner die Karte 409, ein Kartenseitenregister 441, eine Kartenausgabe-Verriege­ lungseinrichtung 443, ein Kartenspeicherdatenregister MMD bzw. 445, ein Kartendatenwähler 447, ein Kartenparitätsgenerator 449, ein Kartenparitätsprüfer 451, eine Bezugsbitlogik 453 und eine Logik 455 für das schmutzige Bit.
Gemäß Fig. 35 ist die Kartenspeicher-Steuerlogik 401 dem Karten­ teil 407 über Steuersignalleitungen 457 zugeordnet.
Die Kartenspeicher-Steuerlogik 401 steuert das Laden von Re­ gistern und das Wählen von Registern durch die Wähler, sie steuert in Verbindung mit Kartenabwesenheits- und Paritäts­ fehler-Ausgangssignalen die Einleitung von Operationen der Speichermodule 403, und sie führt der Zentraleinheit 105 Unter­ brechungssignale zu, wie es in Fig. 35 für Seitenfehler- und Kartenparitäts-Fehlerunterbrechungssignale angegeben ist; hier­ auf wird im folgenden eingegangen.
Bei einer bestimmten Ausführungsform der Erfindung arbeitet das Speichersystem nach Fig. 34 und 35 mit einem physikalischen Seitenadressenfeld von acht Bits und einer Seitenversetzung von zehn Bits, so daß insgesamt 18 Bits verwendet werden. Wie oben erwähnt, stehen die in Fig. 34 und 35 bei bestimmten Schienenleitungen nicht in Klammern gesetzten Zahlen 8, 10, 12, 13, 14 und 18 in Beziehung zu dieser speziellen mit 18 Bits arbeitenden Ausführungsform. Jedoch läßt sich das Speichersy­ stem leicht auf eine mit 20 Bits arbeitende Ausführungsform erweitern, und zwar mit einer physikalischen Seitenadresse von 10 Bits, und dies ist in Fig. 35 bei den gleichen Schienenlei­ tungen durch die Angaben (10), (12), (14), (15), (16) und (20) angedeutet.
Fig. 36 veranschaulicht den Aufbau des logischen Speichers, zu dem vier getrennte logische Adressenbereiche 459, 461, 463 und 465 gehören; hierbei handelt es sich um einen Benutzerda­ tenbereich 459, einen Systemdatenbereich 461, einen Benutzer­ codebereich 463 und einen Systemcodebereich 465.
Ferner zeigt Fig. 36 die vier den logischen Adressenbereichen entsprechenden Kartenteile.
Somit entspricht der Benutzerdaten-Kartenteil 467 dem logi­ schen Benutzerdaten-Adressenbereich 459, der Systemdaten-Karten­ teil 469 dem logischen Systemdaten-Adressenbereich 461, der Benutzercode-Kartenteil 471 dem logischen Benutzercode-Adressen­ bereich 463 und der Systemcode-Kartenteil 473 dem logischen Systemcode-Adressenbereich 465.
Gemäß Fig. 36 gehören zu jedem Kartenteil 64 logische Seiten­ einträge (Seite 0 bis Seite 63), und jeder Karteneintrag ent­ hält 16 Bits, wie es in Fig. 36 für einen einzelnen Kartenein­ trag vergrößert dargestellt ist.
Wie in Fig. 36 bei dem vergrößerten Karteneintrag angegeben, gehören zu jedem Karteneintrag ein physikalisches Seitennummer­ feld mit 10 Bits, ein einzelnes Paritätsbit P, ein Bezugnahme- Geschichtefeld mit drei Bits R, S und T, ein einzelnes schmutzi­ ges Bit D und ein einziges Abwesenheitsbit A.
Das durch die 10 höchsten Bits gebildete Feld für die physikali­ sche Seitennummer liefert die physikalische Seitennummer, die der durch das Programm abgerufenen logischen Seite entspricht.
Das Paritätsbit P wird stets als ungerades Paritätsbit erzeugt, um eine Datenvollständigkeitsprüfung bei dem Inhalt der Karten­ einträge zu ermöglichen.
Die Bits R, S und T des Feldes für die Bezugnahmegeschichte werden durch die Speicherverwaltungsfunktion des Betriebssystems benutzt, um die Informationen über die Bezugnahmegeschichte auf dem laufenden zu halten, mittels welcher jeweils die am längsten nicht mehr benutzte Seite zur Überlagerung gewählt wird.
Das Bit R wird durch jeden Lese- oder Schreibvorgang in Verbin­ dung mit der logischen Seite auf 1 gesetzt.
Bei den Bits S und T handelt es sich um Speicherbits, die durch einen Karteneintrag-Alterungsbefehl AMAP gehandhabt werden.
Das schmutzige Bit D wird durch einen Schreibzugriff zu der logischen Seite auf 1 gesetzt. Das Betriebssystem verwendet das schmutzige Bit, um festzustellen, ob eine Datenseite abge­ ändert worden ist, seitdem sie das letzte Mal dem sekundären Speicher entnommen wurde.
Das Abwesenheitsbit A wird durch das Betriebssystem auf eine 1 festgesetzt, um eine logische Seite zu kennzeichnen, die im Hauptspeicher fehlt, jedoch im sekundären Speicher vorhanden ist, oder um eine Seite zu kennzeichnen, sie sich außerhalb des logischen Adressenbereichs des betreffenden Benutzers be­ findet.
Die in Fig. 36 dargestellten beiden höchsten Bits für den Kar­ teneintrag werden bei der dargestellten Ausführungsform der Er­ findung nicht verwendet, doch wird von diesen beiden Bits Ge­ brauch gemacht, wenn bei den physikalischen Adressen mit der vollen Zahl von 20 Bits gearbeitet wird.
Wie erwähnt, verwendet das Betriebssystem in Verbindung mit der Karte die drei Befehle SMAP, RMAP und AMAP.
Der Befehl SMAP wird durch die Speicherverwaltungsfunktion des Betriebssystems benutzt, um Daten in einen Karteneintrag ähnlich demjenigen nach Fig. 36 einzufügen.
Der Befehl SMAP wird gemäß Fig. 12 in der Zentraleinheit 105 durch das Mikroprogramm 115 realisiert, das mit der Kartenspei­ cher-Steuerlogik 401 nach Fig. 34 zusammenarbeitet, um erstens mit Hilfe des ersten Befehlsparameters eine Stelle in der Karte 409 zu wählen und dann zweitens an dieser Stelle den zweiten Be­ fehlsparameter, d. h. die neuen Karteneintragdaten, einzufügen.
Während des Betriebs gibt gemäß Fig. 3 das Mikroprogramm 115 beim ersten Schritt der Folge die neuen Karteneintragdaten dem Prozessorspeicherdatenregister PMD bzw. 423 ein.
Beim nächsten Schritt der Folge wird das Prozessorspeicher- Adressenregister PMA bzw. 411 mit der Kartenadresse geladen, zu der zwei höchste Bits für die Kartenwahl gehören.
In diesem Zeitpunkt sind die beiden Befehlsparameter, welche die Karteneintragadresse und die einzufügenden Daten enthalten, den zugehörigen Registern 411 und 423 eingegeben worden.
Als nächstes leitet das Mikroprogramm 115 in der Zentraleinheit 105 eine Kartenschreiboperation der Kartenspeicher- Steuerlogik 401 ein. Diese Folge wird eingeleitet, nachdem alle vorherigen Speicheroperationen abgeschlossen sind.
Die vorstehend beschriebenen Schritte der Operationsfolge sind sämtlich durch das Mikroprogramm (die Firmware) durchgeführt worden.
Die verbleibenden Aktionen entsprechend dem Befehl SMAP werden unter der Steuerwirkung der Kartenspeicher-Steuerlogik durchge­ führt, und zwar sämtlich auf automatischem Wege durch die Hardware.
Bei der Kartenschreib-Operationsfolge wird die Kartenadresse von dem Register PMA durch den Adressenwähler 415 über die Schiene 417 zu der Karte 409 übertragen. Bei dieser Operation werden nur die acht höchsten Bits verwendet, d. h. die Karten­ wählbits und die Kartenadressenbits.
Die beiden höchsten Bits bestimmen die Kartenwahl, d. h. Benutzer­ daten, Systemdaten, Benutzercode oder Systemcode.
Die 10 untersten Bits der logischen Adressenschiene aus dem Adressenwähler ASEL bzw. 415, die innerhalb einer Seite versetzt sind und dazu dienen, einen Speicher zum Lesen oder Schreiben zugänglich zu machen, werden bei dieser Operation nicht ver­ wendet.
Während die Karte in der beschriebenen Weise adressiert wird, werden die neuen Kartendaten von dem Register PMD bzw. 423 aus über den Kartendatenwähler 427 zu dem Kartenparitätsgenerator 449 und zu der Karte 409 nach Fig. 35 übertragen. Der Karten­ paritätsgenerator berechnet eine ungerade Parität für die neuen Kartendaten und führt dieses Paritätsbit der Karte zu.
An diesem Punkt erzeugt die Kartenspeicher-Steuerlogik 401 ein Kartenschreibabtastsignal, das gemäß Fig. 35 über eine der Leitungen 457 der Karte 409 zugeführt wird und bewirkt, daß die neuen Daten und die Parität in den gewählten Kartenteil bei dem Karteneintrag eingeschrieben werden, der durch die logische Seitenadresse über die Leitung 417 gewählt worden ist.
Hiermit ist die SMAP-Befehlsfolge abgeschlossen.
Sobald dieser SMAP-Befehl durchgeführt ist, ist der richtige Kartenteil gewählt worden, der betreffende logische Seitenein­ trag dieses Kartenteils ist gewählt worden, die Daten und die berechnete ungerade Parität sind der Karte zugeführt worden, und das Kartenschreibabtastsignal hat bewirkt, daß die Daten bei dem gewünschten Karteneintrag geschrieben worden sind.
Der Befehl SMAP wird durch das Betriebssystem benutzt, um nach Bedarf jeden logischen Seiteneintrag bei jedem der vier Karten­ teile einzuleiten.
Eine der Aufgaben des gesetzten Kartenbefehls besteht somit darin, eine physikalische Seitenadresse für eine logische Seite einzusetzen, um die Übersetzung logischer Seitennummern in phy­ sikalische Seitennummern zu bewirken, nachdem eine Seite aus dem sekundären Speicher umgelagert worden ist.
Eine weitere Aufgabe des gesetzten Kartenbefehls besteht darin, ein Abwesenheitsbit für eine logische Seite zu setzen, die aus dem sekundären Speicher umgelagert worden ist.
Der Kartenlesebefehl RMAP wird durch die Speicherverwaltungsfunktion des Betriebssystems benutzt, um den Inhalt eines Karteneintrags zu prüfen.
Bei dem Befehl RMAP arbeitet das Mikroprogramm 115 in der Zentraleinheit 105 mit der Kartenspeicher-Steuerlogik 401 zusammen, um mit dem Befehlsparameter eine Stelle in der Karte 409 zu wählen und entsprechend dem Inhalt des Karteneintrags zu dem Registerstapel 112 nach Fig. 12 zurückzukehren.
Bei der Durchführung des Kartenlesebefehls RMAP bewirkt gemäß Fig. 35 das Mikroprogramm 115, daß die Kartenadresse einschließlich der beiden höchsten Bits für die Kartenwahl dem Register PMA bzw. 411 eingegeben wird. Dann leitet das Mikroprogramm 115 eine Kartenleseoperationsfolge der Kartenspeicher-Steuerlogik 401 ein.
Diese Folge wird dann durch die Hardware durchgeführt, und bei dieser Folge wird die Kartenadresse vom Register PMA bzw. 411 aus über den Adressenwähler 415 zu der Karte 409 übertragen. Auch in diesem Fall werden nur die Kartenwähl- und Seitenadressenbits verwendet.
Der Inhalt des gewählten Karteneintrags wird gemäß Fig. 35 von der Karte 409 aus zu dem Kartenparitätsprüfer 451 und der Kartenausgangs- Verriegelungseinrichtung 443 übertragen. Der Prüfer 451 vergleicht das Paritätsbit aus dem Karteneintrag mit dem für die Daten berechneten ungeraden Paritätsbit.
Ist die Parität falsch, wird das Kartenseitenregister 441 mit der Kartenadresse geladen, und das Kartenparitätsfehlersignal setzt ein Fehlerkennzeichen, das bewirkt, daß der Betrieb der Zentraleinheit 105 durch einen Kartenparitätsfehler unterbrochen wird.
Anderenfalls werden bei richtiger Parität die Karteneintragsdaten aus der Kartenausgangs-Verriegelungseinrichtung 443 in das Kartenspeicherdatenregister MMD bzw. 445 überführt.
Schließlich überträgt infolge des Befehls das RMAP-Befehlsmikroprogramm die Daten aus dem Kartenspeicher-Datenregister 445 wieder dem Registerstapel 112 nach Fig. 12 zu.
Am Ende des Kartenlesebefehls RMAP ist der in Frage kommende Kartenteil gewählt worden, der betreffende logische Seiteneintrag des Kartenteils ist gewählt worden, und der Inhalt des Karteineintrags ist aus der Karte ausgelesen und als Befehlsergebnis zum Registerstapel der Zentraleinheit zurückgeleitet worden.
Der RMAP-Befehl wird in der nachstehend erläuterten Weise verwendet.
Die Hauptaufgabe des Kartenlesebefehls besteht darin, es dem Betriebssystem zu ermöglichen, das Bezugsnahmegeschichtsfeld und das schmutzige Bit eines Karteneintrags mit dem aus Fig. 36 ersichtlichen Format zu prüfen, um eine zu überlagernde Seite in der nachstehend erläuterten Weise zu bestimmen.
Ferner dient der Kartenlesebefehl RMAP zu Diagnosezwecken, um festzustellen, ob die Kartenspeicherung einwandfrei arbeitet.
Der Kartenalterungsbefehl AMAP wird durch die Speicherverwaltungsfunktion des Betriebssystems verwendet, um in der Karte nützliche Informationen über die Benutzungsgeschichte bereitzuhalten. Diese Informationen werden in der Karte durch Karteneinträge, d. h. die Bits R, S und T des Karteneintragformats nach Fig. 36 innerhalb eines Kartenteils bereit gehalten, und es wird eine typische "Alterung" jeweils dann durchgeführt, wenn in dem Kartenteil eine Unterbrechung infolge eines Seitenfehlers stattgefunden hat.
Der Befehl AMAP weist nur einen einzigen Parameter auf, bei dem es sich um die Kartenadresse handelt, welche die zu alternde Kartenstelle angibt.
Bei der Ausführung des Kartenalterungsbefehls AMAP wählt das Mikroprogramm 115 in der Zentraleinheit 105 eine Kartenstelle mit dem Kartenadressenparameterbefehl. Das Mikroprogramm 115 gibt den Kartenadressenparameter dem Register PMA ebenso ein wie bei dem Befehl RMAP.
An diesem Punkt wird eine Kartenleseoperationsfolge der Kartenspeicher- Steuerlogik 401 eingeleitet, und diese Folge läuft ebenso ab wie bei dem vorstehend beschriebenen Befehl RMAP.
Das Mikroprogramm 115 nach Fig. 12 liest den Inhalt des Karteneintrags aus dem Register NMD bzw. 445 nach Fig. 35 aus, entnimmt das die Benutzungsgeschichte bezeichnende Feld, d. h. gemäß Fig. 36 die Bits R, S und T bzw. 10, 11 und 12, verschiebt das Feld um eine Stelle nach rechts und fügt das Feld wieder ein, um die neuen Karteneintragdaten zu bilden. Hierbei wird bei dem Bit R eine Null eingesetzt, das Bit R wird auf den Platz des Bits S verschoben, das Bit S wird auf den Platz des Bits T verschoben, und das alte Bit T geht verloren.
Nunmehr bewirkt das Mikroprogramm 115, daß gemäß Fig. 34 das Register PMD bzw. 423 mit Hilfe des abgeänderten Karteneintrags mit diesen neuen Daten geladen wird, und daß die neuen Karteneintragdaten ähnlich wie bei der Folge SMAP erneut in den gewählten Karteneintrag eingeschrieben werden.
Auf diese Weise wird die Durchführung des Kartenalterungsbefehls AMAP abgeschlossen.
Aufgrund des Kartenalterungsbefehls AMAP ist ein Karteneintrag aus der Karte ausgelassen worden, das Feld für die Benutzungsgeschichte ist verschoben worden, und dieser abgeänderte Eintrag ist erneut in die gewählte Kartenstelle eingefügt worden.
Wie erwähnt, wird das Bit R jedesmal auf 1 gesetzt, wenn irgendein Speicher auf die entsprechende logische Seite Bezug nimmt, so daß dann, wenn dieses Bit eine 1 ist, diese Tatsache anzeigt, daß diese Seite seit dem letzten Kartensetzbefehl SMAP oder dem letzten Kartenalterungsoperationsbefehl AMAP benutzt worden ist.
Dieses Setzen des Bits R in Verbindung mit dem Kartenalterungsbefehl AMAP ermöglicht die Bereithaltung von Benutzungshäufigkeitsinformationen im Feld für die Kartenbenutzungsgeschichte.
Die Felder für die Benutzungsgeschichte sämtlicher Karteneinträge einer bestimmten Karte werden auf typische Weise gealtert, nachdem eine Seitenfehlerunterbrechung aufgetreten ist. Somit ist der Wert des drei Bits enthaltenden Feldes bei einem Karteneintrag ein Zeichen für die Zugriffshäufigkeit nach den drei vorausgegangenen Seitenfehlerunterbrechungen.
Beispielsweise zeigt der binäre Wert 7, bei dem alle drei Benutzungsbits auf 1 gesetzt sind, Zugriffe während jedes der Intervalle zwischen den vorausgegangenen Seitenfehlerunterbrechungen an.
Der binäre Wert 4 im Feld für die Benutzungsgeschichte, wobei das Bit R auf 1 und die Bits S und T auf 0 gesetzt sind, zeigt einen Zugriff in dem Intervall seit der letzten Seitenfehlerunterbrechung an und läßt erkennen, daß in dem Intervall vor der letzten Seitenfehlerunterbrechung keine Zugriffe stattgefunden haben.
Schließlich zeigt der binäre Wert 0 für das Feld damit den drei Bits an, daß während keines der drei Intervalle seit den drei letzten Seitenfehlerunterbrechungen kein Zugriff zu dieser logischen Seite erfolgt ist.
Je höher die binäre Zahl ist, die durch die drei Bits des Feldes für die Benutzungsgeschichte repräsentiert wird, desto höher ist die Häufigkeit der zuletzt erfolgten Zugriffe zu der logischen Seite.
Diese Informationen über die Benutzungsgeschichte bleiben erhalten, so daß dann, wenn es erforderlich ist, eine Seite zur Überlagerung zu wählen, eine Seite, die während der jüngsten Vergangenheit nur selten benutzt wurde, zu identifizieren. Bei einer Seite, zu der während der jüngstgen Vergangenheit nur selten Zugriff genommen wurde, dürfte auch weiterhin diese Eigenschaft beibehalten, und daher wird es wahrscheinlich nicht erforderlich sein, diese Seite nach der Überlagerung wieder in den Speicher zurückzuführen.
Diese Geschichte der Benutzungshäufigkeit wird durch die Speicherverwaltungsfunktion des Betriebssystems benutzt, um nur selten benutzte Seiten für die Überlagerung auszuwählen, so daß eine Umlagerung aus dem sekundären Speicher möglichst selten erforderlich ist und ein wirtschaftliches virtuelles Speichersystem realisiert wird.
Wie erwähnt, können sowohl die Zentraleinheit als auch das Ein-Ausgabe-System Zugriff zum Speicher nehmen.
Im folgenden wird die Wirkungsweise des Speichersystems und der Karte während einer Folge beschrieben, bei der die Zentraleinheit Zugriff zum Speicher nimmt. Diese Zugriffsfolge ist für die verschiedenen Zugriffe der Zentraleinheit zum Speicher ähnlich und gilt z. B. für das Schreiben von Daten, das Lesen von Daten und das Auslesen von Befehlen aus dem Speicher.
Die Zentraleinheit-Speicher-Zugriffsfolge wird entweder durch das Mikroprogramm 115 der Zentraleinheit oder die Befehlsabruflogik der Zentraleinheit eingeleitet. In beiden Fällen bewirkt die Zentraleinheit 105, daß das Register PMA bzw. 411 mit einer logischen Adresse mit 18 Bits geladen wird, um eine Datenlese-, Datenschreib- oder Befehlsleseoperationsfolge bei der Kartenspeicher- Steuerlogik 401 einzuleiten.
Zu der logischen Adresse mit 18 Bits gehören zwei höchste logische Adressenraumwählbits und 16 untergeordnete Bits zum Angeben einer Stelle innerhalb des logischen Adressenraums. Die beiden Wählbits können durch das Mikroprogramm 115 der Zentraleinheit bestimmt werden, oder sie können in der Zentraleinheit automatisch erzeugt werden, und zwar auf der Basis des Inhalts des Befehlsregisters I und des Umgebungsregisters E.
Die logische Adresse mit 18 Bits enthält zusätzlich zu den zwei höchten Bits zum Wählen der logischen Adresse sechs weitere Bits zum Benennen der logischen Seite innerhalb der gewählten Karte sowie 10 untergeordnete Bits zum Bestimmen der Versetzung innerhalb der Seite der gewählten Karte.
Nachdem alle vorausgegangenen Karten- oder Speicheroperationen abgeschlossen sind, wird bei der Datenlese-, Datenschreib- oder Befehlsleseoperationsfolge der Kartenspeicher-Steuerlogik 401 die gemäß Fig. 35 im Registger PMA bzw. 411 enthaltene Adresse mit 18 Bits durch den Adressenwähler 415 zu den Schienen 417 und 419 übertragen.
Die Schiene 419 überträgt den Seitenversetzungsteil der Adresse, der durch die Schiene 419 direkt zu den physikalischen Speichermodulen 403 nach Fig. 34 übertragen wird.
Die Schiene 417 überträgt den logischen Seitenadressenteil, der in eine physikalische Seitenadresse übersetzt werden muß, zu der Karte 409.
Der durch die logische Seitenadresse gewählte Karteneintrag wird gemäß Fig. 34 aus der Karte 409 ausgelesen und in die Kartenspeicher-Steuerlogik 401, den Kartenparitätsprüfer 451 (Fig. 35) und die Kartenausgabe-Verriegelungseinrichtung 443 überführt.
Ist das Abwesenheitsbit eine 1, wird das Kartenseitenregister 441 mit der logischen Seitenadresse geladen, zur Zentraleinheit 105 wird ein Seitenfehler-Unterbrechungssignal übertragen, und die Kartenspeicher-Steuerlogik 401 beendet die Speicherzugriffsfolge.
Wenn der Paritätsprüfer 451 bei dem Karteneintrag eine unrichtige Parität feststellt, wird das Kartenseitenregister 441 mit der logischen Seitenadresse geladen, zur Zentraleinheit wird ein Kartenparitätsfehlersignal übertragen, und die Speicherzugriffsfolge wird abgeschlossen.
Ist kein Fehler vorhanden, wird die physikalische Seitenadresse von der Kartenausgangs-Verriegelungseinrichtung 443 aus über die Schiene 421 zu den physikalischen Speichermulden 403 übertragen, und die Kartenspeicher-Steuerlogik 401 gibt über die Schiene 439 einen Befehl aus, um den gewählten Speichermodul 403 zu veranlassen, eine Lese- oder Schreiboperation durchzuführen.
Während der Speichermodul diese Lese- oder Schreiboperation ausführt, bewirkt die Kartenspeicher-Steuerlogik 401, daß die Karteneintragdaten modifiziert und neu geschrieben werden.
Die Karteneintragdaten werden ohne das Paritätsbit P bzw. das Bezugsbit R gemäß Fig. 35 von der Kartenausgangsverriegelungseinrichtung 443 aus zu der Logik 455 für das schmutzige Bit und zu dem Kartendatenwähler 447 übertragen.
Bei dieser Operation werden das physikalische Seitenfeld eines Karteneintrags, wie es im rechten unteren Teil von Fig. 36 vergrößert dargestellt ist, sowie die Bits S und T des Bezugsfeldes und das Abwesenheitsbit stets ohne Veränderung neu geschrieben.
Wenn bei der Zentraleinheit eine Datenschreiboperation abläuft, wird das dem Kartendatenwähler zugeführte schmutzige Bit D durch die zugehörige Logik 455 nach Fig. 35 auf 1 gesetzt. Anderenfalls wird das schmutzige Bit nicht verändert.
Das dem Kartendatenwähler durch die Bezugsbitlogik 453 zugeführte Bit R wird sowohl bei einer Leseoperation als auch bei einer Schreiboperation auf 1 gesetzt.
Wie erwähnt, bleiben das Feld für die physikalische Seite sowie die Bits S, T und A unverändert.
Der Kartendatenwähler 447 führt diese neuen Kartendaten dem Paritätsgenerator 449 und der Karte 409 zu.
Gemäß Fig. 35 erzeugt der Paritätsgenerator 449 aus den neuen Daten ein ungeradzahliges Pairätsbit P.
Hierauf bewirkt ein Kartenschreib-Abtastsignal der Kartenspeicher- Steuerlogik 401, daß die neuen Daten und die Parität in dem Karteneintrag geschrieben werden, der durch die Schiene 417 für die logische Seitenadresse gewählt worden ist.
Somit ist jetzt die logische Seite durch den Karteneintrag übersetzt worden, und der Karteneintrag ist neu geschrieben worden, wobei die Paritäts- und Bezugsbits sowie das schmutzige Bit aktualisiert worden sind.
Sobald der physikalische Speichermodul 403 seine Lese- oder Schreiboperation abschließt, führt er gemäß Fig. 34 über die Schiene 439 der Kartenspeicher-Steuerlogik 401 ein Abschlußsignal zu.
Bei einem Lesevorgang führt der Speichermodul 403 gemäß Fig. 34 die Speicherdaten der Schiene 437 zu.
Bei einer Datenleseoperationsfolge wird gemäß Fig. 34 das Register MD bzw. 433 mit den Daten geladen, die durch die Zentraleinheit 105 verwendet werden sollen.
Bei einer Befehlslese-Operationsfolge wird gemäß Fig. 34 das Register NI bzw. 431 mit den Daten geladen, die danach durch die Zentraleinheit 105 verarbeitet werden sollen.
Somit werden die Zugriffe zum Speicher der Zentraleinheit beim Lesen bzw. Schreiben von Daten sowie beim Lesen des Befehls in der beschriebenen Weise abgeschlossen.
Ein Zugriff des Ein-Ausgabe-Kanals zum Speicher zum Lesen oder Schreiben von Daten läuft ähnlich ab wie ein Zugriff zum Speicher einer Zentraleinheit, wobei jedoch die nachstehenden Ausnahmen gelten.
Das Kanalspeicheradressenregister CMA bzw. 129 nach Fig. 34 liefert die logische Adresse, und dieses Register benennt stets die Systemdatenkarte 469 nach Fig. 35.
Das Kanalspeicherdatenregister CMD bzw. 425 nach Fig. 34 liefert bei einer Schreiboperation Daten für den Speicher.
Das Kanaldatenregister CD bzw. 125 nach Fig. 34 dient zum Aufnehmen von Daten aus dem Speicher bei einer Leseoperation.
Bei einem Zugriff des Eingabe-/Ausgabekanals 109 zum Speicher handelt es sich stets um einen Speicherzugriff, bei dem Daten gelesen oder geschrieben werden, und im Gegensatz zu einem Zugriff zur Zentraleinheit erfolgt kein Zugriff zum Lesen eines Befehls.
Außerdem werden Kartenparitäts- und Abwesenheitssignale dem Eingabe-/Ausgabekanal 109 zugeführt, wenn sie bei einem Zugriff des Eingabe-/Ausgabekanals zum Speicher auftreten.
Wie vorstehend mehrfach erwähnt, werden bei den Speichermodulen 403 Halbleiterspeicher oder Kernspeicher verwendet.
Bei der Verwendung von Kernspeichern werden Fehler mit Hilfe eines Paritätsfehler-Nachweissystems festgestellt, das bei Kernspeichermodulen alle Einzelbitfehler nachweist. Da bekannte Verfahren zum Erzeugen von Paritätsfehlersignalen und zur Prüfung angewendet werden, dürfte sich eine Erläuterung der Einzelheiten der Kernspeicher erübrigen.
Die Wahrscheinlichkeit des Auftretens von Störungen bei Halbleiterspeichern ist genügend hoch, um die Verwendung eines Systems zum Nachweisen und Korrigieren von Fehlern zu rechtfertigen, und gemäß der Erfindung wird daher ein Nachweis- und Korrektursystem verwendet, bei dem für jedes Datenwort mit 16 Bits ein Prüffeld mit sechs Bits vorhanden ist. Fig. 37 bis 41 sowie die Tabelle am Ende der Beschreibung zeigen die Einzelheiten eines Fehlernachweis- und -korrektursystems, wie es verwendet wird, wenn die Speichermodule 403 als Halbleiterspeicher ausgebildet sind.
Wie nachstehend erläutert, ist das erfindungsgemäße Fehlernachweis- und -korrektursystem, bei dem mit einem Prüffeld mit sechs Bits gearbeitet wird, geeignet, alle Einzelbitfehler nachzuweisen und zu korrigieren und außerdem sämtliche Doppelbitfehler nachzuweisen. Ferner werden die meisten Fehler nachgewiesen, die drei oder mehr Bits betreffen.
Zwar wird das Fehlernachweis- und -korrektursystem im folgenden bezüglich eines Halbleiterspeichers beschrieben, doch sei bemerkt, daß sich die Anwendbarkeit dieses Systems nicht auf Halbleiterspeicher beschränkt, und daß es auch bei beliebigen anderen Einrichtungen zum Speichern ober Übertragen von Daten anwendbar ist.
Ein wichtiger Vorteil des erfindungsgemäßen Fehlernachweis- und -korrektursystems ergibt sich daraus, daß nicht nur Einzelbitfehler korrigiert werden, sondern daß auch alle nachfolgenden Zweibitfehler zuverlässig nachgewiesen werden, nachdem ein Fehler bei einem Einzelbit aufgetreten ist.
Daher ist das Multiprozessorsystem mit dem erfindungsgemäßen Fehlernachweis- und -korrektursystem für Einzelfehler tolerant, und es läßt sich beim Auftreten von Einzelbitfehlern bei einem Halbleiterspeicher betreiben, bis ein Zeitpunkt erreicht ist, an dem es zweckmäßig ist, den Speicher instandzusetzen.
Bei dem Fehlernachweis- und -korrektursystem wird ein systematischer linearer binärer Code mit dem Hamming-Abstand 4 verwendet. Bei diesem Code bildet jedes Prüfbit eine lineare Kombination von acht Datenbits, wie es in Fig. 38 gezeigt ist. Außerdem setzt sich gemäß Fig. 38 jedes Datenbit aus genau drei Prüfbits zusammen. Ein Vorteil dieses Codes besteht darin, daß eine gleichmäßige Erfassung der Datenbits durch die Prüfbits gewährleistet ist.
Zu dem Fehlernachweis- und -korrektursystem gehört ein Syndromdecodierer, bei dem die Logik mit hoher Geschwindigkeit arbeitet, und der aus einer kleinen Anzahl von Elementen besteht.
Einleitend sei bemerkt, daß bei dem erfindungsgemäßen Fehlernachweis- und -korrektursystem jedem gespeicherten Datenwort sechs Prüfbits beigefügt werden. Wird danach ein Datenwort aus dem Speicher ausgelesen, wird der Prüffeldteil des gespeicherten Wortes benutzt, um den Informationsverlust zu identifizieren oder nachzuweisen, den das Wort seit seiner Speicherung erlitten hat.
Bei einem Halbleiterspeicher bestehen zwei Möglichkeiten für die Entstehung von Informationsverlusten bzw. Fehlern. Im einen Fall handelt es sich um einen harten Fehler bei einer Speichervorrichtung, der dazu führt, daß die Vorrichtung vollständig ausfällt und keine Informationen mehr festhalten kann; im anderen Fall handelt es sich um einen weichen Fehler, bei dem ein elektrisches Rauschen zu einem Informationsverlust infolge von Einschwingvorgängen führen kann.
Zum Nachweisen von Fehlern dient ein Prüfbitkomparator, der ein Syndromsignal mit sechs Bits erzeugt. Bei dem Syndromsignal hande 28828 00070 552 001000280000000200012000285912871700040 0002002740056 00004 28709lt es sich um die Differenz zwischen dem aus dem gespeicherten Wort entnommenen Prüffeld und dem Prüffeld, das normalerweise dem Datenfeld des gespeicherten Wortes entsprechen würde.
Dieses Syndrom wird dann analysiert bzw. decodiert, um festzustellen, ob ein Fehler ausgetreten ist, und um dann, wenn dies der Fall ist, die Art der erforderlichen Korrektur zu bestimmen.
Bei einzelnen Datenbitfehlern veranlaßt das Ausgangssignal des Syndromdecodierers eine Datenbit-Komplementiereinrichtung, das fehlerhafte Bit umzukehren, woraufhin die korrigierten Daten als Ausgangssignal des Speichermoduls ausgegeben werden.
Wenn der Syndromdecodierer einen Mehrfachfehler anzeigt, wird das Vorhandensein dieses Fehlers dem Kartenspeicher-Steuerteil mit Hilfe einer der Steuer- und Fehlerleitungen gemeldet, um bei der Zentraleinheit eine Unterbrechung herbeizuführen.
Gemäß Fig. 37 gehören zu dem Speichermodul 403 ein logischer Zeitgeber- und Steuerteil 475 und eine Halbleiterspeicheranordnung 477, welch letztere es ermöglicht, 32 768 Wörter zu je 22 Bits zu speichern. Gemäß Fig. 37 gehören zu jedem Wort ein Datenfeld mit 16 Bits und ein Prüffeld mit sechs Bits.
Gemäß Fig. 37 gehören ferner zu jedem Halbleiterspeichermodul 403 eine Ausgabeverriegelungseinrichtung 479, ein Prüfbitgenerator 481, ein Prüfbitkomparator 483, ein Syndromdecodierer 485 und eine Datenbit-Komplementiereinrichtung 487.
Der Speichermodul 403 arbeitet mit den übrigen Teilen des Systems über die in Fig. 37 dargestellten Signal- und Datenwege zusammen. Zu diesen eine Schiene 429 zum Zuführen von Daten zum Speicher, Steuer- und Fehlerleitungen 439, die zu dem Kartenspeicher- Steuerteil 401 führen, Schienen 419 und 421 für die physikalischen Adressen sowie eine Schiene 437 zum Übernehmen von Daten aus der Speicherschiene. Diese Signal- und Datenwege sind auch in Fig. 34 dargestellt.
Gemäß Fig. 37 wird der Inhalt der Ausgabeverriegelungseinrichtung 479 über eine Schiene 489 dem Prüfbitkomparator 483 und dem Datenbitkomparator 487 zugeführt.
Die Ausgangssignale des Prüfbitkomparators 483 werden über eine Syndromschiene 491 zum Syndromdecodierer 485 und zu dem logischen Zeitgeber- und Steuerteil 475 übertragen.
Die Ausgangssignale des Syndromdecodierers 485 werden der Datenbit- Komplementiereinrichtung 487 über eine Schiene 493 zugeführt.
Weitere Ausgangssignale des Syndromdecodierers 485 werden durch Leitungen 495 und 497 zu dem logischen Zeitgeber- und Steuerteil 475 übertragen. Die Leitung 495 überträgt jeweils ein Einzelfehlersignal für einen korrigierbaren Fehler, während die Leitung 497 ein Mehrfachfehlersignal für einen nicht korrigierbaren Fehler überträgt.
Der logische Zeitgeber- und Steuerteil 475 gibt Steuersignale über eine Steuerschiene 499 an die Halbleiterspeicheranordnung 477 und die Ausgabe-Verriegelungseinrichtung 479 ab.
Das Ausgangssignal des Prüfbitgenerators 481 wird über eine Schiene 501 der Speicheranordnung 477 zugeführt.
Gemäß Fig. 38 gehören zu dem Prüfbitgenerator 481 sechs getrennte Paritätsbäume 503 mit je acht Bits.
Gemäß Fig. 39 sind bei dem Prüfbitkomparator 483 sechs getrennte Paritätsbäume 505 mit je neun Bits vorhanden.
Gemäß Fig. 40 gehören zu dem Syndromdecodierer 485 ein Decodiererteil 507 und ein Paritätsbaum 509 mit sechs Bits.
Gemäß Fig. 40 werden die Ausgangssignale des Decodiererteils 507 und des Paritätsbaums 509 mit sechs Bits in einer Fehleridentifizierungslogik 511 miteinander kombiniert.
Gemäß Fig. 41 sind bei der Bitkomplementiereinrichtung 437 sechzehn Exklusiv-ODER-Gatter 513 vorhanden.
Während des Betriebs wird das Datenwort mit sechzehn Bits über die Schiene 429 der Speicheranordnung 477 und dem Prüfbitgenerator 481 zugeführt, wie es in Fig. 37 gezeigt ist.
Gemäß Fig. 38 erzeugt der Prüfbitgenerator 481 sechs Prüfbits C0 bis C5 mit Hilfe der sechs 8-Bit-Paritätsbäume 503.
Gemäß Fig. 38 erzeugt der am weitesten links angeordnete 8-Bit- Paritätsbaum 503 das Prüfbit C0 bzw. Null entsprechend der logischen Gleichung für C0 im unteren Teil von Fig. 38. Daher ist das Prüfbit C0 das Komplement der Modulo-2-Summe der Datenbits 8 bis 15.
Das Prüfbit C3 wird durch einen 8-Bit-Paritätsbaum 503 entsprechend der logischen Gleichung für C3 im unteren Teil von Fig. 38 erzeugt. Das Prüfbit C3 ist die Modulo-2-Summe der Datenbits 0, 1, 2, 4, 7, 9, 10 und 12 entsprechend den Verbindungen zwischen dem 8-Bit-Paritätsbaum und den zugehörigen Datenbitleitungen des logischen Diagramms im oberen Teil von Fig. 38.
Entsprechend wird jedes der übrigen Prüfbits durch eine Modulo- 2-Addition von acht Datenbits erzeugt, wie es aus dem logischen Diagramm im oberen Teil von Fig. 38 ersichtlich ist.
Um eine Speicherschreiboperation durchzuführen, werden diese sechs durch den Prüfbitgenerator 481 erzeugten Prüfbits und die sechzehn Datenbits aus der Datenschiene 429 einer bestimmten Speicherstelle in der Speicheranordnung 477 eingegeben. Gemäß Fig. 37 gelangen die sechs Prüfbits und die sechzehn Datenbits unter der steuernden Wirkung der Zeitgeber- und Steuerlogik 475 und der Information über die physikalische Adresse aus den Schienen 419 und 421 zu der Speicheranordnung 477.
Zu jedem von der Speicheranordnung 477 aufgenommenen Wort gehört ein Prüffeld mit sechs Bits, das für dieses Wort auf ähnliche Weise erzeugt worden ist. Dieses Prüffeld wird zusammen mit dem gespeicherten Wort in der Speicheranordnung 477 festgehalten, bis danach bei einer Leseoperation Zugriff zu der Speicheranordnung genommen wird.
Soll ein bestimmtes Wort aus der Speicheranordnung 477 ausgelesen werden, bewirken die Zeitgeber- und Steuerlogik 475 und die Adresse aus den Schienen 419 und 421 für die physikalische Adresse, daß die Ausgabeverriegelungseinrichtung 479 mit dem Inhalt der gewählten Speicherstelle geladen wird. Die Ausgabeverriegelungseinrichtung hat eine Breite von 22 Bits, um die sechzehn Datenbits und das Prüffeld mit sechs Bits unterbringen zu können.
Aus der Ausgabeverriegelungseinrichtung 479 werden die sechzehn Datenbits und das Prüffeld mit sechs Bits durch eine Schiene 489 zu dem Prüfkomparator 483 nach Fig. 37 übertragen.
Gemäß Fig. 39 erzeugt der Prüfbitkomparator 483 sechs Syndrombits S0 bis S5.
Jedes Syndrombit ist das Ausgangssignal eines 9-Bit-Paritätsbaums 505, bei dessen Eingangssignalen es sich um acht Datenbits und ein Prüfbit handelt. Jedes Syndrombit steht in Beziehung zu einem entsprechend numerierten Prüfbit. Somit wird das Prüfbit Null nur zum Berechnen des Syndrombits 0 verwendet, das Prüfbit 1 dient nur zum Berechnen des Syndrombits 1 usw.
Beispielsweise ist das Syndrombit Null bzw. S0 das Komplement der Modulo-2-Summe des Prüfbits Null und der Datenbits 8 bis 15 gemäß der logischen Gleichung im unteren Teil von Fig. 39.
Entsprechend wird jedes der Syndrombits S1 bis S5 aus der Modulo- 2-Summe eines entsprechenden Prüfbits und acht der Datenbits erzeugt, wie es im oberen Teil von Fig. 39 durch die Verbindungen zu den betreffenden Datenbitleitungen für jedes Syndrombit dargestellt ist.
Das Vorhandensein oder Nichtvorhandensein von Fehlern wird ebenso wie ggf. die Art des Fehlers dadurch identifiziert, daß der Wert der sechs Syndrombits aus der Schiene 491 interpretiert wird.
In der nachstehenden Tabelle sind die 64 möglichen Werte des 6-Bit-Syndromcodes zusammen mit der Bedeutung jedes möglichen Wertes angegeben.
Syndromcodes
Somit hat die Anzahl der Einsen im Syndrom die nachstehende Bedeutung:
0 Bits:
kein Fehler
1 Bit: Prüfbitfehler
2 Bits: Doppelfehler
3 Bits: Datenbit- oder Mehrfachfehler
4 Bits: Doppelfehler
5 Bits: Mehrfachfehler
6 Bits: Doppelfehler
Wenn z. B. alle Syndrombits S0 bis S5 den Wert Null haben, ist weder im Datenfeld noch im Prüffeld ein Fehler vorhanden. Dieser Zustand ist in der Tabelle an ihrem Anfang links oben dargestellt.
Die Fälle, in denen Fehler vorhanden oder nicht vorhanden sind, sowie die Art der auftretenden Fehler sind am unteren Ende der Tabelle zusammengestellt.
Wie erwähnt, ist kein Fehler vorhanden, wenn alle sechs Syndrombits den Wert Null haben.
Wenn nur eines der sechs Syndrombits ansteht, zeigt dies einen Fehler bei dem entsprechenden Prüfbit an. Es sei bemerkt, daß es sich bei den Prüfbitfehlern um Einzelbitfehler handelt, die keine Korrektur des Datenwortes erfordern.
Gemäß der Zusammenstellung am unteren Ende der Tabelle zeigt das Anstehen von zwei Bits einen Doppelbitfehler an; hierbei könnte es sich um einen Fehler bei einem Datenbit und einen Fehler bei einem Prüfbit oder um zwei Fehler bei den Datenbits oder um zwei Fehler bei den Prüfbits handeln.
Stehen in dem 6-Bit-Syndromcode drei Bits an, kann dieser Zustand entweder einem einzelnen Datenbitfehler oder einem Mehrfachfehler entsprechen.
Um ein Beispiel für einen Einzelbitfehler bei einem Datenbit zu geben, sei gemäß dem rechten unteren Teil der Tabelle auf den Syndromcode 111 000 verwiesen, der einen Einzelbitfehler bei dem Datenbit D15 anzeigt. Wie nachstehend erläutert, bewirkt der Syndromdecodierer 485 nach Fig. 37 und 40, daß der falsche Wert des Datenbits 15 invertiert und hierdurch korrigiert wird.
Der Syndromdecodierer 485 erfüllt zwei Aufgaben. Erstens gibt er bei Einzeldatenbitfehlern gemäß Fig. 37 an den Datenbitkomplementierer 487 ein Eingangssignal ab, das veranlaßt, daß das fehlerhafte Bit in dem Datenbitkomplementierer invertiert wird.
Zweitens liefert der Syndromdecodierer 485 bei einem Fehler eines von zwei Fehlersignalen.
Über die Einzelfehlerleitung 495 wird der Zeitgeber- und Steuerlogik 475 ein Einzeldaten- oder Einzelprüfbitfehlersignal zugeführt.
Ein Mehrfachfehlersignal wird der Zeitgeber- und Steuerlogik 475 über die Mehrfachfehlerleitung 497 zugeführt.
Ein Mehrfachfehlersignal wird bei allen Doppelbitfehlern und den meisten Drei- oder Mehrbitfehlern erzeugt. Gemäß Fig. 34 bewirkt dieses Mehrfachfehlersignal, wie erwähnt, bei der Zentraleinheit 105 eine Unterbrechung.
Der Aufbau des Syndromdecodierers 485 geht aus Fig. 40 hervor. Zu dem Syndromdecodierer gehören ein Decodierer 507, ein 6-Bit- Paritätsbaum 509 und eine Fehleridentifizierungslogik 511.
Der Decodierer 507 decodiert fünf der sechs Syndrombits, d. h. die Bits S1 bis S5, um ausreichende Informationen in Form von 32 Ausgangssignalen zu liefern, mittels welcher sowohl die Signale für die Art der Fehler (Einzelfehler bzw. Doppel- oder Mehrfachfehler) als auch Signale für die sechzehn Ausgabeleitungen erzeugt werden, die für die Inversion von Datenbitfehlern bei den sechzehn Datenbits benötigt werden. Diese sechzehn Ausgabeleitungen für die Inversion von Datenbitfehlern sind in Fig. 40 in Form der Schiene 493 dargestellt und mit den Bezeichnungen T0 bis T15 versehen.
Die Ausgabeleitungen des Decodierers 507, die nicht an das ODER-Gatter 512 angeschlossen sind, entsprechen den Fehlern bei den sechs Prüfbits. Diese letzteren Fehler brauchen nicht korrigiert zu werden, da es sich nicht um Datenbitfehler handelt, und daher werden diese Ausgangssignale des Decodierers nicht verwendet.
Die übrigen an das ODER-Gatter 512 angeschlossenen Ausgabeleitungen repräsentieren Doppel- oder Mehrfachfehler und sind in Fig. 40 entsprechend bezeichnet. Alle diese Fälle werden durch das ODER-Gatter 512 gesammelt und bilden einen Bestandteil des Mehrfachfehlersignals in der Leitung 497 am Ausgang der Fehleridentifizierungslogik 511.
Gemäß Fig. 40 gehört zu dem Syndromdecodierer 485 ein Paritätsbaum 509, der die Modulo-2-Summe der Syndrombits S0 bis S5 bildet.
Das resultierende geradzahlige oder ungeradzahlige Ausgangssignal des Paritätsbaums 509 entspricht den am unteren Ende der vorstehenden Tabelle genannten Fehlerarten.
Somit entspricht die Ausgangsleitung 514 für geradzahlige Signale Syndromen, bei denen kein Bit ansteht, oder bei denen zwei oder vier oder sechs Bits anstehen.
Das geradzahlige Syndromsignal, das auftritt, wenn keine Bits anstehen, d. h. wenn kein Fehler vorhanden ist, wird aus dem in der Leitung 497 erscheinenden Mehrfachfehlersignal durch ein UND-Gatter 515 ausgeschlossen, das den Fall des Syndroms 0, d. h. das andere Eingangssignal des Decodierers 507 für das Gatter 515, ausschließt.
Syndrome, bei denen zwei, vier oder sechs Bits anstehen, stellen somit die einzigen verbleibenden geradzahligen Syndrome dar, die in Kombination mit dem Mehrfachsignal Mehrfachfehlersignale bilden, welche über die Mehrfachfehler-Ausgangsleitung 497 übertragen werden.
Nur bei Einzelbitfehlern ist es erwünscht, daß ein Ausgangssignal in der Einzelfehler-Anzeigeleitung 495 erscheint. Da das ungeradzahlige Ausgangssignal in der Leitung 510 des Paritätsbaums 509 der Tatsache entspricht, daß ein Bit ansteht (Prüfbitfehler) oder daß drei Bits anstehen (Datenbitfehler oder Mehrbitfehler) oder daß fünf Bits anstehen (Mehrbitfehler), wie es am Ende der Tabelle für das 6-Bit-Syndrom angegeben ist, muß das ungeradzahlige Ausgangssignal der Leitung 510 so qualifiziert werden, daß nur Einzelbitfehler über die Logik 511 zu der Leitung 495 übertragen werden. Diejenigen Drei-Bit-Syndromcodes, welche Mehrbitfehlern entsprechen, sowie sämtliche 5-Bit- Syndromcodes müssen daher ausgeschlossen werden, so daß nur die Einzelbitfehlersignale durch die Leitung 495 übertragen werden. Zu diesem Zweck sind gemäß Fig. 40 ein Inverter 517 und ein UND-Gatter 519 vorhanden.
Ein Einzelfehler-Ausgangssignal wird der Leitung 495 für Syndromcodes zugeführt, die ein einziges 1-Bit enthalten (Prüfbitfehler) sowie für diejenigen Syndromcodes, welche drei 1-Bits enthalten und Datenbitfehlern entsprechen. Wie erwähnt, zeigt das ungeradzahlige Ausgangssignal des Paritätsbaus 509 Syndrome an, bei denen ein, drei oder fünf Bits anstehen. Der Inverter 517 und das UND-Gatter 519 schließen Mehrfachfehler-3- Bit-Syndrom und alle 5-Bit-Syndrome aus. Somit gehören zu den Einzelfehler-Ausgangssignalen in der Leitung 495 nur Einzelprüfbitfehler und Einzeldatenbitfehler. Einzelprüfbitfehler brauchen nicht korrigiert zu werden, und Einzeldatenbitfehler werden durch die Bitkomplementiereinrichtung 487 nach Fig. 37 korrigiert.
Die vorstehend beschriebenen Operationen sind im unteren Teil von Fig. 40 durch die logischen Gleichungen für Mehrfach- und Einzelfehler dargestellt.
Es gibt einige Fehler mit drei oder mehr Bits, die nicht als Mehrfachfehler identifiziert werden und tatsächlich fälschlicherweise als Nichtfehler oder als Einzelbitfehler, d. h. als korrigierbare Fehler, identifiziert werden. Jedoch spielt sich die Fehlersignalerzeugung normalerweise so ab, daß eine Verschlechterung der Speicherung normalerweise nachgewiesen wird, bevor drei Bitfehler auftreten. Beispielsweise würde beim normalen Ablauf der Verschlechterung der Speicherung zuerst ein Einzelbitfehler aufgrund von Rauschen oder eines Versagens eines Schaltungselements auftreten, dann würde ein Doppelbitfehler durch eine zusätzliche Störung hervorgerufen werden usw., und die Doppelbitfehler würden nachgewiesen, bevor Fehler bei drei oder mehr Bits auftreten könnten.
Die Datenbit-Komplementiereinrichtung 487 nach Fig. 37 hat die Aufgabe, die durch den Syndromdecodierer 485 nachgewiesenen Datenbitfehler zu invertieren.
Fig. 41 zeigt die Einzelheiten des Aufbaus der Bitkomplementiereinrichtung 487, die sich aus Exklusiv-ODER-Gatter 513 zusammensetzt, von denen jedes ein bestimmtes Datenbit aus einer Leitung 489 invertiert, wenn in einer Leitung 493 ein entsprechendes Decodierer-Ausgangssignal erscheint.
Das korrigierte Ausgangssignal wird dann über eine Ausgangsleitung 437 der Komplementiereinrichtung 487 als Ausgangssignal des physikalischen Speichermoduls ausgegeben.
Hiermit ist die Beschreibung des Fehlernachweis- und -korrektursystems abgeschlossen.
Das erfindungsgemäße Speichersystem weist mehrere wichtige Merkmale auf.
Erstens sind bei der Speicherkarte vier getrennte logische Adressenbereiche für den Systemcode, Systemdaten, den Benutzercode und Benutzerdaten vorhanden, und innerhalb dieser Adressenbereiche werden logische Adressen in physikalische Adressen übersetzt.
Durch die Unterteilung des logischen Speichers in die vier Adressenbereiche werden die Systemprogramme gegenüber den Aktionen der Benutzerprogramme isoliert, so daß die Systemprogramme gegen alle Fehler seitens der Benutzer geschützt sind. Ferner ermöglicht es die Unterteilung in vier logische Adressenbereiche, den Code und die Daten sowohl bezüglich des Benutzercodes und der Benutzerdaten als auch bezüglich des Systemcodes und der Systemdaten voneinander getrennt zu halten. Hieraus ergibt sich der Vorteil, daß mit nicht modifizierbaren Programmen gearbeitet werden kann.
Innerhalb jedes Karteneintrags stehen spezielle Felder für diese Seitenadressenübersetzung sowie für andere spezielle Bedingungen zur Verfügung.
Ein Feld ermöglicht es, logische Seitenadressen in physikalische Seitenadressen zu übersetzen.
Ein weiteres Feld liefert eine Abwesenheits- oder Fehlanzeige in Form eines Abwesenheitsbits, das die Realisierung eines virtuellen Speicherplans ermöglicht, wenn sich logische Seiten in einem sekundären Speicher befinden können.
Bei einem weiteren Feld handelt es sich um das Feld für die Benutzungsgeschichte, das es ermöglicht, die Häufigkeit der Benutzung bestimmter Informationen zum Gebrauch durch die Speicherverwaltungsfunktion des Betriebssystems zu verfolgen, so daß sich das virtuelle Speichersystem wirtschaftlich ausnutzen läßt. Häufig benutzte Seiten werden im primären Speicher festgehalten, und nur selten benutzte Seiten werden für erforderlich werdende Überlagerungen gewählt.
In jedem Eintrag der Systemdatenkarte wird ein Feld für ein schmutziges Bit und die Benutzerdatenkarte bereitgehalten, so daß nicht modifizierte Datenseiten identifiziert werden können. Die so identifizierten nicht modifizierten Datenseiten werden nicht aus dem sekundären Speicher umgelagert, da eine gültige Kopie einer solchen Datenseite bereits im sekundären Speicher vorhanden ist.
Zu dem Speichersystem gehört eine Kartenspeicher-Steuerlogik, die automatisch die Bezugsinformationen und das schmutzige Bit festhält, wenn die Zentraleinheit und der Ein-Ausgabe-Kanal Zugriff zum Speicher nehmen.
Bei dem erfindungsgemäßen Speichersystem kann mit drei Befehlen der Zentraleinheit, d. h. den Befehlen SMAP, RMAP und AMAP, gearbeitet werden, die durch die Speicherverwaltungsfunktion des Betriebssystems verwendet werden, um die Informationen in der Karte auf dem laufenden zu halten und zu benutzen.
Bei dem erfindungsgemäßen Speichersystem ist der Speicher über zwei Zugänge zugänglich. Hierbei sind getrennte Zugriffe zum Speicher durch die Zentraleinheit und den Ein-Ausgabe-Kanal möglich. Um einen Zugriff zum Speicher durch den Ein-Ausgabe- Kanal durchzuführen, wird die Zentraleinheit nicht benötigt, so daß die Zentraleinheit andere Aufgaben erfüllen kann, während ein Ein-Ausgabe-Kanal Daten zu oder aus dem Speicher überträgt.
Das Vorhandensein von zwei Zugängen zum Speicher bedingt eine Entscheidung durch die Kartenspeicher-Steuerlogik für den Fall, daß sowohl die Zentraleinheit als auch der Ein-Ausgabe-Kanal gleichzeitig einen Zugriff zum Speicher versuchen. In einem solchen Fall erhält der Ein-Ausgabe-Kanal die Priorität, und die Zentraleinheit wartet, bis der jeweilige Zugriff durch den Ein-Ausgabe-Kanal abgeschlossen ist.
Der physikalische Speicher läßt sich durch Hinzufügen physikalischer Speichermodule erweitern.
Im Fall eines Halbleiterspeichers ist bei den physikalischen Speichermodulen unter bestimmten Bedingungen der Nachweis und die Korrektur von Fehlern möglich. Einzelfehler werden nachgewiesen und korrigiert, so daß der Betrieb der Zentraleinheit und des Ein-Ausgabe-Kanals auch dann fortgesetzt werden kann, wenn zeitweilige oder bleibende Störungen beim physikalischen Speichermodul auftreten. Bei dem Fehlernachweis- und -korrektursystem wird mit einem 22-Bit-Wort im Speichermedium gearbeitet. Hierbei repräsentieren 16 Bits die Daten, während sechs Bits ein Fehlernachweis- und -korrektur- bzw. -prüffeld bilden. Das Prüffeld mit sechs Bits ermöglicht den Nachweis und die Korrektur sämtlicher Einzelfehler sowie den Nachweis aller Doppelfehler.
Der Kernspeicher enthält Paritätssignale für den Nachweis von Einzelfehlern.
Bei dem erfindungsgemäßen Multiprozessorsystem ist jeder Prozessormodul mit einem eigenen primären Speichersystem versehen.
Da bei jedem Prozessormodul ein eigenes Speichersystem vorhanden ist, werden bei dem Multiprozessorsystem die Probleme vermieden, die sich bei einem mehrfach ausgenutzten Speicher ergeben können.
Zu den Problemen, die sich bei einem Multiprozessorsystem mit einem mehrfach ausgenutzten Speicher ergeben können, gehört die Tatsache, daß wegen des Konkurrenzbetriebs für einen bestimmten Prozessor nur eine verringerte Speicherbandbreite zur Verfügung steht, was sich um so schwerwiegender auswirkt, wenn zusätzliche Zentraleinheiten mit einem mehrfach ausgenutzten Speicher zusammengeschaltet werden.
Ferner werden gemäß der Erfindung die Probleme der Verriegelung beim Verkehr zwischen Zentraleinheiten durch Bereiche innerhalb eines gemeinsam benutzten Speichers vermieden, denn es ist kein solcher gemeinsam benutzter Speicher vorhanden, und der Verkehr zwischen den Prozessormodulen wird durch ein Interprozessorschienensystem vermittelt.
Bei einem gemeinsam benutzten Speicher besteht ein weiteres Problem darin, daß eine Störung bei diesem Speicher zu einem gleichzeitigen Versagen einiger oder sämtlicher Zentraleinheiten des Systems führen kann. Mit anderen Worten, bei einem System mit einem mehrfach ausgenutzten Speicher kann eine einzige Speicherstörung zu einer Unterbrechung des Betriebs eines Teils des Systems oder des gesamten Systems führen; bei dem erfindungsgemäßen Multiprozessorsystem tritt jedoch eine solche Folge bei einer Speicherstörung nicht ein.
Gemäß der Erfindung ermöglichen es die getrennten Adressenregister und die getrennten Datenregister, Daten zum und vom Speicher zu übertragen, da der Speicher für die Zentraleinheit und den Ein-Ausgabe-Kanal über zwei Zugänge zugänglich ist.
Zu der Zentraleinheit gehört ein spezielles NI-Register, das zum Aufnehmen von Befehlen aus dem Speicher dient und ein überlappendes Abrufen des nächsten Befehls während der Durchführung des laufenden Befehls ermöglicht, bei welch letzterer Daten aus dem Speicher ausgelesen werden können. Daher kann am Ende eines laufenden Befehls der nächste Befehl sofort eingeleitet werden, ohne daß ein Befehlsabruf abgewartet zu werden braucht.
Die Karte ist so aufgebaut, daß ein Zugriff zu ihr erheblich schneller möglich ist als zum physikalischen Hauptspeicher. Hieraus ergeben sich mehrere Vorteile bezüglich des Übersetzens von Adressen durch die Karte.
Beispielsweise kann bei dem erfindungsgemäßen Speichersystem die Karte in der Zeit neu geschrieben werden, während der Zugriff zum physikalischen Speicher abgewickelt wird.
Da sich das erneute Schreiben so schnell abspielt, führt das erneute Schreiben der Karte nicht zu einer Verlängerung der Zykluszeit des Speichers.
Ferner führt die hohe Geschwindigkeit, mit der Zugriff zur Karte genommen werden kann, zu einer Verkürzung der Gesamtzeit einschließlich der für einen Speicherzugriff erforderlichen Seitenübersetzung.
Die Parität wird bei der tatsächlichen Kartenspeicherung aufrechterhalten und geprüft. Somit werden sämtliche Fehler bei der Kartenspeicherung sofort angezeigt, bevor ein fehlerhafter Betrieb bei dem Prozessormodul möglich ist.

Claims (23)

1. Fehlertolerantes Multiprozessorsystem (31), mit
  • - wenigstens zwei getrennten Prozessormodulen (33), von denen jedes eine zentrale Verarbeitungseinheit (Zentraleinheit 105), einen Speicher (107) und einen Eingabe-/Ausgabekanal (109) aufweist;
  • - einem Interprozessor-Bussystem, um Befehle und Daten zwischen den Prozessormodul (33) auszutauschen;
  • - wenigstens zwei, zwischen den Prozessormodulen (33) angeordnete und für den Anschluß von Peripheriegeräten (45, 47, 49, 51, 53) vorgesehenen Geräteanschlüssen (41), die den Datenaustausch zwischen den einzelnen Prozessormodulen und den zugehörigen Peripheriegeräten steuern;
  • - wenigstens zwei von dem Interprozessor-Bussystem getrennte Ein-/Ausgabe-Leitungen (39), die jeweils zwischen dem Eingabe-/Ausgabekanal (109) eines der Prozessormodule (33) und den Geräteanschlüssen (41) verlaufen, um diese Geräteanschlüsse (41) mit wenigstens zwei Prozessormodulen zu verbinden;
dadurch gekennzeichnet, daß
  • - das Interprozessor-Bussystem wenigstens zwei parallele Interprozessor-Schienen (35) umfaßt, von denen jede mit den einzelnen Prozessormodulen (33) verbunden ist;
  • - Steuereinrichtungen (37) vorgesehen sind, die dem Interprozessor-Bussystem und den Prozessormodulen (33) zugeordnet sind und den Austausch von Befehlen und Daten zwischen den jeweils zwei Prozessormodulen (33) über die eine oder die andere Interprozessor-Schiene (35) steuern;
  • - jeder Geräteanschluß (41) wenigstens zwei getrennte Zugänge (43) für die Verbindung mit zwei Prozessormodulen (33) und wenigstens zwei getrennte Anschlüsse (111) für Peripheriegeräte (45, 47, 49, 51, 53) aufweist.
2. Fehlertolerantes Multiprozessorsystem nach Anspruch 1, dadurch gekennzeichnet, daß jedes Prozessormodul (33) eine Interprozessor-Steuereinrichtung (55) aufweist.
3. Fehlertolerantes Multiprozessorsystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß jede einzelne Interprozessor-Schiene (35) in Verbindung mit der zugehörigen Leitungssteuereinheit (Leitungssteuer-, Schienen-Steuereinrichtung 37) und der Interprozessor-Steuereinrichtung (55) eines der Prozessormodule (33) ein selektives Mehrfach-Verbindungssystem von jedem beliebigen Prozessormodul zu jedem beliebigen anderen Prozessormodul bildet.
4. Fehlertolerantes Multiprozessorsystem nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß für jedes Prozessormodul (33) und für jeden Geräteanschluß (41) zumindest zwei unabhängige Spannungsquellen (303) vorgesehen sind.
5. Fehlertolerantes Multiprozessorsystem nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß
  • - jede einzelne Interprozessor-Schiene (35) eine synchron arbeitende Mehrfachleitung ist und
  • - die Leitungssteuereinheiten (Leitungssteuer-, Schienen-Steuereinrichtungen 37) einen Schienentaktgeber (91) zur Zeitsynchronisation enthält.
6. Fehlertolerantes Multiprozessorsystem nach Anspruch 5, dadurch gekennzeichnet, daß die zentralen Verarbeitungseinheiten (105) der Prozessormodule (33) mit einer zur Taktfrequenz der Schienentaktgeber (91) unterschiedlichen Taktfrequenz arbeiten.
7. Fehlertolerantes Multiprozessorsystem nach Anspruch 6, dadurch gekennzeichnet, daß die Taktfrequenz der Schienentaktgeber (91) höher ist als diejenige der zentralen Verarbeitungseinheiten (105).
8. Fehlertolerantes Multiprozessorsystem nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die Interprozessor-Steuereinrichtungen (55) wenigstens zwei Eingabe-Warteschlangenteile (65), je eines für jede vorhandene Interprozessor-Schiene (35), und ein mehrfach genutztes Ausgabe-Warteschlangenteil (67) enthalten.
9. Fehlertolerantes Multiprozessorsystem nach Anspruch 8, dadurch gekennzeichnet, daß jedes Eingabe-Warteschlangenteil (65) eine Schienenfüllzustands-Logik (93), ein Senderregister (95), einen Eingabewarteschlangenpuffer (97), einen Eingabewarteschlangenzähler (99) und eine Prozessorleerzustands-Logik (101) enthält.
10. Fehlertolerantes Multiprozessorsystem nach Anspruch 8 oder 9, dadurch gekennzeichnet, daß das Ausgabe-Warteschlangenteil (67) ein Empfangsregister (71), eine Prozessorfüllzustands-Logik (73), eine Schienenleerzustands-Logik (75), einen Ausgabewarteschlangenzähler (77), einen Ausgabewarteschlangenpuffer (69) und einen Ausgabewarteschlangenzähler (79) enthält.
11. Fehlertolerantes Multiprozessorsystem nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß der Eingabe-/Ausgabekanal (109) eines jeden Prozessormoduls (33) einen Mikroprozessor (119), eine Datenweglogik (123) und eine Steuerlogik (141) enthält.
12. Fehlertolerantes Multiprozessorsystem nach Anspruch 11, dadurch gekennzeichnet, daß die Datenweglogik (123) ein Kanalspeicherdatenregister (125), ein Ein-/Ausgabe-Datenregister (127), ein Kanalspeicheradressenregister (129), ein Zeichenzählregister (131), ein Adressenregister (133), ein Prioritätsauflösungsregister (135) sowie eine Paritätserzeugungs- und Prüflogik (137) enthält.
13. Fehlertolerantes Multiprozessorsystem nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, daß die Geräteanschlüsse (41) eine gemeinsame Schnittstellenlogik (181) umfassen, welche über Verbindungsleitungen (179) mit den Zugängen (43) verbunden sind.
14. Fehlertolerantes Multiprozessorsystem nach Anspruch 13, dadurch gekennzeichnet, daß die gemeinsame Schnittstellenlogik (181) eine Eigentumsverriegelung (185) enthält, welche die Verbindung der Schnittstellenlogik (181) mit einem der Zugänge (43) bestimmt.
15. Fehlertolerantes Multiprozessorsystem nach Anspruch 13 oder 14, dadurch gekennzeichnet, daß jeder Geräteanschluß (41) einen mit der gemeinsamen Schnittstellenlogik (181) verbundenen Steuerteil Steuerteil der Geräteanschlußlogik, (187) umfaßt.
16. Fehlertolerantes Multiprozessorsystem nach Anspruch 15, dadurch gekennzeichnet, daß das Steuerteil (187) einen Puffer (189) enthält.
17. Fehlertolerantes Multiprozessorsystem nach einem der Ansprüche 13 bis 16, dadurch gekennzeichnet, daß jeder Zugang (43) ein Paritätsprüfregister (177), eine Wahlverriegelung (173) und eine Freigabeverriegelung (175) umfaßt.
18. Fehlertolerantes Multiprozessorsystem nach einem der Ansprüche 1 bis 17, dadurch gekennzeichnet, daß jeder Geräteanschluß (41) über eine Primärleitung (307), eine Ersatzleitung (309) und einen automatischen Schalter (311) an die wenigstens zwei unabhängigen Spannungsquellen (303) angeschlossen ist.
19. Fehlertolerantes Multiprozessorsystem nach Anspruch 18, dadurch gekennzeichnet, daß der automatische Schalter (311) eine der Primärleitung (307) zugeordnete Diode (341) und eine der Ersatzleitung (309) zugeordnete Diode (343) umfaßt.
20. Fehlertolerantes Multiprozessorsystem nach Anspruch 18 oder 19, dadurch gekennzeichnet, daß zwischen dem Geräteanschluß (41) und den Leitungen (307, 309) zusätzlich ein manuell betätigter Schalter (313) vorgesehen ist.
21. Fehlertolerantes Multiprozessorsystem nach einem der Ansprüche 18 bis 20, dadurch gekennzeichnet, daß zu jedem Geräteanschluß (41) eine Spannungsüberwachungsschaltung (182) gehört.
22. Fehlertolerantes Multiprozessorsystem nach einem der Ansprüche 1 bis 21, dadurch gekennzeichnet, daß der Speicher (107) eines jeden Prozessormoduls (33) über zwei Zugänge sowohl der zentralen Verarbeitungseinheit (105) als auch dem Eingabe-/Ausgabekanal (109) zugeordnet ist.
DE19772740056 1976-09-07 1977-09-06 Mulitprozessor-rechnersystem Granted DE2740056A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/721,043 US4228496A (en) 1976-09-07 1976-09-07 Multiprocessor system

Publications (2)

Publication Number Publication Date
DE2740056A1 DE2740056A1 (de) 1978-03-16
DE2740056C2 true DE2740056C2 (de) 1992-03-19

Family

ID=24896297

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19772740056 Granted DE2740056A1 (de) 1976-09-07 1977-09-06 Mulitprozessor-rechnersystem

Country Status (9)

Country Link
US (10) US4228496A (de)
JP (10) JPS5925257B2 (de)
BE (1) BE892627Q (de)
CA (1) CA1121481A (de)
DE (1) DE2740056A1 (de)
FR (4) FR2473197B1 (de)
GB (5) GB1588805A (de)
HK (5) HK62581A (de)
MY (5) MY8200206A (de)

Families Citing this family (848)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52123137A (en) * 1976-04-09 1977-10-17 Hitachi Ltd Duplication memory control unit
JPS5619575A (en) * 1979-07-25 1981-02-24 Fujitsu Ltd Data processing system having hierarchy memory
US4527237A (en) * 1979-10-11 1985-07-02 Nanodata Computer Corporation Data processing system
WO1981001066A1 (en) * 1979-10-11 1981-04-16 Nanodata Computer Corp Data processing system
US4516199A (en) * 1979-10-11 1985-05-07 Nanodata Computer Corporation Data processing system
US4491916A (en) * 1979-11-05 1985-01-01 Litton Resources Systems, Inc. Large volume, high speed data processor
US4333144A (en) * 1980-02-05 1982-06-01 The Bendix Corporation Task communicator for multiple computer system
US4323966A (en) * 1980-02-05 1982-04-06 The Bendix Corporation Operations controller for a fault-tolerant multiple computer system
US4318173A (en) * 1980-02-05 1982-03-02 The Bendix Corporation Scheduler for a multiple computer system
US4527236A (en) * 1980-04-04 1985-07-02 Digital Equipment Corporation Communications device for data processing system
US4383300A (en) * 1980-04-04 1983-05-10 The United States Of America As Represented By The Secretary Of The Navy Multiple scanivalve control device
NL8002787A (nl) * 1980-05-14 1981-12-16 Philips Nv Multiprocessor-rekenmachinesysteem voor het uitvoeren van een recursief algorithme.
US4376975A (en) * 1980-06-26 1983-03-15 Gte Automatic Electric Labs Inc. Arbitration controller providing for access of a common resource by a plurality of central processing units
US4363096A (en) * 1980-06-26 1982-12-07 Gte Automatic Electric Labs Inc. Arbitration controller providing for access of a common resource by a duplex plurality of central processing units
US4374414A (en) * 1980-06-26 1983-02-15 Gte Automatic Electric Labs Inc. Arbitration controller providing for access of a common resource by a duplex plurality of central processing units
US4374413A (en) * 1980-06-26 1983-02-15 Gte Automatic Electric Labs Inc. Arbitration controller providing for access of a common resource by a plurality of central processing units
US4412281A (en) * 1980-07-11 1983-10-25 Raytheon Company Distributed signal processing system
US4468738A (en) * 1980-07-16 1984-08-28 Ford Aerospace & Communications Corporation Bus access arbitration using unitary arithmetic resolution logic and unique logical addresses of competing processors
FR2490434B1 (fr) * 1980-09-12 1988-03-18 Quinquis Jean Paul Dispositif de resolution des conflits d'acces et d'allocation d'une liaison de type bus interconnectant un ensemble de processeurs non hierarchises
CH651950A5 (de) * 1980-10-20 1985-10-15 Inventio Ag Multiprozessoranordnung.
US4378594A (en) * 1980-10-24 1983-03-29 Ncr Corporation High speed to low speed data buffering means
US4433374A (en) * 1980-11-14 1984-02-21 Sperry Corporation Cache/disk subsystem with cache bypass
US4520441A (en) * 1980-12-15 1985-05-28 Hitachi, Ltd. Data processing system
US4446514A (en) * 1980-12-17 1984-05-01 Texas Instruments Incorporated Multiple register digital processor system with shared and independent input and output interface
FR2497373B1 (fr) * 1980-12-30 1986-09-05 Bull Sa Systeme d'alimentation microprogrammable pour systeme de traitement de donnees comportant un panneau de service destine aux operations de maintenance et procedes d'exploitation de ce panneau de service
GB2214334B (en) * 1988-01-05 1992-05-06 Texas Instruments Ltd Integrated circuit
USRE37496E1 (en) * 1981-01-21 2002-01-01 Hitachi, Ltd Method of executing a job
JPS57121750A (en) * 1981-01-21 1982-07-29 Hitachi Ltd Work processing method of information processing system
US4435762A (en) 1981-03-06 1984-03-06 International Business Machines Corporation Buffered peripheral subsystems
JPS57153359A (en) * 1981-03-18 1982-09-21 Ibm Data processing system with common memory
ZA821999B (en) * 1981-03-31 1983-05-25 British Telecomm Computor or processor control systems
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4445171A (en) * 1981-04-01 1984-04-24 Teradata Corporation Data processing systems and methods
US4493021A (en) * 1981-04-03 1985-01-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Multicomputer communication system
US4455602A (en) * 1981-05-22 1984-06-19 Data General Corporation Digital data processing system having an I/O means using unique address providing and access priority control techniques
US4493024A (en) * 1981-05-22 1985-01-08 Data General Corporation Digital data processing system
US4419728A (en) * 1981-06-22 1983-12-06 Bell Telephone Laboratories, Incorporated Channel interface circuit providing virtual channel number translation and direct memory access
US4453213A (en) * 1981-07-30 1984-06-05 Harris Corporation Error reporting scheme
US4590551A (en) * 1981-08-24 1986-05-20 Burroughs Corporation Memory control circuit for subsystem controller
US4438494A (en) 1981-08-25 1984-03-20 Intel Corporation Apparatus of fault-handling in a multiprocessing system
JPS5846428A (ja) * 1981-09-11 1983-03-17 Sharp Corp 文章編集装置の停電保護用処理方式
WO1983001135A1 (en) * 1981-09-18 1983-03-31 Rovsing As Christian Multiprocessor computer system
US4482950A (en) * 1981-09-24 1984-11-13 Dshkhunian Valery Single-chip microcomputer
JPH0812621B2 (ja) * 1981-10-01 1996-02-07 ストレイタス・コンピュータ・インコーポレイテッド 情報転送方法及び装置
US4866604A (en) * 1981-10-01 1989-09-12 Stratus Computer, Inc. Digital data processing apparatus with pipelined memory cycles
US4597084A (en) * 1981-10-01 1986-06-24 Stratus Computer, Inc. Computer memory apparatus
US4486826A (en) * 1981-10-01 1984-12-04 Stratus Computer, Inc. Computer peripheral control apparatus
US4939643A (en) * 1981-10-01 1990-07-03 Stratus Computer, Inc. Fault tolerant digital data processor with improved bus protocol
US4811278A (en) * 1981-10-05 1989-03-07 Bean Robert G 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
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
AU560352B2 (en) * 1981-10-05 1987-04-02 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
JPS5868109A (ja) * 1981-10-17 1983-04-22 Toshiba Mach Co Ltd 機能拡張性を有するプログラマブルシ−ケンスコントロ−ラ
DE3280281D1 (de) * 1981-10-22 1991-02-07 Nec Corp Datenverarbeitungssystem mit hauptprozessor und datengesteuerten modulen.
US4482951A (en) * 1981-11-12 1984-11-13 Hughes Aircraft Company Direct memory access method for use with a multiplexed data bus
JPS5884308A (ja) * 1981-11-16 1983-05-20 Toshiba Mach Co Ltd プログラマブルシーケンスコントローラの制御装置
US4477871A (en) * 1981-11-23 1984-10-16 Motorola, Inc. Global operation coordination method and circuit
US4473878A (en) * 1981-11-23 1984-09-25 Motorola, Inc. Memory management unit
US4488256A (en) * 1981-11-23 1984-12-11 Motorola, Inc. Memory management unit having means for detecting and preventing mapping conflicts
US4476526A (en) * 1981-11-27 1984-10-09 Storage Technology Corporation Cache buffered memory subsystem
US4608689A (en) * 1981-12-04 1986-08-26 Canon Kabushiki Kaisha Data processing and transfer apparatus
US4476527A (en) * 1981-12-10 1984-10-09 Data General Corporation Synchronous data bus with automatically variable data rate
US4543627A (en) * 1981-12-14 1985-09-24 At&T Bell Laboratories Internal communication arrangement for a multiprocessor system
US4480307A (en) * 1982-01-04 1984-10-30 Intel Corporation Interface for use between a memory and components of a module switching apparatus
IL67664A (en) * 1982-01-19 1987-01-30 Tandem Computers Inc Computer memory system with data,address and operation error detection
US4672609A (en) * 1982-01-19 1987-06-09 Tandem Computers Incorporated Memory system with operation error detection
US4472712A (en) * 1982-03-05 1984-09-18 At&T Bell Laboratories Multipoint data communication system with local arbitration
US4464658A (en) * 1982-03-05 1984-08-07 At&T Laboratories Multipoint data communication system with collision detection
DE3215080A1 (de) * 1982-04-22 1983-10-27 Siemens AG, 1000 Berlin und 8000 München Anordnung zur kopplung von digitalen verarbeitungseinheiten
DE3215177A1 (de) * 1982-04-23 1983-10-27 Hartmann & Braun Ag, 6000 Frankfurt Ueberwachungssystem fuer eine oder mehrere, gleichartig aufgebaute prozessstationen
US4490785A (en) * 1982-05-07 1984-12-25 Digital Equipment Corporation Dual path bus structure for computer interconnection
JPS58221453A (ja) * 1982-06-17 1983-12-23 Toshiba Corp 多重系情報処理装置
US4564899A (en) * 1982-09-28 1986-01-14 Elxsi I/O Channel bus
US4503534A (en) * 1982-06-30 1985-03-05 Intel Corporation Apparatus for redundant operation of modules in a multiprocessing system
EP0112912A4 (de) * 1982-06-30 1987-04-28 Elxsi Ein-/ausgabekanalbus.
US4484272A (en) * 1982-07-14 1984-11-20 Burroughs Corporation Digital computer for executing multiple instruction sets in a simultaneous-interleaved fashion
US4628158A (en) * 1982-07-16 1986-12-09 At&T Bell Laboratories Stored program controller
FR2531550B1 (fr) * 1982-08-06 1987-09-25 Ozil Maurice Dispositif de couplage universel pour la mise en communication d'ensembles de traitement d'informations et d'au moins une unite peripherique
JPS5935209A (ja) * 1982-08-20 1984-02-25 Koyo Denshi Kogyo Kk シ−ケンスコントロ−ラ
US4539637A (en) * 1982-08-26 1985-09-03 At&T Bell Laboratories Method and apparatus for handling interprocessor calls in a multiprocessor system
US4484308A (en) * 1982-09-23 1984-11-20 Motorola, Inc. Serial data mode circuit for a memory
US4527157A (en) * 1982-09-30 1985-07-02 Gte Automatic Electric Inc. Single fault tolerant CCIS data link arrangement
US4663706A (en) * 1982-10-28 1987-05-05 Tandem Computers Incorporated Multiprocessor multisystem communications network
US4502114A (en) * 1982-10-29 1985-02-26 Gte Automatic Electric Incorporated Circuit for reliable data transfer between two central processing units
US4590554A (en) * 1982-11-23 1986-05-20 Parallel Computers Systems, Inc. Backup fault tolerant computer system
US4488228A (en) * 1982-12-03 1984-12-11 Motorola, Inc. Virtual memory data processor
US4524415A (en) * 1982-12-07 1985-06-18 Motorola, Inc. Virtual machine data processor
EP0109981B1 (de) * 1982-12-07 1987-06-16 Ibm Deutschland Gmbh Ausfallgesicherte Datenverarbeitungsanlage
US4493035A (en) * 1982-12-07 1985-01-08 Motorola, Inc. Data processor version validation
US4819154A (en) * 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories
EP0128945B1 (de) * 1982-12-09 1991-01-30 Sequoia Systems, Inc. Sicherstellungsspeichersystem
JPS59133624A (ja) * 1983-01-20 1984-08-01 Sharp Corp インタ−フエイス方式
JPS59146345A (ja) * 1983-02-10 1984-08-22 Masahiro Sowa コントロ−ルフロ−並列計算機方式
US4703449A (en) * 1983-02-28 1987-10-27 Data Translation Inc. Interrupt driven multi-buffer DMA circuit for enabling continuous sequential data transfers
US4599689A (en) * 1983-02-28 1986-07-08 Data Translations, Inc. Continuous data transfer system
US4872106A (en) * 1983-04-06 1989-10-03 New Forney Corp. Industrial process control system with back-up data processors to take over from failed primary data processors
US4604689A (en) * 1983-04-15 1986-08-05 Convergent Technologies, Inc. Bus repeater
US4571671A (en) * 1983-05-13 1986-02-18 International Business Machines Corporation Data processor having multiple-buffer adapter between a system channel and an input/output bus
US4733366A (en) * 1983-05-16 1988-03-22 Data General Corporation Apparatus for providing an interrupt signal in response to a permanent or transient power failure
US4593350A (en) * 1983-05-25 1986-06-03 Rca Corporation Distributed processor with periodic data transfer from each memory to like addresses of all other memories
US5224124A (en) * 1983-06-16 1993-06-29 Hitachi, Ltd. Data transmission system
US4577272A (en) * 1983-06-27 1986-03-18 E-Systems, Inc. Fault tolerant and load sharing processing system
US4587609A (en) * 1983-07-01 1986-05-06 Honeywell Information Systems Inc. Lockout operation among asynchronous accessers of a shared computer system resource
US4549274A (en) * 1983-07-11 1985-10-22 Honeywell Inc. Distributed electric power demand control
US4591975A (en) * 1983-07-18 1986-05-27 Data General Corporation Data processing system having dual processors
US4868741A (en) * 1983-07-22 1989-09-19 Texas Instruments Incorporated Computer bus deadlock prevention
US4858111A (en) * 1983-07-29 1989-08-15 Hewlett-Packard Company Write-back cache system using concurrent address transfers to setup requested address in main memory before dirty miss signal from cache
JPS6054052A (ja) * 1983-09-02 1985-03-28 Nec Corp 処理継続方式
US4493000A (en) * 1983-09-30 1985-01-08 Magnetic Peripherals Incorporated Power on/off protect circuit
US4649384A (en) * 1983-10-07 1987-03-10 Dialogic Systems Corp. Method and apparatus for fault tolerant serial communication of digital information
US4875154A (en) * 1983-10-13 1989-10-17 Mitchell Maurice E Microcomputer with disconnected, open, independent, bimemory architecture, allowing large interacting, interconnected multi-microcomputer parallel systems accomodating multiple levels of programmer defined heirarchy
US4860244A (en) * 1983-11-07 1989-08-22 Digital Equipment Corporation Buffer system for input/output portion of digital data processing system
US4583222A (en) * 1983-11-07 1986-04-15 Digital Equipment Corporation Method and apparatus for self-testing of floating point accelerator processors
US4639891A (en) * 1983-11-14 1987-01-27 Digital Equipment Corporation Signals path control circuitry for a data terminal
US4608688A (en) * 1983-12-27 1986-08-26 At&T Bell Laboratories Processing system tolerant of loss of access to secondary storage
US4881164A (en) * 1983-12-30 1989-11-14 International Business Machines Corporation Multi-microprocessor for controlling shared memory
NL8400186A (nl) * 1984-01-20 1985-08-16 Philips Nv Processorsysteem bevattende een aantal stations verbonden door een kommunikatienetwerk, alsmede station voor gebruik in zo een processorsysteem.
GB2156554B (en) * 1984-03-10 1987-07-29 Rediffusion Simulation Ltd Processing system with shared data
US5581732A (en) * 1984-03-10 1996-12-03 Encore Computer, U.S., Inc. Multiprocessor system with reflective memory data transfer device
US5255369A (en) * 1984-03-10 1993-10-19 Encore Computer U.S., Inc. Multiprocessor system with reflective memory data transfer device
US4821174A (en) * 1984-03-20 1989-04-11 Westinghouse Electric Corp. Signal processing system including a bus control module
US4633394A (en) * 1984-04-24 1986-12-30 International Business Machines Corp. Distributed arbitration for multiple processors
US4905145A (en) * 1984-05-17 1990-02-27 Texas Instruments Incorporated Multiprocessor
US4704599A (en) * 1984-06-20 1987-11-03 Kimmel Arthur T Auxiliary power connector and communication channel control circuit
DE3424587A1 (de) * 1984-07-04 1986-01-09 Standard Elektrik Lorenz Ag, 7000 Stuttgart Schaltungsanordnung zur steuerung der bidirektionalen datenuebertragung zwischen einer rechnereinheit und ueber ein-/ausgabeeinheiten angeschlossenen uebertragungsleitungen
US4669056A (en) * 1984-07-31 1987-05-26 International Business Machines Corporation Data processing system with a plurality of processors accessing a common bus to interleaved storage
US4688168A (en) * 1984-08-23 1987-08-18 Picker International Inc. High speed data transfer method and apparatus
JPS6194433A (ja) * 1984-10-15 1986-05-13 Mitsubishi Electric Corp シリアルバスの制御方式
US4754394A (en) * 1984-10-24 1988-06-28 International Business Machines Corporation Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage
US4870704A (en) * 1984-10-31 1989-09-26 Flexible Computer Corporation Multicomputer digital processing system
US4697232A (en) * 1984-11-30 1987-09-29 Storage Technology Corporation I/O device reconnection in a multiple-CPU, dynamic path allocation environment
US4692894A (en) * 1984-12-18 1987-09-08 Advanced Micro Devices, Inc. Overflow/Underflow detection for elastic buffer
DE3508048A1 (de) * 1985-03-07 1986-09-11 Standard Elektrik Lorenz Ag, 7000 Stuttgart Schnittstelleneinrichtung
US4967344A (en) * 1985-03-26 1990-10-30 Codex Corporation Interconnection network for multiple processors
US4752928A (en) * 1985-05-06 1988-06-21 Tektronix, Inc. Transaction analyzer
AU568977B2 (en) 1985-05-10 1988-01-14 Tandem Computers Inc. Dual processor error detection system
JPS623366A (ja) * 1985-06-28 1987-01-09 Toshiba Corp マルチプロセツサシステム
US5101478A (en) * 1985-06-28 1992-03-31 Wang Laboratories, Inc. I/O structure for information processing system
US5157595A (en) * 1985-07-19 1992-10-20 El Paso Technologies, Company Distributed logic control system and method
JPH0752876B2 (ja) * 1985-07-20 1995-06-05 ソニー株式会社 内部バス式デイジタル装置
JPH067380B2 (ja) * 1985-08-30 1994-01-26 株式会社日立製作所 マルチプロセッサシステム
US4787028A (en) * 1985-09-03 1988-11-22 Ncr Corporation Multicommunication protocol controller
US4700330A (en) * 1985-10-30 1987-10-13 Digital Equipment Corporation Memory for a digital data processing system including circuit for controlling refresh operations during power-up and power-down conditions
US4783732A (en) * 1985-12-12 1988-11-08 Itt Corporation Two-wire/three-port RAM for cellular array processor
US4736339A (en) * 1985-12-16 1988-04-05 Gte Communication Systems Corporation Circuit for simplex I/O terminal control by duplex processors
US4979108A (en) * 1985-12-20 1990-12-18 Ag Communication Systems Corporation Task synchronization arrangement and method for remote duplex processors
JPS62210436A (ja) * 1986-03-11 1987-09-16 Minolta Camera Co Ltd カメラのデ−タ伝送装置
US4746920A (en) * 1986-03-28 1988-05-24 Tandem Computers Incorporated Method and apparatus for clock management
US5151999A (en) * 1986-03-31 1992-09-29 Wang Laboratories, Inc. Serial communications controller for transfer of successive data frames with storage of supplemental data and word counts
GB2189168B (en) 1986-04-21 1989-11-29 Aligena Ag Composite membranes useful in the separation of low molecular weight organic compounds from aqueous solutions containing inorganic salts
US4920481A (en) * 1986-04-28 1990-04-24 Xerox Corporation Emulation with display update trapping
US5153577A (en) * 1986-04-28 1992-10-06 Xerox Corporation Mapping character color attributes into grey pixel patterns
US4937036A (en) * 1986-04-28 1990-06-26 Xerox Corporation Concurrent display of data from two different display processors and user interface therefore
US4899136A (en) * 1986-04-28 1990-02-06 Xerox Corporation Data processor having a user interface display with metaphoric objects
US5113517A (en) * 1986-04-28 1992-05-12 Xerox Corporation Concurrent display of data from two different processors each having different display font and user interface for controlling transfer of converted font data therebetween
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
US4939507A (en) * 1986-04-28 1990-07-03 Xerox Corporation Virtual and emulated objects for use in the user interface of a display screen of a display processor
US4860193A (en) * 1986-05-22 1989-08-22 International Business Machines Corporation System for efficiently transferring data between a high speed channel and a low speed I/O device
US5301322A (en) * 1986-05-23 1994-04-05 Hitachi, Ltd. System for converting job/process identifiers into processor/process identifiers in transferring data between processes in a multiprocessor system
US4835674A (en) * 1986-07-28 1989-05-30 Bull Hn Information Systems Inc. Computer network system for multiple processing elements
US4819159A (en) * 1986-08-29 1989-04-04 Tolerant Systems, Inc. Distributed multiprocess transaction processing system and method
US4951193A (en) * 1986-09-05 1990-08-21 Hitachi, Ltd. Parallel computer with distributed shared memories and distributed task activating circuits
US4791641A (en) * 1986-09-15 1988-12-13 Thinking Machines Corporation Parallel processor error checking
EP0260392A3 (de) * 1986-09-19 1992-03-11 International Business Machines Corporation Ein-Ausgabeschnittstellensteuerung zum Verbinden eines synchronen Busses mit einem asynchronen Bus und Verfahren zur Operationsausführung auf den Bussen
GB2196762B (en) * 1986-10-27 1990-12-19 Burr Brown Ltd Interleaved access to global memory by high priority source
US4933836A (en) * 1986-10-29 1990-06-12 United Technologies Corporation n-Dimensional modular multiprocessor lattice architecture
US4816990A (en) * 1986-11-05 1989-03-28 Stratus Computer, Inc. Method and apparatus for fault-tolerant computer system having expandable processor section
US4912461A (en) * 1986-11-05 1990-03-27 Cellular Control Systems Corporation Apparatus and network for transferring packets of electronic signals and associated method
US5146575A (en) * 1986-11-05 1992-09-08 International Business Machines Corp. Implementing privilege on microprocessor systems for use in software asset protection
US4914653A (en) * 1986-12-22 1990-04-03 American Telephone And Telegraph Company Inter-processor communication protocol
JPH0440549Y2 (de) * 1986-12-26 1992-09-22
JP2549642B2 (ja) * 1986-12-26 1996-10-30 株式会社東芝 画像処理装置
US5020024A (en) * 1987-01-16 1991-05-28 Stratus Computer, Inc. Method and apparatus for detecting selected absence of digital logic synchronism
JP2530829B2 (ja) * 1987-01-16 1996-09-04 株式会社日立製作所 直接メモリアクセス制御装置とマルチマイクロコンピュ―タシステム内におけるデ―タ転送方法
AU598101B2 (en) * 1987-02-27 1990-06-14 Honeywell Bull Inc. Shared memory controller arrangement
US5293597A (en) * 1987-03-09 1994-03-08 At&T Bell Laboratories Concurrent context memory management unit
US4989134A (en) * 1987-03-20 1991-01-29 Hewlett-Packard Company Method and apparatus for enhancing data storage efficiency
US5241627A (en) * 1987-04-09 1993-08-31 Tandem Computers Incorporated Automatic processor module determination for multiprocessor systems for determining a value indicating the number of processors
US5276807A (en) * 1987-04-13 1994-01-04 Emulex Corporation Bus interface synchronization circuitry for reducing time between successive data transmission in a system using an asynchronous handshaking
US4855899A (en) * 1987-04-13 1989-08-08 Prime Computer, Inc. Multiple I/O bus virtual broadcast of programmed I/O instructions
US4821170A (en) * 1987-04-17 1989-04-11 Tandem Computers Incorporated Input/output system for multiprocessors
US4920477A (en) * 1987-04-20 1990-04-24 Multiflow Computer, Inc. Virtual address table look aside buffer miss recovery method and apparatus
US5307506A (en) * 1987-04-20 1994-04-26 Digital Equipment Corporation High bandwidth multiple computer bus apparatus
US4933846A (en) * 1987-04-24 1990-06-12 Network Systems Corporation Network communications adapter with dual interleaved memory banks servicing multiple processors
US4805228A (en) * 1987-05-04 1989-02-14 The Johns Hopkins University Cellular logic processor
US5155857A (en) * 1987-05-29 1992-10-13 Hitachi, Ltd. Communication processing system in which communication by terminals is controlled according to a terminal management table
US4942579A (en) * 1987-06-02 1990-07-17 Cab-Tek, Inc. High-speed, high-capacity, fault-tolerant error-correcting storage system
AU605598B2 (en) * 1987-06-02 1991-01-17 Storage Computer Corporation Fault-tolerant, error-correcting storage system
CA1296103C (en) * 1987-06-02 1992-02-18 Theodore Jay Goodlander High-speed, high capacity, fault-tolerant, error-correcting storage system
US5257367A (en) * 1987-06-02 1993-10-26 Cab-Tek, Inc. Data storage system with asynchronous host operating system communication link
US5201040A (en) * 1987-06-22 1993-04-06 Hitachi, Ltd. Multiprocessor system having subsystems which are loosely coupled through a random access storage and which each include a tightly coupled multiprocessor
US5063497A (en) * 1987-07-01 1991-11-05 Digital Equipment Corporation Apparatus and method for recovering from missing page faults in vector data processing operations
US5317717A (en) * 1987-07-01 1994-05-31 Digital Equipment Corp. Apparatus and method for main memory unit protection using access and fault logic signals
US5278840A (en) * 1987-07-01 1994-01-11 Digital Equipment Corporation Apparatus and method for data induced condition signalling
US5047923A (en) * 1987-08-21 1991-09-10 Siemens Aktiengesellschaft Modularly structured digital communication system for interconnecting terminal equipment and public networks
US4958273A (en) * 1987-08-26 1990-09-18 International Business Machines Corporation Multiprocessor system architecture with high availability
US4999771A (en) * 1987-08-31 1991-03-12 Control Data Corporation Communications network
US4912680A (en) * 1987-09-03 1990-03-27 Minolta Camera Kabushiki Kaisha Image memory having plural input registers and output registers to provide random and serial accesses
DE3854026D1 (de) * 1987-09-04 1995-07-27 Digital Equipment Corp Fehlertolerantes Rechnersystem mit Fehler-Eingrenzung.
CA1320276C (en) * 1987-09-04 1993-07-13 William F. Bruckert Dual rail processors with error checking on i/o reads
US5185877A (en) * 1987-09-04 1993-02-09 Digital Equipment Corporation Protocol for transfer of DMA data
US4907228A (en) * 1987-09-04 1990-03-06 Digital Equipment Corporation Dual-rail processor with error checking at single rail interfaces
US4916704A (en) * 1987-09-04 1990-04-10 Digital Equipment Corporation Interface of non-fault tolerant components to fault tolerant system
JPS6479841A (en) * 1987-09-22 1989-03-24 Aisin Seiki Abnormality monitoring device for microcomputer
CA1297593C (en) * 1987-10-08 1992-03-17 Stephen C. Leuty Fault tolerant ancillary messaging and recovery system and method within adigital switch
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
JP2587434B2 (ja) * 1987-11-13 1997-03-05 株式会社日立製作所 データの入出力処理方法
US5084816A (en) * 1987-11-25 1992-01-28 Bell Communications Research, Inc. Real time fault tolerant transaction processing system
DE3854384T2 (de) * 1987-11-30 1996-03-28 Ibm Verfahren zum Betreiben eines einen anteilig genutzten virtuellen Speicher verwendenden Multiprozessorsystems.
JP2807010B2 (ja) * 1988-01-27 1998-09-30 ストレイジ テクノロジー コーポレイション ホストコンピュータとテープ駆動部間の相互接続用のテープ駆動制御ユニットおよびその操作方法
US5247692A (en) * 1988-02-08 1993-09-21 Nec Corporation Multiple file system having a plurality of file units holding the same files in which loss of data is prevented in a failure of a file unit
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
US5159686A (en) * 1988-02-29 1992-10-27 Convex Computer Corporation Multi-processor computer system having process-independent communication register addressing
US5113508A (en) * 1988-03-08 1992-05-12 International Business Machines Corporation Data cache initialization
US4982325A (en) * 1988-03-18 1991-01-01 At&T Bell Laboratories Applications processor module for interfacing to a database system
JPH01256843A (ja) * 1988-03-25 1989-10-13 Ncr Corp リンク・コントロール・システム
US4979100A (en) * 1988-04-01 1990-12-18 Sprint International Communications Corp. Communication processor for a packet-switched network
JPH0769882B2 (ja) * 1988-05-11 1995-07-31 富士通株式会社 クロスコール機能を有する入出力制御システム及びそのシステムにおける動的構成変更方法
US5003464A (en) * 1988-05-23 1991-03-26 Bell Communications Research, Inc. Methods and apparatus for efficient resource allocation
US5179683A (en) * 1988-06-14 1993-01-12 Hitachi, Ltd. Retrieval apparatus including a plurality of retrieval units
US5287483A (en) * 1988-07-06 1994-02-15 Kabushiki Kaisha Toshiba Prefetched operand storing system for an information processor
US4891785A (en) * 1988-07-08 1990-01-02 Donohoo Theodore J Method for transferring data files between computers in a network response to generalized application program instructions
JPH0237422A (ja) * 1988-07-28 1990-02-07 Oki Electric Ind Co Ltd 数値管理方式
US5337411A (en) * 1988-10-20 1994-08-09 Westinghouse Electric Corporation Multi-processor computer system bus architecture
EP0366583B1 (de) * 1988-10-24 1995-08-30 International Business Machines Corporation Verfahren zum Austauschen von Daten zwischen Programmen in einem Datenverarbeitungssystem
JPH0797328B2 (ja) * 1988-10-25 1995-10-18 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン フオールト・トレラント同期システム
US5155858A (en) * 1988-10-27 1992-10-13 At&T Bell Laboratories Twin-threshold load-sharing system with each processor in a multiprocessor ring adjusting its own assigned task list based on workload threshold
JPH0833799B2 (ja) * 1988-10-31 1996-03-29 富士通株式会社 データ入出力制御方式
US4994963A (en) * 1988-11-01 1991-02-19 Icon Systems International, Inc. System and method for sharing resources of a host computer among a plurality of remote computers
JPH02130647A (ja) * 1988-11-11 1990-05-18 Toshiba Corp 索引木構造の更新方式
US4965717A (en) 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5249298A (en) * 1988-12-09 1993-09-28 Dallas Semiconductor Corporation Battery-initiated touch-sensitive power-up
US5128996A (en) * 1988-12-09 1992-07-07 The Exchange System Limited Partnership Multichannel data encryption device
US5123047A (en) * 1988-12-09 1992-06-16 The Exchange System Limited Partnership Method of updating encryption device monitor code in a multichannel data encryption system
AU625293B2 (en) * 1988-12-09 1992-07-09 Tandem Computers Incorporated Synchronization of fault-tolerant computer system having multiple processors
US4997288A (en) * 1988-12-09 1991-03-05 The Exchange System Limited Partnership Power supply arrangement for fault-tolerant operation in a microcomputer-based encryption system
US4984240A (en) * 1988-12-22 1991-01-08 Codex Corporation Distributed switching architecture for communication module redundancy
GB2226666B (en) * 1988-12-30 1993-07-07 Intel Corp Request/response protocol
US5303351A (en) * 1988-12-30 1994-04-12 International Business Machines Corporation Error recovery in a multiple 170 channel computer system
US5097410A (en) * 1988-12-30 1992-03-17 International Business Machines Corporation Multimode data system for transferring control and data information in an i/o subsystem
DE69027868T2 (de) * 1989-01-13 1997-02-06 Ibm Datenverarbeitungssystem mit Mitteln zur Zustandserkennung der Befehle empfangenden Datenverarbeitungseinrichtung
US5237676A (en) * 1989-01-13 1993-08-17 International Business Machines Corp. High speed data transfer system which adjusts data transfer speed in response to indicated transfer speed capability of connected device
DE69027788D1 (de) * 1989-01-17 1996-08-22 Landmark Graphics Corp Verfahren zur Übertragung von Daten zwischen gleichzeitig ablaufenden Rechnerprogrammen
US5089958A (en) * 1989-01-23 1992-02-18 Vortex Systems, Inc. Fault tolerant computer backup system
US5148433A (en) * 1989-03-13 1992-09-15 Square D Company Transfer network interface
IT1228728B (it) * 1989-03-15 1991-07-03 Bull Hn Information Syst Sistema multiprocessore con replicazione di dati globali e due livelli di unita' di traduzione indirizzi.
US5276818A (en) * 1989-04-24 1994-01-04 Hitachi, Ltd. Bus system for information processing system and method of controlling the same
US5325517A (en) * 1989-05-17 1994-06-28 International Business Machines Corporation Fault tolerant data processing system
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
US5113522A (en) * 1989-05-17 1992-05-12 International Business Machines Corporation Data processing system with system resource management for itself and for an associated alien processor
US5283868A (en) * 1989-05-17 1994-02-01 International Business Machines Corp. Providing additional system characteristics to a data processing system through operations of an application program, transparently to the operating system
US5144692A (en) * 1989-05-17 1992-09-01 International Business Machines Corporation System for controlling access by first system to portion of main memory dedicated exclusively to second system to facilitate input/output processing via first system
US5369749A (en) * 1989-05-17 1994-11-29 Ibm Corporation Method and apparatus for the direct transfer of information between application programs running on distinct processors without utilizing the services of one or both operating systems
US5369767A (en) * 1989-05-17 1994-11-29 International Business Machines Corp. Servicing interrupt requests in a data processing system without using the services of an operating system
RU1777148C (ru) * 1989-05-30 1992-11-23 Институт Точной Механики И Вычислительной Техники Им.С.А.Лебедева Вычислительна система
US5353243A (en) * 1989-05-31 1994-10-04 Synopsys Inc. Hardware modeling system and method of use
JPH0314161A (ja) * 1989-06-13 1991-01-22 Toshiba Corp プロセッサ監視処理方式
US5146574A (en) * 1989-06-27 1992-09-08 Sf2 Corporation Method and circuit for programmable selecting a variable sequence of element using write-back
FR2649224B1 (fr) * 1989-06-30 1995-09-01 Nec Corp Systeme de traitement de l'information capable de prendre facilement en charge le traitement d'un processeur defaillant
US5036455A (en) * 1989-07-25 1991-07-30 Tandem Computers Incorporated Multiple power supply sensor for protecting shared processor buses
US5048022A (en) * 1989-08-01 1991-09-10 Digital Equipment Corporation Memory device with transfer of ECC signals on time division multiplexed bidirectional lines
US5068851A (en) * 1989-08-01 1991-11-26 Digital Equipment Corporation Apparatus and method for documenting faults in computing modules
US5153881A (en) * 1989-08-01 1992-10-06 Digital Equipment Corporation Method of handling errors in software
US5163138A (en) * 1989-08-01 1992-11-10 Digital Equipment Corporation Protocol for read write transfers via switching logic by transmitting and retransmitting an address
US5251227A (en) * 1989-08-01 1993-10-05 Digital Equipment Corporation Targeted resets in a data processor including a trace memory to store transactions
US5068780A (en) * 1989-08-01 1991-11-26 Digital Equipment Corporation Method and apparatus for controlling initiation of bootstrap loading of an operating system in a computer system having first and second discrete computing zones
US5065312A (en) * 1989-08-01 1991-11-12 Digital Equipment Corporation Method of converting unique data to system data
ATE139632T1 (de) * 1989-08-01 1996-07-15 Digital Equipment Corp Verfahren zur softwarefehlerbehandlung
US5347637A (en) * 1989-08-08 1994-09-13 Cray Research, Inc. Modular input/output system for supercomputers
US5159551A (en) * 1989-08-09 1992-10-27 Picker International, Inc. Prism architecture for ct scanner image reconstruction
US5133078A (en) * 1989-08-11 1992-07-21 International Business Machines Corporation Serial frame processing system in which validation and transfer of a frame's data from input buffer to output buffer proceed concurrently
US5179662A (en) * 1989-08-31 1993-01-12 International Business Machines Corporation Optimized i/o buffers having the ability to increase or decrease in size to meet system requirements
US5204951A (en) * 1989-10-02 1993-04-20 International Business Machines Corporation Apparatus and method for improving the communication efficiency between a host processor and peripheral devices connected by an scsi bus
US5212789A (en) * 1989-10-12 1993-05-18 Bell Communications Research, Inc. Method and apparatus for updating application databases used in a distributed transaction processing environment
AU6642290A (en) * 1989-10-17 1991-05-31 Maurice E. Mitchell A microcomputer with disconnected, open, independent, bimemory architecture
US5201055A (en) * 1989-11-03 1993-04-06 Compaq Computer Corporation Multiprocessing system includes interprocessor encoding and decoding logic used for communication between two cards through reduced addressing lines
DE58908975D1 (de) * 1989-11-21 1995-03-16 Itt Ind Gmbh Deutsche Zweiwege-Datenübergabe-Einrichtung.
US5687396A (en) * 1989-12-04 1997-11-11 Canon Kabushiki Kaisha Data buffer apparatus with interrupted transmission/reception
US5729708A (en) * 1989-12-04 1998-03-17 Canon Kabushiki Kaisha Portable data buffer apparatus with manually controlled reception/transmission
US5278974A (en) * 1989-12-04 1994-01-11 Digital Equipment Corporation Method and apparatus for the dynamic adjustment of data transfer timing to equalize the bandwidths of two buses in a computer system having different bandwidths
KR940002905B1 (en) * 1989-12-15 1994-04-07 Ibm Apparatus for conditioning priority arbitration in buffered direct memory addressing
WO1991009366A1 (en) * 1989-12-19 1991-06-27 E-Systems, Incorporated Method and apparatus for dispersed end-entity flow control in computer networks
FR2656441B1 (fr) * 1989-12-22 1993-12-10 Bull Sa Procede securise d'ecriture rapide d'informations pour dispositif de memoire de masse.
DE69032508T2 (de) 1989-12-22 1999-03-25 Tandem Computers Inc Fehlertolerantes Rechnersystem mit Online-Wiedereinfügung und Abschaltung/Start
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5239629A (en) * 1989-12-29 1993-08-24 Supercomputer Systems Limited Partnership Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system
US5193187A (en) * 1989-12-29 1993-03-09 Supercomputer Systems Limited Partnership Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5203004A (en) * 1990-01-08 1993-04-13 Tandem Computers Incorporated Multi-board system having electronic keying and preventing power to improperly connected plug-in board with improperly configured diode connections
US5123094A (en) * 1990-01-26 1992-06-16 Apple Computer, Inc. Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
JPH03235152A (ja) * 1990-02-13 1991-10-21 Fujitsu Ltd バス制御方式
KR950008837B1 (ko) * 1990-03-09 1995-08-08 후지쓰 가부시끼가이샤 멀티 프로세서 시스템용 제어시스템
JP3369580B2 (ja) * 1990-03-12 2003-01-20 ヒューレット・パッカード・カンパニー 直接メモリアクセスを行うためのインターフェース装置及び方法
US5201044A (en) * 1990-04-16 1993-04-06 International Business Machines Corporation Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory
DE69124285T2 (de) * 1990-05-18 1997-08-14 Fujitsu Ltd Datenverarbeitungssystem mit einem Eingangs-/Ausgangswegetrennmechanismus und Verfahren zur Steuerung des Datenverarbeitungssystems
US5164944A (en) * 1990-06-08 1992-11-17 Unisys Corporation Method and apparatus for effecting multiple error correction in a computer memory
US5261077A (en) * 1990-06-29 1993-11-09 Digital Equipment Corporation Configurable data path arrangement for resolving data type incompatibility
AU630299B2 (en) * 1990-07-10 1992-10-22 Fujitsu Limited A data gathering/scattering system in a parallel computer
GB9015363D0 (en) * 1990-07-12 1990-08-29 Marconi Gec Ltd Optical networks
US5341496A (en) * 1990-08-29 1994-08-23 The Foxboro Company Apparatus and method for interfacing host computer and computer nodes using redundant gateway data lists of accessible computer node data
US5255372A (en) * 1990-08-31 1993-10-19 International Business Machines Corporation Apparatus for efficiently interconnecing channels of a multiprocessor system multiplexed via channel adapters
US5289589A (en) * 1990-09-10 1994-02-22 International Business Machines Corporation Automated storage library having redundant SCSI bus system
US5475770A (en) * 1990-09-24 1995-12-12 Cgk Computer Gesellschaft Konstanz Mbh Parallel recognition of document images with a time-elapsed processing abortion to improve overall throughput
US5255388A (en) * 1990-09-26 1993-10-19 Honeywell Inc. Synchronizing slave processors through eavesdrop by one on a write request message directed to another followed by comparison of individual status request replies
US5293377A (en) * 1990-10-05 1994-03-08 International Business Machines, Corporation Network control information without reserved bandwidth
US5339397A (en) * 1990-10-12 1994-08-16 International Business Machines Corporation Hardware primary directory lock
US6453406B1 (en) 1990-10-17 2002-09-17 Compaq Computer Corporation Multiprocessor system with fiber optic bus interconnect for interprocessor communications
JP2575557B2 (ja) * 1990-11-13 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション スーパーコンピユータシステム
US5182800A (en) * 1990-11-16 1993-01-26 International Business Machines Corporation Direct memory access controller with adaptive pipelining and bus control features
US5210829A (en) * 1990-12-12 1993-05-11 Digital Equipment Corporation Adjustable threshold for buffer management
DE69231452T2 (de) 1991-01-25 2001-05-03 Hitachi Ltd Fehlertolerantes Rechnersystem mit Verarbeitungseinheiten die je mindestens drei Rechnereinheiten haben
US5537624A (en) * 1991-02-12 1996-07-16 The United States Of America As Represented By The Secretary Of The Navy Data repacking circuit having toggle buffer for transferring digital data from P1Q1 bus width to P2Q2 bus width
US5481707A (en) * 1991-05-19 1996-01-02 Unisys Corporation Dedicated processor for task I/O and memory management
US5297282A (en) * 1991-05-29 1994-03-22 Toshiba America Information Systems, Inc. Resume processing function for the OS/2 operating system
US5355490A (en) * 1991-06-14 1994-10-11 Toshiba America Information Systems, Inc. System and method for saving the state for advanced microprocessor operating modes
EP0528538B1 (de) * 1991-07-18 1998-12-23 Tandem Computers Incorporated Multiprozessorsystem mit gespiegeltem Speicher
GB2258069B (en) * 1991-07-25 1995-03-29 Intel Corp High speed computer graphics bus
WO1993003439A1 (en) * 1991-07-26 1993-02-18 Tandem Computers Incorporated Apparatus and method for frame switching
US5454082A (en) * 1991-09-18 1995-09-26 Ncr Corporation System for preventing an unselected controller from transferring data via a first bus while concurrently permitting it to transfer data via a second bus
US5237658A (en) * 1991-10-01 1993-08-17 Tandem Computers Incorporated Linear and orthogonal expansion of array storage in multiprocessor computing systems
US5758052A (en) * 1991-10-02 1998-05-26 International Business Machines Corporation Network management method using redundant distributed control processors
EP0606299B1 (de) * 1991-10-04 2003-09-10 Bay Networks, Inc. Verfahren und vorrichtung für simultane paketbus.
US5935253A (en) * 1991-10-17 1999-08-10 Intel Corporation Method and apparatus for powering down an integrated circuit having a core that operates at a speed greater than the bus frequency
GB2260631B (en) * 1991-10-17 1995-06-28 Intel Corp Microprocessor 2X core design
US5842029A (en) * 1991-10-17 1998-11-24 Intel Corporation Method and apparatus for powering down an integrated circuit transparently and its phase locked loop
WO1993009494A1 (en) * 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
EP0543512B1 (de) * 1991-11-19 1999-10-06 International Business Machines Corporation Multiprozessorsystem
DE69230126T2 (de) * 1991-11-27 2000-04-06 Canon Kk Wiedergabegerät
US5708784A (en) * 1991-11-27 1998-01-13 Emc Corporation Dual bus computer architecture utilizing distributed arbitrators and method of using same
US5297287A (en) * 1992-03-02 1994-03-22 S-Mos Systems, Incorporated System and method for resetting a microprocessor system
GB2264794B (en) * 1992-03-06 1995-09-20 Intel Corp Method and apparatus for automatic power management in a high integration floppy disk controller
WO1993018456A1 (en) * 1992-03-13 1993-09-16 Emc Corporation Multiple controller sharing in a redundant storage array
US5317751A (en) * 1992-03-18 1994-05-31 Aeg Westinghouse Transportation Systems, Inc. Method and apparatus for placing a trainline monitor system in a layup mode
US6794060B2 (en) 1992-03-27 2004-09-21 The Louis Berkman Company Corrosion-resistant coated metal and method for making the same
US5428769A (en) * 1992-03-31 1995-06-27 The Dow Chemical Company Process control interface system having triply redundant remote field units
US5506964A (en) * 1992-04-16 1996-04-09 International Business Machines Corporation System with multiple interface logic circuits including arbitration logic for individually linking multiple processing systems to at least one remote sub-system
US5434870A (en) * 1992-04-17 1995-07-18 Unisys Corporation Apparatus and method for verifying the authenticity of a circuit board
US5493663A (en) * 1992-04-22 1996-02-20 International Business Machines Corporation Method and apparatus for predetermining pages for swapping from physical memory in accordance with the number of accesses
JPH05314075A (ja) * 1992-05-07 1993-11-26 Nec Corp オンラインコンピュータ装置
US5325363A (en) * 1992-05-11 1994-06-28 Tandem Computers Incorporated Fault tolerant power supply for an array of storage devices
US6134655A (en) * 1992-05-13 2000-10-17 Comverge Technologies, Inc. Method and apparatus for initializing a microprocessor to insure fault-free operation
US6263422B1 (en) * 1992-06-30 2001-07-17 Discovision Associates Pipeline processing machine with interactive stages operable in response to tokens and system and methods relating thereto
EP0582535A1 (de) * 1992-07-07 1994-02-09 International Business Machines Corporation Verfahren zur automatischen Schrifttypenbestimmung bei gemeinsamer Verwendung von Anwendungen
JP2952112B2 (ja) * 1992-07-15 1999-09-20 株式会社日立製作所 多線式フィールドバスシステム
US5471586A (en) * 1992-09-22 1995-11-28 Unisys Corporation Interface system having plurality of channels and associated independent controllers for transferring data between shared buffer and peripheral devices independently
US5434997A (en) * 1992-10-02 1995-07-18 Compaq Computer Corp. Method and apparatus for testing and debugging a tightly coupled mirrored processing system
EP0596144A1 (de) * 1992-10-07 1994-05-11 International Business Machines Corporation Hierarchises Speichersystem für Mikrokode und Vorrichtung zur Korrektur von Fehlern in der Mikrokode
US6098113A (en) * 1992-10-22 2000-08-01 Ncr Corporation Apparatus and method for address translation and allocation for a plurality of input/output (I/O) buses to a system bus
US5473767A (en) * 1992-11-03 1995-12-05 Intel Corporation Method and apparatus for asynchronously stopping the clock in a processor
JPH0760395B2 (ja) * 1992-11-06 1995-06-28 日本電気株式会社 フォールトトレラントコンピュータシステム
US5392437A (en) * 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US6233702B1 (en) 1992-12-17 2001-05-15 Compaq Computer Corporation Self-checked, lock step processor pairs
US5751932A (en) * 1992-12-17 1998-05-12 Tandem Computers Incorporated Fail-fast, fail-functional, fault-tolerant multiprocessor system
US5513354A (en) * 1992-12-18 1996-04-30 International Business Machines Corporation Fault tolerant load management system and method
EP0610950A3 (de) * 1993-02-12 1998-04-22 Siemens Aktiengesellschaft Schaltungsanordnung zur Nachrichtenübertragung
JPH06259343A (ja) * 1993-03-10 1994-09-16 Hitachi Ltd 多重バス制御方式及びそれを用いたシステム
US5491786A (en) * 1993-03-12 1996-02-13 International Business Machines Corporation Method and system for management of units within a data processing system
AU6408294A (en) * 1993-03-16 1994-10-11 Ht Research, Inc. A chassis for a multiple computer system
US5559980A (en) * 1993-03-18 1996-09-24 Lucent Technologies Inc. Method and apparatus for detecting references to deallocated memory in a dynamic memory allocation system
US5586332A (en) * 1993-03-24 1996-12-17 Intel Corporation Power management for low power processors through the use of auto clock-throttling
US5919266A (en) * 1993-04-02 1999-07-06 Centigram Communications Corporation Apparatus and method for fault tolerant operation of a multiprocessor data processing system
US5664195A (en) * 1993-04-07 1997-09-02 Sequoia Systems, Inc. Method and apparatus for dynamic installation of a driver on a computer system
GB2277816B (en) * 1993-05-04 1997-09-03 Motorola Inc Data communication system
JP2750315B2 (ja) * 1993-05-14 1998-05-13 インターナショナル・ビジネス・マシーンズ・コーポレイション 識別子の指定方法およびコンピュータ・システム
US5490279A (en) * 1993-05-21 1996-02-06 Intel Corporation Method and apparatus for operating a single CPU computer system as a multiprocessor system
US5426736A (en) * 1993-05-26 1995-06-20 Digital Equipment Corporation Method and apparatus for processing input/output commands in a storage system having a command queue
US5861894A (en) * 1993-06-24 1999-01-19 Discovision Associates Buffer manager
US5446848A (en) * 1993-06-25 1995-08-29 Unisys Corp Entry level data processing system which is expandable by a factor of two to a partitionable upgraded system with low overhead
US5471625A (en) * 1993-09-27 1995-11-28 Motorola, Inc. Method and apparatus for entering a low-power mode and controlling an external bus of a data processing system during low-power mode
US5812757A (en) * 1993-10-08 1998-09-22 Mitsubishi Denki Kabushiki Kaisha Processing board, a computer, and a fault recovery method for the computer
US5448723A (en) * 1993-10-15 1995-09-05 Tandem Computers Incorporated Method and apparatus for fault tolerant connection of a computing system to local area networks
EP0731945B1 (de) * 1993-12-01 2000-05-17 Marathon Technologies Corporation Fehler-betriebssichere/fehler tolerante computerbetriebsmethode
JP3370155B2 (ja) * 1993-12-01 2003-01-27 富士通株式会社 データ処理システム
JP3161189B2 (ja) 1993-12-03 2001-04-25 株式会社日立製作所 記憶システム
US5771397A (en) * 1993-12-09 1998-06-23 Quantum Corporation SCSI disk drive disconnection/reconnection timing method for reducing bus utilization
EP0666525B1 (de) * 1994-02-04 2001-09-12 Intel Corporation Verfahren und Vorrichtung zur Stromverbrauchssteuerung in einem Rechnersystem
CA2142510A1 (en) * 1994-02-24 1995-08-25 Robert W. Horst Massively parallel multiprocessor system with fault-tolerant interprocessor network
US5600576A (en) * 1994-03-11 1997-02-04 Northrop Grumman Corporation Time stress measurement device
CA2145363C (en) * 1994-03-24 1999-07-13 Anthony Mark Jones Ram interface
US5664089A (en) * 1994-04-26 1997-09-02 Unisys Corporation Multiple power domain power loss detection and interface disable
JP2679674B2 (ja) * 1994-05-02 1997-11-19 日本電気株式会社 半導体製造ライン制御装置
US5557738A (en) * 1994-05-09 1996-09-17 Apple Computer, Inc. Power system configuration and recovery from a power fault condition in a computer system having multiple power supplies
US5623596A (en) * 1994-05-09 1997-04-22 Apple Computer, Inc. Power fault protection in a computer system having multiple power supplies
AU2663095A (en) * 1994-06-10 1996-01-05 Sequoia Systems, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5566297A (en) * 1994-06-16 1996-10-15 International Business Machines Corporation Non-disruptive recovery from file server failure in a highly available file system for clustered computing environments
US5928368A (en) * 1994-06-23 1999-07-27 Tandem Computers Incorporated Method and apparatus for fault-tolerant multiprocessing system recovery from power failure or drop-outs
GB2291571A (en) * 1994-07-19 1996-01-24 Ibm Text to speech system; acoustic processor requests linguistic processor output
US5649152A (en) * 1994-10-13 1997-07-15 Vinca Corporation Method and system for providing a static snapshot of data stored on a mass storage system
US5835953A (en) * 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
WO1996013779A1 (fr) * 1994-10-31 1996-05-09 Nkk Corporation Systeme de multiprocesseur
US5724554A (en) * 1994-11-30 1998-03-03 Intel Corporation Apparatus for dual serial and parallel port connections for computer peripherals using a single connector
US5740359A (en) * 1994-12-27 1998-04-14 Kabushiki Kaisha Toshiba Program execution system having a plurality of program versions
CA2167632A1 (en) 1995-01-23 1996-07-24 Leonard R. Fishler Apparatus and method for efficient transfer of data and events between processes and between processes and drivers in a parallel, fault tolerant message based operating system
CA2167633A1 (en) * 1995-01-23 1996-07-24 Leonard R. Fishler Apparatus and method for efficient modularity in a parallel, fault tolerant, message based operating system
US5576945A (en) * 1995-01-23 1996-11-19 Tandem Computers Incorporated Transaction monitor process with pre-arranged modules for a multiprocessor system
US5630140A (en) * 1995-01-23 1997-05-13 Tandem Computers Incorporated Ordered and reliable signal delivery in a distributed multiprocessor
US5978914A (en) * 1995-01-23 1999-11-02 Tandem Computers Incorporated Method and apparatus for preventing inadvertent changes to system-critical files in a computing system
CA2167634A1 (en) * 1995-01-23 1996-07-24 Michael E. Fisher Method and apparatus for maintaining network connections across a voluntary process switchover
EP0730237A1 (de) * 1995-02-28 1996-09-04 Nec Corporation Multiprozessorsystem mit virtuell adressierbaren Kommunikationsregistern und Steuerungsverfahren
JPH08256155A (ja) * 1995-03-17 1996-10-01 Fujitsu Ltd ディジタル処理装置のポーリング方法及びその装置
US5864654A (en) * 1995-03-31 1999-01-26 Nec Electronics, Inc. Systems and methods for fault tolerant information processing
US5564027A (en) * 1995-04-20 1996-10-08 International Business Machines Corporation Low latency cadence selectable interface for data transfers between busses of differing frequencies
US5956160A (en) * 1995-04-25 1999-09-21 Ricoh Company, Ltd. Image forming system including a printer and scanner having separate housings
US5848230A (en) * 1995-05-25 1998-12-08 Tandem Computers Incorporated Continuously available computer memory systems
US5790868A (en) * 1995-06-07 1998-08-04 Tandem Computers, Inc. Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment
US5630133A (en) * 1995-06-07 1997-05-13 Tandem Computers, Incorporated Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
US5687372A (en) * 1995-06-07 1997-11-11 Tandem Computers, Inc. Customer information control system and method in a loosely coupled parallel processing environment
US5673416A (en) * 1995-06-07 1997-09-30 Seiko Epson Corporation Memory request and control unit including a mechanism for issuing and removing requests for memory access
US5682507A (en) * 1995-06-07 1997-10-28 Tandem Computers, Incorporated Plurality of servers having identical customer information control procedure functions using temporary storage file of a predetermined server for centrally storing temporary data records
US5826043A (en) * 1995-06-07 1998-10-20 Ast Research, Inc. Docking station with serially accessed memory that is powered by a portable computer for identifying the docking station
US5734843A (en) * 1995-06-07 1998-03-31 Advanced Micro Devices Inc. Reverse data channel as a bandwidth modulator
US5687308A (en) * 1995-06-07 1997-11-11 Tandem Computers Incorporated Method to improve tolerance of non-homogeneous power outages
JP3086779B2 (ja) * 1995-06-19 2000-09-11 株式会社東芝 メモリ状態復元装置
US5812861A (en) * 1995-06-22 1998-09-22 Intel Corporation Override signal for forcing a powerdown of a flash memory
US5740350A (en) * 1995-06-30 1998-04-14 Bull Hn Information Systems Inc. Reconfigurable computer system
US5752251A (en) * 1995-08-07 1998-05-12 Ncr Corporation Method and apparatus for recovering aborted file (or data) transmission
WO1997011426A1 (en) 1995-09-18 1997-03-27 Cyberstorage Systems, Inc. Universal storage management system
JP3628777B2 (ja) 1995-10-30 2005-03-16 株式会社日立製作所 外部記憶装置
US5745672A (en) * 1995-11-29 1998-04-28 Texas Micro, Inc. Main memory system and checkpointing protocol for a fault-tolerant computer system using a read buffer
US5737514A (en) * 1995-11-29 1998-04-07 Texas Micro, Inc. Remote checkpoint memory system and protocol for fault-tolerant computer system
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5751939A (en) * 1995-11-29 1998-05-12 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory
US5954794A (en) 1995-12-20 1999-09-21 Tandem Computers Incorporated Computer system data I/O by reference among I/O devices and multiple memory units
US5931903A (en) 1995-12-20 1999-08-03 Tandem Computers Incorporated Computer system data I/O by reference among multiple CPUS
US5941959A (en) 1995-12-20 1999-08-24 Tandem Computers Incorporated System for transferring a data stream to a requestor without copying data segments to each one of multiple data source/sinks during data stream building
US5790807A (en) 1995-12-20 1998-08-04 Tandem Computers Incorporated Computer sysem data I/O by reference among CPUS and I/O devices
US5852719A (en) 1995-12-20 1998-12-22 Tandem Computers Incorporated System for transferring data over a network in which a data source sends only a descriptor which a data sink uses to retrieve data
US6130878A (en) * 1995-12-27 2000-10-10 Compaq Computer Corporation Method and apparatus for rate-based scheduling using a relative error approach
US5941994A (en) * 1995-12-22 1999-08-24 Lsi Logic Corporation Technique for sharing hot spare drives among multiple subsystems
US5821784A (en) * 1995-12-29 1998-10-13 Intel Corporation Method and apparatus for generating 2/N mode bus clock signals
US5834956A (en) 1995-12-29 1998-11-10 Intel Corporation Core clock correction in a 2/N mode clocking scheme
US5802132A (en) * 1995-12-29 1998-09-01 Intel Corporation Apparatus for generating bus clock signals with a 1/N characteristic in a 2/N mode clocking scheme
US5978933A (en) * 1996-01-11 1999-11-02 Hewlett-Packard Company Generic fault tolerant platform
US5784628A (en) * 1996-03-12 1998-07-21 Microsoft Corporation Method and system for controlling power consumption in a computer system
KR970072676A (ko) * 1996-04-19 1997-11-07 김광호 이중화모듈 절체장치
US6141769A (en) 1996-05-16 2000-10-31 Resilience Corporation Triple modular redundant computer system and associated method
US6662286B2 (en) * 1996-06-28 2003-12-09 Sony Corporation Information processing method and information processing apparatus
US5845296A (en) * 1996-07-10 1998-12-01 Oracle Corporation Method and apparatus for implementing segmented arrays in a database
US5862373A (en) * 1996-09-06 1999-01-19 Intel Corporation Pad cells for a 2/N mode clocking scheme
US5826067A (en) * 1996-09-06 1998-10-20 Intel Corporation Method and apparatus for preventing logic glitches in a 2/n clocking scheme
US6038620A (en) * 1996-09-09 2000-03-14 International Business Machines Corporation Method and system for optimal high speed match in a high performance controller which ensures an input/output interface stays ahead of a host interface
JP2830857B2 (ja) * 1996-09-09 1998-12-02 三菱電機株式会社 データストレージシステム及びデータストレージ管理方法
TW379298B (en) * 1996-09-30 2000-01-11 Toshiba Corp Memory updating history saving device and memory updating history saving method
US5805798A (en) * 1996-10-29 1998-09-08 Electronic Data Systems Corporation Fail-safe event driven transaction processing system and method
US6038621A (en) * 1996-11-04 2000-03-14 Hewlett-Packard Company Dynamic peripheral control of I/O buffers in peripherals with modular I/O
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
US5887160A (en) * 1996-12-10 1999-03-23 Fujitsu Limited Method and apparatus for communicating integer and floating point data over a shared data path in a single instruction pipeline processor
US5860116A (en) * 1996-12-11 1999-01-12 Ncr Corporation Memory page location control for multiple memory-multiple processor system
US5778218A (en) * 1996-12-19 1998-07-07 Advanced Micro Devices, Inc. Method and apparatus for clock synchronization across an isochronous bus by adjustment of frame clock rates
US6005920A (en) * 1997-01-03 1999-12-21 Ncr Corporation Call center with fault resilient server-switch link
US6002851A (en) * 1997-01-28 1999-12-14 Tandem Computers Incorporated Method and apparatus for node pruning a multi-processor system for maximal, full connection during recovery
US6230245B1 (en) 1997-02-11 2001-05-08 Micron Technology, Inc. Method and apparatus for generating a variable sequence of memory device command signals
US5813042A (en) * 1997-02-19 1998-09-22 International Business Machines Corp. Methods and systems for control of memory
US5909553A (en) * 1997-02-19 1999-06-01 International Business Machines Corporation Systems and methods for controlling the transmission of relatively large data objects in a communications system
US5920703A (en) * 1997-02-19 1999-07-06 International Business Machines Corp. Systems and methods for managing the processing of relatively large data objects in a communications stack
US5983259A (en) * 1997-02-19 1999-11-09 International Business Machines Corp. Systems and methods for transmitting and receiving data in connection with a communications stack in a communications system
US6175894B1 (en) * 1997-03-05 2001-01-16 Micron Technology, Inc. Memory device command buffer apparatus and method and memory devices and computer systems using same
US6289447B1 (en) * 1997-03-24 2001-09-11 Intel Corporation Topology dependent compensation to improve performance of self-compensated components including processors based on physical relationship with other system components
US5903717A (en) * 1997-04-02 1999-05-11 General Dynamics Information Systems, Inc. Fault tolerant computer system
US6094696A (en) * 1997-05-07 2000-07-25 Advanced Micro Devices, Inc. Virtual serial data transfer mechanism
US5916309A (en) * 1997-05-12 1999-06-29 Lexmark International Inc. System for dynamically determining the size and number of communication buffers based on communication parameters at the beginning of the reception of message
US6046817A (en) * 1997-05-12 2000-04-04 Lexmark International, Inc. Method and apparatus for dynamic buffering of input/output ports used for receiving and transmitting print data at a printer
US6179486B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Method for hot add of a mass storage adapter on a system including a dynamically loaded adapter driver
US6249834B1 (en) 1997-05-13 2001-06-19 Micron Technology, Inc. System for expanding PCI bus loading capacity
US6173346B1 (en) 1997-05-13 2001-01-09 Micron Electronics, Inc. Method for hot swapping a programmable storage adapter using a programmable processor for selectively enabling or disabling power to adapter slot in response to respective request signals
US6292905B1 (en) 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
US6134668A (en) * 1997-05-13 2000-10-17 Micron Electronics, Inc. Method of selective independent powering of portion of computer system through remote interface from remote interface power supply
US6247898B1 (en) 1997-05-13 2001-06-19 Micron Electronics, Inc. Computer fan speed control system
US6138250A (en) * 1997-05-13 2000-10-24 Micron Electronics, Inc. System for reading system log
US6182180B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Apparatus for interfacing buses
US6247079B1 (en) * 1997-05-13 2001-06-12 Micron Electronics, Inc Apparatus for computer implemented hot-swap and hot-add
US6243838B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Method for automatically reporting a system failure in a server
US5987554A (en) * 1997-05-13 1999-11-16 Micron Electronics, Inc. Method of controlling the transfer of information across an interface between two buses
US6269417B1 (en) 1997-05-13 2001-07-31 Micron Technology, Inc. Method for determining and displaying the physical slot number of an expansion bus device
US6526333B1 (en) 1997-05-13 2003-02-25 Micron Technology, Inc. Computer fan speed control system method
US6122746A (en) * 1997-05-13 2000-09-19 Micron Electronics, Inc. System for powering up and powering down a server
US6163853A (en) * 1997-05-13 2000-12-19 Micron Electronics, Inc. Method for communicating a software-generated pulse waveform between two servers in a network
US6073255A (en) * 1997-05-13 2000-06-06 Micron Electronics, Inc. Method of reading system log
US6134673A (en) * 1997-05-13 2000-10-17 Micron Electronics, Inc. Method for clustering software applications
US6330690B1 (en) 1997-05-13 2001-12-11 Micron Electronics, Inc. Method of resetting a server
US6195717B1 (en) 1997-05-13 2001-02-27 Micron Electronics, Inc. Method of expanding bus loading capacity
US6202111B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a statically loaded adapter driver
US6202160B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. System for independent powering of a computer system
US6192434B1 (en) 1997-05-13 2001-02-20 Micron Electronics, Inc System for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6189109B1 (en) 1997-05-13 2001-02-13 Micron Electronics, Inc. Method of remote access and control of environmental conditions
US6338150B1 (en) 1997-05-13 2002-01-08 Micron Technology, Inc. Diagnostic and managing distributed processor system
US6363497B1 (en) 1997-05-13 2002-03-26 Micron Technology, Inc. System for clustering software applications
US6282673B1 (en) 1997-05-13 2001-08-28 Micron Technology, Inc. Method of recording information system events
US6219734B1 (en) 1997-05-13 2001-04-17 Micron Electronics, Inc. Method for the hot add of a mass storage adapter on a system including a statically loaded adapter driver
US6163849A (en) * 1997-05-13 2000-12-19 Micron Electronics, Inc. Method of powering up or powering down a server to a maintenance state
US6253334B1 (en) 1997-05-13 2001-06-26 Micron Electronics, Inc. Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses
US6145098A (en) 1997-05-13 2000-11-07 Micron Electronics, Inc. System for displaying system status
US6249885B1 (en) 1997-05-13 2001-06-19 Karl S. Johnson Method for managing environmental conditions of a distributed processor system
US6247080B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc. Method for the hot add of devices
US6170067B1 (en) 1997-05-13 2001-01-02 Micron Technology, Inc. System for automatically reporting a system failure in a server
US6499073B1 (en) 1997-05-13 2002-12-24 Micron Electronics, Inc. System using programmable processor for selectively enabling or disabling power to adapter in response to respective request signals
US6243773B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Configuration management system for hot adding and hot replacing devices
US6148355A (en) * 1997-05-13 2000-11-14 Micron Electronics, Inc. Configuration management method for hot adding and hot replacing devices
US6304929B1 (en) 1997-05-13 2001-10-16 Micron Electronics, Inc. Method for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US5892928A (en) * 1997-05-13 1999-04-06 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a dynamically loaded adapter driver
US6249828B1 (en) 1997-05-13 2001-06-19 Micron Electronics, Inc. Method for the hot swap of a mass storage adapter on a system including a statically loaded adapter driver
US6122758A (en) * 1997-05-13 2000-09-19 Micron Electronics, Inc. System for mapping environmental resources to memory for program access
US6324608B1 (en) 1997-05-13 2001-11-27 Micron Electronics Method for hot swapping of network components
US6170028B1 (en) 1997-05-13 2001-01-02 Micron Electronics, Inc. Method for hot swapping a programmable network adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US5996043A (en) 1997-06-13 1999-11-30 Micron Technology, Inc. Two step memory device command buffer apparatus and method and memory devices and computer systems using same
US6484244B1 (en) 1997-06-17 2002-11-19 Micron Technology, Inc. Method and system for storing and processing multiple memory commands
US7080385B1 (en) 1997-08-18 2006-07-18 Tibco Software Inc. Certified message delivery and queuing in multipoint publish/subscribe communications
AU9022998A (en) * 1997-08-18 1999-03-08 Reuters Ltd Certified message delivery and queuing in multipoint publish/subscribe communications
US6031624A (en) * 1997-09-08 2000-02-29 Lexmark International, Inc. Method and apparatus for adaptive data buffering in a parallelized printing system
US5968147A (en) * 1997-09-26 1999-10-19 Adaptec, Inc. Method and apparatus for improved peripheral bus utilization
US5974574A (en) * 1997-09-30 1999-10-26 Tandem Computers Incorporated Method of comparing replicated databases using checksum information
US6092213A (en) * 1997-09-30 2000-07-18 Tandem Computers Incorporated Fault tolerant method of maintaining and distributing configuration information in a distributed processing system
US5974571A (en) * 1997-09-30 1999-10-26 Intel Corporation Method and apparatus for avoiding deadlock in the issuance of commands that are reordered and require data movement according to an original command order
US6138179A (en) * 1997-10-01 2000-10-24 Micron Electronics, Inc. System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk
US6035420A (en) * 1997-10-01 2000-03-07 Micron Electronics, Inc. Method of performing an extensive diagnostic test in conjunction with a bios test routine
US6009541A (en) * 1997-10-01 1999-12-28 Micron Electronics, Inc. Apparatus for performing an extensive diagnostic test in conjunction with a bios test routine
US6212585B1 (en) 1997-10-01 2001-04-03 Micron Electronics, Inc. Method of automatically configuring a server after hot add of a device
US6263387B1 (en) 1997-10-01 2001-07-17 Micron Electronics, Inc. System for automatically configuring a server after hot add of a device
US6088816A (en) * 1997-10-01 2000-07-11 Micron Electronics, Inc. Method of displaying system status
US6154835A (en) * 1997-10-01 2000-11-28 Micron Electronics, Inc. Method for automatically configuring and formatting a computer system and installing software
US6065053A (en) * 1997-10-01 2000-05-16 Micron Electronics, Inc. System for resetting a server
US6199173B1 (en) 1997-10-01 2001-03-06 Micron Electronics, Inc. Method for mapping environmental resources to memory for program access
US6175490B1 (en) 1997-10-01 2001-01-16 Micron Electronics, Inc. Fault tolerant computer system
SE511114C2 (sv) * 1997-12-10 1999-08-09 Ericsson Telefon Ab L M Metod vid processor, samt processor anpassad att verka enligt metoden
US6219672B1 (en) * 1997-12-11 2001-04-17 Kabushiki Kaisha Toshiba Distributed shared memory system and method of controlling distributed shared memory
US6202119B1 (en) 1997-12-19 2001-03-13 Micron Technology, Inc. Method and system for processing pipelined memory commands
US6148352A (en) * 1997-12-24 2000-11-14 International Business Machines Corporation Scalable modular data storage system
US6272573B1 (en) 1997-12-24 2001-08-07 International Business Machines Corporation Scalable modular data storage system
JP3603577B2 (ja) * 1997-12-26 2004-12-22 富士ゼロックス株式会社 画像処理システム
US6119248A (en) * 1998-01-26 2000-09-12 Dell Usa L.P. Operating system notification of correctable error in computer information
DE19815263C2 (de) * 1998-04-04 2002-03-28 Astrium Gmbh Vorrichtung zur fehlertoleranten Ausführung von Programmen
US6216051B1 (en) 1998-05-04 2001-04-10 Nec Electronics, Inc. Manufacturing backup system
US6167330A (en) * 1998-05-08 2000-12-26 The United States Of America As Represented By The Secretary Of The Air Force Dynamic power management of systems
US6289467B1 (en) * 1998-05-08 2001-09-11 Sun Microsystems, Inc. Installation of processor and power supply modules in a multiprocessor system
US6178522B1 (en) 1998-06-02 2001-01-23 Alliedsignal Inc. Method and apparatus for managing redundant computer-based systems for fault tolerant computing
US6279058B1 (en) 1998-07-02 2001-08-21 Advanced Micro Devices, Inc. Master isochronous clock structure having a clock controller coupling to a CPU and two data buses
US6202164B1 (en) * 1998-07-02 2001-03-13 Advanced Micro Devices, Inc. Data rate synchronization by frame rate adjustment
US6145033A (en) * 1998-07-17 2000-11-07 Seiko Epson Corporation Management of display FIFO requests for DRAM access wherein low priority requests are initiated when FIFO level is below/equal to high threshold value
US6223234B1 (en) 1998-07-17 2001-04-24 Micron Electronics, Inc. Apparatus for the hot swap and add of input/output platforms and devices
US6205503B1 (en) 1998-07-17 2001-03-20 Mallikarjunan Mahalingam Method for the hot swap and add of input/output platforms and devices
US6175905B1 (en) 1998-07-30 2001-01-16 Micron Technology, Inc. Method and system for bypassing pipelines in a pipelined memory command generator
US6119207A (en) * 1998-08-20 2000-09-12 Seiko Epson Corporation Low priority FIFO request assignment for DRAM access
US6178488B1 (en) 1998-08-27 2001-01-23 Micron Technology, Inc. Method and apparatus for processing pipelined memory commands
US6154845A (en) * 1998-09-11 2000-11-28 Intel Corporation Power failure safe computer architecture
US6209088B1 (en) 1998-09-21 2001-03-27 Microsoft Corporation Computer hibernation implemented by a computer operating system
US6356962B1 (en) * 1998-09-30 2002-03-12 Stmicroelectronics, Inc. Network device and method of controlling flow of data arranged in frames in a data-based network
US6301670B1 (en) 1998-10-06 2001-10-09 Ricoh Corporation Method and apparatus for erasing data when a problem is identified
US6304948B1 (en) * 1998-10-06 2001-10-16 Ricoh Corporation Method and apparatus for erasing data after expiration
US7325052B1 (en) 1998-10-06 2008-01-29 Ricoh Company, Ltd. Method and system to erase data after expiration or other condition
US6321335B1 (en) 1998-10-30 2001-11-20 Acqis Technology, Inc. Password protected modular computer method and device
US6006259A (en) * 1998-11-20 1999-12-21 Network Alchemy, Inc. Method and apparatus for an internet protocol (IP) network clustering system
US6078957A (en) * 1998-11-20 2000-06-20 Network Alchemy, Inc. Method and apparatus for a TCP/IP load balancing and failover process in an internet protocol (IP) network clustering system
US6449733B1 (en) 1998-12-07 2002-09-10 Compaq Computer Corporation On-line replacement of process pairs in a clustered processor architecture
US6389551B1 (en) 1998-12-17 2002-05-14 Steeleye Technology, Inc. Method of preventing false or unnecessary failovers in a high availability cluster by using a quorum service
US6594735B1 (en) 1998-12-28 2003-07-15 Nortel Networks Limited High availability computing system
DE19910069A1 (de) * 1999-03-08 2000-11-23 Peter Renner Prozeßautomation
US6636977B1 (en) * 1999-03-10 2003-10-21 Shin Jiuh Corp. Control device for use in a power supplying apparatus including multiple processors adapted to perform separate functions associated with status monitoring and load balancing
US6671704B1 (en) * 1999-03-11 2003-12-30 Hewlett-Packard Development Company, L.P. Method and apparatus for handling failures of resource managers in a clustered environment
US6295548B1 (en) 1999-03-12 2001-09-25 Compaq Computer Corporation Detection of an imported transaction for finding the global transaction identifier
US6470342B1 (en) 1999-03-12 2002-10-22 Compaq Computer Corporation Process of maintaining a distributed map of transaction identifiers and using hashing to access these maps
US6411981B1 (en) 1999-03-12 2002-06-25 Compaq Computer Corporation Method and apparatus for conducting a transaction between homogeneous and/or heterogeneous transaction processing systems using asynchronous pull of a transaction transfer
US6496825B1 (en) 1999-03-12 2002-12-17 Compaq Computer Corporation Systems and methods for the detection of a loop-back of a transaction
US6618820B1 (en) * 2000-01-10 2003-09-09 Imagex.Com, Inc. Method for configuring an application server system
US6618742B1 (en) 2000-01-10 2003-09-09 Imagex.Com, Inc. Method for job impact learning
US6718415B1 (en) 1999-05-14 2004-04-06 Acqis Technology, Inc. Computer system and method including console housing multiple computer modules having independent processing units, mass storage devices, and graphics controllers
US6643777B1 (en) 1999-05-14 2003-11-04 Acquis Technology, Inc. Data security method and device for computer modules
US6169669B1 (en) * 1999-07-15 2001-01-02 Texas Instruments Incorporated Digital signal processor controlled uninterruptable power supply
AT407582B (de) * 1999-08-13 2001-04-25 Fts Computertechnik Gmbh Nachrichtenverteilereinheit mit integriertem guardian zur verhinderung von ''babbling idiot'' fehlern
US6408348B1 (en) 1999-08-20 2002-06-18 International Business Machines Corporation System, method, and program for managing I/O requests to a storage device
US6928073B2 (en) * 1999-10-01 2005-08-09 Stmicroelectronics Ltd. Integrated circuit implementing packet transmission
EP1912124B8 (de) 1999-10-14 2013-01-09 Bluearc UK Limited Vorrichtung und System zur Ausführung von Betriebsfunktionen
GB9927372D0 (en) * 1999-11-20 2000-01-19 Ncr Int Inc Self-service terminal
US6564274B1 (en) * 1999-12-17 2003-05-13 Omnicluster Technologies, Inc. Modular architecture for small computer networks
US6862613B1 (en) * 2000-01-10 2005-03-01 Sun Microsystems, Inc. Method and apparatus for managing operations of clustered computer systems
JP4462697B2 (ja) 2000-01-31 2010-05-12 株式会社日立製作所 記憶制御装置
US6977926B1 (en) * 2000-03-31 2005-12-20 Alcatel Method and system for providing a feedback signal in a telecommunications network
US7085237B1 (en) 2000-03-31 2006-08-01 Alcatel Method and apparatus for routing alarms in a signaling server
US6691257B1 (en) 2000-04-13 2004-02-10 Stratus Technologies Bermuda Ltd. Fault-tolerant maintenance bus protocol and method for using the same
US6633996B1 (en) 2000-04-13 2003-10-14 Stratus Technologies Bermuda Ltd. Fault-tolerant maintenance bus architecture
US6735715B1 (en) 2000-04-13 2004-05-11 Stratus Technologies Bermuda Ltd. System and method for operating a SCSI bus with redundant SCSI adaptors
US6708283B1 (en) 2000-04-13 2004-03-16 Stratus Technologies, Bermuda Ltd. System and method for operating a system with redundant peripheral bus controllers
US6687851B1 (en) 2000-04-13 2004-02-03 Stratus Technologies Bermuda Ltd. Method and system for upgrading fault-tolerant systems
US6820213B1 (en) 2000-04-13 2004-11-16 Stratus Technologies Bermuda, Ltd. Fault-tolerant computer system with voter delay buffer
US6691225B1 (en) 2000-04-14 2004-02-10 Stratus Technologies Bermuda Ltd. Method and apparatus for deterministically booting a computer system having redundant components
US6862689B2 (en) 2001-04-12 2005-03-01 Stratus Technologies Bermuda Ltd. Method and apparatus for managing session information
US6802022B1 (en) 2000-04-14 2004-10-05 Stratus Technologies Bermuda Ltd. Maintenance of consistent, redundant mass storage images
US6901481B2 (en) 2000-04-14 2005-05-31 Stratus Technologies Bermuda Ltd. Method and apparatus for storing transactional information in persistent memory
US6865157B1 (en) * 2000-05-26 2005-03-08 Emc Corporation Fault tolerant shared system resource with communications passthrough providing high availability communications
US6525926B1 (en) * 2000-07-11 2003-02-25 Racklogic Technologies, Inc. Multinode high density computing apparatus
DE10036598A1 (de) * 2000-07-27 2002-02-14 Infineon Technologies Ag Anordnung zur Überwachung des ordnungsgemäßen Betriebes von die selben oder einander entsprechende Aktionen ausführenden Komponenten eines elektrischen Systems
US7016992B2 (en) * 2000-08-17 2006-03-21 Matsushita Electric Industrial Co., Ltd. Electronic mail system
US6718474B1 (en) 2000-09-21 2004-04-06 Stratus Technologies Bermuda Ltd. Methods and apparatus for clock management based on environmental conditions
WO2003038775A1 (fr) * 2000-09-28 2003-05-08 Kabushiki Kaisha Visual Japan Systeme et serveur pos, terminal de magasin, procede de gestion des ventes et support d'enregistrement
US6904505B1 (en) * 2000-10-12 2005-06-07 Emulex Design & Manufacturing Corporation Method for determining valid bytes for multiple-byte burst memories
US8180870B1 (en) 2000-11-28 2012-05-15 Verizon Business Global Llc Programmable access device for a distributed network access system
US8185615B1 (en) 2000-11-28 2012-05-22 Verizon Business Global Llc Message, control and reporting interface for a distributed network access system
US7657628B1 (en) * 2000-11-28 2010-02-02 Verizon Business Global Llc External processor for a distributed network access system
US7046680B1 (en) 2000-11-28 2006-05-16 Mci, Inc. Network access system including a programmable access device having distributed service control
US6785893B2 (en) * 2000-11-30 2004-08-31 Microsoft Corporation Operating system event tracker having separate storage for interrupt and non-interrupt events and flushing the third memory when timeout and memory full occur
US6948010B2 (en) * 2000-12-20 2005-09-20 Stratus Technologies Bermuda Ltd. Method and apparatus for efficiently moving portions of a memory block
US6886171B2 (en) * 2001-02-20 2005-04-26 Stratus Technologies Bermuda Ltd. Caching for I/O virtual address translation and validation using device drivers
US6766479B2 (en) 2001-02-28 2004-07-20 Stratus Technologies Bermuda, Ltd. Apparatus and methods for identifying bus protocol violations
US6766413B2 (en) 2001-03-01 2004-07-20 Stratus Technologies Bermuda Ltd. Systems and methods for caching with file-level granularity
US6874102B2 (en) 2001-03-05 2005-03-29 Stratus Technologies Bermuda Ltd. Coordinated recalibration of high bandwidth memories in a multiprocessor computer
US6950893B2 (en) * 2001-03-22 2005-09-27 I-Bus Corporation Hybrid switching architecture
US7065672B2 (en) 2001-03-28 2006-06-20 Stratus Technologies Bermuda Ltd. Apparatus and methods for fault-tolerant computing using a switching fabric
US20020178313A1 (en) * 2001-03-30 2002-11-28 Gary Scott Paul Using software interrupts to manage communication between data processors
US6971043B2 (en) * 2001-04-11 2005-11-29 Stratus Technologies Bermuda Ltd Apparatus and method for accessing a mass storage device in a fault-tolerant server
US6928583B2 (en) * 2001-04-11 2005-08-09 Stratus Technologies Bermuda Ltd. Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep
US7047522B1 (en) * 2001-04-30 2006-05-16 General Electric Capital Corporation Method and system for verifying a computer program
US6996750B2 (en) 2001-05-31 2006-02-07 Stratus Technologies Bermuda Ltd. Methods and apparatus for computer bus error termination
JP2003016400A (ja) * 2001-06-28 2003-01-17 Sankyo Seiki Mfg Co Ltd 停電検知装置、及びその停電検知装置を備えたカードリーダ
JP4382310B2 (ja) * 2001-08-17 2009-12-09 株式会社リコー 画像形成装置及びその制御方法
FR2828972A1 (fr) * 2001-08-21 2003-02-28 Koninkl Philips Electronics Nv Dispositif de traitement et d'acheminement de donnees
US6909659B2 (en) * 2001-08-30 2005-06-21 Micron Technology, Inc. Zero power chip standby mode
US6661410B2 (en) * 2001-09-07 2003-12-09 Microsoft Corporation Capacitive sensing and data input device power management
US7325050B2 (en) * 2001-09-19 2008-01-29 Dell Products L.P. System and method for strategic power reduction in a computer system
US7337333B2 (en) * 2001-09-19 2008-02-26 Dell Products L.P. System and method for strategic power supply sequencing in a computer system with multiple processing resources and multiple power supplies
US7287187B2 (en) * 2001-10-15 2007-10-23 Sun Microsystems, Inc. Method and apparatus for supplying redundant power
US7177267B2 (en) * 2001-11-09 2007-02-13 Adc Dsl Systems, Inc. Hardware monitoring and configuration management
US6954877B2 (en) * 2001-11-29 2005-10-11 Agami Systems, Inc. Fault tolerance using logical checkpointing in computing systems
US7301961B1 (en) 2001-12-27 2007-11-27 Cypress Semiconductor Corportion Method and apparatus for configuring signal lines according to idle codes
US6879523B1 (en) * 2001-12-27 2005-04-12 Cypress Semiconductor Corporation Random access memory (RAM) method of operation and device for search engine systems
US6792516B2 (en) * 2001-12-28 2004-09-14 Intel Corporation Memory arbiter with intelligent page gathering logic
US7035984B2 (en) * 2001-12-31 2006-04-25 Intel Corporation Memory arbiter with grace and ceiling periods and intelligent page gathering logic
US6856045B1 (en) * 2002-01-29 2005-02-15 Hamilton Sundstrand Corporation Power distribution assembly with redundant architecture
US6703599B1 (en) * 2002-01-30 2004-03-09 Microsoft Corporation Proximity sensor with adaptive threshold
US20030212473A1 (en) * 2002-02-25 2003-11-13 General Electric Company Processing system for a power distribution system
US20040078652A1 (en) * 2002-03-08 2004-04-22 Tapper Gunnar D. Using process quads to enable continuous services in a cluster environment
US20030208750A1 (en) * 2002-03-29 2003-11-06 Tapper Gunnar D. Information exchange for process pair replacement in a cluster environment
US7136867B1 (en) 2002-04-08 2006-11-14 Oracle International Corporation Metadata format for hierarchical data storage on a raw storage device
US7672945B1 (en) 2002-04-08 2010-03-02 Oracle International Corporation Mechanism for creating member private data in a global namespace
US7058639B1 (en) 2002-04-08 2006-06-06 Oracle International Corporation Use of dynamic multi-level hash table for managing hierarchically structured information
US8271530B2 (en) * 2002-04-08 2012-09-18 Oracale International Corporation Method and mechanism for managing and accessing static and dynamic data
US7096213B2 (en) 2002-04-08 2006-08-22 Oracle International Corporation Persistent key-value repository with a pluggable architecture to abstract physical storage
US7209492B2 (en) * 2002-04-15 2007-04-24 Alcatel DSO timing source transient compensation
US7111228B1 (en) 2002-05-07 2006-09-19 Marvell International Ltd. System and method for performing parity checks in disk storage system
US20030212761A1 (en) * 2002-05-10 2003-11-13 Microsoft Corporation Process kernel
US20080222234A1 (en) * 2002-05-23 2008-09-11 Benoit Marchand Deployment and Scaling of Virtual Environments
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
US6954867B2 (en) 2002-07-26 2005-10-11 Microsoft Corporation Capacitive sensing employing a repeatable offset charge
US20040054938A1 (en) * 2002-09-17 2004-03-18 Belady Christian L. Controlling a computer system based on an environmental condition
US7313706B2 (en) * 2002-09-17 2007-12-25 Hewlett-Packard Development Company, L.P. System and method for managing power consumption for a plurality of processors based on a supply voltage to each processor, temperature, total power consumption and individual processor power consumption
US7280620B2 (en) * 2002-10-18 2007-10-09 Canon Kabushiki Kaisha Electronic device including image forming apparatus
DE10249592A1 (de) * 2002-10-24 2004-06-17 Abb Research Ltd. Datenverarbeitungsknoten für ein Leitsystem
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
JP3757204B2 (ja) * 2002-12-06 2006-03-22 ファナック株式会社 エラー検出/訂正方式及び該方式を用いた制御装置
US7206972B2 (en) * 2003-01-09 2007-04-17 Alcatel Path commissioning analysis and diagnostic tool
US7007114B1 (en) * 2003-01-31 2006-02-28 Qlogic Corporation System and method for padding data blocks and/or removing padding from data blocks in storage controllers
US7287102B1 (en) 2003-01-31 2007-10-23 Marvell International Ltd. System and method for concatenating data
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7870346B2 (en) * 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7099963B2 (en) * 2003-03-10 2006-08-29 Qlogic Corporation Method and system for monitoring embedded disk controller components
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7219182B2 (en) * 2003-03-10 2007-05-15 Marvell International Ltd. Method and system for using an external bus controller in embedded disk controllers
US7064915B1 (en) 2003-03-10 2006-06-20 Marvell International Ltd. Method and system for collecting servo field data from programmable devices in embedded disk controllers
JP4242682B2 (ja) * 2003-03-26 2009-03-25 パナソニック株式会社 メモリデバイス
US6823347B2 (en) * 2003-04-23 2004-11-23 Oracle International Corporation Propagating commit times
US7210069B2 (en) * 2003-05-13 2007-04-24 Lucent Technologies Inc. Failure recovery in a multiprocessor configuration
US7134052B2 (en) * 2003-05-15 2006-11-07 International Business Machines Corporation Autonomic recovery from hardware errors in an input/output fabric
US7240130B2 (en) * 2003-06-12 2007-07-03 Hewlett-Packard Development Company, L.P. Method of transmitting data through an 12C router
US7406641B2 (en) * 2003-06-30 2008-07-29 Intel Corporation Selective control of test-access ports in integrated circuits
US7530108B1 (en) 2003-09-15 2009-05-05 The Directv Group, Inc. Multiprocessor conditional access module and method for using the same
US7631120B2 (en) * 2004-08-24 2009-12-08 Symantec Operating Corporation Methods and apparatus for optimally selecting a storage buffer for the storage of data
US7730222B2 (en) * 2004-08-24 2010-06-01 Symantec Operating System Processing storage-related I/O requests using binary tree data structures
US7409587B2 (en) * 2004-08-24 2008-08-05 Symantec Operating Corporation Recovering from storage transaction failures using checkpoints
US7904428B2 (en) * 2003-09-23 2011-03-08 Symantec Corporation Methods and apparatus for recording write requests directed to a data store
US7287133B2 (en) * 2004-08-24 2007-10-23 Symantec Operating Corporation Systems and methods for providing a modification history for a location within a data store
US7296008B2 (en) * 2004-08-24 2007-11-13 Symantec Operating Corporation Generation and use of a time map for accessing a prior image of a storage device
US7577806B2 (en) * 2003-09-23 2009-08-18 Symantec Operating Corporation Systems and methods for time dependent data storage and recovery
US7725760B2 (en) * 2003-09-23 2010-05-25 Symantec Operating Corporation Data storage system
US7991748B2 (en) * 2003-09-23 2011-08-02 Symantec Corporation Virtual data store creation and use
US7577807B2 (en) * 2003-09-23 2009-08-18 Symantec Operating Corporation Methods and devices for restoring a portion of a data store
US7827362B2 (en) * 2004-08-24 2010-11-02 Symantec Corporation Systems, apparatus, and methods for processing I/O requests
US7239581B2 (en) * 2004-08-24 2007-07-03 Symantec Operating Corporation Systems and methods for synchronizing the internal clocks of a plurality of processor modules
US7526691B1 (en) 2003-10-15 2009-04-28 Marvell International Ltd. System and method for using TAP controllers
US7209809B2 (en) * 2003-10-15 2007-04-24 The Boeing Company Method and apparatus for obtaining high integrity and availability in multi-channel systems
US7225356B2 (en) * 2003-11-06 2007-05-29 Siemens Medical Solutions Health Services Corporation System for managing operational failure occurrences in processing devices
US20050125486A1 (en) * 2003-11-20 2005-06-09 Microsoft Corporation Decentralized operating system
EP1542181A1 (de) * 2003-12-11 2005-06-15 Banksys S.A. Elektronische Datenverarbeitungseinrichtung
US8898339B2 (en) * 2003-12-12 2014-11-25 Napatech A/S Method of transferring data implying a network analyser card
JP4441286B2 (ja) * 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム
US7139150B2 (en) * 2004-02-10 2006-11-21 Marvell International Ltd. Method and system for head position control in embedded disk drive controllers
US20060020852A1 (en) * 2004-03-30 2006-01-26 Bernick David L Method and system of servicing asynchronous interrupts in multiple processors executing a user program
US7304996B1 (en) 2004-03-30 2007-12-04 Extreme Networks, Inc. System and method for assembling a data packet
US20050240806A1 (en) * 2004-03-30 2005-10-27 Hewlett-Packard Development Company, L.P. Diagnostic memory dump method in a redundant processor
US7822032B1 (en) * 2004-03-30 2010-10-26 Extreme Networks, Inc. Data structures for supporting packet data modification operations
US7921419B2 (en) * 2004-05-12 2011-04-05 Oracle International Corporation Method and mechanism for managing incompatible changes in a distributed system
JP2007538331A (ja) * 2004-05-18 2007-12-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 集積回路及びバッファリング方法
US7120084B2 (en) 2004-06-14 2006-10-10 Marvell International Ltd. Integrated memory controller
US7392426B2 (en) * 2004-06-15 2008-06-24 Honeywell International Inc. Redundant processing architecture for single fault tolerance
US8166217B2 (en) * 2004-06-28 2012-04-24 Marvell International Ltd. System and method for reading and writing data using storage controllers
JP4353005B2 (ja) * 2004-06-29 2009-10-28 株式会社日立製作所 クラスタ構成コンピュータシステムの系切替方法
US7472129B2 (en) * 2004-06-29 2008-12-30 Microsoft Corporation Lossless recovery for computer systems with map assisted state transfer
US7360111B2 (en) * 2004-06-29 2008-04-15 Microsoft Corporation Lossless recovery for computer systems with remotely dependent data recovery
JP4490751B2 (ja) 2004-07-16 2010-06-30 セイレイ工業株式会社 アウトリガーの油圧シリンダ
US9201599B2 (en) * 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US8032674B2 (en) * 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US7757009B2 (en) 2004-07-19 2010-07-13 Marvell International Ltd. Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device
US7308605B2 (en) * 2004-07-20 2007-12-11 Hewlett-Packard Development Company, L.P. Latent error detection
US8230252B2 (en) 2004-07-20 2012-07-24 Hewlett-Packard Development Company, L.P. Time of day response
US7467324B1 (en) 2004-09-30 2008-12-16 Ayaya Inc. Method and apparatus for continuing to provide processing on disk outages
US7386661B2 (en) 2004-10-13 2008-06-10 Marvell International Ltd. Power save module for storage controllers
US7240267B2 (en) * 2004-11-08 2007-07-03 Marvell International Ltd. System and method for conducting BIST operations
US7802026B2 (en) * 2004-11-15 2010-09-21 Marvell International Ltd. Method and system for processing frames in storage controllers
US7337357B2 (en) * 2004-11-16 2008-02-26 International Business Machines Corporation Apparatus, system, and method for limiting failures in redundant signals
US7685400B2 (en) * 2004-12-15 2010-03-23 International Business Machines Corporation Storage of data blocks of logical volumes in a virtual disk storage subsystem
JP4117684B2 (ja) * 2004-12-20 2008-07-16 日本電気株式会社 フォルトトレラント・二重化コンピュータシステムとその制御方法
US20060156381A1 (en) 2005-01-12 2006-07-13 Tetsuro Motoyama Approach for deleting electronic documents on network devices using document retention policies
US7334140B2 (en) * 2005-03-03 2008-02-19 International Business Machines Corporation Apparatus and method to selectively provide power to one or more components disposed in an information storage and retrieval system
US7734471B2 (en) * 2005-03-08 2010-06-08 Microsoft Corporation Online learning for dialog systems
US7885817B2 (en) * 2005-03-08 2011-02-08 Microsoft Corporation Easy generation and automatic training of spoken dialog systems using text-to-speech
US7707131B2 (en) * 2005-03-08 2010-04-27 Microsoft Corporation Thompson strategy based online reinforcement learning system for action selection
US8522253B1 (en) 2005-03-31 2013-08-27 Guillermo Rozas Hardware support for virtual machine and operating system context switching in translation lookaside buffers and virtually tagged caches
US7095217B1 (en) * 2005-03-31 2006-08-22 O2Micro International Limited Method circuitry and electronic device for controlling a variable output dc power source
US20060227145A1 (en) * 2005-04-06 2006-10-12 Raymond Chow Graphics controller having a single display interface for two or more displays
US7609468B2 (en) 2005-04-06 2009-10-27 Marvell International Ltd. Method and system for read gate timing control for storage controllers
US7797394B2 (en) * 2005-04-18 2010-09-14 Dell Products L.P. System and method for processing commands in a storage enclosure
US8001297B2 (en) * 2005-04-25 2011-08-16 Microsoft Corporation Dynamic adjusting send rate of buffered data
US7590819B2 (en) * 2005-05-09 2009-09-15 Lsi Logic Corporation Compact memory management unit
DE102005059593A1 (de) * 2005-05-25 2006-11-30 Robert Bosch Gmbh Verfahren und Vorrichtung zur Umschaltung bei einem Speicher für ein Steuergerät
US7877350B2 (en) * 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
JP4732823B2 (ja) * 2005-07-26 2011-07-27 株式会社日立産機システム モジュール間通信装置
US20070027485A1 (en) * 2005-07-29 2007-02-01 Kallmyer Todd A Implantable medical device bus system and method
US8214191B2 (en) * 2005-08-29 2012-07-03 The Invention Science Fund I, Llc Cross-architecture execution optimization
US7539852B2 (en) * 2005-08-29 2009-05-26 Searete, Llc Processor resource management
US7877584B2 (en) * 2005-08-29 2011-01-25 The Invention Science Fund I, Llc Predictive processor resource management
US8181004B2 (en) * 2005-08-29 2012-05-15 The Invention Science Fund I, Llc Selecting a resource management policy for a resource available to a processor
US7779213B2 (en) * 2005-08-29 2010-08-17 The Invention Science Fund I, Inc Optimization of instruction group execution through hardware resource management policies
US7725693B2 (en) * 2005-08-29 2010-05-25 Searete, Llc Execution optimization using a processor resource management policy saved in an association with an instruction group
US20070050605A1 (en) * 2005-08-29 2007-03-01 Bran Ferren Freeze-dried ghost pages
US8209524B2 (en) 2005-08-29 2012-06-26 The Invention Science Fund I, Llc Cross-architecture optimization
US7647487B2 (en) * 2005-08-29 2010-01-12 Searete, Llc Instruction-associated processor resource optimization
US7653834B2 (en) * 2005-08-29 2010-01-26 Searete, Llc Power sparing synchronous apparatus
US20070050608A1 (en) * 2005-08-29 2007-03-01 Searete Llc, A Limited Liability Corporatin Of The State Of Delaware Hardware-generated and historically-based execution optimization
US7739524B2 (en) * 2005-08-29 2010-06-15 The Invention Science Fund I, Inc Power consumption management
US8255745B2 (en) * 2005-08-29 2012-08-28 The Invention Science Fund I, Llc Hardware-error tolerant computing
US7493516B2 (en) * 2005-08-29 2009-02-17 Searete Llc Hardware-error tolerant computing
US8516300B2 (en) * 2005-08-29 2013-08-20 The Invention Science Fund I, Llc Multi-votage synchronous systems
US7627739B2 (en) * 2005-08-29 2009-12-01 Searete, Llc Optimization of a hardware resource shared by a multiprocessor
US8423824B2 (en) 2005-08-29 2013-04-16 The Invention Science Fund I, Llc Power sparing synchronous apparatus
CN101313279A (zh) 2005-10-14 2008-11-26 塞门铁克操作公司 一种在数据存储器中用于时间线压缩的技术
TWI297237B (en) * 2005-10-28 2008-05-21 Hon Hai Prec Ind Co Ltd Power switching circuit and power supply system using the same
US7428602B2 (en) * 2005-11-29 2008-09-23 International Business Machines Corporation Method for executing initialization code to configure connected devices and executing segments of configuration code from a failed segment
US7526674B2 (en) * 2005-12-22 2009-04-28 International Business Machines Corporation Methods and apparatuses for supplying power to processors in multiple processor systems
GB0601849D0 (en) * 2006-01-30 2006-03-08 Ttp Communications Ltd Method of maintaining software integrity
EP2477109B1 (de) 2006-04-12 2016-07-13 Soft Machines, Inc. Vorrichtung und Verfahren zur Verarbeitung einer Anweisungsmatrix zur Spezifizierung von parallelen und abhängigen Betriebsabläufen
US7480827B2 (en) 2006-08-11 2009-01-20 Chicago Mercantile Exchange Fault tolerance and failover using active copy-cat
US7434096B2 (en) 2006-08-11 2008-10-07 Chicago Mercantile Exchange Match server for a financial exchange having fault tolerant operation
US8041985B2 (en) 2006-08-11 2011-10-18 Chicago Mercantile Exchange, Inc. Match server for a financial exchange having fault tolerant operation
US8225320B2 (en) * 2006-08-31 2012-07-17 Advanced Simulation Technology, Inc. Processing data using continuous processing task and binary routine
US7464230B2 (en) * 2006-09-08 2008-12-09 Jiun-In Guo Memory controlling method
EP2527972A3 (de) 2006-11-14 2014-08-06 Soft Machines, Inc. Vorrichtung und Verfahren zum Verarbeiten von komplexen Anweisungsformaten in einer Multi-Thread-Architektur, die verschiedene Kontextschaltungsmodi und Visualisierungsschemen unterstützt
US20080141063A1 (en) * 2006-12-12 2008-06-12 Ridgeway Curtis A Real time elastic FIFO latency optimization
US7990724B2 (en) 2006-12-19 2011-08-02 Juhasz Paul R Mobile motherboard
US7702933B2 (en) * 2007-01-30 2010-04-20 Inventec Corporation Multiprocessor power-on switch circuit
TW200847087A (en) * 2007-05-18 2008-12-01 Beyond Innovation Tech Co Ltd Method and system for protecting information between a master terminal and a slave terminal
WO2008157813A1 (en) * 2007-06-20 2008-12-24 Surgmatix, Inc. Surgical data monitoring and display system
US20090076628A1 (en) * 2007-09-18 2009-03-19 David Mark Smith Methods and apparatus to upgrade and provide control redundancy in process plants
US7773504B2 (en) * 2007-11-13 2010-08-10 Intel Corporation Bandwidth allocation for network packet traffic
US8028195B2 (en) * 2007-12-18 2011-09-27 International Business Machines Corporation Structure for indicating status of an on-chip power supply system
US7917806B2 (en) * 2007-12-18 2011-03-29 International Business Machines Corporation System and method for indicating status of an on-chip power supply system
US20090259786A1 (en) * 2008-04-10 2009-10-15 Chu-Ming Lin Data transfer system and method for host-slave interface with automatic status report
US8027168B2 (en) * 2008-08-13 2011-09-27 Delphi Technologies, Inc. Electrical center with vertical power bus bar
JP4892526B2 (ja) * 2008-08-26 2012-03-07 本田技研工業株式会社 タンデム式マスタシリンダ
US8139583B1 (en) 2008-09-30 2012-03-20 Extreme Networks, Inc. Command selection in a packet forwarding device
US8272028B2 (en) * 2008-10-15 2012-09-18 Ricoh Company, Ltd. Approach for managing access to electronic documents on network devices using document retention policies and document security policies
US20100138618A1 (en) * 2008-12-03 2010-06-03 Vns Portfolio Llc Priority Encoders
US8561052B2 (en) * 2008-12-08 2013-10-15 Harris Corporation Communications device with a plurality of processors and compatibility synchronization module for processor upgrades and related method
JP5344936B2 (ja) * 2009-01-07 2013-11-20 株式会社日立製作所 制御装置
CN102317911B (zh) 2009-02-13 2016-04-06 起元技术有限责任公司 管理任务执行
US20120233397A1 (en) * 2009-04-01 2012-09-13 Kaminario Technologies Ltd. System and method for storage unit building while catering to i/o operations
US9461930B2 (en) * 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
AU2009352181B2 (en) * 2009-09-02 2013-11-21 Zte Corporation Power-down protection method and system, power controller for the communication device
US20110179303A1 (en) 2010-01-15 2011-07-21 Microsoft Corporation Persistent application activation and timer notifications
US20110296437A1 (en) * 2010-05-28 2011-12-01 Devendra Raut Method and apparatus for lockless communication between cores in a multi-core processor
AU2011268459B2 (en) 2010-06-15 2014-09-18 Ab Initio Technology Llc Dynamically loading graph-based computations
JP5559616B2 (ja) * 2010-06-17 2014-07-23 ラピスセミコンダクタ株式会社 半導体メモリ装置
US8898511B2 (en) * 2010-06-24 2014-11-25 International Business Machines Corporation Homogeneous recovery in a redundant memory system
US8549378B2 (en) 2010-06-24 2013-10-01 International Business Machines Corporation RAIM system using decoding of virtual ECC
US8631271B2 (en) 2010-06-24 2014-01-14 International Business Machines Corporation Heterogeneous recovery in a redundant memory system
EP2616928B1 (de) 2010-09-17 2016-11-02 Soft Machines, Inc. Mehrfach verzweigte einzelzyklus-vorhersage mit einem latenten cache für frühe und entfernte verzweigungsvorhersage
US20120110562A1 (en) * 2010-10-27 2012-05-03 David Heinrich Synchronized firmware update
US8443230B1 (en) * 2010-12-15 2013-05-14 Xilinx, Inc. Methods and systems with transaction-level lockstep
EP2689327B1 (de) 2011-03-25 2021-07-28 Intel Corporation Ausführung von befehlsfolgen-codeblocks mittels durch partitionierbare engines realisierter virtueller kerne
EP2689326B1 (de) 2011-03-25 2022-11-16 Intel Corporation Speicherfragmente zur unterstützung einer codeblockausführung mittels durch partitionierbare engines realisierter virtueller kerne
WO2012135041A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
CN103649931B (zh) 2011-05-20 2016-10-12 索夫特机械公司 用于支持由多个引擎执行指令序列的互连结构
WO2012162188A2 (en) 2011-05-20 2012-11-29 Soft Machines, Inc. Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines
US20120317356A1 (en) * 2011-06-09 2012-12-13 Advanced Micro Devices, Inc. Systems and methods for sharing memory between a plurality of processors
US9318166B2 (en) 2011-07-22 2016-04-19 SanDisk Technologies, Inc. Systems and methods of storing data
KR101832679B1 (ko) 2011-11-22 2018-02-26 소프트 머신즈, 인크. 마이크로프로세서 가속 코드 최적화기
KR101703401B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
US8930674B2 (en) 2012-03-07 2015-01-06 Soft Machines, Inc. Systems and methods for accessing a unified translation lookaside buffer
US9055069B2 (en) * 2012-03-19 2015-06-09 Xcelemor, Inc. Hardware computing system with software mediation and method of operation thereof
US8938551B2 (en) * 2012-04-10 2015-01-20 Intel Mobile Communications GmbH Data processing device
US9710399B2 (en) 2012-07-30 2017-07-18 Intel Corporation Systems and methods for flushing a cache with modified data
US9430410B2 (en) 2012-07-30 2016-08-30 Soft Machines, Inc. Systems and methods for supporting a plurality of load accesses of a cache in a single cycle
US9740612B2 (en) 2012-07-30 2017-08-22 Intel Corporation Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
US9229873B2 (en) 2012-07-30 2016-01-05 Soft Machines, Inc. Systems and methods for supporting a plurality of load and store accesses of a cache
US9916253B2 (en) 2012-07-30 2018-03-13 Intel Corporation Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput
US9678882B2 (en) 2012-10-11 2017-06-13 Intel Corporation Systems and methods for non-blocking implementation of cache flush instructions
KR101831550B1 (ko) * 2012-10-22 2018-02-22 인텔 코포레이션 다중슬롯 링크 계층 플릿에서의 제어 메시징
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
JP6036578B2 (ja) * 2013-03-08 2016-11-30 株式会社デンソー データ処理装置
US9442559B2 (en) 2013-03-14 2016-09-13 Intel Corporation Exploiting process variation in a multicore processor
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
KR102063656B1 (ko) 2013-03-15 2020-01-09 소프트 머신즈, 인크. 블록들로 그룹화된 멀티스레드 명령어들을 실행하기 위한 방법
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
KR20150130510A (ko) 2013-03-15 2015-11-23 소프트 머신즈, 인크. 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9594612B2 (en) * 2013-06-28 2017-03-14 Arista Networks, Inc. System and method of a hardware shadow for a network element
JP6236996B2 (ja) * 2013-08-28 2017-11-29 富士通株式会社 情報処理装置および情報処理装置の制御方法
FR3010540B1 (fr) * 2013-09-10 2015-08-14 Schneider Electric Ind Sas Systeme d'automatisme comprenant plusieurs controleurs logiques programmables connectes sur un reseau de communication
CA3128713C (en) 2013-12-05 2022-06-21 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
US9459972B2 (en) 2014-06-20 2016-10-04 International Business Machines Corporation Alternative port error recovery with limited system impact
US10542125B2 (en) * 2014-09-03 2020-01-21 The Boeing Company Systems and methods for configuring a computing device to use a communication protocol
US9043638B1 (en) 2014-11-14 2015-05-26 Quanta Computer Inc. Method for enhancing memory fault tolerance
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
US9633155B1 (en) * 2015-11-10 2017-04-25 International Business Machines Corporation Circuit modification
EP3779674B1 (de) 2015-12-21 2023-02-01 AB Initio Technology LLC Sub-graph interface erzeugung
US10073718B2 (en) 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
US9984182B2 (en) * 2016-05-25 2018-05-29 Caterpillar Inc. Model generation system for a machine
US10008052B2 (en) * 2016-05-25 2018-06-26 Caterpillar Inc. Model generation and monitoring system for a machine
US9792975B1 (en) * 2016-06-23 2017-10-17 Mediatek Inc. Dram and access and operating method thereof
FR3053564B1 (fr) * 2016-07-04 2018-07-27 Kerlink Dispositif de communication modulaire
FR3057086B1 (fr) * 2016-10-04 2018-11-23 Stmicroelectronics (Rousset) Sas Procede de gestion d'une mise a jour d'au moins un microcode au sein d'une unite de traitement, par exemple un microcontroleur, et unite de traitement correspondante
US10528413B2 (en) 2017-04-03 2020-01-07 Intel Corporation Criticality-based error detection
US10020012B1 (en) 2017-10-31 2018-07-10 Seagate Technology Llc Data storage drive with low-latency ports coupling multiple servo control processors
JP6955163B2 (ja) * 2017-12-26 2021-10-27 富士通株式会社 情報処理装置、情報処理方法及びプログラム
KR102569417B1 (ko) 2018-11-12 2023-08-21 제이에프이 스틸 가부시키가이샤 고압 수소 용기
US11841776B2 (en) * 2019-06-12 2023-12-12 Intel Corporation Single chip multi-die architecture having safety-compliant cross-monitoring capability
CN111274237A (zh) * 2020-01-20 2020-06-12 重庆亚德科技股份有限公司 医疗数据核对修正系统及方法
EP4141294A4 (de) 2020-04-20 2023-10-11 JFE Steel Corporation Hochdruckwasserstoffbehälter
CN113722770A (zh) * 2021-08-18 2021-11-30 上海励驰半导体有限公司 基于分级的数据完整性的端到端的保护方法及系统

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3059221A (en) * 1956-12-03 1962-10-16 Rca Corp Information storage and transfer system
NL297037A (de) * 1962-08-23
US3303474A (en) * 1963-01-17 1967-02-07 Rca Corp Duplexing system for controlling online and standby conditions of two computers
US3292156A (en) * 1963-05-28 1966-12-13 Bell Telephone Labor Inc Data signal storage circuit
US3400372A (en) * 1965-02-16 1968-09-03 Ibm Terminal for a multi-data processing system
US3480914A (en) * 1967-01-03 1969-11-25 Ibm Control mechanism for a multi-processor computing system
DE1549397B2 (de) * 1967-06-16 1972-09-14 Chemische Werke Hüls AG, 4370 Mari Verfahren zur automatischen steuerung chemischer anlagen
US3555517A (en) * 1968-10-30 1971-01-12 Ibm Early error detection system for data processing machine
US3581286A (en) * 1969-01-13 1971-05-25 Ibm Module switching apparatus with status sensing and dynamic sharing of modules
US3641505A (en) * 1969-06-25 1972-02-08 Bell Telephone Labor Inc Multiprocessor computer adapted for partitioning into a plurality of independently operating systems
US3623014A (en) * 1969-08-25 1971-11-23 Control Data Corp Computer communications system
US3577185A (en) * 1969-10-02 1971-05-04 Ibm On-line system for measuring the efficiency of replacement algorithms
US3710324A (en) * 1970-04-01 1973-01-09 Digital Equipment Corp Data processing system
JPS513463B1 (de) * 1970-09-25 1976-02-03
US3810120A (en) * 1971-02-12 1974-05-07 Honeywell Inf Systems Automatic deactivation device
DE2108836A1 (de) * 1971-02-25 1972-09-07 Licentia Gmbh Anordnung für ein Doppelrechnersystem
US3725864A (en) * 1971-03-03 1973-04-03 Ibm Input/output control
GB1394431A (en) * 1971-06-24 1975-05-14 Plessey Co Ltd Multiprocessor data processing system
US3786427A (en) * 1971-06-29 1974-01-15 Ibm Dynamic address translation reversed
US3749845A (en) * 1971-08-27 1973-07-31 Bell Telephone Labor Inc Digital data communication system
JPS5147298B2 (de) * 1971-08-30 1976-12-14
US3749897A (en) * 1971-09-03 1973-07-31 Collins Radio Co System failure monitor title
GB1412246A (en) * 1971-09-29 1975-10-29 Kent Automation Systems Ltd Computer control arrangements
US3820079A (en) * 1971-11-01 1974-06-25 Hewlett Packard Co Bus oriented,modular,multiprocessing computer
JPS5147502B2 (de) * 1971-12-29 1976-12-15
US3810114A (en) * 1971-12-29 1974-05-07 Tokyo Shibaura Electric Co Data processing system
US3753234A (en) * 1972-02-25 1973-08-14 Reliance Electric Co Multicomputer system with simultaneous data interchange between computers
FR2176279A5 (de) * 1972-03-17 1973-10-26 Materiel Telephonique
JPS553735B2 (de) * 1972-03-29 1980-01-26
FR2182259A5 (de) * 1972-04-24 1973-12-07 Cii
GB1434186A (en) * 1972-04-26 1976-05-05 Gen Electric Co Ltd Multiprocessor computer systems
US3812468A (en) * 1972-05-12 1974-05-21 Burroughs Corp Multiprocessing system having means for dynamic redesignation of unit functions
JPS4965103U (de) * 1972-09-20 1974-06-07
IT971304B (it) * 1972-11-29 1974-04-30 Honeywell Inf Systems Sistema di accesso a priorita variabile dinamicamente
JPS566015B2 (de) * 1972-12-12 1981-02-09
US3827030A (en) * 1973-01-29 1974-07-30 Gulf & Western Industries Programmable controller using a random access memory
JPS5633435B2 (de) * 1973-02-21 1981-08-04
JPS49114845A (de) * 1973-02-28 1974-11-01
US3828321A (en) * 1973-03-15 1974-08-06 Gte Automatic Electric Lab Inc System for reconfiguring central processor and instruction storage combinations
JPS532296B2 (de) * 1973-03-19 1978-01-26
US3893084A (en) * 1973-05-01 1975-07-01 Digital Equipment Corp Memory access control system
US3859638A (en) * 1973-05-31 1975-01-07 Intersil Inc Non-volatile memory unit with automatic standby power supply
US3836891A (en) * 1973-07-05 1974-09-17 Bendix Corp Tape reader system with buffer memory
US3905023A (en) * 1973-08-15 1975-09-09 Burroughs Corp Large scale multi-level information processing system employing improved failsaft techniques
US3921141A (en) * 1973-09-14 1975-11-18 Gte Automatic Electric Lab Inc Malfunction monitor control circuitry for central data processor of digital communication system
CA1026850A (en) * 1973-09-24 1978-02-21 Smiths Industries Limited Dual, simultaneously operating control system with fault detection
US3886524A (en) * 1973-10-18 1975-05-27 Texas Instruments Inc Asynchronous communication bus
US4099241A (en) * 1973-10-30 1978-07-04 Telefonaktiebolaget L M Ericsson Apparatus for facilitating a cooperation between an executive computer and a reserve computer
US3882460A (en) * 1973-11-02 1975-05-06 Burroughs Corp Serial transfer error detection logic
JPS5324261B2 (de) * 1973-11-20 1978-07-19
FR2258112A5 (de) * 1973-11-30 1975-08-08 Honeywell Bull Soc Ind
GB1474385A (en) * 1973-12-14 1977-05-25 Int Computers Ltd Multiprocessor data processing systems
GB1481393A (en) * 1974-02-28 1977-07-27 Burroughs Corp Information processing systems
JPS5812608B2 (ja) * 1974-03-05 1983-03-09 日本電気株式会社 デンシケイサンキシステム
JPS50133738A (de) * 1974-04-08 1975-10-23
JPS537332B2 (de) * 1974-04-22 1978-03-16
US4040026A (en) * 1974-05-08 1977-08-02 Francois Gernelle Channel for exchanging information between a computer and rapid peripheral units
FR2273317B1 (de) * 1974-05-28 1976-10-15 Philips Electrologica
US4004277A (en) * 1974-05-29 1977-01-18 Gavril Bruce D Switching system for non-symmetrical sharing of computer peripheral equipment
US4130865A (en) * 1974-06-05 1978-12-19 Bolt Beranek And Newman Inc. Multiprocessor computer apparatus employing distributed communications paths and a passive task register
GB1510464A (en) * 1974-06-24 1978-05-10 Shell Int Research N,n-disubstituted amino-acid derivatives and their use as herbicides
JPS5438844B2 (de) * 1974-07-19 1979-11-24
US3908099A (en) * 1974-09-27 1975-09-23 Gte Automatic Electric Lab Inc Fault detection system for a telephone exchange
US4050096A (en) * 1974-10-30 1977-09-20 Motorola, Inc. Pulse expanding system for microprocessor systems with slow memory
US4004283A (en) * 1974-10-30 1977-01-18 Motorola, Inc. Multiple interrupt microprocessor system
GB1505535A (en) * 1974-10-30 1978-03-30 Motorola Inc Microprocessor system
US3919533A (en) * 1974-11-08 1975-11-11 Westinghouse Electric Corp Electrical fault indicator
JPS564936B2 (de) * 1974-12-02 1981-02-02
JPS5169308A (ja) * 1974-12-13 1976-06-15 Hitachi Ltd Booringuhoshiki
US4009470A (en) * 1975-02-18 1977-02-22 Sperry Rand Corporation Pre-emptive, rotational priority system
US4006466A (en) * 1975-03-26 1977-02-01 Honeywell Information Systems, Inc. Programmable interface apparatus and method
US3991407A (en) * 1975-04-09 1976-11-09 E. I. Du Pont De Nemours And Company Computer redundancy interface
NL165859C (nl) * 1975-04-25 1981-05-15 Philips Nv Station voor informatie-overdracht.
CH584488A5 (de) * 1975-05-05 1977-01-31 Ibm
US4015243A (en) * 1975-06-02 1977-03-29 Kurpanek Horst G Multi-processing computer system
US3995258A (en) * 1975-06-30 1976-11-30 Honeywell Information Systems, Inc. Data processing system having a data integrity technique
US4001790A (en) * 1975-06-30 1977-01-04 Honeywell Information Systems, Inc. Modularly addressable units coupled in a data processing system over a common bus
US4034347A (en) * 1975-08-08 1977-07-05 Bell Telephone Laboratories, Incorporated Method and apparatus for controlling a multiprocessor system
US4020459A (en) * 1975-10-28 1977-04-26 Bell Telephone Laboratories, Incorporated Parity generation and bus matching arrangement for synchronized duplicated data processing units
US4034794A (en) * 1975-10-31 1977-07-12 Nalco Chemical Company Casting process with lignosulfonate-humate-graphite mold coatings
US4038644A (en) * 1975-11-19 1977-07-26 Ncr Corporation Destination selection apparatus for a bus oriented computer system
US4048672A (en) * 1976-01-05 1977-09-13 T-Bar Incorporated Switch matrix control and display
US4014005A (en) * 1976-01-05 1977-03-22 International Business Machines Corporation Configuration and control unit for a heterogeneous multi-system
US4067059A (en) * 1976-01-29 1978-01-03 Sperry Rand Corporation Shared direct memory access controller
US4041472A (en) * 1976-04-29 1977-08-09 Ncr Corporation Data processing internal communications system having plural time-shared intercommunication buses and inter-bus communication means
US4051355A (en) * 1976-04-29 1977-09-27 Ncr Corporation Apparatus and method for increasing the efficiency of random access storage
US4038642A (en) * 1976-04-30 1977-07-26 International Business Machines Corporation Input/output interface logic for concurrent operations
US4042911A (en) * 1976-04-30 1977-08-16 International Business Machines Corporation Outer and asynchronous storage extension system
US4059851A (en) * 1976-07-12 1977-11-22 Ncr Corporation Priority network for devices coupled by a common bus
US4089052A (en) * 1976-12-13 1978-05-09 Data General Corporation Data processing system

Also Published As

Publication number Publication date
GB1588805A (en) 1981-04-29
CA1121481A (en) 1982-04-06
JPS60100258A (ja) 1985-06-04
US4817091A (en) 1989-03-28
JPS5925257B2 (ja) 1984-06-15
HK62281A (en) 1981-12-24
GB1588804A (en) 1981-04-29
JPS60100253A (ja) 1985-06-04
JPS60100257A (ja) 1985-06-04
US4639864A (en) 1987-01-27
FR2473197B1 (fr) 1985-12-13
US4356550A (en) 1982-10-26
JPS61286962A (ja) 1986-12-17
US4228496A (en) 1980-10-14
GB1588807A (en) 1981-04-29
JPS6218951B2 (de) 1987-04-25
JPS5333027A (en) 1978-03-28
HK62581A (en) 1981-12-24
FR2485228B1 (fr) 1985-11-29
DE2740056A1 (de) 1978-03-16
HK62681A (en) 1981-12-24
BE892627Q (fr) 1982-07-16
JPS60100254A (ja) 1985-06-04
JPS60100256A (ja) 1985-06-04
JPS6124740B2 (de) 1986-06-12
HK62481A (en) 1981-12-17
JPS60100255A (ja) 1985-06-04
JPS6122336B2 (de) 1986-05-31
US4365295A (en) 1982-12-21
FR2547082A1 (fr) 1984-12-07
JPS6120017B2 (de) 1986-05-20
US4378588A (en) 1983-03-29
US4672537A (en) 1987-06-09
US4807116A (en) 1989-02-21
GB1588803A (en) 1981-04-29
FR2485228A1 (fr) 1981-12-24
MY8200206A (en) 1982-12-31
MY8200205A (en) 1982-12-31
MY8200207A (en) 1982-12-31
JPS6122335B2 (de) 1986-05-31
JPS6129028B2 (de) 1986-07-03
US4672535A (en) 1987-06-09
JPS5850062A (ja) 1983-03-24
MY8200209A (en) 1982-12-31
JPS6120018B2 (de) 1986-05-20
FR2485227A1 (fr) 1981-12-24
MY8200208A (en) 1982-12-31
GB1588806A (en) 1981-04-29
JPS60100252A (ja) 1985-06-04
HK62381A (en) 1981-12-24
FR2485227B1 (fr) 1985-11-29
FR2473197A1 (fr) 1981-07-10
JPS6120016B2 (de) 1986-05-20
US4484275A (en) 1984-11-20

Similar Documents

Publication Publication Date Title
DE2740056C2 (de)
DE2908316C2 (de) Modular aufgebaute Multiprozessor-Datenverarbeitungsanlage
DE2230830C2 (de) Datenverarbeitungsanlage
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
DE2806024C2 (de)
DE3041600C2 (de) Verfahren und Schaltungsanordnung zum Übertragen von Datensignalen zwischen an Datenvermittlungseinrichtungen einer Datenvermittlungsanlage angeschlossenen Datensignalsendern und Datensignalempfängern
DE1449532B2 (de) Datenverarbeitungsanlage
DE2755952C2 (de)
CH662025A5 (de) Digitale vermittlungsanlage.
DE2751106C2 (de)
DE2358545A1 (de) Datenverarbeitungssystem mit dynamisch veraenderlichem vorrangzugriffssystem
DE2165767A1 (de) Datenverarbeitungssystem
DE4023471A1 (de) Kommunikationsschnittstellenschaltung in einem steuerungssystem
DE1929010A1 (de) Modular aufgebautes Datenverarbeitungssystem
DE3041556C2 (de) Verfahren und Schaltungsanordnung zur Vermittlung von Daten zwischen Datenendgeräten
DE2420214C2 (de) Schaltungsanordnung zur Umschaltung der redundanten Kommunikationspfade einer Datenübertragungseinrichtung
DE112016004152T5 (de) Stromversorgungssteuervorrichtung, Kommunikationssystem und Stromversorgungsssteuerverfahren
DE2807321A1 (de) Spannungsueberwachung in einem datenverarbeitungssystem
DE2710100A1 (de) Leitungssteuereinheit fuer sprach- und datennetze
EP0447769A2 (de) Verfahren und Schaltungsanordnung zur Verwaltung gleicher Einheiten sowie Vermittlungselement
DE3041541C2 (de) Schaltungsanordnung zum Übertragen von Datensignalen zwischen jeweils zwei Datenendgeräten einer Datenübertragungsanlage
DE3041566A1 (de) Verfahren und schaltungsanordnung zum uebertragen von datensignalen zwischen datenvermittlungseinrichtungen einer datenvermittlungsanlage
DE2914665C2 (de) Fernmeldesystem, insbesondere Bildschirmtext-System, sowie teilzentraler und dezentraler Schaltungsbaustein für dieses System
EP0306736A2 (de) Verfahren zum Übertragen von in einer Fernmeldevermittlungsanlage gespeicherten Verbindungsinformationen zu einer Informationsverarbeitungsanlage
EP0027557A2 (de) Schaltungsanordnung zur Übertragung digitaler Signale zwischen mit unterschiedlichen Datenübertragungsprozeduren und mit unterschiedlichen Datenformaten arbeitenden Sende- und Empfangsvorrichtungen

Legal Events

Date Code Title Description
OD Request for examination
8127 New person/name/address of the applicant

Owner name: TANDEM COMPUTERS INC. (EINE GESELLSCHAFT N.D.GESET

8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 2760104

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 2760104

8128 New person/name/address of the agent

Representative=s name: EITLE, W., DIPL.-ING. HOFFMANN, K., DIPL.-ING. DR.

D2 Grant after examination
8363 Opposition against the patent
8331 Complete revocation