[go: up one dir, main page]

DE102006027448B4 - Schaltungsanordnung - Google Patents

Schaltungsanordnung Download PDF

Info

Publication number
DE102006027448B4
DE102006027448B4 DE102006027448A DE102006027448A DE102006027448B4 DE 102006027448 B4 DE102006027448 B4 DE 102006027448B4 DE 102006027448 A DE102006027448 A DE 102006027448A DE 102006027448 A DE102006027448 A DE 102006027448A DE 102006027448 B4 DE102006027448 B4 DE 102006027448B4
Authority
DE
Germany
Prior art keywords
circuit
output
data
data output
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102006027448A
Other languages
English (en)
Other versions
DE102006027448A1 (de
Inventor
Michael GÖSSEL
Egor Sogomonyan
Daniel Marienfeld
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.)
Universitaet Postdam
Original Assignee
Universitaet Postdam
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 Universitaet Postdam filed Critical Universitaet Postdam
Priority to DE102006027448A priority Critical patent/DE102006027448B4/de
Priority to US12/304,729 priority patent/US8219864B2/en
Priority to PCT/DE2007/000900 priority patent/WO2007143964A2/de
Publication of DE102006027448A1 publication Critical patent/DE102006027448A1/de
Application granted granted Critical
Publication of DE102006027448B4 publication Critical patent/DE102006027448B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C29/32Serial access; Scan testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

