1. DARTH-PUM混合内存计算架构概述DARTH-PUMDigital–Analog Resistive Tiles for Hybrid Processing-Using-Memory是一种创新的混合内存计算架构它巧妙地将模拟PUM和数字PUM技术集成在同一芯片上。这种架构的核心思想是通过内存设备本身的电气特性来执行计算从而大幅减少传统计算架构中数据在CPU和内存之间移动的开销。在现代计算系统中数据移动已经成为性能瓶颈和能耗的主要来源。研究表明数据移动的延迟和能耗比实际计算指令高出几个数量级。DARTH-PUM通过直接在内存中执行计算有效解决了这一内存墙问题。它特别适合处理机器学习、数据库操作和科学计算等数据密集型工作负载。1.1 内存计算技术分类内存计算技术主要分为两大类处理近内存Processing-Near-Memory, PNM在内存附近集成传统计算逻辑单元内存内计算Processing-Using-Memory, PUM直接利用内存设备的电气特性进行计算PUM又可以进一步分为模拟PUM和数字PUM两种类型模拟PUM利用欧姆定律和基尔霍夫电流定律在内存阵列中执行矩阵-向量乘法MVM操作。它能够存储每个单元多个比特计算速度快但有时是近似的。数字PUM也称为布尔PUM使用单比特单元通过在内存设备之间实现布尔逻辑运算符来执行通用计算。它更加抗噪声可以执行任意计算。1.2 混合架构的必要性虽然模拟PUM在矩阵运算方面效率极高但它存在几个关键限制只能执行特定类型的计算主要是MVM对噪声和其他模拟非理想特性敏感需要昂贵的外围电路如模数转换器需要专用功能单元或持续的CPU-PUM通信来执行非矩阵操作相比之下数字PUM虽然更加通用但在执行矩阵运算时性能明显低于模拟PUM。DARTH-PUM的创新之处在于将两种PUM技术有机结合既保留了模拟PUM在矩阵运算方面的高效性又获得了数字PUM的通用计算能力。2. DARTH-PUM架构设计详解2.1 整体架构DARTH-PUM采用分层设计主要由两部分组成前端控制器负责获取和解码混合PUM指令并发出PUM特定的微操作μops后端计算单元由多个混合计算瓦片Hybrid Compute Tiles, HCT组成每个HCT包含三个关键组件模拟计算元素Analog Compute Element, ACE包含64个模拟阵列和相应的外围计算电路数字计算元素Digital Compute Element, DCE包含64个基于RACER的数字PUM流水线辅助组件用于管理μops流和优化ACE与DCE之间的交互2.2 模拟计算元素ACEACE是DARTH-PUM中负责高效矩阵运算的核心组件。它采用电阻式随机存取存储器ReRAM作为基础存储介质利用其独特的电气特性实现内存内计算。2.2.1 模拟PUM工作原理模拟PUM执行矩阵-向量乘法的基本原理如下矩阵值首先以电阻或电导G1/R的形式编程到交叉阵列中输入向量的每个元素作为电压施加到字线上根据欧姆定律IV/R在输入和设备之间实现逐元素乘法通过基尔霍夫电流定律沿位线的电流求和实现累加操作使用模数转换器ADC将模拟电流或电压转换为离散数字值2.2.2 关键技术优化为了提升模拟PUM的性能和灵活性DARTH-PUM采用了多项创新技术比特切片Bit-Slicing将大位宽操作数分割为较小位宽的值存储在不同阵列中。计算时每个阵列独立执行乘法产生多个部分积最后通过移位相加操作重新组合。差分单元对用于表示负数使用两个独立设备分别表示正负值并施加相反极性的输入电压。相比偏移减法方法差分单元对对寄生效应具有更强的抗干扰能力。外围电路优化采用创新的模数转换器设计如逐次逼近寄存器SARADC在精度和速度之间取得平衡。2.3 数字计算元素DCEDCE为DARTH-PUM提供通用计算能力基于RACER架构实现高效的布尔运算流水线。2.3.1 数字PUM工作原理数字PUM的核心是布尔逻辑原语如OSCAR NOR操作使用四个ReRAM设备作为两个输入、一个输出和一个负载电阻两个输入位线驱动到VNOR输出位线驱动到VNORΔ负载电阻位线接地字线处于浮动状态受输入单元状态、输出单元状态和电压影响根据单元状态电流流过输出设备并改变其状态2.3.2 比特流水线技术DCE采用比特流水线技术显著提高吞吐量N位流水线由N个离散数字PUM阵列组成N位值被比特条带化到所有阵列每个阵列包含值的一个比特位置每个阵列可以独立执行不同操作实现N倍的吞吐量提升支持M元素向量并行执行其中M是流水线中的行数2.4 ACE与DCE的协同工作机制DARTH-PUM的关键创新在于ACE和DCE之间的高效协同。这种协同通过四个专用辅助组件实现模拟-数字接口包含移位单元和ADC精确平衡ACE和DCE的吞吐量仲裁器和指令注入单元排序操作并管理ACE和DCE之间的数据移动错误补偿方案专门为HCT设计的容错机制软件接口简化编程模型减少μop扩展开销2.4.1 矩阵-向量乘法协同流程以2×1向量与2×2矩阵乘法为例说明ACE和DCE的协同工作矩阵驻留在ACE中输入向量比特切片后放入ACE输入缓冲区每个周期输入的新比特应用到字线执行1比特MVM沿位线生成部分积向量部分积通过片上网络从ACE传输到DCE并条带化到DCE流水线的不同阵列部分积向量的每个元素对应最终输出向量的不同元素存储在同一DCE向量寄存器的不同行ACE计算输入比特的其余位置时移位和加法指令交错并添加到数字问题队列每个比特切片处理后部分积按其对应比特位置移位在每次移位之间加法指令累加部分和所有部分和累加后最终输出向量存储在目标寄存器中3. DARTH-PUM性能优势与应用案例3.1 性能对比分析DARTH-PUM在多种工作负载下展现出显著性能优势AES加密相比纯模拟PUMCPU方案性能提升59.4倍能耗降低39.6倍卷积神经网络CNN性能提升14.8倍能耗降低51.2倍大语言模型LLM性能提升40.8倍能耗降低110.7倍这些性能提升主要来自三个方面消除了CPU-PUM数据传输开销模拟PUM高效处理矩阵运算数字PUM灵活处理非矩阵操作3.2 AES加密加速AES加密算法包含四个主要步骤SubBytes使用替换矩阵S-box替换明文块的每个字节ShiftRows基于预定值循环左移每一行MixColumns明文与预定矩阵的矩阵乘法AddRoundKey生成密钥与明文的XOR操作DARTH-PUM的混合架构特别适合AES加密ACE高效处理MixColumns中的矩阵乘法DCE处理SubBytes、ShiftRows和AddRoundKey操作无需数据在CPU和PUM之间移动实验显示优化后的混合PUM配置比纯数字PUM性能提升3.54倍比纯模拟PUMCPU方案提升59.4倍。3.3 机器学习加速3.3.1 卷积神经网络CNNCNN中的关键操作与DARTH-PUM的优势完美匹配卷积层主要由矩阵乘法组成由ACE高效处理激活函数和池化由DCE处理全连接层矩阵运算由ACE处理3.3.2 大语言模型LLM现代LLM如Transformer架构也高度依赖矩阵运算注意力机制中的QKV计算矩阵运算适合ACE前馈网络矩阵运算适合ACE激活函数和层归一化由DCE处理DARTH-PUM的灵活混合架构使其能够高效处理这些多样化的工作负载。4. 实现考量与优化技术4.1 比特切片与移位相加优化DARTH-PUM采用创新的比特切片和移位相加策略来优化矩阵运算输入比特切片将大位宽输入分割为较小位宽切片缓解高范围数模转换器DAC需求矩阵值比特切片将矩阵元素分割存储在不同阵列并行计算部分积移位相加优化在数据从ACE传输到DCE时执行移位操作避免单独移位操作的开销4.2 模拟-数字吞吐量匹配DARTH-PUM精心平衡ACE和DCE的吞吐量片上网络设计支持每周期传输8字节匹配ADC吞吐量与DCE写入带宽移位单元在数据传输期间执行移位避免单独移位操作批量处理部分积减少移位和加法操作的启动和停止开销4.3 错误处理与容错针对模拟PUM的噪声和非理想特性DARTH-PUM采用多重容错机制差分单元对设计增强对寄生效应的抗扰度错误补偿方案专门针对混合架构优化数字PUM提供精确计算结果的能力用于校正关键计算步骤4.4 编程接口与工具链DARTH-PUM提供易于使用的编程接口专用指令集支持混合PUM操作编译器自动识别和优化适合PUM的计算模式运行时系统管理ACE和DCE之间的数据移动和同步5. 技术挑战与解决方案5.1 模拟非理想特性模拟PUM面临的主要挑战包括非线性电阻和I-V曲线器件状态随时间漂移位线或器件上的随机扰动DARTH-PUM的解决方案采用差分单元对设计提高抗噪能力数字PUM提供精确计算能力用于关键步骤自适应校准机制定期调整模拟参数5.2 外围电路开销传统模拟PUM的外围电路ADC、DAC等消耗大量面积和能量。DARTH-PUM通过以下方式优化共享外围电路资源采用高效的SAR ADC设计减少不必要的数据转换5.3 热管理高密度计算带来热挑战DARTH-PUM采用计算负载均衡避免热点动态频率调整先进的封装散热设计6. 未来发展方向DARTH-PUM架构为内存计算开辟了新的可能性未来发展方向包括更紧密的模拟-数字集成探索3D堆叠等先进封装技术新型存储器件研究更适合混合计算的存储技术领域特定优化针对不同应用领域定制架构变体系统级集成与传统CPU、GPU协同工作的优化编程模型创新开发更高效的混合PUM编程抽象DARTH-PUM代表了内存计算技术发展的重要里程碑通过创新的混合架构设计它成功结合了模拟PUM的高效性和数字PUM的灵活性为各类数据密集型应用提供了显著的性能提升和能效改进。