WO2006003023A2 - Method and arrangement for detecting unidirectional errors with systematic unordered codes - Google Patents

Method and arrangement for detecting unidirectional errors with systematic unordered codes Download PDF

Info

Publication number
WO2006003023A2
WO2006003023A2 PCT/EP2005/007430 EP2005007430W WO2006003023A2 WO 2006003023 A2 WO2006003023 A2 WO 2006003023A2 EP 2005007430 W EP2005007430 W EP 2005007430W WO 2006003023 A2 WO2006003023 A2 WO 2006003023A2
Authority
WO
WIPO (PCT)
Prior art keywords
code
bit
value
check
checker
Prior art date
Application number
PCT/EP2005/007430
Other languages
German (de)
French (fr)
Other versions
WO2006003023A3 (en
Inventor
Steffen Tarnick
Original Assignee
4Tech Gesellschaft Für Technologie Und Know-How-Transfer Mbh
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 4Tech Gesellschaft Für Technologie Und Know-How-Transfer Mbh filed Critical 4Tech Gesellschaft Für Technologie Und Know-How-Transfer Mbh
Priority to EP05758001A priority Critical patent/EP1766787A2/en
Publication of WO2006003023A2 publication Critical patent/WO2006003023A2/en
Publication of WO2006003023A3 publication Critical patent/WO2006003023A3/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/47Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
    • H03M13/49Unidirectional error detection or correction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/47Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
    • H03M13/51Constant weight codes; n-out-of-m codes; Berger codes

Definitions

  • the invention relates to a method for detecting unidirectional errors in words x of a systematic disordered code C and an arrangement for implementing this method.
  • the goal is to detect signal bit errors caused by faulty circuitry as they occur, with the outputs of the circuit being words of code C.
  • the method and arrangement are therefore well suited for the online test.
  • the online test is often implemented using self-checking circuits with coded outputs and self-testing code checkers that monitor the outputs of the circuits under test.
  • the ability of a checker to be self-testing guarantees that it can signal its own circuit faults in the same way as bit errors produced by the supervised circuit.
  • a circuit is called self-testing for a set of skip errors if for each error from that set there exists an input codeword for which the circuit generates a non-codeword output in the presence of the error.
  • the ability to detect bit errors that transform codewords generated by the monitored circuit into non-codewords is achieved by the property of the checker to be code-separating.
  • a circuit is called code-separating when it maps (input) codewords to (output) codewords and non-codewords to non-codewords.
  • E be a class of bit errors.
  • a circuit is code-separating with respect to E if it is code-separating the word set, which consists of all codewords and all those non-codewords that can be generated by the modification of codewords with errors from E. (A similar definition is These are not self-testing with respect to all circuit errors, but with respect to a certain class of errors.If this restriction is omitted, it is usually assumed that this class is the set of all simple sticking errors, which also applies to the checkers considered here Is accepted.)
  • checkers discussed here are code-separating with respect to all unidirectional errors. They are suitable for use in systems where no other type of bit error is expected or even can not emerge as a result of simple trapping errors (see, eg, FY Busaba and PK Lala, "Self-Checking Combinational Circuit Design for Single and Unidirectional Multibit Error.” Journal of Electronic Testing, Vol. 5, No. 1, February 1994, pp. 19-28).
  • checker The ability of a checker to self-test depends not only on its architecture, but also on the amount of codewords the checker receives from the circuit to be monitored. If some code words are not generated by the circuit then some checker errors could not be tested. If such errors are not detected, then the checker loses the property of being code-separating. Since such checkers are not considered as isolated circuits that theoretically receive all codewords, but are embedded in a system in which the amount of codewords they receive depends on the particular environment of the checker, such checkers are called embedded checkers. There are a variety of methods in the literature for designing embedded checkers.
  • checkers have two outputs which in the error-free case form a two-rail signal, ie the output of the checker is ol or 10.
  • the output of the checker is ol or 10.
  • checkers with a single output outputting a periodically changing signal have one Set of advantages. If only checkers with a periodic output signal were used in a complex system consisting of different subsystems with different error-detecting codes, then the size of the global two-rail checker, which evaluates the signals of all the subcheckers, is reduced. Likewise, the number of lines is reduced.
  • x ⁇ is the binary representation of the number k 0 of the zeros of the information bit vector x ⁇ reduced by n - Wi or
  • the error detection comprises comparing the weight of the information bit vector ⁇ (') with the value of the check symbol x ⁇ .
  • test symbol can be selected flexibly by predefinable values WQ and Wj . satisfy the condition I / I / I - W 0 ⁇ 2 k - 2, where WQ denotes a specifiable minimum and w ⁇ a specifiable maximum weight of the information bit vector ⁇ (') and
  • ⁇ ( c ) is the binary representation of the number k 0 of the zeros of the information bit vector ⁇ (') increased by a value s - n + W 1 or
  • a word x of the code C is pinned such that
  • the value of C Q is equal to the value of cjr
  • ie C Q C n ⁇
  • Words of the code C are a periodic sequence 0, 1, 0, 1,. , , is and a unidirectional error is detected by the fact that the periodicity of this sequence is violated.
  • This method additionally constitutes a special realization of the method according to claim 1 or 2, wherein the comparison of the weight of the information bit vector xW with the value of the check symbol ⁇ (c) is performed by comparing x with a word y for which the comparison of the weight of y ( ' ) with the value of y ⁇ has already taken place.
  • Another method for detecting unidirectional errors in words x of a systematic disordered code C provides that the words x are translated into words x 'of a specifiable code C, and then x' is checked by a method for checking the specifiable code C, where the translation is controlled solely by the check symbol of x.
  • the predefinable code C is a code according to one of claims 1 or 2 (Berger type code).
  • the translation from x to x 'X ⁇ j 1 of x is complementary and x is complementary Xf ⁇ J 1 is added to the check symbol x ⁇ of x.
  • the translation from x to x 'be such that all of the most significant check bit or be associated with its complement x £ _ x a XOR operation or that the translation from x to x 'is performed so that the the most significant parity bit xj [_ ⁇ x complementary value x [_ x, an additional information bit x ⁇ forms.
  • Code C is a Biswas Sengupta AUED code k
  • An arrangement for detecting unidirectional errors using a systematically disordered code C comprises at least one chip and / or processor which is / are arranged such that a method for detecting unidirectional errors using the code C according to claim 1 , 2 or 5 is feasible.
  • the chip (s) and / or processors are set up in such a way that a method for detecting unidirectional errors can be carried out using a systematic disordered code C according to claim 3.
  • FIG. 1 shows an averaging circuit (MS)
  • FIG. 2 shows the structure of an embedded Berger code checker with an output
  • FIG. 3 shows a half adder (HA)
  • FIG. 4 shows a B * (2 k , k) -to-B 0 (2 k , / c) code translator
  • FIG. 5 shows a ⁇ # (2 *, / c) -to- ⁇ o -1 (2 / c , k-1) code translator
  • FIG. 6 shows an example of a size comparator
  • Figure 7 shows the comparison of the gate numbers for different translation circuits.
  • the invention includes new embedded checker architectures having an output for Bose AUED codes and Biswas Sengupta AUED codes.
  • the underlying design idea is to translate the codewords into words of a code similar to a Berger code and then check the obtained words with a Berger-type code checker.
  • the architecture of the Berger-type code checker is based on the Checker designs described in AP Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error-Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 were proposed.
  • This invention relates to disordered codes. They have the ability to detect single bit errors as well as multiple unidirectional errors. It has been proven that a code is an all-unidirectional error detecting (AUED) code if it is a disordered code (B. B Marvel and TRN Rao, Theory of Unidirectional Error Correcting / Detecting Codes, IEEE Transactions on Computers , Vol. C-31, No. 6, June 1986, pp. 521-530). This invention deals with systematic disordered codes in which each codeword is subdivided into an information part and a test part. Berger codes (JM Berger, "A Note on Error Detection Codes for Asymmetry Channels," Information and Control, Vol. 4, 1961, pp.
  • the information bit vector of x is denoted by X ⁇ and the check symbol by x ⁇ c ⁇
  • the check symbol is the binary representation of / co, where / c 0 denotes the number of zeros in the information bit vector.
  • the check symbol of a ⁇ i ( ⁇ , / c) codeword is obtained by adding 2 k -1-n to the check symbol of the corresponding ⁇ o ( ⁇ , / c) codeword.
  • ⁇ o (n, k) and ⁇ i (n, k) are two extreme cases of a more general class of systematic disordered codes.
  • the codes of this class differ in the number s G ⁇ 0, 1,. , , , 2 k - 1 - n ⁇ , which is added to the check symbol of the corresponding word in ßo ( ⁇ , k).
  • Such a code is denoted by ⁇ o (n, k).
  • the same code can also be denoted by ⁇ f 2 + 1 + n + s (n, k).
  • the last column of Table 1 shows the check symbols of a ⁇ o (8, 4) code (and, for comparison, the check symbols of the classic Berger codes). It is easy to prove that every ß g code, 0 ⁇ s ⁇ 2 k - 1 - n, is a disordered code.
  • These codes are not as efficient as the JE Smith codes, "On Separable Unordered Codes," IEEE Transactions on Computers, Vol. C-33, no. 8, August 1984, pp. 741-743, which are optimal in the event that not all information bit vectors occur. However, they are of practical interest for the design of checkers for Bose AUED codes and Biswas Sengupta AUED codes.
  • a Bose Aued codeword x has 2 k information bits and k check bits.
  • the information part of x is again denoted by ⁇ ( ' ) , the test part by ⁇ (c) and the code by B * (2 k , k).
  • Let / co be the number of zeros in ⁇ ( ' ) and let / ci be the number of ones (the weight of ⁇ ( ' ) ), ie / ci w (x ⁇ ).
  • the check symbols of the code are defined as follows:
  • Bose-AUED codes are a special class of a more general code class (GP Biswas and I. Sengupta, "Design of t-UED / AUED Codes from Berger's AUED Code," The International Conference on VLSI Design, January 1997, pp. 364-369). These codes are constructed by modifying an S 0 -Berger code. The modification is based on the fact that the numbers 2 / and 2 / - 1 are unordered in the binary representation. The information bit vector of weight 0 is modified to a vector of weight w '(with 2 / as the associated check symbol), and 2 / -1 is assigned to the modified information bit vector as a check symbol.
  • the check symbols of these codewords are decremented by one.
  • the information bit vector with weight 2 k is modified in the same way as the information bit vector with weight 0.
  • one of these two vectors starts with 2 k -2i ones, followed by 2 / zeros, whereas in the other bit of information.
  • Vector the bits appear in reverse order.
  • an 8 2 2 /) (2 *, / c) code is composed of words from B Q (2 k , k) and ⁇ 1 (2 / t , k).
  • a codeword belongs to ßi (2 / c , k) if its check symbol is smaller than 2 /, otherwise it belongs to B 0 (2 k , k).
  • An averaging circuit (MS) consists of two parts, as shown in FIG. The upper part carries out a weight averaging operation on the pieces of information ⁇ (') and yW of the codewords x and y, and supplies the information part of the result z.
  • the lower part operates on the check symbols ⁇ ( c ) and y ⁇ and calculates its mean value z ⁇ c ⁇
  • the least significant sum bit d ⁇ is the remainder of the division (x ⁇ + y ⁇ ) / 2.
  • the two D flip Flops are initialized complementarily. It should be noted that in the upper subcircuit (in contrast to an adder with carry forwarding), the roles of the sum bit and the output carry bit are interchanged, ie the sum output of the / full adder (VA) is mixed with the carry output. Input of the / + 1 th full adder, and the carry output of the / th full adder is the / th bit of the result of the operation.
  • VA sum output of the / full adder
  • x be a Berger codeword generated by the monitored circuit
  • y be a codeword stored in the register.
  • the weight of the information piece of z is the average weight of the pieces of information of x and y
  • the value of the check symbol of z is the mean of the check symbols of x and y.
  • z is again a Berger codeword.
  • This word is stored in the register.
  • the signals d 0 and d ⁇ are used as an error signal, which in the error-free case is a two-rail signal and in the event that a non-codeword appears or the checker is faulty, a non-two-rail signal.
  • the sum output O 1 is fed back via an inverter and a D flip-flop to the carry input of the weight averaging circuit.
  • the Berger Code Checker works in a similar fashion to the m-out-of-n code checker described in AP Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checks for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA 1 April 1999, pp. 361-369: the leftmost D flip-flop changes value in each clock, and bits C Q and d x always have the same values. Since d ⁇ is a periodically changing signal, it is used as the Checker's error signal (with one output). The new checker is shown in FIG.
  • Example: Table 5 demonstrates the working principle of the checker for a B Q (9, 4) orbiter code.
  • x and y denote the two inputs of the MS and z the output.
  • checker can also be used for B Q ( ⁇ , / c) -erger type codes, 0 ⁇ s ⁇ 2 k -l-n, and is self-testing if the above conditions apply. In this way, the checker is programmable.
  • the concrete code being tested depends only on the code affiliation of the word with which the checker register was initialized. It can easily be shown that this checker architecture can also be used for the other Berger type codes described in the previous section.
  • Bose-Aued Code B * (2 k, k)
  • a Bose-AUED codeword one of the two checkers must signal an error and the other that no error is present.
  • Another, but more efficient, method is to translate the Bose-AUED codewords into Berger-type codewords and check the received words with a Berger-type code checker. Therefore, the Bose-AUED code checkers described here consist of a translation circuit and a Berger type code checker.
  • the translation circuit must be self-testing. This means that an error will produce a non-Berger type codeword for at least one codeword, and a test codeword will be provided for each error.
  • No Berger Type Code Checker input line receives a constant signal and there are at least two complementary check symbols (see AP Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error Detecting Codes"). IEEE VLSI Test Symposium, Dana Point, CA 1 April 1999, pp. 361-369).
  • Bose-AUED code checkers Three different architectures for Bose-AUED code checkers are considered.
  • the first draft of Checker is based on the approach outlined in SW Bums and NK Jha, "A Tally Self-Checking Checker for a Parallel Unordered Coding Scheme," IEEE Transactions on Computers, Vol. 4, April 1994, pp. 490-495 was discussed.
  • the words of the ⁇ * (2 fc , k) code are translated into Bo ( 2k -1, k) Berger codewords, which are then checked with a Berger code checker.
  • the Berger code information bit vector consists of only 2 ⁇ - 1 bits.
  • the remaining information bit for example X Q , is used to control the transformation of the check bits.
  • the B * ⁇ 2 k , / c) code translator based on half-adders maps each (single or multiple) unidirectional error to a non- ⁇ o (2 / t , / c) word. This can be shown as follows. An error that does not affect bit X ⁇ 1 is mapped to a ⁇ o (2 / c , k) non-codeword x 'which has an error at the same bit positions as x. If x ⁇ _ x is affected, the value of x ' ⁇ deviates by at least 2 ⁇ -1 - 1 from the correct check symbol value, and the error is detected by the ßo (2 / c , / c) code checker.
  • Each HA receives all 4 bit combinations, and the OR gate receives all combinations except 11, which is not necessary for the test either.
  • the purpose of the Bose AUED code and the checker is to detect unidirectional errors, but a unidirectional error is unable to transform a B * ( 2k , k) codeword into a Berger type codeword not part of the B % (2 k , / c) code. Therefore, the checker's property of not being code-divisive does not prevent it from recognizing all unidirectional errors.
  • the second architecture is based on the property that the word complementary to a B 0 (2 k , / c) word belongs to B 1 (2 k , k) and vice versa.
  • the idea is, each B ⁇ , (2 k, / c) -Bose- Aued codeword x k on a B ⁇ ⁇ 2, / c) -Berger type codeword x map '. If x already belongs to B ⁇ (2 k , k), then it remains unchanged. If x belongs to B 0 (2 k , k), then every bit of x is inverted.
  • the XOR-based ⁇ * (2 k , / f) -to- ⁇ o "1 (2 / c , k-1) code translator forms any (single or multiple) unidirectional error on a non- ⁇ 1 (2 / c , k - 1) word.
  • this checker architecture is not code-breaking in the usual sense. But again, the only non-codewords that the checker is unable to never be caused by unidirectional errors, and the checker's ability to be non-code-breaking does not prevent it from recognizing all unidirectional errors.
  • the B * (2 k , / c) code is translated into a ⁇ o ⁇ 1 (2 / ( + l, / e) ⁇ code, where ⁇ o ⁇ 1 (2 / t + l, / c ) Code has an information bit vector at least one and at most 2 k zeros, so that 0 ⁇ / C Q - 1 ⁇ 2 f e - 1 and thus k check bits are sufficient
  • the B A (2 k , + l, / ⁇ code translation circuit consists of a simple inverter.
  • the B * (2 k , / c) -to- ⁇ o -1 (2 / c + 1, / c ⁇ code translation circuit also makes each (single or multiple) unidirectional error a non- ⁇ 1 ( ., 2 'c 4 l / c) word from this can be shown as follows an error that does not affect bit x ⁇ _ x is a ß o "1 (2 / c + l, k) - not codeword x 'shown that as x has a fault at the same bit positions now let bit x ⁇ _ x affected by the error, it is assumed that the fault is a 0 -...
  • checker consisting of the B * (2 k , / c) -to- ⁇ o "1 (2 / c + 1, / c) code translator and the ⁇ ⁇ 1 (2 / c + 1, / c) -Code ⁇
  • Checker is self-testing under the condition that no input line receives a constant signal, the code words appear in random order and there are at least two complementary check symbols The checker is again not code - separating, but able to detect all unidirectional errors.
  • the checker architectures for Biswas-Sengupta-Aued codes B * (2 k, k) are to those (k 2, k) similar for Bose-Aued codes B *.
  • the main difference is that the distinction as to whether a code word to B 0 (2 k, k) or k B x ⁇ 2, belongs k), can not be made solely with the aid of the most significant test bits X ⁇ . 1 Instead, it is done by examination, whether ⁇ (c) > 2 / - 1. This is implemented by using a magnitude comparator.
  • no (single or multiple) unidirectional error can be transformed into an So ⁇ , / c) codeword.
  • no (single or multiple) unidirectional error can be transformed into a ⁇ 1 (2 / t + 1, / c) codeword
  • the complement of the magnitude comparator output f (x ⁇ ) is added to ⁇ ( c )
  • the following comparison shows the advantages of the various Checker architectures compared to the prior art.
  • the comparison includes hardware size, size of the mini ⁇ mimal test amount and the property of being code-separating.
  • the checker is self-testing provided that no input line receives a constant signal, it receives two check symbols which are complementary and the codewords appear in random order. Two codewords are enough to test the entire checker. Thus, the property of being self-testing is practically achieved independently of the amount of code words made available by the circuit to be monitored.
  • the hardware size is compared to that of an embedded B 0 (2 k , k + 1) aggravator code checker.
  • the numbers indicate how many gates are more or less needed.
  • the hardware size difference thus includes the gate count for the respective translation switch and parts of the Berger type code checker which, due to changed code parameters, in addition to the 60 (2 *, k + 1) -gerger code checker needed or saved.
  • the following values are used to determine the gate numbers: AND and OR gates with two inputs each count as one gate and two inverters are counted as one gate. According to Theorem 4 in AP Stroele and S.
  • the minimum test set consists of at most 2 / c + 16 codewords. Of all the architectures discussed here, it is the only one that is code-separating in the traditional sense.
  • the HA-based translator requires 3.5 (/ c - 1) +1.5 gates, and it saves a full adder for the check symbols and a D-type flip-flop, which together add 3.5 (/ c - 1) - 17 , 5 additional gates results.
  • the minimum test set consists of k + 3 codewords. The checker is code separating with respect to unidirectional errors.
  • the gate count for the XOR-based translator is 4 (2 ⁇ + k-1). Since 2 less check bits are needed, the number of extra gates is reduced to 4 (2 ⁇ + k - 1) - 38.
  • the minimum test set consists of 6 vectors and the checker is code-separating with respect to unidirectional errors.
  • the inverter-based translator requires only one inverter. An additional bit of information is required, but a check bit is saved, so that the checker saves 2.5 gates compared to a Berger code checker.
  • the minimum test set consists of 2 vectors. Compared to other architectures, this is not a special test set. The only requirement is that it contains complementary check symbols.
  • the checker is code-separating with respect to unidirectional errors.
  • Table 7 summarizes the properties of the different Checker architectures for Bose AUED codes.
  • the first column enumerates the architectures, where Burns, HA, XOR, and INV denote the architecture of Burns and Jha, as well as the half-adder, XOR, and inverter-based architecture.
  • the second column shows the number of extra gates compared to an embedded Berger code checker, and the third column shows the size of a minimum test set.
  • Column 4 indicates that only the Checker of Burns and Jha is fully code-separating. All others are code-separating with respect to all unidirectional errors.
  • FIG. 7 compares the numbers of gates additionally required for a B 0 (2 k , k + 1) -gerger code checker for the various architectures.
  • the inverter-based architecture requires the least hardware. Furthermore, it requires only 2 codeword tests for all k, and the property of being self-testing is achieved almost independent of the amount of codewords provided by the monitored circuit.
  • the embedded Biswas-Sengupta code checkers additionally have a size comparator which consists of at most k-l additional gates and requires at most / c + 1 additional codeword tests (except the XOR-based architecture, which uses 2 fc / (2 / t ⁇ 1 - 12 / - 2 * "1 ! + k + 5 test vectors required).
  • test vectors given in column 3 of Table 7 do not mean that after applying the vectors of the corresponding test set, the corresponding Checker architecture is tested. Rather, it is necessary for these vectors to appear repeated in random order. Such a vector sequence (which can also contain additional vectors) is able to test the corresponding checker.
  • a detailed proof will be in AP. Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error-Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 given.
  • the size of the test set is not the main testability criterion.
  • testability analysis only considered simple trapping errors.
  • checker architectures presented here are also self-testing with respect to a significantly larger amount of other errors.
  • the half adders and XOR gates of the translation circuits receive all the signal combinations so that they are completely tested and any combinatorial error is recognized.
  • AP Stroele and S. Tarnick "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error-Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp.
  • the first possibility consists of splitting the connected average circuit shown in Figure 2 into two independent sub-circuits such that each of the two sub-circuits comprises at most ⁇ (n + k) / 2] full adders. This modified averaging circuit then resembles the circuit shown in FIG.
  • the versions of the discussed checker with one and two outputs hardly differ in their architecture.
  • the code translation circuits are the same for both versions. The difference is based on the architecture of the Berger type code checker, which can have two outputs that output a two-rail signal in the error-free case, or an output that changes its value every clock.
  • Both versions have their advantages. In a self-checking system, if checkers with two outputs are replaced by checkers with a periodic output, then complementary outputs of two checkers with one output again form a two-rail signal. That way, the size becomes a global two-rail code checker, which evaluates the signals of all subordinate sub-checker reduced.
  • the Checker versions with an output lead to less hardware overhead for the entire system.
  • the two-output versions on the other hand, have a higher operating speed, especially if the averaging circuit is split as described in the previous paragraph.
  • codewords can not even appear because a unidirectional error is not able to falsify a codeword (which belongs to the subcode) into another codeword (which does not belong to the subcode).
  • the architectures presented are very well suited even in the event that the partial code is not completely known.

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

The invention relates to a method and an arrangement for the detection of unidirectional errors in words of systematic unordered codes. These codes are Bose-AUED codes and Biswas-Sengupta-AUED codes. The error detection method consists in translating the code words into words of a Berger-type code which are then checked by using a method for the corresponding Berger-type code. The inventive error detection arrangement which comprises a translation circuit and a Berger-type code checker can be tested with a very low number of code words. It has the characteristic of being self-testing almost independently of the amount of code words provided and is therefore extremely suitable as embedded checker. Said checker has two outputs emitting a two-rail-signal or one output carrying a periodic signal. Moreover, this checker is not code-splitting in the conventional sense, but yet capable of detecting all unidirectional errors.

Description

Verfahren und Anordnung zur Fehlererkennung mit systematischen ungeordneten Codes Method and arrangement for error detection with systematic disordered codes
Beschreibungdescription
Die Erfindung betrifft ein Verfahren zur Erkennung von unidirektionalen Fehlern in Wörtern x eines systematischen ungeordneten Codes C sowie eine Anordnung zur Realisierung dieses Verfahrens. Ziel ist es, Signal-Bitfehler, die durch eine fehlerhafte Schaltung verursacht werden, sobald sie auftreten, zu erkennen, wobei die Ausgaben der Schaltung Wörter des Codes C sind. Verfahren und Anordnung eignen sich daher gut für den Online- Test.The invention relates to a method for detecting unidirectional errors in words x of a systematic disordered code C and an arrangement for implementing this method. The goal is to detect signal bit errors caused by faulty circuitry as they occur, with the outputs of the circuit being words of code C. The method and arrangement are therefore well suited for the online test.
Der Online-Test wird häufig implementiert unter Verwendung von selbstprüfenden Schal¬ tungen mit kodierten Ausgängen und selbsttestenden Code-Checkern, die die Ausgänge der zu prüfenden Schaltungen überwachen. Die Fähigkeit eines Checkers, selbsttestend zu sein, garantiert, daß er seine eigenen Schaltungsfehler in derselben Weise signalisieren kann, wie Bitfehler, die von der überwachten Schaltung produziert werden. Eine Schaltung wird selbst¬ testend bezüglich einer Menge von Schältungsfehlern genannt, wenn für jeden Fehler aus dieser Menge ein Eingabe-Codewort existiert für das die Schaltung bei Anwesenheit des Fehlers eine Nichtcodewort-Ausgabe erzeugt. Die Fähigkeit, Bitfehler zu erkennen, welche von der überwachten Schaltung erzeugte Codewörter in Nichtcodewörter transformieren, wird erreicht durch die Eigenschaft des Checkers, Code-trennend zu sein. Eine Schaltung heißt Code-trennend, wenn sie (Eingabe-) Codewörter auf (Ausgabe-) Codewörter abbildet und Nichtcodewörter auf Nichtcodewörter.The online test is often implemented using self-checking circuits with coded outputs and self-testing code checkers that monitor the outputs of the circuits under test. The ability of a checker to be self-testing guarantees that it can signal its own circuit faults in the same way as bit errors produced by the supervised circuit. A circuit is called self-testing for a set of skip errors if for each error from that set there exists an input codeword for which the circuit generates a non-codeword output in the presence of the error. The ability to detect bit errors that transform codewords generated by the monitored circuit into non-codewords is achieved by the property of the checker to be code-separating. A circuit is called code-separating when it maps (input) codewords to (output) codewords and non-codewords to non-codewords.
Die Eigenschaft eines Checkers, Code-trennend zu sein, ist jedoch nicht immer erforderlich (J.E. Smith, "The Design of Totally Self-Checking Check Circuits for a Class of Unordered Codes" Journal of Design Automation & Fault-Tolerant Computing, Vol. 2, October 1977, pp. 321-342). Die Hauptaufgabe eines Checker besteht nicht primär darin, Codewörter von Nichtcodewörtern zu unterscheiden, sondern Fehler zu erkennen, im vorliegenden Fall unidirektionale Fehler. Die Fähigkeit, Codewörter von Nichtcodewörtern zu unterscheiden, ist eine hinreichende, jedoch nicht notwendige Bedingung, um Fehler zu erkennen. Es wird gezeigt werden, daß die hier beschriebenen Checker in der Lage sind, alle unidirektionalen Fehler zu erkennen, auch im Fall, daß sie nicht Code-trennend im üblichen Sinne sind. Bestimmte Nichtcodewörter würden als Codewörter signalisiert werden. Jedoch ist kein unidirektionaler Fehler in der Lage, ein Codewort in eines dieser Nichtcodewörter zu ändern. Die Definition der Code-Trennung wird wie folgt erweitert:However, the ability of a Checker to be code-divisive is not always required (JE Smith, "The Design of Totally Self-Checking Check Circuits for a Class of Unordered Codes" Journal of Design Automation & Fault-Tolerant Computing, Vol. 2 , October 1977, pp. 321-342). The main task of a checker is not primarily to distinguish codewords from non-codewords, but to detect errors, in this case unidirectional errors. The ability to distinguish codewords from non-codewords is a sufficient but not necessary condition for detecting errors. It will be shown that the checkers described herein are capable of detecting all unidirectional errors, even in the case that they are not code-separating in the usual sense. Certain non-codewords would be signaled as codewords. However, no unidirectional error is able to change a codeword to one of these non-codewords. The definition of the code separation is extended as follows:
Sei E eine Klasse von Bitfehlern. Eine Schaltung ist Code-trennend bezüglich E, wenn sie Code-trennend ist für die Wortmenge, die aus allen Codewörtern und all denjenigen Nicht¬ codewörtern besteht, die erzeugt werden können durch die Modifikation von Codewörtern mit Fehlem aus E. (Eine ähnliche Definition ist üblich für selbsttestende Schaltungen. Diese sind nicht selbsttestend bezüglich aller Schaltungsfehler, sondern bezüglich einer bestimm¬ ten Klassen von Fehlern. Wird diese Einschränkung weggelassen, so wird üblicherweise angenommen, daß diese Klasse die Menge aller einfachen Haftfehler ist, was auch für die hier betrachteten Checker angenommen wird.)Let E be a class of bit errors. A circuit is code-separating with respect to E if it is code-separating the word set, which consists of all codewords and all those non-codewords that can be generated by the modification of codewords with errors from E. (A similar definition is These are not self-testing with respect to all circuit errors, but with respect to a certain class of errors.If this restriction is omitted, it is usually assumed that this class is the set of all simple sticking errors, which also applies to the checkers considered here Is accepted.)
Die hier behandelten Checker sind Code-trennend bezüglich aller unidirektionaler Fehler. Sie sind geeignet für den Einsatz in Systemen, in denen kein anderer Bitfehlertyp erwartet wird oder sogar überhaupt nicht als Folge einfacher Haftfehler auftauchen kann (siehe z.B. F.Y. Busaba und P.K. Lala, "Self-Checking Combinational Circuit Design for Single and Unidirectional Multibit Error," Journal of Electronic Testing, Vol. 5, No. 1, February 1994, pp. 19-28).The checkers discussed here are code-separating with respect to all unidirectional errors. They are suitable for use in systems where no other type of bit error is expected or even can not emerge as a result of simple trapping errors (see, eg, FY Busaba and PK Lala, "Self-Checking Combinational Circuit Design for Single and Unidirectional Multibit Error." Journal of Electronic Testing, Vol. 5, No. 1, February 1994, pp. 19-28).
Die Eigenschaft eines Checkers, selbsttestend zu sein, hängt nicht nur von seiner Architektur ab, sondern auch von der Menge der Codewörter, die der Checker von der zu überwachenden Schaltung erhält. Wenn einige Codewörter von der Schaltung nicht erzeugt werden dann könnten einige Checker-Fehler nicht getestet werden. Werden solche Fehler nicht erkannt, dann verliert der Checker die Eigenschaft, Code-trennend zu sein. Da derartige Checker nicht als isolierte Schaltungen betrachtet werden, die theoretisch alle Codewörter erhalten, sondern als in ein System eingebettet, in dem die Menge der Codewörter, die sie erhalten, von der speziellen Umgebung des Checkers abhängt, werden solche Checker eingebettete Checker genannt. In der Literatur gibt es eine Vielzahl von Verfahren zum Entwurf einge¬ betteter Checker. Diese basieren im wesentlichen auf dem Hinzufügen von Hardware oder zusätzlichen Steuersignalen, der Möglichkeit, den Checker in einem speziellen Testmodus zu testen, den Checker aufgrund der speziellen Eigenschaften des Codes zu entwerfen, oder sie sind eine Kombination verschiedener derartiger Verfahren. Üblicherweise haben Checker zwei Ausgänge, die im fehlerfreien Fall ein Two-Rail-Signal bilden, d.h. die Ausgabe des Checkers ist Ol oder 10. Verglichen zu Checkern mit zwei Ausgängen haben Checker mit einem einzigen Ausgang, der ein sich periodisch änderndes Signal ausgibt, eine Reihe von Vorteilen. Wenn in einem komplexen System, das aus verschiedenen Teilsystemen mit unterschiedlichen fehlererkennenden Codes besteht, nur Checker mit einem periodischen Ausgabesignal verwendet werden würden, dann verringert sich die Größe des globalen Two-Rail-Checkers, der die Signale aller Teilchecker auswertet. Ebenso ist die Anzahl der Leitungen verringert.The ability of a checker to self-test depends not only on its architecture, but also on the amount of codewords the checker receives from the circuit to be monitored. If some code words are not generated by the circuit then some checker errors could not be tested. If such errors are not detected, then the checker loses the property of being code-separating. Since such checkers are not considered as isolated circuits that theoretically receive all codewords, but are embedded in a system in which the amount of codewords they receive depends on the particular environment of the checker, such checkers are called embedded checkers. There are a variety of methods in the literature for designing embedded checkers. These are essentially based on the addition of hardware or additional control signals, the ability to test the checker in a special test mode, design the checker based on the particular characteristics of the code, or a combination of various such methods. Typically, checkers have two outputs which in the error-free case form a two-rail signal, ie the output of the checker is ol or 10. Compared to checkers with two outputs, checkers with a single output outputting a periodically changing signal have one Set of advantages. If only checkers with a periodic output signal were used in a complex system consisting of different subsystems with different error-detecting codes, then the size of the global two-rail checker, which evaluates the signals of all the subcheckers, is reduced. Likewise, the number of lines is reduced.
Es wurde gezeigt, daß Berger-Codes (J. M. Berger, "A Note on Error Detection Codes for Asymmetrie Channels," Information and Control, Vol. 4, 1961, pp. 68-73) die optimalen systematischen AUED (all-unidirectional error detecting) Codes sind. Jedoch für den Fall, daß die Anzahl der Informationsbits eine Potenz von 2 ist, wurde von Böse einen systema¬ tischen AUED Code entwickelt, der ein Prüfbit weniger als ein entsprechender Berger-Code benötigt und somit eine höhere Informationsrate besitzt (B. Böse, "On Unordered Codes," IEEE Transactions on Computers, Vol. 40, No. 2, February 1991, pp. 125-131). Das Prinzip dieser Code-Konstruktion wurde von Biswas und Sengupta erweitert (G. P. Biswas und I. Sengupta, "Design of t-UED/AUED Codes from Berger's AUED Code," lOth International Conference on VLSI Design, January 1997, pp. 364-369). Codes mit 2k Informationsbits sind von besonderem Interesse, da 2k eine übliche Wortbreite ist.Berger codes (JM Berger, "A Note on Error Detection Codes for Asymmetry Channels," Information and Control, Vol. 4, 1961, pp. 68-73) have been shown to provide optimal systematic AUED (all-unidirectional error detecting ) Codes are. However, in the event that the number of information bits is a power of 2, evil has developed a systematic AUED code which requires one check bit less than a corresponding Berger code and thus has a higher information rate (B. Böse, " On Unordered Codes, "IEEE Transactions on Computers, Vol. 40, No. 2, February 1991, pp. 125-131). The principle of this code construction has been extended by Biswas and Sengupta (GP Biswas and I. Sengupta, "Design of t-UED / AUED Codes from Berger's AUED Code," The International Conference on VLSI Design, January 1997, pp. 364-369 ). Codes with 2 k information are of particular interest because k 2 a common word width.
Architekturen für Berger-Code-Checker basieren meistens auf der Regenerierung der Prüf¬ symbole aus den Informationsbits, die mit den Prüfsymbolen der Codewörter verglichen werden (siehe z.B. M. A. Marouf und A.D. Friedman, "Design of Self-Checking Checkers for Berger Codes," International Symposium on Fault-Tolerant Computing, Toulouse, France, June 1978, pp. 179-184). Andere Checker-Entwürfe verwenden Schwellwert-Schaltungen (X. Kavousianos und D. Nikolos, "Novel Single and Double Output TSC Berger Code Checkers," 16th IEEE VLSI Test Symposium, Monterey, CA, April 1998, pp. 348-353) oder Mittelungsschaltungen (A. P. Stroele und S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369). Ein Checker für Bose-AUED-Codes wurde in S.W. Burns und N. K. Jha, "A Totally Self-Checking Checker for a Parallel Unordered Coding Scheme," IEEE Transactions on Computers, Vol. 43, No. 4, April 1994, pp. 490- 495 diskutiert. Für Biswas-Sengupta-AUED-Codes wurde bisher kein Checker- Entwurf in der Literatur vorgestellt. Die Aufgabe der Erfindung besteht darin, Verfahren und Anordnungen zur Erkennung uni- direktionaler Fehler unter Verwendung eines systematischen ungeordneten Codes C anzuge¬ ben, welche den Stand der Technik erweitern und verbessern, insbesondere die Anordnungen mit besonders wenigen Codewörtern testbar zu machen.Architectures for Berger code checkers are usually based on the regeneration of the test symbols from the information bits that are compared with the test symbols of the code words (see, for example, MA Marouf and AD Friedman, "Design of Self-Checking Checkers for Berger Codes," International Symposium on Fault-Tolerant Computing, Toulouse, France, June 1978, pp. 179-184). Other Checker designs use threshold circuits (X. Kavousianos and D. Nikolos, "Novel Single and Double Output TSC Berger Code Checkers," 16th IEEE VLSI Test Symposium, Monterey, CA, April 1998, pp. 348-353), or averaging circuits (AP Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369). A checker for Bose AUED codes was published in SW Burns and NK Jha, "A Totally Self-Checking Checker for a Parallel Unordered Coding Scheme," IEEE Transactions on Computers, Vol. 4, April 1994, pp. 490-495 discussed. For Biswas Sengupta AUED codes, no checker design has been presented in the literature so far. The object of the invention is to provide methods and arrangements for detecting unidirectional errors using a systematic disordered code C, which extend and improve the state of the art, in particular to make it possible to test the arrangements with particularly few code words.
Diese Aufgabe wird erfindungsgemäß gelöst durch die Merkmale im kennzeichnenden Teil der Ansprüche 1, 2, 3 und 5 im Zusammenwirken mit den Merkmalen im Oberbegriff. Zweckmäßige Ausgestaltungen der Erfindung sind in den Unteransprüchen enthalten.This object is achieved by the features in the characterizing part of claims 1, 2, 3 and 5 in cooperation with the features in the preamble. Advantageous embodiments of the invention are contained in the subclaims.
Ein Verfahren nach der Erfindung zur Erkennung unidirektionaler Fehler, insbesondere in sicherheitskritischen Schaltungen oder Systemen, ist dadurch ausgezeichnet, daß die Schal¬ tung bzw. das System Wörter x
Figure imgf000006_0001
(Informationsbit- Vektor) und χ(c)
Figure imgf000006_0002
(Prüfsymbol) des Codes C erzeugt, wobei das Gewicht w(χW) = ∑j=o x j des Informationsbit- Vektors χ(') mindestens einen vorgebbaren Wert Iv0 > 0 und/oder höchstens einen vorgebbaren Wert W1 < n annimmt, d.h. WQ < w(χW) < Wi, und
A method according to the invention for detecting unidirectional errors, in particular in safety-critical circuits or systems, is characterized in that the circuit or the system uses words x
Figure imgf000006_0001
(Information bit vector) and χ ( c )
Figure imgf000006_0002
(Check symbol) of the code C generated, wherein the weight w (χW) = Σ j = o x j of the information bit vector χ (') at least one predetermined value Iv 0 > 0 and / or at most a predetermined value W 1 <n takes , ie WQ <w (χW) <Wi, and
• für alle Prüfsymbole gilt, daß x^ die binäre Darstellung der um n — Wi verminderten Anzahl k0 der Nullen des Informationsbit- Vektors x^ ist oder• For all check symbols, x ^ is the binary representation of the number k 0 of the zeros of the information bit vector x ^ reduced by n - Wi or
• für alle Prüfsymbole gilt, daß χ(c) das bitweise Komplement der binären Darstellung der um M/Ό verminderten Anzahl kι = w/(χW) der Einsen des Informationsbit- Vektors xW ist• For all check symbols, it holds that χ ( c ) is the bitwise complement of the binary representation of the number reduced by M / k k = w / (χW) of the ones of the information bit vector xW
und die Fehlererkennung den Vergleich des Gewichtes des Informationsbit- Vektors χ(') mit dem Wert des Prüfsymbols x^ umfaßt.and the error detection comprises comparing the weight of the information bit vector χ (') with the value of the check symbol x ^.
Ein anderes erfindungsgemäßes Verfahren weist den Vorteil auf, daß das Prüfsymbol flexibel gewählt werden kann, indem vorgebbare Werte WQ und Wj. die Bedingung I/I/I — W0 < 2k — 2 erfüllen, wobei WQ ein vorgebbares minimales und w\ ein vorgebbares maximales Gewicht des Informationsbit- Vektors χ(') bezeichnen undAnother method according to the invention has the advantage that the test symbol can be selected flexibly by predefinable values WQ and Wj . satisfy the condition I / I / I - W 0 <2 k - 2, where WQ denotes a specifiable minimum and w \ a specifiable maximum weight of the information bit vector χ (') and
• für alle Prüfsymbole gilt, daß χ(c) die binäre Darstellung der um einen Wert s — n+ W1 erhöhten Anzahl k0 der Nullen des Informationsbit- Vektors χ(') ist oder• For all check symbols it holds that χ ( c ) is the binary representation of the number k 0 of the zeros of the information bit vector χ (') increased by a value s - n + W 1 or
• für alle Prüfsymbole gilt, daß χ(c) das um 2k — W1 + wo — s — 1 verminderte bitweise Komplement der binären Darstellung der um WQ verminderten Anzahl /ci der Einsen des Informationsbit- Vektors χ(') ist, wobei der vorgebbare konstante Wert s die Bedingung 0 < s < 2k — w\ + WQ — 1 erfüllt und die Fehlererkennung den Vergleich des Gewichtes des Informationsbit-Vektors χ(') mit dem Wert des Prüfsymbols χ(c) umfaßt.• applies to all check symbols that χ (c) by 2 k - 1 + W where - s - 1 bitwise complement diminished the binary representation is reduced by the number WQ / ci of ones of Informationsbit- vector χ ( '), wherein the predetermined constant value s satisfies the condition 0 <s <2 k - w \ + WQ - 1 and the error detection comprises the comparison of the weight of the information bit vector χ ( ' ) with the value of the check symbol χ (c) .
In einem weiteren erfindungsgemäßen Verfahren wird ein Wort x des Codes C derart gepiift, daßIn a further method according to the invention, a word x of the code C is pinned such that
• eine Gewichtsmittelungs-Operation den π-Bit Informationsbit- Vektor χ(') von x, einen n-Bit Informationsbit- Vektor yW und ein Bit CQ auf einen n-Bit Informationsbit- Vektor zW und ein Bit cψ derart abbildet, daß w(z^) + cjp / 2 = (w(χW) + w(yW) + C0^) / 2 gilt, wobei der Wert der Ausgabegröße z^ zum Arbeitstakt t — l als Eingabewert yW zum Arbeitstakt t verwendet wird, d.h. y^(t) = z^(t — 1), undA weight averaging operation maps the π-bit information bit vector χ ( ' ) of x, an n-bit information bit vector yW and a bit C Q to an n-bit information bit vector zW and a bit cψ such that w (z ^) + cjp / 2 = (w (χW) + w (yW) + C 0 ^) / 2 holds, wherein the value of the output quantity z ^ is used to the operating cycle t - l as input value yW to the working cycle t, ie y ^ (t) = z ^ (t - 1), and
• eine Wertemittelungs-Operation das /c-Bit Prüfsymbol
Figure imgf000007_0001
y^ und ein Bit CQ auf ein /c-Bit Prüfsymbol z^ und ein Bit dι derart abbildet, daß zW + dχ / 2 = (x^ + yW + c^c)) / 2 gilt, wobei der Wert der Ausgabegröße z(c) zum Arbeitstakt t — 1 als Eingabewert y^ zum Arbeitstakt t verwendet wird, d.h. yW(t) = zW(t - l),
• a value averaging operation the / c-bit check symbol
Figure imgf000007_0001
y ^ and a bit C Q on a / c-bit check symbol z ^ and a bit dι such that zW + dχ / 2 = (x ^ + yW + c ^ c) ) / 2 applies, the value of the output size z (c) is used for the working cycle t-1 as an input value y ^ for the working cycle t, ie y W (t) = zW (t-1),
wobei y(0) = y(')(0)y(c)(0) zum Arbeitstakt 0 (Initialwert) ein Wort des zu prüfenden sys¬ tematischen ungeordneten Codes C ist, der Wert von CQ gleich dem Wert von cjr ist, d.h. CQ = Cn \ und der
Figure imgf000007_0002
c^ zum Arbeitstakt t der invertierte Wert von O1 zum Arbeit¬ stakt t- 1 ist, d.h. cjj\t) = dι(t - l), wodurch die Folge der Werte di(t), di(tH- l), dx(t + 2), dχ(t + 3), . . . im Fall, daß die Folge der Vektoren x(t), x(t + 1), x(t + 2), x(t + 3), . . . Wörter des Codes C sind, eine periodische Folge 0, 1, 0, 1, . . . ist und ein unidirektionaler Fehler dadurch erkannt wird, daß die Periodizität dieser Folge verletzt ist.
where y (0) = y ( ' ) (0) y (c) (0) for the operating cycle 0 (initial value) is a word of the systemic random code C to be tested, the value of C Q is equal to the value of cjr , ie C Q = C n \ and the
Figure imgf000007_0002
c ^ to the working cycle t is the inverted value of O 1 at the working time t-1, ie, cjj \ t) = dι (t-1), whereby the sequence of the values di (t), di (tH-1), d x (t + 2), dχ (t + 3),. , , in the case that the sequence of vectors x (t), x (t + 1), x (t + 2), x (t + 3),. , , Words of the code C are a periodic sequence 0, 1, 0, 1,. , , is and a unidirectional error is detected by the fact that the periodicity of this sequence is violated.
Dieses Verfahren stellt zusätzlich eine spezielle Realisierung der Verfahren nach Anspruch 1 oder 2 dar, wobei der Vergleich des Gewichtes des Informationsbit- Vektors xW mit dem Wert des Prüfsymbols χ(c) dadurch durchgeführt wird, daß x mit einem Wort y verglichen wird, für das der Vergleich des Gewichtes von y(') mit dem Wert von y^ bereits erfolgt ist.This method additionally constitutes a special realization of the method according to claim 1 or 2, wherein the comparison of the weight of the information bit vector xW with the value of the check symbol χ (c) is performed by comparing x with a word y for which the comparison of the weight of y ( ' ) with the value of y ^ has already taken place.
Ein anderes erfindungsgemäßes Verfahren zur Erkennung unidirektionaler Fehler in Wörtern x eines systematischen ungeordneten Codes C sieht vor, daß die Wörter x in Wörter x' eines vorgebbaren Codes C übersetzt werden, und anschließend x' mit einem Verfahren zur Prüfung des vorgebbaren Codes C geprüft wird, wobei die Übersetzung ausschließlich durch das Prüfsymbol von x gesteuert wird. In einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens ist vorgesehen, daß der vorgebbare Code C ein Code gemäß einem der Ansprüche 1 oder 2 (Berger-Typ- Code) ist.Another method according to the invention for detecting unidirectional errors in words x of a systematic disordered code C provides that the words x are translated into words x 'of a specifiable code C, and then x' is checked by a method for checking the specifiable code C, where the translation is controlled solely by the check symbol of x. In a preferred embodiment of the method according to the invention it is provided that the predefinable code C is a code according to one of claims 1 or 2 (Berger type code).
In einer anderen bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens ist vorge¬ und die Übersetzung von x nach x' X^j1 von x komplementäre Wert
Figure imgf000008_0001
Xf^J1 zum Prüfsymbol x^ von x hinzuaddiert wird. In alternativen Ausführungsformen ist vorgesehen, daß die Übersetzung von x nach x' derart erfolgt, daß alle von dem am meisten signifikanten Prüfbit
Figure imgf000008_0002
oder mit dessen Komplement x£_x über eine XOR-Operation verknüpft werden oder daß die Übersetzung von x nach x' derart erfolgt, daß der zum am meisten signifikanten Prüfbit xj[_χ von x komplementäre Wert x[_x ein zusätzliches Informationsbit xή bildet.
In another preferred embodiment of the method according to the invention, the translation from x to x 'X ^ j 1 of x is complementary and x is complementary
Figure imgf000008_0001
Xf ^ J 1 is added to the check symbol x ^ of x. In alternative embodiments, it is contemplated that the translation from x to x 'be such that all of the most significant check bit
Figure imgf000008_0002
or be associated with its complement x £ _ x a XOR operation or that the translation from x to x 'is performed so that the the most significant parity bit xj [_ χ x complementary value x [_ x, an additional information bit xή forms.
Ist der Code C ein Biswas-Sengupta-AUED-Code
Figure imgf000008_0003
k), dann erfolgt die Übersetzung von x nach x' derart, daß der Wert 1 zum Prüfsymbol x^ von x hinzuaddiert wird, wenn χ(c) < 2/ — 1 ist, anderenfalls χ(c) unverändert bleibt, oder daß die Übersetzung von x nach x' derart erfolgt, daß alle Bits derjenigen Wörter x invertiert werden, deren Prüfsymbol χ(c) kleiner als 2/ ist, falls 2/ < 2k~x ist, oder daß alle Bits derjenigen Wörter x invertiert werden, deren Prüfsymbol χ(c) größer oder gleich 2/ ist, falls 2/ > 2k~x ist oder daß die Übersetzung von x nach x' derart erfolgt, daß ein zusätzliches Informationsbit xή betrachtet wird, welches den Wert 0 annimmt, falls x(c) > 2/ - 1 ist und den Wert 1, falls x^ < 2/ - 1.
Code C is a Biswas Sengupta AUED code
Figure imgf000008_0003
k), then the translation from x to x 'is such that the value 1 is added to the check symbol x ^ of x, if χ ( c ) <2 / - 1, otherwise χ ( c ) remains unchanged, or that the Translation from x to x 'is done by inverting all bits of those words x whose check symbol χ ( c ) is less than 2 / if 2 / <2 k ~ x , or by inverting all bits of those words x, whose check symbol χ ( c ) is greater than or equal to 2 / if 2 /> 2 k ~ x , or if the translation from x to x 'is such that an additional information bit xή is considered which takes the value 0 if x (c) > 2 / - 1 and the value 1 if x ^ <2 / - 1.
Eine Anordnung zur Erkennung unidirektionaler Fehler unter Verwendung eines systemati¬ schen ungeordneten Codes C umfasst mindestens einen Chip und/oder Prozessor, der (die) derart eingerichtet ist (sind), daß ein Verfahren zur Erkennung unidirektionaler Fehler unter Verwendung des Codes C gemäß Anspruch 1, 2 oder 5 durchführbar ist.An arrangement for detecting unidirectional errors using a systematically disordered code C comprises at least one chip and / or processor which is / are arranged such that a method for detecting unidirectional errors using the code C according to claim 1 , 2 or 5 is feasible.
In einer speziellen Ausführungsform dieser Anordnung ist der (sind) Chip(s) und/oder Prozes¬ soren) derart eingerichtet, daß ein Verfahren zur Erkennung unidirektionaler Fehler unter Verwendung eines systematischen ungeordneten Codes C gemäß Anspruch 3 durchführbar ist.In a special embodiment of this arrangement, the chip (s) and / or processors are set up in such a way that a method for detecting unidirectional errors can be carried out using a systematic disordered code C according to claim 3.
Die Erfindung wird nachfolgend unter Bezugnahme auf die Figuren an verschiedenen Aus¬ führungsbeispielen näher erläutert. Es zeigen: Figur 1 eine Mittelungsschaltung (MS),The invention will be explained in more detail below with reference to the figures in various embodiments Aus¬. Show it: FIG. 1 shows an averaging circuit (MS),
Figur 2 die Struktur eines eingebetteten Berger-Code-Checkers mit einem Ausgang,FIG. 2 shows the structure of an embedded Berger code checker with an output,
Figur 3 einen Halbaddierer (HA),FIG. 3 shows a half adder (HA),
Figur 4 einen B*(2k, k)-nach-B0(2k, /c)-Code-Übersetzer,FIG. 4 shows a B * (2 k , k) -to-B 0 (2 k , / c) code translator,
Figur 5 einen ß#(2*, /c)-nach-ßo~1(2/c, k - 1)-Code-Übersetzer,FIG. 5 shows a β # (2 *, / c) -to-β o -1 (2 / c , k-1) code translator,
Figur 6 ein Beispiel eines Größenvergleichers,FIG. 6 shows an example of a size comparator,
Figur 7 den Vergleich der Gatterzahlen für verschiedene Übersetzungsschaltungen.Figure 7 shows the comparison of the gate numbers for different translation circuits.
Anhand der nachfolgenden Ausführungen werden neue Verfahren zur Erkennung unidirek- tionaler Fehler in Wörtern systematischer ungeordneter Codes beschrieben. Insbesondere beinhaltet die Erfindung neue Architekturen für eingebettete Checker mit einem Ausgang für Bose-AUED-Codes und Biswas-Sengupta-AUED-Codes. Die zugunde liegende Entwurfsidee besteht darin, die Codewörter in Wörter eines Codes zu übersetzen, der einem Berger-Code ähnlich ist, und dann die erhaltenen Wörter mit einem Checker für den Berger-Typ Code zu prüfen. Die Architektur des Berger-Typ Code-Checkers basiert auf den Checker-Entwürfen, die in A. P. Stroele und S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 vorgeschlagen wurden.The following statements describe new methods for detecting unidirectional errors in words of systematic disordered codes. In particular, the invention includes new embedded checker architectures having an output for Bose AUED codes and Biswas Sengupta AUED codes. The underlying design idea is to translate the codewords into words of a code similar to a Berger code and then check the obtained words with a Berger-type code checker. The architecture of the Berger-type code checker is based on the Checker designs described in AP Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error-Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 were proposed.
Systematische ungeordnete CodesSystematic disordered codes
Diese Erfindung betrifft ungeordnete Codes. Sie haben die Fähigkeit, Einzelbitfehler sowie mehrfache unidirektionale Fehler zu erkennen. Es wurde bewiesen, daß ein Code genau dann ein AUED (all-unidirectional error detecting) Code ist, wenn er ein ungeordneter Code ist (B. Böse und T. R. N. Rao, "Theory of Unidirectional Error Correcting/Detecting Codes" , IEEE Transactions on Computers, Vol. C-31, No. 6, June 1986, pp. 521-530). In dieser Erfindung geht es um systematische ungeordnete Codes, bei denen jedes Codewort in einen Informa¬ tionsteil und einen Prüfteil unterteil ist. Diskutiert werden Berger-Codes (J. M. Berger, "A Note on Error Detection Codes for Asymmetrie Channels," Information and Control, Vol. 4, 1961, pp. 68-73) und andere Codes vom Berger-Typ, sowie Bose-AUED-Codes (B. Böse, "On Unordered Codes," IEEE Transactions on Computers, Vol. 40, No. 2, Febru- ary 1991, pp. 125-131) und Biswas-Sengupta-AUED-Codes (G. P. Biswas und I. Sengupta, "Design of t-UED/AUED Codes from Berger's AUED Code," lOth International Confer¬ ence on VLSI Design, January 1997, pp. 364-369), welche beide als Vereinigung zweier verschiedener Berger-Typ-Untercodes betrachtet werden können.This invention relates to disordered codes. They have the ability to detect single bit errors as well as multiple unidirectional errors. It has been proven that a code is an all-unidirectional error detecting (AUED) code if it is a disordered code (B. Böse and TRN Rao, Theory of Unidirectional Error Correcting / Detecting Codes, IEEE Transactions on Computers , Vol. C-31, No. 6, June 1986, pp. 521-530). This invention deals with systematic disordered codes in which each codeword is subdivided into an information part and a test part. Berger codes (JM Berger, "A Note on Error Detection Codes for Asymmetry Channels," Information and Control, Vol. 4, 1961, pp. 68-73) and other Berger-type codes, as well as Bose-AUED codes, are discussed. Codes (B. Böse, "On Unordered Codes," IEEE Transactions on Computers, Vol. 40, No. 2, February 1991, pp. 125-131) and Biswas Sengupta AUED codes (Biswas and I.G. Sengupta, "Design of t-UED / AUED Codes from Berger's AUED Code," lOth International Conference on VLSI Design, January 1997, pp. 364-369), both of which can be considered as the union of two different Berger type subcodes.
Ein Berger-Codewort x hat n Informationsbits und k = [Iog2(n + I)] Prüfbits. Der Informationsbit- Vektor von x wird mit X^ bezeichnet und das Prüfsymbol mit x^c\ Es gibt zwei Klassen von Berger-Codes. In der ersten Klasse, mit ßo(π, k) bezeichnet, ist das Prüfsymbol die binäre Darstellung von /co, wobei /c0 die Anzahl der Nullen im Informationsbit- Vektor bezeichnet. In der anderen Klasse, ßi(π, k), stellt das Prüfsymbol das bitweise Kom¬ plement von ki dar, wobei /ci die Anzahl der Einsen im Informationsbit- Vektor bezeichnet. Wenn n = 2k — 1, dann fallen BQ(Π, k) und ßi(π, k) zusammen.A Berger codeword x has n information bits and k = [Log 2 (n + I)] check bits. The information bit vector of x is denoted by X ^ and the check symbol by x ^ c \ There are two classes of Berger codes. In the first class, denoted by βo (π, k), the check symbol is the binary representation of / co, where / c 0 denotes the number of zeros in the information bit vector. In the other class, βi (π, k), the check symbol represents the bitwise complement of ki, where / ci denotes the number of ones in the information bit vector. If n = 2 k - 1, then BQ (Π, k) and ßi (π, k) coincide.
Im allgemeinen erhält man das Prüfsymbol eines ßi(π, /c)-Codeworts, indem 2k — 1 — n zum Prüfsymbol des entsprechenden ßo(π, /c)-Codeworts hinzuaddiert wird. Darüberhinaus sind ßo(n, k) und ßi(n, k) zwei Extremfälle einer allgemeineren Klasse von systematischen unge¬ ordneten Codes. Die Codes dieser Klasse unterscheiden sich in der Zahl s G {0, 1, . . . , 2k — 1 — n}, die zum Prüfsymbol des entsprechenden Wortes in ßo(π, k) addiert wird. Solch ein Code wird mit ßo(n, k) bezeichnet. Derselbe Code kann auch mit ßf 2 +1+n+s(n, k) bezeichnet werden. Als Beispiel zeigt die letzte Spalte von Tabelle 1 die Prüfsymbole eines ßo (8, 4)-Codes (und zum Vergleich die Prüfsymbole der klassischen Berger-Codes). Es ist leicht nachzuweisen, daß jeder ßg-Code, 0 < s < 2k — 1 — n, ein ungeordneter Code ist.In general, the check symbol of a βi (π, / c) codeword is obtained by adding 2 k -1-n to the check symbol of the corresponding βo (π, / c) codeword. Moreover, βo (n, k) and βi (n, k) are two extreme cases of a more general class of systematic disordered codes. The codes of this class differ in the number s G {0, 1,. , , , 2 k - 1 - n}, which is added to the check symbol of the corresponding word in ßo (π, k). Such a code is denoted by βo (n, k). The same code can also be denoted by βf 2 + 1 + n + s (n, k). As an example, the last column of Table 1 shows the check symbols of a βo (8, 4) code (and, for comparison, the check symbols of the classic Berger codes). It is easy to prove that every ß g code, 0 <s <2 k - 1 - n, is a disordered code.
representative Prüfbitsrepresentative check bits
Informationsbits ßo(8,4) ßi(8,4) ßO 2(8,4)Information Bits βo (8,4) βi (8,4) β O 2 (8,4)
00000000 1000 1111 101000000000 1000 1111 1010
00000001 Olli 1110 100100000001 Olli 1110 1001
00000011 0110 1101 100000000011 0110 1101 1000
0000 Olli 0101 1100 Olli0000 Olli 0101 1100 Olli
00001111 0100 1011 011000001111 0100 1011 0110
00011111 0011 1010 010100011111 0011 1010 0101
00111111 0010 1001 010000111111 0010 1001 0100
Olli 1111 0001 1000 0011Olli 1111 0001 1000 0011
11111111 0000 Olli 001011111111 0000 Olli 0010
Tabelle 1Table 1
Es gibt eine weitere Möglichkeit, den klassischen Berger-Code zu erweitem. Wenn zum Beispiel der π-Bit Informationsbit- Vektor nur Gewichte in einem Teilintervall von 0, . . . , n annimmt, dann ist es nicht immer notwendig, [Iog2(π + I)] Prüfbits zu verwenden. Sei n' = max(w(χ('))) — min(i/t/(χW)), wobei w(x^) das Gewicht von χ(') bezeichnet. Dann benötigt man nur [Iog2(n' + I)] Prüfbits. Das Beispiel von Tabelle 2 zeigt einen Code mit n = 11, welcher minstestens 2 und höchstens 9 Nullen hat. Wegen H = 7 werden nur k = 3 Prüfbits benötigt. Das Prüfsymbol repräsentiert die Anzahl der Nullen minus 2 in Solch ein Berger-Typ-Code wird ebenfalls mit BQ (Π, k) bezeichnet, wobei s G {// - max(w(χW)), . . . , 2k - 1 - max(w(χW))} und k =
Figure imgf000011_0001
+ I)] . Diese Codes sind nicht so effizient wie die Codes aus J.E. Smith, "On Separable Unordered Codes," IEEE Transactions on Computers, Vol. C-33, No. 8, August 1984, pp. 741-743, welche optimal sind für den Fall, daß nicht alle Informationsbit- Vektoren auftreten. Sie sind jedoch von praktischem Interesse für den Entwurf von Checkern für Bose-AUED-Codes und Biswas- Sengupta-AUED-Codes.
There is another way to extend the classic Berger code. For example, if the π bit information bit vector only weights in a subinterval of 0,. , , , n then it is not always necessary to use [log 2 (π + I)] check bits. Let n '= max (w (χ ( ' ) )) - min (i / t / (χW)), where w (x ^ ) denotes the weight of χ ( ' ) . Then you only need [Iog 2 (n '+ I)] check bits. The example of Table 2 shows a code with n = 11, which has at least 2 and at most 9 zeros. Because H = 7, only k = 3 check bits are needed. The check symbol represents the number of zeros minus 2 in such a Berger type code is also denoted by B Q (Π, k), where s G {// - max (w (χW)),. , , , 2 k - 1 - max (w (χW))} and k =
Figure imgf000011_0001
+ I)]. These codes are not as efficient as the JE Smith codes, "On Separable Unordered Codes," IEEE Transactions on Computers, Vol. C-33, no. 8, August 1984, pp. 741-743, which are optimal in the event that not all information bit vectors occur. However, they are of practical interest for the design of checkers for Bose AUED codes and Biswas Sengupta AUED codes.
representative Prüfbitsrepresentative check bits
Informationsbits ßo-2(ll, 3)Information Bits β o - 2 (II, 3)
0000 0000 011 1110000 0000 011 111
0000 0000 111 1100000 0000 111 110
0000 0001 111 1010000 0001 111 101
0000 0011 111 1000000 0011 111 100
0000 Olli 111 0110000 Olli 111 011
0000 1111 111 0100000 1111 111 010
0001 1111 111 0010001 1111 111 001
0011 1111 111 0000011 1111 111 000
Tabelle 2Table 2
Ein Bose-AUED-Codewort x hat 2k Informationsbits und k Prüfbits. Der Informationsteil von x wird wiederum mit χ(') bezeichnet, der Prüfteil mit χ(c) und der Code mit B*(2k, k). Sei wiederum /co die Anzahl der Nullen in χ(') und sei /ci die Anzahl der Einsen (das Gewicht von χ(')), d.h. /ci = w(x^). Die Prüfsymbole des Codes sind wie folgt definiert:A Bose Aued codeword x has 2 k information bits and k check bits. The information part of x is again denoted by χ ( ' ) , the test part by χ (c) and the code by B * (2 k , k). Let / co be the number of zeros in χ ( ' ) and let / ci be the number of ones (the weight of χ ( ' ) ), ie / ci = w (x ^). The check symbols of the code are defined as follows:
0 < w(χW) < 2^1 — > xW z= k0 0 <w (χW) <2 ^ 1 -> xW z = k 0
2k-χ < w(χt')) < 2k - 1 — > x^ = ko ~ l2 k - χ <w (χt ' ) ) <2 k - 1 -> x ^ = k o ~ l
Die Informationsbit- Vektoren, die nur aus Nullen und nur aus Einsen bestehen, treten nicht auf. Sie werden ersetzt durch die Vektoren, in denen die ersten 2k~x Bits invertiert sind. Deshalb benötigt der Code eine zusätzliche, aber einfache, Dekodierlogik. Das Prüfsymbol dieser zwei Codewörter ist X^ = Zc0 — 1. Tabelle 3 zeigt den Code für k = 3. K representativer modifizierterThe information bit vectors, which consist only of zeros and only ones, do not occur. They are replaced by the vectors in which the first 2 k ~ x bits are inverted. Therefore the code needs an additional, but simple, decoding logic. The check symbol of these two codewords is X ^ = Zc 0-1 . Table 3 shows the code for k = 3. K representatively modified
Informationsteil InformationsteilInformation part information part
8 0000 0000 1111 0000 0118 0000 0000 1111 0000 011
7 0000 0001 1117 0000 0001 111
6 0000 0011 1106 0000 0011 110
5 0000 Olli 1015 0000 Olli 101
4 0000 1111 1004 0000 1111 100
3 0001 1111 0103 0001 1111 010
2 0011 1111 0012 0011 1111 001
1 Olli 1111 0001 Olli 1111 000
0 1111 1111 0000 1111 0110 1111 1111 0000 1111 011
Tabelle 3Table 3
Sei msb(x) das am meisten signifikante Bit des Vektors x. Wie man leicht sehen kann gehö¬ ren diejenigen Wörter von B^.(2k , k) mit msb(x^c^) = 1 zum Berger-Typ-Code Bo(2k, k), in welchem x^ die Binärdarstellung von /c0 ist, und die Wörter von 6^(2^, k) mit msb(χ(c)) = 0 gehören zum Berger-Typ-Code Bχ{2k, k), bei dem χ(c) das bitweise Komplement von kx ist. Es gilt folgender Sachverhalt: Sei x G B*(2k, k). Wenn x zum Berger-Typ-Code ßo(2\ k) gehört, dann ist x ein 61(2^, /c)-Codewort und umgekehrt, wobei x das bitweise Komplement von x bezeichnet.Let msb (x) be the most significant bit of the vector x. As one can easily see gehö¬ ren those words of B ^. (2 k, k) with msb (x ^ c ^) = 1 for Berger type code Bo (2 k, k), where x ^ the binary of / c is 0 , and the words of 6 ^ (2 ^, k) with msb (χ ( c )) = 0 belong to the Berger-type code Bχ {2 k , k), where χ ( c ) is the bitwise complement of kx. The following facts apply: Let x GB * (2 k , k). If x belongs to the Berger type code β o (2 \ k), then x is a 6 1 (2 ^, / c) codeword and vice versa, where x denotes the bitwise complement of x.
Es wurde festgestellt, daß Bose-AUED-Codes eine spezielle Klasse einer allgemeineren Code¬ klasse sind (G. P. Biswas und I. Sengupta, "Design of t-UED/AUED Codes from Berger's AUED Code," lOth International Conference on VLSI Design, January 1997, pp. 364-369). Diese Codes werden konstruiert durch die Modifikation eines S0-Berger-Codes. Die Modi¬ fikation basiert auf der Tatsache, daß die Zahlen 2/ und 2/ — 1 in der Binärdarstellung unge¬ ordnet sind. Der Informationsbit- Vektor mit Gewicht 0 wird zu einem Vektor mit Gewicht w' modifiziert (mit 2/ als dem zugehörigen Prüfsymbol), und 2/— 1 wird als Prüfsymbol dem mo¬ difizierten Informationsbit- Vektor zugeordnet. Um Überdeckungsprobleme mit Codewörtern zu vermeiden, deren Informationsbit- Vektor ein Gewicht größer als w' haben, werden die Prüfsymbole dieser Codewörter um 1 verringert. Der Informationsbit- Vektor mit Gewicht 2k wird auf dieselbe Weise modifiziert wie der Informationsbit- Vektor mit Gewicht 0. Üblicher¬ weise beginnt einer dieser beiden Vektoren mit 2k—2i Einsen, gefolgt von 2/ Nullen, wohinge¬ gen im anderen Informationsbit- Vektor die Bits in umgekehrter Reihenfolge erscheinen. Für k Prüfbits gibt es 2k 1 ^- I verschiedene Wege, einen Biswas-Sengupta-AUED-Code zu konstruieren, und einer dieser Codes (wenn 2/ = 2k~x) fällt mit einem Bose-AUED-Code zusammen. Diese Codes werden mit ß* (π, /c) bezeichnet, wobei (2/) angibt, daß die An¬ zahl der Nullen der Informationsbit- Vektoren mit Gewicht 0 und 2k zu 2/ modifiziert wurden. Tabelle 4 zeigt die Prüfsymbole von drei verschiedenen Biswas-Sengupta-Codes für k = 3. Hier ist der Code ß* (8, 3) äquivalent zum Bose-AUED-Code, der in Tabelle 3 gezeigt wird. Die modifizierten Informationsbit-Vektoren mit Gewicht 0 und 2k sind 11111100 und 00111111 für ߣ2)(8, 3) und 11000000 und 00000011 für ߣ6)(8, 3).It has been found that Bose-AUED codes are a special class of a more general code class (GP Biswas and I. Sengupta, "Design of t-UED / AUED Codes from Berger's AUED Code," The International Conference on VLSI Design, January 1997, pp. 364-369). These codes are constructed by modifying an S 0 -Berger code. The modification is based on the fact that the numbers 2 / and 2 / - 1 are unordered in the binary representation. The information bit vector of weight 0 is modified to a vector of weight w '(with 2 / as the associated check symbol), and 2 / -1 is assigned to the modified information bit vector as a check symbol. In order to avoid coverage problems with codewords whose information bit vector has a weight greater than w ', the check symbols of these codewords are decremented by one. The information bit vector with weight 2 k is modified in the same way as the information bit vector with weight 0. Usually, one of these two vectors starts with 2 k -2i ones, followed by 2 / zeros, whereas in the other bit of information. Vector the bits appear in reverse order. For k check bits, there are 2 k 1 ^ - I different ways to construct a Biswas Sengupta AUED code, and one of these codes (if 2 / = 2 k ~ x ) coincides with a Bose AUED code. These codes are denoted by β * (π, / c), where (2 /) indicates that the number of zeros of the information bit vectors with weight 0 and 2 k have been modified to 2 /. Table 4 shows the check symbols of three different Biswas Sengupta codes for k = 3. Here, the code β * (8, 3) is equivalent to the Bose AUED code shown in Table 3. The modified information bit vectors with weight 0 and 2 k 11111100 and 00111111 for ß £ 2) (8, 3) and 11000000 and 00000011 for ß £ 6) (8, 3).
Prüfbits vv(χW) ßf(8,3) ßi4)(8,3) ßf(8,3)Check bits vv (χW) ßf (8,3) ßi 4) (8,3) ßf (8,3)
0 001 011 1010 001 011 101
1 111 111 1111 111 111 111
2 110 110 1102 110 110 110
3 101 101 1003 101 101 100
4 100 100 0114 100 100 011
5 011 010 0105 011 010 010
6 010 001 0016 010 001 001
7 000 000 0007,000,000,000
8 001 011 1018 001 011 101
Tabelle 4Table 4
Man sieht wiederum, daß ein 8£2/)(2*, /c)-Code aus Wörtern aus BQ(2k, k) und ß1(2/t, k) zusammengesetzt ist. Ein Codewort gehört zu ßi(2/c, k) wenn sein Prüfsymbol kleiner als 2/ ist, anderenfalls gehört es zu B0(2k, k). Leider gilt der für Bose-AUED-Codes festgestellte Sachverhalt, daß ein Wort aus BQ(2k, k) durch Komplementbildung in ein Wort aus ßi(2/c, k) überführt wird und umgekehrt nicht uneingeschränkt für ß* ''(2k, /f)-Codes (ausgenommen wenn 2/ = 2k~x, wenn sie mit einem Bose-AUED-Code zusammenfallen).Again, it can be seen that an 8 2 2 /) (2 *, / c) code is composed of words from B Q (2 k , k) and β 1 (2 / t , k). A codeword belongs to ßi (2 / c , k) if its check symbol is smaller than 2 /, otherwise it belongs to B 0 (2 k , k). Unfortunately, the fact established for Bose-AUED codes holds that a word from B Q (2 k , k) is converted into a word from βi (2 / c , k) by complementation, and vice versa is not unrestricted for β * '' ( 2 k , / f) codes (except if 2 / = 2 k ~ x if they coincide with a Bose AUED code).
In einem Bose-AUED-Code ist die Anzahl voneinander verschiedener Prüfsymbole von Wör¬ tern, die zu B0(2k, k) gehören, gleich der Anzahl voneinander verschiedener Prüfsymbole von Wörtern, die zu ßi(2/c, k) gehören, welche 2k~x ist. In allen anderen Biswas-Sengupta-Codes ist die Anzahl voneinander verschiedener BQ(2k, /c)-Prüfsymbole kleiner als die der Bι(2k, k)- Prüfsymbole oder umgekehrt. Für Biswas-Sengupta-AUED-Codes gilt: Sei x G B^''(2k, k). Wenn x zum Berger-Typ-Code mit der kleineren Anzahl von Prüfsymbolen in B* '(2k, k) gehört, dann gehört x zum Berger-Typ-Code mit der größeren Anzahl von Prüfsymbolen in
Figure imgf000013_0001
Eingebettete Checker für systematische ungeordnete Codes
In a Bose-AUED code, the number of mutually different check symbols of words belonging to B 0 (2 k , k) is equal to the number of different check symbols of words belonging to B i (2 / c , k) which is 2k ~ x . In all other Biswas sengupta codes, the number of different B Q (2 k , / c) check symbols is smaller than those of the B i (2 k , k) check symbols or vice versa. For Biswas-Sengupta AUED codes: Let x GB ^ '' (2 k , k). If x belongs to the Berger type code with the smaller number of check symbols in B * '(2 k , k), then x belongs to the Berger type code with the larger number of check symbols in
Figure imgf000013_0001
Embedded checker for systematic unordered codes
In A. P. Stroele und S. Tarnick, "Programmable Embedded Self-Testing Checkers for AII- Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 wurden Berger-Code-Checker vorgestellt, die aus einer Mittelungs- schaltung und einem Register zum Speichern von Codewörtern bestehen. Eine Mittelungs¬ schaltung (MS) besteht aus zwei Teilen, wie in Figur 1 gezeigt wird. Der obere Teil vollführt eine Gewichts-Mittelungs-Operation auf den Informationsteilen χ(') und yW der Codewörter x und y durch und liefert z^'\ den Informationsteil des Ergebnisses z. Der untere Teil operiert auf den Prüfsymbolen χ(c) und y^ und berechnet ihren Mittelwert z^c\ Das am wenigsten signifikante Summenbit d\ ist der Rest der Division (x^ + y^) / 2. Die zwei D- Flip-Flops werden komplementär initialisiert. Es sei bemerkt, daß in der oberen Teilschaltung (im Gegensatz zu einem Addierer mit Übertragsweiterleitung) die Rollen des Summenbits und des Ausgabe-Übertragsbits vertauscht sind, d.h. der Summen-Ausgang des /-ten Vollad¬ dierers (VA) ist mit dem Ubertrags-Eingang des / + 1-ten Volladdierers verbunden, und der Übertrags-Ausgang des /-ten Volladdierers ist das /-te Bit des Ergebnisses der Operation. Für diese beiden Schaltungen gelten folgende Gleichungen:In AP Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checkers for AII Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 Berger code checkers were presented, consisting of an averaging circuit and a register for storing codewords. An averaging circuit (MS) consists of two parts, as shown in FIG. The upper part carries out a weight averaging operation on the pieces of information χ (') and yW of the codewords x and y, and supplies the information part of the result z. The lower part operates on the check symbols χ ( c ) and y ^ and calculates its mean value z ^ c \ The least significant sum bit d \ is the remainder of the division (x ^ + y ^) / 2. The two D flip Flops are initialized complementarily. It should be noted that in the upper subcircuit (in contrast to an adder with carry forwarding), the roles of the sum bit and the output carry bit are interchanged, ie the sum output of the / full adder (VA) is mixed with the carry output. Input of the / + 1 th full adder, and the carry output of the / th full adder is the / th bit of the result of the operation. The following equations apply to these two circuits:
(;) do _ w(x(0) + vKy«) + 4i] (;) do _ w (x ( 0) + vKy «) + 4 i]
22
Jc) 4 χ«0 + y(c) + q(c) Jc) 4 χ «0 + y ( c ) + q ( c )
2 22 2
Sei x ein Berger-Codewort, das von der überwachten Schaltung erzeugt wird, und sei y ein Codewort, welches im Register gespeichert ist. Dann ist das Gewicht des Informationsteils von z das mittlere Gewicht der Informationsteile von x und y, und der Wert des Prüfsymbols von z ist der Mittelwert der Prüfsymbole von x und y. Somit ist z wiederum ein Berger- Codewort. Dieses Wort wird im Register gespeichert. Die Signale d0 und d\ werden als Fehlersignal verwendet, welches im fehlerfreien Fall ein Two-Rail-Signal ist und für den Fall, daß ein Nichtcodewort erscheint oder der Checker fehlerfaft ist, ein Nicht-Two-Rail-Signal.Let x be a Berger codeword generated by the monitored circuit, and let y be a codeword stored in the register. Then, the weight of the information piece of z is the average weight of the pieces of information of x and y, and the value of the check symbol of z is the mean of the check symbols of x and y. Thus, z is again a Berger codeword. This word is stored in the register. The signals d 0 and d \ are used as an error signal, which in the error-free case is a two-rail signal and in the event that a non-codeword appears or the checker is faulty, a non-two-rail signal.
Hier wird eine zweite, modifizierte Architektur dieses Checkers gezeigt. Sie unterscheidet sich von der des Checkers aus A. P. Stroele und S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 darin, daß die zwei Teilschaltun¬ gen der Mittelungsschaltung jetzt verbunden sind. Der Summen-Ausgang d0 des letzten Volladdierers der Gewichts-Mittelungsschaltung (Informationsteil) ist verbunden mit dem Übertrags-Eingang des ersten Volladdierers (für das am wenigsten signifikante Bit) der Werte-Mittelungsschaltung (Prüfteil). Der Summen-Ausgang O1 ist über einen Inverter und ein D-Flip-Flop zurückgeführt zum Übertrags-Eingang der Gewichts-Mittelungsschaltung. Mit dieser Architektur arbeitet der Berger-Code Checker ähnlich wie der m-aus-n-Code- Checker, der in A. P. Stroele und S. Tarnick, "Programmable Embedded Self-Testing Check¬ ers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA1 April 1999, pp. 361-369 vorgeschlagen wurde: das am weitesten links stehende D-Flip-Flop ändert seinen Wert in jedem Takt, und die Bits CQ und dx haben immer die gleichen Werte. Da d\ ein sich periodisch änderndes Signal ist, wird es als Fehlersignal des Checkers (mit einem Ausgang) verwendet. Der neue Checker ist in Figur 2 gezeigt.Here a second, modified architecture of this checker is shown. It differs from that of the Checkers AP Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 in that the two Teilschaltun¬ conditions of the averaging circuit are now connected. The sum output d 0 of the last Full adder of the weight averaging circuit (information part) is connected to the carry input of the first full adder (for the least significant bit) of the value averaging circuit (test part). The sum output O 1 is fed back via an inverter and a D flip-flop to the carry input of the weight averaging circuit. Using this architecture, the Berger Code Checker works in a similar fashion to the m-out-of-n code checker described in AP Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checks for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA 1 April 1999, pp. 361-369: the leftmost D flip-flop changes value in each clock, and bits C Q and d x always have the same values. Since d \ is a periodically changing signal, it is used as the Checker's error signal (with one output). The new checker is shown in FIG.
Beispiel: Tabelle 5 demonstriert das Arbeitsprinzip des Checkers für einen BQ (9, 4)-Berger- Code. x und y bezeichnen die beiden Eingaben der MS und z die Ausgabe. Das Gewicht von zW erhält man mit
Figure imgf000015_0001
. Bit d0 = cjc) ist der Rest dieser Division. Auf die gleiche Weise erhält man das Prüfsymbol: z<c> = |_(x{c) +y(c) + c{0)) /2j , und dι ist der Rest der Division. Sind x und y Wörter desselben Berger-Codes, dann ist z ebenso ein Wort dieses Codes, und d± = CQ . Die Operation wird für beide Typen von Berger-Codes gezeigt (oben für ßo(9, 4), unten für ßi(9, 4)), sowohl für CQ = 0 als auch
Figure imgf000015_0002
Example: Table 5 demonstrates the working principle of the checker for a B Q (9, 4) orbiter code. x and y denote the two inputs of the MS and z the output. The weight of zW is obtained with
Figure imgf000015_0001
, Bit d 0 = cj c) is the remainder of this division. The check symbol is obtained in the same way: z < c > = | _ (x {c) + y (c) + c { 0) ) / 2j, and dι is the remainder of the division. If x and y are words of the same Berger code, then z is also a word of this code, and d ± = C Q. The operation is shown for both types of Berger codes (above for β o (9, 4), below for βi (9, 4)), for both C Q = 0 and
Figure imgf000015_0002
CQ Informationsteil cfe Prüfsymbol O1 C Q information part cfe Check symbol O 1
X 010111001 0100 y 010000100 OlliX 010111001 0100 y 010000100 Olli
Z 0 010010100 1 0110 0Z 0 010010100 1 0110 0
Z 1 010101001 0 0101 1 c JoO Informationsteil do Prüfsymbol diZ 1 010101001 0 0101 1 c JoO Information part do Test symbol di
X 010111001 1010 y 010000100 1101X 010111001 1010 y 010000100 1101
Z 0 010010100 1 1100 0Z 0 010010100 1 1100 0
Z 1 010101001 0 1011 1Z 1 010101001 0 1011 1
Tabelle 5Table 5
Es sei bemerkt, daß in Tabelle 5 das am meisten signifikante Bit X^1 links erscheint (wie auch in den vorangegangenen Tabellen), während in Figur 2 (wie auch in den anderen Figuren) x[_x auf der rechten Seite steht. Der vorgeschlagene Berger-Code-Checker ist selbsttestend bezüglich aller einfacher Haft¬ fehler, vorausgesetzt, daß keine Checker-Eingangsleitung ein konstantes Signal erhält, die überwachte Schaltung mindestens zwei Codewörter mit komplementären Prüfsymbolen er¬ zeugt und die Codewörter in zufälliger Abfolge erscheinen. (Der Beweis ist ähnlich wie der Beweis von Theorem 4 in A. P. Stroele und S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369.)It should be noted that in Table 5 the most significant bit X ^ 1 appears to the left (as in the previous tables), while in Figure 2 (as in the other figures) x [_ x is on the right. The proposed Berger code checker is self-testing with respect to all simple adhesion errors, provided that no checker input line receives a constant signal, the monitored circuit generates at least two code words with complementary test symbols and the code words appear in random sequence. (The proof is similar to the proof of Theorem 4 in AP Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error-Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp 361-369.)
Derselbe Checker kann auch für BQ (Π, /c)-Berger-Typ-Codes, 0 < s < 2k — l — n, verwendet werden und ist selbsttestend, wenn die obigen Bedingungen gelten. Auf diese Weise ist der Checker programmierbar. Der konkrete Code, welcher geprüft wird, hängt nur von der Codezugehörigkeit desjenigen Wortes ab, mit dem das Checker-Register initialisiert wurde. Es kann leicht gezeigt werden, daß diese Checker-Architektur auch für die anderen Berger- Typ-Codes verwendet werden kann, die im vorangegangenen Abschnitt beschrieben wurden.The same checker can also be used for B Q (Π, / c) -erger type codes, 0 <s <2 k -l-n, and is self-testing if the above conditions apply. In this way, the checker is programmable. The concrete code being tested depends only on the code affiliation of the word with which the checker register was initialized. It can easily be shown that this checker architecture can also be used for the other Berger type codes described in the previous section.
Es sei bemerkt, daß einige Fehler mit einer Verzögerung von einigen Takten signalisiert wer¬ den und daß es eine geringe Wahrscheinlichkeit der Fehlermaskierung gibt. Beides hängt von der "Ruler"-Funktion des Fehlergewichts ab (die "Ruler" -Funktion r(x) bezeichnet die größte Zahl / für die 2' x teilt). Die Details dieses Verhaltens wurden in A. P. Stroele und S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error De¬ tecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 analysiert und werden hier weggelassen. Es wurde gezeigt, daß Fehlerverzögerung und Mas¬ kierungswahrscheinlichkeit sehr gering sind. Sie können verringert oder vermieden werden, wenn man den kombinatorischen Teil des Checkers iteriert, was aber zu einer Vergrößerung der Checker-Hardware führt.It should be noted that some errors are signaled with a delay of several clocks and that there is a low probability of error masking. Both depend on the "Ruler" function of the error weight (the "Ruler" function r (x) denotes the largest number / for which 2 'x shares). The details of this behavior have been reported in A.P. Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 43-44. 361-369 and are omitted here. It has been shown that error delay and masking probability are very low. They can be reduced or avoided by iterating the combinatorial part of the checker, but this leads to an increase in checker hardware.
Der einfachste Weg, einen Checker für einen Bose-AUED-Code B* (2k, k) zu entwerfen, ist, zwei Checker parallel zu nutzen - einen für Berger-Typ-Code Bo(2k, k) und einen für Berger-Typ-Code Bι(2k, k). Für ein Bose-AUED-Codewort muß einer der beiden Checker einen Fehler signalisieren und der andere, daß kein Fehler vorhanden ist. Eine andere, aber effizientere Methode ist, die Bose-AUED-Codewörter in Berger-Typ-Codewörter zu übersetzen und die erhaltenen Wörter mit einem Berger-Typ-Code-Checker zu prüfen. Daher bestehen die hier beschriebenen Bose-AUED-Code-Checker aus einer Übersetzungsschaltung und einem Berger-Typ-Code-Checker. Damit der Checker selbsttestend ist, muß er die folgenden zwei Bedingungen erfüllen: 1. Die Übersetzungsschaltung muß selbsttestend sein. Das bedeutet, daß ein Fehler ein Nicht-Berger- Typ-Codewort für mindestens ein Codewort produziert, und für jeden Fehler ein Test-Codewort zur Verfügung gestellt wird.The easiest way to a checker for a Bose-Aued Code B * (2 k, k) to design, is to use two Checker parallel - a (k 2, k) for Berger type code Bo and one for Berger Type code Bι (2 k , k). For a Bose-AUED codeword one of the two checkers must signal an error and the other that no error is present. Another, but more efficient, method is to translate the Bose-AUED codewords into Berger-type codewords and check the received words with a Berger-type code checker. Therefore, the Bose-AUED code checkers described here consist of a translation circuit and a Berger type code checker. For the checker to be self-testing, it must meet the following two conditions: 1. The translation circuit must be self-testing. This means that an error will produce a non-Berger type codeword for at least one codeword, and a test codeword will be provided for each error.
2. Keine Eingabeleitung des Berger-Typ-Code-Checkers erhält ein konstantes Signal, und es gibt mindestens zwei komplementäre Prüfsymbole (siehe A. P. Stroele und S. Tar- nick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error Detecting Codes," 17t h IEEE VLSI Test Symposium, Dana Point, CA1 April 1999, pp. 361-369).2. No Berger Type Code Checker input line receives a constant signal and there are at least two complementary check symbols (see AP Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error Detecting Codes"). IEEE VLSI Test Symposium, Dana Point, CA 1 April 1999, pp. 361-369).
Es werden drei verschiedene Architekturen für Bose-AUED-Code-Checker betrachtet. Der erste Checker- Entwurf basiert auf dem Ansatz, der in S.W. Bums und N. K. Jha, "A To- tally Self-Checking Checker for a Parallel Unordered Coding Scheme," IEEE Transactions on Computers, Vol. 43, No. 4, April 1994, pp. 490-495 diskutiert wurde. Dort werden die Wörter des ß*(2fc, k) Codes in Bo(2k — 1, k) Berger-Codewörter übersetzt, welche dann mit einem Berger-Code-Checker geprüft werden. Der Berger-Code-Informationsbit-Vektor besteht nur aus 2^ — 1 Bits. Das verbleibende Informationsbit, beispielsweise XQ , wird ver¬ wendet, um die Transformation der Prüfbits zu steuern. Wenn XQ = 0 dann wird der Wert des am meisten signifikanten Prüfbits x£_x vom Prüfsymbol χ(c) subtrahiert, wenn XQ = 1 dann wird
Figure imgf000017_0001
zu χ(c) addiert. Die Prüfsymbol-Transformation wird mit Halbaddierer-/ Halbsubtrahierer-Modulen implementiert, wobei XQ das Signal ist, welches steuert, ob die Module als Halbaddierer oder Halbsubtrahierer arbeiten.
Three different architectures for Bose-AUED code checkers are considered. The first draft of Checker is based on the approach outlined in SW Bums and NK Jha, "A Tally Self-Checking Checker for a Parallel Unordered Coding Scheme," IEEE Transactions on Computers, Vol. 4, April 1994, pp. 490-495 was discussed. There, the words of the β * (2 fc , k) code are translated into Bo ( 2k -1, k) Berger codewords, which are then checked with a Berger code checker. The Berger code information bit vector consists of only 2 ^ - 1 bits. The remaining information bit, for example X Q , is used to control the transformation of the check bits. If X Q = 0 then the value of the most significant check bit x £ _ x is subtracted from the check symbol χ ( c ) when X becomes Q = 1 then
Figure imgf000017_0001
to χ ( c ) added. The check symbol transformation is implemented with half adder / half subtractor modules, where X Q is the signal that controls whether the modules operate as half adders or half subtractors.
Hier wird ein einfacherer Ansatz verwendet. Es wird nur x[_x zu X^ addiert. Daher werden nur Halbaddierer (HA) für die Prüfsymbol-Transformation benötigt (siehe Figur 3). Die Übersetzungsschaltung ist in Figur 4 gezeigt. Die Schaltung übersetzt einen B*(2k, k)- Code in einen ßo^, /c)-Code. Für X^1 ist der HA zu einem ODER reduziert da kein Übertrags-Ausgang benötigt wird und das erste UND-Gatter niemals die Signalkombination xy = 11 an seinen Eingängen erhält. Die Informationsbits bleiben unverändert.Here a simpler approach is used. Only x [_ x is added to X ^. Therefore, only half adders (HA) are required for the check symbol transformation (see FIG. 3). The translation circuit is shown in FIG. The circuit translates a B * (2 k, k) - code in a SSO ^, / c) code. For X ^ 1 , the HA is reduced to an OR because no carry output is needed and the first AND gate never receives the signal combination xy = 11 at its inputs. The information bits remain unchanged.
Der B*{2k ,
Figure imgf000017_0002
/c)-Code-Übersetzer auf der Basis von Halbaddierern bildet jeden (einfachen oder mehrfachen) unidirektionalen Fehler auf ein Nicht-ßo(2/t, /c)-Wort ab. Dies kann wie folgt gezeigt werden. Ein Fehler, der nicht Bit X^1 betrifft, wird auf ein ßo(2/c, k)- Nichtcodewort x' abgebildet, welches einen Fehler an denselben Bitpositionen wie x hat. Wenn x^_x betroffen ist, dann weicht der Wert von x'^ um mindestens 2^-1 — 1 vom korrekten Prüfsymbolwert ab, und der Fehler wird vom ßo(2/c, /c)-Code-Checker erkannt. Es läßt sich leicht nachprüfen, daß die Prüfsymbole 2' - 1 (/ = 0, . . . , k) und 2k~x den gesamten Übersetzer (bezüglich einfacher Haftfehler) testen. Jeder HA erhält alle 4 Bitkom¬ binationen, und das ODER-Gatter erhält aller Kombinationen außer 11, welche für den Test auch nicht notwendig ist. Da es unter diesen Vektoren keine zwei B*(2k , /c)-Code- Prüfsymbole χ(c) und y^ gibt, welche 60(2^, /c)-Code-Prüfsymbole x'^ und y'^ erzeu¬ gen, die komplementär sind, wird ein zusätzliches Prüfsymbol benötigt (zum Beispiel y^ — 011 . . . 110, für welches /W = 011 . . . 111 komplementär zu x'^ = x^ = 100 . . .000 ist). Somit werden nur k + 3 Codewörter benötigt, um den gesamten Checker zu testen (immer angenommen, daß kein Informationsbit konstant ist). Da k klein ist (k = log2 n), ist nur eine kleine Anzahl von Codewörtern notwendig, um den Checker zu testen.
The B * {2 k ,
Figure imgf000017_0002
/ c) code translator based on half-adders maps each (single or multiple) unidirectional error to a non-β o (2 / t , / c) word. This can be shown as follows. An error that does not affect bit X ^ 1 is mapped to a βo (2 / c , k) non-codeword x 'which has an error at the same bit positions as x. If x ^ _ x is affected, the value of x '^ deviates by at least 2 ^ -1 - 1 from the correct check symbol value, and the error is detected by the ßo (2 / c , / c) code checker. It can easily be verified that the test symbols 2 '- 1 (/ = 0, ..., k) and 2 k ~ x test the entire translator (with respect to simple adhesion errors). Each HA receives all 4 bit combinations, and the OR gate receives all combinations except 11, which is not necessary for the test either. Since there are no two B * (2 k , / c) code check symbols χ ( c ) and y ^ among these vectors, which have 6 0 (2 ^, / c) code check symbols x '^ and y' ^ For example, if complementary signals are generated, an additional check symbol is needed (for example, y ^ - 011 .110, for which / W = 011 .1 111 is complementary to x '^ = x ^ = 100. .000 ). Thus, only k + 3 codewords are needed to test the entire checker (always assuming that no information bit is constant). Since k is small (k = log 2 n), only a small number of codewords are needed to test the checker.
Es ist wichtig, zu bemerken, daß der beschriebene Checker (bestehend aus dem B*(2k, k)- nach-ßo(2/t, /c)-Code- Übersetzer und einem 60(2^, /c)-Code-Checker) nicht Code-trennend ist. Als Beispiel betrachte man die ß,„(8, 3)-Codewörter 11110000 011 und 00001111 011, die die Informationsbit-Vektoren, die nur aus Nullen bzw. nur aus aus Einsen bestehen, repräsentieren. Jedes andere Wort, welches dasselbe Prüfsymbol und einen Informations¬ teil mit Gewicht /ci = 4 hat, ist ein Nichtcodewort. Bei der Codewort- Übersetzung wird ein solches Nichtcodewort in ein gültiges B0(2k, /c)-Codewort transformiert und wird nicht erkannt. Jedoch ist der Zweck des Bose-AUED-Codes und des Checkers, unidirektionale Fehler zu erkennen, aber ein unidirektionaler Fehler ist nicht in der Lage ein B*(2k, k)- Codewort in ein Berger-Typ-Codewort zu transformieren, das nicht zum B%(2k, /c)-Code gehört. Daher hindert die Eigenschaft des Checkers, nicht Code-trennend zu sein, diesen nicht daran, alle unidirektionalen Fehler zu erkennen.It is important to note that the described checker (consisting of the B * (2 k , k) -to-β o (2 / t , / c) code translator and a 6 0 (2 ^, / c ) Code checker) is not code-separating. As an example, consider the β, "(8, 3) codewords 11110000 011 and 00001111 011, which represent the information bit vectors consisting of all zeros and all ones. Every other word which has the same check symbol and an information part with weight / ci = 4 is a non-codeword. In the codeword translation, such a non-codeword is transformed into a valid B 0 (2 k , / c) codeword and is not recognized. However, the purpose of the Bose AUED code and the checker is to detect unidirectional errors, but a unidirectional error is unable to transform a B * ( 2k , k) codeword into a Berger type codeword not part of the B % (2 k , / c) code. Therefore, the checker's property of not being code-divisive does not prevent it from recognizing all unidirectional errors.
Die zweite Architektur basiert auf der Eigenschaft, daß das zu einem B0(2k, /c)-Wort kom¬ plementäre Wort zu Bι(2k, k) gehört und umgekehrt. Die Idee ist, jedes B^,(2k, /c)-Bose- AUED-Codewort x auf ein Bχ{2k , /c)-Berger-Typ-Codewort x' abzubilden. Wenn x bereits zu Bι(2k, k) gehört, dann bleibt es unverändert. Wenn x zu B0(2k, k) gehört, dann wird jedes Bit von x invertiert. Zu welchem Berger-Typ-Code x gehört wird durch das am meisten sig¬ nifikante Prüfbit X^1 bestimmt, welches 1 ist für B0(2k, k) und 0 für Bx(2k, k). Daher wird die Übersetzung durchgeführt durch bitweises XOR aller Bits von x mit x^_x. Das erhaltene Wort x' hat nur k — l Prüfbits. x[_x wird nicht benötigt, da XOR von x£_χ mit sich selbst immer 0 ergibt. Aber dieses Bit wird ohnehin nicht benötigt, weil x'M niemals ein Gewicht kleiner als 2k~λ haben kann und somit das ßi-Prüfsymbol nicht größer als 2k~x — 1 sein kann. Die Übersetzungs-Schaltung wird in Figur 5 gezeigt. Sie übersetzt einen B^.(2k, /c)-Code in einen Sf2 (2k, k — 1)-Code, welcher mit einem ßo ~1(2/c, k — 1)-Code identisch ist. Auf analoge Weise kann auch ein Bit.{2k , /c)-Code in einen B1 1(2k, k — 1)-Code durch bitweises XOR aller Codewort- Bits mit dem Inversen von X^1 übersetzt werden. Die nachfolgenden Betrachtungen gelten auch für diese Übersetzung und werden weggelassen.The second architecture is based on the property that the word complementary to a B 0 (2 k , / c) word belongs to B 1 (2 k , k) and vice versa. The idea is, each B ^, (2 k, / c) -Bose- Aued codeword x k on a Bχ {2, / c) -Berger type codeword x map '. If x already belongs to Bι (2 k , k), then it remains unchanged. If x belongs to B 0 (2 k , k), then every bit of x is inverted. Which Berger-type code x belongs to is determined by the most significant check bit X ^ 1 , which is 1 for B 0 (2 k , k) and 0 for B x (2 k , k). Therefore the translation is done by bitwise XOR of all bits of x with x ^ _ x . The obtained word x 'has only k-1 check bits. x [_ x is not needed because XOR of x £ _ χ always yields 0 with itself. But this bit is not needed anyway, because x'M can never have a weight smaller than 2 k ~ λ and thus the ßi-check symbol can not be larger than 2 k ~ x - 1. The translation circuit is shown in FIG. It translates a B ^. (2 k , / c) code into a Sf 2 (2 k , k-1) code which is identical to a β o ~ 1 (2 / c , k-1) code , On analogously, a B it {2 k , / c) code can also be translated into a B 1 1 (2 k , k-1) code by bitwise XOR of all codeword bits with the inverse of X ^ 1 . The following considerations also apply to this translation and are omitted.
Der XOR-basierte ß*(2k, /f)-nach-ßo "1(2/c, k - 1)-Code-Übersetzer bildet jeden (einfachen oder mehrfachen) unidirektionalen Fehler auf ein Nicht-ß^"1(2/c, k — 1)-Wort ab. Dies kann wie folgt nachgewiesen werden. Ein Fehler, der nicht Bit X^1 betrifft, wird auf ein BQ 1(2I<, k — I)- Nichtcodewort x' abgebildet, welches einen Fehler an denselben Bitpo¬ sitionen wie x hat. Sei jetzt nur
Figure imgf000019_0001
durch den Fehler betroffen und man nehme an, daß dieser vom 0 — )► 1-Typ ist. Da jetzt X^1 = 1 ist, werden alle Bits des Codeworts invertiert. Weil für X^1 = 0 immer kx > 2k~ι galt, gilt jetzt ko' > 2*-\ wobei kQ' die Anzahl der Nullen in x' bezeichnet. Weil in BQ 1(2I<, k - 1) immer 1 < kQ' < 2k~x gilt, ist der einzige Fall, in dem der Fehler nicht erkannt werden würde, der, wenn /f0 = kγ = 2k~λ . Aber dies kann nur dann passieren, wenn alle anderen Bits außer xζ_x von einem 1 — > O-Fehler betroffen werden würden. Dann kann der Fehler aber nicht unidirektional sein. Sei jetzt angenommen, daß neben
Figure imgf000019_0002
auch andere Prüfbits und/oder Informationsbits durch einen 0 — > 1-Fehler betroffen sind. Dies führt zu derselben Situation, daß ko' > 2k~ι, so daß x' ein Nichtcodewort in ß^"1(2'c,/c — 1) wird. Eine analoge Argumentation kann verwendet werden, wenn der Fehler vom 1 — )• O-Typ ist.
The XOR-based β * (2 k , / f) -to-β o "1 (2 / c , k-1) code translator forms any (single or multiple) unidirectional error on a non-β 1 (2 / c , k - 1) word. This can be proven as follows. An error that does not affect bit X ^ 1 is mapped to a B Q 1 (2 I < , k-I) non-codeword x 'which has an error at the same bit positions as x. Just be now
Figure imgf000019_0001
affected by the error and assume that this is of the 0 -) ► 1 type. Now that X ^ 1 = 1, all bits of the codeword are inverted. Since for x ^ 1 = 0 k x > 2 k ~ ι always holds, k o '> 2 * - \ where k Q ' denotes the number of zeros in x '. Since BQ 1 (2 I < , k - 1) always holds 1 <k Q '<2 k ~ x , the only case in which the error would not be detected is if / f 0 = kγ = 2 k ~ λ . But this can only happen if all other bits except xζ_ x would be affected by a 1 -> O error. But then the error can not be unidirectional. Now suppose that beside
Figure imgf000019_0002
also other check bits and / or information bits are affected by a 0-> 1 error. This leads to the same situation, that k o '> 2 k ~ ι , so that x' becomes a non-codeword in ß ^ "1 (2 ' c , / c - 1) An analogous argumentation can be used if the error of 1 -) • O type.
Für den Test der Übersetzungsschaltung ist es nur erforderlich, daß jedes XOR-Gatter alle 4 Bitkombinationen erhält. Eine minimale Testmenge ist in Tabelle 6 angegeben. Da diese Menge auch Vektoren enthält, deren Prüfsymbole χ(c) in komplementäre Prüfsymbole x'^ aus BQ 1(2I<, k — 1) transformiert werden, ist auch Bedingung 2 erfüllt.For the test of the translation circuit, it is only necessary that each XOR gate receive all 4 bit combinations. A minimum test amount is given in Table 6. Since this set also contains vectors whose check symbols χ ( c ) are transformed into complementary check symbols x '^ from B Q 1 (2 I < , k-1), condition 2 is fulfilled.
x (0 (c)x (0 (c)
00. ..0 11.. .1 10. ..000. ..0 11 .. .1 10. ..0
11. ..1 00.. .0 10. ..011. ..1 00 .. .0 10. ..0
10. ..0 00.. .0 11. ..110. .. 0 00 .. .0 11. ..1
Ol. ..1 11.. .1 00. ..0Oil .1 11 .. .1 00. ..0
00. ..0 11.. .1 01. ..100. ..0 11 .. .1 01. .. 1
11. ..1 00.. .0 01. ..111. ..1 00 .. .0 01. .. 1
Tabelle 6Table 6
Diese Checker-Architektur ist wiederum nicht Code-trennend im üblichen Sinne. Aber wiederum können die einzigen Nichtcodewörter, die der Checker nicht in der Lage ist, zu erkennen, niemals durch unidirektionale Fehler verursacht werden, und die Eigenschaft des Checkers, nicht Code-trennend zu sein hindert ihn nicht daran, alle unidirektionalen Fehler zu erkennen.Again, this checker architecture is not code-breaking in the usual sense. But again, the only non-codewords that the checker is unable to never be caused by unidirectional errors, and the checker's ability to be non-code-breaking does not prevent it from recognizing all unidirectional errors.
Die dritte Architektur folgt einer ähnlichen Idee wie die HA-basierte Architektur, mit dem Unterschied, daß in Abhängikeit von x[_x nicht der Wert des Prüfsymbols um 1 erhöht wird, sondern das Gewicht des Informationsbit- Vektors. Es wird einfach eine invertierte Kopie des am meisten signifikante Prüfbits zu den Informationsbits hinzugefügt, so daß x„ =
Figure imgf000020_0001
das zusätzliche Informationsbit ist. Somit haben nach der Code-Transformation alle Codewörter ein Prüfsymbol, welches /CQ — 1 repräsentiert. Auf diese Weise wird der B*(2k, /c)-Code in einen ßo ~1(2/( + l, /e)~Code übersetzt. Im ßo ~1(2/t + l, /c)-Code hat ein Informationsbit- Vektor mindestens eine und höchstens 2k Nullen, so daß 0 < /CQ — 1 < 2fe — 1 und somit k Prüfbits ausreichend sind. Die BA.(2k,
Figure imgf000020_0002
+ l, /φCode-Ubersetzungs-Schaltung besteht aus einem einfachen Inverter.
The third architecture follows a similar idea as the HA-based architecture, with the difference that, depending on x [_ x, the value of the check symbol is not increased by 1, but the weight of the information bit vector. An inverted copy of the most significant check bits is simply added to the information bits such that x "=
Figure imgf000020_0001
the additional information bit is. Thus, after code transformation, all codewords have a check symbol representing / C Q -1. In this way, the B * (2 k , / c) code is translated into a β o ~ 1 (2 / ( + l, / e) ~ code, where β o ~ 1 (2 / t + l, / c ) Code has an information bit vector at least one and at most 2 k zeros, so that 0 </ C Q - 1 <2 f e - 1 and thus k check bits are sufficient The B A (2 k ,
Figure imgf000020_0002
+ l, / φ code translation circuit consists of a simple inverter.
Die B*(2k, /c)-nach-ßo ~1(2/c + 1, /c^-Code-Übersetzungs-Schaltung bildet jeden (einfachen oder mehrfachen) unidirektionalen Fehler auch ein Nicht-ß^1(2'c 4- l, /c)-Wort ab. Dies kann wie folgt gezeigt werden. Ein Fehler, der nicht Bit x^_x betrifft, wird auf ein ßo "1(2/c + l, k)- Nichtcodewort x' abgebildet, welches einen Fehler an denselben Bitpositionen wie x hat. Sei jetzt Bit x^_x durch den Fehler beeinflußt. Es sei angenommen, daß der Fehler ein 0 —> 1-Fehler ist. Dies bedeutet, daß das Prüfsymbol x^ mindestens 2k~ι mehr Nullen anzeigt, aber in χ(') kann es höchstens eine Null mehr geben (Informationsbit Xn , welches jetzt gleich 0 statt 1 ist infolge des Fehlers). Wenn zusätzliche Informationsbits betroffen sind, dann ist die Anzahl der Nullen in χ(') sogar noch geringer und der Unterschied zum fehlerhaften χ(c) ist sogar größer. Ähnliche Aussagen treffen für 1 -¥ 0-Fehler zu.The B * (2 k , / c) -to-β o -1 (2 / c + 1, / c ^ code translation circuit also makes each (single or multiple) unidirectional error a non-β 1 ( ., 2 'c 4 l / c) word from this can be shown as follows an error that does not affect bit x ^ _ x is a ß o "1 (2 / c + l, k) - not codeword x 'shown that as x has a fault at the same bit positions now let bit x ^ _ x affected by the error, it is assumed that the fault is a 0 -... is> 1 fault This means that the check symbol x ^ at least 2 k ~ ι indicates more zeros, but in χ (') there can be at most one more zero (information bit Xn, which now equals 0 instead of 1 due to the error.) If additional information bits are involved, then the number is zero The zeros in χ (') are even lower and the difference to the erroneous χ ( c ) is even larger. Similar statements apply to 1 - ¥ 0 errors.
Es ist leicht zu sehen, daß der Checker, der aus dem B*(2k, /c)-nach-ßo "1(2/c + 1, /c)-Code- Übersetzer und dem ß^1(2/c + 1, /c)-Code~Checker besteht, selbsttestend ist unter der Be¬ dingung, daß keine Eingabeleitung ein konstantes Signal erhält, die Codewörter in zufälliger Abfolge erscheinen und es mindestens zwei komplementäre Prüfsymbole gibt. Der Checker ist erneut nicht Code-trennend, jedoch in der Lage, alle unidirektionalen Fehler zu erkennen.It is easy to see that the checker consisting of the B * (2 k , / c) -to-β o "1 (2 / c + 1, / c) code translator and the β ^ 1 (2 / c + 1, / c) -Code ~ Checker is self-testing under the condition that no input line receives a constant signal, the code words appear in random order and there are at least two complementary check symbols The checker is again not code - separating, but able to detect all unidirectional errors.
Die Checker-Architekturen für Biswas-Sengupta-AUED-Codes B* (2k, k) sind ähnlich zu denen für Bose-AUED-Codes B*(2k, k). Der Hauptunterschied ist, daß die Unterscheidung, ob ein Codewort zu B0(2k, k) oder zu Bx{2k , k) gehört, nicht allein mit Hilfe des am meisten signifikanten Prüfbits X^1 gemacht werden kann. Stattdessen erfolgt sie durch Prüfung, ob χ(c) > 2/ — 1. Dies wird implementiert durch Verwendung eines Größenvergleichers (Magnitude Comparator).The checker architectures for Biswas-Sengupta-Aued codes B * (2 k, k) are to those (k 2, k) similar for Bose-Aued codes B *. The main difference is that the distinction as to whether a code word to B 0 (2 k, k) or k B x {2, belongs k), can not be made solely with the aid of the most significant test bits X ^. 1 Instead, it is done by examination, whether χ (c) > 2 / - 1. This is implemented by using a magnitude comparator.
Diese Größenvergleicher sind sehr einfach, da x^ mit einem konstanten Wert verglichen wird. Ein Beispiel ist in Figur 6 gezeigt. Die Schaltung prüft für ein 5-Bit Prüfsymbol x(c), ob x^ = xf* x^c) xf> x[c) xf1 > 01101. Der Größenvergleicher benötigt höchstens k — 1 Gatter mit zwei Eingängen. Im Beispiel ist Bit xjf ' nicht notwendig. Für einen Bose- AUED-Code (welcher ein spezieller Biswas-Sengupta-AUED-Code ist) ist sogar überhaupt kein Gatter notwendig - es wird einfach
Figure imgf000021_0001
genommen. Der Vergleicher benötigt höchstens k + 1 Testvektoren.
These size comparators are very simple, since x ^ is compared to a constant value. An example is shown in FIG. The circuit checks for a 5-bit check symbol x (c) if x ^ = x ^ xf * c) xf> x [c) xf 1> 01,101th The magnitude comparator requires at most k - 1 gate with two inputs. In the example bit xjf 'is not necessary. For a Bose AUED code (which is a special Biswas Sengupta AUED code), no gate is necessary at all - it will be easy
Figure imgf000021_0001
taken. The comparator needs at most k + 1 test vectors.
Es wird nun gezeigt, daß ein unidirektionaler Fehler nicht auf ein Berger-Typ-Codewort abgebildet werden kann. In der HA-basierten Übersetzungsschaltung, die in Figur 4 gezeigt wird, wird jetzt der invertierte Ausgang des Größenvergleichers zu χ(c) addiert statt des invertierten Wertes von x[c}v Die Funktion, die durch den Größenvergleicher implementiert wird, sei mit f(x^) bezeichnet, d.h.It will now be shown that a unidirectional error can not be mapped to a Berger type codeword. In the HA-based translation circuit shown in Figure 4, the inverted output of the magnitude comparator is now added to χ (c) instead of the inverted value of x [ c ] v. The function implemented by the magnitude comparator is f (x ^), ie
0 für x<« < 2/ - 1, f{x^) =0 for x <«<2 / - 1, f {x ^) =
1 für xM > 2/ - l.1 for xM> 2 / - l.
In der Halbaddierer-basierten Übersetzungsschaltung kann kein (einfacher oder mehrfacher) unidirektionaler Fehler in ein So^, /c)-Codewort transformiert werden. Dies kann wie folgt nachgewiesen werden. Zuerst wird der Fall betrachtet, daß der Fehler nur auf das Prüfsymbol χ(c) wirkt. Es sei angenommen, daß das ß* (2fc, /c)-Codewort vom ßi-Typ ist, d.h. χ(c) < 2/ — 1 und f(χ(c)) = 0, was bedeutet, daß 1 zu χ(c) addiert wird. Wenn der Fehler nicht f(x^) beeinflußt, dann wird er auf ein ßo^, k)- Nichtcodewort x' abgebildet, welches einen Fehler an denselben Bitpositionen wie x hat. Wenn der Fehler f(x^) beeinflußt, dann kann er nur vom 0 — » 1-Typ sein, weil χ(c) größer als 2/ — 1 geworden sein muß, was im Fall eines unidirektionalen Fehlers nur möglich ist durch das Andern von Nullen in Einsen. Da jetzt f(χ(c)) = I1 wird keine 1 zu χ(c) hinzuaddiert. Die einzige Möglichkeit, daß der Fehler nicht erkannt wird, ist die, daß der Wert von χ(c) dennoch um 1 erhöht wird. Dies kann nur dann der Fall sein, wenn das am wenigsten signifikante Prüfbit XQ von 0 nach 1 wechselt. Der einzige Fall, wo die Addition von 1 zu x^ den Wert von f(x^) von 0 nach 1 ändert, tritt auf, wenn χ(c) = 2/ — 1. Weil in diesem Fall aber bereits x^ = 1 ist, kann der Fehler nicht vom 0 — > 1-Typ sein, was zu einem Widerspruch führt. Auf ähnliche Weise kann dies gezeigt werden für ß* (2fc, /c)-Codewörter, die vom ßo-Typ sind. Aus der obigen Argumentation ist leicht zu sehen, daß ein 0 -> 1-Fehler x1^ nur vergrößern kann. Wenn zusätzlich oder nur Informationsbits betroffen sind, dann ist die Anzahl der Nullen verringert und der Fehler wird vom Bo(2k, /c)-Code-Checker erkannt, welcher x' prüft. Ähnliche Aussagen gelten, wenn der Fehler vom 1 — > O-Typ ist.In the half adder-based translation circuit, no (single or multiple) unidirectional error can be transformed into an So ^, / c) codeword. This can be proven as follows. First, consider the case where the error acts only on the check symbol χ (c) . Assume that the β * (2 fc , / c) codeword is of the βi type, ie, χ (c) <2 / -1 and f (χ (c) ) = 0, which means 1 to χ (c) is added. If the error does not affect f (x ^) then it is mapped to a βo, k) non-codeword x 'which has an error at the same bit positions as x. If the error affects f (x ^), then it can only be of the 0 -> 1 type because χ (c) must have become greater than 2 / - 1, which in the case of a unidirectional error is only possible by changing of zeros in ones. Since now f (χ (c) ) = I 1 , no 1 is added to χ (c) . The only possibility that the error is not recognized is that the value of χ (c) is nevertheless increased by one. This can only be the case when the least significant check bit X Q changes from 0 to 1. The only case where the addition of 1 to x ^ changes the value of f (x ^) from 0 to 1 occurs when χ (c) = 2 / - 1. Because in this case, x ^ = 1 is, the error can not be of the 0 -> 1 type, resulting in a contradiction. Similarly, this can be shown for β * (2 fc , / c) codewords that are of the βo type. It is easy to see from the above argument that a 0 -> 1 error can only increase x 1 ^. If additional or only Information bits are affected, then the number of zeros is reduced and the error is detected by the Bo (2 k , / c) code checker, which checks x '. Similar statements apply if the error is of the 1 -> O type.
Die XOR-basierte Übersetzung von Biswas-Sengupta-AUED-Codes unterscheidet sich etwas von der für Bose-AUED-Codes. Die bitweise Komplementierung ist hier nur für diejenigen Wörter erlaubt, die zum Berger-Typ-Code mit der kleineren Anzahl von Prüfsymbolen in B* {2k, k) gehören. Ein weiterer Unterschied ist, daß das am meisten signifikante Prüfbit bit x£_x noch notwendig ist, so daß der ß* l'(2k, /c)-Code in einen Berger-Typ-Code mit k statt k — 1 Prüfbits übersetzt wird. Demzufolge muß auch für Prüfbit X^1 die XOR- Operation mit dem Ausgang oder invertierten Ausgang des Größenvergleichers durchgeführt werden. Ein Problem ist, daß die XOR-Gatter für die höherwertigen Prüfbits entweder die Signalkombination Ol oder 10 eventuell nicht erhalten. Dies wird gelöst, indem jedes der betroffenen XOR-Gatter ersetzt wird durch ein UND-Gatter mit einem invertierten Eingang. Die minimale Anzahl von Codewörtern, die alle XOR-Gatter und UND-Gatter testen, ist 2k / (2k-1 - \2i - 2k-1\) + 4.The XOR-based translation of Biswas Sengupta AUED codes is slightly different from that for Bose AUED codes. Bitwise complementation is allowed here only for those words that belong to the Berger type code with the smaller number of check symbols in B * {2 k , k). Another difference is that the most significant bit check bit x £ _ x is still necessary so that the ß * l '(2 k, / c) code in a Berger type code with k instead k - 1 check bits is translated. Consequently, the XOR operation with the output or inverted output of the magnitude comparator must also be performed for check bit X ^ 1 . One problem is that the XOR gates for the more significant check bits may not get either the Ol or 10 signal combination. This is solved by replacing each of the affected XOR gates with an AND gate with an inverted input. Test The minimum number of codewords, all of XOR gates and AND gates, 2 k / (2 k - 1 - \ 2i - 2 k - 1 \) +. 4
In der XOR-basierten Übersetzungsschaltung mit einem Größenvergleicher kann kein (ein¬ facher oder mehrfacher) unidirektionaler Fehler in ein Codewort transformiert werden. Dieser Sachverhalt kann wie folgt nachgewiesen werden. Zuerst sei der Fall betrachtet, daß der Fehler nur auf das Prüfsymbol χ(c) wirkt. Es sei angenommen, daß das B* (2k, /c)-Codewort vom ßi-Typ sei, für welchen angenommen ist, daß er der Berger-Typ-Code mit der kleineren Anzahl von Prüfsymbolen in
Figure imgf000022_0001
k) ist. Wenn der Fehler f(χ(c)) nicht beeinflußt, dann wird er auf ein Nichtcodewort x' abgebildet, welches einen Fehler an denselben Bitpositionen wie x hat. Wenn der Fehler f(x^) beeinflußt, dann kan er nur vom 0 — > 1-Typ sein, weil χ(c) größer als 2/ — 1 geworden sein muß, was im Fall eines unidirektionalen Fehlers nur möglich ist durch das Andern von Nullen in Einsen. Wegen f(x^) = 1 wird das Codewort Bit für Bit invertiert. Da jetzt x' vom ßo-Typ ist, ist der Prüfsymbolwert um 1 vergrößert (verglichen mit wenn x' vom ßi-Typ wäre). Da aber x^ aufgrund des Fehlers größer gewor¬ den ist, ist das invertierte Prüfsymbol kleiner geworden. Somit verhindert die Einwirkung des Fehlers auf f(x^) nicht seine Erkennung. Ähnliche Aussagen gelten, wenn der ßo~Typ- Code derjenige Code ist für den angenommen wird daß er der Berger-Typ-Code mit der kleineren Anzahl von Prüfsymbolen in
Figure imgf000022_0002
k) ist. Ein Fehler in einem Wort x welches zu einem Berger-Typ-Code mit der größeren Anzahl von Prüfsymbolen in ß* (2k, k) gehört und/oder im Informationsbit- Vektor χ(') wird auf ein Nichtcodewort x' abgebildet, welches einen Fehler an denselben Bitpositionen wie x hat und somit erkannt. In der Inverter-basierten Übersetzungsschaltung mit einem Größenvergleicher kann kein (ein¬ facher oder mehrfacher) unidirektionaler Fehler in ein ß^"1(2/t + l, /c)-Codewort transformiert werden. Der Nachweis dieses Sachverhalts ist ähnlich dem für den HA-basierten Fall. In der Halbaddierer-basierten Übersetzungsschaltung wird das Komplement des Größenvergleicher- Ausgangs f(x^) zu χ(c) addiert. Im Inverter-basierten Übersetzer ist das Komplement von f(χ(c)) das zusätzliche Informationsbit xj, . Wenn zum Beispiel f(x^) = 0 (was im HA- basierten Übersetzer der Addition von 1 zu χ(c) entspricht), dann ist x„ = 1 (was bedeutet, daß χ(') eine Null weniger hat, als wenn f(x^) = 1 wäre, und dies wiederum entspricht einer Vergrößerung von x^ um 1).
In the XOR-based translation circuit with a size comparator, no (single or multiple) unidirectional error can be transformed into a code word. This fact can be proved as follows. First consider the case where the error only affects the check symbol χ ( c ). Assume that the B * (2 k , / c) codeword is of the .beta.-type, which is assumed to be the Berger-type code with the smaller number of check symbols in
Figure imgf000022_0001
k) is. If the error f (χ ( c) ) is not affected, then it is mapped to a non-codeword x 'which has an error at the same bit positions as x. If the error f (x) is affected, then he kan only from 0 -> 1 type be because χ (c) greater than 2 / - must have been one, which in the case of a unidirectional error is only possible through the Change from zeros to ones. Because of f (x ^) = 1, the codeword is inverted bit by bit. Now that x 'is of the β o type, the check symbol value is increased by 1 (compared to when x' would be of the β i type). But since x ^ has become larger due to the error, the inverted check symbol has become smaller. Thus, the action of the error on f (x ^) does not prevent its detection. Similar statements apply if the ß o ~ type code is one code for it is assumed that he Berger the type code with the smaller number of check symbols in
Figure imgf000022_0002
k) is. An error in a word x which belongs to a Berger type code with the larger number of check symbols in β * (2 k , k) and / or in the information bit vector χ (') is mapped to a non-codeword x' which has an error at the same bit positions as x and thus recognized. In the inverter-based translation circuit with a size comparator, no (single or multiple) unidirectional error can be transformed into a β 1 (2 / t + 1, / c) codeword In the half-adder-based translation circuit, the complement of the magnitude comparator output f (x ^) is added to χ ( c ) In the inverter-based translator, the complement of f (χ ( c )) is the additional information bit xj For example, if f (x ^) = 0 (which corresponds to the addition of 1 to χ ( c ) in the HA-based translator), then x "= 1 (which means that χ (') has one zero less as if f (x ^) = 1, and this in turn corresponds to an increase of x ^ by 1).
Der nachfolgende Vergleich zeigt die Vorteile der verschiedenen Checker-Architekturen ge¬ genüber dem Stand der Technik. Der Vergleich umfaßt Hardware- Größe, Größe der mini¬ malen Testmenge und die Eigenschaft, Code-trennend zu sein.The following comparison shows the advantages of the various Checker architectures compared to the prior art. The comparison includes hardware size, size of the mini¬ mimal test amount and the property of being code-separating.
Alle hier betrachteten Checker-Architekturen bauen auf einem Berger-Typ-Code-Checker auf. Dieser Checker ist ähnlich aufgebaut wie der in A. P. Stroele und S. Tarnick, "Pro- grammable Embedded SeIf- Testing Checkers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 beschriebene Checker, und seine Eigenschaften werden hier nicht näher diskutiert. Die in Figur 2 gezeigte Version mit einem Ausgang besteht aus 2k + k Volladdierern, 2k + /r + 1 D-Flip-Flops und einem Inverter. Die Version mit zwei Ausgängen hat ein zusätzliches D-Flip-Flop und einen zusätzlichen Inverter. Der Checker ist selbsttestend unter der Voraussetzung, daß keine Eingabeleitung ein konstantes Signal erhält, er zwei Prüfsymbole erhält, die komplementär sind und die Codewörter in zufälliger Abfolge erscheinen. Zwei Codewörter reichen aus, um den gesamten Checker zu testen. Somit ist die Eigenschaft, selbsttestend zu sein, prak¬ tisch unabhängig von der Menge der von der zu überwachenden Schaltung zur Verfügung gestellten Codewörter erreicht.All checker architectures considered here are based on a Berger type code checker. This checker has a similar structure to that described in AP Stroele and S. Tarnick, "Programmable Embedded Seal Testing Checkers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 and its properties are not discussed here. The version with an output shown in Figure 2 consists of 2 k + k full adders, 2 k + / r + 1 D flip-flops and an inverter. The two-output version has an additional D flip-flop and an additional inverter. The checker is self-testing provided that no input line receives a constant signal, it receives two check symbols which are complementary and the codewords appear in random order. Two codewords are enough to test the entire checker. Thus, the property of being self-testing is practically achieved independently of the amount of code words made available by the circuit to be monitored.
Die Hardware-Größe wird verglichen mit der eines eingebetteten B0(2k, k + 1)-Berger-Code- Checkers. Die Zahlen geben an, wieviel Gatter mehr oder weniger benötigt werden. Die Hardware-Größendifferenz umfaßt somit die Gatterzahl für die jeweilige Übersetzungsschal¬ tung und Teile des Berger-Typ-Code-Checkers, die aufgrund veränderter Code-Parameter im Vergleich zum 60(2*, k + 1)-Berger-Code-Checker zusätzlich benötigt oder eingespart werden. Für die Bestimmung der Gatterzahlen werden folgende Werte zugrunde gelegt: UND- und ODER-Gatter mit zwei Eingängen zählen jeweils als ein Gatter und zwei Inverter werden als ein Gatter gezählt. Entsprechend Theorem 4 in A. P. Stroele und S. Tarnick, "Pro- grammable Embedded SeIf- Testing Checkers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 bestehen die Volladdierer für den Informationsteil des Berger-Code-Checkers aus zwei separaten Teilschal¬ tungen zur Berechnung der Summe und des Übertrags, und die Volladdierer für den Prüfteil sind wie in A. P. Stroele and S. Tarnick, "Embedded Checker Architectures for Cyclic and Low-Cost Arithmetic Codes," Journal of Electronic Testing, Vol. 16, August 2000, pp. 355- 367 implementiert, so daß sie aus 12 bzw. 15 Gattern bestehen. Ein Halbaddierer besteht aus 3,5 Gattern, und D-Flip-Flops und XOR-Gatter werden aus 4 Gattern bestehend angenom¬ men. Zunächst werden Bose-AUED-Code-Checker verglichen.The hardware size is compared to that of an embedded B 0 (2 k , k + 1) aggravator code checker. The numbers indicate how many gates are more or less needed. The hardware size difference thus includes the gate count for the respective translation switch and parts of the Berger type code checker which, due to changed code parameters, in addition to the 60 (2 *, k + 1) -gerger code checker needed or saved. The following values are used to determine the gate numbers: AND and OR gates with two inputs each count as one gate and two inverters are counted as one gate. According to Theorem 4 in AP Stroele and S. Tarnick, "Pro For the information part of the Berger Code Checker, the full adders for the Berger Code Checker consist of two separate subscales: "Embedded Selective Testing Checkers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 For the test part, the full adders for the test part are as described in AP Stroele and S. Tarnick, "Embedded Checker Architectures for Cyclic and Low Cost Arithmetic Codes," Journal of Electronic Testing, Vol. 16, August 2000, pp. 355-367, so that they consist of 12 and 15 gates, respectively, a half-adder consists of 3.5 gates, and D-flip-flops and XOR gates are assumed to consist of 4 gates Bose AUED code checker compared.
Die Checker-Architektur aus S.W. Bums und N. K. Jha, "A Totally Self-Checking Checker for a Parallel Unordered Coding Scheme," IEEE Transactions on Computers, Vol. 43, No. 4, April 1994, pp. 490-495 benötigt 6(/c - 2) + 11 Gatter für die Übersetzungsschaltung. Zusätzlich werden durch die Code-Übersetzung ein Informationsbit und ein Prüfbit gespart, so daß beim B0(2k — l, k)- Berger-Code-Checker im Vergleich zu einem Bo(2k, /c+l)-Berger- Code-Checker zwei Volladdierer und zwei D-Flip-Flops nicht benötigt werden. Zusammenge¬ faßt ist die zusätzliche Gatterzahl 6(/c — 2) — 24. (Obwohl in der ursprünglichen Architek¬ tur von Burns und Jha ein Berger-Code-Checker mit einer anderen Architektur verwendet wird, wurde zur Vereinfachung des Vergleichs ein Berger-Code-Checker entsprechend Figur 2 angenommen.) Die minimale Testmenge besteht aus höchstens 2/c+16 Codewörtern. Unter allen hier diskutierten Architekturen ist sie die einzige, die Code-trennend im herkömmlichen Sinn ist.The Checker Architecture of SW Bums and NK Jha, "A Totally Self-Checking Checker for a Parallel Unordered Coding Scheme," IEEE Transactions on Computers, Vol. 4, April 1994, pp. 490-495 requires 6 (/ c - 2) + 11 gates for the translation circuit. In addition, the code translation saves an information bit and a check bit so that the B 0 (2 k -1, k) Berger code checker is compared to a Bo (2 k , / c + 1) encoder. Code checker two full adders and two D flip-flops are not needed. Summarized is the additional gate number 6 (/ c - 2) - 24. (Although in the original architecture of Burns and Jha a Berger code checker with a different architecture is used, to simplify the comparison, a Berger code Code checker according to Figure 2 accepted.) The minimum test set consists of at most 2 / c + 16 codewords. Of all the architectures discussed here, it is the only one that is code-separating in the traditional sense.
Der HA-basierte Übersetzer benötigt 3,5(/c — 1)+1,5 Gatter, und er spart einen Volladdierer für die Prüfsymbole und ein D-Flip-Flop, was zusammen 3,5(/c — 1)- 17,5 zusätzliche Gatter ergibt. Die minimale Testmenge besteht aus k + 3 Codewörtern. Der Checker ist Code¬ trennend bezüglich unidirektionaler Fehler.The HA-based translator requires 3.5 (/ c - 1) +1.5 gates, and it saves a full adder for the check symbols and a D-type flip-flop, which together add 3.5 (/ c - 1) - 17 , 5 additional gates results. The minimum test set consists of k + 3 codewords. The checker is code separating with respect to unidirectional errors.
Die Gatterzahl für den XOR-basierten Übersetzer ist 4(2^ + k - 1). Da 2 Prüfbits weniger benötigt werden reduziert sich die Zahl der zusätzlichen Gatter auf 4(2^ + k — 1) — 38. Die minimale Testmenge besteht aus 6 Vektoren und der Checker ist Code-trennend bezüglich unidirektionaler Fehler.The gate count for the XOR-based translator is 4 (2 ^ + k-1). Since 2 less check bits are needed, the number of extra gates is reduced to 4 (2 ^ + k - 1) - 38. The minimum test set consists of 6 vectors and the checker is code-separating with respect to unidirectional errors.
Der Inverter-basierte Übersetzer benötigt nur einen Inverter. Es wird ein zusätzliches Infor¬ mationsbit benötigt aber ein Prüfbit eingespart, so daß der Checker 2,5 Gatter im Vergleich zu einem Berger-Code-Checker spart. Die minimale Testmenge besteht aus 2 Vektoren. Verglichen mit den anderen Architekturen ist dies keine spezielle Testmenge. Die einzige Forderung ist, daß sie komplementäre Prüfsymbole enthält. Der Checker ist Code-trennend bezüglich unidirektionaler Fehler.The inverter-based translator requires only one inverter. An additional bit of information is required, but a check bit is saved, so that the checker saves 2.5 gates compared to a Berger code checker. The minimum test set consists of 2 vectors. Compared to other architectures, this is not a special test set. The only requirement is that it contains complementary check symbols. The checker is code-separating with respect to unidirectional errors.
Tabelle 7 faßt die Eigenschaften der verschiedenen Checker-Architekturen für Bose-AUED- Codes zusammen. Die erste Spalte zählt die Architekturen auf, wobei Burns, HA, XOR und INV die Architektur von Burns und Jha sowie die Halbaddierer-, XOR- bzw. Inverter- basierte Architektur bezeichnen. Die zweite Spalte zeigt die Anzahl der zusätzlichen Gatter im Vergleich zu einem eingebetteten Berger-Code-Checker und die dritte Spalte die Größe einer minimalen Testmenge. Spalte 4 gibt an, daß nur der Checker von Burns und Jha uneingeschränkt Code-trennend ist. Alle anderen sind Code-trennend bezüglich aller unidi¬ rektionaler Fehler. Figur 7 vergleicht die Zahlen der gegenüber einem B0(2k, k + 1)-Berger- Code-Checker zusätzlich benötigten Gatter für die verschiedenen Architekturen.Table 7 summarizes the properties of the different Checker architectures for Bose AUED codes. The first column enumerates the architectures, where Burns, HA, XOR, and INV denote the architecture of Burns and Jha, as well as the half-adder, XOR, and inverter-based architecture. The second column shows the number of extra gates compared to an embedded Berger code checker, and the third column shows the size of a minimum test set. Column 4 indicates that only the Checker of Burns and Jha is fully code-separating. All others are code-separating with respect to all unidirectional errors. FIG. 7 compares the numbers of gates additionally required for a B 0 (2 k , k + 1) -gerger code checker for the various architectures.
Architektur Anz. zusätzl. Gatter min. Anz . Tests Code-trennendArchitecture no. add. Gate min. Number Code-separating tests
Burns 6(A- - 2) - 24 2k + 16 jaBurns 6 (A - 2) - 24 2k + 16 yes
HA 3,5(/r - l)-17,5 k + 3 unidir. FehlerHA 3.5 (/ r-1) -17.5 k + 3 unidir. error
XOR 4(2* + k - 1) - 38 6 unidir. FehlerXOR 4 (2 * + k - 1) - 38 6 unidir. error
INV -2,5 2 unidir. FehlerINV -2.5 2 unidir. error
Tabelle 7Table 7
Die Figur zeigt, daß die Architektur von S.W. Burns und N. K. Jha, "A Totally Self-Checking Checker for a Parallel Unordered Coding Scheme," lEEE Transactions on Computers, Vol. 43, No. 4, April 1994, pp. 490-495 für k < 5 die geringste Anzahl von Gattern benötigt. Die XOR-basierte Architektur hat nur Vorteile für den Fall k = 2, welche nicht von praktischem Interesse ist. Wenn jedoch in der Ubersetzungsschaltung XOR-Gatter als ein Gatter gezählt werden (z.B. wenn sie mit Pass-Transistor-Logik implementiert sind) dann ist die Anzahl zusätzlicher Gatter nur 2k + k — 39, so daß die XOR-basierte Architektur für k < 5 die beste wird (Kurve "XOR*" ), auch aufgrund der Tatsache daß sie die geringste Anzahl von Codeword-Tests unter allen Architekturen benötigt, welche vom Hardwarebedarf her vorteilhaft für k < 5 sind. Für k > 6 benötigt die Inverter-basierte Architektur die geringste Hardware. Desweiteren benötigt sie für alle k nur 2 Codewort-Tests, und die Eigenschaft, selbsttestend zu sein, ist erreicht fast unabhängig von der Menge der von der überwachten Schaltung bereitgestellten Codewörter. Verglichen mit einem entsprechenden Berger-Code- Checker wird nicht nur eine Leitung für die Prüfbits gespart sondern auch der Hardware- Bedarf ist etwas geringer. Die eingebetteten Biswas-Sengupta-Code-Checker besitzen zusätzlich einen Größenverglei- cher welcher aus höchstens k—l zusätzlichen Gattern besteht und höchstens /c+1 zusätzliche Codewort-Tests benötigt (ausgenommen die XOR-basierte Architektur, welche 2fc / (2/t~1 — 12/ - 2*"1!) + k + 5 Testvektoren erfordert).The figure shows that the architecture of SW Burns and NK Jha, "A Totally Self-Checking Checker for a Parallel Unordered Coding Scheme," IEEE Transactions on Computers, Vol. 4, April 1994, pp. 490-495 for k <5 requires the least number of gates. The XOR-based architecture has only advantages for the case k = 2, which is not of practical interest. However, in the translation circuit, if XOR gates are counted as a gate (eg, if implemented with pass-transistor logic) then the number of additional gates is only 2k + k-39, so the XOR based architecture is k < 5 is the best (curve "XOR *"), also due to the fact that it requires the least number of codeword tests among all architectures which are advantageous for k <5 in terms of hardware requirements. For k> 6, the inverter-based architecture requires the least hardware. Furthermore, it requires only 2 codeword tests for all k, and the property of being self-testing is achieved almost independent of the amount of codewords provided by the monitored circuit. Compared with a corresponding Berger code checker not only a line for the check bits is saved but also the hardware requirement is slightly lower. The embedded Biswas-Sengupta code checkers additionally have a size comparator which consists of at most k-l additional gates and requires at most / c + 1 additional codeword tests (except the XOR-based architecture, which uses 2 fc / (2 / t ~ 1 - 12 / - 2 * "1 !) + k + 5 test vectors required).
Die Anzahlen der Testvektoren, die in Spalte 3 von Tabelle 7 angegeben sind, bedeuten nicht, daß nach Anwendung der Vektoren der entsprechenden Testmenge die entsprechende Checker-Architektur getestet ist. Vielmehr ist es erforderlich, daß diese Vektoren in zufälliger Abfolge wiederholt erscheinen. Eine solche Vektorfolge (die auch zusätzliche Vektoren ent¬ halten kann) ist in der Lage, den entsprechenden Checker zu testen. Ein detaillierter Beweis wird in AP. Stroele und S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 gegeben. Darüberhinaus ist die Größe der Testmenge nicht das Hauptkriterium für die Testbarkeit. Wichtig ist, daß die Ubersetzungsschaltung getestet wird und die Testbedingungen für den Berger-Typ-Code-Checker (keine Eingabeleitung ist kon¬ stant, die Codewörter erscheinen in zufälliger Abfolge und es gibt zwei Codewörter mit kom¬ plementären Prüfsymbolen) erfüllt sind. Die Größe der Codewort-Testmenge unterscheidet sich von Fall zu Fall und hängt davon ab, welche Codewort- Menge die überwachte Schaltung erzeugt. Die Umfange der kleinsten dieser Testmengen sind in Tabelle 7 angegeben.The numbers of test vectors given in column 3 of Table 7 do not mean that after applying the vectors of the corresponding test set, the corresponding Checker architecture is tested. Rather, it is necessary for these vectors to appear repeated in random order. Such a vector sequence (which can also contain additional vectors) is able to test the corresponding checker. A detailed proof will be in AP. Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error-Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 given. Moreover, the size of the test set is not the main testability criterion. It is important that the translation circuit is tested and the test conditions for the Berger-type code checker (no input line is kon¬ constant, the code words appear in random order and there are two codewords with complementary test symbols) are met. The size of the codeword test set differs from case to case and depends on which codeword set generates the monitored circuit. The scopes of the smallest of these test amounts are given in Table 7.
Bisher wurden bei der Testbarkeitsanalyse nur einfache Haftfehler betrachtet. Die hier vorgestellten Checker-Architekturen sind jedoch auch selbsttestend bezüglich einer wesent¬ lich größeren Menge von anderen Fehlern. Die Halbaddierer und XOR-Gatter der Über- setzungsschaltungen erhalten alle Signalkombinationen, so daß sie vollständig getestet wer¬ den und jeder kombinatorische Fehler erkannt wird. In A.P. Stroele und S. Tarnick, "Pro¬ grammable Embedded Self-Testing Checkers for All-Unidirectional Error Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 wurde gezeigt, daß beim betrachteten Berger-Code-Checker in den Addierern für den Informationsteil jeder kombinatorische Fehler in den Teilschaltungen, die Summer und Übertrag berechnen, gete¬ stet wird, und daß in jedem Addierer für den Prüfteil jedes Gatter mit allen möglichen Bitkombinationen getestet wird, mit Ausnahme eines XOR-Gatters. Die gleichen Aussagen treffen auch auf die hier betrachteten Berger-Typ-Code-Checker zu. Somit werden neben allen einfachen Haftfehlern auch die meisten kombinatorischen Fehler innerhalb eines Moduls erkannt, da die meisten Module vollständig getestet werden. Die Testbarkeitsanalyse für Fehler, die sequentielles Verhalten zur Folge haben erfordert im allgemeinen die Kenntnis der speziellen Architektur jedes Moduls, welche jedoch offen gelassen wurde. Unter der Annahme, daß die Codewörter wiederholt in einer zufälligen Abfolge erscheinen, werden für jedes Modul eines Übersetzers auch alle 2- Vektor-Tests erzeugt. Somit werden auch alle se¬ quentiellen Fehler innerhalb eines Moduls erkannt, unabhängig von der Modul-Architektur. Für den Berger-Typ-Code-Checker ist die Beurteilung der Erkennbarkeit sequentieller Fehler jedoch nicht möglich ohne Kenntnis der Modul-Architektur und der von der überwachten Schaltung erzeugten Codewort-Menge.So far, the testability analysis only considered simple trapping errors. However, the checker architectures presented here are also self-testing with respect to a significantly larger amount of other errors. The half adders and XOR gates of the translation circuits receive all the signal combinations so that they are completely tested and any combinatorial error is recognized. In AP Stroele and S. Tarnick, "Programmable Embedded Self-Testing Checkers for All-Unidirectional Error-Detecting Codes," 17th IEEE VLSI Test Symposium, Dana Point, CA, April 1999, pp. 361-369 it has been shown that in the considered Berger code checker in the adder adders, each combinatorial error in the subcircuits calculating buzzer and carry is tested, and that in each adder for the test part, each gate with all possible bit combinations, with the exception of an XOR gate. The same statements apply to the Berger type code checkers considered here. Thus, in addition to all simple sticking faults, most of the combinatorial faults within a module are detected, as most of the modules are fully tested. The testability analysis for errors that result in sequential behavior generally requires knowledge of the specific architecture of each module, which has been left open. Under the Assuming that the codewords appear repeatedly in a random sequence, every 2-vector tests are also generated for each module of a translator. Thus, all se¬ quentiellen errors are detected within a module, regardless of the module architecture. For the Berger type code checker, however, the assessment of the detectability of sequential errors is not possible without knowledge of the module architecture and the codeword set generated by the monitored circuit.
Bis hierher wurden nur die Basis-Architekturen der Checker diskutiert. In diesen Architek¬ turen sind die Signallaufzeiten relativ groß. Dies liegt hauptsächlich an den Addierer-Ketten der Berger-Typ-Code-Checker. Es gibt zwei Ansätze, die Geschwingkeit der Checker zu verbessern. Die erste Möglichkeit besteht darin, die in Figure 2 dargestellte verbundene Mittel u ngsscha Itu ng in zwei unabhängige Teilschaltungen derart aufzuspalten, daß jede der beiden Teilschaltungen höchstens \(n + k) / 2] Volladdierer umfaßt. Diese modifizierte Mittelungsschaltung ähnelt dann der in Figur 1 gezeigten Schaltung, wobei der obere Teil aus nur |~(π + k) / 2] Volladdierern besteht und die übrigen n — \(n + k) / 2] Volladdierer unter Beibehaltung ihrer Verbindungsstruktur zwischen das D-Flip-Flop und den Eingang CQ der unteren Teilschaltung plaziert werden. Auf diese Weise umfaßt der längste Pfad, den Signal CQ zurücklegen muß, höchstens \{n + k) / 2] Volladdierer, statt n bzw. n + k. Eine weitere Beschleunigungs-Möglichkeit besteht darin, die M ittelu ngsscha Itu ng mit einer Struktur ähnlich einem Carry-Select-Addierer zu implementieren. Bei der Teilschaltung für die Prüfsymbole kann dies direkt gemacht werden, da diese ein Addierer ist. Aber eine Modifikation dieser Teilschaltung im allgemeinen nicht notwendig, da k klein im Vergleich zu n ist. Bei der Gewichtsmittelungs-Schaltung ist der einzige Unterschied zu einem Ad¬ dierer der, daß die Rollen des Summenbits und des Übertragsbits vertauscht sind, so daß dies eine Sum-Select- Struktur wird. Diese Modifikation erfordert jedoch mehr Hardware als die Basis-Architektur. Beide Beschleunigungsmöglichkeiten können natürlich miteinander kombiniert werden.So far, only the basic architectures of the checkers have been discussed. In these architectures, the signal propagation times are relatively large. This is mainly due to the adder chains of the Berger type code checker. There are two approaches to improving the speed of the checker. The first possibility consists of splitting the connected average circuit shown in Figure 2 into two independent sub-circuits such that each of the two sub-circuits comprises at most \ (n + k) / 2] full adders. This modified averaging circuit then resembles the circuit shown in FIG. 1, with the upper part consisting of only | ~ (π + k) / 2] full adders and the remaining n - \ (n + k) / 2] full adders are placed while maintaining their connection structure between the D flip-flop and the input C Q of the lower sub-circuit. In this way, the longest path that signal C Q must travel is at most \ {n + k) / 2] full adders, instead of n or n + k. Another way to accelerate is to implement the media scheme with a structure similar to a carry-select adder. This can be done directly with the sub-circuit for the check symbols since this is an adder. But a modification of this subcircuit is generally not necessary since k is small compared to n. In the weight-average circuit, the only difference with an adder is that the roles of the sum bit and the carry bit are reversed, so that this becomes a sum-select structure. However, this modification requires more hardware than the basic architecture. Both acceleration options can of course be combined with each other.
Die Versionen der diskutierten Checker mit einem und mit zwei Ausgängen unterscheiden sich kaum in ihrer Architektur. Die Code-Übersetzungsschaltungen sind für beide Versionen die gleichen. Der Unterschied beruht auf der Architektur der Berger-Typ-Code-Checker welche zwei Ausgänge haben können, die im fehlerfreien Fall ein Two-Rail-Signal ausgeben, oder einen Ausgang, der seinen Wert in jedem Takt ändert. Beide Versionen habe ihre Vorteile. Wenn in einem selbstprüfenden System Checker mit zwei Ausgängen durch Checker mit einem periodischen Ausgang ersetzt werden, dann bilden komplementäre Ausgaben zweier Checker mit einem Ausgang wieder ein Two-Rail-Signal. Auf diese Weise wird die Größe eines globalen Two-Rail-Code-Checkers, der die Signale aller untergeordneten Sub-Checker auswertet, reduziert. Somit führen die Checker-Versionen mit einem Ausgang zu einem geringeren Hardware-Aufwand für das Gesamtsystems. Die Versionen mit zwei Ausgängen hingegen haben eine höhere Operationsgeschwindigkeit, speziell dann, wenn die Mittelungs- schaltung wie im vorangegangenen Absatz beschrieben aufgespalten ist.The versions of the discussed checker with one and two outputs hardly differ in their architecture. The code translation circuits are the same for both versions. The difference is based on the architecture of the Berger type code checker, which can have two outputs that output a two-rail signal in the error-free case, or an output that changes its value every clock. Both versions have their advantages. In a self-checking system, if checkers with two outputs are replaced by checkers with a periodic output, then complementary outputs of two checkers with one output again form a two-rail signal. That way, the size becomes a global two-rail code checker, which evaluates the signals of all subordinate sub-checker reduced. Thus, the Checker versions with an output lead to less hardware overhead for the entire system. The two-output versions, on the other hand, have a higher operating speed, especially if the averaging circuit is split as described in the previous paragraph.
In N. K. Jha, "Design of Sufficiently Strongly Self-Checking Embedded Checkers for Syste- matic and Separable Codes," International Conference on Computer Design, Cambridge, MA, October 1989, pp. 120-123 wurde ein sehr allgemeines Verfahren zum Entwurf einge¬ betteter Checker für systematische Codes vorgeschlagen. Aber dieses Verfahren erfordert die vollständige Kenntnis des von der Schaltung erzeugten Teilcodes, die Checker-Architektur hängt vom Inhalt dieses Teilcodes ab und Wörter, die zum Code, aber nicht zum Teilcode gehören, werden als Fehler angesehen. Verglichen dazu sind die Architekturen der hier disku¬ tierten Checker unabhängig vom Teilcode, die Eigenschaft, selbsttestend zu sein, hängt nur von schwachen Bedingungen an den Teilcode ab, und Codewörter, die nicht zum Teilcode gehören, werden nicht als Fehler signalisiert. Derartige Codewörter können auch gar nicht auftauchen, da ein unidirektionaler Fehler nicht in der Lage ist, ein Codewort (welches zum Teilcode gehört) in ein anderes Codewort (das nicht zum Teilcode gehört) zu verfälschen. Somit sind die vorgestellten Architekturen sehr gut geeignet auch für den Fall, daß der Teilcode nicht vollständig bekannt ist. In NK Jha, "Design of Sufficiently Strongly Self-Checking Embedded Checkers for Sys- tematic and Separable Codes," International Conference on Computer Design, Cambridge, MA, October 1989, p. 120-123, a very general method for designing embedded checkers for systematic codes has been proposed. But this method requires full knowledge of the subcode generated by the circuit, the Checker architecture depends on the content of that subcode, and words belonging to the code but not the subcode are considered errors. Compared to this, the architectures of the checkers discussed here are independent of the subcode, the property of being self-testing depends only on weak conditions on the subcode, and codewords that do not belong to the subcode are not signaled as errors. Such codewords can not even appear because a unidirectional error is not able to falsify a codeword (which belongs to the subcode) into another codeword (which does not belong to the subcode). Thus, the architectures presented are very well suited even in the event that the partial code is not completely known.
BezugszeichenlisteLIST OF REFERENCE NUMBERS
D-FF D-Flip-FlopD-FF D flip-flop
GMS Gewichts-MittelungsschaltungGMS weight averaging circuit
MS MittelungsschaltungMS averaging circuit
HA HalbaddiererHA half adder
VA Volladdierer VA full adder

