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

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

Info

Publication number
CN110515587A
CN110515587A CN201910817971.8A CN201910817971A CN110515587A CN 110515587 A CN110515587 A CN 110515587A CN 201910817971 A CN201910817971 A CN 201910817971A CN 110515587 A CN110515587 A CN 110515587A
Authority
CN
China
Prior art keywords
product
data
target code
circuit
multiplier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910817971.8A
Other languages
English (en)
Other versions
CN110515587B (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 CN201910817971.8A priority Critical patent/CN110515587B/zh
Publication of CN110515587A publication Critical patent/CN110515587A/zh
Application granted granted Critical
Publication of CN110515587B publication Critical patent/CN110515587B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5318Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
    • 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

Landscapes

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

Abstract

本申请提供一种乘法器、数据处理方法、芯片及电子设备,所述乘法器包括:改进正则有符号数编码电路、改进华莱士树组电路以及累加电路,所述改进正则有符号数编码电路的输出端与所述改进华莱士树组电路的输入端连接,所述改进华莱士树组电路的输出端与所述累加电路的输入端连接,该乘法器能够通过正则有符号数编码电路对接收到的数据进行正则有符号数编码,得到的有效部分积的数目较少,从而降低了乘法器实现乘法运算的复杂性。

Description

乘法器、数据处理方法、芯片及电子设备
技术领域
本申请涉及计算机技术领域,特别是涉及一种乘法器、数据处理方法、芯片及电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片成为了当前科技产业和社会关注的热点。乘法器电路作为AI芯片的主要电路之一,其性能尤为重要。
目前,乘法器是对乘数中的每三位数值作为一个编码,并根据被乘数得到部分积,并用华莱士树对所有部分积进行压缩处理得到乘法运算结果。但是,传统技术中,编码中非零位数值的数目较多,产生的对应部分积的数目较多,导致乘法器实现乘法运算的复杂性较高。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减少乘法运算过程中获取的有效部分积数目,以降低乘法器乘法运算复杂性的乘法器、数据处理方法、芯片及电子设备。
本申请实施例提供一种乘法器,所述乘法器包括:改进正则有符号数编码电路、改进华莱士树组电路以及累加电路,所述改进华莱士树组电路包括4-2压缩器,所述4-2压缩器包括选择电路以及全加器,所述改进正则有符号数编码电路的输出端与所述改进华莱士树组电路的输入端连接,所述改进华莱士树组电路的输出端与所述累加电路的输入端连接;
其中,所述改进正则有符号数编码电路用于对接收到的数据进行正则有符号数编码处理,得到符号位扩展后的部分积,并根据所述符号位扩展后的部分积得到目标编码的部分积,所述改进华莱士树组电路用于对所述目标编码的部分积进行累加处理得到累加运算结果,所述累加电路用于对所述累加运算结果进行累加处理。
在其中一个实施例中,所述改进正则有符号数编码电路中包括第一输入端,用于接收功能选择模式信号;所述改进华莱士树组电路中包括第二输入端,用于接收所述功能选择模式信号;所述功能选择模式信号用于确定所述乘法器可处理的数据位宽。
在其中一个实施例中,所述改进正则有符号数编码电路包括:改进正则有符号数编码单元、低位部分积获取单元、低位选择器组单元、高位部分积获取单元以及高位选择器组单元,所述改进正则有符号数编码单元的第一输出端与所述低位部分积获取单元的第一输入端连接,所述低位选择器组单元的输出端与所述低位部分积获取单元的第二输入端连接,所述改进正则有符号数编码单元的第二输出端与所述高位部分积获取单元的第一输入端连接,所述高位选择器组单元的输出端与所述高位部分积获取单元的第二输入端连接;
其中,所述改进正则有符号数编码单元用于对接收到的第一数据进行正则有符号数编码处理,以及根据接收到的所述功能选择模式信号,确定所述乘法器可处理数据的位宽,并根据所述乘法器可处理数据的位宽得到目标编码,所述低位部分积获取单元用于根据接收到的所述目标编码中的低位目标编码以及第二数据,得到符号位扩展后的低位部分积,并根据所述符号位扩展后的低位部分积得到目标编码的低位部分积,所述低位选择器组单元用于选通所述符号位扩展后的低位部分积中的数值,所述高位部分积获取单元用于根据接收到的所述目标编码中的高位目标编码以及所述第二数据,得到符号位扩展后的高位部分积,并根据所述符号位扩展后的高位部分积得到目标编码的高位部分积,所述高位选择器组单元用于选通所述符号位扩展后的高位部分积中的数值。
在其中一个实施例中,所述改进正则有符号数编码单元包括:第一数据输入端口、第一模式选择信号输入端口、低位目标编码输出端口以及高位目标编码输出端口;所述第一数据输入端口用于接收所述第一数据,所述第一模式选择信号输入端口用于接收所述功能选择模式信号,所述低位目标编码输出端口用于输出对所述第一数据进行正则有符号数编码处理后得到的所述低位目标编码,所述高位目标编码输出端口用于输出对所述第一数据进行正则有符号数编码处理后得到的所述高位目标编码。
在其中一个实施例中,所述低位部分积获取单元包括:低位目标编码输入端口、第一选通数值输入端口、第二模式选择信号输入端口、第二数据输入端口以及低位部分积输出端口;所述低位目标编码输入端口用于接收所述低位目标编码,所述第一选通数值输入端口用于接收所述低位选择器组单元选通后,输出的所述低位部分积中包含的数值,所述第二模式选择信号输入端口用于接收所述功能选择模式信号,所述第二数据输入端口用于接收所述第二数据,所述低位部分积输出端口用于输出所述目标编码的低位部分积。
在其中一个实施例中,所述低位选择器组单元包括:低位选择器,所述低位选择器用于对所述符号位扩展后的低位部分积中包含的数值进行选通。
在其中一个实施例中,所述高位部分积获取单元包括:高位目标编码输入端口、第二选通数值输入端口、第三模式选择信号输入端口、第二数据输入端口以及高位部分积输出端口;所述高位目标编码输入端口用于接收所述高位目标编码,所述第二选通数值输入端口用于接收所述高位选择器组单元选通后,输出的所述高位部分积中包含的数值,所述第三模式选择信号输入端口用于接收所述功能选择模式信号,所述第二数据输入端口用于接收所述第二数据,所述高位部分积输出端口用于输出所述目标编码的高位部分积。
在其中一个实施例中,所述所述高位选择器组单元包括:高位选择器,所述高位选择器用于对所述符号位扩展后的高位部分积中包含的数值进行选通。
在其中一个实施例中,所述改进华莱士树组电路包括:改进华莱士树子电路;所述改进华莱士树子电路用于对所述目标编码的部分积中的每一列数值进行累加处理得到累加运算结果。
在其中一个实施例中,所述改进华莱士树组电路包括:低位改进华莱士树子电路、选择器以及高位改进华莱士树子电路,所述低位改进华莱士树子电路的输出端与所述选择器的输入端连接,所述选择器的输出端与所述高位改进华莱士树子电路的输入端连接;其中,多个所述低位改进华莱士树子电路用于对所有目标编码的部分积中的每一列数值进行累加处理,所述选择器用于选通所述高位改进华莱士树子电路接收的进位输入信号,多个所述高位改进华莱士树子电路用于对所有目标编码的部分积中的每一列数值进行累加处理。
在其中一个实施例中,所述低位改进华莱士树子电路和所述高位改进华莱士树子电路均包括所述4-2压缩器以及模式选择单元,所述模式选择单元的输出端与所述4-2压缩器的输入端连接;所述4-2压缩器用于对所有目标编码的部分积中每一列的数值进行累加处理,所述模式选择单元用于选通所述4-2压缩器接收到的所述目标编码的部分积中的数值;其中,所述模式选择单元中包括第一输入端,用于接收所述功能选择模式信号。
在其中一个实施例中,所述累加电路包括:加法器,所述加法器用于对所述累加运算结果进行累加处理。
在其中一个实施例中,所述加法器包括:进位信号输入端口、和位信号输入端口以及运算结果输出端口;所述进位信号输入端口用于接收进位信号,和位信号输入端口用于接收和位信号,所述运算结果输出端口用于输出所述进位信号与所述和位信号进行累加处理得到的目标运算结果。
本实施例提供的乘法器,该乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积;另外,乘法器通过改进华莱士树组电路对目标编码的部分积进行累加运算,还可以有效降低乘法器功耗。本实施例提供的一种乘法器,通过正则有符号数编码电路对接收到的数据进行正则有符号数编码处理得到目标编码的部分积,改进华莱士树组电路可以对目标编码的部分积进行累加处理,并通过累加电路对畸形华莱士树组电路得到的累加结果进行再次累加处理,得到乘法运算的目标运算结果,该乘法器能够通过正则有符号数编码电路对接收到的数据进行正则有符号数编码,得到的有效部分积的数目较少,从而降低了乘法器实现乘法运算的复杂性。
本申请实施例提供一种数据处理方法,所述方法包括:
接收待处理数据以及功能选择模式信号,其中,所述功能选择模式信号用于指示当前可处理数据的位宽;
对所述待处理数据进行正则有符号数编码处理,得到中间编码;
根据所述功能选择模式信号对所述中间编码进行补数处理,得到目标编码;
对所述待处理数据与所述目标编码进行转换处理,得到目标编码的部分积;
通过改进华莱士树组电路对所述目标编码的部分积中列数值进行累加处理,得到目标运算结果。
在其中一个实施例中,所述对所述待处理数据进行正则有符号数编码处理,得到中间编码,包括:将所述待处理数据中连续的l位数值1转换为(l+1)位最高位数值为1,最低位数值为-1,其余位为数值0后,得到所述中间编码,其中,l大于等于2。
在其中一个实施例中,所述根据所述功能选择模式信号对所述中间编码进行补数处理,得到目标编码,包括:
根据所述功能选择模式信号,判断是否需要对所述中间编码进行补数处理;
若需要进行补数处理,则对所述中间编码的最高位数值的高一位处补数值0,得到所述目标编码。
在其中一个实施例中,所述方法还包括:若不需要进行补数处理,则将所述中间编码作为所述目标编码。
在其中一个实施例中,所述对所述待处理数据与所述目标编码进行转换处理,得到目标编码的部分积,包括:
通过所述目标编码中的低位目标编码以及所述待处理数据进行转换处理,得到目标编码的低位部分积;
通过所述目标编码中的高位目标编码以及所述待处理数据进行转换处理,得到目标编码的高位部分积。
在其中一个实施例中,所述通过所述目标编码中的低位目标编码以及所述待处理数据进行转换处理,得到目标编码的低位部分积,包括:
根据所述低位目标编码以及所述待处理数据,得到符号位扩展后的部分积;
通过低位选择器组单元选通符号位扩展后的低位部分积中的数值;
通过选通后的所述符号位扩展后的低位部分积中的数值以及所述符号位扩展后的部分积中的数值进行转换处理,得到所述符号位扩展后的低位部分积;
根据所述符号位扩展后的低位部分积得到所述目标编码的低位部分积。
在其中一个实施例中,所述通过所述目标编码中的高位目标编码以及所述待处理数据进行转换处理,得到目标编码的高位部分积,包括:
根据所述高位目标编码以及所述待处理数据,得到符号位扩展后的部分积;
通过高位选择器组单元选通符号位扩展后的高位部分积中的数值;
根据选通后的所述符号位扩展后的高位部分积中的数值以及所述符号位扩展后的部分积中的数值,得到所述符号位扩展后的高位部分积;
根据所述符号位扩展后的高位部分积得到所述目标编码的高位部分积。
在其中一个实施例中,所述通过改进华莱士树组电路对所述目标编码的部分积中列数值进行累加处理,得到目标运算结果,包括:
通过低位改进华莱士树子电路对所有目标编码的部分积中的列数值进行累加处理,得到中间运算结果;
通过选择器对所述中间运算结果进行选通,得到进位选通信号;
通过高位改进华莱士树子电路根据所述进位选通信号以及所述目标编码的部分积中的列数值进行累加处理,得到所述目标运算结果。
本实施例提供的一种数据处理方法,接收待处理数据以及功能选择模式信号,对所述待处理数据进行正则有符号数编码处理,得到中间编码,根据所述功能选择模式信号对所述中间编码进行补数处理,得到目标编码,对所述待处理数据与所述目标编码进行转换处理,得到目标编码的部分积,通过改进华莱士树组电路对所述目标编码的部分积中列数值进行累加处理,得到目标运算结果,该方法能够对待处理数据进行正则有符号数编码处理,并根据接收到的功能选择模式信号得到目标编码,进行根据目标编码得到目标编码的部分积,降低了乘法运算中目标编码的有效部分积的数目,从而降低乘法运算的复杂性。
本申请实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个所述的乘法器;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,多个所述计算装置间通过预设特定结构进行连接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
本申请实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
本申请实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的乘法器、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本申请实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本申请实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本申请实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本申请实施例提供的一种芯片,包括至少一个如上述任一项所述的乘法器。
本申请实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为为一实施例提供的一种乘法器的结构示意图;
图2为一实施例提供的乘法器的具体结构电路图;
图3a为一实施例提供的两组8位数据乘法运算得到的目标编码的部分积的分布规律示意图;
图3b为一实施例提供的16位数据乘法运算得到的目标编码的部分积的分布规律示意图;
图4为另一实施例提供的低位或高位改进华莱士树子电路的电路结构示意图;
图5为另一实施例提供的8位数据乘法运算时改进华莱士树子电路的连接结构示意图;
图6为一实施例提供的一种数据处理方法流程示意图;
图7为一实施例提供的一种组合处理装置的结构图;
图8为一实施例提供的另一种组合处理装置的结构图;
图9为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的乘法器可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中进行乘法运算处理,其具体结构示意图如图1所示。
如图1所示为一个实施例提供的一种乘法器的结构图。如图1所示,该乘法器包括:改进正则有符号数编码电路11、改进华莱士树组电路12以及累加电路13;所述改进华莱士树组电路12包括4-2压缩器,所述4-2压缩器包括选择电路以及全加器,所述改进正则有符号数编码电路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倍,高8位和低8位的两个数据分别得到的符号位扩展后的部分积的数目均可以等于乘法器当前所处理数据的位宽加1;若该乘法器当前可处理16位数据乘法运算,则乘法器中的改进正则有符号数编码电路11需要对整体16位数据进行运算,此时,得到的符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽的2倍,得到的符号位扩展后的部分积的数目可以等于乘法器当前所处理数据的位宽加2。
需要说明的是,上述正则有符号数编码处理的方法可以通过以下方式表征:对于N位乘数而言,从低位数值向高位数值处理,若存在连续l(l>=2)位数值1时,则可以将连续n位数值1转换处理为数据“1(0)l-1(-1)”,并且将其余对应(N-l)位数值与转换后的(l+1)位数值进行结合得到一个新的数据;然后将该新数据作为下一级转换处理的初始数据,直到转换处理后得到的新数据中不存在连续l(l>=2)位数值1为止;其中,对N位乘数进行正则有符号数编码处理,得到的目标编码的位宽可以等于(N+1)。进一步地,在正则有符号数编码处理时,数据11可以转换为(100-001),即数据11可以等价转换为10(-1);数据111可以转换为(1000-0001),即数据111可以等价转换为100(-1);依次类推,其它连续l(l>=2)位数值1转换处理的方式也类似。
例如,改进正则有符号数编码电路11接收到的乘数为“001010101101110”,对该乘数进行第一级转换处理后得到的第一新数据为“0010101011100(-1)0”,继续对第一新数据进行第二级转换处理后得到的第二新数据为“0010101100(-1)00(-1)0”,继续对第二新数据进行第三级转换处理后得到的第三新数据为“0010110(-1)00(-1)00(-1)0”,继续对第三新数据进行第四级转换处理后得到的第四新数据为“00110(-1)0(-1)00(-1)00(-1)0”,继续对第四新数据进行第五级转换处理后得到的第五新数据为“010(-1)0(-1)0(-1)00(-1)00(-1)0”,第五新数据中不存在连续的l(l>=2)位数值1,此时,将第五新数据可以称为初始编码,并对初始编码进行一次补位处理后,表征正则有符号数编码处理完成得到中间编码,其中,初始编码的位宽可以等于乘数的位宽。可选的,改进正则有符号数编码电路11对乘数进行正则有符号数编码处理后,得到的新数据(即初始编码),若新数据中的最高位数值和次高位数值为“10”或“01”,则改进正则有符号数编码电路11可以对该新数据的最高位数值的高一位处补一位数值0,得到对应中间编码的高三位数值分别为“010”或“001”。可选的,上述中间编码的位宽可以等于乘法器当前所处理数据的位宽加1。
另外,若乘法器接收到的数据位宽为2N,且当前可处理N位数据运算,则乘法器中的改进正则有符号数编码电路11,可以将2N位数据拆分成两组N位数据分别进行数据运算,此时,将得到的两组(N+1)位中间编码进行结合后可以作为目标编码;若乘法器当前可处理2N位数据运算,则乘法器中的改进正则有符号数编码电路11,可以对获取的(2N+1)位中间编码的最高位数值的高一位处补一位数值0(即补数处理)后,将补数处理后的(2N+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位数据进行处理,对此本实施例可以灵活设置。
还可以理解的是,改进正则有符号数编码电路11可以得到的符号位扩展后的部分积的位宽可以等于乘法器当前处理的数据位宽M的2倍,其中,符号位扩展后的部分积的高M位数值可以相等,低M位数值可以等于通过目标编码以及被乘数得到的原始部分积中的数值。若目标编码以及M位被乘数可以得到M位原始部分积,则原始部分积的最高位数值可以等于符号位扩展后的部分积的高M位数值,原始部分积的M位数值可以等于符号位扩展后的部分积的低M位数值。可选的,上述目标编码中可以包括三种数值,分别为-1、0和1,当数值为-1时,则对应的原始部分积可以为-X,当数值为0时,则对应的原始部分积可以为0,当数值为1时,则对应的原始部分积可以为X;其中,X可以表示改进正则有符号数编码电路11接收到的被乘数,也就是,目标编码中的每个数值均可以得到一个对应的原始部分积。在本实施例中,改进华莱士树组电路12可以通过4-2压缩器组成。可选的,1个4-2压缩器可以包括多个全加器以及选择电路,在一定条件下,4-2压缩器中的选择电路可以控制全加器为关闭状态,以提高改进华莱士树子电路的效率,减少时延。可选的,选择电路可以为多个选择器构成的电路,该选择器可以为二路选择器。
本实施例提供的乘法器,乘法器通过改进正则有符号数编码电路对接收到的数据进行正则有符号数编码处理得到符号位扩展后的部分积,并根据符号位扩展后的部分积得到目标编码的部分积,并通过改进华莱士树组电路对目标编码的部分积进行累加处理,得到目标运算结果,该乘法器能够采用正则有符号数编码电路对接收到的数据进行正则有符号数编码处理,以降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性,提高了乘法运算的运算效率,有效降低了乘法器的功耗;同时,上述乘法器能够对多种不同位宽的数据进行乘法运算,有效降低乘法器功耗,并且有效减少了乘法器占用AI芯片的面积。
图2为另一实施例提供的乘法器的具体结构示意图,其中,乘法器包括所述改进正则有符号数编码电路11,该改进正则有符号数编码电路11包括:所述改进正则有符号数编码电路11包括:改进正则有符号数编码单元111、低位部分积获取单元112、低位选择器组单元113、高位部分积获取单元114以及高位选择器组单元115,所述改进正则有符号数编码单元111的第一输出端与所述低位部分积获取单元112的第一输入端连接,所述低位选择器组单元113的输出端与所述低位部分积获取单元112的第二输入端连接,所述改进正则有符号数编码单元111的第二输出端与所述高位部分积获取单元114的第一输入端连接,所述高位选择器组单元115的输出端与所述高位部分积获取单元114的第二输入端连接。
其中,所述改进正则有符号数编码单元111用于对接收到的第一数据进行正则有符号数编码处理,根据接收到的所述功能选择模式信号确定所述乘法器可处理数据的位宽,并根据所述乘法器可处理数据的位宽得到目标编码,所述低位部分积获取单元112用于根据接收到的所述目标编码中的低位目标编码以及第二数据,得到符号位扩展后的低位部分积,并根据所述符号位扩展后的低位部分积得到目标编码的低位部分积,所述低位选择器组单元113用于选通所述符号位扩展后的低位部分积中的数值,所述高位部分积获取单元114用于根据接收到的所述目标编码中的高位目标编码以及所述第二数据,得到符号位扩展后的高位部分积,并根据所述符号位扩展后的高位部分积得到目标编码的高位部分积,所述高位选择器组单元115用于选通所述符号位扩展后的高位部分积中的数值。
具体的,上述改进正则有符号数编码单元111可以接收第一数据,并对该第一数据进行正则有符号数编码处理,得到目标编码,该第一数据可以为乘法运算中的乘数。可选的,上述低位部分积获取单元112可以根据接收到的第二数据,以及改进正则有符号数编码单元111得到的目标编码,得到符号位扩展后的低位部分积;高位部分积获取单元114可以根据接收到的第二数据,以及改进正则有符号数编码单元111得到的目标编码,得到符号位扩展后的高位部分积。可选的,若乘法器当前可处理的数据位宽为N比特,乘法器中的改进正则有符号数编码单元111接收到的数据位宽为2N,则改进正则有符号数编码单元111可以自动将接收到2N位数据分为高N位数据以及低N位数据,分别对高N位数据和低N位数据进行正则有符号数编码处理,得到的高位目标编码的位宽等于N加1,得到的低位目标编码的位宽等于N加1;同时,高位目标编码得到的对应符号位扩展后的高位部分积的数目可以等于(N+1);低位目标编码得到的对应符号位扩展后的低位部分积的数目可以等于(N+1);若乘法器当前可处理的数据位宽为2N,乘法器中的改进正则有符号数编码单元111接收到的数据位宽为2N,则改进正则有符号数编码单元111可以对接收到2N位数据进行正则有符号数编码处理,得到(2N+1)位的中间编码,并对中间编码进行补数处理,得到(2N+2)位数据,将这(2N+2)位的数据作为目标编码,其中,补数处理可以表征为对数据的最高位数值的高一位处补数值0;此时,目标编码的最高位数值为数值0,对应得到的符号位扩展后的部分积中包含的数值均为0;其中,(2N+2)位目标编码中高(N+1)位数据可以称为高位目标编码,低(N+1)位数据可以称为低位目标编码。
需要说明的是,上述低位选择器组单元113可以根据接收到的功能选择模式信号,选通符号位扩展后的低位部分积中的部分位数值,为N位乘法运算得到的符号位扩展后的部分积中的数值,还是2N位乘法运算得到的符号位扩展后的部分积中的数值;同理,高位选择器组单元115可以根据接收到的功能选择模式信号,选通符号位扩展后的高位部分积中的部分位数值,为N位乘法运算得到的符号位扩展后的部分积中的数值,还是2N位乘法运算得到的符号位扩展后的部分积中的数值。
可以理解的是,若乘法器接收到的数据位宽可以为2N比特,当前可处理N位数据乘法运算,则乘法器中的低位部分积获取单元112可以根据低位目标编码中的每一位数值,得到低N位数据对应的符号位扩展后的部分积;上述低位选择器组单元113可以选通符号位扩展后的低位部分积中的数值;然后将符号位扩展后的部分积与选通后获取的符号位扩展后的低位部分积中的数值进行结合,得到符号位扩展后的低位部分积。可选的,乘法器中的高位部分积获取单元114可以根据高位目标编码中的每一位数值,得到高N位数据对应的符号位扩展后的部分积;上述高位选择器组单元115可以选通符号位扩展后的高位部分积中的数值;然后将符号位扩展后的部分积与选通后获取的符号位扩展后的高位部分积中的数值进行结合,得到符号位扩展后的高位部分积。可选的,正则有符号数编码处理过程中,得到的低位目标编码的位宽可以等于得到的高位目标编码的位宽,还可以等于低N位数据对应的符号位扩展后的低位部分积的数目,或者高N位数据对应的符号位扩展后的高位部分积的数目。可选的,改进正则有符号数编码电路11中可以包含(N+1)个低位部分积获取单元112,还可以包含(N+1)个高位部分积获取单元114。可选的,上述每一个低位部分积获取单元112可以包含4N个数值生成子单元,每一个高位部分积获取单元114也可以包含4N个数值生成子单元,每一个数值生成子单元可以获取符号位扩展后的部分积中的一位数值。同时,低位部分积获取单元112可以根据得到的符号位扩展后的低位部分积确定目标编码的低位部分积,高位部分积获取单元114可以根据得到的符号位扩展后的高位部分积确定目标编码的高位部分积。
本实施例提供的一种乘法器,乘法器通过改进正则有符号数编码电路中的改进正则有符号数编码单元,对接收到的数据进行正则有符号数编码处理,得到低位目标编码及高位目标编码,并且低位部分积获取单元和高位部分积获取单元根据低位目标编码及高位目标编码,得到符号位扩展后的部分积,根据符号位扩展后的部分积得到目标编码的部分积,进而通过改进华莱士树组电路对目标编码的部分积进行累加处理,得到目标运算结果,该乘法器能够采用正则有符号数编码电路对接收到的数据进行正则有符号数编码处理,以降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性,提高了乘法运算的运算效率,有效降低了乘法器的功耗;同时,上述乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
在其中一个实施例中,其中,乘法器包括改进正则有符号数编码单元111,所述改进正则有符号数编码单元111包括:第一数据输入端口1111、第一模式选择信号输入端口1112、低位目标编码输出端口1113以及高位目标编码输出端口1114;所述第一数据输入端口1111用于接收所述第一数据,所述第一模式选择信号输入端口1112用于接收所述功能选择模式信号,所述低位目标编码输出端口1113用于输出对所述第一数据进行正则有符号数编码处理后得到的所述低位目标编码,所述高位目标编码输出端口1114用于输出对所述第一数据进行正则有符号数编码处理后得到的所述高位目标编码。
具体的,乘法运算过程中,乘法器中的改进正则有符号数编码单元111可以通过第一数据输入端口1111接收第一数据,通过第一模式选择信号输入端口1112接收功能选择模式信号,对第一数据进行正则有符号数编码处理,得到中间编码,并根据接收到的功能选择模式信号确定是否需要对中间编码进行补数处理,得到目标编码,进而通过低位目标编码输出端口1113输出目标编码中的低位目标编码,通过高位目标编码输出端口1114输出目标编码中的高位目标编码。需要说明的是,上述补数处理可以为对中间编码的最高位数值的高一位处补数值0。
本实施例提供的一种乘法器,该乘法器能够采用改进正则有符号数编码单元对接收到的数据进行正则有符号数编码处理,以降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性,提高了乘法运算的运算效率,有效降低了乘法器的功耗;同时,上述乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
作为其中一个实施例,所述低位部分积获取单元112包括:低位目标编码输入端口1121、第一选通数值输入端口1122、第二模式选择信号输入端口1123、第二数据输入端口1124以及低位部分积输出端口1125;所述低位目标编码输入端口1121用于接收所述低位目标编码,所述第一选通数值输入端口1122用于接收所述低位选择器组单元选通后,输出的所述低位部分积中包含的数值,所述第二模式选择信号输入端口1123用于接收所述功能选择模式信号,所述第二数据输入端口1124用于接收所述第二数据,所述低位部分积输出端口1125用于输出所述目标编码的低位部分积。
具体的,乘法器中的低位部分积获取单元112通过低位目标编码输入端口1121,可以接收改进正则有符号数编码单元111输出的低位目标编码,通过第二数据输入端口1124接收乘法运算中的被乘数,根据低位目标编码以及被乘数得到低位目标编码对应的符号位扩展后的低位部分积。可选的,若低位部分积获取单元112中的第二模式选择信号输入端口1123接收到的功能选择模式信号对应乘法器可处理N位数据运算,则符号位扩展后的低位部分积的位宽可以等于2N。示例性的,若乘法器处理N位数据运算,低位部分积获取单元112接收到一个N比特位宽的被乘数X,则低位部分积获取单元112可以根据被乘数X与低位目标编码中包含的三种数值-1,1和0得到对应的2N位符号位扩展后的部分积,该符号位扩展后的部分积的低N位数值可以等于低位目标编码直接得到的原始部分积中的所有数值,符号位扩展后的部分积的高N位数值可以等于该原始部分积中的符号位数值,该符号位数值也就是原始部分积的最高位数值。当低位目标编码中的数值为-1时,则原始部分积可以为-X,当低位目标编码中的数值1时,则原始部分积可以为X,当低位目标编码中的数值0时,则原始部分积可以为0。
需要说明的是,乘法器中的低位部分积获取单元112可以通过第一选通数值输入端口1122,接收低位选择器组单元113选通的不相同位宽数据运算时,得到的符号位扩展后的低位部分积中的对应位数值;然后将低位部分积获取单元112当前得到的低位目标编码对应的符号位扩展后的部分积,与选通后的对应位数值进行结合,得到符号位扩展后的低位部分积。
进一步地,乘法器中的低位部分积获取单元112可以根据所有符号位扩展后的低位部分积,得到对应的目标编码的低位部分积,并通过低位部分积输出端口1125将目标编码的低位部分积输出。可选的,所有目标编码的低位部分积的分布规律可以表征为,第一个目标编码的低位部分积可以等于第一个符号位扩展后的低位部分积,即低位目标编码中最低位数值对应的符号位扩展后的低位部分积,从第二个目标编码的低位部分积开始,每一个目标编码的低位部分积中的最高位数值,与第一个目标编码的低位部分积中的最高位数值位于同一列,每一个目标编码的低位部分积,可以等于对应符号位扩展后的低位部分积,且该符号位扩展后的低位部分积的最低位数值,与上一个目标编码的低位部分积的次高位数值位于同一列,也就是,对应符号位扩展后的低位部分积超出第一个目标编码的低位部分积中最高列数值的多个数值不参与后续运算。
本实施例提供的一种乘法器,乘法器通过低位部分积获取单元可以根据低位目标编码中包含的每一位数值以及第二数据,得到符号位扩展后的部分积,然后将符号位扩展后的部分积与低位选择器组单元选通的数值进行结合,得到符号位扩展后的低位部分积,根据符号位扩展后的低位部分积得到目标编码的低位部分积,并且根据高位部分积获取单元得到的符号位扩展后的高位部分积确定目标编码的高位部分积,进而通过改进华莱士树组电路对目标编码的低位部分积以及高位部分积进行累加处理,得到目标运算结果,该乘法器能够获取的有效部分积的数目较少,从而降低乘法器实现乘法运算的复杂性,提高了乘法运算的运算效率,有效降低了乘法器的功耗;同时,上述乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
在其中一个实施例中,其中,乘法器包括所述低位选择器组单元113,该低位选择器组单元113包括:低位选择器1131,多个所述低位选择器1131用于对所述符号位扩展后的低位部分积中包含的数值进行选通。
具体的,上述低位选择器组单元113中低位选择器1131的数目,可以等于3N*(N+1),2N可以表示乘法器当前所处理数据的位宽,该低位选择器组单元113中每一个低位选择器1131的内部电路结构可以相同。可选的,乘法运算时,改进正则有符号数编码单元111连接的对应(N+1)个低位部分积获取单元112中,每一个低位部分积获取单元112可以包含4N个数值生成子单元,其中2N个数值生成子单元可以连接2N个低位选择器1131,这2N个数值生成子单元均可以连接一个低位选择器1131。可选的,2N个低位选择器1131对应的2N个数值生成子单元,可以为目标编码的低位部分积中高2N位数值对应的数值生成子单元,同时,该2N个低位选择器1131的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口。可选的,若乘法器可以处理n种不同位宽的数据运算,并且乘法器接收到的数据的位宽为2N,则上述低位选择器1131的两个其它输入端口分别接收的信号可以为0和乘法器进行2N比特位宽的数据运算时,低位部分积获取单元112得到的对应符号位扩展后的部分积中的符号位数值。其中,(N+1)个低位部分积获取单元112可以连接(N+1)组2N个低位选择器1131,各组的2N个低位选择器1131接收到的符号位数值可以相同,也可以不相同,但是,同一组的2N个低位选择器1131接收到的符号位数值是相同的,并且该符号位数值可以根据每一组2N个低位选择器1131,对应连接的低位部分积获取单元112获取的符号位扩展后的部分积中的符号位数值得到。
另外,每一个低位部分积获取单元112包含的4N个数值生成子单元,其中对应N个数值生成子单元可以不连接低位选择器1131,此时,该N个数值生成子单元获取的数值可以为乘法器当前所处理不同位宽的数据,获取的低位目标编码中的数值得到的对应符号位扩展后的低位部分积中的对应位数值,也可以理解为,N个数值生成子单元获取的数值可以为对应符号位扩展后的低位部分积中,对应从最低位(即第1位)向最高位算起,第1位至第N位数值之间的所有数值。
需要说明的是,上述每一个低位部分积获取单元112包含的4N个数值生成子单元中,剩余的N个数值生成子单元也可以连接N个低位选择器1131,每一个数值生成子单元可以连接1个低位选择器1131;该N个低位选择器1131的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口;这两个其它输入端口可以接收的信号,分别为乘法器进行2N位数据运算,得到的对应符号位扩展后的部分积中的符号位数值,以及乘法器进行2N位数据运算,得到的对应符号位扩展后的低位部分积中对应位数值,也可以理解为,N个数值生成子单元获取的数值可以为对应符号位扩展后的低位部分积中,对应从最低位(即第1位)向最高位算起,第(N+1)位至第2N位数值之间的所有数值。其中,(N+1)个低位部分积获取单元112可以连接(N+1)组N个低位选择器1131,各组的N个低位选择器1131接收到的符号位数值可以相同,也可以不相同,但是,同一组的N个低位选择器1131接收到的符号位数值是相同的,并且该符号位数值可以根据每一组N个低位选择器1131,对应连接的低位部分积获取单元112获取的符号位扩展后的部分积中的符号位数值得到。
另外,各组的N个低位选择器1131接收到的符号位扩展后的部分积中对应位数值,可以根据该组低位选择器1131所连接的低位部分积获取单元112,获取的符号位扩展后的部分积中的对应位数值确定;并且每一组的N个低位选择器1131中,每一个低位选择器1131接收到的对应位数值可以相同,也可以不相同。其中,每一个低位部分积获取单元112中4N个数值生成子单元的位置分布规律,可以在上一个低位部分积获取单元112中4N个数值生成子单元位置的基础上,左移一个数值生成子单元。可选的,参与后续运算的所有目标编码的低位部分积中,只有第一个目标编码的低位部分积的位宽,可以等于第一个符号位扩展后的低位部分积的位宽4N;剩余的目标编码的低位部分积的位宽都会在上一个目标编码的低位部分积的基础上少一位,且最后一个目标编码的低位部分积的位宽可以等于(2N-1)。
本实施例提供的一种乘法器,乘法器中的低位选择器组单元可以选通低位部分积中的数值,得到目标编码的低位部分积,进而通过改进华莱士树组电路对目标编码的低位部分积和高位部分积进行累加处理,得到目标运算结果,该乘法器能够获取的有效部分积的数目较少,从而降低乘法器实现乘法运算的复杂性,提高了乘法运算的运算效率,有效降低了乘法器的功耗;同时,上述乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
在其中一个实施例中,其中,乘法器包括高位部分积获取单元114,所述高位部分积获取单元114包括:高位目标编码输入端口1141、第二选通数值输入端口1142、第三模式选择信号输入端口1143、第二数据输入端口1144以及高位部分积输出端口1145;所述高位目标编码输入端口1141用于接收所述高位目标编码,所述第二选通数值输入端口1142用于接收所述高位选择器组单元选通后,输出的所述高位部分积中包含的数值,所述第三模式选择信号输入端口1143用于接收所述功能选择模式信号,所述第二数据输入端口1144用于接收所述第二数据,所述高位部分积输出端口1145用于输出所述目标编码的高位部分积。
具体的,乘法器中的高位部分积获取单元114通过高位目标编码输入端口1141,可以接收改进正则有符号数编码单元111输出的高位目标编码,通过第二数据输入端口1144接收乘法运算中的被乘数,根据高位目标编码以及被乘数,得到高位目标编码对应的符号位扩展后的高位部分积。可选的,若高位部分积获取单元114中的第三模式选择信号输入端口1143,接收到的功能选择模式信号对应乘法器处理N位数据运算,则高位部分积获取单元114得到的符号位扩展后的高位部分积的位宽可以等于2N。示例性的,若乘法器处理N位数据运算,高位部分积获取单元114接收到一个N比特位宽的被乘数X,则高位部分积获取单元114可以根据被乘数X与高位目标编码中包含的三种数值-1,1和0直接得到对应的2N位符号位扩展后的高位部分积,该符号位扩展后的部分积的低N位数值可以等于高位目标编码直接得到的原始部分积中的所有数值,符号位扩展后的部分积的高N位数值可以等于该原始部分积中的符号位数值,该符号位数值也就是原始部分积的最高位数值。当高位目标编码中的数值为-1时,则原始部分积可以为-X,当高位目标编码中的数值1时,则原始部分积可以为X,当高位目标编码中的数值0时,则原始部分积可以为0。
需要说明的是,高位部分积获取单元114可以通过第二选通数值输入端口1142,接收高位选择器组单元115选通的不相同位宽数据运算时,得到的符号位扩展后的部分积中的对应位数值;然后将高位部分积获取单元114当前得到的高位目标编码对应的符号位扩展后的部分积,与选通后的对应位数值进行结合,得到符号位扩展后的高位部分积。
进一步地,高位部分积获取单元114可以根据所有符号位扩展后的高位部分积,得到对应的目标编码的高位部分积,并通过高位部分积输出端口1145将目标编码的高位部分积输出。可选的,所有目标编码的高位部分积的分布规律可以表征为,第一个目标编码的高位部分积可以位于最后一个目标编码的低位部分积的下一个目标编码的部分积,即高位目标编码中的最低位数值对应的目标编码的部分积,第一个目标编码的高位部分积的位宽可以等于最后一个目标编码的低位部分积的位宽减1,也就是,第一个目标编码的高位部分积可以等于第一个符号位扩展后的高位部分积,且该符号位扩展后的高位部分积的最低位数值,与最后一个目标编码的低位部分积的次高位数值位于同一列,相当于,第一个符号位扩展后的高位部分积超出最后一个目标编码的低位部分积中最高列数值的多个数值不参与后续运算,从第二个目标编码的高位部分积开始,每一个目标编码的高位部分积中的最高位数值,与第一个目标编码的高位部分积中的最高位数值位于同一列,每一个目标编码的高位部分积,可以等于对应符号位扩展后的高位部分积,且该符号位扩展后的高位部分积的最低位数值,与上一个目标编码的高位部分积的次高位数值位于同一列,也就是,对应符号位扩展后的高位部分积超出第一个目标编码的高位部分积中最高列数值的多个数值不参与后续运算。
本实施例提供的一种乘法器,乘法器通过高位部分积获取单元可以根据高位目标编码中包含的每一位数值以及第二数据,得到目标编码的高位部分积,并且通过改进华莱士树组电路对目标编码的高位部分积以及低位部分积进行累加处理,得到目标运算结果,该乘法器能够获取的有效部分积的数目较少,从而降低乘法器实现乘法运算的复杂性,提高了乘法运算的运算效率,有效降低了乘法器的功耗;同时,上述乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
在其中一个实施例中,其中,乘法器包括高位选择器组单元115,所述高位选择器组单元115包括:高位选择器1151,多个所述高位选择器1151用于对所述符号位扩展后的高位部分积中包含的数值进行选通。
具体的,上述高位选择器组单元115中高位选择器1151的数目,可以等于3N*(N+1),2N可以表示乘法器当前所处理数据的位宽,该高位选择器组单元115中每一个高位选择器1151的内部电路结构可以相同。可选的,乘法运算时,改进正则有符号数编码单元111可以连接(N+1)个高位部分积获取单元114,每一个高位部分积获取单元114中,可以包含4N个数值生成子单元,其中2N个数值生成子单元可以连接2N个高位选择器1151,每一个数值生成子单元连接一个高位选择器1151。可选的,上述2N个高位选择器1151对应的2N个数值生成子单元,可以为目标编码的高位部分积中低2N位数值对应的数值生成子单元,该2N个高位选择器1151的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口。可选的,若乘法器可以处理n种不同位宽的数据运算,并且乘法器接收到的数据的位宽为2N,则上述高位选择器1151的两个其它输入端口分别接收的信号可以为0和乘法器进行2N比特位宽的数据运算时,该高位部分积获取单元114得到的对应符号位扩展后的部分积中的对应位数值。其中,(N+1)个高位部分积获取单元114可以连接(N+1)组2N个高位选择器1151,各组的2N个高位选择器1151接收到的对应位数值可以相同,也可以不相同。
另外,每一个高位部分积获取单元114包含的4N个数值生成子单元中,对应N个数值生成子单元可以连接N个高位选择器1151,每一个数值生成子单元可以连接1个高位选择器1151,该N个高位选择器1151与选择器113的内部电路结构可以相同,并且该N个高位选择器1151的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口,这两个其它输入端口分别接收的信号,可以为乘法器进行N位数据运算,得到的对应符号位扩展后的部分积中的符号位数值,和乘法器进行2N位数据运算,得到的对应符号位扩展后的部分积中的符号位数值。其中,(N+1)个高位部分积获取单元114可以连接(N+1)组N个高位选择器1151,各组的N个高位选择器1151接收到的符号位数值可以相同,也可以不相同,但是,同一组的N个高位选择器1151接收到的符号位数值是相同的,并且该符号位数值可以根据每一组N个高位选择器1151,对应连接的高位部分积获取单元114获取的符号位扩展后的部分积中的符号位数值得到。另外,各组的N个高位选择器1151接收到的符号位扩展后的部分积中对应位数值,可以根据该组高位选择器1151所连接的高位部分积获取单元114,获取的符号位扩展后的部分积中的符号位数值确定,并且每一组的N个高位选择器1151中,每一个高位选择器1151接收到的对应位数值可以相同,可以不相同。
需要说明的是,每一个高位部分积获取单元114包含的4N个数值生成子单元中,剩余的N个数值生成子单元可以不连接高位选择器1151,此时,该N个数值生成子单元获取的数值可以为乘法器当前所处理不同位宽的数据,得到的高位目标编码中的数值得到的对应的符号位扩展后的部分积中的对应位数值,也可以理解为,N个数值生成子单元获取的数值可以为对应符号位扩展后的部分积中,对应从最低位(即第1位)向最高位算起,第(2N+1)位至第3N位数值之间的所有数值。其中,每一个高位部分积获取单元114中4N个数值生成子单元的位置的分布规律,可以在上一个高位部分积获取单元114中4N个数值生成子单元位置的基础上,左移一个数值生成子单元。可选的,参与后续运算的所有目标编码的高位部分积中,只有第一个目标编码的高位部分积的位宽可以等于4N,剩余的目标编码的高位部分积的位宽都会在上一个目标编码的高位部分积的基础上少一位,且最后一个目标编码的高位部分积的位宽可以等于(2N-1)。
本实施例提供的一种乘法器,乘法器中的高位选择器组单元可以选通高位部分积中的数值,得到目标编码的高位部分积,进而通过改进华莱士树组电路对目标编码的高位部分积和低位部分积进行累加处理,得到目标运算结果,该乘法器能够获取的有效部分积的数目较少,从而降低乘法器实现乘法运算的复杂性,提高了乘法运算的运算效率,有效降低了乘法器的功耗;同时,上述乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
在其中一个实施例中,其中,乘法器包括所述改进华莱士树组电路12,该改进华莱士树组电路12包括:改进华莱士树子电路121~12n;多个所述改进华莱士树子电路121~12n用于对所述目标编码的部分积中的每一列数值进行累加处理得到累加运算结果。
其中,所述改进华莱士树组电路12包括:低位改进华莱士树子电路1211、选择器1212以及高位改进华莱士树子电路1213,所述低位改进华莱士树子电路1211的输出端与所述选择器1212的输入端连接,所述选择器1212的输出端与所述高位改进华莱士树子电路1213的输入端连接;其中,多个所述低位改进华莱士树子电路1211用于对所有目标编码的部分积中的每一列数值进行累加处理,所述选择器1212用于选通所述高位改进华莱士树子电路接收的进位输入信号,多个所述高位改进华莱士树子电路1213用于对所有目标编码的部分积中的每一列数值进行累加处理。
可选的,所述低位改进华莱士树子电路1211和所述高位改进华莱士树子电路1213均包括所述4-2压缩器以及模式选择电路,所述模式选择电路的输出端与所述4-2压缩器的输入端连接;其中,所述4-2压缩器用于对所有目标编码的部分积中每一列的数值进行累加处理,所述模式选择电路用于选通所述4-2压缩器接收到的所述目标编码的部分积中的数值;其中,所述模式选择电路中包括第一输入端,用于接收所述功能选择模式信号。
具体的,改进华莱士树组电路12包含的改进华莱士树子电路的数目n可以等于乘法器当前所处理数据位宽的2倍,并且n个改进华莱士树子电路可以对所有目标编码的高位部分积以及所有目标编码的低位部分积进行并行处理,但连接方式可以是串行连接。其中,所有目标编码的部分积的分布规律中,高位目标编码中的最低位数值对应的目标编码的高位部分积中最低位数值,可以与低位目标编码中的最高位数值对应的目标编码的低位部分积中次低位数值位于同一列。可选的,通过改进华莱士树组电路12可以对目标编码的部分积中的每一列数值进行累加处理,得到两路输出信号。
需要说明的是,所有目标编码的部分积中的每一个目标编码的部分积可以等于符号位扩展后的部分积,还可以等于符号位扩展后的部分积中的部分位数值,其中,第一个目标编码的部分积可以等于第一个对应的符号位扩展后的部分积。可选的,每一个目标编码的部分积中的最低位数值可以与上一个目标编码的部分积中的次低位数值位于同一列,相当于每一个符号位扩展后的部分积中的每一位数值,在上一个符号位扩展后的部分积中的每一位数值所处对应列的基础上,左移一列,并且每一个目标编码的部分积的最高位数值,与第一个目标编码的部分积中的最高位数值均位于同一列,其中,超出第一个目标编码的部分积中的最高位数值对应列的更高列的数值可以不进行累加运算。可选的,所有目标编码的部分积的列数可以等于乘法器当前所处理数据位宽的2倍。
示例性的,若乘法器接收到的两个数据位宽均为16比特,当前可处理8位数据的乘法运算,则当前乘法器可处理两组8位*8位的数据乘法运算,该乘法器通过改进正则有符号数编码电路11得到的9个目标编码的低位部分积,以及9个目标编码的高位部分积的分布规律如图3a所示,其中,右上角为9个目标编码的低位部分积的分布图,左下角为9个目标编码的高位部分积的分布图,“○”表示目标编码的低位部分积中的每一位数值,表示目标编码的高位部分积中的每一位数值,“●”表示目标编码的低位部分积或目标编码的高位部分积的符号扩展位数值;若乘法器当前可处理16位*16位的数据乘法运算,该乘法器通过改进正则有符号数编码电路11得到的9个目标编码的低位部分积,以及9个目标编码的高位部分积的分布规律如图3b所示,其中,“○”表示目标编码的低位部分积中的每一位数值,表示目标编码的高位部分积中的每一位数值,“●”表示目标编码的低位部分积或目标编码的高位部分积的符号扩展位数值。
可以理解的是,每一个低位改进华莱士树子电路1211的电路结构可以由多个4-2压缩器以及一个模式选择电路组合实现,每一个高位改进华莱士树子电路1213的电路结构也可以由多个4-2压缩器以及一个模式选择电路组合实现,另外,还可以理解为,每一个改进华莱士树子电路中的多个4-2压缩器,均可以对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路,同时,每一个4-2压缩器的电路结构可以通过两个全加器组合实现。可选的,改进华莱士树组子电路121~12n可以包括多个低位改进华莱士树子电路1211和多个高位改进华莱士树子电路1213,其中,高位改进华莱士树子电路1213的数目可以等于乘法器当前接收到的数据位宽N,还可以等于低位改进华莱士树子电路1211的数目,并且各低位改进华莱士树子电路1211之间可以串行连接,各高位改进华莱士树子电路1213之间也可以串行连接。可选的,最后一个低位改进华莱士树子电路1211的输出端与选择器1212的输入端连接,选择器1212的输出端与第一个高位改进华莱士树子电路1213的输入端连接。
在本实施例中,改进华莱士树组电路12中的每一个低位改进华莱士树子电路1211可以对所有目标编码的部分积中的每一列数值进行加法运算,每一个低位改进华莱士树子电路1211可以输出两个信号,即进位信号Carryi与一个和位信号Sumi,其中,i可以表示每一个低位改进华莱士树子电路1211对应的编号,第一个低位改进华莱士树子电路1211的编号为0。可选的,每一个低位改进华莱士树子电路1211接收到输入信号的数目可以等于目标编码的部分积的数目。其中,改进华莱士树组电路12中高位改进华莱士树子电路1213与低位改进华莱士树子电路1211的数目之和,可以等于2N,所有目标编码的部分积中,从最低列至最高列的总列数可以等于2N,N个低位改进华莱士树子电路1211可以对所有目标编码的部分积的低N列中的每一列数值进行累加运算,N个高位改进华莱士树子电路1213可以对所有目标编码的部分积的高N列中的每一列数值进行累加运算。
示例性的,若乘法器接收到的数据位宽为2N比特,并且当前乘法器进行2N位数据乘法运算,此时,选择器1212可以选通改进华莱士树组电路12中的最后一个低位改进华莱士树子电路1211,输出的进位输出信号Cout2N-1作为改进华莱士树组电路12中,第一个高位改进华莱士树子电路1213接收到的进位输入信号Cin2N,还可以理解为,乘法器当前可以将接收到的2N位数据作为一个整体进行运算;当前乘法器进行N位数据乘法运算,此时,选择器1212可以选通0作为改进华莱士树组电路12中,第一个高位改进华莱士树子电路1213接收到的进位输入信号Cin2N,还可以理解为,乘法器当前可以将接收到的2N位数据划分成高N位和低N位数据分别进行乘法运算,其中,从第一个低位改进华莱士树子电路1211至最后一个低位改进华莱士树子电路1211的对应编号i分别为0,1,2,…,N-1,从第一个高位改进华莱士树子电路1213至最后一个高位改进华莱士树子电路1213的对应编号i分别为N,N+1,…,2N-1。
需要说明的是,改进华莱士树组电路12中每一个低位改进华莱士树子电路1211和高位改进华莱士树子电路1213,接收到的信号可以包括进位输入信号Cini,部分积数值输入信号,进位输出信号Couti。可选的,每一个低位改进华莱士树子电路1211和高位改进华莱士树子电路1213接收到的部分积数值输入信号,可以为所有目标编码的部分积中对应列的数值,每一个低位改进华莱士树子电路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),并且该乘法器接收到的乘数和被乘数均为8比特位宽的数据,该乘法器中多个低位改进华莱士树子电路和多个高位改进华莱士树子电路的电路结构图均可以参见图4所示,图中~mode表示对mode信号取反,例如,若mode为高电平信号,则~mode为低电平信号,若mode为低电平信号,则~mode为高电平信号。另外,乘法器无论进行8位宽数据运算还是16位宽数据运算,均可以得到18个目标编码的部分积,所有目标编码的部分积中其中一列的数值分别为I0,I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,I14,I15,I16,I17,在本示例中,乘法器通过接收到的mode信号,可以确定高位和低位改进华莱士树中第一模式选择电路接收到的目标编码的部分积中的数值为I7还是I13,以保证第一模式选择电路输入至第六全加器的信号为低电平信号;另外,乘法器还可以通过接收到的mode信号,确定高位和低位改进华莱士树中第二模式选择电路接收到的目标编码的部分积中的数值为I6还是I12,以保证第二模式选择电路输入至第八全加器的信号为低电平信号。在示例中,乘法器可以根据接收到的mode信号确定第一模式选择电路可以接收的选通信号I7或I13,若mode=00,则第一模式选择电路可以选通I13作为第六全加器的输入,选通I7作为第五全加器的输入;若mode=11,则第一模式选择电路可以选通I7作为第六全加器的输入,选通I13作为第五全加器的输入;另外,乘法器还可以根据接收到的mode信号确定第二模式选择电路可以接收的选通信号I6或I12,若mode=00,则第二模式选择电路可以选通I12作为第八全加器的输入,选通I6作为第七全加器的输入;若mode=11,则第二模式选择电路可以选通I6作为第八全加器的输入,选通I12作为第七全加器的输入。
此外,上述低位改进华莱士树子电路1211以及高位改进华莱士树子电路1213,均可以由多个4-2压缩器构成。
本实施例提供的一种乘法器,通过改进华莱士树组电路可以对目标编码的低位部分积和高位部分积进行累加处理,并通过累加电路对累加结果进行再次累加处理,得到乘法运算结果,该乘法器能够获取的有效部分积的数目较少,从而降低乘法器实现乘法运算的复杂性,提高了乘法运算的运算效率,有效降低了乘法器的功耗;同时,上述乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用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的可处理数据的位宽可以等于乘法器当前处理的数据位宽N的2倍。可选的,改进华莱士树组电路12中的每一个低位改进华莱士树子电路1211和高位改进华莱士树子电路1213,可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=1,…,2N,i为每一个低位或高位改进华莱士树子电路的对应编号,编号从1开始)。可选的,加法器131接收到的Carry={[Carry1:Carry2N-1],0},也就是说,加法器131接收到的进位输出信号Carry的位宽为2N,进位输出信号Carry中前2N-1位数值对应改进华莱士树组电路12中,前2N-1个低位和高位改进华莱士树子电路的进位输出信号,进位输出信号Carry中最后一位数值可以用数值0代替。可选的,加法器131接收到的和位输出信号Sum的位宽为N,和位输出信号Sum中的数值可以等于改进华莱士树组电路12中,每一个低位或高位改进华莱士树子电路输出的和位输出信号。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,则加法器131可以为16位超前进位加法器,如图5所示,改进华莱士树组电路12可以输出低位和高位改进华莱士树子电路,得到的16个和位输出信号Sum和进位输出信号Carry,但是,16位超前进位加法器接收到的和位输出信号,可以为改进华莱士树组电路12输出的完整和位信号Sum,接收到的进位输出信号可以为改进华莱士树组电路12中,除去最后一个高位改进华莱士树子电路1213输出的进位输出信号的所有进位输出信号,与数值0结合后的进位信号Carry。其中,图5中Wallace_i表示低位或高位改进华莱士树子电路,i为低位和高位改进华莱士树子电路从0开始的编号,并且两两改进华莱士树子电路之间连接的实线表示高位编号对应的改进华莱士树子电路有进位输出信号,虚线表示高位编号对应的改进华莱士树子电路没有进位输出信号,梯形电路表示二路选择器,该二路选择器可以作为乘法器中的选择器1212。
本实施例提供的一种乘法器,乘法器通过累加电路可以对改进华莱士树组电路输出的两路信号进行累加运算,得到目标运算结果,该乘法器可以对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,降低了乘法器的功耗。
图6为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图1和图2所示的乘法器进行处理,本实施例涉及的是对不同位宽的数据进行乘法运算的过程。如图6所示,该方法包括:
S101、接收待处理数据以及功能选择模式信号,其中,所述功能选择模式信号用于指示当前可处理数据的位宽。
具体的,乘法器可以通过改进正则有符号数编码电路接收待处理数据,该待处理数据可以为乘法运算中的乘数和被乘数。每一次乘法运算时,乘法器还可以通过改进正则有符号数编码电路和改进华莱士树组电路接收不同的功能选择模式信号,并且同一次运算时改进正则有符号数编码电路和改进华莱士树组电路接收到的功能选择模式信号可以相同。若乘法器接收不同的功能选择模式信号,则乘法器可以处理不同位宽的数据运算,同时,不同的功能选择模式信号与乘法器可以处理不同位宽的数据之间的对应关系可以灵活设置,对此本实施例不作任何限定。
需要说明的是,如果改进正则有符号数编码电路接收到的待处理乘数和待处理被乘数的位宽,与乘法器接收到的功能选择模式信号对应可处理的数据位宽不相等,则乘法器会根据乘法器当前可处理的数据位宽,将接收到的待处理数据划分成,与乘法器当前可处理的数据位宽相等的多组数据进行并行处理,其中,改进正则有符号数编码电路接收到的待处理数据的位宽可以大于乘法器当前可处理的数据位宽。可选的,上述并行处理可以表征为将划分后的每一组待处理数据同时进行处理。如果改进正则有符号数编码电路接收到的待处理数据的位宽,与乘法器接收到的功能选择模式信号对应可处理的数据位宽相等,则乘法器直接对接收到的待处理数据进行处理。可选的,上述待处理数据可以包括待处理的高位数据和待处理的低位数据。其中,若待处理数据的位宽为2N,则高N位为待处理的高位数据,低N位为待处理的高位数据。
可选的,改进正则有符号数编码电路接收到的待处理乘数和待处理被乘数的位宽可以为8比特,16比特,32比特,64比特,对此本实施例不做任何限定。其中,待处理乘数的位宽可以等于待处理被乘数的位宽。
示例性的,如果改进正则有符号数编码电路和改进华莱士树组电路能够接收多种功能选择模式信号,以三种功能选择模式信号为例,可以分别为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位数据进行处理,对此本实施例可以灵活设置。
S102、对所述待处理数据进行正则有符号数编码处理,得到中间编码。
具体的,乘法器可以通过改进正则有符号数编码单元对接收到的乘法运算中的乘数进行正则有符号数编码处理,得到中间编码。其中,中间编码的位宽可以等于处理的乘数位宽N加1。
可选的,上述S102中对所述待处理数据进行正则有符号数编码处理,得到中间编码,包括:将所述待处理数据中连续的l位数值1转换为(l+1)位最高位数值为1,最低位数值为-1,其余位为数值0后,得到所述中间编码,其中,l大于等于2。
需要说明的是,上述正则有符号数编码处理的方法可以通过以下方式表征,对于N位乘数而言,从低位向高位数值处理,若存在连续l(l>=2)位数值1时,则可以将连续l位数值1转换处理为数据“1(0)l-1(-1)”,并且将其余对应(N-l)位数值与转化后的(l+1)位数值结合得到一个新的数据,将该新数据作为下一级转换处理的初始数据,直到转换处理后得到的新数据中不存在连续l(l>=2)位数值1为止,得到初始编码,并对初始编码的最高位数值的高一位处补数值0,得到(N+1)位的中间编码;对于2N位乘数而言,乘法器对完整的2N位乘数进行正则有符号数编码处理,得到2N位初始编码,并根据初始编码得到(2N+1)位中间编码。
S103、根据所述功能选择模式信号对所述中间编码进行补数处理,得到目标编码。
具体的,上述目标编码的位宽可以等于乘法运算中乘数位宽N加1。可选的,功能选择模式信号可以定义为多种不同形式,每一种对应的功能选择模式信号均对应乘法器可以处理数据的位宽。
在本实施例中,上述目标编码可以包括低位目标编码以及高位目标编码。若乘法器接收到的待处理数据的位宽为2N比特,且乘法器接收到的功能选择模式信号对应当前可处理数据的位宽为N比特,则2N位待处理数据可以分为高N位数据以及低N位数据,通过高N位数据可以得到对应的(N+1)位高位目标编码,通过低N位数据可以得到对应的(N+1)位低位目标编码,若乘法器接收到的功能选择模式信号对应当前可处理数据的位宽为2N比特,则乘法器对完整的2N位数据进行处理得到(2N+1)位中间编码,并对这(2N+1)位中间编码进行补数处理,得到(2N+2)位的目标编码,其中,(2N+2)位的目标编码中,高(N+1)位数值可以作为高位目标编码,低(N+1)位数值可以作为低位目标编码。可选的,上述补位处理可以为对中间编码的最高位数值的高一位处补数值0。
S104、对所述待处理数据与所述目标编码进行转换处理,得到目标编码的部分积。
具体的,乘法器中的低位部分积获取单元以及高位部分积获取单元,可以根据接收到的待处理被乘数,以及改进正则有符号数编码单元获得的目标编码,得到目标编码的部分积。可选的,上述目标编码的部分积可以为乘法器得到的对应符号位扩展后的部分积,还可以等于符号位扩展后的部分积中的部分位数值,该符号位扩展后的部分积的数目可以等于目标编码的位宽,还可以等于目标编码的位宽加1。可选的,上述转换处理可以表征为,基于待处理数据,将目标编码转换为目标编码的部分积,该待处理数据为被乘数。
S105、通过改进华莱士树组电路对所述目标编码的部分积中列数值进行累加处理,得到目标运算结果。
具体的,改进华莱士树组电路可以通过4-2压缩器构成。
本实施例提供的一种数据处理方法,该方法能够对待处理数据进行正则有符号数编码处理,并根据接收到的功能选择模式信号得到目标编码,进行根据目标编码得到目标编码的部分积,降低了乘法运算中目标编码的有效部分积的数目,从而降低乘法运算的复杂性;同时,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,并通过改进华莱士树子电路中的模式选择电路选通目标编码的部分积中的数值,使得改进华莱士树子电路中的一个全加器接收到的信号均为低电平信号,保证关闭该全加器,以达到降低功耗的目的。
另一实施例提供的数据处理方法,上述S103中根据所述功能选择模式信号对所述中间编码进行补数处理,得到目标编码的步骤,具体可以包括:根据所述功能选择模式信号,判断是否需要对所述中间编码进行补数处理;若需要进行补数处理,则对所述中间编码的最高位数值的高一位处补数值0,得到所述目标编码。
具体的,乘法器可以接收不同的功能选择模式信号,并且不同的功能选择模式信号可以对应乘法器当前可处理数据的不同位宽。可选的,不同功能选择模式信号对应乘法器可以处理N位数据运算,还可以处理2N位数据运算。示例性的,若乘法器接收到的待处理数据的位宽为2N比特,且当前可处理数据的位宽为N比特,则2N位待处理数据被分为高N位数据以及低N位数据,对高N位数据以及低N位数据进行处理,分别得到N位初始编码,并对N位初始编码的最高位数值的高一位处补一位数值0,得到(N+1)位中间编码,并将这个(N+1)位中间编码作为目标编码;若乘法器当前可处理数据的位宽为2N比特,则乘法器可以对完整的2N位待处理数据进行处理,得到2N位初始编码,并对2N位初始编码的最高位数值的高一位处补一位数值0,得到一个(2N+1)位的中间编码,此时,乘法器需要对这个(2N+1)位的中间编码进行补数处理,得到目标编码。其中,上述补数处理可以表征为对中间编码的最高位数值的高一位处补数值0。
可选的,在上述根据所述功能选择模式信号,判断是否需要对所述中间编码进行补数处理的步骤之后,所述方法还可以包括:若不需要进行补数处理,则将所述中间编码作为所述目标编码。
需要说明的是,继续上一示例,乘法器当前可处理N位数据的情况下,不需要对中间编码进行补数处理,可以直接将(N+1)位中间编码作为目标编码。
本实施例提供的一种数据处理方法,该方法能够获取的目标编码的部分积的数目较少,从而降低乘法运算的复杂性。
作为其中一个实施例,上述S104中对所述待处理数据与所述目标编码进行转换处理,得到目标编码的部分积的步骤,可以包括:
S1041、通过所述目标编码中的低位目标编码以及所述待处理数据进行转换处理,得到目标编码的低位部分积。
可选的,上述S1041中通过所述目标编码中的低位目标编码以及所述待处理数据进行转换处理,得到目标编码的低位部分积的步骤,具体可以包括:根据所述低位目标编码以及所述待处理数据,得到符号位扩展后的部分积;通过低位选择器组单元选通符号位扩展后的低位部分积中的数值;通过选通后的所述符号位扩展后的低位部分积中的数值以及所述符号位扩展后的部分积中的数值进行转换处理,得到所述符号位扩展后的低位部分积;根据所述符号位扩展后的低位部分积得到所述目标编码的低位部分积。
具体的,乘法器根据接收到的功能选择模式信号,低位目标编码和待处理数据,得到乘法器当前所处理不相同位宽数据对应的原始低位部分积,并对原始低位部分积进行符号位扩展处理得到符号位扩展后的部分积。可选的,上述原始低位部分积可以为未进行符号位扩展的低位部分积,还可以理解为低位数据对应得到的未进行符号位扩展的部分积。可选的,符号位扩展后的部分积的位宽可以等于乘法器当前可处理数据位宽N的2倍,原始低位部分积的位宽可以等于(N+1)。可选的,符号位扩展后的部分积可以包括原始低位部分积中的(N+1)位数值和连续(N-1)位原始低位部分积中的符号位数值。
需要说明的是,若低位部分积获取单元接收到一个8位的被乘数x7x6x5x4x3x2x1x0(即X),则低位部分积获取单元可以根据被乘数x7x6x5x4x3x2x1x0(即X)与低位目标编码中包含的三种数值-1,1和0直接得到对应的原始低位部分积,当低位目标编码中的数值为-1时,则原始低位部分积可以为-X,当低位目标编码中的数值1时,则原始低位部分积可以为X,当低位目标编码中的数值0时,则原始低位部分积可以为0。
可以理解的是,低位选择器组单元中的每一个低位选择器可以根据接收到的不同功能选择模式信号,选通符号位扩展后的低位部分积中的对应位数值。可选的,低位部分积获取单元可以根据低位选择器组单元选通后得到的,符号位扩展后的低位部分积中的数值以及乘法器当前可处理对应位宽数据得到的符号位扩展后的部分积中的部分位数值,得到乘法器当前所处理对应位宽数据对应的符号位扩展后的低位部分积。
进一步地,乘法器可以根据所有符号位扩展后的低位部分积,得到对应的目标编码的低位部分积,所有目标编码的低位部分积的分布规律可以表征为,第一个目标编码的低位部分积可以等于第一个符号位扩展后的低位部分积,即低位目标编码中最低位数值对应的符号位扩展后的低位部分积,从第二个目标编码的低位部分积开始,每一个目标编码的低位部分积中的最高位数值,与第一个目标编码的低位部分积中的最高位数值位于同一列,每一个目标编码的低位部分积,可以等于对应符号位扩展后的低位部分积,且该符号位扩展后的低位部分积的最低位数值,与上一个目标编码的低位部分积的次高位数值位于同一列,也就是,对应符号位扩展后的低位部分积超出第一个目标编码的低位部分积中最高列数值的多个数值不参与后续运算。
S1042、通过所述目标编码中的高位目标编码以及所述待处理数据进行转换处理,得到目标编码的高位部分积。
可选的,上述S1042中通过所述目标编码中的高位目标编码以及所述待处理数据进行转换处理,得到目标编码的高位部分积的步骤,具体可以包括:根据所述高位目标编码以及所述待处理数据,得到符号位扩展后的部分积;通过高位选择器组单元选通符号位扩展后的高位部分积中的数值;根据选通后的所述符号位扩展后的高位部分积中的数值以及所述符号位扩展后的部分积中的数值,得到所述符号位扩展后的高位部分积;根据所述符号位扩展后的高位部分积得到所述目标编码的高位部分积。
具体的,乘法器根据接收到的功能选择模式信号,高位目标编码和待处理数据,得到乘法器当前所处理不相同位宽数据对应的原始高位部分积,并对原始高位部分积进行符号位扩展处理得到符号位扩展后的部分积。可选的,上述原始高位部分积可以为未进行符号位扩展的高位部分积,还可以理解为高位数据对应得到的未进行符号位扩展的部分积。可选的,符号位扩展后的部分积的位宽可以等于乘法器可处理数据位宽N的2倍,原始高位部分积的位宽可以等于(N+1)。可选的,符号位扩展后的部分积可以包括原始高位部分积中的(N+1)位数值和(N-1)位原始高位部分积中的符号位数值。
需要说明的是,高位选择器组单元中的每一个高位选择器可以根据接收到的不同功能选择模式信号,选通符号位扩展后的高位部分积中的对应位数值。可选的,高位部分积获取单元可以根据高位选择器组单元选通后得到的,符号位扩展后的高位部分积中的数值以及乘法器当前可处理对应位宽数据得到的符号位扩展后的部分积中的部分位数值,得到乘法器当前所处理对应位宽数据对应的符号位扩展后的高位部分积。
进一步地,乘法器可以根据所有符号位扩展后的高位部分积,得到对应的目标编码的高位部分积,所有目标编码的高位部分积的分布规律可以表征为,第一个目标编码的高位部分积可以位于最后一个目标编码的低位部分积的下一个目标编码的部分积,即高位目标编码中的最低位数值对应的目标编码的部分积,第一个目标编码的高位部分积的位宽可以等于最后一个目标编码的低位部分积的位宽减1,也就是,第一个目标编码的高位部分积可以等于第一个符号位扩展后的高位部分积,且该符号位扩展后的高位部分积的最低位数值,与最后一个目标编码的低位部分积的次高位数值位于同一列,相当于,第一个符号位扩展后的高位部分积超出最后一个目标编码的低位部分积中最高列数值的多个数值不参与后续运算,从第二个目标编码的高位部分积开始,每一个目标编码的高位部分积中的最高位数值,与第一个目标编码的高位部分积中的最高位数值位于同一列,每一个目标编码的高位部分积,可以等于对应符号位扩展后的高位部分积,且该符号位扩展后的高位部分积的最低位数值,与上一个目标编码的高位部分积的次高位数值位于同一列,也就是,对应符号位扩展后的高位部分积超出第一个目标编码的高位部分积中最高列数值的多个数值不参与后续运算。
其中,上述步骤S1041和步骤S1042的执行顺序本实施例可以不做任何限定。
本实施例提供的一种数据处理方法,该方法能够获取的目标编码的部分积的数目较少,从而降低乘法运算的复杂性。
另一实施例提供的乘法运算方法,上述S105中通过改进华莱士树组电路对所述目标编码的部分积中列数值进行累加处理,得到目标运算结果的步骤,具体可以包括:
S1051、通过低位改进华莱士树子电路对所有目标编码的部分积中的列数值进行累加处理,得到中间运算结果。
具体的,按照所有目标编码的低位部分积和所有目标编码的高位部分积的分布规律可知,所有目标编码的部分积对应数值的总列数为2N(N为乘法器当前所处理数据的位宽),从最低位数值开始每一列数值对应的编号可以为0,…,2N-1,其中,编号0至N-1可以称低N列数值。可选的,中间运算结果可以为低位改进华莱士树子电路中的最后一个改进华莱士树子电路输出的进位输出信号Cout。
需要说明的是,低位改进华莱士树子电路中包含的N个改进华莱士树子电路可以按照编号顺序对低N列数值进行累加运算,得到中间运算结果。可选的,中间运算结果可以包括每一个改进华莱士树子电路的进位输出信号Carry,Sum,以及低位改进华莱士树子电路中的最后一个改进华莱士树子电路的输出信号Cout。
S1052、通过选择器对所述中间运算结果进行选通,得到进位选通信号。
具体的,改进华莱士树组电路中的选择器可以根据接收到的功能选择模式信号,选通低位改进华莱士树子电路中的最后一个改进华莱士树子电路的输出信号Cout或数值0,得到进位选通信号。
S1053、通过高位改进华莱士树子电路根据所述进位选通信号以及所述目标编码的部分积中的列数值进行累加处理,得到所述目标运算结果。
具体的,按照所有目标编码的部分积的分布规律可知,所有目标编码的部分积对应数值的总列数为2N(N为乘法器当前所处理数据的位宽),从最低位数值开始每一列数值对应的编号可以为0,…,2N-1,其中,编号N至2N-1可以称高N列数值。
需要说明的是,高位改进华莱士树子电路中包含的N个改进华莱士树子电路可以按照编号顺序对高N列数值进行累加运算,输出累加运算结果。其中,高位改进华莱士树子电路中的第一个高位改进华莱士树子电路接收到的进位输入信号可以为选择器输出的进位选通信号。
本实施例提供的一种数据处理方法,该方法能够对待处理数据进行正则有符号数编码处理,并根据接收到的功能选择模式信号得到目标编码,进行根据目标编码得到目标编码的部分积,降低了乘法运算中目标编码的有效部分积的数目,从而降低乘法运算的复杂性;同时,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的乘法器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上乘法器时,乘法器间可以通过特定的结构进行链接并传输数据,譬如,通过快速外部设备互连总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过快速外部设备互连接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图7为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数目不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图8所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图9所示,图9提供了一种板卡,上述板卡除了包括上述芯片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 (28)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910817971.8A CN110515587B (zh) 2019-08-30 2019-08-30 乘法器、数据处理方法、芯片及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910817971.8A CN110515587B (zh) 2019-08-30 2019-08-30 乘法器、数据处理方法、芯片及电子设备

