DDR-266 RAM is sometimes also called PC-2100 RAM, since on a 64 bit or 8 byte system (memory) bus, which is typical for PCs, DDR-266 RAM has a bandwidth of 8 x 266 = 2128 or 2100 MB/s. (Note the system bus is also called the FSB or Front Side Bus.)
DDR RAM grew out of the original SDRAM (synchronous DRAM), later called PC-66 RAM. Synchronous, here, means clocked. Under the impetus of Intel, this was replaced by PC-100 and later PC-133 RAM (the same technology, but distinguished by higher clock rates and more detailed specifications for interoperation). As of this writing, DDR II RAM has been standardized. It is the third generation in this series: SDRAM/DDR RAM/DDR II RAM. DDR II RAM will have an effective clock rate of 400 MHz at introduction.
DDR RAM is organized in rows or memory pages. The memory pages are divided into four sections, called banks. Each bank has a kind of register associated with it. In order to address a row of DDR RAM (a memory page), one must specify on the pins both a memory bank and a row address. A memory bank can be active, in which case there is an open page associated with the register of the memory bank.
Note that the address lines on the address bus of the CPU will be "wired" to the row address, memory bank, column address and chip select. The address lines can be wired arbitrarily, so that a section of RAM associated with a memory bank may appear to the CPU either to be contiguous or interleaved with other memory banks. Since reading from the same memory bank can be faster, memory banks are generally wired to be contiguous, although it is possible to wire the addresses of different chips as interleaved with each other.
In this example, we assume a 256 Mb chip organized as 32 Meg x 8 (8 data pins), or 8 Meg x 8 data pins x 4 banks. A set of four data bits is specified by using pins A0-A12 for the row address, pins BA0-BA1 for the bank, and pins A0-A9 for the column address. Hence, there are 8K rows, 4 banks, and 1K columns, or 8Kx4x1K=32 Meg of sets of 8 data bits. The row address is specified in a first phase, and the bank and column address is specified in a second phase.
For detailed information, consult a vendor's datasheets, such as the Micron 256 Mb (Megabit) DDR RAM chip from their RAM web page.
Reads and writes occur in bursts. The burst lengths are 2, 4, or 8. Bursts of four are the most common, and will be the standard in DRR II. Note that the Intel Pentiums II and III had cache blocks of length 32 bytes. Since the system (memory) bus is 8 bytes, a burst of 4 yields 4x8=32 bytes, exactly enough to fill a cache block.
We will assume that auto-precharge is not being used. This appears to be the most common mode of operation of current chipsets. The auto-precharge option for READ and WRITE allows for a fast, automatic PRECHARGE command after READ/WRITE. However, PRECHARGE will close the current page. So, auto-precharge should only be used if it is known that the next access to this memory bank will be to a different memory page. This is a prediction about the future. Most chipsets prefer to assume spatial locality, and so not use auto-precharge.
We also neglect refresh cycles. Since DRAM cells are capacitors, they must be periodically refreshed. Many chipsets appear to periodically broadcast a REFRESH ALL command, although it is possible to individually refresh rows when its bank is not being used. A row must be refreshed periodically (often 64 ms) or else its cells will lose their charge.
The following are the states of DDR RAM. They refer both to commands, and to timing parameters (t_XXX), which are described later under Timing Parameters. The states are based on Truth Table 3, pp. 39 and following of the Micron specs.
---READ/WRITE--->Read/Write---READ/WRITE--->Read/Write ...
...--->Read/Write---PRECHARGE--->Idle---ACTIVE--->Row Active---READ/WRITE--->
t_CL - t_RCD - t_RP
t_CL - t_RCD - t_RP - t_RAS
t_CL - t_RCD - t_RP - t_RAS - T1
For example, a common timing of a PC-133 RAM chip is 3-2-2 or 2-2-2. A common timing of a DDR-266 RAM chip is 2.5-3-3-6 and a common timing of a DDR-333 chip is 2.5-3-3-7. The DDR specifications allow for either 2.5 or 2.0 CL for the first timing parameter.
Recall that DDR stands for Double Data Rate. Hence, DDR-266 timings refer to the number of 133 MHz clock cycles. Similarly, DDR-333 timings refer to the number of 167 MHz clock cycles. In particular, if t_CL is 2.5 for 2.5-3-3-6 DDR-266, then t_CL (or more accurately, t_CAC) is guaranteed to be no more than 2.5/(133 MHz) = 18.8 ns and t_RCD is guaranteed to be no more than 3/(133 MHz) = 22.5 ns. The actual timing specs are:
DDR-266: T_CAC=15ns, t_RCD=20ns, t_RP=20ns, t_RAS=45ns
DDR-333: T_CAC=20ns, t_RCD=18ns, t_RP=18ns, t_RAS=42ns
A read or write access passes through three stages internally on the chip.
Some of the timings are defined as:
[ We only consider timing for bursts of 4 cycles, since this is what most CPUs will issue, for sake of cache line fill ] READ latency: number of clock cycles between READ command and valid data READ must be completed before WRITE command is issued. t_RP: Command to same bank must wait at least t_RP after PRECHARGE command t_DQSS: Time between WRITE command and valid data (nominally 1 clock cycle) t_WTR: Time between end of WRITE and READ command (1 clock cycle) t_WR: Time between end of WRITE and PRECHARGE command (2 clock cycles) Implications: (Recall in timing diagrams, DQ read associated with leading clock transition and DQ write associated with centered clock transition.) Auto Precharge disabled, command to _same_bank: READ burst followed by READ burst: no idle data bus WRITE burst followed by WRITE burst: no idle data bus WRITE burst followed by READ: after data, bus idle for t_WTR + CL * t_CLK WRITE burst followed by PRECHARGE: t_WR, PRECHARGE command, t_RP READ burst followed by WRITE: t_DQSS READ burst followed by PRECHARGE: PRECHARGE issued 2 clock cycles after READ, DQ read starts CL clocks after READ, No further commands unti t_RP after PRECHARGE Auto Precharge enabled, command to _same_ bank: As if PRECHARGE issued at earliest possible moment (after t_RAS interval), then wait t_RP during precharging. Auto Precharge: NOTATION: BL: Burst Length, t_CK: clock, CL: CAS latency, [CL] (rounded up to int) Auto Precharge command followed by command to _different_ bank: WRITE burst w/AP followed by READ: (1+(BL/2)) t_CK + t_WTR WRITE burst w/AP followed by WRITE: (BL/2) t_CK WRITE burst w/AP followed by PRECHARGE: t_CK WRITE burst w/AP followed by ACTIVE: t_CK READ burst w/AP followed by READ: (BL/2) t_CK READ burst w/AP followed by WRITE: ([CL] + (BL/2)) t_CK READ burst w/AP followed by PRECHARGE: t_CK READ burst w/AP followed by ACTIVE: t_CK
PINOUT (DDR, 64 Meg x 4, www.micron.com/datasheets/, MT46V32M8 8Megx8x4banks): Configuration: 32 Meg x 8 x (8 Meg x 8 x 4 banks) Refresh Count: 8K (one refresh per row) Row Addressing: 8K (A0-A12) Bank Addressing: 4 (BA0-BA1) Column Addressing: 1K (A0-A9) A10/AP For pin definitions, # means low is active. Pins associated with commands: CS#: (chip select, commands only recognized when CS# active) WE#: (write enable) CAS#: (column access strobe) RAS#: (row access strobe) DM: (input data mask) input data is masked out (not used) when DM high, input data written during write request if DM low AP/A10: (auto precharge) during a PRECHARGE, READ, or WRITE command, A10 low means use bank BA0-BA1, A10 high means use all banks Selected Other Pins: Data: DQ0-DQ7 (clocked data, Q = clock) Data Strobe: DQS (data clock strobe, edge-aligned w/ read data, centered for write data) Clock Signal: CK and CK# (# or line over signal means low is active) V_DD = 2.5 V (power and heat dissipation rises with voltage) V_SS (ground) V_REF (reference voltage)
The following is quoted from the Micron datasheet:
Data of RAM organized into rows, which are split among separate banks; A bank can have at most one active row within it. A single read or write access for the 256Mb DDR SDRAM effectively consists of a single 2n-bit wide, one-clockcycle data transfer at the internal DRAM core and two corresponding n-bit wide, one-half-clock-cycle data transfers at the I/O pins. Commands (address and control signals) are registered at every positive edge of CK. Input data is registered on both edges of DQS, and output data is referenced to both edges of DQS, as well as to both edges of CK. Accesses begin with the registration of an ACTIVE command, which is then followed by a READ or WRITE command. The address bits registered coincident with the ACTIVE command are used to select the bank and row to be accessed. The address bits registered coincident with the READ or WRITE command are used to select the bank and the starting column location for the burst access. An auto precharge function may be enabled to provide a selftimed row precharge that is initiated at the end of the burst access. As with standard SDR SDRAMs, the pipelined, multibank architecture of DDR SDRAMs allows for concurrent operation, thereby providing high effective bandwidth by hiding row precharge and activation time.