CN110673823A - 乘法器、数据处理方法及芯片 - Google Patents

乘法器、数据处理方法及芯片 Download PDF

Info

Publication number
CN110673823A
CN110673823A CN201910945757.0A CN201910945757A CN110673823A CN 110673823 A CN110673823 A CN 110673823A CN 201910945757 A CN201910945757 A CN 201910945757A CN 110673823 A CN110673823 A CN 110673823A
Authority
CN
China
Prior art keywords
data
bit
order
value
partial product
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
CN201910945757.0A
Other languages
English (en)
Other versions
CN110673823B (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 CN201910945757.0A priority Critical patent/CN110673823B/zh
Publication of CN110673823A publication Critical patent/CN110673823A/zh
Application granted granted Critical
Publication of CN110673823B publication Critical patent/CN110673823B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Abstract

本申请提供一种乘法器、数据处理方法及芯片,所述乘法器包括:修正布斯编码电路、修正华莱士树电路以及修正累加电路,所述修正布斯编码电路的输出端与所述修正华莱士树电路的输入端连接,所述修正华莱士树电路的输出端与所述修正累加电路的输入端连接,该乘法器可以对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性。

Description

乘法器、数据处理方法及芯片
技术领域
本申请涉及计算机技术领域,特别是涉及一种乘法器、数据处理方法及芯片。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片的快速发展对于高性能数字乘法器的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,通过乘法器进行乘法运算在神经网络算法中是一种常见的操作。
通常,采用不同位宽的现有乘法器能够实现不同位宽数据的乘法运算。但是,针对低位宽的数据运算,不能采用可处理高位宽数据的现有乘法器进行乘法运算,导致乘法器的通用性较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够乘法器通用性的乘法器、数据处理方法及芯片。
本申请实施例提供一种乘法器,所述乘法器包括:修正布斯编码电路、修正华莱士树电路以及修正累加电路,所述修正华莱士树电路包括4-2压缩器,所述4-2压缩器包括选择电路以及全加器;所述修正布斯编码电路的输出端与所述修正华莱士树电路的输入端连接,所述修正华莱士树电路的输出端与所述修正累加电路的输入端连接;
其中,所述修正布斯编码电路、所述修正华莱士树电路以及所述修正累加电路均包括逻辑门单元,所述逻辑门单元的输入端用于接收接收功能模式选择信号,所述功能模式选择信号用于确定所述乘法器可处理的数据位宽。
在其中一个实施例中,所述修正布斯编码电路用于对接收到的数据进行布斯编码处理得到目标编码,并根据所述目标编码得到符号位扩展后的部分积,所述修正华莱士树电路用于对所述符号位扩展后的部分积进行累加处理得到累加运算结果,所述修正累加电路用于对所述累加运算结果进行累加处理,得到目标运算结果。
在其中一个实施例中,所述修正布斯编码电路包括:修正布斯编码单元、低位部分积获取单元、低位选择器组单元、低位与逻辑单元、高位部分积获取单元、高位选择器组单元以及高位与逻辑单元,所述修正布斯编码单元的第一输出端与所述低位部分积获取单元的第一输入端连接,所述低位选择器组单元的输出端与所述低位部分积获取单元的第二输入端连接,所述低位与逻辑单元的输出端与所述低位部分积获取单元的第三输入端连接,所述修正布斯编码单元的第二输出端与所述高位部分积获取单元的第一输入端连接,所述高位选择器组单元的输出端与所述高位部分积获取单元的第二输入端连接,所述高位与逻辑单元的输出端与所述高位部分积获取单元的第三输入端连接;
其中,所述修正布斯编码单元用于根据接收到的所述功能模式选择信号确定所述乘法器可处理数据的位宽,并对接收到的第一数据进行布斯编码处理得到低位目标编码以及高位目标编码,所述低位部分积获取单元用于根据接收到的所述低位目标编码以及第二数据,得到符号位扩展后的低位部分积,所述低位选择器组单元用于选通所述符号位扩展后的低位部分积中的第一数值,所述低位与逻辑单元用于根据接收到的功能模式选择信号进行与逻辑运算,得到所述符号位扩展后的低位部分积中的第二数值,所述高位部分积获取单元用于根据接收到的所述高位目标编码以及所述第二数据,得到符号位扩展后的高位部分积,所述高位选择器组单元用于选通所述符号位扩展后的高位部分积中的第三数值,所述高位与逻辑单元用于根据接收到的功能模式选择信号进行与逻辑运算,得到所述符号位扩展后的高位位部分积中的第四数值。
在其中一个实施例中,所述修正布斯编码单元包括低位布斯编码单元、与逻辑单元以及高位布斯编码单元,所述低位布斯编码单元用于对接收到的所述第一数据中的低位数据进行布斯编码处理得到低位目标编码,所述与逻辑单元用于根据接收到的功能模式选择信号进行与逻辑运算,得到高位数据进行布斯编码处理时的补位数值,所述高位布斯编码单元用于对接收到的所述第一数据中的高位数据进行布斯编码处理得到高位目标编码。
在其中一个实施例中,所述低位布斯编码单元包括:低位数据输入端口、低位目标编码输出端口以及高位数值输出端口;所述低位数据输入端口用于接收所述第一数据中的低位数据以及补位数值,所述低位目标编码输出端口用于输出对所述低位数据进行布斯编码处理后得到的低位目标编码,所述高位数值输出端口用于输出所述低位数据中的最高位数值。
在其中一个实施例中,所述与逻辑单元包括:高位数值输入端口、模式选择信号输入端口以及逻辑运算结果输出端口;所述高位数值输入端口用于接收所述低位数据中的最高位数值,所述模式选择信号输入端口用于接收所述功能模式选择信号,所述逻辑运算结果输出端口用于输出逻辑运算结果。
在其中一个实施例中,所述高位布斯编码单元包括:高位数据输入端口、低位数值输入端口以及高位目标编码输出端口;所述高位数据输入端口用于接收所述第一数据中的高位数据,所述低位数值输入端口用于接收所述低位数据中的最高位数值与所述功能模式选择信号进行与逻辑运算得到的逻辑运算结果,所述高位目标编码输出端口用于输出高位目标编码。
在其中一个实施例中,所述低位部分积获取单元包括:低位目标编码输入端口、第一选通数值输入端口、第二选通数值输入端口、第二数据输入端口以及低位部分积输出端口;所述低位目标编码输入端口用于接收所述低位目标编码,所述第一选通数值输入端口用于接收所述低位选择器组单元选通后,输出的所述符号位扩展后的低位部分积中的第一数值,所述第二选通数值输入端口用于接收所述低位与逻辑单元输出的所述符号位扩展后的低位部分积中的第二数值,所述第二数据输入端口用于接收第二数据,所述低位部分积输出端口用于输出所述符号位扩展后的低位部分积。
在其中一个实施例中,所述低位选择器组单元包括:低位选择器,所述低位选择器用于选通所述符号位扩展后的低位部分积中的第一数值。
在其中一个实施例中,所述低位与逻辑单元包括:第一模式选择信号输入端口、第一符号位数值输入端口以及第一结果输出端口;其中,所述第一模式选择信号输入端口用于接收所述功能模式选择信号,所述第一符号位数值输入端口用于接收所述符号位扩展后的低位部分积中的第一符号位数值,所述第一结果输出端口用于输出逻辑运算结果。
在其中一个实施例中,所述高位部分积获取单元包括:高位目标编码输入端口、第三选通数值输入端口、第四选通数值输入端口、第二数据输入端口以及高位部分积输出端口;所述高位目标编码输入端口用于接收所述高位目标编码,所述第三选通数值输入端口用于接收所述高位选择器组单元选通后,输出的所述符号位扩展后的高位部分积中的第三数值,所述第四选通数值输入端口用于接收所述高位与逻辑单元输出的所述符号位扩展后的高位部分积中的第四数值,所述第二数据输入端口用于接收所述第二数据,所述高位部分积输出端口用于输出所述符号位扩展后的高位部分积。
在其中一个实施例中,所述高位选择器组单元包括:高位选择器,所述高位选择器用于选通所述符号位扩展后的高位部分积中的第三数值。
在其中一个实施例中,所述高位与逻辑单元包括:第二模式选择信号输入端口、第二符号位数值输入端口以及第二结果输出端口;其中,所述第二模式选择信号输入端口用于接收所述功能模式选择信号,所述第二符号位数值输入端口用于接收所述符号位扩展后的高位部分积中的第二符号位数值,所述第二结果输出端口用于输出逻辑运算结果。
在其中一个实施例中,所述修正华莱士树电路包括:低位华莱士树单元、与逻辑单元以及高位华莱士树单元,所述低位华莱士树单元的输出端与所述与逻辑单元的输入端连接,所述与逻辑单元的输出端与所述高位华莱士树单元的输入端连接;其中,多个所述低位华莱士树单元用于对所有符号位扩展后的部分积中的每一列数值进行累加处理,所述与逻辑单元用于对接收到的所述功能模式选择信号和所述低位华莱士树单元输出的进位输出信号进行与逻辑运算,得到所述高位华莱士树单元接收的进位输入信号,多个所述高位华莱士树单元用于对所有符号位扩展后的部分积中的每一列数值进行累加处理。
在其中一个实施例中,所述低位华莱士树单元和所述高位华莱士树单元均包括所述4-2压缩器以及模式选择电路,所述模式选择电路的输出端与所述4-2压缩器的输入端连接;其中,所述4-2压缩器用于对所有符号位扩展后的部分积中每一列的数值进行累加处理,所述模式选择电路用于选通所述4-2压缩器接收到的所述符号位扩展后的部分积中的数值;其中,所述模式选择电路中包括第一输入端,用于接收所述功能模式选择信号。
在其中一个实施例中,所述修正累加电路包括:低位加法器、与逻辑单元以及高位加法器,所述低位加法器用于对低位累加运算结果进行累加处理,所述与逻辑单元用于对接收到的所述功能模式选择信号与所述低位加法器的输出信号进行与逻辑运算,以得到所述高位加法器的进位输入信号,所述高位加法器用于根据所述进位输入信号与高位累加运算结果进行累加运算。
本实施例提供的乘法器,该乘法器能够对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性;另外,乘法器通过修正华莱士树电路对目标编码的部分积进行累加运算,还可以有效降低乘法器功耗。
本申请实施例提供一种数据处理方法,所述方法包括:
接收待处理数据以及功能模式选择信号,其中,所述功能模式选择信号用于指示当前可处理数据的位宽;
对所述待处理数据与所述功能模式选择信号进行逻辑运算,得到待编码数值;
对所述待处理数据和所述待编码数值进行布斯编码处理,得到目标编码;
根据所述功能模式选择信号、所述目标编码以及所述待处理数据,得到所述符号位扩展后的部分积;
对所述符号位扩展后的部分积进行累加处理,得到目标运算结果。
在其中一个实施例中,所述对所述待处理数据与所述功能模式选择信号进行逻辑运算,得到待编码数值,包括:对所述待处理数据中的最高位数值和所述功能模式选择信号进行与逻辑运算,得到所述待编码数值。
在其中一个实施例中,所述目标编码包括高位目标编码和低位目标编码;所述对所述待处理数据和所述待编码数值进行布斯编码处理,得到目标编码,包括:
根据所述待编码数值与所述待处理数据,得到待编码的高位数据和待编码的低位数据;
分别对所述待编码的高位数据和所述待编码的低位数据进行布斯编码处理,得到所述高位目标编码和所述低位目标编码。
在其中一个实施例中,所述根据所述功能模式选择信号、所述目标编码以及所述待处理数据,得到所述符号位扩展后的部分积,包括:
根据所述目标编码以及所述待处理数据,得到符号位扩展后的第一部分积;
根据所述功能模式选择信号,得到所述符号位扩展后的低位部分积中的第一数值;
对所述功能模式选择信号和所述符号位扩展后的第一部分积中的符号位数值进行与逻辑运算,得到所述符号位扩展后的低位部分积中的第二数值;
将所述符号位扩展后的第一部分积中的数值、与所述第一数值和所述第二数值进行结合,得到所述符号位扩展后的低位部分积。
在其中一个实施例中,所述根据所述功能模式选择信号、所述目标编码以及所述待处理数据,得到所述符号位扩展后的部分积,包括:
根据所述目标编码以及所述待处理数据,得到符号位扩展后的第二部分积;
根据所述功能模式选择信号,得到所述符号位扩展后的高位部分积中的第三数值;
对所述功能模式选择信号和所述符号位扩展后的第二部分积中的符号位数值进行与逻辑运算,得到所述符号位扩展后的高位部分积中的第四数值;
将所述符号位扩展后的第二部分积中的数值、与所述第三数值和所述第四数值进行结合,得到所述符号位扩展后的高位部分积。
在其中一个实施例中,所述对所述符号位扩展后的部分积进行累加处理,得到目标运算结果,包括:
通过低位华莱士树单元对所述符号位扩展后的部分积中的列数值进行累加处理,得到累加运算结果;
通过与逻辑单元对所述累加运算结果和所述功能模式选择信号进行与逻辑运算,得到进位输入信号;
通过高位华莱士树单元根据所述进位输入信号以及所述符号位扩展后的部分积中的列数值进行累加处理,得到目标运算结果。
本实施例提供的一种数据处理方法,该方法包括:接收待处理数据以及功能模式选择信号,对待处理数据与功能模式选择信号进行逻辑运算,得到待编码数值,对待处理数据和待编码数值进行布斯编码处理,得到目标编码,根据功能模式选择信号、目标编码以及待处理数据,得到符号位扩展后的部分积,对符号位扩展后的部分积进行累加处理,得到目标运算结果;该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性。
本申请实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个所述的乘法器;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,多个所述乘法器间通过预设特定结构进行连接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
本申请实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
本申请实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的乘法器、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本申请实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本申请实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本申请实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本申请实施例提供的一种芯片,包括至少一个如上述任一项所述的乘法器。
本申请实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为为一实施例提供的一种乘法器的结构示意图;
图2为一实施例提供的乘法器的具体结构电路图;
图3a为一实施例提供的两组8位数据乘法运算得到的符号位扩展后的部分积的分布规律示意图;
图3b为一实施例提供的16位数据乘法运算得到的符号位扩展后的部分积的分布规律示意图;
图4为另一实施例提供的低位或高位华莱士树单元的电路结构示意图;
图5为一实施例提供的一种数据处理方法流程示意图;
图6为一实施例提供的一种组合处理装置的结构图;
图7为一实施例提供的另一种组合处理装置的结构图;
图8为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的乘法器可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中进行乘法运算处理,其具体结构示意图如图1和图2所示。
如图1所示为一个实施例提供的一种乘法器的结构图。如图1所示,该乘法器包括:修正布斯编码电路11、修正华莱士树电路12以及修正累加电路13,所述修正华莱士树电路12包括4-2压缩器,所述4-2压缩器包括选择电路以及全加器;所述修正布斯编码电路11的输出端与所述修正华莱士树电路12的输入端连接,所述修正华莱士树电路12的输出端与所述修正累加电路13的输入端连接。
其中,所述修正布斯编码电路11、所述修正华莱士树电路12以及所述修正累加电路13均包括逻辑门单元,所述逻辑门单元的输入端用于接收接收功能模式选择信号(mode信号),所述功能模式选择信号用于确定所述乘法器可处理的数据位宽。所述修正布斯编码电路11用于对接收到的数据进行布斯编码处理得到目标编码,并根据所述目标编码得到符号位扩展后的部分积,所述修正华莱士树电路12用于对所述符号位扩展后的部分积进行累加处理得到累加运算结果,所述修正累加电路13用于对所述累加运算结果进行累加处理,得到目标运算结果。
具体的,上述修正布斯编码电路11可以包括多个具有不同功能的数据处理单元,并且修正布斯编码电路11可以接收到两个数据,分别可以作为乘法运算中的乘数和被乘数。在乘法运算中,上述数据可以为定点数。可选的,修正布斯编码电路11可以接收多种不同比特位宽的数据,也就是说,本实施例提供的乘法器可以处理多种不同比特位宽数据的乘法运算。但是,同一次乘法运算时,修正布斯编码电路11接收到的乘数和被乘数可以是同位宽的数据,即乘数和被乘数位宽相等。示例性的,本实施例提供的乘法器可以处理4位*4位的数据乘法运算,处理8位*8位的数据乘法运算,16位*16位的数据乘法运算,32位*32位的数据乘法运算,还可以处理64位*64位的数据乘法运算,对此本实施例不作任何限定。
需要说明的是,上述修正布斯编码电路11可以接收乘法运算中的乘数和被乘数,并对乘数进行布斯编码处理,得到目标编码,根据目标编码以及接收到的被乘数得到符号位扩展后的部分积,该符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽的2倍。示例性的,一乘法器接收到8比特位宽的数据,且该乘法器当前可处理4位数据乘法运算,则乘法器中的修正布斯编码电路11需要将8比特位宽的数据划分成,高4位和低4位的两个数据分别进行布斯编码处理,此时,得到的符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽的2倍,高4位和低4位的两个数据分别得到的符号位扩展后的部分积的数目均可以等于乘法器当前所处理数据的位宽加1;若该乘法器当前可处理8位数据乘法运算,则乘法器中的修正布斯编码电路11需要对整体8位数据进行运算。
在本实施例中,上述布斯编码处理可以表征为一种二进制编码处理。可选的,上述修正布斯编码电路11可以接收乘法运算中的乘数和被乘数,并对乘数进行布斯编码处理。可选的,在进行布斯编码处理前,修正布斯编码电路11可以自动对乘数进行补位处理,该补位处理可以表征为对乘数中最低位数值的更低一位处补数值0,例如,乘数为“y7y6y5y4y3y2y1y0”,则在进行布斯编码处理前,修正布斯编码电路11可以自动对乘数进行补位处理,得到补位后的数据“y7y6y5y4y3y2y1y00”。
可以理解的是,上述功能模式选择信号可以有多种,不同功能模式选择信号对应于乘法器当前可以处理不同位宽数据的乘法运算。可选的,同一次乘法运算时,修正布斯编码电路11、修正华莱士树电路12以及修正累加电路13中包含的逻辑门单元,接收到的功能模式选择信号均可以相等。可选的,上述逻辑门单元可以为与门逻辑门单元,还可以为与门逻辑门单元以及或门逻辑门单元组合而成的逻辑门单元。
示例性的,若逻辑门单元能够接收到的mode信号可以等于0或1;但是,在本实施例中,mode信号为0可以表征乘法器能够对4位数据进行处理,mode信号为1可以表征乘法器能够对8位数据进行处理。
还可以理解的是,修正布斯编码电路11可以对乘数进行布斯编码处理得到原始部分积,然后对原始部分积进行符号位扩展处理得到符号位扩展后的部分积,该原始部分积的位宽可以等于(N+1),该符号位扩展后的部分积的位宽可以等于乘法器当前处理的数据位宽N的2倍;其中,符号位扩展后的部分积的高N位数值可以相等,低N位数值可以等于通过目标编码以及被乘数得到的原始部分积中的数值。若目标编码以及N位被乘数可以得到(N+1)位原始部分积,则符号位扩展后的部分积的高N位数值均可以等于原始部分积的最高位数值,符号位扩展后的部分积的低(N+1)位数值可以等于原始部分积的(N+1)位数值。可选的,上述目标编码可以包括三种数值,分别为-1、0和1,当数值为-1时,则对应的原始部分积可以为-X,当数值为0时,则对应的原始部分积可以为0,当数值为1时,则对应的原始部分积可以为X;其中,X可以表示修正布斯编码电路11接收到的被乘数,目标编码中的每个数值均可以得到一个对应的原始部分积。在本实施例中,修正华莱士树电路12可以通过4-2压缩器组成。可选的,1个4-2压缩器可以包括多个全加器以及选择电路,在一定条件下,4-2压缩器中的选择电路可以控制全加器为关闭状态,以提高修正华莱士树子电路的效率,减少时延。可选的,选择电路可以为多个选择器构成的电路,该选择器可以为二路选择器,并且选择电路可以接收功能模式选择信号,根据接收到的功能模式选择信号控制控制全加器的开闭状态。
本实施例提供的乘法器,乘法器通过修正布斯编码电路对接收到的数据进行布斯编码处理得到符号位扩展后的部分积,并通过修正华莱士树电路对符号位扩展后的部分积进行累加处理,得到目标运算结果;上述乘法器可以对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性;另外,乘法器通过修正华莱士树组电路对符号位扩展后的部分积进行累加运算,还可以有效降低乘法器功耗。
图2为另一实施例提供的乘法器的具体结构示意图,其中,乘法器包括所述修正布斯编码电路11,该修正布斯编码电路11包括:修正布斯编码单元111、低位部分积获取单元112、低位选择器组单元113、低位与逻辑单元114、高位部分积获取单元115、高位选择器组单元116以及高位与逻辑单元117,所述修正布斯编码单元111的第一输出端与所述低位部分积获取单元112的第一输入端连接,所述低位选择器组单元113的输出端与所述低位部分积获取单元112的第二输入端连接,所述低位与逻辑单元114的输出端与所述低位部分积获取单元112的第三输入端连接,所述修正布斯编码单元111的第二输出端与所述高位部分积获取单元115的第一输入端连接,所述高位选择器组单元116的输出端与所述高位部分积获取单元115的第二输入端连接,所述高位与逻辑单元117的输出端与所述高位部分积获取单元115的第三输入端连接。
其中,所述修正布斯编码单元111用于根据接收到的所述功能模式选择信号确定所述乘法器可处理数据的位宽,并对接收到的第一数据进行布斯编码处理得到低位目标编码以及高位目标编码,所述低位部分积获取单元112用于根据接收到的所述低位目标编码以及第二数据,得到符号位扩展后的低位部分积,所述低位选择器组单元113用于选通所述符号位扩展后的低位部分积中的第一数值,所述低位与逻辑单元114用于根据接收到的功能模式选择信号进行与逻辑运算,得到所述符号位扩展后的低位部分积中的第二数值,所述高位部分积获取单元115用于根据接收到的所述高位目标编码以及所述第二数据,得到符号位扩展后的高位部分积,所述高位选择器组单元116用于选通所述符号位扩展后的高位部分积中的第三数值,所述高位与逻辑单元117用于根据接收到的功能模式选择信号进行与逻辑运算,得到所述符号位扩展后的高位位部分积中的第四数值。
可选的,所述修正布斯编码单元111包括低位布斯编码单元111a、与逻辑单元111b以及高位布斯编码单元111c,所述低位布斯编码单元111a用于对接收到的所述第一数据中的低位数据进行布斯编码处理得到低位目标编码,所述与逻辑单元111b用于根据接收到的功能模式选择信号进行与逻辑运算,得到高位数据进行布斯编码处理时的补位数值,所述高位布斯编码单元111c用于对接收到的所述第一数据中的高位数据进行布斯编码处理得到高位目标编码。
具体的,上述修正布斯编码单元111可以接收第一数据,并对该第一数据进行布斯编码处理,得到低位目标编码和高位目标编码,该第一数据可以为乘法运算中的乘数,低位目标编码和高位目标编码可以统称为目标编码。可选的,上述低位部分积获取单元112可以根据接收到的第二数据,以及修正布斯编码单元111得到的低位目标编码,得到符号位扩展后的低位部分积;高位部分积获取单元115可以根据接收到的第二数据,以及修正布斯编码单元111得到的高位目标编码,得到符号位扩展后的高位部分积;上述第二数据可以为乘法运算中的被乘数。可选的,若乘法器当前可处理的数据位宽为N比特,乘法器中的修正布斯编码单元111接收到的数据位宽为2N,则修正布斯编码单元111可以自动将接收到2N位数据分为高N位数据以及低N位数据,分别对高N位数据和低N位数据进行布斯编码处理,得到的高位目标编码的位宽等于N加1,得到的低位目标编码的位宽等于N加1;同时,高位目标编码得到的对应符号位扩展后的高位部分积的数目可以等于(N+1);低位目标编码得到的对应符号位扩展后的低位部分积的数目可以等于(N+1);若乘法器当前可处理的数据位宽为2N,乘法器中的修正布斯编码单元111接收到的数据位宽为2N,则修正布斯编码单元111可以对接收到2N位数据进行自动补位数据,然后对补位后的数据进行布斯编码处理,得到N位目标编码。
进一步地,乘法器接收到的数据均可以包括低位数据以及高位数据,若该数据为“y7y6y5y4y3y2y1y0”,则高位数据可以为“y7y6y5y4”,低位数据可以为“y3y2y1y0”,也就是,若数据位宽为N时,则数据中高N位数值可以称为高位数据,低N位数值可以称为低位数据。需要说明的是,无论乘法器当前可处理数据的位宽和乘法器接收到的数据位宽是否相同,实现布斯编码处理时,乘法器仅需要通过低位布斯编码单元111a对低位数据进行补位处理,不需要通过高位布斯编码单元111c对高位数据进行补位处理。
例如,若乘法器当前可处理的数据位宽为N比特,且接收到的乘数和被乘数的位宽均为2N,此时,乘法器中的修正布斯编码单元111可以将2N位数据拆分为低N位数据和高N位数据分别进行布斯编码处理,修正布斯编码单元111中的低位布斯编码单元111a可以对低N位数据进行补位数据,并对补位处理后的低位数据进行布斯编码处理,得到低位目标编码;同时,在该运算模式下,mode信号可以等于数值0,与逻辑单元111b可以对该mode信号以及低N位数据中的最高位数值进行与逻辑运算,并将与逻辑运算结果发送至高位布斯编码单元111c;高位布斯编码单元111c将该与逻辑运算结果作为高N位数据进行布斯编码处理时的补位数值,并对得到的(N+1)位数据进行进行布斯编码处理,得到高位目标编码。
另外,若乘法器当前可处理的数据位宽为2N比特,此时,与逻辑单元111b可以不进行与逻辑运算,直接将接收到的低位数据中的最高位数值输出发送至高位布斯编码单元111c;高位布斯编码单元111c将该低位数据中的最高位数值作为高N位数据进行布斯编码处理时的补位数值,并对得到的(N+1)位数据进行进行布斯编码处理,得到高位目标编码。实际上,高位布斯编码单元111c对高N位数据不需要做补位处理,直接可以将接收到的低位数据与mode信号进行与逻辑运算,将逻辑运算结果作为高N位数据进行布斯编码处理时的补位数值。可选的,上述低位目标编码的数目可以等于低位数据对应得到的符号位扩展后的低位部分积的数目;上述高位目标编码的数目可以等于高位数据对应得到的符号位扩展后的高位部分积的数目。
需要说明的是,上述低位选择器组单元113可以根据接收到的功能模式选择信号,选通符号位扩展后的低位部分积中的部分位数值,为N位乘法运算得到的符号位扩展后的低位部分积中的数值,还是为2N位乘法运算得到的符号位扩展后的低位部分积中的数值;同理,高位选择器组单元116可以根据接收到的功能模式选择信号,选通符号位扩展后的高位部分积中的部分位数值,为N位乘法运算得到的符号位扩展后的高位部分积中的数值,还是为2N位乘法运算得到的符号位扩展后的高位部分积中的数值。
另外,上述低位与逻辑单元114可以根据接收到的功能模式选择信号进行与逻辑运算,将逻辑运算结果输出,作为符号位扩展后的低位部分积中的部分位数值,为2N位乘法运算得到的符号位扩展后的低位部分积中的数值;低位与逻辑单元114还可以根据接收到的功能模式选择信号进行与逻辑运算,将逻辑运算结果作为符号位扩展后的低位部分积中的部分位数值,为N位乘法运算得到的符号位扩展后的低位部分积中的数值;同理,高位与逻辑单元117可以根据接收到的功能模式选择信号进行与逻辑运算,将逻辑运算结果输出,作为符号位扩展后的高位部分积中的部分位数值,为2N位乘法运算得到的符号位扩展后的高位部分积中的数值;高位与逻辑单元117还可以根据接收到的功能模式选择信号进行与逻辑运算,将逻辑运算结果作为符号位扩展后的高位部分积中的部分位数值,为N位乘法运算得到的符号位扩展后的高位部分积中的数值。其中,低位与逻辑单元114与低位选择器组单元113,输出符号位扩展后的低位部分积中的部分位数值分别对应符号位扩展后的低位部分积中的不同位数值,高位与逻辑单元117与高位选择器组单元116,输出符号位扩展后的高位部分积中的部分位数值分别对应符号位扩展后的高位部分积中的不同位数值。
可以理解的是,若乘法器接收到的数据位宽可以为2N比特,当前可处理N位数据乘法运算,则乘法器中的低位部分积获取单元112可以根据低位目标编码中的每一位数值,得到低N位数据对应的符号位扩展后的部分积;上述低位选择器组单元113可以选通符号位扩展后的低位部分积中的第一数值;所述低位与逻辑单元114可以将最终输出的结果作为符号位扩展后的低位部分积中的第二数值;然后将符号位扩展后的部分积、选通后获取的符号位扩展后的低位部分积中的第一数值以及与逻辑运算得到的符号位扩展后的低位部分积中的第二数值进行结合,得到符号位扩展后的低位部分积。
还可以理解的是,乘法器中的高位部分积获取单元115可以根据高位目标编码中的每一位数值,得到高N位数据对应的符号位扩展后的部分积;上述高位选择器组单元116可以选通符号位扩展后的高位部分积中的第三数值;所述高位与逻辑单元117可以将最终输出的逻辑运算结果作为符号位扩展后的高位部分积中的第四数值;然后将符号位扩展后的部分积、选通后获取的符号位扩展后的高位部分积中的第三数值以及与逻辑运算得到的符号位扩展后的高位部分积中的第四数值进行结合,得到符号位扩展后的高位部分积。可选的,布斯编码处理过程中,得到的低位目标编码的位宽可以等于得到的高位目标编码的位宽。可选的,上述每一个低位部分积获取单元112可以包含2N个数值生成子单元,每一个高位部分积获取单元115也可以包含2N个数值生成子单元,每一个数值生成子单元可以获取符号位扩展后的低位部分积中的一位数值。在本实施例中,修正布斯编码电路111可以包含N/4个低位布斯编码单元111a以及N/4个高位布斯编码单元111c,还可以包含N/4个低位部分积获取单元112以及N/4个高位部分积获取单元115。
本实施例提供的一种乘法器,乘法器通过修正布斯编码电路中的修正布斯编码单元,对接收到的数据进行布斯编码处理,得到低位目标编码及高位目标编码,并且低位部分积获取单元和高位部分积获取单元根据低位目标编码及高位目标编码,分别得到符号位扩展后的低位部分积以及符号位扩展后的高位部分积,进而通过修正华莱士树电路对符号位扩展后的低位部分积以及符号位扩展后的高位部分积进行累加处理,以得到目标运算结果;上述乘法器可以对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性;另外,乘法器通过修正华莱士树组电路对符号位扩展后的部分积进行累加运算,还可以有效降低乘法器功耗。
在其中一个实施例中,其中,乘法器包括低位布斯编码单元111a,所述低位布斯编码单元111a包括:低位数据输入端口1111a、低位目标编码输出端口1111b以及高位数值输出端口1111c。所述低位数据输入端口1111a用于接收所述第一数据中的低位数据以及补位数值,所述低位目标编码输出端口1111b用于输出对所述低位数据进行布斯编码处理后得到的低位目标编码,所述高位数值输出端口1111c用于输出所述低位数据中的最高位数值。
具体的,乘法运算中,乘法器中的低位布斯编码单元111a需要对乘数中的低位数据进行布斯编码处理,低位布斯编码单元111a可以通过低位数据输入端口1111a对接收到的乘数以及补位数值组成的数据进行布斯编码处理;其中,低位布斯编码单元111a将低位数据中的低两位数值以及补位数值作为一组三位数值,将低位数据中除低两位数值外其它位数值分别三位数值成一组,该三个数值可以为低位数据中相邻的三位数值,并且这些组数值可以称为待编码数据;低位布斯编码单元111a可以分别对这些待编码数据进行布斯编码处理。可选的,每一个低位布斯编码单元111a对接收到的待编码数据处理后,将得到的低位目标编码可以通过低位目标编码输出端口1111b输出。另外,修正布斯编码电路111中的第一个低位布斯编码单元111a,通过低位数据输入端口1111a可以接收补位数值0以及低位数据。
示例性的,若乘法器可以对8比特位宽的数据“y7y6y5y4y3y2y1y0”进行乘法运算,该从最低位数值至最高位数值对应的编号为0,…,7,低位布斯编码单元111a可以对低位数据“y3y2y1y0”进行布斯编码处理,将低位数据“y3y2y1y0”以及补位数值0组合后,得到组合数据“y3y2y1y00”;然后低位布斯编码单元111a分别对组合数据中的“y1y00”和“y3y2y1”这两组待编码数据进行布斯编码处理。也就是,每一次布斯编码处理时,可以将组合数据划分成多组待编码数据,多个低位布斯编码单元111a可以同时对划分后的其中一组待编码数据进行布斯编码处理。可选的,将组合数据划分为多组待编码数据的原则可以表征为将组合数据中相邻的每3位数值作为一组待编码数据,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。可选的,布斯编码的编码规则可以参见表1,其中,表1中的y2i+1,y2i和y2i-1可以表示每一组待编码数据对应的数值,X可以表示修正布斯编码电路111接收到的被乘数,对每一组对应待编码数据进行布斯编码处理后,得到对应的目标编码PPi(i=0,1,2,...,n)。可选的,根据表1所示,布斯编码处理后得到的目标编码可以包括五类,分别为-2X,2X,-X,X和0。
表1
示例性的,若低位布斯编码单元111a可以对8位被乘数(即X)“x7x6x5x4x3x2x1x0”进行处理,且对被乘数进行补位处理后的数据可以得到数据“y7y6y5y4y3y2y1y0y-1”,布斯编码过程中,可以对y-1y0y1,y1y2y3,y3y4y5和y5y6y7四组待编码数据分别进行布斯编码处理,得到4个低位目标编码,其中,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。
可选的,所述高位布斯编码单元111c包括:高位数据输入端口1112a、低位数值输入端口1112b以及高位目标编码输出端口1112c;所述高位数据输入端口1112a用于接收所述第一数据中的高位数据,所述低位数值输入端口1112b用于接收所述低位数据中的最高位数值与所述功能模式选择信号进行与逻辑运算得到的逻辑运算结果,所述高位目标编码输出端口1112c用于输出高位目标编码。
在本实施例中,高位布斯编码单元111c可以通过高位数据输入端口1112a接收高位数据M1,通过低位数值输入端口1112b接收低位数据中的最高位数值与功能模式选择信号进行与逻辑运算得到的逻辑运算结果M0,并将高位数据M1与逻辑运算结果M0进行结合得到组合数据M0M1,然后对组合数据M0M1进行布斯编码处理。可选的,高位布斯编码单元111c对对组合数据M0M1进行布斯编码处理的方法,与低位布斯编码单元111a对组合数据进行布斯编码处理的方法相同,对此本实施例不再赘述。
本实施例提供的一种乘法器,该乘法器可以通过低位布斯编码单元对接收到的低位数据进行布斯编码处理,得到低位目标编码,进而通过低位部分积获取单元根据低位目标编码得到符号位扩展后的低位部分积,并通过修正华莱士树电路对符号位扩展后的低位部分积进行加法运算,以得到目标运算结果;上述乘法器可以对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性。
作为其中一个实施例,乘法器包括与逻辑单元111b,所述与逻辑单元111b包括:高位数值输入端口1113a、模式选择信号输入端口1113b以及逻辑运算结果输出端口1113c;所述高位数值输入端口1113a用于接收所述低位数据中的最高位数值,所述模式选择信号输入端口1113b用于接收所述功能模式选择信号,所述逻辑运算结果输出端口1113c用于输出逻辑运算结果。
具体的,与逻辑单元111b可以对模式选择信号输入端口1113b接收到的功能模式选择信号,与高位数值输入端口1113a接收到的低位布斯编码单元111a输出的低位数据中的最高位数值,进行与逻辑运算得到逻辑运算结果,并将该逻辑运算结果通过逻辑运算结果输出端口1113c输出,作为高位数据进行布斯编码处理时的补位数值。
本实施例提供的一种乘法器,该乘法器可以对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性。
作为其中一个实施例,所述低位部分积获取单元112包括:低位目标编码输入端口1121、第一选通数值输入端口1122、第二选通数值输入端口1123、第二数据输入端口1124以及低位部分积输出端口1125;所述低位目标编码输入端口1121用于接收所述低位目标编码,所述第一选通数值输入端口1122用于接收所述低位选择器组单元113选通后,输出的所述符号位扩展后的低位部分积中的第一数值,所述第二选通数值输入端口1123用于接收所述低位与逻辑单元114输出的所述符号位扩展后的低位部分积中的第二数值,所述第二数据输入端口1124用于接收第二数据,所述低位部分积输出端口1125用于输出所述符号位扩展后的低位部分积。
具体的,乘法器中的低位部分积获取单元112通过低位目标编码输入端口1121,可以接收低位布斯编码单元111a输出的低位目标编码,通过第二数据输入端口1124接收乘法运算中的被乘数,根据低位目标编码以及被乘数得到低位目标编码对应的符号位扩展后的部分积,然后将第一选通数值输入端口1122接收到的符号位扩展后的低位部分积中的第一数值、第二选通数值输入端口1123接收到的符号位扩展后的低位部分积中的第二数值以及符号位扩展后的部分积进行组合,得到符号位扩展后的低位部分积。可选的,若乘法器当前可处理的数据位宽也为2N,则乘法器中的低位部分积获取单元112可以包含4N个数值生成子单元,每一个数值生成子单元可以对应符号位扩展后的低位部分积中的一位数值,其中,2N个数值生成子单元可以连接2N个低位与逻辑单元114,N个数值生成子单元可以连接N个选择器,还有剩余的N个数值生成子单元不连接低位与逻辑单元114和选择器;剩余的N个数值生成子单元可以为符号位扩展后的低位部分积中,对应从最低位(即第1位)向最高位算起,第1位至第N位数值之间对应位数值生成子单元。其中,数值生成子单元的数目可以等于乘法器当前可处理数据位宽的2倍。其中,每一个低位部分积获取单元112中4N个数值生成子单元的位置分布规律可以描述为:每一个低位部分积获取单元112中相同位数值生成子单元均位于同一列。
示例性的,若乘法器可处理2N位数据运算,低位部分积获取单元112接收到一个2N比特位宽的被乘数X,则低位部分积获取单元112可以根据被乘数X与高位目标编码中包含的三种数值-1,1和0直接得到对应的4N位符号位扩展后的低位部分积,该符号位扩展后的低位部分积中的低(2N+1)位数值可以等于低位目标编码直接得到的原始部分积中的所有数值,符号位扩展后的低位部分积中的高(2N-1)位数值可以等于该原始部分积中的符号位数值,该符号位数值也就是原始部分积的最高位数值。当目标编码为-2X时,则原始部分积可以为对X进行左右一位后取反再加1,当目标编码为2X时,则原始部分积可以为对X进行左移一位,当目标编码为-X时,则原始部分积可以为对X按位取反再加1,当目标编码为X时,则原始部分积可以为X与X的符号位数值(即X的最高位数值)结合的数据,当目标编码为+0时,则原始部分积可以为0,也就是原始部分积中的每一位数值均等于0。
进一步地,低位部分积获取单元112得到的所有符号位扩展后的低位部分积的分布规律可以表征为,第一个符号位扩展后的低位部分积中的最低位数值,与其它符号位扩展后的低位部分积中的最低位数值均位于同一列;第一个符号位扩展后的低位部分积中的其它位数值与其它符号位扩展后的低位部分积中的对应位数值均位于同一列。
可选的,所述高位部分积获取单元115包括:高位目标编码输入端口1151、第三选通数值输入端口1142、第四选通数值输入端口1143、第二数据输入端口1144以及高位部分积输出端口1145;所述高位目标编码输入端口1141用于接收所述高位目标编码,所述第三选通数值输入端口1142用于接收所述高位选择器组单元116选通后,输出的所述符号位扩展后的高位部分积中的第三数值,所述第四选通数值输入端口1143用于接收所述高位与逻辑单元117输出的所述符号位扩展后的高位部分积中的第四数值,所述第二数据输入端口1144用于接收所述第二数据,所述高位部分积输出端口1145用于输出所述符号位扩展后的高位部分积。
需要说明的是,乘法器中的高位部分积获取单元115通过高位目标编码输入端口1151,可以接收低高位布斯编码单元111c输出的高位目标编码,通过第二数据输入端口1144接收乘法运算中的被乘数,根据高位目标编码以及被乘数得到高位目标编码对应的符号位扩展后的部分积,然后将第三选通数值输入端口1142接收到的符号位扩展后的高位部分积中的第一数值、第四选通数值输入端口1143接收到的符号位扩展后的高位部分积中的第二数值以及符号位扩展后的部分积进行组合,得到符号位扩展后的高位部分积。
另外,若乘法器当前可处理的数据位宽也为2N,则乘法器中的高位部分积获取单元115可以包含4N个数值生成子单元,每一个数值生成子单元可以对应符号位扩展后的高位部分积中的一位数值,其中,2N个数值生成子单元可以连接2N个高位与逻辑单元117,N个数值生成子单元可以连接N个选择器,还有剩余的N个数值生成子单元不连接高位与逻辑单元117和选择器;剩余的N个数值生成子单元可以为符号位扩展后的高位部分积中,对应从最低位(即第1位)向最高位算起,第(2N+1)位至第3N位数值之间对应位数值生成子单元。其中,数值生成子单元的数目可以等于乘法器当前可处理数据位宽的2倍。其中,每一个高位部分积获取单元115中4N个数值生成子单元的位置分布规律可以描述为:每一个高位部分积获取单元115中相同位数值生成子单元均位于同一列。
进一步地,高位部分积获取单元115得到的所有符号位扩展后的高位部分积的分布规律可以表征为,第一个符号位扩展后的高位部分积中的最低位数值,与其它符号位扩展后的高位部分积中的最低位数值均位于同一列;第一个符号位扩展后的高位部分积中的其它位数值与其它符号位扩展后的高位部分积中的对应位数值均位于同一列。
本实施例提供的一种乘法器,该乘法器可以通过低位布斯编码单元对接收到的低位数据进行布斯编码处理,得到低位目标编码,进而通过低位部分积获取单元根据低位目标编码得到符号位扩展后的低位部分积,并通过修正华莱士树电路对符号位扩展后的低位部分积进行加法运算,以得到目标运算结果;上述乘法器可以对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性。
作为其中一个实施例,所述低位与逻辑单元114包括:第一模式选择信号输入端口1141、第一符号位数值输入端口1142以及第一结果输出端口1143;其中,所述第一模式选择信号输入端口1141用于接收所述功能模式选择信号,所述第一符号位数值输入端口1142用于接收所述符号位扩展后的低位部分积中的第一符号位数值,所述第一结果输出端口1143用于输出逻辑运算结果。
具体的,若乘法器接收的数据为2N位,且乘法器中的第一模式选择信号输入端口1141接收到的功能模式选择信号为数值0,此时,乘法器可以对N位数据进行乘法运算,并且低位与逻辑单元114可以对该功能模式选择信号与第一符号位数值输入端口1142接收到的第一符号位数值进行与逻辑运算,并将逻辑运算结果通过第一结果输出端口1143输出;若乘法器中的第一模式选择信号输入端口1141接收到的功能模式选择信号为数值1,此时,乘法器可以对2N位数据进行乘法运算,并且低位与逻辑单元114可以对功能模式选择信号与第一符号位数值输入端口1142接收到的第一符号位数值进行与逻辑运算,并将逻辑运算结果通过第一结果输出端口1143输出;其中,第一符号位数值可以等于乘法器对2N位数据进行乘法运算的过程中,得到的符号位扩展后的部分积中的符号位数值。另外,若乘法器当前可处理的数据位宽也为2N,则乘法器中的低位部分积获取单元112包含的4N个数值生成子单元中,连接N个低位与逻辑单元114的N个数值生成子单元可以符号位扩展后的低位部分积中,对应从最低位(即第1位)向最高位算起,第(2N+1)位至第4N位数值之间对应位数值生成子单元。
可选的,所述高位与逻辑单元117包括:第二模式选择信号输入端口1171、第二符号位数值输入端口1172以及第二结果输出端口1173;其中,所述第二模式选择信号输入端口1171用于接收所述功能模式选择信号,所述第二符号位数值输入端口1172用于接收所述符号位扩展后的高位部分积中的第二符号位数值,所述第二结果输出端口1173用于输出逻辑运算结果。
需要说明的是,若乘法器接收的数据为2N位,且乘法器中的第二模式选择信号输入端口1171接收到的功能模式选择信号为数值0,此时,乘法器可以对N位数据进行乘法运算,并且高位与逻辑单元117可以对该功能模式选择信号与第二符号位数值输入端口1172接收到的第二符号位数值进行与逻辑运算,并将逻辑运算结果通过第二结果输出端口1173输出;若乘法器中的第二模式选择信号输入端口1171接收到的功能模式选择信号为数值1,此时,乘法器可以对2N位数据进行乘法运算,并且高位与逻辑单元117可以对功能模式选择信号与第二符号位数值输入端口1172接收到的第二符号位数值进行与逻辑运算,并将逻辑运算结果通过第二结果输出端口1173输出;其中,第二符号位数值可以等于乘法器对2N位数据进行乘法运算的过程中,得到符号位扩展后的高位部分积中的符号位数值。另外,若乘法器当前可处理的数据位宽也为2N,则乘法器中的高位部分积获取单元115包含的4N个数值生成子单元中,连接2N个高位与逻辑单元117的N个数值生成子单元可以符号位扩展后的高位部分积中,对应从最低位(即第1位)向最高位算起,第1位至第2N位数值之间对应位数值生成子单元。
本实施例提供的一种乘法器,该乘法器可以通过低位与逻辑单元进行处理得到符号位扩展后的低位部分积中的部分位数值,进而以得到符号位扩展后的低位部分积,并通过修正华莱士树电路对符号位扩展后的低位部分积进行加法运算,以得到目标运算结果;上述乘法器可以对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性。
在其中一个实施例中,乘法器包括低位选择器组单元113,所述低位选择器组单元113包括:低位选择器1131,多个所述低位选择器1131用于选通所述符号位扩展后的低位部分积中的第一数值。
具体的,上述低位选择器组单元113中低位选择器1131的数目,可以等于N2/2,2N可以表示乘法器当前所处理数据的位宽,该低位选择器组单元113中每一个低位选择器1131的内部电路结构可以相同。可选的,乘法运算时,修正布斯编码单元111连接的对应N/2个低位部分积获取单元112中,每一个低位部分积获取单元112可以包含4N个数值生成子单元,其中N个数值生成子单元可以连接N个低位选择器1131,这N个数值生成子单元均分别可以连接一个低位选择器1131。可选的,N个低位选择器1131对应的N个数值生成子单元,可以为符号位扩展后的低位部分积中,对应从最低位(即第1位)向最高位算起,第(N+1)位至第2N位数值之间对应位数值生成子单元;同时,该N个低位选择器1131的外部输入端口除了模式选择信号输入端口(mode信号输入端口)外,还有其它两个输入端口。可选的,若乘法器可以处理n种不同位宽的数据运算,并且乘法器接收到的数据的位宽为2N,则上述低位选择器1131的其它两个输入端口接收的信号分别可以为,乘法器进行2N位数据运算,得到的符号位扩展后的部分积中的符号位数值,以及乘法器进行2N位数据运算,得到的符号位扩展后的部分积中的对应位数值。可选的,若乘法器进行2N位数据运算时,低位选择器1131选通的是符号位扩展后的部分积中的对应位数值,即第一数值;若乘法器进行N位数据运算时,低位选择器1131选通的是符号位扩展后的部分积中的符号位数值,即第一数值。
可选的,所述高位选择器组单元116包括:高位选择器1161,多个所述高位选择器1161用于选通所述符号位扩展后的高位部分积中的第三数值。
需要说明的是,高位选择器组单元116中高位选择器1161的数目,可以等于N2/2,2N可以表示乘法器当前所处理数据的位宽,该高位选择器组单元116中每一个高位选择器1161的内部电路结构可以相同。可选的,乘法运算时,修正布斯编码单元111连接的对应N/2个高位部分积获取单元115中,每一个高位部分积获取单元115可以包含4N个数值生成子单元,其中N个数值生成子单元可以连接N个高位选择器1161,这N个数值生成子单元均分别可以连接一个高位选择器1161。可选的,N个高位选择器1161对应的N个数值生成子单元,可以为符号位扩展后的高位部分积中,对应从最高位(即第1位)向最低位算起,第(3N+1)位至第4N位数值之间对应位数值生成子单元;同时,该N个高位选择器1161的外部输入端口除了模式选择信号输入端口(mode信号输入端口)外,还有其它两个输入端口。可选的,若乘法器可以处理n种不同位宽的数据运算,并且乘法器接收到的数据的位宽为2N,则上述高位选择器1161的其它两个输入端口接收的信号分别可以为,乘法器进行N位数据运算,得到的符号位扩展后的部分积中的符号位数值,和乘法器进行2N位数据运算,得到的符号位扩展后的部分积中的符号位数值。可选的,若乘法器进行不同位宽的数据运算时,高位选择器1161选通的是第三数值可以为对应位数据运算时,得到的符号位扩展后的部分积中的符号位数值。
本实施例提供的一种乘法器,该乘法器可以通过低位选择器组单元选通符号位扩展后的低位部分积中的部分位数值进而以得到符号位扩展后的低位部分积,并通过修正华莱士树电路对符号位扩展后的低位部分积进行加法运算,以得到目标运算结果;上述乘法器可以对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性。
作为其中一个实施例,继续参见图2,乘法器中包括修正华莱士树电路12,所述修正华莱士树电路12包括:低位华莱士树单元121、与逻辑单元122以及高位华莱士树单元123,所述低位华莱士树单元121的输出端与所述与逻辑单元122的输入端连接,所述与逻辑单元122的输出端与所述高位华莱士树单元123的输入端连接;其中,多个所述低位华莱士树单元121用于对所有符号位扩展后的部分积中的每一列数值进行累加处理,所述与逻辑单元122用于对接收到的所述功能模式选择信号和所述低位华莱士树单元121输出的进位输出信号进行与逻辑运算,得到所述高位华莱士树单元123接收的进位输入信号,多个所述高位华莱士树单元123用于对所有符号位扩展后的部分积中的每一列数值进行累加处理。
可选的,所述低位华莱士树单元121和所述高位华莱士树单元123均包括所述4-2压缩器以及模式选择电路,所述模式选择电路的输出端与所述4-2压缩器的输入端连接;其中,所述4-2压缩器用于对所有符号位扩展后的部分积中每一列的数值进行累加处理,所述模式选择电路用于选通所述4-2压缩器接收到的所述符号位扩展后的部分积中的数值;其中,所述模式选择电路中包括第一输入端,用于接收所述功能模式选择信号。
具体的,修正华莱士树电路12可以理解为是一种能够对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路。可选的,所有符号位扩展后的部分积的列数可以等于乘法器当前所处理数据位宽的2倍,且所有符号位扩展后的部分积中的数值均参与累加运算。示例性的,若乘法器接收到的两个数据位宽均为16比特,当前可处理8位数据的乘法运算,则当前乘法器可处理两组8位*8位的数据乘法运算,该乘法器通过修正布斯编码电路11得到的2个符号位扩展后的低位部分积,以及2个符号位扩展后的高位部分积的分布规律如图3a所示,其中,右上角为2个符号位扩展后的低位部分积的分布图,左下角为2个符号位扩展后的高位部分积的分布图,“○”表示符号位扩展后的低位部分积中的每一位数值,
Figure BDA0002224074770000221
表示符号位扩展后的高位部分积中的每一位数值,“●”表示符号位扩展后的低位部分积或符号位扩展后的高位部分积的符号位数值;若乘法器当前可处理16位*16位的数据乘法运算,该乘法器通过修正布斯编码电路11得到的4个符号位扩展后的低位部分积,以及4个符号位扩展后的高位部分积的分布规律如图3b所示,其中,“○”表示符号位扩展后的低位部分积中的每一位数值,
Figure BDA0002224074770000222
表示符号位扩展后的高位部分积中的每一位数值,“●”表示符号位扩展后的低位部分积或符号位扩展后的高位部分积的符号位数值。
需要说明的是,修正华莱士树电路12中低位华莱士树单元121的数目可以等于乘法器当前接收到的数据位宽N,还可以等于高位华莱士树单元123的数目,并且各低位华莱士树单元121之间可以串行连接,各高位华莱士树单元123之间也可以串行连接。可选的,最后一个低位华莱士树单元121的输出端和与逻辑单元122的输入端连接,与逻辑单元122的输出端与第一个高位华莱士树单元123的输入端连接。可选的,修正华莱士树电路12中每一个低位华莱士树单元121可以对符号位扩展后的所有部分积的每一列进行加法处理,每一个低位华莱士树单元121可以输出两个信号,即进位信号Carryi与一个和位信号Sumi,其中,i可以表示每一个低位华莱士树单元121对应的编号,第一个低位华莱士树单元121的编号为0。可选的,每一个低位华莱士树单元121接收到输入信号的数目可以等于目标编码数目或者符号位扩展后的部分积的数目。其中,修正华莱士树电路12中高位华莱士树单元123与低位华莱士树单元121的数目之和,可以等于2N,所有符号位扩展后的部分积中,从最低列至最高列的总列数可以等于2N,N个低位华莱士树单元121可以对所有符号位扩展后的部分积的低N列中的每一列进行累加运算,N个高位华莱士树单元123可以对所有符号位扩展后的部分积的高N列中的每一列进行累加运算。
示例性的,若乘法器接收到的数据位宽为2N比特,并且无论当前乘法器进行N位或者2N位数据乘法运算时,乘法器包含的低位华莱士树单元121和高位华莱士树单元123的总数目,均可以等于乘法器接收到的数据位宽的2倍,低位华莱士树单元121和高位华莱士树单元123的数目各占一半,此时,与逻辑单元122可以对修正华莱士树电路12中最后一个低位华莱士树单元121,输出的进位输出信号CoutN与功能模式选择信号进行与逻辑运算,并将逻辑运算结果作为修正华莱士树电路12中,第一个高位华莱士树单元123接收到的进位输入信号CinN+1。可选的,乘法器当前可以将接收到的2N位数据划分成高N位和低N位数据分别进行乘法运算,其中,从第一个低位华莱士树单元121至最后一个低位华莱士树单元121的对应编号i分别为1,2,…,N,从第一个高位华莱士树单元123至最后一个高位华莱士树单元123的对应编号i分别为N+1,N+2,…,2N。
可以理解的是,修正华莱士树电路12中每一个低位华莱士树单元121和高位华莱士树单元123,接收到的信号可以包括进位输入信号Cini,部分积数值输入信号,进位输出信号Couti。可选的,每一个低位华莱士树单元121和高位华莱士树单元123接收到的部分积数值输入信号,可以为所有符号位扩展后的部分积中对应列的数值,每一个低位华莱士树单元121和高位华莱士树单元123输出的进位信号Couti的位数可以等于NCout=floor((NI+NCin)/2)-1。其中,NI可以表示该华莱士树单元的数据输入位数,NCin可以表示该华莱士树单元的进位输入位数,NCout可以表示该华莱士树单元最少的进位输出位数,floor(·)可以表示向下取整函数。可选的,修正华莱士树电路12中每一个低位华莱士树单元121或高位华莱士树单元123接收到的进位输入信号,可以为上一个低位华莱士树单元121或高位华莱士树单元123输出的进位输出信号,并且第一个低位华莱士树单元121接收到的进位数输入信号为0。其中,第一个高位华莱士树单元123接收到的进位数输入信号,可以通过乘法器当前所处理的数据的位宽与乘法器接收到的数据位宽确定。
本实施例提供的一种乘法器,通过修正华莱士树电路可以对符号位扩展后的部分积进行累加处理得到两路输出信号,并通过修正累加电路对该两路输出信号进行再次累加处理,得到乘法运算结果,该乘法器可以对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性,有效减少了乘法器占用AI芯片的面积;另外,乘法器通过修正华莱士树组电路对符号位扩展后的部分积进行累加运算,还可以有效降低乘法器功耗。
继续参见图2为另一实施例提供的乘法器的具体结构示意图,乘法器包括所述修正累加电路13,该修正累加电路13包括:低位加法器131、与逻辑单元132以及高位加法器133,所述低位加法器131用于对低位累加运算结果进行累加处理,所述与逻辑单元132用于对接收到的所述功能模式选择信号与所述低位加法器131的输出信号进行与逻辑运算,以得到所述高位加法器133的进位输入信号,所述高位加法器133用于根据所述进位输入信号与高位累加运算结果进行累加运算。
具体的,低位加法器131和高位加法器133均可以为不同位宽的超前进位加法器,超前进位加法器可以处理的数据位宽可以等于乘法器接收到的数据位宽的2倍。可选的,低位加法器131和高位加法器133可以接收修正华莱士树电路12输出的两路信号,对两路输出信号进行加法运算,得到乘法运算的目标运算结果。可选的,上述与逻辑单元132可以包括两个接收端口,一个端口接收功能模式选择信号,另一个端口接收低位加法器131输出的进位输出信号。
需要说明的是,若乘法器接收到的数据位宽为2N,当前可处理的数据位宽为2N,则乘法器可以将2N位数据作为一个整体进行一次乘法运算;若乘法器当前可处理的数据位宽为N,则乘法器可以将2N位数据拆分成两组数据进行两次同步乘法运算。
进一步地,乘法运算时,乘法器可以采用不同位宽的低位加法器131和高位加法器133,对修正华莱士树电路12输出的进位输出信号Carry与和位输出信号Sum进行加法运算,其中,上述低位加法器131和高位加法器133的可处理数据的位宽可以等于乘法器接收到的数据位宽的2倍。可选的,修正华莱士树电路12中的每一个低位华莱士树单元121和高位华莱士树单元123,可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=1,…,2N,i为每一个低位或高位修正华莱士树单元的对应编号,编号从1开始)。可选的,低位加法器131和高位加法器133接收到的Carry分别为{[Carry1:CarryN-1],0}和{CarryN:Carry2N-1};也就是说,Carry1到CarryN-1对应修正华莱士树电路12中,前N-1个低位华莱士树单元的进位输出信号,进位输出信号Carry中最低位数值可以用数值0代替;CarryN到Carry2N-1对应修正华莱士树电路12中,后N个低位华莱士树单元的进位输出信号。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,则低位加法器131和高位加法器133可以为16位超前进位加法器,如图4所示,图4中Wallace_i表示低位或高位华莱士树单元,i为低位和高位华莱士树单元从0开始的编号,并且两两华莱士树单元之间连接的实线表示高位编号对应的华莱士树单元有进位输出信号,虚线表示高位编号对应的华莱士树单元没有进位输出信号。
本实施例提供的一种乘法器,乘法器通过修正累加电路可以对修正华莱士树电路输出的两路信号进行累加运算,得到目标运算结果,该乘法器可以对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性,有效减少了乘法器占用AI芯片的面积;另外,乘法器通过修正华莱士树组电路对符号位扩展后的部分积进行累加运算,还可以有效降低乘法器功耗。
图5为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图1和图2所示的乘法器进行处理,本实施例涉及的是对不同位宽的数据进行乘法运算的过程。如图5所示,该方法包括:
S101、接收待处理数据以及功能模式选择信号,其中,所述功能模式选择信号用于指示当前可处理数据的位宽。
具体的,乘法器可以通过修正布斯编码电路接收待处理数据,该待处理数据可以为乘法运算中的乘数和被乘数。每一次乘法运算时,乘法器还可以通过修正布斯编码电路、修正华莱士树电路以及修正累加电路接收不同的功能模式选择信号,并且同一次运算时修正布斯编码电路、修正华莱士树电路以及修正累加电路接收到的功能模式选择信号可以相同。若乘法器接收不同的功能模式选择信号,则乘法器可以处理不同位宽的数据运算。
需要说明的是,如果修正布斯编码电路接收到的待处理乘数和待处理被乘数的位宽,与乘法器接收到的功能模式选择信号对应可处理的数据位宽不相等,则乘法器会根据乘法器当前可处理的数据位宽,将接收到的待处理数据划分成,与乘法器当前可处理的数据位宽相等的多组数据进行并行处理,其中,修正布斯编码电路接收到的待处理数据的位宽可以大于乘法器当前可处理的数据位宽。可选的,上述并行处理可以表征为将划分后的每一组待处理数据同时进行处理。如果修正布斯编码电路接收到的待处理数据的位宽,与乘法器接收到的功能模式选择信号对应可处理的数据位宽相等,则乘法器直接对接收到的待处理数据进行处理。可选的,上述待处理数据可以包括待处理的高位数据和待处理的低位数据。其中,若待处理数据的位宽为2N,则高N位为待处理的高位数据,低N位为待处理的高位数据。
可选的,修正布斯编码电路接收到的待处理乘数和待处理被乘数的位宽可以为4比特,8比特,16比特,32比特,64比特,对此本实施例不做任何限定。其中,待处理乘数的位宽可以等于待处理被乘数的位宽。
示例性的,如果修正布斯编码电路、修正华莱士树电路以及修正累加电路可以接收到的功能模式选择信号可以等于0和1;但是,在本实施例中,mode信号为0可以表征乘法器能够对4位数据进行处理,mode信号为1可以表征乘法器能够对8位数据进行处理。。
S102、对所述待处理数据与所述功能模式选择信号进行逻辑运算,得到待编码数值。
具体的,上述逻辑运算可以为与逻辑运算,还可以为与逻辑运算和其它逻辑运算结合实现的逻辑运算。
可选的,上述S102中对所述待处理数据与所述功能模式选择信号进行逻辑运算,得到待编码数值的步骤,具体可以包括:对所述待处理数据中的最高位数值和所述功能模式选择信号进行与逻辑运算,得到所述待编码数值。
需要说明的是,乘法器可以对待处理的低位数据中的最高位数值和功能模式选择信号进行与逻辑运算,得到待编码数值,该待编码数据可以作为待处理高位数据进行布斯编码处理时的补位数值。可选的,该待处理的低位数据可以为乘法运算中的乘数。
S103、对所述待处理数据和所述待编码数值进行布斯编码处理,得到目标编码。
可选的,所述目标编码包括高位目标编码和低位目标编码;上述S103中对所述待处理数据和所述待编码数值进行布斯编码处理,得到目标编码的步骤,具体可以包括:根据所述待编码数值与所述待处理数据,得到待编码的高位数据和待编码的低位数据;分别对所述待编码的高位数据和所述待编码的低位数据进行布斯编码处理,得到所述高位目标编码和所述低位目标编码。
具体的,乘法器可以根据待处理数据和待编码数值得到待编码的高位数据和待编码的低位数据。可选的,乘法器可以根据待编码数值确定待处理的高位数据对应的多个待编码的高位数据。可选的,待处理的低位数据与补位数值0组合可以得到多组待编码的低位数据,待处理的高位数据与待编码数值可以得到多组待编码的低位数据;然后乘法器可以对待编码的低位数据和待编码的低位数据进行布斯编码处理。可选的,待编码的低位数据的组数可以等于待编码的高位数据的组数,还可以等于乘法器当前所处理数据位宽的1/2。
需要说明的是,划分多组待编码的低位数据的原则可以表征为对补位处理后的待处理的低位数据中相邻的每3位数值作为一组待编码的低位数据,每一组待编码的低位数据中的最高位数值可以作为相邻下一组待编码的低位数据中的最低位数值。可选的,划分多组待编码的高位数据的原则可以表征为将待编码数值作为待处理的高位数据进行布斯编码处理时的补位数值,对补位后的待处理的高位数据中相邻的每3位数值作为一组待编码的高位数据,每一组待编码的高位数据中的最高位数值可以作为相邻下一组待编码的高位数据中的最低位数值。
进一步地,上述布斯编码处理过程中的编码规则可以参见表1,根据表1可知,通过低位布斯编码单元和高位布斯编码单元对划分后的待编码的低位数据,以及待编码的高位数据进行布斯编码处理,可以得到五类不同的目标编码,分别为-2X,2X,-X,X和0,其中,X为乘法运算中的被乘数。可选的,布斯编码处理后,乘法器得到的低位目标编码的数目和高位目标编码的数目可以相等。
S104、根据所述功能模式选择信号、所述目标编码以及所述待处理数据,得到所述符号位扩展后的部分积。
具体的,若乘法器接收到的数据的位宽为2N,并且乘法器当前所处理N位宽的数据,则符号位扩展后的部分积可以为高N位数据得到的对应符号位扩展后的高位部分积,和低N位数据得到的对应符号位扩展后的低位部分积。可选的,乘法器中的部分积获取单元可以根据待处理的被乘数和目标编码,得到当前乘法器接收到的功能选择模式信号对应的符号位扩展后的部分积;然后乘法器根据功能模式选择信号对应当前所处理的数据位宽,确定符号位扩展后的低位部分积中的数值,以及确定符号位扩展后的高位部分积中的数值。
S105、对所述符号位扩展后的部分积进行累加处理,得到目标运算结果。
具体的,乘法器可以通过修正华莱士树电路以及修正累加电路对符号位扩展后的部分积进行累加处理,得到目标运算结果。
本实施例提供的一种数据处理方法,该方法包括:接收待处理数据以及功能模式选择信号,对待处理数据与功能模式选择信号进行逻辑运算,得到待编码数值,对待处理数据和待编码数值进行布斯编码处理,得到目标编码,根据功能模式选择信号、目标编码以及待处理数据,得到符号位扩展后的部分积,对符号位扩展后的部分积进行累加处理,得到目标运算结果;该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性,有效减少了乘法器占用AI芯片的面积;另外,该方法通过修正华莱士树组电路对符号位扩展后的部分积进行累加运算,还可以有效降低乘法器的功耗。
作为其中一个实施例,上述S104中根据所述功能模式选择信号、所述目标编码以及所述待处理数据,得到所述符号位扩展后的部分积的步骤,具体可以包括:
S1041、根据所述目标编码以及所述待处理数据,得到符号位扩展后的第一部分积。
具体的,乘法器可以根据低位目标编码和待处理的被乘数,得到符号位扩展后的第一部分积。可选的,符号位扩展后的第一部分积的位宽可以等于待处理的被乘数位宽的2倍。
S1042、根据所述功能模式选择信号,得到所述符号位扩展后的低位部分积中的第一数值。
具体的,上述第一数值可以位于符号位扩展后的低位部分积中,对应从最低位(即第1位)向最高位算起,第(N+1)位至第2N位数值之间对应位数值。可选的,若乘法器接收到的功能模式选择信号对应处理2N位数据,则第一数值可以等于符号位扩展后的部分积中的对应位数值;若乘法器接收到的功能模式选择信号对应处理N位数据,则第一数值可以等于符号位扩展后的部分积中的符号位数值,其中,乘法器接收到的数据位宽为2N。
S1043、对所述功能模式选择信号和所述符号位扩展后的第一部分积中的符号位数值进行与逻辑运算,得到所述符号位扩展后的低位部分积中的第二数值。
具体的,乘法器接收到的数据位宽为2N,乘法器通过低位与逻辑单元对功能模式选择信号,与乘法器对2N位数据进行乘法运算的过程中,得到的符号位扩展后的第一部分积中的符号位数值进行与逻辑运算,得到符号位扩展后的低位部分积中的第二数值。可选的,第二数值可以位于符号位扩展后的低位部分积中,对应从最低位(即第1位)向最高位算起,第(2N+1)位至第4N位数值之间对应位数值。
S1044、将所述符号位扩展后的第一部分积中的数值、与所述第一数值和所述第二数值进行结合,得到所述符号位扩展后的低位部分积。
具体的,继续上一示例,将符号位扩展后的第一部分积中,对应从最低位(即第1位)向最高位算起,第1位至第N位数值之间对应位数值、第(2N+1)位至第4N位数值之间对应位数值(即第二数值)以及第(N+1)位至第2N位数值之间对应位数值(即第一数值)结合,得到符号位扩展后的低位部分积。
可选的,上述S104中根据所述功能模式选择信号、所述目标编码以及所述待处理数据,得到所述符号位扩展后的部分积的步骤,还可以包括:根据所述目标编码以及所述待处理数据,得到符号位扩展后的第二部分积;根据所述功能模式选择信号,得到所述符号位扩展后的高位部分积中的第三数值;对所述功能模式选择信号和所述符号位扩展后的第二部分积中的符号位数值进行与逻辑运算,得到所述符号位扩展后的高位部分积中的第四数值;将所述符号位扩展后的第二部分积中的数值、与所述第三数值和所述第四数值进行结合,得到所述符号位扩展后的高位部分积。
进一步地,乘法器可以根据高位目标编码和待处理的被乘数,得到符号位扩展后的第二部分积。可选的,符号位扩展后的第二部分积的位宽可以等于待处理的被乘数位宽的2倍。可选的,上述第三数值可以位于符号位扩展后的高位部分积中,对应从最低位(即第1位)向最高位算起,第(3N+1)位至第4N位数值之间对应位数值。可选的,若乘法器接收到的功能模式选择信号对应处理2N位数据,则第三数值可以等于乘法器对2N位数据进行乘法运算的过程中,得到符号位扩展后的部分积中的符号位数值,还可以等于乘法器对N位数据进行乘法运算的过程中,符号位扩展后的部分积中的符号位数值,其中,乘法器接收到的数据位宽为2N。可选的,乘法器接收到的数据位宽为2N,乘法器通过高位与逻辑单元对功能模式选择信号,与乘法器对2N位数据进行乘法运算的过程中,得到的符号位扩展后的第二部分积中的符号位数值进行与逻辑运算,得到符号位扩展后的高位部分积中的第四数值。可选的,第四数值可以位于符号位扩展后的高位部分积中,对应从最低位(即第1位)向最高位算起,第1位至第2N位数值之间对应位数值。继续上一示例,将符号位扩展后的第二部分积中,对应从最低位(即第1位)向最高位算起,第(2N+1)位至第3N位数值之间对应位数值、第(3N+1)位至第4N位数值之间对应位数值(即第四数值)以及第1位至第2N位数值之间对应位数值(即第三数值)结合,得到符号位扩展后的高位部分积。
本实施例提供的一种数据处理方法,该方法可以根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性,有效减少了乘法器占用AI芯片的面积。
作为其中一个实施例,上述S105中对所述符号位扩展后的部分积进行累加处理,得到目标运算结果的步骤,具体可以包括:通过低位华莱士树单元对所述符号位扩展后的部分积中的列数值进行累加处理,得到累加运算结果;通过与逻辑单元对所述累加运算结果和所述功能模式选择信号进行与逻辑运算,得到进位输入信号;通过高位华莱士树单元根据所述进位输入信号以及所述符号位扩展后的部分积中的列数值进行累加处理,得到目标运算结果。
具体的,若符号位扩展后的部分积的位宽可以等于2N,则乘法器可以包括N个低位华莱士树单元以及N个高位华莱士树单元;N个低位华莱士树单元可以对所有符号位扩展后的部分积中的低N列数据进行累加运算,得到累加运算结果;N个高位华莱士树单元可以对所有符号位扩展后的部分积中的高N列数据进行累加运算,得到另一累加运算结果;在运算过程中,第一个高位华莱士树单元可以对接收到修正华莱士树电路中与逻辑单元输出的逻辑运算结果,并将逻辑运算结果作为进位输入信号,与所有符号位扩展后的部分积中,从最低列至最高列算起,第(N+1)列数据进行累加运算。然后乘法器在通过修正累加电路对修正华莱士树电路的输出结果进行累加运算,修正累加电路可以根据接收到的功能模式选择信号与低位加法器输出的信号进行与逻辑运算,将逻辑运算结果输出至高位加法器中,从而达到目标运算结果。
本实施例提供的一种数据处理方法,该方法可以根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,提高了乘法器的通用性,有效减少了乘法器占用AI芯片的面积;同时,乘法器通过修正华莱士树电路对符号位扩展后的部分积进行累加运算,得到目标运算结果,能够有效降低乘法器的功耗。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的乘法器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上乘法器时,乘法器间可以通过特定的结构进行链接并传输数据,譬如,通过快速外部设备互连总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过快速外部设备互连接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图6为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数目不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图7所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图8所示,图8提供了一种板卡,上述板卡除了包括上述芯片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的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接收装置与所述芯片封装结构内的芯片电连接。所述接收装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接收装置可以为标准快速外部设备互连接口。比如,待处理数据由服务器通过标准快速外部设备互连接口传递至所述芯片,实现数据转移。优选的,当采用快速外部设备互连3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接收装置还可以是其它的接口,本申请并不限制上述其它的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接收装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备可以为乘法器、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的电路组合,但是本领域技术人员应该知悉,本申请并不受所描述的电路组合方式的限制,因为依据本申请,某些电路可以采用其它方式或者结构实现。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的器件和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和修正,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为。

