CN111258542B - 乘法器、数据处理方法、芯片及电子设备 - Google Patents

乘法器、数据处理方法、芯片及电子设备 Download PDF

Info

Publication number
CN111258542B
CN111258542B CN201811450641.1A CN201811450641A CN111258542B CN 111258542 B CN111258542 B CN 111258542B CN 201811450641 A CN201811450641 A CN 201811450641A CN 111258542 B CN111258542 B CN 111258542B
Authority
CN
China
Prior art keywords
partial product
circuit
data
processing
multiplier
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.)
Active
Application number
CN201811450641.1A
Other languages
English (en)
Other versions
CN111258542A (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.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
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 Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201811450641.1A priority Critical patent/CN111258542B/zh
Priority to PCT/CN2019/120994 priority patent/WO2020108486A1/zh
Publication of CN111258542A publication Critical patent/CN111258542A/zh
Application granted granted Critical
Publication of CN111258542B publication Critical patent/CN111258542B/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/52Multiplying; Dividing
    • G06F7/523Multiplying only

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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请提供一种乘法器、数据处理方法、芯片及电子设备,所述乘法器包括:布斯编码电路,部分积获取电路和修正累加电路;其中,所述布斯编码电路的输出端与所述部分积获取电路输入端连接,所述部分积获取电路的输出端与所述修正累加电路的输入端连接,该乘法器能够保证在消除符号位扩展处理的基础上,提高乘法运算结果的准确性,有效降低乘法器的功耗。

Description

乘法器、数据处理方法、芯片及电子设备
技术领域
本发明涉及计算机技术领域,特别是涉及一种乘法器、数据处理方法、芯片及电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片的快速发展对于高性能数字乘法器的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,通过乘法器进行乘法运算在神经网络算法中是一种常见的操作。
传统的乘法器,是采用布斯算法求取部分积,通过华莱士树电路进行部分积的压缩,然后用一个对应位宽的加法器进行对压缩结果进行累计并输出最终的结果。其中,在布斯算法中需要对每个部分积进行符号位扩展,所以部分积生成电路和压缩树电路中都需要有对应的符号位扩展处理电路。
但是,传统技术中,符号位扩展处理电路会导致乘法器产生较多功耗。
发明内容
基于此,有必要针对上述技术问题,提供一种乘法器、数据处理方法、芯片及电子设备。
本发明实施例提供一种乘法器,所述乘法器包括:布斯编码处理电路、部分积获取电路以及修正累加电路;其中,所述布斯编码处理电路的输出端与所述部分积获取电路输入端连接,所述部分积获取电路的输出端与所述修正累加电路的输入端连接;所述布斯编码电路用于对接收到的数据进行布斯编码处理得到编码信号,所述部分积获取电路用于根据编码信号得到原始部分积,并对所述原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积,所述修正累加电路用于对消除符号位扩展后的部分积进行修正累加处理。
在其中一个实施例中,所述布斯编码处理电路包括:数据输入端口以及编码信号输出端口;所述数据输入端口用于接收进行布斯编码的数据,所述编码信号输出端口用于输出对接收到的数据进行布斯编码后得到的编码信号。
在其中一个实施例中,所述部分积获取电路具体用于根据编码信号得到原始部分积,并通过逻辑门电路对所述原始部分积的高两位数值进行逻辑运算处理,得到消除符号位扩展后的部分积。
在其中一个实施例中,所述部分积获取电路包括异或门电路、与门电路以及反相器。
在其中一个实施例中,所述修正累加电路包括:修正华莱士树组电路以及累加电路;其中,所述修正华莱士树组电路的输出端与所述累加电路的输入端连接;所述修正华莱士树组电路用于对消除符号位扩展后的部分积进行累加修正处理,所述累加电路用于对接收到的输入数据进行累加处理。
在其中一个实施例中,所述修正华莱士树组电路包括:华莱士树子电路,所述华莱士树子电路用于对消除符号位扩展后的部分积的每一列进行修正累加处理。
在其中一个实施例中,所述累加电路包括:加法器,所述加法器用于对接收到的两个同位宽数据进行加法运算。
在其中一个实施例中,所述加法器包括:进位信号输入端口、和位信号输入端口以及结果输出端口;所述进位信号输入端口用于接收进位信号,和位信号输入端口用于接收和位信号,结果输出端口用于输出进位信号与和位信号进行累加处理的结果。
本实施例提供的一种乘法器,通过布斯编码处理电路可以对接收到的数据进行布斯编码得到编码信号,再通过部分积获取电路根据每一个编码信号得到原始部分积,并通过逻辑门电路对原始部分积进行逻辑运算处理,得到对应的消除符号位扩展后的部分积,最后通过修正累加电路对消除符号位扩展后的部分积进行修正累加处理,从而保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗。
本发明实施例提供一种数据处理方法,所述方法包括:
接收待处理的数据;
将待处理的所述数据进行布斯编码处理,得到原始部分积;
根据所述原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积;
对所述消除符号位扩展后的部分积进行修正累加处理,得到运算结果。
在其中一个实施例中,所述待处理的所述数据进行布斯编码,得到原始部分积,包括:
对待处理的所述数据进行布斯编码处理,得到编码信号;
根据待处理的所述数据与所述编码信号,得到所述原始部分积。
在其中一个实施例中,所述根据所述原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积,包括:对所述原始部分积的高两位数值进行异或,取反和与逻辑运算处理,得到消除符号位扩展后的部分积。
本实施例提供的一种数据处理方法,乘法器接收待处理的数据,将待处理的所述数据进行布斯编码处理,得到原始部分积,并对原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积,对所述消除符号位扩展后的部分积进行修正累加处理,得到运算结果,该方法在保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗。
本发明实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个所述的乘法器;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,所述多个所述乘法器间可以通过特定的结构进行链接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
本发明实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
本发明实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的乘法器、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本发明实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本发明实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本申请实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本发明实施例提供的一种芯片,包括至少一个如上述任一项所述的乘法器。
本发明实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为一实施例提供的一种乘法器的结构示意图;
图2为另一实施例提供的另一种乘法器的结构示意图;
图3为另一实施例提供的对原始部分积进行逻辑运算处理的具体实现电路图;
图4为另一实施例提供的8位数据运算进行消除符号位扩展处理时逻辑运算处理的实现电路结构图;
图5为一实施例提供的一种乘法器的具体结构示意图;
图6为另一实施例提供的对原始部分积进行加法运算处理及判断处理的实现电路结构图;
图7为另一实施例提供的确定额外一位数值Q的具体电路结构图;
图8为另一实施例提供的8位数据运算时修正累加电路的具体电路结构图;
图9为另一实施例提供的另一种乘法器的具体结构示意图;
图10为另一实施例提供的4个消除符号位扩展后的部分积的分布规律示意图;
图11为另一实施例提供的8位数据运算时修正累加电路的另一具体电路结构图;
图12为一实施例提供的一种数据的处理方法流程示意图;
图13为一实施例提供的得到消除符号位扩展后的部分积的方法流程示意图;
图14为一实施例提供的得到消除符号位扩展后的部分积的方法具体流程示意图;
图15为一实施例提供的另一种数据的处理方法流程示意图;
图16为一实施例提供的得到原始部分积的方法流程示意图;
图17为一实施例提供的一种组合处理装置的结构图;
图18为一实施例提供的另一种组合处理装置的结构图;
图19为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的乘法器可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中进行乘法运算处理,其具体结构示意图如图1和2所示。
如图1所示,图1为一个实施例提供的一种乘法器的结构图,该乘法器包括:编码电路11和修正累加电路12,其中,所述编码电路11的输出端与所述修正累加电路12的输入端连接;所述编码电路11用于对接收到的数据进行编码处理得到消除符号位扩展后的部分积,所述修正累加电路12用于对消除符号位扩展后的部分积进行修正累加处理。
具体的,上述编码电路11可以包括多个具有不同功能的数据处理单元,并且编码电路11接收到的数据可以作为乘法运算中的乘数,还可以作为乘法运算中的被乘数。可选的,上述不同功能的数据处理单元可以为具有二进制编码功能的数据处理单元。可选的,上述乘数和被乘数可以是多比特位宽的定点数。可选的,修正累加电路12可以对编码电路11得到的消除符号位扩展后的部分积进行累加的过程中做修正处理,得到目标的乘法运算结果。
需要说明的是,本实施例提供的乘法器可以处理固定位宽数据的乘法运算,该固定位宽可以为8比特,16比特,32比特,还可以为64比特,对此本实施例不做任何限定。但是,同一次乘法运算时,编码电路11接收到的乘数和被乘数为同位宽的数据。可选的,上述不同功能的数据处理单元的输入端口可以有一个,每个数据处理单元的每个输入端口的功能可以相同,输出端口也可以有一个,每个数据处理单元的每个输出端口的功能可以不相同,并且不同功能数据处理单元的电路结构可以不相同。
本实施例提供的一种乘法器,通过编码电路对接收到的数据进行编码处理得到消除符号位扩展后的部分积,修正累加电路可以对消除符号位扩展后的部分积进行修正累加处理,得到目标的运算结果,该过程能够消除符号位的扩展,有效降低乘法器的功耗;另外,乘法器可以根据修正累加电路修正消除相关符号位扩展的处理,能够保证乘法器运算结果的准确性。
图2为一个实施例提供的一种乘法器的结构图。如图2所示,该乘法器包括:布斯编码处理电路11、部分积获取电路12以及修正累加电路13;其中,所述布斯编码处理电路11的输出端与所述部分积获取电路12输入端连接,所述部分积获取电路12的输出端与所述修正累加电路13的输入端连接。所述布斯编码处理电路11用于对接收到的数据进行布斯编码处理得到编码信号,所述部分积获取电路12用于根据编码信号得到原始部分积,并根据所述原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积,所述修正累加电路13用于对消除符号位扩展后的部分积进行修正累加处理。
可选的,所述布斯编码处理电路11包括:数据输入端口111和编码信号输出端口112;所述数据输入端口111用于接收进行布斯编码处理的数据,所述编码信号输出端口112用于输出对接收到的数据进行布斯编码处理后得到的编码信号。
可选的,所述部分积获取电路12具体用于根据编码信号得到原始部分积,并通过逻辑门电路对所述原始部分积的高两位数值进行逻辑运算处理,得到消除符号位扩展后的部分积。可选的,所述部分积获取电路12包括异或门电路,与门电路和反相器。
具体的,上述布斯编码处理电路11可以接收乘法运算中的乘数,并对乘数进行布斯编码处理,得到编码信号。其中,在布斯编码处理前,布斯编码处理电路11可以自动对接收到的乘数进行补位处理,该补位处理可以表征为对乘数的最低位数值后补一位数值0。示例性的,若乘法器当前处理8*8的乘法运算,乘数为y7y6y5y4y3y2y1y0,则在布斯编码处理前,布斯编码处理电路11可以自动将乘数转换为y7y6y5y4y3y2y1y00,即在乘数的最低位y0后补了一位数值0。可选的,上述编码信号的数量可以等于乘法器当前所处理数据位宽的1/2,该编码信号的数量可以等于原始部分积的数量,且部分积获取电路12可以根据每一个编码信号得到对应的原始部分积,并通过逻辑门电路对每一个原始部分积中的最高位和次高位数值进行逻辑运算处理,得到消除符号位扩展后的部分积。可选的,上述原始部分积可以为未进行符号位扩展的部分积,且原始部分积的位宽比乘法器当前所处理数据的位宽多一位。同时,原始部分积中的最高位和次高位的数值,通过逻辑门电路确定目标编码的消除符号位扩展后的部分积中的额外一位数值,该位数值可以用Q表示。可选的,上述逻辑门电路可以为异或门电路,与门电路和反相器。
需要说明的是,若原始部分积的最高位数值用A表示,次高位数值用B表示,则部分积获取电路12可以将次高位数值B通过一个反相器处理后,得到原始部分积的最高位,对应在目标编码的消除符号位扩展后的部分积中对应位的数值
Figure GDA0003635778240000061
部分积获取电路12可以将最高位数值A和次高位数值B通过一个异或门电路处理后,得到原始部分积的最高位,对应在目标编码的消除符号位扩展后的部分积中对应位的数值A'=A^B;另外,部分积获取电路12还可以将最高位数值A和次高位数值B,通过反相器及一个与门电路处理后,得到目标编码的消除符号位扩展后的部分积中的额外一位数值Q(即
Figure GDA0003635778240000062
),生成A',B'和Q位数值的具体实现电路图如图3所示,其中,图3中的符号&表示与门电路,符号^表示异或门电路,符号~表示反相器。其中,原始部分积的最高位数值A和次高位数值B,和逻辑运算处理后得到的消除符号位扩展后的部分积对应的最高位A',次高位B'以及额外一位数值Q之间的生成关系,可以参见表1。
表1
Figure GDA0003635778240000071
示例性的,若乘法器当前处理8位数据的乘法运算,得到的其中一个原始部分积可以为“P8P7P6P5P4P3P2P1P0”,消除符号位扩展后的部分积可以表示为“P9’P8’P7’P6’P5’P4’P3’P2’P1’P0’”,则对原始部分积中的最高位数值P8和次高位数值P7进行加1处理后,得到的消除符号位扩展后的部分积中P8’和P7’对应的数值,可以等于原始部分积中P8和P7对应的数值通过逻辑门电路进行逻辑运算后的结果,并且P9’为消除符号位扩展后的部分积中的额外一位数值,其中,消除符号位扩展后的部分积中对应位P6’,P5’,P4’,P3’,P2’,P1’和P0’的数值,可以等于原始部分积中对应位P6,P5,P4,P3,P2,P1和P0的数值。对原始部分积中高两位数值P8和P7进行逻辑运算处理的实现电路图可以参见图4。
本实施例提供的一种乘法器,通过布斯编码处理电路可以对接收到的数据进行布斯编码处理得到编码信号,再通过部分积获取电路根据每一个编码信号得到原始部分积,并通过逻辑门电路对原始部分积的高两位数据进行逻辑运算处理,以实现消除符号位扩展处理,得到消除符号位扩展后的部分积,最后通过修正累加电路对消除符号位扩展后的部分积进行修正累加处理从而保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗。
图5为一个实施例提供的一种乘法器的具体结构示意图,如图5所示,该乘法器包括所述编码电路11,该编码电路11包括:布斯编码处理单元111和部分积获取单元112;所述布斯编码处理单元111的输出端与所述部分积获取单元112的输入端连接。其中,所述布斯编码处理单元111用于对接收到的数据进行布斯编码处理得到编码信号,所述部分积获取单元112用于根据编码信号得到原始部分积,并根据原始部分积进行算术运算处理及判断处理。
可选的,所述部分积获取单元112具体用于根据编码信号得到原始部分积,并根据原始部分积的高两位数值进行二进制加法运算处理及所述判断处理,得到消除符号位扩展后的部分积。可选的,所述部分积获取单元112包括第一全加器1121和1122。
具体的,上述布斯编码处理单元111可以接收乘法运算中的乘数,并对乘数进行布斯编码处理,得到编码信号。其中,在布斯编码处理前,布斯编码处理单元111可以自动对接收到的乘数的最低位数值后补一位数值0。示例性的,若乘法器当前处理的是8位*8位的定点数乘法运算,乘数为y7y6y5y4y3y2y1y0,则在布斯编码处理前,布斯编码处理单元111可以自动将乘数转换为y7y6y5y4y3y2y1y00,即在乘数的最低位y0后补了一位数值0。可选的,上述编码信号的数量可以等于乘法器当前所处理数据位宽的1/2,该编码信号的数量可以等于原始部分积的数量,且部分积获取单元112可以根据每一个编码信号得到对应的原始部分积,并通过部分积获取单元112中包含的两个第一全加器1121和1122,对每一个原始部分积中的最高位和次高位数值进行加1处理,以及根据原始部分积中的最高位和次高位的数值进行一次判断处理。
需要说明的是,若原始部分积的最高位数值用A表示,次高位数值用B表示,对最高位的数值A和次高位的数值B进行判断处理后,可以得到目标编码的消除符号位扩展后的部分积中的额外一位数值,该位数值可以用Q表示。可选的,消除符号位扩展后的部分积中的额外一位数值Q,可以根据原始部分积中最高位数值A和次高位数值B共同确定,确定规则可以参见表2,并且通过最高位数值A和次高位数值B确定额外一位数值Q的电路结构图可以如图6所示,图6只示出了一个原始部分积进行消除符号位扩展处理得到消除符号位扩展后的部分积的过程,其中,X7X6X5X4X3X2X1X0为被乘数,Y7Y6Y5Y4Y3Y2Y1Y0为乘数,Judge0可以等于Q,
Figure GDA0003635778240000081
表示第一全加器。另外,通过最高位数值A和次高位数值B确定额外一位数值Q具体可以通过逻辑门电路实现,具体实现逻辑电路图如图7所示。
表2
Figure GDA0003635778240000082
Figure GDA0003635778240000091
示例性的,若原始部分积为“z9iz8iz7iz6iz5iz4iz3iz2iz1i”,消除符号位扩展后的部分积为“z10iz9i’z8i’z7iz6iz5iz4iz3iz2iz1i”,则对原始部分积中的最高位数值z9i和次高位数值z8i进行加1处理及判断处理后,得到的消除符号位扩展后的部分积中z9i’和z8i’对应的数值,可以等于原始部分积中z9i和z8i对应的数值进行加1处理后得到的对应和位的数值,并且根据表2的信息再进行一次判断处理,得到消除符号位扩展后的部分积中Q位z10i的数值。可选的,布斯编码处理过程中,得到的编码信号数量可以等于得到的原始部分积的数量,还可以等于消除符号位扩展后的部分积数量。
本实施例提供的一种乘法器,通过布斯编码处理单元可以对接收到的数据进行布斯编码处理得到编码信号,再通过部分积获取单元根据每一个编码信号得到原始部分积,并根据原始部分积的高两位数值进行加1处理及判断处理,以实现消除符号位扩展处理,得到消除符号位扩展后的部分积,最后通过修正累加电路对应的消除符号位扩展后的部分积,并对消除符号位扩展后的部分积进行修正累加处理,从而保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗。
在其中一个实施例中,继续如图5所示乘法器的具体结构示意图,其中,乘法器包括所述布斯编码处理单元111,该布斯编码处理单元111包括:数据输入端口1111和编码信号输出端口1112;所述数据输入端口1111用于接收进行布斯编码处理的数据,所述编码信号输出端口1112用于输出对接收到的数据进行布斯编码处理后得到的编码信号。
具体的,若数据输入端口1111接收到一个数据,则布斯编码处理单元111可以自动对该数据的最低位数值后补一位数值0,得到一个比原数据的位宽多一位数值的数据,同时,布斯编码处理单元111可以对补0后的数据进行布斯编码处理处理,得到多个编码信号,将多个编码信号通过编码信号输出端口1112输出。可选的,布斯编码处理单元111可以通过数据输入端口1111接收乘法运算中的乘数,且布斯编码处理单元111可以对乘数进行布斯编码处理处理。可选的,每一次布斯编码处理处理时,可以将补0后的数据划分成多组待编码数据,布斯编码处理单元111可以同时对划分后的多组待编码数据进行布斯编码处理处理,可选的,划分多组待编码数据的原则可以是补0后的数据中相邻每3位数值作为一组待编码数据,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。需要说明的是,图6所示的布斯编码处理电路11与布斯编码处理单元111的内部电路结构和外部输出端口及功能相同。可选的,布斯编码处理的编码规则可以参见表3,其中,表3中的y2i+1,y2i和y2i-1可以表示每一组待编码数据对应的数值,X可以表示编码电路11接收到的被乘数,对每一组对应待编码数据进行布斯编码处理处理后得到对应的编码信号PPi(i=0,1,2,...,n)。可选的,根据表3所示,布斯编码处理后得到的编码信号可以包括五类,每类编码信号分别定义为-2X,2X,-X,X和0。示例性的,若编码电路11接收到的被乘数为“x7x6x5x4x3x2x1x0”,则X可以表示为“x7x6x5x4x3x2x1x0”。
表3
Figure GDA0003635778240000101
示例性的,若布斯编码处理单元111接收到的乘数为8位的数据“y7y6y5y4y3y2y1y0”,则补0后的数据可以为“y7y6y5y4y3y2y1y00”,当i=0时,y2i+1=y1,y2i=y0,y2i-1=y-1,则y-1可以表示y0后的一位数值0(即乘数可以表示为y7y6y5y4y3y2y1y0y-1),布斯编码处理过程中,可以对y-1y0y1,y1y2y3,y3y4y5和y5y6y7四组待编码数据分别进行编码,得到4个编码信号,其中,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。
本实施例提供的一种乘法器,布斯编码处理单元可以对接收到的数据进行布斯编码处理得到编码信号,然后部分积获取单元可以根据每一个编码信号得到对应的消除符号位扩展后的部分积,并通过修正累加电路可以对消除符号位扩展后的部分积进行修正累加处理,得到目标的乘法运算结果,从而保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗。
在其中一个实施例中,继续如图5所示乘法器的具体结构示意图,其中,乘法器包括所述部分积获取单元112,该部分积获取单元112包括:编码信号输入端口1121、数据输入端口1122以及部分积输出端口1123;所述编码信号输入端口1121用于接收编码信号,数据输入端口1122用于接收数据,部分积输出端口1123用于输出根据编码信号与接收到的数据获取的消除符号位扩展后的部分积。
具体的,根据表3可知,部分积获取单元112通过编码信号输入端口1121可以接收布斯编码处理单元111输出的五类不同的编码信号,每类编码信号分别定义为-2X,2X,-X,X和0,通过部分积获取单元112对接收到的每一类编码信号进行加1处理及判断处理,可以得到对应的消除符号位扩展后的部分积。可选的,数据输入端口1122可以接收乘法运算中的数据,该数据可以为乘法运算中的被乘数。
本实施例提供的一种乘法器,通过部分积获取单元可以根据每一个编码信号得到对应的消除符号位扩展后的部分积,并通过修正累加电路可以对消除符号位扩展后的部分积进行修正累加处理,得到目标的乘法运算结果,从而保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗。
在其中一个实施例中,继续如图5所示乘法器的具体结构示意图,其中,乘法器包括所述修正累加电路12,该修正累加电路12包括:第二全加器121~12n,多个所述第二全加器121~12n用于对接收到的所述原始部分积进行修正累加处理。
具体的,第二全加器121~12n可以用门电路实现二进制相加并求出和的组合电路,还可以理解为对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路。可选的,修正累加电路12中包含的第二全加器数量n可以等于乘法器当前所处理数据的位宽M加2的结果,与N的乘积,与2M之和,其中,N可以表示布斯编码处理单元111得到的编码信号数量。可选的,修正累加电路12中n个第二全加器的分布规律可以为逐层分布,部分积获取单元112得到的每一个消除符号位扩展后的部分积可以对应一层第二全加器。其中,第二全加器的层数可以等于消除符号位扩展后的部分积数量,最后一层第二全加器的数量可以等于乘法器当前所处理数据位宽N的2倍,其它每一层第二全加器的数量可以等于N。另外,对所有消除符号位扩展后的部分积进行累加处理时,每一个消除符号位扩展后的部分积的最低位数值所处位置,比下一个消除符号位扩展后的部分积最低位数值所处位置向右错开两位数值。可选的,全加器121~12n通过修正累加处理结束后,可以得到运算结果,该运算结果可以为最后一层第二全加器输出的和位信号。另外,上述第二全加器121~12n的内部电路结构与第一全加器1121和1122的内部电路结构可以相同,功能也可以相同。
需要说明的是,修正累加电路12中的每一个第二全加器可以对两位及两位以上的输入信号进行加法运算,得到两位输出信号,该两位输出信号可以包括进位信号Carry和结果位信号Sum。可选的,本实施例中,修正累加电路12中的每一个第二全加器可以接收三个输入信号,该三个输入信号可以为消除符号位扩展的部分积中的任意一位数值,低位加法器得到的进位输出信号Carry,结果位信号Sum,和二进制信号中的任意三种信号。可选的,通过修正累加电路12对消除符号位扩展后的部分积进行修正累加处理过程中,可以通过修正累加电路12中的第二全加器,对部分积获取单元112得到的两个消除符号位扩展后的部分积进行加1处理(即修正处理)。可选的,乘法器通过修正累加电路12中的第一层第二全加器,可以对部分积获取单元112得到的第一个消除符号位扩展后的部分积,和第二个消除符号位扩展后的部分积的对应位进行累计,第二层第二全加器可以对部分积获取单元112得到的第三个消除符号位扩展后的部分积,与上一层第二全加器的结果进行累加处理,依次类推,最后一层第二全加器可以对上一层第二全加器的结果,与最后一层之前的每一层第二全加器输出的信号中未处理的进位信号或和位信号,以及部分积获取单元112得到的最后一个消除符号位扩展后的部分积进行累加,得到乘法运算结果,在处理过程中,除第一层第二全加器外,其它层每一个第二全加器接收到的输入信号不仅可以包括每一个消除符号位扩展后的部分积对应位数值,还可以包括上一层对应位第二全加器输出的和位信号,与上一层对应位的低一位第二全加器输出的进位信号。
可选的,修正累加电路12可以对消除符号位扩展后的部分积进行累加的过程中做两次修正处理,其中,修正累加电路12可以通过第一层和最后一层第二全加器中的两个第二全加器,对消除符号位扩展后的部分积中的数值进行加1处理,其中,如果每一个第二全加器对应一个编号,则第一层第二全加器中进行加1处理的第二全加器可以为次高位编号加法器的低一位全加器,最后一层全加器中进行加1处理的第二全加器可以为最高位编号的全加器。另外,最后一层第二全加器的最低位编号的第二全加器接收到的进位输入信号可以等于0。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,通过部分积获取单元112得到的消除符号位扩展的部分积为“pi9pi8pi7pi6pi5pi4pi3pi2pi1pi0”(i=1,…,n=4),其中,i可以表示第i个消除符号位扩展后的部分积,n可以等于布斯编码处理单元111得到的编码信号数量,则修正累加电路12通过逐层第二全加器对消除符号位扩展后的部分积“pi9pi8pi7pi6pi5pi4pi3pi2pi1pi0”进行修正累加处理的电路结构图可以如图8所示,其中,图8中两个虚线框处为两个第二全加器进行加1处理的实现电路结构图,S可以表示第二全加器的和位输出,C可以表示第二全加器的进位输出。
本实施例提供的一种乘法器,通过修正累加电路可以对消除符号位扩展后的部分积进行修正累加处理,从而能够对消除符号位扩展处理进行修正,提高乘法运算结果的准确性。
图9为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述修正累加电路13,该修正累加电路13包括:修正华莱士树组电路131和累加电路132;其中,所述修正华莱士树组电路131的输出端与所述累加电路132的输入端连接;所述修正华莱士树组电路131用于对消除符号位扩展后的部分积进行累加修正处理,所述累加电路132用于对接收到的输入数据进行累加处理。
具体的,上述修正华莱士树组电路131可以对布斯编码处理电路111得到的消除符号位扩展后的部分积中的数值进行累加修正处理,并通过累加电路132对修正华莱士树组电路13得到修正结果进行累加处理,得到乘法运算结果。
本实施例提供的一种乘法器,通过修正华莱士树组电路可以对消除符号位扩展后的部分积进行累加修正处理,并通过累加电路对修正结果进行累加处理,得到乘法运算结果,该过程能够对消除符号位扩展处理进行修正,提高乘法运算结果的准确性。
在其中一个实施例中,继续如图9所示乘法器的具体结构示意图,其中,乘法器包括所述修正华莱士树组电路131,该修正华莱士树组电路131包括:华莱士树子电路1311~131n,多个所述华莱士树子电路1311~131n用于对消除符号位扩展后的部分积的每一列进行修正累加处理。
具体的,华莱士树子电路1311~131n的电路结构可以由全加器和半加器组合实现,另外,还可以理解为华莱士树子电路1311~131n是一种能够对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路。可选的,修正华莱士树组电路131包含的华莱士树子电路的数量n可以等于乘法器当前所处理数据位宽的2倍,并且n个华莱士树子电路可以对目标编码的部分积进行并行处理,但连接方式可以是串行连接。可选的,修正华莱士树组电路13中每一个华莱士树子电路可以对消除符号位扩展后的所有部分积的每一列进行加法处理,每一个华莱士树子电路可以输出两个信号,即进位信号Carryi与一个和位信号Sumi,其中,i可以表示每一个华莱士树子电路对应的编号,每一个华莱士树子电路的编号为0。可选的,每一个华莱士树子电路接收到输入信号的数量可以等于编码信号数量或者消除符号位扩展后的部分积数量,还可以等于编码信号数量或者消除符号位扩展后的部分积数量加1。
需要说明的是,乘法器对消除符号位扩展后的部分积的每一列进行相加的过程中,通过修正华莱士树组电路131中的两个华莱士树子电路,对消除符号位扩展后的部分积中的两列数值进行加1处理(即修正处理),也就是说,消除符号位扩展后的部分积中的这两列数值所分别对应的两个华莱士树子电路的输入信号,比消除符号位扩展后的部分积中其它列数值所对应的每一个华莱士树子电路的输入信号多了一个输入信号,该输入信号为1。
另外,修正华莱士树组电路131中每一个华莱士树子电路接收到的信号可以包括进位输入信号Cini,部分积输入信号,进位输出信号Couti。可选的,每一个华莱士树子电路接收到的部分积输入信号可以为所有消除符号位扩展后的部分积中每一列的数值,每一个华莱士树子电路输出的进位信号Couti的位数可以等于NCout=floor((NI+NCin)/2)-1。其中,NI可以表示该华莱士树子电路的数据输入位数,NCin可以表示该华莱士树子电路的进位输入位数,NCout可以表示该华莱士树子电路最少的进位输出位数,floor(·)可以表示向下取整函数。可选的,修正华莱士树组电路131中每一个华莱士树子电路接收到的进位输入信号可以为上一个华莱士树子电路输出的进位输出信号,而第一个华莱士树子电路接收到的进位输入信号为0,同时,第一个华莱士树子电路接收到的进位信号输入端口的数量,可以与其它华莱士树子电路的进位信号输入端口的数量相同。
在本实施例中,若修正华莱士树组电路131中串行连接的n个华莱士树子电路的编号为1,2,…,i,…,n,则修正华莱士树组电路131可以通过第i个华莱士树子电路和第n个华莱士树子电路,对消除符号位扩展后的部分积中对应的两列数据进行加1处理,另外,若布斯编码处理电路11得到的第一个消除符号位扩展后的部分积,从最低位到最高位对应的位数编号为1,2,…,m-2,m-1,m,其中,m对应Q位的编号,1对应第一个消除符号位扩展后的部分积中最低位数的编号,则i可以等于n/2,可以理解为,修正华莱士树组电路131可以通过第n/2个华莱士树子电路和最后一个华莱士树子电路,对消除符号位扩展后的部分积进行加1处理。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,通过部分积获取电路12得到的消除符号位扩展后的部分积为“pi9pi8pi7pi6pi5pi4pi3pi2pi1”(i=1,…,n=4),其中,i可以表示第i个消除符号位扩展后的部分积,则修正累加处理时,4个消除符号位扩展后的部分积的分布规律可以参见图10所示,每一个原点代表消除符号位扩展后的部分积中的每一位数值,从最右列至最左列算起,总共需要16个华莱士树子电路对4个消除符号位扩展后的部分积进行修正累加处理,修正华莱士树组电路131可以通过第8个华莱士树子电路和最后一个华莱士树子电路进行修正加1处理,16个华莱士树子电路的连接电路图以及实现修正加1处理的两个华莱士树子电路图均如图11所示,其中,图11中Wallace_i表示华莱士树子电路,i为华莱士树子电路从1开始的编号,并且两两华莱士树子电路之间连接的实线表示高位编号对应的华莱士树子电路有进位输出信号,虚线表示高位编号对应的华莱士树子电路没有进位输出信号。
本实施例提供的一种乘法器,通过修正华莱士树组电路可以对消除符号位扩展后的部分积进行修正累加处理,该过程能够对消除符号位扩展处理进行修正,提高乘法运算结果的准确性。
在其中一个实施例中,继续如图9所示乘法器的具体结构示意图,其中,乘法器包括所述累加电路132,该累加电路132包括:加法器1321,所述加法器1321用于对接收到的两个同位宽数据进行加法运算。
具体的,加法器1321可以为不同位宽的加法器,该加法器可以为超前进位加法器。可选的,加法器1321可以接收修正华莱士树组电路131输出的两路信号,对两路输出信号进行加法运算,得到乘法运算结果。
本实施例提供的一种乘法器,通过累加电路可以对修正华莱士树组电路输出的两路信号进行累加处理,得到的乘法运算结果,该过程能够对消除符号位扩展处理进行修正,提高乘法运算结果的准确性。
在其中一个实施例中,继续如图9所示乘法器的具体结构示意图,其中,乘法器包括所述加法器1321,该加法器1321包括:进位信号输入端口1321a、和位信号输入端口1321b以及结果输出端口1321c;所述进位信号输入端口1321a用于接收进位信号,和位信号输入端口1321b用于接收和位信号,结果输出端口1321c用于输出进位信号与和位信号进行累加处理的结果。
具体的,加法器1321可以通过进位信号输入端口1321a接收修正华莱士树组电路131输出的进位信号Carry,通过和位信号输入端口1321b接收修正华莱士数组电路131输出的和位信号Sum,并将进位信号Carry与和位信号Sum进行累加的结果,通过结果输出端口1321c输出。
需要说明的是,乘法运算时,乘法器可以采用不同位宽的加法器1321对修正华莱士树组电路131输出的进位输出信号Carry与和位输出信号Sum进行加法运算,其中,上述加法器1321的可处理数据的位宽可以等于乘法器当前处理的数据位宽N的2倍。可选的,修正华莱士树组电路131中的每一个华莱士树子电路可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=0,…,N-1,i为每一个华莱士树子电路的对应编号,编号从0开始)。可选的,加法器1321接收到的Carry={[Carry0:CarryN-2],0},也就是说,加法器1321接收到的进位输出信号Carry的位宽为N,进位输出信号Carry中前N-1位数值对应修正华莱士树组电路131中前N-1个华莱士树子电路的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器1321接收到的和位输出信号Sum的位宽为N,和位输出信号Sum中的数值可以等于修正华莱士树组电路131中每一个华莱士树子电路的和位输出信号。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,则加法器1321可以为16位超前进位加法器,如图11所示,修正华莱士树组电路131可以输出16个华莱士树子电路的和位输出信号Sum和进位输出信号Carry,但是,16位超前进位加法器接收到的和位输出信号可以为修正华莱士树组电路131输出的完整和位信号Sum,接收到的进位输出信号可以为修正华莱士树组电路131中,除去最后一个华莱士树子电路输出的进位输出信号的所有进位输出信号与0结合后的进位信号Carry。
本实施例提供的一种乘法器,通过累加电路可以对修正华莱士树组电路输出的两路信号进行累加运算,得到乘法运算结果,该过程能够对消除符号位扩展处理进行修正,提高乘法运算结果的准确性。
图12为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图1所示的乘法器进行处理,本实施例涉及的是数据乘法运算的过程。如图12所示,该方法包括:
S101、接收待处理的数据。
具体的,乘法器可以通过编码电路接收待处理的数据,该数据可以为乘法运算中的乘数和被乘数。其中,待处理乘数的位宽可以等于待处理被乘数的位宽。
S102、对待处理的所述数据进行编码,得到编码结果,并根据待处理的所述数据及所述编码结果得到消除符号位扩展后的部分积。
具体的,乘法器可以通过编码电路对接收到的待处理乘数进行二进制编码,并根据待处理的被乘数和二进制编码的结果得到消除符号位扩展后的部分积,并且消除符号位扩展后的部分积数量可以等于乘法器当前所处理数据位宽的1/2。
S103、对所述消除符号位扩展后的部分积进行修正累加处理,得到运算结果。
具体的,乘法器可以通过修正累加电路中的逐层第二全加器对消除符号位扩展后的部分积进行修正累加处理,直到最后一层第二全加器结束运算为止,得到乘法运算结果。可选的,上述修正累加处理可以表征为对消除符号位扩展后的部分积进行累加的过程中进行修正处理,该修正处理可以是通过修正累加电路中第一层第二全加器,和最后一层第二全加器中的两个第二全加器进行加1处理。可选的,上述运算结果可以为消除符号位扩展后并进行修正累计处理后的运算结果。需要说明的是,在修正累加处理过程中,修正累加电路可以通过第一层和最后一层第二全加器中的两个全加器对消除符号位扩展后的部分积中的数值进行加1处理,其中,如果每一个第二全加器对应一个编号,则第一层全加器中进行加1处理的第二全加器可以为次高位编号加法器的低一位加法器,最后一层第二全加器中进行加1处理的第二全加器可以为最高位编号的加法器。
另外,乘法器还可以通过修正累加电路中的修正华莱士树组电路对消除符号位扩展后的部分积的每一列数值进行累加处理,并在累加处理的过程中通过修正华莱士树组电路中的两个华莱士树子电路可以进行加1处理,通过修正华莱士树组电路输出修正加1处理后的进位输出信号与和位输出信号,最后通过累加电路将修正华莱士树组电路的进位输出信号,与用0替代最后一个和位信号后的信号进行累加处理,并将乘法运算结果输出。需要说明的是,若乘法器当前处理N为数据运算,且修正华莱士树组电路中串行连接2N个华莱士树子电路,每一个华莱士树子电路对应的编号从0开始,则修正华莱士树组电路可以通过第N个华莱士树子电路和第2N-1个华莱士树子电路进行加1处理。
本实施例提供的一种数据处理方法,接收待处理的数据,将待处理的所述数据进行编码,根据待处理的所述数据及编码结果得到消除符号位扩展后的部分积,对所述消除符号位扩展后的部分积进行修正累加处理,得到运算结果,该方法在保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗。
如图13所示为另一实施例提供的数据处理方法,上述S102中对待处理的所述数据进行编码,得到编码结果,并根据待处理的所述被数据及所述编码结果得到消除符号位扩展的部分积,包括:
S1021、对待处理的所述数据进行布斯编码处理,得到编码信号。
具体的,乘法器可以通过布斯编码处理单元对待处理的乘数进行布斯编码处理,得到编码信号。可选的,布斯编码处理过程中,输入的乘数中3比特位宽的数据可以得到一位编码后的数据,上述布斯编码处理过程中的编码规则可以参见表2,根据表2可知,布斯编码处理单元对乘数进行布斯编码处理,可以得到五类不同的编码信号,每类编码信号分别定义为-2X,2X,-X,X和0。
S1022、根据待处理的所述数据与所述编码信号,得到消除符号位扩展后的所述部分积。
具体的,部分积获取单元可以根据待处理的被乘数与编码信号,并通过二进制算术运算得到消除符号位扩展后的部分积。
本实施例提供的一种数据处理方法,对待处理的数据进行布斯编码处理,得到编码信号,根据待处理的数据与所述编码信号,得到消除符号位扩展后的部分积,进而对消除符号位扩展后的部分积进行修正累加处理,并将运算结果输出,该方法在保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗。
在其中一个实施例中,如图14所示,上述S1022中根据待处理的所述数据与所述编码信号,得到消除符号位扩展后的部分积,包括:
S1022a、根据待处理的所述数据与所述编码信号,得到原始部分积。
需要说明的是,原始部分积的数量可以等于编码信号的数量。
示例性的,若部分积获取单元接收到一个8位的被乘数“x7x6x5x4x3x2x1x0”(即X),则部分积获取单元可以根据被乘数“x7x6x5x4x3x2x1x0”(即X)与五类编码信号-2X,2X,-X,X和0直接得到对应原始部分积,当编码信号为-2X时,则原始部分积可以为对X进行左右一位后取反再加1,当编码信号为2X时,则原始部分积可以为对X进行左移一位,当编码信号为-X时,则原始部分积可以为对X按位取反再加1,当编码信号为X时,则原始部分积可以为X与X最高位的更高一位数值结合的数据,其中,X最高位的更高一位数值可以等于X的符号位数值,当编码信号为±0时,则原始部分积可以为0,也就是9位部分积中的每一位数值均等于0。
S1022b、根据所述原始部分积进行加法运算处理,得到消除符号位扩展后的部分积。
可选的,上述S1022b中对所述原始部分积进行加法运算处理,得到消除符号位扩展的部分积,包括:根据所述原始部分积的高两位数值进行加1处理以及所述判断处理,得到消除符号位扩展后的部分积。
具体的,乘法器通过部分积获取单元可以对每一个原始部分积的最高位和次高位的数值通过第一全加器进行加1处理,并且根据原始部分积的最高位和次高位的数值,可以得到消除符号位扩展后的部分积中的额外一位数值Q,进而得到消除符号位扩展后的部分积。可选的,上述判断处理可以理解为根据原始部分积的最高位数值和次高位数值确定Q位数值的过程。可选的,Q对应的数值可以通过原始部分积的最高位数值和次高位数值共同确定,确定规则可以参见表2。
本实施例提供的一种数据处理方法,根据待处理的所述数据与所述编码信号,得到原始部分积,根据原始部分积的高两位数值进行加1处理以及判断处理,得到消除符号位扩展后的部分积,进而对消除符号位扩展后的部分积进行修正累加处理,得到乘法运算结果,该方法在保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗。
图15为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图2所示的乘法器进行处理,本实施例涉及的是数据乘法运算的过程。如图15所示,该方法包括:
S201、接收待处理的数据。
具体的,乘法器可以通过布斯编码处理电路接收待处理的数据,该数据可以为乘法运算中的乘数和被乘数。其中,待处理乘数的位宽可以等于待处理被乘数的位宽。
S202、将待处理的所述数据进行布斯编码处理,得到原始部分积。
具体的,乘法器通过布斯编码处理电路对待处理的乘数进行布斯编码处理,根据布斯编码处理的结果可以得到原始部分积。
S203、根据所述原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积。
具体的,乘法器可以通过部分积获取电路中的逻辑门电路对原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积。
S204、对所述消除符号位扩展后的部分积进行修正累加处理,得到运算结果。
具体的,乘法器可以通过修正累加电路中的逐层第二全加器对消除符号位扩展后的部分积进行修正累加处理,直到最后一层第二全加器结束运算为止,得到运算结果。可选的,上述修正累加处理可以表征为对消除符号位扩展后的部分积进行累加的过程中进行修正处理,该修正处理可以是通过修正累加电路中第一层第二全加器,和最后一层第二全加器中的两个全加器进行加1处理。可选的,上述运算结果可以为消除符号位扩展后并进行修正累计处理后的运算结果。需要说明的是,在修正累加处理过程中,修正累加电路可以通过第一层和最后一层第二全加器中的两个第二全加器,对消除符号位扩展后的部分积中的数值进行加1处理,其中,如果每一个全加器对应一个编号,则第一层第二全加器中进行加1处理的第二全加器,可以为次高位编号加法器的低一位加法器,最后一层第二全加器中进行加1处理的全加器可以为最高位编号的加法器。
另外,乘法器还可以通过修正累加电路中的修正华莱士树组电路对消除符号位扩展后的部分积的每一列数值进行累加处理,并在累加处理的过程中通过修正华莱士树组电路中两个华莱士树子电路可以进行修正加1处理,通过修正华莱士树组电路输出修正加1处理后的进位输出信号与和位输出信号,最后通过累加电路将修正华莱士树组电路的所有进位输出信号Carryi,与用0替代最后一个和位信号SumN-1后的所有和位信号进行累加处理,并将运算结果输出。需要说明的是,若乘法器当前处理N位数据运算,且修正华莱士树组电路中串行连接2N个华莱士树子电路,每一个华莱士树子电路对应的编号从0开始,则修正华莱士树组电路可以通过第N个华莱士树子电路和第2N-1个华莱士树子电路进行加1处理。
本实施例提供的一种数据处理方法,接收待处理的数据,将待处理的所述数据进行布斯编码处理,得到原始部分积,根据所述原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积,对所述消除符号位扩展后的部分积进行修正累加处理,得到运算结果,该方法在保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗。
如图16所示为另一实施例提供的数据处理方法,上述S202中将待处理的所述数据进行布斯编码处理,得到原始部分积,包括:
S2021、对待处理的所述数据进行布斯编码处理,得到编码信号。
具体的,乘法器可以通过布斯编码处理电路对待处理的乘数进行布斯编码处理,得到编码信号。可选的,布斯编码处理过程中,输入的乘数中3比特位宽的数据可以得到一位编码后的数据,上述布斯编码处理过程中的编码规则可以参见表3,根据表3可知,布斯编码处理电路对乘数进行布斯编码处理,可以得到五类不同的编码信号,每类编码信号分别定义为-2X,2X,-X,X和0。
S2022、根据待处理的所述数据与所述编码信号,得到所述原始部分积。
需要说明的是,原始部分积数量可以等于编码信号的数量。
示例性的,若部分积获取电路接收到一个8位的被乘数“x7x6x5x4x3x2x1x0”(即X),则部分积获取电路可以根据被乘数“x7x6x5x4x3x2x1x0”(即X)与五类编码信号-2X,2X,-X,X和0直接得到对应原始部分积,当编码信号为-2X时,则原始部分积可以为对X进行左右一位后取反再加1,当编码信号为2X时,则原始可以为对X进行左移一位,当编码信号为-X时,则原始部分积可以为对X按位取反再加1,当编码信号为X时,则原始部分积可以为X与X最高位的更高一位数值结合的数据,其中,X最高位的更高一位数值可以等于X的符号位数值,当编码信号为±0时,则原始部分积可以为0,也就是9位部分积中的每一位数值均等于0。
本实施例提供的一种数据处理方法,对待处理的所述数据进行布斯编码处理,得到编码信号,根据待处理的所述数据与所述编码信号,得到所述原始部分积,然后对原始部分积进行消除符号位扩展处理,从而可以有效降低乘法器的功耗。
另一实施例提供的数据处理方法,上述S203中根据所述原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积,包括:对所述原始部分积的高两位数值进行异或,取反和与逻辑运算处理,得到消除符号位扩展后的部分积。
具体的,乘法器可以通过部分积获取电路中的逻辑门电路,对原始部分积中的次高位数值与最高位数值进行异或逻辑运算,得到消除符号位扩展后的部分积中的对应最高位数值,并通过部分积获取电路中的逻辑门电路,对原始部分积中的次高位数值取反后,得到消除符号位扩展后的部分积中的对应次高位数值,另外,乘法器还可以通过部分积获取电路中的逻辑门电路,对原始部分积中的最高位数值取反后和最高位数值进行与逻辑运算,得到消除符号位扩展后的部分积中的额外一位数值Q。
本实施例提供的一种数据处理方法,对待处理的数据进行处理后,得到原始部分积,并对所述原始部分积的高两位数值进行异或,取反和与逻辑运算,得到消除符号位扩展后的部分积,从而可以有效降低乘法器的功耗。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的乘法器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上乘法器时,乘法器间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图17为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图18所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图19所示,图19提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其它的配套部件,该配套部件包括但不限于:存储器件390、接收装置391和控制器件392;
所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接收装置与所述芯片封装结构内的芯片电连接。所述接收装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接收装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接收装置还可以是其它的接口,本申请并不限制上述其它的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接收装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备可以为数据处理器、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的电路组合,但是本领域技术人员应该知悉,本申请并不受所描述的电路组合方式的限制,因为依据本申请,某些电路可以采用其它方式或者结构实现。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的器件和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (18)

