一种基于SRAM的存算一体电路单元

文档序号:32337810发布日期:2022-11-26 08:39阅读:73来源:国知局
一种基于SRAM的存算一体电路单元
一种基于sram的存算一体电路单元
技术领域
1.本发明涉及存算一体电路技术领域,具体为一种基于sram的存算一体电路单元。


背景技术:

2.随着人工智能的发展,我们正在步入大数据时代。在社交、医疗、交通等领域均有海量数据进行处理,对高吞吐量和高能效计算的需求也越来越大。然而由于当前主流计算机系统采用冯诺依曼架构将计算模块与存储模块分开,造成了存储墙效应和带宽墙效应,严重影响了数据吞吐量和计算高效性。存算一体架构因其有望突破冯诺依曼架构带来的问题成为了研究的焦点。
3.目前,研究者已经提出不同结构的存算一体架构,并证明基于sram单元的存算一体架构在对海量数据进行处理的时候能够带来显著的能效提高,同时在神经网络、加密等领域取得了广泛的应用。传统的基于sarm的存算一体电路单元在运行单比特神经网络的单比特乘加运算时存在读破坏的问题,在进行乘加运算的时候经常需要同时开启位线,当位线被同时开启时,存储节点通过位线直接相连容易造成内存的数据翻转,从而导致最后运算结果出错。为此我们提出一种基于sram的存算一体电路单元用于解决上述问题。


技术实现要素:

4.本发明的目的在于提供一种基于sram的存算一体电路单元,以解决上述背景技术中提出的问题。
5.为实现上述目的,本发明提供如下技术方案:一种基于sram的存算一体电路单元,包括一个6管sram和6个pmos组成的计算部分,其特征在于:
6.所述的一个6管sram,包括nmos晶体管n1、nmos晶体管n2、nmos晶体管n3、nmos晶体管n4、pmos晶体管p1、pmos晶体管p2;
7.所述的6个pmos组成的计算部分,包括pmos晶体管p3、pmos晶体管p4、pmos晶体管p5、pmos晶体管p6、pmos晶体管p7、pmos晶体管p8;
8.其中:
9.pmos晶体管p1和nmos晶体管n3构成第一个反相器,pmos晶体管p2和nmos晶体管n4构成第二个反相器,这两个反相器交叉耦合构成一个锁存器;
10.pmos晶体管p1的漏极与nmos晶体管n3的漏极电连接于存储节点q,pmos晶体管p2的漏极与nmos晶体管n4的漏极电连接于存储节点qb;
11.pmos晶体管p1的源极与pmos晶体管p2的源极电连接于电源。nmos晶体管n3的源极与nmos晶体管n4的源极电连接于地;
12.nmos晶体管n1的源极与左列位线bl电连接,nmos晶体管n1的栅极与字线wl电连接,nmos晶体管n1的漏极与nmos晶体管n3的漏极电连接;
13.nmos晶体管n2的源极与右列位线blb电连接,nmos晶体管n2的栅极与字线wl电连接,nmos晶体管n2的漏极与nmos晶体管n4的漏极电连接;
14.pmos晶体管p3的源极与pmos晶体管p4的源极电连接于节点r,pmos晶体管p3的栅极与nmos晶体管n1的漏极电连接,pmos晶体管p3的漏极与线rbl电连接,pmos晶体管p4的栅极与nmos晶体管n2的漏极电连接,pmos晶体管p4的漏极与线rblb电连接;
15.pmos晶体管p5的源极与pmos晶体管p6的源极电连接于节点rb,pmos晶体管p5的栅极与pmos晶体管p4的栅极电连接,pmos晶体管p5的漏极与线rbl电连接,pmos晶体管p6的栅极与pmos晶体管p3的栅极电连接,pmos晶体管p6的漏极与线rblb电连接;
16.pmos晶体管p7的源极与电源电连接,pmos晶体管p7的栅极与线il电连接,pmos晶体管p7的漏极与节点r电连接;
17.pmos晶体管p8的源极与电源电连接,pmos晶体管p8的栅极与线ilb电连接,pmos晶体管p8的漏极与节点rb电连接;
18.线bl和线blb用来读写所述的标准的6管sram的数据。线wl用来控制所述的标准的6管sram单元的读写使能。
19.当节点q点为高电平并且节点qb为低电平时,代表标准的6管sram存储的权重为“1”。当节点q点为低电平并且节点qb为高电平时,代表标准的6管sram存储的权重为
“‑
1”。
20.在进行乘加运算时,线il上的和线ilb上的信号是一对相反的信号。当线il的信号为高电平,线ilb的信号为低电平时,代表乘数“1”。当线il的信号为低电平,线ilb的信号为高电平时,代表乘数
“‑
1”。
21.在进行乘加运算时,线rbl和线rblb用来读出乘加结果。线rbl和线rblb一般需要用合适的nmos管或电阻进行下拉。线rbl上的电压和线rblb的电压代表乘加结果,可用灵敏放大器或动态比较器读出。运算完成时,当线rbl的电压大于线rblb的电压时,代表乘加结果为“1”。运算完成时,当线rblb的电压大于线rbl的电压时,代表乘加结果为
“‑
1”。
22.在不进行乘加运算时,线il上的信号和线ilb上的信号应为高电平,以关闭pmos管p7和pmos管p8,从而降低功耗。
23.相对于现有技术,本发明依照以上技术方案实现的一种基于sram的存算一体电路单元避免了传统的存算一体电路单元在进行乘加运算时造成内存数据翻转的问题,具有精度高、稳定性好、功耗低、速度快等特点,高效地执行人工智能算法。
附图说明
24.图1为本发明一种基于sram的存算一体电路单元示意图;
25.图2为本发明一种基于sram的存算一体电路阵列装置结构示意图;
具体实施方式
26.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.实施例1
28.如图1所示,本发明公开一种基于sram的存算一体电路单元。所述的一种基于sram的存算一体电路单元包括一个标准的6管sram和额外的6个pmos组成的计算部分。存储数据
和读写数据由所述的一个标准的6管sram来完成。乘加运算主要由所述的额外的6个pmos组成的计算部分来完成。
29.nmos晶体管n1、nmos晶体管n2、nmos晶体管n3、nmos晶体管n4、pmos晶体管p1、pmos晶体管p2组成所述的一个标准的6管sram。pmos晶体管p3、pmos晶体管p4、pmos晶体管p5、pmos晶体管p6、pmos晶体管p7、pmos晶体管p8组成所述的额外的6个pmos组成的计算部分。
30.pmos晶体管p1的源极与pmos晶体管p2的源极电连接于电源。nmos晶体管n3的源极与nmos晶体管n4的源极电连接于地。
31.pmos晶体管p1的漏极、nmos晶体管n3的漏极、nmos晶体管n1的漏极、pmos晶体管p2的栅极、nmos晶体管n4的栅极、pmos晶体管p3的栅极、pmos晶体管p6的栅极相互电连接。pmos晶体管p2的漏极、nmos晶体管n4的漏极、nmos晶体管n2的漏极、pmos晶体管p1的栅极、nmos晶体管n3的栅极、pmos晶体管p4的栅极、pmos晶体管p5的栅极相互电连接。
32.nmos晶体管n1的源极与左列位线bl电连接,nmos晶体管n2的源极与右列位线blb电连接。nmos晶体管n1的栅极nmos晶体管n2的栅极与字线wl电连接。
33.pmos晶体管p3的漏极、pmos晶体管p5的漏极与线rbl电连接,pmos晶体管p4的漏极、pmos晶体管p6的漏极与线rblb电连接。
34.pmos晶体管p3的源极、pmos晶体管p4的源极、pmos晶体管p7的漏极电连接于节点r。pmos晶体管p5的源极、pmos晶体管p6的源极、pmos晶体管p8的漏极电连接于节点rb。
35.pmos晶体管p7的源极、pmos晶体管p8的源极与电源电连接。pmos晶体管p7的栅极与线il电连接,pmos晶体管p8的栅极与线ilb电连接。
36.线wl用来控制所述的sram单元的读写使能。线bl和线blb用来读写标准的6管sram的数据。
37.当节点q点为高电平并且节点qb为低电平时,存储的权重为“1”。当节点q点为低电平并且节点qb为高电平时,存储的权重为
“‑
1”。
38.在进行乘加运算时,线il上的信号和线ilb上的信号是相反的。当输入的乘数为“1”时,线il的信号为高电平,线ilb的信号为低电平。当输入的乘数为
“‑
1”时,线il的信号为低电平,线ilb的信号为高电平。
39.当运算结果为“1”时,线rbl被上拉。当运算结果为
“‑
1”时,线rblb被上拉。当输入的乘数为“1”且存储权重为“1”为时,pmos晶体管p5、pmos晶体管p8导通,线rbl被上拉。当输入的乘数为“1”且存储权重为
“‑
1”为时,pmos晶体管p6、pmos晶体管p8导通,线rblb被上拉。当输入的乘数为
“‑
1”且存储权重为“1”为时,pmos晶体管p4、pmos晶体管p7导通,线rblb被上拉。当输入的乘数为
“‑
1”且存储权重为
“‑
1”为时,pmos晶体管p3、pmos晶体管p7导通,线rbl被上拉。
40.在不进行乘加运算时,为了降低功耗,线il上的信号和线ilb上的信号应为高电平,从而关闭pmos管p7和pmos管p8。
41.实施例2
42.如图2所示,本发明还提供一种适用于单比特神经网络的存算一体装置。所述装置包括六个实施例1所述的一种基于sram的存算一体电路单元组成的3行2列的阵列,四个下拉电阻,两个用于读取运算结果的灵敏放大器。
43.所述的六个实施例1所述的一种基于sram的存算一体电路单元组成的3行2列的阵
列,包括单元d《1》、单元d《2》、单元d《3》、单元d《4》、单元d《5》、单元d《6》。
44.线bl《1》、线bl《2》对应实施例1所述的一种基于sram的存算一体电路单元的线bl。线blb《1》、线blb《2》对应实施例1所述的一种基于sram的存算一体电路单元的线blb。线rbl《1》、线rbl《2》对应实施例1所述的一种基于sram的存算一体电路单元的线rbl。线rblb《1》、线rblb《2》对应实施例1所述的一种基于sram的存算一体电路单元的线rblb。线wl《1》、线wl《2》、线wl《3》对应实施例1所述的一种基于sram的存算一体电路单元的线wl。线il《1》、线il《2》、线il《3》对应实施例1所述的一种基于sram的存算一体电路单元的线il。线ilb《1》、线ilb《2》、线ilb《3》对应实施例1所述的一种基于sram的存算一体电路单元的线ilb。
45.单元d《1》、单元d《3》、单元d《5》共用线bl《1》、线blb《1》、线rbl《1》、线rblb《1》。单元d《2》、单元d《4》、单元d《6》共用线bl《2》、线blb《2》、线rbl《2》、线rblb《2》。单元d《1》、单元d《2》共用线il《1》、线ilb《1》、线wl《1》。单元d《3》、单元d《4》共用线il《2》、线ilb《2》、线wl《2》。单元d《5》、单元d《6》共用线il《3》、线ilb《3》、线wl《3》。
46.单元d《1》、单元d《3》、单元d《5》组成所述的六个实施例1所述的一种基于sram的存算一体电路单元组成的3行2列的阵列的第一列。单元d《2》、单元d《4》、单元d《6》组成所述的六个实施例1所述的一种基于sram的存算一体电路单元组成的3行2列的阵列的第二列。
47.线wl《1》、线wl《2》、线wl《3》用来控制所述的存算一体电路单元的读写使能。线bl《1》、线blb《1》、线bl《2》、线blb《2》用来读写所述的存算一体电路单元存储的权重。线il《1》、线ilb《1》、线il《2》、线ilb《2》、线il《3》、线ilb《3》用来输入信号。当线il《1》上的电压信号为高电平、线ilb《1》上的电压信号为低电平,代表第一行的输入信号为“1”。当线il《1》上的电压信号为低电平、线ilb《1》上的电压信号为高电平,代表第一行的输入信号为
“‑
1”。当线il《2》上的电压信号为高电平、线ilb《2》上的电压信号为低电平,代表第二行的输入信号为“1”。当线il《2》上的电压信号为低电平、线ilb《2》上的电压信号为高电平,代表第二行的输入信号为
“‑
1”。当线il《3》上的电压信号为高电平、线ilb《3》上的电压信号为低电平,代表第三行的输入信号为“1”,当线il《3》上的电压信号为低电平、线ilb《3》上的电压信号为高电平,代表第三行的输入信号为
“‑
1”。
48.当单元d《1》的运算结果为“1”时,单元d《1》将线rbl《1》上的电压上拉,当单元d《1》的运算结果为
“‑
1”时,单元d《1》将线rblb《1》上的电压上拉。当单元d《2》的运算结果为“1”时,单元d《2》将线rbl《2》上的电压上拉,当单元d《2》的运算结果为
“‑
1”时,单元d《2》将线rblb《2》上的电压上拉。当单元d《3》的运算结果为“1”时,单元d《3》将线rbl《1》上的电压上拉,当单元d《3》的运算结果为
“‑
1”时,单元d《3》将线rblb《1》上的电压上拉。当单元d《4》的运算结果为“1”时,单元d《4》将线rbl《2》上的电压上拉,当单元d《4》的运算结果为
“‑
1”时,单元d《4》将线rblb《2》上的电压上拉。当单元d《5》的运算结果为“1”时,单元d《5》将线rbl《1》上的电压上拉,当单元d《5》的运算结果为
“‑
1”时,单元d《5》将线rblb《1》上的电压上拉。当单元d《6》的运算结果为“1”时,单元d《6》将线rbl《2》上的电压上拉,当单元d《6》的运算结果为
“‑
1”时,单元d《6》将线rblb《2》上的电压上拉。
49.所述的四个下拉电阻,包括电阻r《1》、电阻r《2》、电阻r《3》、电阻r《4》。下拉电阻r《1》将线rbl《1》下拉,下拉电阻r《2》将线rblb《1》下拉,下拉电阻r《3》将线rbl《2》下拉,下拉电阻r《4》将线rblb《2》下拉。
50.所述的两个灵敏放大器,其输出分别为线out《1》上的电压信号、线out《2》上的电
压信号。输出out《1》的结果由灵敏放大器比较线rbl《1》上的电压与线rblb《1》上的电压得到。当线rbl《1》上的电压大于线rblb《1》的电压时,线out《1》上的电压信号为高电平,代表阵列第一列的输出结果“1”。当线rblb《1》上的电压大于线rbl《1》的电压时,线out《1》上的电压信号为低电平,代表阵列第一列的输出结果
“‑
1”。输出out《2》的结果由灵敏放大器比较线rbl《2》上的电压与线rblb《2》上的电压得到。当线rbl《2》上的电压大于线rblb《2》的电压时,线out《2》上的电压信号为高电平,代表阵列第二列的输出结果“1”。当线rblb《2》上的电压大于线rbl《2》的电压时,线out《2》上的电压信号为低电平,代表阵列第二列的输出结果
“‑
1”。
51.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1