DE102013112020A1 - Method and device for detecting bit errors - Google Patents

Method and device for detecting bit errors Download PDF

Info

Publication number
DE102013112020A1
DE102013112020A1 DE201310112020 DE102013112020A DE102013112020A1 DE 102013112020 A1 DE102013112020 A1 DE 102013112020A1 DE 201310112020 DE201310112020 DE 201310112020 DE 102013112020 A DE102013112020 A DE 102013112020A DE 102013112020 A1 DE102013112020 A1 DE 102013112020A1
Authority
DE
Germany
Prior art keywords
bit
parity
input
code
bits
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.)
Granted
Application number
DE201310112020
Other languages
German (de)
Other versions
DE102013112020B4 (en
Inventor
Christian Siemers
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.)
Hochschule Nordhausen De
Technische Universitaet Clausthal
Original Assignee
Technische Universitaet Clausthal
Fachhochschule Nordhausen
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 Technische Universitaet Clausthal, Fachhochschule Nordhausen filed Critical Technische Universitaet Clausthal
Priority to DE102013112020.2A priority Critical patent/DE102013112020B4/en
Publication of DE102013112020A1 publication Critical patent/DE102013112020A1/en
Application granted granted Critical
Publication of DE102013112020B4 publication Critical patent/DE102013112020B4/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Abstract

Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Erkennen von Bitfehlern in einem Ergebnis einer auf einer Rechenmaschine ausgeführten arithmetischen Inkrement- oder Dekrementoperation einer Bitsequenz, wobei für die Bitsequenz ein Paritätscode berechnet wird, der eine Mehrzahl von Paritätsbits enthält, wobei jedes Paritätsbit des Paritätscodes bezüglich der arithmetischen Inkrement- oder Dekrementoperation vorausberechnet wird und durch Vergleich der tatsächlichen Ergebnis-Paritäten ein Bitfehler erkennbar ist.The present invention relates to a method and apparatus for detecting bit errors in a result of a arithmetic increment or decrement operation of a bit sequence performed on a calculator, wherein a parity code containing a plurality of parity bits is calculated for the bit sequence, each parity bit of parity code the arithmetic increment or decrement operation is precalculated and a bit error can be detected by comparing the actual result parities.

Description

Die Erfindung betrifft ein Verfahren zum Erkennen von Bitfehlern in einem Ergebnis einer auf einer Rechenmaschine ausgeführten, arithmetischen Inkrement- oder Dekrementoperation einer Bitsequenz. Die Erfindung betrifft ebenso ein Computerprogramm, eine Halbleiterschaltung sowie ein Computersystem hierzu.The invention relates to a method for detecting bit errors in a result of an arithmetic increment or decrement operation of a bit sequence performed on a computing machine. The invention also relates to a computer program, a semiconductor circuit and a computer system for this purpose.

Es ist allgemein bekannt, dass auch bei Computerprogrammen, die hinsichtlich ihrer semantischen Vorgabe mathematisch korrekt sind, Fehler auftreten können, deren Ursprünge meist nicht mehr feststellbar sind. Derartige Fehler bei der Ausführung von Computerprogrammen in Rechenmaschinen können beispielsweise durch äußere Einflüsse, Erwärmungen oder auch Hardwaredefekte entstehen und können temporär oder von dauerhafter Natur sein. Insbesondere in sicherheitskritischen Anwendungen ist es daher notwendig, derartige Fehler sicher und schnell erkennen zu können.It is well known that even with computer programs that are mathematically correct in terms of their semantic specification, errors may occur whose origins are usually no longer detectable. Such errors in the execution of computer programs in computing machines, for example, by external influences, warming or hardware defects may arise and may be temporary or permanent nature. Especially in safety-critical applications, it is therefore necessary to be able to recognize such errors safely and quickly.

So ist es beispielsweise bekannt, dass sicherheitskritische Systeme redundant ausgelegt werden, so dass jedes der Systeme einzeln für sich die Berechnung durchführt und anschließend durch Vergleich der Ergebnisse festgestellt werden kann, ob ein Fehler in einer der Berechnungen aufgetreten ist. Sind beide Ergebnisse identisch, so wird von keinem Fehler ausgegangen.For example, it is known that safety-critical systems are designed to be redundant, so that each of the systems individually performs the calculation individually and then, by comparing the results, it can be determined whether an error has occurred in one of the calculations. If both results are identical, then no error is assumed.

Bei der Übertragung von Daten werden beispielsweise sogenannte CRC-Summen (Cyclic Redundancy Check) eingesetzt, die durch erzeugende Polyname gebildet werden. Hierdurch lassen sich bestimmte Arten von Fehlern zuverlässig erkennen.In the transmission of data, for example, so-called CRC sums (Cyclic Redundancy Check) are used, which are formed by generating the Polyname. This makes it possible to reliably detect certain types of errors.

Bei dem Fehlererkennungsverfahren durch redundante Ausführung ist ein Nachteil jedoch darin zu sehen, dass aufgrund der Mehrfachausführung der Systeme auch entsprechend mehr Hardware bereitgestellt werden muss. Darüber hinaus benötigen derartige Systeme auch signifikant mehr elektrische Energie für den Betrieb, so dass diese Art der Fehlererkennung hinsichtlich des Einsatzgebietes Beschränkungen unterliegt. Wird die Redundanz der Berechnung auf ein und demselben Mikroprozessor untergebracht, so ist hierfür meist eine wesentlich höhere Siliziumfläche notwendig, was sich in einigen Einsatzgebieten ebenfalls als nachteilig erwiesen hat. Demgegenüber steht jedoch der unübersehbare Vorteil, dass mit Hilfe der redundanten Ausführung (auch mehrfach redundant) Rechenfehler innerhalb des Mikroprozessors zuverlässig erkannt werden können.In the case of the redundancy-based error detection method, however, a disadvantage is that because of the multiple execution of the systems, correspondingly more hardware has to be provided. In addition, such systems also require significantly more electrical energy for operation, so that this type of error detection is subject to restrictions with regard to the field of use. If the redundancy of the calculation is accommodated on one and the same microprocessor, a much higher silicon area is usually necessary for this, which has likewise proven disadvantageous in some fields of application. In contrast, however, there is the obvious advantage that with the help of the redundant design (even multiple redundant) arithmetic errors can be reliably detected within the microprocessor.

Ein Standardfall bei der Ausführung eines Computerprogramms durch einen Mikroprozessor stellt dabei die arithmetische Inkrement- oder Dekrementoperation des Programm Counters dar. In dem Programm Counter ist die Speicheradresse hinterlegt, in der der nächste abzuarbeitende Befehl für den Mikroprozessor hinterlegt ist. Die Erhöhung des Programm Counters um eine Befehlsbreite (Inkrementoperation) führt zum Verweis auf die nächstfolgende Speicherstelle und somit zur Abarbeitung des nächstfolgenden Maschinenbefehls. Einmal abgesehen von relativen Adressierungen sowie absoluten Sprungbefehlen stellt das einfache Inkrement um eine Befehlsbreite ca. 80% aller Instruktionen im Programmablauf dar.A standard case in the execution of a computer program by a microprocessor in this case represents the arithmetic increment or decrement operation of the program counter. In the program Counter, the memory address is stored, in which the next processed command for the microprocessor is stored. The increase of the program counter by one command width (increment operation) leads to the reference to the next following memory location and thus to the execution of the next following machine command. Apart from relative addressing and absolute jump instructions, the simple increment by a command width represents approx. 80% of all instructions in the program sequence.

Unter der arithmetischen Inkrement- oder Dekrementoperation im Sinne der vorliegenden Erfindung wird dabei eine arithmetische Operation verstanden, bei der zu einer Mehrbitsequenz eine Ganzzahl ≧ 1 addiert bzw. subtrahiert wird. Den einfachsten Fall stellt dabei das Inkrement bzw. Dekrement um 1 an der Bitstelle 2° dar. Denkbar sind aber auch das Inkrement bzw. Dekrement um Werte, die einer ganzzahligen Potenz von 2 entsprechen bzw. um Werte, die einer nicht ganzzahligen Potenz von 2 entsprechen. Insbesondere das Inkrement bzw. Dekrement um einen Wert, der einer ganzzahligen Potenz von 2 entspricht, wird häufig bei der Erhöhung bzw. Verringerung des Programm Counters um eine ganze Befehlsbreite verwendet, wenn die Befehlsbreite beispielsweise 16 oder 32 Bit entspricht.The arithmetic increment or decrement operation in the sense of the present invention is an arithmetic operation in which an integer ≧ 1 is added to or subtracted from a multibit sequence. The simplest case is represented by the increment or decrement by 1 at the bit position 2 °. However, the increment or decrement by values corresponding to an integer power of 2 or values corresponding to a non-integer power of 2 are also conceivable correspond. In particular, the increment or decrement by a value equal to an integer power of 2 is often used in increasing or decreasing the program counter by a full command width, for example, when the command width equals 16 or 32 bits.

Aus der US 6,990,507 B2 ist ein Verfahren bekannt, bei dem die Parität eines Ergebnisses eines Inkrementes um 1 einer Mehrbitsequenz vorhergesagt werden kann, so dass sich ein Bitfehler durch Vergleich der vorhergesagten Parität mit der berechneten Parität aus der Ergebnis-Bitsequenz ermitteln lässt. Dabei wird zunächst die Parität der Eingangs-Bitsequenz ermittelt und anschließend überprüft, ob eine ungerade Anzahl von Bits aufgrund des Übertrags bei der Inkrementoperation ihren Bitwert ändern, so dass die vorhergesagte Parität dann durch Umkehr der Parität der Eingangs-Bitsequenz berechnen lässt. Ist die Anzahl der Bits, die sich aufgrund des Übertrags bei der Inkrementoperation ändern werden, gerade, so entspricht die vorhergesagte Parität der Ausgangsparität.From the US 6,990,507 B2 For example, a method is known in which the parity of a result of an increment of 1 of a multi-bit sequence can be predicted so that a bit error can be determined by comparing the predicted parity with the calculated parity from the result bit sequence. First, the parity of the input bit sequence is determined, and then it is checked whether an odd number of bits change their bit value due to the carry in the increment operation, so that the predicted parity can be calculated by reversing the parity of the input bit sequence. If the number of bits that will change due to the carry in the increment operation is even, the predicted parity will be the output parity.

Für eine 8 Bit Sequenz, deren Wert um 1 inkrementiert werden soll, ergibt sich somit folgende Formel zur Bestimmung der Parität:

Figure DE102013112020A1_0002
wobei p die Parität der 8 bit Eingangs-Bitsequenz darstellt, b[0] das niederwertigste Bit der Bitsequenz und b[7] das höchstwertigste Bit darstellen. Das Symbol O ist dabei die XOR Operation.For an 8-bit sequence whose value is to be incremented by 1, the following formula thus results for determining the parity:
Figure DE102013112020A1_0002
where p represents the parity of the 8 bit input bit sequence, b [0] represents the least significant bit of the bit sequence, and b [7] represents the most significant bit. The symbol O is the XOR operation.

Demnach kann die Parität einer Bitsequenz dadurch ermittelt werden, dass sämtliche Bits der Bitsequenz XOR verknüpft werden. Die booleschen Operation XOR ist dabei immer dann 0 (false), wenn die beiden Operanden gleich sind, sonst 1 (true). Die ermittelte Parität p ist in diesem Beispiel 0 (false), wenn eine gerade Anzahl von Bits der Bitsequenz 1 sind, sonst ist die Parität 1 (true). Im o. g. Beispiel entspricht dies der even-Parität.Accordingly, the parity of a bit sequence can be determined by combining all the bits of the bit sequence XOR. The Boolean operation XOR is always 0 (false) if the two operands are the same, otherwise 1 (true). The determined parity p is 0 (false) in this example if an even number of bits of the bit sequence are 1, otherwise the parity is 1 (true). In o. G. For example, this corresponds to even parity.

Mittels der nachstehenden Formel

Figure DE102013112020A1_0003
bei der p die vorhergesagte Parität des Ergebnisses darstellt, not die Invertierung des Bits, + das logische OR und * das logische AND ist, lässt sich die Parität des Ergebnisses der Inkrementoperation um 1 vorhersagen, indem festgestellt wird, ob eine ungerade Anzahl von Bits aufgrund des Übertrags der arithmetischen Operation ihren Bitwert ändern. Sind b[0] und b[1] gleich 1 und ist b[2] gleich 0, so ergibt sich bei einem Inkrement um 1, das sich die Bits 0, 1, und 2 in ihrem Bitwert ändern, was einer ungeraden Anzahl von Bits entspricht und was somit zu einem Wechsel der Parität der Eingangs-Bitsequenz führt.By means of the formula below
Figure DE102013112020A1_0003
where p represents the predicted parity of the result, not the inversion of the bit, + the logical OR, and * the logical AND, the parity of the result of the increment operation can be predicted by 1 by determining whether an odd number of bits are due the carry of the arithmetic operation change its bit value. If b [0] and b [1] are equal to 1 and b [2] is equal to 0, an increment of 1 results in bits 0, 1, and 2 changing in bit value, an odd number of times Corresponds to bits and thus resulting in a change of the parity of the input bit sequence.