Publications (2)

Publication Number Publication Date
CN110515587A true CN110515587A (zh) 2019-11-29
CN110515587B CN110515587B (zh) 2024-01-19

Family

ID=68628671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910817971.8A Active CN110515587B (zh) 2019-08-30 2019-08-30 乘法器、数据处理方法、芯片及电子设备

Country Status (1)

Country Link
CN (1) CN110515587B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111597770A (zh) * 2020-05-19 2020-08-28 中国科学院微电子研究所 快速查找数据最高有效比特位的电路装置及查找方法
CN113031911A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 乘法器、数据处理方法、装置及芯片
CN113033788A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 数据处理器、方法、装置及芯片
WO2023015442A1 (zh) * 2021-08-10 2023-02-16 华为技术有限公司 一种乘法器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4308112A1 (de) * 1993-03-15 1994-10-13 Andreas Herrfeld Schaltung zur CSD-Codierung einer binären Zweierkomplement- oder Dualzahl
WO2002033537A1 (en) * 2000-10-16 2002-04-25 Nokia Corporation Multiplier and shift device using signed digit representation
US20030220956A1 (en) * 2002-05-22 2003-11-27 Broadcom Corporation Low-error canonic-signed-digit fixed-width multiplier, and method for designing same
CN105183424A (zh) * 2015-08-21 2015-12-23 电子科技大学 一种具有高精度低能耗特性的固定位宽乘法器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4308112A1 (de) * 1993-03-15 1994-10-13 Andreas Herrfeld Schaltung zur CSD-Codierung einer binären Zweierkomplement- oder Dualzahl
WO2002033537A1 (en) * 2000-10-16 2002-04-25 Nokia Corporation Multiplier and shift device using signed digit representation
CN1454347A (zh) * 2000-10-16 2003-11-05 诺基亚公司 使用带符号的数位表示的乘法器和移位器
US7257609B1 (en) * 2000-10-16 2007-08-14 Nokia Corporation Multiplier and shift device using signed digit representation
US20030220956A1 (en) * 2002-05-22 2003-11-27 Broadcom Corporation Low-error canonic-signed-digit fixed-width multiplier, and method for designing same
CN105183424A (zh) * 2015-08-21 2015-12-23 电子科技大学 一种具有高精度低能耗特性的固定位宽乘法器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
万超 等: "一种高速数字FIR滤波器的VLSI实现", 《合肥工业大学学报(自然科学版)》, vol. 31, no. 5, pages 736 - 739 *
王瑞光 等: "基于CSD编码的16位并行乘法器的设计", 《微计算机信息》, vol. 24, no. 23, pages 75 - 76 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113031911A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 乘法器、数据处理方法、装置及芯片
CN113033788A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 数据处理器、方法、装置及芯片
CN113033788B (zh) * 2019-12-24 2023-08-18 上海寒武纪信息科技有限公司 数据处理器、方法、装置及芯片
CN113031911B (zh) * 2019-12-24 2024-09-17 上海寒武纪信息科技有限公司 乘法器、数据处理方法、装置及芯片
CN111597770A (zh) * 2020-05-19 2020-08-28 中国科学院微电子研究所 快速查找数据最高有效比特位的电路装置及查找方法
WO2023015442A1 (zh) * 2021-08-10 2023-02-16 华为技术有限公司 一种乘法器

