Protocol
An XDR RAM chip's high-speed signals are a differential clock input (clock from master, CFM/CFMN), a 12-bit single-ended request/command bus (RQ11..0), and a bidirectional differential data bus up to 16 bits wide (DQ15..0/DQN15..0). The request bus may be connected to several memory chips in parallel, but the data bus is point to point; only one RAM chip may be connected to it. To support different amounts of memory with a fixed-width memory controller, the chips have a programmable interface width. A 32-bit-wide DRAM controller may support 2 16-bit chips, or be connected to 4 memory chips each of which supplies 8 bits of data, or up to 16 chips configured with 2-bit interfaces.
In addition, each chip has a low-speed serial bus used to determine its capabilities and configure its interface. This consists of three shared inputs: a reset line (RST), a serial command input (CMD) and a serial clock (SCK), and serial data in/out lines (SDI and SDO) that are daisy-chained together and eventually connect to a single pin on the memory controller.
All single-ended lines are active-low; an asserted signal or logical 1 is represented by a low voltage.
The request bus operates at double data rate relative to the clock input. Two consecutive 12-bit transfers (beginning with the falling edge of CFM) make a 24-bit command packet.
The data bus operates at 8x the speed of the clock; a 400 MHz clock generates 3200 MT/s. All data reads and writes operate in 16-transfer bursts lasting 2 clock cycles.
Request packet formats are as follows:
Clock edge |
Bit | NOP | Column read/write | Calibrate/power-down | Precharge/refresh | Row Activate | Masked write | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bit | Bit | Description | Bit | Description | Bit | Description | Bit | Description | Bit | Description | ||||||||
↓ | RQ11 | 0 | 0 | COL opcode | 0 | COLX opcode | 0 | ROWP opcode | 0 | ROWA opcode | 1 | COLM opcode | ||||||
↓ | RQ10 | 0 | 0 | 0 | 0 | 1 | M3 | Write mask low bits |
||||||||||
↓ | RQ9 | 0 | 0 | 1 | 1 | R9 | Row address high bits |
M2 | ||||||||||
↓ | RQ8 | 0 | 1 | 0 | 1 | R10 | M1 | |||||||||||
↓ | RQ7 | x | WRX | Write/Read bit | x | reserved | POP1 | Precharge delay (0..3) |
R11 | M0 | ||||||||
↓ | RQ6 | x | C8 | Column address high bits |
x | POP0 | R12 | reserved | C8 | Column address high bits |
||||||||
↓ | RQ5 | x | C9 | x | x | reserved | R13 | C9 | ||||||||||
↓ | RQ4 | x | C10 | reserved | x | x | R14 | C10 | reserved | |||||||||
↓ | RQ3 | x | C11 | XOP3 | Subopcode | x | R15 | C11 | ||||||||||
↓ | RQ2 | x | BC2 | Bank address | XOP2 | BP2 | Precharge bank | BA2 | Bank address | BC2 | Bank address | |||||||
↓ | RQ1 | x | BC1 | XOP1 | BP1 | BA1 | BC1 | |||||||||||
↓ | RQ0 | x | BC0 | XOP0 | BP0 | BA0 | BC0 | |||||||||||
↑ | RQ11 | x | DELC | Command delay (0..1) | x | reserved | POP2 | Precharge enable | DELA | Command delay (0..1) | M7 | Write mask high bits |
||||||
↑ | RQ10 | x | x | reserved | x | ROP2 | Refresh command | R8 | Row address low bits |
M6 | ||||||||
↑ | RQ9 | x | x | x | ROP1 | R7 | M5 | |||||||||||
↑ | RQ8 | x | x | x | ROP0 | R6 | M4 | |||||||||||
↑ | RQ7 | x | C7 | Column address low bits |
x | DELR1 | Refresh delay (0..3) |
R5 | C7 | Column address low bits |
||||||||
↑ | RQ6 | x | C6 | x | DELR0 | R4 | C6 | |||||||||||
↑ | RQ5 | x | C5 | x | x | reserved | R3 | C5 | ||||||||||
↑ | RQ4 | x | C4 | x | x | R2 | C4 | |||||||||||
↑ | RQ3 | x | SC3 | Sub-column address | x | x | R1 | SC3 | Sub-column address | |||||||||
↑ | RQ2 | x | SC2 | x | BR2 | Refresh bank | R0 | SC2 | ||||||||||
↑ | RQ1 | x | SC1 | x | BR1 | SR1 | Sub-row address | SC1 | ||||||||||
↑ | RQ0 | x | SC0 | x | BR0 | SR0 | SC0 |
There are a large number of timing constraints giving minimum times that must elapse between various commands (see Dynamic random-access memory: Memory timing); the DRAM controller sending them must ensure they are all met.
Some commands contain delay fields. These delay the effect of the command by the given number of clock cycles. This permits multiple commands (to different banks) to take effect on the same clock cycle.
Read more about this topic: XDR DRAM