Schaltungsanordnung, mit:
– einer funktionalen Schaltung (11; 51; 91; 1018) mit m (m = 1, 2, ...) Dateneingängen und n (n = 1, 2, ...) Datenausgängen zum Verarbeiten mindestens eines m-dimensionalen binären Dateneingangs (x1, ..., xm) zu einem n-dimensionalen Datenausgang (y1, ..., yn), wobei die funktionale Schaltung (11; 51; 91; 1018) mindestens einen kombinatorischen Schaltungsteil (56; 92; 101) umfaßt,
– mindestens zwei Registern (12, 13; 52, 53; 94, 95; 104, 108) mit einer Wortbreite k (k = 1, 2, ...; k ≤ n), die zum Speichern von zueinander verdoppelten oder bitweise zueinander invertiert verdoppelten Ausgabewerten (y = y1, ..., yk; y' = y'1, ..., y'k), die von dem n-dimensionalen Datenausgang (y1, ..., yn) der funktionalen Schaltung (11; 51; 91; 1018) abgeleitet sind, an wenigstens einen Teil der n Datenausgänge der funktionalen Schaltung (11; 51; 91; 1018) gekoppelt sind,
– mindestens einem Korrektor (14; 54; 96; 109)...

Description

  • Die Erfindung liegt auf dem Gebiet der Fehlererkennung und Fehlerkorrektur in digitalen Schaltungen.
  • Hintergrund der Erfindung
  • Aufgrund des hohen Integrationsgrades elektronischer Schaltungen nimmt die Häufigkeit von Fehlern zu. Es ist bekannt, digitale Schaltungen etwa durch Verdopplung und Vergleich, durch Verwendung von Kodes und allgemein durch Fehlererkennungsschaltungen zu überwachen (vgl. Goessel et al. „Error Detecting Circuits", McGrawHill, 1994; Rao et al. „Error Control Coding for Computer Systems", Prentice Hall, 1989).
  • Durch eine Fehlererkennungsschaltung wird ein Fehler in der zu überwachenden Schaltung erkannt. Treten nun relativ häufig Fehler in elektronischen Schaltungen auf, dann ist es besonders nachteilig, dass die Fehler durch die Fehlererkennungsschaltung nicht korrigiert werden können, so dass die Schaltung aufgrund ihrer Fehler relativ oft nicht funktionsfähig ist.
  • Bekannt ist es ebenfalls, fehlerkorrigierenden Schaltungen einzusetzen, um die auftretenden Fehler zu korrigieren. So ist es etwa bekannt, fehlerkorrigierenden Schaltung durch Systemverdreifachung und einen oder mehrere nachfolgende Voter und aufgrund von Fehlerkorrigierenden Kodes zu entwerfen (vgl. Lala, P. K., „Self-Checking and Fault-Tolerant Digital Design", Morgan Kaufman Publishers, San Francisco, 2001). Nachteilig ist hier insbesondere, dass der erforderlich Hardwareaufwand hoch und dass bei Verwendung eines fehlerkorrigierenden Kodes nur relativ wenige Fehler korrigiert werden können.
  • Aufgrund des hohen Integrationsgrades elektronischer Schaltungen nehmen die Fehleranfälligkeit und die Fehlerhäufigkeit für nicht permanente oder transiente Fehler zu. Diese Fehler können zu „weichen Fehlern", die auch Soft-Errors genannt werden, in den Speicherelementen führen.
  • Elektronische digitale Schaltungen bestehen in der Regel aus einem kombinatorischen Schaltungsteil und Speicherelementen, die als Latches oder als Flip-Flops realisiert sein können.
  • Tritt ein transienter Fehler in dem kombinatorischen Schaltungsteil auf, dann müssen gleichzeitig logische, elektrische und zeitliche Bedingungen erfüllt sein (vgl. Liden et al. „On Latching Probability of Particle Induced Transients in Combinational Networks", Proc. Int. Symp. On Fault-Tolerant Computing, S. 340–349, 1994), damit sich ein solcher Fehler in einem Speicherelement als weicher Fehler oder Soft-Error auswirken kann.
  • Häufiger tritt ein weicher Fehler in einem Speicherelement direkt auf, wobei das Speicherelement ein Latch oder ein Flip-Flop sein kann, indem ein solcher Fehler zum Beispiel durch Strahlung hervorgerufen wird. Die Entstehung von weichen Fehlern in Latches oder Flip-Flops ist bekannt und zum Beispiel in Buchner et al. „Comparison of Error Rates in Combinational and Sequential Logic", IEEE Trans. Nucl. Science. vol. 44, S. 2209–2216, 1997 beschrieben. Hierbei ist bekannt, dass die Empfindlichkeit eines Latches oder Flip-Flops bezüglich der Entstehung eines weichen Fehlers vom Wert des Clock-Signals clock abhängt. Ist zum Beispiel clock = 1, dann betimmt der Dateneingang des Latches oder Flip-Flops den Zustandes Speicherelementes und das Speicherelement ist immun gegenüber weichen Fehlern. Ist clock = 0, so ist der Zustand des Speicherelementes vom Dateneingang entkoppelt, und der Zustand des Latches oder Flip-Flops ist empfindlich für weiche Fehler. Tritt also ein weicher Fehler in einem Speicherelement auf, der in dem Speicherelement zum Beispiel durch Strahlung erzeugt wurde, so ist der Zustand des Speicherelementes für den Wert clock = 1 des Clock-Signals korrekt und für den Wert clock = 0 des Clocksignals fehlerhaft.
  • In einem Taktzyklus ändert sich das Clock-Signal von 1 auf 0. Damit ist der Zustand für einen weichen Fehler, der in dem Speicherelement hervorgerufen wurde, in der ersten Takthälfte korrekt und in der zweiten Takthälfte fehlerhaft. Liegt hingegen ein transienter Fehler in dem kombinatorischen Schaltungsteil vor und sind die logische, die elektrische und die zeitliche Bedingung erfüllt, so wird der fehlerhafte Dateneingang am Eingang eines Speicherelementes von dem Speicherelement übernommen und der Zustand des Speicherelementes ist den ganzen Takt fehlerhaft.
  • Es sind C-Elemente in verschiedenen Ausführungsformen und Implementierungen bekannt (vgl. Muller et al., „A Theory of Asynchronous Circuits", Proc. Int. Symp. an the Theory of Switching, S. 2004–43, Hartward Univ. Press, 1959; Shams et al. „Optimizing CMOS Implementations of the C-element", Proc. ICCD 97, S. 700–705, 1997; „Modeling and Compari son CMOS Implementations of the C-Element, Trans. VLSI-Systems, vol 6, S. 563–567, 1998). Zur Verbesserung der elektrischen Eigenschaften von C-Elementen, etwa zur Vermeidung von Ruheströmen, kann der Entwurf, insbesondere der Ausgang des C-Elementes in unterschiedlicher Weise realisiert werden. Da der Entwurf verschiedener C-Elemente als solches dem Fachmann bekannt ist, muß darauf hier nicht detaillierter eingegangen werden.
  • Das C-Element hat üblicherweise zwei Eingänge und einen Ausgang. Es gibt dabei in dem Fall, dass beide Eingangswerte gleich sind, seinen Eingangswert aus. Sind seine beiden Eingangswerte ungleich, so gibt es den vorherigen Wert aus. Ein C-Element mit mehreren Eingängen wurde zur Fehlererkennung verwendet (vgl. Kundu et al. „Self-Checking Komparator with One Periodic Eingang, IEEE Trans. Comp. vol. 45, S. 379–380, 1996). Das C-Element kann daher zur Korrektur von weichen Fehlern, die in den Speicherelementen erzeugt worden sind, verwendet werden, wenn die Speicherelemente verdoppelt sind. Die Eingänge eines C-Elementes mit zwei Eingängen werden hierbei an die beiden Ausgänge von verdoppelten Speicherelementen angeschlossen. Sind die Ausgänge der verdoppelten Speicherelemente gleich, so wird am Ausgang des C-Elementes an seinem Ausgang der gleiche Ausgabewert ausgegeben. Unterscheiden sich die beiden Ausgaben der beiden Speicherelemente, so gibt das C-Element den vorhergehenden Wert aus.
  • Wird nun ein weicher Fehler in einem der beiden Speicherelemente etwa durch Strahlung hervorgerufen, dann ändert sich der Zustand des einen Speicherelementes nur für den Wert clock = 0 des Clocksignals. Dann stimmen die Ausgaben der beiden Speicherelemente für den Wert clock = 1 des Clock-Signales überein, während sie für den Wert clock = 0 des Clocksignals unterschiedlich sind. Am Ausgang des C-Elementes wird der Wert, der zu dem Zeitpunkt am Eingang der Speicherelemente anliegt, für den das Clocksignal 1 ist, ausgegeben und der vorliegende weiche Fehler, der in einem der Speicherelemente zum Beispiel durch Strahlung hervorgerufen wurde, korrigiert.
  • In Mitra et al. („Logic Soft-Errors a Major Barrier to Robust Platform Design", Proc. ITC 2005, paper 28.5) werden Schaltungen, die spezielle Redundanz für den funktionellen Test, für den Scan-Test und das Debuggen aufweisen und in verschiedenen Modi betrieben werden, betrachtet. Es werden spezielle Speicherelemente, sogenannte Scan-out Flip-Flops zum Aufbau der Schaltungen verwendet. Für derartige Schaltungen wird das Erkennen von weichen Fehlern, die ausschließlich in Latches dieser speziellen Speicherelemente hervorgerufen wurden und die Korrektur von weichen Fehlern, die ebenfalls in Latches dieser speziellen Speicherelementen hervorgerufen wurden, durch die XOR-Verknüpfung der Ausgänge von zwei Latches dieser Speicherelemente und durch das Hinzufügen eines C-Elementes beschrieben.
  • Es ergibt sich, dass die Speicherelemente, die als „Scan-out flip-flog" Elemente bezeichnet werden, relativ aufwendig sind. Sie werden in verschiedenen Modi betrieben, die über Steuerleitungen und spezielle Steuersignale ausgewählt werden, was aufwendig ist. Zur Fehlererkennung erlaubt die von Mitra et al. vorgeschlagene Lösung nur den Vergleich oder die XOR-Verknüpfung der Ausgänge von verdoppelten Latches der Speicherelemente, wobei über eine Steuerleitung durch ein Steuersignal ein bestimmter Mode ausgewählt werden muß. Es ergibt sich weiterhin, dass nur die Fehler, die direkt in einem Latch eines Speicherelementes, das ein „Scan-out Flip-Flop" ist, entstanden sind, durch Vergleich oder XOR-Verknüpfung der Ausgänge von verdoppelten Latches dieser Speicherelemente auf die beschriebene Weise erkannt werden können. Nachteilig ist, dass Fehler in den kombinatorischen Schaltungsteilen der Schaltung nicht erkannt werden, da Fehler in der kombinatorischen Schaltung stets zu identischen Werten in den verdoppelten Latches der Speicherelemente führen. Ebenso können Fehler in den korrigierten und von der Schaltung weiterverarbeiteten oder ausgegebenen Werten und in den verwendeten C-Elementen nicht erkannt werden, so dass die Richtigkeit der korrigierten Werte nicht überprüft werden kann, was ebenfalls nachteilig ist.
  • Aus dem Dokument US 2006/0067531 A1 ist ein Verfahren zur Optimierung der Übertragung von Datenpaketen über einen Übertragungskanal bekannt. Insbesondere beschäftigt sich das Dokument mit der effizienten Übertragung der Kopfinformation („header") von Datenpaketen. Es wird ein Verfahren vorgeschlagen, bei dem zwischen einer Sendeeinrichtung und einer Empfangseinrichtung ein Datenpaket mittels eines aus mehreren Verschlüsselungskodes ausgewählten Kodes verschlüsselt wird.
  • Zusammenfassung der Erfindung
  • Aufgabe der Erfindung ist es, eine möglichst einfache Schaltungsanordnung mit einer funktionalen Schaltung, die mindestens einen kombinatorischen Schaltungsteil umfasst, sowie mit Fehlerkorrektur und Fehlererkennung zu schaffen, bei der weiche Fehler in Registern korri giert und auch Fehler im laufenden Betrieb in dem mindestens einen kombinatorischen Schaltungsteil, den Registern und korrigierten Ausgabewerten möglichst gut erkannt werden können.
  • Diese Aufgabe wird erfindungsgemäß durch eine Schaltungsanordnung nach dem unabhängigen Anspruch 1 gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand von abhängigen Unteransprüchen.
  • Die vorgeschlagene Schaltungsanordnung ermöglicht es, auf spezielle steuerbare Speicherelemente mit verschiedenen Funktionsbetriebsarten zu verzichten. Insbesondere ist es auch nicht notwendig, dass eine spezielle Scan-Betriebsart oder eine Betriebsart für das Debuggen vorhanden ist. Der Aufwand für Fehlererkennung ist an die erforderliche Sicherheit der Fehlererkennung anpassbar, etwa durch Verwendung verschiedener fehlererkennender Kodes.
  • Dadurch, dass die Schaltungsanordnung eine Fehlererkennungsschaltung für kombinatorische Schaltungsteile und Register enthält, können auch transiente Fehler und permanente Fehler in kombinatorischen Schaltungsteilen, Registern und dem Korrektor erkannt werden, die durch C-Elemente nicht korrigierbar sind. In vorteilhafter Weise sind auch die korrigierten Ausgänge des Korrektors in die Fehlererkennungsschaltung integriert, so dass fehlerhaft korrigierte Werte, etwa durch Fehler in einem C-Element, als fehlerhaft erkannt werden können.
  • Dadurch, dass verschiedenen Kodes für die Realisierung der Fehlererkennungsschaltung verwendet werden können, kann der Aufwand für die Fehlererkennung in vorteilhafter Weises an die erforderliche Sicherheit für die Fehlererkennung angepasst werden.
  • Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass der Korrektor unter Verwendung wenigstens eines C-Elementes gebildet ist.
  • Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass die Fehlererkennungsschaltung konfiguriert ist, um im laufenden Betrieb mindestens eine Komponente des k-dimensionalen korrigierten Datenausganges (y[k](korr)) in die Fehlererkennung einzubeziehen.
  • Eine vorteilhafte Ausführungsform der Erfindung sieht vor, dass für i = 1, .., k ein i-ter Datenausgang eines der mindestens zwei Register an einen (2i – 1)-ten Dateneingang des Korrektors und ein i-ter Datenausgang eines anderen der mindestens zwei Register an einen 2i-ten Dateneingang des Korrektors geführt sind.
  • Eine bevorzugte Fortbildung der Erfindung sieht vor, dass der Korrektor unter Verwendung einer Parallelschaltung von k C-Elementen (C1 21, ..., Ck 2k) gebildet ist.
  • Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass bei der Parallelschaltung der k C-Elemente (C1 21, ..., Ck 2k) ein 1-ter und ein 2-ter Dateneingang, ..., ein (2k – 1)-ter und ein (2k)-ter Dateneingang des Korrektors mit den jeweils beiden Dateneingängen der k C-Elemente (C1 21, ..., Ck 2k) verbunden sind und ein Datenausgang eines j-ten C-Elementes (Cj 2j; j = 1, ..., k) ein j-ter Datenausgang des Korrektors ist.
  • Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass die Fehlererkennungsschaltung im laufenden Betrieb ein Fehlersignal bildend ausgeführt ist, welches von einer oder mehreren der folgenden auswertbaren Informationen abhängt: der m-dimensionale binäre Dateneingang (x1, ..., xm), Datenwerte auf internen Schaltungslinien der funktionalen Schaltung, Dateninhalt der mindestens zwei Register und der k-dimensionale korrigierte Datenausgang (y(korr)).
  • Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein dass für den Fall k = n die folgenden Merkmale ausgebildet sind: die funktionelle Schaltung ist eine kombina torische Schaltung mit einem m Bit breiten Dateneingang und einem n Bit breiten Datenausgang zur Realisierung des n-dimensionalen Datenausganges (y = y1, ..., yn), und ein Verdopplerschaltungsteil ist vorgesehen, um aus dem n-dimensionalen Datenausgang (y) zwei jeweils n Bit breite verdoppelte Datenausgänge (y, y') zu erzeugen, wobei ein erster verdoppelter Datenausgang (y) des Verdopplerschaltungsteils auf einen n dimensionalen Dateneingang eines ersten Registers und ein zweiter verdoppelter Datenausgang (y') des Verdopplerschaltungsteils auf einen n Bit breiten Dateneingang eines zweiten Registers geführt sind und wobei ein n Bit breiter Datenausgang des ersten Registers und ein n Bit breiter Datenausgang des zweiten Registers stellenrichtig in einen 2n Bit breiten Dateneingang des Korrektors geführt sind, der einen n-dimensionalen korrigierten Datenausgang (y(korr)) liefert.
  • Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass die Fehlererkennungsschaltung einen Prädiktor, ein L Bit breites weiteres Register, einen Komparator und einen Generator aufweist, wobei L die Anzahl von Kontrollstellen eines verwendeten Kodes ist, und dass mindestens eine Schaltungskonfiguration aus der folgenden Gruppe von Schaltungskonfigurationselemente realisiert ist: der m-dimensionale binäre Dateneingang (x1, ..., xm) ist an einen Dateneingang des Prädiktors geführt, ein L Bit breiter Datenausgang des Prädiktors ist an einen L Bit breiten Dateneingang des weiteren Registers angeschlossen, ein L Bit breiter Datenausgang des weiteren Registers ist an einen ersten L Bit breiten Dateneingang des Komparators geführt, ein Datenausgang des Generators ist an einen zweiten L Bit breiten Dateneingang des Komparators geführt, und ein Dateneingang des Generators ist mit dem n-dimensionalen korrigierten Datenausgang (y(korr)) des Korrektors verbunden.
  • Eine bevorzugte Fortbildung der Erfindung sieht vor, dass mindestens eine Schaltungskonfiguration aus der folgenden Gruppe von Schaltungskonfigurationselemente realisiert ist: der Prädiktor ist konfiguriert, um L Kontrollbits (c1(x), ..., cL(x)) eines fehlererkennenden Kodes mit m Informationsbits und L Kontrollbits aus dem m-dimensionalen binären Dateneingang (x1, ..., xm) zu bestimmen, der Generator ist konfiguriert, um aus dem vom Korrektor ausgegebenen, k-dimensionalen korrigierten Datenausgang (y(korr)) L weitere Kontrollbits (c(y1(korr)), ..., c(yL(korr))) des fehlererkennenden Kodes zu bilden, und der Komparator ist konfiguriert, um die L Kontrollbits (c1(x), ..., cL(x)) mit den L weiteren Kontrollbits (c(y1(korr)), ..., c(yL(korr))) zu vergleichen und einen Fehler anzuzeigen, wenn die L Kontrollbits (c1(x), ..., cL(x)) und die L weiteren Kontrollbits (c(y1(korr)), ..., c(yL(korr))) nicht bitweise übereinstimmen.
  • Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass für L = 1 der Prädiktor konfiguriert ist, um ein als Paritätsbit ausgebildetes Kontrollbit zu erzeugen, und der Generator ein XOR-Baum mit n binären Dateneingängen ist, an denen der k-dimensionale korrigierte Datenausgang (y(korr)) anliegt.
  • Eine vorteilhafte Ausführungsform der Erfindung sieht vor, dass der Komparator aus einer Ausgangsleitung des weiteren Registers, bei dem ein Dateneingang mit einem Datenausgang des Prädiktors verbunden ist, und aus einer Ausgangsleitung des XOR-Baumes gebildet ist.
  • Eine bevorzugte Fortbildung der Erfindung sieht vor, dass die den Komparator realisierenden Ausgangsleitungen, nämlich die Ausgangsleitung des weiteren Registers und die Ausgangsleitung des XOR-Baumes, mittels eines XOR-Gatters oder eines XNOR-Gatters zu einem Datenausgang verknüpft sind, der ein binäres Fehlersignal trägt.
  • Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass die funktionale Schaltung aus einer ersten kombinatorischen Schaltung und aus einer zweiten kombinatorischen Schaltung gebildet ist, die funktional gleich zur ersten kombinatorischen Schaltung ist.
  • Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass die funktionale Schaltung aus zwei verdoppelten funktional gleichen Schaltungen gebildet ist, wobei: eine erste Schaltung zwei kombinatorische Schaltungsteile und ein Register zum Speichern eines internen Zustandes (z) umfaßt, eine zweite Schaltung zwei weitere kombinatorische Schaltungsteile und ein weiteres Register zum Speichern eines weiteren internen Zustandes (z') umfaßt, eines der zwei kombinatorischen Schaltungsteile funktional gleich einem der weiteren zwei Schaltungsteile ist und ein anderes der zwei kombinatorischen Schaltungsteile funktional gleich einem anderen der weiteren zwei Schaltungsteile ist.
  • Eine vorteilhafte Ausführungsform der Erfindung sieht vor, dass mindestens eine Schaltungskonfiguration aus der folgenden Gruppe von Schaltungskonfigurationselemente realisiert ist: Leitungen, die den m-dimensionalen binären Dateneingang (x, x' mit x = x') tragen, sind an einen jeweiligen primären Dateneingang der zwei kombinatorischen Schaltungsteile und der zwei weiteren kombinatorischen Schaltungsteile geführt; ein L Bit breiter Datenausgang des anderen der zwei kombinatorischen Schaltungsteile, welcher einen Wert des internen Zustandes (z) trägt, ist an einen L Bit breiten Dateneingang des Registers zum Speichern des internen Zustandes (z) der ersten der verdoppelten Schaltungen geführt, während ein L Bit breiter Datenausgang des anderen der zwei kombinatorischen Schaltungsteile, welcher einen Wert des weiteren internen Zustandes (z') der zweiten der verdoppelten Schaltungen trägt, an einen L Bit breiten Dateneingang des weiteren Registers zum Speichern des weiteren internen Zustandes (z') geführt ist; ein k Bit breiter Datenausgang des einen der zwei kombinatorischen Schaltungsteile ist an einen k Bit breiten Dateneingang des einen der mindestens zwei Register geführt, wobei ein k Bit breiter Datenausgang des einen der mindestens zwei Register stellenrichtig mit k Dateneingängen eines ersten Korrektors mit 2k Dateneingängen und k Datenausgängen verbunden ist, während ein k Bit breiter Datenausgang des anderen der zwei kombinatorischen Schaltungsteile an den k Bit breiten Dateneingang des anderen der mindestens zwei Register geführt ist, wobei ein k Bit breiter Datenausgang des anderen der mindestens zwei Register stellenrichtig mit restlichen k Dateneingängen des ersten Korrektors verbunden ist, an dessen k Bit breitem Datenausgang der k-dimensionale korrigierte Datenausgang (y1(korr), ..., yk(korr)) ausgegeben wird; und ein L Bit breiter Datenausgang des Registers zum Speichern des internen Zustandes (z) ist stellenrichtig an L Dateneingänge eines zweiten Korrektors mit 2L Dateneingängen und L Datenausgängen geführt, während ein L Bit breiter Datenausgang des weiteren Registers zum Speichern des weiteren internen Zustandes (z') stellenrichtig mit restlichen L Dateneingängen des zweiten Korrektors verbunden ist, wobei ein L Bit breiter Datenausgang des zweiten Korrektors, welcher ein korrigiertes Signal (z(korr)) trägt, gleichzeitig mit jeweils zweiten Dateneingängen der zwei kombinatorischen Schaltungsteile und der zwei weiteren kombinatorischen Schaltungsteile verbunden ist.
  • Eine bevorzugte Fortbildung der Erfindung sieht vor, dass die Fehlererkennungsschaltung konfiguriert ist, um mindestens einen Datenausgang des Registers, welches den Wert des internen Zustandes (z) führt, und mindestens einen Datenausgang des weiteren Registers, welches den Wert des weiteren internen Zustandes (z') führt, in die Fehlererkennung einzubeziehen.
  • Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass die Fehlererkennungsschaltung konfiguriert ist, um mindestens einen Datenausgang des zweiten Korrektors in die Fehlererkennung einzubeziehen.
  • Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass weiterhin die folgenden Schaltungskonfigurationselemente realisiert sind: ein Datenausgang eines der mindestens zwei Register ist gleichzeitig mit einem ersten Dateneingang eines ersten Komparators und mit einem ersten Dateneingang eines dritten Komparators verbunden, ein Datenausgang eines der mindestens zwei Register ist gleichzeitig mit einem zweiten Dateneingang des ersten Komparators und mit einem ersten Dateneingang eines zweiten Komparators verbunden, ein Datenausgang des Korrektors, welcher einen korrigierten Ausgabewert y(korr) trägt, ist gleichzeitig mit einem zweiten Dateneingang des zweiten Komparators und mit einem zweiten Dateneingang des dritten Komparators verbunden, und der erste, der zweite und der dritte Komparator sind konfiguriert, um an einem jeweiligen Datenausgang ein Fehlersignal auszugeben, wenn Dateneingaben nicht übereinstimmen.
  • Eine vorteilhafte Ausführungsform der Erfindung sieht vor, dass ein jeweiliger Datenausgang des ersten Komparators, des zweiten Komparators und des dritten Komparators mit Dateneingängen einer Auswertelogik verbunden ist, wobei die Auswertelogik konfiguriert ist, um ein fehlerhaftes Schaltungselement zu bestimmen.
  • Eine bevorzugte Fortbildung der Erfindung sieht vor, dass weiterhin die folgenden Schaltungskonfigurationselemente realisiert sind: ein Datenausgang des anderen der mindestens zwei Register ist mit Dateneingängen eines ersten Generators zum Erzeugen von Kontrollbits eines fehlererkennenden Kodes verbunden, wobei der erste Generator konfiguriert ist, um an einem Datenausgang Kontrollbits von Eingangswerten des ersten Generators auszugeben, ein Datenausgang des einen der mindestens zwei Register ist mit Dateneingängen eines zweiten Generators zum Erzeugen von Kontrollbits des fehlererkennenden Kodes verbunden, wobei der zweite Generator konfiguriert ist, um an einem Datenausgang Kontrollbits von Eingangswerten des zweiten Generators auszugeben, und ein Datenausgang des Korrektors, welcher einen korrigierten Ausgabewert y(korr) trägt, ist mit einem Dateneingang eines dritten Generators zum Erzeugen von Kontrollbits des fehlererkennenden Kodes verbunden ist, wobei der dritte Generator konfiguriert ist, um an einem Datenausgang Kontrollbits von Eingangswerten des dritten Generators auszugeben.
  • Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass der fehlererkennende Kode ein Paritätskode ist und dass der erste Generator, der zweite Generator und der dritte Generator zum Erzeugen von Kontrollbits als ein XOR-Baum zum Erzeugen von Paritätsbits des Paritätskodes ausgeführt sind.
  • Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass weiterhin die folgenden Schaltungskonfigurationselemente realisiert sind: ein Datenausgang eines ersten XOR-Baumes ist gleichzeitig an einen ersten Dateneingang eines ODER-Gatters und invertiert an einen ersten Dateneingang eines weiteren ODER-Gatters geführt, ein Datenausgang eines zweiten XOR-Baumes ist an einen zweiten Dateneingang des ODER-Gatters und invertiert an einen zweiten Dateneingang des weiteren ODER-Gatters geführt, ein Datenausgang eines dritten XOR-Baumes ist an einen dritten Dateneingang des ODER-Gatters und invertiert an einen dritten Dateneingang des weiteren ODER-Gatters geführt, und ein Datenausgang des ODER-Gatters ist an einen ersten Dateneingang eines AND-Gatters und ein Datenausgang des weiteren ODER-Gatters an einen zweiten Dateneingang des AND-Gatters geführt, wobei ein Datenausgang des AND-Gatters ein Fehlersignal trägt.
  • Eine vorteilhafte Ausführungsform der Erfindung sieht vor, dass Datenausgänge des ersten Generators, des zweiten Generators und des dritten Generators mit Dateneingängen einer Auswertelogik verbunden sind, wobei die Auswertelogik konfiguriert ist, um ein fehlerhaftes Schaltungselement zu bestimmen.
  • Eine bevorzugte Fortbildung der Erfindung sieht vor, dass wenigstens einer der Ausgänge des Registers zum Speichern des internen Zustandes (z), des weiteren Registers zum Speichern des weiteren internen Zustandes (z') oder des zweiten Korrektors in die Fehlererkennung einbezogen ist, indem wenigstens ein Ausgang des weiteren Registers mit einem weiteren Eingang des Prädiktors, wenigstens ein Ausgang des Registers mit einem weiteren Eingang des Prädiktors oder wenigstens ein Ausgang des zweiten Korrektors mit einem weiteren Eingang des Prädiktors verbunden ist.
  • Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass die funktionale Schaltung mehrere kombinatorische Schaltungsteile umfaßt und konfiguriert ist, um eine Pipelineverarbeitung des m-dimensionalen binären Dateneingangs (x1, ..., xm) in den n-dimensionalen Da tenausgang (y1, ..., yn) zu realisieren, wobei Ausgänge mindestens eines der mehreren kombinatorischen Schaltungsteile in verdoppelte Register geführt sind und an die Datenausgänge der verdoppelten Register der mindestens eine Korrektor gekoppelt ist.
  • Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass die Fehlererkennungsschaltung als eine gemeinsame Fehlererkennungsschaltung für mindestens zwei Pipelinestufen gebildet ist.
  • Vorteilhafterweise können auch Ausgänge der verdoppelten Register in die Fehlererkennungsschaltung integriert sein, so dass permanente Fehler in den Registern sofort erkannt werden können. In speziellen Ausgestaltung sind auch weitere zusätzlich Ausgangssignale der getakteten digitalen Schaltung vorhanden, die es neben der Anzeige eines Fehlers im Fehlerfall erlauben, fehlerhafte Schaltungsteile unmittelbar zu identifizieren. In speziellen Ausgestaltungen ist es vorgesehen, dass die Hardware der verschiedenen funktionell beschriebenen Schaltungsteile wenigstens teilweise gemeinsam genutzt wird.
  • Ist eine Pipeline-Struktur für die Verarbeitung der Eingabewerte in die Ausgabewerte vorgesehen, dann kann die Fehlerkorrektur, ebenfalls aus Aufwandsgründen nur für eine Teilmenge der Pipeline-Register realisiert sein.
  • Beschreibung von bevorzugten Ausführungsbeispielen der Erfindung.
  • Die Erfindung wird im folgenden anhand von bevorzugten Ausführungsbeispielen unter Bezugnahme auf Figuren einer Zeichnung näher erläutert. Hierbei zeigen:
  • 1 eine Schaltungsanordnung zur Korrektur und Fehlererkennung einer funktionalen Schaltung;
  • 2 einen Korrektor aus C-Elementen mit 2k Eingängen und k Ausgänge;
  • 3 eine Implementierung eines C-Elementes aus Transistoren in CMOS;
  • 4 die Wertetabelle eines C-Elementes;
  • 5 eine Schaltungsanordnung zur Korrektur und Fehlererkennung für eine kombinatorische Schaltung unter Verwendung eines separierbaren fehlererkennenden Kodes;
  • 6 eine Fehlererkennungsschaltung unter Verwendung eines Paritätskodes;
  • 7 eine Schaltungsanordnung für eine spezielle kombinatorische Schaltung;
  • 8 eine Schaltungsanordnung für eine spezielle, kombinatorische Schaltung, in der Teile der funktionellen Schaltung und der Fehlererkennungsschaltung gemeinsam verwendet werden;
  • 9 eine Schaltungsanordnung zur Korrektur und Fehlererkennung für eine verdoppelte kombinatorische Schaltung;
  • 10a eine Schaltungsanordnung zur Korrektur und Fehlererkennung für eine verdoppelte sequentielle Schaltung unter Verwendung eines Paritätskodes;
  • 10b eine Modifikation der Schaltungsanordnung in 10a;
  • 11 die Wertetafel für eine Auswertelogik für die Paritätssignale der Schaltungsanordnung aus 10a; und
  • 12 eine Schaltungsanordnung zur Korrektur und Fehlererkennung für eine Datenverarbeitung in einer Pipeline.
  • 1 zeigt eine Schaltungsanordnung zur Korrektur und zur Fehlererkennung einer funktionalen Schaltung.
  • Die Schaltungsanordnung besteht aus der funktionalen Schaltung S 11, an deren Eingang der m-dimensionale Eingabewert x anliegt und die an ihren ersten n Datenausgängen den n-dimensionalen Ausgabewert y = y[k], y[n – k] and an ihren weiteren k Datenausgängen den n-dimensionalen Ausgabewert y[k]' ausgibt, wobei der Ausgabewert y[k]' entweder gleich y[k] oder bitweise invertiert gleich y[k] ist. Hierbei bezeichnen y[k], y[k]' jeweils einen k Bit breiten Ausgabewert und y[n – k] einen n – k Bit breiten Ausgabewert. y[k] und y[n – k] bilden zusammen einen n-dimensionalen Ausgabewert. Die funktionelle Schaltung kann zusätzliche Schaltungsausgänge 16 aufweisen, die zur Fehlererkennung dienen.
  • Die ersten k Datenausgänge des ersten Datenausganges der Schaltung S 11, die den Ausgabewert y[k] tragen, sind in die k Eingänge eines ersten Registers R1 12 mit k Eingängen und k Ausgängen geführt, während die folgenden n – k Datenausgänge y[n – k] des ersten Datenausganges direkt mit n – k Komponenten des Schaltungsausganges verbunden sind. Die zweiten k Datenausgänge, die den Ausgabewert y[k]' tragen sind in die k Eingänge eines zweiten Registers R2 13 mit k Eingängen und k Ausgängen geführt.
  • Für i = 1, ..., k ist der jeweils i-te Ausgang des Registers R1 12 mit dem (2i – 1)-ten Eingang eines Korrektors K 14 mit 2k Eingängen und k Ausgängen verbunden, während der i-ten Ausgang des Registers R2 mit dem 2i-ten Eingang des Korrektors K 14 verbunden ist. Der Korrektor K gibt an seinen k Ausgängen den korrigierten Wert y[k](korr) aus.
  • Die Ausgänge der Register R1 12, R2 13, des Korrektors K 14, ein zusätzlicher Ausgang 16 der funktionellen Schaltung S 11 und die Eingabewerte x tragenden Eingänge der Schaltung S 11 sind in die entsprechenden Eingänge einer Fehlererkennungsschaltung F 15 geführt, die an ihrem Ausgang ein Fehlersignal „Fehlersignal" ausgibt.
  • Der Ausgang des Korrektors 14, der das korrigierte Signal y[k](korr) trägt, ist ausdrücklich in die Fehlererkennung einbezogen, so dass in der Fehlererkennungsschaltung F 15 Fehler in fehlerhaft korrigierten Werten, in der funktionellen Schaltung, in den Registern und in dem Korrektor erkannt werden können.
  • Für k = n wird y[k] = y[n] gleich y und ebenso y[k]' = y[n]' gleich y' bezeichnet, und für k = n wird y[k](korr) = y[n](korr) mit y(korr) bezeichnet.
  • 2 zeigt den Aufbau des Korrektors K 14 mit 2k Eingängen und k Ausgängen als eine Parallelschaltung aus k C-Elementen C1 21, c2 22, ..., Ck 2k mit jeweils zwei Eingängen und einem Ausgang. Die an dem 2k Eingängen des Korrektors K anliegenden Eingabewerte sind y1, y1', y2, y2', ..., yk, yk'. Die an den k Ausgängen des Korrektors ausgegebenen Werte sind y(korr)1, y(korr)2, ..., y(korr)k. C-Elemente sind als solche in verschiedenen Ausführungen bekannt (vgl. beispielsweise in Shams et al., „Optimizing CMOS Implementations of the C-element", Proc. ICCD 97, 1997; in Shams et al., „Modelling and Comparison CMOS Implementations of the C-Element", Trans. VLSI-Systems, vol 6, S. 563–567, 1998).
  • 3 zeigt zur weiteren Erläuterung der Funktionsweise eine spezielle CMOS-Implementierung eines CMOS-Elementes, wie sie zum Beispiel in Kundu et al. „Self-Checking Komparator with One Periodic Input", IEEE Trans. Comp. vol. 45, pp 379–380, 1996, verwendet worden ist.
  • Das C-Element in 3 ist aus den p-Transistoren 31, 32, 35 und den n-Transistoren 33, 34, 36 aufgebaut. Der den Wert yi tragende Eingang des C-Elementes ist mit dem p-Transistor 31 und mit dem n-Transistor 33 verbunden, während der den Wert yi' tragende Eingang mit dem p-Transistor 32 und dem n-Transistor 34 verbunden ist. Liegen nun die Werte yi = yi' = 0 an den Eingängen des C-Elementes an, dann sind die Transistoren 31 und 32 leitend und die Transistoren 33, 34 gesperrt, so dass die mit z markierte Leitung mit der Spannung VDD verbunden ist und den Wert 1 (high) führt. Der Transistor 36 ist dann leitend und der Transistor 35 ist gesperrt, so dass der mit y(korr)i markierte Ausgang den Wert 0 (low) trägt, der mit dem Wert von yi = yi' = 0 übereinstimmt. In gleicher Weise erkennt man, dass bei Eingabe von yi = yi' = 1 am Ausgang des C-Elementes der Wert y(korr)i = 1 ausgegeben wird.
  • Es wird nun der Fall betrachtet, dass yi = 1 und yi' = 0 gilt. Dann sind die Transistoren 31 und 34 gesperrt, während die Transistoren 32 und 33 leitend sind. Damit ist die den Wert z tragende Leitung weder mit VDD noch mit GND verbunden, und sie behält ihren vorhergehenden Wert bei, so dass auch der vorhergehende Wert von y(korr)i am Ausgang des C-Elementes ausgegeben wird. Ein analoges Verhalten tritt für yi = 0 und yi' = 1 auf.
  • 4 zeigt die Wertetabelle für die Ausgabe y(korr)i eines C-Elementes für die verschiedenen Eingaben yi, yi' und die entsprechenden vorhergehenden Werte yvi.
  • So kann der ersten Zeile der Tabelle in 4 entnommen werden, dass der Wert y(korr)i = 0 ausgegeben wird, wenn yi = 0 und yi' = 0 eingegeben werden und der vorhergehende Wert yvi = 0 war. Der dritten Zeile entnimmt man, dass die Ausgabe y(korr)i = 0 ist, wenn yi = 1, yi' = 0 eingegeben wurde, wenn der vorhergehende Wert yvi = 0 war.
  • Modifikationen von C-Elementen sind als solche bekannt (vgl. zum Beispiel Shams et al., „Optimizing CMOS Implementations of the C-element", Proc. ICCD 97, 1997; in Shams et al., „Modelling and Comparison CMOS Implementations of the C-Element", Trans. VLSI-Systems, vol 6, S. 563–567, 1998).
  • 5 zeigt eine Schaltungsanordnung zur Fehlerkorrektur und zur Fehlererkennung unter Verwendung eines systematischen fehlererkennenden Kodes.
  • Die Schaltung S 51 besteht hier aus einer kombinatorischen Schaltung f 56 mit n-dimensionalem Ausgang u, der in die beiden n-dimensionalen Ausgänge y und y' verdoppelt ist. Der erste verdoppelte n-dimensionale Ausgang y ist in ein erstes Register R1 52 mit n Eingängen und n Ausgängen geführt, während der zweite verdoppelte n-dimensionale Ausgang y' ist in ein zweites Register R2 53 mit n Eingängen und n Ausgängen geführt ist.
  • Für i = 1, ..., n ist der jeweils i-te Ausgang des Registers R1 52 mit dem (2i – 1)-ten Eingang eines Korrektors K 54 mit 2n Eingängen und n Ausgängen verbunden, während der i-ten Ausgange des Registers R2 53 mit dem 2i-ten Eingang des Korrektors K 54 verbunden ist. Der Korrektor K 54 gibt an seinen n Ausgängen den n-dimensional korrigierten Wert y(korr) aus.
  • Die Fehlererkennungsschaltung F 55 besteht aus einem Prädiktor 57, einem Register 58, einem Generator 59 und einem Komparator 510. Zur Fehlererkennung wird in 5 ein separierbarer Kode mit n Informationsbits und L Kontrollbits verwendet.
  • Zur Beschreibung der Funktionsweise der Schaltung wird davon ausgegangen, dass die kombinatorische Schaltung f 56 in Abhängigkeit von ihren Eingabewerten x = x1, ..., xm an ihren n Ausgängen die Werte y1 = fi(x), ..., yn = fn(x) ausgibt, wobei f1, ..., fn jeweils m-stellige Boolesche Funktionen sind.
  • Die n Informationsbits des betrachteten Kodes sind die Bits y1, ..., yn . Der Prädiktor Pr 57 bestimmt nun in Abhängigkeit von den Eingabewerten x die L Kontrollbits c1(x), ..., cL(x), die in einem Register 58 mit L Eingängen und L Ausgängen zwischengespeichert werden. Der Generator Gen 59 bestimmt aus den korrigierten Ausgabewerten des Korrektors 54 y(korr) = y(korr)1, ..., y(korr)n der Informationsbits des betrachteten Kodes nun in Abhängigkeit von diesen Ausgabewerten ebenfalls die Kontrollbits c1(y(korr)), ..., cL(y(korr)). c1(x), ..., cL(x) und c1(y(korr)), ...cL(y(korr)) werden im Komparator Comp 510 auf Gleichheit geprüft. Ein Unterschied zeigt einen Fehler an.
  • Die Fehlerkorrektur und die Fehlererkennung in 5 sollen nun erläutert werden.
  • Ein Fehler in der Funktion f, d. h. im kombinatorischen Schaltungsteil der Schaltung wird durch die Fehlererkennungsschaltung überprüft. Ein Fehler in der kombinatorischen Schaltung f 56 führt zu einem fehlerhaften Ausgabenwert u' anstelle von u am Ausgang von f. Der fehlerhafte Wert u' wird dann sowohl in dem Register R1 52 als auch in dem Register R2 53 gespeichert und vom Korrektor 54, da bei Eingaben (fehlerhaft) gleich sind, nicht korrigiert und y(korr) = u' wird ausgegeben.
  • Ist ein fehlerkorrigierender Kode gewählt worden, der diesen Fehler erkennen kann, dann generiert der Generator Gen 55 fehlerhafte Kontrollbits c1(u'), ...cL(u'), die sich von den aus den Eingangswerten x generierten Kontrollbits c1(x), ...cL(x) unterscheiden, und der Fehler wird erkannt.
  • Ein Fehler in einem der Register, etwa in R1 52 führt dazu, dass an mindestens zwei sich entsprechenden Eingängen des Korrektors, etwa am (2j – 1)-ten Eingang und am 2j-ten Eingang des Korrektors des 54 unterschiedliche Werte anliegen und der Korrektor am j-ten Ausgang den vorhergehenden Wert y(korr)vj ausgibt. Stimmt y(korr)vj mit dem erwarteten korrekten Wert überein, so tritt kein Fehler auf und ein Fehler wird natürlich nicht erkannt. Stimmt y(korr)vj mit dem erwarteten korrekten Wert nicht überein, so tritt ein Fehler am Ausgang des Korrektors auf. Der Generator Gen 55 generiert fehlerhafte Kontrollbits die sich von den aus den Eingangswerten x generierten Kontrollbits c1(x), ..., cL(x) unterscheiden, wenn der gewählte Kode den Fehler zu erkennen erlaubt. Ein derartiger Fehler wird durch den Komparator Comp 510 erkannt.
  • Ist ein Ausgabewert des Korrektors 54 infolge eines Fehlers des Korrektors fehlerhaft, so erzeugt der Generator Gen 59 fehlerhafte Kontrollbits des Kodes, die mit den korrekten, durch die Eingabewerte x bestimmten Kontrollbits verglichen werden und die ein Fehlersignal verursachen.
  • Tritt nun ein weicher Fehler in einem der Register, zum Beispiel in dem Register R2 53 auf, der den j-ten Ausgang dieses Registers beeinflusst. Dann ist der Ausgabewert am j-ten Ausgang des Registers in der ersten Takthälfte für den Wert des Clocksignals clock = 1 korrekt und in der zweiten Takthälfte für den Wert des Clocksignals clock = 0 fehlerhaft. Am (2j – 1)ten Eingang liegt dann sowohl für clock = 1 als auch für clock = 0 der korrekte Wert yj an, während am 2j-ten Eingang für clock = 1 der korrekte Wert yj' = yj und für clock = 0 der (invertierte), fehlerhafte Wert von yj anliegt. Der Korrektor 54 gibt dann an seinem j-ten Ausgang sowohl für clock = 1 als auch für clock = 0 den korrerkten Wert yj aus.
  • Es soll hervorgehoben werden, dass zur Korrektur der weichen Fehler und zur Fehlererkennung sowohl der Fehler im kombinatorischen Schaltungsteil f 56, den Registern R1 52, R2 53, des Korrektors 54 als auch der korrigierten Ausgabewerte nur die Register R1 52 und R2 53 zu verdoppeln sind, die auch relativ aufwandsarm als Latches realisiert werden können und dass der Aufwand für die Fehlererkennung durch die Auswahl unterschiedlicher fehlererkennender Kodes an die erforderliche Fehlererkennungssicherheit anpaßbar ist.
  • Die Fehlererkennung in der Fehlererkennungsschaltung erfolgt ebenfalls durch den Vergleich der aus den Eingabewerten bestimmten Kontrollbits und der aus den korrigierten Ausgabewerten bestimmten Kontrollbits.
  • Wird ein Korrektor verwendet, dessen C-Elemente bei zueinander paarweise gleichen Eingangswerten den vorhergehenden Ausgangswert ausgibt, so sind die Ausgänge eines der Register R1 oder R2 zu invertieren.
  • 6 zeigt eine besonders einfache Form der Fehlererkennungsschaltung für den einfachsten separierbaren Kode, den Paritätsbitkode.
  • Es wird angenommen, dass die kombinatorische Schaltung f 56 in 5 die n Booleschen Funktionen f1(x), ..., fn(x) realisiert, so dass die Ausgabewerte y1, ..., yn durch y1 = f1(x), ..., yn = fn(x) bestimmt sind. Der Prädiktor 67 in 6 bestimmt dann die Funktion v = y1(x) XOR y2(x) XOR ... XOR yn(x) = f1(1) XOR f2(X) XOR ... XOR fn(x).
  • Praktisch kann der Prädiktor 67 dann so realisiert werden, dass die Ausgänge der kombinatorischen Schaltung durch einen Paritätsbaum XOR-verknüpft sind und die so erhaltene Schaltung mit einem CAD-Synthesetool optimiert ist. Dieses Vorgehen ist in 6 dadurch veranschaulicht, dass der Prädiktor 67 als Reihenschaltung der kombinatorischen Schaltung f und einem Paritätsbaum dargestellt ist, wobei diese Reihenschaltung zu optimieren ist.
  • Das Register R3 68 ist hier nur 1 Bit breit, und der Generator G 59 in 5 besteht in 6 aus einem XOR-Baum 69, der die Parität der Ausgänge y(korr)1, ..., y(korr)n bildet. Bin Vergleicher kann hier entweder entfallen, wenn man eine zweidimensionale Ausgabe zulässt oder er kann durch ein einfaches XOR-Element mit zwei Eingänge und einem Ausgang reali siert werden, das mit dem Ausgang des XOR-Baumes 69 und mit dem Ausgang des Registers R3 zu verbinden ist, das in 6 nicht gezeigt ist.
  • 7 zeigt eine konkrete Realisierung einer Schaltung nach 5, wobei der fehlererkennende Kode als Paritätskode gewählt ist.
  • Die kombinatorische Schaltung f hat drei Eingänge x1, x2 und x3 und zwei Ausgänge y1 und y2, die in y1' und y2' aufgespaltet sind. Es gilt y1(x) = f1(x) = (x1 AND x2) XOR x3, y2(x) = f2(x) = (x1 OR x2) AND x3. Der Prädiktor Pr bestimmt die Parität P(x) von y1(x) und y2(x) zu P(x) = y1(x) XOR y2(x) = (x1 AND x2) OR (x - 1 AND x - 2 AND x3).
  • Der das Eingangssignal x1 tragende Eingang ist mit dem ersten Eingang eines UND-Gatters 71, dem ersten Eingang eines ODER-Gatters 72, mit dem ersten Eingang eines UND-Gatters 75 und invertiert mit dem ersten Eingang eines weiteren UND-Gatter 76 verbunden. Der das Eingangssignal x2 tragende Eingang ist mit dem zweiten Eingang des UND-Gatters 71, dem zweiten Eingang des ODER-Gatters 72, mit dem zweiten Eingang des UND-Gatters 75 und invertiert mit dem zweiten Eingang des UND-Gatters 76 verbunden.
  • Der das Eingangssignal x3 tragende Eingag ist gleichzeitig mit dem ersten Eingang eines XOR-Gatters 73, mit dem ersten Eingang eines UND-Gatters 74 und mit dem dritten Eingang des UND-Gatters 76 verbunden. Der Ausgang des UND-Gatters 71 ist in den zweiten Eingang des XOR-Gatters 73 geführt, dessen Ausgang der erste Ausgang der kombinatorischen Schaltung f ist, der das Ausgangssignal y1 trägt. Der Ausgang des ODER-Gatters 72 ist mit dem zweiten Eingang des UND-Gatters 74 verbunden, dessen Ausgang der zweite Ausgang der kombinatorischen Schaltung f ist, der das Ausgabesignal y2 trägt. Der Ausgang des UND-Gatters 75 ist mit dem ersten Eingang eines ODER-Gatters 77 verbunden, in dessen zweiten Eingang der Ausgang des UND-Gatters 76 geführt ist und dessen Ausgang der Ausgang des Prädiktors Pr ist, der in den Eingang des 1-Bit breiten Registers R3 geführt ist und der die Parität P(x) der Funktionen y1(x) = f1(x) und y2 = f2(x) an seinem Ausgang bildet.
  • Die Ausgangsleitung des XOR-Gatters 73, die der erste Ausgang der kombinatorischen Schaltung f ist, ist in zwei Leitungen aufgespalten, die die Werte y1 und y1' führen und die mit den Eingängen der beiden Speicherelemente R11 und R21 verbunden sind. Die Ausgangsleitung des UND-Gatters 74, die der zweite Ausgang der kombinatorischen Schaltung f ist, ist in zwei Leitungen aufgespalten, die die Werte y2 und y2' führen und die mit den Eingängen der beiden Speicherelemente R12 und R22 verbunden sind.
  • Die Speicherelemente R11 und R12 sind zu einem Register R1 79 und die Speicherelemente R21 und R22 sind zum Register R2 710 zusammengefasst. Der erste Ausgang des Registers R1 79 ist in den ersten Eingang des Korrektors 711 und der erste Ausgang des Registers R2 710 ist in den zweiten Eingang des Korrektors 711 geführt. Der zweite Ausgang des Registers R1 79 ist in den dritten Eingang des Korrektors 711 und der zweite Ausgang des Registers R2 710 ist in den vierten Eingang des Korrektors 711 geführt. Der Korrektor 711 besteht aus der Parallelschaltung zweier C-Elemente C1, C2. Der erste Ausgang des Korrektors 711 führt das erste korrigierte Signal y(korr)1, und der zweite Ausgang des Korrektors 711 führt das zweite korrigierte Signal y(korr)2.
  • Der erste Ausgang des Korrektors 711 ist mit dem ersten Eingang eines XOR-Gatters 712 verbunden, während der zweite Ausgang des Korrektors 711 mit dem zweiten Eingang des XOR-Gatters 712 verbunden ist. Das XOR-Gatter 712 bildet den Generator Gen der Schaltungsanordnung. An seinem Ausgang wird die Parität P(y(korr)1, y(korr)2) = y(korr)1 XOR y(korr)2 ausgegeben. Dieser Ausgang bildet zusammen mit dem Ausgang des Registers R3 78 den zwei Bit breiten Ausgang 713 der Fehlererkennungsschaltung F, der das Fehlersignal trägt. Stimmen die beiden Bits des Fehlersignal am Ausgang 713 überein, dann wird kein Fehler angezeigt. Sind die beiden Bits dieses Signal unterschiedlich, dann liegt ein Fehler entweder in der kombinatorischen Schaltung f, in den Registern R1 79, R2 710, im Register R3 78, im Korrektor 711, im Generator 712 oder im Prädiktor Pr vor.
  • Soll ein 1 Bit breites Fehlersignal bestimmt werden, so sind der 1-Bit breite Ausgang des Registers R3 78 und der Ausgang des Generators 721 einfach durch ein weiteres XOR-Gatter zu verknüpfen, das in 7 nicht eingezeichnet ist.
  • Die Funktionsweise der Fehlerkorrektur und der Fehlererkennung soll nun für Beispiele erläutert werden.
  • Zunächst beschreiben wir die Korrektur eines weichen Fehlers, der in dem Speicherelement R11 des Registers R1 79 auftritt. Beispielsweise sei der korrekte Wert y1, der von dem XOR-Gatter 73 ausgegeben wird, gleich 1. Dieser Wert wird in y1' = 1 verdoppelt, so dass sowohl am Eingang des Speicherelementes R11 im Register R1 79 als auch am Eingang des Registers R21 des Registers R2 710 der Wert 1 anliegt.
  • Tritt nun ein weicher Fehler in dem Speicherelement R11 auf, dann ist der Ausgabewert des Speicherelementes R11 in der ersten Hälfte das Taktes, indem das Clock-Signal clock des Speicherelementes R11 gleich 1 ist, gleich 1 und in der zweiten Hälfte des Taktes, für den das Clock-Signal clock gleich 0 ist, gleich 0. Der Ausgabewert des Speicherelementes ist sowohl für das Clock-Signal clock = 1 als auch für das Clocksignal clock = 0 jeweils gleich 1. Der Tabelle 4, in der die Wertetabelle eines C-Elementes dargestellt ist, entnimmt man, das das C-Element C11 des Korrektors K 711 den Wert 1 sowohl in der ersten Hälfte des Taktes als auch in der zweiten Hälfte des betrachteten Taktes ausgibt, so dass der weiche Fehler korrigiert wird, wie noch erläutert werden soll.
  • In der ersten Takthälfte mit clock = 1 gilt y1 = y1' = 1, und der vierten und siebten Zeile von Tabelle 3 entnimmt man, dass das C-Element C1 unabhängig von vorherigen Wert den Wert y(korr)1 = 1 ausgibt. In der zweiten Takthälfte mit clock = 0 gilt y1 = 0 und y1' = 1. Der vorherige Wert der ersten Takthälfte ist hier gleich 1, und das C-Element C1 korrigiert den Wert und gibt entsprechend der siebenten Zeile von Tabelle 4 den korrekten Wert y(korr)1 = 1 aus.
  • Als Beispiel für die Erkennung eines Fehlers in der kombinatorischen Schaltung f soll nun ein Stuck-at-0 Fehler am Ausgang des UND-Gatters 71 betrachtet werden.
  • Als Eingabewerte der Schaltung f werden die Werte x1 = 1, x2 = 1, x3 = 0 betrachtet. Die korrekten Ausgabewerte des XOR-Gatters 73 und des UND-Gatters 74 sind dann y1 = y1' = 1, y2 = y2' = 0. Aufgrund des stuck-at-0 Fehlers am Ausgang des XOR-Gatters 73 ist die fehlerhafte Ausgabe dieses Gatters nun gleich y1f = y1'f = 0, sodass in den Speicherelementen R11 und R12 der Register R11 79 und R2 710 die fehlerhaften Werte 0 anstelle der korrekten Werte 1 gespeichert werden. Die fehlerhaften Werte 0,0 liegen an den ersten beiden Eingängen des Korrektors K 711 an der an seinem ersten Ausgang den Wert y(korr)1f = 0 ausgibt.
  • Das Gatter 74 gibt den korrekten Wert y2 = y2' = 0 aus, der in den Speicherelementen R12 des Registers R1 79 und R22 des Registers 71 gespeichert wird. Die korrekten Werte 0,0 liegen am dritten und vierten Eingang des Korrektors K 711 an, so dass vom Korrektor K 711 an seinem zweiten Ausgang der Wert 0 ausgegeben wird. Die beiden Ausgänge des Korrektors K 711 sind in die beiden Eingänge des Generators Gen 712 geführt, der als XOR-Gatter realisiert ist und er an seinem Ausgang den Wert 0 XOR 0 = 0 ausgibt.
  • Die Eingabesignale x1 = x2 = 1, x3 = 0 liegen ebenso an den Eingängen des Prädiktors Pr an, so dass am Ausgang des UND-Gatters 75 der Wert 1 und am Ausgang des UND-Gatters 76 der Wert 0 ausgegeben werden, die durch das ODER-Gatter 77 in den Wert P(x) = 1 verarbeitet werden, so dass von dem Prädiktor der Wert P(x) ausgegeben wird, der in dem Register R3 78 zwischengespeichert wird. Die Ausgabe 1 des Registers R3 78 und die Ausgabe des Generators 712, die gleich 0 ist, stimmen nicht überein, wodurch ein Fehler angezeigt wird.
  • Weiterhin soll nun die Erkennung eines Fehlers K 711 im Korrektor betrachtet werden. Wir nehmen dabei an, dass das C-Element C1 wie in 3 dargestellt implementiert ist.
  • Wir betrachten den Fehler, dass der p-Transister 32 stuck-open ist und stets keine leitende Verbindung herstellen kann. Liegen nun die Eingabewerte x1 = 2 = 1 und x2 = 1 an den Schaltungseingängen an, dann wird von dem UND-Gatter 74 der Wert y2 = y2' = 1 ausgegeben, während das Gatter 73 den Wert y1 = y1' = 0 ausgibt. Nach Zwischenspeicherung in den Registern R1 79 und R2 710 liegen an den ersten beiden Eingängen des Korrektors 711 und damit an den beiden Eingängen des fehlerhaften C-Elementes C1 die Werte 0,0 und an dem dritten und vierten Eingang des Korrektors und damit an den beiden Eingängen des korrekten C-Elementes C2 die Werte 1,1 an.
  • Da der p-Transistor 32 in 3 stuck-open ist, gibt es bei Eingabe von 0,0 in das C-Element C1 weder eine leitende Verbindung der den Wert z tragenden Leitung zu VDD noch zu GND, so dass der Wert z seinen bisherigen Wert beibehält, der invertiert auch als y(korr)i am Ausgang des C-Elementes ausgegeben wird. Da es niemals eine Verbindung der Leitung, die den Wert z führt, zu VDD gibt, geht der Wert z im zeitlichen Verlauf auf Grund von Leckströmen in konstant 0 über, so dass das C-Element C1 stets den Wert 1 an seinem Ausgang ausgibt.
  • Dieser Fehler wird stets dann durch den Vergleich der Ausgabesignale Generators Gen 712 und des im Registers R3 zwischengespeicherten Ausgabewertes des Generators erkannt, wenn die korrekte Ausgabe des XOR-Gatters 73 gleich 0 ist. Der Grund ist, dass die Ausgabe y(korr)2 des C-Elementes C2 und des Prädiktors Pr durch diesen Fehler des Korrektors 711 nicht verfälscht werden und der Generator Gen 712 durch ein XOR-Gatter, dass eine eindeutig umkehrbare Funktion realisiert, implementiert ist.
  • 8 zeigt eine weitere Realisierung einer Schaltungsanordnung nach 5, wobei die Schaltungsanordnung in 8 funktionell, aber nicht strukturell, der Schaltungsanordnung gleich ist.
  • Die Schaltung von 8 unterscheidet sich von der Schaltungsanordnung von 7 nur dadurch, dass die kombinatorische Schaltung f und der Prädiktor Pr gemeinsame Schaltungsteile aufweisen. Bei der Schaltungsanordnung in 7 erkennt man, dass die UND-Gatter 71 und 75 jeweils die gleiche Funktion (x1 UND x2) realisieren. Das ist in 8 dadurch berücksichtigt, dass der Ausgang des UND-Gatters 71 sowohl in den ersten Eingang des XOR-Gatters 73 als auch in den Eingang des ODER-Gatters 77 geführt ist, mit dem in der Schaltung von 7 der Ausgang des UND-Gatters 75 verbunden ist. In der Schaltung von 8 kann deshalb das Gatter 75 eingespart werden. Der Ausgang des UND-Gatters 71 wird als zusätzlicher Ausgang der funktionellen Schaltung in die Fehlererkennungsschaltung 714 geführt, wodurch die Fehlererkennungsschaltung und die funktionelle Schaltung f das UND-Gatter 71 gemeinsam nutzen.
  • 9 zeigt eine weitere Schaltungsanordnung zur Korrektur und Fehlererkennung.
  • Die funktionelle Schaltung S 91 besteht aus zwei verdoppelten, einander gleichen kombinatorischen Schaltungen f 92 und f' 93. Der Ausgang der kombinatorischen Schaltung f 92 ist in den Eingang eines ersten Registers 94 geführt, während der Ausgang der kombinatorischen Schaltung f' in den Eingang eines zweiten Registers 95 geführt ist. Der Ausgang des Registers 94 ist gleichzeitig mit dem ersten Eingang eines ersten Komparators Comp1 97, mit dem ersten Eingang eines dritten Komparators Comp3 99 und mit dem ersten Eingang eines Korrektors 96 verbunden. Der Ausgang des zweiten Registers R2 95 ist gleichzeitig mit dem zweiten Eingang des ersten Komparators Comp1, 97 mit dem ersten Eingang eines zweiten Komparators Comp2 98 und mit dem zweiten Eingang des Korrektors 96 verbunden. Der Ausgang 911 des Korrektors 96, der das korrigierte Signal y(korr) ausgibt, ist gleichzeitig in den jeweils zweiten Eingang des Komparators Comp2 98 und des dritten Komparators Comp3 99 geführt.
  • Die Fehlererkennungsschaltung F 910 besteht hier aus den drei Komparatoren Comp1 97, Comp2 98, Comp3 99.
  • Anhand der Ausgabesignale der Fehlererkennungsschaltung F 99 kann hier identifiziert werden, welche Schaltungsteile fehlerhaft sind. Zeigt zum Beispiel der Ausgang des Komparators Comp1 97 einen Fehler an, dann liegt ein Fehler in einer der kombinatorischen Schaltung f 92 oder f' 93 oder einem der Register R1 94 oder 94 vor. Zeigt etwa der Komparator Comp3 99 an seinem Ausgang und der Komparator Comp2 einen Fehler an, während der Komparator Comp1 97 keinen Fehler anzeigt, dann ist der Ausgabewert des Korrektors 96 fehlerhaft korrigiert worden, während in den anderen Schaltungsteilen keine Fehler aufgetreten sind.
  • Die Eingänge und Ausgänge der kombinatorischen Schaltungen f 92, f' 93, der Register R1 94, R2 95 der Komparatoren Comp1 97, Comp2 98 Comp3 99 und des Korrektors 96 können dabei sowohl ein Bit breit als auch mehrere Bits breit sein.
  • In 10a zeigt eine weitere Schaltungsanordnung zur Fehlerkorrektur und Fehlererkennung.
  • Die funktionale Schaltung S 1018 besteht aus zwei zueinander gleichen verdoppelten sequentiellen Schaltungen. Die erste sequentielle Schaltung besteht aus kombinatorischen Schaltungsteilen g 101 und f 102 und einem Register R1' 103. Sie wird als die originale Schaltung bezeichnet. In dem Register R1' 103 wird der Zustand z der originalen sequentiellen Schaltung gespeichert. Die Rückkopplung des Zustandes erfolgt über den Korrektor2 110. Sie wird später detailliert durch die Verbindungen der entsprechenden Schaltungsteile beschrieben. Die zweite sequentielle Schaltung, die als verdoppelte sequentielle Schaltung bezeichnet wird, besteht aus kombinatorischen Schaltungsteilen g' 105, f 106 und einem Register R2' 107. In dem Register R2' 107 wird der Zustand z' der verdoppelten sequentiellen Schaltung gespeichert. Die Rückkopplung des Zustandes erfolgt über den Korrektor2 110. Sie wird später detaillierter durch die Verbindungen der entsprechenden Schaltungsteile beschrieben. Die kom binatorischen Schaltungsteile g 101 und g' 105 ebenso wie die kombinatorischen Schaltungen f 102 und f' 106 sind gleich.
  • Der n Bit breite Ausgang der kombinatorischen Schaltung g 101, der den Wert y trägt, ist in den Eingang des Registers R1' 103 geführt, während der L Bit breite Ausgang der kombinatorischen Schaltung f 102, der den Wert z trägt, der auch als Zustand der originalen Schaltung bezeichnet wird, mit dem Eingang des Registers R1' 103 verbunden ist.
  • Der n Bit breite Ausgang der kombinatorischen Schaltung g' 105, der den Wert y' trägt, ist in den Eingang des Registers R2' 103 geführt, während der L Bit breite Ausgang der kombinatorischen Schaltung f' 106, der den Wert z' trägt, der auch als Zustand der verdoppelten Schaltung bezeichnet wird mit dem Eingang des Registers R2' 107 verbunden ist. Hierbei sind sowohl n als auch L größer gleich 1.
  • Der n Bit breite Ausgang des Registers R1 104 ist ebenso wie der n Bit breite Ausgang des Registers R2 108 in den 2n Bit breiten Eingang eines ersten Korrektors Korrektor1 109 geführt. Hierbei ist jeweils für i = 1, ..., n der i-te binäre Ausgang des Registers R1 104 mit dem (2i – 1)-ten Eingang und der i-te binäre Ausgang des Registers R2 108 mit dem (2i)-ten Eingang des Korrektors Korrektor1 109 verbunden.
  • Darüber hinaus ist der n Bit breite Ausgang des Registers R1 104 in den n-Bit breiten Eingang eines ersten XOR-Baumes 1012 zur Bestimmung der Parität P2 des n Bit breiten binären Ausgangssignals dieses Registers geführt.
  • Weiterhin ist der n Bit breite Ausgang des Registers R2 108 in den n-Bit breiten Eingang eines zweiten XOR-Baumes 1013 zur Bestimmung der Parität P1 der n binären Ausgangssignale dieses Registers geführt.
  • Der L Bit breite Ausgang des Registers R1' 103 ist ebenso wie der L Bit breite Ausgang des Registers R2' 107 in den 2L Bit breiten Eingang eines zweiten Korrektors Korrektor2 1010 geführt. Dabei ist jeweils für j = 1, ..., L der j-te binäre Ausgang des Registers R1' 103 mit dem (2j – 1)-ten Eingang und der j-te binäre Ausgang des Registers R2' 107 mit dem (2j)-ten Eingang des Korrektors Korrektor2 1010 verbunden.
  • Der Korrektor1 109 korrigiert die weichen Fehler in den Registern R1 104 und R2 108, während der Korrektor Korrektor2 1010 weiche Fehler in den Registern R1' 103 und R2' 107 korrigiert.
  • Der n Bit breite Ausgang des Korrektors Korrektor1 109, der die korrigierten Werte der Ausgabewerte y(korr) führt, ist mit dem Schaltungsausgang und mit dem n Bit breiten Eingang eines dritten XOR-Baumes P3 1011 zur Bestimmung der Parität P3 des korrigierten n Bit breiten Ausgangssignals y(korr) verbunden. Die jeweils ersten n Bit breiten Eingänge der kombinatorischen Schaltungen f 102, g 101, f' 106 und g' 105 sind jeweils mit den das Eingabesignal x bzw. x' tragenden Eingängen der Schaltung S 1018 verbunden. Dabei ist x = x'. Diese jeweils ersten Eingänge dieser kombinatorischen Schaltungen heißen auch primäre Eingänge.
  • Der L Bit breite Ausgang des Korrektors Korrektor2 1010, der die korrigierten Werte z(korr) des Zustandes der sequentiellen Schaltung führt, ist in die Schaltung S 1018 rückgekoppelt, indem dieser Ausgang gleichzeitig mit einem zweiten jeweils L Bit breiten Eingang jeweils der kombinatorischen Schaltungen f 102, g 101, f' 106 und g' 105 verbunden ist. Die jeweils zweiten Eingänge dieser Schaltungen heißen auch sekundäre Schaltungseingänge.
  • Der Ausgang des XOR-Baumes 1013, der das Paritätssignal P1 trägt, ist in den ersten Eingang eines ersten ODER-Gatters 1015 und invertiert in den ersten Eingang eines weiteren ODER-Gatters 1014 geführt.
  • Der Ausgang des XOR-Baumes 1012, der das Paritätssignal P2 trägt, ist in den zweiten Eingang eines des ODER-Gatters 1015 und invertiert in den zweiten Eingang des ODER-Gatters 1014 geführt.
  • Der Ausgang des XOR-Baumes 1011, der das Paritätssignal P3 trägt, ist in den dritten Eingang des ODER-Gatters 1015 und invertiert in den dritten Eingang des ODER-Gatters 1014 geführt. Der Ausgang des ODER-Gatters 1014 ist in den ersten Eingang eines UND-Gatters 1016 geführt. Der Ausgang des ODER-Gatters 1015 ist mit dem zweiten Eingang des UND-Gatters 1016 verbunden. Der Ausgang des UND-Gatters 1016 trägt das Fehlersignal. Die XOR-Bäume 1013, 1012, 1011, die ODER-Gatter 1014 und 1015 und das UND-Gatter 1016 bilden die Fehlererkennungsschaltung F 1017. Es ergibt sich, dass die Fehlererkennungsschaltung F 1017 an ihrem Ausgang ein Fehlersignal gleich 1 ausgibt, wenn nicht alle drei Paritätswerte P1, P2 und P3 gleich sind.
  • Die Fehlererkennungsschaltung erkennt damit durch die Parität erkennbare Fehler in den kombinatorischen Schaltungsteilen g 101, g' 105, R1 104, R2 108 und in dem Korrektor Korrektor1 109 unmittelbar. Das sind die Fehler, in denen sich die funktionellen Ausgaben der beiden verdoppelten sequentiellen Schaltungen unterscheiden.
  • Es ist ohne weiteres erkennbar, dass anstelle eines Paritätskodes auch ein anderer Kode nutzbar ist, etwa ein Bergerkode oder ein Hammingkode, die eine höhere Fehlererkennung als ein Paritätskode aufweisen.
  • 10b ist eine Modifikation der Schaltungsanordnung von 10a.
  • Alle Schaltungsteile in 10b, die sich von den entsprechenden Schaltungsteilen von 10a nicht unterscheiden, sind gleich bezeichnet, und werden deshalb auch nicht noch einmal ausführlich beschrieben werden. Die Schaltungsanordnung von 10a unterscheidet sich von der Schaltungsanordnung von 10 dadurch, dass die L Bit breiten Ausgänge der Register R1' 103, R2' 107 und des Korrektors Korrektor2 1010, die in der Schaltungsanordnung von 10 nicht durch die Fehlererkennungsschaltung überwacht werden, nun in der Schaltungsanordnung von 10a von der Fehlererkennungsschaltung F überwacht werden.
  • In 10b ist die Eingangswortbreite der XOR-Bäume 1011, 1012, 1013 jeweils n + L Bits, während sie in 10a jeweils n Bit ist.
  • Der L Bit breite Ausgang des Registers R1' 103 ist ebenso wie der L Bit breite Ausgang des Registers R2' 107 wie in 10a in den 2L Bit breiten Eingang eines zweiten Korrektors Korrektor2 1010 geführt. Dabei ist jeweils für j = 1, ..., L der j-te binäre Ausgang des Registers R1' 103 mit dem (2j – 1)-ten Eingang und der j-te binäre Ausgang des Registers R2' 107 mit dem (2j)-ten Eingang des Korrektors Korrektor2 1010 verbunden.
  • Der L-Bit breite Ausgang des Registers R1' 103 ist darüber hinaus gleichzeitig mit den L ersten Eingängen des XOR-Baumes 1012 verbunden, dessen weitere n Eingänge mit dem n-Bit breiten Ausgang des Registers R1 104 verbunden sind. Der L-Bit breite Ausgang des Registers R2' 107 ist darüber hinaus gleichzeitig mit den L ersten Eingängen des XOR-Baumes 1013 verbunden, dessen weitere n Eingänge mit dem n-Bit breiten Ausgang des Registers R2 108 verbunden sind. Der L-Bit breite Ausgang des Korrektors Korrektor2 1010, der gleichzeitig mit den Eingängen der kombinatorischen Schaltungen f 102, g 101, f' 106 und g' 105 verbunden ist, ist darüber hinaus mit den ersten L Eingängen des XOR-Baumes 1011 verbunden, dessen weitere n Eingänge mit dem n Bit breiten Ausgang des Korrektors Korrektor1 109 verbunden sind.
  • Die konkrete Ausgestaltung der Fehlererkennungsschaltung kann in einfacher Weise von einem Fachmann variiert werden. So kann man zum Beispiel den L Bit breiten Ausgang des Registers R2' 107 anstatt an die ersten L Eingänge des XOR-Baumes 1013 auch an die ersten L Eingänge des XOR-Baumes 1012 anschließen, wenn man die L-Bit breiten Ausgänge des Registers R1' 103 an die ersten L Eingänge des XOR-Baumes 1013 anschließt.
  • In entsprechender Weise können die jeweils L Bit breiten und die jeweils n Bit breiten Anschlüsse an die XOR-Bäume 1013, 1012 und 1011 vertauscht werden.
  • Tritt ein Fehler in den Schaltungsteilen f 102, f' 106, R1' 103, R2' 107 oder in dem Korrektor Korrektor2 1010 auf, so wird ein derartiger Fehler erkannt, wenn er die Parität der L-Bit breiten Ausgaben der Register R1' 103, R2' 107 oder der Ausgaben des Korrektors Korrektor2 1010 verändert.
  • Wird anstelle der ODER-Gatter 1014, 1015 eine Auswertelogik mit drei Eingängen P1, P2, P3 und zwei Ausgängen u1, u2 an die Ausgänge der drei XOR-Bäume 1013, 1014, 1015 angeschlossen, so kann aus den Paritätssignalen P1, P2, P3 in einfacher Weise bestimmt werden, in welchem Teil ein Fehler aufgetreten ist.
  • 11 zeigt die Wertetabelle für eine mögliche Auswertelogik.
  • In der Wertetabelle von 11 ist an der ersten Zeile und an der letzen Zeile erkennbar, dass ein fehlerfreies Verhalten an den Ausgabewerten u1 = 0, u2 = 0 angezeigt wird, wenn alle drei Werte der Paritäten P1, P2 und P3 gleich sind. An der zweiten und siebten Zeile dieser Tabelle erkennt man, dass eine fehlerhafte Korrektur dann vorliegt, wenn die Werte der Paritäten P1 und P2 übereinstimmen und sich der Wert von P3 von diesen Werten unterscheidet.
  • Die Realisierung einer kombinatorischen Schaltung, die eine Auswertelogik beispielsweise die Auswertelogik, die in 11 als Wertetabelle dargestellt ist, realisiert, bereitet einem Fachmann keine Schwierigkeiten, und sie soll deshalb hier nicht näher beschrieben werden.
  • 12 zeigt eine weitere Schaltungsanordnung zur Fehlerkorrektur und Fehlererkennung, wobei die n-dimensionalen Eingabewerte in aufeinander folgenden Pipelinestufen verarbeitet werden.
  • Die n Bit breiten Eingabewerte x sind in den Eingang einer ersten kombinatorischen Schaltung f1 und gleichzeitig in einen Prädiktor Pr 1211 geführt. Der die n1 Bit breiten Werte u tragende Ausgang der kombinatorischen Schaltung f1 121 ist verdoppelt. Der erste der verdoppelten Ausgänge, der den Wert u führt, ist in den n1 Bit breiten Eingang eines Registers R1 122 geführt, während der zweite der verdoppelten Ausgänge, der den Wert u' führt, mit dem n1 bit breiten Eingang des Registers R2 123 verbunden ist. Dabei gilt u = u'. Sowohl der n1 Bit breite Ausgang des Registers R1 als auch der n1 Bit breite Ausgang des Registers R2 ist mit dem 2n1 Bit breiten Eingang eitles Korrektors1 124 verbunden, dessen n1 Bit breiter Ausgang in die kombinatorische Schaltung f2 125 geführt ist. Dieser Ausgang trägt das Signal u(korr). Der n2 Bit breite Ausgang der kombinatorischen Schaltung f2 125 trägt das Signal v. Er ist mit dem Eingang eines n2 Bit breiten Registers R3 126 verbunden, dessen Ausgang mit dem Eingang einer kombinatorischen Schaltung f3 127 verbunden ist.
  • Der n Bit breite Ausgang der kombinatorischen Schaltung f3 127 ist in einen ersten Ausgang, der den Wert y trägt, und in einen zweiten Ausgang, der den Wert y' trägt, verdoppelt. Dabei gilt y = y'. Der erste Ausgang, ist in den Eingang eines n Bit breiten Registers R4 128 geführt, während der zweite Ausgang in den Eingang eines n Bit breiten Registers R5 129 geführt ist.
  • Sowohl der n Bit breite Ausgang des Registers R4 128 als auch der n Bit breite Ausgang des Registers R5 ist mit dem 2n Bit breiten Eingang eines Korrektors 2 1210 verbunden, an dessen Ausgang das korrigierte Signal y(kor) ausgegeben wird. Der Ausgang des Korrektors 1210 ist darüber hinaus mit dem Eingang eines Generators Gen 1216 verbunden.
  • Der L Bit breite Ausgang des Prädiktors 1211 ist in den Eingang eines L-Bit breiten Registers R6 1212 geführt. Der Ausgang dieses Registers ist mit dem Eingang eines weiteren Registers R7 1213 und dessen Ausgang ist mit einem weiteren Register 1214 verbunden, die beide die Wortbreite L aufweisen. Der L Bit breite Ausgang des Registers R8 1214 ist mit dem ersten Eingang eines Komparators Comp 1215 verbunden. Der Ausgang des Generators Gen 1216 ist mit dem zweiten Eingang des Komparators Comp 1215 verbunden, dessen Ausgang das Fehlersignal trägt.
  • Die Fehlererkennungsschaltung F 1217 besteht aus dem Prädiktor 1211, den in Reihe geschalteten L Bit breiten Registern R6 1212, R7 1213, R8 1214, dem Komparator Comp 1215 und dem Generator Gen 1216. Zur Fehlererkennung wird in 12 ein separierbarer Kode mit n Informationsbits und L Kontrollbits verwendet.
  • Zur Beschreibung der Funktionsweise der Schaltung wird davon ausgegangen, dass die betrachtete Schaltung funktionell eine Reihenschaltung der kombinatorischen Schaltungsteile f1 121, f2 125 und f3 127 ist, deren Ausgangswerte in den Registern R1 122, R2 123, R3 126, R4 128 und R5 128 um drei Takte verzögert werden. In Abhängigkeit von ihren Eingabewerten x = x1, ..., xm gibt sie an ihrem n-Bit breiten Ausgang die Werte y1 = h1(x), ..., yn = hn(x) aus, wobei h1, ..., hn jeweils m-stellige Boolesche Funktionen sind und h(x) = h1(x), ..., hn(x) = f3(f(2(f1(x))) gilt.
  • Die n Informationsbits des betrachteten Kodes sind die Bits y1, ..., yn. Der Prädiktor Pr 1211 bestimmt nun in Abhängigkeit von den Eingabewerten x die L Kontrollbits c1(x), ..., cL(x), die in den Registern R6 1212, R7 12113, R8 1214 zwischengespeichert werden
  • Der Generator Gen 1216 bestimmt aus den korrigierten Ausgabewerten des Korrektors 54 y(korr) = y(korr)1, ..., y(korr)n der Informationsbits des betrachteten Kodes nun in Abhängigkeit von diesen Ausgabewerten ebenfalls die Kontrollbits c1(y(korr)), ..., cL(y(korr)). c1(x), ..., cL(x) und c1(y(korr)), ..., cL(y(korr)) werden im Komparator 1215 auf Gleichheit geprüft. Ein Unterschied zeigt einen Fehler an. Als spezieller Kode kann zum Beispiel ein Paritätskode, ein Berger-Kode, ein Hammingkode verwendet werden.
  • In 12 sind die Ausgabewerte der kombinatorischen Schaltungen f1 121 verdoppelt und als u und u' in den verdoppelten Registern R1 122 und R2 122 gespeichert. Weiche Fehler in diesen Register werden durch den Korrektor Korrektor1 124 in die Ausgabewerte u(korr) korrigiert. Ebenso sind die Ausgabewerte der kombinatorischen Schaltungen f3 127 verdoppelt und als y und y' in den verdoppelten Registern R4 128 und R5 129 gespeichert. Weiche Fehler in diesen Registern werden durch den Korrektor Korrektor2 1210 in die Ausgabewerte y(korr) korrigiert.
  • Die Ausgabewerte der kombinatorischen Schaltung f2 125 sind nicht verdoppelt, und die nur einfach in dem Register R3 126 gespeicherten Werte können auch beim Auftreten von weichen Fehlern nicht korrigiert werden.
  • Es ergibt sich, dass es in einer Pipelineverarbeitung möglich ist, einen Teil der Register, die etwa besonders wichtige Daten enthalten, zu verdoppeln und weiche Fehler in diesen Registern zu korrigieren, während man andere Register aus Aufwandsgründen nicht verdoppeln wird. In die Fehlererkennung entsprechend dem gewählten Kode sind alle Schaltungsteile der Schaltungsanordnung von 12 einbezogen. Da unterschiedliche Kodes mit unterschiedlichen Fehlererkennungseigenschaften und unterschiedlichem Aufwand verwendet werden können, lässt sich der Aufwand für Fehlererkennung variable gestalten.
  • Die in der vorstehenden Beschreibung, den Ansprüchen und der Zeichnung offenbarten Merkmale der Erfindung können sowohl einzeln als auch in beliebiger Kombination für die Verwirklichung der Erfindung in ihren verschiedenen Ausführungsformen von Bedeutung sein.

Claims (28)

  1. Schaltungsanordnung, mit: – einer funktionalen Schaltung (11; 51; 91; 1018) mit m (m = 1, 2, ...) Dateneingängen und n (n = 1, 2, ...) Datenausgängen zum Verarbeiten mindestens eines m-dimensionalen binären Dateneingangs (x1, ..., xm) zu einem n-dimensionalen Datenausgang (y1, ..., yn), wobei die funktionale Schaltung (11; 51; 91; 1018) mindestens einen kombinatorischen Schaltungsteil (56; 92; 101) umfaßt, – mindestens zwei Registern (12, 13; 52, 53; 94, 95; 104, 108) mit einer Wortbreite k (k = 1, 2, ...; k ≤ n), die zum Speichern von zueinander verdoppelten oder bitweise zueinander invertiert verdoppelten Ausgabewerten (y = y1, ..., yk; y' = y'1, ..., y'k), die von dem n-dimensionalen Datenausgang (y1, ..., yn) der funktionalen Schaltung (11; 51; 91; 1018) abgeleitet sind, an wenigstens einen Teil der n Datenausgänge der funktionalen Schaltung (11; 51; 91; 1018) gekoppelt sind, – mindestens einem Korrektor (14; 54; 96; 109) für weiche Fehler in den mindestens zwei Registern (12, 13; 52, 53; 94, 95; 104, 108) mit einer Eingangswortbreite 2k und einer Ausgangswortbreite k, der an Datenausgänge der mindestens zwei Register (12, 13; 52, 53; 94, 95; 104, 108) gekoppelt ist und einen k-dimensionalen korrigierten Datenausgang (y[k](korr) = y1(korr), ..., yk(korr)) liefert, und – einer Fehlererkennungsschaltung (15; 55; 910; 1017) zur Fehlererkennung im laufenden Betrieb in dem k-dimensionalen korrigierten Datenausgang (y[k](korr) = y1(korr), ..., yk(korr)) des Korrektors (14; 54; 96; 109) bezogen auf die m Dateneingänge.
  2. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, dass die Fehlererkennungsschaltung (15; 55, 910; 1017) zur Fehlererkennung im laufenden Betrieb wenigstens eines der folgenden Schaltungselemente konfiguriert ist: die funktionale Schaltung (11; 51; 91; 1018) und die mindestens zwei Register (12, 13; 52, 53; 94, 95; 104, 108).
  3. Schaltungsanordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Korrektor (14, 54, 96, 109, 124) unter Verwendung wenigstens eines C-Elementes gebildet ist.
  4. Schaltungsanordnung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Fehlererkennungsschaltung (15; 55; 910; 1017, 1217) konfiguriert ist, um im laufenden Betrieb mindestens eine Komponente des k-dimensionalen korrigierten Datenausganges (y[k](korr)) in die Fehlererkennung einzubeziehen.
  5. Schaltungsanordnung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass für i = 1, .., k ein i-ter Datenausgang eines der mindestens zwei Register (12, 13; 52, 53; 94, 95; 104, 108) an einen (2i – 1)-ten Dateneingang des Korrektors (14; 54; 96; 109, 1010) und ein i-ter Datenausgang eines anderen der mindestens zwei Register (12, 13; 52, 53; 94, 95; 104, 108) an einen 2i-ten Dateneingang des Korrektors (14; 54; 96; 109) geführt sind.
  6. Schaltungsanordnung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass der Korrektor (14; 54; 96; 109) unter Verwendung einer Parallelschaltung von k C-Elementen (C1 21, ..., Ck 2k) gebildet ist.
  7. Schaltungsanordnung nach Anspruch 6, dadurch gekennzeichnet, dass bei der Parallelschaltung der k C-Elemente (C1 21, ..., Ck 2k) ein 1-ter und ein 2-ter Dateneingang, ..., ein (2k – 1)-ter und ein (2k)-ter Dateneingang des Korrektors (14; 54; 96; 109) mit den jeweils beiden Dateneingängen der k C-Elemente (C1 21, ..., Ck 2k) verbunden sind und ein Datenausgang eines j-ten C-Elementes (Cj 2j; j = 1, ..., k) ein j-ter Datenausgang des Korrektors (14; 54; 96; 109) ist.
  8. Schaltungsanordnung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Fehlererkennungsschaltung (15; 55; 910; 1017) im laufenden Betrieb ein Fehlersignal bildend ausgeführt ist, welches von einer oder mehreren der folgenden auswertbaren Informationen abhängt: der m-dimensionale binäre Dateneingang (x1, ..., xm), Datenwerte auf internen Schaltungslinien der funktionalen Schaltung (11; 51; 91; 1018), Dateninhalt der mindestens zwei Register (12, 13; 52, 53; 94, 95; 104, 108) und der k-dimensionale korrigierte Datenausgang (y(korr)).
  9. Schaltungsanordnung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass für den Fall k = n die folgenden Merkmale ausgebildet sind: – die funktionelle Schaltung (51) ist eine kombinatorische Schaltung (56) mit einem m Bit breiten Dateneingang und einem n Bit breiten Datenausgang zur Realisierung des n-dimensionalen Datenausganges (y = y1, ..., yn), und – ein Verdopplerschaltungsteil ist vorgesehen, um aus dem n-dimensionalen Datenausgang (y) zwei jeweils n Bit breite verdoppelte Datenausgänge (y, y') zu erzeugen, wobei ein erster verdoppelter Datenausgang (y) des Verdopplerschaltungsteils auf einen n dimensionalen Dateneingang eines ersten Registers (52) und ein zweiter verdoppelter Datenausgang (y') des Verdopplerschaltungsteils auf einen n Bit breiten Dateneingang eines zweiten Registers (53) geführt sind und wobei ein n Bit breiter Datenausgang des ersten Registers (52) und ein n Bit breiter Datenausgang des zweiten Registers (53) stellenrichtig in einen 2n Bit breiten Dateneingang des Korrektors (54) geführt sind, der einen n-dimensionalen korrigierten Datenausgang (y(korr)) liefert.
  10. Schaltungsanordnung nach Anspruch 9, dadurch gekennzeichnet, dass die Fehlererkennungsschaltung (55) einen Prädiktor (57), ein L Bit breites weiteres Register (58), einen Komparator (510) und einen Generator (59) aufweist, wobei L die Anzahl von Kontrollstellen eines verwendeten Kodes ist, und dass mindestens eine Schaltungskonfiguration aus der folgenden Gruppe von Schaltungskonfigurationselemente realisiert ist: – der m-dimensionale binäre Dateneingang (x1, ..., xm) ist an einen Dateneingang des Prädiktors (57) geführt, – ein L Bit breiter Datenausgang des Prädiktors (57) ist an einen L Bit breiten Dateneingang des weiteren Registers (58) angeschlossen, – ein L Bit breiter Datenausgang des weiteren Registers (58) ist an einen ersten L Bit breiten Dateneingang des Komparators (510) geführt, – ein Datenausgang des Generators (59) ist an einen zweiten L Bit breiten Dateneingang des Komparators geführt, und – ein Dateneingang des Generators (59) ist mit dem n-dimensionalen korrigierten Datenausgang (y(korr)) des Korrektors (54) verbunden.
  11. Schaltungsanordnung nach Anspruch 10, dadurch gekennzeichnet, dass mindestens eine Schaltungskonfiguration aus der folgenden Gruppe von Schaltungskonfigurationselemente realisiert ist: – der Prädiktor (57) ist konfiguriert, um L Kontrollbits (c1(x), ..., cL(x)) eines fehlererkennenden Kodes mit m Informationsbits und L Kontrollbits aus dem m-dimensionalen binären Dateneingang (x1, ..., xm) zu bestimmen, – der Generator (59) ist konfiguriert, um aus dem vom Korrektor (54) ausgegebenen, k-dimensionalen korrigierten Datenausgang (y(korr)) L weitere Kontrollbits (c(y1(korr)), ..., c(yL(korr))) des fehlererkennenden Kodes zu bilden, und – der Komparator (510) ist konfiguriert, um die L Kontrollbits (c1(x), ..., cL(x)) mit den L weiteren Kontrollbits (c(y1(korr)), ..., c(yL(korr))) zu vergleichen und einen Fehler anzuzeigen, wenn die L Kontrollbits (c1(x), ..., cL(x)) und die L weiteren Kontrollbits (c(y1(korr)), ..., c(yL(korr))) nicht bitweise übereinstimmen.
  12. Schaltungsanordnung nach Anspruch 9, dadurch gekennzeichnet, dass für L = 1 der Prädiktor (67) konfiguriert ist, um ein als Paritätsbit ausgebildetes Kontrollbit zu erzeugen, und der Generator (69) ein XOR-Baum mit n binären Dateneingängen ist, an denen der k-dimensionale korrigierte Datenausgang (y(korr)) anliegt.
  13. Schaltungsanordnung nach Anspruch 12, dadurch gekennzeichnet, dass der Komparator aus einer Ausgangsleitung des weiteren Registers (68), bei dem ein Dateneingang mit einem Datenausgang des Prädiktors verbunden ist, und aus einer Ausgangsleitung des XOR-Baumes gebildet ist.
  14. Schaltungsanordnung nach Anspruch 13, dadurch gekennzeichnet, dass die den Komparator realisierenden Ausgangsleitungen, nämlich die Ausgangsleitung des weiteren Registers (68) und die Ausgangsleitung des XOR-Baumes (69), mittels eines XOR-Gatters oder eines XNOR-Gatters zu einem Datenausgang verknüpft sind, der ein binäres Fehlersignal trägt.
  15. Schaltungsanordnung nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die funktionale Schaltung (91) aus einer ersten kombinatorischen Schaltung (92) und aus einer zweiten kombinatorischen Schaltung (93) gebildet ist, die funktional gleich zur ersten kombinatorischen Schaltung (92) ist.
  16. Schaltungsanordnung nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die funktionale Schaltung (1018) aus zwei verdoppelten funktional gleichen Schaltungen gebildet ist, wobei: – eine erste Schaltung zwei kombinatorische Schaltungsteile (101, 102) und ein Register (103) zum Speichern eines internen Zustandes (z) umfaßt, – eine zweite Schaltung zwei weitere kombinatorische Schaltungsteile (105, 106) und ein weiteres Register (107) zum Speichern eines weiteren internen Zustandes (z') umfaßt, – eines der zwei kombinatorischen Schaltungsteile (101) funktional gleich einem der weiteren zwei Schaltungsteile (105) ist und – ein anderes der zwei kombinatorischen Schaltungsteile (102) funktional gleich einem anderen der weiteren zwei Schaltungsteile (106) ist.
  17. Schaltungsanordnung nach 16, dadurch gekennzeichnet, dass mindestens eine Schaltungskonfiguration aus der folgenden Gruppe von Schaltungskonfigurationselemente realisiert ist: – Leitungen, die den m-dimensionalen binären Dateneingang (x, x' mit x = x') tragen, sind an einen jeweiligen primären Dateneingang der zwei kombinatorischen Schaltungsteile (101, 102) und der zwei weiteren kombinatorischen Schaltungsteile (105, 106) geführt; – ein L Bit breiter Datenausgang des anderen der zwei kombinatorischen Schaltungsteile (102), welcher einen Wert des internen Zustandes (z) trägt, ist an einen L Bit breiten Dateneingang des Registers (103) zum Speichern des internen Zustandes (z) der ersten der verdoppelten Schaltungen geführt, während ein L Bit breiter Datenausgang des einen der zwei kombinatorischen Schaltungsteile (106), welcher einen Wert des weiteren internen Zustandes (z') der zweiten der verdoppelten Schaltungen trägt, an einen L Bit breiten Dateneingang des weiteren Registers (107) zum Speichern des weiteren internen Zustandes (z') geführt ist; – ein k Bit breiter Datenausgang des einen der zwei kombinatorischen Schaltungsteile (101) ist an einen k Bit breiten Dateneingang des einen der mindestens zwei Register (104) geführt, wobei ein k Bit breiter Datenausgang des einen der mindestens zwei Register (104) stellenrichtig mit k Dateneingängen eines ersten Korrektors (109) mit 2k Dateneingängen und k Datenausgängen verbunden ist, während ein k Bit breiter Datenausgang des anderen der zwei kombinatorischen Schaltungsteile (105) an den k Bit breiten Dateneingang des anderen der mindestens zwei Register (108) geführt ist, wobei ein k Bit breiter Datenausgang des anderen der mindestens zwei Register (108) stellenrichtig mit restlichen k Dateneingängen des ersten Korrektors (109) verbunden ist, an dessen k Bit breitem Datenausgang der k-dimensionale korrigierte Datenausgang (y1(korr), ..., yk(korr)) ausgegeben wird; und – ein L Bit breiter Datenausgang des Registers (103) zum Speichern des internen Zustandes (z) ist stellenrichtig an L Dateneingänge eines zweiten Korrektors (1010) mit 2L Dateneingängen und L Datenausgängen geführt, während ein L Bit breiter Datenausgang des weiteren Registers (107) zum Speichern des weiteren internen Zustandes (z') stellenrichtig mit restlichen L Dateneingängen des zweiten Korrektors (1010) verbunden ist, wobei ein L Bit breiter Datenausgang des zweiten Korrektors (1010), welcher ein korrigiertes Signal (z(korr)) trägt, gleichzeitig mit jeweils zweiten Dateneingängen der zwei kombinatorischen Schaltungsteile (101, 102) und der zwei weiteren kombinatorischen Schaltungsteile (105, 106) verbunden ist.
  18. Schaltungsanordnung nach Anspruch 17, dadurch gekennzeichnet, dass die Fehlererkennungsschaltung (1017) konfiguriert ist, um mindestens einen Datenausgang des Registers (103), welches den Wert des internen Zustandes (z) führt, und mindestens einen Datenausgang des weiteren Registers (107), welches den Wert des weiteren internen Zustandes (z') führt, in die Fehlererkennung einzubeziehen.
  19. Schaltungsanordnung nach Anspruch 17 oder 18, dadurch gekennzeichnet, dass die Fehlererkennungsschaltung (1017) konfiguriert ist, um mindestens einen Datenausgang des zweiten Korrektors (1010) in die Fehlererkennung einzubeziehen.
  20. Schaltungsanordnung nach einem der Ansprüche 1, 2, 3, 4, 5, 7, 8 und 9, dadurch gekennzeichnet, dass weiterhin die folgenden Schaltungskonfigurationselemente realisiert sind: – ein Datenausgang eines der mindestens zwei Register (94) ist gleichzeitig mit einem ersten Dateneingang eines ersten Komparators (97) und mit einem ersten Dateneingang eines dritten Komparators (99) verbunden, – ein Datenausgang eines der mindestens zwei Register (95) ist gleichzeitig mit einem zweiten Dateneingang des ersten Komparators (97) und mit einem ersten Dateneingang eines zweiten Komparators (98) verbunden, – ein Datenausgang (911) des Korrektors (96), welcher einen korrigierten Ausgabewert y(korr) trägt, ist gleichzeitig mit einem zweiten Dateneingang des zweiten Komparators (98) und mit einem zweiten Dateneingang des dritten Komparators (99) verbunden, und – der erste, der zweite und der dritte Komparator (97, 98, 99) sind konfiguriert, um an einem jeweiligen Datenausgang ein Fehlersignal auszugeben, wenn Dateneingaben nicht übereinstimmen.
  21. Schaltungsanordnung nach Anspruch 20, dadurch gekennzeichnet, dass ein jeweiliger Datenausgang des ersten Komparators (97), des zweiten Komparators (98) und des dritten Komparators (99) mit Dateneingängen einer Auswertelogik verbunden ist, wobei die Auswertelogik konfiguriert ist, um ein fehlerhaftes Schaltungselement zu bestimmen.
  22. Schaltungsanordnung nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass weiterhin die folgenden Schaltungskonfigurationselemente realisiert sind: – ein Datenausgang des anderen der mindestens zwei Register (108) ist mit Dateneingängen eines ersten Generators (1013) zum Erzeugen von Kontrollbits eines fehlererkennenden Kodes verbunden, wobei der erste Generator (1013) konfiguriert ist, um an einem Datenausgang Kontrollbits von Eingangswerten des ersten Generators (1013) auszugeben, – ein Datenausgang des einen der mindestens zwei Register (104) ist mit Dateneingängen eines zweiten Generators (1012) zum Erzeugen von Kontrollbits des fehlererkennenden Kodes verbunden, wobei der zweite Generator (1012) konfiguriert ist, um an einem Datenausgang Kontrollbits von Eingangswerten des zweiten Generators (1012) auszugeben, und – ein Datenausgang des Korrektors (109), welcher einen korrigierten Ausgabewert y(korr) trägt, ist mit einem Dateneingang eines dritten Generators (1011) zum Erzeugen von Kontrollbits des fehlererkennenden Kodes verbunden ist, wobei der dritte Generator (1011) konfiguriert ist, um an einem Datenausgang Kontrollbits von Eingangswerten des dritten Generators (1011) auszugeben.
  23. Schaltungsanordnung nach Anspruch 22, dadurch gekennzeichnet, dass der fehlererkennende Kode ein Paritätskode ist und dass der erste Generator (1013), der zweite Generator (1012) und der dritte Generator (1011) zum Erzeugen von Kontrollbits als ein XOR-Baum zum Erzeugen von Paritätsbits des Paritätskodes ausgeführt sind.
  24. Schaltungsanordnung nach Anspruch 23, dadurch gekennzeichnet, dass weiterhin die folgenden Schaltungskonfigurationselemente realisiert sind: – ein Datenausgang eines ersten XOR-Baumes (1013) ist gleichzeitig an einen ersten Dateneingang eines ODER-Gatters (1015) und invertiert an einen ersten Dateneingang eines weiteren ODER-Gatters (1014) geführt, – ein Datenausgang eines zweiten XOR-Baumes (1012) ist an einen zweiten Dateneingang des ODER-Gatters (1015) und invertiert an einen zweiten Dateneingang des weiteren ODER-Gatters (1014) geführt, – ein Datenausgang eines dritten XOR-Baumes (1011) ist an einen dritten Dateneingang des ODER-Gatters (1015) und invertiert an einen dritten Dateneingang des weiteren ODER-Gatters (1014) geführt, und – ein Datenausgang des ODER-Gatters (1014) ist an einen ersten Dateneingang eines AND-Gatters (1016) und ein Datenausgang des weiteren ODER-Gatters (1015) an einen zweiten Dateneingang des AND-Gatters (1016) geführt, wobei ein Datenausgang des AND-Gatters (1016) ein Fehlersignal trägt.
  25. Schaltungsanordnung nach Anspruch 22 und 23, dadurch gekennzeichnet, dass Datenausgänge des ersten Generators (1013), des zweiten Generators (1012) und des dritten Generators (1011) mit Dateneingängen einer Auswertelogik verbunden sind, wobei die Auswertelogik konfiguriert ist, um ein fehlerhaftes Schaltungselement zu bestimmen.
  26. Schaltungsanordnung nach Anspruch 16 und einem der Ansprüche 22 bis 25, dadurch gekennzeichnet, dass wenigstens einer der Ausgänge des Registers (103) zum Speichern des internen Zustandes (z), des weiteren Registers (107) zum Speichern des weiteren internen Zustandes (z') oder des zweiten Korrektors (1010) in die Fehlererkennung einbezogen ist, indem wenigstens ein Ausgang des weiteren Registers (107) mit einem weiteren Eingang des Prädiktors (1012), wenigstens ein Ausgang des Registers (103) mit einem weiteren Eingang des Prädiktors (1012) oder wenigstens ein Ausgang des zweiten Korrektors (1010) mit einem weiteren Eingang des Prädiktors verbunden ist.
  27. Schaltungsanordnung nach Anspruch 1, 2, 3 oder 4, dadurch gekennzeichnet, dass die funktionale Schaltung mehrere kombinatorische Schaltungsteile (121, 125, 127) umfaßt und konfiguriert ist, um eine Pipelineverarbeitung des m-dimensionalen binären Dateneingangs (x1, ..., xm) in den n-dimensionalen Datenausgang (y1, ..., yn) zu realisieren, wobei Ausgänge mindestens eines der mehreren kombinatorischen Schaltungsteile (121; 127) in verdoppelte Register (122, 123; 128, 129) geführt sind und an die Datenausgänge der verdoppelten Register (122, 123; 128, 129) der mindestens eine Korrektor (124, 1210) gekoppelt ist.
  28. Schaltungsanordnung nach Anspruch 27, dadurch gekennzeichnet, dass die Fehlererkennungsschaltung als eine gemeinsame Fehlererkennungsschaltung (1217) für mindestens zwei Pipelinestufen gebildet ist.
DE102006027448A 2006-06-12 2006-06-12 Schaltungsanordnung Expired - Fee Related DE102006027448B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102006027448A DE102006027448B4 (de) 2006-06-12 2006-06-12 Schaltungsanordnung
US12/304,729 US8219864B2 (en) 2006-06-12 2007-05-18 Circuit arrangement
PCT/DE2007/000900 WO2007143964A2 (de) 2006-06-12 2007-05-18 Schaltungsanordnung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102006027448A DE102006027448B4 (de) 2006-06-12 2006-06-12 Schaltungsanordnung

Publications (2)

Publication Number Publication Date
DE102006027448A1 DE102006027448A1 (de) 2007-12-13
DE102006027448B4 true DE102006027448B4 (de) 2008-05-15

Family

ID=38663852

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006027448A Expired - Fee Related DE102006027448B4 (de) 2006-06-12 2006-06-12 Schaltungsanordnung

Country Status (3)

Country Link
US (1) US8219864B2 (de)
DE (1) DE102006027448B4 (de)
WO (1) WO2007143964A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009043438A1 (de) 2009-09-29 2011-04-07 Atlas Elektronik Gmbh Endlicher Zustandsautomat und Verfahren zur Erkennung und Korrektur transienter Fehler

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8334707B2 (en) * 2008-12-29 2012-12-18 Infineon Technologies Ag Storage circuit with fault detection and method for operating the same
DE102013225039B4 (de) * 2013-12-05 2016-05-04 Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik Schaltungsanordnung mit Detektion oder Behandlung von transienten Fehlern in einem kombinatorischen Schaltungsteil
CN103731130B (zh) * 2013-12-27 2017-01-04 华为技术有限公司 通用的容错纠错电路及其应用的译码器和三模冗余电路

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060067531A1 (en) * 2004-09-28 2006-03-30 Masato Yamazaki Data transmission method and apparatus using multiple scrambling codes

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699323A (en) * 1970-12-23 1972-10-17 Ibm Error detecting and correcting system and method
US4924423A (en) * 1988-04-25 1990-05-08 International Business Machines Corporation High speed parity prediction for binary adders using irregular grouping scheme
US4964126A (en) * 1988-09-30 1990-10-16 Massachusetts Institute Of Technology Fault tolerant signal processing machine and method
GR920100163A (el) * 1992-04-21 1993-12-30 Koloni Sofia & Sia E E Τεχνικές κατασκευές αυτοεπαλη?ευομένων μονάδων εκτέλεσης αρι?μητικών πράξεων & μονάδων επεξεργασίας δεδομένων βασιζόμενες σε κώδικες διπλής γραμμής & κώδικες άρτιας ή περιττής ισοτιμίας.
FR2830972B1 (fr) * 2001-10-12 2004-09-10 Iroc Technologies Architecture de circuits protegee contre des perturbations
US7523371B2 (en) * 2004-06-30 2009-04-21 Intel Corporation System and shadow bistable circuits coupled to output joining circuit
US7301362B2 (en) * 2005-03-14 2007-11-27 California Institute Of Technology Duplicated double checking production rule set for fault-tolerant electronics

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060067531A1 (en) * 2004-09-28 2006-03-30 Masato Yamazaki Data transmission method and apparatus using multiple scrambling codes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Mitra, Subbasish, u.a.: Logic Soft Errors a Major Barrier to Robust Platform Design. International Test Conference, IEEE. 2005 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009043438A1 (de) 2009-09-29 2011-04-07 Atlas Elektronik Gmbh Endlicher Zustandsautomat und Verfahren zur Erkennung und Korrektur transienter Fehler

Also Published As

Publication number Publication date
WO2007143964A2 (de) 2007-12-21
US8219864B2 (en) 2012-07-10
WO2007143964A3 (de) 2008-01-24
US20100070811A1 (en) 2010-03-18
DE102006027448A1 (de) 2007-12-13

Similar Documents

Publication Publication Date Title
DE60117066T2 (de) Verfahren und Vorrichtung zum Überprüfen von fehlerkorrigierenden Codes
Mitra et al. Word-voter: a new voter design for triple modular redundant systems
US6910173B2 (en) Word voter for redundant systems
DE102013204274A1 (de) Verfahren zum Erkennen einer Korrelation
DE2157829A1 (de) System mit vergrößerter Kapazität zum Erkennen und Korrigieren von Fehlern in parallelen Binärdaten, die von Datenspuren abgeleitet werden
DE102011087634A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE102019122145A1 (de) Gesicherte x-modulare redundanz
WO2007143964A2 (de) Schaltungsanordnung
DE102012111414B4 (de) Master-Slave-Speicherschaltung
DE102018112635B4 (de) Digitalregisterkomponente und Analog-Digital-Wandler, Detektierend eine Signalverzerrung in Hochstrahlungsumgebungen
DE102006005817B4 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE102005013883B3 (de) Schaltung zum Vergleichen von zwei n-stelligen binären Datenwörtern
DE102011087457A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einer mehrzahl von codierten binärwörtern, die durch einen fehlerkorrekturcode codiert sind
DE102004009144B4 (de) Logikzelle und Verfahren zum Durchführen einer Dual-Rail-Logikoperation und Speichermedium
DE3855174T2 (de) Selbstprüfung der Paritätsregenerierung
DE102011080659B4 (de) Vorrichtung und verfahren zum testen einer zu testenden schaltung
EP4024398B1 (de) Fehlertolerante sequenzielle speicherzelle und testverfahren für die speicherzelle
WO2011091795A2 (de) Elektronische schaltungsanordnung zum verarbeiten von binären eingabewerten
DE102013002088B4 (de) System und Verfahren für einen signaturbasierten Redundanzvergleich
DE10309255B4 (de) Verfahren und Schaltungen zur Erkennung unidirektionaler Fehler
DE102013225039B4 (de) Schaltungsanordnung mit Detektion oder Behandlung von transienten Fehlern in einem kombinatorischen Schaltungsteil
DE102010062588B4 (de) Abgesichertes Master-Slave-Flipflop
DE102009051500B4 (de) Arithmetik-Logik-Einheit
DE102022118280A1 (de) Fehlerverarbeitung und Korrektur benachbarter 2-Bitfehler
DE102022126958A1 (de) Fehlerkorrektur

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee