一种基于磁性随机存储器的存内二值化神经网络计算电路

文档序号:27544523发布日期:2021-11-24 19:46阅读:133来源:国知局
一种基于磁性随机存储器的存内二值化神经网络计算电路

1.本发明涉及集成电路领域,尤其是一种基于磁性随机存储器的存内二值化神经网络计算电路。


背景技术:

2.人工智能市场前景一直十分广阔。随着人工智能技术的逐渐成熟,科技、制造业等业界巨头布局的深入,应用场景不断扩展,为人工智能芯片行业提供了快速增长的发展空间。人工智能芯片算力的提升是实现人工智能的“基础保障”。能否开发出具有超高运算能力、符合市场需求的芯片,已成为人工智能领域可持续发展的重要因素。而决定人工智能芯片质量的主要因素,就是神经网络算法和硬件实现设计。
3.近年来对深度学习的研究表明,二值化神经网络(bnn)在精度损失较小的情况下,能够显著降低计算和存储开销。通过在神经网络中将输入和权重二值化为+1或

1,乘法和累加(mac)操作可以被内存中的同或xnor操作和位累加所取代。这在硬件电路中得到了很好的实现。全连接层的结构如图1所示,目标空间的任一维,都会受到源空间的每一维的影响。二值化的全连接层也可用同或xnor代替乘法,而加权和由累加器得到。二值神经网络bnn可以减少模型的存储占用和计算量,大大加快神经网络的推理速度。但是二值化必然会导致严重的信息丢失,量化函数的不连续也会给深度神经网络的优化带来困难。
4.以上对存储技术的激励包括两个主要应用。首先是智能设备;新型非易失存储器由于其实时响应、关键成本和能耗方面的特性被普遍运用于智能设备。第二个应用是物联网边缘设备;特别是高容量和小待机功率的新型非易失性逻辑。
5.处理深度学习中的神经网络算法,处理器将使用大量的乘法和累加运算,用于卷积神经网络或全连通神经网络,因此在此过程中会产生大量的中间数据。采用传统的冯
·
诺依曼结构,数据必须通过总线移动到存储器中。访问存储器外部的数据通常需要长时间的延迟和较高的功耗,因此ai芯片在能量效率提升方面存在很多瓶颈。
6.由此,存内计算的概念被提出。在存储内进行基本的逻辑操作、或者乘法和累加操作,将减少中间大量数据的移动,特别是跨多个不同的存储层移动数据。随着大容量的片上存储器不断发展,甚至可以在片上存储所有的权重,而不必像传统的冯
·
诺伊曼结构那样通过内存总线访问外部存储器。但是现在主流内存 sram和dram都是掉电易失性的,大量的存储单元将很大程度地增加功耗,因此业界亟需掉电仍能进行数据保存的非易失性存储器的发展。目前常见的新型非挥发性存储器包括铁电随机存取存储器(fram)、磁阻式随机存取存储器 (mram)、相变随机存取存储器(pram)等。
7.自旋转移扭矩磁性阵列,即stt

mram,通常采用1t+1mtj结构。mtj 结构由固定层、自由层和隧穿势垒组成。固定层具有固定的磁化方向,自由层的磁化方向可随外加自旋极化电流的变化而变化。它具有良好的可扩展性和高耐久性,相对较低的写入能耗,并与cmos工艺兼容。但mram的设计与应用也面临着很多挑战,如,高阻与低阻的比值较小,即隧道磁阻率(tmr),且其变化也很大。这意味着mram的读取裕度较低,很容易遭受读干扰而造成读
破坏。
8.此外,stt

mram的单元面积相比dram单元大得多,但是在2017年 isscc,sk hynix和toshiba宣布了4gb的stt

mram,sttmram和dram 之间的差距越来越小。
9.采用stt

mram这种新型非易失性存储器代替传统的存储器做存内计算,将同时表现出低静态功耗和打破存储墙限制的两大优势。


技术实现要素:

10.技术问题:针对现有技术中的上述不足之处,本发明提出一种基于磁性随机存储器的存内二值化神经网络计算电路,具体是基于自旋转矩转移磁随机存取存储器stt

