晨光
暗夜
晨光
极光
Bilingual Paper Reading · 中英对照精读

非易失存内计算的错误校正设计

准大一 · 集成电路设计与集成系统 × 存内计算 × 芯片可靠性 —— 存内计算纠错精读材料
原文:arXiv:2207.13261 2022年7月27日发布 arXiv 预印本(cs.ET) 存内计算 × 非易失存储 × 纠错码 附英文摘要朗读音频

一、论文档案

英文标题On Error Correction for Nonvolatile Processing-In-Memory
中文标题非易失存内计算(PiM)的错误校正研究
作者许斯雷夫·奇拉孙, 萨洛尼克·雷施, 扎姆谢德·I·乔杜里, 马苏德·扎比希, 吕杨, 布兰登·津克, 王建平, 萨钦·S·萨帕特内卡尔, 乌利亚·R·卡尔普兹朱(机构未在素材中标注)
发布时间2022年7月27日(v1)|分类:cs.ET(新兴技术)
一句话概括存内计算(PiM)继承存储器的错误,还会产生「计算引入的错误」——本文重访非易失 PiM 的纠错设计空间,同时考虑两类错误,提出基于汉明码的 ECiM 与基于三模冗余的 TRiM,在三种代表性非易失存储技术上都保证单比特纠错
💡 为什么选这篇给你:① 存内计算是后摩尔时代的热门方向,而「在存储器里算,出了错谁来管」是它绕不开的可靠性问题;② 概念清晰——把「存储错误」和「计算引入的逻辑错误」分开,再讲清楚为什么传统 ECC 管不了后者;③ 两种方案 ECiM(汉明码)与 TRiM(三模冗余)一「智」一「笨」,正好形成对照,读起来像看两个选手比赛。

二、核心术语表(先扫一遍再读正文)

英文术语中文大白话解释
processing in memory (PiM)存内计算直接在存储器内部完成逻辑运算,省去「数据搬来搬去」的时间与功耗。
nonvolatile memory (NVM)非易失存储器断电后数据不丢失的存储器,如 ReRAM、MRAM、STT-MRAM 等。
in-array computing / in-situ阵列内计算 / 原位计算计算直接在存储阵列内部完成、结果原位写回,是本文目标架构的关键特性。
memory error存储错误数据在存放/读出过程中出错,PiM 从底层存储器「继承」来的错误。
logic error (computation-induced error)逻辑错误(计算引入错误)在存内计算过程中产生的错误——传统 ECC 管不到,是本文的核心关注点。
error correcting code (ECC)纠错码在数据中附加冗余位,用于检测/纠正存储错误的经典手段(如汉明码)。
single error correction (SEC)单比特纠错能够纠正任意单个比特错误的能力,本文所有方案的统一保证。
Hamming code汉明码经典线性纠错码,按位置关系生成校验位;ECiM 方案的基础。
Triple-Modular Redundancy (TMR)三模冗余同一计算做三份、多数表决取结果——简单粗暴但开销大;TRiM 方案的基础。
self-checking自校验电路在运行中自行检测自身错误的一类容错设计思想。
homomorphic approach同态方法本文语境下指对计算本身做编码/变换保护、让纠错对运算「透明生效」的思路。
MAGICMAGIC 存内逻辑一种在阻变存储器(ReRAM)内直接完成逻辑运算的流行实现方式。
ReRAM / MRAM阻变存储器 / 磁阻存储器两类代表性非易失存储技术,本文分别在它们上评估纠错方案。
performance-area-coverage trade-off性能-面积-覆盖率权衡纠错方案的三大设计指标:跑多快、占多大芯片面积、能覆盖多少错误。

三、摘要中英对照(精读核心)

🎧 音频在文末,可先听一遍原文再读;每个英文句都配了逐句翻译。

摘要 Abstract

