1. 项目概述为什么我们需要一种全新的存内计算架构做AI硬件加速器设计这么多年我深刻体会到“内存墙”是横在性能提升面前的一座大山。传统的冯·诺依曼架构把计算和存储分开处理器吭哧吭哧地算数据就得在内存和计算单元之间来回搬运这个过程消耗的功耗和带来的延迟常常比计算本身还要高。尤其是在处理卷积神经网络这类以矩阵向量乘法为核心的负载时数据复用率高但搬运开销巨大能效比就成了大问题。存内计算就是为了解决这个问题而生的。它的思路很直接既然数据搬运这么费劲那干脆把计算搬到数据旁边去。直接在存储数据的存储阵列里完成乘加运算结果通过模拟或数字信号读出。理想情况下这能带来成百上千倍的能效提升。听起来很美但真要把这条路走通尤其是实现高精度、高能效且灵活可用的多比特计算挑战重重。目前主流的方案大致分两条路。一条是走非易失性存储器路线比如用阻变存储器或相变存储器。它们的优势是天生就能在一个单元里存多个比特存储密度高。但痛点也很明显器件本身的非线性特性严重写操作耗能高、速度慢而且擦写次数有限。这意味着权重一旦写入就很难频繁更新不适合需要在线学习或权重动态变化的模型。另一条路是用易失性存储器比如SRAM或嵌入式DRAM。它们读写速度快、可无限次重写灵活性好。但为了存多比特权重往往需要多个SRAM单元组合面积开销大或者利用模拟DRAM的多级电平又容易受到泄漏电流、电荷注入和晶体管失配的影响导致计算精度下降往往需要复杂的硬件感知训练来补偿。所以我们一直卡在一个尴尬的三角困境里高精度、高能效高密度、可重写性三者似乎难以兼得。直到我们团队开始琢磨能不能把两者的优势结合起来用某种高密度的非易失性器件但不是直接存权重而是用来实现一个极其紧凑、高精度的“转换器”同时用可快速重写的易失性单元来存动态的权重。这就是我们设计PERCEL架构的核心思路在每个存储单元里集成一个基于电荷俘获晶体管的6位数模转换器搭配一个1T1C的嵌入式DRAM来存储1比特权重。这个想法听起来有点“缝合怪”但实测下来它确实在22纳米工艺下打破了那个三角困境。后仿真显示我们的宏单元能达到49.9 TOPS/W的能效和8.96 TOPS/mm²的计算密度。更重要的是在CIFAR-10和CIFAR-100数据集上用ResNet-50模型测试推理精度损失小于0.2%而且完全不需要针对硬件做任何特殊的重新训练。这对于希望将先进模型快速部署到边缘设备的工程师来说是个非常实在的利好。2. 核心架构拆解单元级DAC如何成为破局关键要理解PERCEL为何有效得先拆开看看它的核心——那个集成在每个存储单元里的6位电流模DAC。这可不是一个普通的DAC它的设计处处体现了在存内计算这个特定场景下对面积、精度和功耗的极致权衡。2.1 从存储到计算比特单元的重新定义在传统的存内计算交叉阵列中一个存储单元比特单元通常只做一件事存储一个电导值代表权重。计算时输入电压施加在字线上流过单元的电流与电导值权重和输入电压的乘积成正比所有同一比特线上的电流在模拟域求和最后由一个高精度的模数转换器读出结果。PERCEL的比特单元被赋予了更强的能力。它不再仅仅是一个被动的存储元件而是一个主动的、可配置的“计算发射器”。如图1所示每个单元包含两大核心部分一个7晶体管构成的6位电流型DAC这是计算的“发动机”。它接收一个6位的数字输入激活值并将其转换为一个精确的模拟电流。一个1T1C嵌入式DRAM这是权重的“开关”。它存储一个1比特的权重0或1。这个权重值控制着一个大型传输门AND开关决定DAC产生的电流是否被允许流入共享的比特线。计算过程可以这样理解6位激活值数字信号进入单元被DAC转换为一个成比例的电流I_DAC。同时DRAM中存储的1位权重值W控制着AND开关。如果W1开关打开电流I_DAC流入比特线参与累加如果W0开关关闭该单元对本次计算无贡献。最终同一列上所有W1的单元贡献的电流在比特线上进行模拟求和这个总电流就代表了该列输出点积的模拟值。这种“多比特激活 × 单比特权重”的架构有几个巧妙之处。首先它将多比特的复杂性从权重侧转移到了激活侧。权重只用1比特存储极大地简化了存储单元使其可以采用面积小、可快速重写的eDRAM。而激活值的多比特到模拟的转换则通过高密度集成的DAC来完成。其次由于每个单元都有自己的DAC激活值的转换是“分布式”完成的这避免了在字线驱动器端使用大型、高精度的全局DAC也缓解了同一字线上不同单元因失配导致的精度问题。2.2 电荷俘获晶体管实现紧凑DAC的秘密武器DAC要做到6位精度传统做法需要精心设计晶体管尺寸比例来产生二进制加权的电流源并且为了对抗工艺失配晶体管尺寸往往做得很大。这在每个单元都要集成一个DAC的背景下面积开销是无法承受的。我们选择电荷俘获晶体管作为DAC电流源的核心。CTT本质上是一个标准的高k栅介质晶体管但其阈值电压可以通过施加适当的栅压脉冲进行精确、连续且非易失性的编程。具体来说在栅极施加一个中等电压如2.5V的脉冲会在栅介质中诱捕电荷从而永久性地改变晶体管的阈值电压V_th。这个过程是可逆的通过擦除操作并且状态在85°C高温下也能长期保持。CTT如何实现电流源我们让所有DAC中的CTT晶体管工作在深度亚阈值区V_GS0.3V,V_DS0.6V。在这个区域晶体管的漏极电流I_D与V_GS呈指数关系对V_th的变化极其敏感。通过编程精确设定每个CTT的V_th我们就能让它输出一个非常精确的电流值而不需要去改变它的物理尺寸。图2展示了这个原理。对于一个固定的栅源电压V_GS通过编程改变V_th可以在亚阈值区的指数曲线上选择不同的工作点从而获得指数间隔的电流。通过精心设计编程算法我们可以让这些电流呈现我们想要的二进制加权关系例如8nA, 16nA, 32nA...。为什么是CTT而不是其他NVM相比RRAM或PCMCTT有几个关键优势1) 它是标准CMOS工艺的衍生不需要特殊的制造步骤2) 作为单晶体管器件密度极高3) 具有很高的开/关比和关态电阻4) 已有实验证明其校准精度可达4比特有效分辨率σ ≈ 2 nA。这些特性使其成为在单元内实现精密电流源的理想选择。2.3 7T DAC的电路实现与校准策略基于CTT我们设计了一个仅由7个最小尺寸晶体管构成的6位DAC其面积仅约29F²与一个标准SRAM单元相当。图5展示了其电路图和版图。分段式电流导向架构DAC采用分段式设计以突破CTT的4比特校准精度限制。低4位LSB通过编程4个独立的CTT使其分别产生8nA, 16nA, 32nA, 64nA的二进制加权电流。高2位MSB则采用温度计编码例如对于第5位128nA我们用两个并联的、被编程到相同V_th的CTT来产生第6位256nA则用四个并联的相同CTT产生。这样用7个晶体管就实现了从0到511nA步进8nA的6位DAC。原位写入-验证-写入校准这是保证DAC精度的核心。由于工艺偏差和器件失配CTT被制造出来后的初始V_th是随机的。我们需要一个校准过程让每个CTT输出我们期望的精确电流。我们采用了一个迭代的WVW循环写入对目标CTT施加一个编程电压脉冲试图改变其V_th。验证在推理计算相同的条件下相同的V_GS,V_DS使用相同的读出路经和ADC测量该CTT产生的实际电流。决策将测量电流与目标电流比较。如果未达到精度要求则基于误差调整下一个编程脉冲的幅度或宽度回到步骤1。这个过程的关键在于验证步骤复用了一模一样的推理读出路经。这意味着校准过程中所补偿的不仅仅是CTT自身的非线性还包括了读出路经中放大器、ADC等所有模拟电路的非理想特性。校准后的CTT在推理时其工作环境与校准时完全相同从而实现了系统级的精度保障。版图与面积优化如图5(b)所示7个晶体管N1-N7作为DAC核心采用共享源漏区的单指状结构布局总长度仅为8个栅距8F高度为3.7F考虑多晶硅切割。这种极其紧凑的布局使得将DAC集成到每个单元内成为可能是实现高计算密度的基础。3. 系统级设计与关键电路实现有了核心的比特单元我们需要围绕它构建一个完整可用的存内计算宏单元。这涉及到阵列组织、读出路经、校准电路以及整体功耗和时序的控制。3.1 宏单元架构与单元列设计我们设计了一个规模为576行×256列的宏单元。这里“行”对应输入通道激活值每个激活是6位“列”对应输出通道每个列初始存储1位权重。在实际应用中可以通过将多个相邻列的数字输出进行移位相加来组合出更高位宽如6位或8位的权重。单元列是宏单元中可重复的基本计算模块。如图4所示一个单元列包含576个比特单元共享同一条全局比特线。一个PMOS电流源为整个列提供偏置电流。一个跨阻放大器其核心作用是将比特线上的总电流信号转换为电压信号并为比特线提供一个稳定的、恒定的电压V_BL。这一点至关重要因为CTT和DAC中其他MOS管的电流都对漏源电压V_DS敏感。TIA通过负反馈将V_BL钳位在一个固定值确保了所有电流源工作在预设的V_DS下消除了因电流变化导致V_BL波动带来的计算误差。一个基于CTT的8位逐次逼近寄存器ADC将TIA输出的电压转换为数字结果。这个ADC的参考DAC同样采用了CTT校准的电流源确保了整个信号链从模拟到数字的精度。该ADC在300 MS/s的采样率下能效优值达到5 fJ/conv-step。计算流程当一行的6位激活值被送入对应行的所有单元时每个单元的DAC根据该激活值产生相应的电流。同时该行所有单元中存储的1位权重控制AND开关的通断。所有导通的DAC电流从PMOS电流源“抽取”电流导致流入TIA的电流发生变化。TIA迅速响应其输出电压的变化被SAR ADC捕获并转换为8位数字码。这个数字码就是该列上当前输入向量与存储在该列所有行上的权重向量进行点积的结果。3.2 嵌入式DRAM的设计与刷新管理权重存储部分我们选择了1T1C嵌入式DRAM。如图5(a)所示它由一个长沟道写晶体管和“AND开关”的栅电容约1.5 fF构成。长沟道晶体管有效降低了亚阈值泄漏电流而开关本身的大尺寸7.5倍最小尺寸提供了足够的栅电容。为什么用eDRAM而不用SRAM主要为了面积。一个标准的6T SRAM单元面积远大于1T1C DRAM。虽然DRAM需要刷新但在我们的应用场景下刷新开销是可管理的。我们设计的DRAM保留时间约为100 µs。刷新开销分析我们的系统访问周期为7.5 ns。在100 µs的保留窗口内可以进行约13,400次计算访问。刷新一行的能量包括对写位线和电容充电约为160 fJ。相比之下13,400次计算操作的总能量约为28.9 pJ2.16 pJ/周期 × 13.4k远高于刷新能耗。刷新一行的时间约为200 ps仅占100 µs保留时间的0.0002%。因此无论是能量开销还是时间开销刷新操作相对于持续的计算任务来说都是微不足道的。更重要的是刷新操作可以与推理计算完全解耦在后台进行不影响系统吞吐量。3.3 高压编程电路与校准开销分摊CTT的编程需要施加较高的栅压约2.5V这高于核心逻辑的电压0.8V。因此需要专门的高压编程电路并确保高压不会损坏用于推理的低压晶体管。高压隔离策略如图6所示我们采用了厚栅氧晶体管作为保护开关。在校准编程期间用于推理的TIA和ADC等低压电路通过厚栅氧开关与比特线/字线断开连接。同时专用的高压电平转换器被启用将编程电压施加到目标CTT的栅极和源极。泄放大编程电流0.1-1 mA的下拉管则直接复用了DRAM的访问晶体管。这种设计将高压电路限制在阵列的边缘核心阵列内部仍然是标准的低压晶体管。校准开销的分摊对整个宏单元576x256个单元每个单元7个CTT总计超过100万个CTT进行一次性校准确实需要时间。根据之前的实验数据我们保守估计每个CTT的写入延迟为30 µs。那么整个宏的校准时间约为26.5秒总能耗约为17.7 mJ平均功率0.67 mW。关键点在于校准是一次性的、离线的操作。一旦CTT被编程到目标状态其V_th可以保持数月甚至数年不变在85°C下已验证。这意味着对于一款量产芯片可以在出厂前或首次上电时完成校准。在后续整个产品生命周期内进行无数次推理计算时都不再需要校准开销。因此这个一次性的时间成本换来了运行时极高的能效和精度是非常划算的。我们通过一个6合1的解码器来分摊字线高压驱动器的面积进一步降低了外围电路的开销。4. 性能评估、对比与工程实践中的权衡通过后仿真和系统级评估我们可以量化PERCEL架构的优势并看清它在实际工程应用中的位置。4.1 速度、精度与能效的量化分析速度系统的速度瓶颈主要来自ADC。我们采用的SAR ADC采样率为300 MS/s。比特线的建立时间包括字线建立经SPICE仿真验证为4 ns。因此从输入到输出的总访问时间为7.5 ns对应系统时钟频率为133 MHz。每个列在每个周期完成576次 “6位激活 × 1位权重” 乘法以及相应的加法归一化为8位操作后每列吞吐量为14.4 GOPS。整个256列的宏单元总吞吐量为3.68 TOPS (8位归一化)。精度精度是我们设计的重中之重通过多层保障来实现DAC线性度通过WVW校准DAC的积分非线性INL和微分非线性DNL得到严格控制蒙特卡洛仿真显示其有效位数ENOB达到5.646位满足6位输入的要求。读出路经稳定性TIA的高增益确保了比特线电压稳定使电流求和达到8位精度。ADC精度基于CTT的SAR ADC自身ENOB为7.2位足以无失真地量化比特线信号。系统级验证在CIFAR-100数据集上使用预训练的ResNet-50模型未经过任何硬件感知量化训练进行推理准确率损失小于0.2%。这证明了从器件校准到系统读出的整个模拟链路的有效性。能效与面积在0.8V电源电压、22nm FDSOI工艺下进行后仿真提取寄生参数进行估算。能效单个比特单元DAC的最大电流为511 nA一列576个单元最坏情况下的总电流为294 µA。我们为PMOS电流源预留了150 µA的余量。计算每个周期的总能量消耗包括DAC、TIA、ADC、数字电路及分摊的外围电路得到每列完成108次8位归一化操作消耗2.16 pJ对应能效为49.9 TOPS/W。面积单个比特单元含7T DAC和1T1C DRAM面积为99F²。加上ADC、外围驱动器和数字触发器Flip-Flop的面积每列总面积为1606 µm²。由此计算出的计算密度为8.96 TOPS/mm²。图7展示了能量和面积的分解。可以看到ADC是最大的开销来源消耗了约一半的能量和超过三分之一的面积。而包含DAC的比特单元阵列其面积占比不到50%能量消耗占比仅27%。这揭示了一个重要的优化方向通过增加列高即每列包含更多行可以进一步分摊ADC和外围电路的成本从而提升整体的能效和计算密度。4.2 与现有技术的对比分析表3将PERCEL与近年来存内计算领域具有代表性的工作进行了对比。我们可以从几个维度来看与非易失性存内计算的对比与基于RRAM、PCM的CiM相比PERCEL在“可重写性”上具有绝对优势。前者受限于有限的擦写次数和较高的写能耗权重更新困难。PERCEL则像SRAM/DRAM一样可以无限次快速重写权重适用于训练、微调或动态网络。虽然在存储密度权重/面积上可能不及一些超高密度的NVM方案但PERCEL通过单元内DAC实现了高计算密度TOPS/mm²。与可重写存内计算的对比与基于SRAM或模拟DRAM的CiM相比PERCEL在能效和计算密度上实现了显著提升约2倍。这主要归功于极其紧凑的单元级CTT-DAC它避免了使用多个SRAM单元编码一个多比特权重带来的面积膨胀也避免了模拟DRAM中因电平失配导致的精度损失。更重要的是PERCEL在ResNet-50这样的大模型上实现了0.2%的精度损失且无需硬件感知训练而许多模拟DRAM方案需要复杂的重训练来补偿非线性。潜在优势与扩展性我们的设计目前使用了8位ADC来读取6位输入、1位权重的模拟累加结果。如果未来应用对精度要求放宽或者采用更先进的校准技术可以降级使用6位ADC。这将大幅降低ADC的能耗和面积预计能带来近2倍的能效和密度提升。此外如前所述构建更“高”的阵列更多行是提升效率的直接途径。4.3 工程实践中的注意事项与挑战在实际流片和部署中有几个关键点需要特别关注温度稳定性CTT在亚阈值区工作其电流对温度非常敏感。虽然我们通过“偏置分组”技术将同一行中编程到相同V_th状态的CTT共享由复制偏置电路产生的字线电压来缓解芯片级的温度梯度影响但局部的温度变化仍会引入误差。对于6位精度的系统这种漂移尚在容限内。但对于追求更高精度的下一代设计可能需要集成片上温度传感器和动态偏置调整电路。校准策略的优化一次全阵列校准耗时数十秒虽然是一次性成本但在测试和生产环节仍需考虑。可以探索分块校准、后台并行校准、或基于关键路径的快速校准等策略来缩短时间。此外研究CTTV_th的长期漂移特性并设计周期性的、轻量级的“刷新校准”机制对于确保产品在数年生命周期内的可靠性至关重要。设计复杂度与验证集成模拟DAC、模拟存储DRAM、高精度ADC以及高压编程电路使得整个设计混合了数字、模拟和高压域。这给仿真验证、物理设计和测试带来了巨大挑战。需要建立完善的混合信号仿真流程并精心设计测试模式以覆盖校准、推理、刷新等所有工作模式。系统集成PERCEL宏单元是一个加速器核需要与数字处理器如CPU/其他DSA、片上网络、存储控制器等集成。如何高效地映射神经网络层到阵列上管理权重的加载与刷新处理输入/输出数据的流水都是系统层面需要解决的问题。软件工具链编译器、映射器的成熟度对于发挥硬件性能至关重要。5. 总结与展望回顾整个PERCEL架构的设计其核心突破在于用可精确编程的非易失性器件CTT来实现高密度、高精度的模拟计算功能同时用可快速重写的易失性存储器eDRAM来保持系统的灵活性。这种“功能”与“存储”分离再协同的思路为打破存内计算在精度、能效和可重写性之间的三角困境提供了一条切实可行的路径。从我个人的芯片设计经验来看这个工作的价值不仅在于那几个漂亮的性能数字49.9 TOPS/W, 8.96 TOPS/mm²更在于它验证了一套完整的技术方法论从器件物理CTT的亚阈值编程特性、到电路创新单元级校准DAC、再到系统架构混合NVM/eDRAM环环相扣共同支撑起了最终的系统级优势。尤其是“原位校准”的思想让模拟计算的精度不再完全依赖于晶体管的先天匹配而是可以通过后天的“训练”来达到这极大地放宽了对工艺的苛求提高了设计的鲁棒性和可量产性。当然没有完美的架构。PERCEL的挑战也很明确外围ADC仍是面积和功耗的大头温度漂移需要管理校准需要额外的电路和时间。未来的演进方向可能是多方面的探索更低位宽但更高效的ADC研究对温度不敏感的电流模计算方案或者将这种单元级DAC的思想扩展到其他类型的非易失性器件或计算范式如存内逻辑运算。对于想要进入或正在从事存内计算芯片设计的工程师我的建议是不要只盯着某一个器件或某一项指标。存内计算是一个典型的“系统级”问题需要跨层次协同优化。从算法模型压缩、量化、架构数据流、并行度、电路模拟/混合信号设计、低功耗技术到器件新型存储器每一个环节的改进都能带来整体收益。PERCEL是一个很好的例子它告诉我们有时候最好的解决方案可能来自于对现有技术元素的创造性重组而不是等待一个革命性的新器件。
PERCEL架构:基于电荷俘获晶体管的存内计算,实现高能效AI推理
发布时间:2026/5/27 12:32:29
1. 项目概述为什么我们需要一种全新的存内计算架构做AI硬件加速器设计这么多年我深刻体会到“内存墙”是横在性能提升面前的一座大山。传统的冯·诺依曼架构把计算和存储分开处理器吭哧吭哧地算数据就得在内存和计算单元之间来回搬运这个过程消耗的功耗和带来的延迟常常比计算本身还要高。尤其是在处理卷积神经网络这类以矩阵向量乘法为核心的负载时数据复用率高但搬运开销巨大能效比就成了大问题。存内计算就是为了解决这个问题而生的。它的思路很直接既然数据搬运这么费劲那干脆把计算搬到数据旁边去。直接在存储数据的存储阵列里完成乘加运算结果通过模拟或数字信号读出。理想情况下这能带来成百上千倍的能效提升。听起来很美但真要把这条路走通尤其是实现高精度、高能效且灵活可用的多比特计算挑战重重。目前主流的方案大致分两条路。一条是走非易失性存储器路线比如用阻变存储器或相变存储器。它们的优势是天生就能在一个单元里存多个比特存储密度高。但痛点也很明显器件本身的非线性特性严重写操作耗能高、速度慢而且擦写次数有限。这意味着权重一旦写入就很难频繁更新不适合需要在线学习或权重动态变化的模型。另一条路是用易失性存储器比如SRAM或嵌入式DRAM。它们读写速度快、可无限次重写灵活性好。但为了存多比特权重往往需要多个SRAM单元组合面积开销大或者利用模拟DRAM的多级电平又容易受到泄漏电流、电荷注入和晶体管失配的影响导致计算精度下降往往需要复杂的硬件感知训练来补偿。所以我们一直卡在一个尴尬的三角困境里高精度、高能效高密度、可重写性三者似乎难以兼得。直到我们团队开始琢磨能不能把两者的优势结合起来用某种高密度的非易失性器件但不是直接存权重而是用来实现一个极其紧凑、高精度的“转换器”同时用可快速重写的易失性单元来存动态的权重。这就是我们设计PERCEL架构的核心思路在每个存储单元里集成一个基于电荷俘获晶体管的6位数模转换器搭配一个1T1C的嵌入式DRAM来存储1比特权重。这个想法听起来有点“缝合怪”但实测下来它确实在22纳米工艺下打破了那个三角困境。后仿真显示我们的宏单元能达到49.9 TOPS/W的能效和8.96 TOPS/mm²的计算密度。更重要的是在CIFAR-10和CIFAR-100数据集上用ResNet-50模型测试推理精度损失小于0.2%而且完全不需要针对硬件做任何特殊的重新训练。这对于希望将先进模型快速部署到边缘设备的工程师来说是个非常实在的利好。2. 核心架构拆解单元级DAC如何成为破局关键要理解PERCEL为何有效得先拆开看看它的核心——那个集成在每个存储单元里的6位电流模DAC。这可不是一个普通的DAC它的设计处处体现了在存内计算这个特定场景下对面积、精度和功耗的极致权衡。2.1 从存储到计算比特单元的重新定义在传统的存内计算交叉阵列中一个存储单元比特单元通常只做一件事存储一个电导值代表权重。计算时输入电压施加在字线上流过单元的电流与电导值权重和输入电压的乘积成正比所有同一比特线上的电流在模拟域求和最后由一个高精度的模数转换器读出结果。PERCEL的比特单元被赋予了更强的能力。它不再仅仅是一个被动的存储元件而是一个主动的、可配置的“计算发射器”。如图1所示每个单元包含两大核心部分一个7晶体管构成的6位电流型DAC这是计算的“发动机”。它接收一个6位的数字输入激活值并将其转换为一个精确的模拟电流。一个1T1C嵌入式DRAM这是权重的“开关”。它存储一个1比特的权重0或1。这个权重值控制着一个大型传输门AND开关决定DAC产生的电流是否被允许流入共享的比特线。计算过程可以这样理解6位激活值数字信号进入单元被DAC转换为一个成比例的电流I_DAC。同时DRAM中存储的1位权重值W控制着AND开关。如果W1开关打开电流I_DAC流入比特线参与累加如果W0开关关闭该单元对本次计算无贡献。最终同一列上所有W1的单元贡献的电流在比特线上进行模拟求和这个总电流就代表了该列输出点积的模拟值。这种“多比特激活 × 单比特权重”的架构有几个巧妙之处。首先它将多比特的复杂性从权重侧转移到了激活侧。权重只用1比特存储极大地简化了存储单元使其可以采用面积小、可快速重写的eDRAM。而激活值的多比特到模拟的转换则通过高密度集成的DAC来完成。其次由于每个单元都有自己的DAC激活值的转换是“分布式”完成的这避免了在字线驱动器端使用大型、高精度的全局DAC也缓解了同一字线上不同单元因失配导致的精度问题。2.2 电荷俘获晶体管实现紧凑DAC的秘密武器DAC要做到6位精度传统做法需要精心设计晶体管尺寸比例来产生二进制加权的电流源并且为了对抗工艺失配晶体管尺寸往往做得很大。这在每个单元都要集成一个DAC的背景下面积开销是无法承受的。我们选择电荷俘获晶体管作为DAC电流源的核心。CTT本质上是一个标准的高k栅介质晶体管但其阈值电压可以通过施加适当的栅压脉冲进行精确、连续且非易失性的编程。具体来说在栅极施加一个中等电压如2.5V的脉冲会在栅介质中诱捕电荷从而永久性地改变晶体管的阈值电压V_th。这个过程是可逆的通过擦除操作并且状态在85°C高温下也能长期保持。CTT如何实现电流源我们让所有DAC中的CTT晶体管工作在深度亚阈值区V_GS0.3V,V_DS0.6V。在这个区域晶体管的漏极电流I_D与V_GS呈指数关系对V_th的变化极其敏感。通过编程精确设定每个CTT的V_th我们就能让它输出一个非常精确的电流值而不需要去改变它的物理尺寸。图2展示了这个原理。对于一个固定的栅源电压V_GS通过编程改变V_th可以在亚阈值区的指数曲线上选择不同的工作点从而获得指数间隔的电流。通过精心设计编程算法我们可以让这些电流呈现我们想要的二进制加权关系例如8nA, 16nA, 32nA...。为什么是CTT而不是其他NVM相比RRAM或PCMCTT有几个关键优势1) 它是标准CMOS工艺的衍生不需要特殊的制造步骤2) 作为单晶体管器件密度极高3) 具有很高的开/关比和关态电阻4) 已有实验证明其校准精度可达4比特有效分辨率σ ≈ 2 nA。这些特性使其成为在单元内实现精密电流源的理想选择。2.3 7T DAC的电路实现与校准策略基于CTT我们设计了一个仅由7个最小尺寸晶体管构成的6位DAC其面积仅约29F²与一个标准SRAM单元相当。图5展示了其电路图和版图。分段式电流导向架构DAC采用分段式设计以突破CTT的4比特校准精度限制。低4位LSB通过编程4个独立的CTT使其分别产生8nA, 16nA, 32nA, 64nA的二进制加权电流。高2位MSB则采用温度计编码例如对于第5位128nA我们用两个并联的、被编程到相同V_th的CTT来产生第6位256nA则用四个并联的相同CTT产生。这样用7个晶体管就实现了从0到511nA步进8nA的6位DAC。原位写入-验证-写入校准这是保证DAC精度的核心。由于工艺偏差和器件失配CTT被制造出来后的初始V_th是随机的。我们需要一个校准过程让每个CTT输出我们期望的精确电流。我们采用了一个迭代的WVW循环写入对目标CTT施加一个编程电压脉冲试图改变其V_th。验证在推理计算相同的条件下相同的V_GS,V_DS使用相同的读出路经和ADC测量该CTT产生的实际电流。决策将测量电流与目标电流比较。如果未达到精度要求则基于误差调整下一个编程脉冲的幅度或宽度回到步骤1。这个过程的关键在于验证步骤复用了一模一样的推理读出路经。这意味着校准过程中所补偿的不仅仅是CTT自身的非线性还包括了读出路经中放大器、ADC等所有模拟电路的非理想特性。校准后的CTT在推理时其工作环境与校准时完全相同从而实现了系统级的精度保障。版图与面积优化如图5(b)所示7个晶体管N1-N7作为DAC核心采用共享源漏区的单指状结构布局总长度仅为8个栅距8F高度为3.7F考虑多晶硅切割。这种极其紧凑的布局使得将DAC集成到每个单元内成为可能是实现高计算密度的基础。3. 系统级设计与关键电路实现有了核心的比特单元我们需要围绕它构建一个完整可用的存内计算宏单元。这涉及到阵列组织、读出路经、校准电路以及整体功耗和时序的控制。3.1 宏单元架构与单元列设计我们设计了一个规模为576行×256列的宏单元。这里“行”对应输入通道激活值每个激活是6位“列”对应输出通道每个列初始存储1位权重。在实际应用中可以通过将多个相邻列的数字输出进行移位相加来组合出更高位宽如6位或8位的权重。单元列是宏单元中可重复的基本计算模块。如图4所示一个单元列包含576个比特单元共享同一条全局比特线。一个PMOS电流源为整个列提供偏置电流。一个跨阻放大器其核心作用是将比特线上的总电流信号转换为电压信号并为比特线提供一个稳定的、恒定的电压V_BL。这一点至关重要因为CTT和DAC中其他MOS管的电流都对漏源电压V_DS敏感。TIA通过负反馈将V_BL钳位在一个固定值确保了所有电流源工作在预设的V_DS下消除了因电流变化导致V_BL波动带来的计算误差。一个基于CTT的8位逐次逼近寄存器ADC将TIA输出的电压转换为数字结果。这个ADC的参考DAC同样采用了CTT校准的电流源确保了整个信号链从模拟到数字的精度。该ADC在300 MS/s的采样率下能效优值达到5 fJ/conv-step。计算流程当一行的6位激活值被送入对应行的所有单元时每个单元的DAC根据该激活值产生相应的电流。同时该行所有单元中存储的1位权重控制AND开关的通断。所有导通的DAC电流从PMOS电流源“抽取”电流导致流入TIA的电流发生变化。TIA迅速响应其输出电压的变化被SAR ADC捕获并转换为8位数字码。这个数字码就是该列上当前输入向量与存储在该列所有行上的权重向量进行点积的结果。3.2 嵌入式DRAM的设计与刷新管理权重存储部分我们选择了1T1C嵌入式DRAM。如图5(a)所示它由一个长沟道写晶体管和“AND开关”的栅电容约1.5 fF构成。长沟道晶体管有效降低了亚阈值泄漏电流而开关本身的大尺寸7.5倍最小尺寸提供了足够的栅电容。为什么用eDRAM而不用SRAM主要为了面积。一个标准的6T SRAM单元面积远大于1T1C DRAM。虽然DRAM需要刷新但在我们的应用场景下刷新开销是可管理的。我们设计的DRAM保留时间约为100 µs。刷新开销分析我们的系统访问周期为7.5 ns。在100 µs的保留窗口内可以进行约13,400次计算访问。刷新一行的能量包括对写位线和电容充电约为160 fJ。相比之下13,400次计算操作的总能量约为28.9 pJ2.16 pJ/周期 × 13.4k远高于刷新能耗。刷新一行的时间约为200 ps仅占100 µs保留时间的0.0002%。因此无论是能量开销还是时间开销刷新操作相对于持续的计算任务来说都是微不足道的。更重要的是刷新操作可以与推理计算完全解耦在后台进行不影响系统吞吐量。3.3 高压编程电路与校准开销分摊CTT的编程需要施加较高的栅压约2.5V这高于核心逻辑的电压0.8V。因此需要专门的高压编程电路并确保高压不会损坏用于推理的低压晶体管。高压隔离策略如图6所示我们采用了厚栅氧晶体管作为保护开关。在校准编程期间用于推理的TIA和ADC等低压电路通过厚栅氧开关与比特线/字线断开连接。同时专用的高压电平转换器被启用将编程电压施加到目标CTT的栅极和源极。泄放大编程电流0.1-1 mA的下拉管则直接复用了DRAM的访问晶体管。这种设计将高压电路限制在阵列的边缘核心阵列内部仍然是标准的低压晶体管。校准开销的分摊对整个宏单元576x256个单元每个单元7个CTT总计超过100万个CTT进行一次性校准确实需要时间。根据之前的实验数据我们保守估计每个CTT的写入延迟为30 µs。那么整个宏的校准时间约为26.5秒总能耗约为17.7 mJ平均功率0.67 mW。关键点在于校准是一次性的、离线的操作。一旦CTT被编程到目标状态其V_th可以保持数月甚至数年不变在85°C下已验证。这意味着对于一款量产芯片可以在出厂前或首次上电时完成校准。在后续整个产品生命周期内进行无数次推理计算时都不再需要校准开销。因此这个一次性的时间成本换来了运行时极高的能效和精度是非常划算的。我们通过一个6合1的解码器来分摊字线高压驱动器的面积进一步降低了外围电路的开销。4. 性能评估、对比与工程实践中的权衡通过后仿真和系统级评估我们可以量化PERCEL架构的优势并看清它在实际工程应用中的位置。4.1 速度、精度与能效的量化分析速度系统的速度瓶颈主要来自ADC。我们采用的SAR ADC采样率为300 MS/s。比特线的建立时间包括字线建立经SPICE仿真验证为4 ns。因此从输入到输出的总访问时间为7.5 ns对应系统时钟频率为133 MHz。每个列在每个周期完成576次 “6位激活 × 1位权重” 乘法以及相应的加法归一化为8位操作后每列吞吐量为14.4 GOPS。整个256列的宏单元总吞吐量为3.68 TOPS (8位归一化)。精度精度是我们设计的重中之重通过多层保障来实现DAC线性度通过WVW校准DAC的积分非线性INL和微分非线性DNL得到严格控制蒙特卡洛仿真显示其有效位数ENOB达到5.646位满足6位输入的要求。读出路经稳定性TIA的高增益确保了比特线电压稳定使电流求和达到8位精度。ADC精度基于CTT的SAR ADC自身ENOB为7.2位足以无失真地量化比特线信号。系统级验证在CIFAR-100数据集上使用预训练的ResNet-50模型未经过任何硬件感知量化训练进行推理准确率损失小于0.2%。这证明了从器件校准到系统读出的整个模拟链路的有效性。能效与面积在0.8V电源电压、22nm FDSOI工艺下进行后仿真提取寄生参数进行估算。能效单个比特单元DAC的最大电流为511 nA一列576个单元最坏情况下的总电流为294 µA。我们为PMOS电流源预留了150 µA的余量。计算每个周期的总能量消耗包括DAC、TIA、ADC、数字电路及分摊的外围电路得到每列完成108次8位归一化操作消耗2.16 pJ对应能效为49.9 TOPS/W。面积单个比特单元含7T DAC和1T1C DRAM面积为99F²。加上ADC、外围驱动器和数字触发器Flip-Flop的面积每列总面积为1606 µm²。由此计算出的计算密度为8.96 TOPS/mm²。图7展示了能量和面积的分解。可以看到ADC是最大的开销来源消耗了约一半的能量和超过三分之一的面积。而包含DAC的比特单元阵列其面积占比不到50%能量消耗占比仅27%。这揭示了一个重要的优化方向通过增加列高即每列包含更多行可以进一步分摊ADC和外围电路的成本从而提升整体的能效和计算密度。4.2 与现有技术的对比分析表3将PERCEL与近年来存内计算领域具有代表性的工作进行了对比。我们可以从几个维度来看与非易失性存内计算的对比与基于RRAM、PCM的CiM相比PERCEL在“可重写性”上具有绝对优势。前者受限于有限的擦写次数和较高的写能耗权重更新困难。PERCEL则像SRAM/DRAM一样可以无限次快速重写权重适用于训练、微调或动态网络。虽然在存储密度权重/面积上可能不及一些超高密度的NVM方案但PERCEL通过单元内DAC实现了高计算密度TOPS/mm²。与可重写存内计算的对比与基于SRAM或模拟DRAM的CiM相比PERCEL在能效和计算密度上实现了显著提升约2倍。这主要归功于极其紧凑的单元级CTT-DAC它避免了使用多个SRAM单元编码一个多比特权重带来的面积膨胀也避免了模拟DRAM中因电平失配导致的精度损失。更重要的是PERCEL在ResNet-50这样的大模型上实现了0.2%的精度损失且无需硬件感知训练而许多模拟DRAM方案需要复杂的重训练来补偿非线性。潜在优势与扩展性我们的设计目前使用了8位ADC来读取6位输入、1位权重的模拟累加结果。如果未来应用对精度要求放宽或者采用更先进的校准技术可以降级使用6位ADC。这将大幅降低ADC的能耗和面积预计能带来近2倍的能效和密度提升。此外如前所述构建更“高”的阵列更多行是提升效率的直接途径。4.3 工程实践中的注意事项与挑战在实际流片和部署中有几个关键点需要特别关注温度稳定性CTT在亚阈值区工作其电流对温度非常敏感。虽然我们通过“偏置分组”技术将同一行中编程到相同V_th状态的CTT共享由复制偏置电路产生的字线电压来缓解芯片级的温度梯度影响但局部的温度变化仍会引入误差。对于6位精度的系统这种漂移尚在容限内。但对于追求更高精度的下一代设计可能需要集成片上温度传感器和动态偏置调整电路。校准策略的优化一次全阵列校准耗时数十秒虽然是一次性成本但在测试和生产环节仍需考虑。可以探索分块校准、后台并行校准、或基于关键路径的快速校准等策略来缩短时间。此外研究CTTV_th的长期漂移特性并设计周期性的、轻量级的“刷新校准”机制对于确保产品在数年生命周期内的可靠性至关重要。设计复杂度与验证集成模拟DAC、模拟存储DRAM、高精度ADC以及高压编程电路使得整个设计混合了数字、模拟和高压域。这给仿真验证、物理设计和测试带来了巨大挑战。需要建立完善的混合信号仿真流程并精心设计测试模式以覆盖校准、推理、刷新等所有工作模式。系统集成PERCEL宏单元是一个加速器核需要与数字处理器如CPU/其他DSA、片上网络、存储控制器等集成。如何高效地映射神经网络层到阵列上管理权重的加载与刷新处理输入/输出数据的流水都是系统层面需要解决的问题。软件工具链编译器、映射器的成熟度对于发挥硬件性能至关重要。5. 总结与展望回顾整个PERCEL架构的设计其核心突破在于用可精确编程的非易失性器件CTT来实现高密度、高精度的模拟计算功能同时用可快速重写的易失性存储器eDRAM来保持系统的灵活性。这种“功能”与“存储”分离再协同的思路为打破存内计算在精度、能效和可重写性之间的三角困境提供了一条切实可行的路径。从我个人的芯片设计经验来看这个工作的价值不仅在于那几个漂亮的性能数字49.9 TOPS/W, 8.96 TOPS/mm²更在于它验证了一套完整的技术方法论从器件物理CTT的亚阈值编程特性、到电路创新单元级校准DAC、再到系统架构混合NVM/eDRAM环环相扣共同支撑起了最终的系统级优势。尤其是“原位校准”的思想让模拟计算的精度不再完全依赖于晶体管的先天匹配而是可以通过后天的“训练”来达到这极大地放宽了对工艺的苛求提高了设计的鲁棒性和可量产性。当然没有完美的架构。PERCEL的挑战也很明确外围ADC仍是面积和功耗的大头温度漂移需要管理校准需要额外的电路和时间。未来的演进方向可能是多方面的探索更低位宽但更高效的ADC研究对温度不敏感的电流模计算方案或者将这种单元级DAC的思想扩展到其他类型的非易失性器件或计算范式如存内逻辑运算。对于想要进入或正在从事存内计算芯片设计的工程师我的建议是不要只盯着某一个器件或某一项指标。存内计算是一个典型的“系统级”问题需要跨层次协同优化。从算法模型压缩、量化、架构数据流、并行度、电路模拟/混合信号设计、低功耗技术到器件新型存储器每一个环节的改进都能带来整体收益。PERCEL是一个很好的例子它告诉我们有时候最好的解决方案可能来自于对现有技术元素的创造性重组而不是等待一个革命性的新器件。