首页 / 一种模数混合自刷新存内计算簇及模拟辅助数字存内计算电路

一种模数混合自刷新存内计算簇及模拟辅助数字存内计算电路有效专利 发明

技术领域

[0001] 本发明涉及集成电路设计(integrated circuit design)领域,具体涉及一种新型模数混合自刷新存内计算簇及模拟辅助数字存内计算电路。

相关背景技术

[0002] 近年来,人工智能(artificial intelligence,AI)技术迅速发展,对人类社会产生了深远影响。为了在各种任务上取得更好的表现,高性能的AI算法模型也从卷积神经网络(conventional neural network,CNN)模型发展到了变换器(transformer)模型。在CNN中,模型的每个卷积层通过卷积核提取局部特征,然后通过池化层进一步简化数据。CNN的感受野是逐层扩展的,最终形成全局特征图。因其局部操作和权重共享的特性,这种局部感受野的设计在计算效率上具有优势。相比之间,transformer通常通过多头自注意力(multi‑head attention)来实现全局感受野,这种全局感知能力使transformer模型可以灵活地调整关注点,捕捉图像中的长距离特征和全局模式。因此,transformer在图像处理任务中展现了更大的灵活性和对复杂关系的理解能力。但是,transformer的全局注意力机制可能在处理高分辨率图像时消耗更多计算资源。另外,在自然语言处理中,transformer的注意力机制赋予其全局感受野,可以在序列中灵活调整关注点。这在自然语言处理中尤其重要,因为语言的上下文和语义可能涉及长距离关系。目前性能非常突出的大预言模型(large language model,LLM)是在transformer架构基础上发展起来的。大预言模型通过扩大模型规模、增加训练数据量,并在预训练后进行微调,获得更强的理解和生成能力。总的来说,transformer的注意力机制使其在各个领域都表现出极为突出的性能,但是其带来的巨大计算量也对计算资源和硬件性能提出了更高的要求。
[0003] 在硬件方面,面向通用应用场景的处理器在运行AI算法时由于硬件与计算需求的不完全适配导致其能效被限制。为了提升硬件的计算能效从而使得AI模型可以被广泛部署,人们开始针对具体应用通过算法与硬件协同优化设计领域专用(domain‑specific)加速器并优化计算核的设计。在进行硬件设计时,研究人员发现AI模型中的计算主要由大维度的矩阵向量乘运算占主导,在使用传统的存算分离计算架构处进行大量的矩阵向量乘时,往往需要消耗很大的功耗在数据搬运上。为了解决数据搬运功耗的问题,研究人员提出一种新的计算核:存内计算核。存内计算核将计算功能嵌入存储器单元,不再需要将数据读出后再进行计算。存内计算核在进行矩阵向量乘计算时,二维的权重矩阵可以非常适配地存储在二维的存内计算阵列中。同时,输入向量可以通过多条字线给入存内计算阵列,输入向量中的每个值通过字线被多个存内计算单元共享,并与权重完成乘法运算。接着,连接在同一条位线上的多个存内计算单元的输入与权重相乘的值完成累加。这样高并行度的架构使得存内计算核具有极高能效与吞吐率。目前,根据计算部分电路的具体实现方式,存内计算核的可以被分为数字存内计算核与模拟存内计算核。数字存内计核算通过数字逻辑完成乘累加,因此没有精度损失,适合高精度计算。但是完成数字域累加的加法树电路有较大的面积功耗开销,导致数字存内计算核的能效较低。相比之下,模拟存内计算核具有更高的能效。但是由于模拟域计算电路的性能易受工艺、电压和温度偏移以及晶体管失配的影响,其计算精度收到限制。
[0004] 目前,在算法层面,研究人员通过探索自注意力机制的稀疏性来降低其复杂度。在电路层面,研究人员尝试用数字存内计算核来完成对transformer的加速。然而,由于数字存内计算本身的能效瓶颈,目前基于数字存内计算核的transformer加速器的能效并不高。而直接利用模拟存内计算核来加速则又面临精度问题。因此,需要一种能充分利用自注意力机制的稀疏性,并结合模拟高能效优势与数字高精度优势的存内计算核设计来进一步提升自注意力机制的计算能效,从而使得高性能的transformer模型可以被广泛部署。

具体实施方式

[0029] 下面结合附图,通过具体实施例,进一步阐述本发明。
[0030] 本发明模数混合自刷新存内计算簇包括1个符号位单元、Z个模数混合单元以及Z+1个数字单元组成,如图1所示,数字单元由四个晶体管构成。在四个晶体管之中,在四个晶体管之中,晶体管1与晶体管2分别位P型晶体管与N型晶体管,他们的栅端连接在一起为存储节点,晶体管1的源端与晶体管2的漏端连接在一起为存储节点反,晶体管1的漏端与晶体管2的源端分别接到电源与地。四个晶体管中的另外两个晶体管为写入管与读出管。其中晶体管3为写入管,其源端漏端分别连接在写位线(write bitline,WBL)与存储节点,栅端连接在写字线。而晶体管4为读出管,其源端漏端分别连接在读位线与存储节点反,栅端连接在读字线。
[0031] 如图2所示,模数混合单元由四个晶体管与一个计算电容构成。在四个晶体管之中,晶体管1与晶体管2分别位P型晶体管与N型晶体管,他们的栅端连接在一起为存储节点,晶体管1的源端与晶体管2的漏端连接在一起为存储节点反,晶体管1的漏端与晶体管2的源端分别接到电源与模拟线(analog line,AL)。四个晶体管中的另外两个晶体管为写入管与读出管。其中晶体管3为写入管,其源端漏端分别连接在写位线(write bitline,WBL)与存储节点,栅端连接在写字线。而晶体管4为读出管,其源端漏端分别连接在读位线与存储节点反,栅端连接在读字线。计算电容的一端接在存储节点反,另一端接在计算线。
[0032] 如图3所示,符号位单元由六个晶体管构成。在六个晶体管之中,其中的四个晶体管的连接方式与数字单元(eDRAM)相同。多出来的两个晶体管,晶体管5与晶体管6均为N型晶体管,其栅端分别连接至存储节点与存储节点反,源端分别连接输入线与输入线反,两个晶体管的漏端则连接在一起为模拟线。
[0033] 图4是本发明提出的模数混合自刷新的存内计算簇的一个实施例的结构框图。
[0034] 如图4所示,本实施例中,Z=3,本实施例的模数混合自刷新存内计算簇由1个符号位单元,3个模数混合单元,以及4个数字单元(eDRAM单元)组成。3个模数混合单元内的电容大小是二进制加权的。模数混合存内计算簇内的所有eDRAM单元通过写字线WWL与读字线RWL相接,其中的3个模数混合单元之间通过计算线CL与模拟线AL相连,其中模拟线AL又与符号位单元的模拟线AL相连。模数混合自刷新存内计算簇内写字线WWL、读字线RWL、模拟线AL、计算线CL、输入线IL和输入线反ILB的数量都为1条,写位线WBL与读位线RBL的数量都为8条。
[0035] 图5为本发明的模数混合自刷新存内计算簇的两种工作模式示意图。
[0036] 在模拟模式下,存内计算簇内的1个符号位单元与3个模数混合单元被使能,进行模拟域计算,而数字单元不被使能。在数字模式下,存内计算簇内的1个符号位单元与3个模数混合单元和4个数字单元均被使能,单元中的数据均被读出完成数字域计算。
[0037] 图6是本发明提出的存内计算组的一个实施例的结构框图。
[0038] 如图6所示,本实施例中,M=N=1,存内计算组包括32x4个数模混合存内计算簇。存内计算组内的同一行有4个存内计算簇通过写位线WBL、读位线RBL、输入线IL和输入线反ILB连接。存内计算组内的同一列有32个存内计算簇通过写字线WWL与读字线RWL连接。此外,存内计算组内所有存内计算簇都通过的计算线CL连接。存内计算组内写位线WBL与读位线RBL的数量都为32x8条,输入线IL和输入线反ILB的数量都为32条,写字线WWL与读字线RWL的数量都为4条,计算线CL的数量为1条。
[0039] 图7是本发明提出的存内计算子阵列的一个实施例的结构框图。
[0040] 如图7所示,本实施例中,G=1,存内计算子阵列包括4个存内计算组、256个刷新与全局读位线驱动单元,一个多输入比较器和一个字线驱动器组成。4个存内计算组之间通过写位线WBL、读位线RBL、输入线IL和输入线反ILB连接,又通过写位线WBL、读位线RBL连接到256个刷新与全局读位线驱动单元,存内计算子阵列内写位线WBL与读位线RBL的数量都为
32x8条,输入线IL和输入线反ILB的数量都为32条,写字线WWL与读字线RWL的数量都为4x4条,计算线CL的数量为4条;4个存内计算组通过4条计算线CL与多输入比较器连接,通过16条写字线WWL和16条读字线RWL与字线驱动器连接。多输入比较器的输出通过索引线连接至字线驱动器的输入。
[0041] 如图8所示,本实施例中,在存内计算子阵列内,刷新与全局读位线驱动单元通过读位线与写位线与同一行的存内计算簇中单元连接,这个单元可以是符号位单元,也可以是模数混合单元,也可以是数字单元。刷新与全局读位线驱动单元由两个三态门组成。其中一个三态门的输入连接至读位线,输出连接至写位线,控制信号连接至读写使能。另一个三态门的输入连接至读位线,输出连接至全局读位线,控制信号连接至读使能。在进行自刷新操作时:读字线首先被置高,被打开的存内计算簇内的存储节点的值传递到读位线;接着读写使能被置高,读位线的值被恢复并传递到写位线;最后写字线被置高,写位线的值传递到存储节点,完成刷新。
[0042] 图9是本发明提出的模拟辅助数字存内计算电路的一个实施例的整个结构框图。
[0043] 如图9所示,本实施例中,S=16,存内计算阵列包括16个存内计算子阵列,32个输入数据寄存器,32个数模转换器和1个数字乘累加模块。16个存内计算子阵列之间通过输入线IL、输入线反ILB、全局写位线GWBL和全局读位线GRBL连接。存内计算阵列内全局写位线GWBL与全局读位线GRBL的数量都为32x8条,输入线IL和输入线反ILB的数量都为32条。32个输入数据寄存器分别连接至32个数模转换器,32个数模转换器通过32条输入线IL与输入线反ILB与16个存内计算子阵列相连,数字乘累加模块通过256条全局读位线GRBL连接.[0044] 图10为本发明的存内计算阵列的模拟辅助数字计算流程图。
[0045] 低精度模拟预计算时:在第一步模拟域计算时,所有存内计算簇中的符号位单元与模数混合单元被使能。数模转换器将根据输入数据寄存器中输入数据值的不同,将输入数据转换为输入线与输入线反上的电压变化。存内计算簇中的符号位单元将根据符号位数据选择将输入线或输入线反上的电压传输至模拟线,从而驱动数模混合单元。根据数模混合单元中数据的不同,模拟线将通过数模混合单元中的电容在计算线上将产生不同的电压变化,电压变化是输入数据和存内计算簇内高Z+1位数据的乘积。连接在同一计算线上的32xM个存内计算簇同时完成输入数据与存内计算簇内高Z+1位数据的乘积,对计算线产生的总的电压变化为输入数据向量与32xM个存内计算簇内高Z+1位数据乘累加的结果。同时,由于同一存内计算组内的4xN条计算线连接在一起,其电压变化被平均。接着,每个存内计算子阵列中的多输入比较器将比较来自4xG个存内计算组的计算结果,找出最大值并产生相应存内计算子阵列位置的索引,并将索引输出至字线驱动器。
[0046] 高精度稀疏数字域计算:在第二步数字域计算时,被选中的存内计算簇中的符号位单元、模数混合单元、以及数字单元均被使能。每个字线驱动器将根据索引使能每个存内计算子阵列中的4xG个存内计算组中模拟计算结果最大的存内计算组,依次使能存内计算组里的每条读字线,将存内计算组数据读出到读位线及全局读位线,跟输入数据向量在数字乘累加模块中完成2x(Z+1)位的乘累加运算。
[0047] 最后需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

当前第1页 第1页 第2页 第3页
相关技术
模混合相关技术
混合刷新相关技术
唐希源发明人的其他相关专利技术