[go: up one dir, main page]

DE69032708T2 - Protokoll für Lese- und Schreibübertragungen - Google Patents

Protokoll für Lese- und Schreibübertragungen

Info

Publication number
DE69032708T2
DE69032708T2 DE69032708T DE69032708T DE69032708T2 DE 69032708 T2 DE69032708 T2 DE 69032708T2 DE 69032708 T DE69032708 T DE 69032708T DE 69032708 T DE69032708 T DE 69032708T DE 69032708 T2 DE69032708 T2 DE 69032708T2
Authority
DE
Germany
Prior art keywords
data
system resource
write
coupled
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69032708T
Other languages
English (en)
Other versions
DE69032708D1 (de
Inventor
Ajai Malboro Massachusetts 01752 Thirumalai
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Application granted granted Critical
Publication of DE69032708D1 publication Critical patent/DE69032708D1/de
Publication of DE69032708T2 publication Critical patent/DE69032708T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error 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 memory access, memory control or I/O control functionality is redundant
    • 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/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Die Erfindung bezieht sich auf die Übertragung von Informationen, die eine Quell- oder Zieladresse enthalten, zwischen zwei Knoten in einem Netz über eine Datenschaltlogik.
  • Es gibt viele Verfahren zum Übertragen von Informationen zwischen Knoten, die in einem einzigen Netz miteinander gekoppelt sind. Typischerweise wird ein Befehl von einer Komponente eines Computersystems wie etwa einem Prozessor gesendet, wobei der Befehl angibt, ob Daten von einer anderen Komponente des Computersystems wie etwa einem Systembetriebsmittel gelesen werden oder zu einer solchen geschrieben werden. Die von der den Befehl erzeugenden Komponente gesendeten Informationen spezifizieren außerdem entweder die Quelle von Lesedaten oder das Ziel von Schreibdaten.
  • In einigen Computersystemen werden die Befehls- und Adresseninformationen an jede Komponente des Computersystems übertragen. Da die Komponenten in diesen Systemen die Adressen selbst decodieren und entscheiden, ob sie antworten, ist in ihnen keine Schaltlogik erforderlich.
  • In anderen Computersystemen ist es möglich, daß ein Prozessor und ein Systembetriebsmittel nicht miteinander kommunizieren können, ohne daß eine Schaltlogik richtig konfiguriert ist. Zum Beispiel kann das Computersystem mehrere Prozessoren und Systembetriebsmittel enthalten, wobei es erforderlich sein kann, die Schaltlogik in der Weise einzustellen, daß sie einen besonderen Prozessor mit einem gewählten, an das gewünschte Systembetriebsmittel gekoppelten Systembetriebsmittelbus verbindet.
  • In diesem zweiten Systemtyp muß die Schaltlogik nicht nur die Befehle und Adressen an die Systembetriebsmittel weiterleiten, sondern sie muß außerdem die Befehle decodieren, wobei die Adresse zum Anwenden der richtigen Konfiguration dient.
  • Die Schaltlogik in diesen Systemen führt typischerweise eine Speicher- und Weiterleitungsfunktion aus. Wenn die Schaltlogik eine Adresse von einem Prozessor empfängt, speichert sie die Adresse und decodiert sie, so daß die Logik richtig konfiguriert werden kann um zu ermöglichen, daß das Systembetriebsmittel mit dem Prozessor kommuniziert. Sobald die Schaltlogik richtig konfiguriert ist, werden die gespeicherten Befehle, Adressen und Daten von der Schaltlogik an das gewählte Systembetriebsmittel weitergeleitet.
  • Leider enthält ein System, in dem die Schaltlogik eine solche Speicher- und Weiterleitungsfunktion ausführen muß, zusätzliche Hardware und erhöht die Pipeline-Verzögerung für alle Datenübertragungen. Um die empfangenen Informationen während des Konfigurierens der Schaltlogik aufrechtzuerhalten, ist eine zusätzliche Speicherlogik erforderlich. Außerdem werden alle durch die Schaltlogik gesendeten Informationen während der Verzögerungsperiode aufgehalten. Jedoch kann diese Verzögerung unnötig sein, wenn die Schaltlogik am Anfang einer Transaktion eingestellt wird und wenn zwischen dem gleichen Prozessor und dem gleichen Systembetriebsmittel Zusatzinformationen gesendet werden.
  • Folglich besteht ein Bedarf an einem Prozeß, in dem über eine Schaltlogik Informationen einschließlich einer Adresse zwischen einem besonderen Prozessor und einem gewählten Systembetriebsmittel übertragen werden, in dem der Umfang der Hardware aber reduziert ist und in dem Informationsübertragungen nicht verzögert werden, sobald die Schaltlogik am Anfang der Transaktion richtig konfiguriert ist.
  • Die Europäische Patentanmeldung mit der Veröffentlichungs-Nr. EP-A-0.306.348 A2 ist auf ein störungstolerantes Doppelschienen-Prozessorsystem gerichtet, in dem erste und zweite Busse (die mit entsprechenden CPUs wechselwirken) mit Fehlerprüfvorrichtungen vorgesehen sind, die Komparatoren zur Angabe einer Störung enthalten, wenn die Daten auf den zwei Bussen verschieden sind. Die Fehlerisolationsvorrichtungen in der EP-A-0 306 348 antworten auf Fehlerprüfeinrichtungen zum Analysieren der Ursache des Fehlers, wobei sie die Systemsynchronisierung aufrechterhalten. Demgegenüber ist die vorliegende Erfindung auf einen Prozeß zum Übertragen von Informationen einschließlich einer Ziel- oder Quelladresse zwischen zwei Knoten in einem Netz unter Verwendung einer Schaltlogik gerichtet.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Eine Aufgabe der Erfindung besteht darin, mindestens einige der Probleme im Stand der Technik zu beseitigen.
  • Es ist daher wünschenswert, einen Prozeß zum richtigen Konfigurieren einer Schaltlogik zu schaffen, um Daten einschließlich einer Quell- oder Zieladresse zwischen zwei Knoten in einem Netz zu übertragen. Es ist außerdem vorteilhaft, einen Prozeß zum Übertragen von Daten zu schaffen, ohne den Umfang der Logik zu erhöhen oder eine nicht erforderliche Pipeline-Verzögerung zu erzeugen.
  • Weitere Aufgaben und Vorteile der Erfindung werden teilweise in der folgenden Beschreibung dargestellt und sind teilweise aus der Beschreibung offensichtlich oder können durch die Praxis der Erfindung erfahren werden. Die Aufgaben und Vorteile der Erfindung können mittels der Instrumentalisierungen und Kombinationen realisiert und erhalten werden, auf die in den beigefügten Ansprüchen besonders hingewiesen wird.
  • Zum Erreichen der Ziele und in Übereinstimmung mit den hier ausgeführten und umfassend beschriebenen Zwecken der Erfindung wird ein Prozeß zum Übertragen von Daten zwischen Komponenten in einem Computersystem geschaffen, wie er in den beigefügten Ansprüchen definiert ist. Gemäß einem Aspekt enthält das Computersystem einen Prozessor, einen ersten Systembetriebsmittelbus, der mit einem Systembetriebsmittel gekoppelt ist, und einen Datenrouter. Der Datenrouter enthält eine Datenschaltlogik zum Koppeln des Prozessors mit dem ersten Systembetriebsmittelbus. Der Prozeß umfaßt die folgenden Schritte: Senden von Schreibinformationen, die eine Schreibtransaktion angeben, vom Prozessor zu dem mit dem Prozessor gekoppelten Datenrouter, wobei die Schreibinformationen eine Schreibadresse enthalten und wobei die Schreibadresse ein Ziel für die Schreibdaten angibt; Decodieren der Schreibadresse im Datenrouter während der Schreibtransaktion, um zu ermitteln, ob die Schreibtransaktion deh ersten Systembetriebsmittelbus einbezieht, und um zu ermitteln, ob das Ziel einem mit dem ersten Systembetriebsmittelbus gekoppelten Systembetriebsmittel entspricht; und Konfigurieren der Datenschaltlogik in dem Datenrouter während der Schreibtransaktion in Übereinstimmung mit der von dem Datenrouter decodierten Schreibadresse. Die Datenschaltlogik ist so konfiguriert, daß sie Daten an den ersten Systembetriebsmittelbus zu Zeitpunkten weiterleitet, zu denen die Schreibtransaktion den ersten Systembetriebs mittelbus einbezieht und das Ziel einem mit dem ersten Systembetriebsmittelbus gekoppelten Systembetriebsmittel entspricht. Der Prozeß umfaßt außerdem die Schritte des Zurücksendens der Schreibadresse während der Schreibtransaktion vom Prozessor zum Datenrouter; des Weiterleitens der während der Schreibtransaktion zurückgesendeten Schreibadresse über die Datenschaltlogik im Datenrouter zum ersten Systembetriebsmittelbus zu Zeitpunkten, zu denen die Schreibtransaktion den ersten Systembetriebsmittelbus einbezieht und das Ziel einem mit dem ersten Systembetriebsmittelbus gekoppelten Systembetriebsmittel entspricht, um die Speicherung der Schreibdaten in dem durch die Schreibadresse bezeichneten Ziel freizugeben; das Senden von Schreibdaten während der Schreibtransaktion nach der Sendung der Schreibadresse vom Prozessor zum Datenrouter; und das Weiterleiten der während der Schreibtransaktion gesendeten Schreibdaten über die Datenschaltlogik im Datenrouter an den ersten Systembetriebsmittelbus zu Zeitpunkten, zu denen die Schreibtransaktion den ersten Systembetriebsmittelbus einbezieht und das Ziel einem mit dem Systembetriebsmittelbus gekoppelten Systembetriebsmittel entspricht, um die Speicherung der Schreibdaten in dem durch die Schreibadresse bezeichneten Ziel freizugeben.
  • In einer weiteren Ausführung der Erfindung umfaßt der Prozeß das Senden von Leseinformationen, die eine Lesetransaktion angeben, vom Prozessor zu dem mit dem Prozessor gekoppelten Datenrouter, wobei die Leseinformationen eine Leseadresse enthalten und wobei die Leseadresse eine Quelle für die Lesedaten angibt; Decodieren der Leseadresse im Datenrouter während der Lesetransaktion, um zu ermitteln, ob die Lesetransaktion den ersten Systembetriebsmittelbus einbezieht, und um zu ermitteln, ob die Quelle einem mit dem Systembetriebsmittelbus gekoppelten Systembetriebsmittel entspricht; und Konfigurieren der Datenschaltlogik in dem Datenrouter während der Lesetransaktion in Übereinstimmung mit der von dem Datenrouter decodierten Leseadresse. Die Datenschaltlogik ist so konfiguriert, daß sie Daten an den ersten Systembetriebsmittelbus zu Zeitpunkten weiterleitet, zu denen die Lesetransaktion den ersten Systembetriebsmittelbus einbezieht und die Quelle einem mit dem ersten Systembetriebsmittelbus gekoppelten Systembetriebsmittel entspricht. Der Prozeß umfaßt außerdem die Schritte des Zurücksendens der Leseadresse während der Lesetransaktion vom Prozessor zum Datenrouter; und des Weiterleitens der während der Lesetransaktion zurückgesendeten Leseadresse über die Datenschaltlogik im Datenrouter zum ersten Systembetriebsmittelbus zu Zeitpunkten, zu denen die Lesetransaktion den ersten Systembetriebsmittelbus einbezieht und die Quelle einem mit dem ersten Systembetriebsmittelbus gekoppelten Systembetriebsmittel entspricht, um den Zugriff auf die Lesedaten von der durch die Leseadresse bezeichneten Quelle freizugeben.
  • Die beigefügte Zeichnung, die in dieser Beschreibung enthalten ist und einen Teil von ihr bildet, zeigt zweckmäßige Ausführungen der Erfindung und erläutert zusammen mit der Beschreibung der Erfindung deren Prinzipen.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Fig. 1 ist ein Blockschaltplan einer zweckmäßigen Ausführung eines störungstoleranten Computersystems, das die vorliegende Erfindung verwirklicht;
  • Fig. 2 ist eine Darstellung der physikalischen Hardware, die das störungstolerante Computersystem in Fig. 1 enthält;
  • Fig. 3 ist ein Blockschaltplan des in dem in Fig. 1 gezeigten störungstoleranten Computersystem gezeigten CPU-Moduls;
  • Figur, 4 ist ein Blockschaltplan eines verbundenen CPU- Moduls und eines E/A-Moduls für das in Fig. 1 gezeigte Computersystem;
  • Fig. 5 ist ein Blockschaltplan eines Speichermoduls für das in Fig. 1 gezeigte störungstolerante Computersystem;
  • Fig. 6 ist ein ausführlicher Schaltplan der Elemente der Steuerlogik in dem in Fig. 5 gezeigten Speichermodul;
  • Fig. 7 ist ein Blockschaltplan von Teilen des primären Speichercontrollers des in Fig. 3 gezeigten CPU-Moduls;
  • Fig. 8 ist ein Blockschaltplan der DMA-Maschine in dem primären Speichercontroller des CPU-Moduls aus Fig. 3;
  • Fig. 9 ist ein Schaltplan der Fehlerverarbeitungs-Schaltungsanordnung in dem primären Speichercontroller des CPU-Moduls aus Fig. 3;
  • Fig. 10 ist eine Zeichnung einiger Register der Querverbindung in dem in Fig. 3 gezeigten CPU-Modul;
  • Fig. 11 ist ein Blockschaltplan der Elemente, die Steuersignale in den Querverbindungen des in Fig. 3 gezeigten CPU-Moduls leiten;
  • Fig. 12 ist ein Blockschaltplan der Elemente, die Daten- und Adressensignale in der primären Querverbindung des in Fig. 3 gezeigten CPU-Moduls leiten;
  • Fig. 13 ist ein Zustandsdiagramm, das die Zustände für die Querverbindung des in Fig. 3 gezeigten CPU-Moduls zeigt;
  • Fig. 14 ist ein Blockschaltplan des Zeitgebungssystems für das störungstolerante Computersystem aus Fig. 1;
  • Fig. 15 ist ein Zeitablaufplan für die von dem Zeitgebungssystem in Fig. 14 erzeugten Taktsignale;
  • Fig. 16 ist ein ausführlicher Schaltplan einer Phasenerfassungseinrichtung für das in Fig. 14 gezeigte Zeitgebungssystem;
  • Fig. 17 ist ein Blockschaltplan eines E/A-Moduls für das Computersystem aus Fig. 1;
  • Fig. 18 ist ein Blockschaltplan des Brandmauerelements in dem in Fig. 17 gezeigten E/A-Modul;
  • Fig. 19 ist ein ausführlicher Schaltplan der Elemente des Querverbindungspfads für das Computersystem aus Fig. 1;
  • die Fig. 20A-20E sind Datenablaufpläne für das Computersystem in Fig. 1;
  • Fig. 21 ist ein Blockschaltplan der Zone 20, die das Leiten von Rücksetzsignalen zeigt;
  • Fig. 22 ist ein Blockschaltplan der in das Rücksetzen in dem in Fig. 3 gezeigten CPU-Modul einbezogenen Komponenten; und
  • Fig. 23 ist ein Schaltplan der Taktrücksetz-Schaltungsanordnung.
  • Die Fig. 24A-E sind Zeitablaufpläne für Datenübertragungen über die DMA.
  • Die Fig. 25A-D sind Zeitablaufpläne für Datenübertragungen über Lese- und Schreibzyklen.
  • I. BESCHREIBUNG DER ZWECKMÄSSIGEN AUSFÜHRUNG
  • Es wird nun ausführlich Bezug auf eine derzeit zweckmäßige Ausführung der Erfindung genommen, von der ein Beispiel in der beigefügten Zeichnung gezeigt ist.
  • A. SYSTEMBESCHREIBUNG
  • Fig. 1 ist ein Blockschaltplan eines störungstoleranten Computersystems 10 in Übereinstimmung mit der vorliegenden Erfindung. Das störungstolerante Computersystem 10 enthält Zonen genannte Duplikatsysteme. In dem normalen Modus arbeiten die zwei Zonen 11 und 11' gleichzeitig. Die Verdopplung stellt sicher, daß es keinen Einzelstörungspunkt gibt und daß ein Einzelfehler oder eine Einzelstörung in einer der Zonen 11 oder 11' das Computersystem 10 nicht sperrt. Außerdem können alle solchen Störungen durch Sperren oder Ignorieren der Vorrichtung oder des Elements korrigiert werden, die bzw. das die Störung hervorgerufen hat. In Fig. 1 ist gezeigt, wie die Zonen 11 und 11' jeweilige Duplikatverarbeitungssysteme 20 bzw. 20' enthalten. Jedoch geht die Verdopplung über das Verarbeitungssystem hinaus.
  • Fig. 2 enthält eine Darstellung der physikalischen Hardware des störungstoleranten Computersystems 10 und zeigt graphisch die Verdopplung der Systeme. Jede Zone 11 und 11' ist in einem anderen Gehäuse 12 bzw. 12' untergebracht. Das Gehäuse 12 enthält die Batterie 13, den Stromregler 14, die Kühlventilatoren 16 und den Wechsel stromeingang 17. Das Gehäuse 12' enthält gesonderte Elemente, die den Elementen 13, 14, 16 und 17 des Gehäuses 12 entsprechen.
  • Wie unten ausführlicher erläutert, enthalten die Verarbeitungssysteme 20 und 20' mehrere durch Rückwandleiterplatten verbundene Module. Falls ein Modul eine Störung oder einen Fehler enthält, kann dieses Modul ohne Sperren des Computersystems 10 entfernt und ersetzt werden. Dies liegt daran, daß die Verarbeitungssysteme 20 und 20' physikalisch getrennt sind, getrennte Rückwandleiterplatten besitzen, in die die Module eingesteckt sind und unabhängig voneinander betrieben werden können. Somit können Module aus der Rückwandleiterplatte eines Verarbeitungssystems entfernt und in diese eingesteckt werden, während das andere Verarbeitungssystem weiterarbeitet.
  • In der zweckmäßigen Ausführung sind die Duplikatverarbeitungssysteme 20 und 20' völlig gleich und enthalten völlig gleiche Module. Somit wird nur das Verarbeitungssystem 20 vollständig beschrieben, wobei selbstverständlich ist, daß das Verarbeitungssystem 20' entsprechend arbeitet.
  • Das Verarbeitungssystem 20 enthält ein in den Fig. 3 und 4 ausführlicher gezeigtes CPU-Modul 30. Durch einen unten ausführlicher beschriebenen Querverbindungspfad 25 ist das CPU-Modul 30 mit dem CPU-Modul 30' im Verarbeitungssystem 20' verbunden. Der Querverbindungspfad 25 schafft Datenübertragungspfade zwischen den Verarbeitungssystemen 20 und 20' und überträgt Zeitgebungssignale um sicherzustellen, daß die Verarbeitungssysteme 20 und 20' synchron arbeiten.
  • Das Verarbeitungssystem 20 enthält außerdem die E/A- Module 100, 110 und 120, Die E/A-Module 100, 110, 120, 100', 110' und 120' sind unabhängige Vorrichtungen. Das E/A-Modul 100 ist in den Fig. 1, 4 und 17 ausführlicher gezeigt. Obgleich mehrere E/A-Module gezeigt sind, ist die Verdopplung solcher Module keine Systemanforderung. Jedoch geht ohne eine solche Verdopplung ein Grad von Störungstoleranz verloren.
  • Jedes E/A-Modul 100, 110 und 120 ist durch Doppelschienen-Modulverdrahtungen 130 und 132 an das CPU-Modul 30 angeschlossen. Die Modulverdrahtungen 130 und 132 dienen als die E/A-Verdrahtung und werden durch die Rückwandleiterplatte zu dem Verarbeitungssystem 20 geleitet. Für die Zwecke dieser Anmeldung wird der Datenpfad mit der CPU 40, dem Speichercontroller 70, der Querverbindung 90 und der Modulverdrahtung 130 als eine Schiene betrachtet, während der Datenpfad mit der CPU 50, dem Speichercontroller 75, der Querverbindung 95 und der Modulverdrahtung 132 als eine weitere Schiene betrachtet wird. Während des richtigen Betriebs sind die Daten auf beiden Schienen gleich.
  • B. DIE PHILOSOPHIE DES STÖRUNGSTOLERANTEN SYSTEMS
  • Da jedes Elemente verdoppelt ist, hat das störungstolerante Computersystem 10 keinen Einzelstörungspunkt. Die Verarbeitungssysteme 20 und 20' sind jeweils ein störungsbegrenzendes Verarbeitungssystem, was bedeutet, daß diese Systeme Störungen oder Fehler in den Teilsystemen erfassen und die unkontrollierte Ausbreitung solcher Störungen und Fehler in andere Teilsysteme verhindern können, wobei sie jedoch einen Einzelstörungspunkt besitzen, da die Elemente in jedem Verarbeitungssystem nicht verdoppelt sind.
  • Die zwei störungsbegrenzenden Verarbeitungssysteme 20 und 20' sind durch gewisse Elemente verbunden, die in einer definierten Weise arbeiten, um ein störungssicheres System zu bilden. In dem als störungstolerantes Computersystem 10 ausgeführten störungssicheren System kann das gesamte Computersystem mit der Verarbeitung selbst dann fortfahren, wenn eines der störungsbegrenzenden Verarbeitungssysteme 20 und 20' gestört ist.
  • Da die CPUs 40, 50, 40' und 50' in einem Sperrstufensynchronismus arbeiten, wird angenommen, daß die zwei störungsbegrenzenden Verarbeitungssysteme 20 und 20' in einem solchen Synchronismus arbeiten. Es gibt drei bedeutende Ausnahmen. Die erste besteht beim Initialisieren, wenn ein Bootstrap-Verfahren beide Prozessoren in einen solchen Synchronismus bringt. Die zweite Ausnahme besteht, wenn die Verarbeitungssysteme 20 und 20' bei zwei verschiedenen Auslastungen unabhängig (asynchron) arbeiten. Die dritte Ausnahme findet statt, wenn in den Verarbeitungssystemen 20 und 20' gewisse Fehler auftreten. Bei dieser letzten Ausnahme sind die CPU und die Speicherelemente in einem der Verarbeitungssysteme gesperrt, wobei der synchrone Betrieb auf diese Weise abgeschlossen wird.
  • Wenn das System in der Sperrstufen-E/A läuft, wird zu irgendeinem Zeitpunkt nur auf eine E/A-Vorrichtung zugegriffen. Jedoch würden alle vier CPUs 40, 50, 40' und 50' von jener E/A-Vorrichtung im wesentlichen die gleichen Daten gleichzeitig empfangen. In der folgenden Diskussion ist selbstverständlich, daß die Sperrstufensynchronisierung der Verarbeitungssysteme bedeutet, daß nur auf ein E/A-Modul zugegriffen wird.
  • Der Synchronismus der Duplikatverarbeitungssysteme 20 und 20' wird dadurch verwirklicht, daß jedes System als eine deterministische Maschine behandelt wird, die in dem gleichen bekannten Zustand startet und beim Empfang der gleichen Eingaben immer in die gleichen Maschinenzustände eintritt und in Abwesenheit eines Fehlers die gleichen Ergebnisse erzeugt. Die Verarbeitungssysteme 20 und 20' sind völlig gleich konfiguriert, empfangen die gleichen Eingaben und durchlaufen daher die gleichen Zustände. Solange beide Prozessoren synchron arbeiten, sollten sie daher die gleichen Ergebnisse erzeugen und in den gleichen Zustand eintreten. Falls die Verarbeitungssysteme nicht in dem gleichen Zustand sind oder verschiedene Ergebnisse erzeugen, wird angenommen, daß eines der Verarbeitungssysteme 20 und 20' gestört ist. Um Korrekturmaßnahmen wie etwa das Sperren des gestörten Moduls zu ergreifen, muß dann die Quelle der Störung isoliert werden.
  • Allgemein bezieht die Fehlererfassung einen Organisationsaufwand in Form zusätzlicher Verarbeitungszeit oder -logik ein. Um einen solchen Organisationsaufwand zu minimieren sollte ein mit dem störungstoleranten Betrieb konsistentes System so selten wie möglich auf Fehler überprüfen. Zum mindesten muß eine Fehlerprüfung vor der Ausgabe von Daten von den CPU-Modulen 30 und 30' stattfinden. Andernfalls können interne Verarbeitungsfehler einen unrichtigen Betrieb in externen Systemen wie einem Kernreaktor hervorrufen, wobei es sich um den Zustand handelt, den zu verhindern störungstolerante Systeme entworfen werden.
  • Es gibt Gründe für eine zusätzliche Fehlerprüfung. Um Störungen oder Fehler zu isolieren, ist es z. B. wünschenswert, die von den CPU-Modulen 30 und 30' empfangenen Daten vor der Speicherung oder Verwendung zu überprüfen. Besonders, wenn auf die fehlerhaften gespeicherten Daten später zugegriffen wird und zusätzliche Fehler folgen, wird es andernfalls besonders dann schwierig oder unmöglich, die ursprüngliche Quelle von Fehlern zu finden, wenn die fehlerhaften Daten während einiger Zeit gespeichert wurden. Der Ablauf sowie die nachfolgende Verarbeitung der fehlerhaften Daten kann jede Spur zurück zu der Fehlerquelle zerstören.
  • Ebenso kann die "Fehlerlatenzzeit", die sich auf die Zeitdauer bezieht, die ein Fehler vor der Erfassung gespeichert wird, später Probleme verursachen. Zum Beispiel kann ein latenter Fehler durch eine selten verwendete Routine aufgedeckt werden, wenn das Computersystem infolge eines vorangehenden Fehlers bereits mit verminderter Kapazität arbeitet. Wenn das Computersystem eine verminderte Kapazität besitzt, kann der latente Fehler einen Absturz des Systems verursachen.
  • Außerdem ist es wünschenswert, in den Doppelschienensystemen der Verarbeitungssysteme 20 und 20' eine Störungsprüfung vor dem Übertragen von Daten an Einzelschienensysteme wie etwa an ein gemeinsam genutztes Betriebsmittel wie einen Speicher vorzunehmen. Dies liegt daran, daß es nach solchen Übertragungen keine zwei unabhängigen Datenquellen mehr gibt, wobei das Verfolgen von Fehlern schwierig, wenn nicht unmöglich wird, falls später irgendein Fehler in dem Einzelschienensystem erfaßt wird. Das zweckmäßige Verfahren der Fehlerbehandlung ist in einer am gleichen Datum eingereichten Anmeldung mit dem Titel "Software Error Handling" dargestellt, die die Anwaltsregister-Nr. PD89-289/DEC-344 (FINK/P8243EP) trägt und hier durch Literaturverweis eingefügt ist.
  • C. MODULBESCHREIBUNG 1. CPU-Modul
  • In den Fig. 3 und 4 sind die in Fig. 1 gezeigten Elemente des CPU-Moduls 30 ausführlicher gezeigt. Fig. 3 ist ein Blockschaltplan des CPU-Moduls, während Fig. 4 Block schaltpläne des CPU-Moduls 30 und des E/A-Moduls 100 sowie ihre Verbindungen zeigt. Da der Betrieb der CPU- Module 30 und 30' und die darin enthaltenen Elemente allgemein die gleichen sind, wird nur das CPU-Modul 30 beschrieben.
  • Das CPU-Modul 30 enthält doppelte CPUs 40 und 50. Die CPUs 40 und 50 können dem Durchschnittsfachmann bekannte Standard-Zentraleinheiten sein. In der zweckmäßigen Ausführung sind die CPUs 40 und 50 durch die Digital Equipment Corporation, den Bevollmächtigten dieser Anmeldung, hergestellte VAX-Mikroprozessoren.
  • Den CPUs 40 und 50 sind Cache-Speicher 42 bzw. 52 zugeordnet, die Standard-Cache-RAMs mit für die CPUs ausreichender Speichergröße sind. In der zweckmäßigen Ausführung beträgt der Cache-RAM 4 K · 64 Bits. Für die vorliegende Erfindung ist das Vorhandensein eines Cache-RAMs jedoch nicht notwendig.
  • 2. Speichermodul
  • Die CPUs 40 und 50 können zweckmäßig bis zu vier Speichermodule 60 gemeinsam nutzen. Fig. 5 ist ein Blockschaltplan eines angeschlossen an das CPU-Modul 30 gezeigten Speichermoduls 60.
  • Während Speicherübertragungszyklen, Zustandsregister- Übertragungszyklen und EEPROM-Übertragungszyklen überträgt jedes Speichermodul 60 über einen doppeltgerichteten Datenbus 85 Daten zum und vom primären Speichercontroller 70. Außerdem empfängt jedes Speichermodul 60 über die Busse 80 bzw. 82 Adressen- Steuer- Zeitgebungs- und ECC-Signale von den Speichercontrollern 70 und 75. Die Adressensignale auf den Bussen 80 und 82 umfassen Platinen-, Bank- und Zeilen- und Spaltenadressensignale, die die Adresse der in die Datenübertragung einbezogenen Platine, Bank, Zeile und Spalte identifizieren.
  • Wie in Fig. 5 gezeigt, enthält jedes Speichermodul 60 eine Speichermatrix 600. Jede Speichermatrix 600 ist ein Standard-RAM, in dem die DRAMs in acht Speicherbänken organisiert sind. In der zweckmäßigen Ausführung werden Schneller-Seitenmodus-DRAMs verwendet.
  • Das Speichermodul 60 enthält außerdem eine Steuerlogik 610, Daten-Sende-Empfänger/Register 620, Speichertreiber 630 und einen EEPROM 640. Die Daten-Sende-Empfänger/Register 620 schaffen einen Datenpuffer und eine Datenschnittstelle zum Übertragen von Daten zwischen der Speichermatrix 600 und den doppeltgerichteten Datenleitungen des Datenbusses 85. Die Speichertreiber 630 verteilen Zeilen- und Spaltenadressensignale und Steuersignale von der Steuerlogik 610 an jede Bank in der Speichermatrix 600, um die Übertragung eines Datenlangworts und seiner entsprechenden ECC-Signale zu oder von der durch das Speicherplatinensignal und durch das Bankadressensignal gewählten Speicherbank freizugeben.
  • Der EEPROM 640, der irgendein NVRAM-Typ (irgendein Typ eines nichtflüchtigen RAM) sein kann, speichert Speicherfehlerdaten zur Offline-Reparatur und Konfigurationsdaten wie etwa die Modulgröße. Wenn das Speichermodul nach einer Störung entfernt wird, werden die gespeicherten Daten aus dem EEPROM 640 ausgekoppelt, um die Ursache der Störung zu ermitteln. Der EEPROM 640 wird über Zeilenadressenleitungen von den Treibern 630 und durch EEPROM- Steuersignale von der Steuerlogik 610 adressiert. Der EEPROM 640 überträgt acht Datenbits zu und von einem internen 32 Bit-Speicherdatenbus 645.
  • Die Steuerlogik 610 leitet Adressensignale zu den Elementen des Speichermoduls 60 und erzeugt interne Zeitgebungs- und Steuersignale. Wie ausführlicher in Fig. 6 gezeigt, enthält die Steuerlogik 610 eine Primär/Spiegel- Bezeichnungs-Schaltungsanordnung 612.
  • Die Primär/Spiegel-Bezeichnungs-Schaltungsanordnung 612 empfängt auf den Bussen 80 und 82 zwei Sätze Speicherplatinenadressen-, Bankadressen-, Zeilen- und Spaltenadressen-, Zyklustyp- und Zykluszeitgebungssignale von den Speichercontrollern 70 und 75 und überträgt auf den Bussen 80 und 82 zwei Sätze ECC-Signale zu oder von den Speichercontrollern. Die Sende-Empfänger/Register in der Bezeichnungseinrichtung 612 schaffen einen Puffer und eine Schnittstelle, um diese Signale zu und von den Speicherbussen 80 und 82 zu übertragen. Ein in den Zustandsregistern 618 gespeichertes Primär/Spiegel-Multiplexiererbit gibt an, welcher der Speichercontroller 70 und 75 als der primäre Speichercontroller und welcher als der Spiegel-Speichercontroller bezeichnet ist, wobei von den Zustandsregistern 618 ein Primär/Spiegel-Multiplexierersignal für die Bezeichnungseinrichtung 612 bereitgestellt wird.
  • Die Primär/Spiegel-Bezeichnungseinrichtung 612 stellt zwei Signalsätze zur Verteilung in der Steuerlogik 610 bereit. Ein Signalsatz enthält die Platinenadresse, die Bankadresse, die Zeilen- und Spaltenadresse, den Zyklustyp, die Zykluszeitgebung und die ECC-Signale des primären Speichers. Der andere Signalsatz enthält die Platinenadresse, die Bankadresse, die Zeilen- und Spaltenadresse, den Zyklustyp, die Zykluszeitgebung und die ECC- Signale des Spiegelspeichers. Die Bezeichnungseinrichtung 612 verwendet das Primär/Spiegel-Multiplexierersignal um auszuwählen, ob die Signale auf den Bussen 80 und 82 jeweils auf die Leitungen zum Übertragen der als primär bezeichneten Signale und auf die Leitungen zum Übertragen der als Spiegelsignale bezeichneten Signale geleitet werden oder umgekehrt.
  • Die Busse 80 und 82 enthalten eine Anzahl doppeltgerichteter Zeitmultiplexleitungen. Zu bestimmten Zeitpunkten nach dem Beginn von Speicherübertragungszyklen, Zustandsregister-Übertragungszyklen und EEPROM-Übertragungszyklen werden den Daten auf dem Datenbus 85 entsprechend ECC- Signale auf diesen doppeltgerichteten Zeitmultiplexleitungen angeordnet. Falls der Übertragungszyklus ein Schreibzyklus ist, empfängt das Speichermodul 60 Daten und ECC-Signale von den Speichercontrollern. Falls der Übertragungszyklus ein Lesezyklus ist, sendet das Speichermodul 60 Daten und ECC-Signale zu den Speichercontrollern. Zu anderen Zeitpunkten während der Übertragungszyklen empfängt das Speichermodul 60 auf den doppeltgerichteten Zeitmultiplexleitungen Adressen- Steuer- und Zeitgebungssignale. Zweckmäßig senden die Speichercontroller 70 und 75 auf diesen Zeitteilungsleitungen zu Beginn von Speicherübertragungszyklen, Zustandsregister- Übertragungszyklen und EEPROM-Übertragungszyklen Speicherplatinenadressen-, Bankadressen- und Zyklustypsignale zu jedem Speichermodul 60.
  • Während Übertragungszyklen werden die Zeilenadressensignale und Spaltenadressensignale zweckmäßig auf den gleichen Zeilen- und Spaltenadressenleitungen multiplexiert. Zunächst wird von den Speichercontrollern eine Zeilenadresse für das Speichermodul 60 bereitgestellt, worauf etwa 60 Nanosekunden später eine Spaltenadresse folgt.
  • Eine Ablaufsteuerung 616 empfängt als Eingangssignale ein Systemtaktsignal und ein Rücksetzsignal von dem CPU-Modul 30 und empfängt das bezeichnete primäre Zykluszeitge bungssignal, das bezeichnete primäre Zyklustypsignal, das bezeichnete Spiegel-Zykluszeitgebungssignal und das bezeichnete Spiegel-Zyklustypsignal von den Sende-Empfängern/Registern in der Bezeichnungseinrichtung 612.
  • Die Ablaufsteuerung 616 ist ein Ringzähler mit einer zugeordneten Steuerlogik, die für das Speichermodul eine Anzahl von Steuer- und Ablaufsteuerungs-Zeitgebungssignalen erzeugt und verteilt, die zum Ausführen der verschiedenen Zyklustypen benötigt werden. Die Steuer- und Ablaufsteuerungs-Zeitgebungssignale werden von den Systemtaktsignalen, von den bezeichneten primären Zykluszeitgebungssignalen und von den bezeichneten primären Zyklustypsignalen erzeugt.
  • Außerdem erzeugt die Ablaufsteuerung 616 aus den Systemtaktsignalen, aus den bezeichneten Spiegel-Zykluszeitgebungssignalen und aus den bezeichneten Spiegel-Zyklustypsignalen einen Duplikat-Ablaufsteuerungs-Zeitgebungssignalsatz. Diese Duplikat-Ablaufsteuerungs-Zeitgebungssignale werden für die Fehlerprüfung verwendet. Für Datenübertragungen von Daten aus mehreren Langwörtern zu und von dem Speichermodul 60 folgt in einem schnellen Seitenzugriffsmodus, beginnend mit dem ersten Satz, auf jeden Spaltenadressensatz 120 Nanosekunden später die nächste Spaltenadresse, wobei jedes Datenlangwort 120 Nanosekunden nach dem vorangehenden Datenlangwort über den Bus 85 verschoben wird.
  • Außerdem erzeugt die Ablaufsteuerung 616 tx/rx-Registersteuersignale. Die tx/rx-Registersteuersignale werden zum Steuern des Betriebs der Daten-Sende-Empfänger/Register 620 und der Sende-Empfänger/Register in der Bezeichnungseinrichtung 612 bereitgestellt. Die Richtung des Datenflusses wird von der Steuerlogik in der Ablaufsteuerung 616 bestimmt, die auf die bezeichneten primären Zyklus typsignale durch Erzeugen von tx/rx-Steuer- und Ablaufsteuerungs-Zeitgebungssignalen antwortet, die angeben, ob und wann Daten- und ECC-Signale in die Sende-Empfänger/Register im Speichermodul 60 geschrieben oder aus diesen gelesen werden sollen. Somit werden während Speicherschreibzyklen, Zustandsregister-Schreibzyklen und EEPROM-Schreibzyklen in den Sende-Empfängern Daten und ECC-Signale von den Bussen 80, 82 und 85 zwischengespeichert, während im Verlauf von Speicherlesezyklen, Zustandsregister-Lesezyklen und EEPROM-Lesezyklen in den Sende-Empfängern/Registern Daten und ECC-Signale von der Speichermatrix 600, von den Zustandsregistern 618 oder von dem EEPROM 640 zur Ausgabe an das CPU-Modul 30 zwischengespeichert werden.
  • Die Ablaufsteuerung 616 erzeugt außerdem EEPROM-Steuersignale zum Steuern des Betriebs des EEPROMs 640.
  • Die im Speichermodul 60 bestehenden Zeitgebungsbeziehungen sind mit Bezug auf die Anstiegszeit des Systemtaktsignals, das eine Periode von 30 Nanosekunden hat, spezifiziert. Alle Zustandsregisterlese- und -schreibzyklen und alle Speicherlese- und -schreibzyklen eines einzelnen Langworts werden in 10 Systemtaktperioden, d. h. in 300 Nanosekunden, ausgeführt. Speicherlese- und -scheib- Übertragungszyklen können aus Übertragungen mehrerer Langwörter bestehen. Für jedes zusätzlich übertragene Langwort wird der Speicherübertragungszyklus um vier zusätzliche Systemtaktperioden erweitert. Speicherauffrischungszyklen und EEPROM-Schreibzyklen erfordern zur Ausführung mindestens zwölf Systemtaktperioden, während EEPROM-Lesezyklen mindestens zwanzig Systemtaktperioden erfordern.
  • Das bezeichnete primäre Zykluszeitgebungssignal bewirkt, daß die Ablaufsteuerung 616 mit der Erzeugung der Ablauf steuerungs-Zeitgebungs- und -Steuersignale beginnt, die ermöglichen, daß das von den Speicherplatinen-Adressensignalen gewählte Speichermodul einen angeforderten Zyklus realisiert. Der Übergang des bezeichneten primären Zykluszeitgebungssignals in einen aktiven Zustand markiert den Zyklusbeginn. Die Rückkehr des bezeichneten primären Zykluszeitgebungssignals in einen inaktiven Zustand markiert das Zyklusende.
  • Die von der Ablaufsteuerung 616 erzeugten Ablaufsteuerungs-Zeitgebungssignale sind mit den verschiedenen, von der Ablaufsteuerung während der Ausführung eines von dem CPU-Modul 30 angeforderten Zyklus eingegebenen Zuständen verknüpft. Um die Zeitgebungsbeziehung zwischen diesen verschiedenen Zuständen (und die Zeitgebungsbeziehung zwischen den jedem dieser Zustände entsprechenden Ablaufsteuerungs-Zeitgebungssignalen) zu spezifizieren, werden die diskreten Zustände, in die die Ablaufsteuerung 616 eintreten kann, als Zustände SEQ IDLE und SEQ 1 bis SEQ 19 identifiziert. Jeder Zustand dauert eine einzige Systemtaktperiode (30 Nanosekunden). Der Eintritt der Ablaufsteuerung 616 in jeden verschiedenen Zustand wird von der steigenden Flanke des Systemtaktsignals ausgelöst. Um die steigenden Flanken des Systemtaktsignals, die den Eintritt der Ablaufsteuerung 616 in die Zustände SEQ IDLE und SEQ 1 bis SEQ 19 bewirken, auf die Zustände der Ablaufsteuerung zu beziehen, werden sie als Übergänge T IDLE und T1 bis T19 bezeichnet, d. h. TN ist die steigende Flanke des Systemtaktsignals, die den Eintritt der Ablaufsteuerung 616 in den Zustand SEQ N bewirkt.
  • Zu Zeitpunkten, zu denen das CPU-Modul 30 nicht das Speichermodul 60 zur Ausführung eines Zyklus lenkt, ist das bezeichnete primäre Zykluszeitgebungssignal nicht erklärt, wobei die Ablaufsteuerung im Zustand SEQ IDLE verbleibt. Wenn die Steuerlogik 610 und die Ablaufsteue rung 616 in dem durch die ebenfalls von dem Speichercontroller 70 auf den Bus 80 gesendeten Speicherplatinen- Adressensignale gewählten Speichermodul angeordnet sind, wird durch den Speichercontroller 70 als Antwort auf die Erklärung des Zykluszeitgebungssignals auf dem Bus 80 die Ablaufsteuerung gestartet (wobei sie in den Zustand SEQ 1 eintritt). Die steigende Flanke des ersten Systemtaktsignals nach der Erklärung des bezeichneten primären Zyklusaktivsignals entspricht dem Übergang T1.
  • Wie zuvor angegeben, wird der Zyklus im Fall von Übertragungen eines einzelnen Langworts zu oder von der Speichermatrix 600 in zehn Systemtaktperioden ausgeführt. Die Ablaufsteuerung schreitet von SEQ IDLE zu den Zuständen SEQ 1 bis SEQ 9 fort und kehrt zu SEQ IDLE zurück.
  • Jedoch können die Speicherlese- und -schreibzyklen zum Übertragen zusätzlicher Langwörter erweitert werden. Die Speichermatrix 600 verwendet zweckmäßig "Schneller-Seitenzugriffsmodus"-DRAMs. Während des Lesens und Schreibens mehrerer Langwörter werden Übertragungen von Daten zu und von der Speichermatrix nach der Übertragung der ersten Langworts durch wiederholtes Aktualisieren der Spaltenadresse und Erzeugen eines CAS-Signals (Spaltenadressen-Freigabesignals) erreicht.
  • Da die Ablaufsteuerung 616, bis alle Langwörter übertragen sind, mehrfach eine Schleife von den Zuständen SEQ 4 bis SEQ 7 durchläuft, können diese Aktualisierungen der Spaltenadresse während Übertragungszyklen mehrerer Langwörter verwirklicht werden. Falls z. B. drei Langwörter aus der Speichermatrix 600 gelesen oder in diese geschrieben werden, tritt die Ablaufsteuerung in die Zustände SEQ IDLE, SEQ 1, SEQ 2, SEQ 3, SEQ 4, SEQ 5, SEQ 6, SEQ 7, SEQ 4, SEQ 5, SEQ 6, SEQ 7, SEQ 4, SEQ 5, SEQ 6, SEQ 7, SEQ 8, SEQ 9 und SEQ IDLE ein.
  • Während eines Speicherübertragungszyklus wird das bezeichnete primäre Zeitgebungssignal während des Übergangs T6 von der Ablaufsteuerung 616 überwacht, um zu ermitteln, ob der Speicherlese- oder -schreibzyklus zur Übertragung mindestens eines zusätzlichen Langworts zu erweitern ist. Zu Zeitpunkten, zu denen das bezeichnete primäre Zykluszeitgebungssignal während des Übergangs T6 erklärt ist, antwortet die Ablaufsteuerung im Zustand SEQ 7 auf das nächste Systemtaktsignal dadurch, daß sie nicht in den Zustand SEQ 8, sondern in den Zustand SEQ 4 eintritt.
  • Im Fall einer Übertragung mehrerer Langwörter wird das bezeichnete primäre Zykluszeitgebungssignal mindestens 15 Nanosekunden vor dem ersten T6-Übergang erklärt, wobei es erklärt bleibt, bis das letzte Langwort übertragen ist. Um einen Speicherübertragungszyklus nach der Übertragung des letzten Langworts abzuschließen, wird die Erklärung des bezeichneten primären Zykluszeitgebungssignals mindestens 15 Nanosekunden vor dem letzten T6-Übergang abgeschlossen, wobei es mindestens 10 Nanosekunden nach dem letzten T6-Übergang nicht erklärt bleibt.
  • Während der Speicherübertragungszyklen werden das bezeichnete primäre Zeilenadressensignal und das bezeichnete primäre Spaltenadressensignal von der Zuordnungseinrichtung 612 in der Steuerlogik 610 zu verschiedenen Zeitpunkten auf einem Zeitmultiplexleitungssatz an die Speichertreiber 630 überreicht. Die Ausgangssignale der Treiber 630 werden an die Adresseneingänge der DRAMs in der Speichermatrix 600 angelegt und werden außerdem zum Vergleich mit den bezeichneten Spiegel-Zeilen- und -Spaltenadressensignalen zum Überprüfen auf Fehler an die Steuerlogik 610 zurückgegeben. Während Zustandsregister- Übertragungszyklen und EEPROM-Übertragungszyklen werden keine Spaltenadressensignale zum Auswählen eines besonderen Speicherbereichs benötigt.
  • Die Zeilenadressensignale sind die ersten Signale, die während eines Speicherübertragungszyklus auf den Zeitteilungszeilen- und -spaltenadressenleitungen der Busse 80 und 82 überreicht werden. Während des Zustands SEQ IDLE senden die Speichercontroller die Zeilenadressensignale auf den Zeilen- und Spaltenadressenleitungen, wobei die Zeilenadresse von mindestens 15 Nanosekunden vor dem T1- Übergang bis 10 Nanosekunden nach dem T1-Übergang stabil ist. Als nächstes senden die Speichercontroller die Spaltenadressensignale auf den Zeilen- und Spaltenadressenleitungen, wobei die Spaltenadresse von mindestens 10 Nanosekunden vor dem T3-Übergang bis 15 Nanosekunden nach dem T4-Übergang stabil ist. Im Fall von Übertragungen mehrerer Langwörter werden nachfolgend während Speicherübertragungszyklen Spaltenadressensignale auf den Zeilen- und Spaltenadressenleitungen gesendet, wobei diese nachfolgenden Spaltenadressen von 10 Nanosekunden vor dem T6- Übergang bis 15 Nanosekunden nach dem T7-Übergang stabil sind.
  • Die Generator-/Prüfeinrichtung 617 empfängt die zwei von der Ablaufsteuerung 616 erzeugten Ablaufsteuerungs-Zeitgebungssignalsätze. Außerdem sendet die Zuordnungseinrichtung 612 das bezeichnete primäre Zyklustypsignal und das bezeichnete primäre Bankadressensignal und das bezeichnete Spiegel-Zyklustypsignal und das bezeichnete Spiegel-Bankadressensignal an die Generator-/Prüfeinrichtung 617. In der Generator-/Prüfeinrichtung werden unter Verwendung der primären Ablaufsteuerungs-Zeitgebungssignale und der bezeichneten primären Zyklustyp- und Bankadressensignale eine Anzahl von primären Steuersignalen, d. h. RAS (Zeilenadressenfreigabe), CAS (Spaltenadressenfreigabe) und WE (Schreibfreigabe) zur Verteilung an die Treiber 630 erzeugt. Von der Generator-/Prüfeinrichtung 617 wird aus den Duplikat- Ablaufsteuerungs-Zeitgebungssignalen (Spiegel-Ablaufsteuerungs-Zeitgebungssignalen) und aus den bezeichneten Spiegel-Zyklustypsignalen und Spiegel-Bankadressensignalen ein Duplikatsatz dieser Steuersignale erzeugt. Diese Spiegel-RAS-, -CAS- und -Schreibfreigabesignale werden zur Fehlerprüfung verwendet.
  • Wenn die primären Zyklustypsignale angeben, daß ein Speicherübertragungszyklus auszuführen ist, identifizieren die primären Bankadressensignale eine gewählte DRAM- Bank in der Speichermatrix 600. Die Speichertreiber 630 enthalten für jede DRAM-Bank in der Speichermatrix 600 getrennte RAS-Treiber. In der Generator-/Prüfeinrichtung 617 wird während des Speicherübertragungszyklus das primäre RAS-Signal erzeugt und auf eine der Leitungen, die die Generator-/Prüfeinrichtung mit den RAS-Treibern verbinden, demultiplexiert. Im Ergebnis empfängt während des Speicherübertragungszyklus nur der RAS-Treiber, der der gewählten DRAM-Bank entspricht, ein erklärtes RAS- Signal. Während des Auffrischungszyklus wird das primäre RAS-Signal nicht demultiplexiert, wobei durch jeden RAS- Treiber ein erklärtes RAS-Signal empfangen wird. Während Zustandsregister-Übertragungszyklen und EEPROM-Übertragungszyklen sind die Bankadressensignale nicht erforderlich.
  • Die Speichertreiber 630 enthalten außerdem CAS-Treiber. Das primäre CAS-Signal wird während der Speicherübertragungszyklen und während der Auffrischungszyklen in der Generator-/Prüfeinrichtung 617 erzeugt. Das primäre CAS- Signal wird nicht demultiplexiert, wobei durch jeden CAS- Treiber ein erklärtes CAS-Signal empfangen wird.
  • Während Speicherlesezyklen erzeugt die Generator-/Prüfeinrichtung 617 das primäre WE-Signal. Das erklärte WE- Signal wird von den Treibern 630 für jede DRAM-Bank in der Speichermatrix 600 bereitgestellt. Jedoch kann ein Schreiben nur von der gewählten DRAM-Bank ausgeführt werden, die außerdem erklärte RAS- und CAS-Signale empfängt.
  • In der zweckmäßigen Ausführung der Erfindung wird das primäre RAS-Signal während der Speicherübertragungszyklen während des T2-Übergangs erklärt, wobei es von mindestens 10 Nanosekunden vor dem T3-Übergang stabil ist und die Erklärung während des letzten T7-Übergangs aufgehoben wird. Das primäre CAS-Signal wird 15 Nanosekunden nach jedem T4-Übergang erklärt, während die Erklärung während jedes T7-Übergangs aufgehoben wird. Während der Speicherschreibzyklen wird das primäre WE-Signal während des T3- Übergangs erklärt, wobei es von mindestens 10 Nanosekunden vor dem ersten T4-Übergang stabil ist und die Erklärung während des letzten T7-Übergangs aufgehoben wird.
  • Wenn die primären Zyklustypsignale angeben, daß ein Speicherauffrischungszyklus ausgeführt wird, bewirkt die Generator-/Prüfeinrichtung 617, daß die Speichermatrix 600 Speicherauffrischungsoperationen als Antwort auf die von der Ablaufsteuerung 616 bereitgestellten primären Ablaufsteuerungs-Zeitgebungssignale ausführt. Während dieser Auffrischungsoperationen wird das RAS- und das CAS-Signal von der Generator-/Prüfeinrichtung in umgekehrter Reihenfolge erzeugt und verteilt. Dieser Auffrischungsmodus erfordert kein externes Adressieren für die Bank, die Zeile oder die Spalte.
  • Während der Übertragungszyklen werden zu Zeitpunkten, zu denen auf dem Bus 85 Daten übertragen werden, auf den doppeltgerichteten Zeitmultiplexleitungen der Busse 80 und 82 ECC-Signale übertragen. Jedoch werden diese gleichen Leitungen zu anderen Zeitpunkten während des Übertragungszyklus zum Übertragen von Steuer- (z. B. Zyklustyp-) und Adressen- (z. B. Speicherplatinenadressen- und Bankadressen-)Signalen verwendet.
  • Die Sende-Empfänger/Register in der Primär/Spiegel-Zuordnungseinrichtung 612 enthalten Empfänger und Sender, die auf von der Ablaufsteuerung 616 bereitgestellte Ablaufsteuerungs-Zeitgebungssignale und auf tx/rx-Registersteuersignale antworten. Die Ablaufsteuerungs-Zeitgebungssignale und die tx/rx-Registersteuersignale geben das Multiplexieren von ECC-Signalen und von Adressen-/Steuersignalen auf den doppeltgerichteten Zeitmultiplexleitungen der Busse 80 und 82 frei.
  • Zweckmäßig werden Steuer- und Adressensignale wie etwa Zyklustyp-, Speicherplatinenadressen- und Bankadressensignale von den Speichercontrollern 70 und 75 am Beginn eines Übertragungszyklus entweder eines einzelnen Langworts oder mehrerer Langwörter gesendet und auf den Zeitteilungsleitungen der Busse 80 und 82 überreicht. Der Übergang dieser Signale beginnt gleichzeitig mit der Aktivierung des Zykluszeitgebungssignals (während die Ablaufsteuerung in dem SEQ IDLE-Zustand ist), wobei sie während T2 stabil bleiben. Somit werden die Empfänger in den Sende-Empfänger/Registern der Zuordnungseinrichtung 612 freigegeben, wobei die Sende-Empfänger mindestens bis zum Abschluß des Zustands SEQ 2 in ihrem Dreizustandsmodus eingestellt werden.
  • Die Zyklustypsignale identifizieren, welche der folgenden aufgelisteten Funktionen die Speichermatrix 60 während des Zyklus ausführt: Speicherlesen, Speicherschreiben, Zustandsregisterlesen, Zustandsregisterschreiben, EEPROM- Lesen, EEPROM-Schreiben und Auffrischen. Die von der Zuordnungseinrichtung 612 empfangenen bezeichneten primären Zyklustypsignale werden für die Ablaufsteuerung 616 bereitgestellt und bei der Erzeugung der tx/rx-Steuersignale und der Ablaufsteuerungs-Zeitgebungssignale verwendet. Zum Beispiel werden die Empfänger in den Daten- Sende-Empfänger/Registern 620 und in den Sende-Empfängern/Registern der Zuordnungseinrichtung 612 während eines Schreibzyklus freigegeben, während die Sender durch die Ablaufsteuerung 616 die ganze Zeit in ihrem Dreizustandsmodus eingestellt werden. Jedoch werden während eines Lesezyklus nach dem Empfang des Zyklustyp-, des Speicherplatinenadressen- und des Bankadressensignals am Anfang des Zyklus die Empfänger in den Daten-Sende-Empfängern/Registern 620 und in den Sende-Empfängern/Registern der Zuordnungseinrichtung 612 in ihrem Dreizustandsmodus eingestellt, während die Sender durch die Ablaufsteuerung 616 freigegeben werden.
  • In der zweckmäßigen Ausführung werden Datenübertragungen zu oder von der Speichermatrix 600 in jedem Speichermodul 60 unter Verwendung eines Fehlererfassungscodes (EDC) überprüft, der zweckmäßig der gleiche Code ist, den die Controller 70 und 75 verlangen. Der zweckmäßige Code ist ein Einbitkorrektur-Doppelbiterfassungs-Fehlererfassungscode (ECC).
  • Während eines Speicherschreibzyklus sendet der Speichercontroller 70 mindestens ein Datenlangwort an den Datenbus 85, während er gleichzeitig eine entsprechende Menge ECC-Signale auf den Bus 80 sendet. Inzwischen sendet der Speichercontroller 75 einen zweiten Satz ECC-Signale, der ebenfalls dem Langwort auf dem Datenbus 85, auf dem Bus 82 entspricht.
  • Wie hier ausgeführt, werden die Daten und die ECC-Signale für jedes Langwort während eines Speicherschreibzyklus an die Empfänger der Daten-Sende-Empfänger/Register 620 und an die Empfänger der Sende-Empfänger/Register der Zuordnungseinrichtung 612 überreicht. Die Daten und die ECC- Signale, die mindestens 10 Nanosekunden vor dem T4-Übergang stabil sind und bis 15 Nanosekunden nach dem T6- Übergang stabil bleiben, werden in diesen Sende-Empfängern/Registern zwischengespeichert. Während dieses Zeitraums stellen die Speichercontroller 70 und 75 auf den Zeitteilungsleitungen der Busse 80 und 82 keine Adressen und Steuersignale bereit.
  • Die während des Speicherschreibzyklus von der Zuordnungseinrichtung 612 empfangenen bezeichneten primären ECC- Signale und das während des Speicherschreibzyklus von den Sende-Empfänger/Registern 620 empfangene Datenlangwort werden für die Dateneingänge der DRAMs in jeder der acht Bänke der Speichermatrix 600 und für den ECC-Generator 623 bereitgestellt. Der erzeugte ECC wird durch den Komparator 625 mit dem bezeichneten primären ECC verglichen. Außerdem werden für die ECC-Komparatoren 625 die bezeichneten primären ECC-Signale zusammen mit den bezeichneten Spiegel-ECC-Signalen bereitgestellt.
  • Wie hier ausgeführt, wird während eines Speicherlesezyklus mindestens ein Datenlangwort und ein entsprechender Satz ECC-Signale aus der Speichermatrix 600 gelesen und entsprechend in die Daten-Sende-Empfänger/Register 620 und in die Sende-Empfänger/Register der Zuordnungseinrichtung 612 gesteuert. Während des Übergangs T7 des Speicherlesezyklus sind die Daten- und die ECC-Signale für jedes Langwort von der Speichermatrix 600 verfügbar und werden in diesen Sende-Empfängern/Registern zwischengespeichert. Außerdem werden die Daten an den ECC-Generator 623 überreicht, wobei sein Ausgangssignal mit dem aus dem Speicher gelesenen ECC vergleichen wird.
  • Nach dem Zwischenspeichern werden die Daten- und die ECC- Signale von den Sendern der Daten-Sende-Empfänger/Register 620 und von den Sendern der Sende-Empfänger/Register der Zuordnungseinrichtung 612 an den Datenbus 85 und an die Busse 80 und 82 überreicht. Die gleichen ECC-Signale werden von den Sende-Empfängern/Registern in der Zuordnungseinrichtung 612 an den Speichercontroller 70 und an den Speichercontroller 75 gesendet. Die auf den Datenbus 85 und auf den Bussen 80 und 82 gesendeten Daten und ECC-Signale sind (im Fall einer Übertragung mehrerer Langwörter) von 15 Nanosekunden nach dem T7-Übergang bis 5 Nanosekunden vor dem folgenden T6-Übergang oder (im Fall der Übertragung eines einzelnen Langworts oder des letzten Langworts einer Übertragung mehrerer Langwörter) bis 5 Nanosekunden vor dem folgenden T IDLE-Übergang stabil. Während dieses Zeitraums stellen die Speichercontroller 70 und 75 auf den Zeitteilungsleitungen der Busse 80 und 82 keine Adressen-/Steuersignale bereit. Während des folgenden T IDLE-Übergangs sind die Sender der Daten-Sende-Empfänger/Register 620 und die Sender der Sende-Empfänger/Register der Zuordnungseinrichtung 612 in ihrem Dreizustandsmodus eingestellt.
  • Zum Vergleich der vom Controller 70 ausgehenden Adressen-, Steuer- und Zeitgebungssignale mit den entsprechenden vom Controller 75 ausgehenden Adressen-, Steuer- und Zeitgebungssignalen wird ein Komparator 614 bereitgestellt. Die bezeichneten primären Zykluszeitgebungssignale, Zyklustypsignale, Speicherplatinen-Adressensignale und Bankadressensignale werden zusammen mit den bezeichneten Spiegel-Zykluszeitgebungssignalen, -Zyklustypsignalen, -Speicherplatinen-Adressensignalen, -Bankadressensignalen, -Zeilenadressensignalen und -Spaltenadressensignalen von der Zuordnungseinrichtung 612 für den Komparator 614 bereitgestellt. Die bezeichneten primären Zeilenadressensignale und Spaltenadressensignale werden von den Ausgängen der Treiber 630 für den Komparator 614 bereitgestellt. Dann werden beide Signalsätze verglichen.
  • Falls zwischen irgendwelchen von den Speichercontrollern ausgehenden Adressen-, Steuer- und Zeitgebungssignalen ein Fehlvergleich besteht, erzeugt der Komparator 614 ein geeignetes Fehlersignal. Wie in Fig. 6 gezeigt, können von dem Komparator Platinenadressen-Fehler-, Bankadressen-Fehler-, Zeilenadressen-Fehler-, Spaltenadressen- Fehler-, Zyklustypadressen-Fehler- und Zykluszeitgebungs- Fehlersignale ausgegeben werden.
  • Die Generator-/Prüfeinrichtung 617 vergleicht die von der Ablaufsteuerung 616 und von der Generator-/Prüfeinrichtung 617 unter Verwendung der bezeichneten primären Bankadressen-, Zyklustyp- und Zykluszeitgebungssignale erzeugten primären Steuer- und Zeitgebungssignale mit den unter Verwendung der bezeichneten Spiegel-Bankadressen-, -Zyklustyp- und -Zykluszeitgebungssignale erzeugten Spiegel-Steuer- und -Zeitgebungssignalen. Die zwei Ablaufsteuerungs-Zeitgebungs-Signalsätze werden von der Ablaufsteuerung 616 für die Generator-/Prüfeinrichtung 617 bereitgestellt. Die primären RAS-, CAS- und WE-Signale werden von den Ausgängen der Treiber 630 für die Generator-/Prüfeinrichtung 617 bereitgestellt. Wie zuvor angegeben, werden die Spiegel-RAS-, -CAS- und -WE-Signale intern von der Generator-/Prüfeinrichtung erzeugt. Die Generator-/Prüfeinrichtung 617 vergleicht die primären RAS-, CAS-, WE- und Ablaufsteuerungs- Zeitgebungssignale mit den Spiegel-RAS-, -CAS-, -WE- und Ablaufsteuerungs-Zeitgebungssignalen.
  • Falls zwischen irgendwelchen von der Ablaufsteuerung 616 oder von der Generator-/Prüfeinrichtung 617 ausgehenden Steuer- und Zeitgebungssignalen ein Fehlvergleich besteht, erzeugt die Generator-/Prüfeinrichtung ein entsprechendes Fehlersignal. Wie in Fig. 6 gezeigt, können von der Generator-/Prüfeinrichtung 617 Ablaufsteuerungs- Fehler-, RAS-Fehler-, CAS-Fehler- und WE-Fehlersignale ausgegeben werden.
  • Die Fehlersignale werden von dem Komparator 614 und von der Generator-/Prüfeinrichtung 617 für die Adressen/Steuerfehlerlogik 621 bereitgestellt. Als Antwort auf den Empfang eines Fehlersignals von dem Komparator 614 oder von der Generator-/Prüfeinrichtung 617 sendet die Adressen-/Steuerfehlerlogik 621 ein Adressen-/Steuerfehlersignal an das CPU-Modul 30, um die Erfassung einer Störung infolge eines Fehlvergleichs wischen irgendwelchen Adressen-, Steuer- oder Zeitgebungssignalen anzugeben. Das Adressen-/Steuerfehlersignal wird zur Fehlerbehandlung an die Fehlerlogik in den Speichercontrollern 70 und 75 gesendet. Das Senden des Adressen/Steuerfehlersignals an das CPU-Modul 30 bewirkt eine CPU/MEM-Störung, die in anderen Abschnitten ausführlicher diskutiert ist.
  • Außerdem werden die von dem Komparator 614 und von der Generator-/Prüfeinrichtung 617 erzeugten Fehlersignale für die Zustandsregister 618 bereitgestellt. Um eine Fehlerdiagnose und -korrektur zu ermöglichen, werden die Fehlersignale und alle für die Störung relevanten Adressen-, Steuer-, Zeitgebungs-, Daten- und ECC-Signale vorübergehend in den Zustandsregistern gespeichert.
  • In Übereinstimmung mit einem Aspekt der Erfindung wird zwischen dem CPU-Modul 30 und dem Speichermodul 60 nur ein einziger 32 Bit-Datenbus 85 bereitgestellt. Folglich kann das Speichermodul 60 keine zwei Datensätze von den Speichercontrollern 70 und 75 vergleichen. Jedoch wird die Datenintegrität von dem Speichermodul 60 ohne Verwendung eines Duplikat-Satzes von 32 Datenleitungen durch Überprüfen der zwei getrennten ECC-Signalsätze, die von den Speichercontrollern 70 und 75 an das Speichermodul 60 gesendet werden, überprüft.
  • Wie in Fig. 6 gezeigt, enthält die Steuerlogik 610 einen ECC-Generator 623 und ECC-Komparatoren 625. Die bezeichneten primären und Spiegel-ECC-Signale werden von der Zuordnungseinrichtung 612 für die ECC-Komparatoren bereitgestellt. Während eines Speicherschreibzyklus werden die bezeichneten primären ECC-Signale mit den bezeichneten Spiegel-ECC-Signalen verglichen. Im Ergebnis überprüft das Speichermodul 60, ob die Speichercontroller 70 und 75 in Übereinstimmung sind und ob die bezeichneten, während des Speicherschreibzyklus in den DRAMs der Speichermatrix 600 gespeicherten primären ECC-Signale richtig sind. Außerdem werden die während des Speicherschreibzyklus an die Dateneingänge der DRAMs überreichten Daten für den ECC-Generator 623 bereitgestellt. Der ECC-Generator 623 erzeugt entsprechend den Daten einen Satz erzeugter ECC-Signale und stellt die erzeugten ECC-Signale für die ECC-Komparatoren 625 bereit. Die bezeichneten primären ECC-Signale werden mit den erzeugten ECC-Signalen verglichen, um zu überprüfen, ob die von dem Speichercontroller 70 auf den Datenbus 85 gesendeten Daten die gleichen wie die in den DRAMs der Speichermatrix 600 gespeicherten Daten sind.
  • Während eines Speicherlesezyklus werden die von der gewählten DRAM-Bank gelesenen Daten an den ECC-Generator übergeben. Dann werden die erzeugten ECC-Signale für die ECC-Komparatoren bereitgestellt, die außerdem die von der gewählten DRAM-Bank gelesenen gespeicherten ECC-Signale empfangen. Die erzeugten und gespeicherten ECC-Signale werden von den ECC-Komparatoren 625 verglichen.
  • Falls zwischen irgendeinem Paar von durch die ECC-Komparatoren 625 überwachten ECC-Signalen ein Fehlvergleich besteht, erzeugen die ECC-Komparatoren ein entsprechendes Fehlersignal. Wie in Fig. 6 gezeigt, können von den ECC- Komparatoren Primär/Spiegel-ECC-Fehler-, primäre/erzeugte ECC-Fehler- und Speicher-/erzeugte ECC-Fehlersignale ausgegeben werden.
  • Diese ECC-Fehlersignale von den ECC-Komparatoren 625 werden für die Zustandsregister 618 bereitgestellt. Um eine Fehlerdiagnose und -korrektur zu ermöglichen, wird jedes ECC-Fehlersignal und jedes für eine ECC-Störung relevante Adressen-, Steuer-, Zeitgebungs-, Daten- und ECC-Signal vorübergehend in den Zustandsregistern gespeichert.
  • Auf einer ECC-Fehlerleitung wird von den ECC-Komparatoren 625 ein ECC-Fehlersignal erklärt und zur Anzeige der Erfassung einer ECC-Störung infolge eines Fehlvergleichs an das CPU-Modul 30 gesendet. Der Fehlvergleich kann während einer der beiden während eines Speicherschreibzyklus ausgeführten ECC-Prüfungen oder während der während eines Speicherlesezyklus ausgeführten einzelnen ECC- Prüfung eintreten.
  • Wie in Fig. 6 gezeigt, empfängt die Platinenauswahllogik 627 Steckplatzsignale von einer Speicherrückwandleiterplatte. Die Steckplatzsignale spezifizieren für jedes Speichermodul 60 eine eindeutige Steckplatzlage. Die Platinenauswahllogik 627 vergleicht dann die Steckplatzsignale mit den von einem der Speichercontroller über die Zuordnungsschaltung 612 gesendeten bezeichneten primären Platinenadressensignalen. Falls die Steckplatzsignale die gleichen wie die bezeichneten primären Platinenadressensignale sind, wird von der Platinenauswahllogik 627 ein Platinenauswahlsignal erzeugt, wobei in der Steuerlogik 610 die andere Schaltungsanordnung freigegeben wird.
  • 3. Speichercontroller
  • Die Speichercontroller 70 und 75 steuern den Zugriff der CPUs 40 bzw. 50 auf das Speichermodul 60 und auf die Hilfsspeicherelemente und führen in der zweckmäßigen Ausführung gewisse Fehlerabwicklungsoperationen aus. Die mit dem Speichercontroller 70 gekoppelten Hilfsspeicherelemente umfassen den System-ROM 43, den EEPROM 44 und den Notizblock-RAM 45. Der ROM 43 hält einen gewissen Standardcode wie etwa einen Fehlermeldungscode, einen Konsolentreibercode und einen Teil des Bootstrap-Codes. Der EEPROM 44 wird zum Halten von Informationen wie etwa während des Betriebs der CPU 40 erfaßten Fehlerinformationen, die möglicherweise modifiziert werden müssen, beim Entfernen des Stroms aber nicht verlorengehen sollten, verwendet. Der Notizblock-RAM 45 wird für gewisse, von der CPU 40 ausgeführte Operationen und zum Wandeln der für die Schiene eindeutigen Informationen (z. B. der für den Zustand auf einer Schiene spezifischen Informationen, die nur für eine CPU 40 oder 50 verfügbar sind) in Zoneninformationen (z. B. in Informationen, auf die beide CPUs 40 und 50 zugreifen können) verwendet.
  • Mit dem Speichercontroller 75 sind Ersatzelemente 53, 54 und 55 gekoppelt. Der System-ROM 53, der EEPROM 54 und der Notizblock-RAM 55 sind die gleichen und führen die gleichen Funktionen aus wie der System-ROM 43, der EEPROM 44 bzw. der Notizblock-RAM 45.
  • In den Fig. 7-9 sind die Einzelheiten der zweckmäßigen Ausführung des primären Speichercontrollers 70 gezeigt. Der Spiegel-Speichercontroller 75 besitzt die gleichen wie in den Fig. 7-9 gezeigten Elemente, unterscheidet sich aber geringfügig im Betrieb. Mit Ausnahme dort, wo der Betrieb des Speichercontrollers 75 abweicht, wird folglich nur der Betrieb des primären Speichercontrollers 70 beschrieben. Die Speichercontroller 70' und 75' im Verarbeitungssystem 20' besitzen die gleichen Elemente und wirken in der gleichen Weise wie die Speichercontroller 70 bzw. 75.
  • Die in Fig. 7 gezeigten Elemente steuern den Daten-, Adressen- und Signalfluß durch den primären Speichercontroller 70. Die Steuerlogik 700 steuert den Zustand der verschiedenen Elemente in Fig. 7 gemäß den von dem Speichercontroller 70 und von der Zustandsmaschine jenes Speichercontrollers empfangenen Signalen, die in der Steuerlogik 700 gespeichert werden. Der Multiplexierer 702 wählt Adressen aus einer von drei Quellen aus. Die Adressen können entweder über den Empfänger 705 von der CPU 30, von der unten in bezug auf Fig. 8 beschriebenen DMA-Maschine 800 oder von einer während Resynchronisierungsoperationen zum Erzeugen einer künstlichen Auffrischung während gewisser Massenspeicherübertragungen aus einer Zone in eine andere verwendeten Auffrischungs- Resync-Adressenleitung kommen.
  • So, wie von der CPU 30 über den Empfänger 705 empfangene Daten und Daten von der DMA-Maschine 800 in den Multiplexierer 710 eingegeben werden, ist auch das Ausgangssignal des Multiplexierers 702 ein Eingangssignal in den Multiplexierer 710. Der Ausgang des Multiplexierers 710 stellt über die Speicherverdrahtung 85 und über den Treiber 715 Daten für das Speichermodul 60 bereit. Da nur ein Satz Speicherdaten an die Speichermodule 60 bzw. 60' gesendet werden, ist der Treiber 715 für die Spiegel-Speichersteuermodule 75 und 75' gesperrt.
  • Die an die Speicherverdrahtung 85 gesendeten Daten umfassen Daten entweder von der CPU 30 oder von der DMA-Maschine 800 zur Speicherung im Speichermodul 60. Außerdem werden über diesen Pfad und außerdem über den Empfänger 745 und über die ECC-Korrektureinrichtung 750 Daten von der CPU 30 und Adressen vom Multiplexierer 702 an die DMA-Maschine 800 gesendet.
  • Die Adressen vom Multiplexierer 702 stellen außerdem ein Eingangssignal für den Demultiplexierer 720 bereit, der die Adressen in einen Zeilen-/Spaltenadressenanteil, einen Platinen-/Bankadressenanteil und in ein Einzelplatinenbit aufteilt. Die 22 Bits der Zeilen-/Spaltenadresse werden auf elf Leitungen multiplexiert. In der zweckmäßigen Ausführung werden die 22 Zeilen-/Spaltenadressenbits über die Treiber 721 an das Speichermodul 60 gesendet. Während die anderen Platinen-/Bankadressenbits mit den ECC-Signalen multiplexiert werden, wird das Einzelplatinenbit zweckmäßig über die Treiber 722 an das Speichermodul 60 gesendet.
  • Der Multiplexierer 725 kombiniert einen normalen Auffrischungsbefehl für den Speichercontroller 70 mit Zyklustypinformationen (d. h. Lesen, Schreiben usw.) von der CPU 30 und mit DMA-Zyklustypinformationen. Sowohl der normale Auffrischungsbefehl als auch die Auffrischungs- Resync-Adresse bewirken, daß das Speichermodul 60 eine Speicherauffrischungsoperation auslöst.
  • Das Ausgangssignal des Multiplexierers 725 ist zusammen mit der Platinen-/Bankadresse vom Demultiplexierer 720 ein Eingangssignal in den Multiplexierer 730. Das Ausgangssignal der Generator-/Prüfeinrichtung 735 ist ein weiteres Eingangssignal in den Multiplexierer 730. Der Multiplexierer 730 wählt eines der Eingangssignale aus und ordnet es auf den Zeitmultiplex-ECC-/Adressen leitungen zum Speichermodul 60 an. Außerdem ermöglicht der Multiplexierer 730, daß jene Zeitmultiplexleitungen, allerdings zu verschiedenen Zeitpunkten, Platinen-/Bankadresseninformationen und zusätzliche Steuerinformationen sowie ECC-Informationen übertragen.
  • Die ECC-Informationen werden über den Empfänger 734 vom Speichermodul 60 empfangen und zum Vergleich des von dem Speichermodul 60 erzeugten ECC mit dem von dem Speichercontroller 70 erzeugten ECC als ein Eingangssignal in die ECC-Generator-/Prüfeinrichtung 735 bereitgestellt.
  • Das Ausgangssignal des Multiplexierers 740 ist ein weiteres Eingangssignal in die ECC-Generator-/Prüfeinrichtung 735. In Abhängigkeit davon, ob die Speichertransaktion eine Schreibtransaktion oder eine Lesetransaktion ist, empfängt der Multiplexierer 740 als Eingangssignale die vom Multiplexierer 710 an das Speichermodul 60 gesendeten Speicherdaten oder die über den Empfänger 745 vom Speichermodul 60 empfangenen Speicherdaten. Der Multiplexierer 740 wählt einen dieser Speicherdatensätze als das Eingangssignal in die ECC-Generator-/Prüfeinrichtung 735 aus. Die Generator-/Prüfeinrichtung 735 erzeugt dann den entsprechenden ECC-Code, der zusätzlich dazu, daß er an den Multiplexierer 730 gesendet wird, auch an die ECC- Korrektureinrichtung 750 gesendet wird. In der zweckmäßigen Ausführung korrigiert die ECC-Korrektureinrichtung 750 irgendwelche Einbitfehler in den vom Speichermodul 60 empfangenen Speicherdaten.
  • Die korrigierten Speicherdaten von der ECC-Prüfeinrichtung 750 werden dann an die in Fig. 8 gezeigte DMA-Maschine sowie an den Multiplexierer 752 gesendet. Das andere Eingangssignal in den Multiplexierer 752 sind die Fehlerinformationen von der unten in Verbindung mit Fig. 9 beschriebenen Fehlerbehandlungslogik. Das Aus gangssignal des Multiplexierers 752 wird über den Treiber 753 an die CPU 30 gesendet.
  • Der Komparator 755 vergleicht die vom Multiplexierer 710 an das Speichermodul 60 gesendeten Daten mit einer Kopie jener Daten, nachdem sie durch den Treiber 715 und den Empfänger 745 geleitet wurden. Diese Überprüfung bestimmt, ob der Treiber 715 und der Empfänger 745 richtig arbeiten. Das Ausgangssignal des Komparators 755 ist ein CMP-Fehlersignal, das die Anwesenheit oder die Abwesenheit eines solchen Vergleichsfehlers angibt. Der CMP- Fehler wird in die Fehlerlogik in Fig. 9 gespeist.
  • Zwei andere Elemente in Fig. 7 schaffen eine andere Art der Fehlererfassung. Das Element 760 ist ein Paritätsgenerator. Die entweder von dem Speichercontroller 70 auf im Speichermodul 60 zu speichernden Daten oder von dem Speichermodul 60 auf vom Speichermodul 60 gelesenen Daten erzeugten ECC-Daten werden an den Paritätsgenerator 760 gesendet. Das Paritätssignal vom Generator 760 wird über den Treiber 762 an den Komparator 765 gesendet. Der Komparator 765 vergleicht das ECC-Paritätssignal vom Generator 760 mit einem von dem Controller 75' erzeugen Ersatz-ECC-Paritätssignal.
  • Der Paritätsgenerator 770 führt eine gleichartige Überprüfung an den vom Demultiplexierer 720 empfangenen Zeilen-/Spalten- und Einzelbitplatinen-Adressensignalen aus. Das Adressenparitätssignal vom Paritätsgenerator 770 wird von einem Treiber 772 an einen Komparator 775 gesendet, der außerdem ein Adressenparitätssignal vom Controller 75 empfängt. Die Ausgangssignale des Komparators 765 und 775 sind Paritätsfehlersignale, die in die Fehlerlogik in Fig. 9 gespeist werden.
  • Fig. 8 zeigt die Grundprinzipien einer DMA-Maschine 800. In der zweckmäßigen Ausführung ruht die DMA-Maschine 800 im Speichercontroller 70, wobei eine solche Anordnung aber keine Bedingung ist. Wie in Fig. 8 gezeigt, umfaßt die DMA-Maschine 800 einen Datenrouter 810, eine DMA- Steuerung 820 und DMA-Register 830. Der Treiber 815 und der Empfänger 816 schaffen eine Schnittstelle zwischen dem Speichercontroller 70 und der Querverbindung 90.
  • Die DMA-Steuerung 820 empfängt von der Steuerlogik 700 interne Steuersignale und sendet als Antwort Steuersignale, um den Datenrouter 810 in die richtige Konfiguration zu bringen. Außerdem bewirkt die Steuerung 820, daß die Konfiguration des Datenrouters 810 in der Weise eingestellt wird, daß er Daten- und Steuersignale von der Querverbindung 90 an die Schaltungsanordnung der Speichersteuerung 70 in Fig. 7 leitet. Der Datenrouter 810 sendet seine Zustandssignale an die DMA-Steuerung 820, die solche Signale zusammen mit anderen DMA-Informationen an die Fehlerlogik in Fig. 9 weitergibt.
  • Die Register 830 umfassen ein DMA-Byte-Zählerregister 832 und ein DMA-Adressenregister 836. Diese Register werden von der CPU 40 über den Router 810 auf Anfangswerte eingestellt. Während der DMA-Zyklen bewirkt dann die Steuerung 820 über den Router 810 ein Inkrementieren des Zählerregisters 832 und ein Dekrementieren des Adressenregisters 836. Außerdem bewirkt die Steuerung 820, daß der Inhalt der Adressenregister 836 während der DMA- Operationen durch den Router 810 und durch die Schaltungsanordnung in Fig. 7 an das Speichermodul 60 gesendet wird.
  • Wie oben erläutert, führen die Speichercontroller 70, 75, 70' und 75' in der zweckmäßigen Ausführung dieser Erfindung außerdem gewisse grundlegende Fehleroperationen aus.
  • Fig. 9 zeigt ein Beispiel der zweckmäßigen Ausführung der Hardware zum Ausführen solcher Fehleroperationen.
  • Wie in Fig. 9 gezeigt, sind gewisse für den Speichercontroller interne Signale wie etwa Zeitüberschreitung, ECC- Fehler und Bus-Fehlvergleich genauso wie gewisse externe Signale wie etwa Schienenfehler, Brandmauer-Fehlvergleich und Adressen-/Steuerfehler Eingangssignale in die Diagnose-Fehlerlogik 870. In der zweckmäßigen Ausführung empfängt die Diagnose-Fehlerlogik 870 über die Querverbindungen 90 und 95 Fehlersignale von den anderen Komponenten des Systems 10.
  • Die Diagnose-Fehlerlogik 870 bildet Fehlerimpulse aus den Fehlersignalen und aus einem von der Grundzeitgebung des Speichercontrollers 70 erzeugten Steuerimpulssignal. Die von der Diagnose-Fehlerlogik 870 erzeugten Fehlerimpulse enthalten gewisse Fehlerinformationen, die in Übereinstimmung mit gewissen Zeitgebungssignalen in entsprechenden Bereichen in einem Diagnose-Fehlerregister 880 gespeichert werden. Das Systemstörungs-Fehleradressenregister 865 speichert die Adresse im Speichermodul 60, mit dem die CPUs 40 und 50 beim Auftreten eines Fehlers kommunizieren.
  • Die Fehlerimpulse von der Diagnose-Fehlerlogik 870 werden außerdem an die Fehlerklassifizierungslogik 850 gesendet, die von der CPU 30 außerdem Informationen zur Angabe des Zyklustyps (z. B. Lesen, Schreiben, usw.) empfängt. Aus diesen Informationen und den Fehlerimpulsen ermittelt die Fehlerklassifizierungslogik 850 das Vorhandensein von CPU/EA-Fehlern, DMA-Fehlern oder CPU/MEM-Störungen.
  • Ein CPU/EA-Fehler ist ein Fehler in einer Operation, der unmittelbar einem CPU/EA-Zyklus auf dem Bus 46 zugeordnet werden kann und der, wie unten in bezug auf Rücksetzungen erläutert, hardwaremäßig korrigiert werden kann. DMA- Fehler sind Fehler, die sich während eines DMA-Zyklus ereignen und die in der zweckmäßigen Ausführung prinzipiell durch Software behandelt werden. CPU/MEM-Störungen sind Fehler, für die der richtige Betrieb der CPU oder der Inhalt des Speichers nicht sichergestellt werden kann.
  • Die Ausgangssignale von der Fehlerklassifizierungslogik 850 werden an den Codierer 855 gesendet, der einen spezifischen Fehlercode bildet. In Abwesenheit des Fehlersperrsignals wird dieser Fehlercode dann über das UND- Gatter 856 an die Querverbindungen 90 und 95 gesendet.
  • Die Querverbindungen 90, 95, 90' und 95' senden nach dem Empfang des Fehlercodes ein Wiederholungsanforderungssignal zurück an die Speichercontroller. Wie in Fig. 9 gezeigt, empfängt ein Codierer 895 das Wiederholungsanforderungssignal zusammen mit Zyklustypinformationen und den Fehlersignalen (die insgesamt als Zykluskennzeichner gezeigt sind) im Speichercontroller 70. Der Codierer 895 erzeugt dann einen entsprechenden Fehlercode zur Speicherung in einem Systemstörungs-Fehlerregister 898.
  • Das Systemstörungs-Fehlerregister 898 speichert nicht die gleichen Informationen wie das Diagnose-Fehlerregister 880. Im Gegensatz zu dem Systemstörungs-Fehlerregister 898 enthält das Diagnose-Fehlerregister 880 nur Informationen, die für die Schienen eindeutig sind, wie etwa einen Fehler auf einem Eingang von der Querverbindungsschiene und Daten, die für die Zone eindeutig sind, wie etwa einen irreparablen ECC-Fehler im Speichermodul 60.
  • Das Systemstörungs-Fehlerregister 898 enthält außerdem mehrere zur Fehlerbehandlung verwendete Bits. Diese umfassen ein NXM-Bit, das das Fehlen eines gewünschten Speicherbereichs angibt, ein NXEA-Bit, das das Fehlen eines gewünschten E/A-Bereichs angibt, ein Feststörungs- Bit und ein vorübergehendes Bit. Das vorübergehende und das feste Bit geben zusammen die Störungspriorität an. Das vorübergehende Bit bewirkt außerdem ein Einfrieren des Systemstörungs-Fehleradressenregisters 865.
  • Obgleich das Speichercontroller-Zustandsregister 875 technisch kein Teil der Fehlerlogik ist, ist es ebenfalls in Fig. 9 gezeigt. Das Register 875 speichert gewisse Zustandsinformationen wie etwa einen DMA-Verhältniscode im DMA-Verhältnisabschnitt 877, einen Fehlersperrcode im Fehlersperrabschnitt 878 und einen Spiegel-Bustreiber- Freigabecode im Spiegel-Bustreiber-Freigabeabschnitt 876. Der DMA-Verhältniscode spezifiziert den Anteil der Speicherbandbreite, der dem DMA zugeteilt werden kann. Der Fehlersperrcode stellt ein Signal zum Sperren des UND- Gatters 856 und somit des Fehlercodes bereit. Der Spiegel-Bustreiber-Freigabecode stellt ein Signal zum Freigeben des Spiegel-Bustreibers für gewisse Datentransaktionen bereit.
  • 4. Querverbindung
  • Daten für Speicher-Resync-, DMA- und E/A-Operationen werden durch die Querverbindungen 90 und 95 geleitet. Allgemein stellen die Querverbindungen 90 und 95 Kommunikationen zwischen dem CPU-Modul 30, dem CPU-Modul 30', den E/A-Modulen 100, 110, 120 und den E/A-Modulen 100', 110', 120' bereit (siehe Fig. 1).
  • Wie in Fig. 10 gezeigt, enthalten die Querverbindungen 90 und 95 sowohl parallele Register 910 als auch serielle Register 920. In der zweckmäßigen Ausführung dieser Erfindung werden beide Registertypen für die Kommunikation zwischen den Prozessoren verwendet. Während des Normalbetriebs sind die Verarbeitungssysteme 20 und 20' synchronisiert, wobei unter Verwendung der parallelen Register 910 in den Querverbindungen 90/95 bzw. 90'/95' Daten parallel zwischen den Verarbeitungssystemen 20 und 20' ausgetauscht werden. Wenn die Verarbeitungssysteme 20 und 20' bemerkenswerterweise während des Boostraps nicht synchronisiert sind, werden die Daten zwischen den Querverbindungen mittels der seriellen Register 920 ausgetauscht.
  • Die Adressen der parallelen Register liegen nicht im Speicherraum, sondern im E/A-Raum. Der Speicherraum bezieht sich auf Bereiche im Speichermodul 60. Der E/A- Raum bezieht sich auf Bereiche wie etwa E/A- und systeminterne Register, die nicht im Speichermodul 60 liegen.
  • Im E/A-Raum können die Adressen entweder im Systemadressenraum oder im Zonenadressenraum liegen. Der Begriff "Systemadressenraum" bezieht sich auf Adressen, auf die im ganzen System 10 und somit durch beide Verarbeitungssysteme 20 und 20' zugegriffen werden kann. Der Begriff "Zonenadressenraum" bezieht sich auf Adressen, auf die nur von der Zone zugegriffen kann, die die besondere Querverbindung enthält.
  • Die in Fig. 10 gezeigten parallelen Register umfassen ein Kommunikationsregister 906 und ein E/A-Rücksetzregister 908. Das Kommunikationsregister 906 enthält eindeutige, zwischen den Zonen auszutauschende Daten. Solche Daten, wie etwa ein Speicher-Soft-Fehler, sind üblicherweise für die Zone eindeutig (wobei es nahezu außerhalb des Wahrscheinlichkeitsbereichs liegt, daß die Speichermodule 60 und 60' unabhängig gleichzeitig den gleichen Fehler erfahren würden).
  • Da die im Register 906 zu speichernden Daten eindeutig sind, muß die Adresse des Kommunikationsregisters 906 für Schreibzwecke im Zonenadressenraum liegen. Andernfalls könnten die Verarbeitungssysteme 20 und 20', da sie in Sperrstufensynchronisierung sind und im wesentlichen gleichzeitig die gleiche Befehlsfolge ausführen, keine für die Zone eindeutigen Daten nur in den Kommunikationsregistern 906 in Zone 11 speichern; sie müßten diese gleichen Daten in den (nicht gezeigten) Kommunikationsregistern 906' in Zone 11' speichern.
  • Die Adresse des Kommunikationsregisters 906 zum Lesen liegt jedoch im Systemadressenraum. Somit können während des synchronen Betriebs beide Zonen gleichzeitig das Kommunikationsregister von einer Zone lesen und dann gleichzeitig das Kommunikationsregister von der anderen Zone lesen.
  • Das E/A-Rücksetzregister 908 ruht im Systemadressenraum. Das E/A-Rücksetzregister umfaßt pro E/A-Modul ein Bit zur Angabe, ob das entsprechende Modul in einem Rücksetzzustand ist. Wenn ein E/A-Modul in einem Rücksetzzustand ist, ist es effektiv gesperrt.
  • Außerdem enthalten die parallelen Register 910 andere Register, wobei aber ein Verständnis dieser anderen Register zum Verständnis der vorliegenden Erfindung nicht erforderlich ist.
  • Da die seriellen Querverbindungsregister 920 entweder für die asynchrone Kommunikation verwendet werden oder nur zonenspezifische Informationen enthalten, liegen sie alle in dem zonenspezifischen Raum. Der Zweck der seriellen Querverbindungsregister und der seriellen Querverbindung besteht darin, auch dann eine Kommunikation der Prozessoren 20 und 20' zu ermöglichen, wenn sie nicht in der Sperrstufensynchronisierung (d. h. phasensynchronisierte Takte und gleiche Speicherzustände) laufen. In der zweckmäßigen Ausführung gibt es mehrere serielle Register, wobei sie aber zum Verständnis dieser Erfindung nicht beschrieben zu werden brauchen.
  • Das Steuer- und Zustandsregister 912 ist ein serielles Register, das Zustands- und Steuermerker enthält. Einer der Merker ist ein OSR-Bit 913, das für den Bootstrap verwendet wird und angibt, ob das Verarbeitungssystem in der entsprechenden Zone seinen Bootstrap-Prozeß bereits begonnen hat oder ob das Betriebssystem für jene Zone momentan läuft, da entweder sein Bootstrap-Prozeß abgeschlossen ist oder da es eine Resynchronisierung erfahren hat.
  • Außerdem enthält das Steuer- und Zustandsregister 912 die Modusbits 914 zum Identifizieren des momentanen Modus der Querverbindung 90 und somit des Verarbeitungssystems 20. Die Modusbits umfassen zweckmäßig Resync-Modusbits 915 und Querverbindungs-Modusbits 916. Die Resync-Modusbits 915 identifizieren, ob die Querverbindung 90 entweder im Resync-Slave- oder im Resync-Master-Modus ist. Die Querverbindungs-Modusbits 916 identifizieren, ob die Querverbindung 90 entweder im Querverbindungs-Aus-, im Duplex-, im Querverbindungs-Master- oder im Querverbindungs-Slave- Modus ist.
  • Eine Verwendung für die seriellen Register ist eine Zustandsleseoperation, die ermöglicht, daß die Querverbindung in einer Zone den Zustand der Querverbindung der anderen Zone liest. Das Setzen eines Zustandsleseanforderungs-Merkers 918 im seriellen Steuer- und Zustandsregister 912 sendet eine Anforderung für Zustandsinformationen an die Querverbindung 90'. Beim Empfang dieser Nachricht sendet die Querverbindung 90' den Inhalt ihres seriellen Steuer- und Zustandsregisters 912' zurück an die Querverbindung 90.
  • Fig. 11 zeigt einige Elemente, um (als "Steuercodes" bezeichnete) Steuer- und Zustandssignale in die primäre Querverbindung 90 und in die Spiegel-Querverbindung 95 zu leiten. Entsprechende Querverbindungselemente existieren in der zweckmäßigen Ausführung in den Querverbindungen 90' und 95'. Diese Codes werden zwischen den Speichercontrollern 70 und 75 und den an die Modulverdrahtungen 130, 132, 130' und 132' gekoppelten E/A-Modulen gesendet.
  • Fig. 12 zeigt die zum Leiten von Daten- und Adressensignalen verwendeten Elemente in der zweckmäßigen Ausführung der primären Querverbindung 90. Entsprechende Querverbindungselemente existieren in den Querverbindungen 95, 90' und 95'.
  • Obgleich die Hardware völlig gleich ist, sind in Fig. 11 wegen einer wichtigen Verbindung zwischen den Elementen sowohl die Elemente für die primäre Querverbindung 90 als auch die für die Spiegel-Querverbindung 95 im Verarbeitungssystem 20 gezeigt. Mit Ausnahme dessen, daß in dem Spiegel-Controller nach dem Bezugszeichen der Buchstabe "m" angegeben ist, sind die den Elementen in der primären Querverbindung 90 entsprechenden Schaltungselemente in der Spiegel-Querverbindung 95 durch das gleiche Bezugszeichen gezeigt.
  • Mit Bezug auf die Fig. 11 und 12 umfassen die Elemente Zwischenspeicher, Multiplexierer, Treiber und Empfänger. Einige Zwischenspeicher wie etwa die Zwischenspeicher 933 und 933 m wirken als Verzögerungselemente, um die richtige Zeitgebung durch die Querverbindungen sicherzustellen und dadurch die Synchronisierung aufrechtzuerhalten. Wie in Fig. 11 gezeigt, werden die Steuercodes vom Speichercon troller 70 über den Bus 88 an den Zwischenspeicher 931 und dann an den Zwischenspeicher 932 gesendet. Der Grund für eine solche Zwischenspeicherung besteht im Erzeugen richtiger Verzögerungen um sicherzustellen, daß Daten vom Speichercontroller 70 durch die Querverbindung 90 gleichzeitig mit Daten vom Speichercontroller 70' durchgeleitet werden.
  • Der Treiber 937 wird freigegeben, falls Codes vom Speichercontroller 70 über die Querverbindung 90' an das Verarbeitungssystem 20' zu senden sind. Außerdem werden die Steuercodes vom Speichercontroller 70 durch den Zwischenspeicher 933 und in den Multiplexierer CSMUXA 935 geleitet. Falls in der primären Querverbindung 90 Steuercodes von der Querverbindung 90' empfangen werden, verläuft ihr Pfad durch den Empfänger 936 zum Zwischenspeicher 938 und außerdem zum Multiplexierer 935.
  • Die Steuercodes zum Zwischenspeicher 935 geben die Quelle der Daten, d. h. entweder vom Speichercontroller 70 oder vom Speichercontroller 70', an und ordnen diese Codes auf dem Ausgangssignal des Multiplexierers 935 an. Dieses Ausgangssignal wird, wieder zum Zweck der richtigen Verzögerung, im Zwischenspeicher 939 gespeichert, wobei der Treiber 940 freigegeben wird, falls die Codes an die Modulverdrahtung 130 zu senden sind.
  • Der in Fig. 12 gezeigte Pfad für Daten- und Adressensignale ähnelt etwas dem in Fig. 11 gezeigten Pfad der Steuersignale. Die Unterschiede widerspiegeln die Tatsache, daß Daten und Adressen während irgendeiner Transaktion nur in einer Richtung durch die Querverbindungen 90 und 95 fließen, während Steuersignale während dieser Transaktion in beiden Richtungen fließen können. Zu diesem gleichen Zweck sind die Datenleitungen in den Bussen 88 und 89 doppeltgerichtet, während dies bei den Steuercodes nicht der Fall ist.
  • Die Daten und Adressen von dem Speichercontroller 70 treten über den Bus 88 in den Zwischenspeicher 961, dann in den Zwischenspeicher 962 und dann in den Zwischenspeicher 964 ein. Wie in Fig. 11 stellen die Zwischenspeicher in Fig. 12 eine richtige Zeitgebung zum Aufrechterhalten der Synchronisierung bereit. Daten vom Speichercontroller 70' werden durch den Empfänger 986 gepuffert, im Zwischenspeicher 988 zwischengespeichert und dann an den Eingang des Multiplexierers MUXA 966 geleitet. Das Ausgangssignal des Multiplexierers 966 wird im Zwischenspeicher 968 gespeichert und, falls der Treiber 969 freigegeben ist, an die Modulverdrahtung 130 gesendet.
  • In Fig. 11 ist der Pfad für an den Speichercontroller 70 zu sendende Steuercodes gezeigt. Die Codes von der Modulverdrahtung 130 werden zunächst im Zwischenspeicher 941 gespeichert und dann an den Multiplexierer CSMUXC 942 überreicht. Der Multiplexierer 942 empfängt außerdem Steuercodes von den parallelen Querverbindungsregistern 910 und wählt für die Übertragung an den Zwischenspeicher 943 entweder die Codes der parallelen Register oder die Codes vom Zwischenspeicher 941 aus. Falls diese Steuercodes an die Querverbindung 90' zu senden sind, wird der Treiber 946 freigegeben. Die Steuercodes von der Querverbindung 90' (und somit vom Speichercontroller 70') werden von dem Empfänger 947 gepuffert, im Zwischenspeicher 948 gespeichert und als ein Eingangssignal an den Multiplexierer CSMUXD 945 überreicht. Außerdem empfängt der CSMUXD 945 das Ausgangssignal des Zwischenspeichers 944, der den Inhalt des Zwischenspeichers 943 speichert, als ein Eingangssignal.
  • Der Multiplexierer 945 wählt entweder die Codes von der Modulverdrahtung 130 oder die von der Querverbindung 90' aus und übergibt diese Signale als ein Eingangssignal an den Multiplexierer CSMUXE 949. Außerdem empfängt der Multiplexierer 949 als Eingangssignale einen Code von der Decodiererlogik 970 (für während der Resynchronisierung auftretende Massenspeicherübertragungen), Codes von den seriellen Querverbindungsregistern 920 oder einen vorgegebenen Fehlercode ERR. Unter der entsprechenden Steuerung wählt der Multiplexierer 949 dann eines dieser Eingangssignale zur Speicherung im Zwischenspeicher 950 aus. Falls diese Codes an den Speichercontroller 70 zu senden sind, wird der Treiber 951 aktiviert.
  • Der Fehlercode ERR, der ein Eingangssignal in den Multiplexierer 949 ist, soll sicherzustellen, daß ein Fehler in einer Schiene nicht bewirkt, daß die CPUs in der gleichen Zone wie die Schiene unterschiedliche Informationen verarbeiten. Falls dies eintreten würde, würde das CPU-Modul 30 eine Störung erfassen, die eine drastische und vielleicht nicht erforderliche Aktion bewirken würde. Um dies zu vermeiden, enthält die Querverbindung 90 ein EXKLUSIV-ODER-Gatter 960, das die Ausgangssignale der Multiplexierer 945 und 945 m vergleicht. Falls sie sich unterscheiden, bewirkt das Gatter 960, daß der Multiplexierer 949 den ERR-Code wählt. Ähnlich bewirkt das EXKLUSIV-ODER-Gatter 960 m, daß auch der Multiplexierer 949 m einen ERR-Code wählt. Dieser Code gibt für die Speichercontroller 70 und 75 an, daß ein Fehler aufgetreten ist, vermeidet aber, daß ein CPU-Modulfehler verursacht wird. Die Einschienenschnittstelle zum Speichermodul 60 erreicht das gleiche Ergebnis für Daten und Adressen.
  • Der in Fig. 12 gezeigte Daten- und Adressenfluß ähnelt dem Fluß der Steuersignale in Fig. 11. Daten und Adressen von der Modulverdrahtung 130 werden im Zwischenspeicher 972 gespeichert und dann als ein Eingangssignal für den Multiplexierer MUXB 974 bereitgestellt. Daten von den parallelen Registern 910 stellen ein weiteres Eingangssignal für den Multiplexierer 974 bereit. Das Ausgangssignal des Multiplexierers 974 ist ein Eingangssignal in den Multiplexierer MUXC 976, der außerdem im Zwischenspeicher 961 gespeicherte Daten und Adressen, die ursprünglich vom Speichercontroller 70 gesendet wurden, empfängt. Der Multiplexierer 976 wählt dann eines der Eingangssignale zur Speicherung im Zwischenspeicher 978 aus. Der Treiber 984 wird freigegeben, falls die Daten und Adressen entweder von der Modulverdrahtung 130 oder von dem Speichercontroller 70 an die Querverbindung 90' zu senden sind.
  • Daten von der Querverbindung 90' werden von dem Empfänger 986 gepuffert und im Zwischenspeicher 988 gespeichert, der außerdem ein Eingangssignal in den Multiplexierer MUXD 982 bereitstellt. Das andere Eingangssignal des Multiplexierers MUXD 982 ist das Ausgangssignal des Zwischenspeichers 980, das Daten und Adressen vom Zwischenspeicher 978 enthält. Der Multiplexierer 982 wählt dann eines seiner Eingangssignale, das dann im Zwischenspeicher 990 gespeichert wird. Der Treiber 992 wird aktiviert, falls die Daten oder Adressen an den Speichercontroller 70 zu senden sind. Daten von den seriellen Registern 920 werden über den Treiber 994 an den Speichercontroller 70 gesendet.
  • Die Datenleitung in der Querverbindung 90 und insbesondere in den Steuerelementen in den beiden Fig. 11 und 12 wird durch mehrere von der Decodierlogik 970, der Decodierlogik 971, der Decodierlogik 966 und der Decodierlogik 988 erzeugte Signale gesteuert. Diese Logik stellt die Signale bereit, die die Multiplexierer 935, 942, 945, 949, 966, 974, 976 und 982 zum Auswählen der richtigen Eingangsquelle steuern. Zusätzlich steuert die Decodierlogik außerdem die Treiber 940, 946, 951, 969, 984, 992 und 994.
  • Die meisten Steuersignale werden von der Decodierlogik 988 erzeugt, wobei aber einige von der Decodierlogik 970, 971, 970 m, 971 m und 996 erzeugt werden. Die Decodierlogik 998, 970 und 970 m ist an Stellen angeschlossen, die sicherstellen, daß die Logik die Daten und Codes empfängt, die erforderlich sind, um zu steuern, ob die Daten und Codes von ihrer eigenen Zone oder von der anderen Zone empfangen werden.
  • Der Zweck der Decodierlogik 971, 971 m und 996 besteht darin, sicherzustellen, daß die Treiber 937, 937 m und 984 in den geeigneten Zustand eingestellt werden. Diese "Frühdecodierung" stellt sicher, daß Daten, Adressen und Codes in allen Fällen an die richtigen Querverbindungen weitergeleitet werden. Ohne eine solche Frühdecodierlogik könnten die Querverbindungen alle in einem Zustand sein, in dem ihre Treiber gesperrt sind. Falls einer bei den Speichercontrollern ebenfalls gesperrt wäre, würden seine Querverbindungen nie Adressen, Daten und Steuercodes empfangen, wobei alle an diese Querverbindung angeschlossenen E/A-Module effektiv gesperrt wären.
  • Vor der Beschreibung der von der Decodierlogik 970, 971, 970 m, 971 m und 998 erzeugten Treibersteuersignale ist ein Verständnis der verschiedenen Modi erforderlich, in denen diese Zonen und damit die Querverbindungen 90 und 95 sein können. Fig. 13 enthält ein Diagramm der verschiedenen Zustände A-F und eine Tabelle, die die jedem Modus entsprechenden Zustände erläutert.
  • Beim Start und in anderen Fällen befinden sich beide Zonen im Zustand A, der als der OFF-Modus für beide Zonen bekannt ist. In diesem Modus arbeiten die Computersysteme in beiden Zonen unabhängig. Nachdem das Betriebssystem einer der Zonen die Kommunikationsfähigkeit mit der E/A- Einrichtung der anderen Zone anfordert hat und dieser Anforderung Folge geleistet wird, treten die Zonen in den als die Zustände B und C gezeigten Master/Slave-Modus ein. In solchen Modi hat die Zone, die der Master ist, eine arbeitende CPU und steuert die E/A-Module ihrer Zone und der anderen Zone.
  • Beim Beginn der Resynchronisierung verläßt das Computersystem den Master/Slave-Modus, entweder den Zustand B oder den Zustand C, und tritt in einen Resync- Slave/Resync-Master-Modus ein, der als die Zustände E und F gezeigt ist. In diesen Modi ist die Zone, die die Master-Zone war, dafür zuständig, die CPU der andern Zone online zu bringen. Falls die Resynchronisierung mißlingt, kehren die Zonen in den gleichen Master/Slave-Modus zurück, in dem sie sich vor dem Resynchronisierungsversuch befanden.
  • Falls jedoch die Resynchronisierung erfolgreich ist, treten die Zonen in den Zustand D ein, der der Vollduplexmodus ist. In diesem Modus arbeiten beide Zonen in der Sperrstufensynchronisierung zusammen. Der Betrieb wird in diesem Modus fortgeführt, bis es zu einer CPU/MEM-Störung kommt, in welchem Fall das System in einen der zwei Master/Slave-Modi eintritt. Der Slave ist die Zone, deren Prozessor die CPU/MEM-Störung erfahren hat.
  • Während des Betriebs im Zustand D, dem Vollduplexmodus, erfordern gewisse Fehler, bemerkenswerterweise Taktphasenfehler, die Aufspaltung des Systems in zwei unabhän gige Verarbeitungssysteme. Dies bewirkt eine Rückkehr des System 10 in den Zustand A.
  • Um zu ermitteln, wie die Querverbindungstreiber und die Multiplexierer in die richtigen Zustände einzustellen sind, hat die in den Fig. 11 und 12 gezeigte (insgesamt als die Querverbindungs-Steuerlogik bezeichnete) Decodierlogik 970, 970 m, 971, 971 m und 998 Zugriff auf die Resync-Modusbits 915 und auf die Querverbindungs-Modusbits 916, die in Fig. 10 gezeigt sind. Zusätzlich empfängt und analysiert die Querverbindungs-Decodierlogik außerdem einen Teil einer während der Datenübertragungen von den Speichercontrollern 70 und 75 gesendete Adresse, um Adresseninformationen auszukoppeln, die der Querverbindungs-Decodierlogik weiter angeben, wie der Zustand der Querverbindungs-Multiplexierer und der Treiber einzustellen ist.
  • Sobald die verschiedenen Modi und Transaktionen verstanden sind, sind die zum Einstellen der Zustände der Multiplexierer erforderlichen Informationen ziemlich unkompliziert. Es ist lediglich die Quelle der Daten zu ermitteln. Somit wählen die Multiplexierer 935, 935 m und 966 Datenadressen und Codes von der Zone 11' aus, wenn die Querverbindungen 90 und 95 in dem Slave-Modus sind. Falls die Querverbindungen 90 und 95 im Vollduplexmodus sind, falls die Adresse eines E/A-Befehls für eine an ein E/A- Modul in Zone 11 angeschlossene Vorrichtung bestimmt ist und falls die Querverbindung mit dem betreffenden Multiplexierer in einem Übergangsmodus ist, wählen diese Multiplexierer außerdem Daten, Adressen und Codes von der anderen Zone aus. In einem Übergangsmodus müssen die auf der Modulverdrahtung zu senden Daten von der anderen Zone zur Überprüfung empfangen werden. In der zweckmäßigen Ausführung würde die Modulverdrahtung 130 Daten, Adressen und Codes von der primären Schiene in Zone 11 empfangen, während die Modulverdrahtung Daten, Adressen und Codes von der Spiegel-Schiene in Zone 11' empfangen würde. Alternativ könnte die Modulverdrahtung 132 Daten, Adressen und Codes von der primären Schiene in Zone 11' empfangen, was den Vergleich der primären Schiene einer Zone mit der Spiegel-Schiene der anderen Zone ermöglichen würde.
  • Die Multiplexierer 945, 945 m und 982 werden so eingestellt, daß sie Daten, Adressen und Codes empfangen, ganz gleich, welche Zone die Quelle der Daten ist. Dies ist trifft sowohl zu, wenn alle Querverbindungen im Vollduplexmodus sind und die Daten, Adressen und Codes von E/A- Modulen empfangen werden, als auch, wenn die Querverbindung in einem Resync-Slave-Modus ist und die Daten, Adressen und Codes von den Speichercontrollern der anderen Zone empfangen werden.
  • Falls die Adressierungsinformationen von den Speichercontrollern 70 und 75 angeben, daß die Quelle von Antwortdaten und -codes das eigene parallele Register 910 der Querverbindung sind, werden die Multiplexierer 942, 942 m und 974 in der Weise eingestellt, daß sie Daten und Codes von diesen Registern auswählen. Ähnlich werden dann die Multiplexierer 949 und 949 m zum Auswählen von Daten und Codes von jenen Registern eingestellt, falls die Adressierungsinformationen von den Speichercontrollern 70 und 75 angeben, daß die Quelle der Antwortdaten das eigene serielle Register 920 der Querverbindung ist.
  • Außerdem werden die Multiplexierer 949 und 949 m zum Auswählen von Daten von der Decodierlogik 970 bzw. 970 m eingestellt, falls die Informationen während der Speicher-Resync-Operationen ein Steuercode sind, und werden zum Auswählen des ERR-Codes eingestellt, falls die EXKLUSIV-ODER-Gatter 960 und 960 m einen Fehlvergleich zwischen den über die Querverbindungen 90 und 95 gesendeten Daten identifizieren. In diesem letzteren Fall wird die Steuerung der Multiplexierer 949 und 949 m nicht von der Querverbindungs-Steuerlogik, sondern von den EXKLUSIV-ODER-Gattern 960 und 960 m erzeugt. Außerdem wählen die Multiplexierer 949 und 949 m Codes von den seriellen Querverbindungsregistern 910, wenn diese Register angefordert werden, oder vom Ausgang der Multiplexierer 945 bzw. 945 m, wenn diese Codes angefordert werden. Die Multiplexierer 945 und 945 m wählen entweder die Ausgangssignale von den Multiplexierern 942 bzw. 942 m oder die E/A-Codes von den Querverbindungen 90' bzw. 95'.
  • Der Multiplexierer 976 wählt entweder, im Fall einer Transaktion mit einem E/A-Modul, Daten und Adressen von der Modulverdrahtung 130 oder, wenn die Daten und Adressen entweder für die E/A oder während der Speicherresynchronisierung an die Querverbindung 90' zu senden sind, Daten und Adressen vom Speichercontroller 90.
  • Die Treiber 937 und 937 m werden aktiviert, wenn die Querverbindungen 90 und 95 im Duplex-, Master- oder Resync-Master-Modus sind. Die Treiber 940 und 940 m werden für E/A-Transaktionen in der Zone 11 aktiviert. Die Treiber 946 und 946 m werden aktiviert, wenn die Querverbindungen 90 und 95 in dem Duplex- oder in dem Slave- Modus sind. Die Treiber 951 und 951 m werden immer aktiviert.
  • Die Treiber 969 werden während E/A-Schreibvorgängen in die Zone 11 aktiviert. Die Treiber 984 werden aktiviert, wenn die Querverbindung 90 Daten und Adressen zur E/A in Zone 11' sendet oder wenn die Querverbindung 90 in dem Resync-Master-Modus ist. Der Empfänger 986 empfängt Daten von der Querverbindung 90'. Die Treiber 992 und 994 werden aktiviert, wenn Daten zum Speichercontroller 70 gesendet werden; der Treiber 994 wird aktiviert, wenn der Inhalt des seriellen Querverbindungsregisters 910 gelesen wird, während der Treiber 992 während aller anderen Lesevorgänge aktiviert wird.
  • 5. Oszillator
  • Wenn beide Verarbeitungssysteme 20 und 20' im Vollduplexmodus jeweils die gleichen Funktionen ausführen, müssen die CPU-Module 30 und 30' Operationen mit der gleichen Rate ausführen. Andernfalls werden während des Resynchronisierens der Verarbeitungssysteme 20 und 20' für die E/A-Fehlerprüfung und für die Fehlerprüfung zwischen den Prozessoren gewaltige Mengen Verarbeitungszeit verbraucht. In der zweckmäßigen Ausführung der Verarbeitungssysteme 20 und 20' werden ihre Grundtaktsignale synchronisiert und miteinander phasensynchronisiert. Das störungstolerante Computersystem 10 enthält ein Zeitgebungssystem zur Steuerung der Frequenz der Taktsignale für die Verarbeitungssysteme 20 und 20' und zum Minimieren der Phasendifferenz zwischen den Taktsignalen für jedes Verarbeitungssystem.
  • Fig. 14 zeigt einen Blockschaltplan des in die Verarbeitungssysteme 20 und 20' eingebetteten Zeitgebungssystems dieser Erfindung. Das Zeitgebungssystem umfaßt das Oszillatorsystem 200 im CPU-Modul 30 des Verarbeitungssystems 20 und das Oszillatorsystem 200' im CPU-Modul 30' des Verarbeitungssystems 20'. Die Elemente des Oszillators 200' entsprechen jenen für den Oszillator 200, wobei beide Oszillatorsysteme in der gleichen Weise betrieben werden. Somit werden nur die Elemente und der Betrieb des Oszillatorsystems 200 beschrieben, es sei denn, daß sich die Operationen der Oszillatorsysteme 200 und 200' unterscheiden.
  • Wie Fig. 14 zeigt, liegt ein großer Teil des Oszillatorsystems 200, genauer die Digitallogik, in der Querverbindung 95, wobei aber diese Anordnung für die vorliegende Erfindung nicht erforderlich ist. Das Oszillatorsystem 200 enthält einen spannungsgeregelten Quarzoszillator (VCXO) 205, der ein Grundoszillatorsignal mit zweckmäßig 66,66 MHz erzeugt. Die Frequenz des VCXO 205 kann durch den Spannungspegel an dem Eingang eingestellt werden.
  • Der Taktverteilungschip 210 teilt das Grundoszillatorsignal herunter und erzeugt vorzugsweise vier primäre Takte, die alle die gleiche Frequenz besitzen. PCLK L und PCLK H sind die Takte für die primäre CPU 40, die logisch invers zueinander sind. Für die Spiegel-CPU 50 erzeugt der Taktverteilungschip 210 die Taktsignale MCLK L und MCLK H, die ebenfalls logisch invers zueinander sind. Die Zeitgebungs- und Phasenbeziehung dieser Taktsignale ist in Fig. 15 gezeigt. Die Frequenz der Taktsignale PCLK L, PCLK H, MCLK L und MCLK H beträgt zweckmäßig etwa 33,33 MHz. Außerdem erzeugt der Taktchip 210 ein ebenfalls in Fig. 15 gezeigtes phasensynchronisiertes Schleifensignal CLKC H mit 16,66 MHz. Dieses phasensynchronisierte Schleifensignal wird an die Taktlogik 220 gesendet, die dieses Signal puffert.
  • Der Taktlogikpuffer 220 sendet das CLKC H-Signal zur Verwendung bei der Synchronisierung zum Oszillator 200'. Der Taktlogikpuffer 220' im Oszillator 200' sendet sein eigenes gepuffertes phasensynchronisiertes Schleifensignal CLKC' H zur Phasenauswerteschaltung 230 im Oszillator 200. Außerdem empfängt die Phasenauswerteschaltung 230 durch das Verzögerungselement 225 das gepufferte phasensynchronisierte Schleifensignal CLKC H von der Taktlogik 220. Das Verzögerungselement 225 nähert die Verzögerung infolge des Kabelverlaufs vom Taktlogikpuffer 220'.
  • Die Phasenauswerteschaltung 230 vergleicht ihre phasensynchronisierten Schleifeneingangssignale und erzeugt zwei Ausgangssignale. Eines ist ein Phasendifferenzsignal 235, das durch den Schleifenverstärker 240 an den Spannungseingang des VCXO 205 gesendet wird. Das Phasendifferenzsignal 235 bewirkt, daß der Verstärker 240 ein Signal zum Ändern der Frequenz des VCXO 205 erzeugt, um Phasendifferenzen zu kompensieren.
  • Das andere Ausgangssignal der Phasenauswerteschaltung 230 ist ein Phasenfehlersignal 236, das mögliche Synchronisierungsstörungen angibt.
  • Fig. 16 ist ein ausführliches Diagramm der Phasenauswerteschaltung 230. Die Phasenauswerteschaltung 230 umfaßt einen Phasenkomparator 232 und einen Spannungskomparator 234. Der Phasenkomparator 232 empfängt das Taktsignal (CLKC H) vom Verzögerungselement 225 und das Phasensynchronisierungs-Schleifentaktsignal (CLKC' H) vom Oszillator 200' und erzeugt ein Phasendifferenzsignal 235 als einen Spannungspegel, der die Phasendifferenz dieser Signale darstellt.
  • Falls das Verarbeitungssystem 20 für Taktsynchronisierungszwecke der "Slave" wäre, wäre der Schalter 245 in der "SLAVE"-Stellung (d. h. geschlossen), wobei der Spannungspegel 235 nach der Verstärkung durch den Schleifenverstärker 240 die Frequenz des VCXO 205 steuern würde. Falls beide Schalter 245 und 245' in der "Master"- Stellung sind, wären die Verarbeitungssysteme 20 und 20' nicht phasensynchronisiert und würden asynchron (unabhängig) laufen.
  • Außerdem ist der Spannungspegel des Phasendifferenzsignals 235 ebenso ein Eingangssignal in den Spannungskom parator 234 wie zwei Bezugsspannungen Vref1 und Vref2, die Akzeptanzbereiche des Phasenvor- und -nacheilens darstellen. Falls die Phasendifferenz innerhalb der Toleranz liegt, wird das PHASE ERROR-Signal nicht aktiviert. Falls die Phasendifferenz außerhalb der Toleranz liegt, wird das PHASE ERROR-Signal 236 aktiviert und über den Taktdecodierer 220 zur Querverbindung 95 gesendet.
  • 6. E/A-Modul
  • Fig. 17 zeigt eine zweckmäßige Ausführung eines E/A- Moduls 100. Die Prinzipien des Betriebs des E/A-Moduls 100 sind ebenso auf andere E/A-Module anwendbar.
  • Fig. 18 zeigt die Elemente in der zweckmäßigen Ausführung der Brandmauer 1000. Die Brandmauer 1000 umfaßt eine 16 Bit-Bus-Schnittstelle 1810 zur Modulverdrahtung 130 und eine 32 Bit-Bus-Schnittstelle 1820 zur Verbindung mit dem in Fig. 17 gezeigten Bus 1020. Die Schnittstellen 1810 und 1820 sind durch einen internen Brandmauerbus 1815 verbunden, der außerdem die Verbindung zu den anderen Elementen der Brandmauer 1000 herstellt. Der Bus 1815 ist zweckmäßig ein entweder 16 oder 32 Bits breiter paralleler Bus.
  • Das E/A-Modul 100 ist mittels Doppelschienen-Modulverdrahtungen 130 und 132 an das CPU-Modul 30 angeschlossen. Jede Modulverdrahtung wird durch Brandmauern 1000 bzw. 1010 aufgenommen. Eine der Brandmauern, bei der es sich üblicherweise, aber nicht immer, um die Brandmauer 1000 handelt, schreibt die Daten von der Modulverdrahtung 130 auf den Bus 1020. Die andere Brandmauer, in diesem Fall die Brandmauer 1010, überprüft jene Daten gegenüber ihrer unter Verwendung der in Fig. 18 gezeigten Brandmauer- Vergleichsschaltung 1840 von der Modulverdrahtung 132 empfangenen eigenen Kopie. Diese Prüfung ist infolge der Sperrstufensynchronisierung der CPU-Module 30 und 30' wirksam, die bewirkt, daß Daten von den CPU-Modulen 30 und 30' in das E/A-Modul 100 geschrieben werden, damit diese bei den Brandmauern 1000 und 1010 im wesentlichen gleichzeitig verfügbar sind.
  • Die Brandmauer-Vergleichsschaltung 1840 überprüft nur von den CPU-Modulen 30 und 30' empfangene Daten. Von einer E/A-Vorrichtung an die CPU-Module 30 und 30' gesendete Daten haben einen gemeinsamen Ursprung und erfordern somit keine Überprüfung. Statt dessen werden Daten, die von einer E/A-Vorrichtung zum Senden an die CPU-Module 30 und 30' empfangen werden, durch einen Fehlererfassungscode (EDC) wie etwa durch eine zyklische Blocksicherung (CRC), die von dem EDC/CRC-Generator 1850 ausgeführt wird, überprüft. Außerdem ist der EDC/CRC-Generator 1850 mit dem internen Brandmauerbus 1815 gekoppelt.
  • Der EDC/CRC-Generator 1850 erzeugt und überprüft den gleichen EDC/CRC-Code, der von der E/A-Vorrichtung verwendet wird. Das E/A-Modul 100 erzeugt zweckmäßig zwei EDC. Ein EDC, der außerdem ein EDC/CRC sein kann, wird für eine Schnittstelle zu einem Netz wie etwa zu dem Ethernet-Paketnetz, mit dem das Modul 100 gekoppelt ist, verwendet (siehe Element 1082 in Fig. 17). Der andere wird für eine Plattenschnittstelle wie etwa die Plattenschnittstelle 1072 in Fig. 17 verwendet.
  • Da die Modulverdrahtungen verdoppelt sind, ist zwischen dem CPU-Modul 30 und dem E/A-Modul 100 keine EDC/CRC- Versorgung erforderlich. Zum Beispiel kommuniziert die Querverbindung 90 im CPU-Modul 30 durch die Modulverdrahtung 130 mit der Brandmauer 1000, während die Querverbindung 95 durch die Modulverdrahtung 132 mit der Brandmauer 1010 kommuniziert.
  • Die in Fig. 17 gezeigten Netzsteuerung 1080 prüft eine vom Ethernet-Netz 1082 empfangene Nachricht auf einen gültigen EDC/CRC. Die Daten werden komplett mit EDC/CRC in einen ebenfalls in Fig. 17 gezeigten lokalen RAM 1060 geschrieben. Unter Verwendung des DMA werden alle Daten im lokalen RAM 1060 an das Speichermodul 60 übertragen. Eine DMA-Steuerung 1890 koordiniert die Übertragung und weist den EDC/CRC-Generator 1850 an, die Gültigkeit der übertragenen codierten EDC/CRC-Daten zu überprüfen.
  • Die meisten Datenübertragungen mit einer E/A-Vorrichtung werden mit dem DMA vorgenommen. Die Daten werden zwischen dem Hauptspeicher und dem E/A-Pufferspeicher verschoben. Wenn Daten vom Hauptspeicher in einen E/A-Pufferspeicher verschoben werden, kann ein EDC/CRC angehängt werden. Wenn die Daten vom E/A-Pufferspeicher in den Hauptspeicher verschoben werden, kann ein EDC/CRC überprüft werden und in den Hauptspeicher verschoben werden oder abgestreift werden. Wenn Daten vom E/A-Pufferspeicher durch eine externe Vorrichtung wie etwa durch eine Platte oder durch einen Ethernet-Adapter verschoben werden, kann der EDC/CRC lokal oder in einem entfernten Empfangsknoten oder in beiden überprüft werden. Die EDC/CRC der Speicherdatenpakete können in dem entfernten Knoten oder durch die lokale Schnittstelle in dem E/A-Modul erzeugt werden.
  • Diese Operation stellt sicher, daß Daten, die in einem Einzelschienensystem wie dem E/A-Modul 100 ruhen oder durch ein solches übertragen werden, durch einen Fehlererfassungscode erfaßt werden, der zweckmäßig mindestens so zuverlässig wie das Kommunikationsmedium ist, durch das die Daten schließlich durchgeleitet werden. Verschiedene E/A-Module, z. B. jene, die synchrone Protokolle behandeln, besitzen zweckmäßig einen EDC/CRC-Gene rator, der die EDC/CRC-Codes der entsprechenden Protokolle erzeugt und überprüft.
  • Im allgemeinen behandelt die DMA-Steuerung 1890 den für den Controller 1050 des gemeinsam genutzten Speichers und für den adressierten lokalen RAM 1060 spezifischen Teil einer DMA-Operation. Der 32 Bit-Bus 1020 wird in zwei verschiedenen Modi angesteuert. Während der DMA-Einstellung verwendet die DMA-Steuerung 1890 den Bus 1020 als einen asynchronen Standard-Mikroprozessorbus. Die Adresse im lokalen RAM 1060, wo die DMA-Operation stattfindet, wird von dem Controller 1050 des gemeinsam genutzten Speichers und von der DMA-Steuerung 1890 geliefert. Während der eigentlichen DMA-Übertragung lenkt die DMA- Steuerung 1890 die DMA-Steuerleitungen 1895, um den Bus 1020 synchron anzusteuern. Der Controller 1050 des gemeinsam genutzten Speichers überträgt mit dem Bus 1020 in jedem Buszyklus ein 32 Bit-Datenwort, während die DMA- Steuerung 1890 verfolgt, wieviel Wörter noch zu übertragen bleiben. Der Controller 1050 des gemeinsam genutzten Speichers steuert außerdem den lokalen RAM 1060 und erzeugt die nächste DMA-Adresse.
  • Die E/A-Module (100, 110, 120) sind für die Steuerung der Lese-/Schreiboperationen in ihrem eigenen lokalen RAM 1060 verantwortlich. Das CPU-Modul 30 ist für die Steuerung der Übertragungsoperationen mit der Speichermatrix 60 verantwortlich. Die DMA-Maschine 800 der (in Fig. 8 gezeigten) Speichercontroller 70 und 75 lenkt die DMA- Operationen in dem CPU-Modul 30. Diese Arbeitsteilung verhindert, daß eine Störung in der DMA-Logik in irgendeinem Modul die Datenintegrität in irgendeinem anderen Modul in den Zonen 11 oder 11' vermindert.
  • Die Funktionen des Überwachungs-RAMs 1872 und des Überwachungs-RAM-Controllers 1870 sind unten ausführlicher beschrieben. Kurz gesagt, werden, wenn eine Störung erfaßt wird und die CPUs 40, 40', 50 und 50' und die CPU- Module 30 und 30' benachrichtigt werden, verschiedene Überwachungs-RAMs im ganzen Computersystem 10 zum Ausführen gewisser unten beschriebener Funktionen veranlaßt. Die Kommunikationen mit den Überwachungs-RAMs finden über den Überwachungsbus 1095 statt. Die Überwachungs-RAM- Steuerung 1870 veranlaßt, daß der Überwachungs-RAM 1872 als Antwort auf Signale vom Überwachungsbus 1095 entweder die Speicherung abschließt oder seinen Inhalt über den Überwachungsbus 1095 ausgibt.
  • Der E/A-Modul-Bus 1020, der zweckmäßig ein paralleler 32 Bit-Bus ist, ist mit den Brandmauern 1000 und 1010 sowie mit anderen Elementen des E/A-Moduls 100 gekoppelt. Außerdem ist mit dem E/A-Bus 1020 im E/A-Modul 100 ein Controller 1050 des gemeinsam genutzten Speichers gekoppelt. Der Controller 1050 des gemeinsam genutzten Speichers ist durch einen Bus des gemeinsam genutzten Speichers 1065, der zweckmäßig 32 Bit-Daten überträgt, mit einem lokalen Speicher 1060 gekoppelt. Der lokale Speicher 1060 ist zweckmäßig ein RAM mit 256 KBytes Speicher, wobei die Größe des RAMs 1060 aber willkürlich ist. Der Controller 1050 des gemeinsam genutzten Speichers und der lokale RAM 1060 stellen eine Speichermöglichkeit für das E/A-Modul 100 bereit.
  • Der Plattencontroller 1070 stellt eine Standardschnittstelle zu einer Platte wie etwa zu den Platten 1075 und 1075' in Fig. 1 bereit. Der Plattencontroller 1070 ist außerdem entweder zur Verwendung des lokalen RAMs 1060 oder zur Kommunikation mit dem E/A-Modul-Bus 1020 mit dem Controller 1050 des gemeinsam genutzten Speichers gekoppelt.
  • Ein Netzcontroller 1080 stellt mittels einer Netzschnittstelle 1082 eine Schnittstelle zu einem Standardnetz wie etwa dem ETHERNET-Netz bereit. Der Netzcontroller 1080 ist außerdem mit dem Controller 1050 des gemeinsam genutzten Speichers gekoppelt, der als eine Schnittstelle sowohl zum lokalen RAM 1060 als auch zum E/A-Modul-Bus 1020 wirkt. Irgendeine spezifische Organisation oder Struktur des E/A-Modul-Busses 1020 ist jedoch nicht erforderlich.
  • An den E/A-Modul-Bus 1020 und an eine ASCII-Schnittstelle 1032 ist ein PCIM-Unterstützungselement (Stromversorgungs- und Kühlschnittstellenmodul-Unterstützungselement) 1030 angeschlossen. Das PCIM-Unterstützungselement 1030 ermöglicht, daß das Verarbeitungssystem 20 den Zustand des Stromversorgungssystems (d. h. der Batterien, Regler usw.) und des Kühlsystems (d. h. der Lüfter) überwacht, um deren richtigen Betrieb sicherzustellen. Zweckmäßig empfängt das PCIM-Unterstützungselement 1030 nur Nachrichten, wenn eine Störung oder eine potentielle Störung wie etwa eine inakzeptabel niedrige Batteriespannung angezeigt wird. Außerdem ist es möglich, das PCIM-Unterstützungselement 1030 zur periodischen Überwachung aller Stromversorgungs- und Kühlteilsysteme zu verwenden. Alternativ kann das PCIM-Unterstützungselement 1030 direkt an die Brandmauer S 1000 und 1010 angeschlossen werden.
  • Außerdem ist an den E/A-Modul-Bus 1020 ein Fehlermeldungs-Mikroprozessor 1100 angeschlossen. Im allgemeinen wird der Fehlermeldungs-Mikroprozessor 1100 beim Entdecken von Störungen zum Sammeln von Fehlerprüfinformationen von den Überwachungs-RAMs wie etwa vom Überwachungs-RAM 1872 verwendet. Diese Daten werden durch die Brandmauern 1000 bzw. 1010, durch den Modulbus 1020 in den Überwa chungsbussen 1095 und 1096 und im Mikroprozessor 1100 gesammelt.
  • D. ZWISCHENPROZESSOR- UND ZWISCHENMODULKOMMUNIKATION 1. Datenpfade
  • Die Elemente des Computersystems 10 bilden selbst kein störungstolerantes System. Es wird ein Kommunikationspfad und -protokoll benötigt, das die Kommunikation während normaler Operationen und den Betrieb während der Störungserfassung und -korrektur ermöglicht. Der Schlüssel zu einer solchen Kommunikation ist der Querverbindungspfad 25. Der Querverbindungspfad 25 enthält die bereits beschriebenen parallelen Verbindungen, seriellen Verbindungen und Taktsignale. Diese sind in Fig. 19 gezeigt. Die parallele Verbindung enthält zwei völlig gleiche Sätze von Daten- und Adressenleitungen, Steuerleitungen, Unterbrechungsleitungen, Codierter-Fehler-Leitungen und eine Weich-Rücksetzanforderungs-Leitung. Die Daten- und Adressenleitungen und die Steuerleitungen enthalten zwischen den CPU-Modulen auszutauschende Informationen wie etwa Informationen von den Modulverdrahtungen 130 und 132 (oder 130' und 132') oder vom Speichermodul 60 (60').
  • Die Unterbrechungsleitungen umfassen zweckmäßig eine Leitung für jede für das E/A-Teilsystem (die Module 100, 110, 120, 100', 110' und 120') verfügbare Unterbrechungspriorität. Diese Leitungen werden von den Querverbindungen 90, 95, 90' und 95' gemeinsam genutzt.
  • Die Codierter-Fehler-Leitungen umfassen zweckmäßig Codes zur Synchronisierung einer Konsolen-"HALT"-Anforderung für beide Zonen, einen Code für das Synchronisieren eines CPU-Fehlers für beide Zonen, einen Code zur Angabe des Auftretens einer CPU/Speicher-Störung für die andere Zone, einen Code zum Synchronisieren des DMA-Fehlers für beide Zonen und einen Code zur Angabe eines Taktphasenfehlers. Die Fehlerleitungen von jeder Zone 11 oder 11' sind Eingänge in ein ODER-Gatter wie etwa in das ODER- Gatter 1990 für die Zone 11 oder in das ODER-Gatter 1990' für die Zone 11'. Der Ausgang jedes ODER-Gatters erzeugt einen Eingang in die Querverbindungen der anderen Zone.
  • Das störungstolerante Verarbeitungssystem 10 ist in der Weise konstruiert, daß es trotz vorübergehender Störungen weiter als ein Doppelschienensystem arbeitet. Auch das E/A-Teilsystem (die Module 100, 110, 120, 100', 110', 120') kann trotz des Erfahrens vorübergehender Fehler oder Störungen mit dem Betrieb fortfahren. In der zweckmäßigen Ausführung bewirkt ein von der Brandmauer-Vergleichsschaltung 1840 erfaßter Fehler, daß durch den Pfad 25 ein synchronisierter Fehlerbericht für zur CPU gerichtete Operationen erfolgt. Die Hardware in den CPUs 30 und 30' bewirkt ein durch den Pfad 25 synchronisiertes weiches Rücksetzen und wiederholt die gestörte Operation. Für zur DMA gerichtete Operationen führt die gleiche Fehlererfassung durch die Pfade 25 zu synchronen Unterbrechungen, wobei die Software in den CPUs 40, 50, 40' und 50' die DMA-Operation neu startet.
  • Gewisse vorübergehende Fehler können nicht sofort korrigiert werden, um einen kontinuierlichen synchronisierten Vollduplexbetrieb zu ermöglichen. Zum Beispiel kann ein Steuerfehler im Speichermodul 60 zu unbekannten Daten im Speichermodul 60 führen. In dieser Situation können die CPUs und die Speicherelemente nicht länger zuverlässig als Teil eines störungsbegrenzenden System funktionieren, so daß sie entfernt werden. Bevor die CPUs und die Speicherelemente wieder ins System zurückkehren können, muß das Speichermodul 60 dann einen Speicher-Resync erfahren. Der CPU/Speicher-Störungscode der Codierter-Fehler-Lei tungen im Pfad 25 gibt für die CPU 30' an, daß die CPUs und die Speicherelemente der CPU 30 gestört sind.
  • Die Steuerleitungen, die eine Kombination von Zyklustyp-, Fehlertyp- und Bereitschaftszuständen darstellen, erzeugen den Quittungsaustausch zwischen den CPU-Modulen (30 und 30') und den E/A-Modulen. Wie oben erläutert, definiert der Zyklustyp den Typ der ausgeführten Busoperation: CPU-E/A-Lesen, DMA-Übertragung, DMA-Einstellung oder Unterbrechungsvektoranforderung. Die Fehlertypen definieren einen Brandmauer-Fehlvergleich oder einen CRC- Fehler. Um den Abschluß angeforderter Operationen anzugeben, werden "Fertig"-Meldungen zwischen den CPU- und den E/A-Modulen gesendet.
  • Die serielle Querverbindung umfaßt zwei Sätze von zwei Leitungen zur Bereitstellung einer seriellen Datenübertragung für eine Zustandslese-, Rückschleifen- und Datenübertragung.
  • Die ausgetauschten Taktsignale sind die phasensynchronisierten Taktsignale CLKC H und CLKC' H (verzögert).
  • Die Fig. 20A-D zeigen Blockschaltpläne der Elemente der CPU-Module 30 und 30' und der E/A-Module 100 und 100', durch die Daten während der verschiedenen Operationen durchgeleitet werden. Jedes dieser Element e wurde zuvor beschrieben.
  • Fig. 20A zeigt die Datenpfade für eine typische CPU-E/A- Leseoperation von Daten von einem E/A-Modul 100 wie etwa eine CPU-E/A-Registerleseoperation von Registerdaten aus dem Controller 1050 (1050') des gemeinsam genutzten Speichers. Um eine solche Operation von einem DMA-Lesen von Daten vom lokalen Speicher 1060 zu unterscheiden, der üblicherweise Daten von einem Controller einer internen Vorrichtung enthält, wird sie als ein Lesen lokaler Daten bezeichnet. Es wird vorausgesetzt, daß die lokalen Daten im lokalen RAM 1060 (1060') zur Übertragung durch den Controller 1050 (1050') des gemeinsam genutzten Speichers gespeichert werden sollen. Für einen Pfad werden die Daten durch die Brandmauer 1000 durch die Modulverdrahtung 130 zur Querverbindung 90 durchgeleitet. Wie in Fig. 12 gezeigt, verzögert die Querverbindung 90 die Daten von der Brandmauer 1000 zum Speichercontroller 70, so daß die Daten an die Querverbindung 90' an den Speichercontroller 70 gleichzeitig mit dem Überreichen an den Speichercontroller 70 überreicht werden können, so daß die Verarbeitungssysteme 20 und 20' synchronisiert bleiben können. Über die internen Busse 46 und 46' laufen die Daten aus den Speichercontrollern 70 und 70' dann weiter an die CPUs 40 und 40'.
  • Ein ähnlicher Pfad wird zum Lesen von Daten zu den CPUs 50 und 50' genommen. Die Daten vom Controller 1050 des gemeinsam genutzten Speichers laufen weiter durch die Brandmauer 1010 und in die Querverbindung 95. Zu dieser Zeit werden die Daten sowohl durch die Querverbindung 95' als auch durch eine Verzögerungseinheit in der Querverbindung 95 geleitet.
  • Die CPU-E/A-Leseoperationen können ebenfalls für Daten ausgeführt werden, die über einen Controller 1050' des gemeinsam genutzten Speichers und über den lokalen RAM in der E/A-Vorrichtung 100' von den E/A-Vorrichtungen des Verarbeitungssystems 20' empfangen werden.
  • Obgleich die E/A-Module 100, 110 und 120 ähnlich sind und den E/A-Modulen 100', 110' bzw. 120' entsprechen, sind die entsprechenden E/A-Module nicht in einer Sperrstufensynchronisierung. Unter Verwendung des Speichercontrollers 1050' und des lokalen RAMs 1060' für das CPU-E/A- Lesen würden die Daten zunächst an die Querverbindungen 90' und 95' gehen. Der verbleibende Datenpfad entspricht dem Pfad vom Speichercontroller 1050. Die Daten laufen von den Querverbindungen 90' und 95' durch die Speichercontroller 70' und 75' aufwärts und schließlich zu den CPUs 40' bzw. 50'. Gleichzeitig laufen die Daten über die Querverbindungen 90 bzw. 95, wobei die Daten dann, ohne durch ein Verzögerungselement geleitet zu werden, hinauf zu den CPUs 40 bzw. 50 weiterlaufen.
  • Die Fig. 20B zeigt eine CPU-E/A-Schreiboperation lokaler Daten. Solche lokalen Daten werden von den CPUs 40, 50, 40' und 50' an ein E/A-Modul wie etwa an das E/A-Modul 100 übertragen. Ein Beispiel einer solchen Operation ist ein Schreiben in ein Register in den Controllern 1050 des gemeinsam genutzten Speichers, Die von der CPU 40 übertragenen Daten laufen längs des gleichen Pfads, aber in entgegengesetzter Richtung zu den Daten während des CPU- E/A-Lesens, weiter. Genauer werden solche Daten durch den Bus 46, durch den Speichercontroller 70, durch verschiedene Zwischenspeicher (um eine Synchronisierung zuzulassen), durch eine Brandmauer 1000 und durch einen Speichercontroller 1050 geleitet. Die Daten von der CPU 50' folgen außerdem dem entgegengesetzt gerichteten Pfad des CPU-E/A-Lesens. Genauer werden solche Daten durch den Bus 56', durch den Speichercontroller 75', durch die Querverbindung 95', durch die Querverbindung 95 und an die Brandmauer 1010 geleitet. Wie oben angegeben, überprüfen die Brandmauern 1000 und 1010 die Daten während der E/A- Schreiboperationen, um vor der Speicherung auf Fehler zu überprüfen.
  • Eine ähnliche Operation wird ausgeführt, wenn Schreibvorgänge in ein E/A-Modul in der anderen Zone ausgeführt werden. Jedoch werden statt der Daten von den CPUs 50' und 40 die von den CPUs 50 und 40' verwendet.
  • Die Daten von den CPUs 50 und 40' werden durch symmetrische Pfade an den Controller 1050' des gemeinsam genutzten Speichers gesendet. Die Daten von den CPUs 50 und 40' werden von den Brandmauern 1000' und 1010' verglichen. Der Grund für die Verwendung verschiedener CPU-Paare zur Bedienung der E/A-Schreibdaten liegt darin, daß während der normalen Verwendung in einem Vollduplexsystem die Überprüfung aller Datenpfade ermöglicht werden soll. Überprüfungen zwischen den Schienen wurden zuvor für jede Zone in den Speichercontrollern 70, 75, 70' und 75' ausgeführt.
  • Die Fig. 20C zeigt die Datenpfade für DMA-Leseoperationen. Die Daten von der Speichermatrix 600 werden gleichzeitig zu den Speichercontrollern 70 und 75 und dann zu den Querverbindungen 90 und 95 geleitet. Die Querverbindung 90 verzögert die zur Brandmauer 1000 gesendeten Daten, so daß die Daten von den Querverbindungen 90 und 95 die Brandmauern 1000 und 1010 im wesentlichen gleichzeitig erreichen.
  • Ähnlich den CPU-E/A-Schreiboperationen gibt es vier Kopien von Daten für die verschiedenen Querverbindungen. An der Brandmauer werden nur zwei Kopien empfangen. Wenn Lesevorgänge zur Zone 11 ausgeführt werden, wird ein anderes Datenpaar verwendet. Die Datenpfade für die DMA- Schreiboperation sind in Fig. 20D gezeigt und ähneln jenen für einen CPU-E/A-Lesevorgang. Genauer laufen die Daten vom Controller 1050' des gemeinsam genutzten Speichers durch die Brandmauer 1000', durch die Querverbindung 90' (mit einer Verzögerung), durch den Speichercontroller 70' und in die Speichermatrix 600' weiter. Gleichzeitig werden die Daten durch die Brandmauer 1010', durch die Querverbindung 95' (mit einer Verzögerung) und durch den Speichercontroller 75' geleitet, zu welchem Zeitpunkt sie während einer Zwischenschienen-Fehlerprüfung mit den Daten vom Speichercontroller 70' verglichen werden. Wie bei dem CPU-E/A-Lesevorgang können die Daten in einer DMA-Schreiboperation in einer gleichwertigen Operation alternativ durch einen Controller 1050 des gemeinsam genutzten Speichers heraufgeführt werden.
  • Die Daten aus der Querverbindung 90' werden außerdem durch die Querverbindung 90 und durch den Speichercontroller 70 und in die Speichermatrix 600 geleitet. Die Daten von der Querverbindung 95' werden durch die Querverbindung 95 und durch den Speichercontroller 75 geleitet, zu welchem Zeitpunkt sie während einer gleichzeitigen Zwischenschienenprüfung mit den Daten vom Speichercontroller 70' verglichen werden.
  • Fig. 20E zeigt den Datenpfad für eine Speicherresynchronisierungsoperation (Resync-Operation). In dieser Operation muß der Inhalt der beiden Speichermatrizen 60 und 60' zueinander gleichgesetzt werden. Beim Speicher-Resync werden Daten unter der Steuerung des DMA von der Speichermatrix 600' durch die Speichercontroller 70' und 75', dann durch die Querverbindungen 90' bzw. 95' geleitet. Bevor die Daten in der Speichermatrix 600 gespeichert werden, treten sie dann in die Querverbindungen 90 und 95 und in die Speichercontroller 70 bzw. 75 ein.
  • 2. Rücksetzungen
  • Die vorhergehenden Diskussionen des Systems 10 haben Bezug auf viele verschiedene Notwendigkeiten für Rücksetzungen genommen. In gewissen nicht diskutierten Fällen wie etwa beim erstmaligen Anlegen des Stroms an das System 10 werden Rücksetzungen für Standardfunktionen verwendet. Die meisten Systeme besitzen ein einzige Rücksetzung, die immer den Prozessor in einen vorgegebe nen Zustand oder Anfangszustand zurücksetzt und somit den Befehlsfluß des Prozessors unterbricht. Im Gegensatz zu den meisten anderen Systemen wirken jedoch Rücksetzungen im System 10, ausgenommen dann, wenn es absolut notwendig ist, nicht auf den Fluß der Befehlsausführung von den CPUs 40, 40', 50 und 50'. Außerdem wirken Rücksetzungen im System 10 nur auf jene Teile, die rückgesetzt werden müssen, um den Normalbetrieb wiederherzustellen.
  • Ein anderer Aspekt der Rücksetzungen im System 10 ist ihre Sicherheitshülle. Eine der ersten Überlegungen in einem störungstoleranten System besteht darin, daß keine Funktion den Betrieb des Systems anhalten dürfen sollte, falls diese Funktion gestört ist. Aus diesem Grund werden die Elemente beider Zonen 11 und 11' nicht ohne direkte Zusammenarbeit zwischen den Zonen 11 und 11' durch eine einzige Rücksetzung im System 10 gesteuert. Im Vollduplexbetriebsmodus sind somit alle Rücksetzungen in der Zone 11 unabhängig von Rücksetzungen in der Zone 11'. Jedoch verwendet die Slave-Zone die Rücksetzungen der Master-Zone, wenn das System 10 im Master/Slave-Modus ist. Außerdem wird der Inhalt von Speicherchips durch Rücksetzungen im System 10 nicht beeinflußt. Somit verlieren weder der Cache-Speicher 42 und 52 noch der Notizblockspeicher 45 und 55 und das Speichermodul 60 infolge eines Rücksetzens irgendwelche Daten.
  • Im System 10 gibt es zweckmäßig drei Rücksetzungsklassen; die "Taktrücksetzung", die "harte Rücksetzung" und die "weiche Rücksetzung". Eine Taktrücksetzung richtet alle Taktphasengeneratoren in einer Zone neu aus. Außerdem initialisiert eine Taktrücksetzung in Zone 11 die CPUs 40 und 50 und das Speichermodul 60. Außer zum Neuausrichten der Taktphasengeneratoren in diesen Modulen werden die Modulverdrahtungen 130 und 132 durch eine Taktrücksetzung nicht beeinflußt. Selbst, wenn das System 10 in einem Master/Slave-Modus ist, werden Datenübertragungen von der Master-Zone in die Modulverdrahtung der Slave-Zone durch eine Taktrücksetzung in der Slave-Zone nicht gestört. Jedoch initialisiert eine Taktrücksetzung in der Zone 11' die entsprechenden Elemente in Zone 11'.
  • Eine harte Rücksetzung stellt im allgemeinen alle Zustandsvorrichtungen und Register in einen vorgegebenen Zustand oder Anfangszustand zurück. Eine weiche Rücksetzung stellt nur Zustandsmaschinen und Register zur vorübergehenden Speicherung in ihren vorgegebenen Zustand oder Anfangszustand zurück. Die Zustandsmaschine ist in einem Modul die Schaltungsanordnung, die den Zustand dieses Moduls definiert. Register, die Fehlerinformationen und Konfigurationsdaten enthalten, werden durch eine weiche Rücksetzung nicht beeinflußt. Außerdem legt das System 10 zum Rücksetzen nur der Elemente, die zum Fortführen der Verarbeitung neu initialisiert werden müssen, wahlweise sowohl harte Rücksetzungen als auch weiche Rücksetzungen gleichzeitig an.
  • Die harten Rücksetzungen löschen das System 10 und stellen das System 10 wie in herkömmlichen Systemen in eine bekannte Konfiguration zurück. Harte Rücksetzungen werden verwendet, wenn die Zonen nach dem Anlegen des Stroms synchronisiert werden müssen oder zum Initialisieren oder Sperren eines E/A-Moduls. Im System 10 gibt es zweckmäßig vier harte Rücksetzungen: die "Hochfahr-Rücksetzung", die "harte CPU-Rücksetzung", die "Modulrücksetzung" und die "Vorrichtungsrücksetzung". Harte Rücksetzungen können weiter in lokale Rücksetzungen und harte Systemrücksetzungen aufgegliedert werden. Eine lokale harte Rücksetzung wirkt nur auf die Logik, die antwortet, wenn die CPU in dem Slave-Modus ist. Eine harte Systemrücksetzung ist auf die Logik beschränkt, die an die Querverbindungskabel 25 und an die Modulverdrahtungen 130 und 132 angeschlossen ist.
  • Die Hochfahr-Rücksetzung wird zum Initialisieren der Zonen 11 und 11' unmittelbar nach der Stromzufuhr verwendet. Die Hochfahr-Rücksetzung erzwingt eine automatische Rücksetzung aller Teile der Zone. Da jede Zone ihre eigene Stromversorgung besitzt und daher verschieden lange "Hochfahr"-Ereignisse erfährt, ist eine Hochfahr- Rücksetzung nie zwischen den Zonen des Systems 11 verbunden. Die Hochfahr-Rücksetzung wird durch Anlegen aller harten Rücksetzungen und einer Taktrücksetzung an die Zone 11 oder 11' verwirklicht.
  • Die harte CPU-Rücksetzung wird für Diagnosezwecke verwendet, um ein CPU-Modul in einen bekannten Zustand zurückzustellen. Die harte CPU-Rücksetzung löscht in der betreffenden Zone alle Informationen in den CPUs, in den Speichercontrollern und in den Speichermodul-Zustandsregistern. Obgleich die Cache-Speicher und die Speichermodule gesperrt sind, wird der Inhalt der Notizblock-RAMs 45 und 55 und des Speichermoduls 60 nicht geändert. Außerdem modifiziert die harte CPU-Rücksetzung im Gegensatz zur Hochfahr-Rücksetzung weder die Zonenidentifizierung der Querverbindungen noch die Taktherrschaft. Die harte CPU-Rücksetzung ist die Summe aller lokalen harten Rücksetzungen, die auf ein CPU-Modul in der betreffenden Zone angewendet werden können sowie eine Taktrücksetzung.
  • Die harte Modulrücksetzung wird wie etwa während des Bootstraps zum Einstellen der E/A-Module in einen bekannten Zustand und außerdem zum Entfernen eines gestörten E/A-Moduls aus dem System verwendet. Die harte E/A-Modulrücksetzung löscht alles in dem E/A-Modul, läßt die Brandmauern in einem Diagnosemodus und sperrt die Treiber.
  • Eine Vorrichtungsrücksetzung wird zum Rücksetzen von an die E/A-Module angeschlossenen E/A-Vorrichtungen verwendet. Die Rücksetzungen sind vorrichtungsabhängig und werden von dem E/A-Modul bereitgestellt, an das die Vorrichtung angeschlossen ist.
  • Die andere Klasse von Rücksetzungen sind weiche Rücksetzungen. Wie oben erläutert, löschen weiche Rücksetzungen die Zustandsmaschinen und die vorübergehenden Register im System 10, wobei sie aber keine Konfigurationsinformationen wie etwa die Modusbits in den Querverbindungen ändern. Außerdem löschen weiche Rücksetzungen zusätzlich den Fehlerbehandlungsmechanismus in den Modulen, wobei sie aber keine Fehlerregister wie etwa das Systemfehlerregister 898 und das Systemstörungs-Adressenregister 865 ändern.
  • Weiche Rücksetzungen erfolgen zielgerichtet, so daß nur die erforderlichen Teile des Systems rückgesetzt werden. Falls z. B. die Modulverdrahtung 130 rückgesetzt werden muß, werden weder die CPU 40 noch die an das E/A-Modul 100 angeschlossenen Vorrichtungen rückgesetzt.
  • Es gibt drei Aspekte, die für weiche Rücksetzungen einzigartig sind. Einer besteht darin, daß jede Zone für das Erzeugen ihrer eigenen Rücksetzung verantwortlich ist. Somit wird verhindert, daß eine gestörte Fehler- oder Rücksetzlogik in einer Zone Rücksetzungen in der ungestörten Zone veranlaßt.
  • Der zweite Aspekt besteht darin, daß die weiche Rücksetzung die Folge der Befehlsausführung nicht unterbricht. Die CPUs 40, 40', 50, 50' werden nur in einer kombinierten Taktrücksetzung und harten Rücksetzung rückgesetzt. Zusätzlich haben die Speichercontroller 70, 75, 70' und 75' jene Zustandsmaschinen und Register, die erforderlich sind, um mit dem harten Rücksetzen verknüpfte CPU-Befehle zu bedienen. Somit ist die weiche Rücksetzung für die Softwareausführung transparent.
  • Der dritte Aspekt besteht darin, daß die Reichweite einer weichen Rücksetzung, d. h. die Anzahl der durch eine weiche Rücksetzung beeinflußten Elemente im System 10, von dem Modus des Systems 10 und von der ursprünglichen Rücksetzanforderung abhängig ist. Im Vollduplexmodus gibt die von dem CPU-Modul 30 ausgehende Anforderung einer weichen Rücksetzung eine weiche Rücksetzung an alle Elemente des CPU-Moduls 30 sowie an alle an die Modulverdrahtungen 130 und 132 gekoppelten Brandmauern 1000 und 1010 aus. Somit werden die Zustandsmaschinen und die vorübergehenden Register aller von der Modulverdrahtung 130 und 132 bedienten Module rückgesetzt. Dadurch wird irgendein durch einen vorübergehenden Fehler verursachtes Problem aus der Systempipeline gelöscht. Da sich das System 10 im Duplexmodus befindet, tut die Zone 11' alles der Zone 11 gleich. Somit gibt die CPU 30' gleichzeitig mit dem CPU-Modul 30 eine Anforderung zum weichen Rücksetzen aus. Das weiche Rücksetzen in der Zone 11' hat die gleiche Wirkung wie das weiche Rücksetzen in der Zone 11.
  • Wenn sich das System 10 in einem Master/Slave-Modus befindet, wobei das CPU-Modul 30' in dem Slave-Modus ist, gibt eine vom CPU-Modul 30 ausgehende Anforderung zum weichen Rücksetzen jedoch erwartungsgemäß ein weiches Rücksetzen an alle Elemente des CPU-Moduls 30 sowie an alle an die Modulverdrahtungen 130 und 132 angehängten Brandmauern 1000 und 1010 aus. Zusätzlich wird die Anforderung zum weichen Rücksetzen über die Querverbindungen 90 und 90', die Querverbindungskabel 25 und die Querverbindungen 90' und 95' an das CPU-Modul 30' weitergeleitet. Die weiche Rücksetzung wird von Teilen der Modulver drahtungen 130' und 132' empfangen. Eine vom CPU-Modul 30' ausgehende Anforderung zum weichen Rücksetzen setzt in dieser gleichen Konfiguration nur die Speichercontroller 70' und 75' und Teile der Querverbindungen 90' und 95' zurück.
  • Weiche Rücksetzungen umfassen "weiche CPU-Rücksetzungen" und "weiche Systemrücksetzungen". Eine weiche CPU-Rücksetzung ist eine weiche Rücksetzung, die auf die Zustandsmaschine in dem CPU-Modul wirkt, das die Anforderung ausgegeben hat. Eine weiche Systemrücksetzung ist eine weiche Rücksetzung über die Modulverdrahtung und über jene Elemente, die direkt an sie gekoppelt sind. Ein CPU-Modul kann eine weiche CPU-Rücksetzung immer anfordern. Eine weiche Systemrücksetzung kann nur angefordert werden, wenn die Querverbindung der anfordernden CPU im Duplexmodus, im Master/Slave-Modus oder im Aus-Modus ist. Eine Querverbindung im Slave-Modus nimmt eine weiche Systemrücksetzung von der anderen Zone und erzeugt eine weiche Systemrücksetzung für ihre eigenen Modulverdrahtungen.
  • Weiche CPU-Rücksetzungen löschen die CPU-Pipeline nach einem Fehlerzustand, Die CPU-Pipeline umfaßt die Speicher-Verdrahtungen 80 und 82, die (nicht gezeigten) Zwischenspeicher in den Speichercontrollern 70 und 75, die DMA-Maschine 800 und die Querverbindungen 90 und 95. Die weiche CPU-Rücksetzung kann außerdem nach einer DMA- oder E/A-Zeitüberschreitung stattfinden. Eine DMA- oder E/A-Zeitüberschreitung findet statt, wenn die E/A-Vorrichtung in einem spezifizierten Zeitraum auf eine DMA- oder auf eine E/A-Anforderung nicht antwortet.
  • Fig. 21 zeigt die Rücksetzleitungen von den CPU-Modulen 30 und 30' zu den E/A-Modulen 100, 110, 100' und 110' und zu den Speichermodulen 60 und 60'. Das CPU-Modul 30 empfängt ein DC OK-Signal, das angibt, wann die Stromversorgung ausgeregelt ist. Dieses Signal initialisiert die Hochfahr-Rücksetzung. Das CPU-Modul 30' empfängt von seiner Stromversorgung ein ähnliches Signal.
  • An jedes E/A-Modul wird eine System-Hart-Rücksetzleitung geschickt, während eine System-Weich-Rücksetzleitung an jedes dritte E/A-Modul geschickt wird. Der Grund, warum für jedes Modul eine einzelne harte Rücksetzung erforderlich ist, liegt darin, daß die System-Hart-Rücksetzleitung zum Entfernen einzelner E/A-Module aus dem System 10 verwendet wird. Die Beschränkung von drei E/A-Modulen für jede weiche Systemrücksetzung ist lediglich eine Belastungsbetrachtung. Zusätzlich wird an jedes E/A-Modul und an jedes Speichermodul eine Taktrücksetzleitung geschickt. Der Grund für die Verwendung einer einzigen Leitung pro Modul besteht in der Steuerung des Laufzeitunterschieds durch die Steuerung der Last.
  • Fig. 22 zeigt die auf Rücksetzungen bezüglichen Elemente des CPU-Moduls 30. Die CPUs 40 und 50 enthalten Taktgeneratoren 2210 bzw. 2211. Die Speichercontroller 70 und 75 enthalten Taktgeneratoren 2220 bzw. 2221, während die Querverbindungen 90 und 95 Taktgeneratoren 2260 bzw. 2261 enthalten. Die Taktgeneratoren teilen die Systemtaktsignale zur Verwendung durch die einzelnen Module herunter.
  • Der Speichercontroller 70 enthält die Rücksetz-Steuerschaltungsanordnung 2230 und ein Weich-Rücksetzanforderungs-Register 2235. Der Speichercontroller 75 enthält eine Rücksetz-Steuerschaltungsanordnung 2231 und ein Weich-Rücksetzanforderungs-Register 2236.
  • Die Querverbindung 90 enthält sowohl einen Lokal-Rücksetzgenerator 2240 als auch einen System-Rücksetzgenerator 2250. Die Querverbindung 95 enthält einen Lokal- Rücksetzgenerator 2241 und einen System-Rücksetzgenerator 2251. Der "lokale" Teil einer Querverbindung ist der Teil der Querverbindung, der bei dem CPU-Modul bleibt, wenn jene Querverbindung in dem Slave-Modus ist und der somit die seriellen Register und einige parallele Register enthält. Der "System"-Teil einer Querverbindung ist der Teil der Querverbindung, der für den Zugriff auf die Modulverdrahtungen 130 und 132 (oder 130' und 132') und auf die Querverbindungskabel 25 erforderlich ist.
  • Durch das Senden von Hart- und Weich-Rücksetzsignalen an die Lokal-Rücksetz-Steuerschaltungen 2245 und 2246 der Querverbindungen 90 bzw. 95 und an die Rücksetz-Steuerschaltungen 2230 und 2231 der Speichercontroller 70 bzw. 75 erzeugen die Lokal-Rücksetzgeneratoren 2240 und 2241 Rücksetzungen für das CPU-Modul 30. Die Lokal-Querverbindungsrücksetz-Steuerschaltungen 2245 und 2246 antworten auf die Weich-Rücksetzsignale durch das Rücksetzen ihrer Zustandsmaschinen, der Zwischenspeicher, die zu übertragende Daten speichern, und ihrer Fehlerregister. Diese Schaltungen antworten auf die Hart-Rücksetzsignale, indem sie die gleichen Maßnahmen wie für die weichen Rücksetzungen ergreifen und außerdem die Fehlerregister und die Konfigurationsregister rücksetzen. In einer ähnlichen Weise antworten die Rücksetzsteuerschaltungen 2230 und 2231 auf Hart- und Weich-Rücksetzsignale.
  • Zusätzlich sendet der Lokal-Rücksetzgenerator 2240 Taktrücksetzsignale über die Modulverdrahtungen 130 und 132 an die E/A-Module 100, 110 und 120. Die E/A-Module 100, 110 und 120 verwenden die Taktrücksetzsignale in der unten beschriebenen Weise zum Rücksetzen ihrer Takte. Die Weich-Rücksetzanforderungs-Register 2235 und 2236 senden weiche Anforderungssignale an die Lokal-Rücksetzgeneratoren 2240 bzw. 2241.
  • Die Systemrücksetzgeneratoren 2250 und 2251 der Querverbindungen 90 bzw. 95 senden über die Modulverdrahtungen 130 bzw. 132 System-Hart-Rücksetzsignale und System- Weich-Rücksetzsignale an die E/A-Module 100, 110 und 120. Die E/A-Module 100, 110 und 120 antworten auf die Weich- Rücksetzsignale durch Rücksetzen aller von CPU-Daten oder von Befehlen abhängigen Register. Jene Module antworten auf die Hart-Rücksetzsignale durch Rücksetzen des gleichen Registers wie weiche Rücksetzungen und außerdem durch Rücksetzen irgendwelcher Konfigurationsregister.
  • Zusätzlich senden die Systemrücksetzgeneratoren 2250 und 2251 die System-Weich- und System-Hart-Rücksetzsignale auch an die Systemrücksetz-Steuerschaltung 2255 und 2256 jeder Querverbindung. Die Systemrücksetz-Steuerschaltung 2255 und 2256 antwortet auf die System-Weich-Rücksetzsignale und auf die System-Hart-Rücksetzsignale in ähnlicher Weise wie die Lokal-Rücksetzsteuerschaltungen auf die Lokal-Weich- und Lokal-Hart-Rücksetzsignale antworten.
  • Die Speichercontroller 70 und 75 bewirken, daß die Querverbindungen 90 bzw. 95 die weichen Rücksetzungen erzeugen, wenn die CPUs 40 bzw. 50 die richtigen Codes in die Weich-Rücksetzanforderungs-Register 2235 bzw. 2236 schreiben. Die Weich-Rücksetzanforderungs-Register 2235 und 2236 senden Weich-Rücksetzanforderungs-Signale an die Lokal-Rücksetzgeneratoren 2240 bzw. 2241. Das Codierter- Fehler-Signal wird vom Speichercontroller 70 an die Lokal-Rücksetzgeneratoren 2240 und 2241 gesendet.
  • Weiche Systemrücksetzungen werden zwischen den Zonen längs der gleichen Datenpfade gesendet, längs derer Daten- und Steuersignale gesendet werden. Somit wird für Rücksetzungen die gleiche Philosophie des Verzögerungsausgleichs wie für Daten und Adressen verwendet, wobei Rücksetzungen alle Elemente in beiden Zonen etwa gleichzeitig erreichen.
  • Harte Rücksetzungen werden von den CPUs 40 und 50, die den richtigen Code in die Lokal-Hart-Rücksetzregister 2243 schreiben, oder von der durch das DC OK-Signal veranlaßten Anforderung einer Hochfahr-Rücksetzung erzeugt.
  • Die Synchronisierungsschaltung 2270 in der Querverbindung 90 enthält geeignete Verzögerungselemente um sicherzustellen, daß das DC OK-Signal an alle lokalen Generatoren und Rücksetzgeneratoren 2240, 2250, 2241 und 2251 gleichzeitig geht.
  • Tatsächlich ist die Synchronisierung von Rücksetzungen im System 10 sehr wichtig. Das liegt daran, daß die Rücksetzsignale von den Querverbindungen ausgehen. Auf diese Weise können die Rücksetzungen in der Weise gesendet werden, daß sie bei verschiedenen Modulen und Elementen in den Modulen etwa synchron eintreffen.
  • Mit dem Verständnis der Struktur in den Fig. 21 und 22 läßt sich die Ausführung der verschiedenen harten Rücksetzungen besser verstehen. Die Hochfahr-Rücksetzung erzeugt sowohl eine harte Systemrücksetzung als auch eine harte lokale Rücksetzung und eine Taktrücksetzung. Allgemein sind die Querverbindungen 90, 95, 90' und 95' anfangs sowohl im Querverbindungs-Aus-Modus als auch im Resync-Aus-Modus, wobei beide Zonen die Taktherrschaft erklären.
  • Jedesmal, wenn die Speichercontroller 70, 75, 70' und 75' eine CPU/MEM-Störung erfassen, wird automatisch die CPU- MEM-Störungsrücksetzung aktiviert. Die Codierter-Fehler- Logik wird von der Fehlerlogik 2237 und 2238 an beide Querverbindungen 90 und 95 gesendet. Das CPU-Modul, das die Störung erzeugte, wird dann aus dem System 10 dadurch entfernt, daß seine Querverbindung in den Slave-Zustand eingestellt wird und die Querverbindung in dem anderen CPU-Modul in den Master-Zustand eingestellt wird. Das ungestörte CPU-Modul erfährt jedoch kein Rücksetzen. Statt dessen wird ihm die Störung in dem anderen Modul durch einen Code in einem (nicht gezeigten) Serielle- Querverbindungs-Fehlerregister mitgeteilt. Das CPU/MEM- Störungsrücksetzen besteht aus einem Taktrücksetzen zu der Zone mit dem gestörten CPU-Modul und aus einem lokalen weichen Rücksetzen zu diesem Modul.
  • Ein Resync-Rücksetzen ist im wesentlichen ein weiches Systemrücksetzen mit einem harten lokalen Rücksetzen und einem Taktrücksetzen. Das Resync-Rücksetzen wird verwendet, um die Zonen in Sperrstufensynchronisierung zu bringen. Falls die Inhalte der Speichermodule 60 und 60' einschließlich der gespeicherten Zustände der CPU-Register nach einem Zeitraum, in dem die Zonen 11 und 11' nicht synchronisiert waren, zueinander gleichgesetzt werden, wird das Resync-Rücksetzen verwendet, um zwei Zonen in eine kompatible Konfiguration zu bringen, so daß sie erneut in einem Duplexmodus starten können.
  • Das Resync-Rücksetzen ist im wesentlichen ein hartes CPU- Rücksetzen und ein Taktrücksetzen. Das Resync-Rücksetzen wird durch ein Software-Schreiben der Resync-Rücksetzadresse in ein Parallele-Querverbindungs-Register aktiviert. Gleichzeitig sollte eine Zone im Querverbindungs- Master/Resync-Master-Modus und die andere im Querverbindungs-Slave/Resync-Slave-Modus sein. Es wird dann in beiden Zonen ein gleichzeitiges Rücksetzen ausgeführt, was u. a. alle vier Querverbindungen in den Duplexmodus einstellt. Da das Resync-Rücksetzen kein weiches Systemrücksetzen ist, empfangen die E/A-Module kein Rücksetzen.
  • Die zweckmäßige Ausführung des Systems 10 stellt außerdem sicher, daß Taktrücksetzsignale keine angepaßten Takte, sondern nur nichtangepaßte Takte rücksetzen. Das liegt daran, daß jedesmal, wenn ein Takt rückgesetzt wird, dies die Zeitgebung der Takte ändert, was sich seinerseits auf den Betrieb der Module mit solchen Takten auswirkt. Falls das Modul richtig gearbeitet hat und sein Takt in der richtigen Phase war, wäre eine Änderung seines Betriebs sowohl unnötig als auch verschwenderisch.
  • Fig. 23 zeigt eine zweckmäßige Ausführung der Schaltungsanordnung, die sicherstellt, daß nur nichtangepaßte Takte rückgesetzt werden. Die in Fig. 23 gezeigte Schaltungsanordnung ruht zweckmäßig in den Taktgeneratoren 2210, 2211, 2220, 2221, 2260 und 2261 der entsprechenden in Fig. 22 gezeigten Module.
  • In der zweckmäßigen Ausführung umfassen die verschiedenen Taktgeneratoren 2210, 2211, 2220, 2221, 2260 und 2261 eine Steigende-Flanke-Auswerteschaltung 2300 und einen Phasengenerator 2310. Die Steigende-Flanke-Auswerteschaltung 2300 empfängt die Taktrücksetzsignale von den Querverbindungen 90 und 95 und erzeugt gleichzeitig mit der steigenden Flanke des Taktrücksetzsignals einen Impuls bekannter Dauer. Dieser Impuls sowie die internen Taktsignale für das besondere Modul sind ein Eingangssignal in den Phasengenerator 2310. Die internen Taktsignale für dieses Modul sind Taktsignale, die von den Systemtaktsignalen abgeleitet werden, die von den Oszillatorsystemen 200 und 200' verteilt wurden.
  • Der Phasengenerator 2310 ist zweckmäßig eine Herunterdivisionsschaltung, die für die Taktsignale verschiedene Phasen bildet. Für den Phasengenerator 2310 können auch andere Konstruktionen wie etwa Umlaufschieberegister verwendet werden.
  • Der Steigende-Flanke-Impuls von der Steigende-Flanke- Auswerteschaltung 2300 bewirkt zweckmäßig, daß der Phasengenerator 2130 eine vorgegebene Phase ausgibt. Falls der Phasengenerator 2310 eine Herunterteilungsschaltung mit mehreren Stufen wäre, könnte der Taktrücksetz-Steigende-Flanke-Impuls somit z. B. ein Setz-Eingangssignal in die Stufe sein, die die vorgegebene Phase erzeugt, und ein Rücksetz-Eingangssignal in alle anderen Stufen sein. Falls der Phasengenerator 2310 jene Phase bereits erzeugen würde, wäre die Anwesenheit des synchronisierten Taktrücksetzsignals im wesentlichen transparent.
  • Die somit organisierten Rücksetzungen sind dafür bestimmt, für den normalen Ablauf des Systems 10 die minimale Unterbrechung zu schaffen und veranlassen nur dann die drastische Aktion der Unterbrechung der normalen Folgen der Befehlsausführung, wenn eine solche drastische Aktion erforderlich ist. Wegen der durch herkömmliche Rücksetzungen verursachten Resynchronisierungsprobleme ist dies in einer Doppel- oder Mehrzonenumgebung besonders wichtig. Somit ist es zweckmäßiger, die Anzahl der harten Rücksetzungen zu minimieren, wie es in dem System 10 erfolgt ist.
  • 3. Protokoll für Datenübertragungen
  • Es wird nun das Protokoll für Datenübertragungen zwischen den CPU-Modulen 30 und 30' und den E/A-Modulen 100, 100', 110, 110', 120 und 120' beschrieben. Daten können unter Verwendung von E/A-Lese- und Schreibzyklen oder unter Verwendung des DMA zu oder von einem Systembetriebsmittel wie etwa einer Platte 1075 oder 1075' übertragen werden. Typisch werden die meisten Datenübertragungen mit E/A- Vorrichtungen mit dem DMA ausgeführt. Jedoch finden die Datenübertragungen in beiden Fällen zwischen den Speichercontrollern 70, 70', 75 und 75' und den E/A-Modulen 100, 100', 110, 110', 120 und 120' statt. Im Ergebnis werden Informationen auf den für den Zweck dieser Diskussion als Systembetriebsmittelbusse bezeichneten Doppelschienen-Modulverdrahtungen 130, 130', 132 und 132' sowie auf dem Querverbindungspfad 25 gesendet.
  • In diesen Datenübertragungen ermöglicht die Anwesenheit der Querverbindungen 90, 90', 95 und 95', die die Zone 11 mit der Zone 11' koppeln, daß jedes CPU-Modul 30 und 30' mit irgendeinem E/A-Modul im Computersystem 10 selbst dann kommuniziert, wenn sich das Modul in einer anderen Zone befindet. Im Ergebnis werden zur Nutzung der während Datenübertragungen verfügbaren Verbindungen eine spezielle Schaltungsanordnung und spezielle Protokolle verwendet.
  • Falls z. B. die Zone 11 in dem Master-Modus und die Zone 11' in dem Slave-Modus ist, kann das CPU-Modul 30 in der Zone 11, die der Master ist, Daten zu und von den E/A- Modulen in seiner Zone 11 und in der andere Zone 11' übertragen. Wenn Informationen von irgendeinem E/A-Modul in einer der Zonen gesendet werden, empfangen im Master/Slave-Modus beide Speichercontroller 70 und 75 in der Master-Zone 11 die gleichen Informationen. Wenn Informationen von den Speichercontrollern 70 und 75 in der Master-Zone 11 zu einem der E/A-Module in einer Zone gesendet werden, werden in beiden Brandmauern 1000 und 1010 in diesem E/A-Modul die gleichen Informationen empfangen.
  • Im Vollduplexmodus arbeiten beide Zonen in Sperrstufensynchronisierung zusammen und erreichen ein störungstolerantes Computersystem. Wenn Informationen von irgendeinem E/A-Modul in einer Zone gesendet werden, empfangen im Vollduplexmodus beide CPU-Module 30 und 30' die gleichen Informationen. Darüber hinaus werden im Vollduplexmodus, wenn Informationen an ein E/A-Modul in einer Zone gesendet werden, durch das E/A-Modul in den Brandmauern 1000 und 1010 von den CPU-Modulen 30 und 30' die gleichen Informationen empfangen.
  • Die Querverbindungen 90, 90', 95 und 95' werden während der Datenübertragungen als Datenrouter verwendet. Die in den Fig. 11 und 12 gezeigte Schaltlogik in den Querverbindungen führt die Funktion der Kopplung eines Paars von Modulverdrahtungen 130 und 132 oder 130' und 132' mit spezifischen Speichercontrollern aus. Der unter Verwendung dieser Schaltlogik erzeugte Pfad kann von der Richtung der Datenübertragung, davon, ob die Quelle oder das Ziel für die Informationen ein E/A-Modul ist, welche Modulverdrahtungsbusse in die Datenübertragung einbezogen sind und von dem Betriebsmodus der Querverbindungen abhängen.
  • Wie in Fig. 3 gezeigt, koppelt ein Paar paralleler Busse 88 und 89 die Speichercontroller 70 und 75 mit den Querverbindungen 90 bzw. 95. Die Querverbindungs-/Speichercontrollerbusse 88 und 89 übertragen auf 16 doppeltgerichteten Datenleitungen Lese-, Schreib- oder DMA-Daten und Lese- oder Schreibadressen und enthalten zusätzliche einfachgerichtete Steuerleitungen, um Steuercodes sowohl aufwärts (CSUP- zum Speichercontroller) als auch abwärts (CSDN- vom Speichercontroller) zu übertragen. Ähnlich enthalten die Systembetriebsmittelbusse (d. h. die Modulverdrahtungen 130 und 132) außerdem 16 doppeltgerichtete Datenleitungen, um Lese- oder Schreibadressen und Lese-, Schreib- oder DMA-Daten zu übertragen und zusätzliche einfachgerichtete Steuerleitungen, um Steuercodes zu übertragen.
  • Zuerst werden Datenübertragungen über den DMA beschrieben.
  • Vor der Sendung von DMA-Daten zwischen einem Systembetriebsmittel, z. B. dem mit der Platte 1075 gekoppelten E/A-Modul 100 und einem CPU-Modul, z. B. dem CPU-Modul 30, muß die Schaltlogik in den Querverbindungen 90, 90', 95 und 95' richtig konfiguriert werden, so daß Steuercodes und DMA-Daten an die richtigen Komponenten des Computersystems gesendet werden. Folglich werden durch das CPU-Modul 30 DMA-Einstellungsinformationen von den Speichercontrollern 70 und 75 gesendet.
  • Die DMA-Einstellungsinformationen werden von den Speichercontrollern 70 und 75 über das Querverbindungs-/Speichercontrollerbuspaar 88 und 89 an die Querverbindungen 90 und 95 gesendet. Diese DMA-Einstellungsinformationen enthalten entweder im Steuercode, in der Schreibadresse und/oder in den Schreibdaten Bits, die von den Komponenten im Computersystem einschließlich der Querverbindungen zum eindeutigen Bezeichnen einer Einstellungsschreibtransaktion (eines Einstellungsschreibzyklus) verwendet werden. In der zweckmäßigen Ausführung der Erfindung wird die Einstellungsschreibtransaktion durch einen auf den einfachgerichteten Steuerleitungen der Querverbindungs/Speichercontrollerbusse 88 und 89 vom CPU-Modul 30 an die Querverbindungen 90 und 95 heruntergesendeten Steuercode identifiziert. Diese Leitungen werden als CSDN-Leitungen (Steuer- und Zustand-Herunterleitungen) bezeichnet.
  • Zum Vordefinieren des Pfads (zwischen einem Speichercontroller und einem Systembetriebsmittel) wird eine Einstellungsschreibtransaktion, die für eine nachfolgende DMA-Übertragung eingestellt werden muß, verwendet. Wäh rend der Schreibtransaktionen bestehen auf den 16 doppeltgerichteten Datenleitungen der Querverbindungs-/Speichercontrollerbusse 88 und 89 die von dem CPU-Modul 30 bereitgestellten Daten aus einer Schreibadresse, auf die Schreibdaten folgen. Wie hier ausgeführt, hat eine Einstellungsschreibtransaktion mit Ausnahme dessen, daß der Steuercode auf den CSDN-Leitungen während der Einstellungsschreibtransaktionen von den für andere Schreibtransaktionen verwendeten Steuercodes verschieden ist, das gleiche Format wie andere Schreibtransaktionstypen.
  • Die DMA-Einstellungsinformationen von dem Speichercontroller können entweder im Steuercode, in der Schreibadresse und/oder in den Schreibdaten enthalten sein. In der zweckmäßigen Ausführung der Erfindung gibt ein Bit in der Schreibadresse an, welche Zone die DMA-Übertragung einbezieht. Durch Überwachen dieses Bits in der Schreibadresse ermitteln die Querverbindungen 90 und 95, welches Systembetriebsmittel-Buspaar in die DMA-Übertragung einbezogen wird. Weiterhin wird die Schreibadresse von den Querverbindungen überwacht und mit den Bereichen in dem E/A-Raum des Computersystems 10 verglichen, um zu ermitteln, ob die DMA-Übertragung ein E/A-Modul einbezieht. Außerdem enthalten die während der Einstellungsschreibtransaktionen gesendeten Schreibdaten eines oder mehrere Bits zur Angabe der Richtung der DMA-Übertragung.
  • Somit überwachen die Querverbindungen 90 und 95 in der zweckmäßigen Ausführung der Erfindung den Steuercode, die Schreibadresse und die Schreibdaten, um zu entscheiden, ob DMA-Einstellungsinformationen gesendet werden, um die Richtung der DMA-Übertragung zu ermitteln, um das Systembetriebsmittel-Buspaar (Modulverdrahtungspaar), das einbezogen wird, zu identifizieren und um festzustellen, ob die DMA-Übertragungen ein mit irgendeinem Systembetriebsmittelbus gekoppeltes Systembetriebsmittel (E/A- Modul) betreffen. Außerdem enthält die Querverbindung 90 im Steuer- und Zustandsregister 912, wie in Fig. 10 gezeigt, Querverbindungs-Modusbits 916, die den Zustand der Querverbindung identifizieren, d. h., ob die Querverbindung entweder aus ist, ein Master ist, ein Slave ist oder im Vollduplexmodusbetrieb arbeitet. Diese Informationen werden verwendet, um die Steuercodes und die DMA- Daten während einer DMA-Übertragung zu leiten.
  • In Übereinstimmung mit der vorliegenden Erfindung enthält jede Querverbindung Einrichtungen zum Decodieren von DMA- Einstellungsinformationen während einer Einstellungsschreibtransaktion. Die Schaltlogik in den Querverbindungen führt unter der Steuerung einer Anzahl von Decodierern die Funktion der Datenleitung aus. Wenn von einem Speichercontroller eine Einstellungsschreibtransaktion ausgelöst wird, ermitteln diese Decodierer die Richtung einer kommenden DMA-Übertragung, ermitteln, welches Systembetriebsmittel-Buspaar die DMA-Übertragung einbezieht und ermitteln, ob die DMA-Übertragung ein mit einem Paar der Systembetriebsmittelbusse gekoppeltes Systembetriebsmittel einbezieht.
  • Die in den Fig. 11 und 12 gezeigten Decodierer 971, 996 und 998 decodieren die während einer Einstellungsschreibtransaktion gesendeten DMA-Einstellungsinformationen, um die zum Einstellen der Pfade zwischen den Speichercontrollern und einem Systembetriebsmittel-Buspaar erforderlichen internen Steuersignale zu erzeugen. Fig. 11 zeigt die in die Übertragung von Steuercodes zwischen den einfachgerichteten Steuerleitungen CSUP und CSDN einbezogene Schaltlogik der Querverbindungs-/Speichercontrollerbusse 88 und 89 und der Modulverdrahtungen 130 und 132. Fig. 12 zeigt die in die Übertragung von Daten zwischen den doppeltgerichteten Datenleitungen der Querverbindungs-/Speichercontrollerbusse 88 und 89 und den Modulverdrahtungen 130 und 132 einbezogene Schaltlogik.
  • Das CPU-Modul und das Systembetriebsmittel enthalten zweckmäßig eine Zeigerregistereinrichtung zur Angabe einer DMA-Datenadresse, auf die von dem CPU-Modul zugegriffen werden soll, und einer DMA-Datenadresse, auf die von dem Systembetriebsmittel zugegriffen werden soll. Wie in Fig. 8 gezeigt, enthält der Speichercontroller 70 in der DMA-Maschine 800 DMA-Register 830. Die DMA-Register 830 enthalten ein DMA-Adressenregister 836, das von der DMA-Maschine 800 auf einen Anfangswert eingestellt wird. In den E/A-Modulen wird die Adresse im lokalen RAM 1060, auf die während einer DMA-Operation zugegriffen wird, durch ein DMA-Adressenregister in dem in Fig. 17 gezeigten Controller 1050 des gemeinsam genutzten Speichers bereitgestellt.
  • In der zweckmäßigen Ausführung wird eine Schreibtransaktion von dem CPU-Modul 30 ausgelöst, wobei der Speichercontroller 70 während dieser Schreibtransaktion die DMA- Startadresseninformationen sendet. Die DMA-Startadresseninformationen spezifizieren eine DMA-Datenadresse zum Zugriff von einem Systembetriebsmittel während einer kommenden DMA-Übertragung, wobei diese Informationen vom Speichercontroller 70 über den Querverbindungs-/Speichercontrollerbus 88, über die Querverbindung 90 und (falls das Systembetriebsmittel in Zone 11 liegt) über die Modulverdrahtung 130 oder (falls das Systembetriebsmittel in Zone 11' liegt) über den Querverbindungspfad 25, über die Querverbindung 90' und über die Modulverdrahtung 130' an ein Systembetriebsmittel gesendet werden. Im Zeigerregister wird die DMA-Datenadresse dann in einem Systembetriebsmittel wie etwa in dem Controller 1050 des gemeinsam genutzten Speichers im E/A-Modul 100 gespeichert.
  • Ähnlich spezifiziert die DMA-Maschine 800 eine DMA-Datenadresse im Speicher 60 zum Zugriff vom Speichercontroller 70 während einer kommenden DMA-Datenübertragung. Diese DMA-Startadresseninformationen werden in das Zeigerregister in dem Speichercontroller, d. h. in das DMA- Adressenregister 836 geschrieben.
  • Wie hier ausgeführt, enthalten das CPU-Modul und das Systembetriebsmittel Zählungsregistereinrichtungen zur Angabe der Anzahl von DMA-Datenbytes zum Zugriff von dem CPU-Modul und von dem Systembetriebsmittel während einer kommenden DMA-Übertragung. Wie in Fig. 8 gezeigt, enthalten die DMA-Register 830 in der DMA-Maschine 800 DMA- Byte-Zählerregister 832, die von der DMA-Maschine 800 während des Einstellens auf einen Anfangswert eingestellt werden. In den E/A-Modulen verfolgt die in Fig. 18 gezeigte DMA-Steuerung 1890 in der Brandmauer 1000, wieviel Wörter oder Bytes zur Übertragung über den DMA verblieben sind.
  • Eine Schreibtransaktion wird zweckmäßig vom CPU-Modul 30 ausgelöst, wobei der Speichercontroller 70 während dieser Schreibtransaktion DMA-Zählungsinformationen sendet. Die DMA-Zählungsadresseninformationen spezifizieren eine DMA- Zählung der Anzahl der DMA-Datenbytes (DMA-Datenwörter) zum Zugriff während einer kommenden DMA-Übertragung, wobei diese Informationen vom Speichercontroller 70 über den Querverbindungs-/Speichercontrollerbus 88, über die Querverbindung 90 und (falls das Systembetriebsmittel in Zone 11 liegt) über die Modulverdrahtung 130 oder (falls das Systembetriebsmittel in Zone 11' liegt) über den Querverbindungspfad 25, über die Querverbindung 90' und über die Modulverdrahtung 130' an ein Systembetriebsmittel gesendet werden. Die DMA-Zählung wird dann in dem Zählungsregister in einem Systembetriebsmittel wie etwa in der DMA-Steuerung 1890 in der Brandmauer 1000 im E/A- Modul 100 gespeichert. Außerdem wird diese DMA-Zählung gleichzeitig in das Zeigerregister in dem Speichercontroller, d. h. in das DMA-Bytezählerregister 832 geschrieben.
  • In der zweckmäßigen Ausführung der Erfindung wird die DMA-Zählung vom Speichercontroller 70 während einer Einstellungsschreibtransaktion gesendet. Die während einer Einstellungsschreibtransaktion an ein Systembetriebsmittel gesendeten Schreibdaten enthalten DMA-Zählungsinformationen. Wie hier ausgeführt, identifiziert ein Bit in der während der Einstellungsschreibtransaktion gesendeten Schreibadresse die Zone (und folglich das Modulverdrahtungspaar), die von der DMA-Übertragung betroffen wird, wobei in die DMA-Übertragung ein mit einem Modulverdrahtungspaar gekoppeltes Systembetriebsmittel einbezogen wird, falls die Schreibadresse einer Adresse im E/A-Raum des Systems 10 entspricht. Schließlich enthalten die während der Einstellungsschreibtransaktion gesendeten Schreibdaten zweckmäßig Bits, die die Richtung der DMA-Übertragung spezifizieren.
  • Es wird nun Bezug auf die Fig. 24A-E genommen, die Zeitablaufpläne sind, die die Übertragung von Steuercodes und DMA-Daten auf den Modulverdrahtungen 130 und 132 (Fig. 24A, B, C & E) oder auf den Querverbindungs-/Speichercontrollerbussen 88 und 89 (Fig. 24D) während einer DMA-Übertragung zeigen.
  • In Übereinstimmung mit der Erfindung wird auf den einfachgerichteten Steuerleitungen CSDN der Busse 88 und 89 ein Start-DMA-Code von den Speichercontrollern 70 und 75 an die Querverbindungen 90 und 95 gesendet. Wie in den Fig. 24A-24E gezeigt, ist der erste während jeder versuchten DMA-Übertragung auf den CSDN-Leitungen gesendete Steuercode ein START-Code. Der Start-DMA-Code wird über die Querverbindungen und über das an das Systembetriebsmittel gekoppelte Systembetriebsmittel-Buspaar an eines der Systembetriebsmittel gesendet.
  • Als Antwort auf die Sendung des DMA-Startcodes wird die Schaltlogik in den Querverbindungen 90, 90', 95 und 95' in Übereinstimmung mit den decodierten DMA-Einstellungsinformationen konfiguriert. Bis zum Empfang des DMA- Startcodes wird die Schaltlogik nicht ausgelöst.
  • In den folgenden Beispielen werden die Treiber 940, 946, 951, 969 und 992 in der Querverbindung 90 durch interne Steuersignale vom Decodierer 998 aktiviert und deaktiviert. Außerdem erzeugt der Decodierer 998 interne Steuersignale, die auswählen, welcher der zwei Eingänge durch die Multiplexierer CSMUXD 945, MUXC 976 und MUXD 982 geleitet wird. Die Treiber 937 und 984 werden von den Decodierern 971 und 996 in der Weise aktiviert und deaktiviert, daß Steuercodes und DMA-Daten vom Speichercontroller 70 an die Querverbindung 90' in Zone 11' gesendet werden können.
  • In einem Beispiel wird die Schaltlogik in der Weise konfiguriert, daß sie DMA-Daten von dem Systembetriebsmittel-Buspaar 130 und 132 über die Schaltlogik in dem Querverbindungspaar 90 und 95 an das Speichercontrollerpaar 70 und 75 und über die Schaltlogik in dem Querverbindungspaar 90 und 95 und über die Schaltlogik in dem Querverbindungspaar 90' und 95' an das Speichercontrollerpaar 70' und 75' weiterleitet. Dieser Pfad wird zu Zeitpunkten eingestellt, zu denen die von den Decodierern 971, 996 und 998 decodierten DMA-Einstellungsinformationen angeben, daß die DMA-Übertragung aufwärts gerichtet ist, die Zone 11 (und somit das Modulverdrahtungspaar 130 und 132) einbezieht und ein mit einem Modulverdrahtungs paar gekoppeltes Systembetriebsmittel (z. B. das E/A- Modul 100) einbezieht.
  • Da die DMA-Einstellungsinformationen angeben, daß die DMA-Übertragung aufwärts gerichtet ist, wird in diesem Beispiel der Treiber 969 deaktiviert und der Treiber 992 aktiviert, vorausgesetzt, die Querverbindungs-Modusbits 916 geben an, daß die Querverbindung 90 ein Master ist oder im Duplexmodus arbeitet. Da die DMA-Einstellungsinformationen angeben, daß die Übertragung aufwärts erfolgt, wählt der MUXC 976 den Eingang von der Modulverdrahtung 130. Da die DMA-Einstellungsinformationen angeben, daß die Übertragung die Zone 11 einbezieht, wählt der MUXD 982 den Eingang von der Modulverdrahtung 130. Im Ergebnis werden die DMA-Daten von der Modulverdrahtung 130 an den Speichercontroller 70 gesendet.
  • Der Treiber 951 wird während des Beispiels aktiviert, falls die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Master ist oder im Duplexmodus arbeitet. Da die DMA-Einstellungsinformationen angeben, daß die Übertragung die Zone 11 einbezieht, wählt der CSMUXD 945 den Eingang von der Modulverdrahtung 130. Im Ergebnis werden die Steuercodes von der Modulverdrahtung 130 an den Speichercontroller 70 gesendet.
  • Da die DMA-Einstellungsinformationen angeben, daß die Übertragung ein E/A-Modul in Zone 11 einbezieht, werden die Treiber 946 und 984 in diesem Beispiel aktiviert, vorausgesetzt, daß die Querverbindung 90 ein Master ist oder im Duplexmodus arbeitet. Im Ergebnis werden Steuercodes und DMA-Daten von der Modulverdrahtung 130 von der Querverbindung 90 über die Querverbindung 90' an den Speichercontroller 70' gesendet.
  • Da die DMA-Einstellungsinformationen angeben, daß die Übertragung ein E/A-Modul in Zone 11 einbezieht, wird in diesem ersten Beispiel der Treiber 940 aktiviert und der Treiber 937 deaktiviert. Die Steuercodes werden entweder vom Speichercontroller 70 oder vom Speichercontroller 70' über die Querverbindung 90' und über den Querverbindungspfad 25 an die Modulverdrahtung 130 gesendet. Wenn die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Master ist, wählt der CSMUXA 935 den Eingang vom Speichercontroller 70. Wenn die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Slave ist, wählt der CSMUXA 935 den Eingang vom Querverbindungspfad 25. Wenn die Querverbindungen im Duplexmodus arbeiten, wählt entweder der CSMUXA 935 den Eingang vom Speichercontroller 70, während der CSMUXA 935 m den Eingang vom Querverbindungspfad 25 wählt, oder der CSMUXA 935 wählt den Eingang vom Querverbindungspfad 25, während der CSMUXA 935 m den Eingang vom Speichercontroller 75 wählt. Im Ergebnis kommen die an die Modulverdrahtung 130 und 132 gesendeten und in den Brandmauern 1000 und 1010 des E/A-Moduls 100 empfangenen Steuercodes im Duplexmodus von zwei verschiedenen Zonen.
  • In einem zweiten Beispiel ist die Schaltlogik in der Weise konfiguriert, daß sie DMA-Daten vom Systembetriebsmittel-Buspaar 130' und 132' über die Schaltlogik in dem Querverbindungspaar 90' und 95' an das Speichercontrollerpaar 70 und 75' weiterleitet und über die Schaltlogik in dem Querverbindungspaar 90' und 95' an die Schaltlogik in dem Querverbindungspaar 90 und 95 und an das Speichercontrollerpaar 70 und 75 weiterleitet. Dieser Pfad wird zu Zeitpunkten eingestellt, zu denen die von den Decodierern 971, 996 und 998 decodierten DMA-Einstellungsinformationen angeben, daß die DMA-Übertragung aufwärts gerichtet ist, die Zone 11' (und folglich das Modulverdrahtungspaar 130' und 132') einbezieht und ein mit einem Mo dulverdrahtungspaar gekoppeltes Systembetriebsmittel (z. B. das E/A-Modul 100') einbezieht.
  • Da die DMA-Einstellungsinformationen angeben, daß die DMA-Übertragung aufwärts gerichtet ist, wird in diesem zweiten Beispiel der Treiber 969 deaktiviert und der Treiber 992 aktiviert, vorausgesetzt, daß die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Master ist oder im Duplexmodus arbeitet. Da die DMA- Einstellungsinformationen angeben, daß die Übertragung die Zone 11' einbezieht, wählt der MUXD 982 den Eingang vom Querverbindungspfad 25. Im Ergebnis werden DMA-Daten von der Modulverdrahtung 130' über die Querverbindung 90' und den Querverbindungspfad 25 an den Speichercontroller 70 gesendet.
  • Der Treiber 951 wird während dieses Beispieles aktiviert, falls die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Master ist oder im Duplexmodus arbeitet. Da die DMA-Einstellungsinformationen angeben, daß die Übertragung die Zone 11' einbezieht, wählt der CSMUXD 545 den Eingang vom Querverbindungspfad 25. Im Ergebnis werden die Steuercodes von der Modulverdrahtung 130' über die Querverbindung 90' und den Querverbindungspfad 25 an den Speichercontroller 70 gesendet.
  • Da die DMA-Einstellungsinformationen angeben, daß die Übertragung die Zone 11' einbezieht, wird in diesem Beispiel der Treiber 946 deaktiviert. Da die DMA-Einstellungsinformationen angeben, daß die Übertragung aufwärts gerichtet ist und die Zone 11' einbezieht, wird in diesem Beispiel der Treiber 984 deaktiviert. Jedoch werden die Steuercodes und die DMA-Daten von der Modulverdrahtung 130' von der Querverbindung 90' über die Empfänger 947 und 986 in der Querverbindung 90 an den Speichercontroller 70 gesendet.
  • Da die DMA-Einstellungsinformationen angeben, daß die Übertragung die Zone 11' einbezieht, wird in diesem zweiten Beispiel der Treiber 940 deaktiviert und der Treiber 937 aktiviert. Die Schaltlogik in der Querverbindung 90' wird in der Weise konfiguriert, daß sie die Steuercodes entweder vom Speichercontroller 70' oder vom Speichercontroller 70 über die Querverbindung 90 und den Querverbindungspfad 25 an die Modulverdrahtung 130' sendet. Wenn die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Master ist, werden die Steuercodes vom Speichercontroller 70 an die Modulverdrahtung 130' gesendet. Wenn die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Slave ist, werden die Steuercodes vom Speichercontroller 70' an die Modulverdrahtung 130' gesendet. Wenn die Querverbindungen im Duplexmodus arbeiten, wählt entweder die Schaltlogik in der Querverbindung 90' den Eingang vom Speichercontroller 70, während die Schaltlogik in der Querverbindung 95' den Eingang vom Speichercontroller 75' wählt, oder die Schaltlogik in der Querverbindung 90' wählt den Eingang vom Speichercontroller 70, während die Schaltlogik in der Querverbindung 95' den Eingang vom Speichercontroller 75 wählt. Im Ergebnis kommen die an die Modulverdrahtungen 130' und 132' gesendeten und in den Brandmauern 1000 und 1010 der E/A-Module 100' empfangenen Steuercodes im Duplexmodus von zwei verschiedenen Zonen.
  • In einem dritten Beispiel ist die Schaltlogik in der Weise konfiguriert, daß sie DMA-Daten von einem der Speichercontroller 70 oder 75 über die Schaltlogik in der Querverbindung 90 oder 95 und von einem der Speichercontroller 70' oder 75' über die Schaltlogik in den Querverbindungen 90' und 90 oder in den Querverbindungen 95' und 95 an das Systembetriebsmittel-Buspaar 130 und 132 wei terleitet. Dieser Pfad wird zu Zeitpunkten eingestellt, zu denen die von den Decodierern 971, 996 und 998 decodierten DMA-Einstellungsinformationen angeben, daß die DMA-Übertragung abwärts gerichtet ist, die Zone 11 (und somit das Modulverdrahtungspaar 130 und 132) einbezieht und ein mit einem Modulverdrahtungspaar gekoppeltes Systembetriebsmittel (z. B. das E/A-Modul 100) einbezieht.
  • Da die DMA-Einstellungsinformationen angeben, daß die DMA-Übertragung abwärts gerichtet ist und ein E/A-Modul in Zone 11 einbezieht, wird in diesem dritten Beispiel der Treiber 969 aktiviert, während die Treiber 984 und 992 deaktiviert werden. Die DMA-Daten werden entweder vom Speichercontroller 70 oder vom Speichercontroller 70' über die Querverbindung 90' und über den Querverbindungspfad 25 an die Modulverdrahtung 130 gesendet. Wenn die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Master ist, wählt der MUXA 966 den Eingang vom Speichercontroller 70. Wenn die Querverbindungs- Modusbits 916 angeben, daß die Querverbindung 90 ein Slave ist, wählt der MUXA 966 den Eingang vom Querverbindungspfad 25. Wenn die Querverbindungen im Duplexmodus arbeiten, wählt entweder der MUXA 966 den Eingang vom Speichercontroller 70, während der (nicht gezeigte) MUXA in der Querverbindung 95 den Eingang vom Querverbindungspfad 25 wählt, oder der MUXA 966 wählt den Eingang vom Querverbindungspfad 25, während der MUXA in der Querverbindung 95 den Eingang vom Speichercontroller 75 wählt. Im Ergebnis kommen die an die Modulverdrahtungen 130 und 132 gesendeten und in den Brandmauern 1000 und 1010 des E/A-Moduls 100 empfangenen DMA-Daten im Duplexmodus von zwei verschiedenen Zonen.
  • Falls die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Master ist oder im Duplexmodus arbeitet, wird während dieses Beispiels der Treiber 951 aktiviert. Da die DMA-Einstellungsinformationen angeben, daß die Übertragung die Zone 11 einbezieht, wählt der CSMUXD 945 den Eingang von der Modulverdrahtung 130. Im Ergebnis werden die Steuercodes von der Modulverdrahtung 130 an den Speichercontroller 70 gesendet.
  • Da die DMA-Einstellungsinformationen angeben, daß die Übertragung ein E/A-Modul in Zone 11 einbezieht, wird der Treiber 946 in diesem Beispiel aktiviert, vorausgesetzt, daß die Querverbindung 90 ein Slave ist oder im Duplexmodus arbeitet. Im Ergebnis werden die Steuercodes von der Modulverdrahtung 130 von der Querverbindung 90 über die Querverbindung 90' an den Speichercontroller 70' gesendet.
  • Da die DMA-Einstellungsinformationen angeben, daß die Übertragung ein E/A-Modul in Zone 11 einbezieht, wird in diesem dritten Beispiel der Treiber 940 aktiviert und der Treiber 937 deaktiviert. Die Steuercodes werden entweder vom Speichercontroller 70 oder vom Speichercontroller 70' über die Querverbindung 90' und über den Querverbindungspfad 25 an die Modulverdrahtung 130 gesendet. Wenn die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Master ist, wählt der CSMUXA 935 den Eingang vom Speichercontroller 70. Wenn die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Slave ist, wählt der CSMUXA 935 den Eingang vom Querverbindungspfad 25. Wenn die Querverbindungen im Duplexmodus arbeiten, wählt entweder der CSMUXA 935 den Eingang vom Speichercontroller 70, während der CSMUXA 935 m den Eingang vom Querverbindungspfad 25 wählt, oder der CSMUXA 935 wählt den Eingang vom Querverbindungspfad 25, während der CSMUXA 935 m den Eingang vom Speichercontroller 75 wählt. Im Ergebnis kommen die an die Modulverdrahtungen 130 und 132 gesendeten und in den Brandmauern 1000 und 1010 des E/A-Moduls 100 empfangenen Steuercodes im Duplexmodus von zwei verschiedenen Zonen.
  • In einem vierten Beispiel ist die Schaltlogik zum Weiterleiten von DMA-Daten von einem der Speichercontroller 70 oder 75 über die Schaltlogik in den Querverbindungen 90 und 90' oder 95 und 95' und von einem der Speichercontroller 70' oder 75' über die Schaltlogik in den Querverbindung 90' oder 95' an das Systembetriebsmittel-Buspaar 130' und 132' konfiguriert. Dieser Pfad ist zu Zeitpunkten eingestellt, zu denen die von den Decodierern 971, 996 und 998 decodierten DMA-Einstellungsinformationen angeben, daß die DMA-Übertragung abwärts gerichtet ist, die Zone 11' (und somit das Modulverdrahtungspaar 130' und 132') einbezieht und ein an ein Modulverdrahtungspaar gekoppeltes Systembetriebsmittel (z. B. das E/A-Modul 100') einbezieht.
  • Da die DMA-Einstellungsinformationen angeben, daß die DMA-Übertragung abwärts gerichtet ist und die Zone 11' einbezieht, wird in diesem vierten Beispiel der Treiber 984 aktiviert, die Treiber 969 und 992 werden deaktiviert, und der MUXC 976 wählt den Eingang vom Speichercontroller 70. Die DMA-Daten werden entweder vom Speichercontroller 70' oder vom Speichercontroller 70 über die Querverbindung 90 und über den Querverbindungspfad 25 über die Querverbindung 90' an die Modulverdrahtung 130' gesendet. Wenn die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Master ist, wählt die Schaltlogik in der Querverbindung 90' den Eingang vom Speichercontroller 70'. Wenn die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Slave ist, wählt die Schaltlogik in der Querverbindung 90' den Eingang vom Querverbindungspfad 25. Wenn die Querverbindungen im Duplexmodus arbeiten, wählt entweder die Schaltlogik in der Querverbindung 90' den Eingang vom Speichercontroller 70', während die Schaltlogik in der Querverbindung 95' den Eingang vom Querverbindungspfad 25 wählt, oder die Schaltlogik in der Querverbindung 90' wählt den Eingang vom Querverbindungspfad 25, während die Schaltlogik in der Querverbindung 95' den Eingang vom Speichercontroller 75' wählt. Im Ergebnis kommen die an die Modulverdrahtungen 130' und 132' gesendeten und in den Brandmauern 1000 und 1010 des E/A-Moduls 100' empfangenen DMA-Daten im Duplexmodus von zwei verschiedenen Zonen.
  • Falls die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Master ist oder im Duplexmodus arbeitet, wird der Treiber 951 während dieses Beispiels aktiviert. Da die DMA-Einstellungsinformationen angeben, daß die Übertragung die Zone 11' einbezieht, wählt der CSMUXD 945 den Eingang vom Querverbindungspfad 25. Im Ergebnis werden die Steuercodes von der Modulverdrahtung 130' an den Speichercontroller 70 gesendet.
  • Da die DMA-Einstellungsinformationen angeben, daß die Übertragung die Zone 11' einbezieht, ist in diesem Beispiel der Treiber 946 deaktiviert. Jedoch werden die Steuercodes von der Modulverdrahtung 130' von der Querverbindung 90' über den Empfänger 947 in der Querverbindung 90 an den Speichercontroller 70 gesendet.
  • Da die DMA-Einstellungsinformationen angeben, daß die Übertragung die Zone 11' einbezieht, wird in diesem vierten Beispiel der Treiber 937 aktiviert und der Treiber 940 deaktiviert. Die Steuercodes werden entweder vom Speichercontroller 70' oder vom Speichercontroller 70 über die Querverbindung 90 und über den Querverbindungspfad 25 über die Querverbindung 90' an die Modulverdrahtung 130' gesendet. Wenn die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Slave ist, wählt die Schaltlogik in der Querverbindung 90' den Eingang vom Speichercontroller 70'. Wenn die Querverbindungs-Modusbits 916 angeben, daß die Querverbindung 90 ein Master ist, wählt die Schaltlogik in der Querverbindung 90' den Eingang vom Querverbindungspfad 25. Wenn die Querverbindungen im Duplexmodus arbeiten, wählt entweder die Schaltlogik in der Querverbindung 90' den Eingang vom Speichercontroller 70', während die Schaltlogik in der Querverbindung 95' den Eingang vom Querverbindungspfad 25 wählt, oder die Schaltlogik in der Querverbindung 90' wählt den Eingang vom Querverbindungspfad 25, während die Schaltlogik in der Querverbindung 95' den Eingang vom Speichercontroller 75' wählt. Im Ergebnis kommen die an die Modulverdrahtung 130' und 132' gesendeten und in den Brandmauern 1000 und 1010 des E/A-Moduls 100' empfangenen Steuercodes im Duplexmodus von verschiedenen Zonen.
  • In Übereinstimmung mit der Erfindung wird als Antwort auf die Übertragung eines Start-DMA-Codes an eines der Systembetriebsmittel (z. B. an das E/A-Modul 100) ein Quittungscode an die Speichercontroller gesendet. Wie in den Fig. 24A-24E gezeigt, ist der erste während jeder versuchten DMA-Übertragung auf den CSUP-Leitungen gesendete Steuercode ein ACK-Code. Um anzugeben, daß das Systembetriebsmittel die Steuerung des mit dem Systembetriebsmittel gekoppelten Systembetriebsmittel-Buspaars hat, sendet zweckmäßig ein Systembetriebsmittel als Antwort auf einen Start-DMA-Code einen Quittungscode an die Speichercontroller.
  • In diesem Beispiel werden die ACK-Codes von den Brandmauern 1000 und 1010 im E/A-Modul 100 über das Modulverdrahtungspaar 130 und 132 an die Querverbindungen 90 und 95 gesendet um anzugeben, daß die Brandmauern 1000 und 1010 den II32T-Bus 1020 steuern. Die Speichercontroller 70 und 75 empfangen die ACK-Codes von den Querverbindungen 90 und 95 auf den einfachgerichteten Steuerleitungen CSUP der Busse 88 und 89. Außerdem werden die ACK-Codes von den Querverbindungen 90 und 95 über die Querverbindungen 90' und 95' und über die Busse 88' und 89' an die Speichercontroller 70' und 75' gesendet.
  • In der vorliegenden Erfindung sendet das Systembetriebsmittel zu Zeitpunkten, zu denen die DMA-Übertragung aufwärts gerichtet ist und nach der Sendung eines Quittungscodes von einem Systembetriebsmittel DMA-Daten über das mit dem Systembetriebsmittel gekoppelte Systembetriebsmittel-Buspaar und über die Schaltlogik in den Querverbindungen an die Speichercontroller. Wie in den Fig. 24C-24E gezeigt, wird während der DMA-Übertragungen von einem Systembetriebsmittel (z. B. vom E/A-Modul 100) an die Speichercontroller zweckmäßig ein DMA-Code auf den CSUP-Leitungen der Modulverdrahtungen 130 und 132 an die Querverbindungen 90 und 95 gesendet. Der DMA-Code wird dann von den Querverbindungen 90 und 95 an die CSUP- Leitungen der Querverbindungs-/Speichercontrollerbusse 88 und 89 und (über die Querverbindung 90' und 95') an die CSUP-Leitungen der Querverbindungs-/Speichercontrollerbusse 88' und 89' gesendet. Die Übertragung des DMA- Codes auf den CSUP-Leitungen gibt an, daß Daten auf den doppeltgerichteten Datenleitungen der Modulverdrahtungen 130 und 132 und auf den Querverbindungs-/Speichercontrollerbussen 88, 89, 88' und 89' an die Speichercontroller gesendet werden.
  • Auf die DMA-Daten greift das Systembetriebsmittel von der DMA-Datenadresse, die ein Zeigerregister in dem Systembetriebsmittel angibt, z. B. der Controller 1050 des gemeinsam genutzten Speichers im E/A-Modul 100, zu. Das E/A-Modul 100 steuert mit diesen DMA-Daten die doppeltgerichteten Datenleitungen der Modulverdrahtungen 130 und 132 an, während die Querverbindungen 90, 95, 90' und 95' die doppeltgerichteten Datenleitungen der Busse 88, 89, 88' und 89' ansteuern und diese DMA-Daten, wie in den Fig. 24C-E gezeigt, an die Speichercontroller weiterleiten.
  • In Übereinstimmung mit der Erfindung senden die Speichercontroller zu Zeitpunkten, zu denen die DMA-Übertragung abwärts gerichtet ist und nach der Sendung eines Quittungscodes von einem Systembetriebsmittel DMA-Daten über die Schaltlogik in den Querverbindungen und über das an das Systembetriebsmittel gekoppelte Systembetriebsmittel- Buspaar an eines der Systembetriebsmittel. In der in den Fig. 24A-24B gezeigten zweckmäßigen Ausführung wird während der DMA-Übertragungen zu einem Systembetriebsmittel (z. B. zum E/A-Modul 100) ein DMA-Code auf den CSDN- Leitungen der Querverbindungs-/Speichercontrollerbusse 88, 89, 88' und 89' an die Querverbindungen 90, 95, 90' und 95' gesendet. Der DMA-Code wird dann von den Querverbindungen 90 und 95 an die CSUP-Leitungen der Modulverdrahtungen 130 und 132 gesendet. Die Sendung des DMA- Codes auf den CSDN-Leitungen gibt an, daß Daten auf den doppeltgerichteten Datenleitungen der Querverbindungs/Speichercontrollerbusse 88, 89, 88' und 89' und der Modulverdrahtungen 130 und 132 an das Systembetriebsmittel gesendet werden.
  • Auf die DMA-Daten greift jeder Speichercontroller von der DMA-Adresse im Speicher 60 oder 60' zu, die das Zeigerregister in dem Speichercontroller, z. B. das DMA-Adressenregister 836 im Speichercontroller 70, angibt. Die Speichercontroller 70, 75, 70' und 75' steuern mit diesen DMA-Daten die doppeltgerichteten Datenleitungen der Busse 88, 89, 88' und 89' an, während die Querverbindungen 90 und 95 die doppeltgerichteten Datenleitungen der Modulverdrahtungen 130 und 132 ansteuern und diese DMA-Daten, wie in den Fig. 24A-B gezeigt, an die Brandmauern 1000 und 1010 des E/A-Moduls 100 weiterleiten.
  • Nach der Sendung eines Quittungscodes von einem Systembetriebsmittel (z. B. vom E/A-Modul 100) kann in einer zweckmäßigen Ausführung der Erfindung ein Blockierungscode an die Speichercontroller gesendet werden. Wie in den Fig. 24A-24E gezeigt, kann während der DMA-Übertragungen auf den CSUP-Leitungen ein STALL-Code gesendet werden. Zweckmäßig sendet ein Systembetriebsmittel zu Zeitpunkten, zu denen die DMA-Übertragung abwärts gerichtet ist, einen Blockierungscode an die Speichercontroller um anzugeben, daß das Systembetriebsmittel nicht zur Annahme von DMA-Daten von den Speichercontrollern bereit ist. Ähnlich sendet das Systembetriebsmittel zu Zeitpunkten, zu denen die DMA-Übertragung aufwärts gerichtet ist, einen Blockierungscode an die Speichercontroller um anzugeben, daß das Systembetriebsmittel nicht zum Senden von DMA-Daten an die Speichercontroller bereit ist.
  • In diesem Beispiel werden die STALL-Codes von den Brandmauern 1000 und 1010 im E/A-Modul 100 über das Modulverdrahtungspaar 130 und 132 an die Querverbindungen 90 und 95 gesendet. Die Speichercontroller 70 und 75 empfangen die STALL-Codes auf den einfachgerichteten Steuerleitungen CSUP der Busse 88 und 89 von den Querverbindungen 90 und 95. Außerdem werden die STALL-Codes von den Querverbindungen 90 und 95 über die Querverbindungen 90' und 95' und über die Busse 88' und 89' an die Speichercontroller 70' und 75' gesendet.
  • In den Fig. 24A und 24B ist das Senden von Steuercodes und DMA-Daten auf den Modulverdrahtungen gezeigt. Die gleichen Steuercodes und DMA-Daten werden außerdem auf den Querverbindungs-/Speichercontrollerbussen gesendet, wobei aber auf den Querverbindungs-/Speichercontrol lerbussen die Zeitdauer vom Senden eines Steuercodes von einem Systembetriebsmittel auf den CSUP-Leitungen bis zum Senden einer Antwort von den Speichercontrollern auf den CSDN-Leitungen und auf den Datenleitungen kürzer ist.
  • Wie in den Fig. 24A und 24B gezeigt, gibt es vor der Sendung der DMA-Daten auf den Modulverdrahtungen 130 und 132 als Antwort auf die Übertragung eines ACK-Codes eine Verzögerung, während es eine weitere Verzögerung gibt, bevor die Speichercontroller als Antwort auf die Übertragung eines STALL-Codes von dem Systembetriebsmittel das Senden der DMA-Daten auf den Modulverdrahtungen 130 und 132 anhalten. Infolge der zusätzlichen, zum Leiten der Steuercodes und DMA-Daten über den Querverbindungspfad 25 und über die Schaltlogik in den Querverbindungen 90, 95 90' und 95' eingeführten Verzögerungszeit sind die Antwortzeiten für Übertragungen von Steuercodes und DMA- Daten auf den Systembetriebsmittelbussen länger. Im Ergebnis muß ein Systembetriebsmittel, falls es einen STALL-Code sendet, der angibt, daß es nicht zur Annahme von DMA-Daten von den Speichercontrollern bereit ist, noch genug verfügbaren Speicher zum Annehmen der zusätzlichen DMA-Daten haben, die an das Systembetriebsmittel gesendet werden, bevor die Speichercontroller den STALL- Code empfangen.
  • Nach der Sendung von DMA-Daten zwischen den Speichercontrollern und einem der Systembetriebsmittel (z. B. dem E/A-Modul 100) wird in Übereinstimmung mit der Erfindung ein Fertig-Code an die Speichercontroller gesendet. Zweckmäßig sendet ein Systembetriebsmittel einen Fertig- Code an die Speichercontroller, um eine erfolgreiche DMA- Datenübertragung anzugeben. Wie in den Fig. 24A und 24C gezeigt, wird nach einer erfolgreichen Sendung von DMA- Daten ein DONE-Code auf den CSUP-Leitungen gesendet.
  • Wie hier ausgeführt, gibt eine während einer Einstellungsschreibtransaktion an die Brandmauern des E/A-Moduls 100 gesendete DMA-Zählung die Anzahl der DMA-Datenbytes zum Zugriff während der gesamten DMA-Übertragung an. Um die Anzahl der von der DMA-Zählung spezifizierten Bytes zu senden, wird zweckmäßig eine Anzahl von Unterübertragungen von DMA-Daten ausgeführt. Um jede Unterübertragung zu beginnen, wird ein START-Code gesendet, während zur Angabe des Abschlusses der Unterübertragung ein DONE-Code gesendet wird.
  • In diesem Beispiel werden die DONE-Codes von den Brandmauern 1000 und 1010 in dem E/A-Modul 100 über das Modulverdrahtungspaar 130 und 132 an die Querverbindungen 90 und 95 gesendet, um anzugeben, daß die Brandmauern 1000 und 1010 während der vorangehenden Unterübertragung von DMA-Daten keinen Fehlvergleichsfehler erfaßt haben. Zu Zeitpunkten, zu denen die DMA-Übertragung aufwärts gerichtet ist, gibt die Sendung von DONE-Codes nach der letzten Unterübertragung, d. h. nach der Sendung der von der DMA-Zählung spezifizierten Anzahl von Bytes, außerdem an, daß die Brandmauern 1000 und 1010 während der gesamten Übertragung von DMA-Daten keinen EDC/CRC-Fehler erfaßt haben. Die Speichercontroller 70 und 75 empfangen die DONE-Codes von den Querverbindungen 90 und 95 auf den CSUP-Leitungen der Busse 88 und 89. Außerdem werden die DONE-Codes von den Querverbindungen 90 und 95 über die Querverbindungen 90' und 95' und über die Busse 88' und 89' an die Speichercontroller 70' und 75' gesendet.
  • In der zweckmäßigen Ausführung der Erfindung kann nach der Sendung des Quittungscodes von einem der Systembetriebsmittel (z. B. vom E/A-Modul 100) ein Fehlercode an die Speichercontroller gesendet werden. Um eine erfolglose DMA-Datensendung anzugeben, sendet zweckmäßig ein Systembetriebsmittel einen Fehlercode an die Speichercon troller. Wie in den Fig. 24B, 24D und 24E gezeigt, wird auf den CSUP-Leitungen ein ERROR-Code oder ein CRC ERROR- Code gesendet, wenn eine versuchte DMA-Datensendung erfolglos ist.
  • In dem in den Fig. 24B gezeigten Beispiel verwenden die Brandmauern 1000 und 1010 in dem E/A-Modul 100 zu Zeitpunkten, zu denen die DMA-Übertragung abwärts gerichtet ist, die Brandmauer-Vergleichsschaltung 1840 (Fig. 18), um zu erfassen, ob zwischen den zwei auf den Modulverdrahtungen 130 und 132 an das E/A-Modul 100 gesendeten Sätzen von DMA-Daten und Steuercodes ein Fehlvergleichsfehler aufgetreten ist. Falls die Brandmauern 1000 und 1010 während der Unterübertragung der Steuercodes und der DMA-Daten einen Fehlvergleichsfehler erfassen, werden die ERROR-Codes von den Brandmauern 1000 und 1010 im E/A- Modul 100 über das Modulverdrahtungspaar 130 und 132 an die Querverbindungen 90 und 95 gesendet. Die Speichercontroller 70 und 75 empfangen die ERROR-Codes von den Querverbindungen 90 und 95 auf den CSUP-Leitungen der Busse 88 und 89. Außerdem werden die ERROR-Codes von den Querverbindungen 90 und 95 über die Querverbindungen 90' und 95' und über die Busse 88' und 89' an die Speichercontroller 70' und 75' gesendet.
  • In dem in Fig. 24D gezeigten Beispiel verwenden die Querverbindungen 90 und 95 zu Zeitpunkten, zu denen die DMA-Übertragung aufwärts gerichtet ist, die Logikgatter 960 und 960 m, um zu erfassen, ob zwischen den beiden vom E/A-Modul 100 auf den Modulverdrahtungen 130 und 132 gesendeten Sätzen von Steuercodes ein Fehlvergleichsfehler vorliegt. Falls die Logikgatter 960 und 960 m während der vorangehenden Unterübertragung von Steuercodes einen Fehlvergleichsfehler erfassen, werden die ERROR-Codes von den Querverbindungen 90 und 95 auf den CSUP-Leitungen der Busse 88 und 89 an die Speichercontroller 70 und 75 gesendet. Die Querverbindungen 90' und 95' umfassen außerdem Logikgatter um zu erfassen, ob ein Fehlvergleichsfehler zwischen den zwei vom E/A-Modul 100 über den Querverbindungspfad an die Querverbindungen 90' und 95' gesendeten Sätzen von Steuercodes vorliegt und um ERROR-Codes an die Speichercontroller 70' und 75' zu senden.
  • Schließlich liest in dem in Fig. 24E gezeigten Beispiel die DMA-Steuerung 1890 in den Brandmauern 1000 und 1010 im E/A-Modul 100 zu Zeitpunkten, zu denen die DMA-Steuerung aufwärts gerichtet ist, die vom EDC/CRC-Generator 1850 erzeugten EDC/CRC um zu erfassen, ob die von dem E/A-Modul 100 an die Speichercontroller gesendeten DMA- Daten irgendwelche EDC/CRC-Fehler enthalten. Dies geschieht erst nach der letzten Unterübertragung, d. h. nachdem die von der DMA-Zählung spezifizierte Anzahl von Bytes gesendet wurde. Falls die Brandmauern 1000 und 1010 einen CRC-Fehler für die vorangehenden Übertragungen von DMA-Daten erfassen, werden die CRC ERROR-Codes von den Brandmauern 1000 und 1010 in dem E/A-Modul 100 über das Modulverdrahtungspaar 130 und 132 an die Querverbindungen 90 und 95 gesendet. Die Speichercontroller 70 und 75 empfangen die CRC ERROR-Codes von den Querverbindungen 90 und 95 auf den CSUP-Leitungen der Busse 88 und 89. Außerdem werden die CRC ERROR-Codes von den Querverbindungen 90 und 95 über die Querverbindungen 90' und 95' und über die Busse 88' und 89' an die Speichercontroller 70' und 75' gesendet.
  • Es werden nun Datenübertragungen über Schreib- und Lesezylen (-transaktionen) beschrieben. Es wird Bezug auf die Fig. 25A-D genommen, bei denen es sich um Zeitablaufpläne handelt, die die Übertragung von Schreibinformationen (Fig. 25A & 25B) und Leseinformationen (Fig. 25C & 25D) auf den Querverbindungs-/Speichercontrollerbussen 88 und 89 zeigen.
  • In Übereinstimmung mit der Erfindung sendet ein Prozessor Schreib- oder Lesedaten an einen Datenrouter. Zum Beispiel sendet das CPU-Modul 30 Schreibinformationen an die Querverbindungen 90 und 95 der Querverbindungs-/Speichercontrollerbusse 88 und 89.
  • Die Schreib- oder Leseinformationen bezeichnen jeweils eine Schreib- oder Lesetransaktion. In der zweckmäßigen Ausführung werden Schreib- und Leseinformationen durch die Übertragung von Steuercodes von den Speichercontrollern 70 und 75 auf den CSDN-Leitungen der Querverbindungs-/Speichercontrollerbusse 88 und 89 identifiziert. Wie in den Fig. 25A-25D gezeigt, wird von dem CPU-Modul 30 auf den CSDN-Leitungen ein WRITE-Code zur eindeutigen Bezeichnung einer Schreibtransaktion gesendet, während auf den CSDN-Leitungen ein READ-Code zur eindeutigen Bezeichnung einer Lesetransaktion gesendet wird. Eine zuvor diskutierte Einstellungsschreibtransaktion sieht völlig gleich aus wie die in den Fig. 25A und 25B gezeigte Schreibtransaktion, mit Ausnahme dessen, daß auf den CSDN-Leitungen ein SETUP WRITE-Code gesendet wird, um sie von einer Schreibtransaktion zu unterscheiden.
  • In der vorliegenden Erfindung enthalten von dem Prozessor gesendete Schreibinformationen eine Schreibadresse und von dem Prozessor gesendete Leseinformationen eine Leseadresse. Eine Schreibadresse bezeichnet ein Ziel für Schreibdaten, während eine Leseadresse eine Quelle für Lesedaten bezeichnet. Wie hier ausgeführt und in den Fig. 25A-D gezeigt, sind die höchstwertigen Bits in der Schreib- oder Leseadresse in den beim Beginn der Schreib- oder Lesetransaktion auf den Datenleitungen der Querver bindungs-/Speichercontrollerbusse 88 und 89 gesendeten Daten enthalten.
  • Um Schreibdaten in einem Systembetriebsmittel (z. B. im E/A-Modul 100) zu speichern oder um von einem Systembetriebsmittel auf Lesedaten zuzugreifen, muß der Prozessor, der die Schreib- oder Lesetransaktion auslöst, Informationen an das Systembetriebsmittel senden. Jedoch sind die E/A-Module im System 10 nicht direkt mit den CPU-Modulen 30 und 30' verbunden. Statt dessen muß auf die E/A-Module über die Systembetriebsmittelbusse, d. h. über die Modulverdrahtungen 130, 132, 130' und 132' zugegriffen werden.
  • Die Querverbindungen 90, 95, 90' und 95' wirken als Datenrouter, die Pfade einstellen, die spezifische Prozessoren an ein besonderes Systembetriebsmittel koppeln. Jedoch ist eine Schaltlogik erforderlich, da ein Systembetriebsmittel, das die Quelle von Lesedaten oder das Ziel von Schreibdaten ist, entweder mit den Modulverdrahtungen 130 und 132 oder mit den Modulverdrahtungen 130' und 132' gekoppelt sein kann.
  • Nachdem die Schreibinformationen einschließlich einer Schreibadresse, die ein Ziel spezifiziert, z. B. vom Speichercontroller 70 zur Querverbindung 90 gesendet wurden, müssen diese Informationen an das dem Ziel entsprechende Systembetriebsmittel weitergeleitet werden. Falls das Ziel z. B. dem E/A-Modul 100 entspricht, muß die Schaltlogik in der Querverbindung 90 zum Senden von Schreibinformationen vom Speichercontroller 70 an die Modulverdrahtung 130 konfiguriert werden. Falls das Ziel andererseits dem E/A-Modul 100' entspricht, muß die Schaltlogik in der Querverbindung 90 zum Senden von Schreibinformationen vom Speichercontroller 70 über den Querverbindungspfad 25 und über die Querverbindung 90' zur Modulverdrahtung 130' konfiguriert werden.
  • Falls Leseinformationen, die eine Leseadresse enthalten, die eine Quelle spezifiziert, z. B. vom Speichercontroller 70 zur Querverbindung 90 gesendet werden, müssen diese Leseinformationen ähnlich an das der Quelle entsprechende Systembetriebsmittel weitergeleitet werden, um zu ermöglichen, daß der Speichercontroller 70 auf diese Lesedaten zugreift.
  • In Übereinstimmung mit der Erfindung enthält der Datenrouter daher eine Einrichtung zum Decodieren der Lese- oder Schreibadresse während der Transaktion. Die Datenrouter ermitteln, welches Systembetriebsmittel-Buspaar, das Modulverdrahtungspaar 130 und 132 oder das Modulverdrahtungspaar 130' und 132', in die Transaktion einbezogen ist. Außerdem ermitteln die Datenrouter, ob das Ziel (für eine Schreibtransaktion) oder die Quelle (für eine Lesetransaktion) einem mit den Systembetriebsmittelbussen gekoppelten Systembetriebsmittel entspricht.
  • In der in den Fig. 11 und 12 gezeigten zweckmäßigen Ausführung der Erfindung werden Decodierer 971, 996 und 998 bereitgestellt, um die während einer Schreib- oder Lesetransaktion gesendeten Schreib- oder Leseadressen zu decodieren, um die zum Einstellen der Pfade zwischen den Speichercontrollern und einem Paar von Systembetriebsmittelbussen erforderlichen internen Steuersignale zu erzeugen. Fig. 11 zeigt die in die Übertragung von Steuercodes zwischen den CSUP- und CSDN-Leitungen der Querverbindungs-/Speichercontrollerbusse 88 und 89 und der Modulverdrahtungen 130 und 132 einbezogene Schaltlogik in den Querverbindungen 90 und 95. Fig. 12 zeigt die in die Übertragung von Daten wie etwa Schreib- und Leseadressen und Schreib- und Lesedaten zwischen den doppeltgerichte ten Datenleitungen der Querverbindungs-/Speichercontrollerbusse 88 und 89 und der Modulverdrahtungen 130 und 132 einbezogene Schaltlogik in der Querverbindung 90.
  • Wie hier ausgeführt, identifiziert ein Bit in der während der Lese- oder Schreibtransaktion gesendeten Lese- oder Schreibadresse die Zone, in der sich die Quelle oder das Ziel befindet. Im Ergebnis können die Decodierer in der Querverbindung ermitteln, welches Modulverdrahtungspaar von der Transaktion betroffen ist. Falls die Lese- oder Schreibadresse einer Adresse im E/A-Raum des Systems 10 entspricht, können die Decodierer in der Querverbindung außerdem ermitteln, daß die Transaktion ein Systembetriebsmittel, d. h. ein mit einem Modulverdrahtungspaar gekoppeltes E/A-Modul, einbezieht.
  • Als Antwort auf die Auslösung einer Lese- oder Schreibtransaktion wird die Schaltlogik in den Querverbindungen 90, 90', 95 und 95' in Übereinstimmung mit der decodierten Lese- oder Schreibadresse konfiguriert.
  • Wenn das System 10 im Duplexmodus arbeitet, wird die Datenschaltlogik in den Querverbindungen in der Weise konfiguriert, daß sie Daten, d. h. Leseadressen, Schreibadressen oder Schreibdaten an die Systembetriebsmittelbusse 130 und 132 weiterleitet, falls die Transaktion das Systembetriebsmittel-Buspaar 130 und 132 in der Zone 11 einbezieht und falls die Quelle oder das Ziel einem an die Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht. In diesem Beispiel wird ein Pfad konfiguriert, um Daten entweder von der CPU 40 über die Querverbindung 90 oder von der CPU 40' über die Querverbindungen 90' und 90 an die Modulverdrahtung 130 weiterzuleiten und außerdem, um Daten entweder von der CPU 50 über die Querverbindung 95 oder von der CPU 50' über die Querverbindung 95' und 95 an die Modulverdrahtung 132 weiterzuleiten.
  • Die genaue Konfiguration der in den Fig. 11 und 12 gezeigten Schaltlogik zum Einstellen dieses Pfads zu den Modulverdrahtungen 130 und 132 ist oben in der auf ein drittes Beispiel von DMA-Übertragungen bezüglichen Beschreibung, in der DMA-Daten an die Systembetriebsmittelbusse 130 und 132 weitergeleitet werden, beschrieben.
  • Falls die Transaktion das Systembetriebsmittel-Buspaar 130' und 132' in der Zone 11' einbezieht und falls die Quelle oder das Ziel einem an die Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht, wird die Datenschaltlogik in den Querverbindungen in der Weise konfiguriert, daß sie Daten an die Systembetriebsmittelbusse 130' und 132' weiterleitet. In diesem zweiten Beispiel wird ein Pfad zum Weiterleiten von Daten an die Modulverdrahtung 130' entweder von der CPU 40' über die Querverbindung 90' oder von der CPU 40 über die Querverbindungen 90 und 90' und außerdem zum Weiterleiten von Daten an die Modulverdrahtung 132' entweder von der CPU 50' über die Querverbindung 95' oder von der CPU 50 über die Querverbindungen 95 und 95' konfiguriert.
  • Die genaue Konfiguration der in den Fig. 11 und 12 gezeigten Schaltlogik zum Einstellen dieses Pfads zu den Modulverdrahtungen 130' und 132' ist oben in der auf ein viertes Beispiel von DMA-Übertragungen bezüglichen Beschreibung, in der die DMA an die Systembetriebsmittelbusse 130' und 132' weitergeleitet werden, beschrieben.
  • In der zweckmäßigen Ausführung der Erfindung werden die zu Beginn der Transaktion an die Querverbindungen gesendeten Lese- oder Schreibadressen zum Konfigurieren der Schaltlogik benötigt. Im Ergebnis steht zum Decodieren der Adresse, zum Konfigurieren der Schaltlogik und dann zum Weiterleiten dieser gleichen Adresse über die Schaltlogik an die Quelle oder an das Ziel nicht genügend Zeit zur Verfügung.
  • Jedoch muß die durch einen Prozessor am Anfang einer Transaktion bereitgestellte Lese- oder Schreibadresse entsprechend der Quelle oder dem Ziel an das Systembetriebsmittel gesendet werden. Die Leseadresse ist erforderlich, da sie dem Systembetriebsmittel den Zugriff auf Lesedaten von der durch die Leseadresse spezifizierten Quelle gestattet, während die Schreibadresse erforderlich ist, da sie dem Systembetriebsmittel die Speicherung von Schreibdaten in dem durch die Schreibadresse bezeichneten Ziel ermöglicht.
  • Eine Möglichkeit, das System zu verwirklichen, die dazu führen würde, daß die Lese- oder Schreibadressen nach dem Konfigurieren der Schaltlogik zum Weiterleiten verfügbar wären, wäre die Zwischenspeicherung aller in die Querverbindungen eintretenden Daten während eines ausreichend langen Zeitraums zum Konfigurieren der Schaltlogik. Dies würde jedoch erfordern, zum System eine Schaltungsanordnung zum Halten aller von den Prozessoren an die Systembetriebsmittel gesendeten Daten hinzuzufügen. Außerdem würde die Pipeline-Verzögerung zwischen Komponenten in dem System erhöht, wenn nicht außerdem eine andere Logik zum Erkennen und Verzögern nur zu Beginn einer Lese- oder Schreibtransaktion gesendeter Adressen hinzugefügt würde.
  • Im Computersystem 10 werden die Lese- und Schreibadressen von den Prozessoren an die Systembetriebsmittel ohne den Zusatz irgendeiner speziellen Schaltungsanordnung zu den Querverbindungen und ohne Erhöhen der vor dem Empfang von durch einen Prozessor gesendeten Daten in einem E/A-Modul erforderlichen Verzögerung weitergeleitet.
  • In Übereinstimmung mit der Erfindung wird eine Lese- oder Schreibadresse während einer Lese- oder Schreibtransaktion von den Prozessoren zu den Datenroutern zurückgesendet. Wie in den Fig. 25A-D gezeigt, werden dann die höchstwertigen Bits der Lese- oder Schreibadresse, die zu Beginn der Transaktion auf den CSDN-Leitungen der Busse 88 und 89 gesendet werden, auf den CSDN-Leitungen zurückgesendet.
  • Vorausgesetzt, daß die Quelle oder das Ziel einem an ein Systembetriebsmittel-Buspaar gekoppelten Systembetriebsmittel (z. B. einem E/A-Modul) entspricht, wird dann in der vorliegenden Erfindung die von den Prozessoren zurückgesendete Lese- oder Schreibadresse an das richtige, in die Transaktion einbezogene Systembetriebsmittel- Buspaar weitergeleitet. Über die Schaltlogik in den Querverbindungen 90, 95, 90', 95' wird die Adresse an die Modulverdrahtungen 130 und 132 oder an die Modulverdrahtungen 130' und 132' weitergeleitet.
  • Das Zurücksenden der Adresse schafft genügend Zeit, damit die Querverbindungen einen Pfad von spezifischen Prozessoren zu dem der Quelle oder dem Ziel entsprechenden Systembetriebsmittel einstellen können. Im Ergebnis wird die Schaltlogik, wenn die Adresse zurückgesendet wird, zum Leiten der Adresse an das mit dem Systembetriebsmittel gekoppelte Modulverdrahtungspaar konfiguriert.
  • In Übereinstimmung mit der Erfindung senden die Prozessoren nach der Sendung einer Schreibadresse Schreibdaten an die an jeden Prozessor gekoppelten Datenrouter. Die Schaltlogik in den Querverbindungen ist geeignet konfiguriert, so daß diese Schreibdaten daher über die Schaltlogik an das richtige, in die Transaktion einbezogene Systembetriebsmittel-Buspaar weitergeleitet werden. Die Schreibdaten werden von der Schaltlogik in der gleichen Weise weitergeleitet, in der die zurückgesendete Schreibadresse weitergeleitet wird.
  • Wie in den Fig. 25A und 25B gezeigt, werden die Schreibdaten während einer Schreibtransaktion von den Speichercontrollern 70 und 75 auf den doppeltgerichteten Datenleitungen der Busse 88 und 89 bereitgestellt. Das Systembetriebsmittel, das die Schreibadresse und die Schreibdaten empfängt, antwortet mit dem Versuch, die Schreibdaten in dem durch die Schreibadresse bezeichneten Ziel zu speichern.
  • In Übereinstimmung mit der Erfindung wird die Datenschaltlogik in den Datenroutern nach dem Weiterleiten der Leseadresse von der Schaltlogik während einer Lesetransaktion dann in Übereinstimmung mit der von den Datenroutern decodierten Leseadresse neu konfiguriert. Wie in Fig. 12 gezeigt, wird die Datenschaltlogik nach dem abwärts gerichteten Senden der Leseadresse neu konfiguriert, um zu ermöglichen, daß die Lesedaten abwärts gerichtet an die CPU-Module 30 und 30' weitergeleitet werden.
  • Wenn das System 10 im Duplexmodus arbeitet, wird die Datenschaltlogik in den Querverbindungen zum Weiterleiten von Lesedaten von den Systembetriebsmittelbussen 130 und 132 konfiguriert, falls die Transaktion das Systembetriebsmittel-Buspaar 130 und 132 in Zone 11 einbezieht und falls die Quelle einem an die Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht. In diesem Beispiel wird ein Pfad zum Weiterleiten von Lesedaten von der Modulverdrahtung 130 über die Querverbindung 90 an die CPU 40 und über die Querverbindungen 90 und 90' an die CPU 40' und außerdem zum Weiterleiten von Lesedaten von der Modulverdrahtung 132 über die Querver bindung 95 an die CPU 50 und über die Querverbindungen 95 und 95' an die CPU 50' konfiguriert.
  • Die genaue Konfiguration der in Fig. 12 gezeigten Datenschaltlogik zum Einstellen dieses Pfads von den Modulverdrahtungen 130 und 132 ist oben in der Beschreibung in bezug auf ein erstes Beispiel von DMA-Übertragungen, in dem DMA-Daten von den Systembetriebsmittelbussen 130 und 132 weitergeleitet werden, beschrieben.
  • Falls die Transaktion das Systembetriebsmittel-Buspaar 130' und 132' in Zone 11' einbezieht und falls die Quelle einem an die Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht, wird die Datenschaltlogik in den Querverbindungen zum Weiterleiten der Lesedaten von den Systembetriebsmittelbussen 130' und 132' konfiguriert. In diesem zweiten Beispiel wird ein Pfad zum Weiterleiten der Lesedaten von der Modulverdrahtung 130' über die Querverbindung 90' an die CPU 40' und über die Querverbindungen 90 und 90' an die CPU 40 und außerdem zum Weiterleiten der Lesedaten von der Modulverdrahtung 132' über die Querverbindung 95' an die CPU 50' und über die Querverbindungen 95' und 95 an die CPU 50 konfiguriert.
  • Die genaue Konfiguration der in Fig. 12 gezeigten Datenschaltlogik zum Einstellen dieses Pfads von den Modulverdrahtungen 130' und 132' ist oben in der Beschreibung in bezug auf ein zweites Beispiel von DMA-Übertragungen, in dem DMA-Daten von den Systembetriebsmittelbussen 130' und 132' weitergeleitet werden, beschrieben.
  • Als Antwort auf den Empfang der Leseadresse greift ein Systembetriebsmittel auf Lesedaten von der durch die Leseadresse bezeichneten Quelle zu und sendet diese Lesedaten an das an das Systembetriebsmittel gekoppelte Systembetriebsmittel-Buspaar. Nach dem Weiterleiten der Leseadresse wird die Datenschaltlogik in den Querverbindungen neu konfiguriert. Somit werden die Lesedaten im Duplexmodus durch jede Querverbindung empfangen und über die Schaltlogik an jeden Prozessor weitergeleitet.
  • Als Antwort auf das Auslösen einer Lesetransaktion werden Lesedaten, wie in Fig. 25C gezeigt, von den Querverbindungen 90, 95, 90' und 95' auf den doppeltgerichteten Datenleitungen der Busse 88, 89, 88' und 89' an die Speichercontroller 70, 75, 70' und 75' gesendet. Im Ergebnis können die CPUs 40, 50, 40' und 50' in den CPU- Modulen 30 und 30' auf die in der durch die Leseadresse bezeichneten Quelle angeordneten Lesedaten zugreifen. Wie in den Fig. 25A und 25C gezeigt, wird auf den CSUP- Leitungen der Modulverdrahtungen 130, 132, 130' und 132' und auf den CSUP-Leitungen der Busse 88, 89, 88' und 89' als Antwort auf das Senden einer Schreibadresse und von Schreibdaten oder einer Leseadresse an eines der Systembetriebsmittel (z. B. an das E/A-Modul 100) zweckmäßig ein Quittungscode an jeden Prozessor gesendet. Um die erfolgreiche Sendung der Schreibadresse und der Schreibdaten oder der Leseadresse anzugeben, sendet das Systembetriebsmittel, das die Lese- oder Schreibinformationen von den Prozessoren empfängt, an jeden Prozessor einen ACK-Steuercode.
  • Falls z. B. das E/A-Modul 100 die Schreibadresse und die Schreibdaten oder die Leseadresse empfängt, senden die Brandmauern 1000 und 1010 im E/A-Modul 100 über das Modulverdrahtungspaar 130 und 132 einen ACK-Steuercode an die Querverbindungen 90 und 95 um anzugeben, daß die Brandmauern 1000 und 1010 in der abwärts gerichteten Datensendung von den Prozessoren keinen Fehler erfaßt haben. Die Speichercontroller 70 und 75 im CPU-Modul 30 empfangen auf den einfachgerichteten Steuerleitungen CSUP der Busse 88 und 89 die ACK-Codes von den Querverbindungen 90 und 95. Außerdem werden die ACK-Codes von den Querverbindungen 90 und 95 über die Querverbindungen 90' und 95' und über die Busse 88' und 89' an die Speichercontroller 70' und 75' im CPU-Modul 30' gesendet.
  • Wie in den Fig. 25B und 25D gezeigt, wird als Antwort auf die Sendung einer Schreibadresse und von Schreibdaten oder einer Leseadresse an ein Systembetriebsmittel (z. B. an das E/A-Modul 100) auf den CSUP-Leitungen der Modulverdrahtungen 130, 132, 130' und 132' und auf den CSUP- Leitungen 88, 89, 88' und 89' zweckmäßig ein Fehlercode an jeden Prozessor gesendet. Um die erfolglose Übertragung der Schreibadresse und von Schreibdaten oder der Leseadresse anzugeben, sendet das Systembetriebsmittel, das Lese- oder Schreibinformationen von den Prozessoren empfängt, an jeden Prozessor einen ERROR-Steuercode.
  • Falls das E/A-Modul 100 die Schreibadresse und die Schreibdaten oder die Leseadresse empfängt, senden die Brandmauern 1000 und 1010 im E/A-Modul 100 als ein weiteres Beispiel einen ERROR-Steuercode über das Modulverdrahtungspaar 130 und 132 an die Querverbindungen 90 und 95 um anzugeben, daß die Brandmauern 1000 und 1010 in der abwärts gerichteten Datensendung von den Prozessoren einen Fehler erfaßt haben. In der zweckmäßigen Ausführung des Systems 10 gibt der ERROR-Steuercode an, daß die Brandmauern 1000 und 1010 im Ergebnis des Vergleichs der von einem CPU-Modul an die Modulverdrahtung 130 gesendeten Daten mit den von dem anderen CPU-Modul an die Modulverdrahtung 132 gesendeten Daten einen Fehlvergleichsfehler erfaßt haben. Im CPU-Modul 30 empfangen die Speichercontroller 70 und 75 die ERROR-Steuercodes von den Querverbindungen 90 und 95 auf den einfachgerichteten Steuerleitungen CSUP der Busse 88 und 89. Außerdem werden die ERROR-Steuercodes von den Querverbindungen 90 und 95 über die Querverbindungen 90' und 95' und über die Busse 88' und 89' an die Speichercontroller 70' und 75' im CPU- Modul 30' gesendet.
  • Verschiedene Modifizierungen und Abwandlungen in dem Datenübertragungsprotokoll der vorliegenden Erfindung, die nicht vom Umfang der Erfindung abweichen, sind für den Fachmann auf dem Gebiet offensichtlich. Somit besteht die Absicht, daß die vorliegende Erfindung ihre Modifizierungen und Abwandlungen umfaßt, soweit diese in dem Umfang der beigefügten Ansprüche und deren Entsprechungen liegen.

Claims (4)

1. Prozeß zum Übertragen von Daten zwischen Komponenten in einem Computersystem, wobei das Computersystem einen Prozessor (20, 20'), einen Systembetriebsmittelbus (85), der mit einem Systembetriebsmittel gekoppelt ist, und einen Datenrouter (90, 95) enthält, wobei der Datenrouter eine Datenschaltlogik zum Koppeln des Prozessors mit dem Systembetriebsmittelbus enthält und wobei der Prozeß die folgenden Schritte enthält:
Senden von Schreibinformationen, die eine Schreibtransaktion angeben, vom Prozessor zu dem mit dem Prozessor gekoppelten Datenrouter, wobei die Schreibinformationen eine Schreibadresse enthalten und wobei die Schreibadresse ein Ziel für die Schreibdaten angibt;
Decodieren der Schreibadresse im Datenrouter während der Schreibtransaktion, um zu ermitteln, ob die Schreibtransaktion den Systembetriebsmittelbus einbezieht, und um zu ermitteln, ob das Ziel einem mit dem Systembetriebsmittelbus gekoppelten Systembetriebsmittel entspricht;
Konfigurieren der Datenschaltlogik in dem Datenrouter während der Schreibtransaktion in Übereinstimmung mit der von dem Datenrouter decodierten Schreibadresse;
wobei die Datenschaltlogik so konfiguriert ist, daß sie Daten an den Sytembetriebsmittelbus zu Zeitpunkten weiterleitet, zu denen die Schreibtransaktion den Systembetriebsmittelbus einbezieht und das Ziel einem mit dem Systembetriebsmittelbus gekoppelten Systembetriebsmittel entspricht;
Zurücksenden der Schreibadresse während der Schreibtransaktion vom Prozessor zum Datenrouter;
Weiterleiten der während der Schreibtransaktion zurückgesendeten Schreibadresse über die Datenschaltlogik im Datenrouter zum Systembetriebsmittelbus zu Zeitpunkten, zu denen die Schreibtransaktion den Systembetriebsmittelbus einbezieht und das Ziel einem mit dem Systembetriebsmittelbus gekoppelten Systembetriebsmittel entspricht, um die Speicherung der Schreibdaten in dem durch die Schreibadresse bezeichneten Ziel freizugeben;
Senden von Schreibdaten während der Schreibtransaktion nach dem Senden der Schreibadresse vom Prozessor zum Datenrouter; und
Weiterleiten der während der Schreibtransaktion gesendeten Schreibdaten über die Datenschaltlogik im Datenrouter an den Systembetriebsmittelbus zu Zeitpunkten, zu denen die Schreibtransaktion den Systembetriebsmittelbus einbezieht und das Ziel einem mit dem Systembetriebsmittelbus gekoppelten Systembetriebsmittel entspricht, um die Speicherung der Schreibdaten in dem durch die Schreibadresse bezeichneten Ziel freizugeben.
2. Prozeß zum Übertragen von Daten zwischen Komponenten in einem Computersystem, wobei das Computersystem einen Prozessor (40), einen ersten Systembetriebsmittelbus (80), der mit einem Systembetriebsmittel gekoppelt ist, einen zweiten Systembetriebsmittelbus (82), der mit einem weiteren Systembetriebsmittel gekoppelt ist, sowie einen Datenrouter (90, 95) enthält, wobei der Datenrouter eine Datenschaltlogik (70, 75) zum Koppeln des Prozessors mit dem ersten Systembetriebsmittelbus oder mit dem zweiten Systembetriebsmittelbus enthält, und wobei der Prozeß die folgenden Schritte enthält:
Senden von Schreibinformationen, die eine Schreibtransaktion bezeichnen, von dem Prozessor zu dem mit dem Prozessor gekoppelten Datenrouter, wobei die Schreibinformationen eine Schreibadresse enthalten und wobei die Schreibadresse ein Ziel für Schreibdaten bezeichnet;
Decodieren der Schreibadresse in dem Datenrouter während der Schreibtransaktion, um zu ermitteln, welchen Systembetriebsmittelbus die Schreibtransaktion einbezieht, und um zu ermitteln, ob das Ziel einem mit einem der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht;
Konfigurieren der Datenschaltlogik in dem Datenrouter während der Schreibtransaktion in Übereinstimmung mit der von dem Datenrouter decodierten Schreibadresse;
wobei die Datenschaltlogik so konfiguriert ist, daß sie Daten an den ersten Systembetriebsmittelbus zu Zeitpunkten weiterleitet, zu denen die Schreibtransaktion den ersten Systembetriebsmittelbus einbezieht und das Ziel einem mit einem der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht; und
wobei die Datenschaltlogik so konfiguriert ist, daß sie Daten zum zweiten Systembetriebsmittelbus zu Zeitpunkten weiterleitet, zu denen die Schreibtransaktion den zweiten Systembetriebsmittelbus einbezieht und das Ziel einem mit einem der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht;
Zurücksenden der Schreibadresse während der Schreibtransaktion vom Prozessor zum Datenrouter;
Weiterleiten der während der Schreibtransaktion zurückgesendeten Schreibadresse über die Datenschaltlogik im Datenrouter an einen ersten Systembetriebsmittelbus zu Zeitpunkten, zu denen die Schreibtransaktion den ersten 1 Systembetriebsmittelbus einbezieht und das Ziel einem mit einem der Systembetriebsmittel gekoppelten Systembetriebsmittel entspricht, oder an den zweiten Systembetriebsmittelbus zu Zeitpunkten, zu denen die Schreibtransaktion den zweiten Systembetriebsmittelbus einbezieht und das Ziel einem mit einem der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht, um die Speicherung von Schreibdaten in dem durch die Schreibadresse bezeichneten Ziel freizugeben;
Senden von Schreibdaten während der Schreibtransaktion nach dem Senden der Schreibadresse vom Prozessor zum Datenrouter; und
Weiterleiten der während der Schreibtransaktion gesendeten Schreibdaten über die Datenschaltlogik im Datenrouter an den ersten Systembetriebsmittelbus zu Zeitpunkten, zu denen die Schreibtransaktion den ersten Systembetriebsmittelbus einbezieht und das Ziel einem mit einem der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht, oder an den zweiten Systembetriebsmittelbus zu Zeitpunkten, zu denen die Schreibtransaktion den zweiten Systembetriebsmittelbus einbezieht und das Ziel einem der mit einem der Systembetriebsmittelbusse gekoppelten Betriebsmittel entspricht, um die Speicherung der Schreibdaten in dem durch die Schreibadresse bezeichneten Ziel freizugeben.
3. Prozeß zum Übertragen von Daten zwischen Komponenten in einem Computersystem, wobei das Computersystem einen ersten Prozessor (40), einen zweiten Prozessor (50), einen ersten Systembetriebsmittelbus (80), der mit einem Systembetriebsmittel gekoppelt ist, einem zweiten Systembetriebsmittelbus (82), der mit einem weiteren Systembetriebsmittel gekoppelt ist, einen ersten Datenrouter (90), der mit dem ersten Prozessor und mit dem ersten Systembetriebsmittelbus gekoppelt ist, sowie einen zweiten Datenrouter (95) enthält, der mit dem zweiten Prozessor und mit dem zweiten Systembetriebsmittelbus gekoppelt ist, wobei jeder der Datenrouter eine Datenschaltlogik enthält, wobei der erste Datenrouter mit dem zweiten Systembetriebsmittelbus über die Datenschaltlogik im zweiten Datenrouter gekoppelt ist und der zweite Datenrouter mit dem ersten Systembetriebsmittelbus über die Datenschaltlogik im ersten Datenrouter gekoppelt ist und wobei der Prozeß die folgenden Schritte enthält:
Senden derselben Schreibinformationen, die eine Schreibtransaktion bezeichnen, von jedem der Prozessoren an den mit jedem Prozessor gekoppelten Datenrouter, wobei die Schreibinformationen eine Schreibadresse enthalten und wobei die Schreibadresse ein Ziel für Schreibdaten bezeichnet
Decodieren der Schreibadresse im ersten und im zweiten Datenrouter während der Schreibtransaktion, um zu ermitteln, welchen Systembetriebsmittelbus die Schreibtransaktion einbezieht, und um zu ermitteln, ob das Ziel einem mit einem der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht;
Konfigurieren der Datenschaltlogik im ersten und im zweiten Datenrouter während der Schreibtransaktion in Übereinstimmung mit der Schreibadresse, die vom ersten bzw. vom zweiten Datenrouter decodiert wird;
wobei die Datenschaltlogik so konfiguriert ist, daß sie Daten vom ersten Prozessor über die Datenschaltlogik im ersten Datenrouter und vom zweiten Prozessor über die Datenschaltlogik im zweiten und im ersten Datenrouter zum ersten Systembetriebsmittelbus zu Zeitpunkten weiterleitet, zu denen die Schreibtransaktion den ersten Systembetriebsmittelbus einbezieht und das Ziel einem mit einem der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht; und
wobei die Datenschaltlogik so konfiguriert ist, daß sie Daten vom ersten Prozessor über die Datenschaltlogik im ersten und im zweiten Datenrouter und vom zweiten Prozessor über die Datenschaltlogik im zweiten Datenrouter an den zweiten Systembetriebsmittelbus zu Zeitpunkten weiterleitet, zu denen die Schreibtransaktion den zweiten Systembetriebsmittelbus einbezieht und das Ziel einem mit einem der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht;
Zurücksenden derselben Schreibadresse während der Schreibtransaktion von jedem der Prozessoren zu dem mit jedem Prozessor gekoppelten Datenrouter;
Weiterleiten der während der Schreibtransaktion zurückgesendeten Schreibadresse über die Datenschaltlogik im ersten und im zweiten Datenrouter an den ersten Systembetriebsmittelbus zu Zeitpunkten, zu denen die Schreibtransaktion den ersten Systembetriebsmittelbus einbezieht und das Ziel einem mit einem der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht, oder an den zweiten Systembetriebsmittelbus zu Zeitpunkten, zu denen die Schreibtransaktion den zweiten Systembetriebsmittelbus einbezieht und das Ziel einem mit einem der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht, um die Speicherung von Schreibdaten in dem durch die Schreibadresse bezeichneten Ziel freizugeben;
Senden derselben Schreibdaten während der Schreibtransaktion nach dem Senden der Schreibadresse von jedem der Prozessoren zu dem mit jedem Prozessor gekoppelten Datenrouter; und
Weiterleiten der Schreibdaten, die während der Schreibtransaktion gesendet werden, über die Datenschaltlogik im ersten Datenrouter und im zweiten Datenrouter an den ersten Systembetriebsmittelbus zu Zeitpunkten, zu denen die Schreibtransaktion den ersten Systembetriebsmittelbus einbezieht und das Ziel einem mit einem der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht, oder an den zweiten Systembetriebsmittelbus zu Zeitpunkten, zu denen die Schreibtransaktion den zweiten Systembetriebsmittelbus einbezieht und das Ziel einem mit einem der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht, um die Speicherung der Schreibdaten in dem durch die Schreibadresse bezeichneten Ziel freizugeben.
4. Prozeß zum Übertragen von Daten zwischen Komponenten in einem Computersystem, wobei das Computersystem einen ersten primären Prozessor (40), einen ersten Spiegelprozessor (40'), einen zweiten primären Prozessor (50), einen zweiten Spiegelprozessor (50'), einen ersten primären Systembetriebsmittelbus (80) und einen ersten Spiegelsystembetriebsmittelbus (80'), der mit einem ersten Systembetriebsmittel gekoppelt ist, einem zweiten primären Systembetriebsmittelbus (82) und einen zweiten Spiegelsystembetriebsmittelbus (82'), der mit einem zweiten Systembetriebsmittel gekoppelt ist, einen ersten primären Datenrouter (90), der mit dem ersten primären Prozessor (40) und mit dem ersten primären Systembetriebsmittelbus (80) gekoppelt ist, einen ersten Spiegeldatenrouter (90'), der mit dem ersten Spiegelprozessor (40') und mit dem ersten Spiegelsystembetriebsmittelbus (80') gekoppelt ist, einen zweiten primären Datenrouter (95), der mit dem zweiten primären Prozessor (50) und mit dem zweiten primären Systembetriebsmittelbus (82) gekoppelt ist, einen zweiten Spiegeldatenrouter (95'), der mit dem zweiten Spiegelprozessor (50') und mit dem zweiten Spiegelsystembetriebsmittelbus (82') gekoppelt ist, wobei jeder der Datenrouter eine Datenschaltlogik zum Koppeln der Prozessoren (40, 50, 40', 50') mit den Systembetriebsmittelbussen (80, 82, 80', 82') enthält, wobei der erste primäre Datenrouter (90) mit dem zweiten Systembetriebsmittelbus (82) über die Datenschaltlogik im zweiten primären Datenrouter (95) gekoppelt ist und der zweite primäre Datenrouter (95) mit dem ersten primären Systembetriebsmittelbus (80) über die Datenschaltlogik im ersten primären Datenrouter (90) gekoppelt ist und wobei der Prozeß die folgenden Schritte enthält:
Senden derselben Schreibinformationen, die eine Schreibtransaktion bezeichnen, von jedem der Prozessoren an den mit jedem Prozessor gekoppelten Datenrouter, wobei die Schreibinformationen eine Schreibadresse enthalten und wobei die Schreibadresse ein Ziel für die Schreibdaten bezeichnet;
Decodieren der Schreibadresse im ersten und im zweiten primären Datenrouter während der Schreibtransaktion, um zu ermitteln, welches Paar von Systembetriebsmittelbussen die Schreibtransaktion einbezieht, und um zu ermitteln, ob das Ziel einem Systembetriebsmittel entspricht, das mit einem Paar der Systembetriebsmittelbusse gekoppelt ist;
Konfigurieren der Datenschaltlogik im ersten und im zweiten primären Datenrouter während der Schreibtransaktion in Übereinstimmung mit der vom ersten bzw. vom zweiten primären Datenrouter decodierten Schreibadresse;
wobei die Datenschaltlogik so konfiguriert ist, daß sie Daten vom ersten Prozessor (40) über die Datenschaltlogik in einem der ersten Datenrouter (90, 90') und vom zweiten Prozessor (50) über die Datenschaltlogik in einem der zweiten Datenrouter (95, 95') und im anderen ersten Datenrouter (90, 90') an das Paar von ersten Systembetriebsmittelbussen (80, 80') zu Zeitpunkten weiterleitet, zu denen die Schreibtransaktion das Paar von ersten Systembetriebsmittelbussen (80, 80') einbezieht und das Ziel einem mit einem Paar der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht; und
wobei die Datenschaltlogik so konfiguriert ist, daß sie Daten vom ersten Prozessor (40) über die Datenschaltlogik in einem der ersten Datenrouter (90, 90') und einem der zweiten Datenrouter (95, 95') und vom zweiten Prozessor (50) über die Datenschaltlogik im anderen zweiten Datenrouter (95, 95') an das Paar von zweiten Systembetriebsmitteln (82, 82') zu Zeitpunkten weiterleitet, zu denen die Schreibtransaktion das Paar von zweiten Systembetriebsmittelbussen (82, 82') einbezieht und das Ziel einem mit einem Paar der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht;
Zurücksenden derselben Schreibadresse während der Schreibtransaktion von jedem der Prozessoren zu dem mit jedem Prozessor gekoppelten Datenrouter;
Weiterleiten der Schreibadresse, die während der Schreibtransaktion zurückgesendet wird, über die Datenschaltlogik im ersten und im zweiten primären Datenrouter (90, 95) an das Paar von ersten Systembetriebsmittelbussen (80, 80') zu Zeitpunkten, zu denen die Schreibtransaktion das Paar von ersten Systembetriebsmittelbussen (80, 80') einbezieht und das Ziel einem mit einem Paar der Systembetriebsmittelbusse gekoppelten Systembetriebsmittel entspricht, oder an das Paar von zweiten Systembetriebsmittelbussen (82, 82') zu Zeitpunkten weiterleitet, zu denen die Schreibtransaktion das Paar von zweiten Systembetriebsmittelbussen einbezieht und das Ziel einem mit einem Paar der zweiten Betriebsmittelbusse gekoppelten Systembetriebsmittel entspricht, um die Speicherung von Schreibdaten in dem durch die Schreibadresse bezeichneten Ziel freizugeben;
Senden derselben Schreibdaten während der Schreibtransaktion nach dem Senden der Schreibadresse von jedem der Prozessoren zu dem mit jedem Prozessor gekoppelten Datenrouter; und
Weiterleiten der während der Schreibtransaktion gesendeten Schreibdaten über die Datenschaltlogik im ersten und im zweiten primären Datenrouter an das Paar von ersten Systembetriebsmittelbussen (80, 80') zu Zeitpunkten, zu denen die Schreibtransaktion das Paar von ersten Systembetriebsmittelbussen (80, 80') einbezieht und das Ziel einem mit einem Paar von Systembetriebsmittelbussen gekoppelten Systembetriebsmittel entspricht, oder an das Paar von zweiten Systembetriebsmittelbussen (82, 82') zu Zeitpunkten, zu denen die Schreibtransaktion das Paar von zweiten Systembetriebsmittelbussen einbezieht und das Ziel einem mit einem Paar der zweiten Systembetriebsmittelbusse gekoppelten Systembetriebsmit tel entspricht, um die Speicherung der Schreibdaten in dem durch die Schreibadresse bezeichneten Ziel freizugeben.
DE69032708T 1989-08-01 1990-07-20 Protokoll für Lese- und Schreibübertragungen Expired - Fee Related DE69032708T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/388,029 US5163138A (en) 1989-08-01 1989-08-01 Protocol for read write transfers via switching logic by transmitting and retransmitting an address

Publications (2)

Publication Number Publication Date
DE69032708D1 DE69032708D1 (de) 1998-11-26
DE69032708T2 true DE69032708T2 (de) 1999-04-29

Family

ID=23532336

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69032708T Expired - Fee Related DE69032708T2 (de) 1989-08-01 1990-07-20 Protokoll für Lese- und Schreibübertragungen

Country Status (6)

Country Link
US (1) US5163138A (de)
EP (1) EP0415552B1 (de)
JP (1) JPH03182957A (de)
AT (1) ATE172558T1 (de)
CA (1) CA2022230A1 (de)
DE (1) DE69032708T2 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3917715A1 (de) * 1989-05-31 1990-12-06 Teldix Gmbh Rechnersystem
US5920704A (en) * 1991-03-29 1999-07-06 International Business Machines Corporation Dynamic routing switch apparatus with clocked signal regeneration
CA2075774C (en) * 1991-08-27 2000-10-17 Jeff D. Pipkins Bidirectional parallel protocol
JPH05324544A (ja) * 1992-05-15 1993-12-07 Hitachi Ltd バス制御方法
CA2097564C (en) * 1992-06-16 2004-05-25 David L. Phillips Method of coupling open systems to a proprietary network
US5825774A (en) * 1995-07-12 1998-10-20 3Com Corporation Packet characterization using code vectors
US5748633A (en) * 1995-07-12 1998-05-05 3Com Corporation Method and apparatus for the concurrent reception and transmission of packets in a communications internetworking device
US5812775A (en) * 1995-07-12 1998-09-22 3Com Corporation Method and apparatus for internetworking buffer management
US5796944A (en) * 1995-07-12 1998-08-18 3Com Corporation Apparatus and method for processing data frames in an internetworking device
US5651002A (en) * 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory
US5815571A (en) * 1996-10-28 1998-09-29 Finley; Phillip Scott Computer system with secured data paths and method of protection
US7096358B2 (en) 1998-05-07 2006-08-22 Maz Technologies, Inc. Encrypting file system
US6516371B1 (en) * 1999-05-27 2003-02-04 Advanced Micro Devices, Inc. Network interface device for accessing data stored in buffer memory locations defined by programmable read pointer information
EP2035948B1 (de) * 2006-06-27 2016-04-13 Waterfall Security Solutions Ltd. Unidirektionale sichere verbindungen zu und von einem sicherheitsengines
IL180020A (en) * 2006-12-12 2013-03-24 Waterfall Security Solutions Ltd Encryption -and decryption-enabled interfaces
IL180748A (en) * 2007-01-16 2013-03-24 Waterfall Security Solutions Ltd Secure archive
US9635037B2 (en) 2012-09-06 2017-04-25 Waterfall Security Solutions Ltd. Remote control of secure installations
US9983953B2 (en) * 2012-12-20 2018-05-29 Intel Corporation Multiple computer system processing write data outside of checkpointing
US9419975B2 (en) 2013-04-22 2016-08-16 Waterfall Security Solutions Ltd. Bi-directional communication over a one-way link
IL235175A (en) 2014-10-19 2017-08-31 Frenkel Lior Secure desktop remote control
IL250010B (en) 2016-02-14 2020-04-30 Waterfall Security Solutions Ltd Secure connection with protected facilities
FR3091363B1 (fr) * 2018-12-27 2021-08-06 Kalray Système de synchronisation inter-processeurs configurable

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT285689B (de) * 1968-03-29 1970-11-10 Siemens Ag Zentralgesteuerte Vermittlungsanlage der Fernmelde-, insbesondere Fernsprechtechnik
US3665173A (en) * 1968-09-03 1972-05-23 Ibm Triple modular redundancy/sparing
US3864670A (en) * 1970-09-30 1975-02-04 Yokogawa Electric Works Ltd Dual computer system with signal exchange system
SE347826B (de) * 1970-11-20 1972-08-14 Ericsson Telefon Ab L M
FR2182259A5 (de) * 1972-04-24 1973-12-07 Cii
US3898621A (en) * 1973-04-06 1975-08-05 Gte Automatic Electric Lab Inc Data processor system diagnostic arrangement
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
US4031372A (en) * 1973-11-06 1977-06-21 Westinghouse Electric Corporation System for manually or automatically transferring control between computers without power generation disturbance in an electric power plant or steam turbine operated by a multiple computer control system
CH623669A5 (de) * 1973-11-14 1981-06-15 Agie Ag Ind Elektronik
US3873819A (en) * 1973-12-10 1975-03-25 Honeywell Inf Systems Apparatus and method for fault-condition signal processing
IT1014277B (it) * 1974-06-03 1977-04-20 Cselt Centro Studi Lab Telecom Sistema di controllo di elaboratori di processo operanti in parallelo
US4313160A (en) * 1976-08-17 1982-01-26 Computer Automation, Inc. Distributed input/output controller system
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4099234A (en) * 1976-11-15 1978-07-04 Honeywell Information Systems Inc. Input/output processing system utilizing locked processors
SE397013B (sv) * 1976-12-17 1977-10-10 Ellemtel Utvecklings Ab Sett och anordning for att overfora datainformationer till tva parallellt arbetande datamaskindelar
US4358823A (en) * 1977-03-25 1982-11-09 Trw, Inc. Double redundant processor
US4141066A (en) * 1977-09-13 1979-02-20 Honeywell Inc. Process control system with backup process controller
US4153318A (en) * 1977-10-17 1979-05-08 Square D Company Bus stab for panelboard assembly
JPS6016664B2 (ja) * 1977-10-28 1985-04-26 豊田工機株式会社 デ−タ転送装置
US4403282A (en) * 1978-01-23 1983-09-06 Data General Corporation Data processing system using a high speed data channel for providing direct memory access for block data transfers
DE2813383A1 (de) * 1978-03-28 1979-10-11 Siemens Ag Datensende/-empfangs-einrichtung mit parallel/seriell- und seriell/parallel- zeichen-umsetzung, insbesondere zum datenaustausch zwischen kommunizierenden datenverarbeitungsanlagen
GB2019622B (en) * 1978-04-14 1982-04-07 Lucas Industries Ltd Digital computing apparatus
US4200226A (en) * 1978-07-12 1980-04-29 Euteco S.P.A. Parallel multiprocessing system for an industrial plant
US4270168A (en) * 1978-08-31 1981-05-26 United Technologies Corporation Selective disablement in fail-operational, fail-safe multi-computer control system
US4268902A (en) * 1978-10-23 1981-05-19 International Business Machines Corporation Maintenance interface for a service processor-central processing unit computer system
US4495571A (en) * 1979-01-31 1985-01-22 Honeywell Information Systems Inc. Data processing system having synchronous bus wait/retry cycle
JPS55106976A (en) * 1979-02-02 1980-08-16 Hitachi Ltd Controller for elevator
US4245344A (en) * 1979-04-02 1981-01-13 Rockwell International Corporation Processing system with dual buses
US4253147A (en) * 1979-04-09 1981-02-24 Rockwell International Corporation Memory unit with pipelined cycle of operations
US4377843A (en) * 1979-04-19 1983-03-22 Wescom Switching, Inc. Data distribution interface
DE2920994A1 (de) * 1979-05-23 1980-11-27 Siemens Ag Datensende/-empfangseinrichtung mit parallel/seriell- und seriell/parallel- zeichenumsetzung, insbesondere zum datenaustausch zwischen kommunizierenden datenverarbeitungsanlagen
US4428044A (en) * 1979-09-20 1984-01-24 Bell Telephone Laboratories, Incorporated Peripheral unit controller
DE3003291C2 (de) * 1980-01-30 1983-02-24 Siemens AG, 1000 Berlin und 8000 München Zweikanalige Datenverarbeitungsanordnung für Eisenbahnsicherungszwecke
US4356546A (en) * 1980-02-05 1982-10-26 The Bendix Corporation Fault-tolerant multi-computer system
FR2477809B1 (fr) * 1980-03-10 1987-08-21 Jeumont Schneider Systeme de transmission rapide de messages entre calculateurs
US4365293A (en) * 1980-03-28 1982-12-21 Pitney Bowes Inc. Serial communications bus for remote terminals
US4371754A (en) * 1980-11-19 1983-02-01 Rockwell International Corporation Automatic fault recovery system for a multiple processor telecommunications switching control
US4418343A (en) * 1981-02-19 1983-11-29 Honeywell Information Systems Inc. CRT Refresh memory system
US4424565A (en) * 1981-06-22 1984-01-03 Bell Telephone Laboratories, Incorporated Channel interface circuit with high speed data message header field translation and direct memory access
US4456957A (en) * 1981-09-28 1984-06-26 Ncr Corporation Apparatus using a decision table for routing data among terminals and a host system
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
JPS5892025A (ja) * 1981-11-26 1983-06-01 Hitachi Ltd デ−タ処理方式
IT1151351B (it) * 1982-01-19 1986-12-17 Italtel Spa Disposizione circuitale atta a realizzare lo scambio di dati tra una coppia di elaboratori operanti secondo il principio master-slave
US4574284A (en) * 1983-01-26 1986-03-04 Trw Inc. Communication bus interface unit
US4541094A (en) * 1983-03-21 1985-09-10 Sequoia Systems, Inc. Self-checking computer circuitry
US4602327A (en) * 1983-07-28 1986-07-22 Motorola, Inc. Bus master capable of relinquishing bus on request and retrying bus cycle
US4649533A (en) * 1983-10-25 1987-03-10 Keycom Electronic Publishing Method and apparatus for retrieving remotely located information
US4610013A (en) * 1983-11-08 1986-09-02 Avco Corporation Remote multiplexer terminal with redundant central processor units
US4569017A (en) * 1983-12-22 1986-02-04 Gte Automatic Electric Incorporated Duplex central processing unit synchronization circuit
DE3486257T2 (de) * 1984-01-09 1994-04-21 Hitachi Ltd Synchrones dezentralisiertes Verarbeitungssystem.
US4589066A (en) * 1984-05-31 1986-05-13 General Electric Company Fault tolerant, frame synchronization for multiple processor systems
US4768145A (en) * 1984-11-28 1988-08-30 Hewlett-Packard Company Bus system
US4751702A (en) * 1986-02-10 1988-06-14 International Business Machines Corporation Improving availability of a restartable staged storage data base system that uses logging facilities
JPH0690682B2 (ja) * 1987-02-28 1994-11-14 日本電気株式会社 マルチプロセツサシステムの障害処理方式
EP0306244B1 (de) * 1987-09-04 1995-06-21 Digital Equipment Corporation Fehlertolerantes Rechnersystem mit Fehler-Eingrenzung
US4916704A (en) * 1987-09-04 1990-04-10 Digital Equipment Corporation Interface of non-fault tolerant components to fault tolerant system
CA1320276C (en) * 1987-09-04 1993-07-13 William F. Bruckert Dual rail processors with error checking on i/o reads
EP0306211A3 (de) * 1987-09-04 1990-09-26 Digital Equipment Corporation Synchronisiertes Doppelrechnersystem

Also Published As

Publication number Publication date
EP0415552B1 (de) 1998-10-21
JPH03182957A (ja) 1991-08-08
US5163138A (en) 1992-11-10
CA2022230A1 (en) 1991-02-02
EP0415552A3 (en) 1993-07-14
EP0415552A2 (de) 1991-03-06
DE69032708D1 (de) 1998-11-26
ATE172558T1 (de) 1998-11-15

Similar Documents

Publication Publication Date Title
DE69032708T2 (de) Protokoll für Lese- und Schreibübertragungen
US5185877A (en) Protocol for transfer of DMA data
DE69424565T2 (de) Fehler-betriebssichere/fehler tolerante computerbetriebsmethode
US5068780A (en) Method and apparatus for controlling initiation of bootstrap loading of an operating system in a computer system having first and second discrete computing zones
DE69708881T2 (de) Dreifach redundantes modulares rechnersystem
US5068851A (en) Apparatus and method for documenting faults in computing modules
US5153881A (en) Method of handling errors in software
DE3587361T2 (de) Wartungssubsystem fuer rechnernetzwerk.
DE69322068T2 (de) Phasenkomparator
DE69231452T2 (de) Fehlertolerantes Rechnersystem mit Verarbeitungseinheiten die je mindestens drei Rechnereinheiten haben
DE60214234T2 (de) Verfahren und apparate zum implementieren einer glasfaservermittlungseinheit mit hoher verfügbarkeit
DE69227956T2 (de) Multiprozessorsystem mit gespiegeltem Speicher
DE69226606T2 (de) Speicherschaltung mit zwei Betriebsarten
US5251227A (en) Targeted resets in a data processor including a trace memory to store transactions
US5048022A (en) Memory device with transfer of ECC signals on time division multiplexed bidirectional lines
DE69308868T2 (de) Duplizierte steuer- und verarbeitungseinheit für telekommunikationsanlage
US5065312A (en) Method of converting unique data to system data
DE19539519A1 (de) Antriebssteuerbefehlseinheit, Synchronsteuersystem für eine Vielzahl von Antriebssteuerbefehlseinheiten, und Synchronsteuerverfahren für die Einheiten
JPH01154240A (ja) 単一レールインターフェイスにエラーチェック機能を有する二重レールプロセッサ
DE4233569A1 (de) Informationsverarbeitungsgeraet
DE69223990T2 (de) Auch gegen mehrfachfehler sicherer, fehlertoleranter taktgeber
DE69908717T2 (de) Pseudolockstep-Datenverarbeitungssystem
DE19900251B4 (de) Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals
DE69032865T2 (de) Gezielte Rücksetzungen in einem Datenprozessor
EP0411805B1 (de) Massenspeicherübertragung während der Neusynchronisierung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee