自旋存算一体芯片
技术领域
本发明涉及自旋电子技术领域,更具体的说是涉及一种自旋存算一体芯片。
背景技术
在传统冯诺依曼计算体系结构中,存储器与处理器是分离的,两者之间通过数据总线进行连接,数据处理需要在存储器与处理器之间来回传输。但是,随着大数据应用的兴起,海量数据的传输与处理使得传统冯诺依曼计算体系结构面临带宽与功耗的双重挑战,分别称为存储墙与功耗墙问题。为了解决这两个难题,近年来,受到人脑中突触能同时进行记忆和计算的启发,计算机架构中的存算一体(Processing-In-Memory,PIM)技术开始得到人们的广泛研究。传统的存算一体技术是将SRAM(静态随机存储器)和逻辑计算单元集成在一个单元中,但是由于SRAM的数据存储具有易失性并且存储单元面积较大,这种方式的存算一体技术仍旧面临静态功耗并且存储单元面积较大的问题。
近年来,一种新兴的基于自旋电子学的非易失存储器MRAM(MagneticRandomAccess Memory,MRAM)得到了广泛的关注,被誉为下一代计算机体系架构的关键技术。MRAM的存储原理是通过改变MTJ(磁性隧道结)自由层的磁场极化方向,得到两个不同的电阻状态,实现1比特数据存储。相比于SRAM,MRAM具有以下的优点:
1)MRAM具有非易失性,可以极大地降低静态功耗;
2)MRAM存储单元的存储面积小,可以实现数倍于SRAM的存储密度;
3)MRAM数据读取速度更快,读取时间约为0.5ns-10ns;
4)MRAM可编程次数106-1012,可以实现数据的多次反复读写。
现有的基于SRAM的存算一体技术对于解决海量数据的传输与处理问题仍存在静态功耗大和集成度低等问题,而基于MRAM的存算一体技术能够解决这些问题,因此开发基于MRAM的存算一体化芯片具有重要的现实意义。
发明内容
有鉴于此,本发明提供了一种自旋存算一体芯片,通过将MRAM内置到计算核心中,形成同时具有存储与计算功能自旋存算核心,并通过多个独立计算核心的互联形成自旋存算芯片,进一步通过多个芯片之间的互联形成处理终端,有效解决海量数据的传输与处理中的存储墙与功耗墙的问题,提高系统的稳定性、可靠性和处理效率。
为了实现上述目的,本发明采用如下技术方案:
一种自旋存算一体芯片,包括:自旋阵列模块和外围电路;
所述自旋阵列模块与所述外围电路相连;所述外围电路用于辅助所述自旋存算器进行数据的存储与计算;
所述自旋阵列模块包括阵列分布的一个以上的自旋存算器,相邻的所述自旋存算器之间相连并进行数据的传输,所述自旋存算器用于数据的存储与计算;
其中,所述自旋存算器中包括第一存储单元,所述第一存储单元用于存储需要长时间保存的数据,所述第一存储单元为MRAM存储阵列。
优选的,所述自旋存算器还包括第二存储单元、计算单元和控制单元;
所述第二存储单元用于缓存,来存储计算过程中产生的中间数据;
所述计算单元分别与所述第一存储单元和所述第二存储单元单元相连,用于将所述第一存储单元存储的数据经过计算后输送到所述第二存储单元;
所述控制单元分别与所述第一存储单元、所述第二存储单元和所述计算单元相连,用于控制所述第一存储单元、第二存储单元和所述计算单元工作。
优选的,所述MRAM存储阵列包括一个以上的MRAM存储单元,所述MRAM存储单元呈阵列分布;
所述计算单元中包括阵列分布的ALU,所述第一存储单元中的MRAM存储单元分别与所述ALU相连;
优选的,所述第二存储单元为MRAM存储阵列或SRAM存储阵列。
优选的,所述控制单元包括读写控制器、行地址译码器、列地址译码器、输入寻址单元和输出寻址单元;
所述读写控制器用于根据时钟信号来对整个所述自旋存算器的输入输出以及对所述第一存储单元和所述第二存储单元的寻址进行控制;
所述行地址译码器与所述列地址译码器用于将需要保存的数据写入所述第一存储单元;
所述输入寻址单元与所述计算单元相连,将需要处理的数据输入到所述计算单元中;
所述输出寻址单元与所述第二存储单元相连,将计算完成后的数据输入到所述第二存储单元中。
优选的,所述外围电路包括控制模块、选择器模块、输入寄存器模块、输入编码模块、读出放大器模块、输出寄存器模块和数据通信模块;
所述控制模块,用于对芯片的数据输入输出和计算存储过程进行控制;
所述选择器模块分别与所述自旋阵列模块和所述控制模块连接,用于选择所述自旋存算器;
所述输入寄存器模块和所述输入编码模块均连接所述控制模块和自旋阵列模块,分别用于寄存输入接口接收的数据和对数据进行编码;
所述读出放大器模块,连接所述自旋阵列模块,用于对所述自旋阵列模块进行数据读取,并输送至所述输出寄存器模块;
所述输出寄存器模块,连接所述读出放大器模块和所述控制模块,用于寄存数据并通过输出接口进行输出。
所述数据通信模块,用于不同自旋存算器之间的数据通信。
一种基于上述自旋存算一体芯片,还可以包括第三存储单元,所述第三存储单元为MRAM存储阵列,用于提供物理不可仿制功能,为所述自旋存算一体芯片提供唯一的身份标识。
一种包括自旋存算一体芯片的处理终端,包括:微处理器和至少一个所述自旋存算一体芯片,通过接口数据线连接所述微处理器和所述自旋存算一体芯片。
优选的,所述接口数据线包括:串行时钟数据线、主设备输入/从设备输出数据线、主设备输出/从设备输入数据线和使能信号数据线;
所述微处理器通过所述串行时钟数据线向所述自旋存算一体芯片传输时钟信号,所述时钟信号的频率可变;
所述微处理器通过所述主设备输入/从设备输出数据线向自旋存算芯片传输控制命令、待处理数据及地址信号;
所述自旋存算芯片通过所述主设备输出/从设备输入数据线向微处理器传输信号;
所述微处理器通过所述使能信号数据线向所述自旋存算一体芯片传输使能信号。
一种自旋存算一体芯片的控制方法,所述控制方法的具体步骤为:
在所述控制模块的控制下,将权重数据经过所述输入接口传送到所述输入寄存器模块,完成数据缓存;
将所述输入寄存器缓存的权重数据,传送到所述输入编码模块,完成数据编码;
在所述读写控制器的控制下,将编码后的权重数据传送到阵列分布的所述第一存储单元中,完成权重数据存储;
在所述读写控制器的控制下,将目标数据经过所述输入寻址单元传送到所述计算单元中;
在所述计算单元中,权重数据和目标数据完成算术逻辑运算;
运算后的结果经过所述输出寻址单元传送到所述第二存储单元中,完成输出数据的缓存;
在所述控制模块的控制下,输出数据经过所述读出放大器模块的放大后,传送到所述输出寄存器模块,然后经过输出接口进入到所述数据通信模块。
需要说明的是:其中权重数据和目标数据均为由芯片外部所获取的数据。
经由上述的技术方案可知,与现有技术相比:
首先,本发明公开提供了一种自旋存算一体芯片,通过将MRAM内置到计算核心中,形成同时具有存储与计算功能自旋存算核心即自旋存算器,并由多个自旋存算器组成自旋阵列模块,自旋阵列模块与外围电路形成了自旋存算一体芯片,本发明替代了传统的冯诺依曼架构中集中式的存储器和处理器,减少了因频繁的数据访问造成的能量损失和计算时延,显著提高了运算的速度,降低了芯片在处理大量数据时的系统功耗。
而且本发明在第一存储单元和第二存储单元的基础上还可以增加第三存储单元,第三存储单元为芯片提供了一种物理不可仿制功能PUF,利用芯片制造过程引入的不可控差异作为芯片的特征信息,第三存储单元在特定的外部信号刺激下产生一组特定的逻辑状态作为唯一的识别该自旋存算芯片的电子标识,能有效减少设备连接时产生的安全漏洞,在物理层面提供安全保障,在物联网时代具有重要的实际意义。
其次,本发明还进一步通过多个自旋存算一体芯片之间的互联形成处理终端,有效解决海量数据的传输与处理中的存储墙与功耗墙的问题,提高系统的稳定性、可靠性和处理效率。
另外,本发明还公开了一种自旋存算一体芯片的控制方法,能大量高效地完成数据的计算处理,可适用于多个领域,为需要进行复杂且大量计算的工程提供高效快速且稳定的计算支持。
综上所述,本发明不仅具有超高密度计算性能,能实现高并行和原位计算,而且其存储功耗低,节能环保,且多芯片间可无缝连接,更适合大规模推广使用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1附图为本发明提供的自旋存算一体芯片的整体架构示意图;
图2附图为本发明提供的自旋存算器的结构示意图;
图3附图为本发明提供的自旋存算器中连接关系示意图;
图4附图为本发明提供的第一存储单元与计算单元连接示意图;
图5附图为本发明提供的第一存储单元的内部结构示意图;
图6附图为本发明提供的STT-MRAM存储单元示意图;
图7附图为本发明提供的SOT-MRAM存储单元示意图;
图8附图为本发明提供的一种包括第三存储单元具有PUF功能的自旋存算器的结构示意图;
图9附图为本发明提供的一种包括自旋存算一体芯片的处理终端的结构示意图;
图10附图为本发明提供的一种自旋存算一体芯片的控制方法流程图
图11附图为本发明提供的一种自旋存算一体芯片实现CNN(卷积神经网络)映射关系示意图;
图12附图为本发明提供的一种自旋存算一体芯片完成CNN(卷积神经网络)计算的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
本发明实施例公开了一种自旋存算一体芯片,如图1所示,包括:自旋阵列模块和外围电路;
自旋阵列模块与外围电路相连;
自旋阵列模块包括阵列分布的一个以上的自旋存算器,相邻的自旋存算器之间相连并进行数据的传输,自旋存算器用于数据的存储与计算;
外围电路用于辅助自旋存算器进行数据的存储与计算,包括控制模块、选择器模块、输入寄存器模块、输入编码模块、读出放大器模块、输出寄存器模块和数据通信模块;
控制模块,用于对芯片的数据输入输出和计算存储过程进行控制;
选择器模块分别与自旋阵列模块和控制模块连接,用于选择自旋存算器;
输入寄存器模块和输入编码模块均连接控制模块和自旋阵列模块,分别用于寄存输入接口接收的数据和对数据进行编码;
读出放大器模块,连接自旋阵列模块,用于对自旋阵列模块进行数据读取,并输送至输出寄存器模块;
输出寄存器模块,连接读出放大器模块和控制模块,用于寄存数据并通过输出接口进行输出。
数据通信模块,用于不同自旋存算器之间的数据通信。
其中,如图2所示,自旋存算器中包括第一存储单元、第二存储单元、计算单元和控制单元;
第一存储单元用于存储需要长时间保存的数据且第一存储单元为MRAM存储阵列;
第二存储单元用于缓存,来存储计算过程中产生的中间数据。
计算单元分别与第一存储单元和第二存储单元单元相连,用于将第一存储单元存储的数据经过计算后输送到第二存储单元;
如图3所示,控制单元分别与第一存储单元、第二存储单元和计算单元相连,用于控制第一存储单元、第二存储单元和计算单元工作。
更进一步地,MRAM存储阵列包括一个以上的MRAM存储单元,MRAM存储单元呈阵列分布。
更进一步地,如图4所示,计算单元中包括阵列分布的ALU,第一存储单元中的MRAM存储单元分别与所述ALU相连第一存储单元中的MRAM存储单元分别与计算单元中的ALU相连,其中,ALU为算术逻辑部件运算器。
更进一步地,第二存储单元为MRAM存储阵列或SRAM存储阵列。
更进一步地,控制单元包括读写控制器、行地址译码器、列地址译码器、输入寻址单元和输出寻址单元;
读写控制器用于根据时钟信号来对整个自旋存算器的输入输出以及对第一存储单元和第二存储单元的寻址进行控制;
行地址译码器与列地址译码器用于将需要保存的数据写入第一存储单元;
输入寻址单元与计算单元相连,将需要处理的数据输入到计算单元中;
输出寻址单元与第二存储单元相连,将计算完成后的数据输入到第二存储单元中。
具体地,在图4中示例了每一个MRAM单元存储四个数据的情况,权重0-3。将权重0-3输入到计算单元中,与输入数据D1-D4分别在ALU中发生运算,该运算可以是逻辑运算也可以是算术运算。下一行的ALU从上一层接收的可以是计算的结果,也可以仍然是输入数据,视具体情况而定。每一个MRAM单元可以存储的数据的个数以及每一个数据的位宽由MRAM单元中行和列的数目所决定,如图5所示,图5为MRAM存储单元的内部结构示意图,是一个由4*4个存储cell组成的存储阵列,可以存储四个数据权重0-3。由于每一个cell可以存储1bit的数据(0或者1)。因此每一个数据的位宽为4bit。
如图6所示,图6给出了一种MRAM存储单元的实施例。该MRAM存储单元为基于STT-MRAM的存储单元。该器件为两端器件,数据的读和写都是通过源极线(SL)和位线(BL)来完成。具体来说,当字线(WL)打开时,晶体管导通,电流可以流经由自由层、隧穿层和参考层组成的MTJ(磁隧道结)。利用MTJ两种不同的电阻状态可以实现1bit数据的存储。具体来说:如果MTJ为平行状态,即自由层与参考层的电子自旋方向相同,此时MTJ处于低阻状态,流经MTJ的电流为大电流,存储数据为0,反之亦然。
如图7所示,图7给出了另外一种MRAM存储单元的实施例,该MRAM存储单元为SOT-MRAM(自旋轨道矩磁存储器)。其中与STT-MRAM相同的是都是通过MTJ的磁矩翻转来实现数据的存储。不同地方在于电流的注入方式不同,读和写是分开进行的。在SOT-MRAM中,一个cell包含一个SOT器件和两个晶体管。写电流注入底部非磁性金属导线(写线)使磁隧道结自由层磁化方向翻转,读线被用来读取磁阻状态;写电流不穿过超薄势垒层,不对其产生破坏。
实施例二:
一种基于上述自旋存算一体芯片,如图8所示,还可以包括第三存储单元,所述第三存储单元为MRAM存储阵列,用于提供物理不可仿制功能,为所述自旋存算一体芯片提供唯一的身份标识。
需要进一步说明的是:本实施例中的第三存储单元可以独立存在于第一存储单元之外,也可以直接由第一存储单元中的一部分MRAM存储阵列作为第三存储单元,与所述第一存储单元和所述控制单元相连。
每个芯片在制造过程中不可避免地会产生工艺参数的差异,物理不可仿制功能即利用芯片制造过程引入的不可控差异作为芯片的特征信息,第三存储单元在特定的外部信号刺激下产生一组特定的逻辑状态,利用逻辑状态作为唯一的识别该自旋存算芯片的电子标识,该具有该功能的芯片能有效减少设备连接时产生的安全漏洞,在物理层面提供安全保障,在物联网时代具有重要的实际意义。
实施例三:
一种包括自旋存算一体芯片的处理终端,包括:微处理器和至少一自旋存算一体芯片,通过接口数据线连接微处理器和自旋存算一体芯片。
更进一步地,接口数据线包括:串行时钟数据线、主设备输入/从设备输出数据线、主设备输出/从设备输入数据线和使能信号数据线;
微处理器通过串行时钟数据线向自旋存算一体芯片传输时钟信号,时钟信号的频率可变;
微处理器通过主设备输入/从设备输出数据线向自旋存算芯片传输控制命令、待处理数据及地址信号;
自旋存算芯片通过主设备输出/从设备输入数据线向微处理器传输信号;
微处理器通过使能信号数据线向自旋存算一体芯片传输使能信号。
具体地,图9给出了由本发明所提出的自旋存算一体芯片组成的SoC结构示意图。多个自旋存算一体芯片可以通过数据总线集成到一个SoC中,在与其它的模块如系统控制模块、控制模块、外设与接口模块完成整合后,可以完成更复杂的功能,并实现很高的系统集成度。
实施例四:
如图10所示,一种自旋存算一体芯片的控制方法,控制方法的具体步骤为:
在控制模块的控制下,将权重数据经过输入接口传送到输入寄存器模块,完成数据缓存;
将输入寄存器缓存的权重数据,传送到输入编码模块,完成数据编码;
在读写控制器的控制下,将编码后的权重数据传送到第一存储单元中,完成权重数据存储;
在读写控制器的控制下,将目标数据经过输入寻址单元传送到计算单元中;
在计算单元中,权重数据和目标数据完成算术逻辑运算;
运算后的结果经过输出寻址单元传送到第二存储单元中,完成输出数据的缓存;
在控制模块的控制下,输出数据经过读出放大器模块的放大后,传送到输出寄存器模块,然后经过输出接口进入到数据通信模块。
实施例五:
一种通过自旋存算一体芯片完成卷积神经网络计算的方法,图11为本本发明中所提供的自旋存算一体芯片实现卷积神经网络映射关系示意图,图12给出了利用本发明所提出的自旋存算一体芯片完成CNN(卷积神经网络)计算的示意图。由于卷积神经网络中包含许多卷积核,需要完成大量的矩阵乘加运算,因此特别适合利用本发明所提出的芯片完成相应的计算任务。在MRAM存储阵列中,根据卷积核的大小,利用多个MRAM存储单元实现卷积核中权重数据的存储;然后将输入数据输入到计算单元中,在计算单元中完成卷积运算,然后将数据输出。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。