每隔7.8微秒,你电脑里的内存就要集体打个“小盹”,要是没这个强制休息,所有数据都会在几毫秒内消失得一干二净。

深夜的电脑风扇嗡嗡作响,屏幕上代码滚动,你刚写完一大段程序却忘记保存。这时电脑突然黑屏,你心想:“完了,今晚白干了!”但当你重新启动电脑,刚才的工作居然还在。

这背后的秘密,就藏在那些细小的DRAM刷新步骤里——每隔7.81微秒,你电脑内存的每一行都会偷偷进行一次“数据保养”-7


01 为什么DRAM这么“健忘”

动态随机存取存储器(DRAM)得名于它的“动态”特性——里面的数据根本待不住。用个不太准确的比方,这就像是让一群金鱼记住电话号码,每隔几秒就得提醒它们一次,不然它们就全忘了。

DRAM存储数据的方式,是通过微小的电容上有无电荷来表示1和0-2。这些电容小得可怜,电荷会通过各种途径“漏”掉,比如晶体管漏电流就会导致电荷慢慢流失-1

这就像把一个水桶底部戳了几个小孔,必须不断加水才能保持水位。

更麻烦的是,DRAM在读取数据时本身就是破坏性的——读一次,电容里的电荷就会被消耗一部分-2读完后必须把数据再写回去,这被称为“预充电”操作。所以你看,DRAM的结构决定了它必须被不断“刷新”,不然数据说没就没。

02 刷新不是随意为之

DRAM的刷新步骤可不是随便安排的,它有着精确的时间表和工作流程。通常情况下,内存刷新电路必须在几毫秒内对DRAM完成一次刷新,否则数据就会彻底丢失-1

最常用的刷新周期是64毫秒-7,听起来挺长是不是?但问题来了:一个现代的DRAM芯片有成千上万行存储单元,要在这64毫秒内全部刷新一遍,得有个聪明的办法。

工程师们想出了个妙招:把整个刷新过程分成8192个小任务-7。64毫秒除以8192,得到了7.8125微秒——这就是为什么你的内存每隔7.8微秒就要“打个小盹”的原因。

03 三种刷新方式,各有千秋

DRAM的刷新步骤主要有三种模式,各有利弊,适应不同的使用场景。

集中式刷新最简单粗暴:在特定时间段内停止所有读写操作,逐行刷新全部存储单元-1。这种方法实现简单,但会在刷新期间形成“访存死区”-4,对高速系统性能影响挺大的。

分散式刷新则温柔多了,它把刷新任务分散到每个存取周期里-4。每次存取后执行单行刷新,降低了对系统性能的冲击-1。不过这种方式能耗较高,不是特别经济。

最聪明的是异步刷新,它结合了两者的优势,专门挑CPU空闲的时候干活-1。这种方法平衡了效率与功耗,像是趁电脑不注意时偷偷完成维护工作。

04 刷新的技术细节

深入DRAM的刷新步骤,会发现里面有很多关键参数在起作用。刷新命令由专门的控制器发送,涉及tREFI(刷新间隔)和tRFC(刷新周期时间)等时序参数-1

在标准的PC电路设计中,每隔15微秒就要对DRAM充电一次,而整个充电操作必须在4毫秒之内完成-1。这些数字不是随便定的,它们与电容的物理特性和电路设计密切相关。

有趣的是,当内存芯片温度升高(超过85°C)时,存储单元电荷保持时间会明显下降-7。这时静态刷新时间不得不减半到32毫秒,tREFI也相应减少到3906.25纳秒-7。这就是为什么电脑过热时更容易出现内存错误的原因之一。

05 刷新带来的性能损耗

你可能不知道,典型的内存芯片用于刷新的时间占其运行时间的相当一部分——大约在0.4%到5%之间-7。不仅如此,内存芯片功耗在典型计算机总功耗中占很大比例,而这其中大部分功率都用于执行刷新操作-7

在刷新期间,整个存储器芯片会被封锁,无法执行正常读写操作-7。这意味着每过7812纳秒,内存中的每个位都会被封锁超过75纳秒-7

早期计算机系统需要插入等待周期来协调CPU与刷新速度的差异-1。后来发展出了交叉刷新技术,允许在内存读写的同时进行刷新操作-1。这种技术至少需要两个BANK(存储区),当一个BANK与CPU交换数据时,另一个BANK借机进行数据刷新-1

06 技术演进与未来方向

随着技术进步,内存刷新的方式也在不断改进。DDR5引入的same bank refresh模式允许部分存储单元刷新时其他单元正常读写,性能提升可达6%-10%-1

还有更智能的自适应DRAM刷新控制方法,它能先将刷新指令进行缓存,然后判断读写总线状态-10。如果读写总线空闲,就把缓存的刷新指令顺序发送给DRAM;如果读写总线正忙着,则根据缓存中刷新指令的数量决定是否发送-10

这种设计减少了基于平均刷新时间发送刷新指令带来的系统性能损失-10。硬件电路的优化与刷新参数的调整,已经成为DRAM性能提升的核心方向-1


天热时,电脑内存刷新频率必须翻倍才能防止数据丢失——当温度超过85℃时,刷新间隔从64毫秒被迫减半至32毫秒-7。这个隐藏在每7.8微秒发生一次的过程,消耗着内存芯片5%的运行时间,却让无数深夜未保存的文档得以幸存。

随着DDR5的same bank refresh技术推广,未来的内存或许能在刷新时保持更高的工作效率。但无论如何,那些微小的电容仍会继续漏电,而刷新的灯光将永远在硅基的迷宫中明灭,守护着每一比特的记忆。