您的位置:首页 > 理论基础

DRAM的集中刷新和分布刷新

2016-11-05 15:41 190 查看
DRAM中电容的电荷每2ms就会丢失(DRAM 上电荷一般只能维持1ms~2ms),所以2ms内必须对其补充。补充电荷是按行来进行的,为了【全部】内存都能保住电荷,必须对【所有】的行都得补充。

假设刷新1行的时间为0.5μs【刷新时间是等于存取周期的。因为刷新的过程与一次存取相同,只是没有在总线上输入输出。】并假设按存储单元(1B/单元)分为64行64列。(64×64个单元×1B/单元 = 2^12个单元×1B/单元 = 4KB内存 )。
【集中刷新】快到2ms的时候,停止一切对内存的读取操作,使用0.5μs×64对64行依次刷新。这将占用3.2μs。在这3.2μs中,内存只用来刷新,阻塞一切存取操作。(刷新与存取不能并行?:因为内存就一套地址译码和片选装置,刷新与存取有相似的过程,它要选中一行——这期间片选线、地址线、地址译码器全被占用着。同理,刷新操作之间也不能并行——意味着一次只能刷一行。)
【分散刷新】在每个存取操作后绑定一个刷新操作。这样存取周期就成了0.5μs + 0.5μs = 1μs。它延长了存取周期。但是由于与存取操作绑定,就不需要专门给出一段时间来刷新了。这样,每有64个读取操作,就会把0-63行(共计64行)全部刷新一遍。又因为刷新是不间地断循环着的——循环对64行依次刷新,所以对于同一行,每64次读取就会轮到其被刷新——它的刷新周期是1μs × 64 = 64μs <2ms , 在2ms丢失电荷前就会及时补充。(但每行都刷新一次共64us<<2ms,浪费资源,
异步刷新就是恰好卡在2ms这个时间点上)。
【异步刷新】对于每行以2ms为刷新周期足够了,刷新循环到它需要64刷新次操作, 2ms ÷ 64 作为【每次刷新的周期】,(注意每次刷新周期与特定行的刷新周期的不同:每次刷新间隔指对于内存来说它隔多长时间就进行一次刷新操作,但对于内存中每一行来说,刷新的行是上一次刷新的行的下一行——是不同的两行,但对于全局内存来说确实是两次刷新操作间隔。特定哪一行的刷新周期:下一次对它进行刷新的间隔,期间要经过64次内存刷新周期才又轮得到它。过64次刚好保证每行的刷新周期为2ms。)刷新操作周期为2ms ÷ 64 。但是这个时间并不是绑定在存取周期内,所以仍然是拒绝存取的死时间。但是它已经很小了。所以这种刷新策略非常可行。
取自百度知道@http://zhidao.baidu.com/usercenter?uid=1bb64069236f25705e79450f
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  计算机组成原理