Intel
®
81341 and 81342 I/O Processors
December 2007
Developer’s Manual
Order Number: 315037-002US
607
DDR SDRAM Memory Controller—Intel
®
81341 and 81342
7.3.4
DDR Error Correction and Detection
The DMCU is capable of correcting any single bit errors and detecting any double bit
errors in the 81341 and 81342 DDR SDRAM memory subsystem. ECC enhances the
reliability of a memory subsystem by correcting single bit errors caused by electrical
noise or occasional alpha particle hits on the DDR SDRAM devices.
Similar to parity, which simply detects single bit errors, error correction requires an
additional 8-bit code word for the 64-bit (32-bit) datum. This means that a memory
must have the additional 8-bit error correction code (
CB[7:0]
) per 64-bit (32-bit)
datum (
DQ[63:0]
) resulting in a 72-bit (40-bit) wide memory subsystem. During DDR
SDRAM read cycles, the DDR SDRAM Control Block detects single bit errors and
corrects the data prior to returning the data to the respective memory transaction
queue. DDR SDRAM write cycles generate the ECC and sends it with the data to the
memories.
In the 32-bit region with 64-bit memory, or with 32-bit wide memory, the 81341 and
81342 zeros extend the 32-bit datum to a 64-bit datum in order to generate, check and
correct ECC. This means that a 32-bit datum memory with ECC results in a 40-bit wide
memory since an 8-bit error correction code is still required.
Scrubbing is the process of correcting an error in the memory array. The chance of an
unrecoverable multi-bit error increases when the software does not correct a single-bit
error in the array. For the 81341 and 81342, scrubbing is handled by software. When
error reporting is enabled, the DMCU logs the error type in ELOG0 or ELOG1 and the
address in ECAR0 or ECAR1 when an error occurs.