Claims

Patentansprüche claims
1. Verfahren zur Erkennung unidirektionaler Fehler unter Verwendung eines systema¬ tischen ungeordneten Codes C1 dessen Wörter x einen n-Bit Informationsbit- Vektor x(0 = χWχ(<) ^ xW1 und ein k_B]t Prüfsymbol x<c) = xjc)x{c) . . . X^1 aufweisen, dadurch gekennzeichnet, daß das Gewicht w(x^) = ∑JIQ Xj des Informationsbit- Vektors χ(') mindestens einen vorgebbaren Wert W0 > 0 und/oder höchstens einen vorgebbaren Wert w\ < n an¬ nimmt, d.h. W0 < ι/ι/(χW) < Wi, und1. A method for detecting unidirectional errors using a systematic unordered code C 1 whose words x an n-bit information bit vector x (0 = χ W χ ( < ) ^ x W 1 and a k _ B] t check symbol x < c ) = xj c) x { c) . , , X ^ 1 , characterized in that the weight w (x ^) = ΣJI Q X j of the information bit vector χ (') at least one predetermined value W 0 > 0 and / or at most a predetermined value w \ <n ¬ takes, ie W 0 <ι / ι / (χW) <Wi, and
• für alle Prüfsymbole gilt, daß x^ die binäre Darstellung der um n — Wχ vermin¬ derten Anzahl k0 der Nullen des Informationsbit- Vektors χ(') ist oder• for all check symbols, x ^ is the binary representation of the number k 0 of zeros of the information bit vector χ (') reduced by n - Wχ, or
• für alle Prüfsymbole gilt, daß χ(c) das bitweise Komplement der binären Darstel¬ lung der um W0 verminderten Anzahl k\ = w(χW) der Einsen des Informationsbit- Vektors χ('') ist• For all check symbols it holds that χ ( c ) is the bitwise complement of the binary representation of the number k \ = w (χW) of the ones of the information bit vector χ ('' ) reduced by W 0
und die Fehlererkennung den Vergleich des Gewichtes des Informationsbit- Vektors χ(') mit dem Wert des Prüfsymbols χ(c) umfaßt.and the error detection comprises comparing the weight of the information bit vector χ (') with the value of the check symbol χ ( c ).
2. Verfahren zur Erkennung unidirektionaler Fehler unter Verwendung eines systema¬ tischen ungeordneten Codes C, dessen Wörter x einen n-Bit Informationsbit-Vektor x« = xpχW . . . X^1 und ein Ar-Bit Prüfsymbol χ(« = x^c)x[c) . . . X^1 aufweisen, dadurch gekennzeichnet, daß vorgebbare Werte WQ und wi die Bedingung w\ — W0 < 2k — 2 erfüllen, wobei W0 ein vorgebbares minimales und wi ein vorgebbares maximales Gewicht des Informationsbit- Vektors χ(') bezeichnen und2. A method for detecting unidirectional errors using a systematic unordered code C whose words x an n-bit information bit vector x «= x p χ W. , , X ^ 1 and an Ar-bit check symbol χ («= x ^ c) x [ c) . , , X ^ 1 , characterized in that predetermined values WQ and wi satisfy the condition w \ -W 0 <2 k - 2, where W 0 denotes a predeterminable minimum and wi a specifiable maximum weight of the information bit vector χ (') and
• für alle Prüfsymbole gilt, daß χ(c) die binäre Darstellung der um einen Wert s — n + Wi erhöhten Anzahl k0 der Nullen des Informationsbit- Vektors χ(') ist oder• For all check symbols it holds that χ ( c ) is the binary representation of the number k 0 of the zeros of the information bit vector χ (') increased by a value s - n + Wi or
• für alle Prüfsymbole gilt, daß χ(c) das um 2k — W1 + w0 — s — 1 verminderte bitweise Komplement der binären Darstellung der um w0 verminderten Anzahl Zf1 der Einsen des Informationsbit- Vektors x^ ist,• applies to all check symbols that χ (c) to k 2 - W 1 + w 0 - s - 1 decreased bitwise complement of the binary representation is to w 0 1 Zf reduced number of ones of the vector x ^ Informationsbit-,
wobei der vorgebbare konstante Wert s die Bedingung 0 < s < 2k — Wi + W0 — 1 erfüllt und die Fehlererkennung den Vergleich des Gewichtes des Informationsbit- Vektors x^ mit dem Wert des Prüfsymbols χ(c) umfaßt. wherein the predetermined constant value s satisfies the condition 0 <s <2 k - Wi + W 0 - 1 and the error detection comprises the comparison of the weight of the information bit vector x ^ with the value of the check symbol χ ( c ).
3. Verfahren zur Erkennung unidirektionaler Fehler unter Verwendung eines systema¬ tischen ungeordneten Codes C, dessen Wörter x einen π-Bit Informationsbit- Vektor χ(') = 40Xi0 ■ ■ -4-1 und ein ^r-Bit Prüfsymbol χ(c) = xo {c)x[c) . . . X^1 aufweisen, wobei3. A method for detecting unidirectional errors using a systematic unordered code C whose words x a π-bit information bit vector χ ( ' ) = 4 0 Xi 0 ■ ■ -4- 1 and a ^ r-bit check symbol χ (c) = x o {c) x [ c) . , , X ^ 1 , where
• eine Gewichtsmittelungs-Operation den π-Bit Informationsbit- Vektor χ(') des zu prüfenden Wortes x, einen π-Bit Informationsbit- Vektor y^ und ein Bit CQ auf einen π-Bit Informationsbit- Vektor z^ und ein Bit cfi derart abbildet, daß w(z&) + cψ / 2 = (iv(χ('')) + n/(y (0) + CW) / 2 gilt, wobei der Wert der Ausgabegröße z^ zum Arbeitstakt t — 1 als Eingabewert y^ zum Arbeitstakt £ verwendet wird, d.h. y(;)(f) = z(/)(f - 1), undA weight averaging operation the π bit information bit vector χ ( ' ) of the word x to be tested, a π bit information bit vector y ^ and a bit C Q to a π bit information bit vector z ^ and a bit cfi mapping such that w (z) + cψ / 2 = (iv (χ ( '')) + n / (y (0) + C W) / 2 holds, where the value of the output variable z ^ for operating cycle t - 1 is used as the input value y ^ to the working clock ε, ie y (;) (f) = z (/) (f-1), and
• eine Wertemittelungs-Operation das /c-Bit Prüfsymbol χ(c), ein /c-Bit Prüfsymbol y^ und ein Bit c^ auf ein /c-Bit Prüfsymbol z^ und ein Bit c/χ derart abbildet, daß z(/) + c/i / 2 = (x(c) +y(c) +
Figure imgf000031_0001
gilt, wobei der Wert der Ausgabegröße z^ zum Arbeitstakt t — 1 als Eingabewert y(c) zum Arbeitstakt £ verwendet wird, d.h. y(c)(t) = z(c)(t - l),
A value averaging operation maps the / c-bit check symbol χ (c) , a / c-bit check symbol y ^ and a bit c ^ onto a / c-bit check symbol z ^ and a bit c / χ such that z ( /) + c / i / 2 = (x (c) + y (c) +
Figure imgf000031_0001
the value of the output quantity z 1 at the operating cycle t-1 is used as the input value y (c) for the operating cycle ε, ie y (c) (t) = z (c) (t-1)
wobei y(0) = y^(0)y(c)(0) zum Arbeitstakt 0 (Initialwert) ein Wort des zu prüfenden systematischen ungeordneten Codes C ist, dadurch gekennzeichnet, daß der Wert von c^c) gleich dem Wert von cfi ist, d.h. c^ = cP , und der Wert von CQ zum Arbeitstakt t der invertierte Wert von dι zum Arbeitstakt £ — 1 ist, d.h. cj°(t) = rfι(t-l), wodurch die Folge der Werte ^(f), (h(t+l), d^t+2), d^t+3), . . . im Fall, daß die Folge der Vektoren x(£), x(£ + l), x(£ + 2), x(f + 3), . . . Wörter des Codes C sind, eine periodische Folge 0, 1, 0, 1, . . . ist und ein unidirektionaler Fehler dadurch erkannt wird, daß die Periodizität dieser Folge verletzt ist.where y (0) = y ^ (0) y (c) (0) at operating cycle 0 (initial value) is a word of the systematic random code C to be tested, characterized in that the value of c ^ c) equals the value of cfi, ie c ^ = cP, and the value of C Q at the operating cycle t is the inverted value of dι to the working cycle £ - 1, ie cj ° (t) = rfι (tl), whereby the sequence of values ^ (f ), (h (t + l), d ^ t + 2), d ^ t + 3),. , , in the case that the sequence of vectors x (£), x (£ + 1), x (£ + 2), x (f + 3),. , , Words of the code C are a periodic sequence 0, 1, 0, 1,. , , is and a unidirectional error is detected by the fact that the periodicity of this sequence is violated.
4. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß das Verfahren Verfahrensschritte gemäß Anspruch 3 umfaßt.4. The method according to claim 1 or 2, characterized in that the method comprises method steps according to claim 3.
5. Verfahren zur Erkennung unidirektionaler Fehler in Wörtern x eines systematischen ungeordneten Codes C, wobei die Wörter x in Wörter x' eines vorgebbaren Codes C übersetzt werden, und anschließend x' mit einem Verfahren zur Prüfung des vorgeb¬ baren Codes C geprüft wird, dadurch gekennzeichnet, daß die Übersetzung ausschließlich durch das Prüfsymbol von x gesteuert wird. 5. A method for detecting unidirectional errors in words x of a systematic disordered code C, wherein the words x are translated into words x 'of a predetermined code C, and then x' is checked by a method for testing the specifiable code C, characterized characterized in that the translation is controlled solely by the check symbol of x.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß der vorgebbare Code C ein Code gemäß einem der Ansprüche 1 oder 2 ist.6. The method according to claim 5, characterized in that the predeterminable code C is a code according to one of claims 1 or 2.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß der Code C ein Bose-AUED-Code B*(n, k) ist und die Übersetzung von x nach x' der¬ art erfolgt, daß der zum am meisten signifikanten Prüfbit X^Z1 von x komplementäre Wert X^1 zum Prüfsymbol χ(c) von x hinzuaddiert wird.7. The method according to claim 6, characterized in that the code C is a Bose-AUED code B * (n, k) and the translation of x to x 'der¬ art done that the most significant check bit X ^ Z 1 of x complementary value X ^ 1 is added to the check symbol χ ( c ) of x.
8. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß der Code C ein Bose-AUED-Code B*(n, k) ist und die Übersetzung von x nach x' derart erfolgt, daß alle von dem am meisten signifikanten Prüfbit X^1 verschiedenen Bits von x mit x£_x oder mit dessen Komplement
Figure imgf000032_0001
eration verknüpft werden.
8. The method according to claim 6, characterized in that the code is a Bose-C Aued Code B * (n, k), and the translation from x to x 'is performed so that all of the most significant parity bit X ^ 1 different bits of x with x £ _ x or with its complement
Figure imgf000032_0001
be linked.
9. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß der Code C ein Bose-AUED-Code B*(n, k) ist und die Übersetzung von x nach x' de¬ rart erfolgt, daß der zum am meisten signifikanten Prüfbit x^_x von x komplementäre Wert Xj^1 ein zusätzliches Informationsbit xή bildet.9. The method according to claim 6, characterized in that the code C is a Bose-AUED code B * (n, k) and the translation from x to x 'de¬ rart takes place that the most significant check bit x ^ x of x complementary value Xj ^ 1 forms an additional information bit xή.
10. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß der Code C ein Biswas-Sengupta-AUED-Code
Figure imgf000032_0002
k) ist und die Übersetzung von x nach x' derart erfolgt, daß der Wert 1 zum Prüfsymbol χ(c) von x hinzuaddiert wird, wenn χ(c) < 2/ — 1 ist, anderenfalls χ(c) unverändert bleibt.
10. The method according to claim 6, characterized in that the code C is a Biswas Sengupta AUED code
Figure imgf000032_0002
k) and the translation from x to x 'is such that the value 1 is added to the check symbol χ ( c ) of x when χ ( c ) <2 / -1, otherwise χ ( c ) remains unchanged.
11. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß der Code C ein Biswas-Sengupta-AUED-Code ß* ''(n, k) ist und die Übersetzung von x nach x' derart erfolgt, daß alle Bits derjenigen Wörter x invertiert werden, deren Prüfsymbol χ(c) kleiner als 2/ ist, falls 2/ < 2k~x ist, oder daß alle Bits derjenigen Wörter x invertiert werden, deren Prüfsymbol χ(c) größer oder gleich 2/ ist, falls 2/ > 2*"1 ist. 11. The method according to claim 6, characterized in that the code C is a Biswas Sengupta AUED code ß * '' (n, k) and the translation from x to x 'is such that all bits of those words inverted x whose check symbol χ ( c ) is less than 2 / if 2 / <2 k ~ x or all bits of those words x whose check symbol χ ( c ) is greater than or equal to 2 / if 2 / > 2 * "1 is.
12. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß der Code C ein Biswas-Sengupta-AUED-Code
Figure imgf000033_0001
k) ist und die Übersetzung von x nach x' derart erfolgt, daß ein zusätzliches Informationsbit xn' betrachtet wird, welches den Wert 0 annimmt, falls x(c> > 2/- 1 ist und den Wert I1 falls x(c) < 2/- 1.
12. The method according to claim 6, characterized in that the code C is a Biswas Sengupta AUED code
Figure imgf000033_0001
k) and the translation from x to x 'is such that an additional information bit xn' is considered which takes the value 0 if x (c >> 2 / - 1 and the value I 1 if x (c) <2 / - 1.
13. Anordnung mit mindestens einem Chip und/oder Prozessor, der (die) derart ein¬ gerichtet ist (sind), daß ein Verfahren zur Erkennung unidirektionaler Fehler unter Verwendung eines systematischen ungeordneten Codes C gemäß Anspruch 1, 2 oder 5 durchführbar ist.13. Arrangement with at least one chip and / or processor, which is such that a method for the detection of unidirectional errors using a systematic disordered code C according to claim 1, 2 or 5 can be carried out.
14. Anordnung nach Anspruch 13, dadurch gekennzeichnet, daß14. Arrangement according to claim 13, characterized in that
Chip(s) und/oder Prozessor(en) derart eingerichtet ist (sind), daß ein Verfahren zur Erkennung unidirektionaler Fehler unter Verwendung eines systematischen ungeord¬ neten Codes C gemäß Anspruch 3 durchführbar ist. Chip (s) and / or processor (s) is (are) arranged such that a method for detecting unidirectional errors using a systematic ungeord¬ Neten code C according to claim 3 is feasible.
PCT/EP2005/007430 2004-07-06 2005-07-06 Method and arrangement for detecting unidirectional errors with systematic unordered codes WO2006003023A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP05758001A EP1766787A2 (en) 2004-07-06 2005-07-06 Method and arrangement for detecting unidirectional errors with systematic unordered codes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE200410033584 DE102004033584A1 (en) 2004-07-06 2004-07-06 A method for transforming systematic random codes into Berger-type codes for detecting unidirectional errors
DE102004033584.2 2004-07-06

Publications (2)

Publication Number Publication Date
WO2006003023A2 true WO2006003023A2 (en) 2006-01-12
WO2006003023A3 WO2006003023A3 (en) 2006-04-06

Family

ID=35310883

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/007430 WO2006003023A2 (en) 2004-07-06 2005-07-06 Method and arrangement for detecting unidirectional errors with systematic unordered codes

Country Status (3)

Country Link
EP (1) EP1766787A2 (en)
DE (1) DE102004033584A1 (en)
WO (1) WO2006003023A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013004494A1 (en) 2011-07-05 2013-01-10 Robert Bosch Gmbh Method for securely checking a code
WO2013004489A1 (en) 2011-07-05 2013-01-10 Robert Bosch Gmbh Method for checking an m of n code
US9932622B2 (en) 2011-01-31 2018-04-03 Woundchek Laboratories B.V. Wound prognosis

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1184054B (en) * 1985-03-25 1987-10-22 Cselt Centro Studi Lab Telecom SELF-TESTING MICROPROGRAM CONTROL UNIT WITH IN-LINE DETECTION OF ERRORS IN MOS TECHNOLOGY

Non-Patent Citations (11)

* Cited by examiner, † Cited by third party
Title
ANDERSON, D. A.: "Tech. Report R-527", September 1971, COORDINATED SCIENCE LAB., article "Design of Self-Checking Digital Networks Using Coding Techniques"
ANDERSON, D. A.; METZE, G.: "Design of Totally Self-Checking Check Circuits for m-out-of-n Codes", IEEE TRANS. COMPUTERS, vol. C-22, March 1973 (1973-03-01), pages 263 - 269
BERGER, J. M.: "A Note on Error Detection Codes for Asymmetric Channels", INFORMATION AND CONTROL, vol. 4, March 1961 (1961-03-01), pages 68 - 73
CARTER, W. C.; SCHNEIDER, P. R.: "Design of Dynamically Checked Computers", IFIP 68, vol. 2, August 1968 (1968-08-01), pages 878 - 883
CHA, C. W.: "A Testing Strategy for PLAs", PROC. 15TH DESIGN AUTOMATION CONF., June 1978 (1978-06-01), pages 326 - 334
MAROUF, M. A.; FRIEDMAN, A. D.: "Design of Self-Checking Checkers for Berger Codes", DIGEST OF 1978 INTERNATIONAL SYMP. OF FAULT-TOLERANT COMPUTING, TOLOUSE, FRANCE, June 1978 (1978-06-01), pages 179 - 184
OSTAPKO, D. L.; HONG, S. J.: "Fault Analysis and Test Generation for Programmable Logic Arrays", IEEE TRANS. COMPUTERS, vol. C-28, no. 09, September 1979 (1979-09-01), pages 617 - 627
PUBLIKATION MAK, G.P. ET AL.: "The Design of PLAs with Concurrent Error Detection", PROC. INTERNATIONAL SYMPOSIUM ON FAULT TOLERANT COMPUTING SYSTEMS, 6 December 1982 (1982-12-06), pages 303 - 310
RAO, T.R.N. ET AL.: "Novel Totally Self-Checking Berger Code Cecker Designs Based on Generalized Berger Code Partitioning", IEEE TRANSACTIONS ON CCOMPUTERS, vol. BD. 42, no. 8, 1 August 1993 (1993-08-01), pages 1020 - 1024
SMITH, J. E.; METZE, G.: "Strongly Fault Secure Logic Networks", IEEE TRANS. COMPUTERS, vol. C-27, June 1978 (1978-06-01), pages 491 - 499
WANG, S. L.; AVIZIENIS, A.: "The Design of Totally Self-Checking Circuits Using Programmable Logic Arrays", DIGEST OF THE 9TH INTERNATIONAL SYMP. OF FAULT-TOLERANT COMPUTING, MADISON, WISCONSIN, June 1979 (1979-06-01), pages 173 - 180

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9932622B2 (en) 2011-01-31 2018-04-03 Woundchek Laboratories B.V. Wound prognosis
WO2013004494A1 (en) 2011-07-05 2013-01-10 Robert Bosch Gmbh Method for securely checking a code
DE102011078645A1 (en) 2011-07-05 2013-01-10 Robert Bosch Gmbh Method for safely checking a code
WO2013004489A1 (en) 2011-07-05 2013-01-10 Robert Bosch Gmbh Method for checking an m of n code
DE102011078642A1 (en) 2011-07-05 2013-01-10 Robert Bosch Gmbh Method for checking an m out of n code

Also Published As

Publication number Publication date
EP1766787A2 (en) 2007-03-28
DE102004033584A1 (en) 2006-02-09
WO2006003023A3 (en) 2006-04-06

Similar Documents

Publication Publication Date Title
DE2060643C3 (en) Circuit arrangement for correcting individual errors
DE19903633A1 (en) Boolean SAT solution apparatus with configurable hardware for solving input problems
DE102017103347B4 (en) PROCESSING OF DATA IN MEMORY CELLS OF A MEMORY
DE102006005817B4 (en) An error detection device for an address decoder and an error detection device for an address decoder
DE69520659T2 (en) Programmable multibit register for match and jump operation, and match protection cell
DE2900586C2 (en) Arrangement for decoding code words of variable length
WO2006003023A2 (en) Method and arrangement for detecting unidirectional errors with systematic unordered codes
DE69505554T2 (en) DIGITAL ARITHMETIC CIRCUIT
DE102012102080A1 (en) Fault-tolerant flip-flops
DE68924479T2 (en) Device to determine if data is lost during a move operation.
DE1937259C3 (en) Self-checking fault detection circuit
DE69505038T2 (en) Deadlock detection method in a multiprocessor system with shared memory
DE2913729C2 (en) Circuit arrangement for bit-parallel binary addition or for shifting binary numbers
DE10309255B4 (en) Methods and circuits for detecting unidirectional errors
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
DE69026363T2 (en) Multiposition shifter with parity bit generator
DE102004001651B4 (en) Method and processor for automatic command mode switching between N-bit and 2N-bit commands using a parity check
WO1990002994A1 (en) Circuits for adding or subtracting bcd-coded or dual-coded operands
EP1579230B1 (en) Device and method for creating a signature
EP0193711B1 (en) Monitoring circuit using parity bits for a computer executing arithmetic operations
CH674689A5 (en)
Alam et al. Queueing model of a bi-level Markov service-system and its solution using recursion
DE2419837B2 (en) CIRCUIT ARRANGEMENT FOR ADDRESSING A MICROPROGRAM IN DATA PROCESSING DEVICES AND METHODS FOR EXECUTING JUMP COMMANDS
DE102022000208A1 (en) Method for computer-assisted testing of a requirement specification for a technical process
DE102010062588B4 (en) Secured master-slave flip-flop

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 2005758001

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2005758001

Country of ref document: EP