揭秘DRAM读干扰:RowHammer与RowPress现象
摘要
该学术论文弥合了DRAM读干扰现象(RowHammer和RowPress)的实验表征与器件级建模之间的鸿沟,利用TCAD仿真阐释了比特翻转方向、翻转次数及最小攻击行激活数,对缓解技术具有指导意义。
暂无内容
查看缓存全文
缓存时间: 2026/07/31 23:00
# 弥合 RowHammer 与 RowPress 现象的实验表征与器件级建模之间的鸿沟
来源:https://arxiv.org/html/2607.28233
\bstctlcite IEEEexample:BSTcontrol
Haocong Luo¹, Longda Zhou²¹, Ataberk Olgun¹, İsmail Emir Yüksel¹, Nisa Bostanci¹, Zhigang Ji³, Xing Wu², Onur Mutlu¹
¹ ETH Zurich
² 华东师范大学
³ 上海交通大学
###### 摘要
DRAM 读干扰(如 RowHammer 和 RowPress)是一个关键的可靠性问题,访问 DRAM 可能导致其他未访问 DRAM 位置发生非有意的位翻转。DRAM 读干扰位翻转显著影响基于 DRAM 的计算系统的安全、可靠和可信运行。许多先前的工作对 DRAM 读干扰位翻转进行了广泛的实验表征,并基于经验表征结果提出了缓解技术。另一些器件级工作研究了 DRAM 读干扰位翻转的底层物理机制,但这些机制并不能完全解释实验表征研究中的所有经验观察。本文的目标是弥合 RowHammer 和 RowPress 的实验表征与器件级建模及理解之间的差距,为未来理解、表征和缓解 DRAM 读干扰的工作提供有原则的基础。为此,我们首先识别并展示了现有器件级建模工作对 RowHammer 和 RowPress 物理机制的理解与 RowHammer 和 RowPress 位翻转实验表征之间的差距和不一致。我们聚焦于 RowHammer 和 RowPress 读干扰位翻转的三个最基础指标,它们应当映射到首要的底层物理机制:1)位翻转方向,2)位翻转数量,以及 3)触发首次位翻转所需的最小攻击行激活次数(即 $\mathrm{AC}_{min}$)。其次,我们提出了一套全面且严格的 TCAD 模拟,这些模拟与 RowHammer 和 RowPress 位翻转实验表征中观察到的现象相匹配。根据我们的结果,我们 1)总结了一套更新的器件级错误机制,用于理解 RowHammer 和 RowPress 位翻转;2)识别了显著影响模拟结果是否与真实芯片表征匹配的关键建模和模拟参数。我们讨论了我们的发现对 1)严格、全面且高效的 DRAM 读干扰位翻转实验表征方法论,以及 2)DRAM 读干扰缓解技术设计的影响。
## 1 引言
读干扰是 DRAM 中一个关键的可靠性问题,访问 DRAM 行(即攻击行)可能在附近*未访问*的 DRAM 行(即受害行)中引起*非有意的*位翻转。RowHammer\[1 (https://arxiv.org/html/2607.28233#bib.bib1),2 (https://arxiv.org/html/2607.28233#bib.bib2)\]和 RowPress\[3 (https://arxiv.org/html/2607.28233#bib.bib3),4 (https://arxiv.org/html/2607.28233#bib.bib4)\]等 DRAM 读干扰现象显著影响基于 DRAM 的计算系统的安全、可靠和可信运行。恶意方可以利用 DRAM 读干扰位翻转来破坏内存隔离这一基本安全属性\[5 (https://arxiv.org/html/2607.28233#bib.bib5),6 (https://arxiv.org/html/2607.28233#bib.bib6),7 (https://arxiv.org/html/2607.28233#bib.bib7),8 (https://arxiv.org/html/2607.28233#bib.bib8),9 (https://arxiv.org/html/2607.28233#bib.bib9),10 (https://arxiv.org/html/2607.28233#bib.bib10),11 (https://arxiv.org/html/2607.28233#bib.bib11),12 (https://arxiv.org/html/2607.28233#bib.bib12),13 (https://arxiv.org/html/2607.28233#bib.bib13),1 (https://arxiv.org/html/2607.28233#bib.bib1),14 (https://arxiv.org/html/2607.28233#bib.bib14),15 (https://arxiv.org/html/2607.28233#bib.bib15),16 (https://arxiv.org/html/2607.28233#bib.bib16),17 (https://arxiv.org/html/2607.28233#bib.bib17),18 (https://arxiv.org/html/2607.28233#bib.bib18),19 (https://arxiv.org/html/2607.28233#bib.bib19),20 (https://arxiv.org/html/2607.28233#bib.bib20),21 (https://arxiv.org/html/2607.28233#bib.bib21),22 (https://arxiv.org/html/2607.28233#bib.bib22),23 (https://arxiv.org/html/2607.28233#bib.bib23),24 (https://arxiv.org/html/2607.28233#bib.bib24),25 (https://arxiv.org/html/2607.28233#bib.bib25),26 (https://arxiv.org/html/2607.28233#bib.bib26),27 (https://arxiv.org/html/2607.28233#bib.bib27),28 (https://arxiv.org/html/2607.28233#bib.bib28),29 (https://arxiv.org/html/2607.28233#bib.bib29),30 (https://arxiv.org/html/2607.28233#bib.bib30),31 (https://arxiv.org/html/2607.28233#bib.bib31),32 (https://arxiv.org/html/2607.28233#bib.bib32),33 (https://arxiv.org/html/2607.28233#bib.bib33),34 (https://arxiv.org/html/2607.28233#bib.bib34),35 (https://arxiv.org/html/2607.28233#bib.bib35),36 (https://arxiv.org/html/2607.28233#bib.bib36),37 (https://arxiv.org/html/2607.28233#bib.bib37),38 (https://arxiv.org/html/2607.28233#bib.bib38),39 (https://arxiv.org/html/2607.28233#bib.bib39),40 (https://arxiv.org/html/2607.28233#bib.bib40),41 (https://arxiv.org/html/2607.28233#bib.bib41),42 (https://arxiv.org/html/2607.28233#bib.bib42),43 (https://arxiv.org/html/2607.28233#bib.bib43),44 (https://arxiv.org/html/2607.28233#bib.bib44),45 (https://arxiv.org/html/2607.28233#bib.bib45),46 (https://arxiv.org/html/2607.28233#bib.bib46),47 (https://arxiv.org/html/2607.28233#bib.bib47),48 (https://arxiv.org/html/2607.28233#bib.bib48),49 (https://arxiv.org/html/2607.28233#bib.bib49),50 (https://arxiv.org/html/2607.28233#bib.bib50),51 (https://arxiv.org/html/2607.28233#bib.bib51),52 (https://arxiv.org/html/2607.28233#bib.bib52),53 (https://arxiv.org/html/2607.28233#bib.bib53),54 (https://arxiv.org/html/2607.28233#bib.bib54),55 (https://arxiv.org/html/2607.28233#bib.bib55),56 (https://arxiv.org/html/2607.28233#bib.bib56),57 (https://arxiv.org/html/2607.28233#bib.bib57),58 (https://arxiv.org/html/2607.28233#bib.bib58),59 (https://arxiv.org/html/2607.28233#bib.bib59),60 (https://arxiv.org/html/2607.28233#bib.bib60),61 (https://arxiv.org/html/2607.28233#bib.bib61),62 (https://arxiv.org/html/2607.28233#bib.bib62),63 (https://arxiv.org/html/2607.28233#bib.bib63),64 (https://arxiv.org/html/2607.28233#bib.bib64),65 (https://arxiv.org/html/2607.28233#bib.bib65),66 (https://arxiv.org/html/2607.28233#bib.bib66),67 (https://arxiv.org/html/2607.28233#bib.bib67),68 (https://arxiv.org/html/2607.28233#bib.bib68)\]。许多先前的工作在真实 DRAM 芯片上进行了广泛的实验表征\[1 (https://arxiv.org/html/2607.28233#bib.bib1),2 (https://arxiv.org/html/2607.28233#bib.bib2),69 (https://arxiv.org/html/2607.28233#bib.bib69),70 (https://arxiv.org/html/2607.28233#bib.bib70),3 (https://arxiv.org/html/2607.28233#bib.bib3),71 (https://arxiv.org/html/2607.28233#bib.bib71),72 (https://arxiv.org/html/2607.28233#bib.bib72)\],以 1)理解不同条件(如数据模式、访问模式、温度)下的读干扰位翻转,2)测量关键稳健性指标,如诱发至少一个位翻转所需的最小攻击行激活次数($\mathrm{AC}_{min}$)和位错误率(BER)。DRAM 读干扰缓解技术依赖这些经验表征结果和测量来正确配置,以确保其设计的稳健性。要从根本上理解 DRAM 读干扰现象,并最终完全缓解 DRAM 读干扰位翻转,理解 DRAM 读干扰位翻转的底层器件级错误机制非常重要。先前的工作已经确定了引起 DRAM 读干扰的两个主要器件级机制:1)攻击字线和受害字线之间的寄生耦合;2)电子在硅衬底中从攻击 DRAM 单元附近向受害 DRAM 单元迁移。然而,从这些先前工作得出的器件级错误机制未能*完全*解释实验表征工作中 DRAM 读干扰位翻转的所有主要观察和特征。先前的一项工作\[73 (https://arxiv.org/html/2607.28233#bib.bib73)\]对现有器件级研究与 DRAM 读干扰位翻转的部分实验观察之间的差距和不一致进行了初步研究。例如,\[73 (https://arxiv.org/html/2607.28233#bib.bib73)\]发现,尽管最先进的双侧 RowHammer 器件建模只产生 1→0 位翻转,但真实芯片表征结果一致显示 0→1 和 1→0 两种位翻转。
我们在本文中的目标是弥合真实芯片表征与 DRAM 读干扰器件级建模之间的差距。我们专注于 RowHammer 和 RowPress,因为它们是最突出的两种 DRAM 读干扰现象。首先,我们总结了先前器件级建模工作中 RowHammer 和 RowPress 的关键器件级错误机制\[74 (https://arxiv.org/html/2607.28233#bib.bib74),75 (https://arxiv.org/html/2607.28233#bib.bib75),76 (https://arxiv.org/html/2607.28233#bib.bib76),77 (https://arxiv.org/html/2607.28233#bib.bib77),78 (https://arxiv.org/html/2607.28233#bib.bib78)\]。基于这些工作,我们确定了 1)DRAM 单元阵列布局和 2)DRAM 单元结构如何影响关键的 RowHammer 和 RowPress 位翻转特征。其次,我们设计真实 DRAM 芯片表征实验,以重现从先前器件级建模工作中识别的 RowHammer 和 RowPress 位翻转特征。通过仔细分析表征结果并将其映射到 DRAM 阵列布局和单元结构,我们确定了 1)先前工作中研究的哪些器件级机制与真实芯片表征结果一致,2)其余器件级机制与真实芯片表征结果之间的差距。第三,我们通过严格且全面的器件级 TCAD 模拟来弥合这些已识别的差距和不一致,从而完全解释实验观察。我们还确定了关键的器件级建模参数,这些参数对于使器件级建模与实验观察一致至关重要。例如,我们发现完全解释双侧 RowHammer 的位翻转方向需要建模 1)两条攻击字线到受害 DRAM 单元的不同距离,以及 2)电荷陷阱分布的结构异质性。我们还发现,体区空穴陷阱密度关键地决定了器件级 RowPress 建模是否与真实芯片表征结果一致。根据我们的建模和模拟,我们总结了一套更新且详细的底层物理错误机制,以解释 RowHammer 和 RowPress 位翻转特征。基于我们的结果,我们讨论了我们的发现对 1)严格、全面且高效的 DRAM 读干扰位翻转实验表征方法论,以及 2)DRAM 读干扰缓解技术设计的影响。例如,我们发现,在给定的(通常较高的)攻击行激活次数下的位错误率(BER)虽然更容易表征,但并不能直接作为双侧 RowHammer 诱发至少一个位翻转所需的最小攻击激活次数($\mathrm{AC}_{min}$)的代理指标,因为 0→1 和 1→0 位翻转具有复杂的、行为不同的底层错误机制。我们在本文中做出以下关键贡献:
- 我们提取并总结了先前经验实验表征研究中观察到的关键 DRAM 读干扰位翻转特征。
- 我们将现有器件级研究与实验观察进行比较,并识别它们之间的差距和不一致。
- 我们通过严格且全面的器件级 TCAD 模拟弥合这些差距和不一致,以 1)理解底层物理错误机制,2)识别关键的器件级建模参数,这些参数对于使器件级建模与实验观察一致至关重要。
- 我们的工作为未来以有原则且高效的方式理解、表征和缓解 DRAM 读干扰奠定了基础。
## 2 背景
### 2.1 DRAM 基本组织与操作
图 1 展示了 DRAM 的*逻辑组织*。DRAM 以电荷的形式将数据存储在每一个 DRAM 单元的电容器中。DRAM 单元被组织成二维阵列,并通过行和列来索引。DRAM 的一行单元共享同一条字线(WL),该字线控制它们各自的访问晶体管。
图 1:DRAM 的逻辑组织。
要访问 DRAM 中的数据,内存控制器首先发送 ACT(activate)命令,使能 DRAM 行的字线。WL 随后打开激活行中所有 DRAM 单元的访问晶体管,将电容器连接到位线(BL)。BL 连接到位线感测放大器(BLSA)。BLSA 锁存来自 DRAM 单元的数据,内存控制器可以使用读/写(RD/WR)命令访问这些数据。内存控制器完成数据访问后,发送 PRE(precharge)命令关闭激活行,为 DRAM 下一次访问做好准备。
### 2.2 DRAM 单元的物理版图与结构
图 2.a 展示了现代高密度 $6F^2$ 阵列中 DRAM 单元*物理版图*的俯视图。在 $6F^2$ DRAM 单元阵列中,共享同一条 BL 的两个相邻行中的两个 DRAM 单元也共享同一个有源区(即形成访问晶体管的物理区域)。
图 2:DRAM 单元的物理版图,展示了 a) $6F^2$ DRAM 单元阵列的俯视图,以及 b) 从 a) 中黑色虚线截取的横截面侧视图,显示共享同一有源区的两个相邻 DRAM 单元。
图 2.b 展示了这种共享同一有源区的两个 DRAM 单元从 a) 中黑色虚线截取的横截面侧视图。我们将两个 DRAM 单元的存储节点接触(SNC,即单元电容器连接到访问晶体管的位置)分别记为 SNC1 和 SNC2。这两个单元共享同一位线接触(BLC,即它们各自的访问晶体管也共享一个端子)。对于这样两个 DRAM 单元,有四条字线具有重要意义:1)两个 DRAM 单元自身的两条字线(即 WL1 和 WL2),以及 2)两条不经过相似文章
DRAM 意面化
一种安全研究工具,利用 AMD CPU 上的 DRAM 地址加扰来解锁隐藏的平台功能(如 PSP、SMM、C6 和微码),展示了深度的硬件级攻击。
ECC与DDR5
本文介绍了ECC内存技术,包括汉明码、RDIMM和UDIMM的区别、Chipkill以及DDR5的片上ECC。
Stratum:采用3D堆叠DRAM的系统硬件协同设计以实现高效MoE
介绍了Stratum,一种采用3D堆叠DRAM的系统硬件协同设计方法,以高效加速混合专家(MoE)模型。
直接在DRAM中运行AI:浮点数解毒——纯逻辑如何释放学习的未来
BIN16在神经网络训练和推理中用布尔运算(XNOR+popcount)替代所有浮点运算,使得在现成的DRAM中直接计算成为可能,无需浮点数、梯度或超参数调优。仅用220行C代码,它就在一个训练周期内在MNIST上达到了82%的准确率。
这里有龙:386芯片中防止静电损伤、闩锁效应和亚稳态的设计
对Intel 386处理器I/O电路的详细逆向工程分析,解释了它如何处理静电、闩锁效应和亚稳态以保护芯片。