当前位置: 首页 > 专利查询>山东大学专利>正文

一种提高存算一体阵列计算精度的电路和方法技术

技术编号:29227528 阅读:22 留言:0更新日期:2021-07-10 01:14
本发明专利技术公开一种提高存算一体阵列计算精度的电路和方法,本方法使用电路串联来替代大量的解方程组过程,提高了神经态计算中的速率。本发明专利技术不仅可以在神经态计算中使用,也可以在其它使用大规模阵列进行多值存储中进行精度恢复。与进行整个阵列的基尔霍夫方程组计算方法对互连电阻效应和潜路问题的归一化模拟精度达到了99%以上。拟精度达到了99%以上。拟精度达到了99%以上。

【技术实现步骤摘要】
一种提高存算一体阵列计算精度的电路和方法


[0001]本专利技术涉及存储器领域,具体是一种提高存算一体阵列计算精度的电路和方法。

技术介绍

[0002]目前运用在人工智能计算中的存储器包括阻变存储器、相变存储器、铁电隧穿结等。这些存储器通过不同的方式实现了多值存储的功能,并且可以通过加入一定量的电压或电流,可重复的实现电阻的变化。
[0003]随着存储器阵列的扩大以及对计算精度要求的提高,阵列中的互连电阻效应和潜路问题对计算的影响也越来越大,而运用传统的方法,通过对整个阵列使用解基尔霍夫方程组来将互连电阻效应和潜路问题纳入训练过程需要很大的计算量。因此,快速的获得互连电阻效应和潜路问题的计算结果是非常必要的。
[0004]图1给出了理想状态下使用存储器阵列进行多重累计计算(MAC)的示意图。输出电流I是流经这一列的所有存储器的电流和,且与其它列的存储器存储状态没有关系。当改变输入的电压或其中某些存储器的存储状态时,输出的电流会得到相应的改变。这就使输出的电流与这一列中每一个存储器的存储状态和输入电压都形成了一个对应关系。
[0005]图2给出了深度神经网络(DNN)的结构与存储器阵列的对应关系。深度学习网络的结构是由输入层、隐藏层和输出层构成,其中隐藏层可以有一个或多个,层与层之间是全连接的,即第i层的某一个神经元与第i+1层的每一个神经元相连,每个神经元都通过一个确定的对应关系来传播信息,并通过反向传播算法(BP)来调整这个对应关系,达到学习的目的。存储器阵列中每一列代表了一个神经元,通过输入较小的电压V来读取这列存储器的存储信息,即这个神经元与上一层每一个神经元的对应关系。输出电流I是一整列存储器输出电流的和,与下一层阵列相连,形成了上一层每一个神经元与下一层神经元的全连接。在反向传播过程中,通过反馈的电流来改变存储器的存储信息,调整每一个神经元的对应关系达到学习的目的。
[0006]图3是实际状态下存储器阵列的示意图,其中,R
wl
和R
bl
为阵列的线电阻,V是输入的电压,I是输出的电流。在这种电阻横杆式阵列中,每一个输出的电流并不是单单通过这一列存储器所输出的电流和,它还包括了经历了多个线电阻R
wl
和R
bl
与某一存储器串联,以及其它潜在回路并联的总电流(如R
1n
两端还包含了R
1i
、R
2i
、R
2n
三处串联所形成的潜在回路),当存储器阵列较大时,所得到的数值与理想值会有较大的偏差,在计算过程中,如果忽略了这种偏差,就会造成较大的误差,降低整个模型的学习精度。
[0007]目前,主要解决互连电阻效应和潜路问题的方法主要是将其纳入训练过程中,对整个阵列使用基尔霍夫方程组求解,但在较大的阵列中,对每一个存储单元的计算就需要几千甚至更多的方程组求解,这就需要大量的时间来计算这些数值。在深度学习网络中,这种超长时间的计算是不能被容忍的。

技术实现思路

[0008]针对现有存算一体阵列中在互连电阻效应和潜路问题在计算速率方面存在的不足,本专利技术提供一种提高存算一体阵列计算精度的电路和方法,通过附加两个可重构的电路来等效替代基尔霍夫方程组计算,从而避免大量使用基尔霍夫方程组求解,提高计算效率。
[0009]为了解决所述技术问题,本专利技术采用的技术方案是:一种提高存算一体阵列计算精度的电路,包括第一附加电路和第二附加电路,第一附加电路连接于存算一体阵列的输入字线处,其大小与存算一体阵列的行数相同,包括m个串联在存算一体阵列每行输入处的第一补偿元件,m为存算一体阵列的行数;第二附加电路连接于存算一体阵列的输出位线处,其大小与存算一体阵列的列数相同,包括n个串联在存算一体阵列每列输出处的第二补偿元件,n为存算一体帧的列数;第一附加电路、第二附加电路与存算一体阵列串联,从而实现对存算一体阵列的阻值修正;第一补偿元件和第二补偿元件均为电阻性元件。
[0010]进一步的,第一补偿元件和第二补偿元件为电阻、三极管或者MOS管。
[0011]进一步的,第一补偿元件的阻值为R
bi
为第i行第一补偿元件的阻值,m为存算一体阵列的行数,i∈[1,m],R
bl
是位线上的线电阻,R
i
是第i行字线所对应的存储单元的阻值。
[0012]进一步的,第二补偿元件的阻值为R
wj
为第j列第二补偿元件的阻值,n为存算一体阵列的行数,j∈[1,n],R
wl
是字线上的线电阻,R
j
是第j处字线所对应的存储单元的阻值。
[0013]进一步的,依据存算一体阵列的线电阻和阵列规模重构第一附加电路和第二附加电路。
[0014]进一步的,相同大小且制作工艺相同的存算一体阵列使用相同的第一附加电路和第二附加电路。
[0015]本专利技术还公开了一种提高存算一体阵列计算速度的方法,包括以下步骤:S01)、输入存算一体阵列线电阻的阻值,线电阻包括位线上的线电阻R
bl
和字线上的线电阻R
wl

