CN114816335A - 一种忆阻器阵列符号数乘法实现方法、装置及设备 - Google Patents

一种忆阻器阵列符号数乘法实现方法、装置及设备 Download PDF

Info

Publication number
CN114816335A
CN114816335A CN202210738210.5A CN202210738210A CN114816335A CN 114816335 A CN114816335 A CN 114816335A CN 202210738210 A CN202210738210 A CN 202210738210A CN 114816335 A CN114816335 A CN 114816335A
Authority
CN
China
Prior art keywords
value
bit
memristor array
input
shift
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210738210.5A
Other languages
English (en)
Other versions
CN114816335B (zh
Inventor
顾子熙
时拓
刘琦
张程高
高丽丽
王志斌
李一琪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202210738210.5A priority Critical patent/CN114816335B/zh
Publication of CN114816335A publication Critical patent/CN114816335A/zh
Application granted granted Critical
Publication of CN114816335B publication Critical patent/CN114816335B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种忆阻器阵列符号数乘法实现方法、装置及设备,装置包括忆阻器阵列和移位计算模块,忆阻器阵列的输入端和输出端分别与移位计算模块连接,方法包括步骤S1:确定带有符号的输入值,并将其转换为二进制补码形式;步骤S2:依据忆阻器阵列单次输入的位宽,将输入值拆分,其中最高位为符号位,从最低位开始依次输入到忆阻器阵列中进行乘法计算;步骤S3:忆阻器阵列单次输出值为最高位时做移位减法操作,其余位时均做移位加法操作;步骤S4:输出忆阻器阵列的最终乘法计算结果。本发明的忆阻器阵列符号数乘法实现方式,适用于神经网络计算,改善了部分场景下输入值仅为无符号数的限制,通用性强,几乎没有额外的硬件资源消耗。

Description

一种忆阻器阵列符号数乘法实现方法、装置及设备
技术领域
本发明涉及新型智能计算领域,尤其是涉及一种忆阻器阵列符号数乘法实现方法、装置及设备。
背景技术
当前对于忆阻器的研究越来越广泛,涉及的领域也各式各样,如安全、数学、人工智能领域。在人工智能领域,忆阻器常常被用于作为神经网络计算的工具与媒介,其高读写速度、低功耗、高并行度的特性被充分的体现出。但是,在通过忆阻器做阵列计算的过程中,对于忆阻器阵列的输入值往往都是以无符号数的形式。或者,是通过输入正负电压的形式来起到一个符号数输入。现有的方式并不能更加广泛的覆盖到实际使用的过程中,并且或多或少有着一些局限性,为了提升忆阻器阵列用于计算的通用性,需要一种基于忆阻器阵列的符号数计算方式。
发明内容
为解决现有技术的不足,本发明直接将有符号数以补码的形式,在多个周期内输入到忆阻器阵列中进行计算,实现了忆阻器阵列能够输入符号数进行乘法计算,在保持原有复杂度的同时,提升了忆阻器阵列的适用范围,本发明采用如下的技术方案:
一种忆阻器阵列符号数乘法实现方法,包括如下步骤:
步骤S1:确定带有符号的输入值,并将其转换为二进制补码形式;
步骤S2:依据忆阻器阵列单次输入的位宽acc x ,将输入值拆分为N个值,其中最高位为符号位,从最低位开始依次输入到忆阻器阵列中进行乘法计算;不局限于权重W的映射形式;
步骤S3:忆阻器阵列单次输出值为最高位(第N个值)时做移位减法操作,其余位时均做移位加法操作,所述移位加法操作是将输出值移位(n-1)*acc x 后与上一次输出值进行累加,所述移位减法操作是将输出值移位(L-1)后与之前输出的累加值相减,其中n表示拆分的第n个值,L表示输入值总位宽;
步骤S4:输出忆阻器阵列的最终乘法计算结果,使得带有符号的输入值,通过忆阻器阵列进行乘法计算时,不局限于输入值的位宽、权重位宽以及映射方式。
进一步地,所述输入值的最高位,恒为1比特位宽的数,用于标志当前的符号位。
进一步地,所述单次输入位宽acc x 大于1比特时,通过数模转换器,将数值转换成相对应的电压值输入到忆阻器阵列中。
进一步地,所述步骤S2中,拆分输入值过程中,当第N -1个数中出现的数值的长度小于单次输入位宽acc x 时,对该数值的高位进行补充。
进一步地,所述步骤S3的过程,采用符号位检测器、移位器、多路器、加法器、减法器和寄存器,具体包括如下步骤:
步骤S3.1:符号位检测器判断输入值是否为第N个值,当输入值不为第N个值时,进入步骤S3.2,否则进入步骤S3.3;
步骤S3.2:多路器的加法通道打开,移位器将输出值移位(n-1)*acc x ,通过加法器,将移位后的输出值与上一次输出值累加,并存储到寄存器中;
步骤S3.3:多路器的减法通道打开,移位器将输出值移位(L-1)后与之前输出的累加值相减。
进一步地,所述步骤S3中基于二进制的计算公式如下:
Figure 47009DEST_PATH_IMAGE002
Figure 416679DEST_PATH_IMAGE004
其中,Y表示最终输出值,y表示单次的输出值,x表示拆分的单次输入值,W表示权重值,以电导值的方式映射在忆阻阵列上,且映射方式可以任意。
进一步地,所述步骤S3中,移位的位数的确定,首先判断单次输入位宽acc x ,当单 次输入位宽acc x 为1比特时,总位宽等于输入值拆分数N,当输入值位宽acc x 为多比特时,将 总位宽减1后对单次输入位宽进行取模运算,然后判断取模结果,当取模结果为0时,输入值 的拆分数
Figure 337362DEST_PATH_IMAGE005
,当取模结果不为0时,输入值的拆分数
Figure 263729DEST_PATH_IMAGE006
p = acc x - qq表示(L-1) mod acc x 的余数。
进一步地,所述忆阻器阵列的输入端和输出端分别与移位计算模块连接,移位计算模块将有符号的输入值转换为二进制补码形式,依据忆阻器阵列单次输入的位宽acc x ,将输入值进行拆分,其中最高位为符号位,从最低位开始依次输入到忆阻器阵列中进行乘法计算,当忆阻器阵列单次输出值为最高位时,对单次输出值做移位减法操作,否则做移位加法操作,所述移位加法操作是将输出值移位(n-1)*acc x 后与上一次输出值进行累加,所述移位减法操作是将输出值移位(L-1)后与之前输出的累加值相减,其中n表示拆分的第n个值,L表示输入值总位宽,输出忆阻器阵列的最终乘法计算结果,使得带有符号的输入值,通过忆阻器阵列进行乘法计算时,不局限于输入值的位宽、权重位宽以及映射方式。
进一步地,所述移位计算模块包括:符号位检测器、移位器、多路器、加法器、减法器和寄存器;
所述符号位检测器,用于判断输入值是否为第N个值,并传递通道选择信号给多路器和选择器,输入值不为第N个值时,传递第一通道选择信号;否则,传递第二通道选择信号;
所述多路器,用于选择阵列输出值的通道,当收到第一通道选择器信号时,多路器的加法通道打开;当收到第二通道选择器信号时,多路器的减法通道打开;
所述移位器,用于阵列计算值的移位操作,当收到第一通道选择信号时,移位器的加法通道打开时,将输出值移位(n-1)*acc x ;当收到第二通道选择信号时,移位器的减法通道打开时,将输出值移位(L-1);
所述加法器,将移位后的输出值与上一次输出值累加,并存储到寄存器中;
所述减法器,将移位后的输出值与寄存器中存储的值相减后,作为忆阻器阵列的最终乘法计算结果进行输出;
所述寄存器,用于存储加法器输出的累加值。
一种忆阻器阵列符号数乘法实现设备,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现所述的一种忆阻器阵列符号数乘法实现方法。
本发明的优势和有益效果在于:
本发明的一种忆阻器阵列符号数乘法实现方法、装置及设备,可以直接将有符号数以补码的形式,在多个周期内输入到忆阻器阵列中进行计算,不局限输入值的位宽、单次输入的位宽以及权重的映射方式,扩大了忆阻器阵列计算的适用范围,保持了原本的复杂度,提升了忆阻器阵列的通用性。
附图说明
图1是本发明的方法流程图。
图2是本发明实施例中方法的拆分移位逻辑图。
图3是本发明实施例中忆阻器阵列进行乘法操作的装置示意图。
图4是本发明实施例中对移位加减进行处理的结构示意图。
图5a是本发明中有符号数拆分流程图。
图5b是本发实施例明中对10位有符号数拆分流程图。
图6a是本发明实施例中单次1比特符号数输入值拆分示意图。
图6b是本发明实施例中单次2比特符号数输入值拆分示意图。
图7是本发明实施例中设备的结构示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
在A*B的忆阻器阵列中,每个忆阻器拥有的电导值为G mn ,对应其权重值W mn ,施加电 压V m ,对应输入特征值X m (处理后的图像特征值),依据欧姆定律,每个cell流出I mn =V m *G mn , 该电流就是输入特征值与权重值的乘积;同时,依据基尔霍夫电流定律,每一列流出的总电 流是一列中各个RERAM流出电流的总合,
Figure 235359DEST_PATH_IMAGE007
,即对应矩阵乘加的结果值Y n ;上 述变量m,0<m≤A;上述变量n,0<n≤B。
本发明的一种忆阻器阵列符号数乘法实现方法,实现了在忆阻器阵列上进行输入值为符号数的乘法计算,如图1、图2所示,包括如下步骤:
步骤S1:确定带有符号的输入值X,并将其转换为二进制补码形式。
步骤S2:依据忆阻器阵列单次输入的位宽acc x ,将输入值X拆分为N个值,分别为x N-1 ,x N-2 ,…,x 1 ,x 0 ,其中最高位为符号位,从最低位x 0 开始依次输入到忆阻器阵列中进行乘法计算;不局限于权重W的映射形式。
带有符号的输入值X总位宽为L,第N个数x N-1 表示输入值X的最高位,恒为1比特位宽的数,用于标志当前的符号位,其余的数依据输入位宽acc x 决定其位宽,分为N-1个数,N大于等于2,并且输入值X的总位宽L以及单次输入的位宽acc x 都可以是任意大小。
如图3所示,输入值X拆分为x N-1 ,x N-2 ,…,x 1 ,x 0 ,通过输入端经过多周期输入到忆阻器阵列中,共需N个周期完成计算,其中如果单次输入位宽大于1比特,需要通过DAC(数-模转换器)将数值转换成相对应的电压值输入到忆阻器阵列中。在计算过程中对于任何输入值都是通过忆阻器阵列进行乘法计算,输入值为X,权重值为W,输出值为Y,其中Y=X*WX=x N-1 x N-2 x 1 x 0
拆分输入值X过程中,当第N-1个数x N-2 中出现的数值的长度小于单次输入位宽acc x 时,对该数值x N-2 的高位进行补充,补充x N-1 至数据长度等于单次输入位宽acc x
步骤S3:忆阻器阵列单次输出值为最高位(第N个值)时做移位减法操作,其余位时均做移位加法操作,所述移位加法操作是将输出值移位(n-1)*acc x 后与上一次输出值进行累加,所述移位减法操作是将输出值移位(L-1)后与之前输出的累加值相减,其中n表示拆分的第n个值,L表示输入值X总位宽。
输入的个数n,不为第N个时,对一个的输出值y n-1 移位累加,当输入个数nN时,输出值y N-1 移位并与原累加值相减,n表示当前计算的第n个数,每个周期都会有一个输出值y n
计算输出值的位移大小通过单次输入位宽acc x 决定,当进行第
Figure 588980DEST_PATH_IMAGE008
次输入值计算且n 不为N时,输入端给到加法/减法器一个加法信号,y n 移位后会与之前的输出值累加在一起, 移位大小为(n-1)*acc x ;当进行第n次输入值计算且nN时,输入端给到加法/减法器一个 减法信号,y n 移位后会与之前的输出的累加值相减,移位大小为(L-1);输出值y位移的位数 除第N位以外是单次输入位宽的倍数,第一位位移为0位,第二位位移为acc x ,第三位为2*acc x ,第四位为3*acc x ,第N位为原长度L-1,计算公式如下:
Figure 59275DEST_PATH_IMAGE002
Figure 648388DEST_PATH_IMAGE004
输出值Yy N-1 ,y N-2 ,…,y 1 ,y 0 移位加减的结果。
具体地的,如图4所示,此处省略了忆阻器阵列,每个输入x对应一个输出y,依次输入到阵列中进行计算,在输入的个数不为第N个时,移位累加通道打开,移位累加结果存在寄存器中;当输入的个数为第N个时,移位减法通道打开,将移位累加的结果值与当前输出值做减法,得出最终结果值。其中具体的位移的位数,通过当前输入的位宽,以及当前输入的个数得出。
移位位数的描述,如图5a所示,对于总位宽L位的带符号的输入值X,当单次输入位 宽acc x =1比特时,总位宽等于输入值X拆分数,即L=N,当单次输入位宽acc x 为多比特时,将总 位宽减1后对单次输入位宽进行取模运算,即(L-1) mod acc x ,当取模运算结果为0时,输入 值X的拆分数
Figure 848426DEST_PATH_IMAGE005
,否则
Figure 248314DEST_PATH_IMAGE006
p = acc x - qq表示(L-1) mod acc x 的余 数。如图5b所示,本发明实施例中输入的是总位宽为10的二进制输入值1100100101(十进制 为-219),单次输入位宽为4比特,(L-1) mod acc x =9 mod 4=1,余数q=1≠0,p = acc x - q, 则
Figure 956638DEST_PATH_IMAGE009
;其中,x 0 =0101,对应y 0 =5(十进制)移位(n-1) * acc x = (1-1)*4=0位;x 1 =0010,对应y 1 =2(十进制)移位(n-1) * acc x =(2-1)*4=4位;由于输入值第 一位为符号位,因此x 2 =0001,对应y 2 =1(十进制)移位(n-1) * acc x =(3-1)*4=8位;符号位x 3 =0001,对应y 3 =1(十进制)移位(L-1) =9位;计算公式如下:
-29*1+28*1+24*2+20*5
=-512+256+32+5
=-219
步骤S4:输出忆阻器矩阵的乘法计算结果,本方法不局限于输入值的位宽、权重位宽以及映射方式。
具体地,如图6a所示,带符号输入值总位数L为4位,单次输入位宽acc x 为1比特,有符号输入值拆分4个数,分别为x 3 , x 2 , x 1 ,x 0 。如十进制数-5,拆分为x 3 为1,x 2 为0,x 1 ,为1,x 0 为1;十进制数3,拆分为x 3 为0,x 2 为0,x 1 为1,x 0 为1;十进制数6,拆分为x 3 为0,x 2 为1,x 1 为1,x 0 为0;十进制数-3,拆分为x 3 为1,x 2 为1,x 1 为0,x 0 为1。当n不为N时,第n个数x n 计算结果y n 需移位(n-1)位,等价于乘上系数2(n-1);当nN时,第N个数x n 计算结果y n 需移位(L-1)位。输出结果Y=-23*y 3 +22*y 2 +21*y 1 +20*y 0
实例1:
Figure 224808DEST_PATH_IMAGE010
Figure DEST_PATH_IMAGE011
Figure 420298DEST_PATH_IMAGE013
实例2:
Figure 505934DEST_PATH_IMAGE014
Figure 950822DEST_PATH_IMAGE015
Figure DEST_PATH_IMAGE017
实例3:
Figure 914361DEST_PATH_IMAGE018
Figure 823411DEST_PATH_IMAGE019
Figure 565102DEST_PATH_IMAGE021
实例4:
Figure 825182DEST_PATH_IMAGE022
Figure 559789DEST_PATH_IMAGE023
Figure 261029DEST_PATH_IMAGE025
实例5:
Figure 563834DEST_PATH_IMAGE026
Figure 660011DEST_PATH_IMAGE027
Figure 73675DEST_PATH_IMAGE029
如图6b所示,带符号输入值总位数L为4位,单次输入位宽acc x 为2比特,有符号输 入值拆分3个数,分别为x 2 ,x 1 ,x 0 。如十进制数-5,拆分为x 2 为1,x 1 为0,x 0 为3;十进制数3,拆 分为x 2 为0,x 1 为0,x 0 为3;十进制数6,拆分为x 2 为0,x 1 为1,x 0 为2;十进制数-3,拆分为x 2 为1,x 1 为1,x 0 为1。在实际计算过程中,当n不为N时,第n个数x n 计算结果需移位(n-1)*2位,等价 于乘上系数2(n-1)*2 ;当
Figure 832683DEST_PATH_IMAGE008
N时,第N个数x n 计算结果需移位(L-1)位。输出结果Y=-23* y 2 +22*y 1 +20*y 0
实例6:
Figure 634286DEST_PATH_IMAGE030
Figure 511369DEST_PATH_IMAGE031
Figure 463144DEST_PATH_IMAGE033
实例7:
Figure 342238DEST_PATH_IMAGE034
Figure 908218DEST_PATH_IMAGE035
Figure 364607DEST_PATH_IMAGE037
实例8:
Figure DEST_PATH_IMAGE038
Figure 261019DEST_PATH_IMAGE039
Figure DEST_PATH_IMAGE041
实例9:
Figure 869986DEST_PATH_IMAGE042
Figure 419916DEST_PATH_IMAGE043
Figure 238967DEST_PATH_IMAGE045
实例10:
Figure 798125DEST_PATH_IMAGE046
Figure DEST_PATH_IMAGE047
Figure DEST_PATH_IMAGE049
与前述一种忆阻器阵列符号数乘法实现方法的实施例相对应,本发明还提供了一种忆阻器阵列符号数乘法实现设备的实施例。
参见图7,本发明实施例提供的一种忆阻器阵列符号数乘法实现设备,包括存储器和一个或多个处理器,存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述实施例中的一种忆阻器阵列符号数乘法实现方法。
本发明一种忆阻器阵列符号数乘法实现设备的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或设备。设备实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的设备,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本发明一种忆阻器阵列符号数乘法实现设备所在任意具备数据处理能力的设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中设备所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述设备中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于设备实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种忆阻器阵列符号数乘法实现方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。

Claims (10)

1.一种忆阻器阵列符号数乘法实现方法,其特征在于包括如下步骤:
步骤S1:确定带有符号的输入值,并将其转换为二进制补码形式;
步骤S2:依据忆阻器阵列单次输入的位宽acc x ,将输入值拆分为N个值,其中最高位为符号位,从最低位开始依次输入到忆阻器阵列中进行乘法计算;
步骤S3:忆阻器阵列单次输出值为最高位时做移位减法操作,其余位时均做移位加法操作,所述移位加法操作是将输出值移位(n-1)*acc x 后与上一次输出值进行累加,所述移位减法操作是将输出值移位(L-1)后与之前输出的累加值相减,其中n表示拆分的第n个值,L表示输入值总位宽;
步骤S4:输出忆阻器阵列的最终乘法计算结果。
2.根据权利要求1所述的一种忆阻器阵列符号数乘法实现方法,其特征在于:所述输入值的最高位,恒为1比特位宽的数,用于标志当前的符号位。
3.根据权利要求1所述的一种忆阻器阵列符号数乘法实现方法,其特征在于:所述单次输入位宽acc x 大于1比特时,通过数模转换器,将数值转换成相对应的电压值输入到忆阻器阵列中。
4.根据权利要求1所述的一种忆阻器阵列符号数乘法实现方法,其特征在于:所述步骤S2中,拆分输入值过程中,当第N-1个数中出现的数值的长度小于单次输入位宽acc x 时,对该数值的高位进行补充。
5.根据权利要求1所述的一种忆阻器阵列符号数乘法实现方法,其特征在于:所述步骤S3的过程,采用符号位检测器、移位器、多路器、加法器、减法器和寄存器,具体包括如下步骤:
步骤S3.1:符号位检测器判断输入值是否为第N个值,当输入值不为第N个值时,进入步骤S3.2,否则进入步骤S3.3;
步骤S3.2:多路器的加法通道打开,移位器将输出值移位(n-1)*acc x ,通过加法器,将移位后的输出值与上一次输出值累加,并存储到寄存器中;
步骤S3.3:多路器的减法通道打开,移位器将输出值移位(L-1)后与之前输出的累加值相减。
6.根据权利要求1所述的一种忆阻器阵列符号数乘法实现方法,其特征在于:所述步骤S3中基于二进制的计算公式如下:
Figure DEST_PATH_IMAGE002
Figure DEST_PATH_IMAGE004
其中,Y表示最终输出值,y表示单次的输出值,x表示拆分的单次输入值,W表示权重值,以电导值的方式映射在忆阻阵列上。
7.根据权利要求1所述的一种忆阻器阵列符号数乘法实现方法,其特征在于:所述步骤S3中,移位的位数的确定,首先判断单次输入位宽acc x ,当单次输入位宽acc x 为1比特时,输入值拆分数N等于总位宽数,当输入值位宽acc x 为多比特时,将总位宽减1后对单次输入位宽进行取模运算,然后判断取模结果,当取模结果为0时,输入值的拆分数
Figure DEST_PATH_IMAGE006
,当取模结果不为0时,输入值的拆分数
Figure DEST_PATH_IMAGE008
p = acc x - qq表示(L-1) mod acc x 的余数。
8.一种忆阻器阵列符号数乘法实现装置,包括忆阻器阵列,其特征在于:所述忆阻器阵列的输入端和输出端分别与移位计算模块连接,移位计算模块将有符号的输入值转换为二进制补码形式,依据忆阻器阵列单次输入的位宽acc x ,将输入值进行拆分,其中最高位为符号位,从最低位开始依次输入到忆阻器阵列中进行乘法计算,当忆阻器阵列单次输出值为最高位时,对单次输出值做移位减法操作,否则做移位加法操作,所述移位加法操作是将输出值移位(n-1)*acc x 后与上一次输出值进行累加,所述移位减法操作是将输出值移位(L-1)后与之前输出的累加值相减,其中n表示拆分的第n个值,L表示输入值总位宽,输出忆阻器阵列的最终乘法计算结果。
9.根据权利要求8所述的一种忆阻器阵列符号数乘法实现装置,其特征在于:所述移位计算模块包括:符号位检测器、移位器、多路器、加法器、减法器和寄存器;
所述符号位检测器,用于判断输入值是否为第N个值,并传递通道选择信号给多路器和移位器,输入值不为第N个值时,传递第一通道选择信号;否则,传递第二通道选择信号;
所述多路器,用于选择阵列输出值的通道,当收到第一通道选择信号时,多路器的加法通道打开;当收到第二通道选择信号时,多路器的减法通道打开;
所述移位器,用于阵列计算值的移位操作,当收到第一通道选择信号时,移位器的加法通道打开,将输出值移位(n-1)*acc x ;当收到第二通道选择信号时,移位器的减法通道打开,将输出值移位(L-1);
所述加法器,将移位后的输出值与上一次输出值累加,并存储到寄存器中;
所述减法器,将移位后的输出值与寄存器中存储的值相减后,作为忆阻器阵列的最终乘法计算结果进行输出;
所述寄存器,用于存储加法器输出的累加值。
10.一种忆阻器阵列符号数乘法实现设备,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现所述的一种忆阻器阵列符号数乘法实现方法。
CN202210738210.5A 2022-06-28 2022-06-28 一种忆阻器阵列符号数乘法实现方法、装置及设备 Active CN114816335B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210738210.5A CN114816335B (zh) 2022-06-28 2022-06-28 一种忆阻器阵列符号数乘法实现方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210738210.5A CN114816335B (zh) 2022-06-28 2022-06-28 一种忆阻器阵列符号数乘法实现方法、装置及设备

Publications (2)

Publication Number Publication Date
CN114816335A true CN114816335A (zh) 2022-07-29
CN114816335B CN114816335B (zh) 2022-11-25

Family

ID=82522425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210738210.5A Active CN114816335B (zh) 2022-06-28 2022-06-28 一种忆阻器阵列符号数乘法实现方法、装置及设备

Country Status (1)

Country Link
CN (1) CN114816335B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116402106A (zh) * 2023-06-07 2023-07-07 深圳市九天睿芯科技有限公司 神经网络加速方法、神经网络加速器、芯片及电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458617A (zh) * 2008-01-22 2009-06-17 西北工业大学 基于cisc微处理器的32位整数乘法器
US20180137916A1 (en) * 2015-06-05 2018-05-17 King Abdullah University Of Science And Technology Resistive content addressable memory based in-memory computation architecture
CN109284083A (zh) * 2018-09-14 2019-01-29 北京探境科技有限公司 一种乘法运算装置及方法
CN110428049A (zh) * 2019-08-21 2019-11-08 南京邮电大学 一种基于多态忆阻器的电压型神经网络及其操作方法
CN110990060A (zh) * 2019-12-06 2020-04-10 北京瀚诺半导体科技有限公司 一种存算一体芯片的嵌入式处理器、指令集及数据处理方法
CN111985607A (zh) * 2019-05-22 2020-11-24 力旺电子股份有限公司 运用于类神经网络系统的乘积累加电路的相关控制电路
US20200401414A1 (en) * 2019-06-21 2020-12-24 Flex Logix Technologies, Inc. Multiplier-Accumulator Circuitry and Pipeline using Floating Point Data, and Methods of using Same
US20210111722A1 (en) * 2020-10-23 2021-04-15 Intel Corporation Methods, apparatus, and articles of manufacture to improve in-memory multiply and accumulate operations
CN114341796A (zh) * 2019-08-23 2022-04-12 谷歌有限责任公司 带符号多字乘法器

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458617A (zh) * 2008-01-22 2009-06-17 西北工业大学 基于cisc微处理器的32位整数乘法器
US20180137916A1 (en) * 2015-06-05 2018-05-17 King Abdullah University Of Science And Technology Resistive content addressable memory based in-memory computation architecture
CN109284083A (zh) * 2018-09-14 2019-01-29 北京探境科技有限公司 一种乘法运算装置及方法
CN111985607A (zh) * 2019-05-22 2020-11-24 力旺电子股份有限公司 运用于类神经网络系统的乘积累加电路的相关控制电路
US20200401414A1 (en) * 2019-06-21 2020-12-24 Flex Logix Technologies, Inc. Multiplier-Accumulator Circuitry and Pipeline using Floating Point Data, and Methods of using Same
CN110428049A (zh) * 2019-08-21 2019-11-08 南京邮电大学 一种基于多态忆阻器的电压型神经网络及其操作方法
CN114341796A (zh) * 2019-08-23 2022-04-12 谷歌有限责任公司 带符号多字乘法器
CN110990060A (zh) * 2019-12-06 2020-04-10 北京瀚诺半导体科技有限公司 一种存算一体芯片的嵌入式处理器、指令集及数据处理方法
US20210111722A1 (en) * 2020-10-23 2021-04-15 Intel Corporation Methods, apparatus, and articles of manufacture to improve in-memory multiply and accumulate operations

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ABUBAKR SASI等: "Low Power Memristor-Based Shift Register Design", 《 2020 27TH IEEE INTERNATIONAL CONFERENCE ON ELECTRONICS, CIRCUITS AND SYSTEMS (ICECS)》 *
杜方舟: "PIM可重构计算单元的设计与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *
樊迪等: "FPGA中适用于低位宽乘累加的DSP块", 《复旦学报(自然科学版)》 *
魏子韬等: "基于忆阻特性的点乘器的设计", 《信息技术》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116402106A (zh) * 2023-06-07 2023-07-07 深圳市九天睿芯科技有限公司 神经网络加速方法、神经网络加速器、芯片及电子设备
CN116402106B (zh) * 2023-06-07 2023-10-24 深圳市九天睿芯科技有限公司 神经网络加速方法、神经网络加速器、芯片及电子设备

Also Published As

Publication number Publication date
CN114816335B (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
US11727276B2 (en) Processing method and accelerating device
CN109063825B (zh) 卷积神经网络加速装置
CN102171682B (zh) 用于高效fft和fir硬件加速器的计算模块
CN107305484B (zh) 一种非线性函数运算装置及方法
CN114816335B (zh) 一种忆阻器阵列符号数乘法实现方法、装置及设备
KR100398859B1 (ko) 데이터 연산 처리 장치
CN114499538A (zh) 多比特输入数据编码方法、装置、电子设备及存储介质
KR20200134281A (ko) 추계학적 반올림 로직
RU2439667C1 (ru) Процессор повышенной достоверности функционирования
JPS6389929A (ja) 固定オペランドをもつ2進加算器及びこの種の加算器を内蔵する直列−並列2進乗算器
US9009209B2 (en) Processor, control method of processor, and computer readable storage medium storing processing program for division operation
CN115483934A (zh) 用于多方安全计算的数据转换方法和装置
US20230075348A1 (en) Computing device and method using multiplier-accumulator
CN114201140B (zh) 指数函数处理单元、方法和神经网络芯片
US11531896B2 (en) Neural network circuit providing for operations with bit shifting and rounded values of weight information
CN113988279A (zh) 一种支持负值激励的存算阵列输出电流读出方法及系统
CN114168107A (zh) 一种存内精度可调的矢量矩阵乘法运算方法及运算器
CN114579079A (zh) 用于常数乘法的集成电路、操作其的方法和包括其的装置
CN113504892A (zh) 一种设计乘法器查找表的方法、系统、设备及介质
CN114418104A (zh) 一种量子应用问题的处理方法及装置
CN111091190A (zh) 数据处理方法及装置、光子神经网络芯片、数据处理电路
CN115328438B (zh) 一种数据处理方法、装置及电子设备
CN116402106B (zh) 神经网络加速方法、神经网络加速器、芯片及电子设备
CN113554163B (zh) 卷积神经网络加速器
US20240036822A1 (en) Enhanced Block Floating Point Number Multiplier

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant