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

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

Info

Publication number
CN111258633B
CN111258633B CN201811450574.3A CN201811450574A CN111258633B CN 111258633 B CN111258633 B CN 111258633B CN 201811450574 A CN201811450574 A CN 201811450574A CN 111258633 B CN111258633 B CN 111258633B
Authority
CN
China
Prior art keywords
data
order
bit
partial product
low
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
CN201811450574.3A
Other languages
English (en)
Other versions
CN111258633A (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 CN201811450574.3A priority Critical patent/CN111258633B/zh
Priority to PCT/CN2019/120994 priority patent/WO2020108486A1/zh
Publication of CN111258633A publication Critical patent/CN111258633A/zh
Application granted granted Critical
Publication of CN111258633B publication Critical patent/CN111258633B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请提供一种乘法器、数据处理方法、芯片及电子设备,所述乘法器包括:改进编码电路、改进华莱士树组电路以及累加电路,所述改进编码电路的输出端与所述改进华莱士树组电路的输入端连接,所述改进华莱士树组电路的输出端与所述累加电路的输入端连接,该乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积;另外,乘法器通过改进华莱士树组电路对目标编码的部分积进行累加运算,还可以有效降低乘法器功耗。

Description

乘法器、数据处理方法、芯片及电子设备
技术领域
本发明涉及计算机技术领域,特别是涉及一种乘法器、数据处理方法、芯片及电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片成为了当前科技产业和社会关注的热点。乘法器电路作为AI芯片的主要电路之一,其性能尤为重要。
目前,华莱士树压缩电路是乘法器中一种非常重要的单元,华莱士树压缩电路的功耗直接影响着乘法器的功耗。实现乘法运算时,乘法器通过采用现有的华莱士树压缩电路进行部分积的压缩,并用一组全加器对压缩结果进行累加并输出目标的结果。其中,现有的华莱士树压缩电路包括全加器和/或半加器,并通过全加器和/或半加器对部分积进行累加运算。
然而,在一些小数值运算场景中,现有的华莱士树电路存在功耗比较高的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种乘法器、数据处理方法、芯片及电子设备。
本发明实施例提供一种乘法器,所述乘法器包括:改进编码电路、改进华莱士树组电路以及累加电路,所述改进编码电路的输出端与所述改进华莱士树组电路的输入端连接,所述改进华莱士树组电路的输出端与所述累加电路的输入端连接;
其中,所述改进编码电路用于对接收到的数据进行编码处理,得到符号位扩展后的部分积,并根据符号位扩展后的所述部分积得到目标编码的部分积,所述改进华莱士树组电路用于对目标编码的所述部分积进行累加处理,所述累加电路用于对接收到的输入数据进行累加处理。
在其中一个实施例中,所述改进编码电路中包括第一输入端,用于接收输入的功能选择模式信号;所述改进华莱士树组电路中包括第二输入端,用于接收输入的所述功能选择模式信号;所述功能选择模式信号用于确定乘法器处理的数据位宽。
在其中一个实施例中,所述改进编码电路包括:低位布斯编码单元、低位部分积获取单元、选择器、高位布斯编码单元、高位部分积获取单元、低位选择器组单元以及高位选择器组单元,所述低位布斯编码单元的第一输出端与所述选择器的输入端连接,所述低位布斯编码单元的第二输出端与所述低位部分积获取单元的第一输入端连接,所述选择器的输出端与所述高位布斯编码单元的输入端连接,所述高位布斯编码单元的输出端与所述高位部分积获取单元的第一输入端连接,所述低位选择器组单元的输出端与所述低位部分积获取单元的第二输入端连接,所述高位选择器组单元的输出端与所述高位部分积获取单元的第二输入端连接;
其中,所述低位布斯编码单元用于对接收到的数据中的低位数据进行布斯编码处理得到低位编码信号,所述低位部分积获取单元用于根据所述低位编码信号,得到目标编码的低位部分积,所述选择器用于选通高位数据进行布斯编码时的补位数值,所述高位布斯编码单元用于对接收到的所述高位数据以及所述补位数值,进行布斯编码处理得到高位编码信号,所述高位部分积获取单元用于根据所述高位编码信号,得到目标编码的高位部分积,所述低位选择器组单元用于选通目标编码的低位部分积中的数值,所述高位选择器组单元用于选通目标编码的高位部分积中的数值。
在其中一个实施例中,所述低位布斯编码单元包括:第一数值输入端口以及低位编码信号输出端口;所述第一数值输入端口用于接收所述低位数据中的三位数值,或第一补位数值和所述低位数据中的两位数值,所述低位编码信号输出端口用于输出对所述低位数据进行布斯编码处理后得到的低位编码信号。
在其中一个实施例中,所述低位部分积获取单元包括:低位编码信号输入端口、选通数值输入端口、数据输入端口以及部分积中的数值输出端口;所述低位编码信号输入端口用于接收低位布斯编码单元输出的低位编码信号,所述选通数值输入端口用于接收低位选择器组单元选通后,输出的目标编码的低位部分积中的数值,所述数据输入端口用于接收乘法运算的数据,所述部分积中的数值输入端口用于接收目标编码的低位部分积中的数值。
在其中一个实施例中,所述选择器包括:功能选择模式信号输入端口、第一选通数值输入端口、第二选通数值输入端口以及运算结果输出端口;所述功能选择模式信号输入端口用于接收乘法器需要处理不同位宽的数据对应的功能选择模式信号,所述第一选通数值输入端口用于接收第一选通数值,所述第二选通数值输入端口用于接收第二选通数值,所述运算结果输出端口输出选通后的所述第一选通数值或所述第二选通数值。
在其中一个实施例中,所述高位布斯编码单元包括:第二数值输入端口以及高位编码信号输出端口;所述第二数值输入端口用于接收所述高位数据中的三位数值,或第二补位数值和所述高位数据中的两位数值,所述高位编码信号输出端口用于输出对所述高位数据进行布斯编码处理后得到的高位编码信号。
在其中一个实施例中,所述高位部分积获取单元包括:高位编码信号输入端口、选通数值输入端口、数据输入端口以及部分积中的数值输出端口;所述高位编码信号输入端口用于接收高位布斯编码单元输出的高位编码信号,所述选通数值输入端口用于接收高位选择器组单元选通后,输出的目标编码的高位部分积中的数值,所述数据输入端口用于接收乘法运算的数据,所述部分积中的数值输入端口用于接收目标编码的高位部分积中的数值。
在其中一个实施例中,所述改进编码电路中的所述低位选择器组单元包括:低位选择器,所述低位选择器用于对目标编码的低位部分积中的数值进行选通;
所述改进编码电路中的所述高位选择器组单元包括:高位选择器,所述高位选择器用于对目标编码的高位部分积中的数值进行选通。
在其中一个实施例中,所述改进华莱士树组电路包括:改进华莱士树子电路;所述改进华莱士树子电路用于对不同位宽数据运算时得到的目标编码的所述部分积进行累加处理。
在其中一个实施例中,所述改进华莱士树组电路包括:低位改进华莱士树子电路、选择器以及高位改进华莱士树子电路,所述低位改进华莱士树子电路的输出端与所述选择器的输入端连接,所述选择器的输出端与所述高位改进华莱士树子电路的输入端连接;其中,多个所述低位改进华莱士树子电路用于对目标编码的所述部分积中的每一列数值进行累加运算,所述选择器用于选通所述高位改进华莱士树子电路接收的进位输入信号,多个所述高位改进华莱士树子电路用于对目标编码的所述部分积中的每一列数值进行累加运算。
在其中一个实施例中,所述低位改进华莱士树子电路和所述高位改进华莱士树子电路均包括4-2压缩器以及模式选择单元,所述模式选择单元的输出端与所述4-2压缩器的输入端连接;其中,所述4-2压缩器用于对目标编码的所述部分积中每一列的数值进行累加处理,所述模式选择单元用于选通过所述4-2压缩器接收到的目标编码的所述部分积中的数值;其中,所述模式选择单元中包括第一输入端,用于接收输入的功能选择模式信号。
在其中一个实施例中,所述累加电路包括:加法器,所述加法器用于对接收到的两个同位宽数据进行加法运算;其中,所述加法器包括:进位信号输入端口、和位信号输入端口以及运算结果输出端口;所述进位信号输入端口用于接收进位信号,和位信号输入端口用于接收和位信号,运算结果输出端口用于输出进位信号与和位信号进行累加处理的结果。
本实施例提供的乘法器,该乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积;另外,乘法器通过改进华莱士树组电路对目标编码的部分积进行累加运算,还可以有效降低乘法器功耗。
本发明实施例提供一种数据处理方法,所述方法包括:
接收待处理的数据;
选通待编码信号,根据所述待编码信号对待处理的所述数据进行布斯编码处理,得到编码信号;
根据所述编码信号和待处理的所述数据,得到目标编码的部分积;
通过改进华莱士树组电路对目标编码的所述部分积中每一列数值进行累加处理,得到运算结果。
在其中一个实施例中,所述选通待编码信号,根据所述待编码信号对对待处理的所述数据进行布斯编码处理,得到编码信号,包括:
根据所述待编码信号与待处理的所述数据,得到待编码的高位数据和低位数据;
对待编码的所述高位数据以及所述低位数据进行布斯编码处理,得到高位编码信号和低位编码信号。
在其中一个实施例中,所述根据所述编码信号和待处理的所述数据,得到目标编码的部分积,包括:
根据所述低位编码信号和待处理的所述数据,得到目标编码的低位部分积;
根据所述高位编码信号和待处理的所述数据,得到目标编码的高位部分积。
在其中一个实施例中,所述根据所述低位编码信号和待处理的所述数据,得到目标编码的低位部分积,包括:
根据所述低位编码信号和待处理的所述数据,得到符号位扩展后的低位部分积;
通过低位选择器组单元选通目标编码的所述低位部分积中的数值;
根据目标编码的所述低位部分积中的数值以及符号位扩展后的所述低位部分积中的数值,得到目标编码的低位部分积。
在其中一个实施例中,所述根据所述高位编码信号和待处理的所述数据,得到目标编码的高位部分积,包括:
根据所述高位编码信号和待处理的所述数据,得到符号位扩展后的高位部分积;
通过高位选择器组单元选通目标编码的所述高位部分积中的数值;
根据目标编码的所述高位部分积中的数值以及符号位扩展后的所述高位部分积中的数值,得到目标编码的高位部分积。
在其中一个实施例中,所述通过改进华莱士树组电路对目标编码的所述部分积中每一列数值进行累加处理,得到运算结果,包括:
通过改进华莱士树组电路对目标编码的所述低位部分积和所述高位部分积,进行累加处理得到第一运算结果;
通过累加电路对所述第一运算结果进行累加处理,得到运算结果。
在其中一个实施例中,所述通过累加电路对所述第一运算结果进行累加处理,得到运算结果,包括:
通过低位改进华莱士树子电路对目标编码的所述部分积中的列数值进行累加处理,得到累加运算结果;
通过选择器对所述累加运算结果进行选通,得到进位选通信号;
通过高位改进华莱士树子电路根据所述进位选通信号以及目标编码的所述部分积中的列数值进行累加处理,得到运算结果。
本实施例提供的一种数据处理方法,接收待处理的数据,选通待编码信号,根据所述待编码信号对待处理的所述数据进行布斯编码处理,得到编码信号,根据所述编码信号和待处理的所述数据,得到目标编码的部分积,对目标编码的所述部分积进行累加处理,得到运算结果,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积;另外,该方法还可以通过改进华莱士树子电路中的模式选择单元选通目标编码的部分积中的数值,使得改进华莱士树子电路中的一个全加器接收到的信号均为低电平信号,保证关闭该全加器,以达到降低功耗的目的。
本发明实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个所述的乘法器;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,所述多个所述乘法器间可以通过特定的结构进行链接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
本发明实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
本发明实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的乘法器、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本发明实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本发明实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本申请实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本发明实施例提供的一种芯片,包括至少一个如上述任一项所述的乘法器。
本发明实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为为一实施例提供的一种乘法器的结构示意图;
图2为一实施例提供的乘法器的具体实现电路图;
图3a为一实施例提供的8位数据乘法运算得到的目标编码的部分积的分布规律示意图;
图3b为一实施例提供的16位数据乘法运算得到的目标编码的部分积的分布规律示意图;
图4为另一实施例提供的低位或高位改进华莱士树子电路的电路结构示意图;
图5为另一实施例提供的8位数据乘法运算时改进华莱士树子电路的连接结构示意图;
图6为一实施例提供的一种数据处理方法流程示意图;
图7为一实施例提供的得到运算结果的方法流程示意图;
图8为一实施例提供的得到目标编码的部分积的具体方法流程示意图;
图9为一实施例提供的得到运算结果的具体方法流程示意图;
图10为一实施例提供的一种组合处理装置的结构图;
图11为一实施例提供的另一种组合处理装置的结构图;
图12为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的乘法器可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中进行乘法运算处理,其具体结构示意图如图1所示。
如图1所示为一个实施例提供的一种乘法器的结构图。如图1所示,该乘法器包括:改进编码电路11、改进华莱士树组电路12以及累加电路13;所述改进编码电路11的输出端与所述改进华莱士树组电路12的输入端连接,所述改进华莱士树组电路12的输出端与所述累加电路13的输入端连接。其中,所述改进编码电路11用于对接收到的数据进行编码处理,得到符号位扩展后的部分积,并根据符号位扩展后的所述部分积得到目标编码的部分积,所述改进华莱士树组电路12用于对目标编码的所述部分积进行累加处理,所述累加电路13用于对接收到的输入数据进行累加处理。
具体的,上述改进编码电路11可以包括多个具有不同功能的数据处理单元,并且改进编码电路11可以接收到两个数据,分别可以作为乘法运算中的乘数和被乘数,其中,乘数和被乘数位宽相同。可选的,上述数据可以为定点数。可选的,改进编码电路11可以接收多种不同比特位宽的数据,也就是说,本实施例提供的乘法器可以处理多种不同比特位宽数据的乘法运算。但是,同一次乘法运算时,改进编码电路11接收到的乘数和被乘数可以是同位宽的数据,即乘数和被乘数位宽相等。示例性的,本实施例提供的乘法器可以处理8位*8位的数据乘法运算,16位*16位的数据乘法运算,32位*32位的数据乘法运算,还可以处理64位*64位的数据乘法运算,对此本实施例不作任何限定。
可选的,改进编码电路11可以对接收到的数据进行二进制编码处理,相当于可以对接收到的乘数进行二进制编码处理,并根据接收到的被乘数,得到符号位扩展后的部分积,该符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽的2倍。示例性的,一乘法器接收到16比特位宽的数据,且该乘法器当前所处理8位数据乘法运算,则乘法器中的改进编码电路11需要将16比特位宽的数据划分成,高8位和低8位的两组数据分别进行运算,此时,得到的符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽的2倍;若该乘法器当前可处理16位数据乘法运算,则乘法器中的改进编码电路11需要对整体16位数据进行运算,此时,得到的符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽的2倍。
可选的,所述改进编码电路11中包括第一输入端,用于接收输入的功能选择模式信号;所述改进华莱士树组电路12中包括第二输入端,用于接收输入的所述功能选择模式信号。可选的,所述功能选择模式信号用于确定乘法器处理的数据位宽。
需要说明的是,上述功能选择模式信号可以有多种,不同功能选择模式信号对应于乘法器当前可以处理不同位宽数据的乘法运算。可选的,同一次乘法运算时,改进编码电路11和改进华莱士树组电路12接收到的功能选择模式信号可以相等。
示例性的,如果改进编码电路11和改进华莱士树组电路12能够接收多种功能选择模式信号,以三种功能选择模式信号为例,可以分别为mode=00,mode=01,mode=10,mode=11,则mode=00可以表征乘法器能够对8位数据进行处理,mode=01可以表征乘法器能够对16位数据进行处理,mode=10可以表征乘法器能够对32位数据进行处理,mode=11可以表征乘法器能够对64位数据进行处理,另外,mode=00也可以表征为乘法器能够对32位数据进行处理,mode=01也可以表征为乘法器能够对64位数据进行处理,mode=10可以表征乘法器能够对8位数据进行处理,mode=11可以表征乘法器能够对16位数据进行处理,对此本实施例可以灵活设置。
本实施例提供的乘法器,通过改进编码电路对接收到的数据进行编码处理得到符号位扩展后的部分积,并根据符号位扩展后的所述部分积得到目标编码的部分积,并通过改进华莱士树组电路对目标编码的部分积进行累加处理,得到目标乘法运算结果,上述乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积;另外,乘法器通过改进华莱士树组电路对目标编码的部分积进行累加运算,还可以有效降低乘法器功耗。
图2为另一实施例提供的乘法器的具体结构示意图,其中,乘法器包括所述改进编码电路11,该改进编码电路11包括:低位布斯编码单元111、低位部分积获取单元112、选择器113、高位布斯编码单元114、高位部分积获取单元115、低位选择器组单元116以及高位选择器组单元117;所述低位布斯编码单元111的第一输出端与所述选择器112的输入端连接,所述低位布斯编码单元111的第二输出端与所述低位部分积获取单元112的第一输入端连接,所述选择器112的输出端与所述高位布斯编码单元113的输入端连接,所述高位布斯编码单元113的输出端与所述高位部分积获取单元115的第一输入端连接,所述低位选择器组单元116的输出端与所述低位部分积获取单元112的第二输入端连接,所述高位选择器组单元117的输出端与所述高位部分积获取单元115的第二输入端连接。其中,所述低位布斯编码单元111用于对接收到的数据中的低位数据进行布斯编码处理得到低位编码信号,所述低位部分积获取单元112用于根据所述低位编码信号,得到目标编码的低位部分积,所述选择器113用于选通高位数据进行布斯编码时的补位数值,所述高位布斯编码单元114用于对接收到的所述高位数据以及所述补位数值,进行布斯编码处理得到高位编码信号,所述高位部分积获取单元115用于根据所述高位编码信号,得到目标编码的高位部分积,所述低位选择器组单元116用于选通目标编码的低位部分积中的数值,所述高位选择器组单元117用于选通目标编码的高位部分积中的数值。
具体的,上述改进编码电路11可以接收乘法运算中的乘数和被乘数,并对乘数进行布斯编码处理,得到编码信号,根据编码信号以及接收到的被乘数得到目标编码的部分积。其中,低位数据在进行布斯编码处理前,低位布斯编码单元111可以自动对改进编码电路11接收到的数据中的低位数据进行一次补位处理,并对补位处理后的低位数据进行布斯编码处理,得到低位编码信号,该数据可以为乘法运算中的乘数。可选的,若改进编码电路11接收到的乘数位宽为N,则低位数据可以为低N/2位的数据,补位处理可以表征为对低位数据中最低位数值的更低一位处补一位数值0。示例性的,若乘法器当前可处理8位*8位的数据乘法运算,乘数为“y7y6y5y4y3y2y1y0”,则在进行布斯编码处理前,低位布斯编码单元111可以自动对乘数进行补位处理,将乘数转换为补位后的数据“y7y6y5y4y3y2y1y00”。可选的,上述低位编码信号的数量可以等于低位数据位宽的1/2,且该低位编码信号的数量可以等于低位数据对应得到的符号位扩展后的部分积的数量。需要说明的是,无论乘法器当前可处理数据的位宽和乘法器接收到的数据位宽是否相同,实现布斯编码处理时,低位布斯编码单元111都需要对低位数据进行补位处理。
同时,通过高位布斯编码单元114可以对改进编码电路11接收到的乘数中的高位数据,进行布斯编码处理得到高位编码信号,但是,高位数据在进行布斯编码处理前,需要通过选择器113获得一个选通数值,该选通数值可以作为高位数据进行布斯编码时的补位数值,然后将高位数据与补位数值组合得到补位后的高位数据,通过高位布斯编码单元114对补位后的高位数据进行布斯编码处理,得到高位编码信号。可选的,选择器113可以为二路选择器,选通数值可以为0,还可以为乘数中的低位数据的最高位数值。示例性的,一乘法器可以处理N比特和2N比特位宽数据的乘法运算,改进编码电路11接收到的数据位宽为2N比特,若该乘法器当前处理的是N比特位宽数据的运算,则选择器113选通的数据为0,也就是说,乘法器需要将接收到的2N比特位宽的数据划分成,高N位和低N位数据进行分别处理;若该乘法器当前处理的是2N比特位宽数据的运算,则选择器113选通的数据为低位数据中的最高位数值,此时相当于,乘法器需要将接收到的2N比特位宽的数据作为一个整体进行布斯编码处理。另外,选择器112还可以根据接收到的不同功能选择模式信号确定选通的补位数值。
需要说明的是,低位部分积获取单元114可以根据每一个低位编码信号得到低位数据对应的符号位扩展后的部分积,以及低位选择器组单元116选通后得到的目标编码的低位部分积中的数值,得到目标编码的低位部分积。可选的,高位部分积获取单元115可以根据每一个高位编码信号得到高位数据对应的符号位扩展后的部分积,以及高位选择器组单元117选通后得到的目标编码的高位部分积中的数值,得到目标编码的高位部分积。可选的,布斯编码过程中,得到的低位编码信号的数量可以等于得到的高位编码信号的数量,还可以等于低位数据对应的符号位扩展后的部分积的数量,或高位数据对应的符号位扩展后的部分积的数量。可选的,改进编码电路11可以包含N/4个低位布斯编码单元111,还可以包含N/4个高位布斯编码单元114。可选的,改进编码电路11中可以包含N/4个低位部分积获取单元112,还可以包含N/4个高位部分积获取单元115。可选的,上述每一个低位部分积获取单元112和每一个高位部分积获取单元115中,均可以包含2N个数值生成子单元,每一个数值生成子单元可以获取符号位扩展后的部分积中的一个数值。其中,上述N均可以表示乘法器接收到的数据的位宽。
本实施例提供的一种乘法器,通过改进编码电路中的低位布斯编码单元,选择器,高位布斯编码单元对接收到的数据进行布斯编码处理,得到低位及高位编码信号,并且低位部分积获取单元和高位部分积获取单元根据低位及高位编码信号,得到目标编码的部分积,再通过改进华莱士树组电路对目标编码的部分积进行累加处理,得到目标乘法运算结果,该过程能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
在其中一个实施例中,其中,乘法器包括所述低位布斯编码单元111,该低位布斯编码单元111包括:第一数值输入端口1111以及低位编码信号输出端口1112。所述第一数值输入端口1111用于接收所述低位数据中的三位数值,或第一补位数值和所述低位数据中的两位数值,所述低位编码信号输出端口1112用于输出对低位数据进行布斯编码处理后得到的低位编码信号。
具体的,乘法运算中,乘法器中的改进编码电路11需要对乘数进行布斯编码处理,改进编码电路11中的低位布斯编码单元111可以通过第一数值输入端口1111接收乘数中低位数据中的相邻三位数值作为一组待编码数据。其中,每一个低位布斯编码单元111对接收到的待编码数据处理后,将得到的低位编码信号可以通过低位编码信号输出端口1112输出。另外,改进编码电路11中的第一个低位布斯编码单元111,通过第一数值输入端口1111可以接收低位数据的补位数值0,以及低位数据中的低两位数值。可选的,低位数据的补位数值可以等于乘法器接收到的乘数的补位数值。
示例性的,若乘法器接收到的乘数为16比特位宽的数据“y15y14y13y12y11y10y9y8y7y6y5y4y3y2y1y0”,从最低位数值至最高位数值对应的编号为0,…,15,低位布斯编码单元111可以对低位数据y7y6y5y4y3y2y1y0进行布斯编码处理,布斯编码处理前对8位低位数据进行补位处理后得到9位数据y7y6y5y4y3y2y1y00,低位布斯编码单元111可以分别对y7y6y5y4y3y2y1y00中y7y6y5,y5y4y3,y3y2y1,y1y00这四组数据分别进行布斯编码处理,通过低位布斯编码单元111中的第一数值输入端口1111可以接收9位数据划分后的四组数据中相邻的三位数值。
需要说明的是,每一次布斯编码处理时,可以将低位数据进行补位处理后的数据划分成多组待编码数据,低位布斯编码单元111可以同时对划分后的多组待编码数据进行布斯编码处理。可选的,划分多组待编码数据的原则可以表征为对补位处理后的数据中相邻的每3位数值作为一组待编码数据,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。可选的,布斯编码的编码规则可以参见表1,其中,表1中的y2i+1,y2i和y2i-1可以表示每一组待编码数据对应的数值,X可以表示改进编码电路11接收到的被乘数,对每一组对应待编码数据进行布斯编码处理后,得到对应的编码信号PPi(i=0,1,2,...,n)。可选的,根据表1所示,布斯编码后得到的编码信号可以包括五类,分别为-2X,2X,-X,X和0。示例性的,若改进编码电路11接收到的被乘数为“x7x6x5x4x3x2x1x0”,则X可以表示为“x7x6x5x4x3x2x1x0”。
表1
Figure BDA0001886576430000121
示例性的,继续参见上述示例,当i=0时,y2i+1=y1,y2i=y0,y2i-1=y-1,则y-1可以表示y0后的补位数值0(即补位处理后的乘数表示为y7y6y5y4y3y2y1y0y-1),布斯编码过程中,可以对y-1y0y1,y1y2y3,y3y4y5和y5y6y7四组待编码数据分别进行编码,得到4个低位编码信号,其中,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。
本实施例提供的一种乘法器,通过低位布斯编码单元对低位数据进行布斯编码处理,得到低位数据对应的低位编码信号,并且低位部分积获取单元根据低位编码信号得到目标编码的低位部分积,进而对目标编码的低位部分积以及高位部分积进行累加处理,得到目标乘法运算结果,该过程能够保证乘法器运算结果准确性的前提下,能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
作为其中一个实施例,乘法器包括所述低位部分积获取单元112,该低位部分积获取单元112包括:低位编码信号输入端口1121、选通数值输入端口1122、数据输入端口1123以及部分积中的数值输出端口1124;所述低位编码信号输入端口1121用于接收低位布斯编码单元111输出的低位编码信号,所述选通数值输入端口1122用于接收低位选择器组单元116选通后,输出的目标编码的低位部分积中的数值,所述数据输入端口1123用于接收乘法运算的数据,所述部分积中的数值输入端口1124用于接收目标编码的低位部分积中的数值。
具体的,低位部分积获取单元112通过低位编码信号输入端口1121可以接收低位布斯编码单元111输出的低位编码信号,并通过数据输入端口1123可以接收乘法运算中的被乘数。可选的,低位部分积获取单元112可以根据接收到的低位编码信号以及接收到的乘法运算中的被乘数,得到低位数据对应的符号位扩展后的部分积。可选的,若数据输入端口1123接收到的被乘数位宽为N,则符号位扩展后的部分积的位宽可以等于2N。示例性的,若低位部分积获取单元112接收到一个N比特位宽的被乘数X,则低位部分积获取单元112可以根据被乘数X与五类编码信号-2X,2X,-X,X和0直接得到对应的符号位扩展后的部分积,该符号位扩展后的部分积的低(N+1)位数值可以等于原始部分积的数值,符号位扩展后的部分积的高(N-1)位数值可以等于原始部分积的符号位数值,该符号位数值也就是原始部分积的最高位数值。当编码信号为-2X时,则原始部分积可以为对X进行左右一位后取反再加1,当编码信号为2X时,则原始部分积可以为对X进行左移一位,当编码信号为-X时,则原始部分积可以为对X按位取反再加1,当编码信号为X时,则原始部分积可以为X与X的符号位数值(即X的最高位数值)结合的数据,当编码信号为+0时,则原始部分积可以为0,也就是9位原始部分积中的每一位数值均等于0。
需要说明的是,低位部分积获取单元112可以通过选通数值输入端口1122,接收低位选择器组单元116选通的不同位宽数据对应的符号位扩展后的部分积中的对应位数值,并根据乘法器当前得到的低位数据对应的符号位扩展后的部分积,以及选通后的对应位数值,得到目标编码的低位部分积。
本实施例提供的一种乘法器,低位部分积获取单元可以根据每一个低位编码信号得到目标编码的低位部分积,并且低位部分积获取单元根据低位编码信号得到目标编码的低位部分积,进而通过改进华莱士树组电路对目标编码的低位部分积以及高位部分积进行累加处理,得到目标乘法运算结果,该过程能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
在其中一个实施例中,上述乘法器包括所述选择器113,该选择器113包括:功能选择模式信号输入端口1131(mode)、第一选通数值输入端口1132、第二选通数值输入端口1133以及运算结果输出端口1134;所述功能选择模式信号输入端口1131用于接收乘法器需要处理不同位宽的数据对应的功能选择模式信号,所述第一选通数值输入端口1132用于接收第一选通数值,所述第二选通数值输入端口1133用于接收第二选通数值,所述运算结果输出端口1134输出选通后的所述第一选通数值或所述第二选通数值。
具体的,选择器113可以通过功能选择模式信号输入端口1131接收到的功能选择模式信号,确定乘法器当前可处理的数据位宽,并确定运算结果输出端口1134输出第一选通数值或第二选通数值。可选的,第一选通数据可以为0或低位数据的最高位数值,第二选通数据可以为0或低位数据的最高位数值。
示例性的,乘法运算时,若改进编码电路11接收到的乘数和被乘数均为16位数据,且选择器113的功能选择模式信号输入端口1131(mode)可以接收两种不同功能选择模式信号,分别为mode=0,mode=1,mode=0可以表征乘法器能够对8位数据进行处理,mode=1可以表征乘法器能够对16位数据进行处理,当选择器112的功能选择模式信号输入端口1121(mode)接收到的mode为0,则乘法器当前可处理8位数据运算,此时,选择器113可以通过第二选通数值输入端口1133接收第二选通数值,该第二选通数值可以等于0;当选择器113的功能选择模式信号输入端口1131(mode)接收到的mode为1时,则乘法器当前可处理16位数据运算,此时,选择器113可以通过第一选通数值输入端口1132接收第一选通数值,该第一选通数值可以等于低位数据的最高位数值。
需要说明的是,若乘法器当前可处理8位数据乘法运算时,则乘法器可以对16位乘数和16位被乘数对应的高8位数据和低8位数据分别进行乘法运算,也就是说,高8位乘数和高8位被乘数通过高位布斯编码单元114进行8位数据运算,低8位乘数和低8位被乘数通过低位布斯编码单元111进行8位数据运算,并且乘法器进行8位数据乘法运算时,选择器113可以通过第二选通数值输入端口1133接收第二选通数值0,相当于高8位数据补位处理后的补位数值为0;若乘法器当前可处理16位数据乘法运算时,则乘法器可以直接对16位乘数和16位被乘数进行乘法运算,即改进编码电路11直接对16位乘数进行布斯编码,此时,选择器113可以通过第一选通数值输入端口1132接收第一选通数值,该第一选通数值为低8位数据中的最高位数值。
本实施例提供的一种乘法器,通过选择器接收到的功能选择模式信号,可以确定高位数据进行布斯编码处理时的补位数值,从而对补位后的数据进行布斯编码处理,以减少部分积,从而减少乘法器压缩过程的运算量。
作为其中一个实施例,乘法器包括所述高位布斯编码单元114,该高位布斯编码单元114包括:第二数值输入端口1141以及高位编码信号输出端口1142;所述第二数值输入端口1141用于接收所述高位数据中的三位数值,或第二补位数值和所述高位数据中的两位数值,所述高位编码信号输出端口1142用于输出对高位数据进行布斯编码处理后得到的高位编码信号。
具体的,乘法运算中,乘法器中的改进编码电路11需要对乘数进行布斯编码处理,改进编码电路11中的高位布斯编码单元114可以通过第二数值输入端口1141接收乘数中高位数据的相邻三位数值作为一组待编码数据。其中,每一个高位布斯编码单元114对接收到的待编码数据处理后,将得到的高位编码信号可以通过高位编码信号输出端口1142输出。另外,改进编码电路11中的第一个高位布斯编码单元114,通过第二数值输入端口1141可以接收高位数据的补位数值,以及高位数据中的低两位数值。可选的,高位数据的补位数值可以为低位数据中的最高位数值。
示例性的,继续参见16位数据乘法运算的示例,高位布斯编码单元114可以分别对y7y6y5y4y3y2y1y00中y7y6y5,y5y4y3,y3y2y1,y1y00四组数据分别进行布斯编码处理,通过高位布斯编码单元114中的第二数值输入端口1141可以接收9位数据划分后的四组数据中连续的三位数值。
需要说明的是,每一次布斯编码处理时,高位布斯编码单元114处理待编码的高位数据的原理,与低位布斯编码单元111处理待编码的低位数据的原理可以相同。其中,高位布斯编码单元114与低位布斯编码单元111的内部电路结构可以相同,外部输出端口的功能也可以相同。
本实施例提供的一种乘法器,通过高位布斯编码单元对高位数据进行布斯编码处理,得到高位数据对应的高位编码信号,并且高位部分积获取单元根据高位编码信号得到目标编码的高位部分积,进而通过改进华莱士树组电路对目标编码的高位部分积以及低位部分积进行累加处理,得到目标乘法运算结果,该过程能够保证乘法器对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
在其中一个实施例中,其中,乘法器包括所述高位部分积获取单元115,该高位部分积获取单元115包括:高位编码信号输入端口1151、选通数值输入端口1152、数据输入端口1153以及部分积中的数值输出端口1154;所述高位编码信号输入端口1151用于接收高位布斯编码单元111输出的高位编码信号,所述选通数值输入端口1152用于接收高位选择器组单元117选通后,输出的目标编码的高位部分积中的数值,所述数据输入端口1153用于接收乘法运算的数据,所述部分积中的数值输入端口1154用于接收目标编码的高位部分积中的数值。
具体的,高位部分积获取单元115通过高位编码信号输入端口1151可以接收高位布斯编码单元114输出的高位编码信号,并通过数据输入端口1153可以接收乘法运算中的被乘数。可选的,高位部分积获取单元115可以根据接收到的高位编码信号以及接收到的乘法运算中的被乘数,得到高位数据对应的符号位扩展后的部分积。可选的,若数据输入端口1153接收到的被乘数位宽为N,则符号位扩展后的部分积的位宽可以等于2N。
需要说明的是,高位部分积获取单元115可以通过选通数值输入端口1122,接收高位选择器组单元117选通的不同位宽数据对应的符号位扩展后的部分积中的对应位数值,并根据乘法器当前得到的高位数据对应的符号位扩展后的部分积,以及选通后的对应位数值,得到目标编码的高位部分积。
本实施例提供的一种乘法器,高位部分积获取单元可以根据每一个高位编码信号得到目标编码的高位部分积,并且高位部分积获取单元根据高位编码信号得到目标编码的高位部分积,进而通过改进华莱士树组电路对目标编码的高位部分积以及低位部分积进行累加处理,得到目标乘法运算结果,该过程能够保证乘法器运算结果准确性的前提下,能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
在其中一个实施例中,其中,乘法器包括所述低位选择器组单元116,该低位选择器组单元116包括:低位选择器1161,多个所述低位选择器1161用于对目标编码的低位部分积中的数值进行选通。
具体的,上述低位选择器组单元116中低位选择器1161的数量,可以等于乘法器当前接收到的数据位宽平方的3/8倍,该低位选择器组单元116中多个低位选择器1161的内部电路结构可以相同。可选的,乘法运算时,每一个低位布斯编码单元111连接的对应低位部分积获取单元112中,可以包含2N个数值生成子单元,其中,N个数值生成子单元可以连接N个低位选择器1161,每一个数值生成子单元连接一个低位选择器1161,其中,N表示乘法器当前接收到的数据的位宽。可选的,上述N个低位选择器1161对应的N个数值生成子单元,可以为目标编码的低位部分积中高N位数值对应的数值生成子单元,且该N个低位选择器1161与选择器113的内部电路结构可以完全相同,同时,该N个低位选择器1161的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口。可选的,若乘法器可以处理n种不同位宽的数据运算,并且乘法器接收到的数据的位宽是N,则上述低位选择器1161的两个其它输入端口分别接收的信号可以为0和乘法器进行N比特位宽的数据运算时,该低位布斯编码单元111得到的对应符号位扩展后的部分积中的符号位数值。其中,N/4个低位部分积获取单元112可以连接N/4组N个低位选择器1161,各组的N个低位选择器1161接收到的符号位数值可以相同,也可以不同,但是,同一组的N个低位选择器1161接收到的符号位数值是相同的,并且该符号位数值可以根据每一组N个低位选择器1161,对应连接的低位部分积获取单元112获取的符号位扩展后的部分积中的符号位数值得到。
另外,每一个低位部分积获取单元112包含的2N个数值生成子单元中,对应N/2个数值生成子单元可以不连接低位选择器1161,此时,该N/2个数值生成子单元获取的数值可以为乘法器当前所处理不同位宽的数据,对应的一个低位数据得到的符号位扩展后的部分积中的对应位数值,也可以理解为,N/2个数值生成子单元获取的数值可以为对应符号位扩展后的部分积中,对应低N/2-1位至最低位之间的所有数值。
需要说明的是,每一个低位部分积获取单元112包含的2N个数值生成子单元中,剩余的N/2个数值生成子单元也可以连接N/2个低位选择器1161,每一个数值生成子单元可以连接1个低位选择器1161,该N/2个低位选择器1161与选择器113的内部电路结构可以相同,并且该N/2个低位选择器1161的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口,这两个其它输入端口分别接收的信号,可以为乘法器进行N/2位数据运算,得到的对应符号位扩展后的部分积中的符号位数值,和乘法器进行N位数据运算,得到的对应符号位扩展后的部分积中对应位数值。其中,N/4个低位部分积获取单元112可以连接N/4组N/2个低位选择器1161,各组的N/2个低位选择器1161接收到的符号位数值可以相同,也可以不同,但是,同一组的N/2个低位选择器1161接收到的符号位数值是相同的,并且该符号位数值可以根据每一组N/2个低位选择器1161,对应连接的低位部分积获取单元112获取的符号位扩展后的部分积中的符号位数值得到。
另外,各组的N/2个低位选择器1161接收到的符号位扩展后的部分积中对应位数值,可以根据该组低位选择器1161所连接的低位部分积获取单元112,获取的符号位扩展后的部分积中的对应位数值确定,并且每一组的N/2个低位选择器1161中,每一个低位选择器1161接收到的对应位数值可以相同,可以不同。其中,每一个低位部分积获取单元112中2N个数值生成子单元的位置,可以在上一个低位部分积获取单元112中2N个数值生成子单元位置的基础上,左移两个数值生成子单元。可选的,目标编码的低位部分积中,只有第一个低位部分积的位宽可以等于2N,剩余的低位部分积都会在上一个低位部分积的基础上少高两位的数值,且最后一个低位部分积的位宽可以等于(3N/2+2)。
本实施例提供的一种乘法器,乘法器中的低位选择器组单元可以选通低位部分积中的数值,得到目标编码的低位部分积,进而通过改进华莱士树组电路对目标编码的低位部分积和高位部分积进行累加处理,得到目标乘法运算结果,该过程能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
在其中一个实施例中,其中,乘法器包括所述高位选择器组单元117,该高位选择器组单元117包括:高位选择器1171,多个所述高位选择器1171用于对目标编码的高位部分积中的数值进行选通。
具体的,上述高位选择器组单元117中高位选择器1171的数量,可以等于乘法器当前接收到的数据位宽平方的3/8倍,该高位选择器组单元117中多个高位选择器1171的内部电路结构可以相同。可选的,乘法运算时,每一个高位布斯编码单元114连接的对应高位部分积获取单元115中,可以包含2N个数值生成子单元,其中,N个数值生成子单元可以连接N个高位选择器1171,每一个数值生成子单元连接一个高位选择器1171,其中,N表示乘法器当前接收到的数据的位宽。可选的,上述N个高位选择器1171对应的N个数值生成子单元,可以为目标编码的高位部分积中低N位数值对应的数值生成子单元,且该N个高位选择器1171与选择器113的内部电路结构可以完全相同,同时,该N个高位选择器1171的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口。可选的,若乘法器可以处理n种不同位宽的数据运算,并且乘法器接收到的数据的位宽是N,则上述高位选择器1171的两个其它输入端口分别接收的信号可以为0和乘法器进行N比特位宽的数据运算时,该高位布斯编码单元114得到的对应符号位扩展后的部分积中的对应位数值。其中,N/4个高位部分积获取单元115可以连接N/4组N个高位选择器1171,各组的N个高位选择器1171接收到的对应位数值可以相同,也可以不同。
另外,每一个高位部分积获取单元115包含的2N个数值生成子单元中,对应N/2个数值生成子单元可以连接N/2个高位选择器1171,每一个数值生成子单元可以连接1个高位选择器1171,该N/2个高位选择器1171与选择器113的内部电路结构可以相同,并且该N/2个高位选择器1171的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口,这两个其它输入端口分别接收的信号,可以为乘法器进行N/2位数据运算,得到的对应符号位扩展后的部分积中的符号位数值,和乘法器进行N位数据运算,得到的对应符号位扩展后的部分积中的符号位数值。其中,N/4个高位部分积获取单元115可以连接N/4组N/2个高位选择器1171,各组的N/2个高位选择器1171接收到的符号位数值可以相同,也可以不同,但是,同一组的N/2个高位选择器1171接收到的符号位数值是相同的,并且该符号位数值可以根据每一组N/2个高位选择器1171,对应连接的高位部分积获取单元115获取的符号位扩展后的部分积中的符号位数值得到。另外,各组的N/2个高位选择器1171接收到的符号位扩展后的部分积中对应位数值,可以根据该组高位选择器1171所连接的高位部分积获取单元115,获取的符号位扩展后的部分积中的符号位数值确定,并且每一组的N/2个高位选择器1171中,每一个高位选择器1171接收到的对应位数值可以相同,可以不同。
需要说明的是,每一个高位部分积获取单元115包含的2N个数值生成子单元中,剩余的N/2个数值生成子单元可以不连接高位选择器1171,此时,该N/2个数值生成子单元获取的数值可以为乘法器当前所处理不同位宽的数据,对应的一个高位数据得到的符号位扩展后的部分积中的对应位数值,也可以理解为,N/2个数值生成子单元获取的数值可以为对应符号位扩展后的部分积中,对应高(3N/2)-1位至低N+1位之间的所有数值。其中,每一个高位部分积获取单元115中2N个数值生成子单元的位置,可以在上一个高位部分积获取单元115中2N个数值生成子单元位置的基础上,左移两个数值生成子单元。可选的,目标编码的高位部分积中,只有第一个高位部分积的位宽可以等于3N/2,剩余的高位部分积都会在上一个高位部分积的基础上少高两位的数值。
本实施例提供的一种乘法器,乘法器中的高位选择器组单元可以选通高位部分积中的数值,得到目标编码的高位部分积,进而通过改进华莱士树组电路对目标编码的高位部分积和低位部分积进行累加处理,得到目标乘法运算结果,该过程能够能够对多种不同位宽的数据进行乘法运算,有效减少乘法器占用AI芯片的面积。
在其中一个实施例中,其中,乘法器包括所述改进华莱士树组电路12,该改进华莱士树组电路12包括:改进华莱士树子电路121~12n;多个所述改进华莱士树子电路121~12n用于对不同位宽数据运算时得到的目标编码的所述部分积进行累加处理。
具体的,改进华莱士树组电路12包含的改进华莱士树子电路的数量n可以等于乘法器当前所处理数据位宽的2倍,并且n个改进华莱士树子电路可以对目标编码的部分积进行并行处理,但连接方式可以是串行连接。可选的,通过改进华莱士树组电路12可以对目标编码的部分积中的每一列的数值进行累加处理,得到两路输出信号。
需要说明的是,目标编码的所有部分积的分布规律中,每一个目标编码的部分积可以等于符号位扩展后的部分积,还可以等于符号位扩展后的部分积中的部分位数值,其中,第一个目标编码的部分积可以等于第一个对应的符号位扩展后的部分积。可选的,每一个目标编码的部分积中的最低位数值可以与上一个目标编码的部分积中的最低位数值的低两位处数值位于同一列,相当于每一个符号位扩展后的部分积中的每一位数值,在上一个符号位扩展后的部分积中的每一位数值所处对应列的基础上,左移两列,并且每一个符号位扩展后的部分积的最高位数值,与第一个符号位扩展后的部分积中的最高位数值位于同一列,其中,超出第一个符号位扩展后的部分积中的最高位数值对应列的更高列的数值可以进行累加运算。可选的,目标编码的所有部分积的列数可以等于乘法器当前所处理数据位宽的2倍。
示例性的,若乘法器当前处理8位*8位的数据乘法运算,该乘法器通过改进编码电路11得到的目标编码的2个低位部分积,以及2个高位部分积的分布规律如图3a所示,其中,“○”表示低位部分积中的每一位数值,
Figure BDA0001886576430000201
表示高位部分积中的每一位数值,“●”表示低位部分积或高位部分积的符号扩展位数值;若乘法器当前处理16位*16位的数据乘法运算,该乘法器通过改进编码电路11得到的目标编码的4个低位部分积,以及4个高位部分积的分布规律如图3b所示,其中,“○”表示低位部分积中的每一位数值,
Figure BDA0001886576430000202
表示高位部分积中的每一位数值,“●”表示低位部分积或高位部分积的符号扩展位数值。
本实施例提供的一种乘法器,通过改进华莱士树组电路可以对目标编码的低位部分积和高位部分积进行累加处理,并通过累加电路对累加结果进行再次累加处理,得到乘法运算结果,该过程可以对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
继续参见图2为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述改进华莱士树组电路12,该改进华莱士树组电路12包括:低位改进华莱士树子电路1211、选择器1212以及高位改进华莱士树子电路1213,所述低位改进华莱士树子电路121的输出端与所述选择器1212的输入端连接,所述选择器1212的输出端与所述高位改进华莱士树子电路1213的输入端连接;其中,多个所述低位改进华莱士树子电路1211用于对目标编码的所述部分积中的每一列数值进行累加运算,所述选择器1212用于选通所述高位改进华莱士树子电路1213接收的进位输入信号,多个所述高位改进华莱士树子电路1213用于对目标编码的所述部分积中的每一列数值进行累加运算。
可选的,多个所述低位改进华莱士树子电路1211和多个所述高位改进华莱士树子电路1213均包括4-2压缩器以及模式选择单元,所述模式选择单元的输出端与所述4-2压缩器的输入端连接。其中,多个所述4-2压缩器用于对目标编码的所述部分积中每一列的数值进行累加处理,所述模式选择单元用于选通过所述4-2压缩器接收到的目标编码的所述部分积中的数值。可选的,所述模式选择单元中包括第一输入端,用于接收输入的功能选择模式信号。
具体的,每一个低位改进华莱士树子电路1211的电路结构可以由一个或多个4-2压缩器以及一个模式选择单元组合实现,每一个高位改进华莱士树子电路1213的电路结构也可以由一个或多个4-2压缩器以及一个模式选择单元组合实现,另外,还可以理解为,每一个改进华莱士树子电路中的一个或多个4-2压缩器,可以对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路,同时,每一个4-2压缩器的电路结构可以通过两个全加器组合实现。可选的,改进华莱士树组子电路121~12n可以包括多个低位改进华莱士树子电路1211和多个高位改进华莱士树子电路1213,其中,高位改进华莱士树子电路1213的数量可以等于乘法器当前接收到的数据位宽N,还可以等于低位改进华莱士树子电路1211的数量,并且各低位改进华莱士树子电路1211之间可以串行连接,各高位改进华莱士树子电路1213之间也可以串行连接。可选的,最后一个低位改进华莱士树子电路1211的输出端与选择器1212的输入端连接,选择器1212的输出端与第一个高位改进华莱士树子电路1211的输入端连接。可选的,改进华莱士树组电路12中每一个低位改进华莱士树子电路1211可以对目标编码的所有部分积的每一列进行加法处理,每一个低位改进华莱士树子电路1211可以输出两个信号,即进位信号Carryi与一个和位信号Sumi,其中,i可以表示每一个低位改进华莱士树子电路1211对应的编号,第一个低位改进华莱士树子电路1211的编号为0。可选的,每一个低位改进华莱士树子电路1211接收到输入信号的数量可以等于编码信号数量或者目标编码的部分积的数量。其中,改进华莱士树组电路12中高位改进华莱士树子电路1213与低位改进华莱士树子电路1211的数量之和,可以等于2N,目标编码的所有部分积中,从最低列至最高列的总列数可以等于2N,N个低位改进华莱士树子电路1211可以对目标编码的所有部分积的低N列中的每一列进行累加运算,N个高位改进华莱士树子电路1213可以对目标编码的所有部分积的高N列中的每一列进行累加运算。
示例性的,若乘法器接收到的数据位宽为N比特,并且当前乘法器进行N位数据乘法运算,此时,选择器1212可以选通改进华莱士树组电路12中的最后一个低位改进华莱士树子电路1211,输出的进位输出信号CoutN作为改进华莱士树组电路12中,第一个高位改进华莱士树子电路1213接收到的进位输入信号CinN+1,还可以理解为,乘法器当前可以将接收到的N为数据作为一个整体进行运算;当前乘法器进行N/2位数据乘法运算,此时,选择器1212可以选通0作为改进华莱士树组电路12中,第一个高位改进华莱士树子电路1213接收到的进位输入信号CinN+1,还可以理解为,乘法器当前可以将接收到的N位数据划分成高N/2位和低N/2位数据分别进行乘法运算,其中,从第一个低位改进华莱士树子电路1211至最后一个低位改进华莱士树子电路1211的对应编号i分别为1,2,…,N,从第一个高位改进华莱士树子电路1213至最后一个高位改进华莱士树子电路1213的对应编号i分别为N+1,N+2,…,2N。
需要说明的是,改进华莱士树组电路12中每一个低位改进华莱士树子电路1211和高位改进华莱士树子电路1213,接收到的信号可以包括进位输入信号Cini,部分积数值输入信号,进位输出信号Couti。可选的,每一个低位改进华莱士树子电路121和高位改进华莱士树子电路123接收到的部分积数值输入信号,可以为目标编码的所有部分积中对应列的数值,每一个低位改进华莱士树子电路1211和高位改进华莱士树子电路1213输出的进位信号Couti的位数可以等于NCout=floor((NI+NCin)/2)-1。其中,NI可以表示该改进华莱士树子电路的数据输入位数,NCin可以表示该华莱士树子电路的进位输入位数,NCout可以表示该改进华莱士树子电路最少的进位输出位数,floor(·)可以表示向下取整函数。可选的,改进华莱士树组电路12中每一个低位改进华莱士树子电路1211或高位改进华莱士树子电路1213接收到的进位输入信号,可以为上一个低位改进华莱士树子电路1211或高位改进华莱士树子电路1213输出的进位输出信号,并且第一个低位改进华莱士树子电路1211接收到的进位数输入信号为0。其中,第一个高位改进华莱士树子电路1213接收到的进位数输入信号,可以通过乘法器当前所处理的数据的位宽与乘法器接收到的数据位宽确定。可选的,改进华莱士树组电路12中,低位改进华莱士树子电路1211的进位输出端口与选择器1212的输入端口连接,低位改进华莱士树子电路1211的进位输入端口与选择器1212的输出端口连接。
另外,每一个低位改进华莱士树子电路1211和每一个高位改进华莱士树子电路1213,均可以通过电路结构中的模式选择单元选通目标编码的所有部分积中对应列的其中一位数值,并将该位数值输入至4-2压缩器中的全加器,以选通低电平信号,使得该全加器的输入信号均为低电平信号,相当于关闭了该全加器。
示例性的,在神经网络运算中,神经网络运算数据为零或接近零的数据比较多,经过稀疏化和/或压缩后为零或接近零的数据会更多。神经网络运算数据中大量数据转换为二进制数据后,一乘法器可以对转换后的二进制数据进行两种不同位宽的数据运算,即8比特位宽数据(对应mode=00)和16比特位宽数据(对应mode=11),并且该乘法器接收到的乘数和被乘数均为16比特位宽的数据,该乘法器中多个低位改进华莱士树子电路和多个高位改进华莱士树子电路的电路结构图均可以参见图4所示,图中~mode表示对mode信号取反,例如,若mode为高电平信号,则~mode为低电平信号,若mode为低电平信号,则~mode为高电平信号。另外,乘法器无论进行8位宽还是16位宽的数据运算,均可以得到8个目标编码的部分积,目标编码的所有部分积中其中一列的数值分别为I0,I1,I2,I3,I4,I5,I6,I7,在本示例中,乘法器通过接收到的mode信号,可以确定高位和低位改进华莱士树中模式选择单元接收到的目标编码的部分积中的数值为I3还是I6,以保证模式选择单元输入至第四全加器的信号为低电平信号。在示例中,乘法器可以根据接收到的mode信号确定模式选择单元可以接收的选通信号I3或I6,若mode=00,则模式选择单元可以选通I6作为第四全加器的输入,选通I3作为第三全加器的输入;若mode=11,则模式选择单元可以选通I3作为第四全加器的输入,选通I6作为第三全加器的输入。
本实施例提供的一种乘法器,通过改进华莱士树组电路可以对目标编码的部分积进行累加处理得到两路输出信号,并通过累加电路对该两路输出信号进行再次累加处理,得到乘法运算结果,该过程可以对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积;另外,乘法器可以通过高位和低位改进华莱士树子电路中的模式选择单元选通目标编码的部分积中的数值,使得改进华莱士树子电路中的一个全加器接收到的信号均为低电平信号,保证关闭该全加器,从而达到降低功耗的目的。
继续参见图2为另一实施例提供的乘法器的具体结构示意图,乘法器包括所述累加电路13,该累加电路13包括:加法器131,所述加法器131用于对接收到的两个同位宽数据进行加法运算。
具体的,加法器131可以为不同位宽的进位加法器。可选的,加法器131可以接收改进华莱士树组电路12输出的两路信号,对两路输出信号进行加法运算,得到乘法运算结果。可选的,上述加法器131可以为超前进位加法器。
可选的,所述加法器131,该加法器131包括:进位信号输入端口131a、和位信号输入端口131b以及运算结果输出端口131c;所述进位信号输入端口131a用于接收进位信号,和位信号输入端口131b用于接收和位信号,运算结果输出端口131c用于输出进位信号与和位信号进行累加处理的结果。
具体的,加法器131可以通过进位信号输入端口131a接收改进华莱士树组电路12输出的进位信号Carry,通过和位信号输入端口131b接收改进华莱士数组电路12输出的和位信号Sum,并将进位信号Carry与和位信号Sum进行累加的结果,通过运算结果输出端口131c输出。
需要说明的是,乘法运算时,乘法器可以采用不同位宽的加法器131对改进华莱士树组电路12输出的进位输出信号Carry与和位输出信号Sum进行加法运算,其中,上述加法器131的可处理数据的位宽可以等于乘法器当前处理的数据位宽M的2倍。可选的,改进华莱士树组电路121中的每一个低位改进华莱士树子电路121和高位改进华莱士树子电路123,可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=1,…,2M,i为每一个低位或高位改进华莱士树子电路的对应编号,编号从1开始)。可选的,加法器131接收到的Carry={[Carry1:Carry2M-1],0},也就是说,加法器131接收到的进位输出信号Carry的位宽为2M,进位输出信号Carry中前2M-1位数值对应改进华莱士树组电路12中,前2M-1个低位和高位改进华莱士树子电路的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器131接收到的和位输出信号Sum的位宽为M,和位输出信号Sum中的数值可以等于改进华莱士树组电路12中每一个低位或高位改进华莱士树子电路的和位输出信号。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,则加法器131可以为16位超前进位加法器,如图5所示,改进华莱士树组电路12可以输出16个低位和高位改进华莱士树子电路的和位输出信号Sum和进位输出信号Carry,但是,16位超前进位加法器接收到的和位输出信号,可以为改进华莱士树组电路12输出的完整和位信号Sum,接收到的进位输出信号可以为改进华莱士树组电路12中,除去最后一个高位改进华莱士树子电路123输出的进位输出信号的所有进位输出信号,与0结合后的进位信号Carry。其中,图5中Wallace_i表示低位或高位改进华莱士树子电路,i为低位和高位改进华莱士树子电路从0开始的编号,并且两两改进华莱士树子电路之间连接的实线表示高位编号对应的改进华莱士树子电路有进位输出信号,虚线表示高位编号对应的改进华莱士树子电路没有进位输出信号,梯形电路表示二路选择器。
本实施例提供的一种乘法器,通过累加电路可以对改进华莱士树组电路输出的两路信号进行累加运算,得到乘法运算结果,该乘法器可以对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
图6为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图1和图2所示的乘法器进行处理,本实施例涉及的是对不同位宽的数据进行乘法运算的过程。如图6所示,该方法包括:
S101、接收待处理的数据。
具体的,乘法器可以通过改进编码电路接收待处理的数据,该数据可以为乘法运算中的乘数和被乘数。每一次乘法运算时,乘法器还可以通过改进编码电路和改进华莱士树组电路中的所有选择器接收不同的功能选择模式信号,并且同一次运算时改进编码电路中的所有选择器和改进华莱士树组电路中的选择器接收到的功能选择模式信号可以相同。若乘法器接收不同的功能选择模式信号,则乘法器可以处理不同位宽的数据运算,同时,不同选择模式信号与乘法器可以处理不同位宽的数据之间的对应关系可以灵活设置,对此本实施例不作任何限定。
需要说明的是,如果改进编码电路接收到的待处理的乘数和被乘数的位宽,与乘法器接收到的功能选择模式信号对应可处理的数据位宽不相等,则乘法器会根据乘法器当前可处理的数据位宽,将接收到的待处理的数据划分成,与乘法器当前可处理的数据位宽相等的多组数据进行并行处理,其中,改进编码电路接收到的待处理的数据的位宽可以大于乘法器当前可处理的数据位宽。可选的,上述并行处理可以表征为将划分后的每一组待处理的数据据同时进行处理。如果改进编码电路接收到的待处理的数据的位宽,与乘法器接收到的功能选择模式信号对应可处理的数据位宽相等,则乘法器直接对接收到的待处理的数据进行处理。可选的,上述待处理的数据可以包括待处理的高位数据和待处理的低位数据。其中,若待处理的数据的位宽为2N,则高N位为待处理的高位数据,低N位为待处理的高位数据。
可选的,改进编码电路接收到的待处理的乘数和被乘数的位宽可以为8比特,16比特,32比特,64比特,对此本实施例不做任何限定。其中,待处理乘数的位宽可以等于待处理被乘数的位宽。
S102、选通待编码信号,根据所述待编码信号对待处理的所述数据进行布斯编码处理,得到编码信号。
具体的,乘法器可以通过改进编码电路接收到的功能模式选择信号确定选择器选通后的待编码信号,根据确定的待编码信号对待处理的数据进行布斯编码处理,得到编码信号。可选的,上述待处理的数据可以为乘法运算中的乘数,并且可以包括待处理的高位数据和待处理的低位数据,其中,若待处理的数据的位宽为2N,则高N位可以为待处理的高位数据,低N位可以为待处理的低位数据。可选的,上述待编码信号可以为0,还可以为待处理的低位数据中的最高位数值。
需要说明的是,若乘法器接收到的数据的位宽为2N,并且乘法器当前所处理数据的位宽也为2N,则改进编码电路可以通过选择器选通待处理的低位数据中的最高位数值,作为高位数据中的补位数值,此时,乘法器可以将接收到的2N位数据作为一个整体进行乘法运算;若乘法器当前所处理数据的位宽为N,则乘法器需要将接收到的2N位数据分成高N位和低N位数据进行并行处理,此时,改进编码电路可以通过选择器选通0,作为高位数据中的补位数值。
S103、根据所述编码信号和待处理的所述数据,得到目标编码的部分积。
具体的,乘法器中的部分积获取单元可以根据待处理的被乘数和编码信号,得到当前乘法器接收到的功能选择模式信号对应的目标编码的部分积。可选的,上述目标编码的部分积可以为乘法器得到的对应符号位扩展后的部分积,该符号位扩展后的部分积的数量可以等于编码信号的数量。
示例性的,若乘法器接收到的数据的位宽为2N,并且乘法器当前所处理N位宽的数据,则目标编码的部分积可以为高N位数据得到的对应符号位扩展后的部分积,和低N位数据得到的对应符号位扩展后的部分积。
S104、通过改进华莱士树组电路对目标编码的所述部分积中每一列数值进行累加处理,得到运算结果。
本实施例提供的一种数据处理方法,接收待处理的数据,选通待编码信号,根据所述待编码信号对待处理的所述数据进行布斯编码处理,得到编码信号,根据所述编码信号和待处理的所述数据,得到目标编码的部分积,对目标编码的所述部分积进行累加处理,得到运算结果,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积;另外,该方法还可以通过改进华莱士树子电路中的模式选择单元选通目标编码的部分积中的数值,使得改进华莱士树子电路中的一个全加器接收到的信号均为低电平信号,保证关闭该全加器,以达到降低功耗的目的。
如图7所示为另一实施例提供的数据处理方法,上述S102中选通待编码信号,根据所述待编码信号对对待处理的所述数据进行布斯编码处理,得到编码信号的步骤,包括:
S1021、根据所述待编码信号与待处理的所述数据,得到待编码的高位数据和低位数据。
具体的,改进编码电路可以根据待编码信号确定待处理的高位数据对应的多个待编码高位数据。可选的,在对待处理的数据进行布斯编码处理前,改进编码电路需要对接收到的待处理的乘数进行补位处理,即在乘数中最低位数值的更低一位处补一位数值0。可选的,待处理的低位数据与补位数值0可以得到多组待编码的低位数据,待处理的高位数据与选通后得到的待编码信号可以得到多组待编码的低位数据。可选的,待编码的低位数据的组数可以等于待编码的高位数据的组数,还可以等于乘法器接收到的数据位宽的1/4。
需要说明的是,划分多组待编码的低位数据的原则可以表征为对补位处理后的低位数据中相邻的每3位数值作为一组待编码的低位数据,每一组待编码的低位数据中的最高位数值可以作为相邻下一组待编码的低位数据中的最低位数值。可选的,划分多组待编码的高位数据的原则可以表征为将选通得到的待编码信号作为高位数据的补位数值,对补位后的高位数据中相邻的每3位数值作为一组待编码的高位数据,每一组待编码的高位数据中的最高位数值可以作为相邻下一组待编码的高位数据中的最低位数值。
S1022、对待编码的所述高位数据以及所述低位数据进行布斯编码处理,得到高位编码信号和低位编码信号。
具体的,上述布斯编码处理过程中的编码规则可以参见表1,根据表1可知,通过低位布斯编码单元和高位布斯编码单元对划分后的待编码低位数据,以及高位数据进行布斯编码处理,可以得到五类不同的编码信号,分别为-2X,2X,-X,X和0。
本实施例提供的一种数据处理方法,接收待处理的数据,根据所述待编码信号与待处理的所述数据,得到待编码的高位数据和低位数据,对待编码的所述高位数据以及所述低位数据进行布斯编码处理,得到高位编码信号和低位编码信号,根据所述低位编码信号,所述高位编码信号和待处理的所述数据,得到目标编码的部分积,对目标编码的所述部分积进行累加处理,得到运算结果,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
另一实施例提供的数据处理方法,继续参见图7,上述S103中根据所述编码信号和待处理的所述数据,得到目标编码的部分积的步骤,包括:
S1031、根据所述低位编码信号和待处理的所述数据,得到目标编码的低位部分积。
需要说明的是,若乘法器接收到的待处理的数据的位宽为2N,并且乘法器当前可处理N位的数据时,则乘法器需要将2N位待处理的数据划分成待处理的高N位数据和低N位数据进行并行运算,此时,乘法器通过改进编码电路可以根据低位编码信号和待处理的低N位数据,得到目标编码的低位部分积;若乘法器当前可处理2N位的数据时,则乘法器需要根据低位编码信号和待处理的2N位数据,得到目标编码的低位部分积。其中,目标编码的低位部分积的位宽可以为4N,且目标编码的低位部分积的数量可以等于N/2。
S1032、根据所述高位编码信号和待处理的所述数据,得到目标编码的高位部分积。
需要说明的是,若乘法器接收到的待处理的数据的位宽为2N,并且乘法器当前可处理N位的数据时,则乘法器需要将2N位待处理的数据划分成待处理的高N位数据和低N位数据进行并行运算,此时,乘法器通过改进编码电路可以根据高位编码信号和待处理的高N位数据,得到目标编码的高位部分积;若乘法器当前可处理2N位的数据时,则乘法器需要根据高位编码信号和待处理的2N位数据,得到目标编码的高位部分积。其中,目标编码的高位部分积的位宽可以为4N,且目标编码的高位部分积的数量可以等于N/2。
本实施例提供的一种数据处理方法,根据所述低位编码信号和待处理的所述数据,得到目标编码的低位部分积,根据所述高位编码信号和待处理的所述数据,得到目标编码的高位部分积,对目标编码的所述低位部分积以及所述高位部分积进行累加处理,得到运算结果,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
在其中一个实施例中,如图8所示,上述S1031中根据所述低位编码信号和待处理的所述数据,得到目标编码的低位部分积的步骤,包括:
S1031a、根据所述低位编码信号和待处理的所述数据,得到符号位扩展后的低位部分积。
具体的,乘法器根据接收到的功能选择模式信号,低位编码信号和待处理的数据,得到乘法器当前所处理不同位宽数据对应的原始低位部分积,并对原始低位部分积进行符号位扩展处理得到符号位扩展后的低位部分积。可选的,上述原始低位部分积可以为未进行符号位扩展的低位部分积,还可以理解为低位数据对应得到的未进行符号位扩展的部分积。可选的,符号位扩展后的低位部分积的位宽可以等于乘法器接收到的数据位宽M的2倍,原始低位部分积的位宽可以等于M+1。可选的,符号位扩展后的低位部分积可以包括原始低位部分积中的M+1位数值和M-1位原始低位部分积中的符号位数值。
需要说明的是,若低位部分积获取单元接收到一个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。
S1031b、通过低位选择器组单元选通目标编码的所述低位部分积中的数值。
具体的,低位选择器组单元中的每一个低位选择器可以根据接收到的不同功能选择信号,选通目标编码的低位部分积中的对应位数值。
S1031c、根据目标编码的所述低位部分积中的数值以及符号位扩展后的所述低位部分积中的数值,得到目标编码的低位部分积。
具体的,低位部分积获取单元可以根据低位选择器组单元选通后得到的,目标编码的所述低位部分积中的数值以及乘法器当前可处理对应位宽数据得到的符号位扩展后的低位部分积中的部分位数值,得到乘法器当前所处理对应位宽数据对应的目标编码的低位部分积。
本实施例提供的一种数据处理方法,根据所述低位编码信号和待处理的所述数据,得到符号位扩展后的低位部分积,通过低位选择器组单元选通目标编码的所述低位部分积中的数值,根据目标编码的所述低位部分积中的数值以及符号位扩展后的所述低位部分积中的数值,得到目标编码的低位部分积,并对目标编码的所述低位部分积以及目标编码的高位部分积进行累加处理,得到运算结果,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
在其中一个实施例中,继续参见图8,上述S1032中根据所述高位编码信号和待处理的所述数据,得到目标编码的高位部分积的步骤,包括:
S1032a、根据所述高位编码信号和待处理的所述数据,得到符号位扩展后的高位部分积。
具体的,乘法器根据接收到的功能选择模式信号,高位编码信号和待处理的数据,得到乘法器当前所处理不同位宽数据对应的原始高位部分积,并对原始高位部分积进行符号位扩展处理得到符号位扩展后的高位部分积。可选的,上述原始高位部分积可以为未进行符号位扩展的高位部分积,还可以理解为高位数据对应得到的未进行符号位扩展的部分积。可选的,符号位扩展后的高位部分积的位宽可以等于乘法器接收到的数据位宽M的2倍,原始高位部分积的位宽可以等于M+1。可选的,符号位扩展后的高位部分积可以包括原始高位部分积中的M+1位数值和M-1位原始高位部分积中的符号位数值。
S1032b、通过高位选择器组单元选通目标编码的所述高位部分积中的数值。
具体的,高位选择器组单元中的每一个高位选择器可以根据接收到的不同功能选择信号,选通目标编码的高位部分积中的对应位数值。
S1032c、根据目标编码的所述高位部分积中的数值以及符号位扩展后的所述高位部分积中的数值,得到目标编码的高位部分积。
具体的,高位部分积获取单元可以根据高位选择器组单元选通后得到的,目标编码的所述高位部分积中的数值以及乘法器当前可处理对应位宽数据得到的符号位扩展后的高位部分积中的部分位数值,得到乘法器当前所处理对应位宽数据对应的目标编码的高位部分积。
本实施例提供的一种数据处理方法,根据所述高位编码信号和待处理的所述数据,得到符号位扩展后的高位部分积,通过高位选择器组单元选通目标编码的所述高位部分积中的数值,根据目标编码的所述高位部分积中的数值以及符号位扩展后的所述高位部分积中的数值,得到目标编码的高位部分积,并对目标编码的所述高位部分积以及目标编码的低位部分积进行累加处理,得到运算结果,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
继续参见图7为另一实施例提供的数据处理方法,上述S104中通过改进华莱士树组电路对目标编码的所述部分积中每一列数值进行累加处理,得到运算结果的步骤,包括:
S1041、通过改进华莱士树组电路对目标编码的所述低位部分积和所述高位部分积,进行累加处理得到第一运算结果。
具体的,乘法器可以通过改进华莱士树组电路对目标编码的所有低位部分积和所有高位部分积,按照分布规律对每一列数值进行累加处理,得到第一运算结果。可选的,第一运算结果可以包括和位输出信号Sum与进位输出信号Carry,其中,和位输出信号Sum与进位输出信号Carry的位宽可以相同。
S1042、通过累加电路对所述第一运算结果进行累加处理,得到运算结果。
具体的,乘法器可以通过累加电路中的加法器对改进华莱士树组电路输出的进位输出信号Carry与和位输出信号Sum进行加法运算,输出加法运算结果。可选的,改进华莱士树组电路中每一个改进华莱士树子电路可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=0,…,N-1,i为每一个华莱士树单元的对应编号,编号从0开始)。可选的,加法器接收到的Carry={[Carry0:CarryN-2],0},也就是说,加法器接收到的进位输出信号Carry的位宽为N,进位输出信号Carry中前N-1位数值对应改进华莱士树组电路中前N-1个华莱士树单元的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器接收到的和位输出信号Sum的位宽为N,和位输出信号Sum中的数值可以等于改进华莱士树组电路中每一个改进华莱士树子电路的和位输出信号。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,则加法器可以为16位超前进位加法器,如图6所示,改进华莱士树组电路可以输出16个改进华莱士树子电路的和位输出信号Sum和进位输出信号Carry,但是16位超前进位加法器接收到的和位输出信号可以为改进华莱士树组电路输出的完整和位信号Sum,接收到的进位输出信号可以为改进华莱士树组电路中,除去最后一个改进华莱士树子电路输出的进位输出信号的所有进位输出信号与0结合后的进位信号Carry。
本实施例提供的一种数据处理方法,通过改进华莱士树组电路对目标编码的所述低位部分积和所述高位部分积,进行累加处理得到第一运算结果,通过累加电路对所述第一运算结果进行累加处理,得到运算结果,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积;另外,该方法可以通过改进华莱士树子电路中的模式选择单元选通目标编码的部分积中的数值,使得改进华莱士树子电路中的一个全加器接收到的信号均为低电平信号,保证关闭该全加器,从而达到降低功耗的目的。
如图9所示为另一实施例提供的乘法运算方法,上述S1041中通过累加电路对所述第一运算结果进行累加处理,得到运算结果,包括:
S1041a、通过低位改进华莱士树子电路对目标编码的所述部分积中的列数值进行累加处理,得到累加运算结果。
具体的,按照目标编码的所有低位部分积和所有高位部分积的分布规律可知,目标编码的所有部分积对应数值的总列数为2N(N为乘法器当前所处理数据的位宽),从最低位数值开始每一列数值对应的编号可以为0,…,2N-1,其中,编号0至N-1可以称低N列数值。可选的,累加运算结果可以为低位改进华莱士树子电路中的最后一个改进华莱士树子电路输出的进位输出信号Cout。
需要说明的是,低位改进华莱士树子电路中包含的N个改进华莱士树子电路可以按照编号顺序对低N列数值进行累加运算,得到累加运算结果。可选的,累加运算结果可以包括每一个改进华莱士树子电路的进位输出信号Carry,Sum,以及低位改进华莱士树子电路中的最后一个改进华莱士树子电路的输出信号Cout。
S1041b、通过选择器对所述累加运算结果进行选通,得到进位选通信号。
具体的,改进华莱士树组电路中的选择器可以根据接收到的功能选择模式信号,选通低位改进华莱士树子电路中的最后一个改进华莱士树子电路的输出信号Cout或0,得到进位选通信号。
S1041c、通过高位改进华莱士树子电路根据所述进位选通信号以及目标编码的所述部分积中的列数值进行累加处理,得到运算结果。
具体的,按照目标编码的所有部分积的分布规律可知,目标编码的所有部分积对应数值的总列数为2N(N为乘法器当前所处理数据的位宽),从最低位数值开始每一列数值对应的编号可以为0,…,2N-1,其中,编号N至2N-1可以称高N列数值。
需要说明的是,高位改进华莱士树子电路中包含的N个改进华莱士树子电路可以按照编号顺序对高N列数值进行累加运算,输出第二运算结果。其中,高位华莱士树组电路中的第一个华莱士树单元接收到的进位输入信号可以为选择器输出的进位选通信号。
本实施例提供的一种数据处理方法,通过低位改进华莱士树子电路对目标编码的所述部分积中的列数值进行累加处理,得到累加运算结果,通过选择器对所述累加运算结果进行选通,得到进位选通信号,高位改进华莱士树子电路根据所述进位选通信号以及目标编码的所述部分积中的列数值进行累加处理,得到运算结果,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的乘法器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上乘法器时,乘法器间可以通过特定的结构进行链接并传输数据,譬如,通过快速外部设备互连总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过快速外部设备互连接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图10为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图11所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图12所示,图12提供了一种板卡,上述板卡除了包括上述芯片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 (26)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811450574.3A CN111258633B (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
CN201811450574.3A CN111258633B (zh) 2018-11-30 2018-11-30 乘法器、数据处理方法、芯片及电子设备

Publications (2)

Publication Number Publication Date
CN111258633A CN111258633A (zh) 2020-06-09
CN111258633B true CN111258633B (zh) 2022-08-09

Family

ID=70946474

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN111258633B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113746471B (zh) * 2021-09-10 2024-05-07 中科寒武纪科技股份有限公司 运算电路、芯片和板卡
CN114647399B (zh) * 2022-05-19 2022-08-16 南京航空航天大学 一种低能耗高精度近似并行定宽乘法累加装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6175927A (ja) * 1984-09-21 1986-04-18 Fujitsu Ltd 符号付nビツト2進数乗算方式
CN1056939A (zh) * 1990-05-31 1991-12-11 三星电子株式会社 使用跳跃阵列和变形华莱士树的并行乘法器
CN1118472A (zh) * 1994-05-26 1996-03-13 摩托罗拉公司 组合的乘法器/移位器及其方法
CN101126974A (zh) * 2007-09-29 2008-02-20 北京时代民芯科技有限公司 一种改进的Booth 2乘法器结构
CN101384991A (zh) * 2006-02-15 2009-03-11 松下电器产业株式会社 乘法器、数字滤波器、信号处理装置、合成装置、合成程序和合成程序记录介质
CN101625634A (zh) * 2008-07-09 2010-01-13 中国科学院半导体研究所 一种可重构的乘法器
CN101986260A (zh) * 2010-11-25 2011-03-16 中国人民解放军国防科学技术大学 乘加方法及乘加器
CN102591615A (zh) * 2012-01-16 2012-07-18 中国人民解放军国防科学技术大学 结构化混合位宽乘法运算方法及装置
KR20130115038A (ko) * 2012-04-10 2013-10-21 한국전자통신연구원 누산기 및 이를 포함하는 데이터 가중 평균화 장치
CN105739945A (zh) * 2016-01-22 2016-07-06 南京航空航天大学 一种基于改进部分积阵列的修正Booth编码乘法器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3710193B2 (ja) * 1996-03-11 2005-10-26 沖電気工業株式会社 積和演算回路
US7315879B2 (en) * 2001-02-16 2008-01-01 Texas Instruments Incorporated Multiply-accumulate modules and parallel multipliers and methods of designing multiply-accumulate modules and parallel multipliers
US8935512B2 (en) * 2006-11-21 2015-01-13 Nec Corporation Instruction operation code generation system
GB2444744B (en) * 2006-12-12 2011-05-25 Advanced Risc Mach Ltd Apparatus and method for performing re-arrangement operations on data
CN108255463B (zh) * 2017-12-28 2020-12-22 深圳市紫光同创电子有限公司 一种数字逻辑运算方法、电路和fpga芯片

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6175927A (ja) * 1984-09-21 1986-04-18 Fujitsu Ltd 符号付nビツト2進数乗算方式
CN1056939A (zh) * 1990-05-31 1991-12-11 三星电子株式会社 使用跳跃阵列和变形华莱士树的并行乘法器
CN1118472A (zh) * 1994-05-26 1996-03-13 摩托罗拉公司 组合的乘法器/移位器及其方法
CN101384991A (zh) * 2006-02-15 2009-03-11 松下电器产业株式会社 乘法器、数字滤波器、信号处理装置、合成装置、合成程序和合成程序记录介质
CN101126974A (zh) * 2007-09-29 2008-02-20 北京时代民芯科技有限公司 一种改进的Booth 2乘法器结构
CN101625634A (zh) * 2008-07-09 2010-01-13 中国科学院半导体研究所 一种可重构的乘法器
CN101986260A (zh) * 2010-11-25 2011-03-16 中国人民解放军国防科学技术大学 乘加方法及乘加器
CN102591615A (zh) * 2012-01-16 2012-07-18 中国人民解放军国防科学技术大学 结构化混合位宽乘法运算方法及装置
KR20130115038A (ko) * 2012-04-10 2013-10-21 한국전자통신연구원 누산기 및 이를 포함하는 데이터 가중 평균화 장치
CN105739945A (zh) * 2016-01-22 2016-07-06 南京航空航天大学 一种基于改进部分积阵列的修正Booth编码乘法器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Performance analysis of Wallace and radix-4 Booth-Wallace multipliers;Shahzad Asif 等;《 2015 Electronic System Level Synthesis Conference (ESLsyn)》;20151228;第1-6页 *
基于修正BOOTH编码的32×32位乘法器;崔晓平;《电子测量技术》;20070131;第30卷(第01期);第82-85页 *
改进型booth华莱士树的低功耗、高速并行乘法器的设计;王定等;《电子器件》;20070228;第30卷(第01期);第252-255页 *

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110413254B (zh) 数据处理器、方法、芯片及电子设备
CN110515587B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111381808B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110673823B (zh) 乘法器、数据处理方法及芯片
CN110554854A (zh) 数据处理器、方法、芯片及电子设备
CN111258633B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258544B (zh) 乘法器、数据处理方法、芯片及电子设备
CN113031912B (zh) 乘法器、数据处理方法、装置及芯片
CN111258541B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258545B (zh) 乘法器、数据处理方法、芯片及电子设备
CN210109789U (zh) 数据处理器
CN209879493U (zh) 乘法器
CN210006029U (zh) 数据处理器
CN210006031U (zh) 乘法器
CN111258542B (zh) 乘法器、数据处理方法、芯片及电子设备
CN113031915B (zh) 乘法器、数据处理方法、装置及芯片
CN210006030U (zh) 数据处理器
CN209895329U (zh) 乘法器
CN110688087A (zh) 数据处理器、方法、芯片及电子设备
CN110647307A (zh) 数据处理器、方法、芯片及电子设备
CN113031916A (zh) 乘法器、数据处理方法、装置及芯片
CN113033799A (zh) 数据处理器、方法、装置及芯片
CN113031911A (zh) 乘法器、数据处理方法、装置及芯片
CN210006084U (zh) 乘法器
CN111258546B (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