DDR3的理
来源:互联网 发布:参加淘宝培训班有用吗 编辑:程序博客网 时间:2024/04/29 21:23
最近在弄DDR3,就把所学记录下来,不对之处请还请批评指正!
拓扑结构
从DDR3的拓扑结构说起,DDR3采用的不再是DDR2的“T”型拓扑,而是“Fly-by”拓扑结构,如下图:
通过故意造成每个DRAM之间数据和选通信号传输时间(flight-time)偏移,降低了同步切换噪声(SSN)。
Write Leveling
引入Fly-by拓扑结构降低了SSN,但同时也导致了CLK和DQS信号到达每个DRAM的时间不一样,使得CPU很难以保持tDQSS、tDSS和tDSH这些时序,为此DDR3采用了Write Leveling机制来改善这一问题,在上电时,需要执行Write Leveling自检。
Write Leveling,写入均衡。Write Leveling的功能是调整DRAM颗粒端DQS信号和CLK信号边沿对齐;调节过程描述:CPU不停地调整DQS信号相对于CLK的延迟,DRAM芯片在每个DQS上升沿采样CLK管脚上的时钟信号,如果采样值一直低,则会将所有的DQ[n]保持为低电平来告知CPU,tDQSS相位关系还未满足,如果发现在某个DQS上升沿,采样到此时的CLK电平发现了迁越(由之前的低跳变为高),则认为此时DQS和CLK已经满足tDQSS,同时通过DQ[n]向CPU发送一个高,表征一个写均衡成功,同时CPU会锁住这个相位差。这样,在每个DRAM端,看到的CLK和DQS信号都是边沿对齐的。
CPU在从DRAM读数据时,道理是一样的,DRAM端DQS和CLK是同步输出的,DQS同样会通过CPU内部的延迟机构,和CLK对齐。
时序关系
上面提到了,写均衡是为了满足“tDQSS”,这是一个在写时序里面特有的,表征的是DQS和CLK信号的沿关系,在JEDEC的DDR3标准“JESD79-3F”的83页中对tDQSS有明确的要求:±0.25tCK
在读写操作中,也有一个DQS和CLK信号的关系,叫做:tDQSCK,在标准中也是有的,我认为,这个时间和写操作中的tDQSS其实是一样的意思,只是叫法不一样罢了,但是,tDQSCK往往比tDQSS更为严格。
注意:命令和地址只在时钟的上升沿有效,数据则是在DQS信号的上升和下降沿都有效,DQS和时钟是边沿对齐的(当然,在±0.25tCK内都是可以的),所以也是时钟的上升和下降沿都有效。
下图是一个对DDR3拓扑结构中CK和DQ信号组的简单呈现
从上图可以看到:CK信号走的是“Fly-by”拓扑,地址和命令也是,而DQ信号组走的是“Point to Point”。
为了很好的满足tDQSS关系,应该满足如下关系:
(CKi – CK) – DQSi > 0 (0 =< i < number of components – 1)
我认为:CPU内部的内存控制器只能对DQS信号做延迟,不能做超前处理,所以CK要大于DQS信号线的长度,否则将不能满足tDQSS。
此处,我还有一个想法,对每个DRAM芯片,应该有:
(CKi – CK) – DQSi <1 * Tck
因为如果这个时间差大于一个周期,在写调整时,内存端将分不清是以哪个脉冲为基准的。也可以这样理解,如果大于一周期,超过一周期的延迟其实是没有意义的,这相当于是在重复一周期内的延迟,因为相位超过一周期就没有意义了。如果布线时,所有DQ信号组都差不多一样长,那就要着重考虑最远端那颗DRAM了。
有的资料还给出要求满足下面这个等式:
(CKi – CK + DQSi)max – (CKi – CK + DQSi)min < 1 *Tck
其实,这个等式可以近似为:
CKi – CK0< 1 * Tck
这里我有疑问,我认为这个CKi-CK0应该小于0.5 * Tck才对,因为时钟的上升和下降沿都会有数据,大于半个周期,新的数据就会出现在数据线上了,这会不会覆盖原来的信号呢?
在写入时,DQS边沿和DQ[n]中部对齐;在读取时,由于CPU内部对DQS有90°相移,所以,DRAM端DQS中部和DQ[n]中部对齐。
布线规则
CK/CK#,DQSi/DQSi#走差分线,并且positive和negative要严格等长,一般±10mils(理论上DDR3自我修正的能力是20ps)。离其他信号满足3W原则。
地址和控制信号与CLK信号等长。
(后面待续)
- DDR3的理
- DDR2 DDR3的区别
- DDR2 DDR3的区别
- DDR3
- DDR1 DDR2 DDR3的区别
- DDR2与DDR3的区别
- DDR3与DDR2的区别
- ddr3和ddr5的区别
- HI3531的DDR3配置流程
- IMX6Q的DDR3初始化配置
- IMX6Q的DDR3初始化配置
- IMX6Q的DDR3初始化配置
- DDR3布局的那些事儿
- DDR3布线的那些事
- IMX6Q的DDR3初始化配置
- [HARDWARE] ddr、ddr2、ddr3的区别
- DDR,DDR2與DDR3的區別
- DM8168 DDR3接口的PCB布线指南
- poj 2236 Wireless Network 并查集
- [Python学习] 简单网络爬虫抓取博客文章及思想介绍
- OC语言字典
- 通过异或交换变量的数值
- domino服务器上,如何在服务器设置定时(每周)压缩数据库?
- DDR3的理
- 渐开线函数工具
- 90行python搭一个音乐搜索工具 —— Song Finder
- 04-树7. Search in a Binary Search Tree (25)
- window.showModalDialog以及window.open用法简介
- Linux下关闭开启防火墙
- 欢迎使用CSDN-markdown编辑器
- IOS学习整理(一)视图层次结构与视图控制器
- leetCode 88.Merge Sorted Array (合并排序数组) 解题思路和方法