基于3T-1C eDRAM的存内计算SNN处理器:架构、电路与设计权衡

发布时间:2026/5/27 11:45:50

基于3T-1C eDRAM的存内计算SNN处理器:架构、电路与设计权衡 1. 项目概述当存内计算遇上脉冲神经网络在边缘计算和物联网设备爆炸式增长的今天我们这些做芯片设计的工程师每天都在和功耗、面积、延迟这几个“硬骨头”较劲。传统的冯·诺依曼架构计算和存储分离数据在处理器和内存之间来回搬运就像让一个短跑运动员在百米赛道上不断折返跑能量都消耗在路上了真正干活的效率反而上不去。这种“内存墙”问题在需要处理海量并行数据的神经网络尤其是脉冲神经网络SNN上表现得尤为突出。SNN模仿生物神经元的工作方式用离散的“脉冲”来传递信息天生具有事件驱动、稀疏激活的特性理论上功耗可以做到极低。更吸引人的是它支持像脉冲时序依赖可塑性STDP这样的生物可塑性无监督学习规则能让芯片自己从数据流中学习模式无需海量的标注数据。这简直就是为边缘端的实时、自适应智能处理量身定做的。然而要把SNN和STDP学习高效地实现在芯片上传统的数字电路架构显得笨重且低效大量的权重读写和模数转换ADC操作成了性能瓶颈。存内计算CIM的出现像是一把钥匙。它的思路非常直观为什么非要把数据搬到计算单元直接把计算功能做到内存阵列里不就行了这样一来乘累加MAC这种神经网络的核心操作就能在数据存储的位置并行完成彻底规避了数据搬运的功耗。近年来基于SRAM、RRAM、MRAM等各种存储器的CIM方案层出不穷。但SRAM面积大新兴存储器工艺不成熟而嵌入式动态随机存取存储器eDRAM凭借其高密度和与标准CMOS工艺的良好兼容性成了一个非常有竞争力的选择。但eDRAM用于CIM尤其是支持片上学习的SNN处理器有几个绕不开的坎一是存储单元面积要小才能实现高密度的突触阵列二是读写操作特别是学习过程中的权重更新要足够快且能效高三是如何避免使用功耗巨大的ADC来读取模拟计算的结果。这次要拆解的这篇工作正是针对这些痛点提出了一套从存储单元、访问机制到神经元电路的完整解决方案。它基于一种新颖的3T-1C eDRAM单元实现了可转置访问并创新性地引入了“免恢复访问”技术和混合信号神经元最终在28nm工艺下用0.57 mm²的面积和0.15 nJ/像素的极低能耗在MNIST数据集上实现了89.4%的分类精度。下面我就结合自己多年做混合信号电路和存算一体设计的经验带大家深入这套系统的每一个细节看看他们是怎么把想法变成芯片的。2. 核心设计思路与架构拆解2.1 为什么是3T-1C eDRAM—— 单元结构的进化论要理解这个设计首先得从存储单元的选择说起。在CIM领域存储单元就是存放神经网络权重的“仓库”其特性直接决定了整个系统的密度、能效和功能。传统方案的困境早期CIM多采用SRAM单元比如8T或9T SRAM它们支持稳定的读写和转置访问即能按行也能按列读取这对STDP学习至关重要但代价是晶体管数量多面积开销大集成密度低。另一种思路是用更简单的1T-1C eDRAM它面积小但有一个致命缺点破坏性读取。读取数据时存储电容上的电荷会与位线共享导致数据被破坏因此每次读操作后都必须紧跟一个“写回”操作来恢复数据这严重拖累了读取速度和能效。增益单元Gain Cell的诱惑与陷阱为了规避破坏性读取2T-1C或3T-1C的增益单元eDRAM被提出。它们通过一个独立的读端口晶体管来感应存储节点的电压理论上可以实现非破坏性读取。但2T-1C结构存在严重的“潜行电流”问题。简单来说当某一行被选中读取时同一列上未被选中但存储了低电平的单元其读端口晶体管可能会被抬高的位线电压微弱打开形成从位线到地的漏电路径。这不仅增加了功耗更严重的是它会“偷走”本该流向被选中单元的电流导致读取信号幅度减小动态范围变窄最终限制权重能够表示的比特数。3T-1C的平衡之道本文提出的3T-1C单元可以看作是针对上述问题的一个精巧平衡。它在2T-1C的基础上增加了一个晶体管将读操作通路和存储节点隔离开。具体来看单元包含一个写晶体管连接字线和位线、一个存储晶体管其栅极构成存储节点和一个读晶体管。存储节点连接着一个金属-氧化物-金属MOM电容。这个结构妙在两点第一它继承了增益单元非破坏性读取的潜力在特定模式下第二它通过结构设计基本消除了2T-1C中的潜行电流路径保证了行方向用于推理的MAC操作电流累积的稳定性和线性度。可转置访问的实现这个单元的核心创新在于支持“可转置”访问。这意味着同一个单元既能进行行方向的读取用于推理时的乘累加也能进行列方向的读取用于学习时的权重更新。这是通过巧妙地复用和重命名控制线实现的在行访问模式CIM模式下单元作为电流源根据存储的权重和输入脉冲向行读取位线R_RBL注入电流。在列访问模式存储模式下单元则像传统DRAM一样通过电荷共享机制将存储节点的电压感应到列位线CBL上。这种双模式能力是高效支持片上STDP学习的关键因为STDP要求能根据突触后神经元的发放快速更新与之相连的所有突触即一列权重。2.2 免恢复访问学习能效的“神来之笔”eDRAM的破坏性读取是性能杀手但本文提出了一个颠覆性的思路既然学习过程的目的就是更新权重那么读取旧权重后我们本来就要写入新权重为什么还要多此一举去恢复旧数据呢这就是“免恢复访问”技术的核心思想。在传统的存储器操作中读和写是独立的读可能破坏数据- 恢复数据 - 某个时刻写新数据。而在STDP学习过程中当某个突触后神经元发放时系统需要读取与该神经元相连的所有突触权重根据STDP规则计算新的权重值然后写回。这个过程天然就是一个“读取-计算-写入”的序列。本文的设计充分利用了这一特性。在进行学习操作的列读取时它坦然地使用了电荷共享式的破坏性读取。但在读取之后它并不启动恢复周期而是直接进入写入阶段将刚刚由权重更新模块计算出的新权重值写入单元。旧数据被读取后即弃用新数据紧随其后覆盖恢复操作变得完全多余。这一改变直接消除了学习读取操作中最耗能、最耗时的环节。根据论文中的仿真数据在144x40的eDRAM阵列上这一技术节省了高达27%的能耗。注意免恢复访问仅适用于学习模式下的权重更新操作。对于常规的数据保持由于没有即时的写入操作跟随eDRAM单元仍然需要周期性的刷新操作来补偿漏电导致的数据丢失。因此电路设计必须能区分这两种模式在刷新时启用恢复在学习时关闭恢复。2.3 混合信号神经元告别ADC的优雅方案SNN的另一个功耗大户是模数转换器ADC。在传统的CIM架构中模拟位线上累积的电荷代表膜电位需要被高精度的ADC转换为数字信号才能与阈值进行比较判断神经元是否发放。一个中等度的ADC就可能吃掉整个宏电路一半以上的功耗和面积。本文的解决方案非常巧妙它利用了SNN和LIF神经元模型的生物学特性。LIF神经元的行为是膜电位随时间累积输入积分同时缓慢泄漏泄漏超过阈值则发放并重置发放。作者提出了一个“泄漏积分发放位线”LIF_BL的概念。他们将神经元的膜电位直接映射到位线R_RBL的电压上。工作原理积分当输入脉冲到来时被激活的突触单元向LIF_BL注入电流对其寄生电容充电电压上升。泄漏通过一个栅极接固定偏压Vleak的NMOS晶体管持续地从LIF_BL上缓慢泄放电荷模拟生物神经元的泄漏。发放与减法这是最精彩的部分。他们用一个比较器持续比较LIF_BL电压V_LIF_BL和一个参考电压Vref。当V_LIF_BL Vref时并不直接认为神经元发放而是先进入一个“减法模式”。一个减法电路被激活在极短时间如85ps内从LIF_BL上抽走相当于Vref的电荷量。此时V_LIF_BL V_LIF_BL - Vref。同时一个数字计数器NS加1。这个过程可以重复多次直到V_LIF_BL无法再超过Vref。此时膜电位的完整信息 数字部分NS * Vref 模拟剩余部分V_LIF_BL。发放当膜电位由NS和V_LIF_BL共同表示超过一个更高的阈值时神经元才最终发放脉冲并触发权重更新。优势无ADC完全用模拟电压比较和简单的数字计数替代了高精度ADC。扩展动态范围通过“减法-计数”机制理论上可以用有限的电压摆幅受电源电压限制表示无限大的膜电位突破了传统模拟神经元电压范围有限的瓶颈。精度与能效的平衡虽然减法操作会引入非线性晶体管电流与电压有关但通过精细的电路设计和系统层面的校准如论文中提到的工艺跟踪减法块可以将误差控制在可接受范围内以换取能效的巨大提升。3. 电路实现细节与关键模块剖析3.1 可转置3T-1C eDRAM单元的详细操作让我们深入到晶体管级别看看这个核心单元是如何工作的。单元包含三个NMOS晶体管M1, M2, M3和一个MOM电容Cs。写操作Write与标准eDRAM类似。当列字线CWL被置高写位线WBL上施加要写入的数据电压VDD或GND。通过M1晶体管将数据电压传输到存储节点SN。SN上的电容Cs负责保持这个电压。为了可靠写入‘1’高电平CWL电压需要被提升到高于VDD如1.4V以克服M1的阈值电压损失。行读取/推理操作Row Read / Inference这是CIM模式。行读字线R_RWL施加一个负向短脉冲代表输入脉冲‘1’行读位线R_RBL预充电到一个初始电平。存储节点SN的电压控制着M3的栅极。如果SN存储的是‘0’高电平M3导通。当R_RWL变低时M2导通电流从R_RBL通过M2和M3流到地对R_RBL电容进行放电具体取决于偏置论文中描述为充电原理相通。如果SN存储的是‘1’低电平M3关闭没有电流路径。因此流经R_RBL的电流大小或R_RBL的电压变化就代表了权重SN状态和输入R_RWL脉冲的乘积结果。同一列上所有被激活单元的电流会同时在R_RBL上累积完成MAC操作。列读取/学习操作Column Read / Learning这是存储模式。列位线CBL预充电到VDD/2。当列字线CWL置高时M1导通存储电容Cs与CBL的寄生电容Cbl发生电荷共享。若SN存储‘1’低电平如0V共享后CBL电压下降。若SN存储‘0’高电平如VDD共享后CBL电压上升。这个微小的电压差通常几十毫伏由灵敏放大器Sense Amplifier, SA检测并放大为全摆幅的数字信号。如前所述这是一个破坏性读取但紧随其后的就是新权重的写入因此无需恢复。布局考量为了支持折叠位线架构提高共模噪声抑制能力单元设计为纵向拉长以便为水平走线的CBL/CBLB对留出布线空间。MOM电容Cs利用金属层M1-M7在单元内部垂直堆叠实现在有限的面积内最大化电容值这对提高读取信噪比和延长数据保持时间至关重要。3.2 支持免恢复访问的灵敏放大器设计传统的DRAM灵敏放大器设计用于破坏性读取后的数据恢复和重写。在本设计中需要一种能灵活支持两种模式的灵敏放大器1) 学习模式下的免恢复读取2) 刷新模式下的带恢复读取。论文提出的灵敏放大器电路是一个关键创新。它集成了偏移消除功能以应对工艺偏差导致的微小失调电压。其工作流程如下偏移消除阶段在电荷共享之前先激活灵敏放大器拉高PP拉低NN同时打开位线隔离管ISO_BL/ISO_BLB让放大器两边的内部节点短接使其工作点稳定在中间值从而“记住”自身的失调。然后关闭隔离管失调信息被存储在放大器内部。传感阶段打开CWL和灵敏放大器使能信号存储节点与CBL电荷共享在CBL和CBLB上产生微小电压差。此时位线隔离管保持关闭。这使得放大器的输出可以驱动位线但位线上的电压变化不会反馈回去破坏存储节点SN的数据。这正是实现“免恢复”的关键——放大器读取了数据但切断了写回旧数据的路径。写入阶段由写驱动器根据STDP计算出的新权重直接驱动CBL/CBLB到目标电平VDD或GND通过导通的访问管M1将新数据写入存储节点。刷新模式当需要进行数据刷新时流程类似但在传感阶段后会打开位线隔离管让放大后的、正确的数据电压通过位线反馈回存储节点完成数据的恢复和刷新。这个设计巧妙地用一个控制信号ISO_BL/ISO_BLB切换了两种工作模式在保证数据可靠性的前提下为学习操作节省了大量能量。3.3 混合信号神经元与工艺跟踪减法电路LIF_BL和减法电路是替代ADC的核心。其挑战在于减法操作的精度依赖于NMOS放电电流的稳定性而该电流受工艺、电压、温度PVT变化影响显著。工艺跟踪减法块为了解决这个问题论文设计了一个自适应的减法电路。它由一组二进制加权的NMOS晶体管M1-M6、选择逻辑和一个预充电PMOS管构成。启动校准在系统启动时电路执行一个校准流程。LIF_BL被预充电到一个已知电压然后尝试用不同组合的NMOS管进行放电放电时间固定。搜索最优组合用一个比较器监测放电后LIF_BL的剩余电压是否达到目标值Vref。通过线性搜索算法找到在当下工艺角下能够最精确地在一个脉冲宽度内从LIF_BL减去Vref电压的NMOS晶体管组合例如开启M5和M2。锁定配置校准完成后这个晶体管组合的配置被锁定用于后续所有正常的减法操作。这个动态跟踪机制确保了即使在不同的芯片之间或者环条件变化时减法操作的精度都能得到保障是混合信号系统稳定工作的基石。3.4 整体系统架构与数据流整个SNN处理器是一个异构的系统级芯片SoC设计围绕eDRAM存内计算宏展开。突触阵列核心是一个576x400x3的突触阵列对应24x24输入图像400个输出神经元3位权重。为了支持3位权重权重向量的不同比特位被存储在不同的物理Bank中。这些Bank被组织成多个Tile每个Tile包含一组共享LIF_BL的Bank以减少全局布线开销。脉冲解码器输入图像被转换为泊松分布的脉冲序列。脉冲解码器接收脉冲地址并将其解码为驱动eDRAM阵列行R_RWL的、具有特定宽度的使能信号。脉冲宽度对应权重的比特位如最低有效位对应最短脉冲。计算块与动态阈值计算块维护每个神经元的内部状态包括减法计数NS和动态阈值Vth_j。参考电压Vref并非固定而是根据公式动态计算Vref_j Vth_LIF * (Vth_j - S_LIF * NS_j)其中S_LIF是减法常数。这实现了神经元的自平衡稳态防止某些神经元过度活跃。权重更新模块WUM这是STDP学习算法的执行引擎。当神经元发放时WUM启动。它通过列读取获取当前权重同时接收来自系统的“时间信号”表征前后脉冲时间差。根据NSD-STDP算法和随机数生成器WUM决定权重是增强、抑制还是保持不变然后生成新的3位权重值通过列写入操作更新回eDRAM阵列。整个“读-算-写”流程一气呵成。侧抑制在输出层采用赢者通吃Winner-Take-All的侧抑制机制当一个神经元发放后会短暂抑制其他神经元促进特征的分化学习。4. 设计权衡、仿真结果与实战经验4.1 保持时间与精度的博弈eDRAM的挥发性特性要求定期刷新数据。刷新周期越短数据越可靠但系统吞吐量损失越大刷新期间不能进行正常计算。刷新周期越长能效和性能越好但存储节点电压会因漏电而下降导致两个问题1) 读取时信号幅度减小2) 在CIM模式下晶体管的导通电流会因栅源电压变化而改变引入计算误差。论文通过大量的蒙特卡洛仿真来量化这个权衡。他们模拟了在不同刷新周期下由于单元电压衰减和器件失配导致的MAC结果误差并最终映射到MNIST分类精度的损失上。关键发现对于SNN这种具有高脉冲稀疏性的应用单个计算周期内只有少量单元被激活因此单次误差很小。但误差会在LIF_BL的模拟积分过程中随时间步累积。因此需要从系统层面评估整个推理时间窗口内的累积误差对最终分类精度的影响。设计选择仿真结果表明在120µs的刷新周期下分类精度损失约为0.3%而对系统性能的影响归一化后为0.33。这个点被认为是精度与性能的最佳平衡点被选定为最终的设计目标。这意味着阵列需要每120µs刷新一次。实操心得在eDRAM CIM设计中确定刷新周期不是一个单纯的电路问题而是一个电路-系统协同优化问题。必须结合具体的应用算法如网络规模、时间步长、激活稀疏性进行闭环仿真。盲目追求长保持时间可能带来灾难性的精度下降而过于频繁的刷新则会白白浪费能量。建立一个从晶体管级漏电模型到系统级精度评估的快速仿真框架至关重要。4.2 非线性补偿与系统级精度模拟计算永远绕不开非线性和失配问题。在这个设计中主要面临三个精度衰减因素位线累积非线性LIF_BL的充电电流来自每个突触单元的读晶体管M3。该晶体管的电流Ids与其漏源电压Vds有关。随着LIF_BL电压升高Vds减小Ids也会减小导致充电电流并非恒定从而引入非线性。论文通过仿真刻画了这种非线性关系如图22所示并在系统仿真器中建模以评估其影响。器件失配晶体管尺寸的随机偏差会导致同一列上不同单元的电流存在差异。蒙特卡洛仿真显示MAC结果对应的LIF_BL电压存在约5%的相对标准差。比较器失调用于比较V_LIF_BL和Vref的比较器存在输入失调电压仿真得到的σ值约为15.77mV。应对策略精细调谐的参考电压为了补偿累积非线性论文没有使用固定的Vref而是使用了一组分段的、随LIF_BL电压升高而递减的参考电压Vref1, Vref2, ...。这样可以在不同电压区间内获得更一致的比较精度。在系统仿真中建模所有这些非理想效应都被纳入一个C编写的SNN系统仿真器中。这个仿真器接收硬件电路的后仿真参数如非线性曲线、失配分布、失调电压运行完整的MNIST训练和测试流程从而预测真实的芯片精度。这是一个硬件-算法协同设计的典范电路的非理想特性被量化并反馈给算法评估确保了设计目标的可行性。4.3 实现结果与横向对比该芯片采用28nm CMOS工艺实现。核心指标如下面积总面积0.57 mm²其中eDRAM突触阵列约占50.7%。能效学习模式下处理每像素图像平均能耗为0.15 nJ。精度在MNIST数据集上无监督STDP学习后分类精度达到89.4%。性能密度学习操作效率达11.39M FPS/W面积效率达348.08k FPS/mm²。与同类工作对比该设计在几个关键维度上表现出色vs. SRAM CIM得益于eDRAM的高密度面积效率显著提升。vs. 新兴存储器CIM避免了工艺不成熟的风险完全基于标准CMOS逻辑工艺。vs. 带ADC的方案通过混合信号神经元彻底消除了ADC的巨大开销。vs. 其他无ADC方案通过“减法-计数”机制避免了简单的近似神经元模型带来的精度损失也规避了复杂模拟电路如电压折叠的静态功耗和设计复杂度。4.4 常见设计陷阱与排查要点基于这类设计的经验以下是一些容易踩坑的地方和调试建议潜行电流的仿真遗漏在评估2T-1C或类似增益单元时必须进行包含大量蒙特卡洛仿真的读操作验证。不能只看典型情况下的读裕度要特别关注在工艺角偏差下未被选中单元的漏电是否会导致读失败或电流累积误差超标。仿真时应将同一列上多个处于不同数据状态的单元一并纳入。混合信号接口的噪声耦合LIF_BL是一条长模拟线对数字开关噪声极其敏感。必须精心设计电源网络使用独立的模拟电源轨和地线并在LIF_BL周围布置充足的保护环Guard Ring。时钟信号线要远离敏感的模拟线。减法电路的时序收敛工艺跟踪减法块的操作涉及模拟放电和数字比较的循环。必须确保校准过程能在系统上电后的有限时间内完成并且校准逻辑本身在各种PVT条件下都能正确工作。要仔细验证校准状态机的鲁棒性。刷新调度与系统吞吐量刷新操作会阻塞正常的读写和计算。需要设计一个高效的刷新控制器支持自动、后台的刷新调度并能够被高优先级的计算请求中断刷新暂停/继续。在系统架构层面要考虑刷新对最坏情况执行时间WCET的影响。STDP学习算法的硬件友好性原始的STDP算法涉及复杂的指数函数计算不适合硬件实现。论文中采用的NSD-STDP及其随机化版本是将算法进行硬件友好化裁剪的典型例子。在项目初期就必须与算法研究人员紧密合作在保证核心功能的前提下将算法简化为比较、加减法和随机数比较等基本操作。这套基于3T-1C eDRAM的存内计算系统为我们展示了一条通往高能效、高密度神经形态计算芯片的清晰路径。它没有追求最前沿但风险高的器件而是在成熟工艺上通过巧妙的电路和架构创新将存算一体、混合信号处理和生物启发学习有机融合达到了出色的综合性能。对于从事AI加速器、低功耗芯片和混合信号电路设计的工程师来说其中关于权衡取舍的思考、解决具体电路问题的技巧以及系统级协同设计的方法论都具有很高的参考价值。

相关新闻