1.一种存储运算电路,其特征在于:所述存储运算电路包括两个用于存储数据的存储单元T1和T2,以及两个运算逻辑单元ALU1和ALU2;其中,ALU1和ALU2均包括控制端、第一输入端,第二输入端和输出端;
运算逻辑单元ALU1在控制端接入VSS时为与门,控制端接入VDD时为同或门;运算逻辑单元ALU2在控制端接入VSS时为异或门,控制端接入VDD时为或门;
运算逻辑单元ALU1的第一输入端接在存储单元T1的存储节点上Q1上;运算逻辑单元ALU1的第二输入端接在一条独立的输入信号线IN;运算逻辑单元ALU2的第一输入端接在运算逻辑单元ALU1的输出端Y1上;运算逻辑单元ALU2的第二输入端接在存储单元T2的存储节点Q2上;运算逻辑单元ALU2的输出端为Y2;
ALU1的输出端Y1作为ALU1单独执行“与”/“同或”操作时的运算结果输出端;ALU2的输出端Y2作为ALU2单独执行“或”/“异或”操作时的运算结果输出端,或作为TI、T2、ALU1、ALU2共同执行四种复合布尔逻辑运算时的运算结果输出端,或作为TI、T2、ALU1、ALU2共同实现TCAM寻址操作时的匹配结果输出端。
2.如权利要求1所述的存储运算电路,其特征在于,所述ALU1电路包括两个PMOS管PM3、PM4,以及两个NMOS管NM5、NM6;其中,PM3的源极接控制信号SD1;PM3的栅极、NM5的源极、NM5的栅极相连并接在输入信号线IN上;PM4的栅极、NM5的栅极、NM6的源极相连并接在存储单元T1的存储节点Q1上;PM4的漏极、NM5的漏极、NM6的漏极相连并作为输出节点Y1;PM3的漏极与PM4的源极相连。
3.如权利要求1所述的存储运算电路,其特征在于,所述ALU2的电路包括两个PMOS管PM7、PM8,以及两个NMOS管NM11、NM12;其中,PM7的栅极、PM8的源极、NM11的栅极相连并连接在ALU1的输出节点Y1上;PM8的栅极、PM7的源极、NM12的栅极相连并连接在存储单元T2的存储节点Q2上;PM8的漏极、PM7的漏极、NM11的漏极相连并作为ALU2的输出节点Y2;NM11的源极接NM12的漏极;NM12的源极接控制信号SD2。
4.如权利要求1所述的存储运算电路,其特征在于:所述存储单元T1和T2采用包含6个晶体管的6T存储单元;所述6T存储单元包括2个PMOS管PM1和PM2,以及4个NMOS管NM1、NM2、NM3、NM4;其中,PM1和NM1构成一个反相器结构,PM2和NM2构成另一个反相器结构,NM3和NM4分别作为传输管;PM1和PM2的源极均接VDD,NM1和NM2的源极均接VSS;PM1的漏极、NM1的漏极、PM2的栅极、NM2的栅极相连作为存储节点Q1并接在NM3的漏极上,NM3的栅极接字线WL,NM3的源极接位线BL;PM2的漏极、NM2的漏极、PM1的栅极、NM1的栅极相连作为存储节点QB1并接在NM4的漏极上,NM4的栅极接字线WL,NM4的源极接位线BLB。
5.如权利要求1‑4中任意一项所述的存储运算电路,其特征在于,所述存储运算电路的运算功能如下:所述存储单元T1和运算逻辑单元ALU1作为实现所述存储运算电路中“与”操作和“同或”操作的基础电路使用,其中IN和Q1为两个操作数,Y1为输出的结果;当SD1=VSS时,ALU1实现与操作;当SD1=VDD时,ALU1实现同或操作;
所述存储单元T2和运算逻辑单元ALU2作为实现所述存储运算电路中“或”操作和“异或”操作的基础电路使用,其中Y1和Q2为两个操作数,Y2为输出的结果;当SD2=VSS时,ALU2实现或操作;当SD1=VDD时,ALU2实现异或操作;
所述存储单元T1、T2、运算逻辑单元ALU1、ALU2共同作为实现四种复合布尔逻辑运算的基础电路使用,其中,IN、Q1、Q2为三个操作数,Y2为输出的结果;四种复合布尔逻辑运算的表达式如下:
6.如权利要求1‑4中任意一项所述的存储运算电路,其特征在于:所述存储运算电路实现TCAM寻址操作的方式如下:将包含T1、T2、ALU1、ALU2的存储运算电路的控制信号置为SD1=VSS,SD2=VSS;两个存储单元T1和T2中存储的节点数据Q1和Q2构成的两位二进制数可以用来表征三个状态位;其中,“10”表示TCAM状态1,“11”表示TCAM状态2,“01”表示TCAM状态x;将Q1,Q2表征的两位二进制数作为目标数据,IN表示搜索数据;则Y2输出的值为“1”时,表示目标数据与搜索数据匹配,Y2输出的值为“0”时,表示目标数据与搜索数据不匹配。
7.一种具有TCAM和逻辑运算功能的SRAM存内计算电路,其特征在于,其包括:
2
SRAM存储阵列,其由4N个相同的存储单元构成2N×2N的阵列形式;每个存储单元中包含2个反相的存储节点Q和QB;
逻辑单元阵列,其由与存储单元一一对应的多个运算逻辑单元构成;在所述逻辑单元阵列中,对应奇数列中的存储单元的运算逻辑单元均为运算逻辑单元ALU1,对应偶数列中的存储单元的运算逻辑单元均为运算逻辑单元ALU2;
时序控制电路,其用于产生各个功能模块所需的时钟信号;
输入信号线,其连接在各列的运算逻辑单元ALU1上,用于向各个运算逻辑单元ALU1输入相应的输入信号IN;
位线对,其包括2N对位线BL和BLB;每列中的各个存储单元以及对应的运算逻辑单元ALU1或ALU2均连接在同一组位线BL和BLB上;
预充电电路,其用于对所述SRAM存储阵列中每列存储单元连接的位线BL和BLB进行预充电操作;
字线WL,其用于向SRAM存储阵列中的各个存储单元输入相应的字线信号;
字线驱动模块,其用于控制存储阵列中各存储单元连接的字线WL的开启或关断;
行译码模块,其用于对输入信号进行译码,并根据译码结果控制所述字线驱动模块;
切换电路,其用于切换SRAM存储阵列和逻辑单元阵列在位线上的接入状态,以调整电路的不同工作模式;以及列输出电路,其与所述SRAM存储阵列中每列存储单元连接的位线BL和BLB通过灵敏放大器SA连接,进而输出任意列中存储单元的存储数据或运算逻辑单元的计算结果;
其中,SRAM存储阵列中位于同一行中相邻两列的两个存储单元T1和T2与对应的ALU1、ALU2均构成如权利要求1‑4中任意一项所述的存储运算电路,并可实现该基础电路的完整功能。
8.如权利要求7所述的具有TCAM和逻辑运算功能的SRAM存内计算电路,其特征在于:所述灵敏放大器的数量为4N个,每个列存储单元中BL或BLB分别作为一个灵敏放大器的一路输入,灵敏放大器的另一路输入为参考电平Vref;当BL或BLB的电平高于参考电平Vref,则灵敏放大器输出高电平,否则输出低电平。
9.一种存算芯片,其特征在于:其为权利要求7或8所述的具有TCAM和逻辑运算功能的SRAM存内计算电路封装而成的集成电路。
10.如权利要求9所述的存算芯片,其特征在于,所述存算芯片的接口至少包括:
电源接口VDD,其用于接电源;
地线接口VSS,其用于接地;
充电接口PRE,其用于输入调整各位线充电状态的控制信号;
控制信号接口SD,其用于输入调整各个运算逻辑单元运行状态的控制信号;
输入信号接口IN,其用于向各个运算逻辑单元ALU1输入相应的输入信号;
切换信号SW,其用于向电路输入一个切换信号,所述切换信号用于调整存储单元和预算逻辑单元在位线上的接入状态;进而使得电路在正常读写和存内运算两种工作模式之间进行切换;
字线接口WL,其用于向各个存储单元输入相应的字线信号,所述字线信号用于调整各个存储单元在各条位线上的接入状态;以及输出信号接口Y,其用于读取各存储单元存储的数据或读取各运算逻辑单元的逻辑运算结果。