DE19832060C2 - Doppelbare Prozessoreinrichtung - Google Patents

Doppelbare Prozessoreinrichtung

Info

Publication number
DE19832060C2
DE19832060C2 DE19832060A DE19832060A DE19832060C2 DE 19832060 C2 DE19832060 C2 DE 19832060C2 DE 19832060 A DE19832060 A DE 19832060A DE 19832060 A DE19832060 A DE 19832060A DE 19832060 C2 DE19832060 C2 DE 19832060C2
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.)
Expired - Fee Related
Application number
DE19832060A
Other languages
English (en)
Other versions
DE19832060A1 (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

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 ausfü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.
In der WO 94/08292 A1 ist eine gedoppelte Prozessorsteuereinheit beschrieben, bestehend aus zwei identischen, miteinander verbundenen Steuereinheiten mit je einer Prozessoreinheit, einem RAM-Datenspeicher und Peripherie-Schaltkreisen. Jede Prozessoreinheit ist dazu eingerichtet festzustellen, ob sie aktiv oder im Standby-Betrieb ist. Die aktive Prozessorein­ heit führt die Schreibzyklen auf den RAM-Speicher synchron in beiden gedoppelten RAM-Speichern oder in einen der beiden RAM-Speicher durch. Die Standby-Einheit bleibt im Standby bis sie aufgrund einer Störung der aktiven Einheit aufgerufen wird, um die bisher aktive Einheit zu ersetzen. Die beiden Prozessoreinheiten sind zusätzlich über einen synchronen Kommunikationskanal verbunden, welcher mit Hilfe eigener Bausteine realisiert ist. Dieser Kommunikationskanal wird von der aktiven Prozessoreinheit bei der Durchführung bestimmter Aktivitäten genutzt, die sie auf der Standby-Einheit durch­ führt, z. B. Überwachungsprozesse und Fehlerdiagnoseprozesse.
Die Aktivitäten der beiden Prozessoreinheiten nach der WO 94/08292 sind somit grundsätzlich asymmetrisch, wobei der Kommunikationskanal zur Auslagerung von Prozessen von der aktiven auf die Standby-Einheit verwendet wird; der Zugriff auf periphere Komponenten einschließlich des Arbeitsspeichers wird grundsätzlich nur von der aktiven Prozessoreinheit vor­ genommen. Eine Fehlfunktion der aktiven Prozessoreinheit führt daher, mangels eines Vergleiches mit z. B. einer paral­ lellaufenden zweiten Prozessoreinheit, zu einem fehlerhaft geschriebenen Arbeitsspeicher oder Fehlzuständen in der Peri­ pherie, die nach dem Umschalten auf die bisherige Standby- Einheit erst nachkorrigiert werden müssen.
Jede der beiden Prozessoreinheiten der WO 94/08292 ist dar­ über hinaus mit zwei Mikroprozessoren ausgestattet, die in mikrosynchronisiertem Modus arbeiten. Die Mikrosynchronität der beiden Mikroprozessoren wird mittels eines Vergleicher­ blocks überwacht, der zu jedem Zeitpunkt die Identität der Adressen-, Daten- und Steuersignale der beiden Prozessoren überprüft; eine Abweichung wird als Störung der betreffenden Prozessoreinheit interpretiert. Ein Fehler im mikrosynchronen Betrieb des Mikroprozessorpaares führt somit zu einem Inter­ rupt-Signal bzw. Reset für die gesamte Prozessoreinheit. Ein Betrieb der Prozessoreinheit basierend auf nur einer der beiden Mikroprozessoren ist nicht möglich. Im übrigen führt die Doppelung der Mikroprozessoren innerhalb einer Prozessor­ einheit zu einer "Tandemeinheit", nicht jedoch zu an sich eigenständigen Prozessoreinrichtungen mit jeweils eigenem Arbeitsspeicher und Prozessorbus, welche mit einer Prozessor­ einrichtung gemäß dem Gegenstand der vorliegenden Erfindung vergleichbar wären. Zudem ist die in der WO 94/08292 offen­ barte Mikrosynchronität der Mikroprozessoren auf einer gegen­ über den Prozessoreinheiten gänzlich verschiedenen struktu­ rellen Ebene angesiedelt.
Die DE 40 05 321 A1 lehrt ein fehlertolerantes Rechnersystem mit zwei redundanten Rechnereinheiten. Auch in dieser Schrift sind die Aktivitäten der beiden Rechnereinheiten asymme­ trisch, da eine Rechnereinheit jeweils betriebsführend ist und in die Arbeitsspeicher beider Einheiten schreibt, während die andere als Ersatzschalteinheit bereitsteht. Ein mikrosyn­ chroner Parallelbetrieb zwischen den Prozessoren der beiden Rechnereinheiten ist in der DE 40 05 321 A1 ausdrücklich ausgeschlossen.
Der Artikel von H.-J. Lohmann in Elektron. Rechenanlagen 22 (1980) S. 229-236, offenbart ein Mikrocomputersystem bestehend aus zwei Mikrocomputern identischer Bauart zur Erzeugung von Ausgangssignalen zur Steuerung von Eisenbahnsignalgeräten. Die Mikrocomputer erzeugen jeweils ein Ausgangssignal; beide Ausgangssignale werden über Umsetzer zu den Stellstromkreisen geführt. Die Mikrocomputer-Taktsignale werden für jeden der beiden Mikrocomputer getrennt in je einem Steuerpulsgenerator erzeugt. Nach jedem Verarbeitungs-Taktschritt werden aufgrund eines von den Steuerpulsgeneratoren gesendeten Überwachungs­ impulses die Ausgangssignale verglichen. Die Steuerpulsgene­ ratoren lösen den nächsten Taktschritt erst dann aus, wenn jeweils die Fehlerfreimeldung ordnungsgemäß eingetroffen ist. Auf diese Weise wird eine sichere Übereinstimmungskontrolle nach jedem Verarbeitungsschritt erzwungen. Entsteht eine Ungleichheit, so unterbleiben die Fehlerfreimeldungen und die Steuerpulsgeneratoren lösen keinen Taktschritt mehr aus; in der Folge schalten die Stellstromkreise stromlos.
Wie aus dem Gesagten hervorgeht, werden in dem System nach H.-J. Lohmann die Ausgangssignale verglichen; eine gegensei­ tige Überprüfung eines inneren Zustandes der Prozessorein­ richtungen ist nicht möglich. Nachteilig ist des weiteren, daß die Geschwindigkeit des Mikrocomputersystems dadurch, daß vor jedem Verarbeitungsschritt eine Prüfung der Ausgangs­ signale vollständig durchlaufen wird, deutlich verringert wird. Zudem ist das Mikrocomputersystem - ähnlich dem Mikro­ prozessorpaar je einer Prozessoreinheit der WO 94/08292 - lediglich auf einen gleichzeitigen Betrieb beider Mikro­ prozessoren ausgelegt. Denn ein Einzelbetrieb eines Mikrocom­ puters, geschweige denn das Vorhandensein nur eines Mikrocom­ puters (während der andere z. B. gewartet wird), ist nicht vorgesehen; vielmehr ist stets das gesamte System im Betrieb oder außer Betrieb.
Das Mikrocomputersystem nach H.-J. Lohmann kann vom Fachmann als vorteilhaftes Ausgestaltungsbeispiel für eine Prozessor­ einheit mit zwei mikrosynchronisierten Mikroprozessoren der WO 94/08292 herangezogen werden. Durch die Realisierung einer Mikrosynchronität innerhalb der Prozessoreinheiten würde es darüber hinaus überflüssig erscheinen, eine Mikrosynchronität zwischen den beiden Prozessoreinheiten einzuführen.
Es ist daher Aufgabe der Erfindung, ein Prozessorsystem mit doppelbarer Prozessoreinrichtung zu schaffen, in dem die beteiligten Prozessoreinrichtungen zum einen in einer mikro­ synchronen Betriebsart, worin die Prozessoren der Einrichtun­ gen zur selben Taktflanke dieselben Vorgänge ausführen und dabei gegeneinander überprüft werden, betreibbar sind. Zum anderen soll eine Prozessoreinrichtung auch eigenständig einen vollen Betrieb ermöglichen. Insbesondere soll die Feh­ lerüberwachung und Fehlerbehandlung weitestgehend ohne eine Unterbrechung der anwendungsspezifischen Steuerung ablaufen 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, während des Betriebes der Prozessoreinrichtung in einer gemeinsam mit der zumindest einen, über den Kreuzbus verbun­ denen Prozessoreinrichtung mikrosynchronen Betriebsart bei einem Datenaustausch über den Prozessorbus, z. B. einem Daten­ zugriff der Prozessoreinheit,
  • - eine Signatur der ausgetauschten Daten zu berechnen oder 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, welches eine Fehlerbehandlung, z. B. eine Fehlerdiagnose, der Prozessoreinrichtung auslöst, auszuge­ ben.
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. Durch den Signaturenaustausch wird ein paralleler Ablauf zweier oder mehrerer Einrichtungen im Sinne der Mikrosynchro­ nität gestattet und eine Erkennung einer im Fehlerfall auf­ tretenden Asynchronität nach einer Latenzzeit von wenigen Systemtakten ermöglicht. Dadurch lassen sich Betriebsunter­ brechungen im Fehlerfall, aber auch bei Wartungen, auf ein Mindestmaß reduzieren oder sogar gänzlich vermeiden.
Im Gegensatz zu dem System nach H.-J. Lohmann werden gemäß der Erfindung auf einem Prozessorbus liegende Daten mittels darüber gebildeten Signaturen geprüft, was einer Überprüfung eines inneren Zustandes der Prozessoreinrichtungen und somit einer stärkeren Kontrolle entspricht. In den erfindungsgemä­ ßen Prozessoreinrichtungen findet der Austausch der Signatu­ ren bei ungestörtem Betrieb der Prozessoren statt.
In einer bevorzugten Ausführungsform der Erfindung ist zur Unterstützung der Herstellung des mikrosynchronen Betriebs die Takterzeugungseinheit mit einer Takterzeugungseinheit einer zweiten, über den Kreuzbus verbundenen Prozessorein­ richtung innerhalb einer vorgegebenen maximalen Synchronisa­ tionstoleranz synchronisierbar, und die Prozessoreinheit auf der Grundlage des synchronisierten Taktes der Takterzeugungs­ einheit durch ein Startsignal mit einer Prozessoreinheit der zweiten Prozessoreinrichtung innerhalb einer vorgegebenen maximalen Taktdifferenz synchronisiert startbar. Soweit hier­ bei auf eine zweite Prozessoreinrichtung Bezug genommen wird, so ist dies nicht als Einschränkung auf lediglich zwei Ein­ richtungen im Prozessorsystem zu verstehen; vielmehr ist hiermit eine besonders ausgewählte Prozessoreinrichtung, z. B. die zuerst anlaufende oder eine bereits aktive Prozessorein­ richtung gemeint.
Für die Durchführung der Signaturenkontrolle weist die Bussteuereinrichtung günstigerweise einen Vergleichsbaustein auf, über dessen Eingänge die Signaturen zugeführt werden und der zum bitweisen Vergleich der Signaturen eingerichtet 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.
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 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.
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 Silo­ speichers 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 Kreuz­ auffrischungs-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.
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 Signaturen betreffend den Da­ tenzugriff auszutauschen, hinsichtlich ihrer Übereinstim­ mung auszuwerten und im Falle einer mangelnden Übereinstim­ mung 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-16 bit-Bus oder als Vollduplex- 8 bit-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 Latenzzeit 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 BXI; 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 der 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 auslä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 Testzwec­ ken - 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 bloc­ kieren. 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­ signals 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 (17)

1. Prozessoreinrichtung (MPU), welche 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, während des Betriebes der Prozessoreinrichtung (MPU) in einer gemeinsam mit der zumindest einen, über den Kreuzbus verbun­ denen Prozessoreinrichtung (MPU') mikrosynchronen Betriebsart bei einem Datenaustausch über den Prozessorbus (PBU), z. B. einem Datenzugriff der Prozessoreinheit (CPU),
  • - eine Signatur (psg) der ausgetauschten Daten zu berechnen oder entgegenzunehmen,
  • - 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), welches eine Fehlerbehandlung, z. B. eine Fehlerdiagnose, der Prozessoreinrichtung (MPU) aus­ löst, 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) einen Vergleichsbaustein (VGL) aufweist, über dessen Eingänge die Signaturen (psg, xsg) zugeführt werden und der zum bitweisen Vergleich der Signaturen eingerichtet ist.
