DDR3存储器的读/写,刷新等都是按照一定的状态执行的,状态转换是通过命令进行的,DDR3的状态转移图如图1所示。
1. 状态转移图

图1 DDR3 SDRAM内部状态转移图
2. 状态转移图分析
-
-
初始化部分
-
初始化部分为从上电(power on或 RESET)开始到空闲IDLE的过程,这一部分为DDR3能可靠工作做好准备。过程如下:
A. Reset Procedure(复位)
(1) Power on
(2) RESET
B. Initialization(初始化),主要初始化
C. ZQ calibration(ZQ 校准),命令为ZQCL。
- 初始化时序
- 上电需要200ms等待电源稳定,
- 复位(RESET)约等待最少200us+500us的内部系统稳定及时钟稳定,
- 进入初始化和校准过程,后续课程会详细介绍,
- 进入IDLE状态(如图2)。

图2 初始化时序图
-
IDLE状态
在IDLE状态根据不同的命令,可以进入一下状态
(1)MRS,MPR写
MPR=> Multipurpose register
MRS => Mode register set
有关DDR3寄存器后面会详细介绍。
(2)ZQ校准
校准的作用–主要是利用DDR3芯片外接的ZQ电阻(240欧姆)校准DDR3芯片内部的终端电阻。 由于DDR3内部的终端电阻是由半导体器件形成,会随着芯片的温度变化而变化,因此为了得到更高的精确度,需要在固定时间间隔内或温度差异较大时,重新启动ZQ的校准过程。
ZQCL => ZQ LONG CALIBRATION ,校准效果好但耗时长。
ZQCS = ZQ SHORT CALIBRATION,校准效果一般,但耗时短。
(3)self refresh
SRE => Self refresh entry,进入自刷新状态,在自刷新期间CLKE维持低电平
SRX = Self refresh exit,退出自刷新状态。
(4)REF=>Refreshing ,刷新并退出
(5)ACT =>Activating ,进入激活状态。
(6)PDE=>Precharge power down,预充电并进入低功耗状态,期间CKE保持低电平
(7)PDX =>exit Precharge power down,退出预充电低功耗状态。
-
激活状态
在激活命令(ACT)给出后,进入Activating状态选择不同的Bank,进入Bank激活状态。在Bank激活状态下根据不同命令可以进入如下状态:
- WRITE =>Writing ,进入写数据状态。
- READ=>Reading ,进入读数据状态。
- WRITE AP=> Writing(AP),进入带有auto pre-charge写数据状态,写完成后自动进入Precharging状态。
- READ AP= >Reading(AP),进入带有auto pre-charge读数据状态,读完成后自动进入Precharging状态。
- PRE,PREA=>Precharging,进入Precharging状态。
- PRE关闭当前行,PREA将关闭所有已打开的不同BANK的行。
- PDE,PDX=>Active power down,进入或退出Active power down(低功耗模式)状态。退出低功耗时,不需要ACT命令重新经过activating 过程,就可以直接使用read和write 命令。
- Writing状态
- WRITE=>Writing, 保持在Writing状态继续写操作,完成后退回到Bank active状态。
- READ=>Reading,转移到读数据状态。
- WRITE AP=> Writing(AP),进入带有auto pre-charge写数据状态,写完成后自动进入Precharging状态。
- READ AP= >Reading(AP),进入带有auto pre-charge读数据状态,读完成后自动进入Precharging状态。
- PRE,PREA=>Precharging,进入Precharging状态。
- Reading状态
- READ =>Reading,保持在Reading状态继续读操作,完成后退回到Bank active状态。
- WRITE=>Writing,转移到写数据状态。
- READ AP= >Reading(AP),进入带有auto pre-charge读数据状态,读完成后自动进入Precharging状态。
- WRITE AP=> Writing(AP),进入带有auto pre-charge写数据状态,写完成后自动进入Precharging状态。
- PRE,PREA=>Precharging,进入Precharging状态。
- Precharging状态
进入Precharging状态后,完成预充电自动退到IDLE状态。
3. DDR3命令例表
DDR3命令是由控制信号,地址信号组成与时钟上升沿同步。控制信号由CKE, CS#,RAS#,CAS#, WE#,BA[2:0]构成,地址构成操作码或地址等。
如表1所示。
表1

表1中 :
(1)“V” means “H” or “L” (a defined logic level), and “X” means “Don’t Care.” V是确定的“H” 或“L”状态,“X” 表示未知或不影响 , CA (command address )命令对应的地址
(2) Burst READs or WRITEs cannot be terminated or interrupted.突发读或写,在一个突发完成之前不能被停止或打断
(3)The power-down mode does not perform any REFRESH operations 省电模式最长时间9 X TREFI
(4)The purpose of the NOP command is to prevent the DRAM from registering any unwanted commands. A NOP will not terminate an operation that is executing. NOP是空操作指令,DDR3的状态不受影响
(5)The DES and NOP commands perform similarly. DES(器件处在非选择状态),与NOP的功能类似。
(6)An表示A13或A14, 只有部分大容量的芯片才有(RFU–reserved for future use)。
例: READ命令
READ 命令 要求CKE在前一个时钟周期和本时钟周期都为1,CS#为低,RAS#为高,CAS#为低,WE#为高,BA为确定的Bank值(如读bank3的内容BA [2:0]=3’b011),A12为V(高或低),A10为低,A11,A[9:0] 为地址。其它命令都是类似的解释。