Also Published As

Publication number Publication date
CN110515587B (zh) 2024-01-19

Similar Documents

Publication Publication Date Title
CN109740739B (zh) 神经网络计算装置、神经网络计算方法及相关产品
CN110515587A (zh) 乘法器、数据处理方法、芯片及电子设备
CN109740754B (zh) 神经网络计算装置、神经网络计算方法及相关产品
CN111008003B (zh) 数据处理器、方法、芯片及电子设备
CN110515589A (zh) 乘法器、数据处理方法、芯片及电子设备
CN110163357A (zh) 一种计算装置及方法
CN110362293A (zh) 乘法器、数据处理方法、芯片及电子设备
CN110515590A (zh) 乘法器、数据处理方法、芯片及电子设备
CN110531954A (zh) 乘法器、数据处理方法、芯片及电子设备
CN110554854B (zh) 数据处理器、方法、芯片及电子设备
CN113031912B (zh) 乘法器、数据处理方法、装置及芯片
CN111258541B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110515588A (zh) 乘法器、数据处理方法、芯片及电子设备
CN110515586A (zh) 乘法器、数据处理方法、芯片及电子设备
CN110647307B (zh) 数据处理器、方法、芯片及电子设备
CN113031911B (zh) 乘法器、数据处理方法、装置及芯片
CN110688087B (zh) 数据处理器、方法、芯片及电子设备
CN113031915B (zh) 乘法器、数据处理方法、装置及芯片
CN113031916B (zh) 乘法器、数据处理方法、装置及芯片
CN210006029U (zh) 数据处理器
CN111260070B (zh) 运算方法、装置及相关产品
CN110378477A (zh) 乘法器、数据处理方法、芯片及电子设备
CN110515585A (zh) 乘法器、数据处理方法、芯片及电子设备
CN113031909B (zh) 数据处理器、方法、装置及芯片
CN110378478A (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