DE19832060A1 - Doppelbare Prozessoreinrichtung - Google Patents

Doppelbare Prozessoreinrichtung

Info

Publication number
DE19832060A1
DE19832060A1 DE19832060A DE19832060A DE19832060A1 DE 19832060 A1 DE19832060 A1 DE 19832060A1 DE 19832060 A DE19832060 A DE 19832060A DE 19832060 A DE19832060 A DE 19832060A DE 19832060 A1 DE19832060 A1 DE 19832060A1
Authority
DE
Germany
Prior art keywords
processor
mpu
bus
cross
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19832060A
Other languages
English (en)
Other versions
DE19832060C2 (de
Inventor
Majid Ghameshlu
Wolfgang Kainrath
Stephan Knecht
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.)
Nokia Solutions and Networks GmbH and Co KG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE19832060A priority Critical patent/DE19832060C2/de
Priority to PCT/DE1999/001917 priority patent/WO2000004448A1/de
Priority to CNB998087203A priority patent/CN1149481C/zh
Publication of DE19832060A1 publication Critical patent/DE19832060A1/de
Application granted granted Critical
Publication of DE19832060C2 publication Critical patent/DE19832060C2/de
Priority to US09/761,803 priority patent/US6694449B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1633Error detection by comparing the output of redundant processing systems using mutual exchange of the output between the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

Eine Prozessoreinrichtung (MPU), welche eine Takterzeugungseinheit (CLK), eine Prozessoreinheit (CPU), einen Arbeitsspeicher (MEM), einen Prozessorbus (PBU) sowie eine Bussteuereinrichtung (BMI), welche eine Schnittstelle für einen Kreuzbus (BXL) zu zumindest einer weiteren Prozessoreinrichtung (MPU') aufweist. Die Bussteuereinrichtung (BMI) überwacht den Datenzugriff der Prozessoreinrichtung (CPU) über den Prozessorbus (PBU) und tauscht über den Kreuzbus (BXL) Signale betreffend den Datenzugriff aus, wertet sie aus und gibt in Abhängigkeit von dem Ergebnis der Auswertung ein Fehlersignal aus. In einem Prozessorsystem (PSR), das aus zumindest zwei miteinander über den Kreuzbus (BXL) verbundenen Prozessoreinrichtungen (MPU, MPU') besteht, werden die Prozessoreinheiten (CPU, CPU') der Prozessoreinrichtungen (MPU, MPU') synchronisiert gestartet; die Bussteuereinrichtungen (BMI, BMI') der Prozessoreinrichtungen (MPU, MPU') tauschen bei jedem Datenzugriff der Prozessoreinheiten (CPU, CPU') über den Kreuzbus (BXL) Signale aus und geben im Falle einer mangelnden Übereinstimmung ein Fehlersignal aus. Bei einem Fehler in einer Prozessoreinrichtung (MPU) wird der Betrieb des Prozessorsystems (PSR) auf der anderen Prozessoreinrichtung (MPU') weitergeführt.

Description

Die Erfindung betrifft eine Prozessoreinrichtung, welche eine Takterzeugungseinheit, eine Prozessoreinheit, einen Arbeits­ speicher und einen als Daten- und Adressenbus für die Prozes­ soreinheit und den Arbeitsspeicher eingerichteten Prozessor­ bus aufweist.
Prozessoreinrichtungen der genannten Art werden zur Steuerung verschiedener technischer Systeme, wie z. B. vermittlungstech­ nischer Systeme eines Telefonnetzes eingesetzt. In Abhängig­ keit von dem Anwendungsbereich weist die Prozessoreinrichtung zusätzliche, anwendungsspezifische Komponenten auf, die von der Prozessoreinrichtung gesteuert werden und gegebenenfalls selbst wiederum andere, externe Komponenten steuern.
Bei vielen Anwendungen, so auch bei den erwähnten vermitt­ lungstechnischen Systemen, wird aus sicherheitstechnischen Gründen eine besondere Fehlersicherheit verlangt. Zur Errei­ chung der Fehlersicherheit werden die wesentlichen Hardware­ teile innerhalb des Prozessorsystems der Anwendungssteuerung verdoppelt. Das Prozessorsystem enthält somit zwei gleichar­ tige Ausführungen einer Prozessoreinrichtung, von denen eine als aktive Einrichtung die Aufgaben des Prozessorsystems aus führt, während die andere Einrichtung passiv ist und im Leerlauf oder parallel in einem "Tandembetrieb" arbeitet. Auf der aktiven Seite wird während des Betriebes das Auftreten eines Fehlers überwacht. Im Falle eines Fehlers der aktiven Einrichtung nimmt die passive Einrichtung automatisch den Betrieb auf, wobei das Umschalten möglichst problemlos und für den Benutzer unbemerkt ablaufen soll. Die nunmehr passive Einrichtung kann nun gewartet oder ausgewechselt werden, ohne daß eine Unterbrechung des Betriebs, der durch die nun aktive Einrichtung gewährleistet wird, befürchtet werden müßte.
Wenn in besonderen Fällen die Erfordernisse der Systemsicher­ heit sehr hoch sind und eine Verdoppelung nicht mehr aus­ reicht, kann die Prozessoreinrichtung auch mehrfach innerhalb des Prozessorsystems ausgeführt sein, wobei stets eine der Einrichtungen aktiv ist, dagegen die übrigen passiv sind. Die Überwachung und die Reihenfolge des gegenseitigen Ablösens der Prozessoreinrichtungen kann hierbei z. B. zyklisch erfol­ gen. Die Verallgemeinerung von dem gedoppelten Fall auf den allgemeineren Fall der Vervielfachung ist für den Fachmann ohne weiteres umsetzbar und wird der Kürze halber im folgen­ den bei der Diskussion gedoppelter Systeme stets stillschwei­ gend mitbehandelt, soweit nicht ausdrücklich anderes ausge­ führt wird.
Bei bisher bekannten Verfahren erfolgt das Aktualisieren der passiven Seite zum Zeitpunkt des Umschaltens. Hierbei geht die passive Prozessoreinrichtung erst dann in den Arbeitszu­ stand, wenn ein Fehler seitens der aktiven Prozessoreinrich­ tung aufgetreten ist, übernimmt soweit möglich deren Status, z. B. den Inhalt des Arbeitsspeichers, und setzt dann den Betrieb fort. Dies ist naturgemäß mit einer deutlich spürba­ ren Unterbrechung des Betriebs verbunden, und in vielen Fäl­ len müssen einzelne Bereiche des Betriebs oder sogar der gesamte Betrieb gänzlich abgebrochen und neu begonnen werden. Dies bedeutet z. B. in einer Vermittlungseinrichtung eine vorübergehende oder bleibende Unterbrechung einer Datenver­ bindung bzw. Nachrichtenübermittlung.
Es ist daher Aufgabe der Erfindung, ein Prozessorsystem mit doppelbaren Prozessoreinrichtung zu schaffen, in dem die genannten Nachteile nicht auftreten. Insbesondere soll die Fehlerüberwachung und Fehlerbehandlung und weitestgehend ohne eine Unterbrechung der anwendungsspezifischen Steuerung ab­ laufen können.
Diese Aufgabe wird ausgehend von einer Prozessoreinrichtung der eingangs genannten Art mittels einer in der Prozessor­ einrichtung vorgesehenen Bussteuereinrichtung gelöst, welche eine Schnittstelle für einen Kreuzbus zu zumindest einer weiteren Prozessoreinrichtung aufweist und dazu eingerichtet ist, den Datenzugriff der Prozessoreinrichtung über den Pro­ zessorbus zu überwachen und über den Kreuzbus Signale betref­ fend den Datenzugriff auszutauschen, auszuwerten und in Ab­ hängigkeit von dem Ergebnis der Auswertung ein Fehlersignal auszugeben.
Diese Lösung ermöglicht es, ohne eine Störung des Anwendungs­ betriebs befürchten zu müssen, während des Betriebes die Prozessorfunktionen zuverlässig zu überwachen und im Falle einer Abweichung rasch eine Fehlerbehandlung einzuleiten. Dadurch lassen sich Betriebsunterbrechungen im Fehlerfall, aber auch bei Wartungen, auf ein Mindestmaß reduzieren oder sogar gänzlich vermeiden.
In einer bevorzugten Ausführungsform der Erfindung, die einen parallelen Ablauf zweier oder mehrerer Einrichtungen ("Mikro­ synchronität") gestattet und eine Erkennung einer im Fehler­ fall auftretenden Asynchronität nach einer Latenzzeit von wenigen Systemtakten ermöglicht, ist die Takterzeugungsein­ heit mit einer Takterzeugungseinheit einer zweiten, über den Kreuzbus verbundenen Prozessoreinrichtung innerhalb einer vorgegebenen maximalen Synchronisationstoleranz synchroni­ sierbar, und die Prozessoreinheit auf der Grundlage des syn­ chronisierten Taktes der Takterzeugungseinheit durch ein Startsignal mit einer Prozessoreinheit der zweiten Prozes­ soreinrichtung innerhalb einer vorgegebenen maximalen Takt­ differenz synchronisiert startbar. Soweit hierbei auf eine zweite Prozessoreinrichtung Bezug genommen wird, so ist dies nicht als Einschränkung auf lediglich zwei Einrichtungen im Prozessorsystem zu verstehen; vielmehr ist hiermit eine be­ sonders ausgewählte Prozessoreinrichtung, z. B. die zuerst anlaufende oder eine bereits aktive Prozessoreinrichtung gemeint.
Es ist weiters zweckmäßig, wenn die Bussteuereinrichtung dazu eingerichtet ist, bei einem Datenaustausch über den Prozes­ sorbus, z. B. einem Datenzugriff der Prozessoreinheit,
  • - eine Signatur der ausgetauschten Daten entgegenzunehmen,
  • - die Signatur mit der zumindest einen weiteren Bussteuerein­ richtung über den Kreuzbus auszutauschen,
  • - die so erhaltene Signatur mit der eigenen Signatur zu ver­ gleichen und
  • - im Falle einer mangelnden Übereinstimmung der Signaturen ein Fehlersignal auszugeben.
Für die Durchführung der Signaturenkontrolle weist die Bussteuereinrichtung (BMI) günstigerweise einen Vergleichs­ baustein auf, über dessen Eingänge die Signaturen zugeführt werden und der zum bitweisen Vergleich der Signaturen einge­ richtet ist.
Um Laufzeiten über den Kreuzbus auszugleichen, ist es zweck­ mäßig, wenn die eigenen Signaturen über einen Silospeicher zeitverzögert dem Vergleich zugeführt werden.
In einer weiteren bevorzugten Ausführungsform weist die Bussteuereinrichtung eine Kreuzleseeinrichtung auf, welche zum gegenseitigen Auslesen von Komponenten der Prozessorein­ richtung und/oder einer zweiten, über den Kreuzbus verbunde­ nen Prozessoreinrichtung über den Kreuzbus unter Freigabe der gelesenen Daten zu einem mit der Kreuzleseeinrichtung der zweiten Prozessoreinrichtung synchronisierten Zeitpunkt ein­ gerichtet ist. Dies gestattet den Zugriff durch Komponenten, welche über den Kreuzbus synchronisiert sind, auf nicht syn­ chronisierte ("asynchrone") Komponenten.
Dabei ist günstigerweise die Kreuzleseeinrichtung dazu einge­ richtet, bei einem Lesezugriff auf eine Komponente, welche seitens der Prozessoreinrichtung zugreifbar ist, die von der Komponente erhaltenen Daten über den Kreuzbus zu übermitteln.
Gleichermaßen ist es dabei günstig, wenn die Kreuzleseein­ richtung dazu eingerichtet ist, anstelle eines Lesezugriffs auf eine Komponente, welche seitens der zweiten Prozessorein­ richtung zugreifbar ist, die entsprechenden Daten über den Kreuzbus von der zweiten Prozessoreinrichtung zu empfangen.
Für eine Verwaltung des Zugriffes auf "asynchrone" Komponen­ ten ist es nützlich, wenn die Kreuzleseeinrichtung den Zu­ griff auf die Komponenten der Prozessoreinrichtung bzw. der zweiten Prozessoreinrichtung aufgrund der Adressierung des den betreffenden Komponenten zugeordneten Adreßbereichs steu­ ert, wobei
  • - ein erster Adreßbereich dem Zugriff beider Prozessorein­ richtungen auf die betreffende Komponente der Prozessorein­ richtung,
  • - ein zweiter Adreßbereich dem Zugriff beider Prozessorein­ richtungen auf die betreffende Komponente der zweiten Pro­ zessoreinrichtung sowie
  • - ein dritter Adreßbereich dem Zugriff der Prozessoreinrich­ tungen auf die jeweils eigene Komponente zugeordnet ist.