4. Prozessoreinrichtung (MPU) nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die eigenen Signaturen (psg) über einen Silospeicher (PFF) zeitverzögert dem Ver­ gleich zugeführt werden.
5. Prozessoreinrichtung (MPU) nach einem der Ansprüche 1 bis 4, 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.
6. Prozessoreinrichtung (MPU) nach Anspruch 5, 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.
7. Prozessoreinrichtung (MPU) nach Anspruch 5 oder 6, 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.
8. Prozessoreinrichtung (MPU) nach einem der Ansprüche 5 bis 7, 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.
9. Prozessoreinrichtung (MPU) nach einem der Ansprüche 1 bis 8, 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.
10. Prozessoreinrichtung (MPU) nach Anspruch 9, 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.
11. Prozessoreinrichtung (MPU) nach Anspruch 9 oder 10, 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.
12. Prozessoreinrichtung (MPU) nach einem der Ansprüche 9 bis 11, dadurch gekennzeichnet, daß die Leiteinrichtung (BXUM) einen Silospeicher (MFF) als Pufferspeicher für die über den Kreuzbus zu übertragenden Daten und Adressen auf­ weist.
13. Prozessoreinrichtung (MPU) nach Anspruch 12, dadurch gekennzeichnet, daß die 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.
14. Prozessoreinrichtung (MPU) nach einem der Ansprüche 9 bis 13, 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.
15. Prozessoreinrichtung (MPU) nach Anspruch 14, dadurch gekennzeichnet, daß die Kreuzauffrischungs- Folgeeinrichtung einen Silospeicher (SFF) als Pufferspeicher für die über den Kreuzbus übertragenen Daten und Adressen aufweist.
16. 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) Signaturen (psg, xsg) betref­ fend den Datenzugriff auszutauschen, hinsichtlich ihrer Übereinstimmung auszuwerten und im Falle einer mangelnden Übereinstimmung ein Fehlersignal auszugeben.
17. Prozessorsystem (PSR) nach Anspruch 16, 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 DE19832060A1 (de) 2000-01-20
DE19832060C2 true 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)

