DE19618105A1 - Rechnersystem und Verfahren zum Betreiben eines Rechnersystems - Google Patents

Rechnersystem und Verfahren zum Betreiben eines Rechnersystems

Info

Publication number
DE19618105A1
DE19618105A1 DE19618105A DE19618105A DE19618105A1 DE 19618105 A1 DE19618105 A1 DE 19618105A1 DE 19618105 A DE19618105 A DE 19618105A DE 19618105 A DE19618105 A DE 19618105A DE 19618105 A1 DE19618105 A1 DE 19618105A1
Authority
DE
Germany
Prior art keywords
computer
units
unit
computer unit
software programs
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.)
Ceased
Application number
DE19618105A
Other languages
English (en)
Inventor
Dirk Dr Schmidt
Nicolas Grein
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PIETZSCH IBP GmbH
Original Assignee
PIETZSCH IBP GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PIETZSCH IBP GmbH filed Critical PIETZSCH IBP GmbH
Priority to DE19618105A priority Critical patent/DE19618105A1/de
Publication of DE19618105A1 publication Critical patent/DE19618105A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)

Description

Die Erfindung betrifft ein Rechnersystem und ein Verfahren zum Betreiben eines Rechnersystems, insbesondere eines Rech­ nersystems für Landfahrzeuge, welches mehrere redundante Komponenten aufweist.
In zivilen und militärischen Anwendungen, z. B. in der Flug­ technik, bei militärischen Landfahrzeugen, in Kernkraftwer­ ken usw., spielt der Einsatz von elektronischen Komponen­ ten und Computern zur Unterstützung der Bedienung und Steue­ rung durch den Menschen und zur Steigerung der Leistungsfä­ higkeit eine immer größere Rolle.
Im Zuge der Automatisierung von Routine- und Steuerungsauf­ gaben sowie der Verringerung der Arbeitskräfte werden tradi­ tionelle Aufgaben des Menschen zunehmend von Rechnern und daran angeschlossenen Peripheriegeräten unterstützt bzw. übernommen. Insbesondere bei so kritischen Anwendungen, wie den oben genannten, erfordern das Umfeld, in dem die Rechner arbeiten, sowie die Sicherheitsanforderungen eine maximale Zuverlässigkeit, die in der Regel durch geeignete Redun­ danzmechanismen erreicht werden kann. Andererseits verbieten es straffe Kostenvorgaben im Verteidigungs- wie im Zivilbe­ reich häufig, technisch aufwendige Lösungen, wie die Mehr­ fachauslegung von Systemen, zur Erhöhung der Zuverlässigkeit einzusetzen.
Für den Einsatz von Rechnern in sicherheitskritischen Berei­ chen, wie der Avionik oder der Kernkraftwerkstechnik, sind Systeme bekannt, mit denen eine Redundanz und Auswahlsicher­ heit von Rechnern bzw. Rechnerverbunden erreicht wird. Bei diesen Systemen werden sicherheitskritische Baugruppen, zu denen gerade die Rechner selbst gehören, mehrfach ausgelegt. Wenn der Ausfall einer Baugruppe erkannt wird, bewirkt ein geeigneter Steuermechanismus, daß eine zusätzliche Ersatz­ baugruppe die Aufgabe der ausgefallenen Baugruppe übernimmt. Diese Ersatzbaugruppe wird nur für den Zweck der Redundanz bereitgehalten und ist normalerweise nicht aktiviert. Durch diese Mehrfachauslegung der Systeme entstehen jedoch sehr hohe Kosten. Die mehrfach bereitgestellte Hardware, die im ungestörten Betrieb nicht genutzt wird, stellt ferner eine große Resourcenverschwendung dar.
Es ist somit eine Aufgabe der vorliegenden Erfindung, ein Rechnersystem und ein Verfahren zum Betreiben des Rechnersy­ stems anzugeben, die insbesondere für sicherheitskritische Anwendungen eine zufriedenstellende Ausfallsicherheit ge­ währleisten, ohne zu einem erheblichen Mehraufwand an Hard­ ware und somit Kosten zu führen.
Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 und ein Rechnersystem nach Anspruch 9 gelöst.
Die Erfindung sieht ein redundantes Rechnersystem vor, das aus mehreren Rechnereinheiten besteht, die über schnelle Datenverbindungsbusse miteinander verbunden sind. Die Soft­ ware-Programme, welche auf den jeweiligen Rechnereinheiten laufen, sind in einem Massenspeicher oder in einem Arbeits­ speicher jeweils jeder Rechnereinheit gespeichert. Bei Aus­ fall einer Rechnereinheit bzw. eines Rechners kann dessen Aufgabe vollständig von anderen, im System vorhandenen Rech­ nern übernommen werden. Hierfür werden die Programme des ausgefallenen Rechners entweder insgesamt in einem anderen Rechner des Systems gestartet, oder sie werden auf mehrere Rechner in dem System verteilt. Zu einem gegebenen Zeitpunkt ist dabei jeweils nur eine Version eines Anwendungsprogramms in einer Rechnereinheit aktiv.
Während des Betriebs wird zyklisch der Status, z. B. in der Software vereinbarte globale und statische Variable, über den schnellen Datenverbindungsbus an die anderen Rechnerein­ heiten übertragen. Die Rechnereinheiten speichern den emp­ fangenen Status. Somit stehen jeder Rechnereinheit zu jedem Zeitpunkt sowohl die Software-Programme aller Rechnereinhei­ ten als auch die aktuelle Information über den Status dieser Programme zur Verfügung.
Auch bei Ausfall mehrerer Rechner bleibt das Gesamtsystem noch funktionsfähig, weil jede Rechnereinheit jede andere ersetzen und deren Software-Programme mit den aktuellen Va­ riablen starten und abarbeiten kann. Sogar bei Ausfall aller Rechner bis auf einen kann der Betrieb fortgesetzt werden, weil jeder Rechner die Software und den aktuellen Status der anderen Rechner kennt und starten kann, wobei in diesem Fall jedoch die Leistungsfähigkeit des Gesamtsystems herabgesetzt sein kann.
Zur Erreichung der Redundanz müssen bei der Erfindung keine Systemkomponenten vorgehalten werden, die für den regulären, ungestörten Betrieb nicht benötigt werden; vielmehr ist jede Rechnereinheit in Betrieb, dabei jedoch so ausgelegt, daß sie die Funktion anderer Rechnereinheiten übernehmen kann. Dadurch entsteht ein erheblicher Vorteil gegenüber den be­ kannten Lösungen.
Vorzugsweise sind die verwendeten Rechnereinheiten im we­ sentlichen identisch aufgebaut, was die Beschaffung, Wartung und Pflege der Rechnereinheiten vereinfacht.
Erfindungsgemäß sind zwei bevorzugte Verfahren zur Ermitt­ lung des Rechners, der die Aufgabe eines ausgefallenen Rech­ ners übernehmen soll, vorgesehen. Bei einer ersten Variante sind die Regeln für die Übernahme in tabellenartiger Form im voraus festgelegt und als Datei in allen Rechnereinheiten gespeichert. Bei einer alternativen Variante ermittelt jede Rechnereinheit zyklisch ihren Auslastungsgrad und sendet diesen zu allen anderen Rechnern. Die Auslastungsgrade der einzelnen Rechnereinheiten werden verglichen, und die Rechnereinheit mit der geringsten Auslastung übernimmt die Aufgabe der ausfallenden Rechnereinheit. Der Auslastungsgrad kann entweder zyklisch ermittelt werden oder immer dann, wenn eine Störung auftritt und die Aufgaben eines Rechners von einem anderen übernommen werden müssen.
Die Software-Programme, welche ursprünglich auf einem ge­ störten Rechner gelaufen sind, können von einer Rechnerein­ heit übernommen oder auf mehrere Rechnereinheiten verteilt werden. Bei den eingesetzten Rechnern handelt es sich vor­ zugsweise um sogenannte Multi-Tasking-Rechner. Multi- Tasking-Rechner können gleichzeitig parallel mehrere Pro­ gramme, z. B. zur Steuerung unterschiedlicher Peripheriegerä­ te, abarbeiten. Diese verschiedenen Programme werden bei Ausfall des Rechners zweckmäßigerweise auf mehrere der ver­ bleibenden Rechnereinheiten verteilt, um eine möglichst gleichmäßige Auslastung des Gesamtsystems zu erreichen.
Bei einer besonders vorteilhaften Variante der Erfindung werden die Software-Programme aller Rechnereinheiten beim Systemstart jeweils in den Arbeitsspeicher der anderen Rech­ nereinheiten geladen und gestartet, jedoch im Regelfall nicht aktiviert. Das heißt, daß zu einem gegebenen Zeitpunkt immer nur eine Version jedes Software-Programms aktiv ist und somit an der Rechenverarbeitung und dem Datenverkehr teilnimmt. Bei Ausfall einer Rechnereinheit wird dann eine andere Version desselben Software-Programms, das auf dem ausgefallenen Rechner lief, aktiviert. Daraus ergibt sich eine schnellere Reaktionszeit bei Störungen von einzelnen Rechnereinheiten.
Der Datenbus zwischen den Rechnereinheiten ist vorzugsweise eine aus dem Stand der Technik an sich bekannte Hochge­ schwindigkeitsdatenverbindung, womit hier Datenverbindungen mit einer Übertragungsrate von mindestens 10 Mbit/s ver­ standen werden sollen.
Gemäß einer besonders vorteilhaften Ausführungsform der Er­ findung ist jede Rechnereinheit über einen zugeordneten Pe­ ripheriebus mit Peripheriegeräten verbunden. Sie sendet und empfängt Signale zu und von den Peripheriegeräten, die von der Software weiterverarbeitet werden. Die Vernetzung von Peripheriegeräten über Peripheriebusse ist an sich z. B. aus der Automatisierungstechnik bekannt. Erfindungsgemäß befin­ det sich jeweils zwischen zwei Peripheriebussen ein elektro­ nisch steuerbarer Schalter, über den die Peripheriebusse derart miteinander verbunden werden können, daß zwei Rech­ nereinheiten, denen die beiden Peripheriebusse jeweils zu­ geordnet sind, Zugriff auf beide Peripheriebusse und die angeschlossenen Peripheriegeräte haben. Somit kann eine Rechnereinheit nicht nur die Software-Programme, einschließ­ lich dem aktuellen Status einer anderen Rechnereinheit über­ nehmen, sondern auch auf deren Peripheriegeräte zugreifen.
Die vorliegende Erfindung ist besonders vorteilhaft bei sol­ chen Fahrzeugen und Anlagen einsetzbar, welche auf eine Vielzahl von Sensoren, Aktuatoren, Anzeigen, Bedienelemente und dergleichen zugreifen und diese steuern und die besonde­ ren Sicherheitsanforderungen unterliegen, wie militärische Landfahrzeuge. Die vorliegende Erfindung schafft eine Redun­ danz der Systemkomponenten, ohne einzelne Komponenten aus­ schließlich für den Ersatz ausgefallener Komponenten vorzu­ halten. Dadurch können besonders kostengünstige Systeme ent­ worfen werden, die genauso zuverlässig sind, wie die Systeme mit Mehrfachauslegung nach dem Stand der Technik.
Durch die offene Struktur ist das erfindungsgemäße Rechner­ system ferner leicht um zusätzliche Funktionen erweiterbar. Diese werden lediglich an den Datenbus angeschlossen, und ihre zugeordneten Peripheriebusse werden über Schalter mit den Peripheriebussen der anderen Rechnereinheiten verbunden.
Weitere Vorteile und Merkmale der vorliegenden Erfindung ergeben sich aus der folgenden detaillierten Beschreibung mit Bezug auf die Zeichnung. In den Figuren zeigen:
Fig. 1 eine schematische Darstellung eines Rechnersystems gemäß der vorliegenden Erfindung,
Fig. 2 eine schematische Darstellung einer Rechnereinheit, und
Fig. 3 eine ähnliche Ansicht wie Fig. 1, wobei jedoch eine ausgefallene Rechnereinheit gestrichelt gezeichnet ist.
Fig. 1 zeigt eine beispielhafte Ausführungsform der vorlie­ genden Erfindung. Diese besteht aus zwei oder mehr, bei dem gezeigten Beispiel drei Rechnereinheiten 1, 2 und 3, welche über einen schnellen Datenverbindungsbus 4, 5 und 6 mitein­ ander verbunden sind. Der Datenverbindungsbus 4, 5, 6 kann ein ringförmiger Bus sein, auf den die jeweiligen Rechner­ einheiten 1, 2 und 3 zugreifen, oder er kann, wie in Fig. 1 gezeigt, aus einzelnen Datenverbindungen 4, 5, 6 bestehen, welche jeweils zwischen zwei Rechnereinheiten bestehen.
Bei dem Datenverbindungsbus handelt es sich vorzugsweise um eine Hochgeschwindigkeitsverbindung mit einer Übertragungs­ rate von mindestens 10 Mbit/s.
Die Rechnereinheiten sind bei der gezeigten Ausführungsform im wesentlichen gleich aufgebaut. Eine Rechnereinheit be­ steht im wesentlichen aus den Baugruppen, die in Fig. 2 schematisch gezeigt sind. In einer Gehäuseeinheit 30 mit rechnerüblichen Einbauten, z. B. Netzteil und Backplane, be­ finden sich die Baugruppen Zentraleinheit mit Hauptspeicher und CPU 31, Massenspeicher und Controller 32, eine Schnitt­ stellenbaugruppe 33, welche für den Anschluß an die schnelle Datenverbindung 4, 5 und 6 dient, und eine Schnittstellen­ baugruppe 34, welche für den Anschluß an die Peripheriebusse 7, 8 und 9 dient.
Diese Baugruppen entsprechen dem Stand der Technik, und sie werden daher hier nicht weiter spezifiziert. Die schnellen Datenverbindungen 4, 5 und 6 bzw. der Datenverbindungsbus sind mit den nach dem Stand der Technik üblichen Mitteln aufgebaut, z. B. mit Glasfaserkabeln oder Kupferleitungen.
An jede Rechnereinheit 1, 2 und 3 ist, wie in Abb. 1 gezeigt, ein Peripheriebus 7, 8 und 9 angeschlossen, an de­ nen wiederum Peripheriegeräte 13 bis 25 angeschlossen sind. Diese Peripheriegeräte stellen die Schnittstellen zwischen den Rechnereinheiten und der Umwelt dar, und sie umfassen Sensoren, Aktuatoren, Anzeigen, Bedienelemente, Bediengeräte und dergleichen. Die Art und Anzahl der Peripheriegeräte hängt ab von der Funktion, die von der jeweiligen Rechner­ einheit in Verbindung mit den Peripheriegeräten erfüllt wer­ den soll. Typische Bedienelemente bei Landfahrzeugen sind z. B. Lenkhändel, Gas- und Bremspedal, Richtgriff zur Steue­ rung von Sichtgeräten usw. Typische Aktuatoren sind Stell­ motoren für die Positionierung der Sichtmittel oder zur Steuerung von Fahrfunktionen.
Die einzelnen Peripheriebusse 7, 8 und 9 sind galvanisch voneinander getrennt, sie können jedoch durch Schalterbau­ gruppen 10, 11 und 12, bei der gezeigten Ausführungsform paarweise, miteinander verbunden werden. Die Schalterbau­ gruppen enthalten steuerbare Schalter, wobei die Steuerung der Schalter über die Peripheriebusse erfolgt; d. h. jede von zwei Rechnereinheiten 1 und 2, 2 und 3, 3 und 1, deren Peri­ pheriebusse 7 und 8, 8 und 9, 9 und 7 von einer Schalterbau­ gruppe 10, 11 bzw. 12 verbunden werden können, kann den ent­ sprechenden Schalter öffnen oder schließen. Jede Schalter­ baugruppe 10, 12 ist hierfür über zwei Schnittstellen an die benachbarten Peripheriebusse 7 und 8, 8 und 9, 9 und 7 an­ geschlossen.
Das oben beschriebene System wird erfindungsgemäß nach dem im folgenden beschriebenen Verfahren betrieben, um bei Stö­ rung oder Ausfall einer Rechnereinheit deren Funktion auf andere zu übertragen, ohne die Funktionsfähigkeit des Ge­ samtsystems zu beeinträchtigen.
Zunächst ist die Arbeitsweise des Rechnersystems im Normal­ zustand beschrieben, d. h. bei Funktionsfähigkeit aller Rech­ nereinheiten; dann wird das Verfahren beschrieben, das zur Anwendung kommt, wenn eine Rechnereinheit gestört ist oder ganz ausfällt.
Im Normalzustand erfüllt jeder Rechner 1, 2, 3 die ihm zuge­ wiesene Aufgabe. Das geschieht dadurch, daß auf dem Rechner ein Software-Programm, oder eine Software, läuft, welches die Information von den Peripheriegeräten 13 bis 25 empfängt und verarbeitet und seiner Aufgabe gemäß entsprechende Da­ ten, Befehle und dergleichen an die Peripheriegeräte sendet. Diese Software wird in der Regel automatisch nach dem Ein­ schalten jeder Rechnereinheit gestartet. Darüberhinaus be­ findet sich auf dem Massenspeicher jeder Rechnereinheit je eine Kopie der Software-Programme, welche auf den anderen Rechnereinheiten laufen. Diese Softwarekopie wird im Normal­ zustand nicht in den Arbeitsspeicher geladen und nicht akti­ viert.
Ein wichtiges Merkmal der Erfindung ist, daß jeder Rechner zyklisch, z. B. im Abstand von wenigen Sekunden, seinen in­ ternen Status über die Hochgeschwindigkeitsdatenverbindung 4, 5 und 6 an alle anderen Rechner sendet. Der interne Sta­ tus wird hier repräsentiert durch die Inhalte der in der Software vereinbarten globalen und statischen Variablen. Jede Rechnereinheit 1, 2, 3 speichert die empfangenen Daten der anderen Rechnereinheiten in seinem Speicher, z. B. dem Hauptspeicher 31 oder dem Massenspeicher 32. Ferner führt jede Rechnereinheit zyklisch einen Selbsttest durch. Das Ergebnis dieses Selbsttests wird ebenfalls über die schnelle Datenverbindung 4, 5, 6 zu den anderen Rechnern gesendet. Jeder Rechner empfängt diese Selbsttest-Meldungen der ande­ ren Rechner und analysiert sie. Außerdem wird überprüft, ob innerhalb einer vorher vereinbarten Zeit eine Selbsttest- Meldung empfangen wird (Watchdogfunktion).
Tritt in einem Rechner eine Störung auf, die den Rechner daran hindert, seine Aufgabe korrekt auszuführen, meldet dieser seine Störung in der zyklisch gesendeten Selbsttest- Meldung. Falls der Rechner so stark gestört ist, daß er kei­ ne Meldung mehr senden kann, z. B. bei einem Totalausfall, wird von den anderen Rechnereinheiten das Ausbleiben der Meldung durch die Watchdogfunktion erkannt.
Zur Veranschaulichung ist die Ausfallsituation in Fig. 3 dargestellt. Hier wird angenommen, daß die Rechnereinheit 3 ausfällt. Sie ist daher gestrichelt gezeichnet. Sobald die anderen Rechner 1, 2 eine Störung bzw. den Ausfall des Rech­ ners 3 erkannt haben, wird mit einem der unten näher be­ schriebenen Verfahren ein Rechner ermittelt, welcher die Aufgabe des ausgefallenen übernehmen soll. Dieser Rechner, z. B. Rechner 2, lädt die Kopie der Software, die auf dem ausgefallenen Rechner gelaufen ist, d. h. in diesem Fall die Kopie der Software des Rechners 3, von seinem Massenspeicher 32 in seinen Arbeitsspeicher 31 und startet sie. Durch die Verwendung eines Multi-Tasking-Betriebssystems auf allen Rechnern wird hierbei die Ausführung der bis dahin laufenden Software nicht unterbrochen. Beim Starten der neuen Software (des Rechners 3) werden die zuletzt von diesem ausgefallenen Rechner 3 gesendeten Statusdaten als Initialisierungswerte der globalen und statischen Variablen der Software verwen­ det. Dadurch ist der Betriebszustand der Software praktisch identisch mit dem Stand, den der ausgefallene Rechner 3 kurz vor der Störung hatte. Ferner schickt der "Ersatzrechner" 2 über seinen zugeordneten Peripheriebus 8 einen Befehl an die Schalterbaugruppe 11, um die Verbindung zwischen den Peri­ pheriebussen 8 und 9 zu schließen. Damit hat der Rechner 2 Zugriff auf alle Peripheriegeräte 17 bis 21, die ursprüng­ lich von dem gestörten Rechner 3 verwaltet wurden. Somit kann der Rechner 2 die Aufgabe des gestörten oder ausgefal­ lenen Rechners ohne Einschränkung und ohne Datenverlust wei­ terführen.
Die Rechenleistung der Rechnereinheiten 1, 2, 3 wird beim Entwurf vorzugsweise so gewählt, daß die Mehrbelastung der CPU keine störenden Leistungsverluste verursacht. Bei einer alternativen Ausführungsform kann vorgesehen sein, die Soft­ ware-Programme eines gestörten Rechners auf mehrere der un­ gestörten Rechner zu verteilen, so daß eine gleichmäßigere Auslastung der ungestörten Rechnereinheiten erzielt wird. Insbesondere für den Worst-Case, daß alle Rechnereinheiten bis auf eine ausfallen, ist es ferner zweckmäßig den einzel­ nen Software-Programmen Prioritäten zuzuweisen, so daß bei einer Überlastung der verbleibenden, ungestörten Rechnerein­ heit gewährleistet ist, daß die Software-Programme höchster Priorität weiterlaufen können.
Für die Ermittlung des oder der Rechner, welche die Aufgabe eines ausgefallenen Rechners übernehmen sollen, können fol­ gende Verfahren eingesetzt werden:
Bei einer ersten Ausführungsform wird bei dem Entwurf des Systems für alle denkbaren Kombinationen von Rechnerausfäl­ len festgelegt, welcher Rechner welche Aufgaben oder Pro­ gramme übernehmen soll. Diese Festlegung kann z. B. in Form einer Tabelle dargestellt werden. In jedem Rechner ist diese Tabelle als Datei gespeichert. Bei Ausfall eines Rechners ermitteln die anderen Rechner auf der Basis dieser Tabelle, welcher Rechner die Aufgabe des ausgefallenen Rechners über­ nehmen soll bzw. auf welchen Rechnern welche Software-Pro­ gramme des ausgefallenen Rechners gestartet werden sollen.
Gemäß einer zweiten Ausführungsform ermitteln alle Rechner laufend ihren Auslastungsgrad. Dieser wird den anderen Rech­ nern entweder zyklisch oder bei Bedarf, d. h. bei Auftreten einer Störung, mitgeteilt. Bei Ausfall eines Rechners über­ nimmt dann automatisch der Rechner mit der geringsten Aus­ lastung dessen Aufgaben.
Das erörterte Ausführungsbeispiel der vorliegenden Erfindung bezog sich auf eine Konfiguration mit drei Rechnereinheiten und den Ausfall der Rechnereinheit 3. Das dargelegte Beispiel ist selbstverständlich übertragbar auf Systeme mit zwei, vier oder mehr Rechnern, auf den Ausfall einer belie­ bigen anderen Rechnereinheit sowie auf den Ausfall von mehr als einer Rechnereinheit, solange noch mindestens eine Rech­ nereinheit funktionsfähig ist. Es wird erwartet, daß Rech­ nersysteme mit 3 bis 4 Rechnereinheiten eine gute Betriebs­ sicherheit bei vertretbarem Verwaltungsaufwand und Kosten ergeben. Auf jedem Rechner können gleichzeitig parallel meh­ rere Programme laufen.
Anstatt die Aufgaben eines Rechners vollständig an einen anderen Rechner zu übertragen, kann, wie gesagt, auch vor­ gesehen sein, dessen Aufgaben auf mehrere verbleibende Rech­ ner zu verteilen. Die Aufgabenverteilung ist bei einer Aus­ führungsform im voraus in einer Tabelle festgelegt, sie kann auch gemäß eines Algorithmus ermittelt werden. Die Schalter­ baugruppen 10, 11, 12 der Peripheriebusse werden so geschal­ tet, daß jeder Rechner, der eine Aufgabe oder Teilaufgabe des oder der ausgefallenen Rechner übernimmt, Zugriff auf deren Peripheriebusse haben.
Anstelle der ringförmigen Anordnung der Peripheriebusse 7, 8 und 9 kann z. B. auch eine sternförmige Anordnung vorgesehen werden, bei der die Peripheriebusse bei einem entsprechenden Knotenpunkt miteinander verbunden werden können.
Im folgenden ist eine vorteilhafte Modifikation des erfin­ dungsgemäßen Verfahrens beschrieben. Bei der Übernahme der Aufgabe eines ausgefallenen Rechners durch einen anderen entsteht eine Zwischenphase, in der die Aufgabe nicht ausge­ führt wird. Diese dauert vom Ausfall des Rechners über die Erkennung des Ausfallzustands durch die anderen Rechner, das Schalten der Peripheriebusse, bis zur Beendigung des Start­ vorgangs der entsprechenden Software des ausgefallenen Rech­ ners auf dem Ersatzrechner. Während sich die erste Phase bis zum Erkennen des Ausfalls in der Praxis beliebig verkürzen läßt, indem die Wiederholrate der Selbsttestmeldung erhöht sowie entsprechend die Zeitkonstante der Watchdogfunktion verringert wird, hängt die Dauer des Startvorgangs der Soft­ ware von zahlreichen Parametern, wie der Komplexität der Software und der Schnelligkeit und Leistungsfähigkeit des Massenspeichers und der Zentraleinheit ab. Als eine vorteil­ hafte Alternative zu dem oben beschriebenen Verfahren wird daher vorgeschlagen, nach Einschalten der Rechner alle Soft­ ware-Programme, die für die Ausführung der unterschiedlichen Aufgaben benötigt werden, in die Hauptspeicher alle Rechner­ einheiten zu laden. Die geladenen Programme werden dann alle bis auf das, welches die ursprüngliche Aufgabe der jeweili­ gen Rechnereinheit durchführt, in einen passiven Zustand oder Ruhezustand versetzt. Bei Übernahme der Funktion eines ausgefallen Rechners braucht dann nur noch das entsprechende Programm mit den aktuellsten Daten initialisiert und akti­ viert werden. Der langwierige Lade- und Startvorgang ent­ fällt, und die Reaktionszeit verkürzt sich.
Bei einem Rechnersystem mit sehr vielen Rechnereinheiten kann ferner vorgesehen sein, daß nicht jede Rechnereinheit Kopien der Software-Programme aller anderen Rechnereinheiten speichert und gegebenenfalls starten kann, sondern daß vorab eine Zuordnung in Gruppen festgelegt wird, gemäß derer be­ stimmte Rechnereinheiten als "Ersatzrechner" für bestimmte andere Rechnereinheiten bereitgehalten werden, wodurch der Speicherbedarf in jeder Rechnereinheit herabgesetzt wird und die Verbindung der Peripheriebusse überschaubar bleibt.
Die in der vorstehenden Beschreibung, den Ansprüche und der Zeichnung offenbarten Merkmale können sowohl einzeln als auch in beliebiger Kombination wesentlich für die Verwirkli­ chung der Erfindung sein.

