-
Technisches Gebiet
-
Die
vorliegende Erfindung betrifft elektronische Systeme, die Komponenten
aufweisen, die durch Signalisierungsbusse verbunden sind. Die vorliegende
Erfindung betrifft insbesondere Signalisierungsbusse, bei denen
auf einem oder mehreren Signalisierungsleitern in einem Signalisierungsbus
ein Fehler vorhanden ist.
-
Technischer Hintergrund
-
Elektronische
Systeme umfassen im Allgemeinen mehrere elektronische Einheiten,
die durch Signalisierungsleiter miteinander verbunden sind. Diese
Signalisierungsleiter sind typischerweise elektrisch leitende Pfade,
die aus Kupfer, Aluminium oder einem anderen derartigen Material
hergestellt sind. Alternativ können
Lichtwellenleiter ebenfalls Signale leiten.
-
Halbleiterchips
steuern und empfangen z.B. Signale, die unter Verwendung von Drahtbond-
oder Flip-Chip-Techniken mit Signalleitern auf Modulen elektrisch
verbunden werden. Die Module sind typischerweise ferner mit Signalleitern
gedruckter Leiterplatten (Platinen) unter Verwendung von Kupferstiften,
Lötstützpunkten
und anderen Einrichtungen verbunden. Die Signalleiter auf den Platinen
verbinden ein Modul mit einem anderen und leiten Signale zu -Federleisten
oder Kabelverbindern auf den Platinen. Die Federleisten oder Kabelverbinder
auf den Platinen werden verwendet, um Platinen unter Verwendung
einer Rückwandleiterplatte
oder von Kabeln untereinander zu verbinden. Selbst in einem Halbleiterchip
leiten äußerst feine
elektrische Leiter Signale zwischen Schaltungen und logischen Einheiten
auf dem Chip.
-
Eine
Gruppe von Signalisierungsleitern mit logischem Bezug zueinander
wird als Signalisierungsbus bezeichnet. Ein Prozessorchip ist z.B. durch
einen Signalisierungsbus, der eine festgelegte Anzahl von Signalisierungsleitern
aufweist, über
die sich Daten im Wesentlichen parallel bewegen, mit einem Speichersteuerchip
verbunden. Das heißt,
wenn der Prozessorchip mit der Speichersteuerung mit einem 8-Bit-Bus
verbunden ist, sendet der Prozessorchip im Wesentlichen gleichzeitig
acht Datenbits (ein Byte), d.h. ein Bit auf jedem der Signalisierungsleiter. Der
Prozessorchip sendet z.B. eine Adresse mit jeweils einem Byte zu
einem bestimmten Zeitpunkt an den Speichersteuerchip des Beispiels
und empfängt wieder
Daten mit jeweils einem Byte zu einem bestimmten Zeitpunkt vom Speichersteuerchip.
-
Wirtschaftliche
und physische Faktoren begrenzen die Anzahl von Signalisierungsleitern,
die zur Verbindung elektronischer Elemente verwendet werden. Jede
Verbindung zwischen einem Modul und einer Karte kostet beispielsweise
etwa einen Penny. Große
Anzahlen von Verbindungen auf sehr preisempfindlichen elektronischen
Einheiten rechnen sich nicht. Wenn viele Komponenten auf einer Platine angebracht
sind, erfordern die großen
Anzahlen von Verbindungen ferner zusätzliche Verdrahtungsebenen
auf der Platine, die die Kosten der Platine ansteigen lassen. Die
Verkabelung zwischen elektronischen Einheiten wird dann, wenn viele
Verbindungen verwendet werden, sehr teuer und dick, wobei Mehrleiterkabel
mühsam
zu handhaben, kostenaufwändig und
vom Standpunkt der Zuverlässigkeit
störanfällig sind.
An einem bestimmten Punkt werden sie nicht nur kostenaufwändig und
unzuverlässig,
sondern es wird physisch unmöglich,
weitere Verbindungen hinzuzufügen.
-
Eine
elektronische Einheit muss typischerweise einen Datenblock an eine
andere elektronische Einheit übertragen.
Der Datenblock ist häufig verhältnismäßig groß. Zwischenspeicherzeilen
(cache lines) haben z.B. in einigen modernen Computersystemen eine
Länge von
64 oder 128 Byte. Wenn dieser Block (d.h. eine Zwischenspeicherzeile) über einen
8-Bit-Signalisierungsbus gesendet werden soll, sind 8 bzw. 16 Buszyklen
(Schritte) erforderlich, um die Übertragung
auszuführen.
Bei vielen Anwendungen werden noch größere Datenblöcke über Signalisierungsbusse,
die noch weniger Signalisierungsleiter aufweisen, übertragen.
-
Von
heutigen elektronischen Systemen wird erwartet, dass sie zuverlässig arbeiten.
Abschaltzeiten kommerzieller Computersysteme, auf deren Grundlage
ein Geschäft
betrieben wird, können
wegen des Verkaufsverlusts enorme Geldbeträge kosten. Derartige Abschaltzeiten
können
außerdem Kunden
frustrieren, was bewirkt, dass sie sich einem Konkurrenten zuwenden.
Viele kommerzielle Systeme sind für einen 24-Stunden-Betrieb an 7 Tagen in der Woche
ausgelegt (24/7) (d.h. ununterbrochener Betrieb). Unerwartete Ausfälle, die
Unterbrechungen zu Spitzenbelastungzeiten bewirken, stellen sehr ernsthafte
Probleme dar. Wenn ein Fehler auftritt, bevorzugen Benutzer derartiger
kommerzieller Systeme typischerweise selbst bei einer etwas schlechteren
Leistung einen ununterbrochenen Betrieb. Die Benutzer können dann
die Fehlerbehebung zu einem günstigeren
Zeitpunkt planen. Militärische
Systeme beruhen ebenfalls stark auf elektronischen Systemen, und
sie sind des Weiteren einer rauen Nutzung und unwirtlichen Umgebungen
ausgesetzt. Ein Totalausfall eines elektronischen Systems in einer Kampfumgebung
kann für
den Benutzer ernsthafte Folgen haben. Ersatzteile (neue Kabel, neue
Platinen usw.) stehen in einer Kampfsituation sicherlich nicht zur
Verfügung.
Ein ununterbrochener Betrieb mit einer geringfügig schlechteren Leistungsfähigkeit ist
daher bei vielen militärischen
Anwendungen vorzuziehen.
-
Signalisierungsbusse
weisen eine oder mehrere Signalisierungsleiter auf, die dem Signalisierungsbus
zugeordnet sind, wobei Signalisierungsbusse typischerweise ein Mehrfaches
von acht Signalisierungsleitern enthalten. Häufig befördert ein einzelner zusätzlicher
Signalisierungsleiter ein Paritätsbit.
Ein Signalisierungsbus mit acht Signalisierungsleitern weist z.B.
einen neunten (Paritäts-)
Signalisierungsleiter auf, der die Paritätsinformation befördert. Ein
Paritätsgenerator
in der sendenden Einheit erzeugt einen logischen Wert auf dem Paritätsleiter,
so dass die Anzahl logischer Werte "1" auf
dem Bus stets ungerade (oder in einer anderen Ausführungsform
stets gerade) ist. Eine Paritätsprüfeinrichtung
in der empfangenden Einheit prüft,
ob die empfangene Anzahl logischer Werte "1" (d.h. "ungerade" oder "gerade") der erwarteten
Anzahl entspricht. Ein derartiges Paritätserzeugungs-/Prüfsystem
kann einen einzelnen Fehler auf dem Signalisierungsbus erfassen,
den Fehler jedoch nicht korrigieren. Wenn ein Paritätsfehler
erfasst wird, kann der Signalisierungsbus nicht mehr zum Übertragen
von Daten verwendet werden. Zusätzliche
Signalisierungsleiter können verwendet
werden, um "Fehlerkorrekturcodes" (ECC) zu realisieren,
die in vielen Anwendungen einen einzelnen Fehler korrigieren und
zwei Fehler erkennen können.
Die Verwendung von ECC bewirkt zusätzliche Kosten, die durch die
zusätzlichen
Signalisierungsleiter entstehen. Die Verwendung der zyklischen Redundanzprüfung (CRC)
ist eine weitere Technik, die verwendet wird, um Fehler bei der Übertragung
von Daten zu finden und aufzunehmen.
-
Viele
moderne elektronische Systeme besitzen die Möglichkeit zur Ausführung von "Signatur"-Prozeduren (wire
test), um Einzelheiten zu Fehlern in Signalisierungsbussen zu ermitteln.
Eine erste elektronische Einheit steuert z.B. ein vorgegebenes Muster
logischer Werte "1" und "0" auf einen Signalisierungsleiter. Eine
zweite elektronische Einheit, die durch den Signalisierungsleiter
mit der ersten elektronischen Einheit verbunden ist, empfängt Daten vom
Signalisierungsleiter und vergleicht das empfangene Muster mit dem
vorgegebenen Muster. Wenn das empfangene Muster von dem vorgegebenen Muster
verschieden ist, ist der Signalisierungsleiter, der Treiber oder
der Empfänger
fehlerhaft. Ein derartiger Signalweg würde einen Signalisierungsbus
mit oder ohne Parität
unbrauchbar machen. Selbst ein Signalisierungsbus, der ECC mit Einzel
fehlerkorrektur und Doppel fehlererfassung verwendet, wäre in Gefahr,
da ein weiterer Fehler in einem ECC-Bus sogar den ECC-Bus unbrauchbar
machen würde.
Fehler in zwei Signalisierungsleitern würden sogar einen Signalisierungsbus,
der ECC mit Einzelfehlerkorrektur aufweist, unbrauchbar machen.
Die
US-Patentschrift Nr. 5 440
538 beschreibt ein Datenübertragungssystem und ein Verfahren
zum Datenaustausch auf einem Datenübertragungskanal. Ein Ersetzungsschalter,
der vorzugsweise aus schnellen Multiplexern und Demultiplexern in
Form von integrierten Schaltungen besteht, bildet fehlerhafte Verbindungen
auf redundante Ersatzverbindungen ab, damit der Datenaustausch über den
Kanal fortgesetzt werden kann.
-
Die
US-Patentschrift Nr. 6 018 810 beschreibt
ein fehlertolerantes Bussystem zur Verbindung peripherer Komponenten
(PCI) mit einer Datenbreite von 64 Bit in einem Computersystem,
das eine Wiederherstellung bei einem bzw. mehreren Fehlern ausführen kann,
die entweder in dem oberen oder unteren 32-Bit-Abschnitt eines PCI-Busses
mit einer Datenbreite von 64 Bit auftreten.
-
Die
US-Patentschrift Nr. 5 717 852 beschreibt,
dass die Datenübertragung über den
Bus angehalten wird, wenn Daten zwischen dem Bus-Master und dem
Bus-Slawe über
einen Bus übertragen
werden und in dem Bus ein Fehler auftritt. Die Daten werden dann über einen
fehlerfreien Bus erneut übertragen.
-
Beschreibung der Erfindung
-
Gemäß einem
ersten Aspekt wird ein Verfahren zum Übertragen eines "J"-Bit-Datenblocks von einer ersten elektronischen
Einheit an eine zweite elektronische Einheit über einen Signalisierungsbus
mit "K" Signalisierungsleitern
bereitgestellt, wenn null bis "K – 1" der Signalisierungsleiter
fehlerhaft sind, wobei das Verfahren die folgenden Schritte umfasst:
Identifizieren von fehlerhaften und nichtfehlerhaften Signalisierungsleitern
in dem Signalisierungsbus; Setzen eines Fehlerstatus der Signalisierungsleiter
in der ersten elektronischen Einheit und in der zweiten elektronischen
Einheit unter Verwendung von Informationen, die durch den Schritt
des Identifizierens von fehlerhaften und nicht fehlerhaften Signalisierungsleitern
in dem Signalisierungsbus gewonnen werden; Bestimmen von "F", der Anzahl der fehlerhaften Signalisierungsleiter
in dem Signalisierungsbus; Bestimmen von "K – F", der Anzahl der
nicht fehlerhaften Signalisierungsleiter in dem Signalisierungsbus;
und Senden des "J"-Bit-Datenblocks über die "K – F" nicht fehlerhaften
Signalisierungsleiter unter Verwendung von "J/(K – F)" Schritten plus einem zusätzlichen Schritt,
falls ein Rest vorhanden ist.
-
Das
Verfahren umfasst die folgenden Schritte: Wählen einer "K – F"-Bit-Bitgruppe aus
dem "J"-Bit-Datenblock in
der ersten elektronischen Einheit; Senden der "K – F"-Bit-Bitgruppe von
der ersten elektronischen Einheit an die zweite elektronische Einheit
unter Verwendung der "K – F" nichtfehlerhaften
Signalisierungsleiter in dem Signalisierungsbus unter Verwendung
eines Schritts des Signalisierungsbusses; Wiederholen der vorhergehenden Schritte,
bis alle "K – F"-Bit-Gruppen gesendet
worden sind; und Senden von restlichen Bits des "J"-Bit-Datenblocks
in der ersten elektronischen Einheit an die zweite elektronische
Einheit unter Verwendung einiger oder aller "K – F" nicht fehlerhafter
Signalisierungsleiter unter Verwendung eines zusätzlichen Schritts des Signalisierungsbusses,
wobei die Bitreihenfolge des J-Bit-Datenblocks aufrechterhalten wird, wenn
die (K – F)-Bit-Bitgruppen über die nicht
fehlerhaften Signalisierungsleiter gesendet werden.
-
Es
werden vorzugsweise ein Verfahren und eine Vorrichtung bereitgestellt,
mit denen ein Signalisierungsbus, der einen fehlerhaften Signalisierungsleiter
aufweist, mit einer geringfügig
schlechteren Leistungsfähigkeit
betrieben werden kann.
-
In
einer bevorzugten Ausführungsform
werden die folgenden Schritte ausgeführt: Speichern von (K – F)-Bits
pro Schritt für "J/(K – F)" Schritte und Speichern
restlicher Bits in einem zusätzlichen Schritt,
falls "J/(K – F)" einen Rest hat.
-
Die
vorliegende Erfindung, die in den beigefügten unabhängigen Ansprüchen 1 und
6 genau definiert ist, stellt vorzugsweise Verfahren und Vorrichtungen
bereit, um einen ununterbrochenen, jedoch eingeschränkten Betrieb
eines elektronischen Systems zu ermöglichen, das eine erste elektronische Einheit
aufweist, die durch einen Signalisierungsbus mit einer zweiten elektronischen
Einheit verbunden ist, wobei ein Signalisierungsleiter in dem Signalisierungsbus
fehlerhaft ist. Nicht fehlerhafte Signalisierungsleiter in dem Signalisierungsbus
werden vorzugsweise identifiziert, und die erste elektronische Einheit
sendet vorzugsweise den Datenblock in einer Übertragungssequenz unter Verwendung
aller nicht fehlerhaften Signalisierungsleiter an die zweite elektronische
Einheit unter Verwendung einer minimalen Anzahl von Schritten (Buszyklen),
um die Übertragung
auszuführen.
Die erste elektronische Einheit ist vorzugsweise vorgesehen, um
einen Datenblock mit "J" Bits über den
Signalisierungsbus, der "K" Signalisierungsleiter
aufweist, zu senden. Die zweite elektronische Einheit empfängt vorzugsweise
den Datenblock. Das elektronische System verwendet z.B. eine "Signatur" (wire test) oder
andere Mittel, um fehlerhafte und nicht fehlerhafte Signalisierungsleiter
in dem Signalisierungsbus zu identifizieren, und speichert vorzugsweise
die Kennung des fehlerhaften Signalisierungsleiters oder der fehlerhaften
Signalisierungsleiter in der ersten elektronischen Einheit und in der
zweiten elektronischen Einheit. "F" ist gemäß einer
bevorzugten Ausführungsform
die Anzahl fehlerhafter Signalisierungsleiter im Signalisierungsbus. Die
erste elektronische Einheit verwendet vorzugsweise die Kennung der
fehlerhaften Signalisierungsleiter, um ihre Übertragung zu ändern, indem
die "J" Bitblöcke über die
restlichen "K – F" Signalisierungsleiter
als eine Übertragungssequenz
unter Verwendung von einem oder mehreren zusätzlichen Schritten übertragen
werden, um die Übertragung
auszuführen.
Die zweite elektronische Einheit verwendet vorzugsweise die Kennung
der fehlerhaften Signalisierungsleiter, um die "J" Bitblöcke über die "K – F" nicht fehlerhaften
Signalisierungsleiter gemäß der Übertragungssequenz
zu empfangen.
-
In
einer Ausführungsform
werden in einem elektronischen System, das einen Datenblock mit "J" Bits über einen Signalisierungsbus,
der "K" Signalisierungsleiter
aufweist, senden soll, "J/K" Buszyklen (Schritte)
in einer Übertragungssequenz
verwendet, um die Übertragung
auszuführen,
wenn kein Signalisierungsleiter fehlerhaft ist. Wenn "F" Signalisierungsleiter in dem Signalisierungsbus
fehlerhaft sind, beträgt
die Anzahl der Schritte, die für
die Übertragungssequenz
erforderlich sind, "J/(K – F)" plus einen weiteren
Schritt, falls sich bei der Division ein Rest ergibt.
-
Die
Erfindung beschreibt, dass bei einem Signalisierungsbus mit "K" Signalisierungsleitern, von denen "F" fehlerhaft sind, eine Übertragungssequenz "K – F" Bits pro Schritt
aus dem Datenblock in der ersten elektronischen Einheit, der "J" Bits umfasst, auswählt. "K – F" Bits werden bei
jedem der J/(K – F) Schritte übertragen.
Ein weiterer Schritt wird verwendet, falls die Division einen Rest
ergibt.
-
Gemäß einem
weiteren Aspekt wird eine Vorrichtung zum Senden eines "J"-Bit-Datenblocks von einer ersten elektronischen
Einheit an eine zweite elektronische Einheit bereitgestellt, wobei
die Vorrichtung umfasst: einen ersten Datenblock, der "J"-Bits zum Senden speichert, in der ersten
elektronischen Einheit; eine Speichereinrichtung in der zweiten
elektronischen Einheit, die einen zweiten Datenblock, der "J" Bits enthält, speichern kann; einen Signalisierungsbus
mit "K" Signalisierungsleitern,
die die erste elektronische Einheit mit der zweiten elektronischen
Einheit verbinden, wobei der Signalisierungsbus "F" fehlerhafte
Signalisierungsleiter und "K – F" nicht fehlerhafte
Signalisierungsleiter hat; eine Diagnoseeinheit, die mit der ersten
elektronischen Einheit und der zweiten elektronischen Einheit verbunden
ist, die die "F" fehlerhaften Signalisierungsleiter
und die "K – F" nicht fehlerhaften
Signalisierungsleiter im Signalisierungsbus identifizieren und die Fehleridentifizierungsinformationen
in der ersten elektronischen Einheit und in der zweiten elektronischen
Einheit speichern kann; eine Ansteuerungsablaufsteuerung in der
ersten elektronischen Einheit, die in Reaktion auf die Fehleridentifizierungsinformationen
die "J" Datenbits unter
Verwendung von J/(K – F)
Schritten plus einem zusätzlichen
Schritt, falls ein Rest vorhanden ist, unter Verwendung lediglich
der "K – F" nicht fehlerhaften
Leiter sendet, wobei die Ansteuerungsablaufsteuerung umfasst: Mittel
zum Wählen
einer "K – F"-Bit-Bitgruppe aus
dem "J"-Bit-Datenblock in
der ersten elektronischen Einheit; Mittel zum Senden der "K – F"-Bit-Bitgruppe von der ersten elektronischen
Einheit an die zweite elektronische Einheit unter Verwendung der "K – F" nicht fehlerhaften
Signalisierungsleiter im Signalisierungsbus unter Verwendung eines
Schritts des Signalisierungsbusses; Mittel zum Ermöglichen
der Wiederholung der Wahl und des Sendens von Bits, bis alle "K – F"-Bitgruppen gesendet
worden sind; und Mittel zum Senden von restlichen Bits des "J"-Bit-Datenblocks
in der ersten elektronischen Einheit an die zweite elektronische
Einheit unter Verwendung einiger oder aller "K – F" nicht fehlerhafter
Signalisierungsleiter unter Verwendung eines zusätzlichen Schritts des Signalisierungsbusses,
wobei die Vorrichtung funktionsmäßig so eingerichtet
ist, dass sie die Bitreihenfolge des J-Bit-Datenblocks aufrechterhalten kann, wenn
die (K – F)-Bit-Bitgruppen über die nicht
fehlerhaften Leiter gesendet werden.
-
Der
erste Datenblock kann zu einem bestimmten Zeitpunkt durch ausgewählte Gruppen
von "K"-Bits ausgewählt werden.
Die Ansteuerungsablaufsteuerung kann zu einem bestimmten Zeitpunkt "K – F" Bits aus dem ersten
Datenblock auswählen und
die "K – F" ausgewählten Bits
auf die "K – F" nicht fehlerhaften
Signalisierungsleiter des Signalisierungsbusses steuern, wobei die
Ansteuerungsablaufsteuerung ferner weniger Bits als "K – F" Bits für einen
zusätzlichen
Schritt auswählen
kann, falls "J/(K – F)" einen Rest hat.
-
In
einer bevorzugten Ausführungsform
umfasst die Ansteuerungsablaufsteuerung des Weiteren Treiber, die
gesperrt werden können,
wobei die Ansteuerungsablaufsteuerung einen Treiber, der mit einem
fehlerhaften Signalisierungsleiter verbunden ist, sperrt.
-
In
einer bevorzugten Ausführungsform
umfasst die zweite elektronische Einheit ferner eine Empfangsablaufsteuerung,
die mit dem Signalisierungsbus und der Diagnoseeinheit verbunden
ist, wobei die Empfangsablaufsteuerung zu einem bestimmten Zeitpunkt "K – F" Bits in dem zweiten
Datenblock speichern kann, wobei die "K – F" Bits von den "K – F" nicht fehlerhaften
Signalisierungsleitern des Signalisierungsbusses empfangen werden
und die Empfangsablaufsteuerung ferner weniger als "K – F" Bits speichern kann,
falls "J/(K – F)" einen Rest hat.
-
In
einer bevorzugten Ausführungsform
wird ein Verfahren zum Senden eines Datenblocks von einer ersten
elektronischen Einheit an eine zweite elektronische Einheit über einen
Signalisierungsbus bereitgestellt, wobei das Verfahren die folgenden Schritte
umfasst: Identifizieren nicht fehlerhafter Signalisierungsleiter
im Signalisierungsbus und Senden des Datenblocks unter Verwendung
einer Übertragungssequenz
von der ersten elektronischen Einheit an die zweite elektronische
Einheit, wobei die Übertragungssequenz
alle nicht fehlerhaften Signalisierungsleiter in dem Signalisierungsbus
verwendet, wobei die Übertragungssequenz
eine Mindestanzahl von Schritten verwendet, um die Übertragung
des Datenblocks auszuführen.
-
In
einer bevorzugten Ausführungsform
umfasst das Verfahren des vorgehenden Absatzes ferner die folgenden
Schritte: Identifizieren eines fehlerhaften Signalisierungsleiters
im Signalisierungsbus und Schalten eines Treibers, der mit dem fehlerhaften
Signalisierungsleiter verbunden ist, in einen hochohmigen Zustand.
-
In
einer bevorzugten Ausführungsform
werden die nicht fehlerhaften Signalisierungsleiter während einer
Einschaltsequenz identifiziert.
-
In
einer bevorzugten Ausführungsform
werden die nicht fehlerhaften Signalisierungsleiter während einer
Signaturprüfung
identifiziert, die infolge eines Paritätsfehlers und eines Fehlerkorrekturcode-Fehlers
oder eines Fehlers der zyklischen Redundanzprüfung ausgeführt wird.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Ausführungsformen
der vorliegenden Erfindung werden im Folgenden lediglich beispielhaft
und unter Bezugnahme auf die Zeichnungen beschrieben.
-
Es
ist jedoch anzumerken, dass die beigefügten Zeichnungen lediglich
typische Ausführungsformen
dieser Erfindung erläutern
und deshalb nicht als Einschränkung
ihres Umfangs betrachtet werden sollen, da die Erfindung weitere,
in gleicher Weise wirksame Ausführungsformen
annehmen kann.
-
1 zeigt
gemäß einer
bevorzugten Ausführungsform
einen Übersichts-Blockschaltplan
mit zwei elektronischen Einheiten, die durch einen Signalisierungsbus
verbunden sind. Jede elektronische Einheit hat eine Speichereinrichtung
für einen
Datenblock. Ein beispielhafter Fehler ist an einem Signalisierungsleiter
des Signalisierungsbusses dargestellt.
-
Die 2A und 2B zeigen
(gemäß einer
bevorzugten Ausführungsform)
Zeitablaufpläne bzw.
eine Beschreibung von Daten, die bei jedem Schritt gesendet werden,
für einen fehlerfreien
Signalisierungsbus und den Signalisierungsbus mit einem fehlerhaften
Signalisierungsleiter.
-
3 zeigt
gemäß einer
bevorzugten Ausführungsform
einen detaillierten Blockschaltplan der elektronischen Einheit,
die einen Datenblock über den
Signalisierungsbus steuert. Ein erweiterter Blockschaltplan einer
Ansteuerungsablaufsteuerung ist dargestellt.
-
4 zeigt
gemäß einer
bevorzugten Ausführungsform
die Inhalte eines Ansteuerbit-Registerblocks, der in 3 dargestellt
ist, wenn Datenschritte über
den Signalisierungsbus, der einen fehlerhaften Signalisierungsleiter
aufweist, gesendet werden.
-
5 zeigt
gemäß einer
bevorzugten Ausführungsform
einen erweiterten Blockschaltplan der elektronischen Einheit, die
den Datenblock empfängt,
der durch die ansteuernde elektronische Einheit über den Signalisierungsbus,
der einen fehlerhaften Signalisierungsleiter aufweist, gesendet
wird.
-
6 zeigt
gemäß einer
bevorzugten Ausführungsform
Einzelheiten eines 1-Bit-Abschnitts eines Verteilerblocks, der in 5 dargestellt
ist.
-
7 zeigt
einen Übersichts-Blockschaltplan
einer zweiten Ausführungsform
der Erfindung. Eine ansteuernde elektronische Einheit (Treiberchip in
der beispielhaften Zeichnung) ist mit einer zweiten elektronischen
Einheit (Empfängerchip
in der beispielhaften Zeichnung) über einen Signalisierungsbus,
der einen fehlerhaften Signalisierungsleiter aufweist, verbunden.
-
Die 8A und 8B zeigen
gemäß einer Ausführungsform
der vorliegenden Erfindung Zeitablaufpläne für eine normale Datenübertragung
(d.h. es wurde kein fehlerhafter Signalisierungsleiter identifiziert)
und für
eine Datenübertragung,
bei der ein fehlerhafter Signalisierungsleiter identifiziert wurde.
-
9 zeigt
gemäß der zweiten
Ausführungsform
einen detaillierten Blockschaltplan eines Treibersteuerblocks, der
in 7 dargestellt ist.
-
10 zeigt
gemäß der zweiten
Ausführungsform
einen detaillierten Blockschaltplan eines Empfängersteuerblocks, der in 7 dargestellt
ist.
-
11 zeigt
gemäß der zweiten
Ausführungsform
einen detaillierten Blockschaltplan einer Steuerlogik, die korrekte
Daten in einem speziellen Bit eines Empfangsregisters, das in 7 dargestellt ist,
zwischenspeichert.
-
12 ist
ein Übersichts-Ablaufplan
des Verfahrens, das in einer Ausführungsform der vorliegenden
Erfindung beschrieben ist.
-
13 ist
ein Ablaufplan, der gemäß einer Ausführungsform
der vorliegenden Erfindung eine detaillierte Erweiterung des Blocks 304 des
Ablaufplans von 12 zeigt.
-
14 ist
ein Ablaufplan, der gemäß einer Ausführungsform
der vorliegenden Erfindung eine detaillierte alternative Erweiterung
des Blocks 304 des Ablaufplans von 12 zeigt.
-
Ausführungsart
der Erfindung
-
Es
werden vorzugsweise Verfahren und Vorrichtungen bereitgestellt,
die einen ununterbrochenen, jedoch eingeschränkten Betrieb eines elektronischen
Systems ermöglichen,
das eine erste elektronische Einheit aufweist, die durch einen Signalisierungsbus
mit einer zweiten elektronischen Einheit verbunden ist, wobei ein
Signalisierungsleiter in dem Signalisierungsbus fehlerhaft ist.
Nicht fehlerhafte Signalisierungsleiter in dem Signalisierungsbus
werden identifiziert, und die erste elektronische Einheit sendet
den Datenblock in einer Übertragungssequenz
unter Verwendung aller nicht fehlerhafter Signalisierungsleiter
an die zweite elektronische Einheit unter Verwendung einer Mindest-Anzahl
von Schritten (Buszyklen), um die Übertragung auszuführen. Die
erste elektronische Einheit ist vorgesehen, um Datenblöcke mit "J" Bits über den Signalisierungsbus,
der "K" Signalisierungsleiter
aufweist, zu senden. Die zweite elektronische Einheit empfängt die Datenblöcke. Das
elektronische System verwendet die "Signaturprüfung" oder andere Mittel, um einen fehlerhaften
Signalisierungsleiter in dem Signalisierungsbus zu identifizieren
und speichert die Kennung des fehlerhaften Signalisierungsleiters
in der ersten elektronischen Einheit und in der zweiten elektronischen
Einheit. Die Anzahl fehlerhafter Signalisierungsleiter ist "F". Die erste elektronische Einheit verwendet
die Kennung der fehlerhaften Signalisierungsleiter, um ihre Übertragung
zu ändern,
indem sie die "J"-Bit-Blöcke über die "K – F" nicht fehlerhaften
Signalisierungsleiter sendet, wobei ein oder mehrere zusätzliche
Schritte verwendet werden, um die Übertragung auszuführen. Die
zweite elektronische Einheit verwendet die Kennung der fehlerhaften
Signalisierungsleiter, um die "J"-Bit-Blöcke über die "K – F" nicht fehlerhaften
Signalisierungsleiter zu empfangen. Obwohl "F" im
Allgemeinen eine beliebige Zahl bis "K – 1" sein kann, wird
in den folgenden Beispielen zur Vereinfachung ein Einzelfehler angenommen. Außerdem wird
in den folgenden Beispielen zur Vereinfachung ein 8-Bit-Signalisierungsbus
angenommen, über
den ein 64-Bit-Datenblock übertragen wird.
-
1 zeigt
einen Übersichts-Blockschaltplan
eines elektronischen Systems, das allgemein mit dem Bezugszeichen 100 angegeben
ist. Das elektronische System 100 umfasst eine erste elektronische
Einheit 1, die im Folgenden als Chip 1 bezeichnet
wird, und eine zweite elektronische Einheit 5, die im Folgenden
als Chip 5 bezeichnet wird. Die elektronische Einheit 1 und
die elektronische Einheit 5 können eine beliebige elektronische
Komponente sein, darunter und nicht darauf beschränkt Halbleiterchips,
Module, gedruckte Leiterplatten (Platinen) oder elektronische Anlagen. "Chip" wird verwendet, um
ein konkretes Beispiel zur Erläuterung
bereitzustellen. Der Chip 1 enthält einen ersten Datenblock 10,
der unter Verwendung einer Übertragungssequenz,
die eine Anzahl von Bits, die bei jedem Schritt (Buszyklus) gesendet
werden, und die Anzahl von Schritten, die zur Beendigung der Übertragung
erforderlich sind, definiert, an den Chip 5 gesteuert werden
muss, wo er in einem zweiten Datenblock 50 gespeichert
wird. Nach einer erfolgreichen Übertragung ist
der zweite Datenblock 50 gleich dem ersten Datenblock 10 vor
der Auslösung
der Übertragung.
Der erste Datenblock 10 und der zweite Datenblock 50 werden
im Allgemeinen in einem oder mehreren Registern auf jedem Chip gespeichert,
können
sich jedoch in einer beliebigen Form einer Speichereinrichtung wie
etwa einem Cachespeicher oder einem anderen Speicher befinden.
-
Daten
vom ersten Datenblock 10 werden vom Chip 1 über den
Signalisierungsbus 95 an den Chip 5 übertragen.
Der erste Datenblock enthält
in dem Beispiel von 1 acht Bytes (d.h. 64 Bits).
Der Signalisierungsbus 95 ist in 1 so dargestellt, dass
er acht Signalisierungsleiter aufweist. Aus wirtschaftlichen und
physischen Betrachtungen, die oben erläutert wurden, sind Signalisierungsbusse
typischerweise "schmal" (d.h., sie weisen
eine verhältnismäßig geringe
Anzahl von Signalisierungsleitern auf) und sind viel schmaler als
die Anzahl von Bits in dem Datenblock, der gesendet wird. Obwohl
der Signalisierungsbus 95 in der Weise gezeigt ist, dass
er für
Erläuterungszwecke
acht Signalisierungsleiter aufweist, sind breitere oder schmalere
Signalisierungsbusse denkbar, wobei die Signalisierungsbusse ferner
Parität-Signalisierungsleiter
oder Fehlerkorrekturcode-Signalisierungsleiter
beinhalten können. Wenn
bei den Signalisierungsleitern keine Fehler vorhanden sind (einschließlich Treiber-
oder Empfängerfehler),
werden alle Daten im ersten Datenblock 10 unter Verwendung
von acht Signalisierungsbuszyklen (Schritten) an den Chip 5 gesendet.
Eine ausgewählte
Gruppe aus acht Informationsbits (ein Byte) wird während jedes
Schritts gesendet. Die ausgewählte
Gruppe ist eine Gruppe von Bits, die aus dem ersten Datenblock 10 (oder
aus einer anderen Speichervorrichtung, wie später erläutert wird) ausgewählt sind,
um zu den Eingängen
von Treibern, die den Signalisierungsbus 95 ansteuern,
geleitet zu werden. Die Bytes 0 bis 7, die in 1 als 10A bis 10H gezeigt
sind, werden in einer vorgegebenen Reihenfolge, in dem Beispiel
nacheinander, aus dem Datenblock 10 ausgewählt und
byteweise über
den Signalisierungsbus 95 gesendet. Der Chip 5 empfängt alle
Bytes und speichert jedes Byte in Byte 0 bis 7, die als 50A bis 50H gezeigt
sind, des zweiten Datenblocks 50.
-
Obwohl
der erste Datenblock 10 und der zweite Datenblock 50 so
gezeigt sind, dass sie einen Bus der Breite 1 Byte haben, um alle
Datenbytes in dem ersten Datenblock 10 und dem zweiten
Datenblock 50 an die Ansteuerungsablaufsteuerung 11 bzw.
die Empfangsablaufsteuerung 51 zu schalten, kommen andere
Realisierungsmöglichkeiten
in Betracht. In einer (nicht gezeigten) Ausführungsform ist der erste Datenblock 10 ein
Schieberegister, bei dem jeweils zu einem bestimmten Zeitpunkt acht
Bits verschoben werden und lediglich ein einziges Byte des Schieberegisters
mit der Ansteuerungsablaufsteuerung 11 verbunden ist. In
einer weiteren (nicht gezeigten) Ausführungsform ist der erste Datenblock 10 ein
Registerstapel aus acht 8-Bit-Registern, wobei der Registerstapel
eine zugehörige
3-Bit-Adresse besitzt, wodurch ein beliebiges Register in dem Stapel adressiert
werden kann. Ähnliche
Ausführungsformen
sind für
den zweiten Datenblock 50 im Chip 50 vorgesehen.
-
1 zeigt
einen Fehler 96 in einem der Signalisierungsleiter des
Signalisierungsbusses 95. Der Fehler 96 trennt
den Signalisierungsleiterabschnitt 95B vom Signalisierungsleiterabschnitt 95B'. Der Fehler 96 kann
eine Unterbrechung oder ein Bruch in dem Signalisierungsleiter sein,
die bzw. der gelegentlich als "Leiterbahnunterbrechung" bezeichnet wird.
Der Fehler 96 kann außerdem
eine unerwünschte
Verbindung mit einer Spannungsversorgung sein. In jedem Fall überträgt der Signalisierungsleiter,
der die Abschnitte 95B und 95B' enthält, Daten nicht zuverlässig. Der
Fehler 96 könnte
außerdem
ein Kurzschluss zwischen zwei Signalen auf dem Signalisierungsbus 95 sein,
der Signalisierungsbus 95 würde jedoch dann zwei Fehler
aufweisen, wobei bei dem gegenwärtigen Beispiel
ein Einzelfehler angenommen wird. Zusätzliche Logikblöcke über die
in den beispielhaften Figuren gezeigten Logikblöcke hinaus sind erforderlich,
um zwei Fehler zu bewältigen.
Die zusätzliche
Logik ist jedoch der gezeigten Logik ähnlich, wie der Fachmann erkennen
wird.
-
Während einer "Signaturprüfung" beim Hochfahren
des Systems oder als Reaktion auf einen Paritätsprüfungs-, CRC- oder ECC-Fehler wird ein Fehler
identifiziert und in der Diagnoseeinheit 98 gespeichert.
Eine Übertragung
des Fehlers erfolgt über Signalisierungsleiter 91 und
Signalisierungsleiter 92. Die Signalisierungsleiter 91 und 92 können jeweils ein
einzelner Signalisierungsleiter oder Busse mit einer Vielzahl von
Signalisierungsleitern sein. Die Diagnoseeinheit 98 ist
eine Einheit, die ein elektronisches System auf Fehler prüft. In den
Computern der IBM iSeries wird die Diagnoseeinheit z.B. als "Serviceprozessor" bezeichnet.
-
2A zeigt
eine Übertragungssequenz,
die während
einer normalen Übertragung
von Daten im ersten Datenblock 10 über den Signalisierungsbus 95 ausgeführt wird,
wenn der Signalisierungsbus 95 fehlerfrei ist. Während des
ersten Schritts wird das Byte 0 gesendet. Während eines zweiten Schritts wird
das Byte 1 gesendet. Das letzte Byte, das Byte 7, wird bei einem
achten Schritt gesendet.
-
2B zeigt
eine Übertragungssequenz,
die eine Datenübertragung
im ersten Datenblock 10 über den Signalisierungsbus 95 ausführt, wenn
einer der Signalisierungsleiter im Signalisierungsbus 95 einen Fehler
aufweist. Für
die Zwecke der Erläuterung kann
das Bit auf dem Signalisierungsleiter "Z" des
Signalisierungsbusses 95 wegen des Fehlers nicht übertragen
werden. Die Ansteuerungsablaufsteuerung 11 des Chips 1 bemerkt
den Fehler, wählt
jedoch (in dem Beispiel) eine Auswahlgruppe aus einem Byte für jeden
der ersten acht Schritte der Datenübertragung aus. Dies ist der
Funktionsweise ähnlich,
wenn kein Fehler vorhanden ist. 2B gibt an,
dass das Bit "Z" jedes Schritts nicht
gesendet wird. (Byte 0 ohne Bit "Z" bedeutet zum Beispiel, dass
das Byte 0 während
des Schritts 1 zum Dateneingang eines Treibers geleitet wurde, das
Bit "Z" von Byte 0 wurde
jedoch infolge des Fehlers 96 am Signalisierungsleiter "Z" nicht gesendet.) Der Treiber des Bits "Z" wird vorteilhaft in einen nicht leitenden Zustand
geschaltet (der häufig
als "gesperrt" und "hochohmig" bezeichnet wird),
da der identifizierte Fehler ein Kurzschluss sein könnte und
große
Energiemengen verbraucht werden könnten, wenn der Fehler ein
Kurzschluss mit einer Masse der Spannungsversorgung ist, und das
bestimmte Bit ist ein logischer Wert 1. Die Ansteuerungsablaufsteuerung 11 (siehe 1)
speichert die acht Bits, die während
der ersten acht Schritte nicht gesendet wurden, wobei sie das Bit "Z" für
jeden Schritt speichert. Während
eines neunten Schritts wird eine ausgewählte Gruppe, die die acht "Z"-Bits umfasst, die gespeichert wurden,
zu den Treibern geleitet. Sieben der "Z"-Bits werden gesendet.
Das achte "Z"-Bit kann wegen des
Fehlers nicht im neunten Schritt gesendet werden. Das achte "Z"-Bit wird dann im zehnten Schritt unter
Verwendung eines nicht fehlerhaften Signalisierungsleiters im Signalisierungsbus 95 gesendet.
-
Die
Anzahl von Bits im Datenblock 10 (64 Bits) und die Anzahl
der Signalisierungsleiter im Signalisierungsbus 95 (acht)
sind lediglich beispielhafte Werte, wobei Datenblöcke mit beliebiger
Größe und eine
beliebige Anzahl von Signalisierungsleitern in dem Bus denkbar sind.
In einigen elektronischen Systemen kann der Datenblock ferner veränderlich sein
mit einem "Vorsatz" (Header), der vor
der Übertragung
eines Datenabschnitts des Datenblocks gesendet wird, wobei der Vorsatz
Informationen bezüglich
der Größe des zu
sendenden Blocks enthält.
Der Vorsatz wird für
die Zwecke dieser Erläuterung
als Teil des Datenblocks betrachtet.
-
3 zeigt
den Chip 1 mit einem detaillierten Blockschaltplan der
Ansteuerungsablaufsteuerung. Ein Ansteuerungsmultiplexer 20 ist
mit jedem der acht Bytes des ersten Datenblocks 10 verbunden
und kann jedes der acht Bytes des ersten Datenblocks 10 auswählen, um
es an einen Ausgang des Ansteuerungsmultiplexers 20 zu
schalten. Der Ansteuerungsmultiplexer 20 ist außerdem durch
die Verbindung 35 mit dem Ansteuerungsbitregister 27 verbunden.
Die Ansteuerungsschrittsteuereinheit 23 ist durch das Signal 30,
das festlegt, welches der neun Bytes (d.h. acht Bytes vom ersten
Datenblock 10 und das Byte vom Ansteuerungsregister 27)
durch den Ansteuerungsmultiplexer 20 ausgewählt ist,
mit dem Ansteuerungsmultiplexer 20 verbunden. Das ausgewählte Byte
ist mit den Dateneingängen
der Treiber 24 verbunden. Das ausgewählte Byte ist außerdem mit
der Ansteuerungsauswahleinrichtung 21 verbunden. Das Signal 34 von
der Ansteuerungsschrittsteuereinheit 23 teilt der Ansteuerungsauswahleinrichtung 21 mit, welcher
Signalisierungsleiter im Signalisierungsbus 95 fehlerhaft
ist. Dies ist das Bit in dem gegenwärtig ausgewählten Byte, das, wie oben erläutert wurde, wegen
eines Fehlers 96 auf dem Signalisierungsleiter im Signalisierungsbus 95 im
Ansteuerungsbitregister 27 für eine spätere Übertragung gespeichert werden
muss. Das ausgewählte
Bit wird gesteuert durch das Signal 32 von der Ansteuerungsschrittsteuereinheit 23 zum
Ansteuerungsbitregister 27 geschaltet und im Ansteuerungsbitregister 27 gespeichert.
Das Ansteuerungsbitregister 27 ist vorteilhaft ein Schieberegister,
obwohl andere Ausführungsformen
denkbar sind. Nach acht Schritten enthält das Ansteuerungsbitregister 27 alle
acht Bits (ein Bit von jedem der Bytes 0 bis 7), die wegen des Fehlers 96 nicht
gesendet werden konnten. Im neunten Schritt werden die acht Bits
im Ansteuerungsbitregister 27 durch das Signal 30 vom
Ansteuerungsmultiplexer 20 unter der Steuerung der Ansteuerungsschrittsteuereinheit 23 ausgewählt. Sieben
dieser acht Bits werden wieder über
den Signalisierungsbus 95 gesendet. Ein Bit kann wiederum
wegen des Fehlers 96 nicht gesendet werden. Die Ansteuerungsschrittsteuereinheit 23 signalisiert
dem Ansteuerungsbitregister 27 über die Verbindung 32,
eine "Rotation" der Bits im Ansteuerungsbitregister 27 auszuführen. In 3 verbindet
ein Signal 33 ein erstes Ende des Ansteuerungsbitregisters 27 mit
einem zweiten Ende des Ansteuerungsbitregisters 27. Während der
Rotation werden die äußerst rechten
sieben Bits im Ansteuerungsbitregister 27 um eine Bitposition
nach links verschoben und das äußerst linke
Bit wird in der Weise einer Rotation unterzogen, dass es das äußerst rechte
Bit wird. Während
eines zehnten Schritts werden die nunmehr einer Rotation unterzogenen
Inhalte des Ansteuerungsbitregisters 27 unter der Steuerung
der Ansteuerungsschrittsteuereinheit 23 durch den Ansteuerungsmultiplexer 20 erneut
ausgewählt.
Wiederum werden sieben Bits über
den Signalisierungsbus 95 gesendet, und ein Bit wird wegen
des im Beispiel vorhandenen Fehlers 96 nicht gesendet.
Wegen der Rotationsoperation im Ansteuerungsbitregister 27 wird
das Bit, das im neunten Schritt nicht gesendet wurde, über einen
anderen Signalisierungsleiter gesteuert und wird im zehnten Schritt
erfolgreich gesendet. Wenn das elektronische System so beschaffen ist,
dass es mehr als einen einzigen fehlerhaften Signalisierungsleiter
unterstützt,
wird das Ansteuerungsbitregister 27 kopiert (nicht gezeigt),
damit es die zusätzlichen
Bits speichert, die in einem bestimmten Schritt nicht gesendet werden
können,
wobei die Ansteuerungsauswahleinrichtung 21 so aufgebaut
ist, dass sie zusätzliche
Bits vom Ausgang des Ansteuerungsmultiplexers 20 auswählt und
die zusätzlichen Bits
in den Kopien des Ansteuerungsbitregisters 27 speichert.
Obwohl eine "Rotations"-Operation im Ansteuerungsbitregister 27 für beispielhafte
Zwecke beschrieben wurde, ist jede vorgegebene Verschiebung von
Bits im Ansteuerungsregister 27, die geeignet ist, das
Bit, das nicht gesendet werden konnte, so zu verschieben, dass es
für den
zehnten Schritt zu einem nicht fehlerhaften Signalisierungsleiter
geleitet wird, denkbar. In einer weiteren (nicht gezeigten) Ausführungsform
ist ein neuntes Eingabebyte des Ansteuerungsmultiplexers 20 in
der oben beschriebenen Weise mit dem Ansteuerungsregister 27 verbunden,
ein zehntes Eingabebyte ist jedoch mit den Bits des Ansteuerungsregisters 27 verbunden,
wobei die Bits des Ansteuerungsregisters 27 in einer bestimmten Reihenfolge
verbunden sind, die sich von der Reihenfolge der Verbindung des
Ansteuerungsregisters 27 mit dem Ansteuerungsmultiplexer 20 unterscheidet.
Die Ansteuerungsschrittsteuereinheit 23 steuert den Ansteuerungsmultiplexer 20,
um die Verbindung des neunten Eingabebytes während des neunten Schritts
und die Verbindung des zehnten Eingabebytes während des zehnten Schritts
auszuwählen.
-
4 zeigt
die Inhalte des Ansteuerungsbitregisters 27 vor jedem Schritt.
Das Bit "Z" ist das Datenbit,
das auf den Signalisierungsleiter, der den Fehler aufweist, im Signalisierungsbus 95 gesteuert
werden würde.
Vor dem Schritt 1 sind keine Bits in das Ansteuerungsbitregister 27 verschoben
worden. Während
des Schritts 1 wird das Bit "Z" von Byte 0 in die äußerst rechte
Bitposition des Ansteuerungsbitregisters 27 verschoben.
Während
des Schritts 2 wird das Bit "Z" vom Byte 1 in die äußerst rechte
Position des Ansteuerungsbitregisters 27 verschoben. Nach dem
Schritt 8 (in 4 als Vorschritt 9 gezeigt)
ist das Bit "Z" für jedes
Byte im Ansteuerungsbitregister 27 gespeichert. Diese acht
Bits werden durch den Ansteuerungsmultiplexer 20 während des
neunten Schritts ausgewählt,
wie oben beschrieben wurde. Nach dem neunten Schritt erfolgt am
Ansteuerungsbitregister 27 eine Rotationsoperation, wie
oben beschrieben wurde, und die Daten, die für den zehnten Schritt ausgewählt sind,
sind in 4 als "Vorschritt 10" gezeigt. Alle "Z"-Bits
bleiben im Ansteuerungsbitregister 27, werden jedoch einer
Rotation um eine Bitposition unterzogen und werden deswegen durch den
Treiber 24 zu anderen Signalisierungsleitern im Signalisierungsbus 95 geleitet.
Deswegen wird das "Z"-Bit, das im neunten
Schritt nicht gesendet werden konnte, im zehnten Schritt erfolgreich
gesendet.
-
5 zeigt
einen erweiterten Blockschaltplan des Chips 5. Die Empfangsablaufsteuerung 51 enthält Empfänger 60,
die geeignet sind, Signale auf dem Signalisierungsbus 95 zu
empfangen. Die Empfangsablaufsteuerung 51 weist außerdem eine
Empfängerschrittsteuereinheit 61 auf,
die durch das Signal 92 mit der Diagnoseeinheit 98,
die oben beschrieben wurde, verbunden ist. Der Empfängerschrittsteuereinheit 61 wird
durch die Diagnoseeinheit 98 mitgeteilt, ob Signalisierungsleiter
im Signalisierungsbus 95 fehlerhaft sind.
-
Ein
Verteiler 63 ist am internen Bus 56 mit Empfängern 60 und
der Empfängerschrittsteuereinheit 61 durch
das Signal 55 (das mehrere Signale umfassen kann) verbunden.
Der Verteiler 63 kann Signale, die von Empfängern 60 ausgegeben
werden, an die zugehörigen
Bits im zweiten Datenblock 50 verteilen. Wenn kein Fehler
vorhanden ist, verschiebt der Verteiler 63 einfach ein
Datenbyte vom internen Bus 56 zum zugehörigen Byte des zweiten Datenblocks 50 während jedes
der (in diesem Beispiel) acht Schritte. Wenn auf dem Signalisierungsleiter "Z" (gemäß der obigen Erläuterung)
ein Fehler 96 vorhanden ist, werden (in dem Beispiel) zwei
zusätzliche Schritte
benötigt.
Während
des neunten Schritts weist der interne Bus 56 sieben gültige Bits
und ein ungültiges
Bit auf. Im neunten Schritt wird jedes der 8 Bits auf dem internen
Bus 56 in jedem der Bytes (d.h. die Bytes 0 bis 7) des
zweiten Datenblocks 50 zu dem "Z"-ten
Bit geschaltet. Nach dem neunten Schritt enthält der zweite Datenblock 50 63
gültige Bits
und ein ungültiges
Bit. Während
des zehnten Schritts weist der interne Bus 56 wieder sieben
gültige
Bits und ein ungültiges
Bit auf. Sechs der gültigen Bits
sind einfach Daten, die während
des neunten Schritts erfolgreich in den zweiten Datenblock 50 geschrieben
wurden. Das siebte gültige
Bit wird während
des zehnten Schritts zum "Z"-ten Bit des Bytes geleitet,
das das restliche ungültige
Bit im zweiten Datenblock 50 enthält. Wenn z.B. ein Fehler 96 am Bit
2 des Signalisierungsbusses 95 vorhanden ist, ist das Bit,
das im zehnten Schritt in den zweiten Datenblock 50 geschrieben
wird, das Bit 2 vom Byte 2, Daten für diesen Schreibvorgang werden
jedoch vom Bit 3 des Signalisierungsbusses 95 genommen,
da die gesendeten Daten im Ansteuerungsbitregister 27 einer
Rotation um ein Bit unterzogen wurden, wie oben erläutert wurde.
-
6 zeigt
noch genauer eine beispielhafte Logikgruppe 63A, die die
Verteilerfunktion für
ein Bit des Verteilers 63 ausführt. Das Registerbit 70 ist
in dem gezeigten Beispiel ein Bit des zweiten Datenblocks 50,
das Bit "N" des Bytes "M". Ein Dateneingang D des Registerbits 70 ist
mit dem Selektor 72 verbunden, der "rcvr bit N" auswählt, das ist das "N"-te Bit des internen Busses 56 für jeden
Schritt kleiner als zehn. In einem zehnten Schritt wird "rcvr bit N (rotiert)" ausgewählt, um
die Rotation von Daten zu berücksichtigen,
die durch das Ansteuerungsbitregister 27 vor der Übertragung
ausgeführt
wurde. Daten am Dateneingang D des Registerbits 70 werden durch
ein Signal am Eingang C eingetaktet. "CLK" ist der
Systemtakt, der gemäß dem logischen
Ausdruck, der in 6 gezeigt ist, durchgeleitet
wird. Das Registerbit 70 empfängt einen Takt, wenn CLK aktiv
ist und "Schritt
M" eingeschaltet
ist. Alle Bits des Bytes 2 werden z.B. im zweiten Schritt eingetaktet.
Das Registerbit 70 empfängt
(während
CLK aktiv ist) während
des neunten Schritts ebenfalls einen Takt, wenn das Bit "N" im Signalisierungsbus 95 fehlerhaft
ist. Wenn z.B. das Bit 2 des Signalisierungsbusses 95 fehlerhaft
ist und das Registerbit 70 das Bit 2 eines Bytes im zweiten
Datenblock 50 ist, wird das Registerbit 70 getaktet.
Das Registerbit 70 wird (während CLK aktiv ist) während des
zehnten Schritts ebenfalls getaktet, wenn es das letzte Bit ist,
das in den zweiten Datenblock 50 geschrieben werden muss.
Bei Fortsetzung des Beispiels, bei dem das Bit 2 des Signalisierungsbusses 95 fehlerhaft
ist, empfängt
das Registerbit 70 einen Takt im zehnten Zyklus, wenn das
Registerbit 70 das Bit 2 vom Byte 2 darstellt. Der Verteiler 63 empfängt Informationen
darüber,
welches Bit gegebenenfalls im Signalisierungsbus 95 fehlerhaft
ist und welcher der aktuelle Schritt ist.
-
7 zeigt
eine weitere Ausführungsform der
vorliegenden Erfindung. Auch diese Ausführungsform stellt die Möglichkeit
des ununterbrochenen Betriebs eines elektronischen Systems bereit, bei
dem ein Fehler in einem Signalisierungsleiter in einem Signalisierungsbus
vorhanden ist und das tatsächlich
die gleiche Anzahl von Zyklen wie bei der vorhergehenden Ausführungsform
sowohl beim Betrieb ohne Fehler als auch beim Betrieb mit einem Fehler
verwendet. Diese Ausführungsform
unterscheidet sich in der Art, wie die Bits ausgewählt werden,
wie später
erläutert
wird. Die Ausführungsform von 7 zeigt
die Diagnoseeinheit 298, die wie die Diagnoseeinheit 98 von 1 Fehler
auf Signalisierungsbussen identifizieren kann und die Kennung des
Fehlers an eine erste elektronische Einheit und eine zweite elektronische
Einheit übertragen
kann.
-
Der
Chip 201 (wie zuvor wird "Chip" für beispielhafte
Zwecke verwendet, tatsächlich
könnte
der Chip 201 ein Modul, eine Platine, eine elektronische Anlage
oder irgendeine andere elektronische Einheit sein) muss einen ersten
Datenblock 201 an einen zweiten Datenblock 250 im
Chip 205 senden. Wie der Ansteuerungschip 201 ist
der Empfängerchip 205 vorgesehen,
um irgendeine elektronische Einheit darzustellen. In dem in 7 gezeigten
Beispiel weist der erste Datenblock 201 64 Bits (0 bis
63) auf, und der zweite Datenblock 250 weist 64 Bits (0
bis 63) auf. Der erste Datenblock 201 und der zweite Datenblock 250 können sich
physisch in einem oder mehreren Registern, einem Cachespeicher,
einem Schieberegister oder einem anderen Speichermittel befinden.
Der Signalisierungsbus 295 hat acht Bits. Ein Signalisierungsleiter
umfasst einen ersten Abschnitt 295B und einen zweiten Abschnitt 295B', der so gezeigt
ist, dass er einen Fehler 296 aufweist. Der Fehler 296 kann
eine Leitungsunterbrechung oder ein Kurzschluss sein, wobei jeder
Fehlertyp den Signalisierungsleiter betriebsunfähig macht. Wie der Fehler 96 von 1 könnte der
Fehler 296 ein Kurzschluss zwischen Signalisierungsleitern
des Signalisierungsbusses 295 sein, das vorliegende Beispiel erläutert jedoch
der Einfachheit halber einen Einzelfehler. Das Signal NEN ist ein
Signal "nicht freigegeben", das häufig verwendet
wird, um Treiber in einem Signalisierungsbus 295 logisch
zu sperren (hochohmig zu machen). Obwohl es optional ist, ist es
dargestellt, um bei der Erläuterung
zu helfen, wie es mit anderen Signalen logisch verknüpft wird,
um alle Treiber im gesamten Signalisierungsbus 295 oder
lediglich einen einzelnen Treiber, der mit einem fehlerhaften Signalisierungsleiter
verbunden ist, zu sperren.
-
Wenn
kein Fehler 296 vorhanden ist, wählt die Ansteuerungsablaufsteuerung 211 "fehlerfreie Auswahlgruppen" der acht Bits zu
einem bestimmten Zeitpunkt vom ersten Datenblock 201 über den
internen Bus SEL8A(0–7)
und steuert die acht Bits im Wesentlichen parallel über den
Signalisierungsbus 295 für jeden von acht Schritten.
Die Empfangsablaufsteuerung 251 empfängt acht Datenbits von jedem Schritt
und sendet die Bits über
SEL8B(0–7)
an zugehörige
Bits im zweiten Datenblock 250. Wie zuvor werden die Ansteuerungsablaufsteuerung 211 und die
Empfangsablaufsteuerung 251 durch die Diagnoseeinheit 298 über das
Vorhandensein und die Kennung eines Fehlers 296 in einem
Signalisierungsleiter über
Signale 291 bzw. 292 informiert.
-
Wenn
ein Fehler 296 vorhanden ist, wählt die Ansteuerungsablaufsteuerung 211 "fehlerhafte Auswahlgruppen" der sieben Bits
zu einem bestimmten Zeitpunkt (in dem Beispiel für die Schritte 1 bis 9) aus dem
ersten Datenblock 201 über
den internen Bus SEL7A(0–6)
und sendet die sieben ausgewählten Bits über die
sieben nicht fehlerhaften Signalisierungsleiter des Signalisierungsbusses 295.
Die Empfangsablaufsteuerung 251 empfängt dann die sieben Bits pro
Schritt und sendet sie über
SEL7B(0–6)
an den zweiten Datenblock 250. In einem zehnten Schritt
(in dem Beispiel) wird das letzte Bit, in dem Beispiel das Bit 63
ausgewählt
und auf einem Signalisierungsleiter, der keinen Fehler aufweist,
gesendet und das letzte Bit wird im korrekten Bit des zweiten Datenblocks 250 gespeichert.
Die 8A und 8B zeigen
die acht Schritte und die Daten, die gesendet werden, wenn kein
Fehler vorhanden ist, bzw. die zehn Schritte und die Bits, die während jedes
Schritts gesendet werden, wenn ein Fehler vorhanden ist.
-
9 zeigt
eine beispielhafte Ausführungsform
der Ansteuerungsablaufsteuerung 211. Ein Bitfehlerregister 259 hat
acht Bits, wobei jedes Bit einem Signalisierungsleiter im Signalisierungsbus 295 entspricht.
Wenn ein Signalisierungsleiter einen Fehler aufweist, wird das entsprechende
Bit im Bitfehlerregister 259 auf den logischen Wert "1" gesetzt, ansonsten ist das entsprechende
Bit auf einen logischen Wert "0" gesetzt. BF(0) = "1" bedeutet deshalb, dass ein Fehler beim
Bit 0 des Signalisierungsbusses 295 vorhanden ist. Eine
Kaskade von ODER-Gattern erzeugt einen logischen Wert "1", beginnend mit dem Bit im Bitfehlerregister 259,
das einen logischen Wert "1" aufweist. Wenn z.B.
BF(3) = "1", sind F0, F1, F2 gleich "0", jedoch F3, F4, F5, F6 und BIT FAULT
sind "1".
-
Bei
BIT FAULT = "1" ist ein Fehler vorhanden,
und die Datenübertragung
enthält
(in dem Beispiel) zehn Schritte, sieben Bits in jedem der ersten neun
Schritte und ein Bit im zehnten Schritt.
-
Selektoren
AA0 bis AA7 wählen
Daten vom Bus SEL8A(0–7),
wenn BIT FAULT = "0". Wenn BIT FAULT
= "1", wählen Selektoren
AA0 bis AA7 Daten von SEL7A(0–6),
obwohl einige oder alle derartigen Bits verschoben sein können, wie
im Folgenden beschrieben wird. Selektoren A0 bis A5 stellen einen Mechanismus
dar, um alle Bits von SEL7A(0–6)
zu nicht fehlerhaften Signalisierungsleitern zu verschieben.
-
Es
wird z.B. angenommen, dass BUS(0), das das Signalisierungsleiter-Bit(0)
des Signalisierungsbusses 295 darstellt, als fehlerhaft
identifiziert wurde (wobei der Fehler im Treiber von BUS(0), im
Signalisierungsleiter und in der Empfängerschaltung vorhanden sein
könnte).
Der Treiber von BUS(0) hat einen Freigabeeingang E, der den Treiber
sperrt, wenn der Eingang E einen logischen Wert "0" besitzt.
Wenn BUS(0) einen Fehler aufweist, gilt BF(0) = "1".
BF(0) ist ein Eingang in das NOR-Gatter A0, wobei BF(0) = "1" sicherstellt, dass der Treiber von
BUS(0) gesperrt ist. F0 steuert den Selektor A0, F0 = "1" wählt SEL7A(0)
im Selektor A0, der durch den Selektor AA1 mit dem Dateneingang
D des Treibers von BUS(1) verbunden ist. Gleichfalls wird SEL7A(1)
zum Eingang D des Treibers von BUS(2) geleitet, SEL7A(2) wird zum
Eingang D des Treibers von BUS(3) geleitet usw. SEL7A(6) wird direkt
zu SELAA7 geleitet und auf BUS(7) gesteuert. Auf diese Weise wird
BUS(0) umgangen und die sieben Bits von SEL7A werden auf nicht fehlerhafte
Signalisierungsleiter BUS(1–7)
gesteuert.
-
Als
ein zweites Beispiel, das jedoch kürzer ist, werden dann, wenn
auf BUS(4) ein Fehler vorhanden ist, SEL7A(0) auf BUS(0) geleitet
und gesteuert, SEL7A(1) auf BUS(1) gesteuert, SEL7A(2) auf BUS(2)
gesteuert, SEL7A(3) auf BUS(3) gesteuert, SEL7A(4) auf BUS(5) gesteuert,
SEL7A(5) auf BUS(6) gesteuert und SEL7A(6) auf BUS(7) gesteuert.
Der Treiber von BUS(4) ist durch BF(4) gesperrt. Die sieben Bits
von SEL7A werden wiederum auf nicht fehlerhaften Signalisierungsleitern
geleitet.
-
Der
Signalisierungsbus 295 kann vollständig gesperrt werden, indem
NEN = "1" eingeschaltet wird,
das ein Einschaltsignal an die NOR-Gatter A0 bis A7 ist und sicherstellt,
dass ein logischer Wert "0" die Eingänge aller
acht Treiber sperrt. NEN ist ein optionales Signal, das verwendet
wird, wenn ein Entwickler in der Lage sein möchte, alle Treiber am Signalisierungsbus 295 logisch
zu sperren.
-
Obwohl
die gezeigte genaue Logik der Einfachheit halber lediglich einen
einzelnen fehlerhaften Signalisierungsleiter unterstützt, wird
ein Fachmann erkennen, dass zusätzliche
Auswahlgruppen (z.B. "SEL6A", "SEL5A" zur Behandlung von
zwei oder drei fehlerhaften Signalisierungsleitern) mit zusätzlichen
Selektoren verbunden werden können,
um zu einem bestimmten Zeitpunkt auf einer kleineren Anzahl von
Signalisierungsleitern zu leiten, wenn "F" größer wird.
-
10 zeigt
eine Ausführungsform
der Empfangsablaufsteuerung 251. Ein Empfangsbitfehlerregister 260 enthält das gleiche
Bitmuster wie das Bitfehlerregister 259, wobei jedes Bit
einem Signalisierungsleiter im Signalisierungsbus 295 entspricht.
-
Das
Bitfehlerregister 260 wird von der Diagnoseeinheit 298 über ein
Signal 292 geladen. Es ist wiederum eine Kaskade von ODER-Gattern
vorgesehen, wie dargestellt ist, um logische Werte "1" zu erzeugen, die ein Bit mit dem logischen
Wert "1" im Empfangsbitfehlerregister 260 enthalten
und sich daraus ergeben. Wenn z.B. RBF(0) = "1",
sind RF0, RF1, RF2, RF3, RF4, RF5, RF6 und RECEIVE BIT FAULT jeweils "1".
-
Empfänger B0
bis B7 empfangen BUS(0–7) und
geben SEL8B(0–7)
aus. Wenn ein Fehler an einem Signalisierungsleiter vorhanden ist,
werden lediglich sieben Bits (auf den sieben nicht fehlerhaften Signalisierungsleitern)
gesendet, wobei die sieben Bits in geeigneter Weise von SEL8B(0–7) auf SEL7B(0–6) zugeordnet
werden müssen.
Diese Zuordnung entspricht tatsächlich
der Zuordnung, die durch die Ansteuerungsablaufsteuerung 211 erfolgt, um
sieben Bits auf die sieben nicht fehlerhaften Signalisierungsleiter
des Signalisierungsbusses 295 zu lenken.
-
RF0
bis RF7 und die Selektoren B0 bis B6 stellen diese Zuordnung bereit.
Wenn RBF(0) = "1" (wodurch ein Fehler
im Signalisierungsleiter für
Bit "0" des Signalisierungsbusses 295 angegeben
wird), ist RF0 = "1", und der Selektor
B0 wird in der Weise gesteuert, dass er SEL8B(1) für eine Ausgabe
als SEL7B(0) auswählt.
Unter Verwendung der Signale RF1, RF2, RF3, RF4, RF5 und RF6 werden
gleichfalls SEL8B(2) auf SEL7B(1), SEL8B(3) auf SEL7B(2), SEL8B(4)
auf SEL7B(3), SEL8B(5) auf SEL7B(4), SEL8B(6) auf SEL7B(5) und SEL8B(7) auf
SEL7B(6) gesteuert. Gleichfalls werden dann, wenn BUS(6) fehlerhaft
ist, BUS(0–5)
auf SEL7B(0–5)
geleitet, und BUS(7) wird auf SEL7B(6) geleitet.
-
Zusätzliche
Selektoren und ODER-Gatter werden in einer (nicht gezeigten) Ausführungsform verwendet,
die so eingerichtet ist, dass sie mehr als einen fehlerhaften Signalisierungsleiter
behandeln kann, wobei die zusätzlichen
Selektoren verwendet werden, um Signale von nicht fehlerhaften Signalisierungsleitern
zu Signalisierungsgruppen zu leiten, die weniger Signale aufweisen,
die mit dem zweiten Datenblock 250 verbunden sind. Wenn
z.B. wie oben zwei fehlerhafte Signale in einer Ausführungsform behandelt
werden, werden (unter Verwendung der oben verwendeten Bezeichnungskonvention)
eine Signalgruppe "SEL6B" sowie eine Signalgruppe "SEL7B" benötigt.
-
11 zeigt
eine Ausführungsform
der detaillierten Logik, die verwendet wird, um das geeignete Bit,
das empfangen wurde, in das richtige Bit des Empfangsregisters 250 zu
leiten. Das Signal 292 von der Diagnoseeinheit 298 enthält eine
Schrittanzahl. In einer (nicht gezeigten) alternativen Ausführungsform
führt die
Empfangsablaufsteuerung 251 ihre eigene Schrittzählung aus.
Der Gruppendecodierer 278 verwendet die Schrittanzahl und
den Empfangsbitfehler (Empfangsbitfehlerregister 260 von 10), um
ein 8-Bit-Wort "en
8-Bit-Gruppe" zu
erzeugen, von dem ein Bit für
jeden Schritt gesperrt ist, um die Taktung der acht Bits in das
Empfangsregister 250 zu steuern, das Daten von SEL8B für einen
bestimmten Schritt empfangen muss, wenn auf dem Signalisierungsbus 295 kein
Fehler vorhanden ist. Der Gruppendecodierer 278 gibt außerdem ein
10-Bit-Wort, "en
7-Bit-Gruppe" aus, von dem ein
Bit für
jeden der zehn Schritte, die dann auftreten, wenn an einem Signalisierungsleiter
des Signalisierungsbusses 295 ein Fehler vorhanden ist,
gesperrt ist. Ein Dateneingang des Registerbits 272 (ein
bestimmtes Bit "X" im Empfangsregister 250)
ist mit dem Selektor 270 verbunden, der ein Bit "M" des Busses SEL7B auswählt, wenn
RECEIVE BIT FAULT = "1", und ein Bit "N" von SEL8B auswählt, wenn RECEIVE BIT FAULT
= "0". SEL7B(0) ist z.B.
mit den Bits 0, 6, 13, 55 und 64 des Empfangsregisters 250 verbunden.
SEL7B(1) ist mit den Bits 1, 7, 14, 56 verbunden. SEL8B(0) ist mit
den Bits 0, 7, 15, 56 verbunden.
-
Ein
UND-Gatter 271 empfängt
den Systemtakt CLK an einem ersten Eingang. Ein zweiter Eingang
des UND-Gatters 271 ist mit dem Selektor 277 verbunden,
der durch das Signal RECEIVE BIT FAULT gesteuert wird, das in der
gezeigten Weise in 10 erzeugt wird. Wenn ein Fehler
vorhanden ist, ist RECEIVE BIT FAULT = "1",
und der Selektor 277 wählt "EN 7-BIT GROUP(A)" aus, wobei "A" das Bit des 10-Bit-Worts "EN 7-BIT GROUP" 274 ist,
das an der bestimmten 7-Bit-Gruppe des zweiten Datenblocks 250 anliegt,
in dem sich das Registerbit 272 befindet. Die Bits 0 bis
6 des zweiten Datenblocks 250 befinden sich z.B. in der
Bitgruppe, die die durch den Schritt 1 gesendeten 7 Bits sendet,
wobei das Bit 0 von EN 7-BIT GROUP während des ersten Schritts "1" ist, um den Takt zu diesen sieben Registerbits
zu sperren. Es wird angemerkt, dass (in dem Beispiel) lediglich
ein Registerbit (d.h. das Bit 63) des Empfangsregisters 250 betroffen
ist, wenn das Bit in "EN 7-BIT GROUP" für den zehnten
Schritt "1" ist.
-
Wie
oben erläutert
wurde, werden in einer Ausführungsform
zusätzliche
fehlerhafte Signalisierungsleiter behandelt. Wenn z.B. zwei fehlerhafte
Signalisierungsleiter behandelt werden sollen, muss der Gruppendecodierer 278 6-Bit-Gruppen
sowie 7-Bit-Gruppen
und 8-Bit-Gruppen freigeben. Der Selektor 270 muss einen
weiteren Eingang für
das zugehörige
Bit "SEL6B" aufweisen, und der
Selektor 277 muss einen dritten Eingang für ein geeignetes
Bit "EN 6-BIT GROUP" aufnehmen, wie der
Fachmann erkennen wird.
-
12 zeigt
einen Übersichts-Ablaufplan
eines Verfahrens 300 der Übertragungssequenz, das eine Übertragung
eines Datenblocks von einer ersten elektronischen Einheit an eine
zweite elektronische Einheit über
einen Signalisierungsbus ermöglicht, wobei
der Signalisierungsbus einen fehlerhaften Signalisierungsleiter
aufweisen kann. Das Verfahren beginnt im Block 301. Im
Block 302 bestimmt eine Diagnoseeinheit fehlerhafte und
nicht fehlerhafte Signalisierungsleiter im Signalisierungsbus. Die
erste elektronische Einheit sendet einen ersten Datenblock über den
Signalisierungsbus an die zweite elektronische Einheit unter Verwendung
einer Übertragungssequenz,
die alle nicht fehlerhaften Signalisierungsleiter bei Verwendung
einer Mindestanzahl von Schritten verwendet. Die erste elektronische
Einheit muss einen "J"-Bit-Datenblock an
die zweite elektronische Einheit über den "K"-Bit-Signalisierungsbus senden. "F" ist die Anzahl fehlerhafter Signalisierungsleiter,
die durch die Diagnoseeinheit identifiziert wurden. Wenn "F" = 0, wurden keine Fehler identifiziert.
Durch die Erfindung ist vorzugsweise jede Anzahl von Fehlern bis
zu "K – 1" vorgesehen. Im Block 303 setzt
die Diagnoseeinheit den Fehlerstatus in der ersten (ansteuernden)
elektronischen Einheit und in der zweiten (empfangenden) elektronischen
Einheit. Im Block 304 wird der "J"-Bit-Datenblock über die nicht
fehlerhaften Signalisierungsleiter im Signalisierungsbus gesendet,
wobei eine ausreichende Anzahl von Buszyklen (Schritte) verwendet
werden, um die Übertragung
auszuführen.
Die elektronische Einheit empfängt
den "J"-Bit-Datenblock über die
nicht fehlerhaften Signalisierungsleiter. Das Verfahren endet im
Block 305. Die Treiber, die mit fehlerhaften Signalisierungsleitern
verbunden sind, sind vorteilhaft gesperrt.
-
13 zeigt
einen Ablaufplan eines Verfahrens 320, das eine Ausführungsform
des Blocks 304 des Verfahrens 300 ist. Das Verfahren
beginnt im Block 321. Im Block 322 wird ein Schrittzähler initialisiert.
Im Block 323 wird ein Datenbyte ausgewählt. Die Anzahl der ausgewählten Bits
ist die Anzahl aller Signalisierungsleiter im Signalisierungsbus, über den der
Datenblock gesendet werden soll, wobei "Byte" an
dieser Stelle für
beispielhafte Zwecke verwendet und ein Signalisierungsbus mit der
Breite eines Bytes angenommen wird. Für beispielhafte Zwecke wird
ein 64-Bit-Datenblock angenommen, die Erfindung ist jedoch vorzugsweise
nicht auf einen 64-Bit-Datenblock begrenzt. Der Einfachheit halber
wird ein einzelner fehlerhafter Signalisierungsleiter angenommen,
es kann jedoch eine beliebige Anzahl von fehlerhaften Bits bis zu "K – 1" angenommen werden,
wie oben erläutert
wurde. Im Block 324 wird das Bit des ausgewählten Bytes,
das für
eine Übertragung über den fehlerhaften
Signalisierungsleiter vorgesehen ist, gespeichert. Das Bit wird
vorteilhaft in einem Schieberegister gespeichert, wobei die Bits
des Schieberegisters in Reaktion auf ein Steuersignal einer Rotation
unterzogen werden können.
Im Block 325 wird das ausgewählte Byte zu Dateneingängen von
Treibern geleitet und auf den Signalisierungsbus gesteuert. Der
fehlerhafte Signalisierungsleiter ist nicht in der Lage, das Bit
zu senden, das zu dem Dateneingang des Treibers geleitet wird, der
mit dem fehlerhaften Signalisierungsleiter verbunden ist, wobei
der Treiber vorteilhaft gesperrt wird (auch bekannt als hochohmig
schalten oder in einen hochohmigen Zustand schalten), um zu verhindern,
dass möglicherweise
ein großer
Strom fließt,
wenn der Fehler ein Kurzschluss ist. "Hohe Impedanz" bedeutet dann, wenn ein Treiber gesperrt
ist, dass der Ausgang des Treibers eine Impedanz besitzt, die wenigstens
um eine Größenordnung
höher ist
als die der angesteuerten Übertragungsleitung
und gewöhnlich
im Bereich von mehreren hundert bis mehreren tausend Ohm oder sogar
Megaohm liegt. Im Block 326 wird geprüft, ob die Anzahl von Schritten,
die für
eine normale Übertragung
(ohne fehlerhafte Signalisierungsleiter) erforderlich sind, abgeschlossen
wurde. Wenn das nicht der Fall ist, wird der Schrittzähler durch
den Block 342 erhöht,
und die Steuerung geht zum Block 323. Wenn der normale
Schrittzählerstand
erreicht wurde, wird im Block 327 geprüft, ob ein Fehler identifiziert
wurde. Wenn das nicht der Fall ist, wurde die Übertragung abgeschlossen. Wenn
ein Fehler identifiziert wurde, wählt der Block 328 das
Byte aus gespeicherten Bits (in dem Beispiel soll ein 64-Bit-Datenblock über einen
8-Bit-Bus gesendet werden, und es wird ein Einzelfehler angenommen,
woraus sich acht gespeicherte Bits ergeben) und leitet sie zum Dateneingang
der Treiber des Signalisierungsbusses. Sieben der acht Bits werden
in einem weiteren Schritt gesendet, wie oben erläutert wurde. Block 329 führt an den
Bits in den gespeicherten Daten eine Rotation aus, so dass alle
Bits zu einer anderen vorgegebenen Position bewegt werden. Wie oben
erläutert wurde,
befinden sich die gespeicherten Bits vorteilhaft in einem Schieberegister,
das eine Bitrotation ausführen
kann, bei der alle Bits um eine Position bewegt werden, wobei das
an einem Ende befindliche Bit zur ersten Bitposition am anderen
Ende gedreht wird. Im Block 340 werden die gespeicherten
Bits erneut ausgewählt
und zu den Dateneingängen
der Treiber am Signalisierungsbus geleitet und in einem letzten
Schritt angesteuert. Das Bit, das im vorhergehenden Busschritt nicht
gesendet werden konnte, wird nun zu einem anderen Treiber geleitet
und über einen
nicht fehlerhaften Signalisierungsleiter gesteuert. Die zweite (empfangende)
elektronische Einheit ist über
den fehlerhaften Signalisierungsleiter informiert und so eingerichtet,
dass sie das Übertragungsprotokoll
kennt, wenn ein fehlerhafter Signalisierungsleiter vorhanden ist,
und sie kann die gesendeten Bits in geeigneter Weise in die korrekten
Bitpositionen eines Speichers in der zweiten elektronischen Einheit
verschieben.
-
14 zeigt
eine zweite Ausführungsform des
Blocks 304 von 12. Das
Verfahren zum Senden eines Datenblocks von einer ersten elektronischen
Einheit an eine zweite elektronische Einheit über einen Signalisierungsbus
beginnt im Block 361. Im Block 362 wird ein Schrittzähler initialisiert,
und die Anzahl von erforderlichen Schritten wird aus der Gesamtzahl
von Bits, die gesendet werden sollen, und der Anzahl von nicht fehlerhaften
Signalisierungsleitern, die im Signalisierungsbus zur Verfügung stehen,
ermittelt. Im Block 363 wird eine Datengruppe aus dem zu
sendenden Block ausgewählt, wobei
die Größe der Gruppe
gleich der Anzahl von nicht fehlerhaften Signalisierungsleitern
in dem Signalisierungsbus ist. Im Block 364 wird die Datengruppe
durch die erste elektronische Einheit über die nicht fehlerhaften
Signalisierungsleiter an die zweite elektronische Einheit gesendet.
Im Block 365 wird ermittelt, ob der letzte Schritt ausgeführt wurde;
wenn das nicht der Fall ist, wird im Block 366 ein Schrittzähler erhöht und die
Steuerung geht zum Block 363. Wenn der letzte Schritt ausgeführt wurde,
geht die Steuerung zum Block 367, der das Verfahren beendet.
-
Während das
Vorhergehende auf Ausführungsformen
der vorliegenden Erfindung gerichtet ist, können andere und weitere Ausführungsformen
der Erfindung ersonnen werden, ohne von ihrem grundlegenden Umfang
abzuweichen, wobei ihr Umfang durch die folgenden Ansprüche festgelegt
ist.