mram设计采用四个晶体管和两个磁性隧道结(mtj)(4t

2m)位元利用电流型灵敏放大器完成二值卷积和全连接运算;并且探讨了不同隧道磁阻率tmr和不同尺寸mtj对mram读良率的影响,通过将读良率量化到二值神经网络模型中,进行了能效与性能之间的权衡。与传统存内二值化神经网络计算方式相比,该电路将二值化神经网络卷积运算能效提高50%以上。
11.技术方案:本发明的一种基于磁性随机存储器的存内二值化神经网络计算电路,包括计算阵列输入编码器、行地址译码器、字线wl驱动电路、列地址译码器、位线bl/源线sl驱动电路、权重存储位元阵列、灵敏放大器组、累加器组和寄存器组;
12.计算阵列输入编码器的输出端连接行地址译码器的输入端,行地址译码器的输出端连接字线wl驱动电路,字线wl驱动电路通过字线与权重存储位元阵列连接;
13.列地址译码器的输出端连接位线bl/源线sl驱动电路,位线bl/源线sl驱动电路通过位线和源线与权重存储位元阵列连接;
14.灵敏放大器组通过源线与权重存储位元阵列连接,灵敏放大器组的输出端与累加器组以及寄存器组连接;
15.所述权重存储位元阵列包括多个权重存储位元,呈n*n矩形阵列排布;
16.所述灵敏放大器组包括多个灵敏放大器,灵敏放大器的个数与权重存储位元列数相同;每个灵敏放大器对应一列权重存储位元,每个灵敏放大器的输出端连接一个累加器和寄存器;
17.所述字线共有n组,每组字线包括字线wl1和字线wl0;每组字线对应连接一行权重存储位元;
18.所述源线共有n组,每组源线包括源线sl和源线slb;每组源线对应连接一列权重存储位元以及一个灵敏放大器;
19.所述位线共有n组,每组位线包括位线bl和位线blb;每组位线对应连接一列权重存储位元。
20.计算阵列输入编码器用于接收二值化神经网络输入数据,并对输入数据进行编码以匹配行地址译码器的输入要求;行地址译码器对输入的数据译码,并通过字线wl驱动电路给存储阵列提供字线信号,进行卷积或全连接运算;
21.卷积运算时,行地址译码器通过字线wl驱动电路同时激活卷积核权重所在位元的所有字线,同时选通权重存储位元;多个字线译码为并行输入,源线总电流反映了各个权重存储位元运算结果的总和,并经过灵敏放大器读取出运算结果,作为二值化输出结果,存入寄存器中;
22.全连接运算时,行地址译码器通过字线wl驱动电路逐行激活字线,逐行选通权重存储位元,通过灵敏放大器对比源线上电流大小读取出运算结果,单步运算结果通过累加器加和,存入寄存器。
23.有益效果:本发明采用上述技术方案,具有以下有益效果:
24.(1)本发明基于stt

mram构建二值化神经网络计算电路,存储在 mram阵列内部的数据不会因为电源关断而丢失,符合神经网络应用中大量权重几乎不更新的存储需求,有效地减少数据维持功耗。
25.(2)本发明是一种存内二值化神经网络计算电路,突破了“内存墙”的限制,数据不需要在存储器和计算单元之间来回传输,而是采用了非冯诺依曼架构的存算一体范式,可以有效地节省数据传输的时间,同时节省数据传输消耗的功耗,并将计算能效最高提升50%以上。
26.(3)本发明基于tsmc

28nm工艺对设计的电路进行仿真,探讨了不同隧道磁阻率(tmr)和不同尺寸磁性隧道结mtj对读良率的影响;通过将读良率量化到模型中,研究了能效与性能之间的权衡。
27.由上述本发明所声明的技术方案可看出,本发明所提出的基于自旋转矩转移磁随机存取存储器(stt

mram)的存内二值化神经网络计算电路具备断电数据不丢失以及可以进行存内二值化神经网络运算的特点,并能够显著提高二值化卷积运算的能效。
附图说明
28.为了更清晰地说明本发明实施例的技术方案,下面将对实施例描述总所需要使用的附图作简单减少,显而易见地,下列描述中附图仅仅是本发明地一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
29.图1是背景技术提供的二值化神经网络连接示意图。
30.图2是本发明二值化神经网络计算结构图。
31.图3是权重存储位元结构图。
32.图4是权重存储位元的不同输入和权重与输出对应图。
33.图5是一列存储位元作卷积运算的原理图。
34.图6是电路偏移消除电流采样型灵敏放大器示意图。
35.图7是灵敏放大器读取数据时的时序图。
36.图8是在不同的tmr和不同的mtj cd下的读良率对比图。
37.图9是不同mtj cd的电阻分布示意图。
38.图10是用于mnist评估的bnn拓扑图。
39.图11是不同mtj cd和不同tmr的二值化神经网络的性能对比图。
具体实施方式
40.下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
41.一种基于磁性随机存储器的存内二值化神经网络计算电路,如图2所示,包括计算阵列输入编码器、行地址译码器、字线wl驱动电路、列地址译码器、位线bl/源线sl驱动电路、权重存储位元阵列、灵敏放大器组、累加器组和寄存器组。
42.计算阵列输入编码器的输出端连接行地址译码器的输入端,行地址译码器的输出端连接字线wl驱动电路,字线wl驱动电路通过字线与权重存储位元阵列连接;
43.列地址译码器的输出端连接位线bl/源线sl驱动电路,位线bl/源线sl驱动电路通过位线和源线与权重存储位元阵列连接;
44.灵敏放大器组通过源线与权重存储位元阵列连接,灵敏放大器组的输出端与累加器组以及寄存器组连接。
45.所述权重存储位元阵列包括多个权重存储位元,呈n*n矩形阵列排布;
46.所述灵敏放大器组包括多个灵敏放大器,灵敏放大器的个数与权重存储位元列数相同;每个灵敏放大器对应一列权重存储位元。
47.所述字线共有n组,每组字线包括字线wl1和字线wl0;每组字线对应连接一行权重存储位元;
48.所述源线共有n组,每组源线包括源线sl和源线slb;每组源线对应连接一列权重存储位元;
49.所述位线共有n组,每组位线包括位线bl和位线blb;每组位线对应连接一列权重存储位元;
50.计算阵列输入编码器用于接收二值化神经网络输入数据,并对输入数据进行编码以匹配行地址译码器的输入要求;行地址译码器对输入的数据译码,并通过字线wl驱动电路给存储阵列提供字线信号,进行卷积或全连接运算;
51.列地址译码器根据得到的列地址选通所需的权重存储位元列。在读取卷积或全连接运算的数据结果时,列地址译码器通过位线bl/源线sl驱动电路将权重存储位元所在列的位线bl和blb接地,并控制与源线sl和slb相连的灵敏放大器开始通过权重存储位元向位线bl和blb放电。在进行卷积运算时,源线中的电流是该列各权重存储位元支路电流的总和。最后,灵敏放大器源线sl和slb的电流差得出二值化运算结果。
52.卷积运算时,行地址译码器通过字线wl驱动电路同时激活卷积核权重所在位元的所有字线,同时选通权重存储位元;多个字线译码为并行输入,源线总电流反映了各个权重存储位元运算结果的总和,并经过灵敏放大器读取出运算结果,作为二值化输出结果,即通过图2中路径<1>作为卷积的结果输出,存入寄存器中;
53.全连接运算时,行地址译码器通过字线wl驱动电路逐行激活字线,逐行选通权重存储位元,通过灵敏放大器对比源线上电流大小读取出运算结果,单步运算结果通过累加器加和,存入寄存器,即通过图2中路径<2>输出。
54.所述权重存储位元包括四个nmos管和两个自旋磁隧道结(stt

mtj),构成的4t2m结构,如图3所示,所述权重存储位元包含第一nmos管n1,第二 nmos管n2,第三nmos管n3,第四nmos管n4,第一磁性隧道结mtj1,第二磁性隧道结mtj2;
55.第一nmos管n1的栅极和第三nmos管n3的栅极分别与字线wl0连接;第二nmos管n2的栅极和第四nmos管n4的栅极分别与字线wl1连接;第一 nmos管n1的漏极和第二nmos管n2的漏极分别与第一磁性隧道结mtj1的固定层连接;第三nmos管n3的漏极和第四nmos管n4的
漏极分别与第二磁性隧道结mtj2的固定层连接;第一磁性隧道结mtj1的自由层与位线bl连接;第二磁性隧道结mtj2的自由层与位线blb连接;第二nmos管n2的源极和第三 nmos管n3的源极分别与源线sl连接;第一nmos管n1的源极和第四nmos 管n4的源极分别与源线slb连接。
56.如图4所示,权重存储位元的存储数据是一个突触权重。当第一磁性隧道结mtj1处于平行状态(p)即低阻态,第二磁性隧道结mtj2处于反平行状态(ap) 即高阻态时,表示权重
“‑
1”;当第一磁性隧道结mtj1处于反平行状态(ap),第二磁性隧道结mtj2处于平行状态(p)时,表示权重“1”;
57.两条字线的状态表示输入数据。字线wl0处于高电平“1”状态,字线wl1处于低电平“0”状态时,表示输入数据是“1”;字线wl0处于低电平“0”状态,字线 wl1处于高电平“1”状态时,表示输入数据是
“‑
1”;
58.源线sl上的电流小于源线slb上的电流时,表示输出数据为“1”;源线slb 上的电流小于源线sl上的电流时,表示输出数据是
“‑
1”;
59.进行同或xnor操作时,先将位线bl与blb拉高,再把输入数据加到字线上,根据字线的不同输入,权重存储位元中不同的nmos晶体管导通,高电平位线通过mtj和nmos管放电到源线。根据mtj阻态不同,两条源线上的电流大小不同,即输出结果不同。如图4所示,两种数据输入与二种权重的组合方式,对应同或xnor的四种输出结果。
60.通过在二元神经网络中将输入数据和权重二值化为+1或