Der große Nachteil dieses Verfahrens besteht jedoch darin, dass hiermit keine 2 Bit-Fehler erkannt werden können, da durch den doppelten Wechsel der Fehlerbits sich die Parität in der Ergebnis-Bitsequenz gegenüber der Eingangs-Bitsequenz nicht ändert. Letztlich lassen sich alle geraden Mehrbitfehler nicht erkennen, so dass mit diesem System nicht hinreichend sicher jegliche Formen von Bitfehlern erkannt werden können, so dass sich dieses Verfahren nicht als Ersatz für die redundante Ausführung zur Erkennung von Bitfehlern eignet.The big disadvantage of this method, however, is that no 2-bit errors can be detected here because the double change of the error bits does not change the parity in the result bit sequence compared to the input bit sequence. Ultimately, all even multi-bit errors can not be detected, so that this system can not be detected with sufficient certainty any forms of bit errors, so that this method is not suitable as a replacement for the redundant design for detecting bit errors.

Vor diesem Hintergrund ist es Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren und eine verbesserte Vorrichtung anzugeben, mit denen neben 1 Bit Fehlern und ungeraden Mehrbitfehlern insbesondere auch 2 Bit Fehler sicher erkannt werden können.Against this background, it is an object of the present invention to provide an improved method and an improved device, with which in addition to 1-bit errors and odd multi-bit errors, in particular 2-bit errors can be detected reliably.

Die Aufgabe wird mit dem Verfahren gemäß Anspruch 1 erfindungsgemäß gelöst. Die Aufgabe wird auch mit dem Computerprogramm gemäß Anspruch 10 sowie der Halbleiterschaltung gemäß Anspruch 11 erfindungsgemäß gelöst. Die Aufgabe wird im übrigen auch mit dem Computersystem gemäß Anspruch 13 erfindungsgemäß gelöst.The object is achieved by the method according to claim 1 according to the invention. The object is also achieved with the computer program according to claim 10 and the semiconductor circuit according to claim 11 according to the invention. The problem is also solved according to the invention with the computer system according to claim 13.

Gemäß Anspruch 1 wird ein Verfahren zum Erkennen von Bitfehlern in einem Ergebnis einer auf einer Rechenmaschine mittels eines Mikroprozessors ausgeführten, arithmetischen Inkrement- oder Dekrementoperation einer Bitsequenz vorgeschlagen, bei dem ein Paritätscode des Ergebnisses aus der Eingangs-Bitsequenz zu einem vorhergesagt und zum anderen aus der Ergebnis-Bitsequenz berechnet wird. Durch Vergleich der vorhergesagten und berechneten Paritätscodes kann dann auf einen entsprechenden Bitfehler geschlossen werden.According to claim 1, there is provided a method of detecting bit errors in a result of an arithmetic increment or decrement operation of a bit sequence performed on a calculator by a microprocessor, wherein a parity code of the result from the input bit sequence is predicted to one and the other Result bit sequence is calculated. By comparing the predicted and calculated parity codes, a corresponding bit error can then be deduced.

Bei der Eingangs-Bitsequenz im Sinne der vorliegenden Erfindung handelt es sich um diejenige Bitsequenz, auf der die arithmetische Inkrement- oder Dekrementoperation angewendet werden soll, um die Ergebnis-Bitsequenz zu erhalten. Die Eingangs-Bitsequenz stellt somit die Bitsequenz dar, die dem System als Eingang zur Durchführung der Operation zugeführt und bereitgestellt wird und stellt somit einen Teil der Operanden dar. Die Rechenoperation erfolgt dabei in der Regel bitweise. The input bit sequence in the sense of the present invention is the bit sequence on which the arithmetic increment or decrement operation is to be applied in order to obtain the result bit sequence. The input bit sequence thus represents the bit sequence which is supplied to the system as an input for carrying out the operation and is thus a part of the operands. The arithmetic operation is generally carried out bit by bit.

Erfindungsgemäß wird vorgeschlagen, dass aus der Eingangs-Bitsequenz, auf der die arithmetische Inkrement- oder Dekrementoperation durchgeführt werden soll, ein Eingangs-Paritätscode berechnet wird. Ein derartiger Paritätscode enthält eine Mehrzahl von Paritätsbits, wobei jedes Paritätsbit in Abhängigkeit von den Bitwerten eines Teils der Bits der Eingangs-Bitsequenz berechnet wird. Ein derartiger Paritätscode kann beispielsweise ein Hamming-Code sein, bei dem die einzelnen Paritätsbits jeweils aus einer Kombination verschiedener Bits der Eingangs-Bitsequenz berechnet werden. Bei dem Paritätscode handelt es sich somit um eine Folge von mehreren Bits, die jeweils für sich ein Paritätsbit darstellen, das sich aus einem Teil der Bits der Eingangs-Bitsequenz berechnen lässt. Die Anwendung des Schemas zur Berechnung des Paritätscodes auf die Eingangs-Bitsequenz erzeugt somit dann im Ergebnis den sogenannten Eingangs-Paritätscode.According to the invention, it is proposed that an input parity code be calculated from the input bit sequence on which the arithmetic increment or decrement operation is to be performed. Such a parity code includes a plurality of parity bits, each parity bit being calculated in response to the bit values of a portion of the bits of the input bit sequence. Such a parity code may, for example, be a Hamming code in which the individual parity bits are each calculated from a combination of different bits of the input bit sequence. The parity code is thus a series of several bits, each of which represents a parity bit that can be calculated from a portion of the bits of the input bit sequence. The application of the scheme for calculating the parity code to the input bit sequence thus generates the so-called input parity code as a result.

Im nächsten Schritt wird nun basierend auf dem Eingangs-Paritätscode ein Vorausberechnungs-Paritätscode berechnet, der eine Vorausberechnung der einzelnen Paritätsbits des Eingangs-Paritätscodes darstellt, so als ob die Inkrement- oder Dekrementoperation auf der Eingangs-Bitsequenz angewendet und der Paritätscode aus dem Ergebnis berechnet werden würde. Der Vorausberechnungs-Paritätscode stellt somit eine Vorausschau der Paritätsbits des Paritätscodes dar, so als ob die Paritätsbits entsprechend des Schemas des Paritätscodes aus der Ergebnis-Bitsequenz berechnet würden, ohne dass tatsächlich das Ergebnis berechnet und der Paritätscode dann ermittelt wird.In the next step, based on the input parity code, a preprocessing parity code is calculated which represents a prediction of the individual parity bits of the input parity code, as if the increment or decrement operation were applied to the input bit sequence and the parity code is calculated from the result would become. The pre-calculation parity code thus provides a look-ahead of the parity bits of the parity code as if the parity bits were calculated according to the parity code scheme from the result bit sequence without actually computing the result and then determining the parity code.

Der Vorausberechnungs-Paritätscode enthält somit jene Paritätsbits, die sich ergeben, wenn man den Paritätscode des Ergebnisses der Inkrement- oder Dekrementoperation berechnet.The pre-calculation parity code thus contains those parity bits which result when calculating the parity code of the result of the increment or decrement operation.

Dabei wird für jedes Paritätsbit des Eingangs-Paritätscodes festgestellt, ob eine ungerade Anzahl von des jeweilige Paritätsbit betreffenden Bits der Eingangs-Bitsequenz einen Bitwert aufweisen, welcher aufgrund einer arithmetischen Rechenregel der Inkrement- oder Dekrementoperation zu einer Umkehrung führen wird. Eine solche Rechenregel ist beispielsweise der Übertrag, wenn die beiden Operanden der Addition eins sind. Die Feststellung, ob eine ungerade Anzahl von des jeweiligen Paritätsbit betreffenden Bits der Eingangs-Bitsequenz ihren Bitwert ändern wird, lässt sich mit Hilfe einer Booleschen Algebra der in der Eingangs-Bitsequenz enthaltenen Bitwerte ermitteln.In this case, it is determined for each parity bit of the input parity code whether an odd number of bits of the input bit sequence relating to each parity bit have a bit value which will result in an inversion due to an arithmetic operation rule of the increment or decrement operation. Such a calculation rule is, for example, the carry if the two operands of the addition are one. The determination as to whether an odd number of bits of the input bit sequence concerning the respective parity bit will change their bit value can be determined with the aid of a Boolean algebra of the bit values contained in the input bit sequence.

Dabei wird für jedes Paritätsbit des Eingangs-Paritätscodes untersucht, ob eine ungerade Anzahl von Bits, die zur Berechnung des jeweiligen Paritätsbits des Paritätscodes aus der Eingangs-Bitsequenz benötigt werden, ihren Bitwert aufgrund der anzuwendenden arithmetischen Inkrement- oder Dekrementoperation ihren Bitwert ändern. Wurde eine solche Feststellung, beispielsweise mit Hilfe einer Booleschen Algebra, festgestellt, so wird das entsprechende Paritätsbit des Vorausberechnungs-Paritätscodes durch Umkehr des Paritätsbits des Eingangs-Paritätscodes ermittelt. Denn ändert sich eine ungerade Anzahl von denjenigen Bits, die zur Berechnung des entsprechenden Paritätsbits des Paritätscodes notwendig sind, ihren Bitwert, so hat dies bei der Berechnung des Paritätsbits eine Umkehr der Parität zur Folge. Mit anderen Worten, die Paritätsbits des Vorausberechnungs-Paritätscodes entsprechen der umgekehrten Parität der Paritätsbits des Eingangs-Paritätscodes, wenn für das jeweilige Paritätsbit eine solche ungerade Anzahl von das jeweilige Paritätsbit betreffenden Bits, die einen Bitwert ändern werden, festgestellt wurde. Andernfalls entspricht das jeweilige Paritätsbit des Vorausberechnungs-Paritätscodes den entsprechenden Paritätsbit des Eingangs-Paritätscodes.In doing so, for each parity bit of the input parity code, it is examined whether an odd number of bits needed to calculate the parity bit of the parity bit from the input bit sequence will change their bit value to their bit value due to the arithmetic increment or decrement operation to be applied. If such a determination has been made, for example by means of a Boolean algebra, the corresponding parity bit of the precomputation parity code is determined by reversing the parity bit of the input parity code. For if an odd number of those bits necessary to calculate the corresponding parity bit of the parity code changes its bit value, this will result in parity reversal in the calculation of the parity bit. In other words, the parity bits of the preprocessing parity code correspond to the inverse parity of the parity bits of the input parity code when an odd number of bits corresponding to each parity bit that will change one bit value has been detected for each parity bit. Otherwise, the respective parity bit of the precomputation parity code corresponds to the corresponding parity bit of the input parity code.

In einem zweiten Weg, der vorher parallel oder im Nachgang zu dem oben Genannten durchgeführt werden kann, wird eine Ergebnis-Bitsequenz berechnet, indem die Inkrement- oder Dekrementoperation auf die Eingangs-Bitsequenz angewendet wird. Anschließend wird ein Ergebnis-Paritätscode aus der Ergebnis-Bitsequenz entsprechend dem Berechnungsschema für den Eingangs-Paritätscode in Abhängigkeit von den jeweiligen Bitwerten der Ergebnis-Bitsequenz berechnet, so dass aus der Ergebnis-Bitsequenz ebenfalls die entsprechenden Paritätsbits des anzuwendenden Paritätscodes vorliegen. Das Berechnungsschema, d. h. die Art und Weise, wie die Paritätsbits des Paritätscodes berechnet werden, muss sowohl für den Eingangs-Paritätscode als auch den Ergebnis-Paritätscode identisch sein.In a second way, which may be performed previously in parallel with or subsequent to the above, a result bit sequence is calculated by applying the increment or decrement operation to the input bit sequence. Subsequently, a result parity code is calculated from the result bit sequence according to the input parity code calculation scheme in response to the respective bit values of the result bit sequence, so that the corresponding parity bits of the parity code to be applied are also available from the result bit sequence. The calculation scheme, d. H. the manner in which the parity bits of the parity code are computed must be identical for both the input parity code and the result parity code.

Nunmehr liegen die Ergebnisparitäten der Ergebnis-Bitsequenz sowie die Vorausberechnungs-Paritäten der Eingangs-Bitsequenz vor, so dass durch einen Vergleich der jeweiligen Vorausberechnungs-Paritäten mit den entsprechenden Ergebnis-Paritäten mögliche Bitfehler erkannt werden können. Sind sämtliche Paritätsbits des Vorausberechnungs-Paritätscodes mit den entsprechenden Paritätsbits des Ergebnis-Paritätscodes identisch, so liegt kein Fehler vor. Weist jedoch mindestens ein Paritätsbit des Vorausberechnungs-Paritätscodes einen anderen Wert auf als das entsprechende Paritätsbit des Ergebnis-Paritätscodes, so liegt ein Bitfehler vor. Dabei ist es unter Umständen sogar möglich, entsprechende Bitfehler zu korrigieren, wenn anhand des verwendeten Paritätscodes und eines erkannten Fehlers auf das entsprechende fehlerhafte Bit in der Bitsequenz geschlossen werden kann, was beispielsweise bei der Verwendung eines Hamming-Codes als Paritätscode möglich ist.The result parities of the result bit sequence and the preprocessing parities of the input bit sequence are now present, so that possible bit errors can be detected by comparing the respective preprocessing parities with the corresponding result parities. Are all Parity bits of the precomputation parity code are identical to the corresponding parity bits of the result parity code, so there is no error. However, if at least one parity bit of the prediction parity code has a value other than the corresponding parity bit of the result parity code, then there is a bit error. Under certain circumstances, it is even possible to correct corresponding bit errors if, based on the parity code used and a detected error, it is possible to conclude the corresponding erroneous bit in the bit sequence, which is possible, for example, when using a Hamming code as parity code.

Die vorliegende Erfindung hat dabei den wesentlichen Vorteil, dass bei der Durchführung von arithmetischen Inkrement- oder Dekrementoperationen neben den klassischen Einbit-Fehlern auch Zweibit-Fehler und Dreibit-Fehler sicher erkannt werden können, ohne dass es hierfür den Aufbau einer redundanten Ausführung bedarf. Dabei wurde erkannt, dass durch die Verwendung eines entsprechenden Paritätscodes auch Zweibit-Fehler und einige Mehrbit-Fehler sicher erkannt werden können. Dabei wird angenommen, dass die Vorausberechnung immer korrekt arbeitet. Bei einem erkannten Fehler kann dann das Gesamtsystem in einen sicheren Zustand überführt werden.The present invention has the significant advantage that when performing arithmetic increment or decrement operations in addition to the classic single-bit errors and two-bit error and Dreibit error can be reliably detected without this requires the construction of a redundant design. It was recognized that the use of a corresponding parity code also two-bit error and some multi-bit error can be reliably detected. It is assumed that the precalculation always works correctly. If a fault is detected, then the entire system can be transferred to a safe state.

Durch die Reduzierung der Abfrage für die Feststellung der prognostizierten Bitwertänderung, beispielsweise mittels Minimierung anhand einer Common Path Expression, kann der Kostenaufwand der Vorausberechnung unter den Kostenaufwand für eine redundante Ausführung gedrückt werden, so dass das vorliegende Verfahren beispielsweise deutlich weniger Siliziumfläche benötigt als eine redundante Ausführung der Berechnung.By reducing the query to determine the predicted bit value change, for example, by minimizing by common path expression, the cost of the prediction can be pushed below the cost of redundant execution so that the present method, for example, requires significantly less silicon area than a redundant implementation the calculation.

Zweckmäßigerweise wird für jedes Paritätsbit des Vorausberechnungs-Paritätscodes ein Fehlersyndrom in Abhängigkeit von dem jeweiligen Paritätsbit des Vorausberechnungs-Paritätscodes und dem entsprechenden Paritätscode des Ergebnis-Paritätscodes berechnet, wobei ein Bitfehler dann erkannt wird, wenn zumindest eines der Fehlersyndrome eine Fehlererkennung enthält. Hierzu weist das jeweilige Fehlersyndrom eine Fehlererkennung auf, die angibt, ob ein Fehler vorliegt oder nicht und gegebenenfalls was für ein Fehler vorliegt. Wird für die Ermittlung der Syndrome die XOR-Operation verwendet, so liegt ein Bitfehler immer dann vor, wenn zumindest eines der Syndrome der Paritäten des Paritätscodes ≠ 0 ist. Bei einem linearen Code ist ein Syndrom definiert als eine Operation eines empfangenen, gegebenenfalls ungültigen Codeworts am Empfänger mit einer Kontrollmatrix. Der einfachste Fall einer Syndrom-Operation ist die XOR-Operation.Conveniently, for each parity bit of the precomputation parity code, an error syndrome is calculated in response to the respective parity bit of the precomputation parity code and the corresponding parity code of the result parity code, wherein a bit error is detected when at least one of the error syndromes includes error detection. For this purpose, the respective error syndrome has an error detection which indicates whether or not there is an error and, if appropriate, what kind of error exists. If the XOR operation is used to determine the syndromes, then a bit error is always present if at least one of the parity code parity syndromes ≠ 0. In a linear code, a syndrome is defined as an operation of a received, possibly invalid code word at the receiver with a control matrix. The simplest case of a syndrome operation is the XOR operation.

In einer vorteilhaften Ausführungsform wird vorgeschlagen, dass die Eingangs-Bitsequenz, auf der die arithmetische Inkrement- oder Dekrementoperation angewendet werden soll und welche den arithmetischen Wert in binärer Form enthält, in einer Eingangs-Matrix so angeordnet wird, dass die Bits der Eingangs-Bitsequenz nacheinander zeilenweise in die Eingangs-Matrix eingeschrieben werden. So kann eine 32 Bit Eingangs-Bitsequenz in vier Zeilen à 8 Bit angeordnet werden, wobei die unterste Zeile die Bits 0 bis 7, die nächstfolgende Zeile die Bits 8 bis 15, die dritte Zeile die Bits 16 bis 23 und die vierte Zeile die Bits 24 bis 31 enthält.In an advantageous embodiment, it is proposed that the input bit sequence on which the arithmetic increment or decrement operation is to be applied and which contains the arithmetic value in binary form be arranged in an input matrix such that the bits of the input bit sequence are written successively line by line in the input matrix. Thus, a 32-bit input bit sequence may be arranged in four 8-bit lines, with the lowermost line being bits 0 through 7, the next line being bits 8 through 15, the third line being bits 16 through 23, and the fourth line being the bits 24 to 31 contains.

Die Bits werden dabei in der Matrix so angeordnet, dass sie zeilenweise angeordnet werden, d. h. die Bits werden jeweils ihrer Reihenfolge nacheinander in eine Zeile geschrieben, bis diese Zeile keine weiteren Bits mehr aufnehmen kann, so dass die nächsten Bits am Anfang der nächsten Zeile wieder der Reihenfolge nach folgend eingeordnet werden.The bits are arranged in the matrix so that they are arranged line by line, d. H. the bits are written one after another in a row in their order until this row can no longer receive more bits, so that the next bits at the beginning of the next row are again arranged sequentially.

Die Bits einer 32 Bit Sequenz können beispielsweise wie folgt angeordnet werden:

Figure DE102013112020A1_0004
The bits of a 32-bit sequence can be arranged, for example, as follows:
Figure DE102013112020A1_0004

Im nächsten Schritt wird der Eingangs-Paritätscode berechnet, indem für jede Zeile und jede Spalte der Eingangs-Matrix ein Paritätsbit, das Bestandteil des Eingangs-Paritätscodes ist, in Abhängigkeit von den Bitwerten der die jeweilige Zeile oder Spalte betreffenden Bits der Eingangs-Bitsequenz berechnet wird. Somit ergeben sich für die jeweils vier Zeilen und die jeweils acht Spalten des oben genannten Beispiels insgesamt 12 Paritätsbits, die zusammen den Eingangs-Paritätscode bilden. Die Paritätsbits des Eingangs-Paritätscodes in dieser Form werden somit zeilen- und spaltenweise aus der Matrixanordnung berechnet.In the next step, the input parity code is calculated by calculating, for each row and each column of the input matrix, a parity bit which is part of the input parity code, in response to the bit values of the bits of the input bit sequence relating to that row or column becomes. Thus, the four lines and the eight columns of the above-mentioned example result in total 12 parity bits, which together form the input parity code. The parity bits of the input parity code in this form are thus calculated line by line and column by column from the matrix array.

Für das o. g. Beispiel einer 32 Bit Eingangs-Bitsequenz ergibt sich somit folgendes Schema:

Figure DE102013112020A1_0005
For the above example of a 32-bit input bit sequence, the following scheme thus results:
Figure DE102013112020A1_0005

Dabei sind pr[0] bis pr[3] die Paritätsbits für die jeweiligen Zeilen und pc[0] bis pc[7] die Paritätsbits der jeweiligen Spalten der Eingangs-Matrix. Die Parität der jeweiligen Zeile oder Spalte lässt sich dabei anhand der bekannten Verfahren ermitteln, beispielsweise mittels der XOR-Operation. Für das o. g. Beispiel ergibt sich somit für die erste Zeile folgende Eingangs-Paritätsberechnung:

Figure DE102013112020A1_0006
Here, pr [0] to pr [3] are the parity bits for the respective rows, and pc [0] to pc [7] are the parity bits of the respective columns of the input matrix. The parity of the respective row or column can be determined using the known methods, for example by means of the XOR operation. For the example above, the following input parity calculation results for the first line:
Figure DE102013112020A1_0006

Im nächsten Schritt wird nun ein Vorausberechnungs-Paritätscode berechnet, indem für jede Zeile und jede Spalte ein Vorausberechnungs-Paritätsbit auf Basis des Eingangs-Paritätscodes der Eingangs-Matrix berechnet wird, wobei die Vorausberechnungs-Paritätsbits diejenige Parität der jeweiligen Zeile oder Spalte darstellt, die nach der arithmetischen Inkrement- oder Dekrementoperation aus der Matrix berechnet werden würde. Die Vorausberechnungs-Paritäten für jede Zeile und jede Spalte stellen somit jene Paritäten dar, die sich ergeben, wenn man die Paritäten der Zeilen und Spalten des Ergebnisses der Inkrement- oder Dekrementoperation berechnet.In the next step, a precalculation parity code is now calculated by calculating, for each row and each column, a precomputation parity bit based on the input parity code of the input matrix, the preprocessing parity bits representing that parity of the particular row or column which after the arithmetic increment or decrement operation would be calculated from the matrix. The pre-calculation parities for each row and each column thus represent those parities that result when calculating the parities of the rows and columns of the result of the increment or decrement operation.

Bei der Berechnung der Vorausberechnungs-Paritätsbits wird dabei für jede Zeile und jede Spalte festgestellt, ob eine ungerade Anzahl von die jeweilige Zeile oder Spalte betreffenden Bits einen Bitwert aufweisen, welcher aufgrund einer arithmetischen Rechenregel der Inkrement- oder Dekrement-Operation zu einer Umkehrung führen wird. Die Feststellung, ob eine ungerade Anzahl von Bits ihren Bitwert ändern wird, lässt sich mit Hilfe einer boolesche Algebra der in der Eingangs-Bitsequenz enthaltenen Bitwerte ermitteln.In the calculation of the preprocessing parity bits, it is determined for each row and each column whether an odd number of bits concerning the respective row or column has a bit value which will result in an inversion due to an arithmetic operation rule of the increment or decrement operation , The determination of whether an odd number of bits will change their bit value can be determined by means of a Boolean algebra of the bit values contained in the input bit sequence.

Wird für die betreffende Zeile oder Spalte eine solche ungerade Anzahl von Bits festgestellt, so wird das Vorausberechnungs-Paritätsbit durch Umkehr des Eingangs-Paritätsbits der jeweiligen Zeile oder Spalte ermittelt, und sonst durch Nicht-Umkehr des entsprechenden Eingangs-Paritätsbit. Mit anderen Worten, die Vorausberechnungs-Parität einer Spalte oder Zeile entspricht der umgekehrten Eingangs-Parität der entsprechenden Zeile oder Spalte, wenn eine ungerade Anzahl von Bits ihren Bitwert ändern werden. Die Vorausberechnungs-Parität der jeweiligen Zeile oder Spalte entspricht der Eingangs-Parität der entsprechenden Zeile oder Spalte dann, wenn eine solche ungerade Anzahl von Bits, deren Bitwert sich ändern soll, nicht festgestellt wurde.If such an odd number of bits is detected for the particular row or column, the preprocessing parity bit is determined by reversing the input parity bit of the particular row or column, and otherwise by not reversing the corresponding input parity bit. In other words, the preprocessing parity of a column or row corresponds to the inverse input parity of the corresponding row or column when an odd number of bits will change their bit value. The preprocessing parity of the respective row or column corresponds to the input parity of the corresponding row or column when such an odd number of bits whose bit value is to change has not been detected.

Für das oben angesprochene Beispiel der 32 Eingangs-Bitsequenz lässt sich für die erste Zeile folgende Formel zur Berechnung der Vorausberechnungs-Parität bei einer Inkrement um 1 angeben:

Figure DE102013112020A1_0007
For the example of the 32 input bit sequence discussed above, the following formula can be used to calculate the preprocessing parity for an increment by 1 for the first row:
Figure DE102013112020A1_0007

pr'[0] ist dabei die Vorausberechnungs-Parität der ersten Zeile der Eingangs-Matrix. Die o. g. Formel ermittelt dabei, ob gerade Anzahlen von Bits mit einem Bitwert = 1 existieren, so dass durch die Addition von 1 aufgrund des Übertrags sich sämtliche dieser Bits auf 0 ändern und dass sich an diese einer Folge anschließende abschließende Bit aufgrund des letzten Übertrages auf 1 ändert, so dass eine ungerade Anzahl von Bitwertänderungen feststellbar ist.pr '[0] is the preprocessing parity of the first row of the input matrix. The o. G. Formula determines whether there are even numbers of bits with a bit value = 1, so that by adding 1 due to the carry all of these bits change to 0 and that subsequent final bit following that one sequence changes to 1 due to the last carry , so that an odd number of bit value changes can be detected.

Nach Berechnung der Ergebnis-Bitsequenz wird nun gemäß dem Schema der Eingangs-Matrix die Ergebnis-Bitsequenz in einer Ergebnis-Matrix angeordnet, wobei auch hier die entsprechenden Paritäten der Zeilen und Spalten, beispielsweise mittels der XOR-Operation berechnet werden. Demnach liegen nunmehr der Ergebnis-Paritätscode vor, der die Ergebnis-Paritäten der Ergebnis-Bitsequenz enthält, sowie der Vorausberechnungs-Paritätscode, der die Vorausberechnungs-Paritäten der Eingangs-Bitsequenz enthält, so dass durch einen entsprechenden Vergleich der jeweiligen Vorausberechnungs-Paritäten mit den entsprechenden Ergebnis-Paritäten Bitfehler erkannt werden können.After calculating the result bit sequence, the result bit sequence is now arranged in a result matrix in accordance with the scheme of the input matrix, whereby the corresponding parities of the rows and columns, for example by means of the XOR operation, are also calculated here. Thus, there now exists the result parity code containing the result parities of the result bit sequence, and the pre-calculation parity code containing the pre-calculation parities of the input bit sequence, so that by comparing the respective pre-calculation parities with the corresponding one corresponding result parity bit errors can be detected.

Sind sämtliche Vorausberechnungs-Paritäten mit den entsprechenden Ergebnis-Paritäten identisch, so liegt kein Fehler vor. Weist jedoch mindestens eine Vorausberechnungs-Parität einer Zeile oder Spalte einen anderen Wert auf als die entsprechende Ergebnis-Parität, so liegt ein Bitfehler vor.If all the preprocessing parities are identical to the corresponding result parities, then there is no error. However, if at least one precalculation parity of a row or column has a different value than the corresponding result parity, then there is a bit error.

Hierdurch wird es möglich, dass bei der Durchführung von arithmetischen Inkrement- oder Dekrementoperationen neben den klassischen Einbit-Fehlern auch Zweibit- und Dreibit-Fehler sicher erkannt werden können, ohne dass es hierfür den Aufbau einer redundanten Ausführung bedarf. Dabei wurde erkannt, dass durch die spalten- und zeilenweise Berechnung der Paritäten Zweibit-Fehler und einige Mehrbit-Fehler sicher erkannt werden können, da sich die Paritäten nicht gegenseitig aufheben können. Werden beispielsweise zwei Bit in einer Spalte ungewollt verändert, so schlägt sich dies zwar nicht in der Parität der betreffenden Spalte nieder, so dass an dieser Stelle noch nicht sicher ein Fehler erkannt werden könnte. Allerdings sind dann zumindest zwei Zeilen-Paritäten derart betroffen, dass deren Wert von den entsprechenden Ergebnis-Paritäten abweicht.This makes it possible that when performing arithmetic increment or decrement operations in addition to the classic one-bit errors and two-bit and three-bit errors can be reliably detected without this requires the construction of a redundant design. It was recognized that the two-bit errors and some multi-bit errors can be reliably detected by calculating the parities by column and line, since the parities can not cancel each other out. If, for example, two bits in a column are changed inadvertently, this does not result in the parity of the relevant column, so that an error could not yet be reliably detected at this point. However, then at least two line parities are affected so that their value deviates from the corresponding result parities.

Hierbei ist es vorteilhaft, wenn festgestellt wird, ob genau ein Spalten-Syndrom aus den Syndromen der Spalten eine Fehlerkennung aufweist und genau ein Zeilen-Syndrom der Syndrome der Zeilen eine Fehlerkennung aufweist, was auf einen 1 Bit-Fehler schließen lässt, und wobei in Abhängigkeit der Zeile und der Spalte der Syndrome, die eine Fehlerkennung aufweisen, das entsprechende Fehlerbit in der Ergebnis-Bitsequenz lokalisiert wird.In this case, it is advantageous if it is determined whether exactly one column syndrome from the syndromes of the columns has a misrecognition and exactly one row syndrome of the syndromes of the rows has a misrecognition, which implies a 1-bit error, and wherein Dependence of the line and the column of the syndromes having an error detection, the corresponding error bit is located in the result bit sequence.

In diesem Fall ist es möglich, den 1 Bit-Fehler aufgrund der Lokalisierung der Fehlerquelle innerhalb der Bitsequenz zu korrigieren.In this case, it is possible to correct the 1-bit error due to the location of the error source within the bit sequence.

Hiermit lassen sich auch ungerade Mehrbitfehler korrigieren, die in einer gemeinsamen Zeile oder einer gemeinsamen Spalte liegen. Hierfür wird ermittelt, ob genau ein Spalten-Syndrom und eine ungerade Anzahl von Zeilen-Syndromen eine Fehlerkennung aufweisen oder ob genau ein Zeilen-Syndrom und eine ungerade Anzahl von Spalten-Syndromen eine Fehlerkennung aufweisen.It can also be used to correct odd multibit errors that are in a common row or column. For this purpose, it is determined whether exactly one column syndrome and one odd number of row syndromes have an error detection or if exactly one row syndrome and an odd number of column syndromes have an error detection.

Vorteilhafterweise wird für die Berechnung der Vorausberechnungs-Paritäten festgestellt, ob ausgehend von einem Pivot-Bit (das mit dem geringsten Wert), an dem die arithmetische Inkrement- oder Dekrement-Operation durchgeführt wird oder beginnt, in der Eingangs-Bitsequenz eine zusammenhängende Teil-Bitsequenz existiert, bei der sich aufgrund der arithmetischen Rechenregel alle Bitwerte ändern und ob eine ungerade Anzahl von Bits der zusammenhängenden Teil-Bitsequenz der entsprechenden Zeile zugeordnet ist. Hierdurch lassen sich auch ungerade Anzahlen von Bitwertänderungen innerhalb einer Zeile feststellen, die in der Reihenfolge nach den Zeilen kommt, in der das Pivot-Bit liegt. Denn aufgrund der arithmetischen Rechenregel kann sich eine Bitwertänderung in einer Zeile bis in eine andere Zeile und darüber hinaus aufsummieren.Advantageously, for the calculation of the preprocessing parities, it is determined whether, starting from a pivot bit (the one with the lowest value) at which the arithmetic increment or decrement operation is performed or begins, in the input bit sequence a coherent partial Bit sequence exists in which all bit values change due to the arithmetic calculation rule and whether an odd number of bits of the contiguous sub-bit sequence is assigned to the corresponding line. This also allows odd numbers of bit value changes within a line to be determined, which comes in the order of the lines in which the pivot bit is located. Because of the arithmetic calculation rule, a bit value change in a line can add up to another line and beyond.

Entsprechendes gilt auch für die jeweiligen Spalten, wobei auch hier festgestellt wird, ob ausgehend von einem Pivot-Bit, an dem die arithmetische Inkrement- oder Dekrementoperation durchgeführt wird, in der Eingangs-Bitsequenz eine zusammenhängende Teil-Bitsequenz existiert, bei der sich alle Bitwerte ändern und bei der zumindest eine ungerade Anzahl von Bits der entsprechenden Spalte zugeordnet ist.The same applies to the respective columns, it also being determined here whether, starting from a pivot bit on which the arithmetic increment or decrement operation is carried out, a contiguous partial bit sequence exists in the input bit sequence in which all bit values and at least an odd number of bits are assigned to the corresponding column.

Mit Hilfe dieser Grundsätze lassen sich somit für jede Zeile und jede Spalte die Paritäten des Ergebnisses der Inkrement- oder Dekrementoperation vorausberechnen, ohne dass die arithmetische Inkrement- oder Dekrementoperation tatsächlich durchgeführt werden muss.Using these principles, the parities of the result of the increment or decrement operation can thus be predicted for each row and each column without actually having to perform the arithmetic increment or decrement operation.

In einer alternativen Ausführungsform wird als Eingangs-Paritätscode ein linearer Block-Code, beispielsweise ein Hamming-Code, aus der Eingangs-Bitsequenz berechnet, indem jedes Paritätsbit des linearen Block-Codes in Abhängigkeit von den Bitwerten der für das jeweilige Paritätsbit des linearen Block-Codes vorgegebenen Bits der Eingangs-Bitsequenz berechnet wird. Anschließend wird der so aus der Eingangs-Bitsequenz berechnete lineare Block-Code als Vorausberechnungs-Paritätscode vorausberechnet, indem, entsprechend dem bereits Vorhergesagten, festgestellt wird, ob eine ungerade Anzahl von das jeweilige Paritätsbit des linearen Block-Codes betreffenden Bits der Eingangs-Bitsequenz einen Bitwert aufweisen, welcher aufgrund der arithmetischen Rechenregel der Inkrement- oder Dekrementoperation zu einer Umkehrung führen wird, wobei das vorausberechnete Paritätsbit des linearen Block-Codes durch Umkehrung des entsprechenden Paritätsbits des linearen Bock-Codes als Eingangs-Paritätscode berechnet wird.In an alternative embodiment, as input parity code, a linear block code, for example a Hamming code, is calculated from the input bit sequence by dividing each parity bit of the linear block code in response to the bit values of the respective parity bit of the linear block code. Codes predetermined bits of the input bit sequence is calculated. Then, the linear block code thus calculated from the input bit sequence is precomputed as the preprocessing parity code by judging whether or not an odd number of bits of the input bit sequence concerning the respective parity bit of the linear block code is determined Bit value, which will result in an inverse due to the arithmetic operation rule of the increment or decrement operation, where the pre-calculated parity bit of the linear block code is calculated by inverting the corresponding parity bit of the linear buck code as the input parity code.

Mit anderen Worten, es wird für ein Paritätsbit des linearen Block-Codes überprüft, ob sich eine ungerade Anzahl derjenigen Bits, aus denen das Paritätsbit entsprechend des Berechnungsschemas des linearen Block-Codes berechnet wird, aufgrund der arithmetischen Rechenregel ihren Bitwert ändern oder nicht. Wird eine solche ungerade Anzahl festgestellt, so wird das aus der Ergebnis-Bitsequenz ermittelte Paritätsbit des linearen Block-Codes umgekehrt, um das Paritätsbit vorauszuberechnen. Andernfalls verbleibt es unverändert. Eine derartige Abfrage kann beispielsweise mit Hilfe einer Booleschen Algebra über die betreffenden Bits der jeweiligen Paritätsbits des linearen Block-Codes durchgeführt werden.In other words, it is checked for a parity bit of the linear block code whether or not an odd number of those bits from which the parity bit is calculated according to the linear block code calculation scheme change its bit value based on the arithmetic operation rule. If such an odd number is detected, the parity bit of the linear block code determined from the result bit sequence is reversed to precompute the parity bit. Otherwise it remains unchanged. Such a query may be performed, for example, by means of a Boolean algebra over the respective bits of the respective parity bits of the linear block code.

Nach Berechnung der Ergebnis-Bitsequenz wird ein linearer Block-Code als Ergebnis-Paritätscode berechnet, und zwar aus der Ergebnis-Bitsequenz, und mit den vorausberechneten Paritäten des linearen Block-Codes verglichen, wobei hierbei nicht nur Fehler erkannt werden können, sondern gegebenenfalls auch korrigiert werden können, wenn der lineare Block-Code auch Bitfehler korrigieren kann. Je nach Paritätsbit, das einen entsprechenden Fehler zeigt, kann dann auf einen entsprechenden Fehler geschlossen werden.After calculating the result bit sequence, a linear block code is calculated as the result parity code from the result bit sequence and compared with the precalculated parities of the linear block code, whereby not only errors but also possibly errors can be detected can be corrected if the linear block code can also correct bit errors. Depending on the parity bit, which shows a corresponding error, it can then be concluded that a corresponding error.

Grundsätzlich schließt das Korrigieren eines Bitfehlers per Definition auch das Erkennen eines Bitfehlers mit ein.Basically, correcting a bit error by definition also includes detecting a bit error.

In dieser Ausführungsform ist es besonders vorteilhaft, wenn der lineare Block-Code ein Hamming-Code ist, der vielfältig Anwendung findet und teilweise auch als Hardware-Implementation vorliegt. Beim Hamming-Code wird je nach Länge der Eingangs-Bitsequenz eine vorgegebene Anzahl von Paritätsbits aus der Eingangs-Bitsequenz erzeugt, wobei für jedes Paritätsbit eine unterschiedliche Kombination von Bits aus der Eingangs-Bitsequenz verwendet wird. Bei einer 32-Bit-Eingangs-Bitsequenz ergibt sich dabei das erste Paritätsbit p1 des Hamming-Codes wie folgt:

Figure DE102013112020A1_0008
Figure DE102013112020A1_0009
In this embodiment, it is particularly advantageous if the linear block code is a Hamming code that has many applications and is also partially implemented as a hardware implementation. The Hamming code generates a predetermined number of parity bits from the input bit sequence, depending on the length of the input bit sequence, using a different combination of bits from the input bit sequence for each parity bit. In the case of a 32-bit input bit sequence, the first parity bit p 1 of the Hamming code results as follows:
Figure DE102013112020A1_0008
Figure DE102013112020A1_0009

