1. 项目概述当脉冲神经网络遇上片上网络如何破解同步困局在边缘计算和物联网设备中功耗是决定产品生命周期的关键。脉冲神经网络SNN作为第三代神经网络其事件驱动的特性——只在接收到或产生脉冲时才进行计算——使其在理论上拥有远低于传统人工神经网络ANN的功耗潜力。然而将这种理论优势转化为实际的芯片能效尤其是在大规模、可扩展的硬件架构上却面临着严峻的挑战。其中一个核心的“拦路虎”就是全局时间步同步。想象一下一个由成百上千个计算核心组成的SNN芯片每个核心都在独立地处理神经元状态更新。为了保证整个网络计算的正确性所有核心必须在同一个“节拍”上工作即所有核心完成当前时间步的计算后才能一起进入下一个时间步。在基于片上网络NoC的分布式架构中如何高效、低开销地实现这个“齐步走”的同步信号直接决定了系统的整体性能和能效。传统的事件驱动同步方案虽然避免了固定时钟周期带来的空闲等待但其产生的海量同步数据包Time-step Update Packets, TUPs却会淹没网络成为新的性能瓶颈。本文要探讨的正是我们团队在解决这一难题上的一次实践设计一个集成了时间步更新包TUP聚合机制和可重构LIF/ALIF神经元的低功耗SNN加速器。我们的目标很明确在保持SNN事件驱动、低功耗本色的同时通过架构创新大幅削减同步开销并赋予硬件适应不同计算任务从静态图像识别到动态语音识别的灵活性。最终我们在SMIC 55nm工艺下实现了一个8x8的网格状加速器达成了3.58 pJ/SOP每次突触操作皮焦耳的能效在图像和语音任务上均取得了优异的精度-能效平衡。如果你正在涉足神经形态计算芯片设计或对如何优化分布式AI硬件的通信瓶颈感兴趣那么这次从架构思路到电路细节的完整复盘或许能给你带来一些启发。2. 核心挑战与设计思路拆解从通信风暴到神经元模型抉择在深入电路细节之前我们必须先厘清要解决的核心问题是什么以及为什么选择这样的技术路径。这决定了整个芯片架构的走向。2.1 时间步同步效率与开销的永恒博弈SNN的硬件执行模型主要分为事件驱动和时间步驱动。前者极度稀疏但硬件控制逻辑复杂后者将时间离散化逻辑规整易于实现成为主流。在时间步模型中每个核心在每个时间步内累积输入脉冲更新膜电位并在时间步结束时判断是否发放脉冲。这就要求所有核心在进入下一个时间步前必须完成当前步的所有操作。传统方案及其瓶颈定时器同步每个核心内置一个计数器时间步长度固定。这是最简单的方案但问题显而易见即使某个核心早早处理完脉冲也必须空等到时间步结束造成了严重的计算资源闲置。在脉冲稀疏的应用中这种浪费被放大利用率极低。事件驱动同步传统TUP方案为了消除空闲等待学术界提出了基于TUP的事件驱动同步。核心在完成本时间步所有计算后立即生成一个TUP包发送给所有下游核心。下游核心必须收集到所有上游核心发来的TUP后才能开始下一时间步的计算。这虽然实现了“忙完就歇来活就干”的高效性却引入了新的问题通信风暴。注意这里的“下游”和“上游”指的是SNN模型中神经网络层的前后关系在硬件映射上的体现。例如第一层的所有核心是第二层所有核心的上游。在一个M x M的网格网络中如果每层有M²个核心那么传统TUP方案需要每个上游核心向每个下游核心发送一个TUP。即使利用NoC的组播Multicast能力一个核心的TUP可以复制给多个目标通信量也高达O(M⁴)核心数×组播路径长度。在大型网络中TUP流量甚至会超过真正的脉冲数据流量导致网络拥塞同步本身成了最大的延迟来源。我们的思路聚合与分发分离我们的核心洞察是下游核心其实并不关心具体是哪个上游核心发来了TUP它只关心“所有上游核心是否都已完成”这一状态。因此没必要让每个TUP都独立地走完漫长的组播路径。我们提出了“TUP聚合”机制让TUPs在向前传播的路径上就地进行智能合并。多个TUPs在中间路由器被合并成一个“代表”TUP只有这个聚合后的TUP才需要进行远距离的组播分发。这样需要经历长距离传输的TUP数量从O(M²)锐减到O(M)整体通信复杂度从O(M⁴)降到了O(M³)。如图1所示这相当于把“各自为战”的散兵游勇整合成了一支支有组织的队伍再统一行动极大减轻了交通压力。2.2 神经元模型在效率与功能间寻求平衡SNN的性能和能效高度依赖于所使用的神经元模型。Leaky Integrate-and-Fire (LIF)模型因其公式简洁、硬件实现成本低而被广泛采用。它模拟了神经元的膜电位泄露、积分和发放但对于需要捕捉时间依赖关系的任务如语音识别其能力有限因为它缺乏对历史发放频率的记忆。Adaptive LIF (ALIF)模型在LIF的基础上引入了自适应阈值机制。每次神经元发放脉冲后其发放阈值会暂时性升高这使得神经元表现出“脉冲频率适应”特性——在持续刺激下发放频率会逐渐降低。这种行为更接近生物神经元并赋予了网络处理时间序列的内在能力。然而ALIF需要额外存储和更新一个“适应性变量”带来了更多的计算和存储开销。设计抉择可重构而非二选一面对静态图像分类适合LIF和动态语音关键词检测适合ALIF等不同任务是设计两套独立的硬件还是设计一个可切换的灵活架构我们选择了后者。我们的目标是设计一个可重构的神经处理单元NPE使其既能以低功耗的LIF模式运行也能切换到功能更强的ALIF模式。关键在于这种灵活性不能以巨大的面积和功耗开销为代价。我们的策略是硬件复用与智能门控让LIF和ALIF的计算单元最大程度地共享硬件逻辑如加法器、乘法器、比较器并通过模式选择信号和时钟门控在LIF模式下彻底关闭ALIF独有的计算模块从而在获得灵活性的同时将额外开销控制在最低水平。3. 系统架构全景一个可扩展的神经形态计算网格基于以上思路我们构建了一个基于NoC的、可扩展的SNN加速器整体架构。它不是一个单一的大模块而是一个由许多小型、智能的“细胞”规则排列而成的计算网格。3.1 整体拓扑与核心组成我们采用了经典的2D Mesh网格拓扑。选择Mesh的原因在于其规则性、布局简单以及出色的可扩展性——只需增加行和列就能扩大网络规模。整个芯片包含64个8x8完全相同的核心Core它们通过路由网络互联构成一个统一的计算平面。每个核心是两个功能单元的紧密耦合路由器Router负责核心与外界的所有通信。它不仅是脉冲数据包的高速公路更是我们TUP聚合机制的执行者。它需要处理组播、配置包转发以及最关键的——TUP的接收、合并与转发。神经处理单元NPE这是计算的“大脑”。每个NPE内部集成了多个例如8个可重构的LIF/ALIF神经元。它负责维护神经元的膜电位、阈值等状态执行脉冲积分、泄漏、发放判断等计算并生成输出的脉冲包。同时它也是TUP的“生产者”在完成一个时间步的计算后会向路由器发出本地TUP。数据流与协议所有通信都通过统一的、轻量级的数据包进行。我们定义了三种包类型用3比特的包头区分配置包用于在系统启动或运行时向特定核心的NPE或路由表写入配置信息如权重、神经元参数、路由掩码。脉冲包这是计算的主体。当一个神经元发放脉冲时NPE会生成一个包含目标神经元地址的脉冲包。路由器根据其内部的路由表以组播方式将其复制并转发到所有需要该脉冲的后继核心。时间步更新包TUP这是同步的“信号弹”。其格式与脉冲包类似但处理逻辑完全不同。它不会被立即转发而是进入路由器的TUP聚合模块进行“合并”处理。这种基于包的通信协议使得整个系统非常规整和可配置便于映射各种不同拓扑的SNN模型。3.2 路由器不仅是交换机更是交通指挥官路由器的设计是整个架构的通信枢纽。我们采用了确定性的X-Y维度序路由算法即数据包先沿X轴水平方向传输到达目标列后再沿Y轴垂直方向传输。这种策略简单、无死锁且易于实现。路由器的关键创新在于其内部的TUP聚合模块。该模块为每个输入方向东、南、西、北、本地都设置了一个状态寄存器和一个掩码寄存器。掩码寄存器在系统配置阶段根据网络映射关系设定。它标识了本路由器需要等待哪些方向的TUP。例如如果本核心只依赖来自北方和西方的上游核心那么南、东、本地方向的掩码位会被置位表示忽略这些方向的TUP。状态寄存器记录实际TUP的到达情况。当从一个方向收到有效的TUP时对应状态位置1。TUP聚合模块持续监控所有方向的状态。只有当所有未被掩码的方向的状态位都变为1即所有需要等待的TUP都已到达时模块才会产生一个聚合完成信号。此时路由器会生成一个新的、聚合后的TUP并将其注入到组播路径发送给所有下游核心。随后所有状态寄存器被清零准备下一个时间步的聚合。这个过程实现了“N-to-1-to-M”的通信模式N个上游TUP在路径上被合并成1个再由这1个TUP通过组播分发给M个下游核心。通信量得到了根本性的抑制。4. 核心微架构实现可重构神经元与智能聚合的电路奥秘架构蓝图需要坚实的电路设计来落地。下面我们深入到NPE和TUP聚合模块的内部看看关键功能是如何用硬件语言描述的。4.1 可重构LIF/ALIF神经元电路设计神经元是计算的原子单元。我们的目标是设计一个面积高效、功耗可控的双模计算单元。图10展示了其核心结构它主要由两个计算单元构成膜电位计算单元绿色区域这是LIF和ALIF共享的核心。它包含积分器将输入脉冲乘以对应的突触权重并累加到当前的膜电位v[t]上。我们采用定点数运算来平衡精度和硬件成本。泄漏模块每个时间步膜电位会乘以一个小于1的泄漏系数α模拟生物神经元的电位衰减。阈值比较与复位将更新后的膜电位与当前阈值进行比较。这个阈值在LIF模式下是固定的V_th_static在ALIF模式下是动态的V_th_static b[t]。如果膜电位超过阈值则产生一个输出脉冲spike1并将膜电位复位通常置零或减去阈值否则spike0。自适应变量计算单元橙色区域这是ALIF模式独有的部分用于实现自适应阈值。它维护一个自适应变量b[t]。当神经元发放脉冲时b[t]会增加一个值γ否则b[t]会以系数ρ衰减。动态阈值即为静态阈值加上当前的b[t]值。这使得神经元在连续发放后阈值升高更难再次发放从而表现出脉冲频率适应。可重构性的实现技巧硬件复用膜电位计算单元尤其是积分、泄漏、比较电路在两种模式下完全共用。ALIF独有的自适应变量b[t]的更新路径加法和乘法与膜电位的泄漏路径结构相似可以部分共享算术逻辑单元ALU。时钟门控这是降低LIF模式功耗的关键。当配置信号model_sel0LIF模式时一个时钟门控单元会切断通往自适应变量计算单元的时钟信号。这意味着该单元内部的所有寄存器都不会翻转其组合逻辑的毛刺也被抑制从而几乎消除了该模块的动态功耗。同时多路选择器会将阈值输入固定为V_th_static。面积优化通过精细的逻辑综合和共享与分别独立实现LIF和ALIF两个神经元相比我们的可重构设计节省了约20.64%的面积。而与一个纯ALIF的实现相比增加的可重构逻辑主要是多路选择器和控制逻辑带来的面积开销仅为4.83%几乎可以忽略不计。4.2 TUP聚合模块的硬件实现TUP聚合模块是一个纯粹的硬件状态机其目标是可靠且高效地完成“收集-判断-转发”的操作。图8展示了其微架构。工作流程如下包解码与分类进入路由器的数据包经过仲裁后被送到类型解码器。解码器检查包头的类型字段。如果识别为TUPtype_flag0, spike_flag1则根据其到达的物理方向如North产生一个单周期脉冲信号TUP_n_valid。状态记录TUP_n_valid脉冲会置位对应方向如North的状态寄存器state_n。同时模块会结合该方向的掩码位mask_n生成一个“已接收”信号TUP_n_received。关键点在于如果该方向的掩码位为1表示不需要等待此方向则TUP_n_received会直接置为1相当于“默认已收到”。聚合判断所有五个方向东、南、西、北、本地的TUP_*_received信号会输入到一个与门或一个多输入比较器。当所有信号都为1时意味着所有需要等待的TUP均已到达。此时模块输出TUP_all_received脉冲。聚合包生成与转发TUP_all_received脉冲触发两个动作一是生成一个新的TUP包内容可以是本核心的地址或一个约定的聚合标识并将其送入路由器的输出队列准备进行组播分发二是反馈一个复位信号将所有方向的状态寄存器清零为下一次聚合做准备。实操心得掩码配置的重要性TUP聚合模块的灵活性完全依赖于掩码寄存器的正确配置。这个配置必须在SNN网络模型映射到硬件网格之后由主控制器通过发送配置包来完成。掩码定义了每个核心在时间步同步中的“依赖关系图”。如果配置错误比如该等待的方向被掩码会导致下游核心提前进入下一时间步造成计算错误反之如果多等了不该等的方向如一个关的核心则可能引入不必要的同步延迟甚至死锁。因此开发一个可靠的、与网络映射工具链联动的掩码自动生成器是保证系统正确运行的必要软件支持。5. 性能评估与结果分析数据背后的设计权衡设计完成后我们基于SMIC 55nm CMOS工艺完成了整个芯片的物理设计与流片本文主要基于仿真和综合结果分析。我们使用Synopsys的设计套件进行逻辑综合、布局布线和时序功耗分析并利用N-MNIST动态视觉数据集和SHDSpiking Heidelberg Digits语音关键词数据集来评估系统性能。5.1 面积与功耗分解芯片总面积为9.95 mm²包含64个核心。每个核心的面积约为0.145 mm²。核心内部分布如图12所示神经处理单元NPE占据了核心面积的71.83%而路由器占28.62%。这符合预期因为NPE内部包含了存储突触权重的大容量SRAM占NPE面积的84.58%这是面积消耗的主力。神经元和突触操作逻辑本身只占NPE面积的13.59%。路由器内部分布在路由器内部用于存储组播路由表的小型SRAM占了近一半的面积47.54%。而我们提出的TUP聚合模块其面积开销仅占路由器总面积的1.29%。这是一个非常积极的结果意味着我们用极小的硬件代价换来了通信性能的巨大提升。功耗分析ALIF模式在ALIF模式下NPE消耗了核心总功耗的59.09%路由器消耗40.91%。NPE的功耗主要来自权重SRAM的频繁读取58.84%其次是神经元计算26.92%。路由器的功耗则主要分布在路由表查询和输入通道的缓冲器上。值得强调的是TUP聚合模块的功耗仅占路由器总功耗的1.09%再次证明了其高效性。模式切换的功耗收益如图15所示当从ALIF模式切换到LIF模式时神经元核心的功耗降低了约4.65%。这完全得益于时钟门控技术关闭了自适应变量计算单元。虽然百分比看起来不大但在整个芯片尺度上这能带来可观的整体功耗节省特别是在运行只需LIF模型的任务时。5.2 TUP聚合机制的性能收益这是本文工作的重中之重。我们定义了总通信量V_total作为衡量指标它等于所有TUP包的跳数传输距离之和。我们对比了三种策略在网格规模M增大时的V_total增长趋势单播 传统TUP每个上游核心向每个下游核心单独发送TUP。通信复杂度为O(M⁵)随着规模扩大流量爆炸式增长完全不可行。组播 传统TUP每个上游核心发送一个TUP由网络组播到所有下游核心。复杂度为O(M⁴)。虽然比单播好但在大规模网络中TUP流量依然会成为主导。组播 TUP聚合本方案TUPs在路径上聚合只有聚合后的包进行组播。复杂度降至O(M³)。在8x8M8的网格上我们的方案相比“组播传统TUP”将TUP产生的通信量降低了73.91%相比“单播传统TUP”降低了96.69%。更重要的是随着网络规模扩大这种优势会越来越明显。对实际延迟的影响通信量的降低直接转化为传输时间的减少。实验结果表明采用TUP聚合机制后TUP传输时间占总延迟的比例从20.51%下降到了6.06%降低了约75%。这意味着同步不再是瓶颈计算单元可以更高效地工作。注意事项聚合带来的潜在延迟TUP聚合机制在减少总流量的同时引入了一个新的因素聚合等待延迟。一个聚合点必须等待所有需要的TUPs都到达后才能向下转发。在最坏情况下如果某个上游核心计算延迟很大它的TUP会拖慢整个聚合链。然而在事件驱动同步中一个核心发出TUP的时刻就是它完成本时间步最后一个脉冲处理的时刻。因此TUP的到达顺序自然遵循着计算关键路径。这种等待实际上是保证计算正确性所必需的它并没有引入额外的、不必要的空闲时间而是将原本分散的、冗长的通信等待转化为了更集中的、路径上的逻辑等待。在实际映射SNN时通过合理的任务划分与核心映射可以尽量平衡各核心的计算负载从而最小化这种聚合等待时间。5.3 整体能效与任务性能最终该加速器在1V电压、100MHz时钟频率下的能效为3.58 pJ/SOP每突触操作皮焦耳这是一个在55nm工艺下非常有竞争力的指标。图像识别N-MNIST使用LIF神经元模型在10分类任务上达到了97.80%的识别准确率每样本能耗仅为1.19 µJ。这展示了其在低功耗静态模式下的高效性。关键词检测SHD切换到ALIF神经元模型后在更复杂的语音时序任务上达到了93.53%的准确率每样本能耗为8.23 µJ。虽然能耗高于LIF模式但这正是为获得更强时间建模能力所支付的合理代价其能效依然远超传统ANN方案。这些结果验证了我们架构的有效性通过TUP聚合机制高效解决了同步通信瓶颈并通过可重构神经元设计在单一硬件平台上灵活兼顾了高能效LIF与高功能ALIF两种需求。6. 设计延伸与潜在优化方向虽然当前设计取得了不错的效果但在实际工程化和面向更复杂应用时仍有诸多可以深入探索和优化的方向。6.1 针对不平衡负载的优化TUP聚合机制的性能优势在计算负载均衡时最为明显。但在实际SNN中脉冲活动可能是高度不均匀的导致不同核心的计算完成时间差异很大负载不平衡。这会使聚合点长时间等待那个“最慢”的TUP。为了缓解这个问题可以考虑以下策略动态时间步划分不一定所有层都严格使用相同长度的时间步。对于脉冲稀疏、计算快的层可以采用更细粒度的时间步让其更快地产生TUP而不必等待后面计算复杂的层。但这需要更复杂的全局调度协议。层次化聚合与推测执行在确保数据依赖正确的前提下可以让某些层在收到大部分而非全部上游TUP后就“推测性”地开始下一时间步的计算。这需要硬件支持状态回滚机制复杂度较高。智能任务映射在将SNN模型映射到硬件网格时负载均衡应作为一个关键优化目标。通过算法将计算量大的神经元更均匀地分布到各个核心上可以从根本上减轻不平衡问题。6.2 可重构神经元的进一步优化当前的可重构设计主要共享了计算逻辑但膜电位和自适应变量b[t]是存储在独立的寄存器中的。为了进一步压缩面积可以考虑状态存储复用探索使用小型多端口SRAM或寄存器文件来统一存储所有神经元的各种状态变量v,b等通过时分复用的方式访问。这尤其适用于核心内集成大量神经元的情况能显著减少寄存器面积但会引入访问仲裁和潜在的功耗增加。近似计算与精度可调在LIF/ALIF的计算中泄漏系数α、ρ和自适应增益γ等参数通常用量化后的定点数表示。可以引入运行时可配置的算术精度如可在8位、12位、16位定点之间切换让用户在精度和功耗/面积之间进行动态权衡。对于某些对噪声不敏感的网络层使用更低精度可以大幅降低计算能耗。支持更多神经元模型当前设计支持LIF和ALIF。未来可以扩展硬件数据通路以支持更复杂的模型如Izhikevich模型或具有更复杂动力学的神经元进一步提升网络的表现能力。这需要更通用的算术单元和更复杂的控制逻辑。6.3 系统级扩展与软件生态一个成功的硬件加速器离不开强大的软件工具链支持。编译器与映射工具需要开发一个完整的编译器能够将高级SNN描述如PyTorch或Brian2训练的模型编译成适合本硬件架构的配置流。这包括将神经元和突触分配到具体的硬件核心计算并配置每个路由器的组播路由表和TUP聚合掩码生成权重和参数的配置数据。这个工具链的优化程度直接决定了硬件性能的发挥上限。网络拓扑灵活性当前的TUP聚合机制是针对前馈网络Feed-forward的层次化结构设计的。对于具有循环连接Recurrent Connection的SNN其依赖关系图可能包含环这会给TUP聚合带来死锁风险。未来的路由器可能需要更复杂的逻辑来处理循环依赖例如为循环连接引入独立的时间步同步机制。多芯片扩展单个芯片的规模和算力总是有限的。如何将TUP聚合和同步机制扩展到多芯片系统是一个更大的挑战。这可能需要引入片间互联协议和层次化的全局同步控制器。7. 总结与个人实践体会回顾这个基于TUP聚合与可重构神经元的SNN加速器设计其核心思想在于通过通信协议的创新来解放计算效率以及通过硬件资源的智能复用来实现灵活性与效率的兼得。TUP聚合机制跳出了“为同步而通信”的惯性思维转而采用“为通信而聚合”的策略用很小的硬件代价换来了通信复杂度的降维打击。可重构神经元设计则避免了“一刀切”的妥协让硬件能主动适应不同的算法需求。在实际的芯片设计过程中有几点体会尤为深刻首先跨层次协同优化至关重要。SNN加速器设计绝不仅仅是电路或架构单方面的事情。我们需要在算法模型脉冲稀疏性、时间步长、硬件架构NoC拓扑、同步策略、电路实现精度、功耗甚至工具链映射算法等多个层次上进行联合权衡与优化。例如TUP聚合掩码的生成就强烈依赖于网络映射算法对数据依赖关系的分析。其次“简单即有效”在硬件设计中往往是真理。最初我们考虑过更复杂的动态聚合路径或自适应掩码方案但最终发现基于前馈层次的、静态配置的聚合掩码方案在保证功能正确的前提下硬件实现最简单可靠性最高。额外的复杂性带来的边际收益很小却会显著增加验证难度和时序风险。最后验证是保证复杂交互系统正确的生命线。在这个包含64个核心、每个核心都有复杂状态机神经元、TUP聚合的系统中验证其在不同网络映射、不同脉冲输入模式下的功能正确性是一个巨大的挑战。我们建立了从单元测试、核心级测试到全系统仿真再到FPGA原型验证的完整流程。特别是对于TUP聚合机制我们编写了大量的定向测试用例和随机压力测试模拟各种可能的TUP到达顺序和网络拥塞情况才最终对其正确性建立了信心。这项工作为高效、可扩展的神经形态计算硬件提供了一个具体的设计实例。它所解决的问题——同步开销和模型灵活性——是任何大规模并行脉冲神经网络硬件都无法回避的。希望其中的设计思路、折中考虑和实践经验能为同行在探索更低功耗、更智能的边缘计算芯片时提供一些有价值的参考。未来的道路或许在于将这种事件驱动的、稀疏计算的范式与更先进的计算器件如存算一体和封装技术如芯粒相结合继续向着模拟生物大脑能效的终极目标迈进。