Intel
®
81341 and 81342—DDR SDRAM Memory Controller
Intel
®
81341 and 81342 I/O Processors
Developer’s Manual
December 2007
604
Order Number: 315037-002US
7.3.3.10 DDR SDRAM Write Cycle
Write transactions require ECC codes to be generated and stored in the SDRAM array
with the data being written. The behavior is different depending on the size of the data
being written.
Section 7.3.4, “DDR Error Correction and Detection” on page 607
explains the ECC algorithm in more detail.
For a page hit, the DMCU does not need to open the page (assert
RAS#
) and avoids
the RAS-to-CAS delay achieving greater performance. For a page hit, the two cycles
required for row activation are saved resulting in lower first word write latency.
1. Each of the DMCU inbound memory transaction ports decodes the address to
determine when the transaction should be claimed.
— When the address falls in the DDR SDRAM address range indicated by the
SDBR, SBSR and S32SR the DMCU claims the transaction and latches the
transaction in the respective memory transaction queue.
2. Once the DMARB selects the highest priority transaction from the memory
transaction queues, it forwards the transaction to the DDR SDRAM control block.
The DDR SDRAM Control Block decodes the address to determine whether or not
any of the open pages are hit.
• The ECC logic generates the ECC code for the data to be written.
A write that misses the open page encounters a miss penalty because the currently
open page needs to be closed before the write can be issued to the new page. Refer to
Section 7.3.3.5, “Page Hit/Miss Determination” on page 589
for the paging algorithm
details. When a page hit occurs, steps 2-3 are skipped by the DMCU.
3. The DDR SDRAM Control Block closes the currently open page by issuing a
precharge
command to the currently open row.
— The DDR SDRAM Control Block waits T
rp
cycles after the precharge before
issuing the
row-activate
command for the new write transaction.
4. The
row-activate
command enables the appropriate row.
— The DDR SDRAM Control Block asserts
RAS#
, de-asserts
WE#
, and drives the
row address on
MA[13:0]
.
5. After T
rcd
cycles in the case of a page miss, the DDR SDRAM Control Block asserts
CAS#
, asserts
WE#
, and places the column address on
MA[13:0]
. This initiates
the burst write cycle. The DDR SDRAM Control Block drives the data to be written
and its ECC code to the DDR SDRAM devices.
• The DDR SDRAM Control Block drives the new data to the corresponding memory
transaction queue each cycle until the transaction is completed with the byte count
expiring, or the transaction is interrupted when preemption conditions are met.
• For each burst issued, the DDR SDRAM Control Block increments the address by
four DWORDs (16 bytes) for 32-bit data bus mode, and by four QWORDs
(32 bytes) for 64-bit data bus mode.
• When ECC is enabled, when the data to write is not aligned on an 8 byte boundary
(4 byte for 32-bit data bus width or 32-bit region), the DDR SDRAM Control Block
performs a read-modify-write of the entire 8 byte aligned quad-word (4 byte
aligned double-word for 32-bit data bus width or 32-bit region) and incorporate the
new data while regenerating ECC.