DE3750756T2 - Ausführung von Fehlererkennung unter Verwendung eines ungebrauchten Modulo-m-Kodes. - Google Patents

Ausführung von Fehlererkennung unter Verwendung eines ungebrauchten Modulo-m-Kodes.

Info

Publication number
DE3750756T2
DE3750756T2 DE3750756T DE3750756T DE3750756T2 DE 3750756 T2 DE3750756 T2 DE 3750756T2 DE 3750756 T DE3750756 T DE 3750756T DE 3750756 T DE3750756 T DE 3750756T DE 3750756 T2 DE3750756 T2 DE 3750756T2
Authority
DE
Germany
Prior art keywords
modulo
code
signal
binary
generating
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
DE3750756T
Other languages
English (en)
Other versions
DE3750756D1 (de
Inventor
Akira C O Nec Corpora Ishizuka
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.)
NEC Corp
Original Assignee
NEC Corp
Nippon Electric Co Ltd
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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Application granted granted Critical
Publication of DE3750756D1 publication Critical patent/DE3750756D1/de
Publication of DE3750756T2 publication Critical patent/DE3750756T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/104Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error using arithmetic codes, i.e. codes which are preserved during operation, e.g. modulo 9 or 11 check

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)

Description

    Ausgangssituation der Erfindung
  • Die Erfindung betrifft eine Fehlererkennungsschaltung und ein Fehlererkennungsverfahren für den Gebrauch in einem Informationsverarbeitungssystem zur Erkennung oder Prüfung eines Fehlers, der in Binärsignalen vorhanden sein kann.
  • Ein Informationsverarbeitungssystem des beschriebenen Typs weist eine Verarbeitungseinheit auf, die so betrieben werden kann, daß sie als Antwort auf binäre Eingabesignale eine vorgegebene digitale Berechnung oder Verarbeitung ausführt und ein Berechnungs- oder Verarbeitungsergebnis als binäres Ausgabesignal erzeugt. Dabei muß gewährleistet sein, daß keines der binären Eingabe- und Ausgabesignale fehlerhaft ist, um eine solche Berechnung oder Verarbeitung mit hoher Zuverlässigkeit auszuführen. Zu diesem Zweck ist in dem Informationsverarbeitungssystem eine Fehlererkennungsschaltung enthalten, die parallel zu Verarbeitungseinheit arbeiten kann.
  • Eine herkömmliche Fehlererkennungsschaltung des beschriebenen Typs prüft oder erkennt einen Fehler auf eine Weise, die von G. G. Landon in "Concurrent Error Detection for Group Look-ahead Binary Adders" (Simultane Fehlererkennung für Binäraddierer mit Gruppenvorgriff) (IBM Journal of Research and Development, September 1970, S. 563-573) und von F. F. Sellers, Jr. u. a. in "Error Detecting Logic für Digital Computers" (Fehlererkennungslogik für Digitalrechner) (McGraw Hill Co., Inc., New York, 1968, S. 41-45 und S. 76-80) beschrieben wird.
  • Im einzelnen verarbeitet die Fehlererkennungsschaltung zunächst die binären Eingabesignale zu Resten bezüglich einer Modulzahl 3 und führt danach eine Modulo-3-Berechnung aus, um einen Schätzwert in Modulo-3-Darstellung zu erzeugen, der nachstehend als Modulo-3-Schätzwert bezeichnet werden kann.
  • Die Berechnung selbst kann mit der vorgegebenen Berechnung der Verarbeitungseinheit identisch sein. Unter diesen Umständen muß der Modulo-3-Schätzwert mit dem binären Ausgabesignal in Modulo-3-Darstellung übereinstimmen, wenn im Eingabesignal und im Ausgabesignal kein Fehler auftritt. Andernfalls tritt im binären Ausgabesignal ein Fehler auf, wie in den oben zitierten Büchern erwähnt.
  • In der Fehlererkennungsschaltung kann die Fehlererkennung in Verbindung mit beiden binären Eingabesignalen auf die obenerwähnte Weise durchgeführt werden, da bereits das binäre Eingabesignal mit einem Fehler behaftet sein könnte.
  • Jedenfalls ist zu beachten, daß die Reste und der Modulo-3-Schätzwert in der Fehlererkennungsschaltung in Form eines Binärcodes mit einem ersten und einem zweiten Bit behandelt werden, die als höherwertiges bzw. niedrigerwärtiges Bit erkannt werden können. In diesem Falle können jeder Rest und der Modulo-3-Schätzwert einem nullten bis zweiten Binärcode (0, 0), (0, 1) und (1, 0) entsprechen, die jeweils als definierte Codes bezeichnet werden können. Dies zeigt, daß ein dritter Binärcode (1, 1) nicht berücksichtigt wird, der als undefinierter Code bezeichnet werden kann. Dies führt zu einer Abnahme der Fehlererkennungsrate und erschwert das Auffinden eines Fehlers, wie sogleich klar werden wird.
  • Angenommen, es trete zum Beispiel ein Fehler oder eine Störung auf, derart daß ein bestimmter von den definierten Codes ungewollt in der Fehlererkennungsschaltung in einen undefinierten Code umgewandelt wird. Ein solcher Fehler wird in der Fehlererkennungsschaltung nicht immer geprüft oder erkannt. Außerdem ist es schwierig, den Fehler zu analysieren oder aufzufinden, der den Wechsel von den definierten Codes zu dem undefinierten Code veranlaßt hat, da die Wahrscheinlichkeit für die Erkennung solcher Fehler völlig von einer logischen Struktur der Fehlererkennungsschaltung abhängig ist. Dies zeigt, daß solche Fehler von einer bestimmten logischen Struktur erkannt werden könnten, von einer anderen logischen Struktur aber nicht erkannt werden.
  • Man könnte mehrere Fehlererkennungsschaltungen von einer ersten bis zu einer letzten Stufe so schalten, daß sie nacheinander Modulo-3-Berechnungen ausführen. Bei den Fehlererkennungsschaltungen wird von einer vorhergehenden zu einer nachfolgenden Stufe kein Information übertragen, wenn irgendein Fehler in der vorhergehenden Stufe auftritt. Daher ist es schwierig, den Fluß eines fehlerhaften Datensignals in den Fehlererkennungsschaltungen zu verfolgen. Außerdem erzeugt jede Fehlererkennungsschaltung als Antwort auf den undefinierten Code ein nichtspezifiziertes Ausgabesignal. Ein solches nichtspezifiziertes Ausgabesignal ist bei der Konstruktion eines hochintegrierten Schaltkreises schwer zu handhaben. Theoretisch kann die Modulo-3-Fehlererkennungsschaltung durch eine Modulo-m-Fehlererkennungsschaltung ersetzt werden, wobei m dem Wert 2k-1 entspricht und k eine ganze Zahl größer als eins ist; allerdings existiert in Wirklichkeit bis jetzt keine solche Modulo-m-Fehlererkennungsschaltung.
  • Nach einer Ausführungsform der Erfindung wird ein Fehlererkennungsverfahren gemäß Anspruch 1 zur Erkennung eines Fehlers in einem Binärsignal von k Bits geschaffen, das so gestaltet ist, daß es einem nullten bis (m-1)-ten Code entspricht, wenn die k Bits bezüglich einer Modulzahl m dargestellt werden, wobei k eine positive ganze Zahl größer als eins und m gleich der k-ten Potenz von zwei minus eins (2k-1) ist. Das Verfahren weist die folgenden Schritte auf: Überwachen eines m-ten Codes bezüglich der Modulzahl m und Erkennen des Fehlers im Binärsignal beim Auftreten des m-ten Codes.
  • Nach einer anderen Ausführungsform der Erfindung wird eine Fehlererkennungsschaltung gemäß Anspruch 6 zum Gebrauch bei der Erkennung eines Fehlers in einem Binärsignal von k Bits geschaffen, das so gestaltet ist, daß es einem nullten bis (m-1)-ten Code entspricht, wenn die k Bits bezüglich einer Modulzahl m dargestellt werden, wobei k eine ganze Zahl größer als eins und m gleich der k-ten Potenz von zwei minus eins (2k-1) ist. Die Fehlererkennungsschaltung weist auf: eine Überwachungseinrichtung, die als Antwort auf das Binärsignal einen m-ten Code bezüglich der Modulzahl m überwacht, und eine mit der Überwachungseinrichtung gekoppelte Erkennungseinrichtung zum Erkennen des Fehlers im Binärsignal beim Auftreten des m-ten Codes.
  • Weitere Ausführungsformen und Merkmale der vorliegenden Erfindung werden in den beigefügten Ansprüchen definiert, auf die hiermit verwiesen wird.
  • Anspruch 11 bezieht sich auf eine Fehlererkennungsschaltung, die aber im Unterschied zur derjenigen von Anspruch 6 als Komparator gestaltet ist und eine Koinzidenzschaltung aufweisen kann, wie sie z. B. mit dem Bezugszeichen 43 gekennzeichnet und insbesondere anhand von Fig. 6 beschrieben wird.
  • Anspruch 17 bezieht sich auf eine logische Schaltung, die auf ein einzelnes Eingabesignal von k Bits ansprechen kann und die ein Register sein kann, wie es z. B. mit dem Bezugszeichen 44 gekennzeichnet und insbesondere anhand von Fig. 7 beschrieben wird.
  • Anspruch 20 bezieht sich auf eine Schaltung entweder gemäß Fig. 8 oder gemäß Fig. 9, die mehrere Eingabesignale erfordert (vgl. Fig. 8: IN1, IN2), während die Schaltung nach Anspruch 25 außerdem mit mehreren Modulo-m-Eingabesignalen arbeiten kann (vgl. Fig. 8: A, B).
  • Die Fehlererkennungsschaltung dient zur Erkennung eines Fehlers in einem Binärsignal von k Bits in einer logischen Schaltung, die eine vorgegebene Operation bezüglich einer Modulzahl m ausführt, wobei m gleich 2k-1 ist. Der vorgegebenen Operation sind ein nullter bis (m-1)-ter Code zugeordnet, während ein m-ter Code als spezifischer Code zur Überwachung und Erkennung eines Fehlers in der Fehlererkennungsschaltung eingerichtet ist. Die logische Schaltung kann eine Modulo-m-Registerschaltung, eine Modulo-m-Koinzidenzschaltung oder eine Modulo-m-Rechenschaltung sein. Als Alternative können auch mindestens zwei Modulo-m-Schaltungen zu der logischen Schaltung kombiniert werden. Für m = 3 kann der spezifische Code gleich (1, 1) sein. Bei Ausführungsbeispielen, die weiter unten näher erläutert werden, erzeugt eine Codeerzeugungsschaltung einen Modulo-3-Doppelbitrest Z(3) aus einem Ergebniswert Z, der aus zwei Operanden mit den Modulo-3-Resten A bzw. B erzeugt wird. Eine Rechenschaltung erzeugt durch Einwirkung auf A und B einen Doppelbitcode, der gleich (1, 1) ist, wenn eine der Größen A und B gleich (1, 1) ist. Eine Koinzidenzschaltung vergleicht den Ergebnisrest Z(3) mit dem Code und erzeugt den Code (1, 1), wenn die verglichenen Doppelbits nicht einander gleich sind oder wenn ein Fehler in der Schaltung auftritt.
  • Die Erfindung wird nachstehend anhand von Beispielen unter Bezugnahme auf die beigefügten Zeichnungen näher erläutert. Dabei zeigen:
  • Fig. 1 ein Blockschaltbild eines Logikteils mit einer herkömmlichen Fehlererkennungsschaltung;
  • Fig. 2 ein Blockschaltbild einer Fehlererkennungsschaltung, die eine erfindungsgemäße Fehlererkennung ausführen kann;
  • Fig. 3 ein Schaltschema zur Erläuterung eines Modulo-3- Addierglieds oder eines Modulo-3-Subtrahierglieds, das in der in Fig. 2 dargestellten Fehlererkennungsschaltung verwendet werden kann;
  • Fig. 4 ein Schaltschema zur Erläuterung eines Modulo-3- Multiplizierglieds, das in der in Fig. 2 dargestellten Fehlererkennungsschaltung verwendet werden kann;
  • Fig. 5 ein Schaltschema zur Erläuterung eines Modulo-3- Inverters, der auf die in Fig. 2 dargestellte Fehlererkennungsschaltung anwendbar ist;
  • Fig. 6 ein Schaltschema zur Erläuterung einer Modulo-3- Koinzidenzschaltung, die auf die in Fig. 2 dargestellte Fehlererkennungsschaltung anwendbar ist;
  • Fig. 7 ein Schaltschema zur Erläuterung von zwei Typen von Modulo-3-Registern, die auf die in Fig. 2 dargestellte Fehlererkennungsschaltung anwendbar sind;
  • Fig. 8 ein Blockschaltbild eines Logikteils mit einer Fehlererkennungsschaltung nach einem ersten Ausführungsbeispiel der Erfindung;
  • Fig. 9 ein Blockschaltbild eines Logikteils mit einer Fehlererkennungsschaltung nach einem zweiten Ausführungsbeispiel der Erfindung;
  • Fig. 10 ein Blockschaltbild eines Logikteils mit einer Fehlererkennungsschaltung nach einem dritten Ausführungsbeispiel der Erfindung;
  • Fig. 11 ein Blockschaltbild zur Beschreibung einer Fehlererkennungsschaltung nach einem vierten Ausführungsbeispiel der Erfindung;
  • Fig. 12 ein Blockschaltbild eines Logikteils mit einer Fehlererkennungsschaltung nach einem fünften Ausführungsbeispiel der Erfindung;
  • Fig. 13 ein Blockschaltbild eines Logikteils mit einer Fehlererkennungsschaltung nach einem sechsten Ausführungsbeispiel der Erfindung; und
  • Fig. 14 ein Blockschaltbild eines Logikteils, der eine erfindungsgemäße Fehlererkennung ausführt.
  • Beschreibung der bevorzugten Ausführungsbeispiele (Stand der Technik)
  • Anhand von Fig. 1 wird zum besseren Verständnis der vorliegenden Erfindung eine herkömmliche Fehlererkennungsschaltung 20 beschrieben, die in einem Logikteil 21 eines Informationsverarbeitungssystems enthalten ist und in Verbindung mit einem Rechenwerk 22 betrieben werden kann. Von einer Vorverarbeitungsschaltung (nicht dargestellt) werden dem Logikteil 21 ein erstes und ein zweites Binärsignal X und Y zugeführt und in einem ersten bzw. einem zweiten Operandenregister 26 bzw. 27 gespeichert. Das erste und das zweite Binärsignal x und Y haben eine vorgegebene Bitzahl und werden als erstes und zweites binäres Eingabesignal IN1 und IN2 dem Logikteil 21 und der Fehlererkennungsschaltung 20 parallel übergeben.
  • Das Rechenwerk 22 weist eine Arithmetik-Logik-Einheit 31 auf, die als Antwort auf das erste und das zweite Eingabesignal IN1 und IN2 eine vorgegebene binäre Rechenoperation ausführt und ein binäres Rechenergebnis Z erzeugt. Die vorgegebene Rechenoperation kann eine Addition, eine Subtraktion, eine Multiplikation oder eine Division sein. Das Rechenergebnis Z wird in einem Ergebnisregister 32 gespeichert und als binäres Ergebnissignal RS an eine äußere Schaltung (nicht dargestellt) übermittelt.
  • Das erste und das zweite Eingabesignal IN1 und IN2 werden an eine Modulo-3-Schätzwertberechnungsschaltung 35 der Fehlererkennungsschaltung 20 übergeben. Die Modulo-3-Schätzwertberechnungsschaltung 35 führt bezüglich einer Modulzahl 3 die gleiche Rechenoperation wie die Arithmetik-Logik-Einheit 31 aus. Zu diesem Zweck erfolgt zunächst eine Modulo-3-Verarbeitung des ersten und des zweiten binären Eingabesignals IN1 und IN2 durch die Modulo-3-Schätzwertberechnungsschaltung 35 zu einem ersten bzw. zweiten Modulo-3-Verarbeitungswert. Jeder Modulo-3-Verarbeitungswert stellt einen Rest dar, der sich ergibt, wenn das erste und das zweite Eingabesignal IN1 und IN2 bezüglich der Modulzahl 3 ausgedrückt werden, wie in den oben zitierten Büchern beschrieben. Die Modulo-3-Rechenoperation wird unter Verwendung des ersten und des zweiten verarbeiteten Wertes ausgeführt, um einen Modulo-3-Schätzwert zu erzeugen, der als Modulo-3-Schätzwert bezeichnet werden kann und mit dem Rechenergebnis übereinstimmen muß, solange kein Fehler auftritt.
  • Der Modulo-3-Schätzwert wird in einem Modulo-3-Schätzwertregister 36 gespeichert und als Modulo-3-Schätzwertsignal ES einer Modulo-3-Koinzidenzprüfschaltung 37 zugeführt. Die Modulo-3-Koinzidenzprüfschaltung 37 wird vom Ergebnisregister 32 mit dem binären Ergebnissignal RS gespeist, das in ein Modulo-3-Ergebnissignal umgewandelt wird. Die Modulo-3-Koinzidenzprüfschaltung 37 vergleicht das Modulo-3-Ergebnissignal mit dem Modulo-3-Schätzwertsignal ES, um festzustellen, ob das Modulo-3-Ergebnissignal mit dem Modulo-3-Schätzwertsignal ES übereinstimmt oder nicht, und um bei Feststellung einer Nichtübereinstimmung zwischen dem Modulo-3-Ergebnissignal und dem Modulo-3-Schätzwertsignal ES ein Fehlersignal ER zu erzeugen. Das Fehlersignal ER wird in einer Fehleranzeigeeinrichtung 38 gespeichert und danach als Fehler-Flag EF zu der äußeren Schaltung übermittelt. Das Fehlersignal ER wird bis zum Empfang eines Freigabe- oder Rücksetzsignals von der äußeren Schaltung in der Fehleranzeige 38 gehalten. Auf diese Weise wird die Fehlerprüfungs- und -erkennungsoperation im Logikteil 21 ausgeführt.
  • In der Praxis wird eine solche Fehlerprüfungs- und -erkennungsoperation nicht nur an dem Ergebnis der Berechnung, sondern auch an einem Zwischenergebnis der Berechnung, das in Fig. 1 durch eine gestrichelte Linie 39 symbolisiert wird, sowie an dem ersten und dem zweiten binären Eingabesignal IN1 und IN2 ausgeführt.
  • Die erläuterte Fehlererkennungsschaltung 20 weist Nachteile auf, wie im Einleitungsteil zur vorliegenden Patentbeschreibung aufgezeigt wird.
  • (Mathematische Analyse der Modulo-m-Fehlererkennung)
  • Nachstehend wird eine Beschreibung einer mathematischen Theorie der Fehlererkennung gegeben, wie sie zum Teil in den obenerwähnten Büchern beschrieben wird. Alle Zahlen können bezüglich einer Modulzahl m als Codes ausgedrückt werden, die durch den folgenden Ausdruck gegeben sind:
  • [N, rm(N)].
  • Dabei bedeuten N eine beliebig wählbare ganze Zahl und rm(N) einen Rest, der sich aus einer Division von N durch die Modulzahl m ergibt. Unter diesen Umständen sind die Modulo-m-Addition und die Modulo-m-Multiplikation zweier Zahlen N&sub1; und N&sub2; durch die folgenden Beziehungen gegeben:
  • [N&sub1;, rm(N&sub1;)] + [N&sub2;, rm(N&sub2;)] = [N&sub1; + N&sub2;, rm(N&sub1;) rm(N&sub2;)]
  • bzw. [N&sub1;, rm(N&sub1;)]·[N&sub2;, rm(N&sub2;)] = [N&sub1;·N&sub2;, rm(N&sub1;) rm(N&sub2;)]
  • wobei bzw. die Modulo-m-Addition bzw. die Modulo-m-Multiplikation bedeuten.
  • Wenn die folgenden Gleichungen gelten:
  • rm(N&sub1; + N&sub2;) = rm(N&sub1;) rm(N&sub2;)
  • und rm(N&sub1;·N&sub2;) = rm(N&sub1;) rm(N&sub2;),
  • dann bilden die obenerwähnte Summe bzw. das obenerwähnte Produkt jeweils ein weiteres Codewort, das von den durch N&sub1; bzw. N&sub2; spezifizierten Codes verschieden ist.
  • Eine Fehlererkennung ist möglich, indem geprüft wird, ob die Summe rm(N&sub1; + N&sub2;) bzw. das Produkt rm(N&sub1;·N&sub2;) von den gewünschten Codes verschieden sind oder nicht.
  • Wenn die Modulzahl m gleich der k-ten Potenz von zwei minus eins (2k-1) ist, nämlich gleich 3, 7, 15 . . . , dann kann jede Zahl oder jedes Element (mod m) durch eine minimale Anzahl von k Bits ausgedrückt werden, wobei k eine ganze Zahl größer als eins ist. Dies zeigt, daß die Modulzahl 2k-1 beim Vergleich zu den anderen Modulzahlen effektiv ist. Daher wird die Modulzahl m = 2k-1 sehr häufig verwendet.
  • Um die Beschreibung zu vereinfachen, sei die Modulzahl m gleich 2²-1, d. h. gleich 3. In diesem Falle nimmt jedes Element (mod 3) einen der Werte 0, 1 und 2 an, die in Form von Zwei-Bit-Gruppen oder Codes (0, 0), (0, 1) bzw. (1, 0) ausgedrückt werden. So werden drei von vier Codes drei Modulo-3- Elementen zugeordnet.
  • Wir betrachten nun zwei Binärzahlen Na und Nb. Die Binärzahlen Na und Nb können wie folgt in Modulo-3-Form ausgedrückt werden:
  • Na = k&sub1;·3 + r&sub3;(Na)
  • und Nb = k&sub2;·3 + r&sub3;(Nb) (1)
  • Eine Summe und ein Produkt der Binärzahlen sind gegeben durch:
  • Na + Nb = (k&sub1; + k&sub2;)·3 + r&sub3;(Na) + r&sub3;(Nb)
  • und Na·Nb = (k&sub1;·k&sub2;)·9 + [k&sub1;·r&sub3;(Nb) + k&sub2;·r&sub3;(Na)]
  • ·3 + r&sub3;(Na)·r&sub3;(Nb).
  • Daher gelten die folgenden Gleichungen:
  • r&sub3;(Na + Nb) = r&sub3;[r&sub3;(Na) + r&sub3;(Nb)] (2)
  • und r&sub3;(Na·Nb) = r&sub3;[r&sub3;(Na)·r&sub3;(Nb)] (3)
  • Hierbei sei ein Addierglied (mod 3) so gestaltet, daß die folgenden Gleichungen gelten:
  • (0, 0) (0, 0) = (0, 0), (0 + 0 = 0)
  • (0, 0) (0, 1) = (0, 1), (0 + 1 = 1)
  • (0, 0) (1, 0) = (1, 0), (0 + 2 = 2) (4)
  • (0, 1) (0, 1) = (1, 0), (1 + 1 = 2)
  • (0, 1) (1, 0) = (0, 0), (1 + 2 = 0)
  • (1, 0) (1, 0) = (0, 1), (2 + 2 = 1)
  • Unter diesen Umständen läßt sich Gleichung (2) unter Berücksichtigung von Gleichung (4) wie folgt umschreiben:
  • r&sub3;(Na + Nb) = r&sub3;(Na) r&sub3;(Nb) (5)
  • Ebenso sei ein Multiplizierglied (mod 3) so gestaltet, daß die folgenden Gleichungen erfüllt sind:
  • (0, 0) (0, 0) = (0, 0), (0·0 = 0)
  • (0, 0) (0, 1) = (0, 0), (0·1 = 0)
  • (0, 0) (1, 0) = (0, 0), (0·2 = 0) (6)
  • (0, 1) (0, 1) = (0, 1), (1·1 = 1)
  • (0, 1) (1, 0) = (1, 0), (1·2 = 2)
  • (1, 0) (1, 0) = (0, 1), (2·2 = 1)
  • Gleichung (3) wird unter Berücksichtigung von Gleichung (6) wie folgt umgeschrieben:
  • r&sub3;(Na·Nb) = r&sub3;(Na) r&sub3;(Nb) (7)
  • Folglich können eine Addierschaltung (mod 3) und eine Multiplizierschaltung (mod 3) unter Anwendung der Gleichungen (5) und (7) überprüft und Fehler festgestellt werden. Genauer gesagt, die Binärzahlen Na und Nb werden bei der Prüfung der Addierschaltung (mod 3) in der Modulo-3-Form ausgedrückt, um Reste r&sub3;(Na) bzw. r&sub3;(Nb) zu erhalten. Anschließend werden die Reste r&sub3;(Na) und r&sub3;(Nb) als Zwei-Bit-Gruppen oder -Codes (a1, a2) bzw. (b1, b2) ausgedrückt. Danach werden die Reste r&sub3;(Na) und r&sub3;(Nb) einer Modulo-3-Addition unterworfen, um einen Modulo-3-Schätzsummenwert (c1, c2) zu erzeugen.
  • Andererseits werden die Binärzahlen Na und Nb auf die übliche Weise addiert, um eine Summe Nc zu berechnen. Die Summe Nc wird in der Modulo-3-Form ausgedrückt, um einen Rest r&sub3;(Nc) zu erhalten, der durch Zwei-Bit-Codes (d1, d2) dargestellt wird. Jeder Zwei-Bit-Code (d1, d2) muß mit dem Modulo- 3-Schätzsummenwert (c1, c2) übereinstimmen, wenn kein Fehler auftritt. Andernfalls stimmt der Zwei-Bit-Code (d1, d2) nicht mit dem Modulo-3-Schätzsummenwert (c1, c2) überein. Folglich ist eine Fehlerprüfung und -erkennung durch Vergleich des Codes (d1, d2) mit dem Modulo-3-Schätzsummenwert (c1, c2) möglich.
  • Das Multiplizierglied (mod 3) für die Binärzahlen Na und Nb kann auf ähnliche Weise überprüft werden; seine Beschreibung wird allerdings in der vorliegenden Patentbeschreibung weggelassen.
  • Hier ist zu beachten, daß, wie oben erwähnt, nur drei der vier Zwei-Bit-Codes benutzt werden oder definiert sind, während der eine verbleibende Code (1, 1) unbenutzt bleibt. Dies zeigt, daß der Code (1, 1) wie gewöhnlich undefiniert ist. In diesem Zusammenhang können die drei Codes (0, 0), (0, 1) und (1, 0) als definierte Codes bezeichnet werden, während der Code (1, 1) als undefinierter Code bezeichnet werden kann.
  • Es könnte häufig ein Fehler auftreten, derart daß die definierten Codes ungewollt in den undefinierten Code umgewandelt werden. Bei den herkömmlichen Verfahren ist das Auftreten eines solchen Fehlers nicht berücksichtigt worden. Infolgedessen ergibt ein Modulo-3-Code, der nach einer Fehlerlokalisierung erscheint, keinen logischen Sinn, da nach dem Auftreten des undefinierten Codes (1, 1) kein Modulo-3-Code eindeutig festgelegt ist. Genauer gesagt, jedes der Addierglieder (mod 3) und Multiplizierglieder (mod 3) können auf verschiedene Weise konstruiert werden. In solchen verschiedenartig ausgebildeten Addiergliedern (mod 3) und Multipliziergliedern (mod 3) werden von jedem der Addierglieder (mod 3) und Multiplizierglieder (mod 3) beim Auftreten des undefinierten Codes (1, 1) unterschiedliche Modulo-3-Ausgabesignale erzeugt. Mit anderen Worten, die Ausgabesignale verändern sich, wenn die Addierglieder (mod 3) und Multiplizierglieder (mod 3) verschiedene logische Strukturen aufweisen.
  • Es ist festgestellt worden, daß die Modulo-m-Fehlererkennung durch Berücksichtigung des undefinierten Codes (1, 1) verbessert werden kann. Wie sich zeigen wird, ist zwar die obige Beschreibung auf eine Rechenschaltung beschränkt, wie z. B. auf ein Modulo-3-Addierglied, d. h. ein Addierglied (mod 3), und auf ein Modulo-3-Multiplizierglied, d. h. ein Muliplizierglied (mod 3), aber eine ähnliche Modulo-3-Fehlererkennung ist in einer Modulo-3-Koinzidenzschaltung möglich, wie z. B. 37 in Fig. 1, sowie in einem Modulo-3-Register, wie z. B. 36 in Fig. 1.
  • Anhand von Fig. 2 wird nachstehend eine erfindungsgemäße Modulo-m-Fehlererkennung beschrieben, wobei sich die Beschreibung allerdings hauptsächlich auf die Modulo-3-Fehlererkennung beschränken wird. Es kann daher angenommen werden, daß die Modulzahl m gleich drei ist. In Fig. 2 ist eine bei 20 abgebildete Fehlererkennungsschaltung mit einer Vorverarbeitungsschaltung (nicht dargestellt) verbunden, die als Antwort auf ein erstes und ein zweites Binärsignal X und Y (nicht dargestellt) eine Vorberechnung ausführt und ein binäres Ergebnissignal Z erzeugt, das ein Ergebnis der Berechnung darstellt und im folgenden häufig als binäres Ergebnissignal bezeichnet wird. Die Vorberechnung kann eine Addition, eine Subtraktion, eine Multiplikation oder eine Division des ersten und des zweiten Binärsignals X und Y sein. Als Beispiel wird die Addition des ersten und des zweiten Binärsignals X und Y beschrieben. Bei der Addition wird angenommen, daß die Vorverarbeitungsschaltung das erste bzw. das zweite Binärsignal X bzw. Y in einen ersten bzw. zweiten Modulo-3-Schätzwert A bzw. B umwandelt.
  • Die dargestellte Fehlererkennungsschaltung 20 weist eine Modulo-3-Codeerzeugungsschaltung 41, eine Modulo-3-Rechenschaltung 42, eine Modulo-3-Koinzidenzschaltung 43 und ein Modulo-3-Register 44 auf. Zu beachten ist, daß die erfindungsgemäße Modulo-3-Fehlererkennung auf die Modulo-3-Rechenschaltung 42, die Modulo-3-Koinzidenzschaltung 43 und auf das Modulo-3-Register 44 anwendbar ist, die als Fehlererkennungselemente bezeichnet werden können.
  • Zunächst wird das binäre Ergebnissignal Z der Modulo-3- Codeerzeugungsschaltung 41 zugeführt. Die Modulo-3-Codeerzeugungsschaltung 41 wandelt das binäre Ergebnissignal Z in einen Modulo-3-Code Z(3) um, indem sie das binäre Ergebnissignal Z durch eine Modulzahl 3 dividiert. Daher entspricht der Modulo- 3-Code Z(3) einem Modulo-3-Rest und kann als ein Zwei-Bit-Code (z1, z2) ausgedrückt werden. In diesem Zusammenhang ist der Modulo-3-Code Z(3) allgemein durch (z1, z2) darstellbar. Die dargestellte Modulo-3-Codeerzeugungsschaltung 41 erzeugt den Modulo-3-Code (0, 0) beim Auftreten des Restes (1, 1). Auf jeden Fall erzeugt die Modulo-3-Codeerzeugungsschaltung 41 die Modulo-3-Codes (0, 0), (0, 1) und (1, 0). Als nächstes werde angenommen, daß die erfindungsgemäße Modulo-3-Fehlererkennung auf die Modulo-3-Rechenschaltung 42 angewendet wird, die als Modulo-3-Addierglied, Modulo-3-Multiplizierglied oder Modulo- 3-Subtrahierglied vorausgesetzt wird, die gemeinsam als Rechenelement bezeichnet werden können. Im Rechenelement werden der erste und der zweite Modulo-3-Eingabecode durch (a0, a1) bzw. (b0, b1) dargestellt, während ein Modulo-3-Ausgabecode durch (c0, c1) dargestellt wird, wobei die Suffixe 0 bzw. 1 das höher- bzw. niedrigerwertige Bit bezeichnen.
  • Im folgenden wird unter Bezugnahme auf Fig. 3 zusätzlich zu Fig. 2 das bei der erfindungsgemäßen Modulo-3-Fehlererkennung benutzte Modulo-3-Addierglied als Beispiel für das Rechenelement beschrieben. Dem Modulo-3-Addierglied werden der erste und der zweite Modulo-3-Eingabecode (a0, a1) und (b0, b1) übergeben, um den Modulo-3-Ausgabecode (c0, c1) gemäß einer in Tabelle 1 dargestellten Verknüpfungstafel zu erzeugen. In Fig. 3 sind die Komplemente der entsprechenden Bits berücksichtigt. In dem dargestellten Beispiel wird das Modulo- 3-Addierglied mit dem zweiten Modulo-3-Eingabecode gespeist, der durch den zweiten Eingabecode (b0, , b1, ) dargestellt wird, der in Fig. 3 nicht in Klammern steht. Tabelle 1 Eingabe Ausgabe
  • Das abgebildete Modulo-3-Addierglied weist eine logische Vorstufe 200 aus acht NICHT-UND-Gattern und eine logische Folgestufe 201 aus zwei NICHT-UND-Gattern auf. Die logische Vorstufe 200 dient zur Überwachung des Modulo-3-Codes (1, 1) zusätzlich zu den anderen Modulo-3-Codes (0, 0), (0, 1) und (1, 0), während die logische Folgestufe 201 zur Erkennung oder Erzeugung des Modulo-3-Codes (1, 1) zusätzlich zu den anderen Modulo-3-Codes dient. Der Modulo-3-Code (1, 1) kann als spezifischer Code bezeichnet werden. Die logische Vorstufe 200 und die logische Folgestufe 201 können als Überwachungs- bzw. als Erkennungsschaltung bezeichnet werden.
  • Für den Fachmann ist es leicht möglich, die in Fig. 3 abgebildete Schaltung zu realisieren. Daher wird der Aufbau der Schaltung hier nicht beschrieben.
  • Wie in Tabelle 1 und Fig. 3 gezeigt wird, führt das Modulo-3-Addierglied auf gewöhnliche Weise eine Modulo-3-Addition aus. Außerdem erzeugt das abgebildete Modulo-3-Addierglied den Modulo-3-Ausgabecode (c0, c1) mit dem Codewert (1, 1) als spezifischen Code, wenn entweder der erste oder der zweite Modulo-3-Eingabecode (a0, a1) bzw. (b0, b1) den Codewert (1, 1) annimmt, der in einem normalen Zustand niemals auftritt. Mit anderen Worten, der Modulo-3-Ausgabecode (c0, c1) mit dem Codewert (1, 1) zeigt das Auftreten eines Fehlers im ersten bzw. im zweiten Modulo-3-Eingabecode (a0, a1) bzw. (b0, b1) an. Außerdem nimmt der Modulo-3-Ausgabecode (c0, c1) auch beim Auftreten eines Fehlers in dem Modulo-3-Addierglied den Wert (1, 1) an. Dies zeigt, daß ein Fehler im ersten und im zweiten Modulo-3-Eingabecode durch Überwachung des Modulo- 3-Ausgabecodes überprüft bzw. erkannt werden kann. Jedenfalls wird der Modulo-3-Code mit dem Wert (1, 1) in dem abgebildeten Modulo-3-Addierglied als definierter Code verwendet, der einen Fehler spezifiziert. Selbstverständlich können unter Bezugnahme auf Tabelle 1 beliebige andere logische Schaltungen entwickelt werden.
  • Wie ferner aus Fig. 3 erkennbar, ist das erfindungsgemäße Modulo-3-Subtrahierglied ähnlich wie das Modulo-3-Addierglied ausgeführt, außer daß das Modulo-3-Subtrahierglied mit dem in Klammern stehenden zweiten Modulo-3-Eingabecode in Form von b0, , b1 und gespeist wird. Man erkennt, daß das abgebildete Modulo-3-Subtrahierglied entsprechend einer in Tabelle 2 dargestellten Verknüpfungstafel konstruiert oder gestaltet werden kann. Tabelle 2 Eingabe Ausgabe
  • Das in Fig. 3 und Tabelle 2 dargestellte Modulo-3-Subtrahierglied ist ähnlich wie ein gewöhnliches Modulo-3-Subtrahierglied ausgeführt, außer daß wie beim Modulo-3-Addierglied der Modulo-3-Code (c0, c1) mit dem Wert (1, 1) zur Anzeige eines Fehlers verwendet wird. Jedenfalls erscheint der Modulo-3- Code (1, 1) beim Auftreten eines Fehlers in mindestens einem der ersten bzw. zweiten Modulo-3-Eingabecodes (a0, a1) und (b0, b1) oder beim Auftreten eines Fehlers in dem Modulo-3- Subtrahierglied.
  • Wie aus Fig. 4 erkennbar, ist das Modulo-3-Multiplizierglied unter Bezugnahme auf eine in Tabelle 3 dargestellte Verknüpfungstafel konstruiert. Tabelle 3 Eingabe Ausgabe
  • Wie in Fig. 4 dargestellt, weist das Modulo-3-Multiplizierglied eine logische Vorstufe 200 aus sechs Gattern und eine logische Folgestufe 201 aus zwei Gattern auf. Die logische Vorstufe 200 und die logische Folgestufe 201 dienen zur Überwachung und zur Erzeugung des spezifischen Codes (1, 1) zusätzlich zu den anderen Modulo-3-Codes.
  • Irgendeine andere Struktur und Arbeitsweise gemäß Fig. 4 wird nicht beschrieben, da sie leicht aus Tabelle 3 erkennbar sind. Jedenfalls erzeugt das abgebildete Modulo-3-Multiplizierglied den Modulo-3-Code (c0, c1) mit dem Wert (1, 1), wenn einer der ersten bzw. zweiten Modulo-3-Eingabecodes den Modulo-3-Codewert (1, 1) annimmt oder wenn in dem Modulo-3- Multiplizierglied ein Fehler auftritt.
  • Für den Fachmann ist es möglich, anhand von Tabelle 3 ein anderes Modulo-3-Multiplizierglied zu konstruieren.
  • Unter Bezugnahme auf Fig. 5 kann der Modulo-3-Inverter ohne weiteres anhand von Tabelle 4 entwickelt werden. Die Arbeitsweise und die Struktur sind aus Fig. 5 und Tabelle 4 ersichtlich und werden daher nicht weiter beschrieben. Tabelle 4 Eingabe Ausgabe
  • Auch in dieser Struktur nimmt der Modulo-3-Ausgabecode (c0, c1) als Antwort auf den Modulo-3-Eingabecode (b0, b1) von (1, 1) den spezifischen Codewert (1, 1) an.
  • Unter Bezugnahme auf Fig. 6 und wiederum auf Fig. 2 kann die Modulo-3-Koinzidenzschaltung 43 durch eine logische Schaltung implementiert werden, die in Fig. 6 abgebildet und entsprechend einer in Tabelle 5 dargestellten Verknüpfungstafel aufgebaut ist. Tabelle 5 Eingabe Ausgabe
  • andere Fälle
  • Die abgebildete logische Schaltung ist unter Berücksichtigung der Bits (a0, a1, b0, b1) und der Komplemente der entsprechenden Bits aufgebaut und weist eine logische Vorstufe 202 aus drei Gattern und eine logische Folgestufe 203 aus zwei Gattern auf, die zur Überwachung bzw. zur Erzeugung des spezifischen Codes (1, 1) dienen.
  • Aus Fig. 6 und Tabelle 5 ist erkennbar, daß die Modu1o- 3-Koinzidenzschaltung 43 eine Übereinstimmung zwischen dem ersten und dem zweiten Modulo-3-Eingabecode (a0, a1) und (b0, b1) erkennt und einen Modulo-3-Ausgabecode (c0, c1) erzeugt, der ein Ergebnis der Erkennung darstellt. Präzise gesagt, wenn das höher- bzw. niedrigerwertige Bit des ersten Modulo-3-Codes mit dem höher- bzw. niedrigerwertigen Bit des zweiten Modulo- 3-Codes übereinstimmt, wird der erste Modulo-3-Eingabecode als Modulo-3-Ausgabecode erzeugt, wie in Tabelle 5 dargestellt. Sonst wird der Modulo-3-Code (1, 1), d. h. der spezifische Code, als Modulo-3-Ausgabecode von der Modulo-3-Koinzidenzschaltung 43 erzeugt. Somit dient ein solcher spezifischer Code (1, 1) als Fehlersignal, welches das Auftreten eines Fehlers in der Modulo-3-Koinzidenzschaltung oder die Nichtübereinstimmung zwischen dem ersten und dem zweiten Modulo-3-Eingabecode (a0, a1) und (b0, b1) anzeigt. Mit anderen Worten, der spezifische Code (c0, c1) mit dem Codewert (1, 1) wird bei Nichtübereinstimmung zwischen dem ersten und dem zweiten Modulo-3-Eingabecode, beim Auftreten des Modulo-3-Codewertes (1, 1) in mindestens einem der Modulo-3-Eingabecodes und beim Auftreten eines Fehlers in der Modulo-3-Koinzidenzschaltung erzeugt.
  • Wie aus Fig. 7 in Verbindung mit Fig. 2 erkennbar, wird das Modulo-3-Coderegister 44 mit einem Eingabesignal D in Form eines Modulo-3-Codes (d0, d1) gespeist, um vor dem Empfang eines Strobe-Signals STB ein Ausgabesignal E in Form eines Modulo-3-Codes (e0, e1) zu erzeugen, wie es auf der linken Seite von Tabelle 6 dargestellt ist. Tabelle 6
  • Zustand vor dem Strobe-Signal
  • Ausgabe nach dem Strobe-Signal (STB)
  • Eingabe Ausgabe Ausgabe
  • In Fig. 7 weist das Modulo-3-Register eine aus neun Gattern bestehende logische Vorstufe 204 und eine aus sieben Gattern bestehende logische Folgestufe 205 auf. Man kann sagen, daß die neuen Gatter der logischen Vorstufe 204 dazu dienen, den spezifischen Code (1, 1) in zeitlicher Abstimmung mit dem Strobe-Signal zu überwachen, während die sieben Gatter der logischen Folgestufe 205 zur Erzeugung des spezifischen Codes (1, 1) dienen.
  • Unter diesen Umständen wird der Modulo-3-Code (e0, e1) des Ausgabesignals E zu einem Modulo-3-Code (e0, e1) verändert, der auf der rechten Seite von Tabelle 6 angegeben ist. Wie in Tabelle 6 gezeigt, erzeugt das Modulo-3-Register 44 nach Empfang des Strobe-Signals STB den Modulo-3-Code (e0, e1) von (1, 1), wenn entweder das Eingabesignal oder das Ausgabesignal vor Empfang des Strobe-Signals STB den Modulo-3-Code (1, 1) annimmt. Die übrigen Beziehungen zwischen dem Eingabe- und dem Ausgabesignal D und E sind ähnlich denjenigen eines herkömmlichen Registers. In diesem Zusammenhang weist die in Fig. 7 dargestellte logische Folgestufe neben dem herkömmlichen Register ein zusätzliches Gatter 51 auf. Das Modulo-3-Register kann zu einem Register modifiziert werden, das als Abfrageleitung dient.
  • Wie ferner aus Fig. 7 erkennbar ist, kann ein Einzelbitsignal f des zusätzlichen Gatters 51 entsprechend Tabelle 7 erzeugt werden. Tabelle 7
  • Zustand vor dem Strobe-Signal (STB)
  • Ausgabe nach dem Strobe-Signal
  • Eingabe Ausgabe
  • Das Einzelbitsignal f nimmt als Antwort auf den Modulo- 3-Code (1, 1) des Ausgabesignals E den Logikpegel 1 an, wie aus Fig. 7 und Tabelle 7 erkennbar. So ist es möglich, in dem abgebildeten Modulo-3-Register das Auftreten eines Fehlers durch das Einzelbitsignal f anzuzeigen.
  • Das in Fig. 2 abgebildete Modulo-3-Register 44 kann entweder durch Tabelle 6 oder durch Tabelle 7 spezifiziert werden.
  • Wie aus Fig. 8 erkennbar, ist eine Fehlererkennungsschaltung 20a nach einem ersten Ausführungsbeispiel der Erfindung zusammen mit einem Rechenwerk 22, das wie in Fig. 1 eine Arithmetik-Logik-Einheit 31 und ein Ergebnisregister 32 aufweist, in einem Logikteil 21a enthalten. Der abgebildete Logikteil 21a wird von einer Vorverarbeitungsschaltung (nicht dargestellt) mit einem ersten und einem zweiten Binärsignal x und Y gespeist. Das erste und das zweite Binärsignal X und Y werden wie in Fig. 1 in einem ersten bzw. einem zweiten Operandenregister 26 bzw. 27 gespeichert.
  • Nun erzeugt der abgebildete Logikteil 21a ein binäres Ergebnissignal Z, das ein Ergebnis einer binären Rechenoperation zwischen dem ersten und dem zweiten Binärsignal X und Y darstellt, sowie einen Modulo-3-Wert C des Ergebnisses Z. Das binäre Ergebnissignal Z wird durch die Arithmetik-Logik-Einheit 31 und das Ergebnisregister 32 auf ähnliche Weise erzeugt, wie in Verbindung mit Fig. 1 erläutert. Zur Erzeugung des Modulo-3-Wertes C weist die Fehlererkennungsschaltung 20a eine Kombination der in Verbindung mit Fig. 2 erwähnten Fehlererkennungselemente auf.
  • Genauer gesagt, die Fehlererkennungsschaltung 20a weist eine erste und eine zweite Modulo-3-Eingabecode-Erzeugungsschaltung 61 und 62 auf, die über das erste bzw. das zweite Operandenregister 26 bzw. 27 mit dem ersten bzw. dem zweiten Binärsignal X bzw. Y als dem ersten bzw. zweiten binären Eingabesignal IN1 bzw. IN2 gespeist werden. Die erste bzw. zweite Modulo-3-Eingabecode-Erzeugungsschaltung 61 bzw. 62 sind ähnlich gestaltet wie die in Verbindung mit Fig. 2 erläuterte Schaltung und berechnen Reste des ersten bzw. zweiten Binärsignals X bzw. Y bezüglich der Modulzahl 3, um Modulo-3-Codes von zwei Bits als ersten bzw. zweiten Modulo-3-Restcode R1 bzw. R2 zu erzeugen. Hierbei ist zu beachten, daß der Modulo- 3-Code (0, 0) von jeder Erzeugungsschaltung 61 und 62 erzeugt wird, wenn die Reste gleich drei sind und in den Schaltungen 61 und 62 kein Fehler festgestellt wird.
  • Der erste und der zweite Modulo-3-Restcode werden an die erste und die zweite Modulo-3-Koinzidenzschaltung 63 und 64 übermittelt, die ähnlich ausgeführt sind wie die in Verbindung mit Fig. 2 und 6 sowie Tabelle 5 erläuterte Schaltung. Die erste Modulo-3-Koinzidenzschaltung 63 wird mit dem ersten Modulo-3-Restcode R1 und dem ersten Modulo-3-Schätzwert A gespeist, während die zweite Modulo-3-Koinzidenzschaltung 64 mit dem zweiten Modulo-3-Restcode R2 und dem zweiten Modulo-3- Schätzwert B gespeist wird. Die erste und die zweite Modulo-3- Koinzidenzschaltung 63 und 64 prüfen jeweils auf die obenerwähnte Weise, ob der jeweilige Restcode mit dem entsprechenden Schätzwert übereinstimmt oder nicht. Als Ergebnis erzeugen die erste bzw. zweite Modulo-3-Koinzidenzschaltung 63 bzw. 64 gemäß Tabelle 5 das erste bzw. zweite Erkennungsergebnis D1 bzw. D2. Das erste und das zweite Erkennungsergebnis D1 und D2 nehmen bei Übereinstimmung die Modulo-3-Codes bzw. bei Nichtübereinstimmung und bei Empfang von (1, 1) einen spezifischen Code mit dem Wert (1, 1) an, wie in Tabelle 5 dargestellt.
  • Das erste und das zweite Erkennungsergebnis D1 und D2 werden als Antwort auf ein Strobe-Signal STB in einem ersten bzw. einem zweiten Modulo-3-Register 66 bzw. 67 gespeichert (Fig. 7 und Tabelle 6) und an ein Modulo-3-Rechenelement 68 übergeben, das eine vorgegebene Modulo-3-Rechenoperation ausführen kann, wie z. B. eine Addition, Subtraktion, Multiplikation und Division. Die vorgegebene Modulo-3-Rechenoperation kann identisch mit der in der Arithmetik-Logik-Einheit 31 ausgeführten binären Rechenoperation sein. Jedenfalls berechnet die Modulo-3-Rechenschaltung 68 einen Modulo-3-Schätzwert RC für das binäre Ergebnissignal Z. Der Modulo-3-Schätzwert wird nach den Tabellen 1 bis 3 von dem Modulo-3-Rechenelement 68 erzeugt und an eine Ausgabe-Modulo-3-Koinzidenzschaltung 71 übermittelt, die gemäß Tabelle 5 betrieben werden kann.
  • Andererseits wird das binäre Ergebnissignal Z an eine Modulo-3-Ergebniserzeugungsschaltung 73 übermittelt, die ähnlich arbeitet wie die erste und die zweite Eingabecode-Erzeugungsschaltung 61 und 62. Infolgedessen speist die Modulo-3- Ergebniserzeugungsschaltung 73 die Ausgabe-Modulo-3-Koinzidenzschaltung 71 mit einem Modulo-3-Ergebniswert RR. Die Ausgabe-Modulo-3-Koinzidenzschaltung 71 vergleicht den Modulo-3- Ergebniswert RR mit dem Modulo-3-Schätzwert RC entsprechend Tabelle 5 und liefert ein Vergleichsergebnis CP, das entweder durch die Modulo-3-Codes oder durch den spezifischen Code (1, 1) dargestellt wird. Das Vergleichsergebnis CP wird in zeitlicher Abstimmung mit einem Strobe-Signal STB in einem Modulo-3- Ausgaberegister 75 gespeichert, das entsprechend Tabelle 6 betrieben werden kann, und als Modulo-3-Wert C des Ergebnisses Z zu einer externen Schaltung (nicht dargestellt) übertragen.
  • Angenommen, in der obenerwähnten Struktur trete im ersten Modulo-3-Register 66 ein Fehler oder eine Störung auf, und in einem Eingabesignal des ersten Modulo-3-Registers 66 werde der spezifische Code (1, 1) erzeugt. Der spezifische Code (1, 1) wird über die Modulo-3-Rechenschaltung 68 und die Ausgabe-Modulo-3-Koinzidenzschaltung 71 zum Modulo-3- Ausgaberegister 75 übermittelt. Dementsprechend wird der spezifische Code (1, 1) vom Modulo-3-Ausgaberegister 75 als Fehlersignal erzeugt, das dem Auftreten des Fehlers entspricht.
  • Ebenso wollen wir annehmen, daß in der zweiten Modulo- 3-Koinzidenzschaltung 64 Nichtübereinstimmung festgestellt wird. In diesem Falle erzeugt die zweite Modulo-3-Koinzidenzschaltung 64 den spezifischen Code (1, 1), der das Auftreten der Nichtübereinstimmung repräsentiert. Der spezifische Code (1, 1) wird von der zweiten Modulo-3-Koinzidenzschaltung 64 über das zweite Modulo-3-Register 67 und das Modulo-3-Rechenelement 68 zum Modulo-3-Ausgaberegister 75 übermittelt.
  • Angenommen, in der Arithmetik-Logik-Einheit 31 trete eine Störung auf und bringe das binäre Ergebnissignal Z durcheinander. Der Modulo-3-Ergebniswert RR wird von der Modulo-3- Ergebniserzeugungsschaltung 73 zur Ausgabe-Modulo-3-Koinzidenzschaltung 71 übermittelt und mit dem Modulo-3-Schätzwert RC verglichen. Im obenerwähnten Zustand erzeugt die Ausgabe- Modulo-3-Koinzidenzschaltung 71 den spezifischen Code (1, 1), der das Auftreten der Nichtübereinstimmung oder den Empfang von (1, 1) repräsentiert und als Modulo-3-Wert C zum Modulo-3- Ausgaberegister 75 übermittelt wird.
  • Ferner wollen wir annehmen, der erste Modulo-3-Schätzwert A stelle den spezifischen Code (1, 1) dar. Der spezifische Code (1, 1) wird von der ersten Modulo-3-Koinzidenzschaltung 63 über das erste Modulo-3-Register 66, das Modulo-3-Rechenelement 68 und die Ausgabe-Modulo-3-Koinzidenzschaltung 71 zum Modulo-3-Ausgaberegister 75 übermittelt.
  • Der abgebildete Logikteil 21a kann mit dem folgenden Logikabschnitt in Kaskade geschaltet werden und läßt sich als vorhergehender Abschnitt betreiben. Angenommen, in dieser Struktur werde der Modulo-3-Wert C des Ergebnisses Z wegen des Auftretens eines Fehlers im vorhergehenden Abschnitt in den spezifischen Code (1, 1) umgewandelt. In diesem Falle kann das Auftreten des Fehlers vom vorhergehenden Abschnitt zum folgenden übertragen werden. Daher kann der folgende Abschnitt das Auftreten eines Fehlers durch Überwachen des Modulo-3-Wertes erkennen.
  • Wenn das Auftreten eines Fehlers durch den Modulo-3- Code (1, 1) angezeigt wird, kann der Fehler leicht lokalisiert werden, indem man den Fluß des spezifischen Codes (1, 1) untersucht. Auf jeden Fall kann eine Kombination aus der Modulo- 3-Ergebniserzeugungsschaltung 73, der Ausgabe-Modulo-3-Koinzidenzschaltung 71 und dem Modulo-3-Ausgaberegister 75 als Fehlererkennungsschaltung zum Erkennen eines Fehlers betrieben werden.
  • Wie aus Fig. 9 erkennbar, ist eine Fehlererkennungsschaltung 20b nach einem zweiten Ausführungsbeispiel der Erfindung in Aufbau und Arbeitsweise ähnlich der in Fig. 8 dargestellten Schaltung, mit den Ausnahmen, daß ein erstes und ein zweites Modulo-3-Register 66a und 67a sowie ein Modulo-3- Ausgaberegister 75a jeweils gemäß Tabelle 7 ein Einzelbitsignal f erzeugen können, um das Auftreten eines Fehlers anzuzeigen, und daß ein ODER-Gatter 78 auf die Einzelbitsignale f anspricht, die vom ersten und vom zweiten Modulo-3-Register 66a und 67a und vom Modulo-3-Ausgaberegister 75a übermittelt werden.
  • Wie in Tabelle 7 gezeigt, nimmt jedes Einzelbitsignal den Logikpegel 1 nur dann an, wenn nach Empfang des Strobe-Signals STB der spezifische Code (1, 1) als Ausgabesignal (e0, e1) erscheint. Mit anderen Worten, der spezifische Code (1, 1) wird von jedem Register 66a, 67a und 75a erzeugt, wenn der spezifische Code (1, 1) vor Empfang des Strobe-Signals STB in den Registern gehalten wird oder wenn der spezifische Code (1, 1) vor Empfang des Strobe-Signals STB in den Registern empfangen wird. Ein solcher spezifische Code (1, 1) wird in jedem Register unverändert gehalten.
  • Unter diesen Umständen ist leicht einzusehen, daß das ODER-Gatter 78 den Logikpegel 1 erzeugt, wenn der spezifische Code (1, 1) im ersten oder im zweiten Modulo-3-Register 66a und 67a oder im Modulo-3-Ausgaberegister 75a erscheint. Ein solcher Logikpegel 1 wird dem folgenden Abschnitt als Fehlererkennungssignal E zugeführt, das die Feststellung eines Fehlers anzeigt.
  • Wie aus Fig. 10 erkennbar, weist ein Logikteil 21 eine Fehlererkennungsschaltung 20c nach einem dritten Ausführungsbeispiel der Erfindung sowie ein Rechenwerk 22 auf. Der abgebildete Logikteil 21 weist ähnliche Teile auf, die durch gleiche Bezugszeichen gekennzeichnet sind. Wie in Fig. 8 und 9 wird die dargestellte Fehlererkennungsschaltung 20c mit dem ersten und dem zweiten Binärsignal X und Y sowie mit dem ersten und mit dem zweiten Modulo-3-Schätzwert A und B gespeist, die aus dem ersten bzw. zweiten Binärsignal X bzw. Y berechnet werden. In dem dargestellten Beispiel wird ein binäres Ergebnissignal Z durch das Rechenwerk 22 in höher- bzw. niedrigerwertige Teile Z1 und Z2 unterteilt. Der höher- und der niedrigerwertige Teil Z1 und Z2 können in einem folgenden Abschnitt als individuelle Datensignale behandelt werden. Außerdem erzeugt die abgebildete Fehlererkennungsschaltung 20c einen höher- und einen niedrigerwertigen Modulo-3-Schätzwert C bzw. D des höher- bzw. niedrigerwertigen Teils Z1 bzw. Z2.
  • Die Fehlererkennungsschaltung 20c verarbeitet das erste und das zweite Binärsignal X und Y sowie den ersten und den zweiten Modulo-3-Schätzwert A und B auf ähnliche Weise wie in Fig. 9 dargestellt. In diesem Zusammenhang wird der Modulo-3- Schätzwert RC von der Modulo-3-Rechenschaltung 68 auf die in Fig. 9 erläuterte Weise erzeugt und wird der einfacheren Beschreibung halber als Gesamtschätzcode bezeichnet.
  • Nun werden der höher- und der niedrigerwertige Teil Z1 und Z2 an die erste bzw. zweite Modulo-3-Teilcodeerzeugungsschaltung 81 bzw. 82 übergeben, die ähnlich arbeiten wie die in Verbindung mit der Modulo-3-Codeerzeugungsschaltung 41 beschriebene Schaltung (Fig. 2). Infolgedessen erzeugt die erste Modulo-3-Teilcodeerzeugungsschaltung 81 einen ersten Modulo-3- Teilcode r(z1), der dem höherwertigen Teil Z1 entspricht, während die zweite Modulo-3-Teilcodeerzeugungsschaltung 82 einen zweiten Modulo-3-Teilcode r(z2) erzeugt, der dem niedrigerwertigen Teil Z2 entspricht. Der erste und der zweite Modulo- 3-Teilcode r(z1) und r(z2) werden durch Reste spezifiziert, die sich aus der Division des Ergebnisses Z durch die Modulzahl 3 ergeben.
  • In dem dargestellten Beispiel wird der Gesamtschätzwert RC gemeinsam an ein erstes und ein zweites Modulo-3-Subtrahierglied 86 und 87 übergeben. Das erste Modulo-3-Subtrahierglied 86, das mit dem zweiten Modulo-3-Teilcode r(z2) gespeist wird, subtrahiert den zweiten Modulo-3-Teilcode r(z2) vom Gesamtschätzcode RC und erzeugt eine erste Modulo-3-Differenz Da zwischen dem Gesamtschätzcode RC und dem zweiten Modulo-3- Teilcode r(z2). Die erste Modulo-3-Differenz Da nimmt den spezifischen Code (1, 1) an, wenn von dem Gesamtschätzcode RC und dem zweiten Modulo-3-Teilcode r(z2) mindestens einer gleich (1, 1) ist. Der spezifische Code (1, 1) zeigt, wie bereits erwähnt, das Auftreten eines Fehlers an. Andernfalls nimmt die erste Modulo-3-Differenz Da einen der Modulo-3-Codes (0, 0), (0, 1) und (1, 0) an. Die erste Modulo-3-Differenz Da muß, wenn kein Fehler auftritt, gleich dem ersten Modulo-3-Teilcode r(z1) des höherwertigen Teils Z1 sein.
  • Ebenso subtrahiert das zweite Modulo-3-Subtrahierglied 87 den ersten Modulo-3-Teilcode r(z1) vom Gesamtschätzcode RC und erzeugt eine zweite Modulo-3-Differenz Db zwischen dem Gesamtschätzcode RC und dem ersten Modulo-3-Teilcode r(z1). Die zweite Modulo-3-Differenz Db nimmt ebenso wie die erste Modulo-3-Differenz Da entweder den spezifischen Code (1, 1) oder einen der Modulo-3-Codes an und muß, wenn kein Fehler auftritt, gleich dem zweiten Modulo-3-Teilcode r(z2) des niedrigerwertigen Teils Z2 sein.
  • Unter diesen Umständen vergleicht eine erste Modulo-3- Teilkoinzidenzschaltung 88 den ersten Modulo-3-Teilcode r(z1) mit der ersten Modulo-3-Differenz Da, um festzustellen, ob der erste Modulo-3-Teilcode r(z1) mit der ersten Modulo-3-Differenz Da übereinstimmt oder nicht. Wenn Übereinstimmung zwischen diesen Größen festgestellt wird, dann wird der erste Modulo-3-Teilcode r(z1) unverändert als erstes Modulo-3-Teilergebnis erzeugt. Wird festgestellt, daß der erste Modulo-3- Teilcode r(z1) und die erste Modulo-3 Differenz Da nicht übereinstimmen oder daß eine dieser Größen den spezifischen Code (1, 1) annimmt, dann wird als erstes Modulo-3-Teilergebnis der spezifische Code (1, 1) erzeugt.
  • Entsprechend erzeugt eine zweite Modulo-3-Teilkoinzidenzschaltung 89 als zweites Modulo-3-Teilergebnis den zweiten Modulo-3-Teilcode r(z2), wenn Übereinstimmung zwischen dem zweiten Modulo-3-Teilcode r(z2) und der zweiten Modulo-3-Differenz Db festgestellt wird. Andererseits wird als zweites Modulo-3-Teilergebnis der spezifische Code (1, 1) erzeugt, wenn festgestellt wird, daß entweder der zweite Modulo-3-Teilcode r(z2) und die zweite Modulo-3-Differenz Db nicht übereinstimmen oder eine dieser Größen den spezifischen Code annimmt.
  • Das erste und das zweite Modulo-3-Teilergebnis werden als Antwort auf das Strobe-Signal STB im ersten bzw. zweiten Modulo-3-Teilausgaberegister 91 bzw. 92 gespeichert, die entsprechend Tabelle 6 arbeiten. Danach werden das erste und das zweite Modulo-3-Teilergebnis als höher- bzw. niedrigerwertiger Modulo-3-Schätzwert C bzw. D über das erste bzw. zweite Modulo-3-Teilausgaberegister 91 bzw. 92 erzeugt.
  • Der höher- und der niedrigerwertige Modulo-3-Schätzwert C und D werden in einer anschließenden Modulo-3-Schaltung (nicht dargestellt) verarbeitet. In dem dargestellten Beispiel kann der Logikteil 21 unter Verwendung des höher- und des niedrigerwertigen Modulo-3-Schätzwertes C und D lokal analysiert werden. Dementsprechend ist es leicht möglich, einen Fehler in dem abgebildeten Logikteil 21 genau zu lokalisieren, indem man mehrere Modulo-3-Schätzwerte, wie z. B. C und D, überwacht.
  • Anhand von Fig. 11 wird nachstehend eine Fehlererkennungsschaltung nach einem vierten Ausführungsbeispiel der Erfindung beschrieben. Die Fehlererkennungsschaltung 20d dient zur Prüfung oder Erkennung eines binären Ergebnissignals Z, das sich aus einem ersten und einem zweiten Binärsignal X und Y ergibt, wie in Fig. 10 dargestellt. Es wird angenommen, daß das binäre Ergebnissignal Z aus N Bits besteht, die in höher- und niedrigerwertige Teile Z1 und Z2 unterteilbar sind. Der höherwertige Teil Z1 bestehe aus M Bits, wobei M kleiner ist als N. Wie in Fig. 10 wird die abgebildete Erkennungsschaltung 20d mit einem ersten und einem zweiten Modulo-3-Schätzwert A und B gespeist, die sich als Reste aus der Division des ersten und des zweiten Binärsignals X und Y durch die Modulzahl 3 ergeben.
  • Ebenso wie in Fig. 10 werden der höher- und der niedrigerwertige Teil Z1 und Z2 einer ersten bzw. zweiten Modulo- 3-Teilcodeerzeugungsschaltung 81 bzw. 82 zugeführt, und der erste und der zweite Modulo-3-Schätzwert A und B werden an eine Modulo-3-Rechenschaltung 68 übergeben, um einen Modulo-3- Schätzwert RC zu berechnen.
  • In dem dargestellten Beispiel speist die erste Modulo- 3-Teilcodeerzeugungsschaltung 81 einen ersten Modulo-3-Teilcode r(z1) in eine Modulo-3-Koinzidenzschaltung 95 ein, die entsprechend Tabelle 5 arbeitet.
  • Andererseits führt die zweite Modulo-3-Teilcodeerzeugungsschaltung 82 einen zweiten Modulo-3-Teilcode r(z2) einem Modulo-3-Subtrahierglied 96 zu, das mit dem Modulo-3-Schätzwert RC gespeist wird, der als Ergebnis einer Rechenoperation zwischen dem ersten und dem zweiten Modulo-3-Schätzwert A und B übergeben wird. Das Modulo-3-Subtrahierglied 96 arbeitet entsprechend Tabelle 2 und subtrahiert den zweiten Modulo-3- Teilcode r(z2) von dem Modulo-3-Schätzwert RC, um eine Modulo- 3-Differenz Df zwischen dem zweiten Modulo-3-Teilcode r(z2) und dem Modulo-3-Schätzwert RC zu erzeugen. Solange kein Fehler auftritt, muß die Modulo-3-Differenz Df gleich dem ersten Modulo-3-Teilcode r(z1) sein. Die Modulo-3-Differenz Df wird zur Modulo-3-Koinzidenzschaltung 95 übermittelt.
  • Unter diesen Umständen arbeitet die Modulo-3-Koinzidenzschaltung 95 entsprechend Tabelle 5 und stellt fest, ob der erste Modulo-3-Teilcode r(z1) mit der Modulo-3-Differenz Df übereinstimmt oder nicht. Wird Übereinstimmung zwischen r(z1) und Df festgestellt, dann erzeugt die Modulo-3-Koinzidenzschaltung 95 den ersten Modulo-3-Teilcode r(z1) als Erkennungsergebnissigna1 DR. Andererseits erzeugt die Modulo-3- Koinzidenzschaltung 95 den spezifischen Code (1, 1), wenn festgestellt wird, daß entweder r(z1) und Df nicht übereinstimmen oder daß eine der Größen r(z1) und Df den spezifische Code (1, 1) annimmt.
  • Angenommen, bei dieser Struktur trete in der zweiten Modulo-3-Teilcodeerzeugungsschaltung 82 ein Fehler auf, und im zweiten Modulo-3-Teilcode r(z2) erscheine der spezifische Code (1, 1). In diesem Falle wird der spezifische Code (1, 1) über das Modulo-3-Subtrahierglied 96 und die Modulo-3-Koinzidenzschaltung 95 als Erkennungsergebnissignal DR übermittelt. Das Erkennungsergebnissignal DR mit dem Wert (1, 1) zeigt das Auftreten eines Fehlers an.
  • Angenommen, der erste Modulo-3-Schätzwert A nehme den spezifischen Code (1, 1) an. In diesem Falle wird der spezifische Code (1, 1) von der Modulo-3-Rechenschaltung 68 über das Modulo-3-Subtrahierglied 96 zur Modulo-3-Koinzidenzschaltung 95 übermittelt. Infolgedessen wird der spezifische Code (1, 1) als Erkennungsergebnissignal DR erzeugt und zeigt das Auftreten eines Fehlers an.
  • Wie aus Fig. 12 erkennbar, weist ein Logikteil 21 eine Fehlererkennungsschaltung 20d nach einem fünften Ausführungsbeispiel der Erfindung auf. Die Fehlererkennungsschaltung 20d weist einen Teil, der in Struktur und Arbeitsweise dem in Fig. 11 abgebildeten Teil ähnlich ist, sowie ein Rechenwerk 22 mit einer Arithmetik-Logik-Einheit 31 und einem Ergebnisregister 32 auf. Bauelemente und Signale, die den in den anderen Abbildungen dargestellten gleichwertig sind, werden durch die gleichen Bezugsziffern und -zeichen gekennzeichnet.
  • Das erste und das zweite Binärsignal X und Y werden im ersten bzw. zweiten Operandenregister 26 bzw. 27 gehalten und zur Arithmetik-Logik-Einheit 31 übermittelt, wo sie einer vorgegebenen Rechenoperation unterworfen werden. Ein Rechenergebnis wird als binäres Ergebnissignal Z im Ergebnisregister 32 gespeichert. Das dargestellte binäre Ergebnissignal Z der Rechenoperation besteht aus N Bits, die in einen höherwertigen Teil Z1 aus M Bits und einen niedrigerwertigen Teil Z2 aus den übrigen (N - M) Bits unterteilt werden können. Um die Berechnung abzukürzen, kann angenommen werden, daß die Arithmetik- Logik-Einheit 31 das erste Binärsignal X zum zweiten Binärsignal Y addiert und veranlaßt, daß das Ergebnisregister 32 eine Summe als binäres Ergebnissignal Z speichert. In dem abgebildeten Logikteil 21 wird der höherwertige Teil Z1 der Summe als Ausgabe-Ergebnissignal erzeugt.
  • Der erste und der zweite Modulo-3-Schätzwert A und B werden zusammen mit dem ersten und dem zweiten Binärsignal X und Y auf die in Verbindung mit Fig. 10 erwähnte Weise verarbeitet und zur Modulo-3-Rechenschaltung 68 übermittelt. Die abgebildete Modulo-3-Rechenschaltung 68 führt ebenso wie die Arithmetik-Logik-Einheit 31 eine Addition bezüglich der Modulzahl 3 aus, um den Modulo-3-Schätzcode RC zu erzeugen, der durch einen Rest spezifiziert ist, welcher durch eine Modulo- 3-Addition des ersten und des zweiten Modulo-3-Schätzwertes A und B berechnet wird.
  • Der zweite Modulo-3-Teilcode r(z2) wird durch das Modulo-3-Subtrahierglied 96 von dem Modulo-3-Schätzcode RC subtrahiert, um die Modulo-3-Differenz Df zu erzeugen, die gleich dem ersten Modulo-3-Teilcode r(z1) ist. Auf die in Verbindung mit Fig. 11 erwähnte Weise stellt die Modulo-3-Koinzidenzschaltung 95 entweder Einstimmung oder Nichtübereinstimmung zwischen der Modulo-3-Differenz Df und dem zweiten Modulo-3- Teilcode r(z2) fest. Das Erkennungsergebnis DR wird zum Modulo-3-Ausgaberegister 75 übermittelt und darin in zeitlicher Abstimmung mit dem Strobe-Signal STB gespeichert (Tabelle 6), um als Modulo-3-Wert C erzeugt zu werden.
  • Allgemein ist zu beachten, daß der Modulo-3-Wert von Z gleich der Summe der Modulo-3-Werte von Z1 und Z2 und außerdem gleich der Summe der Modulo-3-Werte von A und B ist, wenn kein Fehler auftritt. Es läßt sich leicht einsehen, daß die in Fig. 11 und 12 dargestellte Fehlererkennungsschaltung 20d unter Anwendung der obenerwähnten Beziehung einen Fehler erkennen kann. Auf jeden Fall erscheint beim Auftreten eines Fehlers der spezifische Code (1, 1) als Erkennungsergebnis DR und als Modulo-3-Code C.
  • In Fig. 13 ist eine Fehlererkennungsschaltung 20e nach einem sechsten Ausführungsbeispiel der Erfindung zusammen mit einem Rechenwerk 22 in einem Logikteil 21 enthalten. Die abgebildete Fehlererkennungsschaltung 20e ist der in Fig. 12 dargestellten ähnlich, außer daß ein erstes und ein zweites Modulo-3-Register 66a und 67a sowie ein Modulo-3-Ausgaberegister 75a jeweils, ebenso wie in Fig. 9, gemäß Tabelle 7 arbeiten und daß von dem ersten und dem zweiten Modulo-3-Register 66a und 67a sowie dem Modulo-3-Ausgaberegister 75a Einzelbitsignale f1, f2 bzw. f3 an ein ODER-Gatter 78 übergeben werden. Selbstverständlich erzeugen das erste und das zweite Modulo-3- Register 66a und 67a Modulo-3-Codes in zeitlicher Abstimmung mit dem Strobe-Signal STB, und das Modulo-3-Ausgaberegister 75a erzeugt den Modulo-3-Wert C. Unter diesen Umständen nimmt jedes der Einzelbitsignale f1, f2 und f3 den Logikpegel 1 an, wenn bei Erzeugung des Strobe-Signals an jedes Register 66a, 67a und 75a der spezifische Code (1, 1) übergeben wird, wie bereits in Verbindung mit Tabelle 7 und Fig. 9 beschrieben. Der Logikpegel 1 jedes Einzelbitsignals f1, f2 und f3 wird nach Empfang des Strobe-Signals STB gehalten, sobald jedes Register auf (1, 1) gesetzt ist.
  • Im Ergebnis wird durch das ODER-Gatter 78 der Logikpegel 1 jedes Einzelbitsignals f1, f2 und f3 als Fehlererkennungssignal E erzeugt.
  • In Fig. 14 dient ein Rechensystem 21'' zur Ausführung einer vorgegebenen Berechnung und weist mehrere Rechenelemente auf, deren jedes in seinem Aufbau dem in Fig. 8, 9, 10, 12 und 13 abgebildeten Logikteil ähnlich ist. Das dargestellte System wird mit einem ersten bis sechsten Binärsignal X, Y, Z, R, S bzw. T, die durch Doppellinien dargestellt sind, sowie mit einem ersten bis sechsten Modulo-3-Code x, y, z, r, s bzw. t gespeist, die aus dem ersten bis sechsten Binärsignal X, Y, Z, R, S bzw. T berechnet werden.
  • Als Beispiel wird angenommen, daß man durch die vorgegebene Berechnung ein erstes und ein zweites binäres Ergebnis H und Q erhält, die durch
  • H = -(X + Y + Z - R)
  • bzw. Q = (X + Y - S·T) (X + Y + Z - R)
  • gegeben sind.
  • Außerdem wird eine ähnliche Berechnung bezüglich der Modulzahl 3 ausgeführt, um ein erstes und ein zweites Modulo- 3-Ergebnis h und q zu erhalten, die dem ersten und dem zweiten binären Ergebnis H und Q entsprechen und durch
  • h = (x y z r)
  • bzw. q = (x y s t) (x y z r)
  • gegeben sind.
  • Zu diesem Zweck weist das abgebildete System 21'' als Rechenelemente ein erstes und ein zweites Addierglied 101 und 102, ein erstes und ein zweites Subtrahierglied 103 und 104, ein erstes und ein zweites Multiplizierglied 106 und 107 sowie einen Inverter 108 auf.
  • Als Antwort auf das erste und das zweite Binärsignal x und Y speist das erste Addierglied 101 eine Binärsumme (X + Y) des ersten und des zweiten Binärsignals X und Y über einen Datenweg 111 in das zweite Addierglied 102 und in das zweite Subtrahierglied 104 ein. Das erste Addierglied 101 wird mit dem ersten und dem zweiten Modulo-3-Code x und y gespeist und führt eine Addition zwischen dem ersten und dem zweiten Modulo-3-Code bezüglich der Modulzahl 3 aus, um einen Modulo-3- Schätzwert (x y) der Summe (X + Y) zu erzeugen. Der Modulo- 3-Schätzwert (x y) wird ebenso wie die Summe (X + Y) über einen Datenweg 112 an das zweite Addierglied 102 und das zweite Subtrahierglied 104 übergeben. Bei Feststellung eines Fehlers erzeugt das erste Addierglied 101 den spezifischen Code (1, 1) als Modulo-3-Schätzwert. Sonst wird einer der übrigen Modulo-3-Codes als Modulo-3-Schätzwert erzeugt. Das mit dem dritten und dem vierten Binärsignal Z und R gespeiste erste Subtrahierglied 103 subtrahiert das vierte Binärsignal R vom dritten Binärsignal Z und berechnet eine Binärdifferenz Z
  • - R. Die Binärdifferenz Z - R wird über einen Datenweg 113 an das zweite Addierglied 102 übergeben.
  • Das erste Subtrahierglied 103 wird außerdem mit dem dritten und dem vierten Modulo-3-Code z und r gespeist, um eine Modulo-3-Differenz (z r) zu erzeugen, die der Binärdifferenz Z - R entspricht. Die Modulo-3-Differenz (z r) dient zur Kontrolle, ob die Binärdifferenz Z - R richtig ist oder nicht. Auf jeden Fall weist die Modulo-3-Differenz bei Feststellung eines Fehlers den spezifische Code (1, 1) auf und wird über einen Datenweg 114 zum zweiten Addierglied 102 übermittelt.
  • Als Antwort auf das fünfte und das sechste Binärsignal S und T multipliziert das erste Multiplizierglied 106, das fünfte Binärsignal S mit dem sechsten Binärsignal T und erzeugt ein Produkt S·T aus dem fünften und dem sechsten Binärsignal S und T. Außerdem wird im ersten Multiplizierglied 106 entsprechend Tabelle 3 ein Modulo-3-Produkt s t berechnet, um das Produkt S·T auf die bereits erwähnte Weise zu kontrollieren. Das Modulo-3-Produkt s t nimmt bei Feststellung eines Fehlers den spezifischen Code (1, 1) an. Sonst nimmt das Modulo-3-Produkt s t einen der Modulo-3-Codes (0, 0), (0, 1) und (1, 0) an.
  • Das Produkt S·T und das Modulo-3-Produkt s t werden vom ersten Multiplizierglied 106 über die Datenwege 115 bzw. 116 zum zweiten Subtrahierglied 104 übermittelt, dem die Binärsumme X + Y und der Modulo-3-Schätzwert (x y) übergeben werden.
  • Das zweite Addierglied 102, das mit der Binärsumme (X + Y), ihrem Modulo-3-Schätzwert (x y), der Binärdifferenz (Z - R) und ihrer Modulo-3-Differenz (z r) gespeist worden ist, erzeugt eine weitere Binärsumme, die durch (X + Y + Z - R) dargestellt wird, sowie eine weitere Modulo-3-Summe, die durch (x y z r) dargestellt wird. Die zusätzliche Modulo-3- Summe ist ein Modulo-3-Schätzwert der zusätzlichen Binärsumme (X + Y + Z - R) und wird entsprechend Tabelle 1 erzeugt. Ebenso wie im ersten Addierglied 101, im ersten Subtrahierglied 103 und im ersten Multiplizierglied 106 nimmt die zusätzliche Modulo-3-Summe bei Feststellung eines Fehlers den spezifischen Code (1, 1) an.
  • Auf jeden Fall werden die zusätzliche Binärsumme und die zusätzliche Modulo-3-Summe über die Datenwege 117 bzw. 118 sowohl an den Inverter 108 als auch an das zweite Multiplizierglied 107 übergeben.
  • Als Antwort auf die Binärsumme (X + Y), den Modulo-3- Schätzwert (x y), das Produkt (S·T) und das Modulo-3-Produkt (s t) berechnet das zweite Subtrahierglied 104 eine weitere, durch (X + Y - S·T) dargestellte Binärdifferenz und eine weitere, durch (x y s t) dargestellte Modulo-3-Differenz. Die zusätzliche Binärdifferenz (X + Y - S·T) wird durch die zusätzliche Modulo-3-Differenz (x y s t) auf die obenerwähnte Weise kontrolliert. Die zusätzliche Modulo-3- Differenz nimmt bei Feststellung eines Fehlers den spezifischen Code (1, 1) an.
  • Die zusätzliche Binärdifferenz und die zusätzliche Modulo-3-Differenz werden über die Datenwege 121 und 122 zum zweiten Multiplizierglied 107 übermittelt, das mit der zusätzlichen Binärsumme und der zusätzlichen Modulo-3-Summe gespeist wird.
  • Der mit der zusätzlichen Binärsumme und der zusätzlichen Modulo-3-Summe gespeiste Inverter 108 invertiert die zusätzliche Binärsumme bzw. die zusätzliche Modulo-3-Summe zu - (X + Y + Z - R) bzw. (x y z r). Die invertierten Ergebnisse werden über die Datenwege 123 bzw. 124 als erstes Binärergebnis H bzw. als erstes Modulo-3-Ergebnis h erzeugt. Bei Feststellung eines Fehlers wird der spezifische Code (1, 1) als erstes Modulo-3-Ergebnis h erzeugt.
  • Als Antwort auf die zusätzliche Binärsumme, die zusätzliche Modulo-3-Summe, die zusätzliche Binärdifferenz und die zusätzliche Modulo-3-Differenz erzeugt das zweite Multiplizierglied 107 über die Datenwege 126 bzw. 127 das zweite Binärergebnis Q bzw. das zweite Modulo-3-Ergebnis q, die durch (X + Y + Z - R)·(X + Y - S·T) bzw. durch (x y z r) (x y s t) gegeben sind. Wie in jedem anderen Rechenelement erscheint bei Feststellung eines Fehlers der spezifische Code (1, 1) als zweites Modulo-3-Ergebnis g.
  • Als Beispiel werde angenommen, daß im ersten Multiplizierglied 106 ein Fehler auftritt und auf dem Datenweg 116 der spezifische Code (1, 1) erscheint. In diesem Falle wird der spezifische Code (1, 1) über das zweite Subtrahierglied 103 an das zweite Multiplizierglied 107 weitergegeben und erscheint als zweites Modulo-3-Ergebnis q. Der Fehler im ersten Multiplizierglied 106 kann daher lokalisiert werden, indem man den Weg oder Fluß des spezifischen Codes (1, 1) verfolgt.
  • Als weiteren Fall nehmen wir an, daß der vierte Modulo- 3-Code r das spezifische Codemuster (1, 1) annimmt. In diesem Falle wird der spezifische Code (1, 1) einerseits über das erste Subtrahierglied 103, das zweite Addierglied 102 und den Inverter 108 als erstes Modulo-3-Ergebnis h zum Datenweg 124 übermittelt. Andererseits wird der spezifische Code (1, 1) über das erste Subtrahierglied 103, das zweite Addierglied 102 und das zweite Multiplizierglied 107 als zweites Modulo-3-Ergebnis g zum Datenweg 127 übermittelt. So erscheint der spezifische Code (1, 1) sowohl als erstes als auch als zweites Modulo-3-Ergebnis h und q. Dies zeigt, daß irgendwo auf den Erzeugungswegen sowohl des ersten als auch des zweiten Modulo-3- Ergebnisses h und q ein Fehler auftritt. Durch Verfolgen des spezifischen Codes (1, 1) kann man herausfinden, daß die Fehler im ersten und zweiten Modulo-3-Ergebnis h und q von einer gemeinsamen Ursache herrühren. Als Ergebnis läßt sich erkennen, daß die Fehler auf eine Störung in einer Stufe zurückzuführen sind, die dem abgebildeten System 21'' vorangeht.
  • Bei den herkömmlichen Verfahren wird der spezifische Code (1, 1) nicht berücksichtigt. Daraus folgt, daß beim Auftreten eines Fehlers in einem herkömmlichen System je nach der Struktur jedes einzelnen Rechenelements die verschiedensten Modulo-3-Codes als erstes und zweites Modulo-3-Ergebnis h und g auftreten. Dementsprechend ist es schwierig, das Auftreten eines Fehlers zu erkennen. Bedingt durch die logische Struktur des herkömmlichen Systems könnte ein Fehler auftreten, der nicht erkannt werden kann. Wenn das herkömmliche System mehrere Stufen aufweist, ist es schwierig, einen in jeder Stufe auftretenden Fehler zu lokalisieren. Daher hat die Fehlerlokalisierung im herkömmlichen System ein niedriges Auflösungsvermögen beim Auffinden eines Fehlers.
  • Bei den oben erwähnten Ausführungsbeispielen können ein Fehler oder ein falsches Datensignal durch Überwachung des spezifischen Codes (1, 1) erkannt und lokalisiert werden. Daher können die Fehlererkennung- und -lokalisierung mit einer hohen Erkennungsrate und einem hohen Auflösungsvermögen der Fehlerlokalisierung ausgeführt werden. Daher wird der spezifische Code (1, 1) im erfindungsgemäßen System als logisch signifikanter Code benutzt. Beim Entwurf eines hochintegrierten Schaltkreises braucht daher kein Code ohne logische Bedeutung beschrieben zu werden, der nur für die Fehlererkennung verfügbar ist.
  • Daher kann bei der Auslegung des hochintegrierten Schaltkreises der Ausnutzungsgrad verbessert werden.
  • Zum Beispiel kann eine Modulzahl m im allgemeinen gleich 2k-1 sein, wobei k eine ganze Zahl größer als eins ist, obwohl die obige Beschreibung nur bezüglich der Modulzahl 3 gegeben wurde. In diesem Falle wird der spezifische Code durch k Bits dargestellt und kann durch ein außergewöhnliches Muster gegeben sein, das bei der logischen Rechnung nicht benutzt wird. Alle k Bits des außergewöhnlichen Musters nehmen vorzugsweise den Logikpegel 1 an. In jeder der Modulo-3-Koinzidenzschaltungen, wie z. B. in 63, 64, kann Übereinstimmung zwischen einem ersten bis n-ten Eingabesignal festgestellt werden, wobei n eine ganze Zahl größer als zwei ist.

