SDRAM的深入理解2

chinapluss Post at 2006/3/13 13:26:00
某些电路相当于“口线供能电容”,此电容容量远比数据存储电容大,用于给口线的读写驱动提供能量,器件数据位宽是几位就只需要几乘以4个(4来源于有4个banks)。下面就来自圆其说:

初始化按照要求就先precharge了,以后每次读写之前都要active。active做两件事,既选通了相关行,又将驱动的能源准备好。当具体读写时,就选通列,给数据电容充电或放电。1个爆发读写完成后,就拨回precharge,给“供能电容”补足电能。因为“供能电容”在active时要被消耗能量并且也存在自漏电问题,所以有了资料上的(active to precharge command)tRAS<120微秒的要求。而拨回precharge时,“供能电容”是一直接着电源的,所以资料上就没有(precharge to active command)的要求了。因为“供能电容”比较大,从硬件设计角度出发充电电流不能做太大,所以tWR和tRP就相对要长。真正的顺序是precharge-〉active-〉读写-〉终止,因为tRP较长,所以初始化时先precharge,并且每次读写完后马上precharge,以便下次读写时只需active以提高响应速度,反正放在那precharge又不影响什么。这就是precharge(预充电)的真正含义所在!至于何必这么麻烦要“供能电容”倒一手,可能是因为数据单元太脆弱,经不起电源直接冲击或干扰,呵呵。而且根据动态内存原理,数据线复用,反正必须先active选通行,顺便再附加个供能功能;而爆发需要终止,特别是页模式更不会自动终止,那么就将“终止”和“预充电”合并到“precharge”,设计人员真会动脑筋。而资料只管说终止功能,没提预充电的作用,反正时序是通的。


想出所谓“供能电容”的还有个原因是:有两个和时钟无关的长时间参数,刷新周期64ms,tRAS 120微秒,不都是电容漏电的体现吗。所以内存可以降频使用,但不能太低,以至于64ms内你只能完成4096次刷新,别的什么都没时间干;或者tRAS期间你连1次读写或写都完不成。


至于refresh,就是1次先读后写的过程,用于保持数据电容的电位。如果在自己的系统中,特别是数据采集系统,1组数据流在64ms内完成了先写入sdram暂存后读入主机,并且sdram中的数据就不再需要了,整个过程不需要插入任何刷新命令。延伸开来,可以做出很适合你的最简单的sdram控制器。做个基本的SDRAM控制器很简单,关键是要根据你的系统特点合理安排好读、写、刷新等操作。


以上是我这几天的心得,希望没有误导大家

已有 0 位网友发表了看法