EN · 原文
Processing in memory (PiM) represents a promising computing paradigm to enhance performance of numerous data-intensive applications.
CN · 翻译
存内计算(PiM)是一种有前景的计算范式,可提升众多数据密集型应用的性能。
EN · 原文
Variants performing computing directly in emerging nonvolatile memories can deliver very high energy efficiency.
CN · 翻译
直接在新兴非易失存储器内执行计算的变体,能提供非常高的能效。
EN · 原文
PiM architectures directly inherit the vulnerabilities of the underlying memory substrates, but they also are subject to errors due to the computation in place.
CN · 翻译
PiM 架构直接继承底层存储介质的脆弱性,同时还会受到原位计算带来的错误影响。
EN · 原文
Numerous well-established error correcting codes (ECC) for memory exist, and are also considered in the PiM context, however, they typically ignore errors that occur throughout computation.
CN · 翻译
存储器领域已有大量成熟的纠错码(ECC),在 PiM 场景下也有人考虑使用,但它们通常忽略计算过程中产生的错误
EN · 原文
In this paper we revisit the error correction design space for nonvolatile PiM, considering both storage/memory and computation-induced errors, surveying several self-checking and homomorphic approaches.
CN · 翻译
本文重新审视非易失 PiM 的纠错设计空间,同时考虑存储错误与计算引入错误,并考察若干自校验与同态方法。
EN · 原文
We propose several solutions and analyze their complex performance-area-coverage trade-off, using three representative nonvolatile PiM technologies.
CN · 翻译
我们提出若干解决方案,并借助三种代表性非易失 PiM 技术分析其复杂的性能-面积-覆盖率权衡。
EN · 原文
All of these solutions guarantee single error correction for both, bulk bitwise computations and ordinary memory/storage errors.
CN · 翻译
所有这些方案都保证:对批量位运算普通存储错误两类情况均可实现单比特纠错。

关键词 Keywords:Processing-In-Memory 存内计算 | Error Correction 错误校正 | Nonvolatile Memory 非易失存储器 | ECC 纠错码

四、引言精选(为什么这个问题重要)

① 存内计算的初衷:消灭「搬数据」

EN · 原文
Processing in memory (PiM) is a promising computing paradigm for data-intensive applications. The core idea is performing logic operations directly within the memory system to minimize, if not eliminate, lengthy and power hungry data transfers.
CN · 翻译
存内计算(PiM)是面向数据密集型应用的有前景计算范式,核心思想是直接在存储系统内完成逻辑运算,以最小化(乃至消除)漫长且耗电的数据搬运。

② 关键区分:存储错误 vs 逻辑错误

EN · 原文
In this paper we make the distinction between conventional memory errors, that PiM systems inherit from the underlying memory, and logic errors, that stem from computing in memory. Logic errors do not necessarily always manifest themselves as memory errors, especially when computing continuously in memory without any interruption. In this case, corruptions due to logic errors can easily propagate before periodic ECC checks to catch conventional memory errors kick in.
CN · 翻译
本文明确区分两类错误:PiM 系统从底层存储器继承的传统存储错误,与在存内计算中产生的逻辑错误。逻辑错误不一定会表现为存储错误——尤其在存储中连续计算、从不间断时;此时,逻辑错误造成的损坏很容易在周期性 ECC 检查介入之前就传播开来。

③ 为什么不能直接照搬传统方案

EN · 原文
Targeted PiM architectures in this paper fuse logic and memory, where each memory cell can directly act as an input or as an output to a Boolean operation, and where computation strictly happens within the array. In this case, neither classical ECCs for storage/memory, nor classical fault tolerance techniques for computation directly apply and represent a comprehensive solution.
CN · 翻译
本文面向的 PiM 架构把逻辑与存储融为一体:每个存储单元可直接充当布尔运算的输入或输出,计算严格发生在阵列内部。此时,经典的存储 ECC 与经典的计算容错技术都不能直接构成完整方案

④ 既有工作的不足:只管「闲置数据」或代价太大

