16.1 Error Checking in the Processor

Data ECC Generation


Each of the 64 data bits and 8 check bits has a unique 8-bit SECDED ECC check code; this check code is generated by taking the even parity of the ECC check code for a selected group of data bits. As Figure 16-1 shows, bit locations are numbered from right to left in ascending order, from data bit 0 (furthest right) to data bit 63 (furthest left). For example, data bit 0, in the far right column of Figure 16-1, has an 8-bit check value of 0001 00112 (0s are represented in this figure by periods, (.), because they are not used in the calculations).

Figure 16-1 also gives values for the 8 check bits, 7:0. For instance, the 8-bit SECDED ECC code for check bit 6 is in column 6, near the right hand edge of Figure 16-1.



Figure 16-1 Check Matrix for Data ECC Code


NOTE: * This row indicates the number of 1s in the generated syndrome for each data bit in error.


As an example of this process, SECDED ECC for Data(63:0) = 0x0000 0000 0000 0001 is generated in the steps below.

1. Find any bits in Data(63:0) having a value of 1.

To determine this, the 16-bit hexadecimal value of 0x0000 0000 0000 0001 must be expanded to its 64-bit binary equivalent before locating the data bit(s) with a value of 1. In this case, the only 1-value in 0x0000 0000 0000 0001 is in column 0.

2. Find the check bits in column 0.

They are 0001 00112.

3. Take even parity of check bits 0001 00112.



4. This even parity value, 0001 00112, is sent out over the bus as ECC check bits, ECC(7:0).

The following example uses data with several 1-value bits: Data(63:0) = 0x0000 0000 0000 0043.

1. Expand the data to its binary equivalent in order to generate the ECC check bits.

0x0000 0000 0000 0043 has 1s in the last byte only. The last byte binary value is: 0x43 = 0100 00112.

column # 7654 3210

0x0043 = 0100 00112

Since only columns 0, 1, and 6 have 1s, they are the only columns that can generate the even parity bits.

2. Using Figure 16-1, generate even parity for the ECC check codes in columns 0, 1, and 6:



3. This parity value, 0011 11002, is sent out over the ECC(7:0) check bus.



Copyright 1996, MIPS Technologies, Inc. -- 21 MAR 96

Generated with CERN WebMaker
statistics