← 最新论文
💻 computer science

ColumnKeeper: Efficient Solutions to the ColumnDisturb Vulnerability in DRAM-based Systems

本文介绍了 ColumnKeeper,这是第一套通过追踪列激活或概率性刷新行来有效防止新发现的 ColumnDisturb 漏洞的缓解机制(确定性 CK-D 和概率性 CK-P),在实现高安全性的同时,仅产生极小的性能、能耗和面积开销。

原作者: Andreas Kosmas Kakolyris, F. Nisa Bostanci, Ataberk Olgun, Ismail Emir Yuksel, Harsh Songara, Konstantinos Marios Sgouras, Umut Baser, Konstantinos Kanellopoulos, A. Giray Yaglikci, Onut Mutlu

发布于 2026-06-23
📖 1 分钟阅读☕ 轻松阅读

原作者: Andreas Kosmas Kakolyris, F. Nisa Bostanci, Ataberk Olgun, Ismail Emir Yuksel, Harsh Songara, Konstantinos Marios Sgouras, Umut Baser, Konstantinos Kanellopoulos, A. Giray Yaglikci, Onut Mutlu

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下你的电脑内存(DRAM)是一个巨大的、高速运转的图书馆。在这个图书馆内部,有数百万个微小的书架(行)存放着书籍(数据)。几十年来,计算机科学家们一直担心一个被称为 RowHammer 的问题。这就像是一个淘气的孩子,在两个特定的书架之间来回奔跑,把地板震得太厉害,以至于相邻书架上的书掉落并混杂在一起。

长期以来,我们一直认为这已经是能发生的最坏情况了。但本文介绍了一个更奇怪的新问题,叫做 ColumnDisturb

新问题:“列”震动

不同于在两个书架之间摇晃地板,想象一下这个图书馆有一个独特的设计:书架被排列成垂直的列,并且共享一个共同的支撑梁。

ColumnDisturb 发生在有人反复敲击某一特定垂直列的书籍时。由于该图书馆的设计方式(论文中称之为“开位线架构”,open-bitline architecture),敲击一列不仅会影响该书架上的书,还会震动整个支撑梁,导致同时有三个完整区域的书架上的书掉落。

  • 旧问题 (Rowhammer): 影响附近的几个书架。
  • 新问题 (ColumnDisturb): 同时影响三个不同区域的数千个书架。

现有的保安(缓解机制)是针对“摇晃地板”问题进行训练的。面对这种新的“震动梁”问题,他们完全无能为力,因为他们观察的角度不对,也不理解一次敲击会影响三个区域。

解决方案:ColumnKeeper

作者提出了一个名为 ColumnKeeper 的新安全系统。你可以把它想象成一套新的图书馆管理员规则,用以防止书籍掉落。他们提供了两种不同风格的保安:

1. 确定性保安 (ColumnKeeper-D)

这位保安就像一位精准的会计师

  • 工作原理: 保安知道,当你敲击一列时,它会影响一个区域内的“奇数号”书籍和相邻区域内的“偶数号”书籍。
  • 诀窍: 这位保安不仅仅是统计“这一列被敲击了多少次?”,他还会保留两张独立的记账卡:一张用于记录奇数次敲击,另一张用于记录偶数次敲击。
  • 为什么聪明: 如果你敲击这一列的方式只影响了邻近区域的奇数书籍,这位保安就不会产生混乱,也不会误以为两个区域都被敲击了。这避免了“重复计数”敲击次数的情况。
  • 行动: 一旦其中一张卡上的分数过高,保安就会从受影响的区域中随机挑选一本书,并在书掉落之前将其放回原处(刷新它)。他一次只处理一本书,动作缓慢,这样就不会停止图书馆的运作。

2. 概率性保安 (ColumnKeeper-P)

这位保安就像一位掷硬币的赌徒

  • 工作原理: 这位保安根本不保留记账卡。每当有一列被敲击时,保安就会掷一次硬币。
  • 行动: 如果硬币显示“正面”(这发生在一个经过精确计算的概率下),保安会立即去刷新受影响的三个区域中的一本书。
  • 为什么好: 它更容易构建(需要的硬件更少)且成本更低。虽然它不能 100% 保证抓住每一次敲击,但数学证明,书籍掉落的概率极低(就像连续多次赢得彩票一样),因此在几乎任何情况下都是安全的。

它的效果如何?

作者在模拟的计算机环境中测试了这些保安。以下是他们的发现:

  • 速度: 这些保安非常快。在当前的“安全”场景下(即需要 100 万次敲击才会损坏内存),保安让计算机变慢的程度几乎可以忽略不计(小于 0.5%)。即使在“近未来”的场景下(内存更加脆弱,只需 12.8 万次敲击),减速仍然非常小(大约 1-3%)。
  • 能量: 这些保安不会消耗过多的额外电量。
  • 体积: 增加这些保安所需的硬件体积非常小。 “会计师”保安在芯片上仅占用约 0.1 平方毫米的空间,而“赌徒”保安占用的空间甚至更少,仅为 0.03 平方毫米。这大约只有一粒沙子那么大。

“如果……会怎样”的情景

论文还研究了如果未来的内存变得极其脆弱(仅需 1.6 万次敲击就会损坏)时会发生什么。

  • 问题: 保安必须如此频繁地刷新书籍,以至于图书馆的运行速度会显著下降。
  • 解决方法: 论文提出了两种修复方法:
    1. 更小的书架: 如果图书馆的区域(子阵列)更小,保安就无需检查那么多书籍。
    2. 并行保安: 如果图书馆允许多个保安同时在不同区域工作(这是一个被称为“子阵列级并行性”的功能),减速程度将会减轻很多。

总结

ColumnKeeper 是第一个旨在阻止这种新型“列扰动”震动问题的系统。它提供了两种选择:

  1. ColumnKeeper-D: 一个智能、精准的系统,通过仔细统计敲击次数来避免不必要的劳动。
  2. ColumnKeeper-P: 一个更简单、更便宜的系统,利用随机性来保持安全。

两种方案都能保护你的电脑内存免于崩溃或数据泄露,且几乎不会带来速度或电池寿命方面的代价,并且它们可以以极小的额外空间成本构建在未来的计算机中。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →