1. DARTH-PUM架构概述:混合内存计算的能效突破
DARTH-PUM(Digital-Analog Reconfigurable Technology for Hybrid Processing-Using-Memory)是近年来内存计算领域最具突破性的架构之一。它通过创新的混合设计理念,将模拟PIM的高能效特性与数字PIM的计算精度优势相结合,解决了传统PIM架构在通用性和能效之间的权衡难题。
1.1 内存计算的基本原理与挑战
内存计算的核心思想是通过改变存储器内部结构,使其具备数据处理能力。传统计算架构中,数据需要在处理器和存储器之间频繁搬运,这种"存储墙"问题导致高达60-70%的能耗消耗在数据移动上。PIM技术通过在存储阵列中集成计算单元,实现了"数据不动计算动"的范式转变。
当前PIM技术主要分为两大流派:
- 模拟PIM:利用存储器件的物理特性(如欧姆定律、基尔霍夫定律)直接进行模拟计算,典型代表是使用忆阻器阵列实现矩阵向量乘法(MVM)。其优势在于超高的计算密度(TOPS/mm²级)和能效(TOPS/W级),但受限于器件非理想特性和ADC转换开销。
- 数字PIM:基于存储阵列构建数字逻辑电路,支持精确的布尔运算和复杂控制流。虽然通用性更强,但计算密度和能效通常比模拟PIM低1-2个数量级。
DARTH-PUM的创新之处在于,它通过可重构的混合计算引擎,实现了两种计算模式的动态切换和协同工作。其架构包含三个关键组件:
- 模拟计算引擎(ACE):基于高密度忆阻器阵列,优化设计用于MVM等线性代数运算
- 数字计算引擎(DCE):采用存内数字逻辑电路,处理控制流和非线性运算
- 智能数据调度器:根据运算特征自动分配计算任务到最优引擎
1.2 架构设计亮点解析
DARTH-PUM在电路层面实现了多项创新设计,这些设计共同构成了其性能优势的基础:
自适应ADC选择机制在模拟PIM中,模数转换器(ADC)通常贡献了30-50%的系统能耗。DARTH-PUM创新性地采用了双模ADC设计:
- SAR ADC:适用于需要高精度转换的场景(如ResNet-20的卷积层)
- Ramp ADC:针对特定运算模式(如AES的MixColumns)可提前终止转换,将延迟从256周期降至4周期
实测数据显示,在ResNet-20推理任务中,SAR ADC相比Ramp ADC带来1.5倍的吞吐提升,同时保持99%的能效优势。这种动态选择机制使得系统能根据运算特征自动优化转换策略。
寄生补偿方案模拟PIM面临的主要挑战之一是寄生电阻导致的信号衰减。DARTH-PUM提出了一种数字辅助的补偿技术:
- 在初始化阶段测量阵列的寄生参数
- 构建寄生电阻网络模型
- 通过数字引擎预计算补偿系数
- 在模拟计算时应用补偿权重
该方案将ResNet-20在CIFAR-10数据集上的推理准确率从基准的68.2%提升至75.4%,接近纯数字计算的精度水平。更重要的是,补偿计算仅增加<5%的能耗开销。
混合精度数据流DARTH-PUM支持动态精度调整的混合数据流:
- 关键路径(如注意力机制中的softmax)使用8位精度
- 非关键计算(如FFN层的中间结果)可采用4位甚至2位精度
- 通过精度损失预测模型自动选择最优位宽
这种设计使得系统在LLM编码任务中,相比固定精度架构可节省40%的能耗,同时保持末端精度损失<1%。
2. 核心实现细节与优化技巧
2.1 模拟计算引擎的电路级优化
ACE模块采用了多项创新电路设计来提升计算能效:
位线电荷复用技术传统模拟PIM中,每次MVM操作后位线需要完全放电,造成能量浪费。DARTH-PUM引入:
- 电荷保持电路:保留位线残余电荷用于下次计算
- 差分电荷补偿:通过互补位线对抵消偏移电压 实测显示,这项技术使ResNet-20的能耗降低22%,尤其对深层网络效果显著。
时序交错激活通过将大型矩阵运算分解为多个子块,并采用时间交错的方式:
- 将单个256×256 MVM分解为16个64×64子块
- 每个子块独立进行预充电和计算
- 最终通过数字引擎聚合结果 这种方法将峰值电流降低4倍,缓解了IR drop问题,使计算误差降低3倍。
2.2 数字计算引擎的微架构创新
DCE模块针对PIM特性进行了深度优化:
存内流水线设计传统存内逻辑受限于存储阵列的访问延迟。DARTH-PUM采用:
- 4级流水化处理单元
- 分布式寄存器文件
- 操作数预取机制 这使得布尔运算的吞吐量达到2GOPS/mm²,比传统设计提升3倍。
动态精度逻辑单元支持可配置的位宽处理:
- 1-bit:用于二值化神经网络
- 4-bit:用于量化推理
- 8-bit:用于高精度计算 通过动态门控时钟技术,不同位宽模式的能效差异可达5倍。
2.3 系统级协同优化
数据布局策略DARTH-PUM采用创新的"对角线映射"方案:
- 将矩阵对角线元素分散到不同存储块
- 配合bank级并行访问
- 减少行冲突概率 在LLM编码任务中,这种布局使有效带宽利用率达到85%,比常规方案提升2.2倍。
温度感知调度通过集成温度传感器和动态频率调节:
- 监测各存储体的实时温度
- 热热点任务迁移到低温区域
- 动态调整计算频率 实验显示,这项技术使芯片在高温下的计算误差降低60%,同时维持稳定的吞吐量。
3. 应用场景性能分析
3.1 AES加密加速
AES算法中的关键操作(如SubBytes、MixColumns)可高效映射到PIM阵列:
- SubBytes:通过查表实现(LUT)
- MixColumns:通过模拟MVM实现
DARTH-PUM的特殊优化包括:
- 定制化S盒实现:将256字节S盒分布到8个存储体中
- 轮密钥预取:在计算当前轮时预加载下一轮密钥
- 早期终止策略:MixColumns阶段仅需4次ADC转换
性能表现(与CPU基准对比):
- 吞吐量:59.4倍提升
- 能效:12,000倍提升
- 面积效率:8.7倍提升
3.2 ResNet-20推理加速
针对CNN的特点,DARTH-PUM实现了:
- 卷积核重排:将3×3卷积展开为9个并行MVM
- 特征图切片:配合行缓冲减少数据搬运
- 动态精度:首尾层8bit,中间层4bit
实测结果(CIFAR-10数据集):
- 能效:35 TOPS/W(模拟部分)
- 准确率:75.4%(与数字实现相当)
- 延迟:2.1ms/图像(batch=64)
3.3 LLM编码器加速
针对Transformer架构的优化:
- 注意力机制:模拟MVM计算QK^T和softmax
- FFN层:数字引擎处理GeLU激活
- 键值缓存:近存储处理减少数据移动
性能对比(与RTX 4090 iso-area):
- 吞吐量:11.8倍提升
- 能效:7.5倍提升
- 每token能耗:降低89%
4. 实际部署考量与优化建议
4.1 器件非理想特性补偿
虽然DARTH-PUM已具备较强的抗噪声能力,但在实际部署时仍需注意:
- 编程噪声:建议采用迭代写验证策略(最多3次)
- 读噪声:使用输入位切片技术(bit-slicing)
- 漂移效应:定期校准(建议每24小时一次)
4.2 系统集成方案
对于不同应用场景的部署建议:
- 边缘设备:采用1-2个DARTH-PUM芯片,专注能效优化
- 数据中心:构建多芯片模块(MCM),通过硅中介层互联
- 异构计算:与CPU/GPU组成异构系统,用CXL接口连接
4.3 编程模型与工具链
DARTH-PUM提供完整的软件支持:
- 编译器:支持从PyTorch/TensorFlow到PIM指令的自动转换
- 分析工具:可视化计算热图,指导任务分配
- 调试接口:支持模拟器和FPGA原型验证
典型开发流程:
- 使用标准框架训练模型
- 通过编译器自动划分模拟/数字计算部分
- 生成优化后的数据布局
- 部署到目标硬件
5. 未来演进方向
从实际应用角度看,DARTH-PUM架构还可向以下方向拓展:
- 3D集成:通过TSV技术堆叠更多存储层
- 新型器件:集成FeFET等更可靠的模拟存储器件
- 存算一体网络:支持近存储的集体通信操作
- 安全扩展:增加物理不可克隆函数(PUF)模块
在长期使用中发现,架构的灵活性是其最大优势。通过动态重配置,同一硬件可高效支持从加密计算到AI推理的多样化负载,这种"一芯多用"特性显著提升了投资回报率。对于考虑采用PIM技术的开发者,建议先从典型算法(如矩阵乘法)入手验证效果,再逐步扩展到完整应用。