笔记本电脑蓝屏崩溃前,最后一次鼠标移动轨迹被卡顿拖拽成了几条僵硬的直线,你或许没想到,这背后竟是内存深处一场悄无声息的电荷救援行动。

内存中的每个比特数据都存储在一个微小电容中,这些电容就像无数个小电池,但它们的电量会随时间悄悄流失-3

一旦电荷流失到临界点,原本的“1”就会变成“0”,数据就这样无声无息地消失了。为了防止这种数据丢失,DRAM必须执行那个鲜为人知却至关重要的任务——刷新。


01 内存的脆弱记忆

动态随机存取存储器(DRAM)堪称现代计算机的短期记忆中枢。与它的亲戚SRAM不同,DRAM使用简单的电容结构存储数据,这一设计使其成本低廉且集成度高。

正是这种简单性带来了根本弱点:存储在电容中的电荷会随时间推移而泄漏。

电容上的电荷量决定了它存储的是“0”还是“1”。但即使在不进行任何读取操作的情况下,这些电荷也会自然流失-4。在常温下,典型DRAM单元的数据保持时间约为64毫秒,超过这个时间,数据就可能永久丢失。

这就像沙漏中的沙子,如果不定期翻转,沙子就会全部流到底部。更麻烦的是,当从DRAM单元读取数据时,读取过程本身也会清空电容上的电荷,这就是所谓的“破坏性读出”-3

这意味着每次数据读取后,都需要将数据写回原处,否则数据就会丢失。这种双重脆弱性使得刷新成为DRAM生存的必需品。

02 刷新:内存的定期“续命”

DRAM刷新的具体过程是一种精密的电子仪式,每时每刻都在你的设备内存中上演。这个过程的核心可以概括为“读取-放大-写回”三步骤。

刷新控制器会按顺序选中一行存储单元,将其中的电荷状态读取到行缓冲器中。此时,专用刷新放大器会对读取到的微弱信号进行放大,最后将这个放大的信号重新写入原存储行-4

刷新不是可选项而是生存必需。根据工业标准,DRAM必须在64毫秒内完成所有行的刷新-3。对于一个典型的8Gb DDR4芯片,这意味着要在64毫秒内刷新约131,072行。

这一时间要求如此严格,以至于刷新电路成为DRAM芯片中最关键的部分之一。如果刷新失败或延迟,将导致数据损坏和系统崩溃。

03 三大刷新策略的平衡术

工程师们设计了三种主要刷新方式,每一种都是在性能、功耗和复杂性之间的不同权衡。

集中刷新最简单直接:系统暂停所有内存访问,在特定时间段内集中完成所有行的刷新-1。这种方法实现简单,但会造成明显的“刷新死区”,在此期间内存完全无法响应处理器请求-10

想象一下图书馆突然关门进行全面清扫,虽然清扫效率高,但完全中断了借阅服务。

分散刷新则将刷新操作分散到每个内存访问周期中-9。每次内存访问后,系统会自动刷新一行存储单元。这种方法消除了明显的死区,但会将每个内存访问周期延长近一倍。

这就像图书馆每借出一本书,就立即清洁该书所在书架的一小部分,服务不中断,但每次借阅时间变长了。

异步刷新是前两者的折中方案,它利用CPU空闲周期执行刷新操作-1。通过智能调度,它试图在刷新完成和性能影响之间找到平衡点。现代系统多采用这种策略的变种,以优化整体性能。

04 隐藏在流畅体验中的微小卡顿

你可能从未察觉到,但你的计算机内存每隔7.8微秒就会经历一次微小停顿。这是因为64毫秒的总刷新时间被平均分配给8192个刷新命令,每个刷新命令间隔正好7.8微秒-5

每次刷新操作期间,内存芯片会暂时“失聪”,无法响应处理器的访问请求。这个短暂的窗口期通常持续约75纳秒,对于以纳秒计时的处理器来说,这是一段相当长的时间。

Cloudflare的研究人员通过精心设计的实验捕捉到了这种周期性延迟-5。他们编写了一个紧密循环程序,持续测量内存访问时间,并通过快速傅里叶变换分析数据。

结果清楚地显示了以128kHz(周期7.8微秒)为基频的规律性峰值,这正是刷新操作留下的时间签名。

更令人担忧的是,当内存温度升高时,电荷流失会加快,刷新频率必须相应提高-5。在温度超过85℃时,刷新周期可能减半至32毫秒,刷新命令间隔相应缩短至3.9微秒。

这意味着高温下内存性能会进一步下降,这也是为什么服务器内存需要强力冷却的原因之一。

05 进化中的刷新技术

随着内存容量爆炸式增长,传统刷新方法的代价变得越来越高昂。刷新操作会消耗大量能源,并占用宝贵的带宽。

研究表明,典型内存芯片有0.4%到5%的时间用于刷新-5。随着容量增加,刷新所需时间也随之增加,这一问题变得更加突出-8

DDR5引入的same bank refresh模式允许部分存储单元刷新时其他单元正常读写,性能提升达6%-10%-1。更激进的创新也在实验室中诞生。

2019年提出的DR刷新技术试图允许在刷新期间同时进行读取操作-7。这项技术通过重新设计DRAM架构,打破了刷新期间完全不能访问的传统限制

另一种前沿方法是RAAR(保留感知自动刷新),它基于不同存储单元实际需要的刷新频率不同这一观察-8

实际上,并非所有DRAM单元都有相同的数据保持时间。通过识别那些电荷保持能力更强的“强单元”和容易流失电荷的“弱单元”,系统可以智能调整刷新频率,减少不必要的刷新操作,从而节省能源并提高性能。

06 刷新与普通用户的微妙联系

作为普通用户,你可能永远不需要直接配置内存刷新参数。现代操作系统和固件已经自动处理这些细节。但你仍然能通过一些现象感知刷新的存在。

当你进行大规模数据处理或玩图形密集型游戏时,如果系统温度升高,可能会注意到偶尔的轻微卡顿,部分原因可能是更频繁的刷新操作。

选择高质量内存模块也能间接优化刷新性能。优质模块往往使用更好的电容材料和更精细的制造工艺,能够保持电荷更长时间,从而降低刷新需求。

对于追求极致性能的用户,确保内存良好冷却不仅能防止热节流,还能减少刷新频率,提高内存可用带宽。


当你的手指敲击键盘时,内存芯片深处,电荷正在数十亿个微小电容间悄然流动。屏幕上的游戏画面流畅无阻,殊不知后台的数据中心里,内存温度监控正决定着数万行存储单元的命运——是享受64毫秒的悠闲刷新,还是在高温下被迫将续命周期缩短至32毫秒

每隔7.8微秒,内存都会进行一次微小呼吸,这是电子世界的生命节拍,也是数据保持鲜活的代价。