VLSI 2024论文详解:具有紧凑型MAC-SIMD和自适应竖式加法数据流的1T1C DRAM存内计算加速器Dyamond

本文将要介绍的文献题目为《Dyamond: A 1T1C DRAM In-memory Computing Accelerator with Compact MAC-SIMD and Adaptive Column Addition Dataflow》,下面将从文章基本信息、具体内容解析和总结与思考三个方面进行论文详解。

一、文章基本信息[1]

  1. 研究团队及期刊信息

研究团队为韩国科学技术院与三星电子。韩国科学技术院简称"KAIST",是韩国一所公立研究性大学,在韩国有着很高的评价和业界认可度。三星电子(Samsung Electronics)是韩国最大的电子工业企业。

本文发表在IEEE Symposia on VLSI Technology and Circuits中(简称VLSI),超大规模集成电路研讨会(电路/器件顶会)VLSI国际会议始于1980年,是美国IEEE国际电机电子工程师学会与电子元件协会联合日本应用物理学会举行的国际性学术会议,每年六月中旬美国、日本轮流举行,偶数年在美国举行。该会议在国际集成电路/半导体器件的学术界以及工业界均享有很高的学术地位和广泛影响,会议文章不仅需要学术上的创新,更需要体现成果的产业价值和技术前沿性。每年Intel、IBM、Samsung、IMEC 和TSMC等国际知名半导体公司都在该会议上发布各自最新研究进展。每年1月投稿截止,6月举行会议。

  1. 背景与挑战

DRAM存内计算(IMC)通过减少数据搬运显著提升系统能效,但其硬件实现仍面临密度与能效的协同优化难题。首先,现有架构需引入额外晶体管或电容以支持计算功能,导致计算单元面积膨胀至标准DRAM单元的13倍(SRAM单元的3.6倍),严重削弱DRAM固有的高密度特性。即便采用1T1C单元设计,外围处理逻辑与数据路径的冗余结构仍难以匹配DRAM单元的高密度潜力。其次,传统比特串行输入数据流需对每个输入比特执行多次模数转换(ADC)和数字累加,导致能效严重受限(每输入比特生成多比特部分和行,需N×B次ADC操作),同时难以维持复杂DNN模型(如ResNet、BERT)所需的信号量化噪声比(SQNR >30dB),阻碍其在先进AI场景中的部署。

  1. 文章内容简述

为解决以上挑战,本文提出1)LSB-CA:在计算线(CL)上实现模拟列累加,减少ADC操作以提升能效;2)MSB-CA:结合信号增强型乘累加(SE-MAC)与信号偏移型ADC(SS-ADC),在单次读取中兼顾高SQNR与能效;3)可开关传感放大器(SWSA):降低内存读取能耗,支持存内算术SIMD操作。

二、创新点介绍

  1. LSB-CA(低有效位-列添加)

LSB-CA,即低有效位列累加,从整体架构上看,这种设计巧妙地将乘法累加运算的输出结果按列划分,并针对低有效位列(如图1中的C0到C5)应用模拟累加策略。这种方法与处理高有效位列的MSB-CA形成互补,共同构建起Dyamond高能效、高精度的存算一体解决方案。关键在于,LSB-CA依赖于NAP(Negative-Attenuation-Positive)操作,这是一个三阶段模拟信号处理流程,在保证一定精度的前提下,实现了ADC操作次数的显著降低。

如图1右上角所示,在负输入阶段,NAP操作首先利用输入相位逆变器(IPI)从当前累加电压中减去下一列电压。接着,衰减阶段通过输出电压衰减器(OVA)将电压减半,调整列间权重比例。最后,正输入阶段将下一列电压加回,完成迭代累加。

具体地,为了实现LSB-CA,Dyamond架构设计了如图1左上角的CA Dataflow。z首先,在负输入阶段计算列电压VCi+1并将其从累积电压Si中减去。输入列移位器(ICS)完成输入对齐,以流水线方式匹配每列的相应权重位置。输入反相器(IPI)按位反转对齐的输入,并将其馈送到输入驱动器。与此同时,DRAM阵列存储着权重数据,这些权重数据由可切换感应放大器行(SWSA)读取,并送入CMSU。CMSU使用驱动器的输入和SWSA的权重计算列结果,将结果累积在计算线(CL)上作为耦合电压Si-VCi+1。随后,在衰减阶段(A),使用输出电压衰减器(OVA)将累积的CL电压减半至(Si-VCi+1)/2,从而匹配列之间的刻度。最后,正输入阶段(P),通过将IPI重置为初始电压,将VCi+1添加到CL中,从而产生所需的CL电压(Si+VCi+1)/2。CMSU集成了Comp.&SAR(比较器和逐次逼近寄存器型ADC)以及实现NAP操作所需的电路,它接收来自输入驱动器的输入数据和来自SWSA的权重数据,执行MAC运算和模拟累加,最终完成LSB列的计算任务。

如图1右下角所示的性能图表直观展示了LSB-CA的优势。LSB-CA相比传统方法,显著降低了ADC操作次数,减少达5.3x到10.7x,提升了能效,同时在较少ADC操作下仍保持较高信号量化噪声比(SQNR),保证了计算精度。

图1 列添加(CA)数据流和带有NAP操作的LSB-CA

  1. MSB-CA

MSB-CA,即高有效位列累加,是Dyamond架构中与LSB-CA互补的关键技术,专门针对乘法累加运算中高有效位(MSB)列进行优化。与LSB-CA侧重于能效提升不同,MSB-CA的主要目标是在保证高信号量化噪声比(SQNR)的前提下,提升能效。这是因为高有效位对最终计算结果的精度至关重要,任何精度损失都可能对整体模型性能产生较大影响。MSB-CA的核心在于两项创新技术:信号增强MAC(SE-MAC)和信号偏移ADC(SS-ADC),它们协同工作,共同实现了MSB列的高精度和高能效计算。

首先,如图2上方展示了SE-MAC的设置。其核心思想是通过动态调整计算电容(Cc)的数量,来增强高有效位列的信号强度,从而提升SQNR,图中展示了2倍、4倍和8倍三种配置,分别对应不同的信号增强倍数。以"2x SE-MAC" 为例,计算电容的数量减少了一半,这使得CL上的电压信号强度提升了2倍。MSB列的信号幅度通常较小,容易受到噪声干扰,SE-MAC可以有效解决该问题。

此外,SS-ADC可以实现更高的能效。SS-ADC的核心思想是通过信号偏移(Signal Shift),将ADC的输入信号分布零中心化,从而可以使用较低位宽的ADC,在保证精度的前提下,显著降低ADC的功耗。如图2中间右边所示,在没有信号偏移的情况下,输出信号分布范围较宽,需要8-bit ADC才能进行量化,而使用信号偏移后,输出信号分布变得更加集中,零中心化程度更高,只需要5-bit ADC即可满足精度要求。

图2下方的性能表进一步展示了MSB-CA的优势。采用SE-MAC和SS-ADC的MSB-CA实现了33.1 dB的测量SQNR,将宏能效提升了2.40x,并与LSB-CA一起将宏能效提高了3.32×。

图2 带有信号增强(SE)和信号移位(SS)ADC的MSB-CA

  1. 可开关传感放大器(SWSA)

图3展示了CMSU模块的可开关传感放大器(SWSA)及其SIMD操作实现。该SWSA由4个P型MOSFET和4个N型MOSFET构成,其中额外增加的4个晶体管通过/SELBL、/SELBLB、SELBLB和SELBL信号进行切换控制。

该电路可通过禁用/SELBLB和SELBLB信号实现两种工作模式:1)在存储器模式(M-SA)下采用差分感测机制以获取高传感裕度;2)在SIMD模式(S-SA)下则通过直接感测降低访问能耗。M-SA模式通过差分放大技术处理主存储阵列(big array)和子存储阵列(little array)的位线(BL)微小电压差,而S-SA模式仅对子阵列8行的分段位线进行电压保持或反转操作,其读取能耗相比M-SA模式降低5.2倍。

SIMD运算通过S-SA模式与分段位线结合实现低功耗存内算术运算,具体包含三类基于操作数的逻辑操作:1)输入-存储器(IM)模式支持16种逻辑运算;2)进位-存储器(CM)模式执行IN•BL+C•/BL运算;3)以及存储器-存储器(MM)模式实现AND/OR操作。通过组合这三类逻辑运算(详见图5架构),系统最终实现SIMD算术运算,整体运算能耗较传统方案降低2.8倍。

图3 SWSA计算模式与存内计算的SIMD

三、性能对比

本文所介绍芯片的性能参数、电镜图以及性能对比表如下图所示

图4 文章介绍芯片参数及对比表

将本文所介绍芯片与近年来顶会中其他eDRAM芯片[2][3][4]进行对比:[2]和[3]均为KAIST的Sanjin Kim发表,是基于3T2C eDRAM进行的模拟存算设计,在设计的出发点和设计思路上具有一定共通之处;[4]是基于3T eDRAM的数字存算一体设计,文中没有明确一个eDRAM中电容的数量。从所选器件而言,1T1C DRAM由一个晶体管和一个电容器组成,晶体管作为开关,控制电容器的充放电,电容器用于存储数据;3T2C DRAM由三个晶体管和两个电容器组成,一个是MOS电容,用于存储数据,一个是MOM电容,用于计算。对比[2]和[3]采用的3T2C结构而言,本文选用的1T1C结构存储密度更高,但只具备存储数据的能力。

从出发点而言 ,[2]注意到传统数字存内计算核心资源利用率较低,旨在解决系统资源利用率和ADC带来的高功耗问题;[3]旨在解决模拟存内计算中多位宽计算时SQNR不足导致需要高精度ADC从而增加能耗的问题;[4]旨在解决传统数字存内计算设计难以同时实现高存储密度和高计算密度的问题,并关注到数字加法树的巨大面积开销。本文所介绍文章和 [2] [3] ,都关注到了ADC对模拟存内计算造成的影响,是同一个方向的研究 ,而[4]则重点关注计算密度的问题,通过引入LUT优化晶体管数量,在此不做赘述。从创新点和解决问题的方法上,[2]提出了一种分层内存ADC(Hi-ADC)通过三模单元减少ADC面积开销,并通过分层操作节省功耗,三模单元可被重新配置为IMC PE、单元DAC、单元Cell以自适应地优化系统资源利用率;[3]提出了一种动态缩放地ADC,可以自适应地控制感测电平,减少ADC周期。[2] [3] 通过优化ADC器件来解决其所面临的问题,而本文所介绍文章主要关注于ADC作为器件的调用,通过优化计算方式减少ADC调用次数从而提高能效。

综上所,本文提出了一种采用列加法数据流和列向优化的模拟存内计算芯片设计,通过优化数据流降低芯片中ADC的数量和调用次数,实现了比以往设计更高的存储密度和能效,为模拟存内计算进一步的能效和面销提升提供了一种新思路。

参考资料

  1. Hong, Seongyon, et al. "Dyamond: A 1T1C DRAM In-memory Computing Accelerator with Compact MAC-SIMD and Adaptive Column Addition Dataflow." 2024 IEEE Symposium on VLSI Technology and Circuits (VLSI Technology and Circuits). IEEE, 2024.
  2. Kim S, Li Z, Um S, et al. DynaPlasia: An eDRAM in-memory computing-based reconfigurable spatial accelerator with triple-mode cell[J]. IEEE Journal of Solid-State Circuits, 2023, 59(1): 102-115.
  3. Kim S, Um S, Jo W, et al. Scaling-CIM: An eDRAM-based in-memory-computing accelerator with dynamic-scaling ADC for SQNR-boosting and layer-wise adaptive bit-truncation[C]//2023 IEEE Symposium on VLSI Technology and Circuits (VLSI Technology and Circuits). IEEE, 2023: 1-2.
  4. He Y, Fan S, Li X, et al. 34.7 A 28nm 2.4 Mb/mm 2 6.9-16.3 TOPS/mm 2 eDRAM-LUT-Based Digital-Computing-in-Memory Macro with In-Memory Encoding and Refreshing[C]//2024 IEEE International Solid-State Circuits Conference (ISSCC). IEEE, 2024, 67: 578-580.
相关推荐
开心比对错重要1 小时前
leetcode69.x 的平方根
数据结构·算法·leetcode
Macle_Chen2 小时前
Mac服务器上创建Docker并安装宝塔环境
服务器·macos·docker
Doopny@2 小时前
数字组合(信息学奥赛一本通-1291)
数据结构·算法·动态规划
君莫愁。2 小时前
【Unity】搭建基于字典(Dictionary)和泛型列表(List)的音频系统
数据结构·unity·c#·游戏引擎·音频
原来是猿2 小时前
蓝桥备赛(13)- 链表和 list(上)
开发语言·数据结构·c++·算法·链表·list
*星星之火*3 小时前
【GPT入门】第9课 思维树概念与原理
gpt·算法·深度优先
snpgroupcn3 小时前
ECC升级到S/4 HANA的功能差异 物料、采购、库存管理对比指南
运维·安全·数据库架构
总斯霖4 小时前
题解:士兵排列
数据结构·c++·算法
平谷一勺5 小时前
go切片定义和初始化
数据结构·golang·数组·切片
誓约酱5 小时前
(每日一题) 力扣 283 移动零
linux·c语言·数据结构·c++·算法·leetcode