1. 内存计算与随机计算的技术融合背景
人工智能模型的核心计算任务可以抽象为大规模的矩阵乘法运算(MatMul)。以Transformer架构为例,单次推理可能涉及数百万次乘累加操作(MAC)。传统冯·诺依曼架构在执行这类计算时面临两大根本性挑战:
首先是内存墙问题。现代AI模型的参数量已突破百亿级别,但CPU/GPU与内存之间的数据搬运能耗可占总功耗的60%以上。我们的实测数据显示,在移动端芯片上执行128×128的浮点矩阵乘法时,数据搬运的能耗是实际计算能耗的2.3倍。
其次是计算效率瓶颈。二进制域的标准乘法器需要数十个逻辑门级联,当处理8位整型乘法时,典型CMOS实现需要约200个晶体管参与运算。这导致传统数字电路在能效比上难以满足边缘设备的需求。
1.1 内存计算的演进路径
为突破这些限制,业界探索出两条技术路线:
模拟内存计算 采用忆阻器交叉阵列,通过欧姆定律实现模拟域乘加运算。我们在实验室测试的1T1R阵列显示,单个MAC操作能耗可低至50fJ。但其存在三个致命缺陷:
- 器件变异导致计算误差超过10%
- 模数转换电路占用40%以上的芯片面积
- 编程电压漂移需要持续校准
数字内存计算 利用SRAM/DRAM的位线计算特性。激活两条字线时,位线上会产生原始数据的与/或逻辑结果。我们开发的256×128 SRAM测试芯片验证了这种方案的可行性,但发现其微算法需要消耗上百个时钟周期完成单次MAC,能效比仅达到0.5TOPS/W。
1.2 随机计算的独特价值
随机计算(SC)采用概率比特流表示数据,例如8比特"10110011"可解释为5/8=0.625的概率值。其核心优势在于:
- 乘法仅需单个AND门(相比二进制乘法器面积减少98%)
- 加法通过或门即可近似实现
- 天然容错特性与神经网络计算高度契合
但传统SC需要长比特流保证精度(n位二进制数需2^n比特流),导致延迟过高。我们测试发现,8位精度的SC生成需要256个周期,完全抵消了其计算简化的优势。
2. Bent-Pyramid数据格式的创新设计
2.1 传统随机计算的精度瓶颈
标准SC采用线性反馈移位寄存器(LFSR)生成伪随机序列。当实现8位二进制到SC的转换时,需要:
- 生成8位随机数R
- 与输入值B比较产生1比特结果
- 重复256次得到完整比特流
这种方式的根本问题在于随机性引入的不确定性——相同输入可能产生不同计算结果,这对AI推理的确定性造成挑战。
2.2 压缩Bent-Pyramid格式
我们提出的BP8格式通过两个关键创新解决上述问题:
确定性比特模式 :
- 左偏数据集:11111110, 11111100,..., 00000000
- 右偏数据集:00000001, 00000011,..., 11111111
- 每个8位模式对应固定的概率值(0.0到0.9)
隐式比特扩展 :
- 实际存储8位显式比特
- 通过预定义规则隐含扩展为10位等效精度
- 例如"11110000"自动补全为"1111000011"
测试数据显示,在MNIST分类任务中,BP8相较浮点基准的准确率损失仅0.8%,而传统SC方案损失达3.2%。更关键的是,BP8保证相同输入必然产生相同输出,完全避免了随机性带来的不确定性。
3. DISCA架构的硬件实现细节
3.1 SRAM阵列改造方案
基于商用180nm工艺,我们设计了支持位线计算的6T SRAM单元阵列:
关键电路改进 :
- 可配置灵敏放大器:支持差分模式(标准读取)和单端模式(位线计算)
- 双字线驱动能力提升30%以满足同时激活需求
- 预充电电路增加电压补偿模块
存储布局优化 :
+---------------------+
| 权重矩阵U (64行) |
+---------------------+
| 输入矩阵L (64行) |
+---------------------+
这种布局使得U的第i列与L的第j行在物理上对齐,便于后续乘积累加。
3.2 分层解码器设计
传统数字IMC需要两个独立解码器,而DISCA采用创新性的分层结构:
-
地址锁存阶段:
- 捕获输入矩阵行地址
- 冻结下部解码器输出
-
权重扫描阶段:
- 上部解码器依次激活各权重行
- 每次激活与锁定的输入行进行位线AND操作
实测显示,这种设计将解码能耗降低57%,同时面积仅增加12%。
3.3 乘积累加流水线
DISCA的MAC单元采用三级流水:
比特流生成 → 并行计数 → 加法树累积
并行计数器 采用Wallace树结构,将256位AND结果分为32个8位组,每组独立统计1的个数。我们的实现显示,32个4位计数器总功耗为18.7mW@500MHz。
加法树 采用进位保留结构,最终输出为:
result = sum(popcount(AND(U[i], L[j])) for i in range(64))
布局后仿真表明,完整MAC操作延迟为3ns,满足500MHz时钟要求。
4. 性能实测与优化实践
4.1 能效基准测试
在180nm工艺下,DISCA关键指标如下:
| 操作类型 | 能耗(fJ/bit) | 吞吐量(TOPS) |
|---|---|---|
| SRAM写入 | 411 | - |
| SRAM读取 | 289.75 | - |
| 位线AND计算 | 301 | 7.9 |
| 完整MAC | 557.428 | 3.59 |
对比传统数字IMC方案(如[12]),DISCA在等效工艺下能效提升86倍。若换算到22nm节点,预计可达28TOPS/W。
4.2 实际部署经验
在无人机视觉处理场景的部署中,我们总结出以下关键经验:
权重布局策略 :
- 将高频权重放在阵列上部(靠近输出端)
- 相关滤波器权重集中放置
- 实测显示这种优化可减少15%的存取能耗
温度补偿方案 :
// 动态调整预充电电压
if (temp > 85°C)
Vprecharge += 0.1V;
else if (temp < 0°C)
Vprecharge -= 0.05V;
该措施将高温下的计算错误率从5.3%降至0.7%。
5. 典型问题排查指南
5.1 位线电压异常
现象 :AND计算结果出现系统性偏差 排查步骤 :
- 检查预充电电压是否稳定在1.2V±50mV
- 测量位线负载是否平衡(ΔR < 5%)
- 验证字线驱动强度(上升时间<300ps)
案例 :某批次芯片出现AND结果全1,最终确认为P型负载管阈值电压漂移,通过调整工艺偏置解决。
5.2 随机计算精度下降
可能原因 :
- BP8模式未正确加载
- 加法树进位链延迟不匹配
- 电源噪声导致计数器错误
诊断方法 :
- 注入全1测试模式验证最大输出应为256
- 扫描时钟树skew(需<15ps)
- 进行电源完整性分析(IR drop<5%)
我们在实际调试中发现,当电源地弹超过200mV时,并行计数器会产生±3的误差。通过增加去耦电容将地弹控制在80mV内,问题得到解决。
6. 架构扩展方向
基于当前成果,我们正在推进三个方向的改进:
计算密度提升 :
- 采用3D堆叠技术将逻辑层与存储层垂直集成
- 初步仿真显示,TSV连接可使能效再提升40%
动态精度调节 :
// 可配置比特流长度
parameter BIT_WIDTH = 8;
always @(*) begin
case (precision_mode)
2'b00: out_mask = 8'hFF;
2'b01: out_mask = 8'h0F;
// ...
endcase
end
该特性允许在运行时权衡精度与能效,适合不同AI任务阶段的需求。
新型存算范式 : 探索将BP8格式与存内搜索结合,初步实验表明,在近似最近邻搜索任务中可获得10^8次搜索/秒的超高吞吐。


被折叠的 条评论
为什么被折叠?



