
Functional Description
272 Datasheet
Every data bit appears in either exactly 3 or exactly 5 check bit and syndrome bit
equations. Every check bit appears en exactly 1 syndrome bit equation. This leads to
six cases.
1. If the data comes back exactly as it was written, then the calculated check byte will
match the stored check byte, and the syndrome will be all 0s.
2. If exactly one check bit is flipped between the time it is written and the time it is
read back, then the syndrome will contain exactly one 1. Since the check byte is
not returned to the requesting agent, no action is necessary.
3. If exactly one data bit is flipped between the time it is written and the time it is
read back, then the syndrome will contain either exactly three 1s or exactly five 1s.
The syndrome can then be decoded as a pointer to the bit that flipped using the
same check byte generation table in reverse. If the syndrome contains 1s that
match the locations of all three or all five Xs in a given row, then that is the bit
which should be flipped before the QWord is returned to the requesting agent.
4. If exactly two bits flipped, there will be a nonzero even number of 1s in the
syndrome. It cannot be determined which bits flipped based on that syndrome, but
a multi-bit error will be recorded along with the address at which the error
occurred. In addition, bits 0 and 31 of each DWord are forced to 0 in the returned
data in case this read was a TLB fetch. This ensures that the table entry is invalid,
such that additional data corruption can be avoided.
5. If an even number of bits greater than two flipped, there will be an even number of
1s in the syndrome, but that even number could be zero, such that detection of this
scenario is not ensured. If the syndrome contains a nonzero number of 1s, it
cannot be distinguished from scenario 4 above.
6. It is possible for an odd number of bits greater than one to flip between the time
the data is written and the time it is read back. This scenario will always be
detected, but the resulting syndrome could appear to be a multi-bit error treated
similarly to scenario 4, or it could be misinterpreted as a single bit error
indistinguishable from scenario 2. The data cannot be corrected, though if it
appears to be a single-bit error, the algorithm will flip the bit that corresponds to
the syndrome generated, thus an additional bit may be corrupted.
Fortunately, soft error rates are low enough that it is extremely unlikely that there
would be more than one soft error in the same QWord, so scenarios 5 and 6 are very
rare.
CB5 (63) X X X X X
CB6 (CB7) X
CB7 (CB0) X
Table 22. Syndrome Bit Values
Syndrome Bit >
Data Bit
76543210