看到电脑卡顿就怪CPU不给力?你或许错怪了它,真正拖后腿的可能是那个需要不断“复习”才能记住数据的内存。
DRAM读数据这个动作,听起来简单却暗藏玄机。你在电脑上的每次点击、每个操作,背后都有一整套精密的读取机制在支撑。

它不只是从存储单元取出0和1那么简单,更涉及到电容电荷的保持、信号的放大识别,以及与时间的赛跑。

DRAM的基础存储单元其实出奇简单,核心就是一个微型电容加一个晶体管。电容负责存储电荷,有电荷代表“1”,没电荷代表“0”。晶体管则像个开关,控制电容的充放电-1。
这设计带来了高集成度的优势,但天生有个大缺陷:电容会漏电。
存储在电容里的电荷无法长久保存,这意味着如果不采取特殊措施,数据会在几毫秒内悄悄消失。这个特性决定了DRAM必须持续不断地“复习”自己存储的内容-1。
这个复习过程就是“刷新”。每隔一段时间,存储控制器就会自动读取整行数据,检测电容的电荷状态,然后重新写入一次,以此延续数据的“生命”-1。
想象一下,这就像你有个笔记本,上面的铅笔字迹会慢慢变淡,你必须定期描一遍才能保持清晰。
当处理器需要读取某个数据时,DRAM的读取机制便开始精密运作。整个过程有点像在大型图书馆(存储阵列)里找一本特定的书(数据位)。
首先是行选择,也称为“激活”命令。DRAM接收到行地址后,会将整行数据从存储单元复制到该存储库内部的行缓冲区中-7。
这一步骤是关键,因为后续的读写操作实际上都是在行缓冲区上进行的,而不是直接访问存储单元本身。完成行激活后,需要等待一段时间(tRCD)才能进行下一步操作-7。
接下来是列选择,根据列地址从行缓冲区中精确挑选出需要的数据位。由于这个操作直接在缓冲区进行,速度比直接从存储单元读取快得多-7。
有意思的是,这个过程本身会消耗电容的部分电荷,属于“破坏性读取”。这就是为什么读取后通常需要将数据写回原处,保持信息的完整性。
随着现代计算机系统对内存性能要求越来越高,传统DRAM架构面临严峻挑战。多个应用程序同时运行会产生随机内存访问流量,导致基于数据局部性的优化策略效果大打折扣-5。
更麻烦的是,那些写入密集型的应用,它们的数据访问模式往往缺乏局部性,会频繁地在快速缓存和慢速主存之间移动大量数据-5。
这种频繁的数据移动带来的开销,有时甚至会抵消掉DRAM缓存带来的性能优势-5。研究人员一直在寻找突破口。
FASA-DRAM是一种创新方法,它将数据移动过程分成两个阶段。第一阶段是“负载减少的破坏性激活”(LRDA),以破坏性方式将数据提升到DRAM缓存中-5。
第二阶段是“延迟周期窃取恢复”(DCSR),当DRAM存储库空闲时恢复原始数据-5。这种方法将最耗时的恢复阶段与激活分离,同时通过普遍的存储库级并行性隐藏恢复延迟-5。
DRAM读数据过程中难免会遇到各种错误,这就需要强大的纠错机制来保障数据完整性。随着DRAM技术不断发展,晶体管尺寸不断缩小,传输速率不断提高,存储和传输错误也相应增加-6。
传统系统会同时使用纠错码(ECC)和循环冗余校验(CRC)来应对这些错误,但这会带来可观的性能和能耗成本-6。
新型的“双轴ECC”(DA-ECC)提供了统一的保护机制,可以同时对抗存储错误和传输错误-6。
这种技术能够纠正×8 DRAM芯片中的一个半芯片故障错误、两个DQ错误或数据选通(DQS)信号上的一个传输错误-6。
全面保护机制消除了对额外CRC机制的需求,不仅将系统性能提高了1.6%,还将DRAM能效提高了8.2%-6。
你可能不知道,即使是正常的DRAM读数据操作,也可能被恶意利用。反复读取同一行附近的内存地址,可能引发被称为“RowHammer”的安全漏洞,导致相邻行的数据位意外翻转-8。
这种“读干扰”现象已成为严重的安全威胁。行业内已提出各种缓解措施,其中“每行激活计数”(PRAC) 是一种先进的片上DRAM读干扰缓解方法-8。
这种方法存在两个主要弱点:一是会增加关键的DRAM访问延迟参数,二是容易受到称为“波攻击”的对抗性访问模式的影响-8。
Chronus是一种新提出的机制,它通过将计数器与数据分离,在服务访问的同时更新行激活计数器,并通过动态控制执行的预防性刷新次数来防止波攻击-8。
面对处理器和内存速度之间日益严重的不平衡,研究人员正在探索创新的架构来应对这一问题。存内计算(PIM) 就是这样一种新兴范式,它将计算尽可能靠近数据,无论是缓存、DRAM还是SSD-2。
在DRAM层次结构中融入PIM面临着多重挑战。一种探索方向是BLIMP架构,它将通用核心集成到DRAM层次结构中-2。
未来的研究可能会将这些架构扩展到解聚内存系统,为大语言模型的推理加速提供可能-2。
随着FASA-DRAM这类技术的成熟,与DDR4 DRAM相比,四核工作负载中的平均性能有望提高19.9%,平均DRAM能耗可能降低18.1%,而额外的面积开销不到3.4%-5。
当程序响应缓慢时,内存控制器正从数以亿计的电容中定位电荷;游戏加载卡顿时,纠错码正默默修复因宇宙射线而翻转的比特;数据安全无忧的背后,是像Chronus这样的机制在防御着每一轮潜在的读干扰攻击。
DRAM每一次安静的读取,都是对物理极限的细致平衡。
DRAM需要不断刷新,那笔记本电脑睡眠时内存数据是怎么保存的?
笔记本电脑睡眠时,内存其实仍在微量供电以保持数据。这时候DRAM刷新仍在进行,只是频率可能降低。更省电的方法是“休眠”模式,这时内存数据会完整写入硬盘保存,然后彻底断电,唤醒时再从硬盘读回内存。
我的电脑经常蓝屏显示“内存管理错误”,这和DRAM读取机制有关吗?
很可能有关。这类错误常常源于DRAM读数据时出现的无法纠正的错误。DRAM存储单元随使用时间增加或温度变化可能出现稳定性下降,导致读取时电荷状态判断失误。
未来有没有可能彻底改变DRAM这种需要不断刷新的架构?
学术界和产业界正在探索多种可能。存内计算(PIM)架构将计算单元直接集成到DRAM芯片中,减少数据搬运需求-2。新型非易失性内存如MRAM、ReRAM等完全不需刷新,但目前在容量和成本上还难以完全替代DRAM。