基于参考电路动态匹配的高可靠性存内计算电路、芯片
- 国知局
- 2024-07-31 20:03:19
本发明属于静态随机存储器领域,具体涉及一种基于参考电路动态匹配的高可靠性存内计算电路及其对应的cim芯片。
背景技术:
1、为了克服冯·诺依曼架构存在的冯·诺依曼瓶颈和内存墙问题,存内计算的概念被提出,它与冯·诺依曼架构的不同在于该架构直接在存储单元内完成计算,不需要进行数据传输,在一定程度上消除冯·诺依曼瓶颈和内存墙问题,且不需要频繁地访问存储单元,极大的降低了能量消耗,提高了能效比。该架构的优势在于可以同时激活多行数据,对多行数据进行处理,处理数据的吞吐量得以提高。通过模糊化存储器和计算器的概念,将二者融为一体,大幅度提高计算效率。静态随机存储器(static random access memory,sram)凭借其性能方面的优势,成为当今存内计算领域的研究热点。
2、基于sram的存内计算技术主要包括布尔逻辑、存内cam(content addressablememory,cam)操作、乘法累加操作(multiplication accumulation calculations,mac),mac操作是实现cnn(convolutional neural networks,cnn)的关键算法,成为存内计算研究的热点。mac操作的通用流程为:首先,选择架构中需要进行运算的行和列,将权重值输入到所选单元内部的存储节点;之后,将操作所需要的输入值输入到单元的字线或位线中,在单元内部进行乘法操作;接着,将一列或一行中所有单元的乘法结果进行累加操作,得到此列或此行的所有单元的累加结果,一般以电压形式的模拟量表示;最后,使用模数转换器(analog to digital converter,adc)将该累加模拟量量化为对应结果的数字量,即为最终结果。
3、通过存内计算完成的mac任务包括运算和量化两个阶段。运算过程基于阵列中的各个sram单元完成。量化阶段常用的量化方式主要以adc为核心。但目前常用的adc普遍存在低可靠性问题,如flash adc等。量化过程主要通过将计算结果信号和不同的参考信号进行逐次比较实现,在存算阵列中,生成的计算信号易受到非线性因素的影响,使得产生的不同mac的计算电压为非线性变化;在此基础上,由于量化电路产生的参考电压一般呈线性变化,二者的信号变化不匹配,这使得最终的量化精度受到影响。为了克服这个问题,技术人员提出了如图1所示的嵌入式列量化电路,该电路将参与量化的单元嵌入到阵列内部,使得参考电压的产生同计算电压的变化而发生改变,降低了非线性因素造成的影响。但是,由于该电路生成参考电压仍然易受到位线不同位置的寄生参数影响,并不能和计算电压实现动态匹配。例如图1类似的方案中,不同的参与计算的行针对同一mac结果产生的计算电压通常存在明显差距,但是产生参考电压的电路由于位置固定,产生的参考电压通常是固定的,二者电压变化无法动态匹配使得量化出的运算结果产生不可避免的量化误差。
技术实现思路
1、为了解决现有存内计算电路中在量化过程无法使得参考信号与计算信号动态匹配,进而导致量化精度不足的问题,本发明提供一种基于参考电路动态匹配的高可靠性存内计算电路及其对应的cim芯片。
2、本发明提供的技术方案为:
3、一种基于参考电路动态匹配的高可靠性存内计算电路,其包括基于sram单元构成的存算阵列,以及配合存算阵列实现数据存储功能的外围电路。
4、特别地,本发明采用的存算阵列中的各个sram单元采用具有双字线的sram单元;其中,每个sram单元分别通过运算字线wll和wlr控制两侧的传输管切换对应侧的存储节点与位线的导通状态。按奇数行和偶数行将存算阵列中各个sram单元分为两类,其中一类全作为计算单元,另外一类全作为量化单元。将存算阵列中每列的位线bl和blb连接在一个灵敏放大器sa的两个输入端口上。
5、基于以上,本发明提供的高可靠性存内计算电路实现乘累加运算的策略如下:
6、一、运算阶段
7、选择存算阵列中的至少一列作为执行乘累加运算的对象,将当前列中的每个计算单元的其中一侧的存储节点预存的值作为每个乘法运算的其中一个操作数,并通过对应侧的运算字线向各个计算单元输入表征第二操作数的计算脉宽信号。乘积结果的模拟量体现在该运算字线控制导通的位线的放电电压上。同列中不同行的计算单元均执行各自的乘法运算后,则乘累加结果的模拟量即为对应位线上的总放电电压。
8、二、量化阶段
9、向当前列中的所有量化单元的另一侧的存储节点中预存数据“1”,然后选择与参与运算的各个计算单元位于相邻行的各个量化单元作为拟选操作对象,按照第i周期开启ai行为标准,从拟选操作对象中选出对应数量的量化单元,其中,a表示预设的单位梯度。并在各周期内通过另一侧的运算字线向各个量化单元输入参考脉宽信号。此时,在不同周期中,选中的不同数量的量化单元参与并生成按单位梯度递增的参考值,并在当前列中另一侧的位线上通过总放电电压体现出参考值的模拟量。
10、记录灵敏放大器的输出发生翻转的上一周期对应的参考值s,该值即为乘累加运算结果。
11、作为本发明进一步的改进,本发明提供的高可靠性存内计算电路还包括用于实现乘累加运算的策略的动态匹配辅助电路和数字运算电路。动态匹配辅助电路进一步包括地址配置电路和脉冲配置电路两个部分。
12、其中,地址配置电路用于根据运算阶段参与运算的各个计算单元的所在行,选择在量化阶段参与量化的各个邻近行的量化单元。
13、脉冲配置电路用于在运算阶段向各个计算单元输入计算脉宽信号;其中,乘法运算的第二操作数经编码后就是通过该计算脉宽信号的脉冲宽度进行表征的。脉冲配置电路还用于在量化阶段向各个参与量化的量化单元输入参考脉宽信号;其中,参考脉宽信号为单位脉宽(最低有效脉宽)的脉冲信号。另外,计算脉宽信号相对单位脉宽的脉宽倍数即为编码后的第二操作数的数值。
14、数字运算电路包括移位寄存器和全加器;数字运算电路用于在实现多比特数与多比特数的乘法运算时,对具有不同权重的各列上的运算结果进行移位和加和。
15、作为本发明进一步的改进,地址配置电路采用多位的寄存器链,寄存器链中的每个寄存器与存算阵列中相邻的一个计算行和一个量化行相对应,并用于存储表征二者启用状态的标志位。
16、作为本发明进一步的改进,脉冲配置电路分为计算脉冲宽度调制电路和参考脉冲宽度调制电路。本发明中的计算脉冲宽度调制电路可以采用任意一种既有的脉冲宽度调制电路。参考脉冲宽度调制电路则由两个反相器inv1、inv2,两个延时电路delay1、delay2,两个与门and1、and2,两个或门or1、or2,以及一个异或门xor构成。电路连接关系为:脉冲信号din分别接delay1的输入端和and1的其中一个输入端,delay1和and1的输出端分别接在or1的两个输入端上;or1的输出端同时与delay2输入端以及and2的其中一个输入端相连;and1和and2另外一个输入端均通过一个反相器连接在切换信号sw上;delay2和and2的输出端分别接在or2的两个输入端上;or1和or2的输出端连接在xor的两个输入端上,xor的输出端输出所需的参考脉冲wl_b。
17、其中,切换信号sw为对应行的地址配置电路中寄存器的标志位;delay2的延时长度即为所需的参考脉宽信号的脉宽。
18、作为本发明进一步的改进,该高可靠性存内计算电路实现单比特数与单比特数间的乘法运算和乘累加运算时,选择存算阵列中的任意一列参与运算和量化。其中一个单比特操作数直接预存在计算单元的存储节点中,另一个单比特的操作数通过运算字线以计算脉宽信号的形式输入到计算单元。
19、作为本发明进一步的改进,该高可靠性存内计算电路实现单比特数与多比特数间的乘法运算和乘累加运算时,选择存算阵列中的任意一列参与运算和量化。单比特的操作数直接预存在计算单元的存储节点中,多比特的操作数通过运算字线以脉宽编码后计算脉宽信号的形式输入到计算单元。
20、作为本发明进一步的改进,该高可靠性存内计算电路实现k比特数与s比特数间的乘法运算和乘累加运算时,在运算阶段,选择存算阵列中的k列参与运算和量化。k比特的操作数按位分解为多个单比特数,并分别预存到不同列且同行的各个计算单元同侧的存储节点中,s多比特的操作数仍通过运算字线以脉宽编码后计算脉宽信号的形式输入同行的所有计算单元。
21、在量化阶段,先对各列分别进行量化,然后对各列的量化结果按照各列在k比特数按位分解过程中赋予的权重进行移位,最后对移位结果进行加和,得到最终的乘累加运算结果。
22、作为本发明进一步的改进,存算阵列中的sram单元采用7t-sram,其由5个nmos管n1~n5以及2个pmos管p1~p2构成。电路连接关系为:
23、n1~n4和p1~p2构成6t-sram单元,n5连接在6t-sram单元任意一个存储节点对应的两个mos管之间;n5的栅极受控制信号线en控制。
24、作为本发明进一步的改进,将7t-sram分为7tl和7tr两种,存算阵列中的计算单元全采用其中一种,量化单元全采用另一种。
25、其中,7tl表示n5位于6t-sram单元左侧两个mos管之间,7tr表示n5位于6t-sram单元右侧两个mos管之间。
26、本发明还提供一种cim芯片,该cim芯片集成有如前述的基于参考电路动态匹配的高可靠性存内计算电路。
27、本发明提供的技术方案,具有如下有益效果:
28、本发明将运算过程中采用的计算单元和量化过程中采用量化电路集成到存算阵列中的同一列中,并使得二者采用完全相同的sram单元实现,并且将输出的计算电压和参考电压输出到了同列的两个互为镜像的位线上,因而可以使得参考电压的产生同计算电压的产生具有相同的机理,虽然二者的输出电压都会受到非线性因素影响,但是发生变化的特性保持一致,这可以降低非线性因素对电路逻辑运算功能的可靠性的影响。
29、本发明还将计算行和量化行在存算阵列中按照交替分布的方式进行布局,并在量化阶段根据计算阶段采用的计算单元的行位置来精准选择最接近的量化单元。这使得运算过程产生的计算电压和参考电压在变化过程中会实现动态匹配,受到位线不同位置的寄生参数影响基本相同,即使随便选择任意行参与运算,最终产生的参考电压都能够很好的跟随计算电压的变化,缩小二者的波动差值,从而进一步提高电路可靠性。
30、本发明将存算阵列中的sram单元替换为7t-sram单元,7t-sram单元将读端口与存储节点相隔离,因此可以改善了6t-sram的读破坏问题。另外,更精简的7t-sram单元相较于传统的读写分离的8t-sram在面积上又占有更大优势;可以提高芯片的集成度,降低器件运行功耗,综合性能更加突出。
本文地址:https://www.jishuxx.com/zhuanli/20240731/185242.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。