SINGLE ERROR CORRECTING CODE USING PBCA 1. Introduction ...

3 downloads 0 Views 132KB Size Report
1 - 2, pp. 461 - 471. SINGLE ERROR CORRECTING CODE USING PBCA. SUNG-JIN CHO, HAN-DOO KIM*, YONG-SOO PYO, YONG-BUM PARK, YOON-HEE.
J. Appl. Math. & Computing Vol. 14(2004), No. 1 - 2, pp. 461 - 471

SINGLE ERROR CORRECTING CODE USING PBCA SUNG-JIN CHO, HAN-DOO KIM∗ , YONG-SOO PYO, YONG-BUM PARK, YOON-HEE HWANG, UN-SOOK CHOI AND SEONG-HUN HEO

Abstract. In recent years, large volumes of data are transferred between a computer system and various subsystems through digital logic circuits and interconnected wires. And there always exist potential errors when data are transferred due to electrical noise, device malfunction, or even timing errors. In general, parity checking circuits are usually employed for detection of single-bit errors. However, it is not sufficient to enhance system reliability and availability for efficient error detection. It is necessary to detect and further correct errors up to a certain level within the affordable cost. In this paper, we report a generation of 3-distance code using the characteristic matrix of a PBCA. AMS Mathematics Subject Classification : 94 Key words and phrases : Cellular Automata, error correcting code, characteristic matrix, PBCA.

1. Introduction Error correcting code is widely applied to the design of memory systems, digital data communication, and so on. It was designed by giving a check bit to the original information and corrects errors using this check bit. In this paper, we present methods for a generation of a check bit and a decoding of the received data using the characteristic matrix of cellular automata (CA). Large volumes of data are transferred between various subsystems and a computer system through digital logic circuits and interconnected wires. And there always exist potential errors when data are transferred due to electrical noise, device malfunction, or even timing errors. System reliability largely depends on the error-free transfer of data between a pair of circuit modules. In general, parity checking circuits are usually employed for detection of single-bit errors([1], [5]). Received August 4, 2003. Revised November 8, 2003.

This work was supported by IITA:C1-2002-053-03. should be addressed.

∗ Author

to whom all correspondence

c 2004 Korean Society for Computational & Applied Mathematics and Korean SIGCAM .

461

462

S.J. Cho et. al.

However, in order to enhance system reliability and availability, it is necessary to study more efficient parity checking circuits. CA has simple, regular and modular properties. The purpose of this paper is to devise an efficient encoding and decoding method using the properties of CA. In section 2, we introduce a brief preliminaries of CA. In section 3, we report a generation and decoding method of single error correcting code using PBCA. Finally, the conclusion are noted in section 4.

2. Cellular Automata CA is mathematical idealization of physical systems in which space and time are discrete, and each cell can assume the value 0 or 1. The cells evolve in discrete time steps according to some deterministic rule that depends only on logical neighborhood. In the simplest case, Wolfram([7]) suggested a three-neighborhood one-dimensional CA (1-D CA) with finite cells arranged linearly in one dimension. Each cell is essentially comprised of a memory element and a combinatorial logic that generate the next state of the cell from the present state of its neighboring cells left, right and self. CA that we treat in this paper restricts to three-neighborhood 1-D CA. The following notations have been used to characterize CA : i : The position of an individual cell in the one-dimensional array of cells; t : the time step; qi (t) : the output state of the ith cell at the ith time step; and qi (t + 1) : the output state of the ith cell at the (t + 1)th time step. The next state transition function for a three-neighborhood CA cell can be expressed as follows : qi (t + 1) = f [qi−1 (t), qi (t), qi+1 (t)], where f denotes the local transition function realized with a combinatorial logic. 3 Since f is a Boolean function with three variables, there can be a total of 22 (= 256) distinct functions from all these neighborhood configurations to the next state. Each function is called a rule of the CA. If the next state transition function of a cell is expressed in the form of a truth table, then the decimal equivalent of the output is conventionally called the rule number for the cell. Neighborhood state Next state(rule 102) Next state(rule 150)

111 110 101 100 011 010 001 000 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0

Single error correcting code using PBCA

463