1.一种乘法器,其特征在于,所述乘法器包括:布斯编码处理电路、部分积获取电路以及修正累加电路,其中,所述布斯编码处理电路的输出端与所述部分积获取电路输入端连接,所述部分积获取电路的输出端与所述修正累加电路的输入端连接;
所述布斯编码处理电路用于对接收到的数据进行布斯编码处理得到编码信号,所述部分积获取电路用于根据编码信号得到原始部分积,并通过逻辑门电路分别对所述原始部分积的次高位数值进行取反运算、对所述原始部分积的最高位数值和所述次高位数值进行异或运算,以及对所述最高位数值进行取反运算后的取反结果与所述次高位数值进行与运算,得到消除符号位扩展后的部分积,所述修正累加电路用于对消除符号位扩展后的部分积进行修正累加处理。
2.根据权利要求1所述的乘法器,其特征在于,所述布斯编码处理电路包括:数据输入端口以及编码信号输出端口;所述数据输入端口用于接收进行布斯编码的数据,所述编码信号输出端口用于输出对接收到的数据进行布斯编码后得到的编码信号。
3.根据权利要求1所述的乘法器,其特征在于,在布斯编码前,所述布斯编码处理电路对接收到的所述数据进行补位处理,所述补位处理为对接收到的所述数据的最低位数值后补一位数值0。
4.根据权利要求3所述的乘法器,其特征在于,所述部分积获取电路包括异或门电路,与门电路和反相器。
5.根据权利要求1所述的乘法器,其特征在于,所述修正累加电路包括:修正华莱士树组电路以及累加电路,其中,所述修正华莱士树组电路的输出端与所述累加电路的输入端连接;所述修正华莱士树组电路用于对消除符号位扩展后的部分积进行累加修正处理,所述累加电路用于对接收到的输入数据进行累加处理。
6.根据权利要求5所述的乘法器,其特征在于,所述修正华莱士树组电路包括:华莱士树子电路,所述华莱士树子电路用于对消除符号位扩展后的部分积的每一列进行修正累加处理。
7.根据权利要求5所述的乘法器,其特征在于,所述累加电路包括:加法器,所述加法器用于对接收到的两个同位宽数据进行加法运算。
8.根据权利要求7所述的乘法器,其特征在于,所述加法器包括:进位信号输入端口、和位信号输入端口以及结果输出端口;所述进位信号输入端口用于接收进位信号,和位信号输入端口用于接收和位信号,结果输出端口用于输出进位信号与和位信号进行累加处理的结果。
9.一种乘法运算方法,其特征在于,所述方法包括:
接收待处理的数据;
将待处理的所述数据进行布斯编码处理,得到原始部分积;
对所述原始部分积的次高位数值进行取反运算,得到第一运算结果;
对所述原始部分积的最高位数值和所述次高位数值进行异或运算,得到第二运算结果;
对所述最高位数值进行取反运算后的取反结果与所述次高位数值进行与运算,得到第三运算结果;
根据所述第一运算结果、所述第二运算结果、所述第三运算结果以及所述原始部分积,确定消除符号位扩展后的部分积;
对所述消除符号位扩展后的部分积进行修正累加处理,得到运算结果。
10.根据权利要求9所述的方法,其特征在于,所述待处理的所述数据进行布斯编码处理,得到原始部分积,包括:
对待处理的所述数据进行布斯编码处理,得到编码信号;
根据待处理的所述数据与所述编码信号,得到所述原始部分积。
11.根据权利要求10所述的方法,其特征在于,所述编码信号包括-2X、2X、-X、X和0,X表示所述数据中的被乘数。
12.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-8任一项所述的乘法器,用于从其它处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,所述多个所述乘法器间可以通过特定的结构进行连接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
13.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求12所述的机器学习运算装置,通用互联接口和其它处理装置;
所述机器学习运算装置与所述其它处理装置进行交互,共同完成用户指定的计算操作。
14.根据权利要求13所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
15.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求12所述的机器学习运算装置或如权利要求13所述的组合处理装置。
16.一种电子设备,其特征在于,所述电子设备包括如权利要求15所述的神经网络芯片。
17.一种板卡,其特征在于,所述板卡包括:存储器件、接收装置和控制器件以及如权利要求15所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接收装置分别连接;
所述存储器件,用于存储数据;
所述接收装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
18.根据权利要求17所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接收装置为:标准PCIE接口。
CN201811450641.1A 2018-11-30 2018-11-30 乘法器、数据处理方法、芯片及电子设备 Active CN111258542B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811450641.1A CN111258542B (zh) 2018-11-30 2018-11-30 乘法器、数据处理方法、芯片及电子设备
PCT/CN2019/120994 WO2020108486A1 (zh) 2018-11-30 2019-11-26 数据处理装置、方法、芯片及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811450641.1A CN111258542B (zh) 2018-11-30 2018-11-30 乘法器、数据处理方法、芯片及电子设备