Claims (29)

1. Fehlererkennungsverfahren zur Erkennung eines Fehlers als Antwort auf ein Binärsignal von k Bits, das so gestaltet ist, daß es einem nullten bis (m-1)-ten Code entspricht, wenn die k Bits bezüglich einer Modulzahl m dargestellt werden, wobei k eine positive ganze Zahl größer als eins und m gleich der k-ten Potenz von zwei minus eins (2k-1) ist, wobei die Verbesserung die folgenden Schritte aufweist:
Überwachen eines m-ten Codes bezüglich der Modulzahl m; und
Erkennung des Fehlers des Binärsignals beim Auftreten des m-ten Codes.
2. Fehlererkennungsverfahren nach Anspruch 1, wobei jedes der k Bits entweder einen Logikpegel 1 oder einen Logikpegel 0 annimmt, wobei der m-te Code durch ein vorgegebenes Muster dargestellt wird.
3. Fehlererkennungsverfahren nach Anspruch 2, wobei das vorgegebene Muster in jedem der k Bits den Logikpegel 1 annimmt.
4. Fehlererkennungsverfahren nach Anspruch 2, wobei k gleich zwei ist, während m gleich drei ist, wobei die k Bits eine der vier Zwei-Bit-Mustergruppen (0, 0), (0, 1), (1, 0) und (1, 1) annehmen und in den vorgegebenen Code und drei normale Codes mit Ausnahme des vorgegebenen Codes unterteilbar sind, wobei der vorgegebene Code durch eine vorher ausgewählte von den vier Gruppen definiert ist, während die normalen Codes durch die übrigen von den vier Gruppen definiert sind.
5. Fehlererkennungsverfahren nach Anspruch 4, wobei die vorher ausgewählte von den vier Gruppen durch (1, 1) gegeben ist.
6. Fehlererkennungsschaltung (42) zur Verwendung beim Erkennen eines Fehlers in einem Binärsignal von k Bits, das so gestaltet ist, daß es einem nullten bis (m-1)-ten Code entspricht, wenn die k Bits bezüglich einer Modulzahl m dargestellt werden, wobei k eine positive ganze Zahl größer als eins und m gleich der k-ten Potenz von zwei minus eins (2k-1) ist, wobei die Verbesserung aufweist:
eine Überwachungseinrichtung (200), die als Antwort auf das Binärsignal einen m-ten Code bezüglich der Modulzahl m überwacht; und
eine mit der Überwachungseinrichtung (200) gekoppelte Erkennungseinrichtung (201) zum Erkennen des Fehlers des Binärsignals beim Auftreten des m-ten Codes, um ein Fehlererkennungssignal zu erzeugen, das die Erkennung des Fehlers anzeigt.
7. Fehlererkennungsschaltung (42) nach Anspruch 6, wobei jedes der k Bits entweder einen Logikpegel 1 oder einen Logikpegel 0 annimmt, wobei der m-te Code durch ein vorgegebenes Muster dargestellt wird.
8. Fehlererkennungsschaltung (42) nach Anspruch 7, wobei das vorgegebene Muster in jedem der k Bits den Logikpegel 1 annimmt.
9. Fehlererkennungsschaltung (42) nach Anspruch 7, wobei k gleich zwei ist, während m gleich drei ist, wobei die k Bits eine der vier Zwei-Bit-Mustergruppen (0, 0), (0, 1), (1, 0) und (1, 1) annehmen und in den vorgegebenen Code und drei normale Codes mit Ausnahme des vorgegebenen Codes unterteilbar sind, wobei der vorgegebene Code durch eine vorher ausgewählte von den vier Gruppen definiert ist, während die normalen Codes durch die übrigen von den vier Gruppen definiert sind.
10. Fehlererkennungsschaltung (42) nach Anspruch 9, wobei die vorher ausgewählte von den vier Gruppen durch (1, 1) gegeben ist.
11. Fehlererkennungsschaltung (43) zur Verwendung beim Erkennen eines Fehlers als Antwort auf ein Eingabesignal, das ein erstes bis n-tes Binärsignal aufweist, deren jedes k Bits aufweist und so gestaltet ist, daß es einen nullten bis (m-1)ten Code entspricht, die auftreten, wenn die k Bits bezüglich einer Modulzahl m ausgedrückt werden, wobei k bzw. n positive ganze Zahlen größer als eins sind und m gleich der k-ten Potenz von zwei minus eins (2k-1) ist, wobei das erste bis n-te Binärsignal als miteinander übereinstimmend angesehen werden, wenn im ersten bis n-ten Binärsignal kein Fehler auftritt, wobei die Verbesserung aufweist:
eine Überwachungseinrichtung (202), die als Antwort auf das erste bis n-te Binärsignal in jedem der ersten bis n-ten Binärsignale einen m-ten Code überwacht, der auftritt, wenn die k Bits bezüglich der Modulzahl m ausgedrückt werden; und
eine mit der Überwachungseinrichtung (202) gekoppelte Erkennungseinrichtung (203) zum Erkennen des Fehlers in dem ersten bis n-ten Binärsignal, wenn der m-te Code in mindestens einem von den ersten bis n-ten Binärsignalen auftritt.
12. Fehlererkennungsschaltung (43) nach Anspruch 11, wobei jedes der k Bits entweder einen Logikpegel 1 oder einen Logikpegel 0 annimmt, wobei der m-te Code durch ein vorgegebenes Muster dargestellt wird.
13. Fehlererkennungsschaltung (43) nach Anspruch 12, wobei das vorgegebene Muster den Logikpegel 1 in jedem der k Bits aufweist.
14. Fehlererkennungsschaltung (43) nach Anspruch 13, wobei k bzw. m gleich zwei bzw. drei sind, wobei der m-te Code durch das vorgegeben Muster (1, 1) dargestellt wird.
15. Fehlererkennungsschaltung (43) nach Anspruch 12, wobei die Erkennungseinrichtung aufweist:
eine Koinzidenz-Erkennungseinrichtung, um festzustellen, ob das erste bis n-te Binärsignal miteinander übereinstimmen oder nicht, und um bei Feststellung der Übereinstimmung der ersten bis n-ten Binärsignale ein unter den ersten bis n-ten Binärsignalen ausgewähltes Binärsignal durchzulassen und andernfalls den m-ten Code zu erzeugen.
16. Fehlererkennungsschaltung (43) nach Anspruch 15, die ferner aufweist:
eine Recheneinrichtung zum Ausführen einer vorgegebenen Modulo-m-Berechnung zwischen den ersten bis n-ten Binärsignalen und zur Erzeugung eines Rechenergebnisses;
wobei die Erkennungseinrichtung (203) aufweist:
eine mit der Überwachungseinrichtung (202) gekoppelte Codeerkennungseinrichtung zum Erkennen des m-ten Codes in jedem der ersten bis n-ten Binärsignale; und
eine mit der Codeerkennungseinrichtung und der Recheneinrichtung gekoppelte Einrichtung, um den m-ten Code als Fehlersignal zu erzeugen, wenn der m-te Code in mindestens einem der ersten bis n-ten Binärsignale auftritt, und um andernfalls das Rechenergebnis zu erzeugen.
17. In einer logischen Schaltung (44) mit einem Schaltungselement, das dazu dient, als Antwort auf ein Eingabesignal von k Bits eine vorgegebene Operation auszuführen und ein Ausgabesignal von k Bits zu erzeugen, wobei das Eingabesignal und das Ausgabesignal jeweils so eingerichtet sind, daß sie einem nullten bis (m-1)-ten Code entsprechen, wenn die k Bits bezüglich einer Modulzahl m ausgedrückt werden, wobei k eine ganze Zahl größer als eins und m gleich der k-ten Potenz von zwei minus eins (2k-1) ist, die Verbesserung, in welcher das Schaltungselement aufweist:
eine Überwachungseinrichtung (204), die als Antwort auf das Eingabesignal einen m-ten Code bezüglich der Modulzahl m überwacht, wobei die vorgegebene Operation in der Überwachungseinrichtung (204) ausgeführt wird; und
eine mit der Überwachungseinrichtung (204) gekoppelte Erzeugungseinrichtung (205) zum Erzeugen des m-ten Codes, wenn der m-te Code als das Ausgabesignal auftritt.
18. Logische Schaltung (44) nach Anspruch 17, wobei das Schaltungselement eine Registerschaltung zum Speichern des Eingabesignals ist, um ein gespeichertes Signal als Ausgabesignal zu erzeugen.
19. Logische Schaltung (44) nach Anspruch 18, wobei die Erzeugungseinrichtung (205) der Registerschaltung aufweist:
ein Gatter (51), um nur dann, wenn der m-te Code auftritt, ein Einzelbitsignal (f) zu erzeugen; und
eine Einrichtung zum Erzeugen des gespeicherten Signals als Ausgabesignal mit dem m-ten Code.
20. In einer logischen Schaltung (21a; 21) mit einem Schaltungselement, das dazu dient, als Antwort auf ein erstes bis n-tes Eingabesignal eine vorher gewählte Operation aus zuführen und ein Ausgabesignal zu erzeugen, wobei das erste bis n-te Eingabesignal sowie das Ausgabesignal jeweils k Bits aufweisen und so eingerichtet sind, daß sie einem nullten bis (m- 1)-ten Code entsprechen, wenn die k Bits bezüglich einer Modulzahl m ausgedrückt werden, wobei k und n ganze Zahlen größer als eins sind und m gleich der k-ten Potenz von zwei minus eins (2k-1) ist, die Verbesserung, wobei das Schaltungselement ferner aufweist:
eine Modulo-m-Codeerzeugungseinrichtung (61, 62), die als Antwort auf das erste bis n-te Eingabesignal einen m-ten Code bezüglich der Modulzahl m überwacht, wobei die vorher gewählte Operation in der Überwachungseinrichtung ausgeführt wird;
eine mit der Modulo-m-Codeerzeugungseinrichtung (61, 62) gekoppelte erste Koinzidenz-Erkennungseinrichtung (63, 64), um den m-ten Code zu erzeugen, wenn der m-te Code als das Ausgabesignal auftritt, und um andernfalls einen der nullten bis (m-1)-ten Codes zu erzeugen;
eine mit der ersten Koinzidenz-Erkennungseinrichtung gekoppelte erste Speichereinrichtung (66, 67) zum Speichern des nullten bis m-ten Codes;
ein mit der ersten Speichereinrichtung gekoppeltes Rechenelement (68) zum Erzeugen eines Ausgabesignals (RC);
ein zusätzliches Element (73) zum Erzeugen eines zusätzlichen Ausgabesignals von k Bits, das bezüglich der Modulzahl m ausgedrückt wird und gleich dem Ausgabesignal sein muß, wenn kein Fehler vorhanden ist;
eine mit dem Rechenelement (68) und dem zusätzlichen Element (73) gekoppelte zweite Koinzidenz-Erkennungseinrichtung (71), um festzustellen, ob das zusätzliche Ausgabesignal mit dem Ausgabesignal übereinstimmt oder nicht, und um ein unter dem zusätzlichen Ausgabesignal und dem Ausgabesignal ausgewähltes Signal zu erzeugen, wenn Übereinstimmung festgestellt wird, und den m-ten Code zu erzeugen, wenn Nichtübereinstimmung zwischen dem zusätzlichen Ausgabesignal und dem Ausgabesignal festgestellt wird bzw. wenn bei dem zusätzlichen Ausgabesignal und dem Ausgabesignal in mindestens einem der mte Code festgestellt wird, wobei das unter dem zusätzlichen Ausgabesignal und dem Ausgabesignal ausgewählte Signal und der m-te Code als Erkennungsergebnissignal erzeugt werden.
21. Logische Schaltung (21a; 21) nach Anspruch 20, wobei die vorher gewählte Operation eine unter Addition, Subtraktion und Multiplikation ausgewählte Operation zwischen dem ersten bis n-ten Eingabesignal ist.
22. Logische Schaltung (21a; 21) nach Anspruch 21, die ferner aufweist:
eine mit der Koinzidenz-Erkennungseinrichtung (71) gekoppelte zweite Speichereinrichtung (75) zum Speichern des Erkennungsergebnissigna1s, das einen der nullten bis m-ten Codes annimmt.
23. Logische Schaltung (21a; 21) nach Anspruch 20, wobei die vorher gewählte Operation zur Feststellung der Übereinstimmung zwischen dem ersten bis n-ten Eingabesignal dient.
24. Logische Schaltung (21a; 21) nach Anspruch 23, die ferner aufweist:
eine mit dem Schaltungselement gekoppelte Speichereinrichtung (66, 67, 75) zum Speichern des Ausgabesignals, das einen der nullten bis m-ten Codes annimmt.
25. Logische Schaltung (21) zur Verwendung beim Ausführen einer vorher gewählten Berechnung als Antwort auf ein erstes bis n-tes binäres Eingabesignal, um ein binäres Ausgabesignal zu erzeugen, das einem Ergebnis der vorher gewählten Berechnung entspricht, wobei die logische Schaltung ferner mit einem ersten bis n-ten Modulo-m-Eingabesignal gespeist wird, die aus den entsprechenden ersten bis n-ten Eingabesignalen bezüglich einer Modulzahl m berechnet werden, wobei das erste bis n-te binäre Eingabesignal und das binäre Ausgabesignal jeweils k Bits aufweisen und durch einen nullten bis (m-1)-ten Code spezifiziert werden, wenn die k Bits bezüglich einer Modulzahl m dargestellt werden, wobei k eine positive ganze Zahl und m gleich der k-ten Potenz von zwei minus eins (2k-1) ist, wobei die logische Schaltung aufweist:
eine Modulo-m-Codeerzeugungseinrichtung (61, 62), die als Antwort auf das erste bis n-te binäre Eingabesignal einen ersten bis n-ten Modulo-m-Schätzcode erzeugt, die jeweils aus dem ersten bis n-ten binären Eingabesignal gewonnen werden;
eine mit der Modulo-m-Codeerzeugungseinrichtung (61, 62) gekoppelte Koinzidenz-Erkennungseinrichtung (63, 64), die als Antwort auf das erste bis n-te Modulo-m-Eingabesignal entweder Übereinstimmung oder Nichtübereinstimmung zwischen den ersten bis n-ten Modulo-m-Schätzcodes und den ersten bis n-ten Modulo-m-Eingabesignalen feststellt und ein erstes bis n-tes Vergleichsergebnis erzeugt, wobei jedes der ersten bis n-ten Vergleichsergebnisse einen der nullten bis (m-1)-ten Codes annimmt, wenn Übereinstimmung festgestellt wird, während jedes der ersten bis n-ten Vergleichsergebnisse den m-ten Code annimmt, wenn Nichtübereinstimmung festgestellt wird bzw. wenn der m-te Code im ersten bis n-ten Modulo-m-Eingabesignal bzw. im ersten bis n-ten Modulo-m-Schätzcode auftritt;
eine mit der Koinzidenz-Erkennungseinrichtung (63, 64) gekoppelte Recheneinrichtung (68) zum Ausführen der vorher gewählten Berechnung zwischen dem ersten bis n-ten Vergleichsergebnis bezüglich der Modulzahl m, um ein Modulo-m-Rechenergebnis (RC) zu erzeugen, das einen der nullten bis (m-1)-ten Codes annimmt, wenn im ersten bis n-ten Vergleichsergebnis der m-te Code nicht vorhanden ist, und das andernfalls den m-ten Code annimmt;
eine mit der Recheneinrichtung (68) gekoppelte Fehlererkennungseinrichtung, die als Antwort auf das binäre Ausgabesignal anhand des Modulo-m-Rechenergebnisses erkennt, ob in dem binären Ausgabesignal ein Fehler auftritt oder nicht, um ein Erkennungsergebnissignal (C) zu erzeugen, das entweder die Anwesenheit oder die Abwesenheit des Fehlers anzeigt.
26. Logische Schaltung (21) nach Anspruch 25, wobei die Fehlererkennungseinrichtung aufweist:
eine lokale Modulo-m-Coderzeugungseinrichtung (81, 82), die als Antwort auf das binäre Ausgabesignal einen Modulo-m- Ergebnisschätzcode erzeugt, der aus dem binären Ausgabesignal bezüglich der Modulzahl m berechnet wird;
eine mit der Recheneinrichtung (68) und der lokalen Modulo-m-Codeerzeugungseinrichtung (81, 82) gekoppelte Ergebnis- Koinzidenzeinrichtung (88, 89; 95), um entweder Übereinstimmung oder Nichtübereinstimmung zwischen dem Modulo-m-Rechenergebnis und dem Modulo-m-Ergebnisschätzcode festzustellen und ein Modulo-m-Koinzidenzsignal zu erzeugen, das einen der nullten bis (m-1)-ten Codes annimmt, wenn Übereinstimmung auftritt, und das den m-ten Code annimmt, wenn Nichtübereinstimmung auftritt bzw. wenn der m-te Code im Modulo-m-Rechenergebnis oder im Nodulo-m-Ergebnisschätzcode auftritt; und
eine mit der Ergebnis-Koinzidenzeinrichtung (88, 89; 95) gekoppelte Ausgabesignal-Erzeugungseinrichtung (91, 92; 75a) zur Erzeugung des Erkennungsergebnissignals (C).
27. Logische Schaltung (21) nach Anspruch 26, wobei die Ausgabesignal-Erzeugungseinrichtung aufweist:
eine mit der Ergebnis-Koinzidenzeinrichtung (95) gekoppelte erste Einrichtung (75a), um als Teil des Erkennungsergebnissignals bei Abwesenheit des Fehlers einen der nullten bis (m-1)-ten Codes und bei Anwesenheit des Fehlers den m-ten Code zu erzeugen; und
eine mit der ersten Einrichtung (75a) gekoppelte zweite Einrichtung (78), um als einen weiteren Teil des Erkennungsergebnissignals beim Auftreten des m-ten Codes ein Einzelbitsignal (E) zu erzeugen.
28. Logische Schaltung (21) nach Anspruch 26, wobei das binäre Ausgabesignal in einen ersten signifikanten Teil (Z1) und einen zweiten signifikanten Teil (Z2) unterteilbar ist, die in höheren bzw. niedrigeren Stellen des binären Ausgabesignals stehen, wobei die lokale Modulo-m-Codeerzeugungseinrichtung (81, 82) aufweist:
einen ersten Abschnitt (81), der als Antwort auf den ersten signifikanten Teil (Z1) einen ersten Modulo-m-Teilergebnisschätzcode erzeugt, der aus dem ersten signifikanten Teil berechnet wird; und
einen zweiten Abschnitt (82), der als Antwort auf den zweiten signifikanten Teil (Z2) einen zweiten Modulo-m-Teilergebnisschätzcode erzeugt, der aus dem zweiten signifikanten Teil berechnet wird, wobei der erste und der zweite Modulo-m- Teilergebnisschätzcode als Modulo-m-Ergebnisschätzcode erzeugt werden;
wobei die Ergebnis-Koinzidenzeinrichtung aufweist:
eine mit dem zweiten Abschnitt (82) und der Recheneinrichtung (68) gekoppelte erste Subtrahiereinrichtung (86), um den zweiten Modulo-m-Teilergebnisschätzcode von dem Modulo-m- Rechenergebnis (RC) zu subtrahieren und ein erstes Modulo-m- Differenzsignal (Da) zu erzeugen, das einer ersten Modulo-m- Differenz zwischen dem Modulo-m-Rechenergebnis und dem zweiten Modulo-m-Teilergebnisschätzcode entspricht, wobei die erste Modulo-m-Differenz einen der nullten bis m-ten Codes annimmt;
eine mit dem ersten Abschnitt (81) und dem Modulo-m-Rechenergebnis (RC) gekoppe1te zweite Subtrahiereinrichtung (87), um den ersten Modulo-m-Teilergebnisschätzcode von dem Modulo-m-Rechenergebnis (RC) zu subtrahieren und ein zweites Modulo-m-Differenzsignal (Db) zu erzeugen, das einer zweiten Modulo-m-Differenz zwischen dem Modulo-m-Rechenergebnis und dem ersten Modulo-m-Teilergebnisschätzcode entspricht, wobei die zweite Modulo-m-Differenz einen der nullten bis m-ten Codes annimmt;
eine mit dem ersten Abschnitt (81) und der ersten Subtrahiereinrichtung (86) gekoppelte erste lokale Koinzidenzeinrichtung (88), um festzustellen, ob der erste Modulo-m-Teilergebnisschätzcode mit dem ersten Modulo-m-Differenzsignal (Da) übereinstimmt, und um ein erstes Teilkoinzidenzsignal zu erzeugen, das entweder Übereinstimmung oder Nichtübereinstimmung zwischen dem ersten Modulo-m-Teilergebnisschätzcode und dem ersten Modulo-m-Differenzsignal anzeigt;
eine mit dem zweiten Abschnitt (82) und der zweiten Subtrahiereinrichtung (87) gekoppelte zweite lokale Koinzidenzeinrichtung (89), um festzustellen, ob der zweite Modulom-Teilergebnisschätzcode mit dem zweiten Modulo-m-Differenzsignal (Db) übereinstimmt, und um ein zweites Teilkoinzidenzsignal zu erzeugen, das entweder Übereinstimmung oder Nichtübereinstimmung zwischen dem zweiten Modulo-m-Teilergebnisschätzcode und dem zweiten Modulo-m-Differenzsignal anzeigt, wobei das erste und das zweite Teilkoinzidenzsignal als das Modulo-m-Koinzidenzsignal erzeugt werden.
29. Logische Schaltung (21) nach Anspruch 26, wobei das binäre Ausgabesignal in einen ersten signifikanten Teil (Z1) und einen zweiten signifikanten Teil (Z2) unterteilbar ist, die in höheren bzw. niedrigeren Stellen des binären Ausgabesignals stehen, wobei die lokale Modulo-m-Codeerzeugungseinrichtung aufweist:
einen ersten Abschnitt (81), der als Antwort auf den ersten signifikanten Teil einen ersten Modulo-m-Teilergebnisschätzcode erzeugt, der aus dem ersten signifikanten Teil berechnet wird; und
einen zweiten Abschnitt (82), der als Antwort auf den zweiten signifikanten Teil einen zweiten Modulo-m-Teilergebnisschätzcode erzeugt, der aus dem zweiten signifikanten Teil berechnet wird, wobei der erste und der zweite Modulo-m-Teilergebnisschätzcode als der Modulo-m-Ergebnisschätzcode erzeugt werden;
wobei die Ergebnis-Koinzidenzeinrichtung aufweist:
eine mit der Recheneinrichtung (68) und dem zweiten Abschnitt (82) gekoppelte lokale Subtrahiereinrichtung (96), um den zweiten Modulo-m-Teilergebnisschätzcode von dem Modulo-m- Rechenergebnis zu subtrahieren und ein lokales Modulo-m-Differenzsignal (Df) zu erzeugen, das eine Modulo-m-Differenz zwischen dem Modulo-m-Rechenergebnis und dem zweiten Modulo-m- Tei1ergebnisschätzcode darstellt; und
eine mit dem ersten Abschnitt (81) und der lokalen Subtrahiereinrichtung (96) gekoppelte lokale Koinzidenzeinrichtung (95), um festzustellen, ob der erste Modulo-m-Teilergebnisschätzcode mit dem lokalen Modulo-m-Differenzsignal (Df) übereinstimmt oder nicht, und um ein Koinzidenzsignal zu erzeugen, das dem Ergebnis der Koinzidenzprüfung zwischen dem ersten Modulo-m-Teilergebnisschätzcode und dem lokalen Modulom-Differenzsignal entspricht.
DE3750756T 1986-07-03 1987-07-03 Ausführung von Fehlererkennung unter Verwendung eines ungebrauchten Modulo-m-Kodes. Expired - Fee Related DE3750756T2 (de)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
JP15500186 1986-07-03
JP15500286 1986-07-03
JP15500786 1986-07-03
JP15500986 1986-07-03
JP15500386 1986-07-03
JP15500586 1986-07-03
JP15500886 1986-07-03
JP15500486 1986-07-03
JP15500686 1986-07-03

