一种存内多比特加法器和存内运算方法

未命名 07-23 阅读:158 评论:0


1.本发明属于非易失性存储器设计技术领域,尤其涉及一种存内多比特加法器和存内运算方法。


背景技术:

2.存储技术广泛被应用于存内运算中。其中非易失性存储器相较于易失性存储器,具有以下优势:1、非易失性,断电后数据不会丢失;2、读写速度快;3、静态功耗低等。因此非易失性存储器在存内计算领域得到广泛的应用。
3.非易失性存储技术中的磁随机存储技术(magnetic random access memory,mram)在存内运算中应用比较广泛。其中主要分为两种:自旋转移力矩磁随机存储技术(spin-transfer torque magnetic random access memory,stt-mram)和自旋轨道力矩磁随机存储技术(spin-orbit torque magnetic random access memory,sot-mram)。最新的单极性翻转自旋轨道力矩磁随机存储技术(unipolar switching spin-orbit torque magnetic random access memory,us-sot-mram)相比于传统的sot-mram和stt-mram具有以下的优势:1、翻转速度快,翻转时间在亚纳秒级别;2、写1和写0的转换电流对称,不存在源极褪化效应;3、氧化层仅在读操作中有电流流过,写过程中不会发生氧化层穿透;4、通过调整场力矩和阻尼力矩比值来实现无外磁场辅助翻转,降低实现复杂性。
4.对于多比特加法的实现,目前的理论算法,包括行波进位、超前进位、并行前缀等,并未从存内计算角度进行考虑。如何在存储阵列内实习高并行度操作和快速可靠的列间操作的同时保持存储阵列结构的完整性以及降低外围电路和阵列单元开销仍然是大部分基于各种非易失器件实现存内多比特加法没有考虑的地方。
5.对于us-sot-mram器件本身,由于自由层磁化强度的翻转过程由磁各向异性场,damping-torque和fieldlike-torque决定,通过设置fieldlike-torque的权重系数是damping-torque的3.5倍实现无外磁场辅助的单极性翻转。在该设置下,最终自由层磁化强度的平衡状态主要受垂直方向的磁各向异性场和水平方向的fieldlike-torque决定。因此最终翻转平衡位置不会在完全的垂直方向上,而是存在一定夹角。翻转平衡状态需要在翻转结束后经过一段松弛时间(仅存在垂直的磁各向异性场作用)才能使自由层磁化强度拉至垂直方向,使mtj阻值达到完全的平行/反平行状态。该松弛时间如果发生在多比特加法操作的两个步骤间,极大的增加整个运算逻辑所需要的时间,这将会使其与其他非易失存储技术实现的存内运算在速度上有较大差距。因此,如何针对自由层磁化翻转的松弛时间优化,是一个非常关键的问题。


技术实现要素:

6.本发明针对现有技术中的不足,提供一种存内多比特加法器和存内运算方法。
7.第一方面本发明提供一种存内多比特加法器,包括多个非易失存储阵列;相邻两个非易失存储阵列通过列间传递模块连接;每个非易失存储阵列包括预充电放大读取模块
pcsa、写驱动电路模块wr、第一三端器件mtj和第二三端器件mtj;
8.第一三端器件mtja0的上端连接有第一读控制晶体管的漏极,右端连接有第一写控制晶体管的漏极,左端连接有第二三端器件mtj b0的左端和第一列选晶体管的源极;第二三端器件mtj的上端连接有第二读控制晶体管的漏极,右端连接有第二写控制晶体管的漏极;
9.第一读控制晶体管的源极作为预充电放大读取模块pcsa的输入端,并连接第二读控制晶体管的源极;预充电放大读取模块pcsa设有输出端vout和输出端!vout;输出端vout连接有第一nmos晶体管的栅极;第一nmos晶体管的源极接入0v控制信号,漏极连接有第二nmos晶体管的源极、第一pmos晶体管的漏极、第二列选晶体管的栅极和第二pmos晶体管的栅极;第一写控制晶体管的源极连接有第二写控制晶体管的源极、第二列选晶体管的源极和第二pmos晶体管的漏极;第二pmos晶体管的源极、第一读控制晶体管和第二读控制晶体管的源极连接写驱动电路模块wr;第二列选晶体管的漏极、第一列选晶体管的漏极和第二nmos晶体管的漏极均连接gnd;第一pmos晶体管的源极连接vdd。
10.进一步地,所述列间传递模块包括第三pmos晶体管和第三nmos晶体管;第三pmos晶体管的源极连接第三nmos晶体管的源极后,作为列间传递模块的源极;第三pmos晶体管的漏极连接第三nmos晶体管的漏极后,作为列间传递模块的漏极;列间传递模块的源极连接一个非易失存储阵列中第一nmos晶体管的漏极,漏极连接另一个非易失存储阵列中第一nmos晶体管的漏极。
11.第二方面,本发明提供一种存内运算方法,所述方法应用于第一方面所述的存内多比特加法器,包括:在第一列非易失存储阵列中,对第一三端器件mtja0进行读操作,在周期内通过控制信号分别打开第二nmos晶体管、第一读控制晶体管和第一列选晶体管;预充电放大读取模块pcsa输出读结果并保存在输出端0vout和输出端0!vout上;
12.在第二列非易失存储阵列中,对第一三端器件mtja1进行读操作,在周期内通过控制信号分别打开第三nmos晶体管、第三pmos晶体管、第一写控制晶体管和第一列选晶体管;
13.设置第一列非易失存储阵列中的0v控制信号为高电平,当第一三端器件mtja0初始逻辑为“0”时,0vout输出低电平,使得第一列非易失存储阵列中的第一nmos晶体管晶体管关断,使得列间传递模块的源极和漏极保持低电平,以打开第二列非易失存储阵列中的第二pmos晶体管;其中,逻辑“0”对应mram的高阻值,逻辑“1”对应mram的低阻值;
14.将第一三端器件mtja1写为逻辑“1”;当第一三端器件mtja0初始逻辑为“1”时,0vout输出高电平,打开第一列非易失存储阵列中的第一nmos晶体管,使得列间传递模块的源极和漏极的信号拉高,以关断第二列非易失存储阵列中的第二pmos晶体管,第一三端器件mtja1不进行写操作,保持为逻辑“0”;以实现列间1bit位移操作。
15.进一步地,第二方面还包括:
16.在第一列非易失存储阵列中,对第一三端器件mtja0进行读操作,在周期内通过控制信号分别打开晶体管第二nmos晶体管、第一读控制晶体管和第一列选晶体管,预充电放大读取模块pcsa输出读结果并保存在输出端0vout和输出端0!vout上;
17.在第二列非易失存储阵列中,对第一三端器件mtja1进行异或操作,在周期内通过控制信号分别打开第三nmos晶体管、第三pmos晶体管、第一读控制晶体管和第二写控制晶体管;
18.设置第一列非易失存储阵列中的0v控制信号为高电平,当第一三端器件mtja0初始逻辑为“1”时,0vout输出高电平,打开第一列非易失存储阵列中的第一nmos晶体管,使得列间传递模块的源极和漏极的信号拉高,以打开第二列非易失存储阵列中的第二列选晶体管;电流从第二列非易失存储阵列中的第一读控制晶体管流向第一三端器件mtja1的左端,然后流过第二列非易失存储阵列中的第二三端器件mtj b1底部的重金属层到第二列非易失存储阵列中的第二写控制晶体管,最终流向第一列非易失存储阵列中的第一列选晶体管漏极连接的gnd,实现异或操作;
19.当第一三端器件mtja0初始逻辑为“0”时,0vout输出低电平,关断第一列非易失存储阵列中的第一nmos晶体管,使得列间传递模块的源极和漏极保持低电平,以关断第二列非易失存储阵列中的第二列选晶体管,电流从第二列非易失存储阵列中的第一读控制晶体管流向第一三端器件mtja1的左端,经过第二三端器件mtj b1和第二列非易失存储阵列中的第二写控制晶体管到gnd的通路没有电流,不对第二三端器件mtj b1的阻值产生影响,以实现列间异或操作。
20.本发明提供一种存内多比特加法器和存内运算方法,优化brent-kung加法,针对sot-mram的单极性翻转特性,结合提出的优化brent-kung加法和存内多比特加法器,通过对阵列操作步骤进行优化,实现多比特加法。本发明能够最大程度减弱sot-mram器件状态翻转后需要较长恢复时间的影响,实现步骤少,面积开销小的存内多比特加法。
附图说明
21.为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1为本发明实施例提供的一种存内多比特加法器的电路图;
23.图2为本发明实施例提供的8bit优化brent-kung加法的示意图;
24.图3为本发明实施例提供的按照算法理论的8bit加法流程图以及步骤优化之后的8bit加法流程图;
25.图4为本发明实施例提供的读操作、写操作和异或操作的电流流向图。
具体实施方式
26.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.在一实施例中,本发明实施例提供一种存内多比特加法器,包括多个非易失存储阵列;相邻两个非易失存储阵列通过列间传递模块连接;每个非易失存储阵列包括预充电放大读取模块pcsa、写驱动电路模块wr、第一三端器件mtja0和第二三端器件mtjb0。
28.如图1所示,在第一列非易失存储阵列中,第一三端器件mtja0的上端连接有第一读控制晶体管n10的漏极,右端连接有第一写控制晶体管n8的漏极,左端连接有第二三端器件mtjb0的左端和第一列选晶体管n1的源极;第二三端器件mtjb0的上端连接有第二读控制
晶体管n6的漏极,右端连接有第二写控制晶体管n4的漏极。
29.在第一列非易失存储阵列中,第一读控制晶体管n10的源极作为预充电放大读取模块pcsa的输入端,并连接第二读控制晶体管n6的源极;预充电放大读取模块pcsa设有输出端0vout和输出端0!vout;输出端1vout连接有第一nmos晶体管n14的栅极;第一nmos晶体管n14的源极接入0v控制信号,漏极连接有第二nmos晶体管n12的源极、第一pmos晶体管p2的漏极、第二列选晶体管n0的栅极和第二pmos晶体管p0的栅极;第一写控制晶体管n8的源极连接有第二写控制晶体管n4的源极、第二列选晶体管n0的源极和第二pmos晶体管p0的漏极;第二pmos晶体管p0的源极、第一读控制晶体管n10和第二读控制晶体管n6的源极连接写驱动电路模块wr;第二列选晶体管n0的漏极、第一列选晶体管n1的漏极和第二nmos晶体管n12的漏极均连接gnd;第一pmos晶体管p2的源极连接vdd。
30.在第二列非易失存储阵列中,第一三端器件mtja1的上端连接有第一读控制晶体管n11的漏极,右端连接有第一写控制晶体管n9的漏极,左端连接有第二三端器件mtj b1的左端和第一列选晶体管n3的源极;第二三端器件mtj b1的上端连接有第二读控制晶体管n7的漏极,右端连接有第二写控制晶体管n5的漏极。
31.在第二列非易失存储阵列中,第一读控制晶体管n11的源极作为预充电放大读取模块pcsa的输入端,并连接第二读控制晶体管n7的源极;预充电放大读取模块pcsa设有输出端1vout和输出端1!vout;输出端1vout连接有第一nmos晶体管n15的栅极;第一nmos晶体管n15的源极接入1v控制信号,漏极连接有第二nmos晶体管n13的源极、第一pmos晶体管p3的漏极、第二列选晶体管n2的栅极和第二pmos晶体管p1的栅极;第一写控制晶体管n9的源极连接有第二写控制晶体管n5的源极、第二列选晶体管n2的源极和第二pmos晶体管p1的漏极;第二pmos晶体管p1的源极、第一读控制晶体管n11和第二读控制晶体管n7的源极连接写驱动电路模块wr;第二列选晶体管n2的漏极、第一列选晶体管n3的漏极和第二nmos晶体管n13的漏极均连接gnd;第一pmos晶体管p3的源极连接vdd。
32.示例性地,如图1所示,列间传递模块包括第三pmos晶体管p4和第三nmos晶体管n16;第三pmos晶体管的源极连接第三nmos晶体管n16的源极后,作为列间传递模块的源极;第三pmos晶体管的漏极连接第三nmos晶体管n16的漏极后,作为列间传递模块的漏极;列间传递模块的源极连接一个非易失存储阵列中第一nmos晶体管n14的漏极,漏极连接另一个非易失存储阵列中第一nmos晶体管n15的漏极。
33.在多比特加法的设计中,利用阵列内的四种基本操作:读操作、写操作、异或操作和读延时操作。读操作和写操作的电流流向如图4的子图(1)和(2)所示;异或操作的电流流向如图4的子图(3)所示,利用mtj c对应不同逻辑的阻值,给定电压下分别产生两个大小不同的电流来控制mtj d的翻转情况,实现异或逻辑。读延时操作利用读取电路中的锁存结构,实现读操作结果的保存。
34.在另一实施例中,本发明实施例提供一种应用于存内多比特加法器的存内运算方法,实现列间1bit移位操作和列间异或操作。假设将mtja0的取反的阻值传递到mtja1的阻值,且mtja1初始为逻辑“0”,假定逻辑“0”对应mram的高阻值,逻辑“1”对应mram的低阻值。
35.存内运算方法包括在第一列非易失存储阵列中,对第一三端器件mtja0进行读操作,在周期内通过控制信号0gnd2、rwl0和bls0分别打开第二nmos晶体管n12、第一读控制晶体管n10和第一列选晶体管n1;预充电放大读取模块pcsa输出读结果并保存在输出端0vout
和输出端0!vout上。
36.在第二列非易失存储阵列中,对第一三端器件mtja1进行读操作,在周期内通过控制信号01en、01!en、wwl0和bls1分别打开第三nmos晶体管n16、第三pmos晶体管p4、第一写控制晶体管n9和第一列选晶体管n3。
37.设置第一列非易失存储阵列中的0v控制信号为高电平,当第一三端器件mtja0初始逻辑为“0”时,0vout输出低电平,使得第一列非易失存储阵列中的第一nmos晶体管晶体管n14关断,使得列间传递模块的源极(0sl)和漏极(1sl)保持低电平,以打开第二列非易失存储阵列中的第二pmos晶体管p1。
38.将第一三端器件mtja1写为逻辑“1”;当第一三端器件mtja0初始逻辑为“1”时,0vout输出高电平,打开第一列非易失存储阵列中的第一nmos晶体管,使得列间传递模块的源极和漏极的信号(分别为0sl和1sl)拉高,以关断第二列非易失存储阵列中的第二pmos晶体管p1,第一三端器件mtja1不进行写操作,保持为逻辑“0”;以实现列间1bit位移操作。
39.示例性地,列间异或操作包括在第一列非易失存储阵列中,对第一三端器件mtja0进行读操作,在周期内通过控制信号0gnd2、rwl0和bls0分别打开晶体管第二nmos晶体管n12、第一读控制晶体管n10和第一列选晶体管n1,预充电放大读取模块pcsa输出读结果并保存在输出端0vout和输出端0!vout上。
40.在第二列非易失存储阵列中,对第一三端器件mtja1进行异或操作,在周期内通过控制信号01en、01!en、rwl0和wwl1分别打开第三nmos晶体管n16、第三pmos晶体管p4、第一读控制晶体管n11和第二写控制晶体管n5。
41.设置第一列非易失存储阵列中的0v控制信号为高电平,当第一三端器件mtja0初始逻辑为“1”时,0vout输出高电平,打开第一列非易失存储阵列中的第一nmos晶体管n14,使得列间传递模块的源极和漏极的信号拉高,以打开第二列非易失存储阵列中的第二列选晶体管n2;电流从第二列非易失存储阵列中的第一读控制晶体管n11流向第一三端器件mtj a1的左端,然后流过第二列非易失存储阵列中的第二三端器件mtj b1底部的重金属层到第二列非易失存储阵列中的第二写控制晶体管n5,最终流向第一列非易失存储阵列中的第一列选晶体管n1漏极连接的gnd,实现a1

b1

b1操作。
42.当第一三端器件mtja0初始逻辑为“0”时,0vout输出低电平,关断第一列非易失存储阵列中的第一nmos晶体管n14,使得列间传递模块的源极和漏极保持低电平,以关断第二列非易失存储阵列中的第二列选晶体管n2,电流从第二列非易失存储阵列中的第一读控制晶体管n11流向第一三端器件mtja1的左端,经过第二三端器件mtj b1和第二列非易失存储阵列中的第二写控制晶体管n5到gnd的通路没有电流,不对第二三端器件mtjb1的阻值产生影响,以实现列间异或操作。
43.通过存内多比特加法器,阵列内可实现的基础操作包括:读操作、写操作、异或操作、列间1bit移位操作和列间异或操作。在此基础上,结合brent-kung加法,正常实现8bit加法的流程如图3中子图(1)所示。图中的一个小方框代表存储阵列中的一个存储单元,即一个非易失mram单元。mtja0-a7和mtj b0-b7的阻值分别代表8bit加数和被加数,实现的流程如下所示:
44.第一步:产生p,g。
45.1、产生p(mtja和mtj b的异或结果)(需要1步)
46.1)a
⊕b→
b(p),将第0-7列的mtja和mtj b的阻值进行异或操作,异或结果存储在mtj b阻值上(将优化bk算法的p结果存储在mtj b阻值上)。
47.2、产生g(mtja和mtj b的与结果)(需要2步)
48.1)读a,对第0-7列的mtja的阻值利用各列的pcsa读取电路进行读取,读取结果存储在各列pcsa的输出端vout/!vout上。
49.2)当a=“1”时,b
⊕a→
a(g);当a=“0”时,不操作。根据前一个步骤存储在各列vout的读取结果进行选择使能各列ni(i=0,2,3,...)晶体管。当第0-7列的mtja的读取结果为高电平(对应逻辑“1”),将第0-7列的mtja和mtj b的阻值进行异或操作,异或结果存储在mtja阻值上;当第0-7列的mtja的读取结果为低电平(对应逻辑“0”),不会对mtja的阻值产生影响。最终,将优化brent-kung算法的g结果存储在mtja阻值上。
50.第二步:p移位。
51.3、将第0,2,4列的p逻辑移到行m的第1,3,5列,将第2,4,6列的p逻辑移到行n的第1,3,5列(需要3步)
52.1)读p(0,2,4,6),利用读取电路对行p的第0,2,4,6列的mtj阻值读取,将读取结果存到对应列的vout/!vout上。
53.2)当p=“1”时,不操作;当p=“0”时,写m(1,3,5,_)。根据前一个步骤存储在第0,2,4列的vout的读取结果选择使能第0,2,4列的pi(i=0,2,3,...)晶体管。当第0,2,4列的mtj p的读取结果为高电平(对应逻辑“1”),对应pi晶体管关断,不会对mtj m的阻值产生影响;当第0,2,4列的mtj p的读取结果为低电平(对应逻辑“0”),对应pi晶体管打开,对第0,2,4列的mtj m进行写操作。将取反的第0,2,4列的mtj p的阻值传递给第1,3,5列的mtj m。
54.3)当p=“1”时,不操作;当p=“0”时,写n(_,1,3,5)。根据第一个步骤存储在第2,4,6列的vout的读取结果选择使能第2,4,6列的pi晶体管。当第2,4,6列的mtj p的读取结果为高电平(对应逻辑“1”),对应pi晶体管关断,不会对mtjn的阻值产生影响;当第2,4,6列的mtj p的读取结果为低电平(对应逻辑“0”),对应pi晶体管打开,对第2,4,6列的mtj n进行写操作。将取反的第2,4,6列的mtj p的阻值传递给第1,3,5列的mtjn。
55.4、将第1,3,5,7列的mtj p移到行n的第0,2,4,6列(需要2步)
56.1)读p(1,3,5,7),利用读取电路对行p的第1,3,5,7列的mtj阻值读取,将读取结果存到对应列的vout/!vout上。
57.2)当p=“1”时,不操作;当p=“0”时,写n(0,2,4,6)。根据第一个步骤存储在第1,3,5,7列的vout的读取结果选择使能第1,3,5,7列的pi晶体管。当第1,3,5,7列的mtj p的读取结果为高电平(对应逻辑“1”),对应pi晶体管关断,不会对mtjn的阻值产生影响;当第1,3,5,7列的mtj p的读取结果为低电平(对应逻辑“0”),对应pi晶体管打开,对第0,2,4,6列的mtjn进行写操作。将取反的第1,3,5,7列的mtj p的阻值传递给第0,2,4,6列的mtjn。
58.第三步:计算优化brent-kung加法的第1级pg。
59.5、计算第一级g(gi=gi+pigi-1)(需要2步)
60.1)读g(0,2,4),利用读取电路对行g的第0,2,4列的mtj阻值读取,将读取结果存到对应列的vout/!vout上。
61.2)当g=“1”时,p
⊕g→
g(1,3,5);当g=“0”时,不操作。根据前一个步骤存储在第0,2,4列vout的读取结果,打开晶体管01en和01!en,将读取结果传递到下一列,选择使能第
1,3,5列的ni晶体管。当第0,2,4列的mtj g的读取结果为高电平(对应逻辑“1”),将第1,3,5列的mtj p和mtj g的阻值进行异或操作,异或结果存储在mtj g阻值上;当第0,2,4列的mtj g的读取结果为低电平(对应逻辑“0”),不会对第1,3,5列的mtj g的阻值产生影响。最终,将优化brent-kung加法的第一级的g结果存储在第1,3,5列的mtj g阻值上。
62.6、计算第一级p(pi=pipi-1)(需要2步)
63.1)读p(1,3,5),利用读取电路对行p的第1,3,5列的mtj阻值读取,将读取结果存到对应列的vout/!vout上。
64.2)当p=“1”时,m

p

p(1,3,5);当p=“0”时,不操作。根据前一个步骤存储在第1,3,5列vout的读取结果,选择使能第1,3,5列的ni晶体管。当第1,3,5列的mtj p的读取结果为高电平(对应逻辑“1”),将第1,3,5列的mtj m和mtj p的阻值进行异或操作,异或结果存储在mtj p阻值上;当第1,3,5列的mtj p的读取结果为低电平(对应逻辑“0”),不会对第1,3,5列的mtj p的阻值产生影响。最终,将优化bk算法的第一级的p结果存储在第1,3,5列的mtj p阻值上。
65.第四步:计算优化brent-kung加法的第2~5级g(gi=gi+pigi-1)。
66.7~10、计算优化brent-kung加法的第2~5级g(需要8步)
67.1)读g(1),利用读取电路对行g的第1列的mtj阻值读取,将读取结果存到对应列的vout/!vout上。
68.2)当g=“1”时,p
⊕g→
g(3);当g=“0”时,不操作。根据前一个步骤存储在第1列vout的读取结果,打开晶体管01en和01!en,将读取结果传递到第3列,选择使能第3列的ni晶体管。当第1列的mtj g的读取结果为高电平(对应逻辑“1”),将第3列的mtj p和mtj g的阻值进行异或操作,异或结果存储在mtj g阻值上;当第1列的mtj g的读取结果为低电平(对应逻辑“0”),不会对第3列的mtj g的阻值产生影响。最终,将优化brent-kung加法的第2级的g结果存储在第3列的mtj g阻值上。
69.3)读g(3),利用读取电路对行g的第3列的mtj阻值读取,将读取结果存到对应列的vout/!vout上。
70.4)当g=“1”时,p
⊕g→
g(5);当g=“0”时,不操作。根据前一个步骤存储在第3列vout的读取结果,打开晶体管01en和01!en,将读取结果传递到第5列,选择使能第5列的ni晶体管。当第3列的mtj g的读取结果为高电平(对应逻辑“1”),将第5列的mtj p和mtj g的阻值进行异或操作,异或结果存储在mtj g阻值上;当第3列的mtj g的读取结果为低电平(对应逻辑“0”),不会对第5列的mtj g的阻值产生影响。最终,将优化bk算法的第3级的g结果存储在第5列的mtj g阻值上。
71.5)读g(1,3,5),利用读取电路对行g的第1,3,5列的mtj阻值读取,将读取结果存到对应列的vout/!vout上。
72.6)当g=“1”时,p
⊕g→
g(2,4,6);当g=“0”时,不操作。根据前一个步骤存储在第1,3,5列vout的读取结果,打开晶体管01en和01!en,将读取结果传递到第2,4,6列,选择使能第2,4,6列的ni晶体管。当第1,3,5列的mtj g的读取结果为高电平(对应逻辑“1”),将第2,4,6列的mtj p和mtj g的阻值进行异或操作,异或结果存储在mtj g阻值上;当第1,3,5列的mtj g的读取结果为低电平(对应逻辑“0”),不会对第2,4,6列的mtj g的阻值产生影响。最终,将优化bk算法的第4级的g结果存储在第2,4,6列的mtj g阻值上。
73.7)读g(6),利用读取电路对行g的第6列的mtj阻值读取,将读取结果存到对应列的vout/!vout上。
74.8)当g=“1”时,p
⊕g→
g(7);当g=“0”时,不操作。根据前一个步骤存储在第6列vout的读取结果,打开晶体管01en和01!en,将读取结果传递到第7列,选择使能第7列的ni晶体管。当第6列的mtj g的读取结果为高电平(对应逻辑“1”),将第7列的mtj p和mtj g的阻值进行异或操作,异或结果存储在mtj g阻值上;当第6列的mtj g的读取结果为低电平(对应逻辑“0”),不会对第7列的mtj g的阻值产生影响。最终,将优化bk算法的第5级的g结果存储在第7列的mtj g阻值上。
75.第五步:计算sum。
76.11、将第0-6列的mtjn的阻值进行取反操作(需要1步)
77.1)写n(0-6),打开对应的写晶体管,对第0-6列的mtjn进行写操作。
78.12、计算sum结果(sumi=pi

ci-1)(需要1步)
79.1)g
⊕n→
n(0,1,2,3,4,5,6),打开对应异或操作的晶体管,将第0-6列的mtj g和mtj n的阻值进行异或操作,异或结果存储在mtj n阻值上,最终第1-7bit的加法结果存储在mtjn0-n6,第0bit加法结果存储在mtj p0,进位信息存储在mtj g7上。
80.如图3的子图(2)所示,经过步骤以后,当一个mtj被翻转之后,至少存在一个读操作和一个异或/写操作时间来松弛自由层磁化强度方向。
81.本发明通过对传统的brent-kung加法进行优化,得到只需要在第一级计算p(a和b异或的结果),g(a和b相与的结果),剩余级中计算g,级数为(n/2+1)的优化brent-kung加法,该优化算法如图2所示。针对算法中的列间计算,结合存储阵列的读取放大器电路,提出一个面积开销小,不影响存储阵列操作以及匹配算法逻辑中列间操作的存内多比特加法器,如图1所示,利用存内多比特加法器实现列间移位操作和列间异或操作(根据某列的数据,对任意列进行选择异或操作)。该列间异或操作完全符合优化brent-kung加法中计算g的逻辑,同时优化brent-kung加法中计算p的逻辑利用列间1bit移位操作实现。
82.多比特加法逻辑由存内的四种基本逻辑操作实现,包括读操作、写操作、异或操作和读结果延时操作。其中写操作和异或操作会将存储单元的阻值翻转,存在自由层磁化方向翻转的恢复时间问题,而读操作和读延时操作不会产生该问题。如图3所示,通过对多比特加法的步骤优化,在写操作/异或操作之后,对应翻转的mtj至少有两个操作周期进行松弛恢复。
83.以上结合具体实施方式和范例性实例对本发明进行了详细说明,不过这些说明并不能理解为对本发明的限制。本领域技术人员理解,在不偏离本发明精神和范围的情况下,可以对本发明技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本发明的范围内。本发明的保护范围以所附权利要求为准。

技术特征:
1.一种存内多比特加法器,其特征在于,包括多个非易失存储阵列;相邻两个非易失存储阵列通过列间传递模块连接;每个非易失存储阵列包括预充电放大读取模块pcsa、写驱动电路模块wr、第一三端器件mtj和第二三端器件mtj;第一三端器件mtj的上端连接有第一读控制晶体管的漏极,右端连接有第一写控制晶体管的漏极,左端连接有第二三端器件mtj的左端和第一列选晶体管的源极;第二三端器件mtj的上端连接有第二读控制晶体管的漏极,右端连接有第二写控制晶体管的漏极;第一读控制晶体管的源极作为预充电放大读取模块pcsa的输入端,并连接第二读控制晶体管的源极;预充电放大读取模块pcsa设有输出端vout和输出端!vout;输出端vout连接有第一nmos晶体管的栅极;第一nmos晶体管的源极接入0v控制信号,漏极连接有第二nmos晶体管的源极、第一pmos晶体管的漏极、第二列选晶体管的栅极和第二pmos晶体管的栅极;第一写控制晶体管的源极连接有第二写控制晶体管的源极、第二列选晶体管的源极和第二pmos晶体管的漏极;第二pmos晶体管的源极、第一读控制晶体管和第二读控制晶体管的源极连接写驱动电路模块wr;第二列选晶体管的漏极、第一列选晶体管的漏极和第二nmos晶体管的漏极均连接gnd;第一pmos晶体管的源极连接vdd。2.根据权利要求1所述的存内多比特加法器,其特征在于,所述列间传递模块包括第三pmos晶体管和第三nmos晶体管;第三pmos晶体管的源极连接第三nmos晶体管的源极后,作为列间传递模块的源极;第三pmos晶体管的漏极连接第三nmos晶体管的漏极后,作为列间传递模块的漏极;列间传递模块的源极连接一个非易失存储阵列中第一nmos晶体管的漏极,漏极连接另一个非易失存储阵列中第一nmos晶体管的漏极。3.一种存内运算方法,所述方法应用于权利要求1-2任一项所述的存内多比特加法器,其特征在于,包括:在第一列非易失存储阵列中,对第一三端器件mtja0进行读操作,在周期内通过控制信号分别打开第二nmos晶体管、第一读控制晶体管和第一列选晶体管;预充电放大读取模块pcsa输出读结果并保存在输出端0vout和输出端0!vout上;在第二列非易失存储阵列中,对第一三端器件mtja1进行读操作,在周期内通过控制信号分别打开第三nmos晶体管、第三pmos晶体管、第一写控制晶体管和第一列选晶体管;设置第一列非易失存储阵列中的0v控制信号为高电平,当第一三端器件mtja0初始逻辑为“0”时,0vout输出低电平,使得第一列非易失存储阵列中的第一nmos晶体管晶体管关断,使得列间传递模块的源极和漏极保持低电平,以打开第二列非易失存储阵列中的第二pmos晶体管;其中,逻辑“0”对应mram的高阻值,逻辑“1”对应mram的低阻值;将第一三端器件mtja1写为逻辑“1”;当第一三端器件mtja0初始逻辑为“1”时,0vout输出高电平,打开第一列非易失存储阵列中的第一nmos晶体管,使得列间传递模块的源极和漏极的信号拉高,以关断第二列非易失存储阵列中的第二pmos晶体管,第一三端器件mtja1不进行写操作,保持为逻辑“0”;以实现列间1bit位移操作。4.根据权利要求3所述的存内运算方法,其特征在于,还包括:在第一列非易失存储阵列中,对第一三端器件mtja0进行读操作,在周期内通过控制信号分别打开晶体管第二nmos晶体管、第一读控制晶体管和第一列选晶体管,预充电放大读取模块pcsa输出读结果并保存在输出端0vout和输出端0!vout上;在第二列非易失存储阵列中,对第一三端器件mtja1进行异或操作,在周期内通过控制
信号分别打开第三nmos晶体管、第三pmos晶体管、第一读控制晶体管和第二写控制晶体管;设置第一列非易失存储阵列中的0v控制信号为高电平,当第一三端器件mtja0初始逻辑为“1”时,0vout输出高电平,打开第一列非易失存储阵列中的第一nmos晶体管,使得列间传递模块的源极和漏极的信号拉高,以打开第二列非易失存储阵列中的第二列选晶体管;电流从第二列非易失存储阵列中的第一读控制晶体管流向第一三端器件mtja1的左端,然后流过第二列非易失存储阵列中的第二三端器件mtjb1底部的重金属层到第二列非易失存储阵列中的第二写控制晶体管,最终流向第一列非易失存储阵列中的第一列选晶体管漏极连接的gnd,实现异或操作;当第一三端器件mtja0初始逻辑为“0”时,0vout输出低电平,关断第一列非易失存储阵列中的第一nmos晶体管,使得列间传递模块的源极和漏极保持低电平,以关断第二列非易失存储阵列中的第二列选晶体管,电流从第二列非易失存储阵列中的第一读控制晶体管流向第一三端器件mtja1的左端,经过第二三端器件mtjb1和第二列非易失存储阵列中的第二写控制晶体管到gnd的通路没有电流,不对第二三端器件mtjb1的阻值产生影响,以实现列间异或操作。

技术总结
本发明提供一种存内多比特加法器和存内运算方法,其中存内多比特加法器包括多个非易失存储阵列;相邻两个非易失存储阵列通过列间传递模块连接;每个非易失存储阵列包括预充电放大读取模块PCSA、写驱动电路模块WR、第一三端器件MTJ和第二三端器件MTJ;本发明针对SOT-MRAM的单极性翻转特性,结合优化Brent-Kung加法和存内多比特加法器,通过对阵列操作步骤进行优化,实现多比特加法。本发明能够最大程度减弱SOT-MRAM器件状态翻转后需要较长恢复时间的影响,实现步骤少,面积开销小的存内多比特加法。特加法。特加法。


技术研发人员:刘伟强 祝浩男 吴比
受保护的技术使用者:南京航空航天大学
技术研发日:2023.04.23
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