The top row gives all eight possible states of the three neighboring cells at the time instant t. The second and third rows give the corresponding states of the ith cell at time instant t + 1 for two illustrative CA rules. The corresponding combinatorial logic for the above rules can be specified as rule 90 : qi (t + 1) = qi−1 (t) ⊕ qi+1 (t), rule 150 : qi (t + 1) = qi−1 (t) ⊕ qi (t) ⊕ qi+1 (t), where ⊕ denotes XOR. We introduce several definitions used extensively in the characterization of CA. If the rule of a CA cell involves only XOR logic, then it is called a linear rule. Rules involving XNOR logic are referred to as complemented rules. A CA with all the cells having linear rules is called a linear CA, whereas a CA having a combination of XOR and XNOR rules is called an additive CA. The rules with AND-OR logic are nonadditive rules. The state transition function of an n-cell linear CA can be represented in terms of an n × n square matrix referred to as the characteristic matrix of the CA. The rules used in a linear CA are given as follows : rule 60 : qi (t + 1) = qi−1 (t) ⊕ qi (t) rule 90 : qi (t + 1) = qi−1 (t) ⊕ qi+1 (t) rule 102 : qi (t + 1) = qi (t) ⊕ qi+1 (t) rule 150 : qi (t + 1) = qi−1 (t) ⊕ qi (t) ⊕ qi+1 (t) rule 170 : qi (t + 1) = qi+1 (t) rule 204 : qi (t + 1) = qi (t) rule 240 : qi (t + 1) = qi−1 (t) If all the CA cells obey the same rule, then the CA is said to be a uniform CA; otherwise, it is a hybrid CA. On the basis of the properties of state transition graphs, additive CA can be broadly classified into two classes - group CA and nongroup CA. In the state transition graph of a group CA, every state has a unique predecessor. While in the state transition graph of a group CA all states belong to some disjoint set of cycles, the nongroup CA is characterized by the presence of some nonreachable states in the state transition graph. Furthermore, nongroup CA is formed by the tree-structured transition behavior of acyclic state in the state transition graph. Since the leftmost terminal cell and the rightmost terminal cell in CA have only two neighbors, we have to decide conditions of the third neighbor. They are what is called boundary conditions of CA. In general, we use the following three boundary conditions. If the two end cells of a CA are connected to constant logic value 0, then it is said to be a null boundary CA (NBCA); if the extreme cells are adjacent to each other, then it is called a periodic boundary CA (PBCA); on the other hand, if the next state of the leftmost (rightmost) cell depends on itself, its right (left) neighbor, and the one next to (before) it, then the CA is said to be an intermediate boundary CA (IBCA)([2], [3]).

464

S.J. Cho et. al.

In a linear 1-D CA with n cells, we can express a transition function into n × n matrix([4]). 3. Single error correcting code using PBCA 3.1. Encoding First, we investigate a method for generation of bit error correcting code using regular structure of CA. The basic idea is to allow the CA to run autonomously for a few cycles with the k information bits (M ) loaded as its seed. By using the characteristic matrix of the CA, the k check bits (CB) are generated. Then the concatenation of k information bits M and k check bits CB is a codeword of length 2k. The block diagram of the proposed scheme is shown in Figure 1.

Figure 1. Generation of codewords Theorem 3.1. [6] A linear (n, k) code C has minimum weight d if and only if d is the largest number so that every d-1 columns of any parity check matrix H of C are independent.

Theorem 3.2. [1] Let T be the characteristic matrix of a k-cell CA. If the bitwise sum of any i(0 < i < d) distinct columns of T contains at least (d − i) 1’s, then the CA generates a 3-distance code.

Single error correcting code using PBCA

465

Corollary 3.3. A CA generates a (2k, k, 3) code if the characteristic matrix T of it satisfies the following two conditions : (a) Every column of T contains at least two 1’s. (b) Any two distinct columns of T differ in at least one position. Proof. The proof is clear by Theorem 3.2.



Theorem 3.4. A k-cell PBCA C with rule vector < 102, 102, 102, · · · , 102, 150 > generates a (2k, k, 3) code. Proof. The characteristic matrix T of  1 1 0  0 1 1   .. .. ..  T = . . .  0 0 0   0 0 0 1 0 0

the C is given as follows :  0 ··· 0 0 0 0 ··· 0 0 0   .. .. .. ..  . . . .   0 ··· 1 1 0   0 ··· 0 1 1  0 ··· 0 1 1

The first column of T has two 1’s in its first and kth positions. Also the (n − 1)th column of T has three 1’s in its (k − 2)th, (k − 1)th and kth bit positions. The remaining ith column of T has two 1’s in its (i − 1)th and ith bit positions. Thus every column of T contains at least two 1’s and any two distinct columns of T differ in at least one position. Therefore the PBCA C generates (2k, k, 3) code by Corollary 3.3.  Next, we give an example to illustrate the Theorem 3.4. Example 3.5. Let us generate a (16, 8, 3) code using the 8-cell PBCA C with rule vector < 102, 102, 102, 102, 102, 102, 102, 150 >. Then the characteristic matrix T8 of C is given by   1 1 0 0 0 0 0 0  0 1 1 0 0 0 0 0     0 0 1 1 0 0 0 0     0 0 0 1 1 0 0 0   T8 =   0 0 0 0 1 1 0 0     0 0 0 0 0 1 1 0     0 0 0 0 0 0 1 1  1 0 0 0 0 0 1 1 Consider the check bits of codeword for 8 information bits M =(10101010). Since

