Intel
®
81341 and 81342—DDR SDRAM Memory Controller
Intel
®
81341 and 81342 I/O Processors
Developer’s Manual
December 2007
622
Order Number: 315037-002US
7.5.1
Single-Bit Error Detection
When enabled, the DMCU interrupts the core when the ECC logic detects a single-bit
error by setting the appropriate bit in the DMCISR register. The core knows the
interrupt was caused by a single-bit error by polling the DELOG0 or DELOG1 register.
The DDR SDRAM Control Block ensures that correct data is returned but the interrupt
handler is responsible for scrubbing the error in the array (refer to
An example flow for a single-bit error with error detection and reporting enabled is:
• A single-bit ECC error is detected on the data bus by the DMCU.
• The DMCU fixes the error prior to returning the data.
• The DMCU clears DELOG0[8] indicating a single-bit error.
• The DMCU records the requester of the transaction that resulted in an error in
DELOG0[23:16]
• The DMCU loads DELOG0[7:0] with the syndrome that indicated the error.
• The DMCU loads DELOG0[31:28] and DEAR0[31:2] with address where the error
occurred. In addition, when an error occurs during an ADMA transfer, the context
address is loaded in DECUAR0 and DECAR0.
• Core needs to scrub error in array, DMCU sets DMCISR[0] to 1 (assuming not
already set).
— Setting any bit in the DMCISR causes an interrupt to the core.
• Software polls the interrupt status register. Bit 0 set to 1 indicates that the first
error has occurred.
• Software polls DELOG0 and DEAR0 and scrubs the error at the location specified by
DEAR0.
• Software writes a 1 to DMCISR[0] thereby clearing it.
When software does not perform error scrubbing, the probability of an unrecoverable
multi-bit error increases for the memory location containing the single-bit error.
DEARx and DELOGx remain registered until software explicitly clears them.
When a second error occurs before software clears the first by resetting DMCISR[0] or
DMCISR[1], the error is recorded in the remaining DELOGx/DEARx register. When none
are available, the error is not logged but the DMCU carries out the action described in
.