有符号位的SRAM多值单元及存算一体芯片
未命名
07-20
阅读:158
评论:0
有符号位的sram多值单元及存算一体芯片
技术领域
1.本发明涉及集成电路设计技术领域,尤其涉及一种有符号位的sram多值单元及存算一体芯片。
背景技术:
2.随着现代计算机相关应用逐年增加的数据计算量,传统存储与计算分离的冯诺依曼架构已经不能够满足以神经网络为代表的巨大参数量应用的高算力需求。为解决存储与计算之间速度与功耗鸿沟的问题,存算一体(computing-in-memory,cim)电路提供了解决方案,其中,基于静态随机存取存储器(static random-access memory,sram)的存算一体电路因为具有更高的能效和先进工艺兼容性,在众多类型存储器的存算一体电路中脱颖而出,但是在实际部署神经网络应用中,sram存算一体电路仍然存在一些缺陷。
3.目前,主流sram存算一体电路主要采用比特流串行输入的计算方式,具体是将模型权重存储在sram阵列中,待处理的特征图激活值按比特位从低位至高位的顺序逐位串行输入至存算一体阵列中,最后将串行输入各周期中得到的输出结果进行移位加法,从而实现多比特激活值与多比特权重的乘累加矩阵计算。
4.但是,目前sram存算一体电路是以补码形式存储计算参数,存在计算冗余,导致计算功耗高,sram存算一体电路的能效提升受限。
技术实现要素:
5.本发明提供一种有符号位的sram多值单元及存算一体芯片,用以解决现有技术中sram存算一体电路的计算功耗高、能效提升受限的问题。
6.本发明提供一种有符号位的sram多值单元,包括:符号位调制单元、权重符号位存储单元及2
n-1个权重幅值有效位存储单元,n为大于1的整数;
7.所述符号位调制单元的第一正输入端和所述符号位调制单元的第一负输入端作为所述sram多值单元的第一输入端,所述符号位调制单元的第二正输入端和所述符号位调制单元的第二负输入端作为所述sram多值单元的第二输入端,所述权重符号位存储单元的第一正输入端和所述权重符号位存储单元的第一负输入端作为所述sram多值单元的第三输入端,所述符号位调制单元的第一输出端连接于各所述权重幅值有效位存储单元的第一端,所述符号位调制单元的第二输出端连接于各所述权重幅值有效位存储单元的第二端,各所述权重幅值有效位存储单元的第三端作为所述sram多值单元的输出端,各所述权重幅值有效位存储单元的第四端通过预先设置的位线bl连接,各所述权重幅值有效位存储单元的第五端通过预先设置的反位线blb连接,所述权重符号位存储单元的正输出端连接于所述符号位调制单元的正控制端,所述权重符号位存储单元的负输出端连接于所述符号位调制单元的负控制端;
8.所述权重符号位存储单元用于:
9.通过所述sram多值单元的第三输入端接收正输入符号位信号sin;
10.计算所述sin与预先设置的正权重符号位信号q之间的异或结果,生成正符号位信号sign和负符号位信号分别输出至所述符号位调制单元的正控制端和所述符号位调制单元的负控制端;
11.所述符号位调制单元用于:
12.通过所述sram多值单元的第一输入端接收正幅值有效位信号in,通过所述sram多值单元的第二输入端接收第一正信号rst;
13.在所述sign为0、所述in不为0且所述rst为0的情况下,分别通过所述符号位调制单元的第一输出端和第二输出端输出高电平和低电平;
14.在所述sign为1、所述in不为0且所述rst为0的情况下,分别通过所述符号位调制单元的第一输出端和第二输出端输出低电平和高电平;
15.各所述权重幅值有效位存储单元用于:
16.在所述rst为0,且通过各所述权重幅值有效位存储单元的第一端和第二端分别接收到高电平和低电平的情况下,通过各所述权重幅值有效位存储单元的第三端输出第一电压δv;
17.在所述rst为0,且通过各所述权重幅值有效位存储单元的第一端和第二端分别接收到低电平和高电平的情况下,通过各所述权重幅值有效位存储单元的第三端输出第二电压-δv。
18.根据本发明提供的一种有符号位的sram多值单元,所述权重符号位存储单元包括:第一开关、第二开关、第三开关、第四开关、第一反相器和第二反相器;
19.所述第一开关的第一端作为所述权重符号位存储单元的第一正输入端,所述第一开关的第二端连接于所述第二开关的第一端,所述第二开关的第二端作为所述权重符号位存储单元的第一负输入端,所述第一开关的控制端连接于所述第一反相器的输入端,所述第一反相器的输出端分别连接于所述第二开关的控制端、所述第三开关的第一端和所述第二反相器的输入端,所述第三开关的第二端连接于所述bl,所述第二反相器的输出端连接于所述第四开关的第一端,所述第四开关的第二端连接于所述blb,所述第四开关的控制端连接于所述第三开关的控制端,连接线作为字线wl;其中,所述第一开关的控制端用于接收所述q,所述第二开关的控制端用于接收负权重符号位信号qb,所述qb为所述q的反信号。
20.根据本发明提供的一种有符号位的sram多值单元,所述符号位调制单元包括:第五开关、第六开关、第七开关、第八开关、第九开关、第十开关和第十一开关;
21.所述第五开关的控制端和所述第六开关的控制端作为所述符号位调制单元的第二正输入端,所述第五开关的第一端作为所述符号位调制单元的第一输出端,所述第五开关的第二端连接于所述第六开关的第一端,所述第六开关的第二端作为所述符号位调制单元的第二输出端,所述第六开关的第一端还分别连接于所述第七开关的第二端和所述第八开关的第一端,所述第七开关的第一端用于接收高电平,所述第八开关的第二端接地,所述第七开关的控制端作为所述符号位调制单元的正控制端,用于接收所述sign,所述第八开关的控制端作为所述符号位调制单元的负控制端,用于接收所述所述第七开关的控制端连接于所述第九开关的控制端,所述第八开关的控制端作为所述第十开关的控制端,所述第十开关的第二端作为所述符号位调制单元的第一正输入端,所述第十开关的第一端
分别连接于所述第九开关的第二端和所述第十一开关的第一端,所述第九开关的第一端作为所述符号位调制单元的第一负输入端,所述第十一开关的控制端作为所述符号位调制单元的第二负输入端,所述第十一开关的第二端也作为所述符号位调制单元的第一输出端。
22.根据本发明提供的一种有符号位的sram多值单元,所述权重幅值有效位存储单元包括:第十二开关、第十三开关、第十四开关、第十五开关、第三反相器、第四反相器和预充电容;
23.所述第十二开关的第一端作为所述权重幅值有效位存储单元的第四端,所述第十二开关的第二端分别连接于所述第三反相器的输入端、所述第四反相器的输出端和所述第十四开关的控制端,所述第三反相器的输出端分别连接于所述第十三开关的第一端、所述第四反相器的输入端和所述第十五开关的控制端,所述第十三开关的第二端作为所述权重幅值有效位存储单元的第五端,所述第十二开关的控制端和所述第十三开关的控制端分别连接于所述wl,所述第十四开关的第一端作为所述权重幅值有效位存储单元的第一端,所述第十四开关的第二端分别连接于所述第十五开关的第一端和所述预充电容的第一端,所述第十五开关的第二端作为所述权重幅值有效位存储单元的第二端,所述预充电容的第二端作为所述权重幅值有效位存储单元的第三端。
24.根据本发明提供的一种有符号位的sram多值单元,所述符号位调制单元还用于:
25.在发生第一事件的情况下,通过所述符号位调制单元的第一输出端和第二输出端输出低电平;
26.其中,所述发生第一事件包括以下任一项:
27.所述sign为0、所述in不为0且所述rst为1;
28.所述sign为0且所述in为0;
29.在发生第二事件的情况下,通过所述符号位调制单元的第一输出端和第二输出端输出高电平;
30.其中,所述发生第二事件包括以下任一项:
31.所述sign为1、所述in不为0且所述rst为1;
32.所述sign为1且所述in为0。
33.本发明还提供一种存算一体芯片,包括:静态随机存取存储器sram子阵列电路、权重加权电路、以及逐次逼近式模拟数字转换器sar adc,其中,所述sram子阵列电路包括至少两个如上述任一实施例所述的有符号位的sram多值单元;
34.各所述有符号位的sram多值单元的输入端作为所述存算一体芯片的输入端,各所述有符号位的sram多值单元的输出端连接于所述权重加权电路的输入端,所述权重加权电路的输出端连接于所述sar adc的输入端,所述sar adc的输出端作为所述存算一体芯片的输出端。
35.根据本发明提供的一种存算一体芯片,所述存算一体芯片还包括串行输入比特加权电路,所述权重加权电路通过所述串行输入比特加权电路连接于所述sar adc;所述串行输入比特加权电路包括:第十六开关、第十七开关、第十八开关、第十九开关、第二十开关、第二十一开关、第一电容、第二电容、第三电容、第一电源、第二电源和控制单元;
36.所述第十六开关的第一端作为所述串行输入比特加权电路的输入端,所述第十六开关的第二端连接于所述第一电源的输出端,所述第十六开关的第三端连接于所述第一电
容的第一端,所述第一电容的第二端分别连接于所述第十七开关的第一端、所述第十八开关的第一端和所述第十九开关的第一端,所述第十九开关的第二端接地,所述第十七开关的第二端分别连接于所述第二电容的第一端和所述第二十开关的第一端,所述第二十开关的第二端连接于所述第三电容的第一端,所述第二十开关的第二端作为所述串行输入比特加权电路的输出端,所述第三电容的第二端接地,所述第二电容的第二端分别连接于所述第十八开关的第二端通过所述二十一开关连接于所述第二电源的输出端,所述控制单元的输出端分别连接于所述第十六开关、所述第十七开关、所述第十八开关、所述第十九开关、所述第二十开关和所述第二十一开关的控制端。
37.根据本发明提供的一种存算一体芯片,所述控制单元用于:
38.在所述串行输入比特加权电路接收到输入低比特与权重的第一乘累加电压结果的情况下,执行以下步骤:
39.在第一正信号rst由高置低之前,连通所述第十六开关的第一端和第三端,且导通所述第十七开关、所述第十九开关和所述第二十一开关,所述第十八开关和所述第二十开关处于关断状态;
40.在所述rst由低置高之前,连通所述第十六开关的第一端和第二端,关断所述第十九开关;
41.在所述串行输入比特加权电路接收到输入高比特与权重的第二乘累加电压结果的情况下,执行以下步骤:
42.在所述rst由高置低之前,连通所述第十六开关的第一端和第三端,导通所述第十九开关,且关断所述第十七开关;
43.在所述rst由低置高之前,连通所述第十六开关的第一端和第二端,关断所述第十九开关和所述第二十一开关,且导通所述第十八开关和所述第二十开关。
44.根据本发明提供的一种存算一体芯片,所述第二电源的输出电压为预先设置的均值偏置v
bias
。
45.根据本发明提供的一种存算一体芯片,在所述第一电源输出的电压为vdd的情况下,v
bias
=1/4*vdd。
46.本发明提供的有符号位的sram多值单元及存算一体芯片,采用“符号-幅值”的编码方式对有符号数进行计算,具体sram多值单元包括符号位调制单元、权重符号位存储单元及2
n-1个权重幅值有效位存储单元,通过权重符号位存储单元,实现权重符号位信号q与输入符号位信号sin的异或,得到乘积的符号位信号sign,即当sin和q中仅有一个数据为“1”时,表示权重与输入一个为正数一个为负数,此时乘积sign=1,sign表征负数;当sign=0时,sign表征正数;再通过sign控制符号位调制单元向各权重幅值有效位存储单元输出高电平或低电平,以实现正数加电压,负数减电压的线性计算。相较于相关技术中以补码形式存储计算参数,输入和权重的符号位需要参与计算,导致计算功耗高,并且,在小值负数前需要补入多位“1”,而正数前需要补入“0”,难以对正数和负数的数据稀疏性进行统一处理,导致小值负数通常会消耗更多的功耗,进而导致sram存算一体电路的能效提升受限的问题,本发明采用“符号-幅值”的编码方式对有符号数进行计算,无需单独周期和额外电容功耗对输入和权重的符号位进行计算,并且,优化了负数,尤其是小值负数的计算功耗,有效提高了sram存算一体电路的能效。
附图说明
47.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.图1是本发明提供的有符号位的sram多值单元的结构示意图之一;
49.图2是本发明提供的有符号位的sram多值单元中权重符号位存储单元的结构示意图;
50.图3是本发明提供的有符号位的sram多值单元中符号位调制单元的结构示意图;
51.图4是本发明提供的有符号位的sram多值单元中权重幅值有效位存储单元的结构示意图;
52.图5是本发明提供的有符号位的sram多值单元的时序示意图;
53.图6是本发明提供的存算一体芯片的结构示意图之一;
54.图7是本发明提供的存算一体芯片中权重加权电路的结构示意图;
55.图8是本发明提供的存算一体芯片中串行输入比特加权电路的结构示意图之一;
56.图9是本发明提供的存算一体芯片中串行输入比特加权电路的结构示意图之二;
57.图10是本发明提供的存算一体芯片中串行输入比特加权电路的开关控制时序示意图;
58.图11是本发明提供的存算一体芯片中串行输入比特加权电路的开关控制波形示意图;
59.图12是本发明提供的存算一体芯片中串行输入比特加权电路与sar adc之间的流水线划分示意图;
60.图13是本发明提供的存算一体芯片中量化bn层到存算一体芯片的映射关系示意图;
61.图14是本发明提供的存算一体芯片中实现bn操作的示意图;
62.图15是本发明提供的存算一体芯片的结构示意图之二;
63.图16是本发明提供的存算一体芯片中权重幅值有效位存储单元的结构示意图;
64.图17是本发明提供的有符号位的sram多值单元的结构示意图之二;
65.图18是本发明提供的存算一体芯片对符号位计算功耗的优化示意图;
66.图19是本发明提供的存算一体芯片对负数比特流稀疏性功耗的优化示意图;
67.图20是本发明提供的存算一体芯片中串行输入比特加权电路对adc功耗的优化示意图;
68.图21是本发明提供的存算一体芯片中加入量化bn层计算偏置后的adc量化曲线示意图。
具体实施方式
69.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳
动前提下所获得的所有其他实施例,都属于本发明保护的范围。
70.下面结合附图描述本发明的有符号位的sram多值单元及存算一体芯片。
71.本发明实施例提供了一种有符号位的sram多值单元。
72.图1是本发明提供的有符号位的sram多值单元的结构示意图之一,如图1所示,有符号位的sram多值单元100包括:符号位调制单元101、权重符号位存储单元102及2
n-1个权重幅值有效位存储单元103,n为大于1的整数;
73.电路具体结构如下:
74.所述符号位调制单元101的第一正输入端in和所述符号位调制单元101的第一负输入端作为所述有符号位的sram多值单元100的第一输入端(图中未示出),所述符号位调制单元101的第二正输入端rst和所述符号位调制单元101的第二负输入端作为所述有符号位的sram多值单元100的第二输入端(图中未示出),所述权重符号位存储单元102的第一正输入端sin和所述权重符号位存储单元102的第一负输入端作为所述有符号位的sram多值单元100的第三输入端(图中未示出),所述符号位调制单元101的第一输出端通过wp连接于各所述权重幅值有效位存储单元103的第一端,所述符号位调制单元101的第二输出端通过wn连接于各所述权重幅值有效位存储单元103的第二端,各所述权重幅值有效位存储单元103的第三端cbl(包括cbl1至cbl2
n-1)作为所述有符号位的sram多值单元100的输出端(图中未示出),各所述权重幅值有效位存储单元103的第四端通过预先设置的位线(bitline,bl)连接,各所述权重幅值有效位存储单元103的第五端通过预先设置的反位线(bitline bar,blb)连接,所述权重符号位存储单元102的正输出端sign连接于所述符号位调制单元101的正控制端,所述权重符号位存储单元102的负输出端连接于所述符号位调制单元101的负控制端(图中通过一端表示);
75.所述权重符号位存储单元102用于:
76.通过所述有符号位的sram多值单元100的第三输入端接收正输入符号位信号(sin);
77.计算所述sin与预先设置的正权重符号位信号(q)之间的异或结果,生成正符号位信号(sign)和负符号位信号分别输出至所述符号位调制单元101的正控制端和所述符号位调制单元101的负控制端;
78.所述符号位调制单元101用于:
79.通过所述有符号位的sram多值单元100的第一输入端接收正幅值有效位信号(in),通过所述有符号位的sram多值单元100的第二输入端接收第一正信号(rst);
80.在所述sign为0、所述in不为0且所述rst为0的情况下,分别通过所述符号位调制单元101的第一输出端和第二输出端输出高电平和低电平;
81.在所述sign为1、所述in不为0且所述rst为0的情况下,分别通过所述符号位调制单元101的第一输出端和第二输出端输出低电平和高电平;
82.各所述权重幅值有效位存储单元103用于:
83.在所述rst为0,且通过各所述权重幅值有效位存储单元103的第一端和第二端分别接收到高电平和低电平的情况下,通过各所述权重幅值有效位存储单元103的第三端输出第一电压δv;
84.在所述rst为0,且通过各所述权重幅值有效位存储单元103的第一端和第二端分别接收到低电平和高电平的情况下,通过各所述权重幅值有效位存储单元的第三端103输出第二电压-δv。
85.相关技术中,目前sram存算一体电路是以补码形式存储计算参数,存在计算冗余,导致计算功耗高,sram存算一体电路的能效提升受限。
86.具体地,以补码形式存储的计算参数存在计算冗余,例如带符号位的4比特特征图与带符号位的4比特权重计算,需要经历4个周期,得到包括符号位在内的特征图激活值各比特与权重各比特的计算结果,再将这16个结果按照激活值和权重的位权关系进行移位累加。其中,计算参数的符号位不对结果绝对值产生影响,只会改变结果的正负数极性,然而在相关技术中,激活值与权重的符号位都需要与相应的有效比特位进行计算,这样便存在一个周期的激活值符号位功耗浪费,以及每个周期中一个权重符号位的功耗浪费。因此在移位累加的16个计算结果中存在7个结果的冗余功耗。本发明实施例对此提出,减少符号位的计算可以提升存算一体电路的能效。
87.另外,部署到存算一体电路中的大多数神经网络模型的参数分布情况,都接近于高斯分布,导致量化后的参数分布集中在小值。经过模型的验证带符号位8比特量化的模型,以二进制补码表示的模型参数,其中95%的高4比特位都是“1111”或“0000”,然而对于大部分现存的存算一体电路,没有对数据稀疏性做针对性的处理,即便某些基于电容计算的单元存在对“0”值权重天然的稀疏性优势,但是这仅仅是对正数而言,其比特“0”的占比表示了正数比特流的稀疏性。对于负数参数小值情况,高4位全是“1”,所以在负数情况比特“1”的占比表示了负数比特流的稀疏性。普通的电容计算单元也没有办法同时优化正数和负数比特流的稀疏性,所以小值负数通常会消耗更多的功耗,存在计算功耗的冗余。本发明实施例对此提出,优化负数比特“1”的计算功耗可以提升存算一体电路的能效。
88.针对上述问题,本发明实施例中,采用“符号-幅值”的编码方式对有符号数进行计算,具体sram多值单元包括符号位调制单元、权重符号位存储单元及2
n-1个权重幅值有效位存储单元,通过权重符号位存储单元,实现权重符号位信号q与输入符号位信号sin的异或,得到乘积的符号位信号sign,即当sin和q中仅有一个数据为“1”时,表示权重与输入一个为正数一个为负数,此时乘积sign=1,sign表征负数;当sign=0时,sign表征正数;再通过sign控制符号位调制单元向各权重幅值有效位存储单元输出高电平或低电平,以实现正数加电压,负数减电压的线性计算。
89.具体地,rst=1时,表征处于复位阶段;rst=0时,表征处于计算阶段;sign为0时,表征权重符号位为正;sign为1时,表征权重符号位为负;in表征输入数据幅值有效位,若in包括1bit,则in可以等于0或1;若in包括2bit,则in可以等于00、01、10或11,以此类推;需要说明的是,以in等于01为例,本发明实施例中的in为0指的是其第二输入周期的1bit数据为0,in不为0指的是其第一输入周期的1bit数据不为0。
90.符号位调制单元在sign为0、in不为0且rst为0的情况下,可以认为当前权重符号位为正,幅值有效位不为0,且处于计算阶段的情况下,分别通过符号位调制单元的第一输出端和第二输出端输出高电平和低电平,具体通过符号位调制单元的第一输出端,经由图1中的wp,向对应的权重幅值有效位存储单元的第一端传输高电平vh,并通过符号位调制单元的第二输出端,经由图1中的wn,向对应的权重幅值有效位存储单元的第二端传输低电平
0,以由该权重幅值有效位存储单元在第一端接收到高电平vh,且在第二端接收到低电平0的情况下,通过权重幅值有效位存储单元的第三端输出第一电压δv,以通过正向电压表征符号为正;
91.符号位调制单元在sign为1、in不为0且rst为0的情况下,可以认为当前权重符号位为负,幅值有效位不为0,且处于计算阶段的情况下,分别通过符号位调制单元的第一输出端和第二输出端输出低电平和高电平,具体通过符号位调制单元的第一输出端,经由wp,向对应的权重幅值有效位存储单元的第一端传输低电平0,并通过符号位调制单元的第二输出端,经由wn,向对应的权重幅值有效位存储单元的第二端传输高电平vh,以由该权重幅值有效位存储单元在第一端接收到低电平0,且在第二端接收到高电平vh的情况下,通过权重幅值有效位存储单元的第三端输出第二电压-δv,以通过负向电压表征符号为负。
92.可选地,权重幅值有效位存储单元例如为预先设置的8t1c单元。
93.在本发明实施例提供的有符号位的sram多值单元中,相较于相关技术中以补码形式存储计算参数,输入和权重的符号位需要参与计算,导致计算功耗高,并且,在小值负数前需要补入多位“1”,而正数前需要补入“0”,难以对正数和负数的数据稀疏性进行统一处理,导致小值负数通常会消耗更多的功耗,进而导致sram存算一体电路的能效提升受限的问题,本发明采用“符号-幅值”的编码方式对有符号数进行计算,无需单独周期和额外电容功耗对输入和权重的符号位进行计算,并且,优化了负数,尤其是小值负数的计算功耗,有效提高了sram存算一体电路的能效。
94.可选地,图2是本发明提供的有符号位的sram多值单元中权重符号位存储单元的结构示意图,如图2所示,所述权重符号位存储单元102包括:第一开关s1、第二开关s2、第三开关s3、第四开关s4、第一反相器1021和第二反相器1022;
95.需要说明的是,图2中以第一开关s1和第二开关s2为nmos开关,第三开关s3和第四开关s4为cmos传输门开关为例示出。
96.电路连接结构如下:
97.所述第一开关s1的第一端作为所述权重符号位存储单元102的第一正输入端,所述第一开关s1的第二端连接于所述第二开关s2的第一端,所述第二开关s2的第二端作为所述权重符号位存储单元102的第一负输入端,所述第一开关s1的控制端连接于所述第一反相器1021的输入端,所述第一反相器1021的输出端分别连接于所述第二开关s2的控制端、所述第三开关s3的第一端和所述第二反相器1022的输入端,所述第三开关s3的第二端连接于所述bl,所述第二反相器1022的输出端连接于所述第四开关s4的第一端,所述第四开关s4的第二端连接于所述blb,所述第四开关s4的控制端连接于所述第三开关s3的控制端,连接线作为字线(wordline,wl);其中,所述第一开关s1的控制端用于接收所述q,所述第二开关s2的控制端用于接收负权重符号位信号(qb),所述qb为所述q的反信号;举例来说,q为高电平的情况下,qb为低电平;q为低电平的情况下,qb为高电平。
98.具体地,本发明实施例提供了权重符号位存储单元的一种实现方式,该单元的实现主要有以下几种情况:
99.1)当sin=0且q=0的情况下,且qb=1,此时,第一开关导通,第二开关关断,sign=0;
100.2)当sin=0且q=1的情况下,且qb=0,此时,第一开关关断,第二开关导
通,sign=1;
101.3)当sin=1且q=0的情况下,且qb=1,此时,第一开关导通,第二开关关断,sign=1;
102.4)当sin=1且q=1的情况下,且qb=0,此时,第一开关关断,第二开关导通,sign=0。
103.本发明实施例提供的权重符号位存储单元,实现了sin和q的异或,当sin和q中经有一个为1时,输出sign=1,表征符号为负。
104.可选地,图3是本发明提供的有符号位的sram多值单元中符号位调制单元的结构示意图,如图3所示,所述符号位调制单元101包括:第五开关s5、第六开关s6、第七开关s7、第八开关s8、第九开关s9、第十开关s10和第十一开关s11;
105.电路连接结构如下:
106.所述第五开关s5的控制端和所述第六开关s6的控制端作为所述符号位调制单元101的第二正输入端,所述第五开关s5的第一端作为所述符号位调制单元101的第一输出端,所述第五开关s5的第二端连接于所述第六开关s6的第一端,所述第六开关s6的第二端作为所述符号位调制单元101的第二输出端,所述第六开关s6的第一端还分别连接于所述第七开关s7的第二端和所述第八开关s8的第一端,所述第七开关s7的第一端用于接收高电平,所述第八开关s8的第二端接地,所述第七开关s7的控制端作为所述符号位调制单元101的正控制端,用于接收所述sign,所述第八开关s8的控制端作为所述符号位调制单元101的负控制端,用于接收所述(sign的反信号),所述第七开关s7的控制端连接于所述第九开关s9的控制端,所述第八开关s8的控制端作为所述第十开关s10的控制端,所述第十开关s10的第二端作为所述符号位调制单元101的第一正输入端,所述第十开关s10的第一端分别连接于所述第九开关s9的第二端和所述第十一开关s11的第一端,所述第九开关s9的第一端作为所述符号位调制单元101的第一负输入端,所述第十一开关s11的控制端作为所述符号位调制单元101的第二负输入端,所述第十一开关s11的第二端也作为所述符号位调制单元101的第一输出端。
107.具体地,本发明实施例提供了符号位调制单元的一种具体实现方式。
108.在权重符号位信号q为0时,以sin/in中第一位表征符号且第二位表征幅值举例说明,该单元的实现主要有以下几种情况:
109.1)当sin/in为01时,第一位“0”表征符号为正,故sign=0,第二位“1”表征幅值为1,故sin/in为01,可以用来表征“+1”;
110.在rst=1时表征处于复位阶段,此时第五开关和第六开关导通,第十一开关关断;sign=0,此时第七开关和第九开关关断,第八开关和第十开关导通,符号位调制单元的第一输出端wp和符号位调制单元的第二输出端wn均接地gnd,处于低电平;
111.在由rst=1变化至rst=0时,表征处于计算阶段,此时第五开关和第六开关关断,第十一开关导通;此时,符号位调制单元的第二输出端wn没有形成回路,故保持低电平;符号位调制单元的第一输出端wp通过第十开关和第十一开关连接于in(in=1),故处于高电平vh;
112.2)当sin/in为00时,第一位“0”表征符号为正,故sign=0,第二位“0”表征幅值为
0,故sin/in为00,可以用来表征“+0”;
113.不论rst=0或是rst=1,符号位调制单元的第一输出端wp和符号位调制单元的第二输出端wn均处于低电平;
114.3)当sin/in为11时,第一位“1”表征符号为负,故sign=1,第二位“1”表征幅值为1,故sin/in为11,可以用来表征
“‑
1”;
115.在rst=1时表征处于复位阶段,此时第五开关和第六开关导通,第十一开关关断;sign=1,此时第七开关和第九开关导通,第八开关和第十开关关断,符号位调制单元的第一输出端wp和符号位调制单元的第二输出端wn均接vh,处于高电平;
116.在由rst=1变化至rst=0时,表征处于计算阶段,此时第五开关和第六开关关断,第十一开关导通;此时,符号位调制单元的第二输出端wn没有形成回路,故保持高电平;符号位调制单元的第一输出端wp通过第九开关和第十一开关连接于故处于低电平;
117.4)当sin/in为10时,第一位“1”表征符号为负,故sign=1,第二位“0”表征幅值为0,故sin/in为10,可以用来表征
“‑
0”;
118.不论rst=0或是rst=1,符号位调制单元的第一输出端wp和符号位调制单元的第二输出端wn均处于高电平。
119.可选地,图4是本发明提供的有符号位的sram多值单元中权重幅值有效位存储单元的结构示意图,如图4所示,所述权重幅值有效位存储单元103包括:第十二开关s12、第十三开关s13、第十四开关s14、第十五开关s15、第三反相器1031、第四反相器1032和预充电容c;
120.所述第十二开关s12的第一端作为所述权重幅值有效位存储单元103的第四端,所述第十二开关s12的第二端分别连接于所述第三反相器1031的输入端、所述第四反相器1032的输出端和所述第十四开关s14的控制端,所述第三反相器1031的输出端分别连接于所述第十三开关s13的第一端、所述第四反相器1032的输入端和所述第十五开关s15的控制端,所述第十三开关s13的第二端作为所述权重幅值有效位存储单元103的第五端,所述第十二开关s12的控制端和所述第十三开关s13的控制端分别连接于所述wl,所述第十四开关s14的第一端作为所述权重幅值有效位存储单元103的第一端,所述第十四开关s14的第二端分别连接于所述第十五开关s15的第一端和所述预充电容c的第一端,所述第十五开关s15的第二端作为所述权重幅值有效位存储单元103的第二端,所述预充电容c的第二端作为所述权重幅值有效位存储单元103的第三端。
121.需要说明的是,第十四开关的控制端由q控制,第十五开关的控制端由qb控制;
122.具体地,本发明实施例提供了权重幅值有效位存储单元的一种实现方式,该单元的实现主要包括:
123.图5是本发明提供的有符号位的sram多值单元的时序示意图,如图5所示。
124.在复位阶段(rst=1),权重幅值有效位存储单元的第三端的计算位线(compute bitline,cbl)被预充至预充电平(v
rst
),若sign=0,则权重幅值有效位存储单元的第一端(wp)和第二端(wn)被预充至低电平(gnd);
125.在计算阶段(rst=0),若q=1,qb=0,则第十四开关导通,第十五开关关断,预充
电容的上极板通过q与wp连通,若此时in为1,则wp电压由低电平(gnd)充电至高电平(vh),耦合至预充电容的下极板,使权重幅值有效位存储单元的第三端的cbl的电压增加第一电压δv,wn电位保持预充电位不变;若此时in为0,则wp、wn均保持为低电平不变,cbl上没有电压变化,实现了输入比特流0值的稀疏功耗节约;
126.若q=0,qb=1,则第十四开关关断,第十五开关导通,预充电容的上极板通过qb与wn连通,始终保持低电平不变,实现了权重比特流0值稀疏的功耗节约;若sign=1,则wp/wn被预充至vh,此时in为1,则wp电压由vh放电至低电平(gnd),耦合至预充电容的下极板,使cbl电压减小δv,即输出第二电压-δv,wn电位保持vh不变。
127.可选地,所述符号位调制单元101还用于:
128.在发生第一事件的情况下,通过所述符号位调制单元的第一输出端和第二输出端输出低电平;
129.其中,所述发生第一事件包括以下任一项:
130.1)所述sign为0、所述in不为0且所述rst为1;
131.2)所述sign为0且所述in为0;
132.在发生第二事件的情况下,通过所述符号位调制单元的第一输出端和第二输出端输出高电平;
133.其中,所述发生第二事件包括以下任一项:
134.1)所述sign为1、所述in不为0且所述rst为1;
135.2)所述sign为1且所述in为0。
136.具体地,实现了输入与权重比特0的稀疏功耗优化,进一步提高了sram存算一体电路的能效,其中,功耗优化的体现在权重幅值有效位存储单元中的电容的上极板电压的变化,权重幅值有效位存储单元存储比特1时,该电压变化是rst=1和rst=0两个阶段下wp电压的变化,wp电压在两个阶段不变则可以节省功耗,wp电压改变则消耗功耗,分别对应所述in为0或为1的情况,实现了输入比特0的功耗优化;权重幅值有效位存储单元存储比特0时,该电压变化是rst=1和rst=0两个阶段下wn电压的变化,而wn电压在两个阶段是始终不变的,节省了权重比特0的计算功耗。
137.另一方面,本发明实施例还提供了一种存算一体芯片。
138.图6是本发明提供的存算一体芯片的结构示意图之一,如图6所示,存算一体芯片200包括:sram子阵列电路201、权重加权电路202、以及逐次逼近式模拟数字转换器(successive approximation register analog-digital converter,sar adc)203,其中,所述sram子阵列电路201包括至少两个如上述任一实施例所述的有符号位的sram多值单元100;
139.下面对本发明提供的存算一体芯片进行描述,下文描述的存算一体芯片中的有符号位的sram多值单元的相关实施细节,与上文描述的有符号位的sram多值单元可相互对应参照。
140.可选地,sar adc可以替换为现有的其他类型的adc,不限于saradc。
141.电路结构具体如下:
142.各所述有符号位的sram多值单元100的输入端作为所述存算一体芯片200的输入端,各所述有符号位的sram多值单元100的输出端连接于所述权重加权电路202的输入端,
所述权重加权电路202的输出端连接于所述sar adc 203的输入端,所述sar adc 203的输出端作为所述存算一体芯片200的输出端。
143.可选地,图7是本发明提供的存算一体芯片中权重加权电路的结构示意图,如图7所示,权重加权电路可以采用大小为单位电容c的桥接电容,降低了8b加权所需要的总电容大小,减小了电路面积,通过是否选通加权电容与输出电压节点的连接,可以实现可变比特数的权重表示,输出电压节点连接到sar adc的采样电容中完成8b量化输出。
144.可选地,如图6所示,所述存算一体芯片200还包括串行输入比特加权电路204,所述权重加权电路202通过所述串行输入比特加权电路204连接于所述sar adc 203,图8是本发明提供的存算一体芯片中串行输入比特加权电路的结构示意图之一,如图8所示,所述串行输入比特加权电路204包括:第十六开关s16、第十七开关s17、第十八开关s18、第十九开关s19、第二十开关s20、第二十一开关s21、第一电容c0、第二电容c1、第三电容c2、第一电源2031、第二电源2032和控制单元,在图中未示出控制单元及其对应的连接结构;
145.所述第十六开关s16的第一端作为所述串行输入比特加权电路204的输入端,所述第十六开关s16的第二端连接于所述第一电源2031的输出端,所述第十六开关s16的第三端连接于所述第一电容c0的第一端,所述第一电容c0的第二端分别连接于所述第十七开关s17的第一端、所述第十八开关s18的第一端和所述第十九开关s19的第一端,所述第十九开关s19的第二端接地,所述第十七开关s17的第二端分别连接于所述第二电容c1的第一端和所述第二十开关s20的第一端,所述第二十开关s20的第二端连接于所述第三电容c2的第一端,所述第二十开关s20的第二端作为所述串行输入比特加权电路204的输出端,所述第三电容c2的第二端接地,所述第二电容c1的第二端分别连接于所述第十八开关s18的第二端通过所述二十一开关s21连接于所述第二电源2032的输出端,所述控制单元的输出端分别连接于所述第十六开关s16、所述第十七开关s17、所述第十八开关s18、所述第十九开关s19、所述第二十开关s20和所述第二十一开关s21的控制端。
146.可选地,所述控制单元用于:
147.在所述串行输入比特加权电路接收到输入低比特与权重的第一乘累加电压结果的情况下,执行以下步骤:
148.在第一正信号(rst)由高置低之前,连通所述第十六开关的第一端和第三端,且导通所述第十七开关、所述第十九开关和所述第二十一开关,所述第十八开关和所述第二十开关处于关断状态;
149.在所述rst由低置高之前,连通所述第十六开关的第一端和第二端,关断所述第十九开关;
150.在所述串行输入比特加权电路接收到输入高比特与权重的第二乘累加电压结果的情况下,执行以下步骤:
151.在所述rst由高置低之前,连通所述第十六开关的第一端和第三端,导通所述第十九开关,且关断所述第十七开关;
152.在所述rst由低置高之前,连通所述第十六开关的第一端和第二端,关断所述第十九开关和所述第二十一开关,且导通所述第十八开关和所述第二十开关。
153.举例来说,图9是本发明提供的存算一体芯片中串行输入比特加权电路的结构示意图之二,如图9所示,由于控制单元是同时控制第十六开关s16和第十九开关s19导通或关
断的(将连通第十六开关s16的第一端和第三端,作为第十六开关s16的导通状态;将连通第十六开关s16的第二端和第三端,作为第十六开关s16的关断状态),故可以用开关φ0表征第十六开关s16和第十九开关s19;可以用开关φ1表征第十七开关s17;由于控制单元是同时控制第十八开关s18、第二十开关s20和第二十一开关s21导通或关断的,而第二十一开关s21的状态与其余两个开关的状态相反,故可以用开关φ2表征第十八开关s18和第二十开关s20,用开关表征第二十一开关s21。另外,图中以第一电源输出vdd,第二电源输出0电平为例示出。
154.需要说明的是,串行输入比特加权电路204的输入可以是经过图7中的8b权重加权电路后的模拟计算电压值v
mac,i
,在8b权重情况下,v
mac,i
表征的是256个1b输入与8b权重的乘累加结果。该电路中,第一电容c0用于采样乘累加结果,第二电容c1用于实现2b串行输入的比特加权,第三电容c2用于实现乘累加计算和adc量化的流水线分级。
155.图10是本发明提供的存算一体芯片中串行输入比特加权电路的开关控制时序示意图,图11是本发明提供的存算一体芯片中串行输入比特加权电路的开关控制波形示意图,如图10和图11所示,表示了计算中两个阶段(phase1和phase2)的开关情况。对于一个有符号的3b输入,其符号位通过如图1的有符号位的sram多值单元持续控制幅值有效位的计算,2b的幅值有效位按照图10的时序完成加权。
156.在第一阶段,开关φ0,φ1导通,复位信号rst由高至低进入阵列计算阶段,此时c0的上极板采样输入低比特(in
l
)与权重的乘累加(multiply-and-accumulate,mac)电压结果v
mac,l
,c1的上极板缓存电压(v
tmp
)被复位至gnd。
157.完成对该低比特mac计算结果的采样后,开关φ0关断,开关φ1保持导通,此时c0的上极板电压由v
mac,l
变化为vdd-v
mac,l
,耦合至c0的下极板,使得v
tmp
由gnd变为
158.在第二阶段,开关φ1关断,开关φ0由导通变为关断,完成对输入高比特(inh)与权重的乘累加电压结果v
mac,h
的采样。开关φ2在φ0置低时,由关断切换到导通,使得c0的上极板电压的变化为vdd-v
mac,h
,直接作用在c1的下极板,从而使v
tmp
在第一阶段的基础上增加vdd-v
mac,h
,得到2bit串行输入的mac计算加权结果δv
adc
。
159.图12是本发明提供的存算一体芯片中串行输入比特加权电路与sar adc之间的流水线划分示意图,如图12所示,在下一次输入低比特的计算中(重回phase1),adc采样信号(clk_s)由高置低,开始sar逻辑的转换时序,此时开关φ2保持断开,c0和c1可以继续重复上述第一阶段对输入低比特的mac计算与缓存工作,所以阵列乘累加和adc可以流水进行,提高了吞吐率,增加了adc功耗的分摊参数量,能够减小adc功耗的占比,提高芯片能效。
160.因为c2的电荷共享,使得最终输入到adc中的模拟电压大小为其中α由c2与c0/c1的电容值的大小决定,c0/c1表征c0与c1的比值,这里采用c0=c1=2c2的容值方案,最终
能够线性表征256个2b输入幅值有效比特位与权重乘累加的模拟电压结果。
161.可选地,所述第二电源的输出电压为预先设置的均值偏置v
bias
。
162.需要说明的是,均值偏置v
bias
与软件训练出的神经网络模型批归一化(batch normalization,bn)层的数据有关,在模型确定后v
bias
则被确定,在电路计算前需要根据模型预先设置v
bias
。
163.具体地,相关技术中,在存算一体电路上计算的神经网络量化模型没有量化bn层,也没有相应的存算一体电路去实现bn层的操作,这限制了在存算一体电路上部署神经网络全模型的潜力。
164.浮点模型bn层的计算公式为:其中act表示bn层的输入,μ()、σ()分别表示其均值和标准差。该计算操作被量化为sbn(act)=(act-「μ(act)」)>>(n+「log2(σ(act))」),将均值取整,将对标准差的除法等效为对分子的右移位,其中,n表示量化位宽。将该量化方式映射到硬件中,便变成了sbn(mac)=(mac-mean)>>shift,其中,mean=「μ(act)」,shift=n+「log2(σ(act))」。本发明将右移位操作shift整合至阵列外的输入比特移位加权的数字电路中,于是阵列里只需要映射sbn(mac)=(mac-mean)的加法关系即可。
165.图13是本发明提供的存算一体芯片中量化bn层到存算一体芯片的映射关系示意图,如图13所示,本发明将n-bit输入分n个周期送入存算一体电路的阵列中计算,得到乘累加结果加结果其中,maci是输入第i位与阵列中权重乘累加的计算结果。相应的,也将mean值拆分为n-bit,满足bit,满足再将量化bn层,转化为在每个乘累加计算周期内对乘累加的模拟计算结果加上一个偏置电压的操作,即化为在每个乘累加计算周期内对乘累加的模拟计算结果加上一个偏置电压的操作,即
166.图14是本发明提供的存算一体芯片中实现bn操作的示意图,如图14所示,本技术在串行输入比特加权电路的c1的下极板的第二电源的输出电压换为不同bn层(或不同bn层通道)对应的均值偏置v
bias
,于是v
adc
由变为c0=c1=2c2的容值方案下,可以得到,
167.本发明实施例中,通过将sar adc中的第二电源的输出电压调整为v
bias
,以在片上实现bn计算,可以提高神经网络模型在存算一体芯片中的全映射程度。
168.可选地,在所述第一电源输出的电压为vdd的情况下,v
bias
=1/4*vdd。
169.具体地,本发明实施例规定v
bias
=1/4*vdd时,bias=0,用于adc对权重的乘累加(mac)计算结果的量化,具体在计算过程中cbl上的电压的变化范围是0~vdd,复位电压v
rst
为1/2vdd,即当maci=0时,v
mac,i
=1/2vdd。而低比特的计算结果存在1/2的系数(即1/
2v
mac,l
),所以对于v
mac,l
而言,1/4vdd代表0。所以bias=0时也将v
bias
置1/4vdd。bias=0时,对应的v
bias
可以设置为任意值,但是在测试过程中,发现1/4vdd的情况可以表示的bias值的范围最好。
170.下面举例说明本发明实施例提供的有符号位的sram多值单元及存算一体芯片。
171.本发明提出了一种能够实现有符号数乘累加计算的存算一体芯片,同时支持神经网络bn层的部署。该芯片主要包括:
172.1)一种具有符号位调制功能的新型sram单元(有符号位的sram多值单元);
173.2)一种高效的激活值加权电路(即串行输入比特加权电路);
174.3)一种乘累加计算与adc之间的流水线时序设计;
175.4)神经网络bn层的部署实现。
176.相比于现有的存算一体芯片,本发明提出的芯片表现出了优异的性能,能够达到4.55pops/w的归一化能效,16.38tops的归一化吞吐率和83.14tops/mm2的归一化计算密度。在8bit有符号数的resnet18网络模型测试下,对cifar10数据的测试精度能够达到91.07%。
177.具体地,现有基于sram的存算一体芯片在神经网络部署上存在以下问题:
178.1)因为神经网络参数的高斯分布特点,大部分参数绝对值较小,被量化为补码表示的8比特整数后,95%以上的参数的高4特都是“0000”或“1111”,这导致对于负数的计算比特“1”会消耗很多能量,使得对于负数的计算存在能量浪费;
179.2)存算一体芯片功耗由adc功耗主导,限制了芯片能效的进一步提升;
180.具体在存算一体电路的功耗分布上来看,通常adc会占据50%以上的功耗,这是因为阵列计算的功耗较小,而adc功耗更大。所以adc量化前乘累加的参数量越少,其对adc功耗的分摊就越差。而电流型的存算一体电路因为器件涨落和非线性的原因,并行度不能太高,而依靠电容的电荷型存算一体电路的并行参数量也受到了存储阵列大小的限制。增加adc量化前乘累加的参数量可以减低adc的功耗占比,从而提高存算一体电路的能效。
181.3)因为神经网络bn层存在浮点数减法和除法的原因,神经网络模型不能完全部署在存算一体芯片中;
182.具体现有的存算一体电路没有考虑神经网络bn层的片上计算,通常都是将存算一体电路得到的卷积层结果拿到软件中完成bn操作。在片上实现bn计算可以提高神经网络模型在存算一体电路中的全映射程度。
183.为了解决上述问题,本发明提出了:
184.1)一种有符号位的sram多值单元,采用“符号-幅值”的编码方式对有符号数进行计算,统一了正负数的比特流稀疏性,节约了小值负数的计算功耗和符号位的计算功耗;
185.2)一种具有流水线分级的串行输入比特加权的电容电路,能够实现激活值比特的加权,增加分摊adc功耗的操作数,降低adc功耗占比;
186.3)一种量化bn层的硬件映射方案,将bn层有关均值的加法耦合到adc的采样电压中,实现神经网络bn层的存算一体部署。
187.一、芯片整体架构
188.图15是本发明提供的存算一体芯片的结构示意图之二,如图15所示,在标准28nmcmos工艺下流片,存储容量为64kb。包括两个256x128大小的sram子阵列,每个子阵列
包含sram存储模式的读写接口、cim模式的输入缓存的16个权重加权电路和16个8比特的sar adc。
189.图16是本发明提供的存算一体芯片中权重幅值有效位存储单元的结构示意图,如图16所示,权重幅值有效位存储单元可以采用8t1c单元,8t1c单元的基本结构中采用金属电容,使电容可以直接集成在8管单元上方,从而将单元面积缩小至0.83um2。
190.每8个8t1c单元复用一个符号位调制(sign bit modulation)单元组成一个多值权重单元(multi-bit weight unit),即本发明实施例中的有符号位的sram多值单元,一个多值权重单元最多可以表示一个8b权重,其中,包括1个符号位和7个幅值有效位。该8b权重按照“符号位+绝对值”的“符号-幅值”二进制编码形式存储在单元中,举例来说,-1可以被编码为“10000001”,而非采用二进制补码的形式,从而统一了正数与负数比特流的稀疏性,使带符号参数比特流的稀疏性功耗可以统一优化。
191.如图7所示,阵列的一个计算通道可以并行计算256个多值权重单元的累加,其中7个幅值有效位的计算结果通过图7所示的权重加权电路进行加权,实现权重的8b表示。权重加权电路采用大小为单位电容c的桥接电容,降低了8b加权所需要的总电容大小,减小了电路面积,通过是否选通加权电容与输出电压节点的连接,可以实现可变比特数的权重表示,输出电压节点连接到sar adc的采样电容中完成8b量化输出。
192.64kb的sram阵列共有32个这样的计算通道,可全并行计算(1,256)大小的输入向量与(256,32)大小的8b权重矩阵的乘法,得到(1,32)大小的8b输出向量。
193.二、一种有符号位调制功能的新型sram单元(有符号位的sram多值单元)
194.图17是本发明提供的有符号位的sram多值单元的结构示意图之二,如图17所示,该sram多值单元是芯片整体框架中提到的多值权重单元,由1个存储权重符号位的10t单元(权重符号位存储单元)、7个存储权重幅值有效位的8t1c存储单元(权重幅值有效位存储单元)和1个符号位调制单元组成。
195.权重符号位存储单元与权重幅值有效位存储单元的输入接法有区别,权重符号位存储单元的输入分别接输入数据的符号位通过传输门实现权重符号位与输入符号位的异或得到权重与输入乘积的符号位(sign)。即当sin、q中有且仅有一个数据为“1”时,表示输入与权重一个为正数一个为负数,乘积为负数(sign=1)。乘积符号位控制权重幅值有效位的输入变化,实现正数加电压,负数减电压的线性计算。
196.三、一种具有流水线分级的串行输入比特加权的电容电路
197.四、一种神经网络bn层量化参数化的硬件映射方案
198.五、性能评估
199.图18是本发明提供的存算一体芯片对符号位计算功耗的优化示意图,如图18所示,表征了在一个vgg(visual geometry group)-8的量化模型中,采用二进制补码形式表示的权重,不同层内的权重比特流具有49.4%~51.3%的稀疏度。而采用本发明提出的“符号-幅值”编码形式,可以将稀疏度提升至66.3%~70.2%。在带符号位调制的计算单元对比特流的稀疏性优化下,采用“符号-幅值”编码形式的计算比二进制补码形式的计算最高可提升1.47倍的能效。
200.图19是本发明提供的存算一体芯片对负数比特流稀疏性功耗的优化示意图,如图
19所示,展示了不同比特流稀疏度下,本发明对功耗的节约情况。在相同比特流稀疏度情况下,本发明的带符号调制的计算能够带来比二进制补码计算低25%的功耗。在采用该电路的情况下,随着比特流的稀疏度越大,在95%稀疏时最高可以减少33.4%的功耗。
201.图20是本发明提供的存算一体芯片中串行输入比特加权电路对adc功耗的优化示意图,如图20所示,给出了具有流水线分级的串行输入比特加权电路增加adc量化前的乘累加参数量,从而更好分摊adc功耗的性能。
202.对于2b串行输入数据的计算,没有该电路需要两个周期32ns才能完成2b输入与权重的乘累加计算,每比特计算消耗0.38fj的能量,其中adc占据了44.04%的能耗;但在本发明的串行输入比特加权电路优化下,16ns便可完成2b输入与权重的乘累加计算,每比特计算仅消耗0.22fj的能量,adc占比下降至23.9%,提升了1.73倍的能效。
203.图21是本发明提供的存算一体芯片中加入量化bn层计算偏置后的adc量化曲线示意图,如图21所示,展示了加入量化bn层计算偏置后的adc量化曲线,具有较好的线性度。
204.表1给出了本发明与其他存算一体电路的比较表。
205.表1本发明与其他存算一体电路的比较表
206.[0207][0208]
可以看出,本发明可以实现片上bn层的计算,在吞吐率、能效和计算密度等性能指标上都有突出的表现。在8b量化的resnet-18模型上能够实现对cifar-10数据集91.07%的推理精度。
[0209]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:
1.一种有符号位的静态随机存取存储器sram多值单元,其特征在于,包括:符号位调制单元、权重符号位存储单元及2
n-1个权重幅值有效位存储单元,n为大于1的整数;所述符号位调制单元的第一正输入端和所述符号位调制单元的第一负输入端作为所述sram多值单元的第一输入端,所述符号位调制单元的第二正输入端和所述符号位调制单元的第二负输入端作为所述sram多值单元的第二输入端,所述权重符号位存储单元的第一正输入端和所述权重符号位存储单元的第一负输入端作为所述sram多值单元的第三输入端,所述符号位调制单元的第一输出端连接于各所述权重幅值有效位存储单元的第一端,所述符号位调制单元的第二输出端连接于各所述权重幅值有效位存储单元的第二端,各所述权重幅值有效位存储单元的第三端作为所述sram多值单元的输出端,各所述权重幅值有效位存储单元的第四端通过预先设置的位线bl连接,各所述权重幅值有效位存储单元的第五端通过预先设置的反位线blb连接,所述权重符号位存储单元的正输出端连接于所述符号位调制单元的正控制端,所述权重符号位存储单元的负输出端连接于所述符号位调制单元的负控制端;所述权重符号位存储单元用于:通过所述sram多值单元的第三输入端接收正输入符号位信号sin;计算所述sin与预先设置的正权重符号位信号q之间的异或结果,生成正符号位信号sign和负符号位信号分别输出至所述符号位调制单元的正控制端和所述符号位调制单元的负控制端;所述符号位调制单元用于:通过所述sram多值单元的第一输入端接收正幅值有效位信号in,通过所述sram多值单元的第二输入端接收第一正信号rst;在所述sign为0、所述in不为0且所述rst为0的情况下,分别通过所述符号位调制单元的第一输出端和第二输出端输出高电平和低电平;在所述sign为1、所述in不为0且所述rst为0的情况下,分别通过所述符号位调制单元的第一输出端和第二输出端输出低电平和高电平;各所述权重幅值有效位存储单元用于:在所述rst为0,且通过各所述权重幅值有效位存储单元的第一端和第二端分别接收到高电平和低电平的情况下,通过各所述权重幅值有效位存储单元的第三端输出第一电压δv;在所述rst为0,且通过各所述权重幅值有效位存储单元的第一端和第二端分别接收到低电平和高电平的情况下,通过各所述权重幅值有效位存储单元的第三端输出第二电压-δv。2.根据权利要求1所述的有符号位的静态随机存取存储器sram多值单元,其特征在于,所述权重符号位存储单元包括:第一开关、第二开关、第三开关、第四开关、第一反相器和第二反相器;所述第一开关的第一端作为所述权重符号位存储单元的第一正输入端,所述第一开关的第二端连接于所述第二开关的第一端,所述第二开关的第二端作为所述权重符号位存储单元的第一负输入端,所述第一开关的控制端连接于所述第一反相器的输入端,所述第一
反相器的输出端分别连接于所述第二开关的控制端、所述第三开关的第一端和所述第二反相器的输入端,所述第三开关的第二端连接于所述bl,所述第二反相器的输出端连接于所述第四开关的第一端,所述第四开关的第二端连接于所述blb,所述第四开关的控制端连接于所述第三开关的控制端,连接线作为字线wl;其中,所述第一开关的控制端用于接收所述q,所述第二开关的控制端用于接收负权重符号位信号qb,所述qb为所述q的反信号。3.根据权利要求2所述的有符号位的静态随机存取存储器sram多值单元,其特征在于,所述符号位调制单元包括:第五开关、第六开关、第七开关、第八开关、第九开关、第十开关和第十一开关;所述第五开关的控制端和所述第六开关的控制端作为所述符号位调制单元的第二正输入端,所述第五开关的第一端作为所述符号位调制单元的第一输出端,所述第五开关的第二端连接于所述第六开关的第一端,所述第六开关的第二端作为所述符号位调制单元的第二输出端,所述第六开关的第一端还分别连接于所述第七开关的第二端和所述第八开关的第一端,所述第七开关的第一端用于接收高电平,所述第八开关的第二端接地,所述第七开关的控制端作为所述符号位调制单元的正控制端,用于接收所述sign,所述第八开关的控制端作为所述符号位调制单元的负控制端,用于接收所述所述第七开关的控制端连接于所述第九开关的控制端,所述第八开关的控制端作为所述第十开关的控制端,所述第十开关的第二端作为所述符号位调制单元的第一正输入端,所述第十开关的第一端分别连接于所述第九开关的第二端和所述第十一开关的第一端,所述第九开关的第一端作为所述符号位调制单元的第一负输入端,所述第十一开关的控制端作为所述符号位调制单元的第二负输入端,所述第十一开关的第二端也作为所述符号位调制单元的第一输出端。4.根据权利要求3所述的有符号位的静态随机存取存储器sram多值单元,其特征在于,所述权重幅值有效位存储单元包括:第十二开关、第十三开关、第十四开关、第十五开关、第三反相器、第四反相器和预充电容;所述第十二开关的第一端作为所述权重幅值有效位存储单元的第四端,所述第十二开关的第二端分别连接于所述第三反相器的输入端、所述第四反相器的输出端和所述第十四开关的控制端,所述第三反相器的输出端分别连接于所述第十三开关的第一端、所述第四反相器的输入端和所述第十五开关的控制端,所述第十三开关的第二端作为所述权重幅值有效位存储单元的第五端,所述第十二开关的控制端和所述第十三开关的控制端分别连接于所述wl,所述第十四开关的第一端作为所述权重幅值有效位存储单元的第一端,所述第十四开关的第二端分别连接于所述第十五开关的第一端和所述预充电容的第一端,所述第十五开关的第二端作为所述权重幅值有效位存储单元的第二端,所述预充电容的第二端作为所述权重幅值有效位存储单元的第三端。5.根据权利要求1至4任一项所述的有符号位的静态随机存取存储器sram多值单元,其特征在于,所述符号位调制单元还用于:在发生第一事件的情况下,通过所述符号位调制单元的第一输出端和第二输出端输出低电平;其中,所述发生第一事件包括以下任一项:所述sign为0、所述in不为0且所述rst为1;所述sign为0且所述in为0;
在发生第二事件的情况下,通过所述符号位调制单元的第一输出端和第二输出端输出高电平;其中,所述发生第二事件包括以下任一项:所述sign为1、所述in不为0且所述rst为1;所述sign为1且所述in为0。6.一种存算一体芯片,其特征在于,包括:静态随机存取存储器sram子阵列电路、权重加权电路、以及逐次逼近式模拟数字转换器sar adc,其中,所述sram子阵列电路包括至少两个如上述权利要求1至5任一项所述的有符号位的静态随机存取存储器sram多值单元;各所述有符号位的sram多值单元的输入端作为所述存算一体芯片的输入端,各所述有符号位的sram多值单元的输出端连接于所述权重加权电路的输入端,所述权重加权电路的输出端连接于所述sar adc的输入端,所述sar adc的输出端作为所述存算一体芯片的输出端。7.根据权利要求6所述的存算一体芯片,其特征在于,所述存算一体芯片还包括串行输入比特加权电路,所述权重加权电路通过所述串行输入比特加权电路连接于所述sar adc;所述串行输入比特加权电路包括:第十六开关、第十七开关、第十八开关、第十九开关、第二十开关、第二十一开关、第一电容、第二电容、第三电容、第一电源、第二电源和控制单元;所述第十六开关的第一端作为所述串行输入比特加权电路的输入端,所述第十六开关的第二端连接于所述第一电源的输出端,所述第十六开关的第三端连接于所述第一电容的第一端,所述第一电容的第二端分别连接于所述第十七开关的第一端、所述第十八开关的第一端和所述第十九开关的第一端,所述第十九开关的第二端接地,所述第十七开关的第二端分别连接于所述第二电容的第一端和所述第二十开关的第一端,所述第二十开关的第二端连接于所述第三电容的第一端,所述第二十开关的第二端作为所述串行输入比特加权电路的输出端,所述第三电容的第二端接地,所述第二电容的第二端分别连接于所述第十八开关的第二端通过所述二十一开关连接于所述第二电源的输出端,所述控制单元的输出端分别连接于所述第十六开关、所述第十七开关、所述第十八开关、所述第十九开关、所述第二十开关和所述第二十一开关的控制端。8.根据权利要求7所述的存算一体芯片,其特征在于,所述控制单元用于:在所述串行输入比特加权电路接收到输入低比特与权重的第一乘累加电压结果的情况下,执行以下步骤:在第一正信号rst由高置低之前,连通所述第十六开关的第一端和第三端,且导通所述第十七开关、所述第十九开关和所述第二十一开关,所述第十八开关和所述第二十开关处于关断状态;在所述rst由低置高之前,连通所述第十六开关的第一端和第二端,关断所述第十九开关;在所述串行输入比特加权电路接收到输入高比特与权重的第二乘累加电压结果的情况下,执行以下步骤:在所述rst由高置低之前,连通所述第十六开关的第一端和第三端,导通所述第十九开关,且关断所述第十七开关;在所述rst由低置高之前,连通所述第十六开关的第一端和第二端,关断所述第十九开
关和所述第二十一开关,且导通所述第十八开关和所述第二十开关。9.根据权利要求8所述的存算一体芯片,其特征在于,所述第二电源的输出电压为预先设置的均值偏置v
bias
。10.根据权利要求9所述的存算一体芯片,其特征在于,在所述第一电源输出的电压为vdd的情况下,v
bias
=1/4*vdd。
技术总结
本发明提供一种有符号位的SRAM多值单元及存算一体芯片,涉及集成电路设计技术领域,单元包括:符号位调制单元、权重符号位存储单元及2
技术研发人员:王源 乔鑫
受保护的技术使用者:北京大学
技术研发日:2023.03.03
技术公布日:2023/7/19
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