Claims (25)

1.一种乘法器,其特征在于,所述乘法器包括:修正布斯编码电路、修正华莱士树电路以及修正累加电路,所述修正华莱士树电路包括4-2压缩器,所述4-2压缩器包括选择电路以及全加器;所述修正布斯编码电路的输出端与所述修正华莱士树电路的输入端连接,所述修正华莱士树电路的输出端与所述修正累加电路的输入端连接;
其中,所述修正布斯编码电路、所述修正华莱士树电路以及所述修正累加电路均包括逻辑门单元,所述逻辑门单元的输入端用于接收接收功能模式选择信号,所述功能模式选择信号用于确定所述乘法器可处理的数据位宽。
2.根据权利要求1所述的乘法器,其特征在于,所述修正布斯编码电路用于对接收到的数据进行布斯编码处理得到目标编码,并根据所述目标编码得到符号位扩展后的部分积,所述修正华莱士树电路用于对所述符号位扩展后的部分积进行累加处理得到累加运算结果,所述修正累加电路用于对所述累加运算结果进行累加处理,得到目标运算结果。
3.根据权利要求1或2所述的乘法器,其特征在于,所述修正布斯编码电路包括:修正布斯编码单元、低位部分积获取单元、低位选择器组单元、低位与逻辑单元、高位部分积获取单元、高位选择器组单元以及高位与逻辑单元,所述修正布斯编码单元的第一输出端与所述低位部分积获取单元的第一输入端连接,所述低位选择器组单元的输出端与所述低位部分积获取单元的第二输入端连接,所述低位与逻辑单元的输出端与所述低位部分积获取单元的第三输入端连接,所述修正布斯编码单元的第二输出端与所述高位部分积获取单元的第一输入端连接,所述高位选择器组单元的输出端与所述高位部分积获取单元的第二输入端连接,所述高位与逻辑单元的输出端与所述高位部分积获取单元的第三输入端连接;
其中,所述修正布斯编码单元用于根据接收到的所述功能模式选择信号确定所述乘法器可处理数据的位宽,并对接收到的第一数据进行布斯编码处理得到低位目标编码以及高位目标编码,所述低位部分积获取单元用于根据接收到的所述低位目标编码以及第二数据,得到符号位扩展后的低位部分积,所述低位选择器组单元用于选通所述符号位扩展后的低位部分积中的第一数值,所述低位与逻辑单元用于根据接收到的功能模式选择信号进行与逻辑运算,得到所述符号位扩展后的低位部分积中的第二数值,所述高位部分积获取单元用于根据接收到的所述高位目标编码以及所述第二数据,得到符号位扩展后的高位部分积,所述高位选择器组单元用于选通所述符号位扩展后的高位部分积中的第三数值,所述高位与逻辑单元用于根据接收到的功能模式选择信号进行与逻辑运算,得到所述符号位扩展后的高位位部分积中的第四数值。
4.根据权利要求1至3中任一项所述的乘法器,其特征在于,所述修正布斯编码单元包括低位布斯编码单元、与逻辑单元以及高位布斯编码单元,所述低位布斯编码单元用于对接收到的所述第一数据中的低位数据进行布斯编码处理得到低位目标编码,所述与逻辑单元用于根据接收到的功能模式选择信号进行与逻辑运算,得到高位数据进行布斯编码处理时的补位数值,所述高位布斯编码单元用于对接收到的所述第一数据中的高位数据进行布斯编码处理得到高位目标编码。
5.根据权利要求4所述的乘法器,其特征在于,所述低位布斯编码单元包括:低位数据输入端口、低位目标编码输出端口以及高位数值输出端口;所述低位数据输入端口用于接收所述第一数据中的低位数据以及补位数值,所述低位目标编码输出端口用于输出对所述低位数据进行布斯编码处理后得到的低位目标编码,所述高位数值输出端口用于输出所述低位数据中的最高位数值。
6.根据权利要求4至5中任一项所述的乘法器,其特征在于,所述与逻辑单元包括:高位数值输入端口、模式选择信号输入端口以及逻辑运算结果输出端口;所述高位数值输入端口用于接收所述低位数据中的最高位数值,所述模式选择信号输入端口用于接收所述功能模式选择信号,所述逻辑运算结果输出端口用于输出逻辑运算结果。
7.根据权利要求4至6中任一项所述的乘法器,其特征在于,所述高位布斯编码单元包括:高位数据输入端口、低位数值输入端口以及高位目标编码输出端口;所述高位数据输入端口用于接收所述第一数据中的高位数据,所述低位数值输入端口用于接收所述低位数据中的最高位数值与所述功能模式选择信号进行与逻辑运算得到的逻辑运算结果,所述高位目标编码输出端口用于输出高位目标编码。
8.根据权利要求3至7中任一项所述的乘法器,其特征在于,所述低位部分积获取单元包括:低位目标编码输入端口、第一选通数值输入端口、第二选通数值输入端口、第二数据输入端口以及低位部分积输出端口;所述低位目标编码输入端口用于接收所述低位目标编码,所述第一选通数值输入端口用于接收所述低位选择器组单元选通后,输出的所述符号位扩展后的低位部分积中的第一数值,所述第二选通数值输入端口用于接收所述低位与逻辑单元输出的所述符号位扩展后的低位部分积中的第二数值,所述第二数据输入端口用于接收第二数据,所述低位部分积输出端口用于输出所述符号位扩展后的低位部分积。
9.根据权利要求3至8中任一项所述的乘法器,其特征在于,所述低位选择器组单元包括:低位选择器,所述低位选择器用于选通所述符号位扩展后的低位部分积中的第一数值。
10.根据权利要求3至9中任一项所述的乘法器,其特征在于,所述低位与逻辑单元包括:第一模式选择信号输入端口、第一符号位数值输入端口以及第一结果输出端口;其中,所述第一模式选择信号输入端口用于接收所述功能模式选择信号,所述第一符号位数值输入端口用于接收所述符号位扩展后的低位部分积中的第一符号位数值,所述第一结果输出端口用于输出逻辑运算结果。
11.根据权利要求3至10中任一项所述的乘法器,其特征在于,所述高位部分积获取单元包括:高位目标编码输入端口、第三选通数值输入端口、第四选通数值输入端口、第二数据输入端口以及高位部分积输出端口;所述高位目标编码输入端口用于接收所述高位目标编码,所述第三选通数值输入端口用于接收所述高位选择器组单元选通后,输出的所述符号位扩展后的高位部分积中的第三数值,所述第四选通数值输入端口用于接收所述高位与逻辑单元输出的所述符号位扩展后的高位部分积中的第四数值,所述第二数据输入端口用于接收所述第二数据,所述高位部分积输出端口用于输出所述符号位扩展后的高位部分积。
12.根据权利要求3至11中任一项所述的乘法器,其特征在于,所述高位选择器组单元包括:高位选择器,所述高位选择器用于选通所述符号位扩展后的高位部分积中的第三数值。
13.根据权利要求3至12中任一项所述的乘法器,其特征在于,所述高位与逻辑单元包括:第二模式选择信号输入端口、第二符号位数值输入端口以及第二结果输出端口;其中,所述第二模式选择信号输入端口用于接收所述功能模式选择信号,所述第二符号位数值输入端口用于接收所述符号位扩展后的高位部分积中的第二符号位数值,所述第二结果输出端口用于输出逻辑运算结果。
14.根据权利要求1至13中任一项所述的乘法器,其特征在于,所述修正华莱士树电路包括:低位华莱士树单元、与逻辑单元以及高位华莱士树单元,所述低位华莱士树单元的输出端与所述与逻辑单元的输入端连接,所述与逻辑单元的输出端与所述高位华莱士树单元的输入端连接;其中,多个所述低位华莱士树单元用于对所有符号位扩展后的部分积中的每一列数值进行累加处理,所述与逻辑单元用于对接收到的所述功能模式选择信号和所述低位华莱士树单元输出的进位输出信号进行与逻辑运算,得到所述高位华莱士树单元接收的进位输入信号,多个所述高位华莱士树单元用于对所有符号位扩展后的部分积中的每一列数值进行累加处理。
15.根据权利要求14所述的乘法器,其特征在于,所述低位华莱士树单元和所述高位华莱士树单元均包括所述4-2压缩器以及模式选择电路,所述模式选择电路的输出端与所述4-2压缩器的输入端连接;其中,所述4-2压缩器用于对所有符号位扩展后的部分积中每一列的数值进行累加处理,所述模式选择电路用于选通所述4-2压缩器接收到的所述符号位扩展后的部分积中的数值;其中,所述模式选择电路中包括第一输入端,用于接收所述功能模式选择信号。
16.根据权利要求1至15中任一项所述的乘法器,其特征在于,所述修正累加电路包括:低位加法器、与逻辑单元以及高位加法器,所述低位加法器用于对低位累加运算结果进行累加处理,所述与逻辑单元用于对接收到的所述功能模式选择信号与所述低位加法器的输出信号进行与逻辑运算,以得到所述高位加法器的进位输入信号,所述高位加法器用于根据所述进位输入信号与高位累加运算结果进行累加运算。
17.一种数据处理方法,其特征在于,所述方法包括:
接收待处理数据以及功能模式选择信号,其中,所述功能模式选择信号用于指示当前可处理数据的位宽;
对所述待处理数据与所述功能模式选择信号进行逻辑运算,得到待编码数值;
对所述待处理数据和所述待编码数值进行布斯编码处理,得到目标编码;
根据所述功能模式选择信号、所述目标编码以及所述待处理数据,得到所述符号位扩展后的部分积;
对所述符号位扩展后的部分积进行累加处理,得到目标运算结果。
18.根据权利要求17所述的方法,其特征在于,所述对所述待处理数据与所述功能模式选择信号进行逻辑运算,得到待编码数值,包括:对所述待处理数据中的最高位数值和所述功能模式选择信号进行与逻辑运算,得到所述待编码数值。
19.根据权利要求17或18所述的方法,其特征在于,所述目标编码包括高位目标编码和低位目标编码;所述对所述待处理数据和所述待编码数值进行布斯编码处理,得到目标编码,包括:
根据所述待编码数值与所述待处理数据,得到待编码的高位数据和待编码的低位数据;
分别对所述待编码的高位数据和所述待编码的低位数据进行布斯编码处理,得到所述高位目标编码和所述低位目标编码。
20.根据权利要求17至19中任一项所述的方法,其特征在于,所述根据所述功能模式选择信号、所述目标编码以及所述待处理数据,得到所述符号位扩展后的部分积,包括:
根据所述目标编码以及所述待处理数据,得到符号位扩展后的第一部分积;
根据所述功能模式选择信号,得到所述符号位扩展后的低位部分积中的第一数值;
对所述功能模式选择信号和所述符号位扩展后的第一部分积中的符号位数值进行与逻辑运算,得到所述符号位扩展后的低位部分积中的第二数值;
将所述符号位扩展后的第一部分积中的数值、与所述第一数值和所述第二数值进行结合,得到所述符号位扩展后的低位部分积。
21.根据权利要求17至20中任一项所述的方法,其特征在于,所述根据所述功能模式选择信号、所述目标编码以及所述待处理数据,得到所述符号位扩展后的部分积,包括:
根据所述目标编码以及所述待处理数据,得到符号位扩展后的第二部分积;
根据所述功能模式选择信号,得到所述符号位扩展后的高位部分积中的第三数值;
对所述功能模式选择信号和所述符号位扩展后的第二部分积中的符号位数值进行与逻辑运算,得到所述符号位扩展后的高位部分积中的第四数值;
将所述符号位扩展后的第二部分积中的数值、与所述第三数值和所述第四数值进行结合,得到所述符号位扩展后的高位部分积。
22.根据所述权利要求17至21中任一项所述的方法,其特征在于,所述对所述符号位扩展后的部分积进行累加处理,得到目标运算结果,包括:
通过低位华莱士树单元对所述符号位扩展后的部分积中的列数值进行累加处理,得到累加运算结果;
通过与逻辑单元对所述累加运算结果和所述功能模式选择信号进行与逻辑运算,得到进位输入信号;
通过高位华莱士树单元根据所述进位输入信号以及所述符号位扩展后的部分积中的列数值进行累加处理,得到目标运算结果。
23.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-16任一项所述的乘法器,用于从其它处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,所述多个所述乘法器间可以通过特定的结构进行连接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
24.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求23所述的机器学习运算装置,通用互联接口和其它处理装置;
所述机器学习运算装置与所述其它处理装置进行交互,共同完成用户指定的计算操作;
优先地,所述组合处理装置还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
25.一种神经网络芯片,其特征在于,所述机器学习芯片包括如权利要求23所述的机器学习运算装置或如权利要求24所述的组合处理装置。
CN201910945757.0A 2019-09-30 2019-09-30 乘法器、数据处理方法及芯片 Active CN110673823B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910945757.0A CN110673823B (zh) 2019-09-30 2019-09-30 乘法器、数据处理方法及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910945757.0A CN110673823B (zh) 2019-09-30 2019-09-30 乘法器、数据处理方法及芯片