Gleichermaßen wird die oben genannte Aufgabe ausgehend von einer Prozessoreinrichtung der eingangs genannten Art mittels einer in der Prozessoreinrichtung vorgesehenen Bussteuerein­ richtung gelöst, welche dazu eingerichtet ist, in Abhängig­ keit vom Betriebszustand der Prozessoreinrichtung über den Prozessorbus während einer Zugriffspause der Prozessoreinheit auf Komponenten der Prozessoreinrichtung direkt zuzugreifen und über den Kreuzbus Daten auszutauschen, welche bei dem Direktzugriff gelesen und/oder zu schreiben sind oder solche Daten betreffen.
Durch diese Lösung ist es möglich, Speicherinhalte zwischen den Prozessoreinrichtungen auch während des Betriebes des Prozessorsystems zu kopieren, etwa wenn eine (passive) Ein­ richtung auf den Stand der aktiven Einrichtung während des Vollbetriebs gebracht wird. Durch die Ausnützung der Zu­ griffspausen des Prozessors sind dabei etwaige Einbußen der Prozessorleistung weitgehend oder sogar gänzlich reduziert.
Hierbei ist es vorteilhaft, etwa um einem Überlauf der Zwi­ schenspeicher bei dem Datenaustausch über den Kreuzbus vorzu­ beugen, wenn die Bussteuereinrichtung einen Ausgang aufweist, welcher mit der Prozessoreinheit verbunden ist und mittels welchem die Prozessoreinheit für die Dauer des Direktzugriffs der Bussteuereinrichtung über den Prozessorbus vorübergehend anhaltbar ist.
Günstigerweise enthalten die über den Kreuzbus ausgetauschten Daten Zusatzinformationen zu den bei dem Direktzugriff gele­ senen bzw. geschriebenen Daten, z. B. Kenndaten, welche den Beginn oder das Ende eines Datenblockes anzeigen, oder eine Adressenkennung zur Unterscheidung von Adressen und Daten.
In einer weiteren bevorzugten Ausführungsform weist die Bussteuereinrichtung eine Kreuzauffrischungs-Leiteinrichtung auf, welche dazu eingerichtet ist, den Inhalt des Arbeits­ speichers über Direktzugriffe auszulesen und gemeinsam mit der jeweils zugehörigen Speicheradresse über den Kreuzbus zu übermitteln. Dies ermöglicht das koordinierte Kopieren der betreffenden Speicherinhalte.
Dabei ist es zweckmäßig, um auch an sich bereits kopierte Bereiche auf einem aktuellen Stand zu halten, wenn die Leit­ einrichtung dazu eingerichtet ist, bei Schreibzugriffen der Prozessoreinheit auf den Arbeitsspeicher innerhalb des Adres­ senbereichs der bereits übermittelten Speicherinhalte jeweils eine Kopie der betreffenden Speicherdaten und Speicheradres­ sen über den Kreuzbus zu übermitteln.
Günstigerweise weist die Leiteinrichtung zwei Intervallregi­ ster auf, die in bezug auf den Arbeitsspeicher ein Adressen­ intervall definieren, aus welchem der Speicherinhalt auszule­ sen und zu übermitteln ist, und die nach erfolgter Übermitt­ lung des Speicherinhalts des Adressenintervalls auf ein neues Adressenintervall gesetzt werden, welches dem vorhergehenden Adressenintervall angrenzend ist.
Dabei ist es aus Gründen der Einfachheit nützlich, wenn eines der Intervallregister in Verbindung mit der Basisadresse des Arbeitsspeichers den Adressenbereich der insgesamt bereits übermittelten Speicherinhalte anzeigt.
Weiters ist es vorteilhaft, insbesondere um verschiedene Datenübertragungsraten in der Prozessoreinrichtung und auf dem Kreuzbus auszugleichen, wenn die Leiteinrichtung einen Silospeicher als Pufferspeicher für die über den Kreuzbus zu übertragenden Daten und Adressen aufweist.
Um einem Überlaufen des Silospeichers vorzubeugen, weist zweckmäßigerweise die Leiteinrichtung einen Signalausgang auf, welcher bei einem vorgegebenen Füllungsgrad des Si­ lospeichers aktiviert ist und welcher mit einem Eingang der Prozessoreinheit verbunden ist, durch welchen Schreibzugriffe der Prozessoreinheit auf den Arbeitsspeicher verlangsamt oder vorübergehend aufgehalten werden.
Für das koordinierte Kopieren der Speicherinhalte ist es weiters nützlich, wenn die Bussteuereinrichtung eine Kreu­ zauffrischungs-Folgeeinrichtung aufweist, welche dazu einge­ richtet ist, über den Kreuzbus gemeinsam mit der jeweils dazugehörigen Speicheradresse empfangene Speicherinhalte in den Arbeitsspeicher an der entsprechenden Adressenstelle zu schreiben.
Dabei ist es günstig, wenn die Kreuzauffrischungs-Folgeein­ richtung dazu eingerichtet ist, den Arbeitsspeicher nur au­ ßerhalb des Vollbetriebszustandes der Prozessoreinrichtung zu schreiben.
Zum Ausgleich verschiedener Datenübertragungsraten ist es vorteilhaft, wenn die Kreuzauffrischungs-Folgeeinrichtung einen Silospeicher als Pufferspeicher für die über den Kreuz­ bus übertragenen Daten und Adressen aufweist.
Die oben gestellte Aufgabe wird ebenfalls durch ein Prozes­ sorsystem bestehend aus zumindest zwei Prozessoreinrichtungen der dargestellten Art gelöst, bei welchem erfindungsgemäß
  • - die Prozessoreinrichtungen miteinander über den Kreuzbus verbunden sind,
  • - die Prozessoreinheiten der Prozessoreinrichtungen auf der Grundlage eines gemeinsamen Taktes untereinander durch ein gemeinsames Startsignal innerhalb einer vorgegebenen maxi­ malen Taktdifferenz synchronisiert startbar sind und
  • - die Bussteuereinrichtungen der Prozessoreinrichtungen dazu eingerichtet sind, bei jedem darauffolgenden Datenzugriff der Prozessoreinheiten über den jeweils zugeordneten Pro­ zessorbus über den Kreuzbus Signale betreffend den Datenzu­ griff auszutauschen, hinsichtlich ihrer Übereinstimmung auszuwerten und im Falle einer mangelnden Übereinstimmung ein Fehlersignal auszugeben.