Um nun dieses Paritätsbit p1 des Hamming-Codes für ein 32-Bit-Eingang-Bitsequenz vorauszuberechnen, wird festgestellt, ob aus der Menge der zur Berechnung von p1 notwendigen Bits der Eingangs-Bitsequenz eine ungerade Anzahl von Bits aufgrund der arithmetischen Rechenoperation ihren Bitwert ändern. So kann das Paritätsbit p1 des Hamming-Codes mit Hilfe der nachstehenden Formel vorausberechnet werden:

Figure DE102013112020A1_0010
Figure DE102013112020A1_0011
To precede this parity bit p 1 of the Hamming code for a 32-bit input bit sequence, it is determined whether out of the set of bits of the input bit sequence necessary to calculate p 1 an odd number of bits due to the arithmetic operation Change bit value. Thus, the parity bit p 1 of the Hamming code can be precalculated using the formula below:
Figure DE102013112020A1_0010
Figure DE102013112020A1_0011

Gemäß dieser Formel führt die Parität p1 zu einer Umkehr, wenn eine ungerade Anzahl von Bits, die für die Berechnung des ersten Paritätsbit des Hamming-Paritätscodes notwendig sind, entsprechend festgestellt wurde. Dann wird der Ausdruck hinter dem XOR logisch 1, was zu einer Umkehrung von p1 führt.According to this formula, the parity p 1 leads to a reversal when an odd number of bits necessary for the calculation of the first parity bit of the Hamming parity code has been detected accordingly. Then the expression behind the XOR becomes logic 1, resulting in a reversal of p 1 .

Gemäß diesem Prinzip lassen sich somit alle weiteren Paritätsbits des Hamming-Codes vorausberechnen, indem jedes Mal festgestellt wird, ob eine ungerade Anzahl von die jeweiligen Paritätsbits betreffenden Bits der Eingangs-Bitsequenz ihren Bitwert ändern.According to this principle, all further parity bits of the Hamming code can thus be precalculated by determining each time whether an odd number of bits of the input bit sequence concerning the respective parity bits change their bit value.

In einer weiteren vorteilhaften Ausführungsform, die zusätzlich zu den beiden vorherigen Ausführungsformen oder auch alternativ dazu gesehen werden kann, wird zusätzlich ein erweitertes Eingangs-Paritätsbit berechnet, welches in Abhängigkeit von den Bitwerten aller Bits der Eingangs-Bitsequenz und aller Paritätsbits des Eingangs-Paritätscodes berechnet wird. Dieses erweiterte Eingangs-Paritätsbit kann dann als Erweiterung des Eingangs-Paritätscodes betrachtet werden. So kann beispielsweise bei einem Hamming-Code über eine 32-Bit-Eingangs-Bitsequenz dieses zusätzliche erweiterte Eingangs-Paritätsbit durch die nachstehende Formel ermittelt werden:

Figure DE102013112020A1_0012
wobei sich die zugrunde gelegten Bits der Eingangs-Bitsequenz auf die angegebenen Bits aufgrund der Redundanz des Paritätscodes reduzieren lassen.In a further advantageous embodiment, which can be seen in addition to the two previous embodiments or also alternatively, an extended input parity bit is calculated, which is calculated in dependence on the bit values of all bits of the input bit sequence and all parity bits of the input parity code becomes. This extended input parity bit may then be considered an extension of the input parity code. For example, for a Hamming code via a 32-bit input bit sequence, this additional extended input parity bit can be determined by the following formula:
Figure DE102013112020A1_0012
wherein the underlying bits of the input bit sequence can be reduced to the specified bits due to the redundancy of the parity code.

Dieses erweiterte Eingangs-Paritätsbit lässt sich dann ebenso wie die übrigen Paritätsbits vorausberechnen, indem ebenfalls festgestellt wird, ob die betreffenden Bits zur Berechnung des erweiterten Paritätsbits eine ungerade Anzahl von Bits aufweisen, die aufgrund der arithmetischen Rechenoperation zu einer Umkehrung führen würden. Durch Vergleich dieses vorausberechneten erweiterten Paritätsbits mit dem berechneten erweiterten Ergebnis-Paritätsbits lässt sich dann sicher Zweibit-Fehler detektieren und gegebenenfalls korrigieren.This extended input parity bit can then be precalculated as well as the remaining parity bits by also determining whether the respective bits for computing the extended parity bit have an odd number of bits which would result in a reversal due to the arithmetic operation. By comparing this precalculated extended parity bit with the calculated extended result parity bits, two-bit errors can then be safely detected and, if necessary, corrected.

Um den Aufwand bei der Erkennung von Bitfehlern gemäß der vorliegenden Erfindung zu reduzieren, wird des Weiteren vorteilhafterweise vorgeschlagen, dass ein derartiges Verfahren nicht jedes Mal durchgeführt wird, sondern lediglich in Situationen, in denen die Vorausberechnung des Paritätscodes relativ einfach realisiert werden kann. So führt bei einer einfachen Inkrementoperation die Tatsache, dass das Pivot-Bit eine logische „0” aufweist, in der Regel lediglich dazu, dass sämtliche Paritätsbits des Paritätscodes, die sich auf das Pivot-Bit beziehen, ihre Parität umkehren, während die übrigen Paritätsbits des Paritätscodes unverändert verbleiben. Ein solcher Fall liegt in 50% der Fälle vor. Das Gleiche gilt beispielsweise bei der Konstellation, bei dem das Pivot-Bit eine logische „1” aufweist und das nachfolgende Bit eine logische „0” aufweist, so dass auch hier nur diejenigen Paritätsbits des Paritätscodes vorausberechnet werden müssen, die sich auf diese beiden Bits beziehen. Bei der Verwendung eines Hamming-Codes als Paritätscode wären dies immerhin lediglich nur die ersten beiden Paritätsbits des Hamming-Codes.Further, in order to reduce the burden of detecting bit errors according to the present invention, it is advantageously suggested that such a method is not performed every time, but only in situations where the parity code precursors are relatively simple can be realized. Thus, in a simple increment operation, the fact that the pivot bit has a logic "0" usually only results in all parity bits of the parity code relating to the pivot bit reversing their parity, while the remaining parity bits of the parity code remain unchanged. Such a case is present in 50% of the cases. The same applies, for example, to the constellation in which the pivot bit has a logic "1" and the following bit has a logical "0", so that only those parity bits of the parity code which are based on these two bits must be calculated in advance Respectively. When using a Hamming code as a parity code, these would only be the first two parity bits of the Hamming code.

Es ist daher ganz besonders vorteilhaft, wenn zunächst festgestellt wird, ob sich innerhalb einer zusammenhängenden Teil-Bitsequenz der Eingangs-Bitsequenz, die eine vorgegebene Bitlänge aufweist, die Umkehrung der arithmetischen Rechenwege der Inkrement- oder Dekrementoperation erschöpft, d. h. dass aufgrund der arithmetischen Rechenregel ein Übertrag außerhalb der Teil-Bitsequenz mit vorgegebener Bitlänge nicht erfolgt. Wurde eine derartige Feststellung getroffen, d. h. dass eine Umkehrung nur innerhalb einer vorgegebenen Teil-Bitsequenz erfolgt, so werden letztendlich für die Vorausberechnung der einzelnen Paritätsbits zur Ermittlung des Vorausberechnungs-Paritätscodes nur diejenigen Paritätsbits vorausberechnet, bei denen mindestens ein Bit der Eingangs-Bitsequenz zur Berechnung des jeweiligen Paritätsbits in der Teil-Bitsequenz liegt. Die übrigen Paritätsbits müssen demnach dann nicht vorausberechnet werden, da diese Paritätsbits ohne die Bits der Teil-Bitsequenz berechnet werden und es somit unabhängig von dem Ergebnis nie zu einem Paritätswechsel bei diesen Paritätsbits kommen kann.It is therefore particularly advantageous to first determine whether, within a contiguous sub-bit sequence of the input bit sequence having a predetermined bit length, the inverse of the arithmetic arithmetic paths of the increment or decrement operation is exhausted, i. H. that due to the arithmetic calculation rule, a carry outside the sub-bit sequence with a predetermined bit length does not occur. If such a finding has been made, i. H. that an inversion takes place only within a predetermined sub-bit sequence, only the parity bits for which the precomputation parity code is precalculated are precalculated in which at least one bit of the input bit sequence is used to calculate the respective parity bit in the partial parity bit. Bit sequence is. Accordingly, the remaining parity bits need not be calculated in advance since these parity bits are calculated without the bits of the sub-bit sequence and thus, irrespective of the result, there can never be a parity change in these parity bits.

Dies hat den entscheidenden Vorteil, dass eine Überprüfung des Ergebnisses und somit ein Erkennen der Bitfehler relativ schnell und ohne viel Aufwand durchgeführt werden kann, was sich jedoch mit der Tatsache erkauft wird, dass eine derartige Bitfehlererkennung nicht immer durchgeführt werden kann.This has the decisive advantage that a check of the result and thus a recognition of the bit errors can be carried out relatively quickly and without much effort, which is, however, provided by the fact that such a bit error detection can not always be carried out.

Die Aufgabe wird im übrigen auch mit einem Computerprogramm mit Programmcodemitteln, insbesondere auch einem maschinenlesbaren Träger gespeichert, eingerichtet zur Durchführung des Verfahrens gelöst, wenn das Computerprogramm auf einer Datenverarbeitungsanlage abläuft.The task is also stored with a computer program with program code means, in particular also a machine-readable carrier, set up for carrying out the method when the computer program runs on a data processing system.

Die Erfindung wird im Übrigen auch mit einer Halbleiterschaltung gemäß Anspruch 7, eingerichtet zur Durchführung des Verfahrens, gelöst. Vorteilhafte Ausgestaltungen der Halbleiterschaltung befinden sich in den entsprechenden Unteransprüchen.Incidentally, the invention is also achieved with a semiconductor circuit according to claim 7, set up for carrying out the method. Advantageous embodiments of the semiconductor circuit are located in the corresponding subclaims.

Die Aufgabe wird im übrigen auch mit einem Computersystem gemäß Anspruch 9 gelöst, wobei das Computersystem eingerichtet ist, mittels eines Mikroprozessors das vorstehend beschriebene Verfahren durchzuführen.Incidentally, the object is also achieved with a computer system according to claim 9, wherein the computer system is set up to carry out the method described above by means of a microprocessor.

Die Erfindung wird anhand der beigefügten Zeichnung beispielhaft näher erläutert. Es zeigt:The invention will be described by way of example with reference to the accompanying drawings. It shows:

1 schematische Darstellung der Einbettung der vorliegenden Erfindung im Bereich der arithmetischen Rechenoperationen; 1 schematic representation of the embedding of the present invention in the field of arithmetic operations;

2 schematische Darstellung der Einbettung der vorliegenden Erfindung in den Bereich des Programm Counters. 2 schematic representation of the embedding of the present invention in the area of the program counter.

1 zeigt schematisch die Einbettung der vorliegenden Erfindung im Bereich der schematischen Rechenoperationen eines Computersystems, insbesondere eines Mikroprozessors bzw. einer Halbleiterschaltung. Kernstück ist die sog. ALU (Arithmetic Logic Unit), die als Eingang zwei Operanden erhält, und hieraus je nach Funktion eine Inkrement- oder Dekrementoperation durchführt. Bei einer Inkrementoperation würde im Ausführungsbeispiel der 1 zu der Eingangs-Bitsequenz b[0...n] der Wert des Operanden OPP hinzuaddiert werden. Im einfachsten Beispiel ist der Operand 1, so dass zu der Eingangs-Bitsequenz b[0...n] der Wert 1 hinzuaddiert wird. Denkbar ist allerdings auch, dass der Operand OPP beliebige Werte enthält, so dass beliebige Werte zu der Eingangs-Bitsequenz hinzuaddiert oder auch subtrahiert werden. 1 schematically shows the embedding of the present invention in the field of the schematic computing operations of a computer system, in particular a microprocessor or a semiconductor circuit. The core element is the so-called ALU (Arithmetic Logic Unit), which receives two operands as input and, depending on the function, performs an increment or decrement operation from this. In an increment operation would be in the embodiment of the 1 to the input bit sequence b [0 ... n] the value of the operand OPP is added. In the simplest example, the operand is 1, so that the value 1 is added to the input bit sequence b [0 ... n]. However, it is also conceivable that the operand OPP contains arbitrary values, so that arbitrary values are added to or subtracted from the input bit sequence.

Als Ergebnis liefert die ALU eine Ergebnis-Bitsequenz r[0...n], die das Resultat der arithmetischen Inkrement- oder Dekrementoperation enthält.As a result, the ALU provides a result bit sequence r [0 ... n] containing the result of the arithmetic increment or decrement operation.

