一种基于近似计算的高能效SRAM存内计算电路和方法

未命名 08-07 阅读:167 评论:0

一种基于近似计算的高能效sram存内计算电路和方法
技术领域
1.本发明涉及sram存内计算领域,具体地,涉及一种基于近似计算的高能效sram存内计算电路和方法。


背景技术:

2.随着人工智能算法的不断发展,神经网络被广泛应用于很多领域,如图像识别,自然语言处理等。为了应对不断增长的应用需求,神经网络的规模不断增大,需要存储的权重数量最高可达gb量级。在传统冯诺依曼处理架构中,数据存储单元与计算单元是分离的,当执行计算时,数据会在两者之间反复搬移,造成大量的功耗及性能损失。存内计算技术通过将数据处理功能集成到内存中或是放置在近存计算单元,最小化数据在内存和处理单元之间的搬移开销,实现高能效、高性能的大规模数据处理。现阶段在学术界有多种基于不同存储介质的存内计算设计方案,如静态随机存储器(sram),动态随机存储器(dram),以及非易失性存储器(non-volatile memory)。在不同的存内计算方案中,由于sram可使用目前最先进的制造工艺,同时可天然的与外围辅助计算电路兼容,因此基于sram的存内计算被认为是现阶段最有潜力率先步入产业化的电路技术。现阶段基于sram的存内计算的主流计算方式有三种,分别是比特串行(bit serial),模拟域存内计算,全精度数字域存内计算。对于不同的应用场景以及应用需求,可采用不同的电路结构设计。
3.比特串行电路结构执行操作时,会激活阵列中待执行操作的两列,根据阵列中存储的数据值,将每一行选中的两个存储单元的“与”和“或非”逻辑计算结果分别体现在计算位线与反位线的电压大小上。两个逻辑计算结果会在近存计算单元中实现更复杂的逻辑计算功能,近存电路单元的计算结果将在同周期内写回到sram的指定列。在该计算模式下,通过配置外围近存计算电路,可实现高度可配置的数据处理范式,但是由于每次只能开启阵列的两列进行计算,数据处理性能及能效非常受限,因此该存内计算形式更适合于配置性需求更高的场景,如cpu等,而非专用的高性能、高能效场景。
4.模拟域存内计算的电路结构根据电容耦合效应或基尔霍夫电流定律可实现极高并行度的乘累加操作,计算结果将体现在计算位线的电压上,经过模数转换器(adc)后的结果即为最终乘累加输出。但是在该电路实现中,以模拟电压表示的计算结果会受到工艺、电源电压、温度等多方面因素影响,此外adc的转换精度也会极大地影响计算结果准确度。由于这些干扰条件通常是随机发生的,所以整体计算结果的精度可控程度差。除此之外,模拟域计算结果依赖adc进行模数转换,而adc的存在会使得整体计算能效大幅降低。
5.全精度数字域存内计算的电路在单元内部实现单比特乘法计算,同时在近存储器部分添加加法树电路实现不同行的结果累加。数字域存内计算电路天然的具有高性能、低功耗的优势,同时去除了模拟域存内计算中能耗与面积开销极大的adc电路,因此该计算形式在具有模拟域存内计算高性能优势的同时兼具了数字域计算的高能效优势。但是在该计算电路中,每个周期在存内仅执行单比特乘法计算,输入的多个比特位仍然依赖于外围的移位累加电路,并行度有待进一步提升;此外神经网络算法本身具有很好的容错性,在电路
中采用全精度计算无法充分发挥其能效优势;同时全精度的计算电路会占据大量的单元面积,使得芯片制造成本大幅增加。


技术实现要素:

6.针对现有技术中的缺陷,本发明的目的是提供一种基于近似计算的高能效sram存内计算电路及方法。
7.根据本发明的一个方面,提供一种基于近似计算的高能效sram存内计算电路,包括:
8.sram存内计算阵列,所述sram存内计算阵列包括多个排成阵列的sram单元,每个所述sram单元内部集成若干数量可调的两输入nor门;在所述sram存内计算阵列内,能够在一个周期内完成多比特计算需要的全部部分积;
9.近似乘法器,若干个排成一行的所述sram单元配备一个所述近似乘法器;
10.近存加法器,所有行的近似乘法器的输出作为所述近存加法树电路的输入;所述全部部分积经过所述近似乘法器和所述近存加法器,输出乘累加结果。
11.优选地,所述sram存内计算阵列,包括:
12.6t sram存算单元,所述6t sram存储单元用于存储数据;
13.8个两输入或非门,所述6t sram的存储数据节点q以扇出形式与所述8个两输入或非门的第一输入端口连接;所述8个两输入或非门与所述6tsram存储单元在版图连接作为一个存算基本单元;
14.8条输入字线,所述8条输入字线分别与所述8个两输入或非门的第二输入端口连接;
15.所述存算基本单元8个为一组构成一行,配备一个所述近似乘法电路;
16.8个所述存算基本单元所有或非门输出作为所述存内近似乘法电路输入;
17.所述一列存内近似乘法电路的输出作为近存加法树电路输入;
18.所述近存加法树输出结果作为整体系统输出结果。
19.优选地,所述sram存内计算阵列中,调整所述6t sram存储单元连接的两输入nor门数量,调整所述部分积的计算精度,实现所述系统输出乘累加结果的精度可配置。
20.优选地,所述sram存内计算阵列中,相邻存算基本单元放置的nor门数量不同;存储权重高低与所述比特位的sram单元连接的nor门数量成正相关。
21.优选地,所述近似乘法器计算过程中包括半加器、全加器、精确4:2压缩器和近似4:2压缩器。
22.优选地,所述近似乘法器的低比特位利用所述近似4:2压缩器进行数据压缩;
23.所述近似乘法器的高比特位利用所述精确4:2压缩器进行数据压缩;
24.所述近似乘法器处理神经网络不同层时采用不同的精度配置。
25.优选地,所述精确4:2压缩器,以x
1-x4为输入数据,t
in
为输入进位信号,s为输出“和”信号,c和t
out
为输出进位信号;
26.所述精确4:2压缩器中电路通过两个全加器组合构成。
27.优选地,所述近似4:2压缩器,仅有x
1-x4作为电路输入,消除进位输入信号,同时输出信号变为一个“和”信号与一个进位输出信号。
28.优选地,所述6t sram存算单元,包括:
29.6个晶体管,所述6个晶体管首尾相连,存储单比特数据;
30.字线、位线和反位线,字线、位线和反位线用于实现sram本身存取功能;
31.两个存储节点分别记为q与qb;
32.当表示多比特数据时,将采用多个所述6t sram存算单元;
33.根据本发明的第二个方面,一种基于近似计算的高效能sram存内计算方法,包括:
34.所述8条输入字线同时输入神经网络的输入数据(activation)的多个比特位;
35.神经网络的权重存储在所述sram阵列中;
36.输入数据与权重数据在所述或非门阵列中执行单比特乘法操作,在一个周期内得到乘法计算需要的全部部分积数据;
37.所述全部部分积数据连接至所述存内近似乘法电路中,完成8比特输入与8比特权重的乘法计算;
38.所述乘法电路计算结果输入至所述近存加法树电路执行累加过程,得到神经网络计算结果。
39.与现有技术相比,本发明具有如下的有益效果:
40.本发明实施例通过融合近似计算与存内计算,以神经网络具有容错性的特点为基础,设计精度可配置的近似存内乘法器电路,有效降低乘法器内部的电路复杂度,在满足神经网络精度需求的同时,实现性能、能效和集成度的大幅提升;
41.此外,通过改变计算并行度,可以在一个周期内完成所有乘法部分积的计算,去除原电路中外围移位累加电路,并有效提升数据处理吞吐率。
附图说明
42.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
43.图1为本发明一实施例的存算基本单元的电路图;
44.图2为本发明一优选实施例的基于近似计算的高能效sram存内计算电路结构图;
45.图3为图2所示实施例的近似乘法器结构图;
46.图4为图3所示实施例中精确4:2压缩器及近似4:2压缩器结构图;
47.图5为本发明另一优选实施例的基于近似计算的高能效sram存内计算电路图。
具体实施方式
48.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
49.本发明提供一个实施例,一种基于近似计算的高能效sram存内计算电路,包括:一个sram单元内部集成若干数量可调的两输入nor门,多个sram单元构成sram存内计算阵列;在sram存内计算阵列内,能够在一个周期内内部完成多比特计算需要的全部部分积,并且直接输出乘累加结果。
50.如图1所示,为基于上述实施例进一步优化后的存内计算单元的结构示意图;晶体管,一条字线(wl),一条位线(bl)与一条反位线(blb);sram单元内部通过首尾相连的反相器存储单比特数据,两个存储节点分别记为q与qb,当表示多比特数据时,需采用多个sram单元。字线、位线、反位线用于实现sram本身存取功能。
51.当数据量化位宽取8比特时,6t sram存储单元与8个两输入或非门(nor2)紧密连接,其中sram的存储节点qb以扇出形式连接至8个或非门的第一输入数据端口,一个sram与8个nor2作为一个存算基本单元。
52.存内计算单元电路,可直接应用于其他乘法计算占主导的计算系统,如图像信号处理、哈达玛积计算等。
53.如图2所示,为本发明提供的基于近似计算的高能效sram存内计算电路结构图,本电路结果图用于当执行神经网络中的乘累加计算时,输入向量与sram阵列中的权重矩阵进行向量矩阵乘法操作。本实施例以8比特数据量化位宽为例,输入向量中每个元素的8比特以行共享方式分别连接至一行上的基本存算单元中的8个或非门第二输入端口。
54.8个基本计算存算单元中的8*8个或非门阵列计算结果即为多比特乘法的所有部分积。该所有部分积结果将输入至近存树形乘法器中完成多比特乘法计算。多比特乘法计算完成后,结果将会输入至近存加法树中执行精确累加结果,实现完整的乘累加计算过程。
55.本实施例中的计算过程可直接扩展至其他量化位宽情况。
56.如图3所示,为本发明提供一个优选实施例中的近存树形乘法器的结构示意图,在该树形乘法器中每个点表示部分积的一个比特位,计算过程包含半加器、全加器、精确4:2压缩器以及近似4:2压缩器。
57.通过改变近似4:2压缩器的电路结构,以及部分积压缩过程中近似压缩器的比例及分布策略,能够达到不同的计算准确度。
58.在执行神经网络计算时,神经网络的不同层对数据处理精度要求不同。具体的,对于精度要求较低的层,近似乘法器的占比可以更大,获得更高的能效收益;对于精度要求较高的层,采用更少的近似乘法器,达到更高计算精度。通过不同网络层的配置,在保证整体神经网络精度的同时,实现高能效、高性能以及高集成度。
59.进一步的,待执行计算的位宽不同。如高精度采用8bit进行计算,低精度采用4bit进行计算。在利用sram存内计算执行神经网络计算时,权重数据存储在sram阵列中,输入数据从外部输入,连接至nor门。当实现不同位宽时,权重精度可通过修改数据存储模式改变;输入精度可通过调整计算线的多少并对应修正nor门个数实现。
60.进一步的,执行计算后的计算精度不同。当待处理的数据位宽保持相同时,可通过调整近似乘法器策略进行不同精度配置。具体为:调整电路中nor门个数,即调整部分积精度;调整乘法器中近似4-2压缩器的占比;调整近似4-2压缩器电路结构。
61.本发明提供一个关于精确4:2压缩器以及近似4:2压缩器的优选实施例。
62.图4(a)为精确4:2压缩器结构图,其中x
1-x4为输入数据,t
in
为输入进位信号,s为输出“和”信号,c和t
out
为输出进位信号。精确4:2压缩器中电路通过两个全加器组合构成,面积、能耗开销巨大。
63.图4(b)为一种近似4:2压缩器结构示意图,在该结构中仅有x
1-x4作为电路输入,消除进位输入信号,同时输出信号变为一个“和”信号与一个进位输出信号。通过近似乘法器
设计,能够实现输出精度可配置,在满足神经网络精度需求的同时,达到成倍的计算能效及面积效率。与调整乘法器中近似4:2压缩器占比类似,对于精度需求不同的神经网络层,可以采用不同的近似4:2压缩器结构,通过搜索的方式找到最优化的近似乘法器配置。
64.为了获得不同精度的部分积,本发明提供一个优选实施例,如图5所示,为本发明提供的另一种存内计算单元结构示意图。如图中所示,计算单元中,紧邻sram存储单元放置的nor门个数不同,在本实施例中,从左到右,依序减少,分别为8、8、7、6、5、4、3和2个。在其他实施例中,可设置其他个数排布。
65.存储低权重比特位的sram连接更少的nor门。通过配置nor门的个数,可获得不同精度的部分积,当部分积精度更低时,外围近存乘法器开销也会同步降低,进一步提升计算电路的性能、能效和集成度。
66.基于上述实施例的相同构思,本发明提供另一个实施例,一种基于近似计算的高效能sram存内计算方法,包括:
67.s100,8条输入字线同时输入神经网络的输入数据(activation)的多个比特位;
68.s200,神经网络的权重存储在sram阵列中;
69.s300,输入数据与权重数据在或非门阵列中执行单比特乘法操作,在一个周期内得到乘法计算需要的全部部分积数据;
70.s400,全部部分积数据连接至存内近似乘法电路中,完成8比特输入与8比特权重的乘法计算;
71.s500,乘法电路计算结果输入至近存加法树电路执行累加过程,得到神经网络计算结果。
72.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。上述各优选特征在互不冲突的情况下,可以任意组合使用。

技术特征:
1.一种基于近似计算的高能效sram存内计算电路,其特征在于,包括:sram存内计算阵列,所述sram阵列包括多个排成阵列的sram单元,每个所述sram单元内部集成若干数量可调的两输入nor门;在所述sram存内计算阵列内,能够在一个周期内完成多比特乘法计算需要的全部部分积;近似乘法器,若干个排成一行的所述sram单元配备一个所述近似乘法器;近存加法器,所有行的近似乘法器的输出作为所述近存加法树电路的输入;所述全部部分积经过所述近似乘法器和所述近存加法器,输出乘累加结果。2.根据权利要求1所述的基于近似计算的高能效sram存内计算电路,其特征在于,所述sram存内计算阵列,包括:6t sram存算单元,所述6t sram存储单元用于存储数据;8个两输入或非门,所述6t sram的存储数据节点q以扇出形式与所述8个两输入或非门的第一输入端口连接;所述8个两输入或非门与所述6tsram存储单元在版图连接作为一个存算基本单元;8条输入字线,所述8条输入字线分别与所述8个两输入或非门的第二输入端口连接;所述存算基本单元8个为一组构成一行,配备一个所述近似乘法电路;8个所述存算基本单元所有或非门输出作为所述存内近似乘法电路输入;所述一列存内近似乘法电路的输出作为近存加法树电路输入;所述近存加法树输出结果作为整体系统输出结果。3.根据权利要求1所述的基于近似计算的高能效sram存内计算电路,其特征在于,所述sram存内计算阵列中,调整所述6t sram存储单元连接的两输入nor门数量,调整所述部分积的计算精度,实现所述系统输出乘累加结果的精度可配置。4.根据权利要求3所述的基于近似计算的高能效sram存内计算电路,其特征在于,所述sram存内计算阵列中,相邻存算基本单元放置的nor门数量不同;存储权重高低与所述比特位的sram单元连接的nor门数量成正相关。5.根据权利要求1所述的基于近似计算的高能效sram存内计算电路,其特征在于,所述近似乘法器计算过程中包括半加器、全加器、精确4:2压缩器和近似4:2压缩器。6.根据权利要求5所述的基于近似计算的高能效sram存内计算电路,其特征在于,所述近似乘法器的低比特位利用所述近似4:2压缩器进行数据压缩;所述近似乘法器的高比特位利用所述精确4:2压缩器进行数据压缩;所述近似乘法器处理神经网络不同层时采用不同的精度配置。7.根据权利要求4所述的基于近似计算的高能效sram存内计算电路,其特征在于,所述精确4:2压缩器,以x
1-x4为输入数据,t
in
为输入进位信号,s为输出“和”信号,c和t
out
为输出进位信号;所述精确4:2压缩器中电路通过两个全加器组合构成。8.根据权利要求1所述的基于近似计算的高能效sram存内计算电路,其特征在于,所述近似4:2压缩器,仅有x
1-x4作为电路输入,消除进位输入信号,同时输出信号变为一个“和”信号与一个进位输出信号。9.根据权利要求2所述的基于近似计算的高能效sram存内计算电路,其特征在于,所述6t sram存算单元,包括:
6个晶体管,所述6个晶体管首尾相连,存储单比特数据;字线、位线和反位线,字线、位线和反位线用于实现sram本身存取功能;两个存储节点分别记为q与qb;当表示多比特数据时,将采用多个所述6t sram存算单元。10.一种基于近似计算的高效能sram存内计算方法,其特征在于,包括:所述8条输入字线同时输入神经网络的输入数据(activation)的多个比特位;神经网络的权重存储在所述sram阵列中;输入数据与权重数据在所述或非门阵列中执行单比特乘法操作,在一个周期内得到乘法计算需要的全部部分积数据;所述全部部分积数据连接至所述存内近似乘法电路中,完成8比特输入与8比特权重的乘法计算;所述乘法电路计算结果输入至所述近存加法树电路执行累加过程,得到神经网络计算结果。

技术总结
本发明提供一种基于近似计算的高能效SRAM存内计算电路,包括:SRAM存内计算阵列,其包括多个排成阵列的SRAM单元,每个SRAM单元内部集成若干数量可调的两输入NOR门;在SRAM存内计算阵列内,能够在一个周期内完成多比特乘法计算需要的全部部分积;近似乘法器,若干个排成一行的SRAM单元配备一个近似乘法器;近存加法器,所有行的近似乘法器的输出作为近存加法树电路的输入;全部部分积经过近似乘法器和近存加法器,输出乘累加结果。本发明以神经网络具有容错性特点为基础,通过融合近似计算与存内计算,设计精度可配置的近似存内乘法器电路,有效降低乘法器内部的电路复杂度,在满足神经网络精度需求的同时,实现性能、能效和集成度的大幅提升。成度的大幅提升。成度的大幅提升。


技术研发人员:孙亚男 李智 何卫锋 毛志刚
受保护的技术使用者:上海交通大学
技术研发日:2022.01.25
技术公布日:2023/8/5
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