Publications (2)

Publication Number Publication Date
CN110673823A true CN110673823A (zh) 2020-01-10
CN110673823B CN110673823B (zh) 2021-11-30

Family

ID=69080854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910945757.0A Active CN110673823B (zh) 2019-09-30 2019-09-30 乘法器、数据处理方法及芯片

Country Status (1)

Country Link
CN (1) CN110673823B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488133A (zh) * 2020-04-15 2020-08-04 电子科技大学 高基数近似布斯编码方法和混合基数布斯编码近似乘法器
CN111522528A (zh) * 2020-04-22 2020-08-11 厦门星宸科技有限公司 乘法器、乘法运算方法、运算芯片、电子设备及存储介质
CN114647399A (zh) * 2022-05-19 2022-06-21 南京航空航天大学 一种低能耗高精度近似并行定宽乘法累加装置

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1118472A (zh) * 1994-05-26 1996-03-13 摩托罗拉公司 组合的乘法器/移位器及其方法
CN1567178A (zh) * 2003-07-04 2005-01-19 中国科学院微电子中心 新型乘法器重构算法及电路
US7506017B1 (en) * 2004-05-25 2009-03-17 Altera Corporation Verifiable multimode multipliers
CN101685385A (zh) * 2008-09-28 2010-03-31 北京大学深圳研究生院 一种复数乘法器
CN101739231A (zh) * 2010-01-04 2010-06-16 西安电子科技大学 布斯-华莱士树型乘法器
CN102360276A (zh) * 2010-12-03 2012-02-22 威盛电子股份有限公司 无进位乘法装置及其处理方法
US20130138711A1 (en) * 2011-11-29 2013-05-30 Junji Sugisawa Shared integer, floating point, polynomial, and vector multiplier
CN103838549A (zh) * 2012-11-21 2014-06-04 辉达公司 在浮点操作中功率降低的方法
US20160277184A1 (en) * 2015-03-17 2016-09-22 Spansion Llc Device and method for resisting non-invasive attacks
CN107153522A (zh) * 2017-04-21 2017-09-12 东南大学 一种面向人工神经网络计算的动态精度可配近似乘法器
CN107977191A (zh) * 2016-10-21 2018-05-01 中国科学院微电子研究所 一种低功耗并行乘法器
CN108351761A (zh) * 2015-11-12 2018-07-31 Arm有限公司 使用冗余表示的第一和第二操作数的乘法
CN109726806A (zh) * 2017-10-30 2019-05-07 上海寒武纪信息科技有限公司 信息处理方法及终端设备
CN110190843A (zh) * 2018-04-10 2019-08-30 北京中科寒武纪科技有限公司 压缩器电路、华莱士树电路、乘法器电路、芯片和设备

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1118472A (zh) * 1994-05-26 1996-03-13 摩托罗拉公司 组合的乘法器/移位器及其方法
CN1567178A (zh) * 2003-07-04 2005-01-19 中国科学院微电子中心 新型乘法器重构算法及电路
US7506017B1 (en) * 2004-05-25 2009-03-17 Altera Corporation Verifiable multimode multipliers
CN101685385A (zh) * 2008-09-28 2010-03-31 北京大学深圳研究生院 一种复数乘法器
CN101739231A (zh) * 2010-01-04 2010-06-16 西安电子科技大学 布斯-华莱士树型乘法器
CN102360276A (zh) * 2010-12-03 2012-02-22 威盛电子股份有限公司 无进位乘法装置及其处理方法
US20130138711A1 (en) * 2011-11-29 2013-05-30 Junji Sugisawa Shared integer, floating point, polynomial, and vector multiplier
CN103838549A (zh) * 2012-11-21 2014-06-04 辉达公司 在浮点操作中功率降低的方法
US20160277184A1 (en) * 2015-03-17 2016-09-22 Spansion Llc Device and method for resisting non-invasive attacks
CN108351761A (zh) * 2015-11-12 2018-07-31 Arm有限公司 使用冗余表示的第一和第二操作数的乘法
CN107977191A (zh) * 2016-10-21 2018-05-01 中国科学院微电子研究所 一种低功耗并行乘法器
CN107153522A (zh) * 2017-04-21 2017-09-12 东南大学 一种面向人工神经网络计算的动态精度可配近似乘法器
CN109726806A (zh) * 2017-10-30 2019-05-07 上海寒武纪信息科技有限公司 信息处理方法及终端设备
CN110190843A (zh) * 2018-04-10 2019-08-30 北京中科寒武纪科技有限公司 压缩器电路、华莱士树电路、乘法器电路、芯片和设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DIMITRIS BAKALIS .ETC: "On the design of low power BIST for multipliers with Booth encoding and Wallace tree summation", 《JOURNAL OF SYSTEMS ARCHITECTURE》 *
崔晓平: "基于修正BOOTH编码的32×32位乘法器", 《电子测量技术》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488133A (zh) * 2020-04-15 2020-08-04 电子科技大学 高基数近似布斯编码方法和混合基数布斯编码近似乘法器
CN111488133B (zh) * 2020-04-15 2023-03-28 电子科技大学 高基数近似布斯编码方法和混合基数布斯编码近似乘法器
CN111522528A (zh) * 2020-04-22 2020-08-11 厦门星宸科技有限公司 乘法器、乘法运算方法、运算芯片、电子设备及存储介质
CN111522528B (zh) * 2020-04-22 2023-03-28 星宸科技股份有限公司 乘法器、乘法运算方法、运算芯片、电子设备及存储介质
CN114647399A (zh) * 2022-05-19 2022-06-21 南京航空航天大学 一种低能耗高精度近似并行定宽乘法累加装置
CN114647399B (zh) * 2022-05-19 2022-08-16 南京航空航天大学 一种低能耗高精度近似并行定宽乘法累加装置

Also Published As

Publication number Publication date
CN110673823B (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
CN110413254B (zh) 数据处理器、方法、芯片及电子设备
CN110673823B (zh) 乘法器、数据处理方法及芯片
CN110362293B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110515587B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110554854A (zh) 数据处理器、方法、芯片及电子设备
CN111258633B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258544B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258541B (zh) 乘法器、数据处理方法、芯片及电子设备
CN113031912A (zh) 乘法器、数据处理方法、装置及芯片
CN210109789U (zh) 数据处理器
CN210006029U (zh) 数据处理器
CN209879493U (zh) 乘法器
CN210006031U (zh) 乘法器
CN111258545B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110647307B (zh) 数据处理器、方法、芯片及电子设备
CN210006030U (zh) 数据处理器
CN110688087B (zh) 数据处理器、方法、芯片及电子设备
CN111258542B (zh) 乘法器、数据处理方法、芯片及电子设备
CN113031915A (zh) 乘法器、数据处理方法、装置及芯片
CN209879492U (zh) 乘法器、机器学习运算装置及组合处理装置
CN209962284U (zh) 乘法器、装置、芯片及电子设备
CN113033788B (zh) 数据处理器、方法、装置及芯片
CN210006082U (zh) 乘法器、装置、神经网络芯片及电子设备
CN210006084U (zh) 乘法器
CN210006032U (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