arrays," IEEE Trans. Comput., vol. C-27, pp. 325

advertisement
504
IEEE TRANSACTIONS ON COMPUTERS, VOL. C-32, NO. 5, MAY 1983
TABLE II
EXPERIMENTAL SUMMARY
DET.RI1TNISTTC AALYSIS
P
MCODLL- I CHF IC- E F' 1 F'2.
P3
EAN AND STEI. IDEVIATIOIN
MEAN AND SI-D.
0DEVIATI'rN
MEAN AND STO . DEVYIATI'N
MEAN AND STO. DEV I AT I'CN
MEAN 'ND rTDE.
DEVI Ii 'N
DEVIATI 'N
MEAN AND ST.
T
7'FATISTi'
It.L. ANAL Y I
A-,r
F P
I-.=
MCDUL I C'I'
. PE, .--
:3.
4.
5
--0,. 0173704
R NN=
C:. 0)I 6:-:,:5
F6 NFF
N
"00-l CI O 15'25"D F'OR ' NN=
"
C7'
51 6"".: 4 F R NN=
.7 6
1) '.
_O. 00(-)17
'lo-)14
f '.I1 4449 FOR NN=
0. C)"'2' 8
(-1.0- 1 5 7'44 FORF: NN=
C
.
u u-"'41
1 1
0 u 5-6364
FOR NN=
4
6
10
7
MEAN AND STO. L'L/I9TI6'N
0 0
'" " 4'":'
MEAN AND ;TDO I)EVl]
-' ()"'u)4) 6',7C 8:36. 0. 004141:-:1
IA'IN
MEAN AND -Tb I'EYIAEITIO'N
- .
'
i)I '!),::o
- - -2
MEAN AND TO DECI/flTD.E4I/TIC
I'
-I
4
MEAN AND -TD.
TODEVIAT1I-IN
C C030E.4C)'4
''
-C. CnoC1)
MEAN ANED c-TO. 1:'EY IATI'-N
-0. 0)''1
''.'041""-91
STATISTICAL ANALY"-. I'7
kNO D
LI C
MEAN ANED
MEAN AND
MEAN AND
MEAN AND
MEAN AND
O'I'-E F 1, F-'
S'TE.
STE.
STD.
FP3,
DE'VIAT I' IN
EDEVIATIO N
DEVIATION
DEVIATI 'N
,
15.
1 6'.
17.
' ''5'-'
--'),
C) 46
C
1 ?. C)11CC
1
C C'-P:- C) I
- 0.h!01
1
0 o0c009A67
-C.00011/47
C) 000''9'06
ol
014
-c.0
0 00098344'
FO R NN=
FOTIR NN=
OF NNF"'NN'I
4
FOR' NN=
O
FoFR NN=
F FR
F' 'R
FOR
'RD
NN=
NN=
NN=
NN=
STO.
STO. DEVIATION
FOR NN=
MEAN AND STD. DEVIATION
-C 000'1201
C. 00009'o' '5 FOR NN=
STATIST'IC AL ANALY .rI
MCIDLL I OlH 'I' E F I, F- FP 1-'
MEAN AND SJO DEVIATION
U Cu)0.0)'-O96
N
0.O"')0:R2'7559W' F`ORN,N=
aF ERROR VA5IANCE IN RUTOCALE LGOMITTHM VS C'
cM
-
LL:
D
CZ
_
'fl
U:
,
Cc|
4
6
:
10
[3] G. A. Jullien, "Residue number scaling and other operations using ROM
arrays," IEEE Trans. Comput., vol. C-27, pp. 325-337, Apr. 1978.
[4] W. J. Jenkins, "A highly efficient residue-combinatorial architecture
for digital filters," Proc. IEEE (Lett.), vol. 66, pp. 700-702, June
1978.
[5] C. H. Huang and F. J. Taylor, "High speed DFTs using residue numbers," in Proc. 1980 IEEE Int. Conf. Acoust., Speech, Signal Processing, Denver, CO, Apr. 1980, pp. 238-241.
[6] B. D. Tseng, G. A. Jullien, and W. C. Miller, "Implementation of FFT
structures using the residue number system," IEEE Trans. Comput.,
vol. C-28, Nov. 1979.
[7] F. J. Taylor, "Large moduli multipliers," in Proc. 1980 IEEE Int. Conf
Acoust., Speech, Signal Processing, Denver, CO, Apr. 1980.
[8] S. R. Logan, "A square-summing high speed multiplier," Comput.
Design, June 1971.
[9] H. Nussbaumer, "Digital filters using read-only memories," Electron.
Lett., vol. 11, 1976.
[10] S. M. Pollard, "Implementation of number-theoretic transforms,"
Electron. Lett., vol. 12, July 1976.
[l11 E. Johnson, "A digital quarter square multiplier," IEEE Trans. Com-
CC
LU
put., Mar. 1980.
C
P=
Fig. 3.
,
C0
so
=
[12] F. J. Taylor, "Large VLSI moduli multipliers," presented at the IEEE
Circuits and Syst. Conf., Houston, TX, Apr. 1980.
[131
, "An efficient residue to decimal coxverter," IEEE Trans. Circuits Syst., vol. CAS-28, Dec. 1981.
[14]
, "Large moduli multipliers for signal processing," in Proc. IEEE
Circuits and Syst. Conf., July 1981.
IC/Ml
{255,256,257}
Error variance
as a
function of the constant C.
Single Residue Error Correction in Residue Number Systems
VIJAYA RAMACHANDRAN
RNS multiplier can be designed to
10 MHz for VLSI multipliers).
run
at a 28.5 MHz rate (versus
REFERENCES
[1] N. S. Szabo and R. I. Tanaka, Residue Arithmetic and Its Application
to Computer Technology. New York: McGraw-Hill, 1967.
[2] W. K. Jenkins and B. J. Leon, "The use of residue number system in the
design of finite impulse response filters," IEEE Trans. Circuits Syst.,
vol. CAS-24, pp. 191-201, Apr. 1977.
Abstract-We present a new method to correct single errors in an n-residue
number system through the use of r redundant moduli. The method requires
r2n/rl + 2 recombinations of n residues in the worst case. This is of lower
complexity than any other known method.
Index Terms-Residue codes, single error correction.
Manuscript received February 20, 1981; revised May 1, 1982.
The author is with the Department of Electrical Engineering and Computer
Science, Princeton University, Princeton, NJ 08544.
0018-9340/83/0500-0504$01.00
1983 IEEE
505
IEEE TRANSACTIONS ON COMPUTERS, VOL. C-32, NO. 5, MAY 1983
I. INTRODUCTION
The residue number system was introduced more than 20 years ago
by Svoboda and Valach [6] and Garner [4] as an alternate method
for performing arithmetic operations on a computer. This system
consists of n relatively prime moduli mI, m2, * , m.. Any integer
X, 0 < X < M - 1 (M = l'lmi) is represented in this system by
the n-tuple (Xl, x2, , xn) where xi = X(mod mi), i = 1, 2,... , n.
It is trivial to check that, given X = (x1, x2, *, xn), Y = (Y1,Y2, ,
X + Y = (a1, a2, * , a.) and X Y = (b1, b2, *,
Yn), we can obtain
=
where
bn)
ai (xi + y,) (mod mi) and bi = xi y' (mod mi), i = 1,
2, **,m, provided 0 < X + Y, X Y < M- 1. This is often referred
to as carry-free addition and multiplication.
Any number X can be reconstructed from its residue representation
through the use of either the Chinese Remainder Theorem construction or the mixed radix method (Szabo and Tanaka [7]). We
refer to such a reconstruction of an integer from its residues as a
-
"recombination."
II. SINGLE-ERROR CORRECTION SCHEMES
The earliest work on single-error detection and correction in residue
number systems was reported by Watson [8] and Watson and
Hastings [9]. In this method, two redundant moduli m,+1 and mn+2
(satisfying certain constraints) are added to an n-residue number
system, so that any number X is represented as (x I, x2, *- , xn, xn+ I,
xn+2). The method of correction is to compute the residues xn+ I and
Xn+2 of the number with respect to the two redundant moduli by base
extension [7]. The complexity of this operation is basically that of
reconstructing X from the nonredundant residues. The difference
between the two new residues and the corresponding old ones is
computed as A1 and A2. If both A1 and A2 are zero, no error has occurred; if exactly one of the two is nonzero, the corresponding old
residue is replaced by the new one; if both residues are nonzero, then
they are used to address an error-correction table, which has
0(2; (m,- 1)) entries.
Yau and Liu [ 10] use a modification of the above method in which
they replace the table lookup procedure by additional computation.
The authors append r redundant moduli to an n-residue system and
A I, lAm,, Amn-.l,,
**
compute the following sets: IAmn+,...,*,mn+
JAM 2, Am, . Here the elements of each set are computed by base extension, assuming a residue system containing all moduli except those
represented within the set. As in the method of Watson and Hastings
[9], if the first set has all zero entries, then there is no error, and if
exactly one element in the first set is nonzero, then the corresponding
residue is in error. If more than one element in the first set is nonzero,
then an iterative procedure checks the remaining sets to identify the
incorrect residue.
Barsi and Maestrini [1] use the concept of m, projections to obtain
an interesting method to correct single residue digit errors. Given
moduli mI, m2, , Mn, M = Ili=,, and an integerX in the range
[0, M), the integer Xi = X (mod M/mi) is defined as the m, projection
of X. The authors add r redundant moduli, r > 2, to the n-residue
number system, with MR > max (mi mj), i,j = 1, 2, * * *, n where
MR is the product of the redundant moduli. They prove that if a single
residue digit error occurs in the residue representation of any number
X in the above system, there will be only one m, projection of the
number represented by the new residues which lies in the range [0,
M). This number is obviously the number X, which was represented
by the residue digits before the error occurred. The error-correction
then involves finding the mi projection of the number for i
metJhod
= 1, 2, * , n + r until one such projection falls within the range [0,
M). Mandelbaum [5] has a method of similar complexity (n + r recombinations of n + r - 1 residues in the worst case), but his method
involves the isolation of certain high-order bits in the operands, which
requires either additional processing or additional hardware.
Barsi and Maestrini offer two other methods for error correction
2], [3]. The first method (which is also suggested by Mandelbaum
t5]) uses the concept of a product code where each residue is multiplied by a "generator" A, which then forms the code for the number.
=
-
The second method involves the use of a magnitude index along with
the residue representation. Both of these methods require additional
computation at each residue operation, which appears to be an excessive price to pay for the correction of an occasional error.
III. IMPROVED SCHEME FOR SINGLE-ERROR CORRECTION
It is a well-known result that any error in one residue digit can be
detected and corrected with the use of at least two redundant moduli.
in this section, we present a new proof of this result, and use it to derive
an error-correction method which is of lower complexity than any
previously reported in the literature.
Theorem: Let mlI, m2, * , mn, be n relatively prime moduli in increasing order of magnitude for an n-residue number system with M
= I,_ nm. Let mn+ 1, mn+2, * * *, mn+r be r additional relatively prime
moduli, all of which are greater than mn, so that a number x is represented by the (n + r)-tuple (xI, x, * *, xn+r). Then any error introduced in one residue digit xi, i = 1, 2, , n + r can be corrected,
provided that r > 2.
Proof: Let the kth residue be in error.
In the absence of an error, any n of the n + r residues of x can be
used to reconstruct x. The number of ways this can be done is
(n+r)
|n
Since there is an error in the kth residue, the original x can be reconstructed using any n residues from the n + r - I residues xl, x2,
Xk-l, Xk+ I,*.* Xn+r. Hence, the number of different ways we
can reconstruct the correct value of x in the presence of an error in
the kth residue is (+
n
)
Any reconstruction of x using the kth residue results in an incorrect
value. The important result we prove is the following:
Lemma: Of the (
) ways in which we can reconstruct an
n-I
incorrect value using the kth residue (which has become changed by
an error), no two reconstructions produce the same value, call it x',
with0<x' < M- 1.
Before we prove the lemma, we point out that the proof of the
theorem follows immediately from the lemma. For r
!
2, n+r
)
> n + 1 > 2. Hence, at least two sets of n residues will give the correct
value of x (which, of course, will satisfy 0 < x < M - 1), while from
the lemma, we know that no two sets of n residues will give an incorrect value for x, say x', with 0 < x' < M - 1. Hence, the theorem
is proved.
Proof of Lemma: Assume that there do exist two sets of n residues using the kth residue which produce the same value x', with 0
< x' < M - 1. Let us denote these two sets by S1 and S2. Then SI
u S2 contains at least n + 1 residues. Let us choose n + 1 residues
in this set, say,xi I, xi2,. ., xin,1 where k = il for some 1, 1 - 1, 2, * *,
n + 1. Clearly, we havexi, = x' (mod mi,), I = 1, 2, * *, n + 1. Hence,
these n + 1 residues together produce the reconstructed integer x'.
However, these n + 1 residues, before one of them was changed
by an error, represented an integer x in the range 0 S x < M - 1. It
is a well-known result [7] that the introduction of a single error in a
redundant residue system causes the reconstructed integer to lie
outside the original range. Hence, the original assumption that there
do exist two sets of n residues using the kth residue which produce
x', 0 < x' < M - 1 is false, and the lemma is proved.
From the theorem, we have the following result. In the presence
of a single error in an n + r redundant residue number system,
-
1) (n+r
sets of n residues give back the correct result x,
506
IEEE TRANSACTIONS ON COMPUTERS, VOL.
and
2) of the remaining kl
n-I
J sets of n residues, some results will
lie outside the permitted range, but no two results which lie within
the range will have the same value.
We use this result to devise a single-error correction scheme which
requires, in the worst case, r2n/rl + 2 recombinations of n residues.
The idea behind the scheme is to recombine sets of n residues in such
a way that each residue is left out at least twice. Since exactly one
residue is in error, we ensure that the faulty residue is left out twice,
and hence we reconstruct twice the correct value x. The theorem
ensures us that two reconstructions of the same value x, 0 < x < M
- 1 guarantee that x is the correct value.
We also prove that the result is optimal in the following sense.
Any single-error correction scheme that attempts to correct by the
method of the previous paragraph requires at least (2n/r) + 2 recombinations of n residues.
Proof: At each recombination, we choose n residues from n +
r residues. Hence, at each recombination, we leave out r residues.
After s recombinations, we leave out sr residues. Since any residue
may be in error, we must leave out a total of at least 2(n + r) residues
to guarantee that each residue is left out twice. Hence, we require sr
. 2(n + r), i.e., the number of recombinations s > (2n/r) + 2.
IV. ERROR-CORRECTION SCHEME
Assume that r divides n.
In the first recombination, we choose the n residues rI, r2
, rn
and recombine to obtain x1.
In the second recombination, we replace r1 by rn+X recombine to
obtain x2. We then restore the original n residues r,, r2, , rn.
In the third recombination, we replace r2 by rn+2, r3 by rn+3, * ,
rr by rn+r, and recombine to obtain X3. We then restore the original
residues.
At this stage, each redundant residue rn+ , rn+2, , rn+r has been
left out twice, and some of the other residues have been left out once.
The remaining recombinations are made so that the residues rI, r2,
* , rn are each left out twice, too. This is accomplished as follows.
In the fourth recombination, we replace rr+ by rn+ 1,rr+2 by rn+2,
* * , r2r by rn+r to obtain X4. We then restore the original residues.
In the fifth recombination, we replace r2r+l by rn+ 1, r2r+2 by rn+2,
* r3r by rn+r to obtain X5. We then restore the original residues.
We proceed in this manner until the (n/r) + 2nd recombination
in which we replace rn -r+ 1 by rn+ 1, rn.r+2 by r+2,2* , rn by rn+r to
obtain x(nfr)+2. We then restore the original n residues. At this stage,
each of the residues r1, r2, * * *, rn has been left out exactly once. In
the next n/r recombinations, we will leave out each of rl, r2, .., rn
another time, taking care, however, that we never choose the same
set of n residues twice in our (2n/r) + 2 trials.
In the (n/r) + 3rd recombination, we replace r2 by rn+ 1, r3 by rn+2,
*, rr+I by rn+r to obtain X(n/r)+3. We then restore the original
residues.
In the (n/r) + 4th recombination, we replace rr+2 by rn+ , rr+3 by
rn+2, *. , r2r+ by rn+r to obtain X(nfr)+4. We then restore the original
residues.
We proceed in this manner until the last recombination in which
we replace rn_r+2 by rn+ , rn .r+3 by rn+2, * *, rn by rn+r- 1, and rI
by rn+r to obtain X(2nfr)+2. It is clear that at this stage, every residue
has been left out twice.
At each recombination, we check if the reconstructed integer xi
lies in the range 0 < xi < M - 1. If xi does not lie in the range, then
we discard it. If it does lie in the range, we check if it equals any other
reconstructed xj, which was not discarded. The procedure can be
stopped any time a match is obtained, at which point xi gives the
correct value of x. It is clear that, in the presence of at most one error,
a match will have to be obtained after the (2n/r) + 2 steps outlined
above.
The above method is designed for the case when r divides n. In it,
we made a shift in the residues to be replaced in the (n/r) + 3rd re-
C-32, NO. 5, MAY 1983
combination so that we do not choose the same n residues twice in the
(2n/r) + 2 trials. When r does not divide n, we can simply cycle
around the n residues to correct a single error without taking this
precaution. The resulting procedure requires at most r2n/rl + 2
recombinations of n residues to correct a single error. We illustrate
this by two examples, one for the case when r divides n, and the other
for the case when r does not divide n.
Example 1:
6, r
=3
+2
6.
l= (r, r2, r3, r4, r5, r6)
(r7, r2, r3, r4, r5, r6)
X3 = (r7, r2, r9, r4, r5, r6)
X4 = (ri, r2, r3, r7, r8, r9)
X5 = (ri, r7, r8, r9, r5, r6)
X=
X6
=
(rs, r2, r3, r4, r7, r8).
Example 2:
n
=7, r = 3,
+ 2 = 7.
x= (ri, r2, r3, r4, r5, r6, r7)
X2= (r8, r2, r3, r4, r5, r6, r7)
X3= (r1, rg, rio, r4, r5, r6, r7)
X4 = (rj, r2, r3, r8, r9, r1o, r7)
(rg, rIo, r3, r4, r5, r6, r8)
X6 = (rI, r2, r8, rg, r0o, r6, r7)
X5 =
X7= (rj, r2, r3, r4, r5, r8, r9).
Note, also, that for r > 2n, three recombinations are sufficient to
obtain the correct answer.
V. COMPARISON TO OTHER METHODS
We established in the previous section that the worst case number
of recombinations of n residues required to correct a single error using
the method presented there is r2n/rl + 2. This is a clear improvement
over other known methods. It is not possible to make a direct comparison of our method to the method of Watson and Hastings [9] since
that method trades computation with a very large storage space for
the error-correction table. However, the method of Yau and Liu [10],
which is basically Watson's method with the error-correction table
replaced by computation, requires in the worst case rn/21 + 1 recombinations, each of at least n moduli. On the other hand, the
methods of Mandelbaum [5] and Barsi and Maestrini [1] require n
+ r recombinations of n + r - 1 residues in the worst case. As we
mentioned earlier, other methods require additional processing of
residues at each residue operation, and the total increase in computation time introduced by such correction schemes would depend on
the frequency of errors.
Of the methods mentioned above, the one proposed by Yau and
Liu [ 10] has the lowest complexity. From the results of the previous
section, we see that, for n > 4 and for sufficiently large r, our method
requires a fewer number of recombinations than theirs. Further, each
recombination in our method uses exactly n residues, while their
method uses n + r - 2 residues in all but one of the rn/21 + 1 recombinations. Also, each recombination in their method is accompanied by at least two base extensions, which require additional
computation. Our method requires exactly r2n/rl + 1 recombinations of n moduli, along with a few comparisons.
To summarize, we have presented in this paper a new method to
correct single errors in residue number systems. This method is of
507
IEEE TRANSACTIONS ON COMPUTERS, VOL. C-32, NO. 5, MAY 1983
lower complexity than any known method presented so far, and it will
find use in computer organizations which use the residue system.
ACKNOWLEDGMENT
This work has benefited from discussions with Prof. B. Arden and
Prof. R. Lipton. I would like to thank them for their help and for their
comments on the first version of this paper.
REFERENCES
[1] F. Barsi and P. Maestrini, "Error correcting properties of redundant
residue number systems," IEEE Trans. Comput., vol. C-22, pp.
307-315, Mar. 1973.
, "Error detection and correction by product codes in residue
[2]
number systems," IEEE Trans. Comput., vol. C-23, pp.915-924, Sept.
1974.
[3]
, "Arithmetic codes in residue number systems with magnitude
index," IEEE Trans. Comput., vol. C-27, pp. 1185-1188, Dec. 1978.
[4] H. L. Garner, "The residue number system," IRE Trans. Electron.
Comput., vol. EC-8, pp. 140-147, June 1959.
[5] D. Mandelbaum, "Error correction in residue arithmetic," IEEE Trans.
Comput., vol. C-21, pp. 538-545, June 1972.
[6] A. Svoboda and M. Valach, "Operatorove obvody" (operational circuits), in Stroje na Zpracovani Informaci, Sbornik III, Nakl. CSAV,
Praha, 1955. Translation: Liaison Office, Wright-Patterson AFB,
OH.
[7] N. S. Szabo and R. I. Tanaka, Residue Arithmetic and Its Application
to Computer Technology. New York: McGraw-Hill, 1967.
[81 R. W. Watson, "Error detection and correction and other residue interacting operations in a redundant residue number system," Ph.D.
dissertation, Univ. California, Berkeley, 1965.
[9] R. W. Watson and C. W. Hastings, "Self-checked computation using
residue arithmetic," Proc. IEEE, vol. 54, pp. 1920-1931, Dec. 1966.
[10] S. S.-S. Yau and Y.-C. Liu, "Error correction in redundant residue
number systems," IEEE Trans. Comput., vol. C-22, pp. 5-11, Jan.
1973.
erant computers. Two forms of TSC checkers for m/n codes have been
suggested so far. The first form of an m/n code checker [2] is composed of three TSC subcheckers, namely, an m/n to 1/(n/m) code
translator, a 1 /(n/m) to a k/2k code translator, and finally, a k/2k
TSC checker. An m/n code checker of the second form [5] consists
of an m/n to 1/z (z = 4, 5, 6) code translator, a 1/z to 2/4 code
translator, and finally, a 2/4 to 1/2 code translator. z = 4 for m/(2m
+ 1) codes, z = 5 for 2/n codes, and z = 6 for any other m/n code. It
has been shown in [5] that an m/n TSC checker of the second form
requires less hardware and a smaller test set. A saving in logic complexity and testing complexity of 70-97 percent is reported in [5] in
all cases except for n = 2m and m = 1.
This note presents a new design method of three-level TSC's for
m/(2m ± 1) codes. Reddy in [4] has presented two-level TSC's for
the same class of codes. A two-level TSC according to [4] is composed
of an mr/(2m ± 1) to 1/(2m i I /m) code translator, realized by one
level of AND gates, and a 1/(2m ± 1 /m) to 1/2 code translator realized by two OR gates only. Our three-level TSC checker is composed
of an mr/(2m + 1) to 1/z code translator realized by two levels of
gates where z is a function of m given by (4) below, and a 1/z to 1/2
code translator realized by two OR gates also as in (4). It is shown that
our three-level TSC's require less hardware and a smaller test set
compared to those in [4] at the expense of an extra gate level. Also,
our checkers compare very favorably to those in [5], although the
latter require seven levels of gates. Actually, for m = 3, 4, our
three-level TSC's are the best known.
In the following, we present the design procedure for m/(2m + 1)
codes. The dual of a checker of mr/(2m - 1) codes will be a checker
for m/(2m + 1) codes.
II. DESIGN PROCEDURE
The key factor of our design procedure for a three-level m/(2m
-1) TSC checker is the partitioning of the 2m - 1 input variables
into m blocks Al, A2, * *, A, such that the blocks Al,A2, * Amcontain two variables each, and the block Am has one variable. Let
ni, i = 1, 2, , m denote the number of variables in block Ai. Obviously, n I + n2 + * * + nm = 2m - 1. Let, also, ki denote the number
of variables in Ai that are equal to 1. Then kI + k2 + + km = m
for all input codewords from a m/(2m - 1) code. The input codewords are partitioned into classes, each class denoted by (k1, k2, * ,
ki ) and containing all input codewords that have ki l's in class Ai,
i= 1,2,- -,m.
We define, next, the majority functions T(ki > ji),ji < ni to have
the value of I if and only if the condition inside the parentheses is true.
Obviously, the functions T(ki > 1), i = 1, 2, , m - 1 are implemented each by a two-input OR gate and the T(ki > 2)functions i
= 1, 2, , m- 1 by two-input AND gates.
We define also the product functions PJli2. im ji < n, i = 1, 2,
* , m as
(1)
piJ02*jm = T(kI > ji)T(k2 > i2) ... T(km > im).
Let B be the set of all product functions that correspond to the classes
of all input codewords, i.e.,
B=IPjlj2...jimliI + j2 + *+ jm = m}
(2)
and let $B1, BIuI be a proper partition on B, called product separation
partition. The formation of this partition is the most important phase
of our design procedure and is covered in the next section. It is the
proper partitioning of the product functions into the two blocks B1
and B11 that ensures totally self-checking capabilities.
Lastly, we define the two outputfunctionsf and g on B1 and BlI,
respectively, as follows:
f EP1lj2.m
-
-
Fast and Efficient Totally Self-Checking Checkers for m-out-of(2m ± 1) Codes
C. HALATSIS, N. GAITANIS, AND M. SIGALA
Abstract-This note is concerned with the design of fast totally self-checking
checkers for m-out-of-(2m ± 1) codes. The new method uses only three levels
of gates, and is based on the partitioning of the input lines into m blocks of two
lines per block except for the last block. A first level of two-input AND and OR
gates realizes the majority functions T(k; > 1) and T(k; > 2). These are
combined through AND gates of a second level into the so-called product
functions Pj,j.. b one for each class of input codewords that have jl, j2.
jm l's in the corresponding blocks of the input lines. Finally, two OR gates (third
level) partition the product functions into two. The property of totally selfchecking operation is achieved through the proper partitioning of the product
functions into two classes. This note presents a systematic method of such
partitioning. Also, the note determines the cost of these checkers and compares
them to previous designs.
...
Index Terms-m-out-of-n codes, totally self-checking checkers.
I. INTRODUCTION
The problem of designing totally self-checking (TCS) checkers for
mr-out-of-n (m/n) codes has received considerable attention [1] - [5]
because of the importance of such circuits in the design of fault-tolManuscript received January 1, 1981; revised August 2, 1982.
The authors are with the Digital Systems Laboratory, Computer Center,
NRC "Democritos," Aghia Paraskevi Attikis, Athens, Greece.
0018-9340/83/0500-0507$01.00 ©0 1983 IEEE
-
B1
BIl
(3)
Download