1,乘法和累加 (mac)操作可以被内存中的同或xnor操作所取代。所述的权重存储位元与电流型灵敏放大器(csa)可以完成同或xnor操作,所以可以完成乘法和累加(mac) 操作,多组按位对齐的计算单元同时工作可以一步完成存内二值化神经网络卷积操作,例如,九个按位对齐的权重存储位元同时工作可完成3
×
3比特二值化卷积运算。电流型灵敏放大器csa输出端接累加器,串行工作可以完成二值神经网络全连接运算。由于mram自身具有非易失、极低待机功耗的特性,且存内计算又可以进一步克服“内存墙”数据传输时间消耗大,功耗大的困难,相比传统冯诺依曼架构的神经网络加速器,本发明有效提升二值化神经网络的计算速度和能效。
61.如图5所示,九个权重存储位元和一个灵敏放大器可执行3
×
3卷积操作。九个权重存储位元排成一列,共用一组源线,以及一组位线;源线连接灵敏放大器 (sa)输入端。通过九个权重存储位元进行同或xnor存内计算实现卷积中的二值化乘法,通过并联电路电流相加的特性实现了累加操作。当九个权重存储位元的字线同时被激活时,源线电流i
sl
和i
slb
将根据两条源线上多个mtj的电阻不同而不同。表1列出了卷积中的所有源线电流组合,共有十种情况。两源线上电流差最大时,一条源线电流9i
ap
,另一条源线电流9i
p
;最坏的情况是两源线上电流差最小的情况,一条源线电流5i
ap
+4i
p
,另一条源线电流4i
ap
+5i
p
,也就是4*(

1)+5*1或4*1+5*(

1)的乘累加组合。因为电流差越小会给灵敏放大器进行电流比较带来越大的难度。当加权和为正时灵敏放大器输出高电平,当加权和为负时输出低电平。对于完全连接的操作,行译码器逐行激活各字线,并在灵敏放大后进行位计数。其中,i
ap
表示权重存储位元中一个nmos管和一个反平行状态的mtj放电时源线上的电流,i
p
表示权重存储位元中一个nmos管和一个平行状态的mtj放电时源线上的电流。
62.表1卷积运算中所有源线电流组合列表
[0063][0064]
所述灵敏放大器是电路偏移消除电流采样型灵敏放大器(occs sa),用于实现所述存储阵列的读操作,将权重存储位元中的电阻参数转化为电流参数并以数字信号的形式输出。此实施案例中采用电路偏移消除电流采样型灵敏放大器 (occs sa)来比较源线sl和slb之间的电流差;如图6所示,灵敏放大器包括锁存部分和灵敏放大部分。输入到灵敏放大器的控制信号包括用于预充电控制的pre、用于放大使能控制的amp和用于锁存启用的lat;灵敏放大器的锁存部分有两个源极和漏极相连的mos管,用作电容。
[0065]
图7是灵敏放大器时序图,灵敏放大器读取数据过程包括两个阶段,第一阶段先选通pre进行预充电,开启对应nmos,预充后节点sa1和sa2(vsa1和 vsa2)处的电压形成较小的压差,分别存储在两mos管电容,在经过足够的预充电时间后,源线sl和slb两端的电流达到恒定状态,此时源线sl和slb上的电流差距达到一定大小,进入第二阶段,此时pre变为低电平,放大使能信号amp变为高电平,通过强正反馈结构快速放大引电流差引起的压差,且和第一阶段中vsa1与vsa2的大小关系相反,快速实现数字电路高电平和低电平的输出,最后开启锁存器,锁存得到的读取结果。
[0066]
本实施例采用verilog

a stt

mtj模型和tsmc28nm cmos工艺进行了 spice级仿真。在不同tmr和mtj特征尺寸(cd)下的模拟结果,读良率与 tmr呈正相关,与mtj

cd呈负相关。mtj

cd越小,读良率越高,最高可达 99.8%。读良率与tmr呈显著正相关,与mtj

cd呈显著负相关。图9显示了 mtj cd与mtj电阻之间的关系。其中mtj电阻公式如下:
[0067][0068]
其中t
ox
为mtj氧化物隧道层厚度,为固定层和自由层之间的角度,area 为mtj的面积,f为初始化电阻系数。
[0069]
在相同的tmr下,较小的mtj cd使得mtj的低阻阻值较高,因而高电阻和低电阻的区别变大。因此,较小的mtj cd可以获得更高的读裕度。其中读裕度的示意如图6所示。
[0070]
如图10所示,设计了一个由两个卷积层和一个完全连通层组成的二值神经网络bnn模型作为分类器。为了测试所设计的二值神经网络bnn的性能,我们使用mnist手写体数字作为数据集,将读良率量化为模型来表示硬件参数,当读取过程失败时,结果将发生反转,即result=(

1)*result。
[0071]
卷积层的运算步骤如下:先确定输入矩阵中覆盖卷积核的位置,再将卷积核中的每个元素与对应重叠位置的输入相乘,将上述乘积相加就得到了一次卷积的结果。根据指定的步长和方向选择输入矩阵中的下一位置重复此操作,结果存放在输出矩阵的相应位
置,最终得到卷积层的完整输出矩阵并作为下一层的输入。根据二值化卷积神经网络的理论:
[0072][0073]
其中i输入,w为非二值化的权重,b为二值化的权重,α为缩放因子,表示没有乘法的卷积运算。因此计算时,乘法转化成为位运算。
[0074]
在进行二值化卷积运算时,9组按位对齐共用源线的权重存储位元同时选通, 9对经过编码的字线输入为卷积输入,9组权重存储位元为卷积核,每一组存储位元的同或xnor运算结果均反应在对两条源线电流差异的贡献上,通过并联电流相加原理实现累加,通过电流型灵敏放大器读取两条源线上的电流差异,仅需读取一次即可实现3
×
3卷积计算的二值化乘法及累加,直接输出卷积计算的二值化结果保存在寄存器组中,乘累加和大于0时输出高电平,否则输出低电平。
[0075]
全连接层起到特征加权和分类器的作用,其本质就是由一个特征空间线性变换到另一个特征空间。目标向量中的任一数都是源向量所有数据的加权之和。在实际使用中,全连接层可以转化为卷积核为1x1的卷积,再做求和。本发明采用的就是此法。
[0076]
在进行二值化全连接操作时,由于全连接操作的乘累加运算位数较多无法通过一次读取操作完成运算,因此需对各字线逐行选通,逐行读取进行同或xnor 运算,并将运算结果输出至累加器组,进行多位计算结果的累加操作,最终可实现全连接层计算。
[0077]
图11显示了不同mtj cd和不同tmr的二值神经网络的性能。如我们所见,在较高的tmr下,精度的下降在可接受范围内。然而,较低的tmr和较大的mtj cd会造成较低的读良率,导致过多的中间结果误差,进而导致精度的急剧下降。当mtj小于35nm时,tmr大于2,mtj小于40nm时tmr大于 1.5,准确率可达95%以上(损失<1.8%)。
[0078]
表2展示了逐行完成卷积和单步完成卷积之间的性能差异。在tmr和mtj 特征尺寸相同的情况下,单步卷积比逐行卷积节能51.2%,但带来更多的精度损失。因此,需要在能效和精度损失之间进行权衡。
[0079]
表2节能与精度损失之间的权衡表
[0080][0081]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,
都应涵盖在本发明的保护范围内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1