Claims (16)

1. Verfahren zum Betreiben eines Rechnersystems, welches aus wenigstens zwei Rechnereinheiten (1, 2, 3) besteht, die über einen Datenbus (4, 5, 6) miteinander verbunden sind, wobei jede Rechnereinheit einen Speicher (31, 32) hat, mit folgen­ den Verfahrensschritten:
  • - Speichern einer Kopie der Softwareprogramme, welche auf jeder Rechnereinheit (1, 2, 3) laufen, in anderen Rech­ nereinheiten (1, 2, 3);
  • - zyklisches Übertragen des Status der laufenden Software­ programme über den Datenbus (4, 5, 6) von jeder Rechner­ einheit (1, 2, 3) zu den anderen Rechnereinheiten;
  • - Speichern des empfangenen Status in den Rechnereinheiten (1, 2, 3); und
  • - dann, wenn eine Störung in einer Rechnereinheit (3) auf­ tritt, Starten der zugehörigen Softwareprogramme auf einer anderen Rechnereinheit (2) oder verteilt auf meh­ reren anderen Rechnereinheiten (1, 2) unter Verwendung des zuletzt gespeicherten Status.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß jede Rechnereinheit (1, 2, 3) zyklisch einen Selbsttest durchführt und die Ergebnisse dieses Selbsttests an die anderen Rechner­ einheiten überträgt und daß dann, wenn eine Störung in einer Rechnereinheit (3) erkannt wird, oder dann, wenn nach einer vorgegebenen Zeitspanne von einer Rechnereinheit (3) kein Er­ gebnis übermittelt wird, die Softwareprogramme dieser einen Rechnereinheit (3) auf der (2) oder den (1, 2) anderen Rech­ nereinheit(en) gestartet werden.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß zu keinem Zeitpunkt mehr als eine Version eines Softwarepro­ grammes aktiviert wird.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekenn­ zeichnet, daß die Rechnereinheiten (2; 1, 2), auf denen die Softwareprogramme der gestörten Rechnereinheit (3) gestartet werden, nach Maßgabe einer festen Zuweisung ermittelt werden.
5. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekenn­ zeichnet, daß die Rechnereinheiten (1, 2, 3) zyklisch ihre Auslastung ermitteln und den anderen Rechnereinheiten mittei­ len, und daß die Rechnereinheiten (2; 1, 2), auf denen die Softwareprogramme der gestörten Rechnereinheit (3) gestartet werden, abhängig von einem Vergleich der Auslastungen der un­ gestörten Rechnereinheiten bestimmt werden.
6. Verfahren nach einem der vorangehenden Ansprüche, dadurch ge­ kennzeichnet, daß
die Kopie der Softwareprogramme in einem Arbeitsspeicher (31) der Rechnereinheiten (1, 2, 3) gespeichert wird,
im ungestörten Betrieb in jeder Rechnereinheit (1, 2, 3) nur die eigene Version der Softwareprogramme aktiviert wird, und
bei Störung einer Rechnereinheit (3) die kopierte Version de­ ren Softwareprogramme in dem Arbeitsspeicher (31) einer ande­ ren Rechnereinheit aktiviert, mit dem zuletzt gespeicherten Status aktualisiert und gestartet wird.
7. Verfahren zum Betreiben eines Rechnersystem nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß die Rechnereinheiten (1, 2, 3) jeweils mit einem Peripheriebus (7, 8, 9) verbunden werden und bei Störung einer Rechnerein­ heit (3) deren Peripheriebus (9) mit dem Peripheriebus (7, 8) der anderen Rechnereinheit(en) (1, 2) verbunden wird.
8. Verfahren nach einem der vorangehenden Ansprüche, dadurch ge­ kennzeichnet, daß den verschiedenen Softwareprogrammen Prio­ ritäten zugewiesen werden, und bei Störung einer Rechnerein­ heit (3) die entsprechenden Softwareprogramme nach Maßgabe der Prioritäten auf der (2) oder den (1, 2) anderen Rechner­ einheiten gestartet werden.
9. Rechnersystem, mit
wenigstens zwei Rechnereinheiten (1, 2, 3), einem Datenbus (4, 5, 6) zum Verbinden der Rechnereinheiten, einer Datenschnittstelle (33) in jeder Rechnereinheit zum Übertragen des Status laufender Softwareprogramme über den Datenbus (4, 5, 6) zu den jeweils anderen Rechnereinheiten (1, 2, 3),
einem Speicher (31, 32) in jeder Rechnereinheit zum Speichern einer Kopie der Softwareprogramme, welche auf den jeweils an­ deren Rechnereinheiten (1, 2, 3) laufen, und zum Speichern des von den anderen Rechnereinheiten (1, 2, 3) übertragenen Status und
einer Steuereinrichtung (31) in jeder Rechnereinheit (1, 2, 3) zum Starten der Softwareprogramme einer anderen Rechner­ einheit (3) unter Verwendung des zuletzt gespeicherten Sta­ tus, wenn in dieser anderen Rechnereinheit (3) eine Störung auftritt.
10. Rechnersystem nach Anspruch 9, dadurch gekennzeichnet, daß jeder Rechnereinheit (1, 2, 3) ein Peripheriebus (7, 8, 9) zugeordnet ist, und Schaltmittel (10, 11, 12) zum wahlweisen Verbinden der Peripheriebusse (7, 8, 9) vorgesehen sind.
11. Rechnersystem nach Anspruch 10, dadurch gekennzeichnet, daß die Schaltmittel (10, 11, 12) steuerbare Schalter aufweisen.
12. Rechnersystem nach Anspruch 10 oder 11, dadurch gekennzeich­ net, daß die Schaltmittel (10, 11, 12) für eine paarweise Verbindung der Peripheriebusse (7, 8, 9) angeordnet sind, so daß beide Rechnereinheiten (1, 2; 2, 3; 1, 3), die einem Pe­ ripheriebuspaar (7, 8; 8, 9; 7, 9) zugeordnet sind, bei ge­ schlossenen Schaltmitteln Zugriff auf beide Peripheriebusse das Paares und daran angeschlossenen Peripheriegeräte (13-16, 17-21, 22-25) haben.
13. Rechnersystem nach einem der Ansprüche 9 bis 12, dadurch ge­ kennzeichnet, daß der Datenbus ein Hochgeschwindigkeitsdaten­ bus ist.
14. Rechnersystem nach einem der Ansprüche 9 bis 13, dadurch ge­ kennzeichnet, daß drei Rechnereinheiten (1, 2, 3) vorgesehen sind.
15. Rechnersystem nach Anspruch 14, dadurch gekennzeichnet, daß die Peripheriebusse (7, 8, 9) ringförmig verbunden sind.
16. Rechnersystem nach einem der Ansprüche 9 bis 15, dadurch ge­ kennzeichnet, daß jede Rechnereinheit (1, 2, 3) einen Multi­ tasking-Rechner aufweist.
DE19618105A 1996-05-06 1996-05-06 Rechnersystem und Verfahren zum Betreiben eines Rechnersystems Ceased DE19618105A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19618105A DE19618105A1 (de) 1996-05-06 1996-05-06 Rechnersystem und Verfahren zum Betreiben eines Rechnersystems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19618105A DE19618105A1 (de) 1996-05-06 1996-05-06 Rechnersystem und Verfahren zum Betreiben eines Rechnersystems