Um nun bei einer derartigen arithmetischen Rechenoperation Bitfehler bei der Berechnung in der ALU feststellen zu können, wird parallel zu der ALU eine Paritäts-Vorausberechnungsbaugruppe 1 vorgesehen, die als Eingang die beiden Operanden der ALU erhält. Die Paritäts-Vorausberechnungsbaugruppe 1 berechnet nun gemäß dem Verfahren der vorliegenden Erfindung die entsprechenden Vorausberechnungs-Paritäten des Paritätscodes, und liefert diese als Eingang einer Bitfehler-Erkennungsbaugruppe 2. Die Bitfehler-Erkennungsbaugruppe 2 erhält als zweiten Eingang das Berechnungsergebnis der ALU, nämlich die Ergebnis-Bitsequenz r[0...n].In order to be able to detect bit errors in the calculation in the ALU in such an arithmetic arithmetic operation, a parity preprocessing module is set up in parallel with the ALU 1 is provided, which receives as input the two operands of the ALU. The Parity Predictive Assembly 1 Now, according to the method of the present invention, computes the corresponding preprocessing parities of the parity code and provides them as input to a bit error detection assembly 2 , The bit error detection module 2 receives as the second input the calculation result of the ALU, namely the result bit sequence r [0 ... n].

Die Bitfehler-Erkennungsbaugruppe 2 berechnet nun die Ergebnis-Paritäten des Paritätscodes aus der Ergebnis-Bitsequenz, die es von der ALU erhalten hat, und vergleicht diese Ergebnis-Paritäten mit den Vorausberechnungs-Paritäten der Paritäts-Vorausberechnungsbaugruppe 1.The bit error detection module 2 Now calculates the result parities of the parity code from the result bit sequence it has received from the ALU and compares these result parities to the parity preprocessing group's preprocessing parities 1 ,

Die Bitfehler-Erkennungsbaugruppe 2 kann je nach Fehlertyp, beispielsweise 1 Bit-Fehler, 2 Bit-Fehler, 3 Bit-Fehler oder Mehrbit-Fehler einen entsprechenden Errorcode ausgeben, der dann beispielsweise über eine Exception im Programmablauf des übergeordneten Computerprogramms abgefangen werden kann.The bit error detection module 2 Depending on the type of error, for example, 1-bit error, 2-bit error, 3-bit error or multi-bit error output a corresponding error code, which can then be intercepted, for example, an exception in the program flow of the parent computer program.

Eine solche Einbettung ist beispielsweise im Bereich des Programm Counters vorteilhaft, der in 2 dargestellt ist. Hierbei erhält die ALU als Operand den Wert 1, um den Programm Counter in die nächste Befehlszeile zeigen zu lassen. Wird während der Addition hierbei ein Fehler festgestellt, so wird ein entsprechender Error ausgegeben.Such an embedding is advantageous, for example, in the region of the program counter, which in 2 is shown. In this case, the ALU receives the value 1 as an operand, in order to let the program counter point to the next command line. If an error is detected during the addition, a corresponding error is output.

1. Ausführungsbeispiel1st embodiment

Das nachfolgende Beispiel zeigt die Berechnung der Vorausberechnungs-Paritäten eines matrixartigen Paritätscodes bei einer 32 Bit Eingangs-Bitsequenz.The following example shows the calculation of the preprocessing parities of a matrix parity code in a 32 bit input bit sequence.

Zunächst wird die Eingangs-Bitsequenz b[0...31] in einer Matrix zeilenweise und aufeinander folgend angeordnet, so wie nachfolgend gezeigt.First, the input bit sequence b [0 ... 31] is arranged in a matrix line by line and consecutively, as shown below.

Figure DE102013112020A1_0013
Figure DE102013112020A1_0013

Anschließend wird für jede Zeile und jede Spalte die Parität berechnet. Die Eingangs-Paritäten der Zeilen ergeben sich dabei wie folgt:

Figure DE102013112020A1_0014
Then parity is calculated for each row and each column. The input parities of the rows are as follows:
Figure DE102013112020A1_0014

Die Eingangs-Paritäten für die Spalten ergeben sich dabei aus den folgenden Gleichungen:

Figure DE102013112020A1_0015
The input parities for the columns result from the following equations:
Figure DE102013112020A1_0015

Die Eingangs-Paritäten für die Spalten und die Zeilen ergeben zusammen den Eingangs-Paritätscode.The input parities for the columns and rows together form the input parity code.

Die Vorausberechnungs-Paritäten dieses Paritätscodes werden nun derart berechnet, dass zunächst festgestellt wird, ob in der entsprechenden Zeile oder Spalte eine ungerade Anzahl von Bits vorhanden ist, deren Bitwerte sich aufgrund der Rechenwege ändern werden, wobei dann die Vorausberechnungs-Parität aus der Umkehr der entsprechenden Eingangs-Parität berechnet wird, und ansonsten aus der Nicht-Umkehr der Eingangs-Paritäten.The precomputation parities of this parity code are then computed to first determine if there is an odd number of bits in the corresponding row or column whose bit values will change due to the computation paths, then the preprocessing parity will result from the inverse of the corresponding input parity, and otherwise from the non-inversion of the input parities.

Für die Vorausberechnungs-Paritäten der Zeilen ergeben sich demnach folgende Gleichungen:

Figure DE102013112020A1_0016
The following equations thus result for the preprocessing parities of the rows:
Figure DE102013112020A1_0016

Für die Vorausberechnungs-Paritäten der Spalten ergeben sich die folgenden Gleichungen:

Figure DE102013112020A1_0017
Figure DE102013112020A1_0018
For the pre-calculation parities of the columns, the following equations result:
Figure DE102013112020A1_0017
Figure DE102013112020A1_0018

Anschließend werden aus der Ergebnis-Bitsequenz, die sich durch Anwendung der Inkrement- oder Dekrementoperation auf die Eingangs-Bitsequenz ergibt, ebenfalls der Paritätscode gemäß dem Eingangs-Paritätscode berechnet, indem die Ergebnis-Bitsequenz zeilenweise in einer Matrix angeordnet wird und dann die Zeilen- und Spaltenparitäten entsprechend des Eingangs-Paritätscodes berechnet werden.Then, from the result bit sequence obtained by applying the increment or decrement operation to the input bit sequence, the parity code is also calculated according to the input parity code by arranging the result bit sequence line by line in a matrix, and then dividing the line bit sequence. and column parities are calculated according to the input parity code.

Durch Vergleich der Vorausberechnungs-Paritäten pc' und pr' mit den Ergebnis-Paritäten pc'' und pr'' der Ergebnis-Bitsequenz lässt sich sodann feststellen, ob ein Bitfehler vorhanden ist oder nicht. Dabei lassen sich auch Zweibit-Fehler, Dreibit-Fehler und einige Mehrbit-Fehler mit Sicherheit erkennen.By comparing the precomputation parities pc 'and pr' with the result parities pc "and pr" of the result bit sequence, it can then be determined whether or not there is a bit error. It also detects two-bit errors, three-bit errors and some multi-bit errors with certainty.

Eine derartige Erkennung kann beispielsweise mit Hilfe von Fehlersyndromen gemäß den folgenden Gleichungen ermittelt werden:

Figure DE102013112020A1_0019
Such recognition can be determined, for example, by means of error syndromes according to the following equations:
Figure DE102013112020A1_0019

Jedes Syndrom (XOR-Operation) liefert somit 1 als Fehlerkennung, wenn ein Fehler vorliegt oder 0, wenn kein Fehler vorliegt. Durch Aufsummierung (OR-Operation) lässt sich somit eine gesamte Fehlerkennung ermitteln.Each syndrome (XOR operation) thus returns 1 as an error code if there is an error or 0 if there is no error. By adding up (OR operation) an entire error detection can thus be determined.

Für die Vorausberechnungs-Paritäten der Zeilen ergeben sich für eine Dekrementoperation um 1 in Bezug auf eine 32 Bit Eingangs-Bitsequenz folgende Gleichungen:

Figure DE102013112020A1_0020
Figure DE102013112020A1_0021
For the preprocessing parities of the rows, for a decrement operation of one with respect to a 32 bit input bit sequence, the equations are as follows:
Figure DE102013112020A1_0020
Figure DE102013112020A1_0021

Für die Vorausberechnungs-Paritäten der Spalten bei einer Dekrement-Operation um 1 ergeben sich demnach die folgenden Gleichungen:

Figure DE102013112020A1_0022
Figure DE102013112020A1_0023
The precomputation parities of the columns for a decrement operation of 1 result in the following equations:
Figure DE102013112020A1_0022
Figure DE102013112020A1_0023

2. Ausführungsbeispiel2nd embodiment

Gemäß der zweiten Alternative kann der zugrunde gelegte Paritätscode ein linearer Block-Code sein. Nachfolgend wird die vorliegende Erfindung anhand des Hamming-Codes als Paritätscode beispielhaft näher erläutert.According to the second alternative, the underlying parity code may be a linear block code. Hereinafter, the present invention will be described by way of example with reference to the Hamming code as a parity code.

Bei der Berechnung des Hamming-Codes für eine 32-Bit-Bitsequenz werden zunächst insgesamt sechs Paritätsbits benötigt, die sich jeweils aus unterschiedlichen Bits der 32-Bit-Bitsequenz berechnen. Wie in der nachstehenden Tabelle gezeigt, wird die 32-Bit-Bitsequenz d0 bis d31 um zusätzliche sechs Paritätsbits an entsprechenden Stellen erweitert:

Figure DE102013112020A1_0024
When calculating the Hamming code for a 32-bit bit sequence, a total of six parity bits are first required, each calculated from different bits of the 32-bit bit sequence. As shown in the table below, the 32-bit bit sequence d 0 to d 31 is extended by an additional six parity bits at corresponding locations:
Figure DE102013112020A1_0024

Die Paritätsbits p1 bis p6 des Hamming-Codes werden dann wie folgt berechnet:

Figure DE102013112020A1_0025
Figure DE102013112020A1_0026
The parity bits p 1 to p 6 of the Hamming code are then calculated as follows:
Figure DE102013112020A1_0025
Figure DE102013112020A1_0026

Somit wurde im ersten Schritt aus der 32-Bit-Eingangs-Bitsequenz b0 bis b31 der Hamming-Code als Eingangs-Paritätscode mit den Paritätsbits p1 bis p6 entsprechend den vorgegebenen Formeln berechnet.Thus, in the first step, from the 32-bit input bit sequence b 0 to b 31, the Hamming code was calculated as the input parity code having the parity bits p 1 to p 6 according to the predetermined formulas.

Im anschließenden Schritt wird dieser Eingangs-Paritätscode mit seinen Paritätsbits vorausberechnet, indem für jedes Paritätsbit des Hamming-Codes der Wert des Paritätsbits entsprechend vorausberechnet wird. Hierbei liegt die Idee zugrunde, dass diejenigen Bits der einzelnen Paritätsbits, die für die Berechnung des jeweiligen Paritätsbits notwendig sind, entsprechend so untersucht werden, dass festgestellt wird, ob sich eine ungerade Anzahl von Bits der für die Berechnung des jeweiligen Paritätsbits notwendigen Bits zu einer Umkehrung führen wird, so dass im Ergebnis auch das jeweilige Paritätsbit eine Umkehrung in seinem Wert erfährt.In the subsequent step, this input parity code is precalculated with its parity bits by precomputing the value of the parity bit for each parity bit of the Hamming code. This is based on the idea that those bits of the individual parity bits, which are necessary for the calculation of the respective parity bit, are examined in such a way that it is determined whether an odd number of bits of the bits necessary for the calculation of the respective parity bit become one Inversion will result, so that in the result also the respective parity bit undergoes a reversal in its value.

Für die Vorausberechnungs-Paritäten des Vorausberechnungs-Paritätscodes in Form eines Hamming-Codes ergeben sich demnach folgende Gleichungen:

Figure DE102013112020A1_0027
Figure DE102013112020A1_0028
Figure DE102013112020A1_0029
Figure DE102013112020A1_0030
Figure DE102013112020A1_0031
The precomputation parities of the precomputation parity code in the form of a Hamming code result in the following equations:
Figure DE102013112020A1_0027
Figure DE102013112020A1_0028
Figure DE102013112020A1_0029
Figure DE102013112020A1_0030
Figure DE102013112020A1_0031

Demgegenüber wird nun aus der Ergebnis-Bitsequenz ebenfalls der Hamming-Code mit seinen Paritätsbits p1'' bis p6'' ermittelt, sodass nunmehr die Vorausberechnungs-Paritäten des Hamming-Codes sowie die Ergebnis-Paritäten des Hamming-Codes vorliegen. Durch Vergleich der Paritäten lässt sich dann feststellen, ob ein Bitfehler vorliegt oder nicht. Darüber hinaus kann ein solcher Bitfehler aufgrund des Hamming-Codes auch gegebenenfalls korrigiert werden.In contrast, the Hamming code with its parity bits p 1 "to p 6 " is now also determined from the result bit sequence, so that now the precalculation parities of the Hamming code and the result parities of the Hamming code are present. By comparing the parities can then be determined whether a bit error is present or not. In addition, such a bit error may also be corrected due to the Hamming code.

