DDR3 命令与时序
DDR3 命令与时序
命令
ACTIVATE
执行激活命令时
Signal | Description |
---|---|
BA2..0 | 指定 Bank 地址 |
A11, 9..0 | 指定 Row |
对某一行激活后,该行将一直处于激活状态,直到下一次 PRECHARGE. 打开新行前必须对旧行执行 PRECHARGE.
PRECHARGE
预充电命令用于关闭一个已经打开的工作行。当 PRECHARGE 命令执行后需等待 tRP 才能执行下一个工作行的激活操作。PRECHARGE 后的行处于 Idle 状态,必须 ACTIVATE 才能进行读写操作。
预充电与刷新
PRECHARGE
预充电时对数据线上的分布电容 Cb 进行充电。刷新则是对存储体的电容 C 进行重写。
动作 | 预充电 | 充电 |
---|---|---|
时序 | 不定期 | 定期 |
预充电是一种 Idle 状态,不能保证存储电容不丢失。只有 REFRESH 才能保证存储电容不丢失。
读操作是对存储电容的破坏性读取。原本逻辑状态为 1 的电容在读取操作后,会因放电而变成逻辑 0,因此,读操作都伴有数据刷新动作。该动作由刷新放大器 (现合并到感应放大器 S-AMP) 完成,其根据逻辑状态将数据重写。
PRECHARGE 既可以通过命令控制,也可通过对 A10 引脚的设定,设置为自动预充电。
REFRESH
由于线路存在寄生阻抗,存储电容的电量会慢慢变小。因此,必须定时对这些电容进行充电,这就是刷新。刷新是对存储体的电容 C 进行重写,先读再写。
刷新以 Row 为单位进行。要求 64 ms 内所有行刷新一次。对于 12-bit 行址,平均刷新频率为
对 13-bit 行址则为 7.8μs,以此类推。
Auto Refresh
周期性自动刷新,外部无需提供行址。通过自动行址生成器 (刷新计数器) 自动生成。但不生成列址,因此,相当于一个不会让数据上总线的 READ 操作,从而达成刷新效果。
Self Refresh
自刷新模式,在控制器下电或复位时,通过 SRE 命令进入子刷新模式,保证数据不丢失。
当 DDR3 Idle 且满足 tRP 后,允许执行 SRE 命令。
READ
对一个已经激活的行指定一个 Burst 读操作。
WRITE
同 READ.
Burst
指定起始地址与突发长度后,SDRAM 依次对后面相应数量的存储单元进行读写,而不需要连续提供列址。因此,除第一个数据需满足 tRCD 和 tCL 外,气候每个数据仅需一拍。
DDR3 的突发模式包括
- BC4
- BL8
- 4 or 8 on the FLY
BC4 主要是为了兼容 DDR2 的 BL4 模式,通过掩码屏蔽四个 Burst,浪费一半带宽。实际多使用 BL8.
时序
熟悉如下定义。
- tRCD:RAS-to-CAS Latency
- tRP:预充电命令周期 / 关闭现有行到打开新行的间隔
- tCL (tCWL):CAS 潜伏期 / 列选通到读写命令的延迟
- tAL:附加延迟 / 随前置 CAS 引入
- tRL:tAL + tCL