Publications (1)

Publication Number Publication Date
DE19618105A1 true DE19618105A1 (de) 1997-11-13

Family

ID=7793453

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19618105A Ceased DE19618105A1 (de) 1996-05-06 1996-05-06 Rechnersystem und Verfahren zum Betreiben eines Rechnersystems

Country Status (1)

Country Link
DE (1) DE19618105A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10357118A1 (de) * 2003-12-06 2005-07-07 Daimlerchrysler Ag Laden von Software-Modulen
DE102007036124A1 (de) * 2007-08-01 2009-02-05 Conti Temic Microelectronic Gmbh Fahrzeug mit dynamischen Systemen sowie Verfahren zum dynamischen Durchführen von Fahrzeugfunktionen

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4356546A (en) * 1980-02-05 1982-10-26 The Bendix Corporation Fault-tolerant multi-computer system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4356546A (en) * 1980-02-05 1982-10-26 The Bendix Corporation Fault-tolerant multi-computer system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
COMPUTER DESIGN, Jan. 1984, Seite 40, 43, 44 *
KOBUS, S. und andere: Grundzüge der Zentral- steuerung für das Vermittlungssystem Metacouta L, in: Elektrisches Nachrichtenwesen, Bd. 47, No. 3, 1972, S. 157-161 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10357118A1 (de) * 2003-12-06 2005-07-07 Daimlerchrysler Ag Laden von Software-Modulen
DE102007036124A1 (de) * 2007-08-01 2009-02-05 Conti Temic Microelectronic Gmbh Fahrzeug mit dynamischen Systemen sowie Verfahren zum dynamischen Durchführen von Fahrzeugfunktionen

