RESET 复位
上电完成, 电源稳定后, REST_N 引脚拉低至少200 US 来确认一个初始复位
CKE 需要在RESET 拉高前置低, 这个提前量至少是10NS
RESET 释放拉高后, 需要等500US, CKE 才置高有效, 在这个期间DDR4 芯片完成内部初始化, 而这个初始化工作都不依赖外部时钟。
时钟CK 信号必须在CKE 高有效前,提早10NS 或者5个时钟周期稳定下来。
DDR4功能 PREFETCH 预取技术/写入均衡
DDR4 预取机制还是8BIT, 和DDR3 一样。
DDR4 内部2-4个BANK GROUP, 每个BG
于是就有了WRITE LEVELIN ,
第一步发送DQS 信号, DDR4 芯片在DQS 上升沿采样CK 信号, 发现CK=0, 则DQ保持为0.
DDR 控制器加入步进延时后发送DQS 信号, DDR4 芯片在DQS 上升沿采样CK 信号, 发现CK=0, 则DQ 仍然保持为0,
DDR 控制器继续加入延时后发送DQS 信号, DDR4 芯片在DQS上升沿采样CK 信号, 发现CK=1, 则等待一段时间后, DDR4芯片将DQ 信号置高。
就完成了一写入均衡的
目前最先进的处理器,当然是绑定的最新的DDR.
RAM 演进
SRAM 静态随机存储器
dram 动态随机存储器
由CMOS 管栅极电容存储数据
利用电容储存多少电荷多少来存储数据,需要定时刷新电路克服电容漏电问题。
集成度高,容量大且成本便宜。
刷新期间不能进行读写操作。
DRAM 演进
SDRM 同步动态随机存储器
SDRAM 将CPU 与RAM 通过一个相同的时钟锁在一起, 使用RAM 和CPU 能够共享一个时钟周期,以相同的速度同步工作。
SDR 单倍数据率存储数据
每根数据线上, 每个时钟只传输1BIT 数据 。
DDR SDRAM 双数据据率同步动态随机存储器
允许在时钟脉冲的上升沿和下降传输数据, 这样不需要提高时钟的频率就能加倍 拉高SDRAM 的速度, 并具有比SDR 多一倍的传输速度。
DDR 会读取时钟信号的上升沿和下降沿上的数据。
DDR3 SDRAM
DDR3 同步动态随机存取存储器DDR3 SDRAM 是一种具有高带宽(”双倍速据速率“)接口的同步动态随机存取存储器
DDR3 是应用在计算机及电子产品领域的一种高带宽并行数据据总线。
DDR3在DDR2的基础上继承发展而来, 其数据传输速度为DDR2的两倍。
DDR3 的工作电压降低为1.5V, 比采用1.8v的DDR2省电20% 左右。
内存与CPU 的关系
内存是一种同步动态随机存取芯片
CPU 可直接寻址的一段空间
CPU 对内存如何实现不关心,它只和内存控制器对话,内存控制器只需要读懂CPU 的指令
并且提供相应的服务即可
类似于KEY VALUE 模型, KEY 相当于地址,VALUE 相当于数据,当CPU 提供相同的地
址并要取走数据时,内存应当把先前存入的数据返回给CPU.
CPU 的地址线与数据线
CPU 具有大量的针脚或者触点, 每个都是一根微小电线暴露外就的端点,连接着位于内部真正具有
计算能力的硅晶片。
每条线所提供的作用都不相同,有供电线,接地线
划分一组为地址线,用于定位。
划分一组称为数据线,用于传输。
按照约定不同,信号的表示方法也不同。比如高电势表示1, 低电势表示0.
电源: VDD 主电源输入
VREFCA 信号参考电势
地址线: 地址选择A[0:16]
BG[0:1] BanK GROUP 选择。
数据线 DQ[0:15] 数据传输
内存地址线的分时复用
一方面, 地址线位宽是有限的,但程序对数据间间的需求是无限的,另一方面,由于内存刷新
与成本要求,地址线位宽亦无法做的很大。
但是由于内存与CPU相比,速度较慢。所以可以利用对地址的分时复用来增大可以寻址的地址空间,而对性能无明显影响。
电子在昌格中运动
对电子而言,晶体类似于真空环境,它在其中运动的物质波方程与自由电子波仅在系数上相异,电子在完美晶体中超导。
硅晶体属于原子晶体,以共价键彼此强烈吸引。引入杂质后,比如硼这种最外层电子只有三个的
元素,就会有一个键是单电子键,相比其余都是双子键,单电子键相于一个空穴。
激活
P 注入缺电子原子的区域,有大量空穴
N 注入多电子原子的区域,有大量电子
行地址不加电时,从P 区域发射的空穴遇到中间N 区域的电子会湮灭, 左右两边处于短路状态。
行地址加电时,向上的电场将N 区域的电子驱赶至下方,进而无法形成对两侧P 区域发射空穴的有
效阻挡。两侧导通,外就可以读取电容内数据。
行地址线与列地址线串联起一系列小电容。给某一行地址线加电,让该行上的电容内数据暴露至地址线上的这一操作我们称之为激活。
预充电
行地址位宽为N, 则行地址选择器右侧行地址线数目为2的N 次方。
将行分为两组,为每列分配一个检测放大器。该放大器的一个输入端串联起所有奇数
行组中该 列的地址线,另一个输入端则与偶数行组中该列的所有列地址相连,当然,可以按照
奇偶分配与可以按照别的方式分成相等的两组。
每次激活操作之前,需要给所有列地址线充电至工作电压的一半,这一操作称之为预充电。这同样用于 关闭 已经激活的行。
检测放大器
预充电之后,激活操作会将目标行的电容暴露至列地址线中。 这一行不是奇数就偶数行。 因此所有的检测放大器有且只有一个输入端的电势被拉高或降低。
检测放大器会检测两端电势差从而得到需要输出的数据,传送给列地址解码电路。同时检测放大器会让电压高的充电到工作电压,电压低的下降到0.
当系统处于这个状态时,可以进行读操作,写操作,与刷新操作。
读, 写与刷新
以下内容 COPY FROM OTHER BLOG.
当带有DRAM 子系统的设备上电后, 在DRAM 进入运行状态之前会发生许多事情,
本质上, 初始化过程包括4个不同的阶段:
上电和初始化
ZQ 校准
VREF DQ 校准
读写训练(又名记忆或初始校准)
初始化
POWER ON --.> RESET --- RESET PROCEDUE -> INITIALIZATION
上电和初始化是一个固定的, 定义良好的步骤序列, 通常情况下, 当系统上电后, ASIC/ FPGA 处理器中的控制器被移出复位, 它就会自动执行上电和初始化序列, 这是控制器功能的越级简化版本。
1 为DRAM 通电
2 取消置位RESET 并激活 CLOCK ENABLE CKE.
3 启用时钟 CK_T CK_C
4 发出MRS 命令, 并加载模式寄存器【模式寄存器按特定顺序加载】
5 执行ZQ 校准
6 将DRAM 带入IDLE 状态。
此时, DIMM 模块上的DRAM 了解它们必须以什么频率运行, CAS 延迟 (CL) , CAS 写入延迟(CWL) 和其他一些时序参数是多少。
ZQ 校准与数据 引脚 DQ 有关, 要了解 ZA 校准的作用以及为什么需要它, 我们需要首先查看每个DQ 引脚后面的电路, 请记住, DQ 引脚是双向的。 它负责在读取其间发回数据并在写信期间接收数据 。
每个DQ 引脚后面的电路都由一组并联的240 欧姆的电阻支路组成, 由于CMOS 器件的性质, 这些电阻从来都不是精确的240欧姆。
为了将这些电阻精确地调整到240欧姆, 每个DRAM 都有
一个称为DQ 校准控制块的特殊模块和
一个ZQ 引脚, 连接了一个外部精度 240 欧姆的电阻。
这个外部精密电阻器是参考, 它在所有温度下都保持240欧姆, 当在初始化期间发出ZQCL 命令时, 该 DQ 校准控制块被启用并产生一个调整值。 然后将该值复制到每个DQ 的内部电路。
WRITE LEVELING 写调平
写入DRAM 时, 不能违反的重要时序参数是TDQSS, TDQSS 是DTATA STROBE (DQS) 相对于时钟CK 的位置, TDQSS 必须在规范中定义的TDQSS MIN 和TDQSS MAX 范围内, 如果违反TDQSS 并超出范围, 则可能会将错误的数据写入内存。
由于DIMM 上每个DRAM 的时钟到DATA / DATA STROBE 偏差都不同, 因此内存控制器需要训练自己, 以便它可以补偿这种偏差并在DIMM 上每个DRAM 的输入处操持TDQSS.
当你在控制器中启用WRITING LEVELING 时,它会执行以下步骤,
1 对MR1 进行模式寄存器写入, 将将7 位设置了1, 这将使DRAM进入WRITE LEVELING 模式。 在WRITE LEVELING 模式下, 当DRAM 看到DATA STROBE DQS 时, 它会使用它对时钟 CK 进行采样, 并通过 DQ 总线将采样值返回给控制器。
2然后控制器发送一系列DQS 脉冲。 由于DRAM 处于WRITE LEVELING 模式, 它使用DQS 对CK 的值进行采样, 并通过DQ 总线将该 采样值返回给控制器。
3 , 然后控制器
查看DRAM 返回的DQ 位的值
要么增加或者减少DQS 延迟和
一段时间后,启动一下组DQS 脉冲。
4RAM 再次采样CK, 并通过DQ 总线返回采样值。
5 重复步骤2到4, 直到控制器看到0 到1的转换, 此时, 控制器锁定DQS 延迟设置, 该DRAM 设备就实现了WRITE LEVELING.
6 然后为整个DIMM 的每个DQS 重复步骤2到5. 以完成WRITE LEVELING 过程。
7 通过将0 写入MR1[7], DRAM 最终退出WRITE LEVELING 模式。