DE602004007681T2 - Autonome busumkonfiguration für fehlerbedingungen - Google Patents

Autonome busumkonfiguration für fehlerbedingungen Download PDF

Info

Publication number
DE602004007681T2
DE602004007681T2 DE602004007681T DE602004007681T DE602004007681T2 DE 602004007681 T2 DE602004007681 T2 DE 602004007681T2 DE 602004007681 T DE602004007681 T DE 602004007681T DE 602004007681 T DE602004007681 T DE 602004007681T DE 602004007681 T2 DE602004007681 T2 DE 602004007681T2
Authority
DE
Germany
Prior art keywords
signaling
bit
electronic unit
bus
conductors
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.)
Active
Application number
DE602004007681T
Other languages
English (en)
Other versions
DE602004007681D1 (de
Inventor
John Michael Rochester BORKENHAGEN
Laura Marie Rochester ZUMBRUNNEN
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE602004007681D1 publication Critical patent/DE602004007681D1/de
Application granted granted Critical
Publication of DE602004007681T2 publication Critical patent/DE602004007681T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks

Description

  • 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.

Claims (10)

  1. Verfahren zum Senden eines "J"-Bit-Datenblocks (201) von einer ersten elektronischen Einheit an eine zweite elektronische Einheit über einen Signalisierungsbus (295), der "K" Signalisierungsleiter aufweist, wenn null bis "K – 1" der Signalisierungsleiter fehlerhaft sind, wobei das Verfahren die folgenden Schritte umfasst: Identifizieren von fehlerhaften und nicht fehlerhaften Signalisierungsleitern in dem Signalisierungsbus; Einstellen 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 (296) in dem Signalisierungsbus; Bestimmen von "K – F", der Anzahl der nicht fehlerhaften Signalisierungsleiter in dem Signalisierungsbus; und Senden des "J"-Bit-Datenblocks (201) über die "K – F" nicht fehlerhaften Signalisierungsleiter unter Verwendung von "J/(K – F)" Schritten plus einem zusätzlichen Schritt, falls ein Rest vorhanden ist, wobei das Verfahren ferner die folgenden Schritte umfasst: 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" nicht fehlerhaften 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 (295), wobei die Bitreihenfolge des J-Bit-Datenblocks aufrechterhalten wird, wenn die (K – F)-Bit-Bitgruppen über die nicht fehlerhaften Signalisierungsleiter gesendet werden.
  2. Verfahren nach Anspruch 1, das umfasst: Sperren eines Treibers, der mit einem fehlerhaften Signalisierungsleiter verbunden ist (296).
  3. Verfahren nach Anspruch 2, das umfasst: Verschieben jeder (K – F)-Bit-Bitgruppe zu nicht fehlerhaften Signalisierungsleitern in Vorbereitung des Sendens aller Gruppen von der ersten elektronischen Einheit an die zweite elektronische Einheit.
  4. Verfahren nach Anspruch 1, 2 oder 3, bei dem die zweite elektronische Einheit eine Empfangsablaufsteuerung (251), die mit dem Signalisierungsbus (295) und einer Diagnoseeinheit (298) verbunden ist, umfasst, wobei das Verfahren folgende Schritte umfasst: Empfangen von (K – F)-Bit-Bitgruppen an der Empfangsablaufsteuerung (251) in der zweiten elektronischen Einheit; und Zuordnen der (K – F)-Bit-Bitgruppen zu nicht fehlerhaften Empfangsbusleitern.
  5. Verfahren nach einem der vorhergehenden Ansprüche, das die folgenden Schritte umfasst: Speichern von "K – F"-Bits, die von den "K – F" nicht fehlerhaften Signalisierungsleitern des Signalisierungsbusses empfangen werden, zu einem Zeitpunkt im zweiten Datenblock (250) und Speichern von weniger als "K – F" Bits, wenn "J/(K – F)" einen Rest hat.
  6. Vorrichtung zum Senden eines "J"-Bit-Datenblocks (201) von einer ersten elektronischen Einheit an eine zweite elektronische Einheit, wobei die Vorrichtung umfasst: einen ersten Datenblock, der "J"-Bits zum Senden hält, in der ersten elektronischen Einheit; eine Speichereinrichtung in der zweiten elektronischen Einheit, die einen zweiten Datenblock (250), der "J" Bits enthält, halten kann; einen Signalisierungsbus (295) mit "K" Signalisierungsleitern, die die erste elektronische Einheit mit der zweiten elektronischen Einheit verbinden, wobei der Signalisierungsbus "F" fehlerhafte Signalisierungsleiter (296) und "K – F" nicht fehlerhafte Signalisierungsleiter hat; eine Diagnoseeinheit (298), 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 (211) 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.
  7. Vorrichtung nach Anspruch 6, bei der die Ansteuerungsablaufsteuerung (211) ferner Ansteuerungseinrichtungen umfasst, die gesperrt werden können; wobei die Ansteuerungsablaufsteuerung einen Treiber sperrt, der mit einem fehlerhafte Signalisierungsleiter (296) verbunden ist.
  8. Vorrichtung nach Anspruch 7, die umfasst: Mittel zum Verschieben aller K – F-Bit-Bitgruppen zu nicht fehlerhaften Signalisierungsleitern in Vorbereitung des Sendens aller Gruppen von der ersten elektronischen Einheit an die zweite elektronische Einheit.
  9. Vorrichtung nach Anspruch 6, 7 und 8, bei der die zweite elektronische Einheit eine Empfangsablaufsteuerung (251) umfasst, die mit dem Signalisierungsbus und der Diagnoseeinheit verbunden ist, wobei die Vorrichtung umfasst: Mittel zum Empfangen von (K – F)-Bit-Bitgruppen an der Empfangsablaufsteuerung in der zweiten elektronischen Einheit; und Mittel zum Zuordnen der (K – F)-Bit-Bitgruppen zu einem nicht fehlerhaften Busleiter.
  10. Vorrichtung nach Anspruch 7 oder 8, bei der die zweite elektronische Einheit ferner eine Empfangsablaufsteuerung (251) umfasst, die mit dem Signalisierungsbus (295) und der Diagnoseeinheit (298) verbunden ist, wobei die Empfangsablaufsteuerung zu einem Zeitpunkt "K – F" Bits im zweiten Datenblock (250) speichern kann, wobei die "K – F" Bits von den "K – F" nicht fehlerhaften Signalisierungsleitern des Signalisierungsbusses empfangen werden, und wobei die Empfangsablaufsteuerung ferner weniger als "K – F" Bits speichern kann, falls J/(K – F) einen Rest hat.
DE602004007681T 2003-09-11 2004-09-10 Autonome busumkonfiguration für fehlerbedingungen Active DE602004007681T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/660,217 US7392445B2 (en) 2003-09-11 2003-09-11 Autonomic bus reconfiguration for fault conditions
US660217 2003-09-11
PCT/EP2004/052135 WO2005024633A1 (en) 2003-09-11 2004-09-10 Autonomic bus reconfiguration for fault conditions

Publications (2)

Publication Number Publication Date
DE602004007681D1 DE602004007681D1 (de) 2007-08-30
DE602004007681T2 true DE602004007681T2 (de) 2008-04-30

Family

ID=34273623

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004007681T Active DE602004007681T2 (de) 2003-09-11 2004-09-10 Autonome busumkonfiguration für fehlerbedingungen

Country Status (9)

Country Link
US (1) US7392445B2 (de)
EP (1) EP1683018B1 (de)
JP (1) JP4392025B2 (de)
KR (1) KR20060061359A (de)
CN (1) CN100419701C (de)
AT (1) ATE367606T1 (de)
DE (1) DE602004007681T2 (de)
TW (1) TWI300527B (de)
WO (1) WO2005024633A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070233930A1 (en) * 2006-03-14 2007-10-04 International Business Machines Corporation System and method of resizing PCI Express bus widths on-demand
US8953292B2 (en) * 2007-05-30 2015-02-10 Infineon Technologies Ag Bus interface and method for short-circuit detection
WO2009144824A1 (ja) * 2008-05-30 2009-12-03 富士通株式会社 情報処理装置、転送回路及び情報処理装置のエラー制御方法
JP5163298B2 (ja) * 2008-06-04 2013-03-13 富士通株式会社 情報処理装置、データ伝送装置及びデータ伝送方法
KR101593702B1 (ko) * 2009-03-22 2016-02-15 엘지전자 주식회사 무선 통신 시스템에서 참조 신호 전송 방법 및 장치
WO2015006946A1 (en) * 2013-07-18 2015-01-22 Advanced Micro Devices, Inc. Partitionable data bus
US9454419B2 (en) 2013-07-18 2016-09-27 Advanced Micro Devices, Inc. Partitionable data bus
US10642951B1 (en) * 2018-03-07 2020-05-05 Xilinx, Inc. Register pull-out for sequential circuit blocks in circuit designs

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2473820A1 (fr) * 1980-01-11 1981-07-17 Telecommunications Sa Procede et systeme d'initialisation de la securisation d'une ligne d'une artere de transmission numerique
JP2825630B2 (ja) * 1990-09-07 1998-11-18 株式会社日立製作所 回線切替方式
JPH06259343A (ja) * 1993-03-10 1994-09-16 Hitachi Ltd 多重バス制御方式及びそれを用いたシステム
US5440538A (en) * 1993-09-23 1995-08-08 Massachusetts Institute Of Technology Communication system with redundant links and data bit time multiplexing
US5678065A (en) * 1994-09-19 1997-10-14 Advanced Micro Devices, Inc. Computer system employing an enable line for selectively adjusting a peripheral bus clock frequency
US5875301A (en) * 1994-12-19 1999-02-23 Apple Computer, Inc. Method and apparatus for the addition and removal of nodes from a common interconnect
US5867645A (en) 1996-09-30 1999-02-02 Compaq Computer Corp. Extended-bus functionality in conjunction with non-extended-bus functionality in the same bus system
US6366557B1 (en) * 1997-10-31 2002-04-02 Nortel Networks Limited Method and apparatus for a Gigabit Ethernet MAC (GMAC)
US6018810A (en) * 1997-12-12 2000-01-25 Compaq Computer Corporation Fault-tolerant interconnection means in a computer system
JP3994360B2 (ja) * 1998-05-20 2007-10-17 ソニー株式会社 情報処理装置、情報処理方法、および記録媒体
US7100071B2 (en) * 1998-07-16 2006-08-29 Hewlett-Packard Development Company, L.P. System and method for allocating fail-over memory
US6466718B1 (en) * 1999-12-29 2002-10-15 Emc Corporation Method and apparatus for transmitting fiber-channel and non-fiber channel signals through common cable
US6574753B1 (en) * 2000-01-10 2003-06-03 Emc Corporation Peer link fault isolation
JP2003014819A (ja) * 2001-07-03 2003-01-15 Matsushita Electric Ind Co Ltd 半導体配線基板,半導体デバイス,半導体デバイスのテスト方法及びその実装方法
KR100448709B1 (ko) * 2001-11-29 2004-09-13 삼성전자주식회사 데이터 버스 시스템 및 그 제어방법
US6898730B1 (en) * 2001-11-30 2005-05-24 Western Digital Technologies, Inc. System and method for fail-over switching in a disk storage medium
JP4188602B2 (ja) * 2002-01-10 2008-11-26 株式会社日立製作所 クラスタ型ディスク制御装置及びその制御方法
US6918068B2 (en) * 2002-04-08 2005-07-12 Harris Corporation Fault-tolerant communications system and associated methods
US7362697B2 (en) * 2003-01-09 2008-04-22 International Business Machines Corporation Self-healing chip-to-chip interface
US7194581B2 (en) * 2003-06-03 2007-03-20 Intel Corporation Memory channel with hot add/remove

Also Published As

Publication number Publication date
CN100419701C (zh) 2008-09-17
JP4392025B2 (ja) 2009-12-24
EP1683018B1 (de) 2007-07-18
WO2005024633A1 (en) 2005-03-17
TWI300527B (en) 2008-09-01
US20050058086A1 (en) 2005-03-17
DE602004007681D1 (de) 2007-08-30
JP2007505380A (ja) 2007-03-08
EP1683018A1 (de) 2006-07-26
CN1849589A (zh) 2006-10-18
TW200516402A (en) 2005-05-16
ATE367606T1 (de) 2007-08-15
US7392445B2 (en) 2008-06-24
KR20060061359A (ko) 2006-06-07

Similar Documents

Publication Publication Date Title
DE102005048255A1 (de) Integriertes Schaltungsbauelement und Betriebsverfahren
DE102015010900B4 (de) Serieller Hochgeschwindigkeitsring
DE112007002211T5 (de) Vorrichtung und Verfahren zum Verbinden von SAS RAID Controller-Vorrichtungs-Kanälen über redundante Speichersubsysteme hinweg
DE3111447A1 (de) Anzeigeschaltung fuer speicherschreibfehler
DE10236179A1 (de) Speichersystem und Verfahren zur Verwendung desselben
DE602004007681T2 (de) Autonome busumkonfiguration für fehlerbedingungen
EP0586715B2 (de) Informationsübertragungsverfahren zur Übertragung digitaler Informationen
DE10317925B4 (de) Steuerungskommunikation über eine ständig eingeschaltete Steuerungsverbindung
EP0325318B1 (de) Vermittlungsanlage
DE102007045851A1 (de) Elektronische Vorrichtung, Verfahren zum Betreiben einer elektronischen Vorrichtung, Speicherschaltung und Verfahren zum Betreiben einer Speicherschaltung
DE2131787C3 (de) Schaltungsanordnung zur Fehlerfeststellung bei Datenverarbeitungssystemen
DE102020130175A1 (de) Verfahren und vorrichtung zum reduzieren von mikrobondhügeln für eine double-data rate (ddr)-übertragung zwischen dies
EP0920154A2 (de) Verfahren und Schaltungsanordnung zur selektiven digitalen seriellen Übertragung
DE2441351A1 (de) Schaltungsanordnung zur selbstpruefenden paritaetspruefung fuer zwei oder mehr voneinander unabhaengige datenkanaele
DE10252588A1 (de) Selektive Lötmittelhöckeraufbringung
DE4239461A1 (de) Anordnung zur Übertragung von Daten über einen Bus
DE102020111321A1 (de) System und verfahren zur erkennung und berichtigung von datenfehlern eines transparenten registers
EP0182134B1 (de) Verfahren zum Betrieb eines signaltechnisch sicheren Mehrrechnersystems mit mehreren signaltechnisch nicht sicheren Ein/Ausgabebaugruppen
DE60319175T2 (de) Datenübertragungssystem im Fahrzeug mit redundanten Verbindungen
DE69636805T2 (de) Massenspeicherplattenanordnung zur Verwendung in Rechnersystemen
EP1394559A1 (de) Verfahren und Anordnung zur Erkennung und Behebung von Leitungsdefekten
DE10340419A1 (de) System und Verfahren zum Schalten von Taktquellen
DE10338675A1 (de) Reserve-Eingangs-/Ausgangs-Puffer
EP0294678B1 (de) Sicherungseinrichtung zum Absichern von Daten in Speichereinheiten einer Datenverarbeitungsanlage unter Verwendung eines Fehlererkennungs- und Fehlerkorrekturcodes
DE19841183C2 (de) Vorrichtung zur Kopplung von redundanten elektronischen Schaltungen über redunante Busse ohne Fehlerfortpflanzung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
R082 Change of representative

Ref document number: 1683018

Country of ref document: EP

Representative=s name: PFENNING MEINIG & PARTNER GBR, DE