Families Citing this family (31)

* 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
EP1246033A1 (de) * 2001-08-23 2002-10-02 Siemens Aktiengesellschaft Verfahren zur Überwachung konsistenter Speicherinhalte in redundanten Systemen
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 삼성전자주식회사 데이터의 버스트 동시쓰기가 가능한 프로세서 이중화 장치
CN1678315A (zh) * 2002-06-14 2005-10-05 武田药品工业株式会社 用于治疗如消化性溃疡的质子泵抑制剂咪唑衍生物的前药
WO2004105278A1 (en) * 2003-05-20 2004-12-02 Philips Intellectual Property & Standards Gmbh Time-triggered communication system and method for the synchronization of a dual-channel network
JP4161276B2 (ja) * 2004-12-17 2008-10-08 日本電気株式会社 フォルトトレラントコンピュータ装置およびその同期化方法
JP4182486B2 (ja) * 2004-12-20 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータ・リセット方法及びそのシステム
JP4154610B2 (ja) * 2004-12-21 2008-09-24 日本電気株式会社 フォールトトレラントコンピュータ及びその制御方法
JP4182948B2 (ja) * 2004-12-21 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
JP2006178618A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ及びデータ送信制御方法
JP3897046B2 (ja) * 2005-01-28 2007-03-22 横河電機株式会社 情報処理装置および情報処理方法
DE102006036384A1 (de) * 2005-08-11 2007-03-29 Continental Teves Ag & Co. Ohg Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
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 情報処理装置
WO2008053709A1 (fr) * 2006-11-02 2008-05-08 Nec Corporation Dispositif et procédé de test de sélection de circuit intégré semi-conducteur
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 プロセッサシステム、及びプロセッサシステムの動作モード切り替え方法
WO2011068177A1 (ja) * 2009-12-02 2011-06-09 日本電気株式会社 二重化計算システム及び二重化計算方法
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
NL2019206B1 (en) * 2017-07-10 2019-01-16 Vialis B V Control system for a railway crossing

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, 1980, H.5, S. 229-236 *