Publications (2)

Publication Number Publication Date
DE3750756D1 DE3750756D1 (de) 1994-12-22
DE3750756T2 true DE3750756T2 (de) 1995-04-27

Family

ID=27577485

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3750756T Expired - Fee Related DE3750756T2 (de) 1986-07-03 1987-07-03 Ausführung von Fehlererkennung unter Verwendung eines ungebrauchten Modulo-m-Kodes.

Country Status (5)

Country Link
US (1) US4870607A (de)
EP (1) EP0251809B1 (de)
AU (1) AU593661B2 (de)
CA (1) CA1288869C (de)
DE (1) DE3750756T2 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146459A (en) * 1986-11-28 1992-09-08 Canon Kabushiki Kaisha Electronic equipment with check-sum function
JPS63240625A (ja) * 1987-03-27 1988-10-06 Nec Corp 障害検出方式
US5253349A (en) * 1991-01-30 1993-10-12 International Business Machines Corporation Decreasing processing time for type 1 dyadic instructions
JP2002025298A (ja) * 2000-07-05 2002-01-25 Mitsubishi Electric Corp 集積回路
WO2005124578A2 (en) * 2004-06-16 2005-12-29 Discretix Technologies Ltd System, method and apparatus of error detection during a modular operation
US7555692B1 (en) * 2004-11-15 2009-06-30 Sun Microsystems, Inc. End-to-end residue based protection of an execution pipeline
US7769795B1 (en) * 2005-06-03 2010-08-03 Oracle America, Inc. End-to-end residue-based protection of an execution pipeline that supports floating point operations
US7849125B2 (en) 2006-07-07 2010-12-07 Via Telecom Co., Ltd Efficient computation of the modulo operation based on divisor (2n-1)
CN102812431A (zh) 2010-03-22 2012-12-05 Lrdc***有限公司 用于识别与保护一组源数据的完整性的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3602704A (en) * 1967-08-22 1971-08-31 Akushsky Izrail Apparatus for correcting errors in a residue code system
US3816728A (en) * 1972-12-14 1974-06-11 Ibm Modulo 9 residue generating and checking circuit
US3873820A (en) * 1974-01-31 1975-03-25 Ibm Apparatus for checking partial products in iterative multiply operations
US4181969A (en) * 1978-01-18 1980-01-01 Westinghouse Electric Corp. System for detecting and isolating static bit faults in a network of arithmetic units
JPS6121534A (ja) * 1984-06-29 1986-01-30 Fujitsu Ltd レシデユチエツク回路