EN · 原文
A few studies consider ECCs in the PiM context: One example extends MAGIC based processing in (resistive) memory to support two dimensional parity bits, which enables error detection and correction in idle data only, excluding computation-induced errors [36, 32]. Another example covers Triple-Modular Redundancy (TMR) [37] for MAGIC based PiM in ReRAM. Redundancy here comes in two flavors: time and space. TMR (or generalized N-modular redundancy) is trivially simple and covers computation-induced errors, but can incur a significant time and/or space overhead.
CN · 翻译
已有少量研究在 PiM 语境下考虑 ECC:一个例子把基于 MAGIC 的(阻变)存内计算扩展出二维奇偶校验位,但只能对闲置数据做检错纠错,不包括计算引入的错误;另一个例子针对 ReRAM 中基于 MAGIC 的 PiM 采用三模冗余(TMR),冗余分时间与空间两种形式——TMR(或推广的 N 模冗余)简单直接、能覆盖计算引入错误,却可能付出可观的时间/空间开销
💡 这是全文最有味道的一句“Logic errors do not necessarily always manifest themselves as memory errors, especially when computing continuously in memory without any interruption.”——计算一直在存储器里进行、从不「落盘」检查,逻辑错误就能悄悄传播。可靠性设计最怕的就是「错误在眼皮底下滚雪球」。

五、论文贡献(3 个要点)

EN · 原文
1. Revisiting the error correction design space. To this end, we explore classical self-checking and homomorphic approaches, and introduce several solutions which can guarantee single error correction for three representative nonvolatile PiM technologies supporting in-array computing semantics.
CN · 翻译
1. 重访纠错设计空间。考察经典的自校验与同态方法,提出若干解决方案,在三种支持阵列内计算语义的代表性非易失 PiM 技术上都保证单比特纠错。
EN · 原文
2. ECiM and TRiM. We propose several solutions based on Hamming codes (ECiM) and TMR (TRiM), and characterize their time and space complexity along with energy efficiency under iso-error-coverage (guaranteed single error correction), considering representative nonvolatile PiM technologies – spanning ReRAM and MRAM variants.
CN · 翻译
2. 提出 ECiM 与 TRiM。提出基于汉明码的 ECiM 与基于三模冗余的 TRiM,并在「等错误覆盖率」(保证单比特纠错)前提下刻画其时间/空间复杂度与能效,评估覆盖 ReRAM 与 MRAM 系列的代表性非易失 PiM 技术。
EN · 原文
3. Guaranteed protection for both logic and memory errors. ECiM and TRiM by construction provide guaranteed protection against computation-induced errors and inherently cover memory/storage errors, including potential errors in the input data.
CN · 翻译
3. 对逻辑错误与存储错误的双重保证。ECiM 与 TRiM 在构造上就保证抵御计算引入错误,并天然覆盖存储错误,包括输入数据中潜在的错误。

六、结论中英对照

