一种基于单极性翻转自旋轨道力矩磁存储器的存内运算逻辑设计方法

allin2023-04-01  81



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具有以下的优势:
4.1.读写速度快,读写电流在微安级别,2.写1和写0的转换电流对称,3.氧化层仅在读操作中有电流流过,不会发生氧化层穿透,4.通过调整场力矩和阻尼力矩比值来实现无外磁场辅助翻转,减少功耗。
5.us-sot-mram的重金属带上通过任意方向达到阈值大小的写电流后,其自由层的磁化方向翻转不会瞬间完全翻转,而是需要接近几纳秒的恢复时间才能使磁化方向翻转完全,这一段恢复时间发生在运算逻辑设计的两个步骤间,极大的增加整个运算逻辑所需要的时间以及在特定的操作下产生数据错误。这将会使其与其他非易失存储技术实现的存内运算在速度和可靠性方面有较大差距。因此,如何针对自由层磁化翻转的恢复时间优化,是一个非常关键的问题。


技术实现要素:

6.本发明所要解决的技术问题是针对上述现有技术的不足,提供一种基于单极性翻转自旋轨道力矩磁存储器的存内运算逻辑设计方法,在存储阵列内,通过对四种运算逻辑步骤的优化来最大程度减少写操作中自由层磁化翻转的恢复时间的影响,以及通过避免数据写回操作来提高速度和减少功耗。
7.为实现上述技术目的,本发明采取的技术方案为:
8.一种基于单极性翻转自旋轨道力矩磁存储器的存内运算逻辑设计方法,包括:
9.步骤1:通过阵列内基本的读逻辑和写逻辑设计trs逻辑和rd逻辑;
10.步骤2:针对自旋轨道力矩磁存储器的单极性翻转特性,基于读逻辑、写逻辑、trs逻辑和rd逻辑,设计存内运算逻辑,包括:两输入与,两输入或,三输入择多选择和1位全加
逻辑。
11.为优化上述技术方案,采取的具体措施还包括:
12.上述的trs是指:对于存储阵列内同一列的两个存储单元a和b,通过控制单元a存储的阻值的差异产生不同大小的电流对被写单元b进行写逻辑操作。
13.上述的rd逻辑是指:利用读电路中结果锁存原理,将读结果进行延时处理,使得下一步骤可根据读电路结果进行选择逻辑。
14.上述的步骤2遵循以下设计标准设计存内运算逻辑:
15.1)尽可能将写逻辑和trs逻辑放置在整个运算逻辑步骤的最后一步;
16.2)提高写电压;
17.3)运算逻辑涉及多个步骤时,对不同的存储单元进行翻转逻辑,一个存储单元翻转以后,在其后步骤减少对该存储单元的写逻辑和trs逻辑;
18.4)若出现前面步骤对存储单元进行翻转,后面步骤对同一个存储单元进行写逻辑和trs逻辑的情况,将两个步骤间隔拉长。
19.上述的两输入与逻辑具体为:
20.步骤一:对存储单元b3进行写逻辑操作,在周期内打开晶体管wwl1,sls3和bls3,对b3的重金属带上加上一个写电流;
21.步骤二:对存储单元a3进行读逻辑操作,在周期内打开晶体管rwl0和bls3,由于sl0处与读电路相连,存储单元a3将有读电流流过,读电路输出读结果;
22.步骤三:当a3读结果=1时,以b3为控制单元和a3为被写单元进行trs逻辑操作;
23.当a3读结果=0时,不操作;
24.读延时电路将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl1,wwl0和sls3,根据b3存储单元的阻值产生不同大小的trs电流,利用该trs电流改变存储单元a3的状态。
25.上述的两输入或逻辑具体为:
26.步骤一:对a2进行读逻辑操作,在周期内打开晶体管rwl0和bls2,由于sl0处与读电路相连,存储单元a2将有读电流流过,读电路输出读结果;
27.步骤二:当a2读结果=1时,不操作;
28.当a2读结果=0时,以b2为控制单元和a2为被写单元进行trs逻辑;
29.读延时电路将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl1,wwl0和sls2。
30.上述的三输入择多逻辑具体为:
31.步骤一:以b1为控制单元和c1为被写单元进行trs逻辑操作,在周期内打开晶体管rwl1,wwl2和sls1,根据b1存储单元的阻值产生不同大小的trs电流,利用该trs电流改变a1存储单元的状态;
32.步骤二:以a1为控制单元和b1为被写单元进行trs逻辑操作,在周期内打开晶体管rwl0,wwl1和sls1,根据b1存储单元的阻值产生不同大小的trs电流,利用该trs电流改变a1存储单元的状态。
33.步骤三:对c1进行读逻辑操作,在周期内打开晶体管rwl2和bls1,由于sl0处与读电路相连,存储单元a1将有读电流流过,读电路输出读结果;
34.步骤四:当c1读结果=1时,不操作;当c1读结果=0时,b1为控制单元和a1为被写单元进行trs逻辑操作;
35.读延时电路将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl1,wwl0和sls1。
36.上述的1位全加逻辑具体为:
37.步骤一:以b0为控制单元和cin0为被写单元进行trs逻辑操作,在周期内打开晶体管rwl2,cl1和crwl12,根据b0存储单元的阻值产生不同大小的trs电流,利用该trs电流改变cin0存储单元的状态;
38.步骤二:对cin0进行读逻辑,在周期内打开晶体管crwl11和crwl12,全加器的进位模块具有独立的读驱动电路,存储单元cin0将有读电流流过,读电路输出读结果;
39.步骤三:当cin0读结果=1时,a0为控制单元和cout0为被写单元进行trs逻辑操作;当cin0读结果=0时,不操作,读延时电路将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl1,cl2和crwl22;
40.步骤四:当cin0读结果=1时,不操作;当cin0读结果=0时,以b0为控制单元和cout0为被写单元进行trs逻辑,读延时电路继续将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl2,cl2和crwl22;
41.步骤五:当cin0读结果=1时,对a0进行写逻辑;当cin0读结果=0时,不操作;
42.读延时电路继续将读结果延时输出,利用读结果控制写电压输入晶体管,在周期内打开晶体管sls0,wwl1和bls0。
43.本发明具有以下有益效果:
44.本发明针对新型sot-mram的单极性翻转特性,通过阵列内基本的读写操作实现单比特两输入与,两输入或,三输入择多选择和1位全加操作四种运算逻辑。
45.本发明可以最大程度避免sot-mram自由层磁化方向翻转的恢复时间问题,可以去除数据写回操作,降低功耗和延时,提升性能和运算逻辑的速度。
46.本发明四种运算逻辑设计需要的最大步骤数为5步,每一步的时间可控制在0.3纳秒大小,其功耗的大小在几十飞焦量级。
附图说明
47.图1为trs逻辑结构图;
48.图2为存储阵列结构图;
49.图3为1位全加结构图;
50.图4为本发明方法流程图。
具体实施方式
51.以下结合附图对本发明的实施例作进一步详细描述。
52.如图4所示,一种基于单极性翻转自旋轨道力矩磁存储器的存内运算逻辑设计方法,包括:
53.步骤1:通过阵列内基本的读逻辑和写逻辑设计trs逻辑和rd逻辑;
54.基本的读写逻辑提出两种基本逻辑:
55.结阻值转换逻辑(tunnel resistance switching logic,trs)和读结果延时逻辑(read delay logic,rd)。
56.trs逻辑如图1所示,对于存储阵列内同一列的两个存储单元a和b,通过单元a(控制单元)存储的阻值的差异产生不同大小的电流对单元b(被写单元)进行写逻辑操作。
57.rd逻辑,利用读电路中结果锁存原理,将读结果进行延时处理,使得下一步骤可根据读电路结果进行选择逻辑。
58.步骤2:针对自旋轨道力矩磁存储器的单极性翻转特性,基于读逻辑、写逻辑、trs逻辑和rd逻辑,设计存内运算逻辑,包括:两输入与,两输入或,三输入择多选择和1位全加逻辑。
59.单比特两输入与,两输入或,三输入择多选择和1位全加逻辑这四种运算逻辑均由读逻辑、写逻辑、trs逻辑和rd逻辑这四种基本逻辑实现,其中,写逻辑和trs逻辑会将存储单元的阻值翻转,存在自由层磁化方向翻转的恢复时间问题,而读逻辑和rd逻辑不会产生该问题。经过验证和分析,恢复时间问题出现在:前面步骤对写逻辑的单元或者trs逻辑中的被写单元进行翻转,后面步骤对该单元进行写逻辑或者将该单元作为trs逻辑中的被写单元。
60.为最大程度减少恢复时间的影响,遵循以下设计标准设计存内运算逻辑:
61.1.尽可能将写逻辑和trs逻辑放置在整个运算逻辑步骤的最后一步,
62.2.适当提高写电压,
63.3.运算逻辑涉及较多步骤时,尽可能对不同的存储单元进行翻转逻辑,一个存储单元翻转以后,在其后步骤尽可能减少对该单元的写逻辑和trs逻辑,
64.4.若出现前面步骤对存储单元进行翻转,后面步骤对同一个单元进行写逻辑和trs逻辑的情况,尽可能将两个步骤间隔拉长。
65.如图2所示,所述两输入与逻辑具体为:
66.步骤一:对存储单元b3进行写逻辑操作,在周期内打开晶体管wwl1,sls3和bls3,对b3的重金属带上加上一个写电流;
67.步骤二:对存储单元a3进行读逻辑操作,在周期内打开晶体管rwl0和bls3,由于sl0处与读电路相连,存储单元a3将有读电流流过,读电路输出读结果;
68.步骤三:当a3读结果=1时,以b3为控制单元和a3为被写单元进行trs逻辑操作;
69.当a3读结果=0时,不操作;
70.读延时电路将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl1,wwl0和sls3,根据b3存储单元的阻值产生不同大小的trs电流,利用该trs电流改变存储单元a3的状态。
71.如图2所示,所述两输入或逻辑具体为:
72.步骤一:对a2进行读逻辑操作,在周期内打开晶体管rwl0和bls2,由于sl0处与读电路相连,存储单元a2将有读电流流过,读电路输出读结果;
73.步骤二:当a2读结果=1时,不操作;
74.当a2读结果=0时,以b2为控制单元和a2为被写单元进行trs逻辑;
75.读延时电路将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl1,wwl0和sls2。
76.如图2所示,所述三输入择多逻辑具体为:
77.步骤一:以b1为控制单元和c1为被写单元进行trs逻辑操作,在周期内打开晶体管rwl1,wwl2和sls1,根据b1存储单元的阻值产生不同大小的trs电流,利用该trs电流改变a1存储单元的状态;
78.步骤二:以a1为控制单元和b1为被写单元进行trs逻辑操作,在周期内打开晶体管rwl0,wwl1和sls1,根据b1存储单元的阻值产生不同大小的trs电流,利用该trs电流改变a1存储单元的状态。
79.步骤三:对c1进行读逻辑操作,在周期内打开晶体管rwl2和bls1,由于sl0处与读电路相连,存储单元a1将有读电流流过,读电路输出读结果;
80.步骤四:当c1读结果=1时,不操作;当c1读结果=0时,b1为控制单元和a1为被写单元进行trs逻辑操作;
81.读延时电路将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl1,wwl0和sls1。
82.如图3所示,所述1位全加逻辑具体为:
83.步骤一:以b0为控制单元和cin0为被写单元进行trs逻辑操作,在周期内打开晶体管rwl2,cl1和crwl12,根据b0存储单元的阻值产生不同大小的trs电流,利用该trs电流改变cin0存储单元的状态;
84.步骤二:对cin0进行读逻辑,在周期内打开晶体管crwl11和crwl12,全加器的进位模块具有独立的读驱动电路,存储单元cin0将有读电流流过,读电路输出读结果;
85.步骤三:当cin0读结果=1时,a0为控制单元和cout0为被写单元进行trs逻辑操作;当cin0读结果=0时,不操作,读延时电路将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl1,cl2和crwl22;
86.步骤四:当cin0读结果=1时,不操作;当cin0读结果=0时,以b0为控制单元和cout0为被写单元进行trs逻辑,读延时电路继续将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl2,cl2和crwl22;
87.步骤五:当cin0读结果=1时,对a0进行写逻辑;当cin0读结果=0时,不操作;
88.读延时电路继续将读结果延时输出,利用读结果控制写电压输入晶体管,在周期内打开晶体管sls0,wwl1和bls0。
89.其实现的逻辑总结为:两输入与逻辑:a3=and(a3,b3),两输入或逻辑:a2=or(a2,b2),三输入择多逻辑:a1=maj(a1,b1,c1),1位全加逻辑:a0=a0+b0+cin0,cout0=carry;
90.所有输出结果均对输入结果直接覆盖,从而去除数据写回逻辑。
91.两输入与逻辑设计中,虽然步骤一对存储单元b3进行翻转,但是步骤三中将b3作为trs逻辑的控制单元,且中间隔着一个步骤,恢复时间对该逻辑几乎没有影响。步骤三的被写单元a3会出现翻转,由于其在该运算逻辑的最后一个步骤,其恢复时间可以放在两个运算逻辑间,该时间涉及运算逻辑数据的读取和传输,可以并行恢复。
92.两输入或逻辑设计中,将会出现状态翻转的trs逻辑放在最后一个步骤,其恢复时间放在运算逻辑考虑。
93.三输入择多逻辑设计中,步骤一对存储单元c1进行翻转,步骤三对c1进行读逻辑,
其恢复时间不需要考虑;步骤二队存储单元b1进行翻转,步骤四将b1作为trs逻辑的控制单元,其恢复时间也不需要考虑。
94.1位全加逻辑设计中:
95.步骤一对存储单元cin0进行翻转;
96.步骤二对cin0进行读逻辑,其恢复时间不需要考虑;
97.步骤三和步骤四均会对存储单元cout0进行翻转,但是这两个步骤不会同时发生,恢复时间可放到逻辑外考虑;
98.步骤五对存储单元a0进行翻转,由于其在最后一个步骤,其恢复时间放在运算逻辑考虑。
99.以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

技术特征:
1.一种基于单极性翻转自旋轨道力矩磁存储器的存内运算逻辑设计方法,其特征在于,包括:步骤1:通过阵列内基本的读逻辑和写逻辑设计trs逻辑和rd逻辑;步骤2:针对自旋轨道力矩磁存储器的单极性翻转特性,基于读逻辑、写逻辑、trs逻辑和rd逻辑,设计存内运算逻辑,包括:两输入与,两输入或,三输入择多和1位全加逻辑。2.根据权利要求1所述的一种基于单极性翻转自旋轨道力矩磁存储器的存内运算逻辑设计方法,其特征在于,所述trs是指:对于存储阵列内同一列的两个存储单元a和b,通过控制单元a存储的阻值的差异产生不同大小的电流对被写单元b进行写逻辑操作。3.根据权利要求1所述的一种基于单极性翻转自旋轨道力矩磁存储器的存内运算逻辑设计方法,其特征在于,所述rd逻辑是指:利用读电路中结果锁存原理,将读结果进行延时处理,使得下一步骤可根据读电路结果进行选择逻辑。4.根据权利要求1所述的一种基于单极性翻转自旋轨道力矩磁存储器的存内运算逻辑设计方法,其特征在于,所述步骤2遵循以下设计标准设计存内运算逻辑:1)尽可能将写逻辑和trs逻辑放置在整个运算逻辑步骤的最后一步;2)提高写电压;3)运算逻辑涉及多个步骤时,对不同的存储单元进行翻转逻辑,一个存储单元翻转以后,在其后步骤减少对该存储单元的写逻辑和trs逻辑;4)若出现前面步骤对存储单元进行翻转,后面步骤对同一个存储单元进行写逻辑和trs逻辑的情况,将两个步骤间隔拉长。5.根据权利要求1或4所述的一种基于单极性翻转自旋轨道力矩磁存储器的存内运算逻辑设计方法,其特征在于,假设两输入与逻辑电路包含阵列中同一列中的两个sot-mtj器件以及相应的读写控制电路,阵列中其为基本的2-晶体管1-mtj、2t1mtj的排布结构,mtja3和mtjb3分别存储两个输入值,与逻辑结果覆盖存储在mtja3,则两输入与逻辑具体为:步骤一:对存储单元b3进行写逻辑操作,在周期内打开晶体管wwl1,sls3和bls3,对b3的重金属带上加上一个写电流;步骤二:对存储单元a3进行读逻辑操作,在周期内打开晶体管rwl0和bls3,由于sl0处与读电路相连,存储单元a3将有读电流流过,读电路输出读结果;步骤三:当a3读结果=1时,以b3为控制单元和a3为被写单元进行trs逻辑操作;当a3读结果=0时,不操作;读延时电路将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl1,wwl0和sls3,根据b3存储单元的阻值产生不同大小的trs电流,利用该trs电流改变存储单元a3的状态。6.根据权利要求1或4所述的一种基于单极性翻转自旋轨道力矩磁存储器的存内运算逻辑设计方法,其特征在于,假设两输入或逻辑电路包含阵列中同一列中的两个sot-mtj器件以及相应的读写控制电路,阵列中其为基本的2t1mtj的排布结构,mtja2和mtjb2分别存储两个输入值,或逻辑结果覆盖存储在mtja2,则两输入或逻辑具体为:步骤一:对a2进行读逻辑操作,在周期内打开晶体管rwl0和bls2,由于sl0处与读电路相连,存储单元a2将有读电流流过,读电路输出读结果;步骤二:当a2读结果=1时,不操作;
当a2读结果=0时,以b2为控制单元和a2为被写单元进行trs逻辑;读延时电路将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl1,wwl0和sls2。7.根据权利要求1或4所述的一种基于单极性翻转自旋轨道力矩磁存储器的存内运算逻辑设计方法,其特征在于,假设三输入择多逻辑电路包含阵列中同一列中的三个sot-mtj器件以及相应的读写控制电路,阵列中其为基本的2t1mtj的排布结构,mtja1、mtjb1和mtjc1分别存储三个输入值,择多逻辑结果覆盖存储在mtja1,则三输入择多逻辑具体为:步骤一:以b1为控制单元和c1为被写单元进行trs逻辑操作,在周期内打开晶体管rwl1,wwl2和sls1,根据b1存储单元的阻值产生不同大小的trs电流,利用该trs电流改变a1存储单元的状态;步骤二:以a1为控制单元和b1为被写单元进行trs逻辑操作,在周期内打开晶体管rwl0,wwl1和sls1,根据b1存储单元的阻值产生不同大小的trs电流,利用该trs电流改变a1存储单元的状态。步骤三:对c1进行读逻辑操作,在周期内打开晶体管rwl2和bls1,由于sl0处与读电路相连,存储单元a1将有读电流流过,读电路输出读结果;步骤四:当c1读结果=1时,不操作;当c1读结果=0时,b1为控制单元和a1为被写单元进行trs逻辑操作;读延时电路将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl1,wwl0和sls1。8.根据权利要求1或4所述的一种基于单极性翻转自旋轨道力矩磁存储器的存内运算逻辑设计方法,其特征在于,假设1位全加逻辑电路包含阵列中同一列中的两个sot-mtj器件以及阵列外的两个进位存储sot-mtj器件,以及对应的读写控制电路,阵列中其为基本的2t1mtj的排布结构,mtja0和mtjb0分别存储1bit加数和被加数,mtjcin0和mtjcout0存储产生的进位信息,最终全加结果覆盖存储在mtja1,进位信息存储在mtjcout0,则1位全加逻辑具体为:步骤一:以b0为控制单元和cin0为被写单元进行trs逻辑操作,在周期内打开晶体管rwl2,cl1和crwl12,根据b0存储单元的阻值产生不同大小的trs电流,利用该trs电流改变cin0存储单元的状态;步骤二:对cin0进行读逻辑,在周期内打开晶体管crwl11和crwl12,全加器的进位模块具有独立的读驱动电路,存储单元cin0将有读电流流过,读电路输出读结果;步骤三:当cin0读结果=1时,a0为控制单元和cout0为被写单元进行trs逻辑操作;当cin0读结果=0时,不操作,读延时电路将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl1,cl2和crwl22;步骤四:当cin0读结果=1时,不操作;当cin0读结果=0时,以b0为控制单元和cout0为被写单元进行trs逻辑,读延时电路继续将读结果延时输出,利用读结果控制trs电压输入晶体管,在周期内打开晶体管rwl2,cl2和crwl22;步骤五:当cin0读结果=1时,对a0进行写逻辑;当cin0读结果=0时,不操作;读延时电路继续将读结果延时输出,利用读结果控制写电压输入晶体管,在周期内打开晶体管sls0,wwl1和bls0。

技术总结
本发明公开了一种基于单极性翻转自旋轨道力矩磁存储器的存内运算逻辑设计方法,通过阵列内基本的读逻辑和写逻辑设计TRS逻辑和RD逻辑;针对自旋轨道力矩磁存储器的单极性翻转特性,基于读逻辑、写逻辑、TRS逻辑和RD逻辑,设计存内运算逻辑,包括:两输入与,两输入或,三输入择多和1位全加逻辑。本发明最大程度解决自旋轨道力矩磁存储器状态翻转后需要较长时间恢复的问题以及将输出结果覆盖输入数据来避免数据写回操作。避免数据写回操作。避免数据写回操作。


技术研发人员:刘伟强 祝浩男 吴比
受保护的技术使用者:南京航空航天大学
技术研发日:2022.03.30
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-8514.html

最新回复(0)