Also Published As

Publication number Publication date
AU593661B2 (en) 1990-02-15
EP0251809B1 (de) 1994-11-17
CA1288869C (en) 1991-09-10
AU7508487A (en) 1988-01-07
EP0251809A3 (en) 1990-08-29
EP0251809A2 (de) 1988-01-07
US4870607A (en) 1989-09-26
DE3750756D1 (de) 1994-12-22

Similar Documents

Publication Publication Date Title
DE69114881T2 (de) Analysevorrichtung zur Rettung von Halbleiterspeicherfehlern.
DE68920560T2 (de) Restprüfungsvorrichtung zur Fehlerkennung in Additions-, Substraktions-, Multiplikations-, Divisions- und Quadratwurzel-Operationen.
DE68922880T2 (de) Selbstprüfende Majoritätsvotumlogik für fehlertolerante Rechnungsanwendungen.
DE2934971A1 (de) Datenverarbeitungssystem
DE2722124A1 (de) Anordnung zum feststellen des prioritaetsranges in einem dv-system
DE102006005817B4 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE69121733T2 (de) Technik zum eingebauten Selbsttest für Nur-Lese-Speicher
DE3750756T2 (de) Ausführung von Fehlererkennung unter Verwendung eines ungebrauchten Modulo-m-Kodes.
DE2536625C2 (de) Paritätsprüfschaltung für ein binär zählendes Register
DE68918840T2 (de) Fehlererkennung für teilschreiboperationen für speicher.
DE69505554T2 (de) Digitale arithmetische schaltung
DE3786853T2 (de) Gerät zur Erkennung und Klassifizierung von Steuerwortfehlern.
DE69029164T2 (de) Vorrichtung und Verfahren zum Ersetzen der Parität
DE3440680C2 (de)
DE3329023C2 (de)
DE2503152A1 (de) Schaltungsanordnung zur erkennung von durch bauteilausfall verursachten fehlern in der multipliziereinheit eines datenverarbeitungssystems
DE4019646A1 (de) Vorrichtung fuer echtzeitmultiplikation in 2er-komplement-darstellung in einem digitalen signalprozessorsystem und ein verfahren dafuer
DE69230520T2 (de) Verfahren und Anordung zur Erzeugung von Summeinformation-/Rundungskontrolle-Signal
DE69120104T2 (de) Fehlerbeseitigung für Superrechner
DE1937259B2 (de) Selbstpruefende fehlererkennungsschaltung
DE69312457T2 (de) Verfahren zum Erfassen von Ausführungsfehlern in einem Programm
DE69637427T2 (de) Verfahren und Gerät zur Erkennung doppelter Eintragungen in einer Nachschlagtabelle
DE19524863B4 (de) Mikroprozessor mit eingebautem Abschnitt zur zyklischen Redundanzprüfung und Verfahren zum Ausführen von Operationen zur zyklischen Redundanzprüfung unter Verwendung von diesem
EP0433315A1 (de) Schaltungsanordnung zur addition oder subtraktion von im bcd-code oder dual-code codierten operanden
EP0193711B1 (de) Schaltungsanordnung zur Funktionsüberwachung eines arithmetische Operationen ausführenden Rechenwerkes anhand von Paritätsbits

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee