为了解决这个问题,在本文中我们提出了一种新型混合CMOS单元存储器设计,通过结合SRAM和eDRAM单元,平衡了人工智能存储器的性能、面积和能效。我们考虑了存储器中一个SRAM和七个eDRAM单元的比例,以利用混合CMOS单元存储器实现面积缩减。
此外,我们还利用DNN数据表示的特点,集成了非对称eDRAM单元,以降低能耗。为了验证我们提出的MCAIMem解决方案,我们进行了大量仿真,并对传统SRAM进行了基准测试。结果表明,MCAIMem在面积和能效方面明显优于这些替代方案。具体来说,与SRAM设计相比,我们的MCAIMem可以减少48%的面积和3.4倍的能耗,而且不会造成任何精度损失。
引言
6TSRAM长期以来一直是嵌入式存储器的首选,因为它具有逻辑兼容的位单元、快速差分读取和静态数据保持能力。然而,由于其相对较大的单元尺寸以及在低工作电压下读写的竞争要求,使得6TSRAM难以在先进的CMOS技术中扩展。
最近,非易失性存储器因其单元尺寸小、单元泄漏低和快速读取访问操作而引起了研究界的兴趣。早期的研究试图用ReRAM、FeFET等非易失性存储器取代片上SRAM。然而,非易失性存储器的写入操作比读取操作更慢,能耗更高。这会对DNN应用中的人工智能芯片性能产生负面影响,例如片上学习,片上读取和写入操作都是必须的。
片上SRAM的另一个替代品是嵌入式动态随机存取存储器(eDRAM)。表I比较了采用相同65纳米低功耗CMOS工艺的不同嵌入式存储器。我们发现,与6TSRAM相比,1T1CeDRAM(1个晶体管和1个电容器)的位元密度高4.5倍,静态功耗低5.0倍,甚至包括刷新功耗。这使得芯片尺寸更小、存储器访问速度更快、存储器密度更高,这是在给定功耗限制条件下提高微处理器性能的最有效方法。
然而,非易失性存储器和传统eDRAM(1T1C)需要复杂的制造工艺,因为它们需要专门的材料才能在晶圆上部署。
最近的一项研究提出了一种非对称DNN数据编码器,在保持DNN性能的同时,提高了INT8表示法中0位的频率。这一想法可与使用2TeDRAM的片上数据存储结合起来进一步利用,2TeDRAM显示了位-1和位-0之间数据保留的不对称性,其中位-1比位-0提供更少的静态和访问能量。
将6TSRAM/2TeDRAM混合设计与一个增强型数据编码器(增强INT8表示法中位-1的普遍性)相结合,可以优化芯片的面积和能耗。因此,我们推出了MCAIMem,一种基于SRAM和非对称eDRAM的混合存储单元,设计用于节省面积和能耗的片上人工智能存储器。MCAIMem适应性强,能够满足各种内存容量和性能需求,因此适用于从紧凑型边缘设备到大型数据中心等各种人工智能应用。我们的贡献如下:
我们提出的共电压检测放大器(CVSA:commonvoltagesenseamplifier)可同时用于SRAM和2TeDRAM单元。通过控制CVSA的参考电压,我们可以延长2TeDRAM的刷新周期,从而降低MCAIMem的动态刷新能耗。
如图1.(b)所示,我们的MCAIMem通过融合6TSRAM和2TeDRAM的优势,创建了高性能、高能效和紧凑型混合存储器解决方案,从而将片上人工智能存储器系统的面积消耗减少了48%,能效提高了3.4倍。
在第二节,我们介绍了增益单元eDRAM、外围电路以及DNN数据表示中使用的二乘法的背景信息。第三节详细介绍了人工智能存储器的综合设计和运行机制。第四节讨论了MCAIMem对人工智能应用的影响。第五节介绍了45纳米工艺技术的硬件评估结果,包括电路和系统两个层面。第六节探讨了在人工智能应用中采用eDRAM的最新研究成果。最后,第七节得出结论。
背景
1.嵌入式DRAM单元和传感设计
3T和2TeDRAM:
与传统SRAM相比,3T和2TeDRAM设计每个存储单元使用的晶体管更少,因此面积更小,密度更高,位元密度大约提高了2倍。最近的研究表明,eDRAM的增益单元目前正在积极开发中,最新的实现采用了7-10纳米FinFET技术。如图1.c所示,在休眠模式下,eDRAM单元的漏电流低于SRAM,从而降低了静态功耗,包括漏电功耗和刷新功耗。
要理解eDRAM增益单元,可以考虑传统3T增益单元的基本保持特性。在图2.(a)所示的3TNMOS单元中,PW代表写入访问器件,PS代表存储器件,PR代表读取访问器件。在3TeDRAM中,PS的栅极电容用于存储比特-1或比特-0表示的电荷电压。与1T1CeDRAM相比,PS的容量较小。因此,3T增益单元采用解耦读写结构,读取数据时使用独立的读字线(RWL)和读位线(RBL),写入数据时使用写字线(WWL)和写位线(WBL)。这提高了位元设计中的读写边际和灵活性,使增益单元在未来的技术节点中能够很好地扩展。
然而,在PVT变化下,漏电补偿证明是不够的,因为NMOS存储设备的反相沟道栅极漏电在比特-1中占主导地位,如图2(a)所示。
在图2.(b)所示的2TeDRAM单元中,读取访问晶体管由RWL信号取代,预充电电平设置为VDD。存储晶体管基本上处于关闭状态,因此其栅极漏电流微不足道。由于读取路径不存在阈值下漏电,因此建议采用低Vth晶体管,以进一步提高读取速度。在0.65V读取参考偏置下,存储单元表现出不对称性,位-1不会改变,而位-0容易翻转为位-1。均衡的P和N扩散密度是所提出的2T不对称单元的另一个优点。本文旨在利用这一特性最大限度地减少静态和动态能耗,因为位-0的翻转需要更多的能量。
2TeDRAM检测放大器:
在增益单元中,NMOS栅极电容用于存储电荷,使其对电压变化非常敏感。直接访问NMOS可能会导致存储位翻转。因此,传统增益单元需要一个电流检测放大器来检测存储节点。对于2T单元设计,RBL必须表现出有限的摆幅,以避免因未选择单元的漏电流而导致读取失败。
然而,较小的电压摆幅会导致较差的读取感应裕度。非对称2T增益单元利用低Vth读取器件实现更快的读取速度,同时将速度关键的第1位电压保持在VDD附近,从而使情况更加复杂。为解决这一问题,在2TeDRAM设计中采用了电流模式检测放大器(C-S/A),在检测期间将RBL电压保持在VDD附近,并允许将多个低Vth单元连接到单个RBL。
如图2.(c)所示,C-S/A由一个交叉耦合PMOS锁存器(P1)和一个伪PMOS二极管(P2)组成,伪PMOS二极管由负电源VBB驱动,而VBB在芯片上很容易获得,可用于欠驱动WWL。负WWL是PMOS器件向单元写入比特-1而不产生阈值电压损耗的必要条件。两个PMOS对(P1和P2)都在饱和模式下工作,从而提高了匹配度。不过,这种C-S/A设计仅用于读取2TeDRAM单元中的存储位,因为位-0仍需要定期回写以避免位翻转。
因此,写操作需要一个额外的写电路,由于2TeDRAM单元尺寸小,读/写电路需要大量的开销,因此导致效率低下。在这种2TeDRAM中。传统的2TeDRAM只能利用2TeDRAM的非对称特性,通过C-S/A在较小的电压摆幅下进行感应,而我们的方法则不同,它通过电压感应扩展了读取过程。在我们的方案中,存储电荷的电压裕量更大,位0为0至0.8V,位1为0.8至1.0V。更深入的讨论见第III-B节。
2.DNN表示中的二乘补法和一增强法
在深度神经网络(DNN)中,数据表示法的选择对精度、计算复杂性和功耗有很大影响。二进制表示法是DNN中符号整数值的常用格式,因为它简化了算术运算,尤其是乘法和加法运算。这种格式将负数表示为相应正数二进制表示的二进制补码,从而简化了硬件实现,降低了电路复杂度。
目前,INT8被认为是DNN推理的最佳表示形式,能保持精确的结果。8位二进制量化技术已被广泛采用,并优于其他量化技术。在这项工作中,我们选择8位二进制作为设计片上缓冲器的基准。
如图3.(a)所示,第一位(即有符号位:signedbit)决定数字是正数还是负数。正如ZEM所指出的,DNN数据的范围通常很窄(例如[-50,50])。接近零的负值具有1主导位,而相应的正数则表现为0主导位。转换0主位时,需要根据带符号位翻转所有数据位。如图3.(b)所示,构建编码器只需要一个INV和七个XOR门,就能将原始数据转换为1主位数据。单增强编码器将DNN数据编码为1主位数据。解码器根据签名比特翻转编码数据,从而重建原始数据。
与ZEM不同的是,我们的工作旨在创建1主导数据,以减少混合单元存储器设计在存储DNN数据时的刷新和静态能耗。在本文中,存储在片上存储器中的DNN数据在计算前要经过编码和解码。
3设计挑战和要求概述
我们在考虑单增强编码器/解码器的要求时,有符号位充当控制位,决定何时执行编码或解码操作。保护签名位不受错误影响至关重要。在本文中,我们利用2TeDRAM来提高面积和能效。然而,由于单元电压损耗加快,2TeDRAM需要更频繁的刷新操作。为了确保签名位的安全,我们将其分配到6TSRAM,并将其余位映射到2TeDRAM。因此,在设计混合SRAM和eDRAM单元时,我们需要应对以下挑战:
兼容性:确保在单一存储器架构中无缝集成SRAM和eDRAM单元,并保持与现有制造工艺的兼容性。
密度和面积效率:在不牺牲性能或增加芯片复杂性的情况下,实现高存储器密度和面积效率。
可扩展性:开发可轻松扩展的存储器架构,以适应从边缘设备到数据中心的各种人工智能应用对存储器容量和性能的不同要求。
可靠性:保证混合内存设计在不同运行条件下的稳健性和可靠性,尤其是在涉及频繁读写操作的人工智能工作负载中。
在本文中,我们将解决上述问题,并介绍适合人工智能应用的高效片上存储器设计。更多详情将在后续章节中介绍。
我们的MCAIMEM
本节将介绍MCAIMem,这是我们专为人工智能芯片开发的创新型片上混合单元存储器设计。如图4所示,MCAIMem由三个关键部分组成:
2)一个增强编码器/解码器;
片上MCAIMem是人工智能加速器的缓冲器,用于存储计算过程中的权重和激活。从片外DRAM传输过来的数据保留在MCAIMem中,随后由DNN处理引擎使用,该引擎可以是传统的CPU/GPU,也可以是合成阵列或内存计算(CIM)架构。
入站/出站(Inbound/outbound)数据必须通过一个增强编码器模块进行编码/解码,这将在第III-A1节中讨论。编码后的数据将保存在我们的混合单元存储器设计中,这是6TSRAM和2TeDRAM的组合,旨在最大限度地减少片上存储器的面积占用。有关混合单元存储器设计的更多细节将在第III-B节中介绍。由于包含2TeDRAM,因此需要进行定期刷新操作。刷新控制器将在第III-C节中讨论。
1.一次增强编码器/解码器和数据映射
如图5所示,第6位、第5位和第4位大多转换为位-1,因此将它们映射到2TeDRAM单元的效率很高。第0位、第1位、第2位和第3位继续保持相当数量的位-0。使用2TeDRAM存储这些比特时,可能会出现保留错误。不过,由于2TeDRAM的非对称性质,只有从0到1的翻转错误才被视为保留错误。这些错误可能会影响DNN应用的输出。为确保这些错误不会对DNN应用结果产生不利影响,我们将在第IV-A节评估其影响。
1)将控制位映射到6TSRAM,
如图6所示,一个6TSRAM单元分配给带符号/控制位,而下面的7个位则映射到2TeDRAM单元。输入的DNN数据首先由单增强编码器编码,然后存储在混合单元阵列中。签名位/控制位安全地存储在6TSRAM中,而其余位则根据签名位翻转并存储在2TeDRAM中,如图6所示。
这种存储器映射方法确保了6TSRAM中签名/控制位的安全性,同时要求对其余位进行定期刷新操作,以防止数据翻转ping。这一机制对于保持比特-1在大多数DNN数据(约80%)中的主导地位至关重要。由于2TeDRAM的特性,存储比特-1比存储比特-0消耗更少的能量。因此,通过将单增强编码器与非对称2TeDRAM结合使用,可以实现静态节能。
2.混合单元(mixed-cell)存储器设计
如映射方法所述,我们的混合单元存储器设计由一个6TSRAM单元和七个2TeDRAM单元组成。为了集成这些单元,我们需要修改6TSRAM和2TeDRAM的电路设计。在这项工作中,我们建议对2TeDRAM进行修改,并对6TSRAM稍作改动。此外,我们还提出了一种可同时用于6TSRAM和2TeDRAM的电压检测放大器。这些调整的细节将在下面的小节中讨论。
此外,增加存储节点的容量还能带来额外的好处。它使2TeDRAM更能抵御读取干扰效应。这样,我们就可以移除2TeDRAM中的RWL和RBL,将它们直接连接到VDD。现在,NMOS晶体管只起到存储电容器的作用。来自存储节点VDD的栅极漏电以及写入晶体管的栅极漏电和结漏电将存储节点的电荷补充到位1。因此,2TeDRAM的非对称特性保持不变。
2)混合存储单元中SRAM单元设计的调整:我们对2TeDRAM的存储节点进行了重大修改,但保留了传统2TeDRAM设计中的PMOS接入晶体管。做出这一决定是为了确保只有第0位发生变化,而第1位保持不变。为了尽量减少PMOS的阈下漏电,并确保下拉漏电路径始终低于上拉漏电路径,我们采用了VDD+0.4V电压。不过,使用PMOS晶体管作为存取晶体管可能与6TSRAM中存取晶体管的设计相冲突。
为解决这一问题,我们对SRAM单元设计进行了细微修改,如图8.(a)所示,将SRAM中的访问晶体管也改为PMOS。通过调整两个存储单元中的访问晶体管类型,我们促进了6TSRAM和2TeDRAM设计的整合,同时保持了所需的功能和性能。
通过修改6TSRAM位单元中的存取晶体管(参见图9.a),我们发现使用pMOS存取晶体管(红线)时,读取静态噪声裕度(SNM)为100mV,而使用nMOS晶体管(黑线)时为90mV。不过,pMOS晶体管的写入能力较低。随着节点QB放电和Vgs下降,当QB降到阈值电压以下时,晶体管会减弱并关闭,从而导致FS角的写入裕量受限为30mV(绿线)。如图9.b所示,在字线(WL)上施加-0.1V电压时,pMOS存取晶体管的写入良率会增加,达到nMOS晶体管的写入良率。
在2TeDRAM中,需要一个电流检测放大器来检测读取路径中的微小增益,而不会干扰存储节点中的数据。但是,刷新操作要求将读取的数据写回存储节点,从而导致大量的外围电路开销。如第III-B1节所述,通过将2TeDRAM的宽度尺寸增加4倍,该设计可以抵御读取干扰。因此,我们建议为6TSRAM和2TeDRAM安装一个电压检测放大器,如图8(c)所示。这使得2TeDRAM和6TSRAM的读写操作完全相同。6TSRAM和2TeDRAM连接到电压检测放大器时的主要区别在于,6TSRAM的BL和BLB都是连接的。相反,对于2TeDRAM,只有一个BL连接到感应放大器,而感应放大器的BLB连接到参考电压(VREF),如图8(b)所示。
这不仅简化了读写操作,而且使用电压检测放大器还能在读取操作过程中将数据写回2TeDRAM存储节点。这就简化了刷新过程,因为只需要一次读操作就能完成刷新,而不是标准2TeDRAM设计中传统的一连串读和写操作。
4)电压检测放大器的读写操作:图10.(a)展示了使用电压检测放大器(VSA)的写操作。写入过程首先是向位线输出端(BLO1)施加电压,然后通过使能信号(EN)启用电压检测放大器。这一操作会导致位线充电或放电。当字线(WL)被激活时,位线电压会改变6TSRAM或2TeDRAM中的数据。对于SRAM,6TSRAM中的PMOS存取晶体管必须弱于存储节点,写入操作才能成功。对于2TeDRAM,存储节点的充放电过程与SRAM类似。
图10.(b)显示了VSA的读操作。为初始化读取操作的感测放大器,启用了预充电,将BLO1和BLO2充至1。对于2TeDRAM,可将参考电压施加到位线栅(BLB)。该参考电压(VREF)用于比较存储节点的电压,并确定BLO1的数据输出。一旦感测放大器中的WL和EN启用,存储节点将对位线进行充电或放电。如果位线(BL)电压大于检测放大器内的VREF,BLO1将被设置为1;如果BL电压小于VREF,BLO1将被设置为0。因此,必须禁用感测放大器中的WB,以便为2TeDRAM中的存储节点充电。对于6TSRAM,VSA的BLB连接到SRAM单元的BLB。
基准电压和刷新控制器
如图10(b)所示,我们改进的2TeDRAM的读操作允许停用回写(WB:write-back)信号。由于位线电压的存在,存储节点可以充电或再充电,因此MCAIMem的刷新操作与执行读操作一样简单。
减轻MCAIMEM下的DNN精度损失
在本节中,我们将探讨MCAIMem对DNN应用结果的影响。首先,我们将研究保留误差对DNN性能的影响。其次,我们将讨论为人工智能芯片上的节能DNN应用延长刷新周期的方法。
1.保留误差对人工智能芯片结果的影响
我们利用MNIST、CIFAR10、CIFAR100和ImageNet等数据集,对LeNet、VGG11、VGG16、AlexNet和ResNet50等多个CNN进行了模拟。在语言建模方面,我们使用了I-BERT(BERT的整数版本)和GLUE数据集。在生成建模方面,我们使用了CycleGAN的量化版本和horse2zebra数据集。这种综合评估可以揭示不同的保留误差水平对DNN准确性的影响程度以及One-enhancement方法的有效性。对于指定的每个误差率,可以比较使用MCAIMem和不使用One增强编码时DNN的准确性。
在DNN应用中,结果是决定人工智能性能的关键。与硬件性能和能耗相比,保持DNN输出的准确性是一个更重要的因素。因此,我们的MCAIMem应符合这些要求,并在混合单元设计中考虑最多1%的最大保留误差。
2.利用自适应VREF延长刷新周期
评估
我们的研究主要涉及用于服务器和台式机应用的人工智能芯片,工作温度范围为25摄氏度至85摄氏度。我们特别没有考虑电压变化,而是通过蒙特卡洛仿真集中研究工艺变化。在本节中,我们将讨论分为两个主要部分。首先是电路仿真,然后是系统仿真。后者特别探讨了由我们提出的MCAImem设计驱动的DNN应用。
1.电路评估
在电路评估中,我们使用CMOS45nm技术创建了1MB6TSRAM、2TeDRAM和混合单元存储器的布局。我们根据布局尺寸计算这些嵌入式RAM的芯片面积,并进行比较。此外,我们还提取了这些存储器的SPICE模型,并进行了后仿真,以分析每种存储器类型的静态功耗、读取和写入操作。表II.总结了特性分析结果。
与2TeDRAM相比,我们的混合单元存储器包括一个6TSRAM和七个2TeDRAM。静态功耗来自SRAM和eDRAM,但与单独的SRAM相比,可降低3-6倍。在读写操作方面,6TSRAM大部分是平衡的,而2TeDRAM仍然显示出不对称的特性。读取位-1时,初始BL为VDD,因此感应放大器没有变化,从而实现了低能耗。相反,当读取位-0时,存储节点必须重新充电至0,来自存储节点的电流是造成能耗的主要因素。
2.系统评估
在静态功耗方面,SRAM的能耗高于2TeDRAM和我们的混合电池存储器。虽然我们的混合电池存储器的静态能耗高于2TeDRAM,但其性能却优于SRAM。在SRAM/eDRAM比例为1/7的情况下,混合单元存储器中SRAM的固定能源开销占总能耗的76.5%。更多详情可参见图14。
至于刷新功耗,SRAM不需要刷新操作,而2TeDRAM和我们的混合单元存储器则需要。如第IV-B节所述,调整参考电压(VREF)可以帮助延长刷新周期,减少刷新操作。我们选择了带有电流模式检测放大器的传统2TeDRAM,并对混合单元存储器中电压模式检测放大器的VREF值[0.5、0.6、0.7、0.8]进行了实验。图15.(a)表明,适当的VREF值可显著降低刷新能量。因此,我们选择的0.8VREF值产生了最低的刷新操作,因为它将刷新周期延长了近10倍,从1.3us延长到12.57us。
关于总能耗(包括整个推理过程中的静态和动态能耗),eDRAM占地面积小,但由于其刷新能耗要求,在总体能耗方面并不突出。相反,我们的混合单元存储器在面积占用最小化和能耗降低方面都具有优势,能效比6TSRAM高出3.4倍,如图15...(b)所示。不过,RRAM的能效比SRAM低100多倍,这是因为它需要进行大量写入操作。
鉴于片上缓冲区在Eyeriss和TPUv1中分别占42.5%和37%的功耗,使用VREF=0.8的MCAIMem配置可使每瓦性能提高35.4%到43.2%的峰值,超过采用SRAM的片上缓冲区的效率,如图16所示。因此,MCAIMem是一种引人注目的解决方案,有可能为高效人工智能存储器设计的创新铺平道路。
为了提高吞吐量,有人提出了内存计算(CIM)来替代传统的DNN加速器。目前已开发出采用两个2TeDRAM的4TDualeDRAM阵列和采用混合SRAM和eDRAM配置作为计算节点的DualPIM[21]等技术。此外,最近的eDRAM节点优化侧重于减少泄漏和增强CIM的鲁棒性。虽然这些方法显示出显著的性能和节能效果,但对片上缓冲器的需求依然存在。
结论
本文介绍了MCAIMem,这是一种创新的面积和能效AI存储器设计,它采用混合CMOS存储器单元设计,包括SRAM和eDRAM单元。我们优化了SRAM/eDRAM单元的比例,以减少面积,并利用DNN的数据表示和非对称eDRAM单元降低能耗。实验结果表明,与传统的SRAM设计相比,我们的MCAIMem设计可将面积减少48%,能耗降低3.4倍,而且不会牺牲精度。这项工作凸显了混合CMOS存储单元和非对称2TeDRAM单元在实现人工智能存储器设计的性能、面积和能耗优化平衡方面的潜力。总之,我们的混合CMOS单元存储器设计MCAIMem提供了一种前景广阔的解决方案,有望成为高效人工智能存储器设计的新标准。
致谢本文作者:Duy-ThanhNguyen,AbhiroopBhattacharjee,AbhishekMoitra,PriyadarshiniPanda