Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Method for Testing Error Correction Code and Parity Flow Through Buffer

IP.com Disclosure Number: IPCOM000118767D
Original Publication Date: 1997-Jun-01
Included in the Prior Art Database: 2005-Apr-01
Document File: 4 page(s) / 110K

Publishing Venue

IBM

Related People

Dixon, RC: AUTHOR

Abstract

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.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 41% of the total text.

Method for Testing Error Correction Code and Parity Flow Through
Buffer

      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.

      In "pass 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.

      In "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.

      By generating 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.

      A necessary 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
complemented.

      A computer program is used to search for patterns with the
necessary condition.
  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).

      The parity byte is generated automatically by the
microprocessor for write cycles.

      A second 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.

      Though the 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...