存储电路、具有BCAM寻址和逻辑运算功能的存内计算电路

文档序号:33496259发布日期:2023-03-17 21:07阅读:134来源:国知局
存储电路、具有BCAM寻址和逻辑运算功能的存内计算电路
存储电路、具有bcam寻址和逻辑运算功能的存内计算电路
技术领域
1.本发明涉及静态随机存储器技术领域,特别是涉及一种存储电路、基于存储电路的具有bcam寻址和逻辑运算功能的存内计算电路,以及以存储电路为基础的存储芯片。


背景技术:

2.为了克服传统冯
·
诺依曼架构带来的计算限制,存内计算(computing in memory,cim)的概念被提出。存内计算不需要频繁地将数据从存储器传输到处理器,直接将运算部分整合到存储阵列内部执行计算,不仅减少了中间数据的传输,还减轻了处理器的运算量;存内计算的另一个显著优势是能够进行多行读取,通过多行读取技术,位线的放电量和存储的数据呈线性关系。用位线电压来完成一些简单的逻辑运算,从而减少对存储器的访问次数,这样在一定程度上减少能量的损耗,增加数据的吞吐量。sram作为被广泛运用在高速缓存领域的存储器,其在芯片的面积和功耗中占用的比重越来越大,对基于sram存内计算的研究也变得尤为重要。
3.传统的6t-sram具有交叉耦合反相器和两个用于读写操作的存取晶体管。在读取操作期间,位线bl和blb被预充电到vdd,并且字线wl被设置为vdd以进行读取。6t-sram的读取路径通过存储节点到地(gnd),这通常导致读取干扰。存内计算的关键技术是多行读取技术,即在读操作时,同时打开多行而不是一行字线;而传统的6t-sram则在一次数据读取的过程中只能读取一行数据。
4.为解决读干扰问题提出了带有读耦合的8t-sram结构,该结构具有读写分离的结构优势,也有使用带读写分离的9t-sram,甚至是10t-sram单元来实现存内计算,相较于传统的6t-sram,这些结构虽然能改善读干扰问题,但面积也相应的增加。


技术实现要素:

5.基于此,有必要针对现有sram单元以牺牲面积来改善读干扰的问题,提供一种存储电路、基于存储电路的具有bcam寻址和逻辑运算功能的存内计算电路,以及以存储电路为基础的存储芯片。
6.为实现上述目的,本发明采用了以下技术方案:
7.一种存储电路,包括nmos管n1~n5以及pmos管p0~p1。其中,n1~n4和p0~p1构成6t-sram单元,n5连接在6t-sram单元任意一个存储节点对应的两个mos管之间,且n5的栅极受控制信号线en控制。存储电路的具体连接方式如下:
8.n1的栅极与n2的漏极、n4的漏极、p1的栅极电连接。n1的漏极与n3的漏极、n5的源极电连接。n1的源极与n2的源极接gnd。p2的栅极与p1的漏极、n2的栅极、n5的漏极电连接。p2的漏极与n1的栅极、n2的漏极、n4的漏极、p1的栅极电连接。p1的源极与p2的源极接vdd。n3的栅极接右字线wlr,n4的栅极接左字线wll,n5的栅极与外部控制信号线en电连接。n3的源极接位线blb,n4的源极接位线bl。
9.其中,p2和n2构成反相器,n3、n4构成存储电路的传输管。存储节点q通过n4与位线
bl相连,存储节点qb通过n5、n3与位线blb相连。
10.进一步的,存储电路实现sram模式包括保持操作、写操作和读操作。存储电路执行保持操作时,控制信号线en保持高电平,左字线wll、右字线wlr保持低电平,p1、p2、n1、n2、n5构成的锁存结构对存储节点q、qb的存储数据进行锁存。存储电路执行写操作时,控制信号线en保持高电平,左字线wll、右字线wlr被拉为高电平,同时将需要写入的数据加载到写位线上。所述存储电路执行读操作时,位线blb预充至高电平,控制信号线en为低电平,左字线wll被拉低,右字线wlr保持高电平,经过灵敏放大器sa读取结果。
11.本发明还涉及一种具有bcam寻址和逻辑运算功能的存内计算电路,其由多个相同的存储单元构成n
×
m的阵列形式。其中,n为存储单元的行数,m为存储单元的列数。每行存储单元共享左字线wll、右字线wlr。每列存储单元共享位线bl、blb。
12.存储单元采用前述的存储电路的电路结构,并实现该电路结构的完整功能。
13.进一步的,所有位线bl、blb与灵敏放大器一一对应连接。每列存储单元中位线bl或blb分别作为一个灵敏放大器的一路输入,灵敏放大器的另一路输入参考电压。当bl或blb的电平高于参考电压,则灵敏放大器输出高电平,否则输出低电平。
14.进一步的,每列存储单元的位线bl、blb通过单端灵敏放大器连接在一个与门上。两个单端灵敏放大器的输出端分别作为一个与门的两路输入。当两个灵敏放大器的输出均为高电平,则与门输出高电平,否则输出低电平。
15.进一步的,存内计算电路执行存内布尔逻辑运算时,位线blb上连接的灵敏放大器输出端作为执行该运算的结果输出端。存内计算电路执行bcam运算时,与门输出端作为执行该运算的结果输出端。存内计算电路执行乘法运算时,位线blb的放电量为乘法运算的结果。进一步的,存内计算电路实现存内布尔逻辑运算的方式如下:将同一列存储单元的左字线wll及控制信号线en保持低电平,将所需参与存内布尔逻辑运算的存储单元的右字线wlr置为高电平,其余字线置为低电平。经灵敏放大器将位线blb上的电压与一个参考电压比较后输出相应的存内布尔逻辑运算结果。
16.进一步的,存内计算电路实现bcam运算的方式如下:将同一列存储单元的控制信号线en保持低电平;将搜索数据对应的电压信号和其相反信号分别通过左字线wll、右字线wlr输入至预存有待查找数据的存储单元;经两个单端灵敏放大器输及一个与门将表征运算结果的位线bl、blb的电压信号输出;与门的输出端输出高电平,表示搜索数据与待查找数据匹配;与门的输出端输出低电平,表示搜索数据与待查找数据不匹配。
17.进一步的,存内计算电路实现乘法运算的方式如下:
18.将同一列存储单元的控制信号线en、左字线wll保持低电平,将被乘数对应的电压信号通过右字线wlr输入至预存有乘数的存储单元,根据位线blb的放电量得到所需乘法结果。
19.本发明还涉及一种存储芯片,其采用前述的存储电路封装而成。存储芯片的引脚包括:
20.接地引脚,其与pmos管p1、p2的源极相连。
21.电源引脚,其与nmos管n1、n2的源极相连。
22.第一引脚,其与nmos管n4的源极相连。
23.第二引脚,其与nmos管n3的源极相连。
24.第三引脚,其与nmos管n4的栅极相连。
25.第四引脚,其与nmos管n3的栅极相连。
26.本发明提供的技术方案,具有如下有益效果:
27.1、本发明设计的存储电路和传统的6t-sram相比,增加了一个晶体管,用于将读端口与存储节点隔离,进而改善了6t结构的读破坏问题。同时相较于传统的读写分离的8t-sram,少了一个晶体管,在面积上占有更大优势。
28.2、本发明设计的阵列分布的存内计算电路可以进行正常的保持、读和写的sram模式,同时还可以进行简单的布尔逻辑运算、bcam寻址运算以及乘法运算,从而满足多种运算需求。
附图说明
29.图1为本发明实施例1的存储电路的电路结构图;
30.图2为本发明实施例2的两行存储单元执行与和与非运算的电路示意图;
31.图3为基于图2的与和与非运算的仿真结果图;
32.图4为本发明实施例2的两行存储单元执行或和或非运算的电路示意图;
33.图5为基于图4的或和或非运算的仿真结果图;
34.图6为本发明实施例2的以4
×
4存储单元为例bcam寻址的电路示意图;
35.图7为基于图6的bcam寻址的仿真结果图;
36.图8为本发明实施例2的执行4bit
×
1bit二进制乘法运算的电路结构图;
37.图9为基于图8的执行4bit
×
1bit二进制乘法运算的仿真结果图;
38.图10为基于图8的4bit
×
1bit二进制乘法运算结果线性度变化图。
具体实施方式
39.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.实施例1
41.请参阅图1,图1示出了本实施例介绍了一种存储电路,包括nmos管n1~n5以及pmos管p0~p1。其中,n1~n4和p0~p1构成6t-sram单元,n5连接在6t-sram单元任意一个存储节点对应的两个mos管之间,且n5的栅极受控制信号线en控制。存储电路的具体连接方式如下:
42.n2的漏极与n1的栅极电连接,n2的源极与n1的源极电连接。n3的栅极与右字线wlr电连接,n3的漏极与n1的漏极电连接,n3的源极与位线blb电连接。n4的栅极与右字线wll电连接,n4的漏极与n2的漏极、n1的栅极电连接,n4的源极与位线bl电连接。n5的栅极与外部控制信号en电连接,n5的漏极与n2的栅极电连接,n5的源极与n1的漏极、n3的漏极电连接。p1的栅极与n1的栅极、n2的漏极、n4的漏极电连接,p1的漏极与n2的栅极、n5的漏极电连接。p2的栅极与n2的栅极、n5的漏极电连接,p2的漏极与n1的栅极、n2的漏极、n4的漏极、p1的栅极电连接p1的源极与p2的源极电连接。
43.电路右半部分的p1的漏极和n1的漏极之间增加了一个nmos晶体管n5,n5的栅极由外部控制信号线en控制,左半部分的p2和n2构成反相器,当n5管导通时,左右两侧对存储节点q、qb存储的数据进行锁存,晶体管p1、p2的源极电连接到vdd,开启存储节点q、qb对电源通路,晶体管n1、n2的源极电连接到gnd,开启存储节点q、qb对地通路。当n5管关断时,晶体管p1和晶体管n1之间断开,此时n1的栅极受q控制,n1的漏极不再直接受qb影响,晶体管n3受字线wlr控制,且晶体管n1与晶体管n3与右位线blb相连接,在晶体管n1和n3都导通时,右位线blb可形成对地通路,通过控制晶体管n1和n3的导通程度可控制右位线blb的放电量,利用此原理可实现不同的计算模式。
44.存储节点q通过晶体管n4与位线bl相连,存储节点qb通过晶体管n5、n3与位线blb相连,n4、n3为传输管位于结构左、右两侧作为两条通路,分别受左字线wll、右字线wlr控制。
45.本实施例的电路是由7个晶体管构成的7t-sram,相较于传统6t-sram,由于将读端口与存储节点相隔离,因此改善了6t结构的读破坏问题。相较于传统的读写分离的8t-sram,少了一个晶体管,在面积上占有更大优势。
46.下面对于本实施例的存储电路在sram模式下的具体操作进行说明。在sram模式下,包括保持操作、写操作和读操作,具体的操作步骤如下:
47.(1)保持模式
48.保持数据期间,外部控制信号线en保持高电平,左字线wll、右字线wlr保持低电平,nmos晶体管n3、n4关断,n5导通。pmos晶体管p1、p2和nmos晶体管n1、n2、n5构成的锁存结构对存储节点q、qb的值进行锁存,位线bl、blb的变化对存储节点q、qb不会造成影响。
49.(2)写操作
50.写操作期间,外部控制信号线en、左字线wll、右字线wlr保持高电平,nmos晶体管n3、n4、n5均导通,将需要写入的数据加载到写位线上。
51.假设在写操作前存储节点q为高电平,qb为低电平,即存储数据为“1”,写入数据“0”时,将需要写入的数据“0”加载到写位线上,即bl为低电平,blb为高电平。bl通过nmos管n2下拉存储节点q,blb通过pmos管p1上拉存储节点qb,锁存结构的反馈机制被打破,数据“0”写入存储电路内。
52.假设在写操作前存储节点q为低电平,qb为高电平,即存储数据为“0”,写入数据“1”时,将需要写入的数据“1”加载到写位线上,即bl为高电平,blb为低电平。bl通过p2上拉存储节点q,blb通过n1下拉存储节点qb,锁存结构的反馈机制被打破,数据“1”写入存储电路内。
53.(3)读操作
54.读操作期间,外部控制信号线en、左字线wll为低电平、右字线wlr为高电平,nmos晶体管n4、n5关断,nmos晶体管n3导通,即进行单边读操作。
55.假设在读操作前存储节点q为高电平,qb为低电平,即存储数据为“1”,在读操作开始时,位线blb被预充到高电平,存储节点q控制n1的栅极,q为高电平时n1导通,位线blb通过nmos管n3、n1放电至低电平,经过灵敏放大器sa完成读“1”的操作。
56.假设存储节点q为低电平,qb为高电平,即存储数据q为“0”时,在读操作开始时,位线blb同样被预充到高电平,存储节点q为低电平,控制nmos晶体管n1关断,位线blb无法放
电,仍保持高电平,经过灵敏放大器sa完成读“0”的操作。
57.基于此,实现sram模式的真值表如下表所示,其中l代表低电平,h代表高电平,read代表读操作,write代表写操作,hold代表保持状态。
58.表1:sram真值表
[0059][0060]
因此本实施例的存储电路不仅通过将读端口和存储节点q之间相间隔,在通过位线读取存储电路内部存储的数据时能够改善读干扰的问题。同时只增加了一个晶体管,和8t-sram、9t-sram、10t-sram相比,在改善读干扰的基础上降低了面积的占用,因此和现有的改善读干扰的结构相比,具有良好的面积优势。
[0061]
实施例2
[0062]
本实施例介绍了一种具有bcam寻址和逻辑运算功能的存内计算电路,其由多个相同的存储单元构成n
×
m的阵列形式;其中,n为存储单元的行数,m为存储单元的列数;每行存储单元共享左字线wll、右字线wlr;每列存储单元共享位线bl、blb;存储单元采用前述的存储电路的电路结构,并实现该电路结构的完整功能。
[0063]
灵敏放大器的数量与位线的数量相同,每列存储单元中位线bl或blb分别作为一个灵敏放大器的一路输入,灵敏放大器的另一路输入参考电压;当bl或blb的电平高于参考电压,则灵敏放大器输出高电平,否则输出低电平。与门的数量为存储单元列数的一半,每列存储单元中两个灵敏放大器的输出端分别作为一个与门的两路输入;当两个灵敏放大器的输出均为高电平,则与门输出高电平,否则输出低电平。
[0064]
基于前述电路,本实施例不仅能够实现sram模式功能,同时基于不同列与行之间的相互配合,还可实现存内布尔逻辑运算、bcam寻址以及乘法运算。下面针对这几种运算的实现方式进行详细说明。
[0065]
一、存内布尔逻辑运算
[0066]
执行存内布尔逻辑运算时,同一列存储单元的左字线wll及控制信号线en保持低电平,将所需参与存内布尔逻辑运算的存储单元的右字线wlr置为高电平,其余字线置为低电平;经灵敏放大器sa将位线blb上的电压与一个参考电压比较后输出相应的存内布尔逻辑运算结果。
[0067]
如图2所示,以两个1bit存储数据的逻辑与和与非为例介绍同一列中两行之间存储数据实现与和与非功能。
[0068]
两个存储单元的左字线wll和外部控制信号线en始终处于低电位,因此nmos晶体管n4、n5始终处于关断状态,将两行的存储单元分别标记为a和b,第a行字线记为wll0和wlr0,第b行字线记为wll1和wlr1,a和b共享位线bl、blb。右字线wlr是否开启决定该行是否参与运算,并为其配制一个灵敏放大器sa,sa的另一端接参考电压vref1,灵敏放大器将位线blb的电压与参考电压vref1比较,进而输出a和b的逻辑与和与非的运算结果。
[0069]
位线blb预充至高电平,同时开启两个单元的右字线wlr0和wlr1,即wlr0和wlr1为高电平。当单元内存储数据为“1”,也就是q为高电平,qb为低电平时,位线blb与gnd之间形成对地通路,blb上的电荷向gnd流动,此时位线blb进行放电,a或b存储数据为1时位线blb的放电速度一致,a和b的存储数据均为1时blb的放电速度更快,利用相同时间内两个单元存储数据均为“1”和只有一个单元存储数据为“1”时位线放电速度不同,设置灵敏放大器sa的参考电压vref1,即灵敏放大器sa的参考电压vref1位于相同时间内两个单元放电后的位线电压和一个单元放电后的位线电压之间,若vblb》vref1,则a、b至少有一个存储数据为“0”或者两个均为“0”。若vblb《vref1,则a和b存储的数据均为“1”。
[0070]
由于与操作的原理是只有在两个操作数均为高电平时才会输出高电平,与非操作是只有两个操作数均为高电平时才会输出低电平。因此本实施例进行仿真实验,由图3仿真结果可以看出,当且仅当上下两个单元都放电时灵敏放大器的输出为“0”,其余情况下输出为“1”,输出a和b与非运算结果,灵敏放大器sa另一端输出与此端输出相反,输出a和b相与运算结果。多行之间的与和与非运算的原理和两行之间的运算原理相同。
[0071]
如图4所示,以两个1bit存储数据的逻辑或和或非为例介绍同一列两行之间存储数据实现或和或非功能。
[0072]
a和b进行和或非运算的设置条件与进行与和与非运算设置的条件相同,区别在于a和b执行或和或非运算时sa的一端接位线blb,另一端接参考电压vref2,sa将位线blb的电压与参考电压vref2比较,输出a和b的逻辑或和或非运算的结果。
[0073]
先将位线blb预充至高电平,同时开启两个单元的右字线wlr0和wlr1,当单元内任一或全部存储数据为“1”,即q为1,qb为0时,位线blb与gnd之间形成对地通路,位线blb上的电荷向gnd处流动,位线blb进行放电。利用第a行和第b行的存储数据均为低电平时位线blb不放电和a或b中有一个存储数据为高电平时位线blb放电的原理进行判断。sa的参考电压vref2位于位线电压不放电和一个单元放电后的位线电压之间。若vblb》vref2,则a和b存储的数据均为“0”;若vblb《vref2,则a或b中至少有一个存储的数据为“1”或者两个均为“1”。
[0074]
由于或操作的原理是只有两个操作数均为低电平时才会输出低电平,或非的原理是只有两个操作数为低电平,才会输出高电平,因此本实施例进行仿真实验,由图5仿真结果可以看出,只有当两个单元的存储数据都为“0”时,即两个单元中右位线blb都不对地进行放电时,blb保持高电平,sa的输出结果为“1”,任何一个单元存储数据“1”,即任何一个单元中右位线blb对地放电时,sa的输出结果为“0”,此时的sa的参考电压vref2位于位线电压不放电和一个单元放电后的位线电压之间,则灵敏放大器sa的一端输出a和b的或非运算结果,另一端输出与之相反,输出a和b相或运算结果。多行之间的或和或非运算的原理和两行之间的运算原理相同。
[0075]
基于此,本实施例的存内计算电路可以实现逻辑运算与和与非操作、或和或非操作;需要强调的是,灵敏放大器的两个输出端输出的是相反的结果,与位线blb相连的输入端同一侧的输出端输出与非或者或非的结果,与参考电压相连的输入端同一侧的输出端输出与或者或的结果。
[0076]
实现布尔逻辑运算中同一列两行之间逻辑与和与非、或和或非模式的真值表如下表所示,其中a代表第a行的存储数据,b代表第b行的存储数据,l代表低电平,h代表高电平。
[0077]
表2:存内布尔逻辑运算真值表
[0078][0079]
二、bcam寻址运算
[0080]
将同一列存储单元的控制信号线en保持低电平;将搜索数据对应的电压信号和其相反信号分别通过左字线wll、右字线wlr输入至预存有待查找数据的存储单元;其匹配与否结果通过两个单端灵敏放大器sa和一个与门输出表示。与门的输出端输出高电平,表示匹配;与门的输出端输出低电平,表示不匹配。
[0081]
如图6所示,在bcam运算模式下,外部控制信号线en始终为低电平,即nmos晶体管n5处于关断状态,待查找的二进制数据存储于存储单元内部q节点,搜索线为左字线wll,左字线wll为搜索数据的二进制数据所对应的高电平或低电平,右字线wlr为搜索数据的二进制数据的反码所对应的高电平或低电平,数据为“1”时对应的字线置于高电平,数据为“0”时对应的字线置于低电平,左右位线bl、blb下端各接入一个灵敏放大器sa,两个sa的输出接入到一个与门,与门的输出结果表明是否匹配。在数据查找之前,存储单元存入待查的二进制数据,左右位线bl、blb预充到高电平,左右字线分别根据搜索数据置高电平或低电平,之后根据待查找数据与搜索数据是否匹配控制位线是否放电,相匹配时不进行放电,反之则放电,只有当该列左右位线均不放电时,灵敏放大器sa的输出为高电平,通过与门后输出为高电平,表示匹配,反之,与门输出为低电平,表示不匹配。
[0082]
下面分析数据比较过程,当搜索数据为“0”时,左字线wll为低电平,nmos晶体管n4关断,bl无法进行放电,保持高电平,此时右字线wlr为高电平,nmos晶体管n3导通,假设存储节点q为“0”,作用于nmos晶体管n1的栅极控制n1关断,blb放电路径被夹断,blb不进行放电,则表明此时位线bl、blb都不进行放电,此单元数据匹配;假设存储节点q为“1”,作用于nmos晶体管n1的栅极控制n1导通,blb放电,则此时位线bl不进行放电,位线blb进行放电,此单元数据不匹配。同理,当搜索数据为“1”时,右字线wlr为低电平,nmos晶体管n3关断,blb无法进行放电,保持高电平,此时左字线wll为高电平,nmos晶体管n3导通,假设存储节点q为“0”,存储节点qb为“1”,作用于n2的栅极控制nmos晶体管n2导通,bl进行放电,则此时位线blb不进行放电,位线bl进行放电,此单元数据不匹配,假设存储节点q为“1”,存储节点qb为“0”,作用于n2的栅极控制nmos晶体管n2关断,bl不进行放电,则此时位线bl、blb均不进行放电,此单元数据匹配。
[0083]
结合图6,以4
×
4个存储单元进行bcam运算为例,第一行至第四行的四对字线分别记为wll0、wlr0;wll1、wlr1;wll2、wlr2;wll3、wlr3,第一列至第四列的四对位线分别记为bl0、blb0;bl1、blb1;bl2、blb2;bl3、blb3。为了更加清晰地展现出本发明所提供的技术方案及其产生的技术效果,以四位二进制数据“0011”进行列搜索为例,即搜索的数据为“0011”,“0”为低电平,“1”为高电平。因此左字线wll0、wll1、wll2、wll3分别置于低电平、低电平、高电平、高电平,右字线wlr0、wlr1、wlr2、wlr3分别置于高电平、高电平、低电平、低电平。阵列一共有四列,从左到右每一列存储的数据依次为“0111”、“0011”、“1011”、“1101”。
[0084]
根据上述分析可知,第一列存储的数据为“0111”,虽然第二行存储数据为“1”,但由于左字线wll1为低电平,处于关断状态,因此左位线bl0不放电,sa输出“1”,但右字线wlr1与左字线wll1状态相反,因此右字线wlr1为高电平,传输管n3导通,此时blb0放电,sa输出“0”,两个sa的结果经与门输出后为“0”,因此第一列存储数据与搜索数据不匹配。
[0085]
第二列存储的数据为“0011”,此时位线bl1、blb1均不放电,两个sa输出均为“1”,经与门输出“1”,因此第二列与搜索数据匹配。
[0086]
第三列存储的数据为“1011”,虽然第一行存储的数据“1”与搜索数据不匹配,但由于左字线wll0为低电平,处于关断状态,因此左位线bl2不放电,sa输出“1”,但右字线wlr0与左字线wll0状态相反,此时wlr0为高电平,传输管n3导通,右位线blb2放电,sa输出“0”,两个sa的结果经与门输出后为“0”,因此第三列存储数据与搜索数据不匹配。
[0087]
第四列存储的数据为“1101”,第一行、第二行以及第三行存储的数据与搜索数据均不相同,但由于第一行、第二行的左字线wll0、wll1为低电平,传输管n4未导通,不影响左位线bl3,第三行左字线wll2为高电平,传输管n4导通,bl3放电,sa输出“0”,右字线wlr0、wlr1、wlr2与左字线wll0、wll1、wll2相反,第一行和第二行的传输管n4导通,右位线blb3放电,sa输出“0”,两个sa的结果经与门输出后为“0”,因此第四列存储数据与搜索数据不匹配。
[0088]
最终可知晓只有第二列与搜索数据匹配。如图7中bcam的仿真结果可知,当一列的四个单元数据均匹配时,左右位线bl、blb均不进行放电从而保持高电平,则bl和blb经过两个灵敏放大器和一个与门后输出高电平,表示搜索数据与待查找数据匹配;反之,当一列的四个单元中存在数据不匹配的单元时,左右位线bl、blb定会存在其中的一条位线放电,则bl和blb经过两个灵敏放大器和一个与门后输出低电平,表示搜索数据与待查找数据不匹配。
[0089]
三、乘法运算
[0090]
左字线wll和外部控制信号en保持低电平,被乘数通过工作在右字线wlr上的不同电压表示,乘数存储于存储单元内部,其乘法输出结果通过右位线blb上的放电量来表示。每个存储单元在每个计算阶段完成2bit
×
1bit乘法,2bit被乘数作用于右字线wlr,通过将被乘数转化为字线电压来实现,乘数作用于存储单元内部。
[0091]
请参阅图8,以实现4bit
×
1bit二进制乘法为例来说明本实施例实现该功能的方式。要实现4bit
×
1bit二进制乘法运算,只需两个实现2bit
×
1bit二进制乘法运算的单元通过一条位线放电。
[0092]
首先,设定为单个存储单元能够实现2bit被乘数与1bit乘数的二进制乘法,2bit被乘数即“00”、“01”、“10”、“11”,分别对应于四个wlr的电压0、v
wlr1
、v
wlr2
、v
wlr3
,右字线的不同电压作用于nmos晶体管n3的栅极,相同时间下,不同的栅压控制nmos的导通程度不同,流经的电流也不同,以此来区分不同加权的被乘数,二进制乘数为“0”和“1”,存储于存储单元内部节点q中。首先对位线blb进行预充,当二进制乘数为“0”时,无论晶体管n3的栅压为多少,位线blb上的放电量始终为零,当二进制乘数为“1”时,控制nmos晶体管n1导通,此时位线blb的放电量取决于控制晶体管n3的栅压大小,以此达到区分2bit
×
1bit二进制乘法运算结果的目的。
[0093]
实现2bit
×
1bit二进制乘法运算的真值表如下表所示,其中x代表任意2bit数据
及其对应的字线电压。
[0094]
表3:2bit
×
1bit二进制乘法运算结果真值表
[0095][0096]
两个实现2bit
×
1bit二进制乘法运算的单元通过一条位线放电实现4bit
×
1bit二进制乘法运算,高2bit与低2bit的区分可通过晶体管尺寸加权技术、电容阵列加权技术、脉冲个数/高度/宽度加权技术等技术来实现。在本阐述中,选择采用脉冲宽度调制技术来举例,其他技术与脉冲宽度调制技术操作方式类似,将位线blb预充到高电平,根据不同的被乘数与乘数得到不同的加权电流。
[0097]
实现4bit
×
1bit二进制乘法运算的真值表如下表所示,其中x代表任意4bit数据。
[0098]
表4:4bit
×
1bit二进制乘法运算结果真值表
[0099][0100]
图9为4bit
×
1bit二进制乘法运算结果的示意图,在位线blb上外接计算电容,将加权电流转化为加权电压,通过adc进行模数转换,进而得到表征4bit
×
1bit二进制乘法运算结果的二进制数。因此本实施例的存内计算电路在执行乘法运算时可以得到4bit
×
1bit二进制乘法运算的16个乘法结果。
[0101]
本发明实现区分乘法结果的方式是通过位线不同放电量来判别,位线不同放电量之间的线性度好坏可以通过位线电压变化量和积分非线性度(inl:integral nonlinearity)来衡量,图10为测得的inl值,由图9可知,线性度在乘法结果为9时最差,此时inl值为0.62lsb,但inl值依旧较小,线性度较好。因此本实施例能够有效实现4bit
×
1bit二进制乘法运算。
[0102]
综上,本实施例的存内计算电路不仅具有实施例1相同的效果,同时在实施例1的基础上构成的阵列中,可以进行全阵列的运算。此外还可以进行简单的布尔逻辑运算,bcam寻址运算以及4bit
×
1bit二进制乘法运算方式,满足多种方式的运算。
[0103]
实施例3
[0104]
本实施例介绍了一种存储芯片,采用前述的存储电路封装而成。存储芯片的引脚包括:接地引脚,其与pmos管p1、p2的源极相连;电源引脚,其与nmos管n1、n2的源极相连;第一引脚,其与nmos管n4的源极相连;第二引脚,其与nmos管n3的源极相连;第三引脚,其与
nmos管n4的栅极相连;第四引脚,其与nmos管n3的栅极相连。
[0105]
将存储电路封装成芯片的模式,更易于本领域技术人员的使用,也利于存储电路的推广和使用。
[0106]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0107]
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1