Die Vorteile dieser Lösung wurden im Zusammenhang mit der erfindungsgemäßen Prozessoreinrichtung bereits dargestellt.
Günstigerweise ist das Prozessorsystem dazu eingerichtet, aufgrund eines Fehlersignals zumindest in jener Prozessor­ einrichtung, die das Fehlersignal ausgelöst hat, eine Fehler­ behandlung, z. B. eine Fehlerdiagnose, durchzuführen und wäh­ renddessen den Betrieb des Prozessorsystems auf der zumindest einen übrigen Prozessoreinrichtung weiterzuführen. Dadurch gelingt die "reibungslose" Weiterführung des Betriebs des Prozessorsystems selbst im Falle des Auftretens eines Fehlers in einer der Prozessoreinrichtungen.
Die Erfindung wird im folgenden anhand eines in den Figuren illustrierten Ausführungsbeispieles einer Prozessorsteuerung für eine Vermittlungsstation eines ATM-Systems ("Asynchronous Transfer Mode System") näher erläutert. Die Figuren zeigen in Blockdiagrammen
Fig. 1 eine Übersicht der Komponenten des Prozessorsystems des Ausführungsbeispieles;
Fig. 2 die Überprüfung der Signaturen;
Fig. 3 die Speicherzuteilung der Adressenbereiche einer gedoppelten Komponente;
Fig. 4 die Übermittlung von Daten/Adressen während der Her­ stellung des mikrosynchronen Zustandes über den Kreuzbus, wobei Fig. 4a den Datenfluß auf der "aktiven" Seite zeigt und Fig. 4b den auf der "passiven" Seite.
Es sei der Beschreibung des Ausführungsbeispieles vorausge­ schickt, daß die Erfindung sich nicht in der Anwendung auf die Steuerung einer Vermittlungsstelle eines ATM-Systems oder eines anderen Kommunikationssystems erschöpft, sondern für beliebige andere prozessorgesteuerte Systeme anwendbar ist, in denen aufgrund der geforderten Fehlersicherheit eine Dop­ pelung - oder allgemeiner eine Vervielfachung - der Prozes­ soreinrichtung angebracht ist.
Doppelung der Prozessoreinrichtung
In Fig. 1 sind die wesentlichen Komponenten der Prozessor­ steuerung PSR einer ATM-Vermittlungsstation nach der Erfin­ dung gezeigt. Die Vermittlungssteuerung PSR weist zwei Pro­ zessoreinrichtungen MPU, MPU' ("Master Processing Units") auf, die grundsätzlich identischen Aufbau haben und deren Kompo­ nenten jeweils zu einer oder mehreren Baugruppen zusammenge­ faßt sein können. In dem Ausführungsbeispiel ist jede Prozes­ soreinrichtung MPU, MPU' als ein Einschub in einem Einschub­ gestell ausgebildet, welches insgesamt das Prozessorsystem der ATM-Vermittlung darstellt, zwei oder mehr Einschubplätze für die Prozessoreinrichtungen aufweist und unter Umständen auch andere Komponenten der Anwendung, z. B. Treiberbausteine des ATM-Netzes und Netzteile, vorsehen kann. Grundsätzlich ist schon das Vorhandensein einer Prozessoreinrichtung in dem Prozessorsystem PSR für die Ausführung der Aufgaben der Ver­ mittlungssteuerung ausreichend, denn jede Prozessoreinrich­ tung MPU, MPU' ist so ausgelegt, daß sie den vollen Betrieb ohne das Vorhandensein einer Partnereinrichtung MPU', MPU wahren kann. Die Verdoppelung erfüllt den Zweck, im Falle eines Ausfalls der aktiven Prozessoreinrichtung möglichst "unauffällig" auf die bisher passive Prozessoreinrichtung umschalten zu können. Diese Situation tritt z. B. im - selbst bei an sich sehr verläßlichen Systemen nie völlig auszu­ schließenden - Fehlerfall oder bei der Wartung der Prozessor­ einrichtung auf.
Jede Prozessoreinrichtung MPU weist eine Prozessoreinheit CPU ("Central Processing Unit") und einen Arbeitsspeicher MEM, der z. B. als dynamischer RAM-Speicher ausgebildet ist, auf. Weitere mögliche Komponenten sind etwa ein Permanentspeicher ROM ("Read Only Memory"), der z. B. als EPROM-Baustein ausge­ führt ist und die zum Initialisieren der Prozessoreinrichtung MPU nötigen Programme und Daten enthält, sowie ein Festplat­ tenspeicher HDD, der sich nicht unbedingt auf dem Einschub der Prozessoreinrichtung MPU befindet, aber dieser eindeutig zugeordnet ist. Ein Taktgeber CLK ("clock") liefert einen Systemtakt, im Beispiel 100 MHz, der zum Takten des Prozes­ sors CPU und zur Synchronisation mit den übrigen Komponenten dient. Weiters sind gewöhnlicherweise anwendungsspezifische Komponenten vorgesehen, im Beispiel ein ATM-Sende/Empfangs­ baustein ASE, der die eigentlichen Funktionen der ATM-Ver­ mittlung wahrnimmt und von dem Prozessor CPU gesteuert wird. Schließlich ist eine Tracer-Schnittstelle HWT ("Hard-Ware Tracer interface") vorgesehen, an die ein sogenannter Tracer zur Ablaufverfolgung ("trace") der Prozessoreinrichtung ange­ schlossen werden kann. Ein Prozessorbus PBU dient zum Aus­ tausch digitaler Daten zwischen dem Prozessor CPU und anderen Komponenten der Prozessoreinrichtung. Die Steuerung der Bus­ funktionen des Prozessorbus PBU wird von einer der genannten Komponenten oder von einer eigenen Einrichtung ausgeführt. Die Komponenten der zweiten Prozessoreinrichtung MPU' sind denen der ersten Prozessoreinrichtung MPU gleich und haben somit in Fig. 1 dieselben Bezugszeichen, denen zur Unter­ scheidung ein Strich (') hinzugefügt wurde.
Für den Austausch von Signalen zwischen den gedoppelten Pro­ zessoreinrichtungen MPU, MPU' ist in jeder Prozessoreinrich­ tung eine Bussteuereinrichtung BMI ("Bus Memory Interface") vorgesehen. Die Bussteuereinrichtungen beider Prozessorein­ richtungen sind miteinander über eine eigens für den Zweck der Herstellung und Überwachung der Mikrosynchronität einge­ richteten Schnittstelle verbunden, welche im folgenden als Kreuzbus BXL ("Bus cross Link"; in Abkürzungen und Bezugszei­ chen steht X für englisches "cross") bezeichnet wird. In dem Ausführungsbeispiel übernimmt die Bussteuereinrichtung BMI günstigerweise die Funktionen zur Steuerung sowohl des Kreuz­ bus als auch des Prozessorbus. Die Bussteuereinrichtung BMI kann als eigene Einheit oder unter Verwendung verschiedener Komponenten der Prozessoreinrichtung PSR realisiert sein; gegebenenfalls können die Komponenten Bussteuereinrichtung BMI auch für weitere Aufgaben vorgesehen sein.
Der Kreuzbus BXL ist ein paralleler, bidirektionaler Bus zwischen den beiden Prozessoreinrichtungen MPU, MPU' bzw. Bussteuereinrichtungen BMI, BMI' der Vermittlungssteuerung PSR. Er kann als Halbduplex-16bit-Bus oder als Vollduplex- 8bit-Bus geschaltet werden, wobei die Einstellung dieser Busmodi streng an den Betriebsmodus des Kreuzbus BXL gekop­ pelt ist. Hierbei wird hinsichtlich des Betriebsmodus zwi­ schen mikrosynchronen und nicht-mikrosynchronen Betrieb un­ terschieden, wobei der nicht-mikrosynchrone Betriebsmodus weiter aufgeteilt werden kann in die Auffrischungsphase, d. h. die Herstellung des mikrosynchronen Betriebs, und den "ein­ zelstehenden" Betrieb, worin nur eine Prozessoreinrichtung MPU arbeitet, während die andere MPU' nicht vorhanden oder betriebsbereit ist, etwa aufgrund eines Fehlers oder war­ tungsbedingt. Die Bussteuereinrichtung BMI verwaltet im be­ sonderen in Abhängigkeit von dem Betriebsmodus der Prozessor­ steuerung PSR, welche Komponenten der Bussteuereinrichtung BMI aktiviert werden. Hierfür sind weiter Steuersignale zwi­ schen den Bussteuereinrichtungen BMI, BMI' über den Kreuzbus BXL ausgekreuzt, um den Betriebsmodus hinsichtlich der betei­ ligten Prozessoreinrichtungen MPU, MPU' zu koordinieren.
Zum Puffern verschiedener über den Kreuzbus BXL übertragenen Informationen werden günstigerweise Silospeicher eingesetzt. Silospeicher sind auch als FIFO-Speicher ("First In - First Out"), Queues oder Warteschlangenspeicher bekannt; in einem Silospeicher gespeicherte Daten sind nur in der Reihenfolge ihres Eintreffens abrufbar und werden nach dem Abrufen aus dem Silospeicher gelöscht.
Zusätzlich sind die Taktgeber CLK, CLK' der beiden Prozessor­ einrichtungen synchronisierbar, und zwar sind beide Taktgeber CLK, CLK' miteinander fest synchronisiert, solange sie sich im fehlerfreien Zustand in der Vermittlungssteuerung PSR befinden. Die Synchronisation erfolgt über Taktkreuzleitungen CXL ("Clock cross Link"), die in logischer Hinsicht zum Kreuzbus gehören, in dem Ausführungsbeispiel jedoch gesondert ausgeführt sind. Die Synchronisation der Systemtakte erfolgt beim Initialisieren einer Prozessoreinrichtung MPU' dadurch, daß der Takt der ersten Prozessoreinrichtung MPU - sofern vorhanden - von dem Taktgeber CLK' übernommen wird. Von da an bleiben die beiden Taktgeber fest miteinander synchronisiert, wobei die zugelassenen Synchronisationstoleranzen, z. B. eine maximale Zeitdifferenz in Nanosekunden, in Abhängigkeit von der Ausführungsform festgelegt sind.
Mikrosynchrone Betriebsart
Ein wesentliches Ziel der Erfindung ist es, während des störungsfreien Betriebes die Prozessoreinrichtungen MPU, MPU' gleichzeitig im Vollbetrieb derart betreiben zu können, daß ihre Systemtakte miteinander synchronisiert und ihre Prozes­ soren CPU, CPU' zur selben Taktflanke dieselben Vorgänge ausführen. Diese besondere Art der Synchronität wird im fol­ genden als "Mikrosynchronität" bezeichnet. Die Erfindung befaßt sich somit mit der Herstellung, Aufrechterhaltung und Überwachung des mikrosynchronen Betriebes gedoppelter Systeme PSR, einschließlich des nach außen störungsfreien Umschaltens im Fehlerfall.
Die Überwachung des mikrosynchronen Betriebes erfolgt durch einen ständigen Austausch von Kontrollsignalen in Form von Signaturen zwischen den Prozessoreinrichtungen MPU, MPU'. Eine Signatur enthält Kenninformation zur Überprüfung eines Datenaustauschs, also hier eines Datenzugriffs des Prozessors CPU über den Prozessorbus PBU. Die Signaturen können bei­ spielsweise nach Art einer Prüfsumme oder mittels eines kom­ binierten Datenkompressions- und -auswahlverfahrens als Kenn­ code über die relevanten Größen des Datenzugriffs, z. B. gele­ sene/geschriebene Daten, Speicheradresse, Portadresse etc., oder einer vorbestimmten Teilmenge davon gebildet werden. Auf diese Weise weichen im Falle einer Störung des mikrosynchro­ nen Betriebs die Inhalte der ausgetauschten Signaturen von­ einander ab und können so zur Störungserkennung verwendet werden.
Dadurch wird eine Erkennung einer im Fehlerfall auftretenden Asynchronität nach einer Latenz zeit von vier Systemtakten möglich. Es liegt ein wesentlicher Vorteil der Erfindung darin, daß die Fehlererkennung sofort nach einem Hardware- oder Softwarefehler eingreifen und ein Umschalten auf die fehlerfreie Prozessoreinrichtung bewirken kann.
Nach der Erfindung sind die Prozessorbus-Zugriffe in beiden Prozessoreinrichtungen MPU, MPU' im mikrosynchronen Betriebs­ modus miteinander synchronisiert. Die Komponenten, die über die Prozessorbusse PBU, PBU' für die Prozessoren CPU, CPU' zugänglich sind, unterliegen somit ebenfalls der Mikrosyn­ chronität und bilden in jeder Prozessoreinrichtung MPU, MPU' jeweils einen "mikrosynchronen Bereich" MSY, MSY', in Fig. 1 mit einer unterbrochenen Linie umrandet. Die beiden "mikro­ synchronen Bereiche" sind untereinander durch den gemeinsamen Systemtakt der Taktgeber CLK, CLK' synchronisiert, in ihnen werden zu gleichen Taktzeiten die gleichen Vorgänge ausge­ führt. Die beiden Prozessoreinrichtungen MPU, MPU' nehmen stets die gleichen Zustände ein, solange der mikrosynchrone Betrieb fehlerfrei läuft. Zur Überprüfung der Mikrosynchroni­ tät werden über den Kreuzbus BXL Signaturen ausgetauscht. So­ lange die Signaturen der Prozessoreinrichtungen gleich sind, gilt im Sinne des Erfindungsgedankens die Mikrosynchronität als gewahrt. Die Signaturen werden bei jedem Buszugriff vom Prozessor CPU bestimmt und der Bussteuereinrichtung BMI über­ geben. In einer Variante könnte auch die Bussteuereinrichtung BMI selbst die Signatur über den Prozessorbus berechnen.
Eine Prozessoreinrichtung MPU kann auch Komponenten aufwei­ sen, die nicht einem "mikrosynchronen Bereich" MSY zugehören. Solche asynchronen Komponenten sind insbesondere solche, für die ein auf den Systemtakt synchronisierter Zugriff nicht möglich oder sinnvoll ist. Dies ist, mit Bezug auf Fig. 1, beispielsweise für einen Festplattenspeicher HDD oder einen Permanentspeicher ROM der Fall. Der Zugang zu diesen asyn­ chronen Komponenten ist mittels eines oder mehrerer asynchro­ ne Busse ABU realisiert, wobei die Bussteuereinrichtung BMI als Schnittstelle zwischen dem bzw. den asynchronen Bus(sen) einerseits und dem "mikrosynchronen" Prozessorbus PBU ande­ rerseits dient. Der Zugriff auf asynchrone Komponenten kann zum einen auf die jeweils eigene Komponente erfolgen, z. B. liest auf der "aktiven" Seite der Prozessor CPU aus dem Per­ manentspeicher ROM und analog der "passive" Prozessor CPU' aus dem Permanentspeicher ROM' der "passiven" Seite. Zum anderen kann ein asynchroner Zugriff auf eine bestimmte Kom­ ponente, z. B. einer bestimmten der beiden Festplatten HDD, HDD', erfolgen, wobei die so erhaltenen Daten zur anderen Prozessoreinrichtung kopiert werden ("cross read" - Kreuzle­ sen). Auf diese Weise ist es möglich, daß asynchrone Kompo­ nenten nur einfach ausgeführt oder, auch wenn sie gedoppelt sind, als unterschiedliche Geräte ansprechbar sind.
Überwachung der Mikrosynchronität (Signaturenaustausch, Fehlerbehandlung)
Zur Überprüfung des korrekten Betriebs im mikrosynchronen Zustand werden zwischen den Prozessoreinrichtungen MPU, MPU' Signaturen, die sich auf Daten der Prozessorbusse PBU, PBU' beziehen, ausgetauscht und miteinander verglichen, siehe hierzu Fig. 2. Die Signatur psg für den Prozessorbus PBU wird durch den Prozessor CPU der Prozessoreinrichtung MPU gebil­ det. Die Signatur xsg der Partnereinrichtung MPU' wird über den Kreuzbus BXL geliefert. Hierbei wird, um Laufzeitverzöge­ rungen auszugleichen, die eigene Signatur über einen Silo­ speicher PFF aufgepuffert. Die beiden Signaturen werden einem Vergleicher VGL zugeführt, der die Signaturen bitweise ver­ gleicht und dessen Ausgangssignal im Falle einer Ungleichheit zumindest eines Bits der eingehenden Signaturen aktiviert wird; das Ausgangssignal wird über ein D-Flipflop abgetaktet und als Signaturprüfsignal sfl an die Steuerlogik der Bus­ steuereinrichtung BMI übergeben.
Für Testzwecke kann ein Signaturfehler simuliert werden. Hierfür ist ein eigener Fehlertesteingang fti vorgesehen, welcher eine Logik FTL aktiviert, die in der Partnersignatur das erste Bit b0 durch das invertierte erste Bit der eigenen Signatur ersetzt.
Solange kein Kreuzlese-Zugriff stattfindet, erfolgt der Aus­ tausch von Signaturen. Günstigerweise ist hierbei der Kreuz­ bus auf Vollduplex-Betrieb geschaltet, so daß die Signaturen gleichzeitig übertragen werden können. Tritt eine Kreuzlese- Anforderung auf, wird der Signaturenaustausch gesperrt und die Datenpfade des Kreuzbus für das Kreuzlesen bereit ge­ schaltet. Beim Umschalten in die Signaturprüfung nach Ende des Kreuzlesevorganges bleibt das Signal zur Aktivierung des Signaturenvergleichs noch eine festgelegte Anzahl von Takten deaktiviert, bis wieder der Gleichlauf zwischen der eigenen und der ausgetauschten Signatur vorliegt.
Für Testzwecke kann weiters die Signaturprüfung auch im mi­ krosynchronen Modus über einen hierfür eigens vorgesehenen Eingang abgeschaltet werden. Dies kann dazu verwendet werden, um einer einzelnen Prozessoreinrichtung MPU für Testzwecke einen mikrosynchronen Betrieb vorzutäuschen.
Der Start des mikrosynchronen Betriebs, ausgehend von einem Zustand, in dem die Speicherinhalte der Arbeitsspeicher MEM, MEM' beider Prozessoreinrichtungen MPU, MPU' übereinstimmen, erfolgt beispielsweise über ein hierfür vorgesehenes Startsi­ gnal, den Synchronisations-Reset, der bei Bedarf auch über eine Prozessor-Unterbrechung realisiert sein kann. Aufgrund des Synchronisations-Resets werden die beiden Prozessorein­ heiten CPU, CPU' innerhalb einer vorgegebenen maximalen Takt­ differenz synchronisiert gestartet und führen in der Folge ihre Befehle mikrosynchron aus.
Aufgrund folgender Zustände oder Ereignisse:
  • - Auftreten eines Signaturfehlers - Signaturprüfsignal sfl;
  • - Kreuzlese-Timeout (siehe unten);
  • - Auftreten anderer Fehlerunterbrechungen, z. B. aufgrund interner Fehler in der Bussteuereinrichtung BMI;
  • - Systemstart oder -reset;
wird der mikrosynchrone Betrieb beendet. Im Falle eines Feh­ lers arbeitet die fehlerfreie Prozessoreinrichtung weiter und übernimmt so den Betrieb im "einzelstehenden" Modus; die andere Prozessoreinrichtung führt, soweit dies möglich ist, einen Selbsttest durch. Über entsprechende Anzeigen oder Fehlermeldungen kann dann dem Wartungspersonal der Moduswech­ sel angezeigt werden.
Zugriff auf den asynchronen Bereich (Kreuzlesen)
Die mit der Durchführung des Kreuzlesens befaßten Komponenten der Bussteuereinrichtung werden hier als Kreuzleseeinrichtung (BXR, "Bus cross Read control") bezeichnet. Die Kreuzleseein­ richtung kann als eigene Einheit der Bussteuereinrichtung BMI oder durch verschiedene Komponenten der Bussteuereinrichtung realisiert sein; die Komponenten der Kreuzleseeinrichtung können auch für andere Aufgaben vorgesehen sein. Die Kreuz­ leseeinrichtung dient dem gegenseitigen Auslesen von Kompo­ nenten, insbesondere asynchronen Komponenten, der Prozes­ soreinrichtungen MPU, MPU' über den Kreuzbus BXL; die ausge­ tauschten Daten werden zu einem mit der Partner-Kreuz­ leseeinrichtung synchronisierten Zeitpunkt freigegeben.
Die Steuerung des Zugriffs auf eine gedoppelte asynchrone Komponente, z. B. der Permanentspeicher ROM, ROM', erfolgt über die Adressierung des der Komponente zugeordneten Adreß­ bereichs. Die möglichen Zugriffsarten sind wie bereits er­ wähnt Zugriff auf die jeweils eigene Komponente (ROM/ROM'), auf die Komponente (ROM) der ersten Prozessoreinrichtung MPU oder auf die Komponente (ROM') der zweiten Prozessoreinrich­ tung MPU'; im zweiten und dritten Fall findet ein Kreuzlese­ vorgang zur anderen Prozessoreinrichtung statt. Um die drei verschiedenen Zugriffe zu realisieren, ist der Adreßbereich, der dem einer einzelnen Komponente entspricht, vorteilhafter­ weise im von dem Prozessor CPU erreichbaren Adreßbereich vervierfacht.
Ein Diagrammbeispiel der Speicherzuteilung ist in Fig. 3 für die Adressenbereiche Adr, Adr' der Permanentspeicher ROM, ROM' der gedoppelten Einrichtung PSR gezeigt, die jeweils einen Adreßraum von 64 MB einnehmen; der gesamte für die Permanentspeicher zugeteilte Adreßraum umfaßt somit 256 MB, z. B. ab einer Basisadresse 512 MB. Bei einem Zugriff auf den ersten Adreßbereich Adr wird auf den ersten Speicher ROM zugegriffen: die erste Bussteuereinrichtung BMI liest die Daten vom Speicher ROM über den entsprechenden asynchronen Bus ASU, übermittelt die Daten über den Kreuzbus zur anderen Einrichtung BMI' und gibt synchron die Daten auf beiden Pro­ zessorbussen PBU, PBU' frei. Ein Zugriff auf den zweiten Adreßbereich Adr' entspricht einem Zugriff auf den zweiten Speicher ROM', bei dem anstelle eines Lesezugriffs auf den eigenen Speicher ROM die erste Prozessoreinrichtung die Daten über den Kreuzbus BXL von der zweiten Prozessoreinrichtung übernimmt: analog zu dem vorigen Fall liest die zweite Bus­ steuereinrichtung BMI' die Daten vom Speicher ROM' über den entsprechenden asynchronen Bus ASU', übermittelt die Daten über den Kreuzbus zur ersten Einrichtung BMI und gibt syn­ chron die Daten auf beiden Prozessorbussen PBU, PBU' frei. Bei einem Zugriff auf den dritten Adreßbereich Adr/Adr' erfolgt in beiden Prozessoreinrichtungen MPU, MPU' der Zugriff auf den jeweils eigenen Permanentspeicher ROM, ROM', der Kreuzbus wird nicht benutzt. Der vierte Adreßbereich hat keine eigene Bedeutung und kann beispielsweise mit derselben Funktion wie der dritte Bereich belegt werden.
Durch den Kreuzlese-Mechanismus ist somit im mikrosynchronen Betrieb der Zugriff beider Prozessoren CPU, CPU' auf den asyn­ chronen Datenbereich MSY einer Baugruppe ermöglicht. Neben dem Zugriff über einen asynchronen Bus ABU wird auch der Zugriff auf interne Register dar Bussteuereinrichtung BMI derartig behandelt. Der Zugriff auf den asynchronen Bereich bzw. interne Register der Bussteuereinrichtung wird über den Kreuzbus BXL über jeweils eigene Anforderungssignale signali­ siert, die jeweils einen gesamten Buszyklus lang aktiviert sind. Durch ein zusätzliches Richtungssignal wird die Rich­ tung des Datentransfers zwischen den Bussteuereinrichtungen BMI, BMI' angezeigt.
Die Freigabe der kreuzgelesenen Daten auf dem Prozessorbus PBU, PBU' erfolgt mittels eines sogenannten Ready-Signals. Dieses Signal wird bei allen Zugriffen auf alle Komponenten außerhalb des synchronen Bereichs verwendet, sowie für "Dummy-Write"-Zugriffe, das sind Schreibzugriffe auf den asynchronen Bus ABU, ABU' oder Register der Bussteuereinrich­ tung, bei denen keine Daten übertragen werden und deshalb zur Synchronisation der Prozessoren CPU, CPU' verwendbar sind. Die Ready-Signale werden über den Kreuzbus BXL auf die Part­ nereinrichtung übertragen, wenn das entsprechende Anforde­ rungssignal gültig ist und die Kreuzlesefunktion aktiviert ist; auf der Partnerseite wird das Ready-Signal zweckmäßiger­ weise mit einem Timeout versehen. Falls das Timeout ohne erfolgreiches Kreuzlesen aus läuft, wird ein Fehlersignal und weiters ein Unterbrechungssignal ausgelöst, um eine System­ blockierung zu verhindern und der mikrosynchrone Betrieb beendet. Die Dauer des Timeout ergibt sich aus der maximalen Dauer eines Zyklus des asynchronen Bus zuzüglich interner Verzögerungen. Ein typischer Wert ist beispielsweise 330 Taktzyklen.
Die Auslösung des Fehlersignals im Falle des Kreuzlese- Timeout ist notwendig, da die empfangende Einheit nicht den Kreuzlesevorgang abbrechen kann, während die Treiber der sendenden Einheit noch aktiv sind; es bestünde nämlich die Gefahr einer Schädigung.
Die Kreuzlese- und "Dummy-Write"-Anforderungen können auch im nicht-mikrosynchronen Betrieb aktiv sein, wenn auch das Rea­ dy-Signal nicht über den Kreuzbus durchgeschaltet wird. Je­ doch wird auch im nicht-mikrosynchronen Betrieb das Timeout gestartet - welches sicher abläuft, da kein Ready-Signal der Partnereinrichtung gegeben wird - und durch das damit verbun­ dene Unterbrechungssignal wird die Betriebssoftware von dem unerlaubten Zugriff auf die Partnereinrichtung im nicht-mi­ krosynchronen Betrieb informiert.
Der Kreuzlesevorgang kann auch für den Zugriff anderer Kompo­ nenten des mikrosynchronen Bereichs auf asynchrone Komponen­ ten aktiviert werden, beispielsweise bei einem im Arbeits­ speicher angelegten Speicherpuffer für eine Festplatte des asynchronen Bereichs mit Datenaustausch zwischen Arbeits- und Festplattenspeicher durch z. B. Direktzugriffe.
Herstellen der Mikrosynchronität (Kreuzauffrischung)
Nach der Erfindung ist die Herstellung des mikrosynchronen Betriebs innerhalb kurzer Zeit ausgehend von einem Zustand, worin nur eine Prozessoreinrichtung MPU aktiv (im Vollbe­ triebszustand hinsichtlich des Betriebs des Prozessorsystems PSR als Vermittlungssteuerung) ist, ohne Störung des Betriebs möglich. Die zweite Prozessoreinrichtung MPU', die z. B. gera­ de eingesteckt oder zurückgesetzt wurde und nun ihren "passi­ ven" Betrieb initialisiert, wird auf den aktuellen Zustand der aktiven Prozessoreinrichtung MPU gebracht. Diese Auffri­ schung geschieht "im Hintergrund", also ohne Verzögerung der Betriebsabläufe der Vermittlungssteuerung PSR. Ziel der Ak­ tualisierung ist die Gleichheit der Speicherinhalte und gege­ benenfalls Peripheriezustände, wie hier der ATM-Bausteine, beider Prozessoreinrichtungen MPU, MPU'. Zu diesem Zweck ist die Bussteuereinrichtung BMI erfindungsgemäß dazu eingerich­ tet, im mikrosynchronen Betrieb über den Prozessorbus PBU während einer Zugriffspause des Prozessors CPU auf Komponen­ ten der Prozessoreinrichtung, im besonderen auf den Prozes­ sorbus PBU, direkt zuzugreifen und über den Kreuzbus BXL Daten auszutauschen, welche bei dem Direktzugriff gelesen und/oder zu schreiben sind oder solche Daten betreffen.
Zur Durchführung der Auffrischung wird der Speicherinhalt des "aktiven" Arbeitsspeichers MEM in den "passiven" MEM' ko­ piert. Das Lesen des "aktiven" Arbeitsspeichers MEM erfolgt mittels Direktzugriffen der Bussteuereinrichtung BMI über den Prozessorbus PBU während einer Zugriffspause der aktiven Prozessoreinheit CPU ("cross copy" - Kreuzkopieren). Die ausgelesenen Speicherinhalte werden über den Kreuzbus BXL zur passiven Prozessoreinrichtung gesendet. Zusätzlich wird bei Schreibzugriffen auf den Arbeitsspeicher MEM innerhalb des Bereichs der bereits übermittelten Speicherinhalte der Inhalt des entsprechenden Adreßbereichs des "passiven" Speichers MEM' fortgeschrieben ("cross update" - Kreuzfortschreibung), indem jeweils eine Kopie der betreffenden Daten und Spei­ cheradressen vom Prozessorbus PBU genommen und über den Kreuzbus BXL übermittelt wird.
Für die Durchführung des Kreuzlesens weist die Bussteuerein­ richtung BMI (selbstverständlich jeweils in beiden Prozes­ soreinrichtungen) eine Kreuzauffrischungs-Leiteinrichtung BXUM ("Bus cross Update Master") und eine Kreuzauffrischungs- Folgeeinrichtung BXUS ("Bus cross Update Slave") auf. Die Kreuzauffrischungs-Einrichtungen BXUM, BXUS können als eigene Einheiten der Bussteuereinrichtung BMI, gemeinsam in einer Kreuzauffrischungs-Einheit oder durch verschiedene Komponen­ ten der Bussteuereinrichtung realisiert sein; die Komponenten der Kreuzauffrischungs-Einrichtungen können auch für andere Aufgaben vorgesehen sein. Im folgenden werden die Kreuzauf­ frischungs-Einrichtungen der Kürze halber als Leiter BXUM bzw. Folger BXUS bezeichnet. Während der Auffrischungsphase ist der Leiter BXUM der aktiven Prozessoreinrichtung MPU der Sender, welcher den Inhalt des Arbeitsspeichers MEM über Direktzugriffe ausliest und gemeinsam mit der jeweils zugehö­ rigen Speicheradresse über den Kreuzbus BXL übermittelt, und der Folger BXUS' der passiven Prozessoreinrichtung MPU' der Empfänger, welcher über den Kreuzbus BXL gemeinsam mit der jeweils dazugehörigen Speicheradresse empfangene Speicherin­ halte in den Arbeitsspeicher MEM' an der entsprechenden Adressenstelle schreibt. In Fig. 4 sind die wesentlichen Merkmale des Datenflusses bei der Kreuzauffrischung über den Kreuzbus BXL unter Weglassung sämtlicher für das Verständnis nicht unbedingt erforderlicher Elemente, insbesondere Steuer­ leitungen und Sperrsignale der Leiteinrichtungen und des Kreuzbus, gezeigt.
Auf einer Prozessoreinrichtung ist - ausgenommen zu Testzwecken - stets entweder der Leiter BXUM oder der Folger BXUS aktiviert, nicht jedoch beide zugleich. Ebenso ist entspre­ chend der Natur des Auffrischungsvorganges innerhalb des Prozessorsystems PSR immer nur einer der Leiter der Prozes­ soreinrichtungen MPU, MPU' aktiviert. Letzteres ist in den Prozessoreinrichtungen mit Hilfe eines Kreuzauffrischungs- Freigabesignals (BXUM enable) zur Aktivierung des jeweils eigenen Leiters BXUM gewährleistet, welches zwischen den Prozessoreinrichtungen MPU, MPU' derart ausgekreuzt ist, daß es den Leiter anderer Prozessoreinrichtungen sperrt. Während der mikrosynchronen Betriebsart - ausgenommen gegebenenfalls zu Testzwecken - sind die Kreuzauffrischungseinrichtungen BXUM, BXUS deaktiviert, insbesondere ist ein Schreiben des Arbeitsspeichers durch den Folger BXUS im Vollbetriebszustand unterbunden.
Kreuzauffrischungs-Leiteinrichtung
Die Kreuzauffrischungs-Leiteinrichtung BXUM weist zwei Inter­ vallregister auf, die in bezug auf den Arbeitsspeicher MEM ein Adressenintervall definieren, aus welchem der Speicherin­ halt auszulesen und zur "passiven" Seite hin zu kopieren ist. Nach erfolgtem Kopieren des Speicherinhalts des durch die Intervallregister definierten Adressenintervalls wird das Intervall weitergerückt, vorteilhafterweise auf ein diesem angrenzendes Adressenintervall. Zugleich ist durch diese Register in Verbindung mit der Basisadresse des Arbeitsspei­ chers MEM der bereits kopierte Bereich definiert, welcher bei Schreibzugriffen in den entsprechenden "passiven" Speicherbe­ reich MEM' fortzuschreiben ist.
Während der Auffrischungsphase überprüft der Kreuzauffri­ schungs-Leiter BXUM der aktiven Seite MPU den durch die In­ tervallregister festgelegten Speicherbereich des Arbeitsspei­ chers MEM auf alle Schreibzugriffe sowie auf Direktlesezu­ griffe des "cross copy". Wird ein solcher Zugriff erkannt, werden die Adressen und Daten des Zugriffs sowie Zusatzinfor­ mation, z. B. ein Kennbit zur Unterscheidung von Adressen und Daten und/oder ein Kennbit zur Kennzeichnung des Burstendes, über den Kreuzbus BXL übertragen. Die Kennzeichnung des Burstendes ist im Fall des Ausführungsbeispiel erforderlich, da ein ganzer Datensatz der ATM-Anwendung, ein sogenannter Burst, 20 Wortlängen umfaßt. In Abhängigkeit von der Ausfüh­ rungsform können andere Zusatzinformationen über den Kreuz­ bus übertragen werden.
Bei jedem Prozessorbuszyklus wird mit dem Adressengültig­ keitssignal die Adresse in ein Adressvergleichsregister des Leiters BXUM übernommen und mit den Intervallregistern ver­ glichen. Das Ergebnis dieses Vergleichs wird zusammen mit dem Schreibsignal für den Arbeitsspeicher und dem Direktzugriffs­ signal der Bussteuereinrichtung BMI ausgewertet und daraus abgeleitet, ob ein Kreuzauffrischungszyklus zur Übertragung der Daten am Prozessorbus PBU über den Kreuzbus PBU auszufüh­ ren ist. Falls nicht, wartet der Leiter BXUM auf die nächste gültige Adresse. Wird dagegen ein Kreuzauffrischungszyklus initiiert, werden die Daten in einen Silospeicher, der in dem Leiter BXUM vorgesehen ist, geschrieben.
In dem Ausführungsbeispiel erscheinen während eines Burstzy­ klus mit jedem Taktzyklus des Prozessorbus PBU neue Daten der Busbreite, d. h. ein 32-Bit-Wort. Am Kreuzbus BXL mit 16 bit Busbreite werden somit zwei Taktzyklen gebraucht. Um die Prozessoreinrichtung MPU nicht zu bremsen, ist im Leiter BXUM zum Entschärfen des Flaschenhalses am Kreuzbus BXL ein Silo­ speicher MFF ("Master FiFo") vorgesehen. Wie im Blockschalt­ bild der Fig. 4a gezeigt, erfolgt das Schreiben in den Leite- Silospeicher MFF mit jeweils 32 bit, während das Auslesen, d. h. die Übermittlung über den Kreuzbus BXL, jeweils 16 bit liefert. Geschrieben wird jede Kreuzauffrischungs-pflichtige Adresse pad und jedes Kreuzauffrischungs-pflichtige Datum pdt. Die Adresse pad und das Datenwort pdt werden über D-Re­ gister zur Steuerung der Taktlage und einen Multiplexer MUX dem Silospeicher MFF zugeführt.
Wie bereits erwähnt, wird im Leite-Silospeicher MFF jeweils 32- bzw. 34-bitweise eingeschrieben und 16- bzw. 18-bitweise ausgelesen. Die Adressen pad werden mit den zugehörigen Kenn­ bits pkb, aber ohne die zwei höchsten Bits übertragen, um die gesamte Adresse in 32 bit übertragen zu können. Die Übertra­ gung der höchsten Bits ist im Ausführungsbeispiel entbehr­ lich, da der Arbeitsspeicher MEM nur einen Teil des Adreßrau­ mes belegt. Die Tiefe des Leite-Silospeichers MFF beträgt z. B. 20 mal 34 bit, wobei die 34 bit sich aus den je 16 bit der Adresse und des Datums zuzüglich der Zusatzinformationen ergeben und die Zahl 20 in Übereinstimmung der Burstlänge der ATM-Anwendung gewählt wurde. Der Leite-Silospeicher MFF ist mit einem Folge-Silospeicher SFF ("Slave FiFo") der anderen Prozessoreinrichtung MPU' verbunden und sendet, solange er nicht leer ist, diesem die Adreß- und Datenwörter.
In besonderen Fällen, z. B. wenn in der aktiven Prozessorein­ richtung MPU mehrere Kreuzauffrischungs-pflichtige Bursts hintereinander auftreten und dadurch der Silospeicher seinen Sättigungsstand erreicht, müssen die Bursts verlangsamt wer­ den. Das Erreichen der Sättigung des Leite-Silospeichers MFF wird der Steuerung des Arbeitsspeichers MEM mittels eines eigenen Signals angezeigt, welches die Schreibzugriffe auf den Speicher verlangsamt, z. B. indem Schreibzugriffe nur mehr mit der halben Taktrate gestattet werden, oder vorübergehend aufhält, bis das Signal wieder zurückgenommen wird. Das Si­ gnal wird dann aktiviert, wenn der Silospeicher MFF fast voll ist, also beispielsweise nur noch zwei Einträge frei sind, und ein Kreuzauffrischungs-pflichtiger Buszugriff erkannt wird. Damit wird verhindert, daß Zugriffe, die ohnehin kein Cross Update initiieren, verlangsamt werden.
Kreuzauffrischungs-Folgeeinrichtung
Der Folger BXUS' übernimmt die Daten, die der Leiter BXUM über den Kreuzbus BXL sendet. Je Zyklus werden im Ausfüh­ rungsbeispiel 16 bit Daten und 2 bit Steuerinformation (Adresse/Daten-Kennbit und Burstende-Kennbit) übernommen. Wie bereits erwähnt, weist der Folger BXUS' ebenfalls einen Si­ lospeicher auf, den Folge-Silospeicher SFF, in welchen einer­ seits über den Kreuzbus BXL ankommende Daten geschrieben, andererseits die Daten ausgelesen und auf den Prozessorbus PBU' weitergegeben werden. Wenn mindestens ein Satz aus Adreß- und Datenwort (also mindestens zwei Einträge im Si­ lospeicher) vorhanden sind, wird der Prozessorbus PBU' ange­ fordert und, sobald der Prozessorbus für den Folger BXUS' frei ist, ein Schreibzyklus auf den Arbeitsspeicher MEM' ausgeführt; währenddessen verhindert ein Wartesignal an den Folger BXUM den Verlust von Daten.
Wie aus dem Blockschaltbild der Fig. 4b zu ersehen ist, be­ steht der Folge-Silospeicher SFF aus zwei Blöcken FF0, FF1 mit einer Tiefe von z. B. je 36 Zellen, in die wechselweise einge­ schrieben wird. Das höhere 16-bit-Wort hsw eines Langwortes und das niedere 16-bit-Wort lsw eines Langwortes werden ja nacheinander über den Kreuzbus BXL empfangen; ein Multiplexer MUX führt die Verteilung der Wörter hsw, lsw sowie der Kenn­ bits pkb auf die Silospeicherblöcke FF0, FF1 aus. Auf diese Weise wird eine Umwandlung der 2×16 bit zu 32 Bit (34 Bit) durchgeführt. Die Kennbits der beiden Wörter hsw, lsw sind zueinander redundant und werden daher nur einmal pro Langwort der Adresse pad bzw. des Datums pdt gespeichert. Daraus er­ gibt sich, daß der eine Block FF0 18 bit breit und der ande­ re Block FF1 16 bit breit ist. Die über den Kreuzbus BXL kommenden Daten hsw, lsw, pkb werden abgetaktet und an einen Bus gelegt, an dem die Eingänge der Silospeicher-Zellen FF0, FF1 liegen. Die Steuerleitungen für die Eingänge der Blöcke FF0, FF1 werden von einem 6-bit-Schreibzähler gesteuert, wobei das niedrigste Bit des Schreibzählers darüber entschei­ det, in welchen Silospeicherblock geschrieben wird. Die Steu­ erbits pkb werden dabei nur bei Einträgen mit geradzahligen Adressen mitgespeichert, da die Prozessorbus-Zugriffe prinzi­ piell im 32-Bit-Format erfolgen.
Beim Auslesen des Folge-Silospeichers SFF wird erst die Adresse pad in ein Adreßvergleichsregister geladen und dort mit den Intervallregistern verglichen. Liegt die Adresse nicht im eingestellten Bereich oder handelt es sich nicht um eine gültige Adresse, dann nimmt sich der Folger BXUS' selbst außer Betrieb und zeigt über einen Signalausgang diesen Feh­ ler an, welcher z. B. eine Unterbrechung zur Fehlerbehandlung auslöst. Ist die Adresse in Ordnung, wird der Prozessorbus PBU' angefordert. Erhält der Folger BXUS' den Bus, wird ein Schreibzyklus auf den Speicher MEM' durchgeführt. Es werden Daten an den Prozessorbus PBU' gelegt, bis die im Silospei­ cher SFF mitgespeicherte Signalisierung der Kennbits das Burstende anzeigt.
Wie bereits beschrieben weist der Folger BXUS' einen zweige­ teilten Folge-Silospeicher SFF auf, welcher getaktet betrie­ ben wird und gleichzeitig beschrieben und gelesen werden kann. Ein Eintrag im Silospeicher SFF besteht aus 34 Bit. Davon sind 32 bit Daten pdt und Adresse pad, die beiden rest­ lichen Bits sind Kennbits pkb wie weiter oben erläutert, welche der Steuerung der Abfolge der Buszyklen dienen. Die Übertragung der Daten am Kreuzbus BXL erfolgt jedoch immer 32bitweise, ungeachtet der Kennbits, die am Kreuzbus im Adreßwort mitübertragen werden. Wenn im Folge-Silospeicher SFF ein Füllstand erreicht ist, so daß weniger als 20 Lang­ worte abgespeichert werden können, wird über das bereits erwähnte Sperrsignal das Übermitteln weiterer Daten über den Kreuzbus BSL durch den Leiter BXUM der Partnereinrichtung MPU gesperrt.
Aus dem Leite-Silospeicher MFF werden die Adressen/Daten aus­ gelesen, wenn und solange er nicht leer ist. Die Koordination zwischen Leite- und Folge-Silospeicher MFF, SFF erfolgt im Ausführungsbeispiel über ein Silo-Sperrsignal, welches vom Folger BXUS' der passiven Prozessoreinrichtung stammt und dazu dient, das Auslesen des Leite-Silospeichers MFF zu blockieren. Dies kann z. B. erforderlich sein, wenn sonst ein Überlauf des Folge-Silospeichers SFF nicht ausgeschlossen wäre. Das ist durch eine geeignete Überwachungsschaltung wie folgt gewährleistet. Wenn am Folger BXUS' der Silospeicher SFF über eine voreingestellte Grenze - beispielsweise wenn nur mehr 16 Langwörter frei sind, so daß nicht mehr ein gan­ zer ATM-Burst gespeichert werden kann - hinaus gefüllt wird, dann wird das Silo-Sperrsignal gesetzt, welches dem Folger BXUM der Partnerseite (der aktiven Prozessoreinrichtung MPU) zugeführt wird. Wird dieses Signal gesetzt während der Folger BXUM aktiviert ist, so wird mittels eines inneren Blockier­ signal der Folgersteuerung der Prozessorbus PBU und/oder der Prozessor CPU blockiert, um das Senden von weiteren Daten zu unterbinden. Außerdem wird im Folger BXUM ein Timeout von 128 Takten gestartet; bei Ablauf dieses Timeout wird das Blockiersignal wieder aufgehoben, der Folger BXUM angehalten und eine Fehlerbehandlung, z. B. mittels einer NMI-Unterbre­ chung, ausgelöst. Dies ist eine Sicherheitsmaßnahme, welche eine dauernde Blockierung einer Prozessoreinrichtung MPU im Fall eines Hardware-Fehlers der Partnereinrichtung MPU' ver­ meidet.
Der Mechanismus des Silo-Sperrsignals ist in allen Systemzu­ ständen außer bei aktivem Kreuzauffrischungs-Leiter BXUM ge­ sperrt, um eine ungewollte Blockierung des Kreuzbus BXL, z. B. durch einen defekten Folger BXUS', zu verhindern. Das Silo- Sperrsignal unterliegt am Eingang zum XUM einer Flankenerken­ nung derart, daß das innere Blockiersignal nur dann aktiviert wird, wenn eine fallende Flanke auftritt - das Sperrsignal ist low-aktiv - und der Leiter BXUM aktiviert ist.
Start des mikrosynchronen Betriebes
Die Kreuzauffrischung erreicht schließlich einen Zustand, in dem die Speicherinhalte der Arbeitsspeicher MEM, MEM' beider Prozessoreinrichtungen MPU, MPU' übereinstimmen. Wenn dies der Fall ist, löst die Bussteuereinrichtung BMI ein Signal aus, den Synchronisations-Reset, der den mikrosynchronen Modus aktiviert und veranlaßt, daß beide Prozessoren CPU, CPU' mikrosynchron die folgenden Befehle verarbeiten.
Testen der Kreuzauffrischung
Zum Testen der Kreuzauffrischungs-Funktionalität während des mikrosynchronen Betriebs oder auch im einzelstehenden Betrieb einer Prozessoreinrichtung MPU ist eine Kreuzauffrischungs- Testschleife (BXUT, "Bus cross Update Testloop") vorgesehen, die über eine eigene Steuerleitung aktivierbar ist. Lediglich in diesem Testfall ist es möglich, Leiter BXUM und Folger BXUS derselben Prozessoreinrichtung gleichzeitig zu aktivie­ ren. Die Testschleife schließt den Leiter BXUM und den Folger BXUS einer Prozessoreinrichtung miteinander kurz, deaktiviert jedoch die Verbindung über den Kreuzbus BXL zur anderen Pro­ zessoreinrichtung MPU'. Letzteres ist erforderlich, um etwai­ ge Kurzschlüsse auf den Datenleitungen zu vermeiden. Bei der internen Weitergabe der Daten vom Leiter BXUM an den Folger BXUS werden die Adressen mit einem in einem eigenen Register gespeicherten Offset versehen, damit der Folger BXUS die Daten nicht an dieselbe Adressenstelle zurückschreibt.
Es sei angemerkt, daß die Realisierung der Kreuzauffrischung an sich nicht voraussetzt, daß die beteiligten Prozessorein­ richtungen in einer mikrosynchronen Betriebsart betreibbar sind; vielmehr eignet sich der Kreuzauffrischungs-Mechanismus für gedoppelte Prozessoreinrichtungen allgemeinerer Art, in denen eine gegenseitige Aktualisierung z. B. des Arbeitsspei­ chers gefordert ist.

Claims (23)

1. Prozessoreinrichtung (MPU), welches eine Takterzeugungs­ einheit (CLK), eine Prozessoreinheit (CPU), einen Arbeits­ speicher (MEM) und einen als Daten- und Adressenbus für die Prozessoreinheit und den Arbeitsspeicher eingerichteten Pro­ zessorbus (PBU) aufweist, gekennzeichnet durch eine Bussteuereinrichtung (BMI), welche eine Schnittstelle für einen Kreuzbus (BXL) zu zumindest einer weiteren Prozes­ soreinrichtung (MPU') aufweist und dazu eingerichtet ist, den Datenzugriff der Prozessoreinrichtung (CPU) über den Prozes­ sorbus (PBU) zu überwachen und über den Kreuzbus (BXL) Signa­ le betreffend den Datenzugriff auszutauschen, auszuwerten und in Abhängigkeit von dem Ergebnis der Auswertung ein Fehlersi­ gnal auszugeben.
2. Prozessoreinrichtung (MPU) nach Anspruch 1, dadurch gekennzeichnet, daß die Takterzeugungsein­ heit (CLK) mit einer Takterzeugungseinheit (CLK') einer zwei­ ten, über den Kreuzbus verbundenen Prozessoreinrichtung (MPU') innerhalb einer vorgegebenen maximalen Synchronisati­ onstoleranz synchronisierbar ist und die Prozessoreinheit (CPU) auf der Grundlage des synchronisierten Taktes der Tak­ terzeugungseinheit (CLK) durch ein Startsignal mit einer Prozessoreinheit (CPU') der zweiten Prozessoreinrichtung (MPU') innerhalb einer vorgegebenen maximalen Taktdifferenz synchronisiert startbar ist.
3. Prozessoreinrichtung (MPU) nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Bussteuereinrich­ tung (BMI) dazu eingerichtet ist, bei einem Datenaustausch über den Prozessorbus (PBU), z. B. einem Datenzugriff der Prozessoreinheit (CPU),
  • - eine Signatur (psg) der ausgetauschten Daten entgegenzuneh­ men,
  • - die Signatur mit der zumindest einen weiteren Bussteuerein­ richtung (BMI') über den Kreuzbus (BXL) auszutauschen,
  • - die so erhaltene Signatur (xsg) mit der eigenen Signatur (psg) zu vergleichen und
  • - im Falle einer mangelnden Übereinstimmung der Signaturen ein Fehlersignal (sfl) auszugeben.
4. Prozessoreinrichtung (MPU) nach Anspruch 3, dadurch gekennzeichnet, daß die Bussteuereinrich­ tung (BMI) einen Vergleichsbaustein (VGL) aufweist, über dessen Eingänge die Signaturen (psg, xsg) zugeführt werden und der zum bitweisen Vergleich der Signaturen eingerichtet ist.
5. Prozessoreinrichtung (MPU) nach Anspruch 3 oder 4, dadurch gekennzeichnet, daß die eigenen Signaturen (psg) über einen Silospeicher (PFF) zeitverzögert dem Ver­ gleich zugeführt werden.
6. Prozessoreinrichtung (MPU) nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die Bussteuereinrich­ tung (BMI) eine Kreuzleseeinrichtung aufweist, welche zum gegenseitigen Auslesen von Komponenten der Prozessor­ einrichtung (MPU) und/oder einer zweiten, über den Kreuzbus (BXL) verbundenen Prozessoreinrichtung (MPU') über den Kreuz­ bus (BXL) unter Freigabe der gelesenen Daten zu einem mit der Kreuzleseeinrichtung der zweiten Prozessoreinrichtung (MPU') synchronisierten Zeitpunkt eingerichtet ist.
7. Prozessoreinrichtung (MPU) nach Anspruch 6, dadurch gekennzeichnet, daß die Kreuzleseeinrich­ tung dazu eingerichtet ist, bei einem Lesezugriff auf eine Komponente, welche seitens der Prozessoreinrichtung (MPU) zugreifbar ist, die von der Komponente erhaltenen Daten über den Kreuzbus (BXL) zu übermitteln.
8. Prozessoreinrichtung (MPU) nach Anspruch 6 oder 7, dadurch gekennzeichnet, daß die Kreuzleseeinrich­ tung dazu eingerichtet ist, anstelle eines Lesezugriffs auf eine Komponente, welche seitens der zweiten Prozessor­ einrichtung (MPU') zugreifbar ist, die entsprechenden Daten über den Kreuzbus (BXL) von der zweiten Prozessoreinrichtung (MPU') zu empfangen.
9. Prozessoreinrichtung (MPU) nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet, daß die Kreuzleseeinrich­ tung den Zugriff auf die Komponenten der Prozessoreinrichtung (MPU) bzw. der zweiten Prozessoreinrichtung (MPU') aufgrund der Adressierung des den betreffenden Komponenten zugeordne­ ten Adreßbereichs steuert, wobei
  • - ein erster Adreßbereich dem Zugriff beider Prozessorein­ richtungen (MPU, MPU') auf die betreffende Komponente der Prozessoreinrichtung (MPU),
  • - ein zweiter Adreßbereich dem Zugriff beider Prozessorein­ richtungen auf die betreffende Komponente der zweiten Pro­ zessoreinrichtung (MPU') sowie
  • - ein dritter Adreßbereich dem Zugriff der Prozessoreinrich­ tungen auf die jeweils eigene Komponente zugeordnet ist.
10. Prozessoreinrichtung (MPU) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Bussteuereinrich­ tung (BMI) dazu eingerichtet ist, in Abhängigkeit vom Be­ triebszustand der Prozessoreinrichtung über den Prozessorbus (PBU) während einer Zugriffspause der Prozessoreinheit (CPU) auf Komponenten der Prozessoreinrichtung direkt zuzugreifen und über den Kreuzbus (BXL) Daten auszutauschen, welche bei dem Direktzugriff gelesen und/oder zu schreiben sind oder solche Daten betreffen.
11. Prozessoreinrichtung (MPU) nach Anspruch 10, dadurch gekennzeichnet, daß die Bussteuereinrich­ tung (BMI) einen Ausgang aufweist, welcher mit der Prozes­ soreinheit (CPU) verbunden ist und mittels welchem die Pro­ zessoreinheit für die Dauer des Direktzugriffs der Bussteuer­ einrichtung (BMI) über den Prozessorbus (PBU) vorübergehend anhaltbar ist.
12. Prozessoreinrichtung (MPU) nach Anspruch 10 oder 11, dadurch gekennzeichnet, daß die über den Kreuzbus ausgetauschten Daten Zusatzinformationen zu den bei dem Di­ rektzugriff gelesenen bzw. geschriebenen Daten enthalten, z. B. Kenndaten, welche den Beginn oder das Ende eines Daten­ blockes anzeigen, oder eine Adressenkennung zur Unterschei­ dung von Adressen und Daten.
13. Prozessoreinrichtung (MPU) nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die Bussteuereinrich­ tung (BMI) eine Kreuzauffrischungs-Leiteinrichtung (BXUM) aufweist, welche dazu eingerichtet ist, den Inhalt des Ar­ beitsspeichers (MEM) über Direktzugriffe auszulesen und ge­ meinsam mit der jeweils zugehörigen Speicheradresse über den Kreuzbus (BXL) zu übermitteln.
14. Prozessoreinrichtung (MPU) nach Anspruch 13, dadurch gekennzeichnet, daß die Leiteinrichtung (BXUM) dazu eingerichtet ist, bei Schreibzugriffen der Pro­ zessoreinheit (CPU) auf den Arbeitsspeicher (MEM) innerhalb des Adressenbereichs der bereits übermittelten Speicherinhal­ te jeweils eine Kopie der betreffenden Speicherdaten und Speicheradressen über den Kreuzbus (BXL) zu übermitteln.
15. Prozessoreinrichtung (MPU) nach Anspruch 13 oder 14, dadurch gekennzeichnet, daß die Leiteinrichtung (BXUM) zwei Intervallregister aufweist, die in bezug auf den Arbeitsspeicher (MEM) ein Adressenintervall definieren, aus welchem der Speicherinhalt auszulesen und zu übermitteln ist, und die nach erfolgter Übermittlung des Speicherinhalts des Adressenintervalls auf ein neues Adressenintervall gesetzt werden, welches dem vorhergehenden Adressenintervall angren­ zend ist.
16. Prozessoreinrichtung (MPU) nach Anspruch 15, dadurch gekennzeichnet, daß eines der Intervall­ register in Verbindung mit der Basisadresse des Arbeitsspei­ chers (MEM) den Adressenbereich der insgesamt bereits über­ mittelten Speicherinhalte anzeigt.
17. Prozessoreinrichtung (MPU) nach einem der Ansprüche 13 bis 16, dadurch gekennzeichnet, daß die Leiteinrichtung (BXUM) einen Silospeicher (MFF) als Pufferspeicher für die über den Kreuzbus zu übertragenden Daten und Adressen auf­ weist.
18. Prozessoreinrichtung (MPU) nach Anspruch 17, dadurch gekennzeichnet, daß der Leiteinrichtung (BXUM) einen Signalausgang aufweist, welcher bei einem vorge­ gebenen Füllungsgrad des Silospeichers (MFF) aktiviert ist und welcher mit einem Eingang der Prozessoreinheit (CPU) verbunden ist, durch welchen Schreibzugriffe der Prozes­ soreinheit (CPU) auf den Arbeitsspeicher (MEM) verlangsamt oder vorübergehend aufgehalten werden.
19. Prozessoreinrichtung (MPU) nach einem der Ansprüche 10 bis 18, dadurch gekennzeichnet, daß die Bussteuereinrich­ tung (BMI) eine Kreuzauffrischungs-Folgeeinrichtung (BXUS') aufweist, welche dazu eingerichtet ist, über den Kreuzbus (BXL) gemeinsam mit der jeweils dazugehörigen Speicheradresse empfangene Speicherinhalte in den Arbeitsspeicher (MEM) an der entsprechenden Adressenstelle zu schreiben.
20. Prozessoreinrichtung (MPU) nach Anspruch 19, dadurch gekennzeichnet, daß die Kreuzauffri­ schungs-Folgeeinrichtung (BXUS') dazu eingerichtet ist, den Arbeitsspeicher (MEM) nur außerhalb des Vollbetriebszustandes der Prozessoreinrichtung zu schreiben.
21. Prozessoreinrichtung (MPU) nach Anspruch 19 oder 20, dadurch gekennzeichnet, daß die Kreuzauffrischungs- Folgeeinrichtung einen Silospeicher (SFF) als Pufferspeicher für die über den Kreuzbus übertragenen Daten und Adressen aufweist.
22. Prozessorsystem (PSR), bestehend aus zumindest zwei Pro­ zessoreinrichtungen (MPU, MPU') nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß
  • - die Prozessoreinrichtungen (MPU, MPU') miteinander über den Kreuzbus (BXL) verbunden sind,
  • - die Prozessoreinheiten (CPU, CPU') der Prozessoreinrichtun­ gen (MPU, MPU') auf der Grundlage eines gemeinsamen Taktes untereinander durch ein gemeinsames Startsignal innerhalb einer vorgegebenen maximalen Taktdifferenz synchronisiert startbar sind und
  • - die Bussteuereinrichtungen (BMI, BMI') der Prozessoreinrich­ tungen (MPU, MPU') dazu eingerichtet sind, bei jedem dar­ auffolgenden Datenzugriff der Prozessoreinheiten (CPU, CPU') über den jeweils zugeordneten Prozessorbus (PBU, PBU') über den Kreuzbus (BXL) Signale betreffend den Daten­ zugriff auszutauschen, hinsichtlich ihrer Übereinstimmung auszuwerten und im Falle einer mangelnden Übereinstimmung ein Fehlersignal auszugeben.
23. Prozessorsystem (PSR) nach Anspruch 22, dadurch gekennzeichnet, daß es dazu eingerichtet ist, aufgrund eines Fehlersignales zumindest in jener Prozes­ soreinrichtung (MPU), die das Fehlersignal ausgelöst hat, eine Fehlerbehandlung, z. B. eine Fehlerdiagnose, durchzufüh­ ren und währenddessen den Betrieb des Prozessorsystems auf der zumindest einen übrigen Prozessoreinrichtung (MPU') wei­ terzuführen.
DE19832060A 1998-07-16 1998-07-16 Doppelbare Prozessoreinrichtung Expired - Fee Related DE19832060C2 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE19832060A DE19832060C2 (de) 1998-07-16 1998-07-16 Doppelbare Prozessoreinrichtung
PCT/DE1999/001917 WO2000004448A1 (de) 1998-07-16 1999-07-01 Doppelbare prozessoreinrichtung
CNB998087203A CN1149481C (zh) 1998-07-16 1999-07-01 可加倍的处理器设备
US09/761,803 US6694449B2 (en) 1998-07-16 2001-01-16 Duplicable processor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19832060A DE19832060C2 (de) 1998-07-16 1998-07-16 Doppelbare Prozessoreinrichtung

Publications (2)

Publication Number Publication Date
DE19832060A1 true DE19832060A1 (de) 2000-01-20
DE19832060C2 DE19832060C2 (de) 2000-07-06

Family

ID=7874329

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19832060A Expired - Fee Related DE19832060C2 (de) 1998-07-16 1998-07-16 Doppelbare Prozessoreinrichtung

Country Status (4)

Country Link
US (1) US6694449B2 (de)
CN (1) CN1149481C (de)
DE (1) DE19832060C2 (de)
WO (1) WO2000004448A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1246033A1 (de) * 2001-08-23 2002-10-02 Siemens Aktiengesellschaft Verfahren zur Überwachung konsistenter Speicherinhalte in redundanten Systemen
EP1672504A2 (de) * 2004-12-20 2006-06-21 NEC Corporation Verfahren und System zum Rücksetzen fehlertoleranter Computersysteme
EP1675000A2 (de) * 2004-12-21 2006-06-28 NEC Corporation Fehlertoleranter Computer und Steuerverfahren zur Datenübertragung
NL2019206B1 (en) * 2017-07-10 2019-01-16 Vialis B V Control system for a railway crossing

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243829B1 (en) * 1998-05-27 2001-06-05 Hewlett-Packard Company Memory controller supporting redundant synchronous memories
US6859892B2 (en) * 2001-04-25 2005-02-22 Hewlett-Packard Development Company, L.P. Synchronous breakpoint system and method
US7533063B2 (en) * 2001-06-14 2009-05-12 Silicon Storage Technology, Inc. Smart memory card wallet
KR100429899B1 (ko) * 2001-12-22 2004-05-03 한국전자통신연구원 Fudcom에 의한 결함허용 제어장치 및 방법
JP2003316599A (ja) * 2002-02-22 2003-11-07 Seiko Epson Corp 集積回路
KR100474704B1 (ko) * 2002-04-29 2005-03-08 삼성전자주식회사 데이터의 버스트 동시쓰기가 가능한 프로세서 이중화 장치
WO2003106429A1 (ja) * 2002-06-14 2003-12-24 武田薬品工業株式会社 プロドラッグおよびその製造法
EP1629614A1 (de) * 2003-05-20 2006-03-01 Philips Intellectual Property & Standards GmbH Zeitgesteuertes kommunikationsystem und verfahren zur synchronisation eines zweikanaligen netzes
JP4161276B2 (ja) * 2004-12-17 2008-10-08 日本電気株式会社 フォルトトレラントコンピュータ装置およびその同期化方法
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
JP4154610B2 (ja) * 2004-12-21 2008-09-24 日本電気株式会社 フォールトトレラントコンピュータ及びその制御方法
JP4182948B2 (ja) * 2004-12-21 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
JP3897046B2 (ja) * 2005-01-28 2007-03-22 横河電機株式会社 情報処理装置および情報処理方法
KR20080033393A (ko) * 2005-08-11 2008-04-16 콘티넨탈 테베스 아게 운트 코. 오하게 적어도 부분적으로 안전-결정적 프로세스들을 제어 또는조정하기 위한 마이크로프로세서 시스템
TWI261657B (en) * 2005-08-24 2006-09-11 Delta Electronics Inc Controlling apparatus having dual processors
JP2007272358A (ja) * 2006-03-30 2007-10-18 Pioneer Electronic Corp 情報処理装置
JPWO2008053709A1 (ja) * 2006-11-02 2010-02-25 日本電気株式会社 半導体集積回路選別試験装置および方法
US8116314B2 (en) * 2007-03-29 2012-02-14 Nec Corporation Apparatus for processing packets and method of doing the same
US7886195B2 (en) * 2008-05-05 2011-02-08 Infineon Technologies Ag Apparatus, system, and method of efficiently utilizing hardware resources for a software test
JP5344936B2 (ja) * 2009-01-07 2013-11-20 株式会社日立製作所 制御装置
JP2010198131A (ja) * 2009-02-23 2010-09-09 Renesas Electronics Corp プロセッサシステム、及びプロセッサシステムの動作モード切り替え方法
US8862934B2 (en) * 2009-12-02 2014-10-14 Nec Corporation Redundant computing system and redundant computing method
JP2011128821A (ja) * 2009-12-17 2011-06-30 Yokogawa Electric Corp 二重化フィールド機器
EP2413208B1 (de) * 2010-07-29 2015-10-07 Rockwell Automation Limited Prozessorkonnektivität
WO2013011353A1 (en) * 2011-07-20 2013-01-24 Freescale Semiconductor, Inc. Processing apparatus and method of synchronizing a first processing unit and a second processing unit
WO2015180667A1 (en) * 2014-05-28 2015-12-03 Mediatek Inc. Computing system with reduced data exchange overhead and related data exchange method thereof
US10002056B2 (en) 2015-09-15 2018-06-19 Texas Instruments Incorporated Integrated circuit chip with cores asymmetrically oriented with respect to each other

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4005321A1 (de) * 1990-02-20 1991-08-22 Siemens Ag Fehlertolerantes rechnersystem
WO1994008292A1 (en) * 1992-09-30 1994-04-14 Siemens Telecomunicazioni S.P.A. Duplicate control and processing unit for telecommunications equipment

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5086429A (en) * 1990-04-10 1992-02-04 Honeywell Inc. Fault-tolerant digital computing system with reduced memory redundancy
GB2268817B (en) * 1992-07-17 1996-05-01 Integrated Micro Products Ltd A fault-tolerant computer system
US5748873A (en) * 1992-09-17 1998-05-05 Hitachi,Ltd. Fault recovering system provided in highly reliable computer system having duplicated processors
US5513338A (en) * 1993-03-12 1996-04-30 Intel Corporation Apparatus for tracing activity on a bus of an in-circuit emulator
US5600786A (en) * 1993-07-30 1997-02-04 Honeywell Inc. FIFO fail-safe bus
US5504859A (en) * 1993-11-09 1996-04-02 International Business Machines Corporation Data processor with enhanced error recovery
US5535405A (en) * 1993-12-23 1996-07-09 Unisys Corporation Microsequencer bus controller system
JP2790034B2 (ja) * 1994-03-28 1998-08-27 日本電気株式会社 非運用系メモリ更新方式
US5630056A (en) * 1994-09-20 1997-05-13 Stratus Computer, Inc. Digital data processing methods and apparatus for fault detection and fault tolerance
KR0149891B1 (ko) * 1994-12-22 1999-05-15 윤종용 버스상태분석기 및 그 내부버스시험방법
US5692121A (en) * 1995-04-14 1997-11-25 International Business Machines Corporation Recovery unit for mirrored processors
FR2737029B1 (fr) * 1995-07-19 1997-09-26 Sextant Avionique Dispositif d'interface entre un calculateur a architecture redondante et un moyen de communication
US5729678A (en) * 1996-03-04 1998-03-17 Ag Communication Systems Corporation Bus monitor system
US5915082A (en) * 1996-06-07 1999-06-22 Lockheed Martin Corporation Error detection and fault isolation for lockstep processor systems
US5799022A (en) * 1996-07-01 1998-08-25 Sun Microsystems, Inc. Faulty module location in a fault tolerant computer system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4005321A1 (de) * 1990-02-20 1991-08-22 Siemens Ag Fehlertolerantes rechnersystem
WO1994008292A1 (en) * 1992-09-30 1994-04-14 Siemens Telecomunicazioni S.P.A. Duplicate control and processing unit for telecommunications equipment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Lohmann, H.-J.: Sicherheit von Mikrocomputern für die Eisenbahnsignaltechnik, In: Elektronische Rechenanlagen, 1982, H.5, S. 229-236 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1246033A1 (de) * 2001-08-23 2002-10-02 Siemens Aktiengesellschaft Verfahren zur Überwachung konsistenter Speicherinhalte in redundanten Systemen
EP1672504A2 (de) * 2004-12-20 2006-06-21 NEC Corporation Verfahren und System zum Rücksetzen fehlertoleranter Computersysteme
EP1672504A3 (de) * 2004-12-20 2010-03-24 NEC Corporation Verfahren und System zum Rücksetzen fehlertoleranter Computersysteme
US8041995B2 (en) 2004-12-20 2011-10-18 Nec Corporation Method and system for resetting fault tolerant computer system
EP1675000A2 (de) * 2004-12-21 2006-06-28 NEC Corporation Fehlertoleranter Computer und Steuerverfahren zur Datenübertragung
EP1675000A3 (de) * 2004-12-21 2010-09-01 NEC Corporation Fehlertoleranter Computer und Steuerverfahren zur Datenübertragung
NL2019206B1 (en) * 2017-07-10 2019-01-16 Vialis B V Control system for a railway crossing
EP3428037A1 (de) * 2017-07-10 2019-01-16 Vialis B.V. Steuerungssystem für einen bahnübergang

Also Published As

Publication number Publication date
CN1309789A (zh) 2001-08-22
US6694449B2 (en) 2004-02-17
DE19832060C2 (de) 2000-07-06
CN1149481C (zh) 2004-05-12
US20010025352A1 (en) 2001-09-27
WO2000004448A1 (de) 2000-01-27

Similar Documents

Publication Publication Date Title
DE19832060C2 (de) Doppelbare Prozessoreinrichtung
DE3300260C2 (de)
EP0057756B1 (de) Anordnung zum Datenaustausch in parallel arbeitenden Multi-Mikrorechnersystemen
DE4111483A1 (de) Dual-port-speicher
DE2359258A1 (de) Echtzeitsteuerungsanordnung fuer eine simulationsvorrichtung
EP1249744A1 (de) Verfahren zum Herstellen konsistenter Speicherinhalte in redundanten Systemen
CH615521A5 (de)
EP0286856B1 (de) Fehlertolerante Rechneranordnung
DE19744071A1 (de) Eine programmierbare Logiksteuervorrichtung verwendendes Steuerungssystem
EP0543825A1 (de) Einrichtung zur interruptverteilung in einem mehrrechnersystem.
EP3072250B1 (de) Kommunikationseinrichtung, kommunikationssystem und verfahren zum synchronisierten senden von telegrammen
EP2085890A1 (de) Verfahren zur Übertragung von Daten zwischen wenigstens zwei Taktdomänen
DE2842603C3 (de) Schnittstelle zwischen einem Wartungsprozessor und einer Mehrzahl einzeln zu prüfender Funktionseinheiten eines datenverarbeitenden Systems
DE10297008T5 (de) Fehlertolerante Verarbeitung
EP0358785A1 (de) Einrichtung zum Betrieb eines redundanten Mehrrechnersystems für die Steuerung eines elektronischen Stellwerkes in der Eisenbahnsignaltechnik
WO1999044135A1 (de) Synchronisations- und/oder datenaustauschverfahren für sichere, hochverfügbare rechner und hierzu geeignete einrichtung
DE19536518C2 (de) Verfahren zur Aufrechterhaltung des mikrosynchronen Betriebs von gedoppelten informationsverarbeitenden Einheiten
DE10334626B4 (de) Informationsverarbeitungsvorrichtung
EP0065272B1 (de) Mehrrechnersystem
EP1316891A1 (de) Datenübertragungseinrichtung
EP0852864B1 (de) Verfahren zum auslesen von fehlerstatistikdaten
DE4024029C2 (de) Entscheidungslogik zur Priorisierung und Synchronisierung zeitlich asynchroner Signale
EP1426862B1 (de) Synchronisation der Datenverarbeitung in redundanten Datenverarbeitungseinheiten eines Datenverarbeitungssystems
DE3235243A1 (de) Schaltungsanordnung fuer einen universell einsetzbaren pufferspeicher
DE3927968A1 (de) Verfahren zur datenuebertragung ueber einen seriellen datenbus in verteilten systemen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: NOKIA SIEMENS NETWORKS GMBH & CO.KG, 81541 MUE, DE

8339 Ceased/non-payment of the annual fee