Method for Testing Error Correction Code and Parity Flow Through Buffer
Original Publication Date: 1997-Jun-01
Included in the Prior Art Database: 2005-Apr-01
Bi-modal Error Correction Code (ECC) flow through buffers may be used with special data patterns to test ECC functions by setting errors in memory.
Method for Testing Error Correction Code and Parity Flow
Error Correction Code (ECC) flow through buffers may
be used with special data patterns to test ECC functions by setting
errors in memory.
through" mode...the 8 parity bits associated with the
64 bit cpu data word are stored directly into the 8 bit memory check
word. The 64 cpu data bits are stored directly into the memory word.
"ECC" mode the 64 bit cpu data word is passed through the
ECC check bit generator and the resulting 8 check bits are stored in
the 8 bit memory check word, the 64 data bits are stored directly
into the 64 bit memory word.
test patterns with a special property, writing
the test patterns in "pass through" mode will create "errors" in
memory when read back in ECC mode.
property is that for a given 64 bit data pattern,
the parity bits associated with it are identical to the check bits
resulting from the original 64 bit word with a single bit
program is used to search for patterns with the
PARITY_BYTE = PARITY_GEN_FN( 64_BIT_WORD)
= CHECK_BIT_FN( 64_BIT_WORD EXCLUSIVE-OR ERROR_WORD)
(where ERROR_WORD is a 64 bit word with 1 bit set).
byte is generated automatically by the
microprocessor for write cycles.
necessary, but not sufficient condition, is that the
PARITY_GEN_FN() be a mixed parity function. This is implemented in
the programs as a parity generator which generates odd parity for
bits 0..6 and even parity for bit 7.
microprocessor does not implement a mixed parity
function, the mixed parity function is achieved in the buffer
device. That is, the parity bits 0..6 are passed straight through to
the memory check word in "pass through" mode while the parity bit 7
is inverted before being stored in memory. Conversely, the parity
bit 7 is inverted again when being read from memory.
Sample data meeting criteria for SEC-DED
To read the table, bit# is the single bit error bit.
the next 64 bits are data for the "Pass through" write.
the next byte is the calculated mixed parity.
the next 64 bits are data to be read in the "ECC" read.
the next byte is the check byte associated with the
ECC data which is equivalent to the mixed parity byte.
Bit# , Parity Data, Parity, ECC Data, Check
bit0, 10564327, bcd0bcd0, par=d0, 10564327, bcd0bcd1, ch=d0,
bit1, 5, 33101011, par=79, 5, 33101013, ch=79,
bit2, 3, 33101011, par=79, 3, 33101015, ch=79,
bit3, 13, 33101011, par=69, 13, 33101019, ch=69,
bit4, 17, 3...