Um aus dem Hamming-Code, der einen Hamming-Abstand von 3 besitzt, einen Code zu generieren, der einen Hamming-Abstand von 4 besitzt und die Detektierung von Zweibit-Fehlern erlaubt, wird im erweiterten Hamming-Code noch ein weiteres gerades Paritätsbit p7 über alle Daten und bisherigen Paritätsbits des jeweiligen Hamming-Codes hinzugefügt. Dieses zusätzliche Paritätsbit kann auf die XOR-Verknüpfung aller Bits, die in ungerader Anzahl vorkommen, reduziert werden. Für die Auswertung zur Erkennung der Bitfehler folgt nun:

Figure DE102013112020A1_0032
In order to generate from the Hamming code, which has a Hamming distance of 3, a code that has a Hamming distance of 4 and allows the detection of two-bit errors, in the extended Hamming code, another even parity bit p 7 is added over all data and past parity bits of the respective Hamming code. This extra parity bit may point to the XOR of all Bits that occur in odd number can be reduced. For the evaluation to detect the bit errors follows:
Figure DE102013112020A1_0032

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 6990507 B2 [0008] US 6990507 B2 [0008]

Claims (13)

Verfahren zum Erkennen von Bitfehlern in einem Ergebnis einer auf einer Rechenmaschine ausgeführten, arithmetischen Inkrement- oder Dekrementoperation einer Bitsequenz, gekennzeichnet durch die mittels eines Mikroprozessors ausführbaren Schritte: a) Berechnen eines Eingangs-Paritätscodes aus einer Eingangs-Bitsequenz, auf der die Inkrement- oder Dekrementoperation angewendet werden soll, wobei der Eingangs-Paritätscode eine Mehrzahl von Paritätsbits aufweist und jedes Paritätsbit in Abhängigkeit von den Bitwerten eines Teils der Bits der Eingangs-Bitsequenz berechnet wird; b) Berechnen eines Vorausberechnungs-Paritätscodes basierend auf dem Eingangs-Paritätscode, indem für jedes Paritätsbit des Eingangs-Paritätscodes festgestellt wird, ob eine ungerade Anzahl von das jeweilige Paritätsbit betreffenden Bits der Eingangs-Bitsequenz einen Bitwert aufweisen, welcher aufgrund einer arithmetischen Rechenregel der Inkrement- oder Dekrementoperation zu einer Umkehrung führen wird, und indem jedes Paritätsbit des Vorausberechnungs-Paritätscode durch Umkehr des entsprechenden Paritätsbit des Eingangs-Paritätscodes ermittelt wird, wenn eine solche ungerade Anzahl von Bits für das betreffende Paritätsbit festgestellt wurde, und sonst durch Nicht-Umkehr des entsprechenden Paritätsbit des Eingangs-Paritätscodes; c) Berechnen einer Ergebnis-Bitsequenz, indem die Inkrement- oder Dekrementoperation auf der Eingangs-Bitsequenz durchgeführt wird; d) Berechnen eines Ergebnis-Paritätscodes aus der Ergebnis-Bitsequenz entsprechend dem Berechnungsschema für den Eingangs-Paritätscode in Abhängigkeit von den jeweiligen Bitwerten der Ergebnis-Bitsequenz; und e) Erkennen von Bitfehlern in Abhängigkeit von einem Vergleich des Vorausberechnungs-Paritätscodes mit dem Ergebnis-Paritätscode.Method for detecting bit errors in a result of an arithmetic increment or decrement operation of a bit sequence performed on a computing machine, characterized by the steps that can be carried out by means of a microprocessor: a) calculating an input parity code from an input bit sequence to which the increment or decrement operation is to be applied, the input parity code having a plurality of parity bits and each parity bit in response to the bit values of a portion of the bits of the input bit sequence is calculated; b) calculating a preprocessing parity code based on the input parity code by determining, for each parity bit of the input parity code, whether an odd number of bits of the input bit sequence relating to each parity bit has a bit value which is the increment due to an arithmetic operation rule or decrement operation will result in an inversion and by detecting each parity bit of the pre-computation parity code by inverting the corresponding parity bit of the input parity code, if such an odd number of bits for the parity bit concerned has been detected, and otherwise by not reversing the parity bit corresponding parity bit of the input parity code; c) calculating a result bit sequence by performing the increment or decrement operation on the input bit sequence; d) calculating a result parity code from the result bit sequence according to the input parity code calculation scheme in response to the respective bit values of the result bit sequence; and e) detecting bit errors in response to a comparison of the precomputation parity code with the result parity code. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass für jedes Paritätsbit des Vorausberechnungs-Paritätscode ein Fehlersyndrom in Abhängigkeit von dem jeweiligen Paritätsbit des Vorausberechnungs-Paritätscode und dem entsprechenden Paritätscode des Ergebnis-Paritätscode berechnet wird, wobei ein Bitfehler dann erkannt wird, wenn zumindest eines der Fehlersyndrome eine Fehlerkennung enthält.A method according to claim 1, characterized in that for each parity bit of the precomputation parity code an error syndrome is calculated in response to the respective parity bit of the precomputation parity code and the corresponding parity code of the result parity code, a bit error being detected if at least one of the Error syndrome contains an error identifier. Verfahren nach Anspruch 1 oder 2, gekennzeichnet durch – Anordnen der Eingangs-Bitsequenz in einer Eingangs-Matrix, indem die Bits der Eingangs-Bitsequenz nacheinander zeilenweise in der Eingangs-Matrix angeordnet werden; – Berechnen des Eingangs-Paritätscodes, indem für jede Zeile und jede Spalte der Eingangs-Matrix ein Paritätsbit in Abhängigkeit von den Bitwerten der die jeweilige Zeile oder Spalte betreffenden Bits der Eingangs-Bitsequenz berechnet wird; – Berechnen des Vorausberechnungs-Paritätscodes basierend auf dem Eingangs-Paritätscode, indem für jede Zeile und jede Spalte festgestellt wird, ob eine ungerade Anzahl von die jeweilige Zeile oder Spalte betreffenden Bits der Eingangs-Bitsequenz einen Bitwert aufweisen, welcher aufgrund der arithmetischen Rechenregel der Inkrement- oder Dekrementoperation zu einer Umkehrung führen wird, und indem jedes Paritätsbit des Vorausberechnungs-Paritätscode durch Umkehr des entsprechenden Paritätsbits des Eingangs-Paritätscodes, das der Zeile oder Spalte des Paritätsbits des Vorausberechnungs-Paritätscodes entspricht, vorausberechnet wird, wenn eine solche ungerade Anzahl von Bits für die betreffende Zeile oder Spalte festgestellt wurde, und sonst durch Nicht-Umkehr des entsprechenden Paritätsbits des Eingangs-Paritätscodes; – Anordnen der Ergebnis-Bitsequenz in einer Ergebnis-Matrix gemäß dem Schema der Eingangs-Matrix und Berechnen eines Ergebnis-Paritätscodes, indem für jede Zeile und jede Spalte der Ergebnis-Matrix ein Paritätsbit in Abhängigkeit von den Bitwerten der die jeweilige Zeile oder Spalte betreffenden Bits der Ergebnis-Bitsequenz berechnet wird; und – Erkennen von Bitfehlern in Abhängigkeit von einem Vergleich des Vorausberechnungs-Paritätscodes mit dem Ergebnis-Paritätscode.Method according to claim 1 or 2, characterized by Arranging the input bit sequence in an input matrix by sequentially arranging the bits of the input bit sequence line by line in the input matrix; Calculating the input parity code by calculating, for each row and each column of the input matrix, a parity bit in response to the bit values of the bits of the input bit sequence relating to each row or column; Calculating the preprocessing parity code based on the input parity code by determining, for each row and each column, whether an odd number of bits of the input bit sequence relating to each row or column has a bit value which is the increment due to the arithmetic operation rule or decrement operation will result in a reversal, and by precomputing each parity bit of the precomputation parity code by inverting the corresponding parity bit of the input parity code corresponding to the row or column of the parity bit of the precomputation parity code, if such an odd number of bits for the particular row or column, and otherwise by not reversing the corresponding parity bit of the input parity code; Arranging the result bit sequence in a result matrix in accordance with the input matrix scheme and calculating a result parity code by providing a parity bit for each row and each column of the result matrix in dependence on the bit values of the respective row or column Calculating bits of the result bit sequence; and Detecting bit errors in response to a comparison of the pre-computation parity code with the result parity code. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass für jede Zeile und jede Spalte der Eingangs-Matrix zur Berechnung des die jeweilige Zeile oder Spalte betreffenden Paritätsbits des Vorausberechnungs-Paritätscodes festgestellt wird, ob ausgehend von einem Pivot-Bit, an dem die arithmetische Inkrement- oder Dekrementoperation durchgeführt wird, in der Eingangs-Bitsequenz eine zusammenhängende Teil-Bitsequenz existiert, in der alle Bits einen Bitwert aufweisen, welcher aufgrund der arithmetischen Rechenregel zu einer Umkehrung führen wird, und ob eine ungerade Anzahl von Bits der zusammenhängenden Teil-Bitsequenz die jeweilige Zeile oder Spalte betrifft.Method according to Claim 3, characterized in that, for each row and each column of the input matrix for calculating the parity bit of the precalculation parity code relating to the respective row or column, it is determined whether, starting from a pivot bit on which the arithmetic increment or decrement operation, there is a contiguous sub-bit sequence in the input bit sequence in which all bits have a bit value which will result in a reversal due to the arithmetic operation rule and if an odd number of bits of the contiguous sub-bit sequence are the respective ones Concerns row or column. Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass für jede Zeile und jede Spalte ein Fehlersyndrom in Abhängigkeit von dem die jeweilige Zeile oder Spalte betreffenden Paritätsbit des Vorausberechnungs-Paritätscodes und dem die jeweilige Zeile oder Spalte betreffenden Paritätsbit des Ergebnis-Paritätscodes berechnet wird, wobei ermittelt wird, ob genau ein Zeilen-Syndrom der Fehlersyndrome der Zeilen und eine ungerade Anzahl von Spalten-Syndromen der Fehlersyndrome der Spalten eine Fehlerkennung enthalten oder ob genau ein Spalten-Syndrom der Fehlersyndrome der Spalten und eine ungerade Anzahl von Zeilen-Syndromen der Fehlersyndrome der Zeilen eine Fehlerkennung enthalten, und wobei eine ungerade Anzahl von Fehlerbits eines Ein- oder Mehrbitfehlers in der Ergebnis-Bitsequenz in Abhängigkeit von den Zeilen der ermittelten Zeilen-Syndrome mit einer Fehlerkennung und den Spalten der ermittelten Spalten-Syndrome mit einer Fehlerkennung lokalisiert werden.A method according to claim 3 or 4, characterized in that for each row and each column an error syndrome depending on the respective row or column parity bit of the Precalculation parity codes and the parity bit of the result parity code relating to each row or column, wherein it is determined whether exactly one row syndrome of the error syndromes of the rows and odd number of column syndromes of column error syndromes contain an error ID or if exactly one column syndrome of the error syndromes of the columns and an odd number of row syndromes of the error syndromes of the rows contain an error identifier, and wherein an odd number of error bits of a single or multiple bit error in the result bit sequence depending on the rows of the detected rows Syndromes are located with an error identifier and the columns of the determined column syndromes with an error identifier. Verfahren nach Anspruch 1 oder 2, gekennzeichnet durch – Berechnen eines linearen Blockcodes als Eingangs-Paritätscode aus der Eingangs-Bitsequenz, indem jedes Paritätsbit des linearen Blockcodes in Abhängigkeit von den Bitwerten der für das jeweilige Paritätsbit des linearen Blockcodes vorgegebenen Bits der Eingangs-Bitsequenz berechnet wird; – Vorausberechnen des linearen Blockcodes als Vorausberechnungs-Paritätscode basierend auf dem linearen Blockcode als Eingangs-Paritätscode, indem für jedes Paritätsbit des linearen Blockcodes festgestellt wird, ob eine ungerade Anzahl von das jeweilige Paritätsbit des linearen Blockcodes betreffenden Bits der Eingangs-Bitsequenz einen Bitwert aufweisen, welcher aufgrund der arithmetischen Rechenregel der Inkrement- oder Dekrementoperation zu einer Umkehrung führen wird, und indem jedes Paritätsbit des linearen Blockcodes durch Umkehr des entsprechenden Paritätsbits des linearen Blockcodes vorausberechnet wird, wenn eine solche ungerade Anzahl von für das betreffende Paritätsbit des linearen Blockcodes vorgegebenen Bits festgestellt wurde, und sonst durch Nicht-Umkehr des entsprechenden Paritätsbits des linearen Blockcodes; – Berechnen eines linearen Blockcodes als Ergebnis-Paritätscode aus der Ergebnis-Bitsequenz gemäß dem linearen Blockcode als Eingangs-Paritätscode, der aus der Eingangs-Bitsequenz berechnet wurde; und – Erkennen von Bitfehlern in Abhängigkeit von einem Vergleich des vorausberechneten linearen Blockcodes und dem aus der Ergebnis-Bitsequenz berechneten linearen Blockcode.Method according to claim 1 or 2, characterized by Calculating a linear block code as input parity code from the input bit sequence by calculating each parity bit of the linear block code in response to the bit values of the bit of the input bit sequence specified for each parity bit of the linear block code; Precomputing the linear block code as the preprocessing parity code based on the linear block code as input parity code by determining, for each parity bit of the linear block code, whether an odd number of bits of the input bit sequence relating to each parity bit of the linear block code has a bit value, which will result in a reversal due to the arithmetic operation rule of the increment or decrement operation, and by precomputing each parity bit of the linear block code by inverting the corresponding parity bit of the linear block code if such odd number of bits predetermined for the parity bit of the linear block code is detected and otherwise by not inverting the corresponding parity bit of the linear block code; Calculating a linear block code as result parity code from the result bit sequence according to the linear block code as input parity code calculated from the input bit sequence; and Detecting bit errors in response to a comparison of the predicted linear block code and the linear block code calculated from the result bit sequence. Verfahren nach Anspruch 6, gekennzeichnet durch einen Hamming-Code als linearen Blockcode.Method according to claim 6, characterized by a Hamming code as a linear block code. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch – Berechnen eines erweiterten Eingangs-Paritätsbits, welches in Abhängigkeit von den Bitwerten aller Bits der Eingangs-Bitsequenz und aller Paritätsbits des Eingangs-Paritätscodes berechnet wird; – Berechnen eines erweiterten Vorausberechnungs-Paritätsbits basierend auf dem erweiterten Eingangs-Paritätsbit, indem festgestellt wird, ob eine ungerade Anzahl von Bits der Eingangs-Bitsequenz und von das jeweilige Paritätsbit des Eingangs-Paritätscode betreffenden Bits der Eingangs-Bitsequenz einen Bitwert aufweisen, welcher aufgrund einer arithmetischen Rechenregel der Inkrement- oder Dekrementoperation zu einer Umkehrung führen wird, und indem das erweiterte Vorausberechnungs-Paritätsbit durch Umkehr des erweiterten Eingangs-Paritätsbit ermittelt wird, wenn eine solche ungerade Anzahl von Bits festgestellt wurde, sonst durch Nicht-Umkehr des erweiterten Eingangs-Paritätsbits; – Berechnen eines erweiterten Ergebnis-Paritätsbit, welches in Abhängigkeit von den Bitwerten aller Bits der Ergebnis-Bitsequenz und aller Paritätsbits des Ergebnis-Paritätscodes berechnet wird; und – Erkennen von Bitfehlern weiterhin in Abhängigkeit von einem Vergleich des erweiterten Vorausberechnungs-Paritätsbit mit dem erweiterten Ergebnis-Paritätsbit.Method according to one of the preceding claims, characterized by Calculating an extended input parity bit which is calculated in response to the bit values of all bits of the input bit sequence and all parity bits of the input parity code; Calculating an advanced preprocessing parity bit based on the extended input parity bit by determining whether an odd number of bits of the input bit sequence and of the respective parity bit of the input parity code bit of the input bit sequence have a bit value due to an arithmetic calculation rule of the increment or decrement operation will result in a reversal, and in that the extended precomputation parity bit is detected by reversing the extended input parity bit if such an odd number of bits has been detected, otherwise by not reversing the extended input parity bit; parity bits; Calculating an extended result parity bit which is calculated in dependence on the bit values of all bits of the result bit sequence and all parity bits of the result parity code; and - detecting bit errors further in response to a comparison of the advanced preprocessing parity bit with the extended result parity bit. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zunächst festgestellt wird, ob sich innerhalb einer zusammenhängenden Teil-Bitsequenz der Eingangs-Bitsequenz, ausgehend von einem Pivot-Bit, an dem die Inkrement- oder Dekrementoperation durchgeführt wird, mit vorgegebener Bitlänge die Umkehrung der Bits aufgrund der arithmetischen Rechenregel der Inkrement- oder Dekrementoperation erschöpfen, und wobei bei einer derartigen Feststellung nur diejenigen Paritätsbits des Vorausberechnungs-Paritätscodes durch Feststellung, ob eine ungerade Anzahl von das jeweilige Paritätsbit betreffenden Bits der Eingangs-Bitsequenz einen Bitwert aufweisen, welcher aufgrund der arithmetischen Rechenregel der Inkrement- oder Dekrementoperation zu einer Umkehrung führen wird, entsprechend ermittelt werden, bei denen die entsprechenden Bits der Eingangs-Bitsequenz zur Berechnung des jeweiligen Paritätsbits zumindest teilweise in der zusammenhängenden Teil-Bitsequenz liegen, während die übrigen Paritätsbits des Vorausberechnungs-Paritätscode den jeweiligen Paritätsbits des Eingangs-Paritätscode entsprechen.Method according to one of the preceding claims, characterized in that it is first determined whether within a contiguous partial bit sequence of the input bit sequence, starting from a pivot bit on which the increment or decrement operation is performed, with a predetermined bit length, the inversion in such a determination, only those parity bits of the pre-calculation parity code are determined by determining whether an odd number of bits of the input bit sequence relating to each parity bit has a bit value which is due to the arithmetic operation rule of the increment or decrement operation will result in a reversal, are determined in which the corresponding bits of the input bit sequence to calculate the respective parity bit at least partially in the contiguous sub-bit sequence while the remaining parity bits of the precomputation parity code correspond to the respective parity bits of the input parity code. Computerprogramm mit Programmcodemitteln, insbesondere auf einem maschinenlesbaren Träger gespeichert, eingerichtet zur Durchführung des Verfahrens nach einem der vorhergehenden Ansprüche, wenn das Computerprogramm auf einer Datenverarbeitungsanlage abläuft.Computer program with program code means, in particular stored on a machine-readable carrier, arranged for carrying out the method according to one of the preceding claims, when the computer program runs on a data processing system. Halbleiterschaltung, eingerichtet zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 9.Semiconductor circuit configured to carry out the method according to one of Claims 1 to 9. Halbleiterschaltung nach Anspruch 11, dadurch gekennzeichnet, dass eine Paritäts-Vorausberechnungsbaugruppe zur Durchführung der Verfahrensschritte a) und b), eine Arithmetik-Berechnungsbaugruppe zur Durchführung des Verfahrensschrittes c) und eine Bitfehler-Erkennungsbaugruppe zur Durchführung der Verfahrensschritte d) und e) vorgesehen ist. Semiconductor circuit according to claim 11, characterized in that a parity Vorberechnungsbaugruppe for performing the method steps a) and b), an arithmetic-calculation module for performing the method step c) and a bit error detection module for performing the method steps d) and e) is provided. Computersystem zum Erkennen von Bitfehlern in einem Ergebnis einer auf dem Computersystem auszuführenden, arithmetischen Inkrement- oder Dekrementoperation einer Bitsequenz, dadurch gekennzeichnet, dass das Computersystem mittels eines Mikroprozessors zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 9 eingerichtet ist.Computer system for detecting bit errors in a result of an arithmetic increment or decrement operation of a bit sequence to be executed on the computer system, characterized in that the computer system is arranged by means of a microprocessor for carrying out the method according to one of claims 1 to 9.
DE102013112020.2A 2013-10-31 2013-10-31 Method and device for detecting bit errors Expired - Fee Related DE102013112020B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102013112020.2A DE102013112020B4 (en) 2013-10-31 2013-10-31 Method and device for detecting bit errors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013112020.2A DE102013112020B4 (en) 2013-10-31 2013-10-31 Method and device for detecting bit errors

