DDR3的运行全流程:
DDR3的运行全流程包含了从初始化到数据读写,再到刷新和低功耗模式的复杂操作。详细解析了DDR3内存的运行机制,包括其基本原理、关键操作以及如何通过各种命令和时序控制来实现高效的数据处理。
其运行的过程涉及状态转换,整个流程可以分为初始化、动态配置、更新、刷新。自刷新,读写数据这几个部分。
DDR3SRAM初始化:
从上电到进入空闲状态的过程中,经历了一系列初始化步骤,包括上电、复位、初始化、ZQ校准和空闲状态。
动态配置更新:
- DRAM 外部电源上电, RESET_n 信号保持低电平,其电压值保持在 0.2*VDD 以下;在电源稳定后, RESET_n 信号至少保持 200 us,RESET_n 信号置高,使 DRAM 退出复位状态;复位有效时 CKE 信号可以为低,也可以为高电平,但在 RESET_n 信号置高前至少 10ns,置低并保持 CKE 信号为低电平。
- 在 RESET_n 释放后,延迟 500us ,使能外部时钟输入 CK_t/CK_c 以及有效信号 CKE。
- CK_t/CK_c 必须早于 CKE 信号有效 10ns (或者 5 个时钟周期,取较大值)前稳定。
- 在 CKE 信号有效前,保持 DRAM 片上终端电阻(ODT, On-Die-Termination)为高阻状态。CKE 信号高电平有效后,将 ODT 信号置为静态的低电平或者高电平信号。
- 在 CKE 信号有效后,在发送 MRS 命令配置 MR 之前,等待最小 CKE 复位退出时间 tXPR。
- 控制器向 DRAM 发送 MRS 命令,配置 MR2
- 控制器向 DRAM 发送 MRS 命令,配置MR3
- 控制器向 DRAM 发送 MRS 命令,配置 MR1
- 控制器向 DRAM 发送 MRS 命令,配置 MR0
- 控制器向 DRAM 发送 ZQCL 命令,开始 ZQ Calibration
- 等待 tDLLK 以及 tZQ 时序后,等待 DRAM ZQ Calibration。
- DRAM 初始化结束。
实质上,完整的初始化过程(Initialization)包括以下 4 个单独的步骤:
- 上电与初始化 ,Power-up and Initialization
- ZQ 校准,ZQ Calibration
- Verf DQ 校准,Verf DQ Calibration
- 读写训练,即存储介质训练/初始校准,Read/Write Training
译注:至此标题中的 Initialization,calibration,training 已经全部出现,接下来的文章中将尝试让读者明白这三个词的含义,以及这三个阶段中具体做了哪些事情。
为了能够更好地理解接下来的几节内容,这里我们假设有一个如下图中的系统:具有单个 DIMM 器件(即只有单个内存条)的 ASIC/FPGA/处理器(译注:以下称为主机)。
图-2 示例系统
初始化 Initialization
图-3 初始化相关的状态
上电与初始化是由一系列精心设计的步骤组成的序列(sequence)。一般来说,在系统上电之后,ASIC/FPGA/处理器中的 DDR 控制器会被从复位状态中释放,自动执行上电与初始化序列。下文中列举了一个超简化的控制器所做的工作,而在 JESD79-49A 的 3.3 节中有更详细并准确的描述。
- 给 DRAM 颗粒上电
- 置低 DRAM 的复位端口 RESET,并使能 DRAM 的时钟使能 CKE
- 使能并产生时钟 CK_t/CK_c
- 向 DRAM 发出 MRS 命令,并按照特定的序列读取/配置 DRAM 的 Mode Register
- 进行 ZQ 校准(ZQCL)
- 使 D