Publications (2)

Publication Number Publication Date
CN111258542A CN111258542A (zh) 2020-06-09
CN111258542B true CN111258542B (zh) 2022-06-17

Family

ID=70946408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811450641.1A Active CN111258542B (zh) 2018-11-30 2018-11-30 乘法器、数据处理方法、芯片及电子设备

Country Status (1)

Country Link
CN (1) CN111258542B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540743B (zh) * 2020-12-21 2024-05-07 清华大学 面向可重构处理器的有无符号乘累加器及方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1117165A (zh) * 1995-08-14 1996-02-21 大宇电子株式会社 二进制乘法器中的布斯编码器
USRE36388E (en) * 1992-08-14 1999-11-09 Harris Corporation Sine/cosine generator and method
CN101010665A (zh) * 2004-08-26 2007-08-01 松下电器产业株式会社 乘法装置
CN101384991A (zh) * 2006-02-15 2009-03-11 松下电器产业株式会社 乘法器、数字滤波器、信号处理装置、合成装置、合成程序和合成程序记录介质
CN101458617A (zh) * 2008-01-22 2009-06-17 西北工业大学 基于cisc微处理器的32位整数乘法器
CN101739231A (zh) * 2010-01-04 2010-06-16 西安电子科技大学 布斯-华莱士树型乘法器
CN103412737A (zh) * 2013-06-27 2013-11-27 清华大学 基4-Booth编码方法及门电路和流水线大数乘法器
CN108304341A (zh) * 2018-03-13 2018-07-20 算丰科技(北京)有限公司 Ai芯片高速传输架构、ai运算板卡及服务器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139787B2 (en) * 2003-01-30 2006-11-21 Sun Microsystems, Inc. Multiply execution unit for performing integer and XOR multiplication
TWI258694B (en) * 2004-04-02 2006-07-21 Ali Corp Method and system for sign extension of multiplier
US7809783B2 (en) * 2006-02-15 2010-10-05 Qualcomm Incorporated Booth multiplier with enhanced reduction tree circuitry
CN101770355B (zh) * 2009-12-30 2011-11-16 龙芯中科技术有限公司 兼容双精度和双单精度的浮点乘加器及其兼容处理方法
CN106897046B (zh) * 2017-01-24 2019-04-23 青岛专用集成电路设计工程技术研究中心 一种定点乘累加器

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE36388E (en) * 1992-08-14 1999-11-09 Harris Corporation Sine/cosine generator and method
CN1117165A (zh) * 1995-08-14 1996-02-21 大宇电子株式会社 二进制乘法器中的布斯编码器
CN101010665A (zh) * 2004-08-26 2007-08-01 松下电器产业株式会社 乘法装置
CN101384991A (zh) * 2006-02-15 2009-03-11 松下电器产业株式会社 乘法器、数字滤波器、信号处理装置、合成装置、合成程序和合成程序记录介质
CN101458617A (zh) * 2008-01-22 2009-06-17 西北工业大学 基于cisc微处理器的32位整数乘法器
CN101739231A (zh) * 2010-01-04 2010-06-16 西安电子科技大学 布斯-华莱士树型乘法器
CN103412737A (zh) * 2013-06-27 2013-11-27 清华大学 基4-Booth编码方法及门电路和流水线大数乘法器
CN108304341A (zh) * 2018-03-13 2018-07-20 算丰科技(北京)有限公司 Ai芯片高速传输架构、ai运算板卡及服务器

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
A fast hybrid multiplier combining Booth and Wallace/Dadda algorithms;B. Millar .etc;《Proceedings of the 35th Midwest Symposium on Circuits and Systems》;20020806;第1-8页 *
Cambricon-X: An accelerator for sparse neural networks;Shijin Zhang .etc;《2016 49th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO)》;20161215;第1-12页 *
一种可嵌入MCU的8位高速乘法器的设计;朱建卫等;《微电子学》;20101220;第40卷(第6期);第832-835页 *
兼容X86指令的32位乘法器的分析与设计;王得利等;《计算机应用研究》;20080430;第25卷(第4期);第1264-1267页 *
基4BOOTH编码的高速32×32乘法器的设计与实现;周婉婷等;《电子科技大学学报》;20080630;第37卷;正文1.2节 *
基于修正BOOTH编码的32×32位乘法器;崔晓平;《电子测量技术》;20070228;第30卷(第1期);第82-85页 *