[0016]S02)、输入存算一体阵列的行列数;
[0017]S03)、获得修正架构的硬件参数,所述修正架构包括第一附加电路和第二附加电路,第一附加电路连接于存算一体阵列的输入字线处,其大小与存算一体阵列的行数相同,包括m个串联在存算一体阵列每行输入处的第一补偿元件,m为存算一体阵列的行数;第二附加电路连接于存算一体阵列的输出位线处,其大小与存算一体阵列的列数相同,包括n个串联在存算一体阵列每列输出处的第二补偿元件,n为存算一体帧的列数;第一附加电路、第二附加电路与存算一体阵列串联,从而实现对存算一体阵列的阻值修正;
[0018]S04)、调整修正架构电路,根据存算一体阵列的行列数和线电阻调整第一补偿元件阻值和第二补偿元件阻值:
[0019]第一补偿元件的阻值为R
bi
为第i行第一补偿元件的阻值,m为存算一体阵列的行数,i∈[1,m],R
bl
是位线上的线电阻,R
i
是第i行字线所对应的存储单元的阻值;
[0020]第二补偿元件的阻值为R
wj
为第j列第二补偿元件的阻值,n为存算一体阵列的行数,j∈[1,n],R
wl
是字线上的线电阻,R
j
是第j处字线所对应的存储单元的阻值;
[0021]S05)、判断是否达到修正精度,若是,则进行阵列计算,若否,则利用软件微调第一附加电路和第二附加电路。
[0022]进一步的,阵列计算时,不进行解基尔霍夫方程计算,而是将存算一体阵列的阻值与第一附加电路阻值、第二附加电路阻值串联相加,然后求输出电流,从而实现阻值的归一化修正。
[0023]进一步的,利用软件微调第一附加电路和第二附加电路的过程为:按照计算出的阻值和硬件阻值本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提高存算一体阵列计算精度的电路,其特征在于:包括第一附加电路和第二附加电路,第一附加电路连接于存算一体阵列的输入字线处,其大小与存算一体阵列的行数相同,包括m个串联在存算一体阵列每行输入处的第一补偿元件,m为存算一体阵列的行数;第二附加电路连接于存算一体阵列的输出位线处,其大小与存算一体阵列的列数相同,包括n个串联在存算一体阵列每列输出处的第二补偿元件,n为存算一体阵列的列数;第一附加电路、第二附加电路与存算一体阵列串联,从而实现对存算一体阵列的阻值修正;第一补偿元件和第二补偿元件均为电阻性元件。2.根据权利要求1所述的提高存算一体阵列计算精度的电路,其特征在于:第一补偿元件和第二补偿元件为电阻、三极管或者MOS管。3.根据要求要求1所述的提高存算一体阵列计算精度的电路,其特征在于:第一补偿元件的阻值为R
bi
为第i行第一补偿元件的阻值,m为存算一体阵列的行数,i∈[1,m],R
bl
是位线上的线电阻,R
i
是第i行字线所对应的存储单元的阻值。4.根据权利要求1所述的提高存算一体阵列计算精度的电路,其特征在于:第二补偿元件的阻值为R
wj
为第j列第二补偿元件的阻值,n为存算一体阵列的列数,j∈[1,n],R
wl
是字线上的线电阻,R
j
是第j列字线所对应的存储单元的阻值。5.根据权利要求1所述的提高存算一体阵列计算精度的电路,其特征在于:依据存算一体阵列的线电阻和阵列规模重构第一附加电路和第二附加电路。6.根据权利要求1所述的提高存算一体阵列计算精度的电路,其特征在于:相同大小且制作工艺相同的存算一体阵列使用相同的第一附加电路和第二附加电路。7.一种提高存算一体阵列计算速度的方法,其特征在于:包括以下步骤:S01)、输入存算一体阵列线电阻的阻值,线电阻包括位线上的线电阻R
bl
和字线上的线电阻R
wl
;...

【专利技术属性】
技术研发人员:陈杰智唐鸣丰席义方
申请(专利权)人:山东大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1