异步刷新周期怎么算?

2023-10-27
134 阅读

一个 8K × 8 位的动态 RAM 芯片,其内部结构排列成 256 × 256 形式,存取周期为 0.1 μ s 。试问采用集中刷新、分散刷新和异步刷新三种方式的刷新间隔各为多少?)

解:采用分散刷新方式刷新间隔为 :2ms ,其中刷新死时间为: 256 × 0.1 μ s=25.6 μ s)

采用分散刷新方式刷新间隔为: 256 × ( 0.1 μ s+ × 0.1 μ s ) =51.2 μ s)

采用异步刷新方式刷新间隔为 :2ms)

解析:)

(1).设DRAM中电容的电荷每2ms就会丢失,所以2ms内必须对其补充。补充电荷是按行来进行的,为了【全部】内存都能保住电荷,必须对【所有】的行都得补充。)

假设刷新1行的时间为0.1μs(刷新时间是等于存取周期的。因为刷新的过程与一次存取相同,只是没有在总线上输入输出。顺便说一下存取周期>真正用于存取的时间,因为存取周期内、存取操作结束后仍然需要一些时间来更改状态。——对于SRAM也是这样,对于DRAM更是如此)。)

并假设按存储单元(1B/单元)分为64行64列。)

(256×256个单元×1B/单元 = 2^16个单元×1B/单元 = 64KB内存<=>8K*8 )。 )

集中刷新:快到2ms的时候,停止一切对内存的读取操作,使用0.1μs×256对256行依次刷新。这将占用25.6μs。在这25.6μs中,内存只用来刷新,阻塞一切存取操作。)

补充一点给楼主:为什么刷新与存取不能并行?//:因为内存就一套地址译码和片选装置,刷新与存取有相似的过程,它要选中一行——这期间片选线、地址线、地址译码器全被占用着。//同理,刷新操作之间也不能并行——意味着一次只能刷一行。)

分散刷新:在每个存取操作后绑定一个刷新操作。这样存取周期就成了0.1μs + 0.1μs = 0.2μs。它延长了存取周期。但是由于与存取操作绑定,就不需要专门给出一段时间来刷新了。这样,每有64个读取操作,就会把0-63行(共计64行)全部刷新一遍。又因为刷新是不间地断循环着的——循环对64行依次刷新,所以对于同一行,每64次读取就会轮到其被刷新——它的刷新周期是0.2μs × 256 = 51.2μs <2ms , 在2ms丢失电荷前就会及时补充。)

异步刷新:分散刷新的刷新周期256μs ,其实根本不需要这么频繁,有些浪费,异步刷新就是恰好卡在2ms这个时间点上。。对于每行以2ms为刷新周期足够了,//刷新循环到它需要256刷新次操作, 2ms ÷ 256 作为【每次刷新的周期】,(注意每次刷新周期与特定行的刷新周期的不同:每次刷新间隔指对于内存来说它隔多长时间就进行一次刷新操作,轮着刷新时,刷新的行是上一次刷新的行的下一行——是不同的两行,但对于全局内存来说确实是两次刷新操作间隔。特定哪一行的刷新周期:下一次对它进行刷新的间隔,期间要经过64次内存刷新周期才又轮得到它。)过256次刚好保证每行的刷新周期为2ms。刷新操作周期为2ms ÷ 256。但是这个时间并不是绑定在存取周期内,所以仍然是拒绝存取的死时间。但是它已经很小了。所以这种刷新策略非常可行。//即一次刷新耗时2ms,但是一次刷新需要刷新256行.所以行与行刷新的时间为2ms/256.

分享至:
管理员

小草

专注人工智能、前沿科技领域报道,致力于为读者带来最新、最深度的科技资讯。

评论 (0)

当前用户头像