Also Published As

Publication number Publication date
CN111258542A (zh) 2020-06-09

Similar Documents

Publication Publication Date Title
CN110413254B (zh) 数据处理器、方法、芯片及电子设备
CN110673823B (zh) 乘法器、数据处理方法及芯片
CN110515587B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111381808B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110554854A (zh) 数据处理器、方法、芯片及电子设备
CN111258541B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258633B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258544B (zh) 乘法器、数据处理方法、芯片及电子设备
CN113031912A (zh) 乘法器、数据处理方法、装置及芯片
CN111258542B (zh) 乘法器、数据处理方法、芯片及电子设备
CN209879493U (zh) 乘法器
CN110515586B (zh) 乘法器、数据处理方法、芯片及电子设备
CN210109863U (zh) 乘法器、装置、神经网络芯片及电子设备
CN111258545B (zh) 乘法器、数据处理方法、芯片及电子设备
CN209895329U (zh) 乘法器
CN210006029U (zh) 数据处理器
CN110647307B (zh) 数据处理器、方法、芯片及电子设备
CN113031915A (zh) 乘法器、数据处理方法、装置及芯片
CN111258546B (zh) 乘法器、数据处理方法、芯片及电子设备
CN209962284U (zh) 乘法器、装置、芯片及电子设备
CN113031916A (zh) 乘法器、数据处理方法、装置及芯片
CN113031911A (zh) 乘法器、数据处理方法、装置及芯片
CN210006082U (zh) 乘法器、装置、神经网络芯片及电子设备
CN110688087A (zh) 数据处理器、方法、芯片及电子设备
CN209879492U (zh) 乘法器、机器学习运算装置及组合处理装置

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