掌桥专利:专业的专利平台
掌桥专利
首页

一种基于静态随机存取存储器的存算一体阵列及加速装置

文献发布时间:2023-06-19 12:13:22


一种基于静态随机存取存储器的存算一体阵列及加速装置

技术领域

本发明涉及存内计算技术领域,特别是涉及一种基于静态随机存取存储器的存算一体阵列及加速装置。

背景技术

深度神经网络(DNN)规模的空前增长导致了现代机器学习(ML)加速器中大量数据需要从片外存储器移动到片内处理核心。目前产业界正在探索在存储器阵列中执行模拟DNN计算的存储器中计算(CIM)设计,以及外围混合信号电路,以减轻这种存储器壁瓶颈:包括存储器延迟和能量开销。静态随机存取存储器位单元与高性能逻辑晶体管和互连单片集成,可以实现定制的CIM设计。

但在做乘累加运算时,传统的片上静态随机存取存储器SRAM需要逐行访问,片上SRAM访问的延迟长,能量消耗大。

传统单比特输入乘单比特权重的计算方式效率较低,计算吞吐量没有相对优势;权重存储使用DRAM 1T1C结构虽然可节省晶体管数量,但是DRAM(Dynamic Random AccessMemory,动态随机存取存储器)自身的漏电需要刷新的特点本身需耗费很大功耗;且在计算过程中,传统DRAM存储权重方式会有所存权重漏电导致权重失效继而引起计算错误问题。

发明内容

本发明的目的是提供一种基于静态随机存取存储器的存算一体阵列及加速装置,提高了多比特权重并行计算的准确性。

为实现上述目的,本发明提供了如下方案:

一种基于静态随机存取存储器的存算一体阵列,所述基于静态随机存取存储器的存算一体阵列包括多个计算模块,各所述计算模块均包括存储单元、数据选择器、管T9、电容和开关;所述基于静态随机存取存储器的存算一体阵列还包括列选信号、输入信号和读位线;

所述输入信号连接所述数据选择器的第一输入端,所述数据选择器的第二输入端连接公共连接端VSS,所述存储单元的权重存储点Q与所述数据选择器连接,所述存储单元的权重存储点Q用于控制所述输入信号是否输入所述数据选择器,所述数据选择器的输出与所述管T9的漏极连接,所述管T9的源极连接所述电容的第一端,所述管T9的栅极连接所述列选信号,所述电容的第二端连接开关;各所述计算模块的开关依次串联后与所述读位线连接;

各存储单元的字线共线连接,各存储单元的位线共线连接,各存储单元的位线反共线连接;各数据选择器的第一输入端共线连接,各数据选择器的第二输入端共线连接;所述列选信号用于控制各所述管T9的通断;

当基于静态随机存取存储器的存算一体阵列进行充电时,所述列选信号为高电平,各计算模块中开关均断开;当基于静态随机存取存储器的存算一体阵列充电结束后,所述列选信号为低电平,各计算模块中开关均闭合。

可选地,所述的基于静态随机存取存储器的存算一体阵列包括4个计算模块。

可选地,所述数据选择器包括管T7和管T8,所述管T7为PMOS管,所述管T8为NMOS管,所述管T7的栅极与所述管T8的栅极均与所述权重存储点Q连接,所述管T7的漏极与所述公共连接端VSS连接,所述管T8的漏极与所述输入信号连接,所述管T7的源极与所述管T8的源极均所述管T9的漏极连接。

可选地,所述存储单元为6T-SRAM。

可选地,所述6T-SRAM包括管T1、管T2、管T3、管T4、管T5和管T6;

所述管T1的源极和所述管T2的源极均连接电源VDD,所述管T1的栅极分别与所述管T2的漏极、所述管T3的栅极、所述管T4的漏极和所述管T6的源极连接,所述管T2的栅极分别与所述管T1的漏极、所述管T3的漏极、所述管T4的栅极和所述管T5的源极连接,所述管T3的源极和所述管T4的源极均与公共端VSS连接,所述管T5的栅极和所述管T6的栅极均与所述字线连接,所述管T5的漏极与所述位线连接,所述管T6的漏极与所述位线反连接;所述管T6的源极为所述权重存储点Q。

可选地,所述管T1和所述管T2均为PMOS管,所述管T3、所述管T4、所述管T5和所述管T6均为NMOS管。

本发明还公开了一种基于静态随机存取存储器的存算一体加速装置,所述基于静态随机存取存储器的存算一体加速装置包括上述的基于静态随机存取存储器的存算一体阵列,多个所述基于静态随机存取存储器的存算一体阵列矩阵式排列;各列所述基于静态随机存取存储器的存算一体阵列的位线共线连接,各列所述基于静态随机存取存储器的存算一体阵列的位线反共线连接,各列所述基于静态随机存取存储器的存算一体阵列的列选信号共线连接,各列所述基于静态随机存取存储器的存算一体阵列的读位线共线连接;各行所述基于静态随机存取存储器的存算一体阵列的输入信号共线连接,各行所述基于静态随机存取存储器的存算一体阵列的字线共线连接;

所述基于静态随机存取存储器的存算一体加速装置还包括输入驱动模块、列译码及位线驱动模块、字线驱动模块和输出模块;

所述输入模块为各行基于静态随机存取存储器的存算一体阵列提供输入信号;所述列译码及位线驱动模块为各列基于静态随机存取存储器的存算一体阵列提供位线、位线反和列选信号;所述字线驱动模块为各行基于静态随机存取存储器的存算一体阵列提供字线;所述输出模块与各列基于静态随机存取存储器的存算一体阵列的读位线连接,将所述读位线上的电压进行模数转换后输出。

可选地,所示基于静态随机存取存储器的存算一体加速装置包括256行,32列的基于静态随机存取存储器的存算一体阵列。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

本发明基于静态随机存取存储器的存算一体阵列包括多个计算模块,各所述计算模块均包括存储单元、数据选择器、管T9、电容和开关;所述基于静态随机存取存储器的存算一体阵列还包括列选信号、输入信号和读位线;通过列选信号对数据选择器进行控制,当基于静态随机存取存储器的存算一体阵列进行充电时,列选信号为高电平,各计算模块中开关均断开,实现多位权重与输入信号的并行计算;当基于静态随机存取存储器的存算一体阵列充电结束后,列选信号为低电平,各计算模块中开关均闭合,将并行计算结果输出到读位线,在单个周期内实现完全并行的矢量矩阵乘法,提高了多比特权重并行计算的准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种基于静态随机存取存储器的存算一体阵列结构示意图;

图2为本发明一种基于静态随机存取存储器的存算一体加速装置结构示意图;

图3为本发明各基于静态随机存取存储器的存算一体阵列中计算模块结构示意图;

图4为本发明计算模块充电原理图;

图5为本发明计算模块输入为0时保持原理图;

图6为本发明计算模块权重存储点Q为0,输入为1时保持原理图;

图7为本发明计算模块权重存储点Q为0,输入为0时保持原理图;

图8为本发明均压原理图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种基于静态随机存取存储器的存算一体阵列及加速装置,提高了多比特权重并行计算的准确性。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1为本发明一种基于静态随机存取存储器的存算一体阵列结构示意图,如图1所示,一种基于静态随机存取存储器的存算一体阵列,所述基于静态随机存取存储器的存算一体阵列包括多个计算模块,各所述计算模块均包括存储单元、数据选择器、管T9、电容和开关;所述存储单元为6T-SRAM。电容为耦合电容。

所述基于静态随机存取存储器的存算一体阵列还包括列选信号、输入信号和读位线;所述的基于静态随机存取存储器的存算一体阵列中计算模块的数量为4。第一计算模块包括存储单元6T

所述输入信号连接所述数据选择器的第一输入端,所述数据选择器的第二输入端连接公共连接端VSS,所述存储单元的权重存储点Q与所述数据选择器连接,所述存储单元的权重存储点Q用于控制所述输入信号是否输入所述数据选择器,所述数据选择器的输出与所述管T9的漏极连接,所述管T9的源极连接所述电容的第一端,所述管T9的栅极连接所述列选信号,所述电容的第二端连接开关;各所述计算模块的开关依次串联后与所述读位线连接。

各存储单元的字线共线连接,各存储单元的位线共线连接,各存储单元的位线反共线连接;各数据选择器的第一输入端共线连接,各数据选择器的第二输入端共线连接;所述列选信号用于控制各所述管T9的通断。

当基于静态随机存取存储器的存算一体阵列进行充电时,所述列选信号为高电平,各计算模块中开关均断开;当基于静态随机存取存储器的存算一体阵列充电结束后,所述列选信号为低电平,各计算模块中开关均闭合。

所述数据选择器包括管T7和管T8,所述管T7为PMOS管,所述管T8为NMOS管,所述管T7的栅极与所述管T8的栅极均与所述权重存储点Q连接,所述管T7的漏极与所述公共连接端VSS连接,所述管T8的漏极与所述输入信号连接,所述管T7的源极与所述管T8的源极均所述管T9的漏极连接。

权重存储点Q控制二选一MUX(数据选择器)是否连通输入于耦合电容。

如图3所示,所述6T-SRAM包括管T1、管T2、管T3、管T4、管T5和管T6。

所述管T1的源极和所述管T2的源极均连接电源VDD,所述管T1的栅极分别与所述管T2的漏极、所述管T3的栅极、所述管T4的漏极和所述管T6的源极连接,所述管T2的栅极分别与所述管T1的漏极、所述管T3的漏极、所述管T4的栅极和所述管T5的源极连接,所述管T3的源极和所述管T4的源极均与公共端VSS连接,所述管T5的栅极和所述管T6的栅极均与所述字线连接,所述管T5的漏极与所述位线连接,所述管T6的漏极与所述位线反连接;所述管T6的源极为所述权重存储点Q。

所述管T1和所述管T2均为PMOS管,所述管T3、所述管T4、所述管T5和所述管T6均为NMOS管。

管T1-管T6构成经典的6T-SRAM存储单元用于存储权重值。其中差分的权重值分别存储于权重存储点Q点和权重存储点QB点。字线连接至管T5和管T6的栅极控制传输管管T5和管T6的通断,位线及位线反分别连接管T5的源极和管T6的漏极,通过图2中列译码及位线驱动模块②将当前列的位线预充到高电平,位线反为低电平,通过字线驱动模块④将当前行字线置为高电平后,管T5和管T6导通,则位线将与QB点导通,QB点成为高电平,且经过管T2和管T4组成的反相器反相后,Q点值成为低电平,同时由于位线反为低电平,也加速了Q点的放电速度。这个过程完成了Q点高点平,QB点低电平的权重写入。

在6TT-SRAM存储单元下面部分的PMOS管T7,NMOS管T8,NMOS管T9,耦合电容(Capacity,C)以及开关S构成计算电路。其中管T7和管T8组成二选一MUX,Q点连接管T7和管T8的栅极,由Q点的权重值控制管T7和管T8其中一个晶体管导通,管T7漏极接VSS,管T8漏极接输入信号,管T9漏极接管T7和管T8的源极,管T9的栅极接列选信号,管T9源极接耦合电容C,开关S的控制信号为列选信号的反信号,即若列选信号为高电平,管T9导通开关S断开,若列选信号为低电平,则开关S导通T9管断开。

计算模块的计算原理表1所示。

表1.计算原理操作表

表1中输入表示输入信号,权重表示存储权重点Q处权重值。如表1所示,具体计算模块的电路的工作过程分为充电和保持两部分,在计算选中的当前列时,列选信号为高,子阵列(基于静态随机存取存储器的存算一体阵列)的四个管T9均导通。

充电原理图如图4所示,当输入信号IN为高电平(即1V时),且权重(存储权重点Q处权重值)Weight=1(表现为Q=1)时,完成1x1=+1,在电路中体现为在T9导通的情况下,输入信号IN通过导通的NMOS管T8向耦合电容C充电,则耦合电容C两端电压会随IN的充电而升高。

输入为0时保持状态原理图如图5所示,当输入信号IN为低电平(即0V时),且权重Weight=1(表现为Q=1)时,完成0x1=0,在电路中体现为在管T9导通的情况下,虽然权重为1使得NOMS管T8导通,但由于输入信号IN=0,输入信号IN对电容并没有充电效果,即电容表现为保持状态。

权重存储点Q为时保持状态原理图如图6和图7所示,当权重Weight=0(表现为Q=0)时,NMOS管T8为截止断开状态,PMOS管T7导通,在管T9导通的情况下,VSS通过管T7连至耦合电容C,对C并无充电效果,且由于管T8断开,输入信号无论为0或是1均无法向耦合电容C进行充电,耦合电容C两端电压处于保持状态,这种保持状态简化了无效的乘累加计算,因为任何输入与为0权重相乘均为0。

在计算完输入乘权重后,计算结果在子阵列中各自表现为耦合电容两端的电压,将所乘得的结果累加可通过均压来完成。如图8所示,列选信号置低,则列选信号的反信号为高,即在子阵列中开关S0、S1、S2和S3导通,将耦合电容两端的电压均压结果连接到读位线,读位线连接至模拟数字转换器(ADC)将乘累加结果进行数字化。

图4-图8中黑体实线表示电路中导通路段,灰体实线为电路中非导通路段。

如图2所示,本发明还公开了一种基于静态随机存取存储器的存算一体加速装置,所述基于静态随机存取存储器的存算一体加速装置包括上述的基于静态随机存取存储器的存算一体阵列(图2中子阵列),多个所述基于静态随机存取存储器的存算一体阵列矩阵式排列;多个所述基于静态随机存取存储器的存算一体阵列构成计算单元阵列③;各列所述基于静态随机存取存储器的存算一体阵列的位线共线连接,各列所述基于静态随机存取存储器的存算一体阵列的位线反共线连接,各列所述基于静态随机存取存储器的存算一体阵列的列选信号共线连接,各列所述基于静态随机存取存储器的存算一体阵列的读位线共线连接;各行所述基于静态随机存取存储器的存算一体阵列的输入信号共线连接,各行所述基于静态随机存取存储器的存算一体阵列的字线共线连接。

所述基于静态随机存取存储器的存算一体加速装置还包括输入驱动模块①、列译码及位线驱动模块②、字线驱动模块④和输出模块⑤。所述基于静态随机存取存储器的存算一体加速装置包括256行、32列的基于静态随机存取存储器的存算一体阵列。

所述输入模块与各行基于静态随机存取存储器的存算一体阵列的输入信号连接,输入信号通过输入[0]、输入[1]、......和输入[255]输入各子阵列;所述列译码及位线驱动模块②与各列基于静态随机存取存储器的存算一体阵列的位线(位线[0]至位线[31])、位线反(反位线[0]至反位线[31])和列选信号(列选[0]至列选[31])连接;所述字线驱动模块④与各行基于静态随机存取存储器的存算一体阵列的字线(字线[0]至字线[255])连接;所述输出模块⑤与各列基于静态随机存取存储器的存算一体阵列的读位线连接,将读位线(读位线[0]至读位线[31])上的电压通过模数转换器(ADC)进行模数转换后输出,与读位线一一对应输出为Q[0]至Q[31]。

存内计算装置(基于静态随机存取存储器的存算一体加速装置)通过多比特权重并行实现存内计算。

本发明的存内计算单元采用经典6T-SRAM单元做权重值存储,相比DRAM 1T1C的存储权重方法,权重无泄漏且不需要周期刷新以保持权重,在功耗方面有极大的节省。且为权重值连接至计算管(管T7和管T8)的栅极,所以在计算过程中对权重并无读写干扰。

本发明的存内计算基本单元中运算部分,简化了75%乘累加运算量,传统存内计算实现乘法组合有四种,即1X1=1,1X0=0,0X1=0,0X0=0,而本发明中,只有在权重和输入均为1时,计算结果才对耦合电容两端的电压升高有贡献,即1X1=1;而对于输入为0,0X1=0,或者权重为0,1X0=0,0X0=0,对耦合电容两端电压均无有效贡献的计算则可减少对读位线电压的均压时间,本发明无论是在功耗还是计算速度上都有很大的提升。

本发明的存内计算基本单元计算电路的计算采用电容并联相加在电荷域对电荷进行模拟相加的累加方式,在保持阶段电容所在电路相当于断路,使得电路无泄漏功耗,电路仅在计算过程中电容两端电压有变化时导通。这种电容耦合的计算方式极大的节省了功耗。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 一种基于静态随机存取存储器的存算一体阵列及加速装置
  • 一种基于存算一体器件阵列的自监督学习加速系统及方法
技术分类

06120113209824