“内存刷新”,感觉很术语化,实际上就是对存储单元进行定期的充电,防止数据丢失。每个存储单元可以看成一个个电容,或者电池,会漏电。所以在使用的过程中,要定期补充电荷。
通常主板上使用的内存条应该叫做 DRAM ,其中的数据是靠电容特性存储的。由于电容会放电,要维持数据,就要不断的给它充电。给 DRAM 定期充电的机制就叫做数据刷新时钟电路,即内存刷新电路。
SDRAM有两种刷新方式:auto refresh 和 self refresh,
auto refresh(自动刷新) 是在其使用过程当中每隔一段时间发出刷新指令,SDRAM刷新一行,
self refresh(自刷新)是在省电模式时使用
刷新操作分为两种:自动刷新(Auto Refresh,简称AR)与自刷新(Self Refresh,简称SR)。不论是何种刷新方式,都不需要外部提供行地址信息,因为这是一个内部的自动操作。
对于AR, SDRAM内部有一个行地址生成器(也称刷新计数器)用来自动的依次生成行地址。由于刷新是针对一行中的所有存储体进行,所以无需列寻址,或者说CAS在RAS之前有效。所以,AR又称CBR(CAS Before RAS,列提前于行定位)式刷新。由于刷新涉及到所有L-Bank,因此在刷新过程中,所有L-Bank都停止工作,而每次刷新所占用的时间为9个时钟周期(PC133标准),之后就可进入正常的工作状态,也就是说在这9 个时钟期间内,所有工作指令只能等待而无法执行。64ms之后则再次对同一行进行刷新,如此周而复始进行循环刷新。显然,刷新操作肯定会对SDRAM的性能造成影响,但这是没办法的事情,也是DRAM相对于SRAM(静态内存,无需刷新仍能保留数据)取得成本优势的同时所付出的代价。
SR则主要用于休眠模式低功耗状态下的数据保存,这方面最xx的应用就是STR(Suspend to RAM,休眠挂起于内存)。在发出AR命令时,将CKE置于无效状态,就进入了SR模式,此时不再依靠系统时钟工作,而是根据内部的时钟进行刷新操作。在SR期间除了CKE之外的所有外部信号都是无效的(无需外部提供刷新指令),只有重新使CKE有效才能退出自刷新模式并进入正常操作状态。
自刷新(Self Refresh,简称SR)时CKE为低,自动刷新(Auto Refresh,简称AR)时CKE为高。