Intel
®
81341 and 81342—DDR SDRAM Memory Controller
Intel
®
81341 and 81342 I/O Processors
Developer’s Manual
December 2007
614
Order Number: 315037-002US
Referring to
, the syndrome bits are created by XORing the data bits as
indicated by the appropriate row of the G-Matrix in
with the corresponding
ECC bit. For example, the DMCU derives syndrome bit 0 by XORing data bits 0, 4, 8,
12, 16, 20, 25, 29…31, 40…43, 48…56, 58, 59, 62, and ECC bit 0 (physically read on
CB[0]
). The DMCU performs eight such XOR operations (one per syndrome bit).
When decoding the syndrome indicates multi-bit error (see
), the transaction
results in a target-abort for Internal Bus transactions, or a multi-bit error in the BIU for
Core transactions. When an internal bus master detects a target-abort, the master
asserts an interrupt to the core. Write cycles are posted to the memory transaction
queues, and already completed to the initiating master. For write cycles with a multi-bit
error and ECC Error reporting is enabled, the DMCU reports the interrupt in the MCISR
and interrupts the core.
When the syndrome indicates a single-bit error and single-bit error correction is
enabled, the H-Matrix is used to determine the bit in error (see
). For
example, when the syndrome was 1100 0001, the error is with bit 0 of
DQ[63:0]
. The
DMCU inverts bit 0 before driving the data on
AD[63:0]
.
When error reporting is enabled in the ECCR and the DMCU detects a single-bit or
multi-bit error, the DMCU stores the address in ECARx and the syndrome in ELOGx.
Then, the DMCU signals an interrupt to the core. Software decides how to proceed
through an interrupt handler. By registering the address in ECARx, software can
identify the faulty DIMM.
For details about the DMCU error conditions and how the MMR registers are affected,
Section 7.5, “ECC Interrupts/Error Conditions” on page 621
Note:
In 32-bit wide memory and in the 32-bit region in 64-bit wide memory, the DDR
SDRAM Control Block still generates 8-bit wide ECC by zero extending the data to
64-bits. A partial write is a write of less than 4-Bytes.