Publications (2)

Publication Number Publication Date
DE102013112020A1 true DE102013112020A1 (en) 2015-04-30
DE102013112020B4 DE102013112020B4 (en) 2016-04-07

Family

ID=52811532

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013112020.2A Expired - Fee Related DE102013112020B4 (en) 2013-10-31 2013-10-31 Method and device for detecting bit errors

Country Status (1)

Country Link
DE (1) DE102013112020B4 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220245023A1 (en) * 2018-07-16 2022-08-04 Taiwan Semiconductor Manufacturing Co., Ltd. Detection and correction of data bit errors using error correction codes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6990507B2 (en) 2002-05-21 2006-01-24 Hewlett-Packard Development Company, L.P. Parity prediction for arithmetic increment function

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6990507B2 (en) 2002-05-21 2006-01-24 Hewlett-Packard Development Company, L.P. Parity prediction for arithmetic increment function

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Poolakkaparambil, M. u.a: BCH code based multiple bit error correction in finite field multiplier circuits. Quality Electronic Design (ISQED), 2011 12th International Symposium on, März 2011 *
Russell, Gordon; Sayers, Ian L. : Advanced simulation and test methodologies for VLSI design. 1. publ. . London : van Nostrand Reinhold, 1989. ISBN: 0-7476-0001-5, S. 287 - 298 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220245023A1 (en) * 2018-07-16 2022-08-04 Taiwan Semiconductor Manufacturing Co., Ltd. Detection and correction of data bit errors using error correction codes
US11740960B2 (en) * 2018-07-16 2023-08-29 Taiwan Semiconductor Manufacturing Co., Ltd. Detection and correction of data bit errors using error correction codes

Also Published As

Publication number Publication date
DE102013112020B4 (en) 2016-04-07

Similar Documents

Publication Publication Date Title
DE102011085602B4 (en) Apparatus and method for correcting at least one bit error in a coded bit sequence
DE2262070A1 (en) ERROR CORRECTION SYSTEM WORKING WITH SLIDING REGISTERS
DE2060643A1 (en) Circuit arrangement for correcting individual errors
DE102017103347B4 (en) PROCESSING OF DATA IN MEMORY CELLS OF A MEMORY
DE2456709C2 (en) Circuit arrangement for error detection and correction
DE102005022107B9 (en) Apparatus and method for determining a position of a bit error in a bit string
DE102018131613A1 (en) Error detection by group error
DE102006005817A1 (en) Error detection device for e.g. address decoder, has comparing unit to output signal based on comparison of input and regenerated addresses, where signal displays error during conversion, when input and regenerated addresses do not coincide
DE102011087634B9 (en) DEVICE AND METHOD FOR DETECTING AN ERROR IN A CODED BINARY WORD
EP3614268B1 (en) Method and device for processing of data using coded operations
DE102020110787B3 (en) CIRCUIT AND PROCEDURE FOR ENCODING OR DECODING A DATA WORD
DE102010041680B4 (en) Apparatus and method for determining a position of a 1-bit error in a coded bit sequence, apparatus and method for correcting a 1-bit error in a coded bit sequence, and a decoder and method for decoding a defective coded bit sequence
DE102013219088B9 (en) Circuit arrangement and method for realizing check bit compaction for cross-parity codes
DE102013112020B4 (en) Method and device for detecting bit errors
DE102021109391B3 (en) Multibyte error detection
DE102014114157B4 (en) A method of data processing for determining whether an error has occurred during execution of a program and data processing arrangements for generating program code
DE102019113970B4 (en) DETECTION OF ADDRESSING ERRORS
DE102015118668B4 (en) ERROR CORRECTION
DE102015121646B4 (en) ERROR CORRECTION
DE102015112554B4 (en) Method and device for generating a code bit sequence and for detecting bit errors
EP1579230B1 (en) Device and method for creating a signature
EP0046963B1 (en) Circuit configuration for the recognition and correction of error bursts
DE102021123727B4 (en) byte error correction
DE102013112021B4 (en) Method and device for detecting bit errors
DE19937456C2 (en) Computer for data processing and method for data processing in a computer

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: TECHNISCHE UNIVERSITAET CLAUSTHAL, DE

Free format text: FORMER OWNER: FACHHOCHSCHULE NORDHAUSEN, TECHNISCHE UNIVERSITAET CLAUSTHA, , DE

Owner name: HOCHSCHULE NORDHAUSEN, DE

Free format text: FORMER OWNER: FACHHOCHSCHULE NORDHAUSEN, TECHNISCHE UNIVERSITAET CLAUSTHA, , DE

Owner name: TECHNISCHE UNIVERSITAET CLAUSTHAL, DE

Free format text: FORMER OWNERS: FACHHOCHSCHULE NORDHAUSEN, 99734 NORDHAUSEN, DE; TECHNISCHE UNIVERSITAET CLAUSTHAL, 38678 CLAUSTHAL-ZELLERFELD, DE

Owner name: HOCHSCHULE NORDHAUSEN, DE

Free format text: FORMER OWNERS: FACHHOCHSCHULE NORDHAUSEN, 99734 NORDHAUSEN, DE; TECHNISCHE UNIVERSITAET CLAUSTHAL, 38678 CLAUSTHAL-ZELLERFELD, DE

R082 Change of representative

Representative=s name: GRAMM, LINS & PARTNER GBR, DE

Representative=s name: GRAMM, LINS & PARTNER PATENT- UND RECHTSANWAEL, DE

R082 Change of representative

Representative=s name: GRAMM, LINS & PARTNER PATENT- UND RECHTSANWAEL, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee