基于2T1MTJ单元的MRAM存算处理架构设计*
2021-05-08吴彩霞郑志强唐慧琴王少昊
吴彩霞,郑志强,唐慧琴,胡 炜,王少昊
(福州大学晋江微电子研究院,福建 晋江 362200)
0 引言
当前主流的冯▪诺依曼处理架构依赖总线进行处理器和存储器之间的通信,难以应对新出现的数据密集型应用,面临“内存墙”性能瓶颈[1]。近数据计算(Near Data Computing,NDC)和存算一体(Processing in-memory,PIM)的处理[2]改进了计算架构,可显著提升处理器和存储器之间的数据吞吐效率,在人工智能、图像处理、物联网计算等领域已显现出良好的应用前景,有望解决上述“内存墙”问题[3]。近年来出现的非易失性存储器(Non-Volatile Memory,NVM)具有断电保存、高算力、低功耗、低成本等优势,较以静态随机存储器(Static Random Access Memory,SRAM)、动态随机存储器(Dynamic Random Access Memory,DRAM)为代表的传统易失性存储器更适用于PIM方案[4]。
新型NVM主要包括电阻性随机存储器(Resistive Random Access Memory,RRAM)、相变存储器(Phase Change Memory,PCM)、磁性随机存储器(Magnetic Random Access Memory,MRAM)等,其中,MRAM具有体积小、功耗低、访问速度快、近无限次读/写操作和抗辐射能力强等优点,具有广阔的产业化前景[1]。基于MRAM的通用型PIM架构可在执行位逻辑运算的同时兼顾常规存储功能。
与/或位逻辑运算操作是上述基于MRAM的通用型PIM架构的核心功能,根据其执行位置是否位于存储阵列将PIM架构分为全后置式和部分前置式两类,按照两种运算的执行顺序不同亦可区分为并行与串行两类计算模式。在与/或运算的基础上可进一步实现其他布尔逻辑运算和一位全加器功能。其运算方式取决于PIM架构所选用的存储单元结构,常见的有1T1MTJ、2T2MTJ和2T1MTJ等[1,4-6]。1T1MTJ方案需要较大的存取晶体管尺寸保证写可靠性,导致在对MTJ器件进行读操作时存在较大的读电流干扰。2T2MTJ[6]方案采用互补位单元结构,可提升位逻辑运算操作的正确率,但显著增加了阵列面积与写操作难度[6]。此外,2T1MT[4]方案虽提出采用2T1MTJ单元结构重构实现多位的加法计算[4],但该方案中的外围控制电路设计较为复杂,且进行逻辑计算需要电压脉冲,增加了设计难度。
本文基于2T1MTJ单元结构,提出一种通用型PIM宏架构。在不显著增加存储阵列面积的同时,可通过配置实现常规MRAM存储、并行PIM与串行PIM工作。该PIM方案除了采用2T1MTJ单元结构将与/或位运算控制前置于存储阵列,结合读取电路后端还可实现逻辑非(NOT)、与(AND)、与非(NAND)、或(OR)、或非(NOR)、异或(XOR)、一位全加器(ADD)和移位/循环(SHIFT/ROTATE)操作,并且对提出的PIM宏架构设计进行了存算功能验证与性能分析。
1 基于2T1MTJ的PIM架构设计
1.1 2T1MTJ 存储阵列
自旋转移磁矩MRAM(Spin Transfer Torque MRAM,STT-MRAM)的数据存储功能是通过其存储单元中的磁隧道结(Magnetic Tunnel Junctions,MTJ)器件实现的。MTJ器件是由钉扎层、隧道势垒层和自由层组成的双端器件,如图1(a)所示。当自由层的磁矩方向与钉扎层一致时,MTJ器件呈现低阻态(平行态)RP,常将其定义为二进制符号“0”;当自由层的磁矩方向与钉扎层相反时,MTJ器件转变为高阻态(反平行态)RAP,可定义为符号“1”。高低阻态之间的隧道磁阻比(Tunnel Magnetoresistnce Ratio,TMR)定义为TMR=(RAP-RP)/RP,根据材料和温度的不同,TMR的范围在10%与400%之间不等[1]。过低的TMR将导致读取或位逻辑运算的错误率上升。
STT-MRAM中典型的存储单元结构为1T1MTJ结构,即由一个MTJ器件和一个选择晶体管组成。可通过驱动电路控制位线(Bit Line,BL)、字线(Word Line,WL)和源极线(Source Line,SL)的电压实现对单元中MTJ器件写入和读取操作。在把二进制数据写入MTJ存储单元时,只需改变流经MTJ器件的电流方向即可更改其自由层的磁矩方向,实现对磁阻态的控制,具体电流方向如图1(b)所示。
本文提出的通用型PIM宏架构由2T1MTJ存储阵列、阵列控制电路和逻辑运算电路三部分构成,如图1(c)所示。在2T1MTJ存储阵列中,每个存储单元由两个控制晶体管和一个MTJ器件构成,其中控制晶体管分别由两行字线(WL与CWL)控制实现部分前置式与、或位逻辑运算。单元的MTJ一端连接一列BL,另一端则由每两个临近2T1MTJ单元共用一列SL。
1.2 阵列控制电路
本文提出的PIM架构中,位逻辑运算与常规MRAM功能拥有相同阵列控制电路,主要包括行译码器、列译码器、字线驱动电路和读写驱动电路。其中行解码器、列解码器以及字线驱动电路用于地址总线的控制,阵列电路外围还添加了逻辑电路和控制电路模块辅助实现位逻辑运算功能。控制电路负责实现PIM架构的模式控制,逻辑电路模块实现在PIM模式下的位逻辑运算、一位全加器和移位/循环功能。
图1 MTJ特性
控制电路的系统结构框架如图2所示。电路根据输入操作数(命令和地址信号)输出相应的控制信号,主要分为3个子模块:mram_ctrl、mram_work和mram_pim。mram_ctrl模块负责完成系统的上电稳定、初始化配置、命令解析以及指令状态控制;mram_work模块根据相应的工作模式控制地址信号;mram_pim模块根据具体的工作状态控制预充电电流型灵敏放大器(Pre-charge Current Sensing Amplifier,PCSA)、读写驱动电路以及逻辑电路。
图2 MRAM的控制电路架构
1.3 常规存储模式
基于2T1MTJ单元的PIM宏架构可在常规存储和串行PIM、并行PIM模式下工作。相应地,需要在架构的每个子阵列中均分别配置独立的读取参考单元和独立的逻辑运算参考单元。
在常规存储模式下,对2T1MTJ存储单元的读写操作均为单值操作。在执行写操作时,需要同时选通WL和CWL,保证为MTJ器件提供足够的写入电流,读写驱动电路则负责控制写入电流的方向,实现逻辑写“1”和“0”的功能。在执行读取操作时,只需选通WL打开单个存取晶体管以实现低读取电流。在读取电路部分,SA将从BL输入的读电流和从读取参考流入的参考电流进行比较,在输出端OUT-(或OUT+)输出高(或低)电平,如图1(c)所示。自此完成了常规存储模式下逻辑“1”或逻辑“0”的读取操作。
1.4 PIM模式下的布尔运算和全加器设计
PIM模式写操作与常规存储模式下完全相同。本文提出的PIM宏架构能够对存储阵列中同一列的两个操作数[(如图1(c)中的MTJA和MTJB)]实现位布尔逻辑运算和一位全加器计算,如表1所示(省略了NOR、NAND和XNOR运算),其中设定进位输入CIN=1。逻辑运算电路可分3个模块实现上述功能:读取电路模块、组合逻辑模块和全加器逻辑模块。
读取电路模块可实现NOT、OR/NOR和AND/NAND的功能。除NOT运算结果直接在读取操作时SA的OUT+端口得出外(OUT-为读出的MTJ数据)。提出的PIM架构将OR/AND位运算操作前置于2T1MTJ存储阵列中,具体配置方式为:同时打开同一列BL中的MTJA和MTJB单元,流经两个单元的总电流Ib1将沿着BL流入SA的一端。此时需调用相应的逻辑运算参考单元,SA会将Ib1与从逻辑运算参考单元流入的电流Iref进行比较,进而得出位逻辑运算结果。按执行OR/AND位逻辑运算的执行顺序不同,这里将读取电路分为并行PIM和串行PIM两种计算模式,如图3(a)、图3(b)所示。布尔逻辑运算与全加器功能真值表,如表1所示。
表1 布尔逻辑运算与全加器功能真值表
(1)并行PIM采用全后置模式,读取电路需并行配置一对SA用于分别执行OR和AND位逻辑运算,如图3(a)所示。相应地,需要为该SA配置一对逻辑运算参考单元,分别提供不同的参考电流(Iref1和Iref2)。值得注意的是,由于Ib1需要同时输入一对SA来实现并行运算,因此需要加入电流镜以提升电路稳定性。
(2)串行PIM模式下,OR/AND位逻辑运算可部分前置于存储阵列中,即先同时选通MTJA和MTJB单元的WL和CWL实现AND运算,再单独选通WL实现OR运算。如图3(b)所示,读取电路先将AND结果通过锁存器保存,再连同在第二次计算中得到的NOR结果一起输入下一级模块。因此,串行PIM模式下读取电路仅需配置一个SA和一个固定的逻辑运算参考单元,SA和参考单元数量较并行PIM方案减半。
组合逻辑模块可由NOR和AND的运算结果得到XOR与XNOR的位逻辑运算结果。
全加器逻辑模块可以实现一位全加器的计算功能,即输入XOR、AND和CIN,得到A、B相加的和(SUM)与进位输出(COUT)。
1.5 移位/循环功能
本文以32×128存储阵列对PIM架构进行性能评估,该阵列被划分为8个32×16大小的子阵列。子阵列共享地址总线,即一个地址同时选中8个子列阵中对应的单元,因此使用5~32的行译码器和4~16的列译码器。并且每个子阵列均拥有独立的SA、参考单元和读写驱动电路,因此上述32×128阵列除可以实现对8位数据的并行读写操作与逻辑运算,还可以在SA输出端实现对该组8位数据的SHIFT和ROTATE操作。如图4(a)所示,主要考虑向右的操作,Di(i=0,…,7)为数据输入,Qi为相应输出,由Si控制实现移位/循环i+1位的操作,Ei控制实现SHIFT和ROTATE两种逻辑操作。图4(b)显示了这两种逻辑功能的具体操作,在向右移位时最高位补“0”。
2 功能实现
本文结合中芯国际55 nm工艺、数字标准工艺库与p-MTJ紧凑模型[7]对上述模拟和数字设计进行了混合仿真,并通过对硬件描述语言代码的综合分析评估了提出的PIM宏架构系统性能。本文采用的p-MTJ紧凑模型默认设置温度T=300 K,TMR=150%。综合考虑p-MTJ模型和PCSA的充放电特性[8],再将逻辑控制电路时钟频率设定在100 MHz,通过设置可令提出的PIM宏架构在接到操作命令后的3个时钟周期内正确实施写操作、常规读取、AND/OR位逻辑运算功能。
图4 右移位/循环操作
2.1 常规存储功能
工作在常规存储模式下,2T1MTJ PIM架构读写操作的仿真结果如图5(a)所示。当放大器使能信号SA_EN为高电平时,存储器执行读取操作,其中SA的预充电动作在读时间的第一个时钟周期内完成。在第1次进行读操作时,假定对象2T1MTJ单元中的MTJ器件为高阻态(对应二进制符号SMTJ=1),则OUT-输出端VOUT_为高电平。当写入使能信号WR_ENB为低电平时,存储器可执行写入操作。由于指令为写入“0”,电路对2T1MTJ单元施加反向电流,令MTJ器件成功转变为低阻态(SMTJ=0)即完成写“0”操作。随后,再对该2T1MTJ单元执行一次读操作,得到输出VOUT_为低电平。最后,对该2T1MTJ单元执行一次写“1”操作和一次读取操作。由图可知,在100 MHz系统的时钟频率下,本设计可在接到操作命令后的3个周期内完成上述常规存储模式的读写功能。
2.2 位逻辑运算功能和全加器运算
位逻辑计算是执行同一列BL中任意两个操作数(二进制符号记为SA和SB)之间按位逻辑计算。图5(b)展示了串行PIM方案对不同的输入操作数执行OR、AND和ADD运算的仿真结果。用于验证的输入操作数按输入顺序依次为(SA=1,SB=1),(SA=1,SB=0)和(SA=0,SB=0)。以输入操作数(SA=1,SB=1)为例,在执行位OR运算时,输出VOR/AND为高电平,在执行位AND运算时,输出VOR/AND也为高电平。随后,读取电路模块将OR和AND运算结果输出至组合逻辑模块得到XOR运算输出VXOR为低电平。最后,当ADD计算设置进位输入为高电平(CIN=1)时,在全加器逻辑模块SUM的输出VSUM和VOUT输出VC均为高电平。上述结果表明,在100 MHz时钟频率下,本设计可在接到操作命令后的3个周期内完成对两个输入操作数的OR、AND位逻辑运算,串行方案在第二次计算时完成一位全加器运算。
3 结果分析与比较
表2比较了基于1T1MTJ[1,5]、2T2MTJ[6]单元和本文提出的基于2T1MTJ单元的PIM架构。
上述PIM架构方案的阵列版图面积主要由MTJ器件所需写操作电流决定。假设存储阵列中的MTJ器件完全相同,考虑到写电流的要求,2T2MTJ方案和1T1MTJ方案中的单元存取晶体管尺寸应相当。因此2T2MTJ单元面积应为1T1MTJ单元的2倍。2T1MTJ方案在执行写操作时同时开启两个存取晶体管,因此可认为双管尺寸与两指结构1T1MTJ单管尺寸相当。
本文仿真比较了基于上述三种单元的PIM架构的写性能。由于2T2MTJ方案在写入时需要操作两个MTJ,因此在相同的写入电压和写入时间下存储单元内的写能耗是1T1MTJ和2T1MTJ方案的两倍,且写入正确率最低。此外,由于2T1MTJ方案拆分存取管减小了寄生电阻电容,提高了响应速度和电流,因此写入正确率略高于版图面积相同的1T1MTJ方案。
图5 功能实现
表2 基于1T1MTJ、2T2MTJ和2T1MTJ单元的PIM架构比较
读取操作时,在1T1MTJ方案和2T1MTJ方案的电路结构中,SA需配置参考单元(等效电阻Req)对经BL流入的读电流进行读取或位逻辑运算。采用互补结构的2T2MTJ方案在读取时无须配置参考单元,但需要根据互补的两组单元进行读取。因此,在常规存储读操作过程中,1T1MTJ和2T1MTJ方案在实际读操作中开启晶体管和读取MTJ的数量与2T2MTJ方案相当。相较而言,2T1MTJ方案仅需开启单管且单管面积为1T1MTJ方案单管面积的一半,因此可有效减小读电流干扰及避免误写操作。
在串行位逻辑运算模式下,3种结构除需要操作拟读取的存储单元外,1T1MTJ和2T1MTJ方案还需操作运算参考单元,2T2MTJ方案还需操作存储阵列中的逻辑控制位。因此,1T1MTJ所需开启晶体管和读取MTJ的数量均为2T2MTJ方案的一半。2T1MTJ方案由于采用部分前置AND/OR运算模式,晶体管和读取MTJ的数量介于1T1MTJ和2T2MTJ方案之间。在并行位逻辑运算模式下,2T1MTJ方案的工作模式与1T1MTJ方案相同且具有与常规存储模式相同的阵列读写优势。由于2T2MTJ无法实现并行计算,因此本文不在表2中做对比。
4 结论
本文提出了一种基于新型2T1MTJ存储单元结构的通用型PIM宏架构,可在常规存储模式、并行PIM模式与串行PIM模式下工作,在PIM模式下可实现布尔逻辑运算、全加器、移位/循环操作等功能,有助于解决“内存墙”问题,实现存内计算在人工智能和边缘计算等领域的应用。数模混合仿真结果表明,该方案在100 MHz时钟频率下执行一组位写入操作或者与/或位逻辑计算操作的时间均为3个周期。较基于1T1MTJ单元的PIM方案而言,该架构不仅不增加阵列面积,还可显著提升写操作可靠性和位逻辑运算正确率。此外,该架构的写入功耗、写入正确率和版图面积均优于基于2T2MTJ单元的PIM方案,是实现基于MRAM的高密度、低功耗、高可靠性的PIM方案的可行技术路线。