EN · 原文
While memory errors are extensively studied, error detection and correction for processing in memory (PiM) requires rethinking due to the highly dynamic nature of the data to be protected. In this study, we investigate various techniques to improve the reliability of nonvolatile PiM operations. We compile the specification for a PiM-oriented ideal error correction scheme and explore the design space.
CN · 翻译
尽管存储错误已被广泛研究,但存内计算(PiM)的检错纠错因为待保护数据的高度动态性而需要重新思考。本研究考察多种提升非易失 PiM 运算可靠性的技术,归纳了面向 PiM 的理想纠错方案规格,并探索了设计空间。
EN · 原文
We propose several solutions based on Hamming codes (ECiM) and TMR (TRiM), and characterize their time and space complexity along with energy efficiency under iso-error-coverage (guaranteed single error correction), considering representative nonvolatile PiM technologies – spanning ReRAM and MRAM variants. Key novel aspects which apply to all design points include: Single error protection guarantee due to error correction and detection at logic level granularity; full system design featuring an external checker with optimized data transfer to/from the checker; design modularity and straight-forward extension to stronger codes with protection guarantees for larger number of errors (such as BCH).
CN · 翻译
我们提出基于汉明码的 ECiM 与基于三模冗余的 TRiM,在等错误覆盖率(保证单比特纠错)下刻画其时间/空间复杂度与能效,评估涵盖 ReRAM 与 MRAM 系列的代表性非易失 PiM 技术。适用于全部设计点的关键新特性包括:逻辑级粒度的检错纠错带来的单比特保护保证;包含外部校验器并优化其数据往返传输的完整系统设计;设计模块化,可直接扩展到保护更多错误数量的更强编码(如 BCH)
EN · 原文
ECiM and TRiM by construction provide guaranteed protection against computation-induced errors and inherently cover memory/storage errors, including potential errors in the input data.
CN · 翻译
ECiM 与 TRiM 在构造上即保证抵御计算引入的错误,并天然覆盖存储错误,包括输入数据中的潜在错误

七、编者解读:这篇论文到底讲了什么(大白话版)

  1. 问题:传统芯片是「存储归存储、计算归计算」,存储器出错有成熟的纠错码(ECC)兜底。但存内计算把逻辑门「焊」进了存储阵列——每个存储单元既是数据又是运算的输入输出。这下麻烦来了:计算过程中也会出错,而经典 ECC 只保护「静态存放的数据」,管不了「正在算的数据」。
  2. 做法:论文先把错误分成两类——存储错误(继承自底层存储器)和逻辑错误(存内计算产生),然后提出两套方案:ECiM 用汉明码的思路给「算出来的结果」加校验、在逻辑粒度上纠错;TRiM 用三模冗余的老办法,把运算做三份、投票取多数。一「巧」一「笨」,各有权衡。
  3. 结果:在三种代表性非易失存储技术(ReRAM、MRAM 系列)上,两套方案都保证单比特纠错——既覆盖批量位运算(计算错误),也覆盖普通存储错误(包括输入数据本身出错)。
  4. 最值钱的观点:给 PiM 做纠错不能「拿来主义」——经典 ECC 针对的是「静止的数据」,而存内计算的数据是「动态流动的」,必须在逻辑运算的粒度上重新设计保护机制。方案还要模块化,以后想升级成纠多位(如 BCH)也容易。
  5. 工程意义:存内计算主打高能效,但「不可靠」会让它不敢被用在关键任务里;这套纠错设计空间分析为厂商选型提供了「性能-面积-覆盖率」的权衡地图,是可靠性设计的好样板。
🎯 对保研的启示:这篇论文示范了「旧问题在新架构下的重新审视」式研究——方法(ECC、TMR)都是经典老技术,但换到存内计算的新场景就产生新问题、新设计空间。复试时能讲清楚「为什么经典方案不能直接搬」以及「两种方案各自的代价在哪」,比堆砌新名词更能体现思考深度。

八、给准大一的阅读路线图 & 延伸方向

📖 怎么读这篇论文(三遍法)

  1. 第一遍(10 分钟):只读摘要和术语表,回答三个问题——PiM 的错误分哪两类?传统 ECC 为什么不够?本文的两种方案分别叫什么、基于什么思想?
  2. 第二遍(20 分钟):读引言 + 结论,重点体会「逻辑错误会在连续计算中悄悄传播」这个洞见,以及「等错误覆盖率」这个比较前提。
  3. 第三遍(30 分钟):读贡献与结论文字部分,跳过电路图、时序与开销公式;把「存储错误 vs 逻辑错误」「ECiM vs TRiM」两对概念在纸上画成对比表。

🚀 这个方向你能延伸做什么

九、英文摘要朗读(练听力用)

先盲听一遍→再看对照稿→再听一遍。目标是听出每个术语(processing-in-memory、nonvolatile、error correcting codes、computation-induced errors、single error correction)。