DE69505554T2 - Digitale arithmetische schaltung - Google Patents

Digitale arithmetische schaltung

Info

Publication number
DE69505554T2
DE69505554T2 DE69505554T DE69505554T DE69505554T2 DE 69505554 T2 DE69505554 T2 DE 69505554T2 DE 69505554 T DE69505554 T DE 69505554T DE 69505554 T DE69505554 T DE 69505554T DE 69505554 T2 DE69505554 T2 DE 69505554T2
Authority
DE
Germany
Prior art keywords
circuit
input
operands
operand
inverted
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
DE69505554T
Other languages
English (en)
Other versions
DE69505554D1 (de
Inventor
Richard Anthony Malvern Worcestershire Wr14 3Ps Evans
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.)
UK Secretary of State for Defence
Original Assignee
UK Secretary of State for Defence
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 UK Secretary of State for Defence filed Critical UK Secretary of State for Defence
Application granted granted Critical
Publication of DE69505554D1 publication Critical patent/DE69505554D1/de
Publication of DE69505554T2 publication Critical patent/DE69505554T2/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/14Error detection or correction of the data by redundancy in operation
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1497Details of time redundant execution on a single processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Hardware Redundancy (AREA)

Description

  • Diese Erfindung bezieht sich auf eine digitale arithmetische Schaltung und insbesondere auf eine Schaltung, die Fehlererfassungseigenschaften besitzt.
  • Digitale arithmetische Schaltungen sind auf vielen Gebieten weit verbreitet. Im letzten Jahrzehnt hat sich die Elektroniktechnologie schnell entwickelt, wobei die integrierte Schaltungstechnik und die Systemtechnik infolge hiervon komplexer geworden sind. Die erhöhte Komplexität bringt mehrere Probleme mit sich, führt jedoch insbesondere zu einer verringerten Zuverlässigkeit aufgrund der Alterung, der Übergangsfehlfunktionen im Betrieb und der Produktionsfehler während der Herstellung. Diese Probleme nehmen mit steigender Schaltungs- und Systemkomplexität sowie mit sinkender Bausteingröße zu. Ein weiterer Aspekt der zunehmenden Schaltungskomplexität besteht darin, daß es eventuell wirtschaftlich nicht möglich ist, alle Aspekte einer komplexen Schaltung oder eines Systems vollständig zu testen. Eine solche Schaltung oder ein solches System kann daher in einer Form hergestellt werden, bei der unidentifizierte Fehler entstehen. Die Erfassung von Schaltungsfehlern wird zunehmend wichtig für sicherheitskritische Anwendungen wie z. B. Flugzeugsysteme.
  • Verfahren zum Erfassen von Fehlern sind bekannt, wie z. B. diejenigen, die Hamming-Codes verwenden, wie beschrieben ist in "Error Detecting and Error Correcting Codes", R. W. Hamming, Bell Systems Technical Journal, Bd. 29, Nr. 1, S. 147-160, Januar 1950. Hamming-Codes sind Paritätsprüfcodes, die für die Überprüfung von Datenübertragungen und Datenspeicherung nützlich sind.
  • Sie besitzen jedoch den wichtigen Nachteil, daß sie nicht mittels arithmetischer Operationen erhalten werden können und nicht in arithmetischen Schaltungen verwendet werden können.
  • Codes, die die Beschränkung hinsichtlich der Erhaltung in arithmetischen Operationen überwinden können, sind beschrieben in "Error Detecting Code, Self-Checking Circuits and Applications", J. Wakerly, Elsevier, North Holland Inc., 1978. Ein einfaches Beispiel ist der sogenannte AN-Code. Hierbei werden Eingangsdatenwörter mit einem angelegten Multiplikanden multipliziert. Die Ausgänge, die nicht ein Vielfaches des Multiplikanden sind, können somit als fehlerhaft betrachtet werden.
  • Arithmetische Codes erfordern alle eine zusätzliche Schaltung, um eine anfängliche Codierung und Fehlerprüfung auszuführen. Außerdem ist mehr Hardware erforderlich, um die arithmetische Funktion zu implementieren, da codierte Datenwörter länger sind als uncodierte Datenwörter.
  • Zeitredundante Lösungsansätze zur Fehlererfassung wurden ebenfalls implementiert. Diese Verfahren erfordern eine zusätzliche Verarbeitungszeit im Vergleich zu derjenigen, die normalerweise erforderlich ist, um die gewünschte Operation durchzuführen. Folglich kann eine Operation, die ohne Fehlererfassung in einer Zeiteinheit abgeschlossen werden könnte, zwei oder mehr Zeiteinheiten benötigen, wenn sie in einem Fehlererfassungssystem ausgeführt wird, das Zeitredundanz verwendet. Ein Beispiel der Zeitredundanz wurde vorgeschlagen von Patel und Fung ("Concurrent Error Detection in ALUs by Recomputing with Shifted Operands", J. H. Patel und L. Y. Fung, IEEE Trans. on Computers, Bd. C-31, S. 589-595, Juli 1982). Dies verwendet die zweimalige Berechnung eines gegebenen Ergebnisses, während die Position der Bits der Operanden zwischen der ersten und der zweiten Berechnung verschoben wird. Nach der Wiederausrichtung der zwei Ausgangsergebnisse erscheint irgendein Fehler, der von der Hardware hervorgerufen worden ist, in den zwei Ausgangswerten an unterschiedlichen Positionen und kann erfaßt werden. Dieser Ansatz ist auf Schaltungen wie z. B. arithmetischlogische Einheiten (ALUs) anwendbar, die in modularer Weise mit geringer oder keiner Verbindung zwischen den Modulen konstruiert sind. Dies hat den Nachteil, daß zusätzliche Hardwaremodule benötigt werden, um die verschobenen Operanden zu handhaben.
  • Das Verfahren von T. H. Chen u. a. ("Design of Concurrent Error-Detectable VLSI-Based Array Dividers", T. H. Chen, L. G. Chen, Y. S. Chang, Proc. IEEE International Conference on Computer Design (ICCD), 1992) nutzt die Schaltungsregelmäßigkeit, um eine Schaltung in zwei identische Teile zu trennen, von denen jeder nur eine Hälfte der benötigten Berechnung ausführt. Jeder Teil der Schaltung wird anschließend zweimal verwendet, um zwei vollständige Ergebnisse zu erzeugen, die bei Fehlen von Fehlern identisch sein sollten. Dieser Ansatz ist jedoch auf Schaltungen mit Regelmäßigkeit beschränkt, die eine Trennung ermöglicht, um die Funktionen oder Berechnungen durchzuführen.
  • Ein Addier- und Subtrahiersystem ist beschrieben in "Patent Abstacts of Japan", Bd. 13, Nr. 460 (P-946), 18. Oktober 1989, und addiert das Ergebnis der Operationen (A - B) und (B - A), woraufhin mit diesem Ergebnis eine Nullprüfung durchgeführt wird.
  • Es ist eine Aufgabe der Erfindung, eine alternative Form einer digitalen arithmetischen Schaltung mit Fehlererfassungseigenschaften zu schaffen.
  • Die vorliegende Erfindung schafft eine digitale arithmetische Schaltung, mit einer Verarbeitungseinrichtung zum Durchführen einer arithmetischen Operation mit wenigstens einem Eingangsoperanden und zum Erzeugen eines Ergebnissignals als Antwort hierauf sowie einer Einrichtung zum Eingeben des wenigstens einen Eingangsoperanden in die Verarbeitungseinrichtung, dadurch gekennzeichnet, daß die Verarbeitungseinrichtung umfaßt:
  • (i) Eine Einrichtung zum Invertieren wenigstens eines in die Verarbeitungseinrichtung eingegebenen Operanden,
  • (ii) eine Einrichtung zum Durchführen der arithmetischen Operation mit dem wenigstens einen Eingangsoperanden und zum Durchführen der arithmetischen Operation mit dem wenigstens einen invertierten Operanden, und
  • (iii) eine Einrichtung zum Vergleichen der Ergebnissignale der Operationen, um eine Anzeige für das Auftreten eines Fehlers in der Schaltungsoperation zu erzeugen; und
  • die Verarbeitungseinrichtung so beschaffen ist, daß sie eine andere arithmetische Operation als die Addition oder Subtraktion mit wenigstens einem Eingangsoperanden durchführt.
  • Für den Zweck dieser Beschreibung ist der Ausdruck "Operand" definiert als eine vorzeichenbehaftete Binärzahl, mit der mittels der digitalen arithmetischen Schaltung der Erfindung eine arithmetische Operation durchgeführt wird. Die Erfindung ist geeignet für Operanden, für die das Vorzeichen des Operanden in der Bitdarstellung der Zahl impliziert ist, d. h. es gibt kein zusätzliches Bit, das das Vorzeichen anzeigt. Die Erfindung ist daher geeignet für Systeme, die Komplementdarstellungen von Zahlen wie z. B. die Zweierkomplementdarstellung verwenden.
  • Der Ausdruck "Invertieren" in Bezug auf einen Operanden bedeutet das Ändern des Vorzeichens einer Zahl, während ihre Größe erhalten bleibt. Bei einer Zweierkomplementzahl bedeutet dies die Änderung aller Bits in den Zahlen von 0 oder 1 nach jeweils 1 bzw. 0 und das Addieren einer 1 zum Ergebnis. Die Ausdrücke "invertiert" und "nicht invertiert" sind dementsprechend aufzufassen.
  • Die Erfindung hat den Vorteil, daß sie eine Einrichtung zur Fehlererfassung in arithmetischen Schaltungen schafft, die im Vergleich zu Schaltungen des Standes der Technik einfach implementiert werden kann. Die Eingangsoperanden werden an die Schaltung zweimal angelegt und beim zweiten Anlegen invertiert. Die Invertierung ermöglicht, daß Fehler erfaßt werden, wenn die zwei Ausgänge mittels der Vergleichseinrichtung verglichen werden.
  • Die Erfindung schafft die Möglichkeit zur Erfassung von Fehlern, die durch sowohl dauerhafte als auch vorübergehende Schaltungsfehler verursacht werden, die, den Logikwert am Knoten der Schaltung ändern. Sie kann ferner Mehrfachfehler erfassen. Sie kann auf bestehende Digitalsignalverarbeitungsschaltungen (DSP-Schaltungen) angewendet werden und kann für Selbsttestanwendungen verwendet werden.
  • Die digitale arithmetische Schaltung der Erfindung kann einen Ausgangswert liefern, der den Ort eines Fehlers innerhalb der Schaltung anzeigt. Dies vereinfacht die Fehlerkorrektur, sobald der Fehlerort ermittelt worden ist.
  • In einer bevorzugten Ausführungsform ist die Erfindung so beschaffen, daß sie einen Nullausgang an der Vergleichseinrichtung erzeugt, wenn in der Schaltung kein Fehler vorliegt. Ein Ausgang ungleich 0 zeigt das Auftreten eines Fehlers an.
  • In einer weiteren Ausführungsform enthält die Erfindung wenigstens zwei ähnliche digitale arithmetische Schaltungen, von denen eine dazu dient, eine Operation mit dem Operanden durchzuführen, während die andere eine konkurrierende Operation mit dem invertierten Operanden durchführt.
  • Die Erfindung schafft ferner ein Verfahren zum Erfassen von Fehlern im Betrieb einer digitalen arithmetischen Schaltung, mit den Schritten:
  • (i) Zuführen wenigstens eines Eingangsoperanden zur Schaltung;
  • (ii) Invertieren wenigstens eines der Eingangsoperanden;
  • dadurch gekennzeichnet, daß das Verfahren die Schritte enthält:
  • (iii) Durchführen einer arithmetischen Operation, die eine andere Operation als eine Addition oder Subtraktion ist, mit
  • (a) einem oder mehreren Operanden ausschließlich der invertierten Operanden, und
  • (b) einem oder mehreren Operanden einschließlich wenigstens eines invertierten Operanden; und
  • (iv) Vergleichen der Schaltungsausgänge, die aus den Operationen resultieren, um einen Vergleichswert zu erzeugen, der das Auftreten eines Fehlers oder von Fehlern in der Schaltungsoperation anzeigt.
  • Im folgenden wird die Erfindung mit Bezug auf die Zeichnungen beschrieben, in welchen:
  • Fig. 1 eine digitale arithmetische Schaltung der Erfindung ist;
  • Fig. 2 ein Zeitablaufdiagramm der Operation der Schaltung der Fig. 1 ist;
  • Fig. 3 eine weitere Ausführungsform einer digitalen arithmetischen Schaltung der Erfindung in Form eines Multiplizierer-Akkumulators ist;
  • Fig. 4 eine Zelle der Schaltung der Fig. 3 ist; und
  • Fig. 5 eine Serie von Beispielen der Schaltung der Fig. 3 bei einer Fehlererfassungsoperation zeigt.
  • In Fig. 1 ist ein Blockschaltbild einer digitalen arithmetischen Schaltung der Erfindung gezeigt, wobei die Schaltung allgemein mit 10 bezeichnet ist. Die Schaltung 10 ist so beschaffen, daß sie zwei in Fig. 1 nicht gezeigte Eingangszahlen A und B empfängt, die beide Zweierkomplementzahlen sind, und A und B addiert, um eine Zweierkomplement-Ausgangssumme S zu erzeugen. A und B sind 4-Bit-Zahlen, mit den jeweiligen Bits a&sub0; bis a&sub3; und b&sub0; bis b&sub3;. Im allgemeinen besitzen A und B die Bits a&sub1; und bj (i = 0 bis 3, j = 0 bis 3), wobei i = 0 und j - 0 jeweils das niedrigstwertige Bit (lsb) und i = 3 und j = 3 jeweils ein höchstwertiges Bit (msb) darstellen. Die Summe S ist eine 5-Bit-Zahl mit den entsprechenden Bits so bis s&sub4;; im allgemeinen besitzt S die Bits sk, wobei k = 0 und k = 4 jeweils das lsb bzw. msb von S darstellen. S besitzt ein fünftes Bit s&sub4;, da die Addition zweier 4-Bit-Zahlen A und B ein Übertragsbit erzeugen kann.
  • Die Zahlen A und B werden in die Schaltung 10 auf den Eingangsleitungen eingegeben, die jeweils mit 12, 14, 16, 18 bzw. 20, 22, 24, 26 bezeichnet sind, wobei alle mit einer Invertiererschaltung 28 verbunden sind. Die Invertiererschaltung 28 besitzt einen Freigabeeingang 30. Die Invertiererschaltung 28 ist so beschaffen, daß sie Ausgänge von -A und -B erzeugt, d. h. sie invertiert die Zahlen A und B, wenn sie am Freigabeeingang 30 ein Eingangssignal empfängt, das auf Hochpegel liegt. Das Invertieren der Vorzeichen von A und B wird durch Invertieren der entsprechenden Bits a und b und Addieren von 1 zur jeweils resultierenden Zahl ausgeführt. Wenn das Freigabeeingangssignal auf Niedrigpegel liegt, ist der Ausgang der Invertiererschaltung 28 gleich A und gleich B, d. h. die Zahlen A und B werden ohne Durchführung irgendeiner Operation mit denselben durch die Invertiererschaltung 28 übertragen. Die Ausgangsbits a&sub0;, a&sub1;. a&sub2;, a&sub3; und b&sub0;, b&sub1;, b&sub2;, b&sub3; der Invertiererschaltung 28 sind die Ausgangsleitungen 32, 34, 36, 38 bzw. 40, 42, 44, 46.
  • Die Leitungen 32 bis 38 und 40 bis 46 verbinden die Invertiererschaltung 28 mit der Addiererschaltung 48. Die Addiererschaltung 48 ist ein binärer Übertragswellenaddierer. Er addiert die Zweierkomplementzahlen A und B oder deren invertierte Formen -A und -B, um ein Zweierkomplementergebnis zu erzeugen. Die Ausgangsbits s&sub0;, s&sub1;, s&sub2;, s&sub3; und s&sub4; der Addiererschaltung 48 werden auf den Leitungen 50, 52, 54, 56 bzw. 58 ausgegeben. Die Ausgangsleitungen 50 bis 58 verbinden die Addiererschaltung 48 mit einer Gruppe von taktgesteuerten Zwischenspeichern 60, wobei ein Zwischenspeicher jeweils einer Leitung zugewiesen ist. Die Zwischenspeicher 60 sind so beschaffen, daß sie ihre Inhalte an die Ausgangsleitungen 62, 64, 66, 68 und 70 weiterleiten, wenn das Eingangstaktsignal auf Hochpegel liegt, und diese Signalwerte auf den jeweiligen Zwischenspeicherausgängen halten, wenn das Taktsignal auf Niedrigpegel liegt.
  • Ein getrennter Satz von Ausgangsleitungen 72, 74, 76, 78 und 80 wird aus den Ausgangsleitungen 50 bis 58 entnommen. Diese Leitungen führen die Ausgangsbits s&sub0; bis s&sub4; von der Addiererschaltung 48, wenn der Invertierer 28 durch den Freigabeeingang 30 freigegeben worden ist. Wenn somit die Schaltung 48 die Summe von -A und -B ausgibt, werden die Ausgänge auf den Leitungen 50 bis 58 jeweils auf den Leitungen 72 bis 80 geführt.
  • Die Ausgangsleitungen 62 bis 70 und 72 bis 80 sind mit einer Vergleichsschaltung 82 verbunden. Die von diesen Ausgangsleitungen geführten Bits sind die Bits von den Zwischenspeichern 60 bzw. die Bits von der Addiererschaltung 48. Die Vergleichsschaltung 82 vergleicht die entsprechenden Bits und erzeugt einen 5-Bit-Ausgang r&sub0;, r&sub2;, r&sub2;, r&sub3; und r&sub4;. Diese Bits werden auf den Leitungen 84, 86, 88, 90 und 92 ausgegeben. Die Ausgangsleitungen 84 bis 92 sind mit einem Zwischenspeicher 94 verbunden, der einen Freigabeeingang 96 besitzt. Der Zwischenspeicher 94 besitzt fünf Ausgangsleitungen 98, 100, 102, 104 und 106. Der Zwischenspeicher 94 ist so beschaffen, daß er die Bits auf den Leitungen 84 bis 92 empfängt und diese auf den Leitungen 98 bis 106 ausgibt, wenn der Freigabeeingang 96 auf Hochpegel liegt, und diese hält, wenn der Freigabeeingang auf Niedrigpegel liegt.
  • Die Operation der Schaltung 10 wird im folgenden mit Bezug auf das Zeitablaufdiagramm der Fig. 2 beschrieben. Zu Beginn eines Zyklus zum Zeitpunkt t = 0 werden die Eingangszahlen A und B auf den Eingangsleitungen 12 bis 18 und 20 bis 26 eingegeben. Sie werden auf diesen Leitungen für zwei Taktzyklen gehalten, nämlich bis zum Zeitpunkt t = 4. Die Zahlen A und B werden ohne Invertie rung über die Invertiererschaltung 28 geleitet, da diese zu diesem Zeitpunkt vom Eingang 30 nicht freigegeben ist. Die Zahlen A und B werden somit in die Addiererschaltung 48 auf den Leitungen 32 bis 38 bzw. 40 bis 46 eingegeben. Die Addiererschaltung 48 berechnet die Summe S&sub1; = A + B, wobei das Ergebnis auf den Leitungen 50 bis 58 ausgegeben wird. Mit dem Taktsignal bei t = 1 wird der Wert der Summe 51 auf den Leitungen 50 bis 58 im Zwischenspeicher 60 gespeichert. Somit bleibt der Ausgang des Zwischenspeichers 60 auf den Leitungen 62 bis 70 gleich dem Eingang 51 auf den Leitungen 50 bis 58 bis zum nächsten Taktsignal bei t = 3. Zum Zeitpunkt t = 2 nimmt das Invertierersignal am Freigabeeingang 30 der Invertiererschaltung 28 Hochpegel an, wodurch die Invertiererschaltung 28 freigegeben wird. Folglich erzeugt die Invertiererschaltung die Zahlen -A und -B, die auf den Leitungen 32 bis 38 bzw. 40 bis 46 ausgegeben werden. Die Addiererschaltung 48 berechnet dann die Summe S&sub2; = (-A) + (-B), die auf den Leitungen 50 bis 58 und folglich auf den Leitungen 72 bis 80, die mit den Leitungen 50 bis 58 verbunden sind, ausgegeben wird.
  • Als Folge hiervon weist die Vergleichsschaltung 82 zu den Zeitpunkten t = 2 und t = 3 Eingänge auf, die S&sub1; auf den Leitungen 62 bis 70 und S&sub2; auf den Leitungen 72 bis 80 entsprechen.
  • Die Vergleichsschaltung 82 vergleicht die Summen 51 und S&sub2; durch Addieren derselben, d. h. sie ist eine Addiererschaltung, wobei das Ergebnis auf den Leitungen 84 bis 92 ausgegeben wird. Zwischen den Zeitpunkten t = 2 und t = 3 nimmt das Signal am Freigabeeingang 96 des Zwischenspeichers 94 Hochpegel an. Anschließend wird der Vergleich von S&sub1; und S&sub2; auf den Leitungen 98 bis 106 ausgegeben und verbleibt zwischen den Zeitpunkten t = 3 und t = 4 auf diesen Leitungen.
  • Die Schaltung 10 erfaßt Fehler in ihrer Operation auf folgende Weise. Wenn die Schaltung 10 ohne Fehler arbeitet, ist der Ausgang aller Leitungen 98 bis 106 gleich 0. Dies liegt daran, daß die Vergleichsschaltung 82 S&sub1; und S&sub2; addiert, was äquivalent ist zum Addieren von (A + B) zu (-A) + (-B), was 0 ergibt. Wenn jedoch ein Fehler in der Schaltung 10 vorliegt, können eines oder mehrere der Ausgangsbits der Vergleichsschaltung 82 gleich 1 sein.
  • Am Ende des ersten Durchlaufs durch die Schaltung 10, d. h. bei t = 2, bevor A und B invertiert worden sind, ist der Ausgang des Zwischenspeichers 60 gleich
  • S&sub1; = A + B + e' (1)
  • wobei e' ein Wert ist, der durch einen Fehler im ersten Durchlauf eingeführt wird. Wenn kein Fehler vorliegt, ist e' gleich 0.
  • Nach dem zweiten Durchlauf, d. h. wenn A und B invertiert worden sind, ist der Ausgang der Addiererschaltung 48 gleich
  • S&sub1; = -A - B + e" (2)
  • wobei e " ein Wert ist, der durch einen Fehler im zweiten Durchlauf eingeführt wird. Wenn kein Fehler vorliegt, ist e " gleich 0.
  • Der Ausgang des Zwischenspeichers 94 nach t = 2 beträgt dann
  • S&sub1; + S&sub2; = (A + B + e') + (-A - B + e") (3)
  • wenn der Wert (e' + e ") ungleich 0 ist, liegt entweder in S&sub1; oder S&sub2; oder in beiden ein Fehler vor. Es ist zu beachten, daß der Wert von (e' + e ") auch dann 0 sein kann, wenn ein Fehler vorliegt.
  • Die folgenden Beispiele zeigen die Operation der Schaltung 10 beim Erfassen von Fehlern. In diesen Beispielen sind die Zahlen A und B gleich 1011 bzw. 0111. Dies sind Zweierkomplementdarstellungen der Zahlen -5 und +7. Ihre invertierten Formen -A und -B sind gleich 0101 bzw. 1001. Bei Fehlen von Fehlern sind die Ergebnisse aus den ersten und zweiten Durchläufen durch die Schaltung gleich S&sub1; = 00010 und S&sub2; = 11110. Dies sind die Zweierkomplementformen von +2 bzw. -2. Beispiel 1 - keine Fehler
  • In diesem Beispiel ist der Ausgang der Schaltung 10 gleich 0, was anzeigt, daß in der Schaltung 10 keine Fehler aufgetreten sind. Beispiel 2 - Bit b&sub1; klemmt auf 1
  • In diesem Beispiel klemmt die Leitung, die das Bit b&sub1; führt, auf 1. Dies führt dazu, daß im zweiten Durchlauf durch die Schaltung ein Fehler erzeugt wird, jedoch nicht während des ersten Durchlaufs, da b&sub1; im ersten Durchlauf bereits den Wert 1 aufweist. Der Vergleich der Ergebnisse aus den zwei Durchläufen erzeugt auf den Ausgangsleitungen 98 bis 106 ein Ergebnis ungleich 0, nämlich 00010, was anzeigt, daß ein Fehler aufgetreten ist. Beispiel 3 - Bit a&sub0; klemmt auf 0
  • Beispiel 3 zeigt die Auswirkungen einer auf 0 klemmenden Leitung, die das Bit a&sub0; führt. Dies erzeugt einen Fehler während beider Durchläufe durch die Schaltung 10. Der Vergleich der Ergebnisse aus den zwei Durchläufen erzeugt auf den Ausgangsleitungen 98 bis 106 wiederum ein Ausgangsergebnis ungleich 0, nämlich 11110, was das Auftreten eines Fehlers anzeigt.
  • Beispiel 4 - Übertragsbit im Addierer 48 klemmt auf 0
  • In diesem Beispiel klemmt ein Übertragsbit, das aus der Addition von a&sub1; und b&sub1; resultiert sowie irgendein Übertrag aus der Addition von a&sub0; und bo auf 0.
  • Es wird nur im ersten Durchlauf ein Fehler erzeugt. Das Vorhandensein eines Fehlers wird wiederum angezeigt durch die Vergleichsergebnisse ungleich 0.
  • Aus dem obenerwähnten wird deutlich, daß alle Fehler in den Beispielen 2, 3 und 4 unterschiedliche Ergebnisse beim Vergleich von S&sub1; und S&sub2; erzeugen. Somit kann dann, wenn ein Fehler auftritt, der resultierende Vergleichswert eine Anzeige des Ortes des Fehlers innerhalb der Schaltung 10 liefern.
  • In Fig. 3 ist ein schematisches Schaubild einer digitalen arithmetischen Schaltung der Erfindung in Form einer Zweierkomplement-Multiplizierer-Akkumulator-Schaltung gezeigt, die allgemein mit 210 bezeichnet ist. Die Schaltung 210 ist so beschaffen, daß sie als Eingänge die Zweierkomplementzahlen X, Y und Z empfängt und einen Ausgang P erzeugt, wobei P = XY + Z. Die Zahlen X, Y und Z sind 4-Bit-Zweierkomplementzahlen mit den jeweiligen Bits x&sub0; bis x&sub3;, y&sub0; bis y&sub3; und z&sub0; bis z&sub3;. P ist eine 8-Bit- Zweierkomplementzahl, die durch die Bits p&sub0; bis p&sub7; dargestellt wird.
  • Die Schaltung 210 enthält vier Zeilen von Multiplizierer- Addierer-Zellen 212, durch Kreise angezeigt, wobei jede Zeile vier solcher Zellen enthält. Die Zellen 212 sind ferner in vier Spalten angeordnet. Die Zellen tragen die Indizes i, j, die die Spalten- und Zeilenpositionen anzeigen; d. h. die Zelle 212ij ist die j-te Zelle in der i-ten Spalte (i = 0 bis 3, j = 0 bis 3). Der Spaltenindex i nimmt von rechts nach links zu, so daß die Zellen (j = 0 bis 3) die am weitesten rechts liegenden Zellen sind. In ähnlicher Weise nimmt der Zeilenindex j von oben nach unten zu, so daß die Zellen 212i0 (i = 0 bis 3) die obersten Zellen sind. Die Spalten sind so verschoben, daß die Zelle 212ij unterhalb der Zelle 212i+1,j-1 angeordnet ist, d. h. eine Zelle in der Zeile i ist gegenüber der Zelle in der Zeile (i-1) in der gleichen Spalte um eine Zelle nach links verschoben.
  • Die Zellen 212 sind mit ihren entsprechenden Spaltennachbarn über Verbindungen wie z. B. x verbunden, und mit ihren Zeilennachbarn über Verbindungen wie z. B. y verbunden. Sie sind ferner mit ihren Nachbarn in der nächsthöheren Zeile über Verbindungen wie z. B. s verbunden. Zum Beispiel ist die Zelle 212&sub2;&sub2; über die Verbindung s31 mit der Zelle 212&sub3;&sub1; verbunden. Nicht alle Verbindungen der Arten x, y und z sind bezeichnet, um die Komplexität der Darstellung zu verringern.
  • Ein Übertragseingang carryj wird in die am weitesten rechts liegende Zelle 2120 jeder Zeile eingegeben.
  • Dieser Eingang hat den Wert 0 für jede der Zeilen j = 0, 1 und 2 und den Wert 1 für die Zeile j = 3. Jede Zelle 212 in jeder Zeile besitzt eine Übertragsverbindung wie z. B. c11 zu ihrer Nachbarzelle 212 in der Zeile. Zusätzlich besitzen die Zellen 212&sub3;&sub0;, 212&sub3;&sub1; und 212&sub3;&sub2; Übertragsverbindungen c30, c31 und c32 zur nächstniedrigeren Zelle 212 in der gleichen Spalte i = 3; d. h. die Verbindungen führen zu den Zellen 212&sub3;&sub1;, 212&sub3;&sub2; und 212&sub3;&sub3;.
  • Die Zelle 212&sub3;&sub3; besitzt eine Übertragsverbindung c33 zum Halbaddierer 214. Der Halbaddierer 214 besitzt einen Eingang 216, der auf 1 gesetzt ist.
  • Die Schaltung 210 besitzt acht Ausgänge. Jeder Ausgang ist ein Bit im Zweierkomplementausgang P. Diese sind durch die Leitungen po bis p~ bezeichnet. Die Leitungen p&sub0; bis p&sub3; sind die Ausgänge der Zellen 2120, 2121, 212&sub0;&sub2; und 212&sub0;&sub3;; d. h. sie sind die Ausgänge aller Zellen in der Spalte i = 0. Die Ausgänge p&sub4; bis p&sub6; sind Ausgänge von den Zellen 212&sub1;&sub3;, 212&sub2;&sub3; und 212&sub3;&sub3;; d. h. sie sind die Ausgänge der Zellen 212 in den Spalten i = 1, 2 und 3. Der Ausgang P7 ist ein Ausgang vom Halbaddierer 214.
  • Die Zellen 212 in der obersten Zeile j0 empfangen die Eingänge, die den Zweierkomplementzahlen x und z entsprechen, und werden in die Zelle 212o eingegeben, die der jeweiligen Bitbezeichnung zugeordnet ist. Zum Beispiel werden die Bits x&sub2; und 22 in die Zelle 212&sub2;&sub0; eingegeben. In ähnlicher Weise werden die Bits x&sub1; und a&sub1; in die Zelle 212&sub1;&sub0; eingegeben.
  • Die Zellen in der am weitesten rechts liegenden Spalte i = 0 empfangen die Eingänge, die der Zweierkomplementzahl Y zugeordnet sind. Jedes Bit y&sub0; bis y&sub3; wird in die Zelle 2120j eingegeben, die der entsprechenden Bitbezeichnung zugeordnet ist. Zum Beispiel werden die Bits Y1 und y&sub2; in die Zellen 212&sub0;&sub1; und 2122 eingegeben.
  • In Fig. 4 ist ein schematisches Schaubild der Logik und der Verbindungen einer Zelle wie z. B. 212ij gezeigt. Jede Zelle 212ij besitzt zwei Komponenten: ein UND-Gatter 300 und einen Volladdierer 302.
  • Jedes UND-Gatter wie z. B. 300 besitzt zwei Eingänge, einen Eingang von einer Diagonalleitung x und einen Quereingang von der Leitung y. Die Leitung x bildet eine Spaltendurchgangsverbindung zur Zelle 212ij von der Zelle bis zur Zelle 212i,j+1- In ähnlicher Weise bildet die Leitung y eine Zeilendurchgangsverbindung für die Zelle 212ij von der Zelle 212i-1j bis zur Zelle 212i+1,j. Folglich werden die Bits auf den Leitungen x und y zu allen Zellen 212 in ihren entsprechenden Spalten und Zeilen gleichzeitig weitergeleitet. Der Addierer 302 empfängt einen Summeneingang s von oben und einen zweiten Eingang, der den Ausgang des UND-Gatters 300 umfaßt. Er empfängt ferner einen Übertragsbiteingang auf c von rechts und erzeugt einen Übertragsbitausgang auf c' nach links.
  • Die Leitungen x und y liefern Bits von den Zahlen X und Y. Jedes UND-Gatter 300 bewirkt eine "Und-Verknüpfung" der Bits auf den Leitungen x und y, die mit diesem verbunden sind. Es erzeugt ein Partialprodukt dieser Bits, das einen Eingang für den Volladdierer 302 liefert, der einen zweiten Eingang von der Leitung s und einen dritten Eingang von der Übertragsleitung c empfängt. Für die Zellen 212 in Zeilen, für die j > 0 gilt, sind die Eingangsleitungen s mit der Zelle 212ij verbunden und liefern jeweils ein entsprechendes Bit aus seiner diagonal darüber liegenden Nachbarzelle 212i+1,j-1. Die Übertragsleitung c liefert ein Übertragsbit von der Zelle 212i-1,j in derselben Zeile. Der Volladdiererübertragsausgang c' liefert ein Übertragsbit an die nächste Zelle 212i+1,j in der Zeile, falls verfügbar. Dessen Summenausgang s' liefert eine Partialsumme für die Eingabe in die nächste Zelle 212i-1, j+1.
  • Das Eingangsbit 23 in die Zelle 212&sub3;&sub0; ist invertiert. Dies liegt daran, da es das höchstwertige Bit (msb) der Zweierkomplementzahl Z ist und ein negatives Gewicht besitzt.
  • Die Zellen 212&sub3;&sub0;, 212&sub3;&sub1;, 212&sub3;&sub2;, 212&sub2;&sub3;, 212&sub1;&sub3; und 212&sub0;&sub3; besitzen ein (nicht gezeigtes) NICHT-UND-Gatter, das das UND-Gatter 300 ersetzt. Dies liegt daran, daß diese Zellen 212 die Wechselwirkung der Vorzeichenbits wie z. B. x&sub3; mit den Nichtvorzeichenbits nutzen und Partialprodukte mit negativen Gewichten erzeugen. Das Ersetzen des UND-Gatters 300 durch ein NICHT-UND-Gatter invertiert die Partialsumme vor der Summierung durch den Volladdierer 302.
  • Im folgenden wird die Operation der Schaltung 210 beschrieben. Die Bits x&sub0; bis x&sub3;, die der Zahl X zugeordnet sind, werden über die jeweiligen Zellen 212i0 in der obersten Zeile in die Schaltung 210 eingegeben, wie oben beschrieben worden ist. Die Bits yo bis y&sub3; werden über die Zellen auf der rechten Seite der Schaltung 210 eingegeben. Die Bits x&sub0; bis x&sub3; werden ebenfalls zu den übrigen Zellen in der jeweiligen Eingangsspalte über die Zelle-212-Verbindungen weitergeleitet, wie oben beschrieben worden ist. In ähnlicher Weise werden auch die Bits y&sub0; bis y&sub3; zu den übrigen Zellen in der jeweiligen Eingangszeile weitergeleitet, wie oben beschrieben worden ist. Folglich bildet jedes Bit der Zahl X mit jedem Bit der Zahl Y in den Zellen 212 der Eingangsspalte ein Partialprodukt. Zum Beispiel bildet das Bit x&sub2; Partialprodukte mit Y&sub0; in der Zelle 212&sub2;&sub0;, mit y&sub1; in der Zelle 212&sub2;&sub1;, mit y&sub2; in der Zelle 212&sub2;&sub2; und mit y&sub3; in der Zelle 212&sub2;&sub3;.
  • Die Bits 20 bis 23, die der Zahl Z zugeordnet sind, werden ebenfalls über die entsprechenden Zellen 21210 der obersten Zeile in die Schaltung 210 eingegeben, wie oben beschrieben worden ist. In den Zellen 212i0 wird jedes Bit 20 bis 23 in einem Volladdierer wie z. B. 302 zum Partialprodukt aus den Bits y&sub0; mit x&sub0; bis x&sub3; addiert.
  • Aus dem Obenerwähnten wird deutlich, daß die Funktion der Schaltung 210 darin besteht, die Zahlen X und Y zu multiplizieren, in den Zellen 212 Partialprodukte zu bilden und eine dritte Zahl Z zu addieren. Die verschiedenen Partialprodukte werden innerhalb der Zellen 212 summiert, wobei sie auf den Ausgangsleitungen wie z. B. s' von oben nach unten laufen. Das Endprodukt ist der Wert P = XY + Z, der wie oben beschrieben auf den Ausgangsleitungen p&sub0; bis p&sub7; erscheint.
  • Im folgenden wird die Fehlererfassung in der Schaltung 210 beschrieben. Die Fig. 5 zeigt drei Beispiele der Operation der Schaltung 210. Der Klarheit halber sind die Zellenbezeichnungen weggelassen. Die Zahl in jedem Zellenkreis entspricht dem Partialprodukt, das in der Zelle berechnet wird. Die Zahlen auf den horizontalen Ausgangsleitungen der Zellen sind entsprechende Zellenübertragsausgangswerte; während die Zahlen auf den vertikalen Linien die Partialsummenbitausgänge sind, die s' entsprechen.
  • Die Beispiele der Fig. 5 zeigen die Operation der Schaltung mit Operandenwerten, wie folgt: X = 6 (0110), Y = -4 (1100) und Z = -7 (1001). Der Wert von P, das von der Schaltung ausgegeben wird, ist P = 11100001.
  • Für die Fehlererfassung wird der Wert von -P erzeugt. Um dies zu erreichen, werden die Eingangsoperanden X und Z invertiert, nicht jedoch Y. Alternativ können Y und Z invertiert werden, wobei X unverändert bleibt. Die Operandenwerte für die Invertierung von P sind dann wie folgt: -X = -6 (1010), Y = -4 (1100) und -Z = 7 (0111).
  • Das Beispiel 1 zeigt die Operation der Schaltung 210 ohne vorliegende Fehler. In diesem Beispiel ist der Ausgang -P gleich 00011111. Die Addition von P und -P erzeugt eine Summe von 00000000, was anzeigt, daß kein Fehler aufgetreten ist.
  • Das Beispiel 2 zeigt die Operation der Schaltung 210 mit einem Fehler in der Zelle 212&sub1;&sub1;. Hier klemmt ein Partialprodukt auf 1. Dies führt dazu, daß der Ausgang P gleich 11100101 ist. Bei einem zweiten Durchlauf durch die Schaltung mit invertierten Operanden ist der Ausgang -P gleich 00100011. Die Summe von P und -P ist daher gleich 00001000. Da die Summe ungleich 0 ist, wird angezeigt, daß ein Fehler aufgetreten ist.
  • Das Beispiel 3 zeigt die Auswirkungen, wenn zwei Fehler gleichzeitig auftreten. Hierbei klemmt 20 auf 0 am Eingang und der Ausgang p&sub6; klemmt auf 1. Der Fehler, der durch das auf 0 klemmende z&sub6; hervorgerufen wird, bewirkt einen Fehler in beiden Durchläufen, während ein Klemmen von p&sub6; auf 1 einen Fehler nur während des zweiten Durchlaufs erzeugt. Das Ergebnis ist, daß der Ausgang p beim ersten Durchlauf gleich 11100000 ist und der Ausgang -P beim zweiten Durchlauf gleich 01011110 ist. Die Summe von P und -P ist gleich 00111110, was erneut das Auftreten eines Fehlers anzeigt.
  • Wie bei der Schaltung 10 zeigt eine Summe der Ausgänge mit unveränderten und anschließend invertierten Operanden ungleich 0 an, daß ein Fehler aufgetreten ist. Außerdem kann der aktuelle Wert der Summe einen Hinweis auf den Ort des Fehlers liefern.
  • Wie bei der Schaltung 10 wird die Fehlererfassung mittels Zeitredundanz durchgeführt, d. h. durch Ausführen zweier Durchläufe durch eine Schaltung. Es ist ferner möglich, eine Fehlererfassung unter Verwendung einer Hardwareredundanz zu erreichen, d. h. durch Vorsehen von zwei oder mehr Schaltungen wie z. B. 210, die so angeordnet sind, daß sie -P mit invertierten Operanden berechnen. Dies ermöglicht, die Fehlererfassung ohne Verlust an Verarbeitungszeit durchzuführen.
  • Das beschriebene Fehlererfassungsschema kann auf eine beliebige Schaltung mit mehreren Operanden angewendet werden, von denen wenigstens einer invertiert werden kann. Das Fehlererfassungsschema kann ferner auf Schal tungen angewendet werden, die eine vorzeichenbehaftete Binärzahlendarstellung (SBNR) verwenden.
  • Die Erfindung kann ferner verwendet werden, um einen Summenwert ungleich 0 in einer fehlerfreien Operation zu erzeugen. Zum Beispiel ist ein Schaltungsausgang Y, der eine inkrementale Addition zu einem Eingangsoperanden X darstellt, gegeben durch Y = X + 1. Das Invertieren von X bei einem zweiten Durchlauf erzeugt einen Ausgang Y = -X + 1. Ein Vergleich der Ausgänge der ersten und zweiten Durchläufe erzeugt eine Summe S = (X + 1) + (-X + 1), der bei einer fehlerfreien Operation gleich 2 ist. In diesem Beispiel wird ein Fehler in der Schaltungsoperation erfaßt, wenn der Vergleichswert eine andere Zahl als 2 ergibt.

Claims (8)

1. Digitale arithmetische Schaltung (10), mit einer Verarbeitungseinrichtung zum Durchführen einer arithmetischen Operation mit wenigstens einem Eingangsoperanden und zum Erzeugen eines Ergebnissignals als Antwort hierauf sowie einer Einrichtung (12 bis 18) zum Eingeben des wenigstens einen Eingangsoperanden in die Verarbeitungseinrichtung, dadurch gekennzeichnet, daß die Verarbeitungseinrichtung umfaßt:
(i) Eine Einrichtung (28) zum Invertieren wenigstens eines in die Verarbeitungseinrichtung eingegebenen Operanden,
(ii) eine Einrichtung (210) zum Durchführen der arithmetischen Operation mit dem wenigstens einen Eingangsoperanden und zum Durchführen der arithmetischen Operation mit dem wenigstens einen invertierten Operanden, und
(iii) eine Einrichtung (82) zum Vergleichen der Ergebnissignale der Operationen, um eine Anzeige für das Auftreten eines Fehlers in der Schaltungsoperation zu erzeugen; und
die Verarbeitungseinrichtung so beschaffen ist, daß sie eine andere arithmetische Operation als die Addition oder Subtraktion mit wenigstens einem Eingangsoperanden durchführt.
2. Schaltung nach Anspruch 1, dadurch gekennzeichnet, daß die Verarbeitungseinrichtung so beschaffen ist, daß sie Ergebnissignale für invertierte Operanden gleich zeitig mit der Berechnung der Ergebnissignale für nicht invertierte Operanden berechnet.
3. Schaltung nach Anspruch 1, dadurch gekennzeichnet, daß die Verarbeitungseinrichtung so beschaffen ist, daß sie ein Ergebnissignal aus den invertierten Operanden zu einem anderen Zeitpunkt erzeugt als die Erzeugung eines Ergebnissignals aus dem nicht invertierten Operanden.
4. Schaltung nach irgendeinem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß die Schaltung so beschaffen ist, daß sie als Antwort auf das Auftreten eines Fehlers in der Schaltungsoperation einen Vergleichswert ungleich 0 liefert.
5. Schaltung nach irgendeinem der Ansprüche 2 bis 4, dadurch gekennzeichnet, daß die Eingangseinrichtung so beschaffen ist, daß sie wenigstens zwei Eingangsoperanden zuführt.
6. Schaltung nach Anspruch 5, dadurch gekennzeichnet, daß die Eingangsoperanden Zweierkomplementzahlen sind.
7. Schaltung nach Anspruch 6, dadurch gekennzeichnet, daß die Verarbeitungseinrichtung eine Multiplizierer-Akkumulator-Schaltung enthält.
8. Verfahren zum Erfassen von Fehlern in der Operation einer digitalen arithmetischen Schaltung, mit den Schritten:
(i) Zuführen wenigstens eines Eingangsoperanden zur Schaltung;
(ii) Invertieren wenigstens eines der Eingangsoperanden;
dadurch gekennzeichnet, daß das Verfahren die Schritte enthält:
(iii) Durchführen einer arithmetischen Operation, die eine andere Operation als eine Addition oder Subtraktion ist, mit
(a) einem oder mehreren Operanden ausschließlich der invertierten Operanden, und
(b) einem oder mehreren Operanden einschließlich wenigstens eines invertierten Operanden; und
(iv) Vergleichen der Schaltungsausgänge, die aus den Operationen resultieren, um einen Vergleichswert zu erzeugen, der das Auftreten eines Fehlers oder von Fehlern in der Schaltungsoperation anzeigt.
DE69505554T 1994-09-22 1995-09-11 Digitale arithmetische schaltung Expired - Fee Related DE69505554T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9419072A GB2293469A (en) 1994-09-22 1994-09-22 Error detection in arithmetic circuit.
PCT/GB1995/002139 WO1996009586A1 (en) 1994-09-22 1995-09-11 Digital arithmetic circuit

Publications (2)

Publication Number Publication Date
DE69505554D1 DE69505554D1 (de) 1998-11-26
DE69505554T2 true DE69505554T2 (de) 1999-04-22

Family

ID=10761713

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69505554T Expired - Fee Related DE69505554T2 (de) 1994-09-22 1995-09-11 Digitale arithmetische schaltung

Country Status (8)

Country Link
US (1) US5880982A (de)
EP (1) EP0782727B1 (de)
JP (1) JPH10505929A (de)
KR (1) KR970706537A (de)
CA (1) CA2200715A1 (de)
DE (1) DE69505554T2 (de)
GB (1) GB2293469A (de)
WO (1) WO1996009586A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1271317A1 (de) * 2001-06-29 2003-01-02 Nagracard S.A. System-auf-Chip mit Zeitredundanzoperation
KR100476892B1 (ko) * 2002-04-29 2005-03-17 삼성전자주식회사 데이터의 부정조작을 방지하는 방법 및 그것을 이용한데이터 처리 시스템
DE102004008901A1 (de) * 2004-02-24 2005-09-15 Giesecke & Devrient Gmbh Sichere Ergebniswertberechnung
FR2870021B1 (fr) * 2004-05-07 2006-07-21 Alcatel Sa Procede et dispositif de gestion d'un bus
US7225381B1 (en) 2005-06-02 2007-05-29 Lehman Thomas F Error detection and correction method
FR2925720B1 (fr) * 2007-12-21 2009-12-11 Thales Sa Systeme securise de transmission de donnees.
US8055697B2 (en) * 2008-03-28 2011-11-08 Intel Corporation Method and device for dynamically verifying a processor architecture
JP5407589B2 (ja) * 2009-06-29 2014-02-05 富士通株式会社 演算回路および演算処理装置ならびに演算処理方法
GB2528443B (en) * 2014-07-21 2016-12-14 Ibm Checking arithmetic computations
CN107329864B (zh) * 2017-06-28 2020-09-11 中国航空工业集团公司雷华电子技术研究所 一种处理机信号故障自动定位方法
EP3629177B1 (de) * 2018-09-28 2021-09-01 Sick Ag Verfahren zum überprüfen eines betriebs eines elektronischen datenverarbeitungsmittels
TW202324098A (zh) * 2021-12-07 2023-06-16 財團法人工業技術研究院 錯誤偵測與更正裝置及其方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3166737A (en) * 1960-12-23 1965-01-19 Ibm Asynchronous data processor
FR2056229A5 (de) * 1969-07-31 1971-05-14 Ibm
US3665394A (en) * 1970-09-23 1972-05-23 Gte Automatic Electric Lab Inc Data error detector for determining the error rate prior to equalization
US4001570A (en) * 1975-06-17 1977-01-04 International Business Machines Corporation Arithmetic unit for a digital data processor
JPH01180043A (ja) * 1988-01-08 1989-07-18 Fujitsu Ltd 加減算方式
JPH04180134A (ja) * 1990-11-15 1992-06-26 Nec Ibaraki Ltd 疑似エラー発生方式
US5140545A (en) * 1991-02-13 1992-08-18 International Business Machines Corporation High performance divider with a sequence of convergence factors
KR950009682B1 (ko) * 1993-04-30 1995-08-26 현대전자산업주식회사 병렬 증분기를 이용한 2의 보수기
JPH07191831A (ja) * 1993-12-27 1995-07-28 Fujitsu Ltd 演算装置
DE4406391C1 (de) * 1994-02-26 1995-03-16 Bosch Gmbh Robert Elektronisches Rechenwerk
US5798958A (en) * 1996-06-05 1998-08-25 Samsung Electronics Co., Ltd. Zero detect for binary sum

Also Published As

Publication number Publication date
EP0782727B1 (de) 1998-10-21
EP0782727A1 (de) 1997-07-09
WO1996009586A1 (en) 1996-03-28
GB2293469A (en) 1996-03-27
KR970706537A (ko) 1997-11-03
GB9419072D0 (en) 1994-11-09
DE69505554D1 (de) 1998-11-26
CA2200715A1 (en) 1996-03-28
JPH10505929A (ja) 1998-06-09
US5880982A (en) 1999-03-09

Similar Documents

Publication Publication Date Title
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE3486471T2 (de) Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-Code
DE69326797T2 (de) Akkumulierende Multiplizierschaltung mit einer Hochgeschwindigkeitsausführung einer Multiplikation doppelter Genauigkeit
DE69505554T2 (de) Digitale arithmetische schaltung
DE69132517T2 (de) Gleitkommaprozessor
DE3840969C2 (de)
DE68920560T2 (de) Restprüfungsvorrichtung zur Fehlerkennung in Additions-, Substraktions-, Multiplikations-, Divisions- und Quadratwurzel-Operationen.
DE69121733T2 (de) Technik zum eingebauten Selbsttest für Nur-Lese-Speicher
DE69026918T2 (de) Hochwirksamer selbstprüfender Addierer mit geringem Schaltungsflächebedarf
DE68926093T2 (de) Vorrichtung und Verfahren zur Fehlererkennung in das Ergebnis einer arithmetische Operation
DE3700323A1 (de) Gleitpunktzahlenakkumulatorschaltung
DE68918840T2 (de) Fehlererkennung für teilschreiboperationen für speicher.
US3559167A (en) Self-checking error checker for two-rail coded data
DE3852576T2 (de) Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen.
DE69229325T2 (de) Schaltung zur Detektierung der Position eines äussersten "1"-Bits in eine Binärzahl
DE2503152A1 (de) Schaltungsanordnung zur erkennung von durch bauteilausfall verursachten fehlern in der multipliziereinheit eines datenverarbeitungssystems
DE68925378T2 (de) Verfahren und Schaltung zur Daten-Fehler-Erkennung
US4224681A (en) Parity processing in arithmetic operations
DE1187403B (de) Verfahren und Einrichtung zur logischen Verknuepfung zweier Operanden
DE69430236T2 (de) Paritäts- und Syndromgenerator zur Fehler-Erkennung und -Korrektur in digitalen Übertragungssystemen
DE68924479T2 (de) Gerät um festzustellen, ob während einer Verschiebungsoperation Daten in Verlust geraten.
US3559168A (en) Self-checking error checker for kappa-out-of-nu coded data
DE69637427T2 (de) Verfahren und Gerät zur Erkennung doppelter Eintragungen in einer Nachschlagtabelle
DE3933172A1 (de) Akkumulator fuer komplexe zahlen
DE69327030T2 (de) Schaltung zur Verzweigungsentscheidung eines Prozessors

Legal Events

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