DRAM刷新方式

用16K×8位的DRAM芯片构成64K×32位存储器,设存储器读/写周期为0.5μs,CPU在1μs内至少要访问一次。试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少?

先求存储单元是几行几列的(按芯片算),16K=214B=(27)2B=(128×128)B。得存储单元是128×128。

DRAM最大刷新周期:2ms,8ms,16ms等(DRAM在这些时间内会丢失电容,所以必须刷新),疑似默认按2ms计算?

集中刷新:快到2ms时,停止一切对内存的读取操作,用0.5μs×128=64μs的时间对128行依次刷新。在这64μs内,内存只进行刷新,阻塞其他操作。死时间:64μs,不满足条件。

分散刷新:在每个读写操作后面绑定一个刷新操作,(读写周期=刷新周期,刷新的过程与一次读写相同,只是没在总线上输入输出)则存取周期变为0.5μs+0.5μs=1μs,1μs内只能访问一次,显然不满足题目要求的1μs至少访问一次。

异步刷新:对每行以2ms为刷新周期,下一次刷新循环到这一行需要128次刷新周期。
概念区分:每次刷新周期(间隔):对内存单元来说多久刷新一次。特定某行的刷新周期:下一次对这一行进行刷新的间隔,期间要经过128次内存刷新周期。
过128次刚好保证每行的刷新周期为2ms,刷新间隔为2ms÷128=15.6μs

因集中刷新和分散刷新均不能满足条件,只能采取异步刷新。
两次刷新的最大时间间隔为15.6μs,可取刷新信号周期为15.5或15(必须为刷新时间0.5的倍数),对全部存储单元刷新一遍所需时间为15×128=1920μs。

发表评论