![Intel IXP45X Скачать руководство пользователя страница 624](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092624.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors—Memory Controller
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
Developer’s Manual
August 2006
624
Order Number: 306262-004US
Referring to
, the syndrome bits are created by XORing the data bits as
indicated by the appropriate row of the G-Matrix in
ECC bit. For example, the MCU 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
DDRI_CB[7:0]). The MCU performs eight such XOR operations (one per syndrome bit).
If decoding the syndrome indicates multi-bit error (see
), the transaction
results in a target-error for Internal Bus transactions, or a multi-bit error in the BIU for
Core transactions. If 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 with ECC Error reporting enabled, the MCU reports the interrupt in the MCISR and
interrupts the core.
If 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, if the
syndrome was 1100 0001, the error is with bit 0 of DDRI_DQ[31:0]. The MCU inverts
bit 0 before driving the data on DATA[63:0].
If error reporting is enabled in the ECCR and the MCU detects a single-bit or multi-bit
error, the MCU stores the address in ECARx and the syndrome in ELOGx. Then, the
MCU 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 MCU error conditions and how the MMR registers are affected,
“Interrupts/Error Conditions” on page 627
.
Note:
In 32-bit wide memory, the DDRI SDRAM Control Block will still generate 8-bit wide
ECC by zero-extending the data to 64-bits. A partial write is a write of less than
4 Bytes.
11.2.3.4
Scrubbing
Fixing the data error in memory is called scrubbing. The IXP45X/IXP46X network
processors rely on Intel XScale processor software to perform the scrubbing. When the
MCU detects an error during a read, the MCU logs the address where the error occurred
and interrupts the Intel XScale processor. The Intel XScale processor decides how to fix
the error through an interrupt handler. Software could decide to perform the scrubbing
on:
• the data location that failed
• the entire row of the data that failed
• the entire memory
For single-bit errors reported on a write transaction scrubbing is not required, as the
MCU will have scrubbed the data during the RMW operation. For single-bit errors, the
error is fixed by reading the location that failed and writing back the data after the ECC
hardware fixed it. The scrubbing routine should read either DWORD of the 64-bit
memory space (QWORD aligned location) using an
ld
instruction and write the data
back with an
st
instruction. Software should isolate activity on the memory location to
guarantee atomicity.
Note:
If the scrubbing routine reads the failed location in order to fix the single-bit error, a
second error will be reported. Therefore, software should disable single-bit ECC
reporting during the scrubbing routine. Also, the scrubbing routine should be aware
that partial writes will automatically scrub the QWORD aligned location if it contains a
single-bit ECC error.
Multi-bit errors cannot be fixed by the H-Matrix.