在一个存取周期内,我们可以只进行读写操作,也可以只进行刷新操作;同样也可以前半段读写后半段刷新。但是对于如何设置DRAM刷新,那么就引入了下面的三种刷新方式
1.集中刷新:统一分配时间来刷新DRAM,对于刷新间隔为2ms,内部储存单元为128*128的DRAM。若存取周期是0.5us,那么需要分配128*0.5也就是64us的时间来统一刷新每一行。这部分的时间称为死时间,此时不能进行读写操作。我们把这部分刷新时间统一放到读写操作的后面,这样刷新完128行所用的时间就为2ms,此时的刷新间隔就为2ms
2.分散刷新:分散刷新是指在每一个存取周期内,把前一半时间设为读写操作,后一半时间进行刷新。这样对于同上条件的DRAM,我们刷新完128行的分散刷新的刷新间隔仅为128*0.5也就是64us,远远小于上面的集中刷新方式的2ms,而且也不存在死时间。但是对于设置的刷新间隔2ms,这种方式整整刷新了2ms/64us=31.25次。对于分散刷新来说,刷新的时间相较于集中刷新十分优秀,而且也不存在死时间。但是读写时间和刷新时间分配不均导致多了很多不必要的刷新,整个系统的速度就降低了,这时我们可以引入异步刷新。
3.异步刷新:异步刷新是前两种方式的集合,它既可以缩短死时间,又可以充分利用2ms的刷新间隔:条件同上,首先我们可以手动算出至少多少时间刷新完一行,也就是2ms/128=15.625us,我们把这部分时间的0.5us设为刷新时间,其余都进行读写操作。这样,我们把64us的死时间均匀的放到了2ms内,对于每行来说,刷新时间仍然为2ms,而死时间缩短为0.5us。