DDR II中的延时参数
CL (CAS latency)
CL是从读命令发出到有效数据到DDR端口的延时,以时钟为单位。下图分别表示CL = 3和CL = 4的两种情况,
如果读命令在第n个时钟周期发出,CL = m,则读取的数据在第n+m个时钟时有效。
我们以MICRON 1Gb DDR2 SDRAM 为例,
CL一般为3,4,5,6或者7个时钟,不同速度等级的DDR2支持的CL是不同的,如下图,速度等级为-187E的CL支持从3到7,而
速度等级为-25E的DDR2则只支持CL从3到6,速率等级为-3的DDR2支持CL人3到5。
CL的长度在寄存器中设置
tRC :同一个Bank之间激活命令的时间间隔被定义为tRC。 一个激活命令发送后,同一Bank中不同行的激活命令发送时必须要先关闭前一个激命令,
这个操作称为预充电(precharged)。
tRRD:不同Bank之间的激活命令时间间隔被称为tRRD。
tFAW:在tFAW时间间隔内不能发送超过4个激活(ACTIVATE)命令。在DDR2中8个Bank的芯片中有这一要求。
RL :从列地址发出到数据端口上有效的数据输出延时
RL = AL + CL
tCCD:CAS#-to-CAS#命令之间的时延。读命令之间的时间间隔。如果要输出数据连续读命令之间的间隔是BL/2 个周期,为什么是BL/2?
因为命令是单速率而数据是双速率,如果突发数据速率是8,那读(写)数据输出只需要4个时钟周期。
tRPRE:DQS读操作前同步,DQS为低电平,而DQS#为高电平
tRPST:DQS读操作后同步,DQS为低电平,而DQS#为高电平
tWTR :当WRITE命令之后跟随READ命令时,要满足tWTR的时间间隔要求
tWR:写突发之后一定要跟随一个PRECHARGE命令,时间间隔要求tWR.tWR的开始以数据突发最后为参考
tRCD :ACTIVATE-to-READ or WRITE delay
tRCD:在发送列读写命令时必须与前面的bank激活命令(行有效也在其中)有一个间隔,这个间隔被定义为tRCD,即RAS to CAS Delay(RAS 至CAS 延迟),可以理解为行选通周期。这是根据芯片存储阵列内部响应时间所需要的延迟,这个和芯片的工艺相关,是必然存在的一个延时。tRCD 是SDRAM 的一个重要硬件参数。
tRDC最终会以时钟的周期的方式体现,并向上取整数个时钟周期,其它时间参数也是如此,如对于266MHz时钟(tCK = 3.75ns),指定tRCD(MIN) = 20ns,计算得到5.3个时钟,向上取整为6个时钟
这里Delay(延迟)和Latency(潜伏)本质是不同的:Delay是事情要在这个时间之后开始,而Latency是事情已经发生,但是还不够稳定需要一个稳定时间。
WL: WRITE command to first DQS transition写命令与第一个DQS上升沿之间的延迟。
tRP:单个BanK的PRECHARGE命令发出后,需要tRP时间段
tRPA: 所有BanK的PRECHARGE命令发出后,需要tRPA时间段
(8)AL(posted CAS additive latency )
这是一个间隔读的例子,先发送ACT命令,延时tRCD之后,再发送读命令,tRCD期间也是可以发送ACT命令,
但是两个ACT之间要有一定间隔是BL/2,本来ACT B2应该在ACT B1之后两个时钟周期间隔,但是tRCD
之后是RD,所以B2读出的数据与B1之间会有间隔这样会降低效率。
Post CAS就是为了提高DDR2内存的利用效率而设定的。在PostCAS操作中,CAS信号(读写/命令)能够被插
到RAS信号后面的一个时钟周期,但实际的CAS命令执行可以在附加延迟(Additive Latency,AL)后面。原来
的tRCD(RAS到CAS延迟)被AL所取代,且AL可以在DDR2的初始化时进行设置。由于CAS信号放在了RAS信
号后面一个时钟周期,因此别的bank激活命令(RAS)和CAS信号就不会产生冲突了。
这里我们就引出了AL这个概念:
附加延遲(AL, additive latency)是使用Post CAS技术时,总线上发出CAS信号(读写/命令)后到这个指令实际被执行的延时。
但是对于这个改进有两个地方值得注意的:
1、tRCD依然是存在的,这个是硬件的限制。而Post CAS技术改进的是命令的传输机制。我是这样理解的:Post CAS技术是对CAS信号指令提供一种芯片内部延时的机制,也可以理解为将CAS信号缓存AL时间后执行,这样不妨碍总线上的其他命令的发送。
2、Post CAS技术在单次的突发访问中是没有影响的,只有连续多次的突发访问才有性能的提升,但是对于内存操作一般不可能做单次的突发,就算程序这样做了硬件缓存机制也会做多次的突发。
DDR II中的延时参数的更多相关文章
- 如何在Quartus II中设置Virtual pin
为了验证FPGA工程中的某个模块的功能和时序的正确性,常常需要对其单独进行验证,但是这些模块通常都与内部的众多信号相连(如系统总线,中断信号线等),往往一个模块的对外接口引脚会多达几百个,对其单独仿真 ...
- 中断中处理延时及一些函数的调用规则(中断调i2c驱动有感)--中断中的延迟delay与printk函数的冲突【转】
转自:http://blog.csdn.net/psvoldemort/article/details/8222371 1,中断处理程序中不能使用有睡眠功能的函数,如ioremap,kmalloc,m ...
- 从SignalTap II中获取“最真实”的仿真测试向量(ZZ)
在实际工作中,经常会遇到这样的情况:在硬件调试中采用SignalTap II反复多次编译并最终捕获到问题的原因时,才会发现,原来这个问题是逻辑问题,是可以在仿真环境下发现并快速解决的.先前没 ...
- python中实现延时回调普通函数示例代码
python中实现延时回调普通函数示例代码 这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...
- 如何理解javaSript中函数的参数是按值传递
本文是我基于红宝书<Javascript高级程序设计>中的第四章,4.1.3传递参数小节P70,进一步理解javaSript中函数的参数,当传递的参数是对象时的传递方式. (结合资料的个人 ...
- Production环境中iptables常用参数配置
production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个 ...
- [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- VB类模块中属性的参数——VBA中Range对象的Value属性和Value2属性的一点区别
在VB中,属性是可以有参数的,而VBA中属性使用参数非常常见.比如最常用的:Worksheet.Range("A1:A10") VB的语法,使用参数的不一定是方法,也有可能是属性 ...
- 第一篇博文:PHP函数原型中的可选参数写法为什么这么写?
第一篇,算是开始吧.简单写点儿东西. 刚开始学PHP,在看PHP Manual时遇到一个问题:含可选参数的函数原型中,可选参数的写法看不懂. 例如explode函数 array explode ( s ...
随机推荐
- iOS - iphoneX系列 - 全局配置的基本信息
/// 获得当前窗口 var JY_WINDOW: UIWindow? { get{ if let app = UIApplication.shared.delegate as? AppDeleg ...
- ES5/6/7
ECMAScript(js语言规范) ###ES5 1. 严格模式 运行模式: 正常(混杂)模式与严格模式 应用上严格模式: ‘strict mode’ 2.JSON对象 * JSON.strin ...
- MVc Identity登陆锁定
2016-08-03 [ASP.NET Identity] OAuth Server 鎖定(Lockout)登入失敗次數太多的帳號 743 6 ASP.NET Identity 檢舉文章 2016-0 ...
- Spring 监听
Spring 中的事件监听的实现 这里我们不讨论事件监听的机制的原理,我们只讨论如何在项目中实现时间监听. spring的事件监听是基于观察者模式.设计开发中.如下类与接口是我们必须要使用的. App ...
- cesium 中地图发生了平移,放缩,旋转等动作所要执行的动作
1.在canvas上得到鼠标点击的是那个键 <html><head><title>js判断鼠标左.中.右键哪个被点击-柯乐义</title><sc ...
- C#泛型的学习
编码: class Program { static void Main(string[] args) { ; Test<int> test1 = new Test<int>( ...
- 调试程序时如何用syslog来打印信息
转自:https://www.cnblogs.com/vigarbuaa/archive/2013/02/05/2892544.html Linux下C语言编程的-把程序输出信息加到系统日志里去关键词 ...
- CF Round #516 (Div. 2, by Moscow Team Olympiad)
前言:依旧菜,\(A\)了\(4\)题,不过这次上蓝了挺开心的. A. Make a triangle! Description 给出\(3\)根木棍,希望用它们拼成三角形,可以将其中的某些木棍增长, ...
- Python generator 的yield (enumerate)
生成杨辉三角 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 def triangles(max): L = [1,] while len(L) - 1 < ...
- EXISTS 和 IN 的区别
exists子句的用法 select * from 表1 where exists (select * from 表2 where 表1.列名=表2.列名); exists子句返回的结果并不是从数据库 ...