466

S.J. Cho et. al.



     CB = T [M ] =      

1 0 0 0 0 0 0 1

1 1 0 0 0 0 0 0

0 1 1 0 0 0 0 0

0 0 1 1 0 0 0 0

0 0 0 1 1 0 0 0

0 0 0 0 1 1 0 0

0 0 0 0 0 1 1 1

0 0 0 0 0 0 1 1

           

1 0 1 0 1 0 1 0





          =          

1 1 1 1 1 1 1 0



     ,     

the check bits is (11111110). Thus, the transmitted 16 bit codeword is [M |CB] = (1010101011111110). 3.2. Decoding We consider the problem of decoding to correct the erroneous bit positions from the received information word. The first step in decoding a code is to compute a syndrome. If the received word is given by w = (M 0 |CB 0 ), then the syndrome of w can be expressed as h M0 i , CB 0 where H is the parity check matrix formed by concatenating the compressed matrix T 0 with an identity matrix Ik , that is, S(w) = HwT = H

H = [T |Ik ] Thus

h M0 i h M0 i = [T |Ik ] 0 CB CB 0 0 0 = T [M ] ⊕ Ik [CB ] = T [M 0 ] ⊕ [CB 0 ]

S(w) = H

(i) If the syndrome S(w) of a received word w is 0, then the word is assumed to be error free. (ii) If S(w) 6= 0, then errors are detected. Let Me = {e1 , e2 , · · · , ek } and CBe = {ek+1 , ek+2 , · · · , en } denote the error vectors corresponding to the information and check bits in the received word, respectively. Then the received information word M 0 and the received checkword CB 0 can be represented as follows : M 0 = M ⊕ Me ,

CB 0 = CB ⊕ CBe

M Since [H][ CB ] = O, the syndrome S is given by hM i h M i h M i e e [S] = [H] = [H] ⊕ [H] CB CBe CBe

Single error correcting code using PBCA

467

That is, the relationship between the error vector E and the syndrome S is represented as [H][E] = [S]. To convert the parity check matrix [H](n−k)×n into an n × n nonsingular square matrix [Taug ]n×n , k additional rows are augmented to the [H](n−k)×n . i h [H] (n−k)×n [Taug ] = [Added rows]k×n n×n In this case, we have [Taug ][E] =

h

h M i h S i i [H] e = [Added rows] n×n CBe n×1 Saug n×1

Therefore the error vector E is represented as h S i [E] = [Taug ]−1 Saug In particular, if we put

 T I [Taug ] = I O for the characteristic matrix T , then we can easily find   O I [Taug ]−1 = I T Using the equation [Taug ][E] =



h

S Saug

i

obtained by the n-bit error vector n×1

E, we investigate the relationship between S and Saug . First, if there are no errors in the received word, then (S|Saug ) = O. Next, if one error is in the information part, since CBe = O,  h Me i h T Me i T I [Taug ][E] = = I O O Me Since the syndrome S = T Me is the column of T corresponding to the position of information bit in error, the number of 1’s is greater than or equal to 2. And Saug corresponding to S is error vector in the information part of the received part. Thus the error vector is E = (Saug |O). Lastly, if one error is in the check part, since Me = O,  h O i h CBe i T I [Taug ][E] = = I O CBe O Hence the syndrome S = CBe is the error vector in the received information bits. Thus the number of 1’s in the syndrome vector is 1. So the error vector is E = (O|S). Also, the corresponding vector Saug is O. In this case, since an error is detected in the check part, it can be ignored. The proposed decoding algorithm is as follows :

468

S.J. Cho et. al.

Step 1. Compute the syndrome S = T (M ) ⊕ CB 0 for the received information word. Step 2. If the number of 1’s in S is greater than 2, then E = (Saug |O) ; else (if S = O, then E = O; else E = (O|S) ). Step 3.

C = C 0 ⊕ E, and output the resulting code.

The following is an example of decoding scheme for the given codeword.

Example 3.6. For the generated codeword (1010101011111110) in Example 3.5, suppose that an error is in position 3. That is, we assume that the received codeword is C 0 = (M 0 |CB 0 ) = (1000101011111110). The augmented matrix Taug is given as follows :   1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0  0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0     0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0     0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0     0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0     0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0         0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0   T I 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1   = Taug =   I O  1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0     0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0     0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0     0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0     0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0     0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0  0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 h i h i −1 S S . Here, The error vector E is [E] = [Taug ] Saug Saug denotes the column vector in Taug . Since S = T [M 0 ] ⊕ CB 0 = 10001010 ⊕ 11111110 = 01110100, Saug = 00100000. Furthermore, because the number of 1 in the syndrome S is 2, the error is in the information part and the error vector E is given by E = (Saug |O) = (0010000000000000)

Single error correcting code using PBCA

469

Adding the error vector E on the received codeword C 0 , we can obtain the correct codeword C. That is, C = C0 ⊕ E = (1000101011111110) ⊕ (0010000000000000) = (1010101011111110) A block diagram of the decoding scheme is shown in Figure 2.

Figure 2. Decoding scheme

4. Conclusion In this paper, we have designed a single error correcting code using the characteristic matrix of PBCA with the rule < 102, 102, · · · , 102, 150 > . In the decoding, we constructed an efficient augmented matrix Taug based on algebraic technique. The proposed algorithm is possible to correct errors by the easy and fast analysis of syndrome. This research is helpful for the study of memory system design, digital data communications, etc.

470

S.J. Cho et. al.

References 1. P.P. Chaudhuri, D.R. Chowdhury, S. Nandy and S. Chattopadhyay, Additive Cellular Automata Theory and Applications, 1, IEEE Computer Society Press, California, 1997. 2. S.J. Cho, U.S. Choi and H.D. Kim, Linear nongroup one-dimensional cellular automata characterization on GF(2), J. Korea Multimedia Soc., 4(2001), 91-95. 3. S.J. Cho, H.D. Kim and U.S. Choi, Behavior of Complemented CA Whose Complement Vector is Acyclic in a Linear TPMACA, Mathematical and Computer Modeling, 36(2002), 980-986. 4. S.J. Cho, H.D. Kim and U.S. Choi, Analysis of complemented CA derived from a linear TPMACA, Computers and Mathematics with Applications, 45(2003), 689-698. 5. D.R. Chowdhury, S. Basu, I.S. Gupta, P.P. Chaudhuri, Design of CAECC - Cellular Automata Based Error Correcting Code, IEEE Trans. Computers, 43(1994), 759-764. 6. T.R.N. Rao and E. Fujiwara, Error-Control Coding for Computer Systems, Prentice Hall, Englewood Cliffs, N.J., 1989. 7. S. Wolfram, Statistical Mechanics of Cellular Automata, Rev. Mod. Phys., 55(1983), 601644.

Sung-Jin Cho received his Ph.D at Korea University. Since 1988 he has been at the Pukyong National University. His research interests center on Cellular Automata, Cryptography and Coding Theory. Division of Mathematical Sciences, Pukyong National University, Busan 608-737, Korea e-mail: [email protected] Han-Doo Kim received his Ph.D at Korea University. Since 1989 he has been at the Inje University. His research interests center on Cellular Automata and Cryptography. School of Computer Aided Science, Institute of Basic Sciences, Inje University, KimHae 621-749, Korea e-mail: [email protected] Yong-Soo Pyo received his Ph.D at Keimyung University. Since 1983 he has been at the Pukyong National University. His research interests center on Cellular Automata, Coding Theory and Differential Geometry. Division of Mathematical Sciences, Pukyong National University, Busan 608-737, Korea e-mail: [email protected] Yong-Bum Park received his Ph.D at Dong-A University. Since 1985 he has been at the Pukyong National University. His research interests center on Cellular Automata and Coding Theory. Division of Mathematical Sciences, Pukyong National University, Busan 608-737, Korea e-mail: [email protected] Yoon-Hee Hwang received her BS from Pukyong National University. She is a graduate student of the Master’s course in Pukyong National University. Her research interests center on Cellular Automata and Coding Theory. Department of Applied Mathematics, Graduate School, Pukyong National University, Busan 608-737, Korea e-mail: [email protected]

Single error correcting code using PBCA

471

Un-Sook Choi received her MS from Pukyong National University. She is currently a graduate student of the Doctor’s course in Pukyong National University. Her research interests center on Cellular Automata, Queueing Theory, Cryptography and Coding Theory. Department of Applied Mathematics, Graduate School, Pukyong National University, Busan 608-737, Korea e-mail: [email protected] Seong-Hun Heo received his MS at Inje University. He is currently a graduate student of the Doctor’s course in Pukyong National University. His research interests center on Cellular Automata, Cryptography, Security and Coding Theory. Department of Information Security, Graduate School, Pukyong National University, Busan 608-737, Korea e-mail: [email protected]

Suggest Documents