ETCIM-解决传统SRAM纠错方法在数字CIM上的局限

论文名:ETCIM: Error-Tolerant Digital CIM Processor With
Redundancy-Free Hard Error Repair and Run-Time
Soft Error Correction, 来自香港科技大学Fengbing Tu老师组。

SRAM的读出error分为hard与soft两类,hard error由芯片制造的过程产生。soft error指存内计算时Bit line上的值翻转不正确导致计算错误。传统的SRAM error correction对hard error采用column repair,对soft error采用hamming error correction code (ECC)。

column repair:当制造缺陷导致某一列存储单元(SRAM cell column)失效时,电路会通过冗余列(redundant column) 来替换坏掉的列,从而提高芯片的良率和可用性。
其工作流程为:

  1. 添加冗余列:在 SRAM 阵列中额外预留一些“备用列”(redundant columns)。

  2. 检测坏列:芯片测试阶段(通常通过 BIST — Built-In Self-Test)会识别哪些列存在永久性故障(如 stuck-at-0/1)。

  3. 地址重映射:通过 绕行逻辑(detour logic),将原本指向故障列的访问,改为访问冗余列。

  4. 效果:用户层面看不到坏列,SRAM 可以像正常一样工作。

但是,数字 CIM 一次要并行读出多行(rows)来做乘加运算(MAC),如果对每一行都使用 column repair,就会导致 每一行都需要复杂的 detour logic,结果就是大面积和功耗开销,论文中测得高达 24.3% 面积和 14.3% 功耗开销。

在先进的工艺中,工作电压与阈值电压的scale down并不是成比例的。工作电压 $V{op}$ 会随着工艺缩小而降低(为了减少功耗),但阈值电压$V{th}$ 降低得更慢,因为受限于 栅极工程(gate engineering) 技术。这使得SRAM的噪声容限下降,成为了SRAM发生soft error的背景之一。

Gate engineering 指的是在先进 CMOS 工艺里,通过改变 栅极材料、栅极厚度、掺杂工艺、应力调控等方法,来优化晶体管的性能(例如降低阈值电压、提升驱动电流、减小漏电流)。举例:高介电常数(High-k)+ 金属栅 (HKMG),FinFET 的三维栅极结构,Gate-all-around (GAA) 纳米片等。

2025-09-08T140931

所以ETCIM解决hard error的方法就是,如果一列中出错了,那就让它错好了,只需要在计算的时候把对应的input也取反,保证计算结果的正确就可以。

ETCIM macro大小为$168 \times 281$, 其中每一行包含256-b weight,13-b的checksum与12-b的residue code。

ETCIM修复hard error的workflow

stuck-at fault:

Stuck-at-0 fault指节点/存储单元 永远输出 0;
就算写入“1”,读出来还是“0”;就像这个比特被“焊死”在逻辑低电平。

Stuck-at-1 fault指节点/存储单元 永远输出 1;就算写入“0”,读出来还是“1”;就像这个比特被“焊死”在逻辑高电平。

2025-09-09T082726

图中W0出现的了stuck-at 1 fault,而写入的weight与该fault不一致。于是W0被取反读出。W1出现的了stuck-at 0 fault,但由于写入的weight与该fault一致,所以W1保持不变。