Error correction and error detection related to DRAM chip failures, particularly
adapted server memory subsystems. The application of a code for 128 bit memories
is applied to a 20 bit directory store to improve reliability of the directory
store memory of the computer system. The code uses 4 bit DRAM devices organized
in a code word of 20 data bit words and 12 check bits. These 12 check bits provide
a code capable of 4 bit adjacent error correction within a family (i.e., in a 4
DRAM) and double bit non-adjacent error detection across the entire 20 bit word,
with single bit correction across the word as well. Each device can be though of
as a separate family of bits, errors occurring in more than one family are not
correctable, but may be detected if only one bit in each of two families is in
error. Syndrome generation and regeneration are used together with a specific large
code word. Decoding the syndrome and checking it against the regenerated syndrome
yield data sufficient for providing the features described.