United States Patent (151 Patel [45] Nov.21, 1972 3,703,705 [54] MULTI-CHANNEL SHIFT REGISTER [72] Inventor: Arvind M. Patel, Wappingers Falls, Primary Examiner—Charles E. Atkinson Attorney—Hani?n & Jancin and Harold H. Sweeney, Jr. [73] Assignee: International Business Machines Corporation, Armonk, N.Y. [22] Filed: Dec. 31, 1970 [21] Appl. No.: 103,205 [57] ABSTRACT A linear feedback shift register for operating on a plu rality f of parallel inputs according to a generator polynomial to produce encoding and decoding is pro vided having a plurality r of shift register stages X0 . . . [52] [51] US. Cl ................ ..340/l46.l AL, 340/1461 BE Int. Cl ............................................. ..G06f 11/12 [58] Field of Search.340/l46.l, 146.1 AL, 146.l BE; 235/153 [56] X,_, each corresponding to one of the terms in the generator polynomial. A ?rst plurality of modulo 2 ad dition means connect, for modulo 2 addition, each of said f data Inputs Z¢+f_1, ZH.]_2, . . . , 2H,‘, Z‘ of the shift register to the output of an individual one of the References Cited last f register stages X,_,, XHH, . . . , XM according to 111C relationship Z¢+{_1 to X,-._{, Z1444 t0 Xr_f+1, . . . , Z! UNITED STATES PATENTS to X,_,. A second plurality of modulo 2 addition 3,452,328 6/1969 Hsiao et a1 ...... ..340/146.1 AL 3,465,287 9/1969 Kennedy et al...340/146.1 AL 3,601,800 8/1971 Lee ................ ..340/146.1 AL OTHER PUBLICATIONS means are connected to the respective inputs of the ?rst XHH shift register stages. The ?rst feedback con nection from the output of each of said ?rst plurality of modulo 2 addition means in said f shift register stages is connected to each of two preceding second modulo 2 addition means in accordance with the rela Linear-Feedback"S'hiftlRegister Circuits, IEEE Trans: actions of Electronic Computers, Dec. 1964 (EC-l3), pp. 738-740. HSiaOi Single-Channel Error, Correction...,in....en_.£-. Channel System, IEEE Transactions on Computers, Vol. C-l7, NO. 10, October 1968, pp. 935-943. tionship XHH to X1 and X2; XFM to X2 and X3; X,., to XL,“ and XHH. A third modulo 2 addition means connects each output of the ?rst plurality of modulo 2 addition means to the register stages detennined in ac cordance with the non-zero coefficients in the genera tor polynomial. 7 Claims, 2 Drawing Figures 3,703,705 1 2 MULTI-CHANNEL SHIFT REGISTER BACKGROUND OF THE INVENTION a XF-l ) This invention relates to a linear feedback shift re gister and, more particularly, to an improved feedback 5 denotes the partitioning of the state vector X5 shift register for processing bytes of data wherein the Zr: (lax-1, 2144-2, - - - ‘2m, Zr) bits are processed in parallel. It is known that binary data in the form of a message denotes the input data sequence; can be checked after utilization or transmission for er rors. It is also known that a shift register can be utilized is a matrix of (Pf) rows and r columns where the ?rst f to perform the encoding of the transmitted data and the decoding of the received data. The shift register is columns are 0's and the next (r-j) columns are an (r-f) identity matrix; and mechanized in accordance with a particular selected generator polynomial. The generator polynomial deter mines the feedback connections to be made in the shift register so as to provide a division of the incoming bi .G ._.._ .T nary message polynomial by the generator polynomial. D: The result of the division is a remainder which is defined as the checking character. For each different binary message, there is a unique combination of a quo 20 GTHl tient plus a remainder. This remainder, by itself, carries enough error detection information that it alone is where G is the vector: transmitted as the check bits. As can be seen by analo~ gy to decimal division, the remainder varies cyclically 25 [G0, G1! G2’ ' ' ' a Gr-l] over the range of message polynomials. For this reason, these codes are called “cyclic codes.” Because of this which is obtained from the generator polynomial G(x) cyclic property, messages with the same check bit pat = G°$G1x® Ggxz, . . . , Gpc” and T is given by: tern are kept numerically remote from each other. There are well known rules for selecting the generator 30 polynomial to give particular detecting and correcting properties. . In the decoding of the transmitted message, an identical shift register is used. The message is divided by the same generator polynomial to obtain the 35 remainder. If the message has been transmitted cor rectly, the remainder should be the same as the remainder generated in the encoding shift register. US. Pat. No. 3,465,287, issued to Joseph C. Kennedy and John H. Sorg, Jr. on Sept. 2, 1969 discloses a multi 40 channel feedback shift register mechanized so as to en parallel shift register generated in accordance with the above connections is capable of processing f bits in code and decode cyclic codes wherein the data bits are processed in parallel. parallel. It is an object of the present invention to provide an improved multi-channel feedback shift register for processing parallel data. and matrix TI is the 1”‘ power of the matrix T. The invention has the further advantage that the The invention has the further advantage that it is 45 operable upon any detection code available to serial feedback shift register circuits. The foregoing and other objects, features and ad It is another object of the present invention to pro vide a multi~channel shift register for processing paral lel input data wherein the input binary message is ap vantages of the invention will be apparent from the fol lowing more particular description of a preferred em plied at the higher order stages of the feedback shift re bodiment of the invention as illustrated in the accom gister. panying drawings. It is a further object of the present invention to pro vide a multi-channel feedback shift register wherein the ’ FIG. 1 is a schematic diagram of a prior art serial feedback shift register adapted for encoding or decod hardware is simpli?ed by partitioning of the state vec mg. tor of the shift register. 55 FIG. 2 is a schematic diagram of a multi-channel Brie?y, the above objects of this invention are ac feedback shift register for encoding and decoding complished by providing a parallel input feedback shift register for encoding and decoding a binary message parallel input information. wherein a plurality of shift register stages r are con nected in accordance with the expression: 60 The serial shift register circuit shown in FIG. 1 is designed on the bases of the checking or generator polynomial l + x2 -l-x‘5 +x“. The generator polynomial determines the feedback connections 10 that are made from the output 12 of the serial shift register to the in puts of various shift register stages. For example, the 65 output 12 of the shift register is connected to the initial shift register stage x0. It is also connected to an EX denotes the contents of the shift register at time t + f where f is equal to the number of parallel channels: CLUSIVE OR circuit 14 prior to the x2 stage. Likewise, the feedback is connected to an EXCLUSIVE OR cir 3,703,705 3 4 cuit 16 just prior to the x15 shift register stage. These ing shift register represents the syndrome. A non-zero EXCLUSIVE OR circuits have as the other input syndrome indicates an error in the receive data. thereto the input from the immediately preceding shift Assuming a binary message 16 bits in length as fol lows: register stage. It should be noted that the input 18 to the shift register is at the high order end of the shift re gister rather than the low order end as was the case in 1101011110010011 is processed in the shifting register of FIG. 1, the fol the previously mentioned US. Pat. No. 3,465,287. The input 18 is connected to an EXCLUSIVE OR circuit 20 with the output of the last shift register stage of the shift lowing table de?nes the various transition states of the register: TABLE I.—STATE TRANSITION TABLE FOR SERIAL SI-IIF'I‘ REGISTER Contents of Shift Register 1 I 0 1 0 1 I 1 1 O 0 I 0 O l I 16 X0 X1 x1 XII x‘ xi! x6 X7 x8 X11 X10 XII XII XIZ Xll 0 1 0 0 I 1 0 I 0 I I 1 0 0 0 0 I 0 0 I 0 0 I 1 0 1 0 I I I 0 0 0 0 (l I 0 1 1 l 1 0 0 0 I 0 I 1 0 0 l 0 0 1 0 l I 1 I 0 O 0 l 0 1 l 0 0 0 0 0 I 0 1 1 1 1 0 0 0 I 0 1 1 0 O 0 0 0 1 O l I 1 1 0 0 0 I 0 I 1 0 0 0 0 0 l 0 1 l I 1 0 0 0 I 0 I 0 0 0 0 0 0 1 0 I 1 I 1 0 0 0 1 0 0 0 0 0 0 0 0 I 0 1 1 1 1 0 0 O l 0 0 0 0 0 0 0 0 1 0 I 1 1 1 O 0 0 0 0 0 0 0 0 0 0 0 I 0 1 1 I I 0 0 0 0 0 0 0 0 0 0 0 0 1 0 I 1 I l. 0 0 0 O 0 0 0 0 0 0 0 0 1 0 I I l l 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 I I 0 0 0 0 0 0 0 0 0 0 0 O 0 I 0 l 1 I 0 1 0 0 1 I 0 1 0 0 0 I 1 I Check character ________________ . . register which, in this example, is x“ connected as the x15 OQHDF In FIG. 2, there is shown a multi-channel feedback other input thereto. Even though the input 18 to the shift register that processes 8 bits in parallel which shift register is at the high order end, the contents of 30 forms a byte of information. A single shift in this circuit the shift register is still shifted towards the high order with any 8 bit input sequence is equivalent to 8 con end from the low order end. Thus, when the last bit of secutive shifts in the serial circuit of FIG. 1 with the the message sequence is entered, the contents of the same input sequence. The circuit is shown having an shift register represents the check character or input binary sequence of 8 parallel bits Z0, 21, . . . .21. 35 remainder. Actually, the connection of the shift re These inputs are each fed to a respective EXCLUSIVE gister provides a division of the inputted binary OR circuit 22 associated with one of the higher order message by the generator polynomial G(x) ,which, as stages in the shift register. The zo input is fed to the EX previously mentioned, is l + X2 + 1:15 +x“ in the FIG. 1 CLUSIVE OR circuit 22 which has as the other input example. The remainder of this division is the checking 40 thereto the output of the shift register stage x“. The in character which remains in the register. The serial shift puts designated by successively increasing integers are register of FIG. I has 16 stages, designated by the letter X with a superscript number indicating the place of the corresponding term in the generator polynomial. It fed to the shift register stages designated by successive ly decreasing integers. The output 24 of the shift re should be noted that the non-zero terms in the genera 45 gister is also taken from the higher order stages of the register which, in the case being considered, are it8 tor polynomial are represented in the linear feedback through x“. The circuit is designed to utilize the same shift register by register stages having a connection generator polynomial l + x2 + x15 + x“ as was used to from a feedback line while the 0 co-ef?cient terms in provide the division in the serial register of FIG. 1. It is apparent that the various connections and arrangement do not have a direct feedback connection. '50 of the parallel shift register stages cannot be easily The same shift register can be used for decoding. The deduced form the serial shift register arrangement. received message bits are entered into the shift register Table II which follows is the State Transition Table at the input 18 at the high order end similar to the shift . of the Multi~Channel Feedback Shift Register of FIG. 2 when used for encoding. The check character when processing the same binary message, namely: generated in the encoding shift register is also shifted 55 1l0lOll1lOOlOOll into the decoder shift register. When the last bit of the check character is entered, the contents of the decod as was processed through the shift register of FIG. 1 , the polynomial are represented by register stages that TABLE II.——STATE TRANSITION TABLE OF THE MULTI-CHANNEL FEEDBACK SHIFT REGISTER Input Number of the shift 1," 1.1 ‘1.1 7.1 24 Contents of shift register z5 z6 7,1 x" (1 .. 1!... . .. . .. .. Chuck character" .. i' l (I l l U l l U l (I (l l l 1 (I l (I (l 5 3,703,705 6 shown in Table I. The binary message in the parallel shift register is handled in the form of 2 bytes: selected. The generator polynomial or checking polynomial is denoted by: (ll0lOlll)and(lOOlOOll) G(x)=G°+G,x+G,x’+...-l-G,x' (I) The ?rst byte consists of the ?rst half (8) of the bits of 5 The stage vector X, = (x0, x, , . . . , .rM)l denotes the contents of the shift register circuit at time t. The com the 16-bit message. Each successive bit of the byte cor panion matrix of the polynomial G(x) is denoted by T. responding to the z.) . . . z, inputs to the register. The The particular companion matrix T shown here is the companion matrix for the connections given in the seri al shift register previously described. Let Z, denote the data bit entering the serial shift register at time t. Then, result is that the parallel circuit of FIG. 2 produces the same check character as that produced by the circuit of FIG. 1 but 8 times faster. It will be appreciated from this Table that the same check character is arrived at in the shifting operation of the serial shift register is given by the modulo 2 matrix equation: 2 shifts, each shift being caused by the input of an 8-bit byte in parallel as described above. As can be seen in FIG. 2, the shift register stages x° ° . . . x“5 are arranged in two groups 1:“ . . .x" and x8 . . . x“. The outputs of the where G is the vector (G0, G1, G2, . . . ,GH) and T is ?rst group x° . . . x" are fed to the shift register stages given by: that are successively 8 channels away. For example, the output 36 of the x° register stage is fed to an EXCLU SIVE OR circuit 34 preceding the x 8 stages. Likewise, the output 36 of the x1 stage is fed to the EXCLUSIVE 1 0 1 O O 0 O O . . . 1 T: OR circuit 34 preceding the x’ stage. This sequence of connections continues with the output of the x7 stage being connected as an input to the x“ stage of the shift register. The outputs of the second group of shift re 25 gister stages at8 . . . x15 are fed directly to EXCLUSIVE Assuming that 2,2,“, G0 G1 G2. . . . ,ZHH . Gr_1 are the f data bits (a byte) entering successively into the serial shift re OR circuits 22 as one of the inputs along with the gister during the f consecutive shifting operations. The message bit inputs z7 . . . 20, respectively. The output 30 contents of the shift register at the end of f shifts is from each of these EXCLUSIVE OR circuits 22 is also connected via a feedback connection 32 to the suc O 0 30 eeeding two shift register channels. For example, the output 30 of the x8 shift register stage is fed from the denoted by the vector XM. Using equation (2) itera tively, f times, the equation is obtained as follows: X¢+f=XlTf@Z¢GTf_l@Z!+| GTI_Z® . . . Z(_J'_1G EXCLUSIVE OR circuit 22 back to an EXCLUSIVE (4) In this equation TJ is the j‘“ power of the matrix T. Letting Z, denote the input data sequence as follows: OR circuit 34 preceding each of the x‘ and at’ stages. Likewise, the output 30 of the EXCLUSIVE OR circuit 35 Zr: (ZH-f-h ZtH-z, - - - 921-1’ Z1) 22 following the shift register stage I9 is fed back to the EXCLUSIVE OR circuits 34 preceding the x2 and Jr3 Let D denote the following partitioned matrix: adjacent shift register stages. This sequence of connec tions continues with the EXCLUSIVE OR circuit 22 following the 1:“ shift register stage being connected to the EXCLUSIVE OR circuits 34 preceding the x8 and x” stages. The output of the modulo 2 adder or EX CLUSIVE OR circuits 22 are fed into a common EX CLUSIVE OR circuit 26 which has the one output 28. The output connection 28 of the common EXCLU SIVE OR circuit 26 is connected as an input to the x° (5) shift register stage in the ?rst group of shift register stages and is also connected to the EXCLUSIVE OR circuit 34 preceding the x‘ stage. This same output 28 from the common EXCLUSIVE OR circuit 26 is fed as Then, equation (4) can be rewritten as: Xl+!'= X¢Tf@ 21D 50 an input to the EXCLUSIVE OR circuit 34 which precedes the 1:15 stage. These conditions are deter mined by the connection matrix D, where D will be derived hereafter from the generator polynomial. 55 In order to better understand the operation as well as the various connections that must be made in con (6) The parallel circuit realized from equation (6) has the property that with an input byte Z, (f bits in parallel), it changes from state X, to X“, in a single shift. This is the equivalent operation to f shifts of the corresponding serial shift register with the same input data entered serially. The matrix T can be partitioned as follows: structing a particular feedback shift register for encod ing and decoding, the general design thereof will be ex pressed mathematically. Thus, the multi-channel feed 60 (7) back shift register has f channels and is capable of processing f bits in parallel to generate in the encoding mode the check character and to generate, in the decoding mode, the syndrome. It will be appreciated, where I,- is the r x r identity matrix. In general, it can be shown that T’ is equal to the following partitioned that one shift in the parallel circuit is equivalent to f 65 matrix: shifts in the corresponding serial shift register discussed above. The number f is a positive integer, smaller than the degree r of the generator polynomial which is (8) 3,703,705 v.1 8 where D is given by equation (5) above. The D matrix can be obtained by the following method using the ex ample given in the serial shift register discussion above of the shift register to the output of an individual one of the last f register stages: where the generator polynomial l + x’ + x“ + x“ is 5 used. Noting that the vectors G, GT, GT2 , . . . ,GTH according to the relationship: represents the contents of the serial shift register as the vector G is shifted f—l times. Table III lists these vec ZH-I-1 to Xrq, zip-z to arms. - - . .2‘ to XH; tors for the generator polynomial example. The matrices D and T’ can be obtained using Table III and a second plurality of modulo 2 addition means con equations (5) and (8). It should be noted that the im 10 nected to respective inputs of the ?rst x,_,+z shift plementation of the equation (6) produces a parallel register stages; circuit. The matrix T’ contains D as a sub-matrix. it has been found that proper partitioning of the state vector a ?rst feedback connection from the output of each of said ?rst plurality of modulo 2 addition means in results in considerable savings in hardware in the paral 15 said f shift register stages to each of two preceding lel version of the feedback shift register. The state vec tor can be partitioned into two parts: second modulo 2 addition means in accordance with the relationship: TABLE III.—ROWS OF THE MATRIX D Contents of the Serial CRC Register Number of the shift X1 x: x; X4 X5 xi x1 Xs xv r-nwaue l-irtho OQH cov-wl OGMI-C QOob-IH OQMH QHOD HOQ b-‘OQ i I X?) l l l | (9) where: - ,xr-r to xr-I-H and 30 X11 = (x0, X1, - - ' Jr-I-i)! (10) X3= (xv-1. xr-H-b - - - .xmh (11) a third modulo 2 addition means connecting each output of said first plurality of modulo 2 addition Using equations (8) and (9), the equation (6) can be rewritten as follows: XI-i-FXtI (0|Ir—f)$(X¢2G3Z¢) (D) 35 (12) means to the register stages determined in ac cordance with the non-zero coefficients in the generator polynomial. 2. A linear feedback shift register according to claim 1 wherein said second plurality of modulo 2 addition means connected to the respective inputs of the ?rst x,_ 1+2 shift register stages performs modulo 2 addition on the pair of said ?rst feedback connections from ad jacent pairs of said ?rst modulo 2 addition means. 3. A linear feedback shift register according to claim The implementation of equation (12) produces the parallel circuit of FIG. 2. Thus, it should be appreciated that with any polynomial G(x) degree r, parallel feed back shift register can be generated which processes f bits in parallel (f 5 r). It should also be appreciated that the hardware can be minimized by the proper par titioning of the matrices in the state transition equation 1, wherein said third modulo 2 addition means con for the parallel circuit. In the situation where f > r, the 45 nects each output of said ?rst plurality of modulo 2 ad theory can be applied without any change, except that dition means to a fourth modulo 2 addition means in the partitioning will be applied to the D matrix rather the input of the register stages determined in ac than to the T’ matrix. This is observable since D, in this cordance with the non-zero coef?cients in the genera case, contains T’ as one of its partitions. tor polynomial. While the invention has been particularly shown and 4. A linear feedback shift register according to claim described with reference to a preferred embodiment 3, wherein said second plurality of modulo 2 addition thereof, it will be understood by those skilled in the art means connected to the input of the ?rst X,_;+z shift re that various changes in form and detail may be made gister stages has a feedback input from the third modu without departing from the spirit and scope of the in lo 2 addition means determined in accordance with the vention. What is claimed is: 55 non-zero coefficients in the generator polynomial l. A linear feedback shift register for operating on a ' plurality f of parallel inputs according to a generator polynomial to produce a check character comprising: a plurality r of shift register stages X0. . . XM each thereby serving as the modulo 2 adder for the second and fourth modulo 2 addition means. 5. A linear feedback shift register according to claim 1, wherein the shift register output is taken from the output of the last f register stages: corresponding to one of the terms in the generator polynomial; a ?rst plurality of modulo 2 addition means connect ing, for modulo 2 addition, each of said f data bit 65 inputs: 6. A linear feedback shift register according to claim 1 , wherein the remainder in said shift register following a shift register operation on a message input is fed into an identical shift register used for decoding following 9 3,703,705 7.19,. . said message utilization to thereby produce an error responding to the ?rst partition X,‘ of the register; syndrom which should equal 0 if there is no error in the Z, denotes the input data sequence; utilized message. Z1: (ZH'Fh 11+”, - - - ‘2H4’ 2:) 7. A linear feedback shift register according to claim and D denotes the partioned matrix: 1, wherein said plurality r of shift register stages X0. . . 5 )(,_l are connected in accordance with the expression: where: 10 denotes the contents of the shift register at time t+f 15 where G is the vector: where f is equal to the number of parallel channels and f E r; (G0, G1’ G21 ' ' - iGr-l) which is obtained from the generator polynomial: G(x) = GOGBGI x696“: , . . . ,Gr x’ and T and T’ are matrices defined as follows: represents the partioning f the shift register; (0 | I”) 25 is a matrix of (rJ) rows and r columns where the ?rst f columns are 0's and the next (r.f) columns are a (r_,f) identity matrix which de?nes the connections cor _ li__________ T" [606192 . . . 0H] and TI is the 1'" power of the matrix T. it 35 40 45 50 55 65 * =0: 1: *