Also Published As

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

Similar Documents

Publication Publication Date Title
DE19832060C2 (de) Doppelbare Prozessoreinrichtung
DE4233569C2 (de) Informationsverarbeitungsgerät mit einer Mehrzahl von Prozessor-Modulen, die einen Fehlerüberwachungskreis enthalten
EP0057756B1 (de) Anordnung zum Datenaustausch in parallel arbeitenden Multi-Mikrorechnersystemen
DE3328405C2 (de)
EP2513796B1 (de) Verfahren zum betreiben einer recheneinheit
EP1249744A1 (de) Verfahren zum Herstellen konsistenter Speicherinhalte in redundanten Systemen
DE4335061C2 (de) Mehrspeichervorrichtung
EP1537482B1 (de) Verfahren und schaltungsanordnung zur synchronisation synchron oder asynchron getakteter verarbeitungseinheiten
DE3037475A1 (de) Schnittstellenschaltungsanordnung fuer eine datenverarbeitungsanlage
EP1226500B1 (de) Integrierter schaltkreis mit gedoppelten synchronen und asynchronen komponenten
DE112019007853T5 (de) Steuereinrichtung
DE2842603C3 (de) Schnittstelle zwischen einem Wartungsprozessor und einer Mehrzahl einzeln zu prüfender Funktionseinheiten eines datenverarbeitenden Systems
EP0358785B1 (de) Einrichtung zum Betrieb eines redundanten Mehrrechnersystems für die Steuerung eines elektronischen Stellwerkes in der Eisenbahnsignaltechnik
DE10297008T5 (de) Fehlertolerante Verarbeitung
DE3938501A1 (de) Verfahren zum betrieb eines mehrkanaligen failsafe-rechnersystems und einrichtung zur durchfuehrung des verfahrens
EP1224547B1 (de) Integrierter elektronischer baustein mit duplizierter kernlogik und hardware-fehlereinspeisung für prüfzwecke
DE1966991A1 (de) Ausfallgesicherte datenverarbeitungsanlage
WO1999044135A1 (de) Synchronisations- und/oder datenaustauschverfahren für sichere, hochverfügbare rechner und hierzu geeignete einrichtung
DE102004038596A1 (de) Verfahren zur Fehlerregistrierung und entsprechendes Register
EP3469484B1 (de) Datenübertragung zwischen signaltechnisch sicheren recheneinheiten
EP1426862B1 (de) Synchronisation der Datenverarbeitung in redundanten Datenverarbeitungseinheiten eines Datenverarbeitungssystems
EP0852864B1 (de) Verfahren zum auslesen von fehlerstatistikdaten
DE102021104431A1 (de) Datenverarbeitungssystem und Verfahren zum Speichern von Betriebsdaten in einem Fahrzeug
DE4143452C2 (de) Computer mit einer Mehrzahl von Prozessormodulen und einem Speichermodul
DE2012052A1 (de) Verfahren zur Fehlersuche in einem programmgesteuerten Vermittlungssystem

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