DRAM三种刷新方式
本文最后更新于:2024年3月18日 下午
DRAM的三种刷新方式:集中刷新、分散刷新、异步刷新。
电路中的C1和C2用于保持数据,但因为电容C1和C2保持电荷很小,所以能维持稳定的时间也很短,因此要进行刷新操作来对C1和C2充电
刷新与行地址有关。
刷新时一行行进行的,必须在刷新周期内,由专用的刷新电路来完成对基本单元电路的逐行刷新,才能保证DRAM内的信息不丢失。
有三种刷新方式:集中刷新、分散刷新、异步刷新。
假定:
- 刷新周期为2ms
- 存取周期为0.5μs,即刷新一行的时间是0.5μs
- 对128 x 128的矩阵的存储芯片进行刷新,按存储单元(1B/单元)分为128行和128列,即128 * 128 * 1B/单元=2^14^个单元 * 1B/单元 = 16KB内存。
例如16k x 8的芯片就是128行 * 128列
集中刷新
集中刷新是在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。
所需的时间为0.5μs * 128 = 64μs,在这64μs的时间内对128行逐行进行刷新,在这期间不能进行读/写操作,称为“死时间”。
在2ms内有2000 / 0.5 = 4000个读写周期,其中128个读写周期用来刷新,所以平均读写周期为 2ms/(4000-128) = 0.5165μs
分散刷新
分散刷新是指对每行存储单元的刷新分散到每个存取周期中,即每次存取之后对该行数据进行一次刷新,相对于一个存取周期内对该行数据进行两次访问,因此延长了存取周期,平均读写周期为1μs,前半段用来存取,后半段用来刷新。这样每有128个读取操作,就会把0-127行全部刷新一遍,刷新周期为1μs * 128 = 128μs(即过128μs,数据全部刷新了一次)
这样做虽然解决了“死时间”的问题,但刷新过于频繁,影响性能。
异步刷新
异步刷新既可以缩短“死时间”,又可以充分利用最大刷新间隔为2ms的特点,不过于频繁地刷新从而影响性能,那就可以把128行的刷新步骤平均分配到这2ms中,即每隔15.6μs刷新一行(2000μs / 128 ≈ 15.6μs),而每行的刷新时间仍为0.5μs,这样刷新间隔为2ms,死时间为0.5μs。可以理解为把2ms分成128段,每段15.6μs,在每段分别执行集中刷新。