一种存内计算装置的制作方法

文档序号:30648618发布日期:2022-07-05 23:30阅读:52来源:国知局
一种存内计算装置的制作方法

1.本发明涉及存储器领域,特别是涉及一种存内计算装置。


背景技术:

2.在现有的存内计算结构中,主要采用了模拟电路的方法实现mac运算,这样得到的结果精度较差,且性能有很大一部分因素取决于工艺的好坏,受pvt影响较大。因此,纯数字存内计算单元是必要的,它可以很大程度上避免这些模拟因素的影响。
3.在纯数字存内计算结构中,加法器的电路开销是最大的。因此,纯数字存内计算结构的主要优化方向是对加法器的优化。因此,如何减小加法器的电路开销,提高电路的运算速度和稳定性是目前亟需解决的技术问题。


技术实现要素:

4.本发明的目的是提供一种存内计算装置,能够提高电路的运算速度和稳定性。
5.为实现上述目的,本发明提供了如下方案:一种存内计算装置,包括:3个8t sram单元、与门and11、与门and12、与门and13、排序器以及计算电路;一所述8t sram单元的输出端与所述与门and11的第一输入端连接,所述与门and11的第二输入端与权重输入数据连接;另一所述8t sram单元的输出端与所述与门and12的第一输入端连接,所述与门and12的第二输入端与权重输入数据连接;另一所述8t sram单元的输出端与所述与门and13的第一输入端连接,所述与门and13的第二输入端与权重输入数据连接;所述排序器的输入端分别与所述与门and11的输出端、所述与门and12的输出端以及所述与门and13的输出端连接;所述排序器的输出端与所述计算电路连接;3个所述8t sram单元均用于存储权重;所述与门and11、所述与门and12以及所述与门and13均用于将权重输入数据与8t sram单元存储的权重进行逐位乘法运算;所述排序器用于用于对乘法结果进行排序;所述计算电路用于对排序结果进行计算。
6.可选地,所述8t sram单元包括:管n1、管n2、管n3、管n4、管n5、管n6、管p1以及管p2;所述管p1的栅极与管n1的栅极连接,所述管p1的源极接vdd,所述管p1的漏极与所述管n1的漏极连接;所述管n1的源极接vss;所述管p2的栅极与所述管n2的栅极连接,所述管p2的源极接vdd,所述管p2的漏极与所述管n2的漏极连接;所述管n2的源极接vss;所述管n3的栅极接字线wl,所述管n3的源极接位线bl,所述管n3的漏极分别与所
述管p1和所述管n1的漏极连接;所述管n4的栅极接字线wl,所述管n4的源极接位线blb,所述管n4的漏极分别与所述管p2和所述管n2的漏极连接;所述管n5的栅极分别与所述管p2和所述管n2的漏极连接,所述管n5的源极接vss,所述管n5的漏极与所述管n6的漏极连接;所述管n6的栅极接读字线rwl,所述管n6的源极接读位线rblb。
7.可选地,所述管n1、管n2、管n3、管n4、管n5以及管n6均为nmos管。
8.可选地,所述管p1以及管p2均为pmos管。
9.可选地,所述排序器包括:反相器i1、反相器i2、反相器i3、三输入与门and1、三输入与门and2、三输入与门and3、三输入与门and4、三输入与门and5、三输入与或门or1、四输入或门or2;所述反相器i1的输入端与所述与门and11的输出端连接,所述反相器i1的输出端与所述三输入与门and3的第一输入端连接;所述反相器i2的输入端与所述与门and12的输出端连接,所述反相器i2的输出端与所述三输入与门and4的第一输入端连接;所述反相器i3的输入端与所述与门and13的输出端连接,所述反相器i3的输出端与所述三输入与门and5的第一输入端连接;所述三输入与门and1的输入端和所述三输入与门and2的输入端均与所述与门and11的输出端、所述与门and12的输出端和所述与门and13的输出端连接;所述三输入与门and2的输出端与所述四输入或门or2的第一输入端连接;所述三输入与门and3的第二输入端与所述与门and12的输出端连接,所述三输入与门and3的第三输入端与所述与门and13的输出端连接,所述三输入与门and3的输出端与所述四输入或门or2的第二输入端连接;所述三输入与门and4的第二输入端与所述与门and11的输出端连接,所述三输入与门and4的第三输入端与所述与门and13的输出端连接,所述三输入与门and4的输出端与所述四输入或门or2的第三输入端连接;所述三输入与门and5的第二输入端与所述与门and11的输出端连接,所述三输入与门and5的第三输入端与所述与门and12的输出端连接,所述三输入与门and5的输出端与所述四输入或门or2的第四输入端连接;所述三输入与或门or1的输入端分别与所述与门and11的输出端、所述与门and12的输出端和所述与门and13的输出端连接。
10.可选地,所述计算电路包括:反相器i4、反相器i5、反相器i6、三输入与门and6、三输入与门and7以及两输入或门or3;所述反相器i4的输入端与所述三输入与门and1的输出端连接,所述反相器i4的输出端与所述三输入与门and7第一输入端连接;所述反相器i5的输入端与所述四输入或门or2的输出端连接,所述反相器i5的输出端分别与所述三输入与门and7第二输入端和所述反相器i6的输入端连接;所述三输入与门and6的输入端分别与所述三输入与门and1的输出端、所述四输入或门or2的输出端以及所述三输入与或门or1的输出端连接,所述三输入与门and6的输出端
和所述三输入与门and7的输出端均与所述两输入或门or3的输入端连接;所述三输入与门and7的第三出入端与所述三输入与或门or1的输出端连接。
11.可选地,所述一种存内计算装置的操作模式包括:存储模式和计算模式。
12.根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明所提供的一种存内计算装置,采用了排序器,将3个sram单元的输入与权重的乘加(mac)运算结果直接输出,可以加快电路的运算速度,在大规模集成时减少一级加法树的使用,采用了纯数字的运算模式,可以忽略模拟电路的pvt效应,使电路的稳定性更高,并且具有输出全精度的特点。
附图说明
13.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
14.图1为本发明所提供的一种存内计算装置结构示意图;图2为8t sram单元结构示意图;图3为排序器结构示意图;图4为计算电路结构示意图。
具体实施方式
15.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
16.本发明的目的是提供一种存内计算装置,能够提高电路的运算速度和稳定性。
17.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
18.图1为本发明所提供的一种存内计算装置结构示意图,如图1所示,本发明所提供的一种存内计算装置,包括:3个8t sram单元、与门and11、与门and12、与门and13、排序器以及计算电路。
19.一所述8t sram单元的输出端与所述与门and11的第一输入端连接,所述与门and11的第二输入端与权重输入数据in2[0]连接,上述8t sram单元的输出为w[2];所述与门and11的输出为mul[2]。
[0020]
另一所述8t sram单元的输出端与所述与门and12的第一输入端连接,所述与门and12的第二输入端与权重输入数据in1[0]连接,上述8t sram单元的输出为w[1];所述与门and12的输出为mul[1]。
[0021]
另一所述8t sram单元的输出端与所述与门and13的第一输入端连接,所述与门and13的第二输入端与权重输入数据in0[0]连接;上述8t sram单元的输出为w[0],所述与门and13的输出为mul[0]。
[0022]
所述排序器的输入端分别与所述与门and11的输出端、所述与门and12的输出端以及所述与门and13的输出端连接;所述排序器的输出端与所述计算电路连接。
[0023]
3个8t sram单元均用于存储权重,即存储3bit权重值w[2:0]。
[0024]
所述与门and11、所述与门and12以及所述与门and13均用于将权重输入数据与8t sram单元存储的权重进行逐位乘法运算,产生mul[2:0]。
[0025]
所述排序器用于用于对乘法结果进行排序,即将乱序输入mul[2:0]转换成有顺序的输出结果sort[2:0],一共有4种输出结果,分别为:“000”,“001”,“011”,“111”。
[0026]
所述计算电路用于对排序结果进行计算,将顺序序列最终转化为2位的输出结果out[2:0]。
[0027]
in2[0]、in1[0]、in0[0]为3个同一权重位的输入。
[0028]
如图2所示,所述8t sram单元包括:管n1、管n2、管n3、管n4、管n5、管n6、管p1以及管p2。
[0029]
所述管p1的栅极与管n1的栅极连接,所述管p1的源极接vdd,所述管p1的漏极与所述管n1的漏极连接;所述管n1的源极接vss。
[0030]
所述管p2的栅极与所述管n2的栅极连接,所述管p2的源极接vdd,所述管p2的漏极与所述管n2的漏极连接;所述管n2的源极接vss。
[0031]
所述管n3的栅极接字线wl,所述管n3的源极接位线bl,所述管n3的漏极分别与所述管p1和所述管n1的漏极连接。
[0032]
所述管n4的栅极接字线wl,所述管n4的源极接位线blb,所述管n4的漏极分别与所述管p2和所述管n2的漏极连接。
[0033]
所述管n5的栅极分别与所述管p2和所述管n2的漏极连接,所述管n5的源极接vss,所述管n5的漏极与所述管n6的漏极连接。
[0034]
所述管n6的栅极接读字线rwl,所述管n6的源极接读位线rblb。
[0035]
所述管n1、管n2、管n3、管n4、管n5以及管n6均为nmos管。
[0036]
所述管p1以及管p2均为pmos管。
[0037]
管n1、管n2、管n3、管n4和管p1以及管p2组成了一个基本的sram 6t单元,字线wl用于加载写使能信号,位线bl和blb用于加载权重数据。管n5和管n6为读取电路,读字线rwl用于加载读使能信号,在读操作过程中开启,读位线rblb是sram 8t的输出,用于将权重输出。
[0038]
如图3所示,所述排序器包括:反相器i1、反相器i2、反相器i3、三输入与门and1、三输入与门and2、三输入与门and3、三输入与门and4、三输入与门and5、三输入与或门or1、四输入或门or2;反相器i1、反相器i2、反相器i3用于产生反向信号;三输入与门and1用来产生sort[2],三输入与门and2、三输入与门and3、三输入与门and4、三输入与门and5用来与四输入或门or2组合产生sort[1];三输入与或门or1用来产生sort[0]。
[0039]
所述反相器i1的输入端与所述与门and11的输出端连接,所述反相器i1的输出端与所述三输入与门and3的第一输入端连接。
[0040]
所述反相器i2的输入端与所述与门and12的输出端连接,所述反相器i2的输出端与所述三输入与门and4的第一输入端连接。
[0041]
所述反相器i3的输入端与所述与门and13的输出端连接,所述反相器i3的输出端与所述三输入与门and5的第一输入端连接。
[0042]
所述三输入与门and1的输入端和所述三输入与门and2的输入端均与所述与门and11的输出端、所述与门and12的输出端和所述与门and13的输出端连接。
[0043]
所述三输入与门and2的输出端与所述四输入或门or2的第一输入端连接。
[0044]
所述三输入与门and3的第二输入端与所述与门and12的输出端连接,所述三输入与门and3的第三输入端与所述与门and13的输出端连接,所述三输入与门and3的输出端与所述四输入或门or2的第二输入端连接。
[0045]
所述三输入与门and4的第二输入端与所述与门and11的输出端连接,所述三输入与门and4的第三输入端与所述与门and13的输出端连接,所述三输入与门and4的输出端与所述四输入或门or2的第三输入端连接。
[0046]
所述三输入与门and5的第二输入端与所述与门and11的输出端连接,所述三输入与门and5的第三输入端与所述与门and12的输出端连接,所述三输入与门and5的输出端与所述四输入或门or2的第四输入端连接。
[0047]
所述三输入与或门or1的输入端分别与所述与门and11的输出端、所述与门and12的输出端和所述与门and13的输出端连接。
[0048]
由上述可知,反相器i1的输入接mul[2],反相器i2的输入接mul[1],反相器i3的输入接mul[0],三输入与门and1的输入接mul[2]、mul[1]、mul[0],三输入与门and2的输入接mul[2]、mul[1]、mul[0],三输入与门and3的输入接反相器i1的输出、mul[1]、mul[0];三输入与门and4的输入接mul[2]、反相器i2的输出、mul[0];三输入与门and5的输入接mul[2]、mul[1]、反相器i3的输出,三输入与或门or1的输入接mul[2]、mul[1]、mul[0]。
[0049]
如图4所示,所述计算电路包括:反相器i4、反相器i5、反相器i6、三输入与门and6、三输入与门and7以及两输入或门or3。
[0050]
所述反相器i4的输入端与所述三输入与门and1的输出端连接,所述反相器i4的输出端与所述三输入与门and7第一输入端连接。
[0051]
所述反相器i5的输入端与所述四输入或门or2的输出端连接,所述反相器i5的输出端分别与所述三输入与门and7第二输入端和所述反相器i6的输入端连接。
[0052]
所述三输入与门and6的输入端分别与所述三输入与门and1的输出端、所述四输入或门or2的输出端以及所述三输入与或门or1的输出端连接,所述三输入与门and6的输出端和所述三输入与门and7的输出端均与所述两输入或门or3的输入端连接。
[0053]
所述三输入与门and7的第三出入端与所述三输入与或门or1的输出端连接。
[0054]
sort[2]、sort[1]、sort[0]为计算电路的输入,即排序器的输出。
[0055]
out[1]、out[0]为计算电路的输出,即此存内计算单元的输出。
[0056]
所述存内计算装置的操作模式包括:存储模式和计算模式。
[0057]
存储模式:存储模式由8tsram中的n1,n2,n3,n4,p1,p2实现,用一个最基本的6t sram单元完成写入操作。
[0058]
计算模式:计算模式刚开始时,先进行存储模式的操作,将权重数据存储到sram 8t中。在存储模式进行的同时,对rblb进行预充电到vdd。当权重写入到sram后,置rwl信号为1,权重从rblb输出,进入and和输入信号in进行按位乘法运算。乘法结果进入排序器,进行排序。排序器的真值表如表1所示:表1
由此得到的布尔逻辑表达式为:sort[2]=mul[2]
·
mul[1]
·
mul[0];sort[1]= ·
mul[1]
·
mul[0]+ mul[2]
··
mul[0]+ mul[2]
·
mul[1]
·
+ mul[2]
·
mul[1]
·
mul[0];sort[0]= mul[2]+mul[1]+mul[0];其中、、分别为mul[2]、mul[1]、mul[0]的反相信号。
[0059]
排序器的输出结果进入计算电路最终产生输出。计算电路的真值表如表2所示:表2由此得到的布尔逻辑表达式为:out[1]=sort[1];out[0]=
··
sort[0]+ sort[2]
·
sort[1]
·
sort[0];其中、分别表示sort[2]、sort[1]的反相信号。
[0060]
最终计算电路的到的结果out[1:0]即为此存内计算单元的输出结果。
[0061]
本发明支持无符号数的运算,输出结果中0电压代表“0”,vdd代表“1”,使用此装置时,一个时钟周期不同输入的同一权位进入异或门中,一次可输出3个输入与权重的乘加(mac)结果,按位产生两位的输出。由于使用的是纯数字的存内计算单元,因此输出结果保持全精度。
[0062]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0063]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1