本文主要是介绍关于sdr sdram的full page burst,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关于SDRAM的full page burst
//-------------------------------------------------------------------------//
1、micron官方的datasheet指出BURST TERMINATE和PRECHARGE都可以终止当前突发。
2、full page burst不支持自动precharge。
//-------------------------------------------------------------------------//
3、对于full page burst write,需要BURST TERMINATE和PRECHARGE组合使用。
即Trcd+BL+1(发出BURST TERMINATE命令)+Twr+Trp(发出PRECHARGE命令)
4、对于full page burst read,只需要PRECHARGE命令。
刚开始不理解,后来参考http://blog.sina.com.cn/s/blog_48fd99310102vuas.html终于明白了。
SDRAM内部储存单元相当于“口线供能电容”,此电容容量远比数据存储电容大,用于给口线的读写驱动提供能量,器件数据位宽是几位就只需要几乘以4个(4来源于有4个banks)。
初始化按照要求就先precharge了,以后每次读写之前都要active。active做两件事,既选通了相关行,又将驱动的能源准备好。
当具体读写时,就选通列,给数据电容充电或放电。1个burst读写完成后,就回到precharge,给“供能电容”补足电能。因为“供能电容”在active时要被消耗能量并且也存在自漏电问题,所以有了资料上的(active to precharge command)tRAS<120微秒的要求(时间有最大最小的要求,最大时间要求小于120K ns,如果时间太长,电都放完了)。
处于precharge时,“供能电容”是一直接着电源储能的,precharge执行完以后,储能完毕,断开电源。如果不对当前行active操作,在64ms内必须autorefresh一次,不然电也放完了。
因为“供能电容”比较大,从硬件设计角度出发充电电流不能做太大,所以tWR(数据回写等待时间)和tRP就相对要长。
真正的顺序是precharge-〉active-〉读写-〉终止,因为tRP较长,所以初始化时先precharge,并且每次读写完后马上precharge,以便下次读写时只需active以提高响应速度,反正放在那precharge又不影响什么。这就是precharge(预充电)的真正含义所在!(
预的含义一下子就明白了。至于何必这么麻烦要“供能电容”倒一手,可能是因为数据单元太脆弱,经不起电源直接冲击或干扰,呵呵。而且根据动态内存原理,数据线复用,反正必须先active选通行,顺便再附加个供能功能;而burst需要终止,特别是页模式更不会自动终止,那么就将“终止”和“预充电”合并到“precharge”,设计人员真会动脑筋。而资料只管说终止功能,没提预充电的作用,反正时序是通的。
想出所谓“供能电容”的还有个原因是:有两个和时钟无关的长时间参数,刷新周期64ms,tRAS 120微秒,不都是电容漏电的体现吗。所以内存可以降频使用,但不能太低,以至于64ms内你只能完成4096次刷新,别的什么都没时间干;或者tRAS期间你连1次读写或写都完不成。
至于refresh,就是1次先读后写的过程,用于保持数据电容的电位。如果在自己的系统中,特别是数据采集系统,1组数据流在64ms内完成了先写入sdram暂存后读入主机,并且sdram中的数据就不再需要了,整个过程不需要插入任何刷新命令。延伸开来,可以做出很适合你的最简单的sdram控制器。做个基本的SDRAM控制器很简单,关键是要根据你的系统特点合理安排好读、写、刷新等操作。
注意,这里还需要用auto precharge命令,因为有tAC的问题。
在“auto refresh”命令执行的末端隐含了“precharge”,所以资料上要求“auto refresh”前要保证已经“precharge”,因此“auto refresh”之后却直接可以“active”而不再需要“precharge”。还可能在“auto refresh”命令执行的前端隐含了“active”,行地址由刷新寄存器自动计数并加1。“auto refresh”就是对某行所有列同时 “active”“read”“write”“precharge”,正好7个周期。器件共有4096行,所以要求在64ms内刷新4096次,4个banks是并行同时操作的,所以资料显示耗电高峰发生在自动刷新期间。实际上read已经隐含了write,就是一次完整的读或自动刷新操作的第5个周期,时序正好吻合。不同的是自动刷新的第5个周期不需对外在DQ上输出。
充电放在前面叫charge,放在后面是为下一次操作提前做好准备就叫precharge,根据前面分析prechage能提高断续操作的响应速度,所以最终设计就采用了“precharge”。
这篇关于关于sdr sdram的full page burst的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!