1. 项目概述与核心挑战在嵌入式系统尤其是移动设备和物联网节点的设计中存储器的功耗和面积往往是决定系统续航与成本的关键瓶颈。长期以来静态随机存取存储器SRAM因其高速、工艺兼容性好而占据主导地位但其“静态”二字背后是持续不断的漏电功耗和相对庞大的单元面积。随着工艺节点不断微缩SRAM的漏电问题愈发严重其静态功耗在系统总功耗中的占比越来越高成为一颗难以忽视的“电老虎”。与此同时动态随机存取存储器DRAM以其高密度和低漏电的特性成为潜在的替代者。其中增益单元嵌入式DRAMGC-eDRAM因其逻辑兼容性无需额外的电容工艺可以直接在标准逻辑工艺中实现受到了广泛关注。然而天下没有免费的午餐。GC-eDRAM的动态特性即数据以电荷形式存储在寄生电容上意味着电荷会随时间因漏电而流失。为了保住数据必须定期执行刷新操作——将数据读出、放大、再写回。这个“定期”的频率传统上必须根据整个存储阵列中在最恶劣工艺角、最极端工作条件下数据保持时间最短的那个“短板”单元来设定。这就导致了一个巨大的设计冗余为了确保那极少数“体弱”的单元不出错整个阵列的绝大多数“强壮”单元都必须被迫接受远高于其实际需求的刷新频率。其后果是刷新功耗成为GC-eDRAM功耗的主要部分并且频繁的刷新周期会占用内存总线降低内存对处理器的可用性。因此如何打破这个基于“最坏情况”的刷新率枷锁是GC-eDRAM走向主流应用必须攻克的核心难题。2. 设计思路从“预防”到“检测与容忍”传统的设计思路是“预防”通过保守的刷新率确保在任何情况下都不出错。但如果我们换个角度思考接受“错误可能发生”但能“及时发现并处理”是否就能大幅放宽对刷新率的要求这正是本文所探讨的核心理念。其背后的逻辑基于两个关键观察数据保持时间DRT的分布特性在先进工艺节点下由于随机掺杂涨落等工艺偏差GC-eDRAM单元的数据保持时间呈现长尾的对数正态分布。这意味着绝大多数单元的DRT远高于最差单元。牺牲掉尾部极少数“短命”单元的正常运行换取整个阵列刷新率的大幅降低从系统能效角度看是极具吸引力的。应用场景的容错性并非所有应用都要求100%的数据正确性。例如在图像、音频处理等近似计算领域微小的数据误差是可以接受的。更重要的是在许多存储架构中数据本身就有备份。最典型的例子就是采用写直达策略的缓存数据在写入本级缓存的同时也会写入下一级存储如主存或下级缓存。如果本级缓存中的数据因刷新不及时而损坏可以通过触发一次缓存缺失从备份中重新加载正确数据。基于此我们的设计思路从“严防死守”转变为“动态监测与弹性恢复”。核心目标是通过集成错误检测机制仅在检测到数据可能出错或已经出错时才触发必要的纠正动作如刷新或从备份恢复从而将刷新率从固定的、基于最坏情况的高频率降低到自适应的、基于实际需求的很低频率。2.1 技术路线对比ECC vs. CDMR实现错误检测与纠正最直接的想法是使用纠错码。例如单错纠正双错检测码SECDED被广泛用于提升存储器的可靠性。然而对于GC-eDRAM刷新率优化这一特定目标传统ECC方案存在明显短板面积与功耗开销大每存储一个字如64位就需要额外的校验位如7位用于SECDED这直接增加了存储阵列的面积。更复杂的是编解码逻辑电路它们不仅占用额外面积其运行也会带来动态功耗。延迟开销不可忽视编解码操作特别是解码和纠错逻辑会引入数个门延迟。对于L1缓存等对访问延迟极其敏感的应用这可能是无法接受的性能损失。纠错能力与刷新率优化的匹配度SECDED只能纠正1个错误。若想通过容忍更多错误来进一步降低刷新率就需要更强大的ECC如BCH码其编解码器的复杂度和延迟会呈指数级增长。因此我们需要一种更“轻量级”、更“原生”的错误检测方案。这就是互补双模冗余技术闪亮登场的舞台。CDMR的核心思想非常巧妙在每个存储单元内部同时存储数据位及其反码。在正常的无错误状态下这两个存储节点的值永远是互补的。一旦发生单粒子翻转或数据保持时间失效导致的位翻转两个节点就可能出现非互补状态如都变为0从而被一个极其简单的逻辑门如一个与非门检测出来。这种方案的优越性在于零延迟检测错误检测是“并行”发生的在读操作的同时通过比较两个互补节点即可完成理论上只增加一个逻辑门的延迟对性能影响微乎其微。每比特检测每个单元都能独立检测错误无需等待整个字或整行数据读出后再进行复杂的编解码运算。与刷新机制天然契合检测到错误后可以立即触发对该单元的刷新或者结合缓存架构直接将该缓存行标记为失效触发从备份重新加载。3. 核心实现4T CDMR增益单元详解理论很美好但需要坚实的电路设计来实现。我们提出的4晶体管CDMR增益单元正是这一思路的硬件载体。3.1 单元结构与工作原理传统的2T GC-eDRAM单元包含一个写晶体管、一个读晶体管和一个存储节点。我们的4T CDMR单元则扩展为两个写晶体管MW1, MW2、两个读晶体管MR1, MR2和两个互补的存储节点SN, SNB。写入操作 当写入数据时字线WWL置高打开两个写晶体管。如果要写入‘1’则写位线WBL置高电压如VDDWBLB置低电压如GND。这样电荷通过MW1对SN节点的寄生电容充电至高电平同时通过MW2对SNB节点的寄生电容放电至低电平。写入‘0’则相反。写入完成后WWL关闭数据以电荷形式分别保存在SN和SNB节点。保持与泄漏 在保持阶段所有字线关闭。电荷主要通过写晶体管MW1, MW2的亚阈值泄漏电流和栅致漏极泄漏等路径流失。关键点在于由于晶体管的非对称性存储‘1’的节点高电平比存储‘0’的节点低电平泄漏得更快。这导致了一个重要的故障模式最可能发生的DRT错误是存储的‘1’衰减成了‘0’而‘0’通常能保持更久。读取操作 读操作时读字线RWL置高打开两个读晶体管。根据SN和SNB的电压它们会控制读位线RBL和RBLB的放电速度。通过灵敏放大器比较RBL和RBLB的电压差即可读出存储的数据。错误检测机制 这是CDMR的精髓。我们在每列的末端增加一个简单的与非门其两个输入端分别连接SN和SNB经过读出后的信号或直接使用RBL和RBLB的信号经过整形后。在无错误状态下SN和SNB互补与非门输出为‘1’表示数据有效。如果发生了DRT错误假设‘1’衰减为‘0’那么SN和SNB会同时变为‘0’因为原本的‘0’节点SNB保持不变。此时与非门检测到两个输入都为‘0’输出变为‘0’立即产生一个错误标志信号。这个检测过程与读操作同步完成几乎不增加额外延迟。3.2 版图设计与面积优势在28纳米体硅CMOS工艺下我们绘制了该4T单元的版图。所有晶体管均采用最小尺寸以优化面积。关键互连线规划如下写字线WWL采用多晶硅层走线读字线RWL采用第二层金属读写位线则使用第三层金属垂直布线。最终测得单元面积为0.275 µm²。作为对比在相同设计规则下重新绘制了一个标准的6T SRAM单元其面积为0.325 µm²。这意味着集成了原生每比特错误检测能力的4T CDMR单元反而比没有任何错误检测能力的传统6T SRAM单元面积小了约15%。这一优势在考虑阵列级面积时更为显著因为SRAM若想实现类似的错误检测/纠正功能必须额外增加校验位存储单元和复杂的编解码电路其总面积开销将远大于15%。注意这里的面积对比是在相同工艺节点和设计规则下进行的公平比较。CDMR单元仅使用NMOS晶体管且无需像SRAM那样连接电源和地线VDD/GND布线更为简洁这是其实现面积优势的关键。4. 系统级集成与刷新策略将CDMR单元集成到完整的存储阵列和系统中需要设计相应的刷新控制逻辑和错误处理策略。4.1 刷新控制逻辑传统的GC-eDRAM需要一个定时器以固定的、基于最坏DRT的周期遍历所有行进行刷新。采用CDMR方案后刷新策略可以变得更加智能和高效基于错误的触发式刷新这是最直接的策略。控制器监控每一列的错误标志位。当某一行在读取时任何一个列的错误标志被置起控制器不仅会纠正该次读取通过缓存失效或使用奇偶校验位见下文还会将该行地址加入一个“待刷新队列”。在一个后台的低优先级任务中控制器依次刷新队列中的行。这种策略确保了刷新操作只发生在确实可能出错的单元上避免了大量不必要的刷新操作。混合刷新策略纯粹依赖错误触发可能存在风险例如某行数据长期不被访问错误虽已发生但未被检测到。因此可以结合一个周期很长的“看门狗”定时刷新。例如将刷新周期设置为基于平均DRT或某个较高百分位如99.9%的DRT这个周期可能比传统最坏情况周期长几个数量级。同时错误触发刷新作为主动纠错机制。这种混合策略在保证安全性的同时最大程度降低了刷新频率。4.2 错误处理与系统协同检测到错误后如何处理取决于系统的整体架构和容错需求场景一带奇偶校验的容错对于需要一定纠错能力的应用可以在每p个CDMR单元组成的组如8位、16位后增加一个奇偶校验位。当CDMR的与非门检测到某个单元出错即SN和SNB同为‘0’但无法确定是原‘1’位衰减还是原‘0’位异常翻转为‘1’后者概率极低时可以利用组内的奇偶校验信息来判断是哪一位出错并进行纠正。这实现了单错纠正SEC功能且延迟极低。场景二写直达缓存中的缓存失效这是最能发挥CDMR优势的场景。在L1写直达缓存中数据在写入缓存的同时也写入了下一级缓存如L2。当CDMR检测到某个缓存行中的数据出现错误时存储控制器不尝试当场纠正它而是直接将该缓存行标记为无效。当处理器再次请求访问该行数据时会触发一次缓存缺失然后从下一级缓存存有正确备份中重新加载该行数据到L1。这个过程对软件完全透明唯一的代价是略微增加的缓存缺失率。而换取的是刷新操作理论上可以完全停止或者设定在一个极低基于典型情况的频率上从而实现最大的节能效果。4.3 功耗与性能评估模型为了量化收益我们需要建立一个简单的评估模型。GC-eDRAM的保持功耗主要由两部分组成Pret Pleak Prefresh Pleak frefresh * (Ewrite Eread)其中Pleak是阵列的静态漏电功耗frefresh是刷新频率Ewrite和Eread分别是单次刷新操作中执行写和读的能量。传统方案frefresh必须设置为1 / min(DRT)即最差单元DRT的倒数。CDMR方案frefresh可以设置为1 / DRT_k其中DRT_k是允许出现k个错误时的DRT值例如在64位行中允许出现1个错误的DRT值。根据对数正态分布的长尾特性DRT_k远大于min(DRT)因此frefresh可大幅降低。阵列可用性公式为Av(%) [1 - Nrows * (twrite tread) * frefresh] * 100显然降低frefresh能直接提高内存可用于处理器访问的时间比例。基于在28nm工艺下的仿真数据一个256行x64列的4T CDMR阵列在容忍1到5个预设DRT错误的情况下其保持功耗相比同等条件下带有ECC的6T SRAM可以降低34%到64%。而阵列的可用性则随着刷新频率的降低而显著提升。5. 实际部署考量与挑战尽管CDMR方案优势明显但在实际芯片设计中应用仍需仔细权衡以下几个工程挑战5.1 工艺波动与建模CDMR方案的有效性建立在DRT分布的长尾特性上。这个分布的精确形状均值、方差、尾部衰减速度高度依赖于工艺。在先进工艺节点如16nm以下随机掺杂涨落等效应更加显著可能导致DRT分布更宽尾部更“厚”。这意味着为了将错误概率控制在可接受的低水平如0.1%所能容忍的错误数量k可能需要重新评估刷新率的降低幅度可能不如较成熟工艺节点那么乐观。因此在芯片设计前期必须基于具体的工艺设计套件模型进行大量的蒙特卡洛仿真以准确刻画DRT分布从而确定最优的k值和刷新策略参数。5.2 错误检测电路的鲁棒性核心的检测电路——那个与非门其本身的可靠性至关重要。它必须能在各种工艺角、电压和温度条件下准确区分“01/10”和“00”状态。当SN和SNB因漏电而电压下降但尚未完全达到逻辑‘0’时可能出现中间电平导致与非门输出不确定。因此需要精心设计读出电路和与非门的阈值确保有足够的噪声容限。一种常见的做法是在灵敏放大器之后再使用一个锁存器或施密特触发器对信号进行整形再送入与非门进行检测以提高鲁棒性。5.3 系统级验证与测试引入基于错误检测的动态刷新机制后存储子系统的行为变得更加复杂。验证工作必须覆盖所有可能场景功能验证在各种访问模式连续读、连续写、读写交错和刷新命令下确保数据正确性和错误标志的准确性。时序验证确保错误检测和后续处理刷新或缓存失效的时序满足系统要求特别是在高频率下。功耗与可靠性验证需要通过仿真和硅后测试在实际工作负载下测量平均刷新率、功耗节省以及因缓存失效导致的性能损失确保整体收益符合预期。老化与寿命测试晶体管特性会随时间老化而漂移这可能影响DRT分布和错误检测电路的性能。需要进行老化仿真确保在芯片寿命周期内该机制依然可靠。5.4 与现有设计流程的集成将CDMR单元作为标准存储编译器的一部分集成到芯片设计流程中需要开发相应的单元库、时序模型和功耗模型。工具链需要支持这种带有特殊错误检测端口的存储单元。此外负责生成刷新和控制逻辑的RTL代码也需要标准化和模块化以便在不同规模和配置的存储器中复用。6. 扩展应用与未来展望4T CDMR GC-eDRAM所代表的“检测优于预防”思想可以扩展到更广泛的低功耗存储和近似计算领域。多级错误容忍可以设计更精细的错误处理策略。例如根据错误发生的频率和位置动态调整刷新策略。对频繁出错的“弱单元”行进行更频繁的局部刷新而对稳定的行则大幅延长刷新间隔。应用于其他动态存储器该原理同样适用于其他类型的动态存储器如传统的1T-1C eDRAM。虽然1T-1C单元本身不具备互补存储节点但可以通过架构层面的冗余如使用两个独立的1T-1C单元存储数据和反码来实现类似的CDMR检测功能从而降低刷新功耗。与近似计算深度融合对于图像、语音识别、神经网络推理等具有内在容错性的近似计算应用可以主动配置CDMR存储器运行在“低可靠性”模式即大幅降低刷新率甚至关闭刷新主动允许一定数量的软错误或DRT错误发生以换取极致的能效。系统可以根据应用对精度的实时要求动态切换存储器的可靠性模式。三维集成与存内计算在三维堆叠存储或存内计算架构中功耗和带宽是关键挑战。CDMR GC-eDRAM因其高密度、低漏电和可降低刷新功耗的特性有望成为这些新兴架构中核心存储单元的有力竞争者。其内置的错误检测能力还可以与存内计算逻辑结合实现更智能的数据管理和计算过程中的容错处理。从我个人的设计经验来看任何打破常规的设计范式其成功不仅取决于电路本身的巧妙更依赖于系统级的协同设计和严谨的验证。CDMR方案为GC-eDRAM的低功耗设计打开了一扇新的大门但它要求架构师、电路设计师和验证工程师更紧密地合作从系统应用场景出发共同定义好功耗、性能、可靠性之间的新平衡点。在芯片流片前用大量的仿真数据说服自己这个动态的、基于错误检测的刷新策略在真实的、复杂多变的工作负载下依然是稳健和高效的。这其中的挑战正是工程实践的乐趣所在。