DE69032865T2 - Gezielte Rücksetzungen in einem Datenprozessor - Google Patents
Gezielte Rücksetzungen in einem DatenprozessorInfo
- Publication number
- DE69032865T2 DE69032865T2 DE69032865T DE69032865T DE69032865T2 DE 69032865 T2 DE69032865 T2 DE 69032865T2 DE 69032865 T DE69032865 T DE 69032865T DE 69032865 T DE69032865 T DE 69032865T DE 69032865 T2 DE69032865 T2 DE 69032865T2
- Authority
- DE
- Germany
- Prior art keywords
- reset
- data
- memory
- signals
- data processing
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 96
- 230000015654 memory Effects 0.000 claims description 339
- 238000000034 method Methods 0.000 claims description 21
- 238000001514 detection method Methods 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 5
- 238000012546 transfer Methods 0.000 description 64
- 230000007704 transition Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 30
- 239000000872 buffer Substances 0.000 description 24
- 238000004891 communication Methods 0.000 description 19
- 230000001360 synchronised effect Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 10
- 230000000630 rising effect Effects 0.000 description 10
- 238000011156 evaluation Methods 0.000 description 9
- 230000002457 bidirectional effect Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 230000001052 transient effect Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 238000012937 correction Methods 0.000 description 6
- 230000009977 dual effect Effects 0.000 description 5
- 238000001816 cooling Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 229940127593 SEQ-9 Drugs 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101150027967 CRC gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1633—Error detection by comparing the output of redundant processing systems using mutual exchange of the output between the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/165—Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
- Retry When Errors Occur (AREA)
- Multi Processors (AREA)
- Electronic Switches (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf das Gebiet des Zurücksetzens eines Datenprozessors und insbesondere auf das Gebiet des Managements verschiedener Klassen von Zurücksetzungen in einem Datenprozessor.
- Alle Datenverarbeitungssysteme benötigen die Fähigkeit des Zurücksetzens unter bestimmten Bedingungen wie etwa während des Einschaltens oder beim Auftreten bestimmter Fehler. Ohne diese Zurücksetzungen gäbe es keine Möglichkeit, das Datenverarbeitungssystem entweder zu Beginn von Initialisierungsroutinen oder zu Beginn von Fehlerkorrekturroutinen in einen bekannten Zustand zu versetzen.
- Das Problem bei Zurücksetzungen besteht jedoch darin, daß sie weitreichende Wirkungen haben. Im allgemeinen unterbrechen Zurücksetzungen den normalen Fluß der Befehlsausführung und können zu einem Verlust von Daten oder von Informationen führen, Manchmal ist eine solche drastische Aktion zum Vermeiden ernsterer Probleme erforderlich, wobei jedoch häufig die Wirkung der Zurücksetzungen schlimmer als der Zustand ist, der die Zurücksetzungen verursacht hat.
- Ein weiteres Problem bei den Zurücksetzungen in herkömmlichen Maschinen besteht darin, daß sie nicht lokalisiert sind. Mit anderen Worten, ein gesamtes Datenverarbeitungssystem wird zurückgesetzt, wenn dies nur für einen Abschnitt erforderlich ist. Dies ist insbesondere ein Problem in Systemen, die, wie etwa für störungstolerante Anwendungen, mehrere Prozessoren verwenden. In solchen Systemen kann sich ein Fehler in einem der Prozessoren zu den anderen Prozessoren ausbreiten und das gesamtes System anhalten. Falls der Ursprungsprozessor fehlerhafte Zurücksetzungen erzeugt hat, wird ein unnötiges Anhalten der Ausführung bewirkt.
- Es wäre deshalb vorteilhaft, ein System zu konstruieren, in dem die Zurücksetzungen an die Bedingungen angepaßt sind, die die Zurücksetzungen erzeugten.
- Es wäre außerdem vorteilhaft, wenn ein solches System mehrere Klassen von Zurücksetzungen mit verschiedenen Wirkungen hätte.
- Zusätzlich wäre es vorteilhaft, wenn sich in einem Mehrprozessor-Datenverarbeitungssystem die Zurücksetzungen in einem der Prozessoren nicht automatisch zu den anderen Prozessoren ausbreiten würden.
- Zusätzliche Vorteile dieser Erfindung werden teilweise in der folgende Beschreibung dargestellt und sind teilweise aus dieser Beschreibung offensichtlich oder können durch die Praxis der Erfindung gelernt werden. Die Vorteile können durch die in den beigefügten Ansprüchen besonders gezeigten Verfahren und Vorrichtungen realisiert während.
- Das US-Patent 4.580.232 an Dungan u. a. lehrt, im Fall eines Softwareabsturzes einen der Prozessoren in einem System als einen Master-Prozessor zum Zurücksetzen der anderen Prozessoren zu bestimmen. Um den normalen Betrieb der anderen Prozessoren wiederherzustellen, wird von dem Master-Prozessor automatisch ein Zurücksetzsignal an die anderen Prozessoren übermittelt.
- Das IBM Technical Disclosure Bulletin, Bd. 29, Nr. 8, Januar 1987, lehrt ein Verfahren, das ermöglicht, daß ein Programm in dem Prozessor Zurücksetzungen aufruft, die Systemzurücksetzungen und Einschaltzurücksetzungen für bedienungsfreie Umgebungen entsprechen.
- Die veröffentlichte Europäische Patentanmeldung Nr. 0 306 244 A2 lehrt ein störungstolerantes Computersystem mit einer Störungsisolation und -reparatur. Fehlerüberprüfungsvorrichtungen erfassen die Anwesenheit von Fehlern in der CPU. An die Transaktions-Datenablagevorrichtungen und an die Fehlerüberprüfungsvorrichtungen sind Fehlerablagevorrichtungen gekoppelt, um im Fall erfaßter Fehler die Speicherung zusätzlicher Nachrichten in den Transaktions-Datenablagevorrichtungen anzuhalten.
- Die vorliegende Erfindung beruht in ihrer umfassenden Form in einem Verfahren und in einem System zum Zurückzusetzen eines Datenverarbeitungssystems ohne Verändern der Sequenz der Befehle der von dem Datenverarbeitungssystem ausgeführten Schritte, wie es in den Ansprüchen 1 bzw. 11 angegeben ist.
- Die beigefügte Zeichnung, die in dieser Beschreibung enthalten ist und einen Teil von ihr bildet, zeigt eine zweckmäßige Ausführung der Erfindung und erläutert zusammen mit der Beschreibung der Erfindung deren Prinzipen.
- 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;
- Fig. 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 Zurücksetzsignalen zeigt;
- Fig. 22 ist ein Blockschaltplan der in das Zurücksetzen in dem in Fig. 3 gezeigten CPU-Modul einbezogenen Komponenten; und
- Fig. 23 ist ein Schaltplan der Taktzurücksetz-Schaltungsanordnung.
- 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.
- 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 Wechselstromeingang 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 ist, 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.
- Da jedes Element 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 der am gleichen Datum eingereichten und als EP-0415545 veröffentlichten Anmeldung Nr. 90308000,0 mit dem Titel "Software Error Handling" dargestellt.
- 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 Blockschaltplä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.
- 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 ist, 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 ist, 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-Multiplexerbit 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-Multiplexersignal 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-Multiplexersignal 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 Zurücksetzsignal von dem CPU- Modul 30 und empfängt das bezeichnete primäre Zykluszeit gebungssignal, 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 wurde, 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 des 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 Vertei lung 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 Schreibe n 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 ist, 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 ist, 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 wurde, 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 ist, 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 zwischen 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 Verwen dung 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 ist, 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 ist, 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 ist, 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.
- 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 umfasse n 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 Umsetzen 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 Multiplexer 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 Multiplexer 710 eingegeben werden, ist auch das Ausgangssignal des Multiplexers 702 ein Eingangssignal in den Multiplexer 710. Der Ausgang des Multiplexers 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 Multiplexer 702 an die DMA- Maschine 800 gesendet.
- Die Adressen vom Multiplexer 702 stellen außerdem ein Eingangssignal für den Demultiplexer 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 Multiplexer 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 Multiplexers 725 ist zusammen mit der Platinen-/Bankadresse vom Demultiplexer 720 ein Eingangssignal in den Multiplexer 730. Das Ausgangssignal der Generator-/Prüfeinrichtung 735 ist ein weiteres Eingangssignal in den Multiplexer 730. Der Multiplexer 730 wählt eines der Eingangssignale aus und ordnet es auf den Zeitmultiplex-ECC-/Adressenleitungen zum Speichermo dul 60 an. Außerdem ermöglicht der Multiplexer 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 Multiplexers 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 Multiplexer 740 als Eingangssignale die vom Multiplexer 710 an das Speichermodul 60 gesendeten Speicherdaten oder die über den Empfänger 745 vom Speichermodul 60 empfangenen Speicherdaten. Der Multiplexer 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 Multiplexer 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 Multiplexer 752 gesendet. Das andere Eingangssignal in den Multiplexer 752 sind die Fehlerinformationen von der unten in Verbindung mit Fig. 9 beschriebenen Fehlerbehandlungslogik. Das Ausgangssignal des Multiplexers 752 wird über den Treiber 753 an die CPU 30 gesendet.
- Der Komparator 755 vergleicht die vom Multiplexer 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 Demultiplexer 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 ist, 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 ist, 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 ist, 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 Zurücksetzungen erläutert ist, 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 ist, 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 50.
- 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.
- 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 ist, 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-Zurü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 Wahr scheinlichkeitsbereichs 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-Zurücksetzregister 908 ruht im Systemadressenraum. Das E/A-Zurücksetzregister umfaßt pro E/A-Modul ein Bit zur Angabe, ob das entsprechende Modul in einem Zurücksetzzustand ist. Wenn ein E/A-Modul in einem Zurü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 Zustandsleseanforde rungs-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, Multiplexer, 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 ist, werden die Steuercodes vom Speichercontroller 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 Multiplexer 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 Multiplexer 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 Multiplexers 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 Multiplexers MUXA 966 geleitet. Das Ausgangssignal des Multiplexers 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 Multiplexer CSMUXC 942 überreicht. Der Multiplexer 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 Multiplexer 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 Multiplexer 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 Multiplexer CSMUXE 949. Außerdem empfängt der Multiplexer 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 Multiplexer 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 Multiplexer 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 Multiplexer 945 und 945 m vergleicht. Falls sie sich unterscheiden, bewirkt das Gatter 960, daß der Multiplexer 949 den ERR-Code wählt. Ähnlich bewirkt das EXKLUSIV- ODER-Gatter 960 m, daß auch der Multiplexer 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 Multiplexer MUXB 974 bereitgestellt. Daten von den parallelen Registern 910 stellen ein weiteres Eingangssignal für den Multiplexer 974 bereit. Das Ausgangssignal des Multiplexers 974 ist ein Eingangssignal in den Multiplexer MUXC 976, der außerdem im Zwischenspeicher 961 gespeicherte Daten und Adressen, die ursprünglich vom Speichercontroller 70 gesendet wurden, empfängt. Der Multiplexer 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 Multiplexer MUXD 982 bereitstellt. Das andere Eingangssignal des Multiplexers MUXD 982 ist das Ausgangssignal des Zwischenspeichers 980, das Daten und Adressen vom Zwischenspeicher 978 enthält. Der Multiplexer 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 Multiplexer 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 anderen 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 Systems 10 in den Zustand A.
- Um zu ermitteln, wie die Querverbindungstreiber und die Multiplexer 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-Multiplexer und der Treiber einzustellen ist.
- Sobald die verschiedenen Modi und Transaktionen verstanden sind, sind die zum Einstellen der Zustände der Multiplexer erforderlichen Informationen ziemlich unkompliziert. Es ist lediglich die Quelle der Daten zu ermitteln. Somit wählen die Multiplexer 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 Multiplexer in einem Übergangsmodus ist, wählen diese Multiplexer 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 Multiplexer 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 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 ist, werden die Multiplexer 942, 942 m und 974 in der Weise eingestellt, daß sie Daten und Codes von diesen Registern auswählen. Ähnlich werden dann die Multiplexer 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 Multiplexer 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 Multiplexer 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 Multiplexer 949 und 949 m Codes von den seriellen Querverbindungsregistern 910, wenn diese Register angefordert werden, oder vom Ausgang der Multiplexer 945 bzw. 945 m, wenn diese Codes angefordert werden. Die Multiplexer 945 und 945 m wählen entweder die Ausgangssignale von den Multiplexern 942 bzw. 942 m oder die E/A-Codes von den Querverbindungen 90' bzw. 95'.
- Der Multiplexer 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.
- 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.
- 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.
- 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-Zurü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 Zurü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 ist, 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 Elemente 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 ist, 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 ist, ü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.
- Die vorhergehenden Diskussionen des Systems 10 haben Bezug auf viele verschiedene Notwendigkeiten für Zurücksetzungen genommen. In gewissen nicht diskutierten Fällen wie etwa beim erstmaligen Anlegen des Stroms an das System 10 werden Zurücksetzungen für Standardfunktionen verwendet. Die meisten Systeme besitzen eine einzige Zurücksetzung, die immer den Prozessor in einen vorgege benen Zustand oder Anfangszustand zurücksetzt und somit den Befehlsfluß des Prozessors unterbricht. Im Gegensatz zu den meisten anderen Systemen wirken jedoch Zurü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 Zurücksetzungen im System 10 nur auf jene Teile, die zurückgesetzt werden müssen, um den Normalbetrieb wiederherzustellen.
- Ein anderer Aspekt der Zurü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 Zurücksetzung im System 10 gesteuert. Im Vollduplexbetriebsmodus sind somit alle Zurücksetzungen in der Zone 11 unabhängig von Zurücksetzungen in der Zone 11'. Jedoch verwendet die Slave-Zone die Zurücksetzungen der Master-Zone, wenn das System 10 im Master/Slave-Modus ist. Außerdem wird der Inhalt von Speicherchips durch Zurü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 Zurücksetzens irgendwelche Daten.
- Im System 10 gibt es zweckmäßig drei Zurücksetzungsklassen; die "Taktzurücksetzung", die "harte Zurücksetzung" und die "weiche Zurücksetzung". Eine Taktzurücksetzung richtet alle Taktphasengeneratoren in einer Zone neu aus. Außerdem initialisiert eine Taktzurü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 Taktzurü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 Taktzurücksetzung in der Slave- Zone nicht gestört. Jedoch initialisiert eine Taktzurücksetzung in der Zone 11' die entsprechenden Elemente in Zone 11'.
- Eine harte Zurücksetzung stellt im allgemeinen alle Zustandsvorrichtungen und Register in einen vorgegebenen Zustand oder Anfangszustand zurück. Eine weiche Zurü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 Zurücksetzung nicht beeinflußt. Außerdem legt das System 10 zum Zurücksetzen nur der Elemente, die zum Fortführen der Verarbeitung neu initialisiert werden müssen, wahlweise sowohl harte Zurücksetzungen als auch weiche Zurücksetzungen gleichzeitig an.
- Die harten Zurücksetzungen löschen das System 10 und stellen das System 10 wie in herkömmlichen Systemen in eine bekannte Konfiguration zurück. Harte Zurü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 Zurücksetzungen: die "Hochfahr- Zurücksetzung", die "harte CPU-Zurücksetzung", die "Modulzurücksetzung" und die "Vorrichtungszurücksetzung". Harte Zurücksetzungen können weiter in lokale Zurücksetzungen und harte Systemzurücksetzungen aufgegliedert werden. Eine lokale harte Zurücksetzung wirkt nur auf die Logik, die antwortet, wenn die CPU in dem Slave-Modus ist. Eine harte Systemzurücksetzung ist auf die Logik beschränkt, die an die Querverbindungskabel 25 und an die Modulverdrahtungen 130 und 132 angeschlossen ist.
- Die Hochfahr-Zurücksetzung wird zum Initialisieren der Zonen 11 und 11' unmittelbar nach der Stromzufuhr verwendet. Die Hochfahr-Zurücksetzung erzwingt eine automatische Zurücksetzung aller Teile der Zone. Da jede Zone ihre eigene Stromversorgung besitzt und daher verschieden lange "Hochfahr"-Ereignisse erfährt, ist eine Hochfahr- Zurücksetzung nie zwischen den Zonen des Systems 11 verbunden. Die Hochfahr-Zurücksetzung wird durch Anlegen aller harten Zurücksetzungen und einer Taktzurücksetzung an die Zone 11 oder 11' verwirklicht.
- Die harte CPU-Zurücksetzung wird für Diagnosezwecke verwendet, um ein CPU-Modul in einen bekannten Zustand zurückzustellen. Die harte CPU-Zurü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-Zurücksetzung im Gegensatz zur Hochfahr-Zurücksetzung weder die Zonenidentifizierung der Querverbindungen noch die Taktherrschaft. Die harte CPU-Zurücksetzung ist die Summe aller lokalen harten Zurücksetzungen, die auf ein CPU- Modul in der betreffenden Zone angewendet werden können, sowie eine Taktzurücksetzung.
- Die harte Modulzurü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-Modulzurücksetzung löscht alles in dem E/A-Modul, läßt die Brandmauern in einem Diagnosemodus und sperrt die Treiber.
- Eine Vorrichtungszurücksetzung wird zum Zurücksetzen von an die E/A-Module angeschlossenen E/A-Vorrichtungen verwendet. Die Zurücksetzungen sind vorrichtungsabhängig und werden von dem E/A-Modul bereitgestellt, an das die Vorrichtung angeschlossen ist.
- Die andere Klasse von Zurücksetzungen sind weiche Zurücksetzungen. Wie oben erläutert ist, löschen weiche Zurü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 Zurü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 Zurücksetzungen erfolgen zielgerichtet, so daß nur die erforderlichen Teile des Systems zurückgesetzt werden. Falls z. B. die Modulverdrahtung 130 zurückgesetzt werden muß, werden weder die CPU 40 noch die an das E/A- Modul 100 angeschlossenen Vorrichtungen zurückgesetzt.
- Es gibt drei Aspekte, die für weiche Zurücksetzungen einzigartig sind. Einer besteht darin, daß jede Zone für das Erzeugen ihrer eigenen Zurücksetzung verantwortlich ist. Somit wird verhindert, daß eine gestörte Fehler- oder Zurücksetzlogik in einer Zone Zurücksetzungen in der ungestörten Zone veranlaßt.
- Der zweite Aspekt besteht darin, daß die weiche Zurücksetzung die Folge der Befehlsausführung nicht unterbricht. Die CPUs 40, 40', 50, 50' werden nur in einer kombinierten Taktzurücksetzung und harten Zurücksetzung zurückgesetzt. Zusätzlich haben die Speichercontroller 70, 75, 70' und 75' jene Zustandsmaschinen und Register, die erforderlich sind, um mit dem harten Zurücksetzen verknüpfte CPU-Befehle zu bedienen. Somit ist die weiche Zurücksetzung für die Softwareausführung transparent.
- Der dritte Aspekt besteht darin, daß die Reichweite einer weichen Zurücksetzung, d. h. die Anzahl der durch eine weiche Zurücksetzung beeinflußten Elemente im System 10, von dem Modus des Systems 10 und von der ursprünglichen Zurücksetzanforderung abhängig ist. Im Vollduplexmodus gibt die von dem CPU-Modul 30 ausgehende Anforderung einer weichen Zurücksetzung eine weiche Zurü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 zurü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 Zurücksetzen aus. Das weiche Zurücksetzen in der Zone 11' hat die gleiche Wirkung wie das weiche Zurü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 Zurücksetzen jedoch erwartungsgemäß ein weiches Zurü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 Zurücksetzen über die Querverbindungen 90 und 90', die Querverbindungskabel 25 und die Querverbindungen 90' und 95' an das CPU-Modul 30' weitergeleitet. Die weiche Zurücksetzung wird von Teilen der Modulverdrahtungen 130' und 132' empfangen. Eine vom CPU-Modul 30' ausgehende Anforderung zum weichen Zurücksetzen setzt in dieser gleichen Konfiguration nur die Speichercontroller 70' und 75' und Teile der Querverbindungen 90' und 95' zurück.
- Weiche Zurücksetzungen umfassen "weiche CPU-Zurücksetzungen" und "weiche Systemzurücksetzungen". Eine weiche CPU- Zurücksetzung ist eine weiche Zurücksetzung, die auf die Zustandsmaschine in dem CPU-Modul wirkt, das die Anforderung ausgegeben hat. Eine weiche Systemzurücksetzung ist eine weiche Zurücksetzung über die Modulverdrahtung und über jene Elemente, die direkt an sie gekoppelt sind. Ein CPU-Modul kann eine weiche CPU-Zurücksetzung immer anfordern. Eine weiche Systemzurü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 Systemzurücksetzung von der anderen Zone und erzeugt eine weiche Systemzurücksetzung für ihre eigenen Modulverdrahtungen.
- Weiche CPU-Zurü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-Zurü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 Zurü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-Zurücksetzung. Das CPU-Modul 30' empfängt von seiner Stromversorgung ein ähnliches Signal.
- An jedes E/A-Modul wird eine System-Hart-Zurücksetzleitung geschickt, während eine System-Weich-Zurücksetzleitung an jedes dritte E/A-Modul geschickt wird. Der Grund, warum für jedes Modul eine einzelne harte Zurücksetzung erforderlich ist, liegt darin, daß die System-Hart-Zurü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 Systemzurücksetzung ist lediglich eine Belastungsbetrachtung. Zusätzlich wird an jedes E/A-Modul und an jedes Speichermodul eine Taktzurü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 Zurü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 Zurücksetz-Steuerschaltungsanordnung 2230 und ein Weich-Zurücksetzanforderungs-Register 2235. Der Speichercontroller 75 enthält eine Zurücksetz-Steuerschaltungsanordnung 2231 und ein Weich-Zurücksetzanforderungs-Register 2236.
- Die Querverbindung 90 enthält sowohl einen Lokal-Zurücksetzgenerator 2240 als auch einen System-Zurücksetzgenerator 2250. Die Querverbindung 95 enthält einen Lokal- Zurücksetzgenerator 2241 und einen System-Zurü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-Zurücksetzsignalen an die Lokal-Zurücksetz-Steuerschaltungen 2245 und 2246 der Querverbindungen 90 bzw. 95 und an die Zurücksetz- Steuerschaltungen 2230 und 2231 der Speichercontroller 70 bzw. 75 erzeugen die Lokal-Zurücksetzgeneratoren 2240 und 2241 Zurücksetzungen für das CPU-Modul 30. Die Lokal- Querverbindungszurücksetz-Steuerschaltungen 2245 und 2246 antworten auf die Weich-Zurücksetzsignale durch das Zurücksetzen ihrer Zustandsmaschinen, der Zwischenspeicher, die zu übertragende Daten speichern, und ihrer Fehlerregister. Diese Schaltungen antworten auf die Hart- Zurücksetzsignale, indem sie die gleichen Maßnahmen wie für die weichen Zurücksetzungen ergreifen und außerdem die Fehlerregister und die Konfigurationsregister zurücksetzen. In einer ähnlichen Weise antworten die Zurücksetzsteuerschaltungen 2230 und 2231 auf Hart- und Weich- Zurücksetzsignale.
- Zusätzlich sendet der Lokal-Zurücksetzgenerator 2240 Taktzurü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 Taktzurücksetzsignale in der unten beschriebenen Weise zum Zurücksetzen ihrer Takte. Die Weich-Zurücksetzanforderungs-Register 2235 und 2236 senden weiche Anforderungssignale an die Lokal- Zurücksetzgeneratoren 2240 bzw. 2241.
- Die Systemzurücksetzgeneratoren 2250 und 2251 der Querverbindungen 90 bzw. 95 senden über die Modulverdrahtungen 130 bzw. 132 System-Hart-Zurücksetzsignale und System-Weich-Zurücksetzsignale an die E/A-Module 100, 110 und 120. Die E/A-Module 100, 110 und 120 antworten auf die Weich-Zurücksetzsignale durch Zurücksetzen aller von CPU-Daten oder von Befehlen abhängigen Register. Jene Module antworten auf die Hart-Zurücksetzsignale durch Zurücksetzen des gleichen Registers wie weiche Zurücksetzungen und außerdem durch Zurücksetzen irgendwelcher Konfigurationsregister.
- Zusätzlich senden die Systemzurücksetzgeneratoren 2250 und 2251 die System-Weich- und System-Hart-Zurücksetzsignale auch an die Systemzurücksetz-Steuerschaltung 2255 und 2256 jeder Querverbindung. Die Systemzurücksetz- Steuerschaltung 2255 und 2256 antwortet auf die System- Weich-Zurücksetzsignale und auf die System-Hart-Zurücksetzsignale in ähnlicher Weise wie die Lokal-Zurücksetzsteuerschaltungen auf die Lokal-Weich- und Lokal-Hart- Zurücksetzsignale antworten.
- Die Speichercontroller 70 und 75 bewirken, daß die Querverbindungen 90 bzw. 95 die weichen Zurücksetzungen erzeugen, wenn die CPUs 40 bzw. 50 die richtigen Codes in die Weich-Zurücksetzanforderungs-Register 2235 bzw. 2236 schreiben. Die Weich-Zurücksetzanforderungs-Register 2235 und 2236 senden Weich-Zurücksetzanforderungs-Signale an die Lokal-Zurücksetzgeneratoren 2240 bzw. 2241. Das Codierter-Fehler-Signal wird vom Speichercontroller 70 an die Lokal-Zurücksetzgeneratoren 2240 und 2241 gesendet.
- Weiche Systemzurücksetzungen werden zwischen den Zonen längs der gleichen Datenpfade gesendet, längs derer Daten- und Steuersignale gesendet werden. Somit wird für Zurücksetzungen die gleiche Philosophie des Verzögerungsausgleichs wie für Daten und Adressen verwendet, wobei Zurücksetzungen alle Elemente in beiden Zonen etwa gleichzeitig erreichen.
- Harte Zurücksetzungen werden von den CPUs 40 und 50, die den richtigen Code in die Lokal-Hart-Zurücksetzregister 2243 schreiben, oder von der durch das DC OK-Signal veranlaßten Anforderung einer Hochfahr-Zurü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 Zurücksetzgeneratoren 2240, 2250, 2241 und 2251 gleichzeitig geht.
- Tatsächlich ist die Synchronisierung von Zurücksetzungen im System 10 sehr wichtig. Das liegt daran, daß die Zurücksetzsignale von den Querverbindungen ausgehen. Auf diese Weise können die Zurü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 Zurücksetzungen besser verstehen. Die Hochfahr-Zurücksetzung erzeugt sowohl eine harte Systemzurücksetzung als auch eine harte lokale Zurücksetzung und eine Taktzurü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örungszurü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 Zurü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örungszurücksetzen besteht aus einem Taktzurücksetzen zu der Zone mit dem gestörten CPU-Modul und aus einem lokalen weichen Zurücksetzen zu diesem Modul.
- Ein Resync-Zurücksetzen ist im wesentlichen ein weiches Systemzurücksetzen mit einem harten lokalen Zurücksetzen und einem Taktzurücksetzen. Das Resync-Zurü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-Zurücksetzen verwendet, um zwei Zonen in eine kompatible Konfiguration zu bringen, so daß sie erneut in einem Duplexmodus starten können.
- Das Resync-Zurücksetzen ist im wesentlichen ein hartes CPU-Zurücksetzen und ein Taktzurücksetzen. Das Resync- Zurücksetzen wird durch ein Software-Schreiben der Resync-Zurü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 Zurücksetzen ausgeführt, was u. a. alle vier Querverbindungen in den Duplexmodus einstellt. Da das Resync-Zurücksetzen kein weiches Systemzurücksetzen ist, empfangen die E/A-Module kein Zurücksetzen.
- Die zweckmäßige Ausführung des Systems 10 stellt außerdem sicher, daß Taktzurücksetzsignale keine angepaßten Takte, sondern nur nichtangepaßte Takte zurücksetzen. Das liegt daran, daß jedesmal, wenn ein Takt zurü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 zurü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 Taktzurücksetzsignale von den Querverbindungen 90 und 95 und erzeugt gleichzeitig mit der steigenden Flanke des Taktzurü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 Taktsi gnale 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 Taktzurücksetz-Steigende-Flanke-Impuls somit z. B. ein Setz-Eingangssignal in die Stufe sein, die die vorgegebene Phase erzeugt, und ein Zurücksetz-Eingangssignal in alle anderen Stufen sein. Falls der Phasengenerator 2310 jene Phase bereits erzeugen würde, wäre die Anwesenheit des synchronisierten Taktzurücksetzsignals im wesentlichen transparent.
- Die somit organisierten Zurü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 Zurücksetzungen verursachten Resynchronisierungsprobleme ist dies in einer Doppel- oder Mehrzonenumgebung besonders wichtig. Somit ist es zweckmäßiger, die Anzahl der harten Zurücksetzungen zu minimieren, wie es in dem System 10 erfolgt ist.
Claims (12)
1. Verfahren zum Zurücksetzen eines
Datenverarbeitungssystems ohne Verändern der
Befehlsausführungssequenz, bei dem das Datenverarbeitungssystem (10) zwei
Datenverarbeitungszonen (30, 30') enthält, die synchron
zueinander laufen sollen, wobei jede Zone einen
Zentralprozessor (40, 40', 50, 50') enthält, der über einen
Datenweg (130, 132, 90, 95, 25) an mehrere Komponenten
(60, 100, 110, 120) angeschlossen ist, wobei die
Komponenten zurücksetzbare Elemente enthalten, und bei dem die
Zentralprozessoren jeweils eine Befehlssequenz ausführen,
die eine Reihe von Transaktionen bewirken, die auf den
Datenweg geschickt werden sollen, wobei das Verfahren die
folgenden Schritte enthält:
sequentielles Speichern einer Reihe von
Transaktionen, die auf den Datenweg geschickt werden;
Erfassen eines Zustandes des
Datenverarbeitungssystems, für den ein Zurücksetzen angezeigt ist;
Bestimmen, ob der Zustand des
Datenverarbeitungssystems, für den ein Zurücksetzen angezeigt ist, ein
kritischer oder ein nicht kritischer Zurücksetzzustand
ist;
Senden eines Signals für hartes Zurücksetzen an
die mehreren Komponenten in beiden
Datenverarbeitungszonen (30, 30'), falls der Zustand, für den das
Zurücksetzen angezeigt ist, ein kritischer Zurücksetzzustand ist,
wobei die Ausgabe eines Signals für hartes Zurücksetzen
das Zurücksetzen zurücksetzbarer Elemente in beiden
Datenverarbeitungszonen bewirkt und ferner bewirkt, daß
das Datenverarbeitungssystem (10) in einen vorgegebenen
Zustand eintritt, wodurch die Befehlsausführungssequenz
unterbrochen wird;
Senden eines Signals für weiches Zurücksetzen an
ausgewählte der mehreren Komponenten in den
Datenverarbeitungszonen (30, 30'), falls der Zustand, für den das
Zurücksetzen angezeigt ist, ein nicht kritischer
Zurücksetzzustand ist, wobei der Empfang des Signals für
weiches Zurücksetzen durch ausgewählte zurücksetzbare
Elemente bewirkt, daß die ausgewählten Elemente
zurückgesetzt werden und eine Änderung der
Befehlsausführungssequenz des Datenverarbeitungssystems vermieden wird; und
erneutes Schicken der gespeicherten momentanen
Transaktionen auf den Datenweg nach dem Senden des
Signals für weiches Zurücksetzen.
2. Verfahren nach Anspruch 1, bei dem die
zurücksetzbaren Elemente der ausgewählten der mehreren
Komponenten jeweils einen Zustandsanzeiger besitzen, der ihren
Zustand angibt, und wobei der Schritt des Sendens von
Zurücksetzsignalen den folgenden Unterschritt enthält:
Zurücksetzen der Zustandsanzeiger der
ausgewählten der mehreren Komponenten.
3. Verfahren nach Anspruch 1, bei dem die
zurücksetzbaren Elemente der ausgewählten der mehreren
Komponenten jeweils wenigstens ein Speicherregister zum
Speichern von Daten enthalten, die längs des Datenweges
während der Reihe von Transaktionen gesendet werden, und
wobei der Schritt des Sendens von Zurücksetzsignalen den
folgenden Unterschritt enthält:
Zurücksetzen des wenigstens einen
Speicherregisters der ausgewählten Komponenten.
4. Verfahren nach Anspruch 1, bei dem die
zurücksetzbaren Elemente der ausgewählten der mehreren
Komponenten jeweils wenigstens eine Fehlerschaltung besitzen,
die Fehlerinformationen enthält, und bei dem der Schritt
des Sendens von Zurücksetzsignalen den folgenden
Unterschritt enthält:
Zurücksetzen der wenigstens einen Fehlerschaltung
jeder der ausgewählten der mehreren Komponenten.
5. Verfahren nach Anspruch 1, bei dem der Schritt
des Erfassens eines Zustandes, für den ein Zurücksetzen
angezeigt ist, den folgenden Unterschritt enthält:
Erfassen eines Fehlerzustandes in dem
Datenverarbeitungssystem.
6. Verfahren nach Anspruch 1, bei dem der Schritt
des Erfassens eines Zustandes, für den ein Zurücksetzen
angezeigt ist, den folgenden Unterschritt enthält:
Erfassen eines Zurücksetzanforderungszustands im
Datenverarbeitungssystem.
7. Verfahren nach Anspruch 1, bei dem der Schritt
des Bestimmens, ob das angezeigte Zurücksetzen der
kritische oder der nicht kritische Zurücksetzzustand ist, den
folgenden Unterschritt enthält:
Bestimmen, daß der Zustand, für den das
Zurücksetzen angezeigt ist, ein kritischer Zurücksetzzustand
ist, falls von dem Datenverarbeitungssystem ein
Leistungseinschaltsignal empfangen wird, das angibt, daß in
das Datenverarbeitungssystem vor kurzem Leistung
eingegeben worden ist.
8. Verfahren nach Anspruch 1, bei dem der Schritt
des Bestimmens, ob das angezeigte Zurücksetzen ein
kritischer oder ein nicht kritischer Zurücksetzzustand ist,
den folgenden Unterschritt enthält:
Bestimmen, daß das angezeigte Zurücksetzen ein
kritischer Zurücksetzzustand ist, falls eine Anforderung
zum Empfangen einer Komponente aus dem
Datenverarbeitungssystem empfangen wird.
9. Verfahren nach Anspruch 1, bei dem der Schritt
des Bestimmens, ob das angezeigte Zurücksetzen ein
kritischer oder ein nicht kritischer Zurücksetzzustand ist,
den folgenden Unterschritt enthält:
Bestimmen, daß das angezeigte Zurücksetzen ein
kritischer Zurücksetzzustand ist, falls eine Anforderung
zum Synchronisieren des Datenverarbeitungssystems
empfangen wird.
10. Verfahren nach Anspruch 1, bei dem der Schritt
der Ausgabe des Signals für weiches Zurücksetzen den
Unterschritt des Erzeugens eines Signals für weiches
Zurücksetzen für jede Zone und des Sendens des für jede
Zone erzeugten Signals für weiches Zurücksetzen an
ausgewählte der mehreren Komponenten in derselben Zone
enthält.
11. Verfahren nach Anspruch 1, bei dem der Schritt
des Erfassens des Zustandes des
Datenverarbeitungssystems, für den das Zurücksetzen angezeigt ist, den
Unterschritt des Ausführens der Erfassung in einer der Zonen
enthält; wobei der Schritt des Bestimmens, ob der
Zustand, für den das Zurücksetzen angezeigt ist, ein
kritischer oder ein nicht kritischer Zurücksetzzustand ist,
den Unterschritt des Ausführens einer solchen Bestimmung
in derselben Zone, in der der Zustand erfaßt wurde,
enthält; und wobei der Schritt des Ausgebens des Signals
für weiches Zurücksetzen den Unterschritt des Sendens
eines Initiierungssignals für weiches Zurücksetzen von
der einen der Zonen, in der der Zurücksetzzustand erfaßt
wurde, in die andere der Zonen enthält.
12. Datenverarbeitungssystem, das zwei
Datenverarbeitungszonen (30, 30') enthält, die synchron zueinander
laufen sollen, mit:
einem Zentralprozessor (40, 40', 50, 50') in
jeder Zone, der über einen Datenweg an mehrere
Komponenten (60, 100, 110, 120) angeschlossen ist, wobei die
Komponenten zurücksetzbare Elemente enthalten und der
Zentralprozessor in jeder Zone eine Befehlssequenz
ausführt, die eine Reihe von Transaktionen bewirkt, die auf
den Datenweg geschickt werden sollen; und
eine Einrichtung zum automatischen Zurücksetzen
des Datenverarbeitungssystems ohne Verändern der
Befehlsausführungssequenz, gekennzeichnet durch:
eine Einrichtung zum sequentiellen Speichern
einer Reihe von Transaktionen, die auf den Datenweg
geschickt werden;
eine Einrichtung zum Erfassen eines Zustandes des
Datenverarbeitungssystems, für den eine Zurücksetzung
angezeigt ist;
eine Einrichtung zum Bestimmen, ob der Zustand
des Datenverarbeitungssystems, für den eine Zurücksetzung
angezeigt ist, ein kritischer oder ein nicht kritischer
Zurücksetzzustand ist;
eine Einrichtung zum Senden eines Signals für
hartes Zurücksetzen an die mehreren Komponenten in den
beiden Datenverarbeitungszonen (30, 30'), falls der
Zustand, für den die Zurücksetzung angezeigt wird, ein
kritischer Zurücksetzzustand ist, wobei die Ausgabe eines
Signals für hartes Zurücksetzen bewirkt, daß
zurücksetzbare Elemente in beiden Datenverarbeitungszonen
zurückgesetzt werden, und bewirkt, daß das
Datenverarbeitungssystem (10) in einen vorgegebenen Zustand eintritt, wodurch
die Befehlsausführungssequenz unterbrochen wird;
eine Einrichtung zum Senden eines Signals für
weiches Zurücksetzen an ausgewählte der mehreren
Komponenten in den Datenverarbeitungszonen (30, 30'), falls
der Zustand, für den die Zurücksetzung angezeigt ist, ein
nicht kritischer Zurücksetzzustand ist, wobei der Empfang
des Signals für weiches Zurücksetzen durch die
ausgewählten zurücksetzbaren Elemente bewirkt, daß die
ausgewählten Elemente zuzurückgesetzt werden und daß dabei eine
Änderung der Befehlsausführungssequenz des
Datenverarbeitungssystems vermieden wird und
eine Einrichtung, die, falls der Zustand, für den
eine Zurücksetzung angezeigt ist, erfaßt wird,
Zurücksetzsignale an ausgewählte der mehreren Komponenten längs
des Datenweges sendet, wobei die Zurücksetzsignale
bewirken, daß die ausgewählten der mehreren Komponenten Teile
ihrer Elemente zurücksetzen; und
eine Einrichtung zum erneuten Schicken der
gespeicherten laufenden Transaktionen auf den Datenweg nach
dem Senden des Signals für weiches Zurücksetzen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US38808789A | 1989-08-01 | 1989-08-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69032865D1 DE69032865D1 (de) | 1999-02-11 |
DE69032865T2 true DE69032865T2 (de) | 1999-08-05 |
Family
ID=23532621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69032865T Expired - Fee Related DE69032865T2 (de) | 1989-08-01 | 1990-07-20 | Gezielte Rücksetzungen in einem Datenprozessor |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0416732B1 (de) |
JP (1) | JP3069585B2 (de) |
AT (1) | ATE175282T1 (de) |
CA (1) | CA2022210A1 (de) |
DE (1) | DE69032865T2 (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU622626B2 (en) * | 1987-06-03 | 1992-04-16 | Sony Corporation | Method of processing data |
GB9214198D0 (en) * | 1992-07-03 | 1992-08-12 | Texas Instruments Ltd | Method of resetting coupled modules and a system using the method |
DE19835610A1 (de) * | 1998-08-06 | 2000-02-10 | Siemens Ag | Programmgesteuerte Einheit und Verfahren zum Debuggen derselben |
WO2002023338A2 (en) * | 2000-09-18 | 2002-03-21 | Tenor Networks, Inc. | System resource availability manager |
US7222268B2 (en) | 2000-09-18 | 2007-05-22 | Enterasys Networks, Inc. | System resource availability manager |
US6862642B1 (en) * | 2001-05-15 | 2005-03-01 | Adaptec, Inc. | Expander device and method for resetting bus segments in I/O subsystem segmented with expanders |
US7428633B2 (en) | 2002-02-05 | 2008-09-23 | Samsung Electronics Co., Ltd. | Embedded device and method of initializing the same |
CN111274064A (zh) * | 2020-01-15 | 2020-06-12 | 武汉兴图新科电子股份有限公司 | 一种双cpu系统及其协同软复位方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4486826A (en) * | 1981-10-01 | 1984-12-04 | Stratus Computer, Inc. | Computer peripheral control apparatus |
US4580232A (en) * | 1982-09-21 | 1986-04-01 | Xerox Corporation | Single point microprocessor reset |
US4757442A (en) * | 1985-06-17 | 1988-07-12 | Nec Corporation | Re-synchronization system using common memory bus to transfer restart data from non-faulty processor to failed processor |
EP0306244B1 (de) * | 1987-09-04 | 1995-06-21 | Digital Equipment Corporation | Fehlertolerantes Rechnersystem mit Fehler-Eingrenzung |
-
1990
- 1990-07-20 DE DE69032865T patent/DE69032865T2/de not_active Expired - Fee Related
- 1990-07-20 EP EP90308007A patent/EP0416732B1/de not_active Expired - Lifetime
- 1990-07-20 AT AT90308007T patent/ATE175282T1/de active
- 1990-07-30 CA CA002022210A patent/CA2022210A1/en not_active Abandoned
- 1990-07-31 JP JP2203805A patent/JP3069585B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69032865D1 (de) | 1999-02-11 |
JPH03184109A (ja) | 1991-08-12 |
EP0416732B1 (de) | 1998-12-30 |
JP3069585B2 (ja) | 2000-07-24 |
CA2022210A1 (en) | 1991-02-02 |
EP0416732A2 (de) | 1991-03-13 |
EP0416732A3 (de) | 1994-03-23 |
ATE175282T1 (de) | 1999-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69027491T2 (de) | Verfahren zur Softwarefehlerbehandlung | |
DE69032708T2 (de) | Protokoll für Lese- und Schreibübertragungen | |
US5185877A (en) | Protocol for transfer of DMA data | |
US5068851A (en) | Apparatus and method for documenting faults in computing modules | |
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 | |
US5153881A (en) | Method of handling errors in software | |
DE69424565T2 (de) | Fehler-betriebssichere/fehler tolerante computerbetriebsmethode | |
US5251227A (en) | Targeted resets in a data processor including a trace memory to store transactions | |
DE69231452T2 (de) | Fehlertolerantes Rechnersystem mit Verarbeitungseinheiten die je mindestens drei Rechnereinheiten haben | |
DE69708881T2 (de) | Dreifach redundantes modulares rechnersystem | |
DE69322068T2 (de) | Phasenkomparator | |
US5005174A (en) | Dual zone, fault tolerant computer system with error checking in I/O writes | |
EP0306244B1 (de) | Fehlertolerantes Rechnersystem mit Fehler-Eingrenzung | |
DE3781873T2 (de) | Rekonfigurierbare rechenanordnung. | |
DE68924119T2 (de) | Verfahren und Vorrichtung zum Wiederanlauf nach einem Fehler in einem digitalen Rechnersystem. | |
US4916704A (en) | Interface of non-fault tolerant components to fault tolerant system | |
DE3853452T2 (de) | Mehrfachverarbeitung mit hoher Verfügbarkeit. | |
DE3686901T2 (de) | Auf hohem systemniveau selbstpruefendes intelligentes e/a-steuergeraet. | |
EP0306209B1 (de) | Doppelschienen-Prozessoren mit Fehlerprüfung an der Einfachschienenschnittstelle | |
US5249187A (en) | Dual rail processors with error checking on I/O reads | |
DE60301702T2 (de) | Fehlertolerantes Computersystem, Verfahren zur Resynchronisation desselben und Programm zur Resynchronisation desselben | |
DE4233569C2 (de) | Informationsverarbeitungsgerät mit einer Mehrzahl von Prozessor-Modulen, die einen Fehlerüberwachungskreis enthalten | |
US5048022A (en) | Memory device with transfer of ECC signals on time division multiplexed bidirectional lines | |
US5065312A (en) | Method of converting unique data to system data | |
DE69816818T2 (de) | Mehrheitsentscheidungsvorrichtung und entsprechendes verfahren |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN |
|
8339 | Ceased/non-payment of the annual fee |