Similar Documents

Publication Publication Date Title
DE69332185T2 (de) Bildung und Aufrechterhaltung von Zugriffsgruppen an der Lan/Wan Schnittstelle
DE69809254T2 (de) Architektur eines hybriden echzeitsteuerungssystems und verfahren zu seinem betrieb
DE19836347C2 (de) Fehlertolerantes Computersystem
DE69414609T2 (de) Informationsanzeigesystem zur aktiven redundanten rechnergestützten prozesssteuerung
EP2478685B1 (de) Steuervorrichtung, ein-/ausgabevorrichtung, verbindungsschaltevorrichtung und verfahren für ein flugzeug-steuersystem
EP1685451A1 (de) Redundantes automatisierungssystem zur steuerung einer tech-n ischen einrichtung sowie verfahren zum betrieb eines derar-ti gen automatisierungssystems
EP3211533B1 (de) Fehlertolerante systemarchitektur zur steuerung einer physikalischen anlage, insbesondere einer maschine oder eines kraftfahrzeugs
EP1711892B1 (de) Verfahren zum bestimmen eines übernahmeszenarios der softwareeinheiten bei einem rechnerausfall in einer serverfarm
EP1358554B1 (de) Automatische inbetriebnahme eines clustersystems nach einem heilbaren fehler
DE602004010111T2 (de) Backup-zellensteuerung
WO2013007349A1 (de) Verfahren und system zur dynamischen verteilung von programmfunktionen in verteilten steuerungssystemen
DE19983975B3 (de) Programmierbares Steuersystem und Rücksetz-Steuerverfahren für das programmierbare Steuersystem
EP3983897B1 (de) Verfahren zum sicherstellen und aufrechterhalten der funktion eines sicherheitskritischen gesamtsystems
DE19618105A1 (de) Rechnersystem und Verfahren zum Betreiben eines Rechnersystems
EP3538996A1 (de) Austausch von echtzeitdaten zwischen programmmodulen
EP3252549A1 (de) Verfahren zum betreiben einer automatisierungseinrichtung sowie automatisierungseinrichtung
EP1136896A2 (de) Hochverfügbares Rechnersystem und Verfahren zur Umschaltung von Bearbeitungsprogrammen eines hochverfügbaren Rechnersystems
EP1820307B1 (de) Verfahren zum nachweis der verf]gbarkeit von systemkomponenten eines redundanten kommunikationssystems
EP1536328A2 (de) Datenverarbeitungssystem mit automatisierbarer Verwaltung und Verfahren zur automatisierten Verwaltung eines Datenverarbeitungssystems
EP4091054A1 (de) Verfahren und vorrichtung zum rekonfigurieren eines automatisiert fahrenden fahrzeugs in einem fehlerfall
DE19520745C2 (de) Infrastruktur für ein System von verteilten Objektmanager-Komponenten
EP1433061B1 (de) Verfahren zum überprüfen eines rechnerkerns eines mikroprozessors oder eines mikrocontrollers
DE102004061013A1 (de) Sichere Eingabe-/Ausgabe-Baugruppe für eine Steuerung
EP3399375B1 (de) Verfahren zur konfiguration von steuergeräten
DE19520740C2 (de) Infrastruktur für ein System von verteilten Objektmanager-Komponenten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection