CN113033799B - 数据处理器、方法、装置及芯片 - Google Patents

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

Info

Publication number
CN113033799B
CN113033799B CN201911351200.0A CN201911351200A CN113033799B CN 113033799 B CN113033799 B CN 113033799B CN 201911351200 A CN201911351200 A CN 201911351200A CN 113033799 B CN113033799 B CN 113033799B
Authority
CN
China
Prior art keywords
partial product
order
data
low
sign bit
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
CN201911351200.0A
Other languages
English (en)
Other versions
CN113033799A (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 CN201911351200.0A priority Critical patent/CN113033799B/zh
Publication of CN113033799A publication Critical patent/CN113033799A/zh
Application granted granted Critical
Publication of CN113033799B publication Critical patent/CN113033799B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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
    • 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)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请提供一种数据处理器、方法、装置及芯片,数据处理器包括第一乘法运算电路、第二乘法运算电路以及部分积交换电路,第一乘法运算电路包括第一改进正则有符号数CSD编码支路、第一选择支路及第一改进压缩支路,第二乘法运算电路包括第二改进CSD编码支路、第二选择支路及第二改进压缩支路;第一改进压缩支路和第二改进压缩支路均包括4‑2压缩器,4‑2压缩器包括选择电路及全加器;该数据处理器不仅能够实现乘法运算,还能够实现乘累加运算,从而提高了数据处理器的通用性;另外,该数据处理器并不需要对乘法运算结果再进行一次累加运算才能完成乘累加运算操作,仅通过一次运算过程就可以直接实现乘累加或乘法运算操作,从而降低了数据处理器的功耗。

Description

数据处理器、方法、装置及芯片
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据处理器、方法、装置及芯片。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片的快速发展对于高性能数据处理器的要求也越来越高,其中,数据处理器为乘法器、加法器或乘累加器。神经网络算法作为智能芯片广泛应用的算法之一,通过乘累加器进行乘累加运算在神经网络算法中是一种常见的操作。
通常,数据处理器是采用多个相同输入数据位宽或不同数据位宽的乘法器先进行并行乘法运算,得到多个乘法运算结果,再通过加法器对多个乘法运算结果进行累加运算,得到目标乘累加结果。但是,现有的数据处理器仅能够对相同位宽的数据进行乘累加运算,降低了数据处理器的通用性。另外,现有技术中对多个乘法运算结果还需要单独进行一次累加运算才能实现乘累加操作,从而增大了数据处理器的功耗。
发明内容
基于此,有必要针对上述技术问题,提供了一种低功耗且通用性较高的数据处理器、方法、装置及芯片。
一种数据处理器,所述数据处理器包括:第一乘法运算电路、第二乘法运算电路以及部分积交换电路,所述第一乘法运算电路包括第一改进正则有符号数CSD编码支路、第一选择支路以及第一改进压缩支路,所述第二乘法运算电路包括第二改进CSD编码支路、第二选择支路以及第二改进压缩支路;所述第一改进压缩支路和所述第二改进压缩支路均包括4-2压缩器,所述4-2压缩器包括选择电路以及全加器;所述第一乘法运算电路的输出端与所述部分积交换电路的第一输入端连接,所述部分积交换电路的第一输出端与所述第一乘法运算电路的输入端连接,所述部分积交换电路的第二输出端与所述第二乘法运算电路的第一输入端连接,所述第二乘法运算电路的输出端与所述部分积交换电路的第二输入端连接;
其中,所述第一乘法运算电路和所述第二乘法运算电路均包括逻辑门单元,所述逻辑门单元的输入端用于接收功能模式选择信号,所述部分积交换电路中包括第三输入端,用于接收所述功能模式选择信号,所述功能模式选择信号用于确定所述数据处理器当前可处理的对应数据运算模式;所述第一改进CSD编码支路用于对接收到的第一数据进行正则有符号数编码处理得到第一目标编码,并根据所述第一目标编码得到第一符号位扩展后的部分积,所述第一选择支路用于从所述第一符号位扩展后的部分积中选择第一目标编码部分积,所述第一改进压缩支路用于对所述第一目标编码部分积进行压缩处理,得到第一目标运算结果,所述第二改进CSD编码支路用于对接收到的第二数据进行正则有符号数编码处理得到第二目标编码,并根据所述第二目标编码得到第二符号位扩展后的部分积,所述第二选择支路用于从所述第二符号位扩展后的部分积中选择第二目标编码部分积,所述第二改进压缩支路用于对所述第二目标编码部分积进行压缩处理,得到第二目标运算结果,所述部分积交换电路用于根据所述功能模式选择信号,控制是否对所述第一符号位扩展后的部分积,以及所述第二符号位扩展后的部分积进行交换处理。
在其中一个实施例中,所述第一改进CSD编码支路包括:第一改进CSD编码单元、第一低位部分积获取单元、第一低位选择器组单元、第一低位与逻辑单元、第一高位部分积获取单元、第一高位选择器组单元以及第一高位与逻辑单元;所述第一改进CSD编码单元的第一输出端与所述第一低位部分积获取单元的第一输入端连接,所述第一低位选择器组单元的输出端与所述第一低位部分积获取单元的第二输入端连接,所述第一低位与逻辑单元的输出端与所述第一低位部分积获取单元的第三输入端连接,所述第一改进CSD编码单元的第二输出端与所述第一高位部分积获取单元的第一输入端连接,所述第一高位选择器组单元的输出端与所述第一高位部分积获取单元的第二输入端连接,所述第一高位与逻辑单元的输出端与所述第一高位部分积获取单元的第三输入端连接;
其中,所述第一改进CSD编码单元用于根据接收到的所述功能模式选择信号确定所述第一乘法运算电路当前可处理数据的位宽,并对接收到的所述第一数据进行正则有符号数编码处理,得到第一低位目标编码以及第一高位目标编码,所述第一低位部分积获取单元用于根据接收到的所述第一低位目标编码以及所述第一数据,得到第一符号位扩展后的低位部分积,所述第一低位选择器组单元用于选通所述第一符号位扩展后的低位部分积中的第一数值,所述第一低位与逻辑单元用于根据接收到的所述功能模式选择信号进行与逻辑运算,得到所述第一符号位扩展后的低位部分积中的第二数值,所述第一高位部分积获取单元用于根据接收到的所述第一高位目标编码以及所述第一数据,得到第一符号位扩展后的高位部分积,所述第一高位选择器组单元用于选通所述第一符号位扩展后的高位部分积中的第三数值,所述第一高位与逻辑单元用于根据接收到的所述功能模式选择信号进行与逻辑运算,得到所述第一符号位扩展后的高位部分积中的第四数值。
在其中一个实施例中,所述第一改进CSD编码支路中的第一改进CSD编码单元包括:第一数据输入端口、第一模式选择信号输入端口以及第一目标编码输出端口;所述第一数据输入端口用于接收所述第一数据,所述第一模式选择信号输入端口用于接收所述功能模式选择信号,所述第一目标编码输出端口用于输出对所述第一数据进行正则有符号数编码处理后,得到的所述第一低位目标编码和所述第一高位目标编码。
在其中一个实施例中,所述第一改进CSD编码支路中的第一低位部分积获取单元包括:第一低位目标编码输入端口、第一选通数值输入端口、第二选通数值输入端口、第一数据输入端口以及第一低位部分积输出端口;所述第一低位目标编码输入端口用于接收所述第一改进CSD编码单元输出的所述第一目标编码中的第一低位目标编码,所述第一选通数值输入端口用于接收所述第一低位选择器组单元选通后,输出的所述第一符号位扩展后的低位部分积中的第一数值,所述第二选通数值输入端口用于接收所述第一低位与逻辑单元输出的所述第一符号位扩展后的低位部分积中的第二数值,所述第一数据输入端口用于接收所述第一数据,所述第一低位部分积输出端口用于输出所有第一符号位扩展后的低位部分积。
在其中一个实施例中,所述第一改进CSD编码支路中的第一低位选择器组单元包括:第一低位选择器,所述第一低位选择器用于选通所述第一符号位扩展后的低位部分积中的第一数值。
在其中一个实施例中,所述第一改进CSD编码支路中的第一低位与逻辑单元包括:第一模式选择信号输入端口、第一符号位数值输入端口以及第一结果输出端口;其中,所述第一模式选择信号输入端口用于接收所述功能模式选择信号,所述第一符号位数值输入端口用于接收所述符号位扩展后的低位部分积中的第一符号位数值,所述第一结果输出端口用于输出对所述功能模式选择信号与所述第一符号位数值进行与逻辑运算,得到的第二数值。
在其中一个实施例中,所述第一改进CSD编码支路中的第一高位选择器组单元包括:第一高位选择器,所述第一高位选择器用于选通所述第一符号位扩展后的高位部分积中的第三数值。
在其中一个实施例中,所述第一改进CSD编码支路中的第一高位与逻辑单元包括:第二模式选择信号输入端口、第二符号位数值输入端口以及第二结果输出端口;其中,所述第二模式选择信号输入端口用于接收所述功能模式选择信号,所述第二符号位数值输入端口用于接收所述符号位扩展后的高位部分积中的第二符号位数值,所述第二结果输出端口用于输出对所述功能模式选择信号与所述第二符号位数值进行与逻辑运算,得到的第四数值。
在其中一个实施例中,所述第一改进CSD编码支路中的第一高位部分积获取单元包括:第一高位目标编码输入端口、第三选通数值输入端口、第四选通数值输入端口、第一数据输入端口以及第一高位部分积输出端口;所述第一高位目标编码输入端口用于接收所述第一改进CSD编码单元输出的所述第一目标编码中的第一高位目标编码,所述第三选通数值输入端口用于接收所述第一高位选择器组单元选通后,输出的所述第一符号位扩展后的高位部分积中的第三数值,所述第四选通数值输入端口用于接收所述第一高位与逻辑单元输出的所述第一符号位扩展后的高位部分积中的第四数值,所述第一数据输入端口用于接收所述第一数据,所述第一高位部分积输出端口用于输出所有第一符号位扩展后的高位部分积。
在其中一个实施例中,所述第一乘法运算电路中的第一选择支路包括:第一部分积选择子电路;其中,所述第一部分积选择子电路用于接收所述部分积交换电路输出的所述第二符号位扩展后的部分积,以及对所述第一符号位扩展后的部分积进行选择,并且将所述部分积交换电路输出的所述第二符号位扩展后的部分积,以及选择后得到的所述第一符号位扩展后的部分积,作为所述第一目标编码部分积输入至所述第一改进压缩支路。
在其中一个实施例中,所述第一选择支路包括第一部分积选择子电路,所述第一部分积选择子电路包括:功能模式选择信号输入端口、第一部分积输入端口、第二部分积输入端口、第一部分积输出端口以及第一选通部分积输出端口;所述功能模式选择信号输入端口用于接收所述功能模式选择信号,所述第一部分积输入端口用于接收所述第一改进CSD编码支路得到的所有第一符号位扩展后的部分积,所述第二部分积输入端口用于接收所述部分积交换电路进行交换的所述第二符号位扩展后的低位部分积或者所述第二符号位扩展后的高位部分积,所述第一部分积输出端口用于输出需要所述部分积交换电路进行交换的所述第一符号位扩展后的低位部分积或者所述第一符号位扩展后的高位部分积,所述选通部分积输出端口用于输出未交换处理的所述第一符号位扩展后的高位部分积,以及接收到的所述第二符号位扩展后的低位部分积,或者输出未交换处理的所述第一符号位扩展后的低位部分积,以及接收到的所述第二符号位扩展后的高位部分积,或者未处理的所有第一符号位扩展后的部分积。
在其中一个实施例中,所述第二改进CSD编码支路包括:第二改进CSD编码单元、第二低位部分积获取单元、第二低位选择器组单元、第二低位与逻辑单元、第二高位部分积获取单元、第二高位选择器组单元以及第二高位与逻辑单元;所述第二改进CSD编码单元的第一输出端与所述第二低位部分积获取单元的第一输入端连接,所述第二低位选择器组单元的输出端与所述第二低位部分积获取单元的第二输入端连接,所述第二低位与逻辑单元的输出端与所述第二低位部分积获取单元的第三输入端连接,所述第二改进CSD编码单元的第二输出端与所述第二高位部分积获取单元的第一输入端连接,所述第二高位选择器组单元的输出端与所述第二高位部分积获取单元的第二输入端连接,所述第二高位与逻辑单元的输出端与所述第二高位部分积获取单元的第三输入端连接;
其中,所述第二改进CSD编码单元用于根据接收到的所述功能模式选择信号确定所述第二乘法运算电路当前可处理数据的位宽,并对接收到的所述第二数据进行正则有符号数编码处理得到第二低位目标编码以及第二高位目标编码,所述第二低位部分积获取单元用于根据接收到的所述第二低位目标编码以及所述第二数据,得到第二符号位扩展后的低位部分积,所述第二低位选择器组单元用于选通所述第二符号位扩展后的低位部分积中的第五数值,所述第二低位与逻辑单元用于根据接收到的所述功能模式选择信号进行与逻辑运算,得到所述第二符号位扩展后的低位部分积中的第六数值,所述第二高位部分积获取单元用于根据接收到的所述第二高位目标编码以及所述第二数据,得到第二符号位扩展后的高位部分积,所述第二高位选择器组单元用于选通所述第二符号位扩展后的高位部分积中的第七数值,所述第二高位与逻辑单元用于根据接收到的所述功能模式选择信号进行与逻辑运算,得到所述第二符号位扩展后的高位部分积中的第八数值。
在其中一个实施例中,所述数据处理器中的第二选择支路包括第二部分积选择子电路,所述第二部分积选择子电路包括:功能模式选择信号输入端口、第一部分积输入端口、第二部分积输入端口、第一部分积输出端口以及第二选通部分积输出端口;所述功能模式选择信号输入端口用于接收所述功能模式选择信号,所述第一部分积输入端口用于接收所述部分积交换电路进行交换的所述第一符号位扩展后的低位部分积或者所述第一符号位扩展后的高位部分积,所述第二部分积输入端口用于接收所述第二改进CSD编码支路得到的所有第二符号位扩展后的部分积,所述第一部分积输出端口用于输出需要所述部分积交换电路进行交换的所述第二符号位扩展后的低位部分积或者所述第二符号位扩展后的高位部分积,所述第二选通部分积输出端口用于输出未交换处理的所述第二符号位扩展后的高位部分积,以及接收到的所述第一符号位扩展后的低位部分积,或者输出未交换处理的所述第二符号位扩展后的低位部分积,以及接收到的所述第一符号位扩展后的高位部分积,或者未处理的所有第二符号位扩展后的部分积。
在其中一个实施例中,所述数据处理器中的第一乘法运算电路包括第一改进压缩支路,所述第一改进压缩支路包括第一改进华莱士树单元以及第一改进累加单元,所述第一改进华莱士数单元的输出端与所述第一改进累加单元的输入端连接;所述第一改进华莱士树单元用于对所述第一目标编码部分积进行累加处理得到第一累加运算结果,所述第一改进累加单元用于对所述第一累加运算结果进行累加处理,得到第一目标运算结果。
在其中一个实施例中,所述第一改进压缩支路中的第一改进华莱士树单元包括:第一低位华莱士树子单元、第一与逻辑子单元以及第一高位华莱士树子单元,所述第一低位华莱士树子单元的输出端与所述第一与逻辑子单元的输入端连接,所述第一与逻辑子单元的输出端与所述第一高位华莱士树子单元的输入端连接;其中,所述第一低位华莱士树子单元用于对所有第一目标编码部分积中的低位列数值进行累加处理得到第一进位输出信号,所述第一与逻辑子单元用于对接收到的所述功能模式选择信号,和所述第一低位华莱士树子单元输出的所述第一进位输出信号进行与逻辑运算,得到所述第一高位华莱士树子单元接收到的第一进位输入信号,所述第一高位华莱士树子单元用于对所述第一进位输入信号和所有第一目标编码部分积中的高位列数值进行累加处理,得到所述第一累加运算结果。
在其中一个实施例中,所述第一低位华莱士树子单元和所述第一高位华莱士树子单元均包括所述4-2压缩器以及模式选择电路,所述模式选择电路的输出端与所述4-2压缩器的输入端连接,所述模式选择电路中包括第一输入端,用于接收所述功能模式选择信号;其中,所述4-2压缩器用于对所有第一目标编码部分积中每列数值进行累加处理,所述模式选择电路用于选通所述4-2压缩器接收到的所述第一目标编码部分积中的数值。
在其中一个实施例中,所述第一改进压缩支路包括第一改进累加单元,所述第一改进累加单元包括:第一加法器,所述第一加法器用于对所述第一累加运算结果进行加法运算得到所述第一目标运算结果。
在其中一个实施例中,所述第二乘法运算电路中的第二改进压缩支路包括:第二改进华莱士树单元以及第二改进累加单元,所述第二改进华莱士数单元的输出端与所述第二改进累加单元的输入端连接;所述第二改进华莱士树单元用于对所述第二目标编码部分积进行累加处理得到第二累加运算结果,所述第二改进累加单元用于对所述第二累加运算结果进行累加处理,得到第二目标运算结果。
在其中一个实施例中,所述第二改进压缩支路中的第二改进华莱士树单元包括:第二低位华莱士树子单元、第二与逻辑子单元以及第二高位华莱士树子单元,所述第二低位华莱士树子单元的输出端与所述第二与逻辑子单元的输入端连接,所述第二与逻辑子单元的输出端与所述第二高位华莱士树子单元的输入端连接;其中,所述第二低位华莱士树子单元用于对所有第二目标编码部分积中的低位列数值进行累加处理得到第二进位输出信号,所述第二与逻辑子单元用于对接收到的所述功能模式选择信号,和所述第二低位华莱士树子单元输出的所述第二进位输出信号进行与逻辑运算,得到所述第二高位华莱士树子单元接收到的第二进位输入信号,所述第二高位华莱士树子单元用于对所述第二进位输入信号和所有第二目标编码部分积中的高位列数值进行累加处理,得到所述第二累加运算结果。
在其中一个实施例中,所述数据处理器中的部分积交换电路包括:功能模式选择信号输入端口、第一部分积输入端口、第一部分积输出端口、第二部分积输入端口以及第二部分积输出端口;所述功能模式选择信号输入端口用于接收所述功能模式选择信号,所述第一部分积输入端口用于接收所述第一部分积选择子电路输入的需要交换的所述第一符号位扩展后的低位部分积,或者所述第一符号位扩展后的高位部分积,所述第一部分积输出端口用于输出所述第一部分积输入端口接收到的所述第一符号位扩展后的低位部分积,或者所述第一符号位扩展后的高位部分积,所述第二部分积输入端口用于接收所述第二部分积选择子电路输入的需要交换的所述第二符号位扩展后的低位部分积,或者所述第二符号位扩展后的高位部分积,所述第二部分积输出端口用于输出所述第二部分积输入端口接收到的所述第二符号位扩展后的低位部分积,或者所述第二符号位扩展后的高位部分积。
本实施例提供的一种数据处理器,数据处理器通过第一乘法运算电路和第二乘法运算电路分别对接收到的数据进行正则有符号数编码处理,得到符号位扩展后的部分积,并通过部分积交换电路控制是否对第一乘法运算电路得到的第一符号位扩展后的部分积,与第二乘法运算电路得到的第二符号位扩展后的部分积进行交换处理,以得到第一目标编码部分积以及第二目标编码部分积,进而通过第一改进压缩支路对第一目标编码部分积进行压缩处理,以及通过第二改进压缩支路对第二目标编码部分积进行压缩处理得到目标运算结果;该数据处理器不仅能够实现乘法运算,还能够实现乘累加运算,从而提高了数据处理器的通用性;另外,该数据处理器并不需要对乘法运算结果再进行一次累加运算才能完成乘累加运算操作,仅通过一次运算过程就可以直接实现乘累加或乘法运算操作,从而降低了数据处理器的功耗。
一种数据处理方法,所述方法包括:
接收待处理数据和功能模式选择信号,其中,所述功能模式选择信号用于指示数据处理器当前可处理的对应数据运算模式;
根据所述功能模式选择信号,判断所述待处理数据是否需要进行拆分处理;
若所述待处理数据需要进行拆分处理,则对所述待处理数据进行拆分处理,得到拆分后的数据;
对所述拆分后的数据进行正则有符号数编码处理,得到目标编码;
根据所述目标编码以及所述拆分后的数据进行逻辑运算和融合处理,得到符号位扩展后的部分积;
根据所述功能模式选择信号,判断是否需要对所述符号位扩展后的部分积进行交换处理;
若所述符号位扩展后的部分积需要交换处理,则对所述符号位扩展后的部分积进行交换处理,得到目标编码部分积;
根据所述目标编码部分积进行压缩处理和逻辑运算,得到目标运算结果。
在其中一个实施例中,所述根据所述功能模式选择信号,判断所述待处理数据是否需要进行拆分处理,包括:根据所述功能模式选择信号,判断所述待处理数据的位宽与数据处理器当前可处理的数据运算模式对应的数据位宽是否相等。
在其中一个实施例中,所述方法还包括:若所述待处理数据的位宽与数据处理器当前可处理的数据运算模式的对应的数据位宽相等,则继续执行对所述待处理数据进行正则有符号数编码处理,得到所述目标编码。
在其中一个实施例中,若所述待处理数据需要进行拆分处理,则对所述待处理数据进行拆分处理,得到拆分后的数据,包括:若所述待处理数据的位宽与数据处理器当前可处理的数据运算模式对应的数据位宽不相等,则对所述待处理数据进行拆分处理,得到拆分后的数据。
在其中一个实施例中,所述对所述拆分后的数据进行正则有符号数编码处理,得到目标编码,包括:将所述拆分后的数据中连续的l位数值1转换为(l+1)位最高位数值为1,最低位数值为-1,其余位为数值0后,得到所述目标编码,其中,l大于等于2。
在其中一个实施例中,所述符号位扩展后的部分积包括第一符号位扩展后的部分积,且所述第一符号位扩展后的部分积包括第一符号位扩展后的低位部分积以及第一符号位扩展后的高位部分积;所述根据所述目标编码以及所述拆分后的数据进行逻辑运算和融合处理,得到符号位扩展后的部分积,包括:
根据所述目标编码以及所述拆分后的数据,得到符号位扩展后的第一低位部分积;
根据所述功能模式选择信号,得到所述第一符号位扩展后的低位部分积中的第一数值;
对所述功能模式选择信号和所述符号位扩展后的第一低位部分积中的符号位数值进行与逻辑运算,得到所述第一符号位扩展后的低位部分积中的第二数值;
将所述符号位扩展后的第一低位部分积中的数值、所述第一数值以及所述第二数值进行结合,得到所述第一符号位扩展后的低位部分积;
根据所述目标编码以及所述拆分后的数据,得到符号位扩展后的第一高位部分积;
根据所述功能模式选择信号,得到所述第一符号位扩展后的高位部分积中的第三数值;
对所述功能模式选择信号和所述符号位扩展后的第一高位部分积中的符号位数值进行与逻辑运算,得到所述第一符号位扩展后的高位部分积中的第四数值;
将所述符号位扩展后的第一高位部分积中的数值、所述第三数值以及所述第四数值进行结合,得到所述第一符号位扩展后的高位部分积。
在其中一个实施例中,所述符号位扩展后的部分积还包括第二符号位扩展后的部分积,且所述第二符号位扩展后的部分积包括第二符号位扩展后的低位部分积以及第二符号位扩展后的高位部分积;所述根据所述目标编码以及所述拆分后的数据进行逻辑运算和融合处理,得到符号位扩展后的部分积,包括:
根据所述第一目标编码和/或所述第二目标编码,与所述拆分后的数据,得到符号位扩展后的第二低位部分积;
根据所述功能模式选择信号,得到所述第二符号位扩展后的低位部分积中的第五数值;
对所述功能模式选择信号和所述符号位扩展后的第二低位部分积中的符号位数值进行与逻辑运算,得到所述第二符号位扩展后的低位部分积中的第六数值;
将所述符号位扩展后的第二低位部分积中的数值、所述第五数值以及所述第六数值进行结合,得到所述第二符号位扩展后的低位部分积;
根据所述第一目标编码和/或所述第二目标编码,与所述拆分后的数据,得到符号位扩展后的第二高位部分积;
根据所述功能模式选择信号,得到所述第二符号位扩展后的高位部分积中的第七数值;
对所述功能模式选择信号和所述符号位扩展后的第二高位部分积中的符号位数值进行与逻辑运算,得到所述第二符号位扩展后的高位部分积中的第八数值;
将所述符号位扩展后的第二高位部分积中的数值、所述第七数值以及所述第八数值进行结合,得到所述第二符号位扩展后的高位部分积。
在其中一个实施例中,所述根据所述功能模式选择信号,判断是否需要对所述符号位扩展后的部分积进行交换处理,包括:
根据所述功能模式选择信号,确定所述数据处理器当前可处理的数据运算模式;
根据所述数据运算模式,判断是否需要对所述第一符号位扩展后的部分积和所述第二符号位扩展后的部分积进行交换处理。
在其中一个实施例中,所述目标编码部分积包括第一目标编码部分积和第二目标编码部分积;所述方法还包括:若所述符号位扩展后的部分积不需要交换处理,则将所述第一符号位扩展后的部分积作为所述第一目标编码部分积,将所述第二符号位扩展后的部分积作为所述第二目标编码部分积。
在其中一个实施例中,所述对所述符号位扩展后的部分积进行交换处理,得到目标编码部分积包括:
对所述第一符号位扩展后的低位部分积和所述第二符号位扩展后的低位部分积进行交换处理,或者对所述第一符号位扩展后的高位部分积和所述第二符号位扩展后的高位部分积进行交换处理,得到所述第一目标编码部分积和所述第二目标编码部分积。
在其中一个实施例中,所述目标运算结果包括第一目标运算结果;所述根据所述目标编码部分积进行压缩处理和逻辑运算,得到目标运算结果,包括:
通过第一低位华莱士树子单元对所有第一目标编码部分积中的列数值进行累加处理,得到第一中间输出结果;
通过第一与逻辑子单元对所述第一中间输出结果和所述功能模式选择信号进行与逻辑运算,得到进位输入信号;
通过第一高位华莱士树子单元根据所述进位输入信号以及所有第一目标编码部分积中的列数值进行累加处理,得到所述第一累加运算结果;
通过第一改进累加单元对第一累加运算结果进行累加运算,得到所述第一目标运算结果。
本实施例提供的一种数据处理方法,该方法可以根据接收到的功能模式选择信号确定当前可处理的不同数据运算模式,不仅能够实现乘法运算,还能够实现乘累加运算,从而提高了数据处理器的通用性;另外,该方法并不需要对乘法运算结果再进行一次累加运算才能完成乘累加运算操作,仅通过一次运算过程就可以直接实现乘法或乘累加运算操作,也有效降低了数据处理器的功耗。
本申请实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个上述所述的数据处理器;该机器学习运算装置用于从所述机器学习运算装置中除所述数据处理器以外的其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给所述机器学习运算装置中除所述数据处理器以外的其它处理装置;
当所述机器学习运算装置包含多个所述数据处理器时,多个所述数据处理器间通过预设结构进行连接并传输数据;
其中,多个所述数据处理器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据处理器共享同一控制系统或拥有各自的控制系统;多个所述数据处理器共享内存或者拥有各自的内存;多个所述数据处理器的互联方式是任意互联拓扑。
本申请实施例提供的一种组合处理装置,该组合处理装置包括上述所述的机器学习处理装置、通用互联接口,和所述组合处理装置中除所述机器学习运算装置以外的其它处理装置。该机器学习运算装置与所述组合处理装置中除所述机器学习运算装置以外的其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述组合处理装置中除所述机器学习运算装置和所述存储装置以外的其它处理装置连接,用于保存所述机器学习运算装置和所述组合处理装置中除所述机器学习运算装置和所述存储装置以外的其它处理装置的数据。
本申请实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的数据处理器、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本申请实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本申请实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本申请实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本申请实施例提供的一种芯片,包括至少一个如上述任一项所述的数据处理器。
本申请实施例提供的一种电子设备,包括如上述所述的芯片。
附图说明
图1为一实施例提供的一种数据处理器的电路结构示意图;
图2为另一实施例提供的一种数据处理器的具体电路结构示意图;
图3为另一实施例提供的数据处理器中的第一改进CSD编码支路的具体电路结构图;
图4为另一实施例提供的数据处理器中的第二改进CSD编码支路的具体电路结构图;
图5为另一实施例提供的数据处理器中的第一选择支路、第一改进压缩支路、第二选择支路、第二改进压缩支路以及部分积交换电路的具体结构示意图;
图6为一实施例提供的4位数据乘法运算得到的目标编码低位部分积和目标编码高位部分积的分布形式示意图;
图7为一实施例提供的8位*4位数据乘累加运算得到的目标编码低位部分积和目标编码高位部分积的分布形式示意图;
图8为另一实施例提供的8位数据运算时第一改进压缩支路的具体电路结构图;
图9为一实施例提供的一种数据处理方法流程示意图;
图10为另一实施例提供的得到符号位扩展后的部分积的具体流程示意图;
图11为一实施例提供的一种组合处理装置的结构图;
图12为一实施例提供的另一种组合处理装置的结构图;
图13为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据处理器可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中进行乘法运算处理或乘累加运算处理,该数据处理器的结构示意图如图1所示。
如图1所示,图1为一个实施例提供的一种数据处理器的结构图。如图1所示,该数据处理器包括:第一乘法运算电路01、第二乘法运算电路02以及部分积交换电路03,所述第一乘法运算电路01包括第一改进正则有符号数CSD(Canonic Signed Digit,CSD)编码支路11、第一选择支路12以及第一改进压缩支路13,所述第二乘法运算电路02包括第二改进CSD编码支路21、第二选择支路22以及第二改进压缩支路23;所述第一改进压缩支路13和所述第二改进压缩支路23均包括4-2压缩器,所述4-2压缩器包括选择电路以及全加器;所述第一乘法运算电路01的输出端与所述部分积交换电路03的第一输入端连接,所述部分积交换电路03的第一输出端与所述第一乘法运算电路01的输入端连接,所述部分积交换电路03的第二输出端与所述第二乘法运算电路02的第一输入端连接,所述第二乘法运算电路02的输出端与所述部分积交换电路03的第二输入端连接。
其中,所述第一乘法运算电路01和所述第二乘法运算电路02均包括逻辑门单元,所述逻辑门单元的输入端用于接收功能模式选择信号(mode信号),所述功能模式选择信号用于确定所述数据处理器当前可处理的对应数据运算模式,所述部分积交换电路03中包括第三输入端,用于接收所述功能模式选择信号。所述第一改进CSD编码支路11用于对接收到的第一数据进行正则有符号数编码处理得到第一目标编码,并根据所述第一目标编码得到第一符号位扩展后的部分积,所述第一选择支路12用于从所述第一符号位扩展后的部分积中选择第一目标编码部分积,所述第一改进压缩支路13用于对所述第一目标编码部分积进行压缩处理,得到第一目标运算结果,所述第二改进CSD编码支路21用于对接收到的第二数据进行正则有符号数编码处理得到第二目标编码,并根据所述第二目标编码得到第二符号位扩展后的部分积,所述第二选择支路22用于从所述第二符号位扩展后的部分积中选择第二目标编码部分积,所述第二改进压缩支路23用于对所述第二目标编码部分积进行压缩处理,得到第二目标运算结果,所述部分积交换电路03用于根据所述功能模式选择信号,控制是否对所述第一符号位扩展后的部分积,以及所述第二符号位扩展后的部分积进行交换处理。
具体的,第一乘法运算电路01和第二乘法运算电路02均可以接收一个数据,该数据可以包括两个子数据,这两个子数据可以为同位宽的相同子数据,也可以为同位宽的不同子数据,子数据可以作为乘法运算或乘累加运算中的被乘数和乘数。可选的,上述第一数据以及第二数据中的两个子数据均可以拼接后作为一个整体,输入至第一乘法运算电路01或第二乘法运算电路02,还可以分开同步输入至第一乘法运算电路01或第二乘法运算电路02。其中,上述子数据可以为定点数,且位宽可以为2N,两个子数据拼接后得到的数据位宽可以为4N。可选的,上述第一乘法运算电路01可以包括多个具有不同处理功能的运算单元,这些数据处理单元可以为具有正则有符号数编码处理功能的单元,还可以为具有不同数据处理功能的单元,对此本实施例不做任何限定。
需要说明的是,第一乘法运算电路01中的第一改进CSD编码支路11,以及第一乘法运算电路02中的第二改进CSD编码支路21均可以包括多个具有不同数据处理功能的运算单元,还可以为具有不同处理功能的运算单元;其中,第一改进CSD编码支路11可以对接收到的第一数据进行正则有符号数编码处理,相当于第一改进CSD编码支路11可以对接收到的乘数进行正则有符号数编码处理得到第一目标编码,并根据接收到的被乘数以及第一目标编码,得到第一符号位扩展后的部分积,该第一符号位扩展后的部分积的位宽可以等于数据处理器当前可处理数据位宽的2倍。可选的,第二改进CSD编码支路21可以对接收到的第二数据进行正则有符号数编码处理,相当于第二改进CSD编码支路21可以对接收到的乘数进行正则有符号数编码处理得到第二目标编码,并根据接收到的被乘数以及第二目标编码,得到第二符号位扩展后的部分积。可选的,同一次运算时,第一符号位扩展后的部分积的位宽、第二符号位扩展后的部分积的位宽均可以等于数据处理器当前可处理数据位宽的2倍。可选的,第一乘法运算电路01中的第一改进压缩支路13,以及第一乘法运算电路02中的第二改进压缩支路23均可以包括多个累加处理单元;同时,第一乘法运算电路01中的第一改进CSD编码支路11和第一改进压缩支路13均可以包含逻辑门单元,第二乘法运算电路02中的第二改进CSD编码支路21和第二改进压缩支路23也均可以包含逻辑门单元。可选的,数据处理器在同一次数据运算处理时,第一乘法运算电路01或第二乘法运算电路02,接收到的其中一个子数据可以作为被乘数,另一个子数据可以作为乘数。还可以理解的是,第一符号位扩展后的部分积和第二符号位扩展后的部分积的位宽,均可以等于数据处理器当前可处理乘法运算或乘累加运算时被乘数位宽的2倍。其中,第一符号位扩展后的部分积可以包括符号位扩展后的第一低位部分积,以及符号位扩展后的第一高位部分积;第二符号位扩展后的部分积可以包括符号位扩展后的第二低位部分积,以及符号位扩展后的第二高位部分积。
在本实施例中,上述第一改进CSD编码支路11可以接收运算过程中的乘数,并对该乘数进行正则有符号数编码处理,得到目标编码。需要说明的是,上述正则有符号数编码处理的方法可以通过以下方式表征:对于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转换处理的方式也类似。
例如,第一改进CSD编码支路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,此时,将第五新数据可以称为初始编码,并对该初始编码进行一次补位处理后得到中间编码,表征正则有符号数编码处理完成;其中,初始编码的位宽可以等于乘数的位宽。可选的,第一改进CSD编码支路11对乘数进行正则有符号数编码处理后,得到新数据(即初始编码);若新数据中的最高位数值和次高位数值为“10”或“01”,则第一改进CSD编码支路11可以对该新数据的最高位数值的高一位处补一位数值0,得到对应中间编码的高三位数值分别为“010”或“001”。可选的,上述中间编码的位宽可以等于数据处理器当前可处理数据的位宽加1。
另外,若数据处理器接收到的数据位宽为2N,且当前可处理N位数据运算,则数据处理器中的第一改进CSD编码支路11,可以将2N位数据拆分成两组N位数据分别进行数据运算,此时,将得到的两组(N+1)位中间编码进行结合后可以作为目标编码;若数据处理器当前可处理2N位数据运算,则数据处理器中的第一改进CSD编码支路11,可以对获取的(2N+1)位中间编码的最高位数值的高一位处补一位数值0(即补数处理)后,将补数处理后的(2N+2)位数据作为目标编码。在本实施例中,数据处理器可以对初始编码执行的是补位处理,且对中间编码执行的是补数处理。其中,目标编码可以包括低位目标编码和高位目标编码。需要说明的是,本实施例可以适用于数据处理器接收到的数据位宽大于等于数据处理器当前可处理的数据位宽。
可选的,所述第一乘法运算电路01和所述第二乘法运算电路02中均包括第一输入端,用于接收功能模式选择信号;所述部分积交换电路13中包括第三输入端,用于接收所述功能模式选择信号。可选的,所述功能模式选择信号用于确定所述数据处理器当前可处理不同的数据运算模式。
在本实施例中,第一乘法运算电路01包含的每个数据处理单元均可以接收功能模式选择信号;第二乘法运算电路02包含的每个数据处理单元均可以接收功能模式选择信号。需要说明的是,数据处理器在同一次数据运算处理时,第一乘法运算电路01、第二乘法运算电路02以及部分积交换电路03,接收到的功能模式选择信号均可以相等;且同一次数据运算处理,数据处理器、第一乘法运算电路01和第二乘法运算电路02可以处理的数据位宽可以相等。可选的,上述功能模式选择信号可以有四种,四种功能模式选择信号分别对应数据处理器可处理四种数据运算模式,四种数据运算模式可以为N位*N位数据的乘法运算,N位*N位数据的乘累加运算,2N位*2N位数据的乘法运算以及2N位*N位数据的乘累加运算。在本实施例中,N可以等于4、8、16、32以及64等等,对此数据本实施例不做任何限定。例如,若所述第一数据和第二数据均包括两个2N位子数据,则数据处理器根据接收到的不同功能模式选择信号,可以确定当前可处理对应数据运算模式。其中,四种功能模式选择信号可以用二进制数值分别表示为数值00,01,10,11,也可以为其它的表示方式,本实施例并不做任何限定。例如,mode=00可以表征数据处理器当前可处理N位*N位数据的乘法运算,mode=01可以表征数据处理器当前可处理N位*N位数据的乘累加运算,mode=10可以表征数据处理器当前可处理2N位*2N位数据的乘法运算,mode=11可以表征数据处理器当前可处理2N位*N位数据的乘累加运算,还有,四种功能模式选择信号与四种不同数据运算模式之间可以有任意的对应关系,本实施例对此不做任何限定。
进一步地,当数据处理器当前可处理2N位*N位数据的乘累加运算时,部分积交换电路03可以将第一乘法运算电路01得到的第一符号位扩展后的低位部分积或第一符号位扩展后的高位部分积,与第二乘法运算电路02得到的第二符号位扩展后的低位部分积或第二符号位扩展后的高位部分积进行交换处理;还可以理解为,当数据处理器处理其它三种数据运算模式,此时,数据处理器中的部分积交换电路03可以处于悬空状态(即关闭状态),符号位扩展后的低位部分积和符号位扩展后的高位部分积不做对应交换处理。同时,第一数据和第二数据中的两个子数据位宽均为2N,若数据处理器当前可处理一个N位*N位数据的乘法运算时,该情况下,第一数据和第二数据中有一个数据为全0数据,另一个数据中两个子数据的高位数值均为数值0,或者低位数值均为数值0;根据实际数据运算模式,此时第一数据和第二数据可以按照原始数据进行计算,选择支路可以直接将改进编码支路得到符号位扩展后的部分积,作为目标编码部分积进行压缩处理得到目标运算结果。若数据处理器当前可处理一个2N位*2N位数据的乘法运算时该情况下,第一数据和第二数据中有一个数据为全0数据,另一个数据的两个子数据中高位数值和低位数值均为非0数值。若数据处理器当前可处理两个2N位*2N位数据的乘法运算时,该情况下,第一数据和第二数据中不存在全0数据。
本实施例提供的一种数据处理器,数据处理器通过第一乘法运算电路和第二乘法运算电路分别对接收到的数据进行正则有符号数编码处理,得到符号位扩展后的部分积,并通过部分积交换电路控制是否对第一乘法运算电路得到的第一符号位扩展后的部分积,与第二乘法运算电路得到的第二符号位扩展后的部分积进行交换处理,以得到第一目标编码部分积以及第二目标编码部分积,进而通过第一改进压缩支路对第一目标编码部分积进行压缩处理,以及通过第二改进压缩支路对第二目标编码部分积进行压缩处理得到目标运算结果;该数据处理器不仅能够实现乘法运算,还能够实现乘累加运算,从而提高了数据处理器的通用性,从而降低AI芯片的功耗;另外,该数据处理器并不需要对乘法运算结果再进行一次累加运算才能完成乘累加运算操作,仅通过一次运算过程就可以直接实现乘累加或乘法运算操作,从而降低了数据处理器的功耗;另外,该数据处理器通过改进压缩支路对符号位扩展后的部分积进行压缩处理,可以进一步降低数据处理器的功耗。
图2为另一实施例提供的一种数据处理器的具体结构示意图,如图2所示,所述数据处理器中的第一乘法运算电路01包括第一选择支路12,所述第一选择支路12包括:第一部分积选择子电路121;其中,所述第一部分积选择子电路121用于接收所述部分积交换电路03输出的所述第二符号位扩展后的部分积,以及对所述第一符号位扩展后的部分积进行选择,并且将所述部分积交换电路03输出的所述第二符号位扩展后的部分积,以及选择后得到的所述第一符号位扩展后的部分积,作为所述第一目标编码部分积输入至所述第一改进压缩支路13。
在本实施例中,若数据处理器当前接收到的功能模式选择信号,确定数据处理器当前可处理2N位*N位数据的乘累加运算,则数据处理器中的第一部分积选择子电路121可以接收部分积交换电路03输入的第二符号位扩展后的低位部分积或第二符号位扩展后的高位部分积,并对第一符号位扩展后的部分积进行选择,选择不需要进行交换处理的第一符号位扩展后的高位部分积或者第一符号位扩展后的低位部分积,也就是第一部分积选择子电路121保留第一符号位扩展后的高位部分积或第一符号位扩展后的低位部分积,将第一符号位扩展后的低位部分积或第一符号位扩展后的高位部分积输入至部分积交换电路03,为了通过部分积交换电路03实现交换符号位扩展后的低位部分积或符号位扩展后的高位部分积的功能。但是,若数据处理器当前处理其它三种数据运算模式时,则数据处理器中的第一部分积选择子电路121可以将第一符号位扩展后的高位部分积和第一符号位扩展后的低位部分积全部保留,此时,对符号位扩展后的高位部分积和第一符号位扩展后的低位部分积进行选择处理。
可选的,继续参见图2所示,所述数据处理器中的第二乘法运算电路02包括第二选择支路22,所述第二选择支路22包括:第二部分积选择子电路221;其中,所述第二部分积选择子电路221用于接收所述部分积交换电路03输出的所述第二符号位扩展后的部分积,以及对所述第二符号位扩展后的部分积进行选择,并且将所述部分积交换电路03输出的所述第一符号位扩展后的部分积,以及选择后得到的所述第二符号位扩展后的部分积,作为所述第二目标编码部分积输入至所述第二改进压缩支路23。
可以理解的是,上述第二目标编码可以包括第二低位目标编码和第二高位目标编码。可选的,根据数据处理器当前执行的数据运算模式,第一部分积选择子电路121确定保留所有第一符号位扩展后的部分积、第一符号位扩展后的低位部分积或者第一符号位扩展后的高位部分积;相应地,第二部分积选择子电路221也可以保留所有第二符号位扩展后的部分积、第二符号位扩展后的低位部分积或者第二符号位扩展后的高位部分积。需要说明的是,数据处理器中的第一部分积选择子电路121和第二部分积选择子电路221具体实现功能相同。
本实施例提供的数据处理器,数据处理器通过第一改进编码电路对接收到的第一数据进行正则有符号数编码处理得到第一符号位扩展后的部分积,并数据处理器根据当前可处理的数据运算模式,通过第一部分积选择子电路对第一符号位扩展后的部分积进行选择处理,以得到第一目标编码部分积,通过第一改进压缩支路对第一目标编码部分积进行压缩处理得到目标运算结果;上述数据处理器并不需要对乘法运算结果再进行一次累加运算才能完成乘累加运算操作,仅通过一次运算过程就可以直接实现乘累加或乘法运算操作,从而降低了数据处理器的功耗;同时,该数据处理器不仅能够实现乘法运算,还能够实现乘累加运算,从而提高了数据处理器的通用性,从而降低AI芯片的功耗。
图3为另一实施例提供的数据处理器中的第一改进CSD编码支路11的具体电路结构图,如图3所示,所述第一改进CSD编码支路11包括:第一改进CSD编码单元111、第一低位部分积获取单元112、第一低位选择器组单元113、第一低位与逻辑单元114、第一高位部分积获取单元115、第一高位选择器组单元116以及第一高位与逻辑单元117;所述第一改进CSD编码单元111的第一输出端与所述第一低位部分积获取单元112的第一输入端连接,所述第一低位选择器组单元113的输出端与所述第一低位部分积获取单元112的第二输入端连接,所述第一低位与逻辑单元114的输出端与所述第一低位部分积获取单元112的第三输入端连接,所述第一改进CSD编码单元111的第二输出端与所述第一高位部分积获取单元115的第一输入端连接,所述第一高位选择器组单元116的输出端与所述第一高位部分积获取单元115的第二输入端连接,所述第一高位与逻辑单元117的输出端与所述第一高位部分积获取单元115的第三输入端连接。
其中,所述第一改进CSD编码单元111用于根据接收到的所述功能模式选择信号确定所述第一乘法运算电路01当前可处理数据的位宽,并对接收到的所述第一数据进行正则有符号数编码处理,得到第一低位目标编码以及第一高位目标编码,所述第一低位部分积获取单元112用于根据接收到的所述第一低位目标编码以及所述第一数据,得到第一符号位扩展后的低位部分积,所述第一低位选择器组单元113用于选通所述第一符号位扩展后的低位部分积中的第一数值,所述第一低位与逻辑单元114用于根据接收到的所述功能模式选择信号进行与逻辑运算,得到所述第一符号位扩展后的低位部分积中的第二数值,所述第一高位部分积获取单元115用于根据接收到的所述第一高位目标编码以及所述第一数据,得到第一符号位扩展后的高位部分积,所述第一高位选择器组单元116用于选通所述第一符号位扩展后的高位部分积中的第三数值,所述第一高位与逻辑单元117用于根据接收到的所述功能模式选择信号进行与逻辑运算,得到所述第一符号位扩展后的高位部分积中的第四数值。
具体的,上述第一改进CSD编码单元111可以接收第一数据中的乘数,并对该乘数进行正则有符号数编码处理,得到第一低位目标编码和第一高位目标编码,该第一数据可以为乘法运算中的乘数,第一低位目标编码和第一高位目标编码可以统称为第一目标编码。可选的,第一低位部分积获取单元112可以根据接收到的第一数据中的被乘数,以及第一改进CSD编码单元111得到的第一低位目标编码,得到第一符号位扩展后的低位部分积;第一高位部分积获取单元115可以根据接收到的第一数据中的被乘数,以及第一改进CSD编码单元111得到的第一高位目标编码,得到第一符号位扩展后的高位部分积。其中,上述第一数据可以包括乘法运算或乘累加运算中的乘数以及被乘数。若数据处理器当前可处理的数据位宽为N比特,数据处理器中的第一改进CSD编码单元111接收到的两个数据的位宽均为2N比特,则第一改进CSD编码单元111可以自动将接收到2N位数据拆分成高N位数据以及低N位数据;然后分别对高N位数据和低N位数据进行正则有符号数编码处理,得到的第一高位目标编码的位宽等于N加1,得到的第一低位目标编码的位宽也等于N加1;同时,得到的对应第一目标编码高位部分积和第一目标编码低位部分积的数量,均可以等于(N+1);若数据处理器当前可处理的数据位宽为2N,数据处理器中的第一改进CSD编码单元111接收到的第一数据和第二数据的位宽为2N,则第一改进CSD编码单元111可以对接收到2N位第一数据进行正则有符号数编码处理,得到(2N+1)位的中间编码,并对中间编码进行补数处理,得到(2N+2)位数据,将这(2N+2)位的数据作为第一目标编码,其中,补数处理可以表征为对数据的最高位数值的高一位处补数值0;此时,第一目标编码中的高(N+1)位数据可以称为第一高位目标编码,第一目标编码中的低(N+1)位数据可以称为第一低位目标编码。可选的,第一目标编码的最高位数值为补数处理后获取的数值0,对应得到的目标编码部分积中包含的数值均可以为数值0。
进一步地,数据处理器接收到的数据均可以包括低位数据以及高位数据,若该数据为“y7y6y5y4y3y2y1y0”,则高位数据可以为“y7y6y5y4”,低位数据可以为“y3y2y1y0”;也就是,若数据位宽为N时,则数据中高N位数值可以称为高位数据,低N位数值可以称为低位数据。
需要说明的是,上述第一低位选择器组单元113可以根据接收到的功能模式选择信号,选通第一符号位扩展后的低位部分积中的部分位数值,为N位乘法运算得到的符号位扩展后的低位部分积中的数值,还是为2N位乘法运算得到的符号位扩展后的低位部分积中的数值;同理,第一高位选择器组单元116可以根据接收到的功能模式选择信号,选通第一符号位扩展后的高位部分积中的部分位数值,为N位乘法运算得到的符号位扩展后的高位部分积中的数值,还是为2N位乘法运算得到的符号位扩展后的高位部分积中的数值。
进一步地,上述第一低位与逻辑单元114可以根据接收到的功能模式选择信号进行与逻辑运算得到逻辑运算结果,并将该逻辑运算结果输出,作为第一符号位扩展后的低位部分积中的部分位数值,为2N位乘法运算得到的符号位扩展后的低位部分积中的数值;第一低位与逻辑单元114还可以根据接收到的功能模式选择信号进行与逻辑运算得到逻辑运算结果,并将该逻辑运算结果作为第一符号位扩展后的低位部分积中的部分位数值,为N位乘法运算得到的符号位扩展后的低位部分积中的数值。同理,第一高位与逻辑单元117可以根据接收到的功能模式选择信号进行与逻辑运算得到逻辑运算结果,并将该逻辑运算结果输出,作为第一符号位扩展后的高位部分积中的部分位数值,为2N位乘法运算得到的第一符号位扩展后的高位部分积中的数值;第一高位与逻辑单元117还可以根据接收到的功能模式选择信号进行与逻辑运算得到逻辑运算结果,并将该逻辑运算结果作为第一符号位扩展后的高位部分积中的部分位数值,为N位乘法运算得到的符号位扩展后的高位部分积中的数值。其中,第一低位与逻辑单元114与第一低位选择器组单元113,输出第一符号位扩展后的低位部分积中的部分位数值,分别对应第一符号位扩展后的低位部分积中的不同位数值;第一高位与逻辑单元117与第一高位选择器组单元116,输出第一符号位扩展后的高位部分积中的部分位数值,分别对应第一符号位扩展后的高位部分积中的不同位数值。在本实施例中,实际上进行与逻辑运算的数据为表示功能模式选择信号的具体数值。
可以理解的是,若数据处理器接收到的数据位宽可以为2N比特,当前可处理N位数据乘法运算,则数据处理器中的第一低位部分积获取单元112可以根据每个第一低位目标编码,得到低N位数据对应的符号位扩展后的部分积;上述第一低位选择器组单元113可以选通第一符号位扩展后的低位部分积中的第一数值;上述第一低位与逻辑单元114可以将最终输出的结果作为第一符号位扩展后的低位部分积中的第二数值;然后第一低位部分积获取单元112将符号位扩展后的部分积、选通后获取的第一符号位扩展后的低位部分积中的第一数值,以及与逻辑运算得到的第一符号位扩展后的低位部分积中的第二数值进行结合,得到第一符号位扩展后的低位部分积。可选的,第一改进CSD编码支路11包含的第一低位部分积获取单元112的数量,可以等于第一乘法运算电路01当前可处理数据的位宽加1(图3仅示出了第一改进CSD编码支路11中的一个第一低位部分积获取单元112的电路结构示意图)。
还可以理解的是,数据处理器中的第一高位部分积获取单元115可以根据第一高位目标编码得到高N位数据对应的符号位扩展后的部分积;上述第一高位选择器组单元116可以选通第一符号位扩展后的高位部分积中的第三数值;所述第一高位与逻辑单元117可以将最终输出的逻辑运算结果作为第一符号位扩展后的高位部分积中的第四数值;然后第一高位部分积获取单元115将符号位扩展后的部分积、选通后获取的第一符号位扩展后的高位部分积中的第三数值,以及与逻辑运算得到的第一符号位扩展后的高位部分积中的第四数值进行结合,得到第一符号位扩展后的高位部分积。可选的,第一改进CSD编码支路11包含的第一高位部分积获取单元115的数量,可以等于第一乘法运算电路01当前可处理的数据位宽的位宽加1(图3仅示出了第一改进CSD编码支路11中的一个第一高位部分积获取单元115的电路结构示意图)。
其中,正则有符号数编码处理过程中,第一改进CSD编码单元111得到的第一低位目标编码的位宽可以等于得到的第一高位目标编码的位宽。可选的,上述每个第一低位部分积获取单元112可以包含2N个数值生成子单元,每个第一高位部分积获取单元115也可以包含2N个数值生成子单元,每个数值生成子单元可以获取第一低位部分积获取单元112得到的第一符号位扩展后的低位部分积中的一位数值,还可以获取第一高位部分积获取单元115得到的第一符号位扩展后的高位部分积中的一位数值,N表示第一乘法运算电路01当前可处理的数据位宽。
可选的,图4为另一实施例提供的数据处理器中的第二改进CSD编码支路21的具体电路结构图,如图4所示,所述第二改进CSD编码支路21包括:第二改进CSD编码单元211、第二低位部分积获取单元212、第二低位选择器组单元213、第二低位与逻辑单元214、第二高位部分积获取单元215、第二高位选择器组单元216以及第二高位与逻辑单元217;所述第二改进CSD编码单元211的第一输出端与所述第二低位部分积获取单元212的第一输入端连接,所述第二低位选择器组单元213的输出端与所述第二低位部分积获取单元212的第二输入端连接,所述第二低位与逻辑单元214的输出端与所述第二低位部分积获取单元212的第三输入端连接,所述第二改进CSD编码单元211的第二输出端与所述第二高位部分积获取单元215的第一输入端连接,所述第二高位选择器组单元216的输出端与所述第二高位部分积获取单元215的第二输入端连接,所述第二高位与逻辑单元217的输出端与所述第二高位部分积获取单元215的第三输入端连接。
其中,所述第二改进CSD编码单元211用于根据接收到的所述功能模式选择信号确定所述第二乘法运算电路02当前可处理数据的位宽,并对接收到的所述第二数据进行正则有符号数编码处理得到第二低位目标编码以及第二高位目标编码,所述第二低位部分积获取单元212用于根据接收到的所述第二低位目标编码以及所述第二数据,得到第二符号位扩展后的低位部分积,所述第二低位选择器组单元213用于选通所述第二符号位扩展后的低位部分积中的第五数值,所述第二低位与逻辑单元214用于根据接收到的所述功能模式选择信号进行与逻辑运算,得到所述第二符号位扩展后的低位部分积中的第六数值,所述第二高位部分积获取单元215用于根据接收到的所述第二高位目标编码以及所述第二数据,得到第二符号位扩展后的高位部分积,所述第二高位选择器组单元216用于选通所述第二符号位扩展后的高位部分积中的第七数值,所述第二高位与逻辑单元217用于根据接收到的所述功能模式选择信号进行与逻辑运算,得到所述第二符号位扩展后的高位部分积中的第八数值。
在本实施例中,第二改进CSD编码支路21中的第二低位选择器组单元213,选通第二符号位扩展后的低位部分积中的第五数值的具体方式,与第一改进CSD编码支路11中的第一低位选择器组单元113,选通第一符号位扩展后的低位部分积中的第一数值的具体方式可以相同;第二改进CSD编码支路21中的第二低位与逻辑单元214选通第二符号位扩展后的低位部分积中的第六数值的具体方式,与第一改进CSD编码支路11中的第一低位与逻辑单元114,选通第一符号位扩展后的低位部分积中的第二数值的具体方式可以相同;第二改进CSD编码支路21中的第二高位选择器组单元216选通第二符号位扩展后的低位部分积中的第七数值的具体方式,与第一改进CSD编码支路11中的第一高位选择器组单元116,选通第一符号位扩展后的低位部分积中的第三数值的具体方式可以相同;第二改进CSD编码支路21中的第二高位与逻辑单元217选通第二符号位扩展后的高位部分积中的第八数值的具体方式,与第一改进CSD编码支路11中的第一高位与逻辑单元117,选通第一符号位扩展后的高位部分积中的第八数值的具体方式可以相同;因此,第二改进CSD编码支路21获取第二符号位扩展后的部分积中的第五数值、第六数值、第七数值和第八数值的具体方式本实施例不再赘述。另外,第二改进CSD编码子电路21对目标编码的处理方法与第一改进CSD编码支路11对目标编码的处理方法可以相同,具体实现方式不再赘述。可选的,第二改进CSD编码子电路21与第一改进CSD编码支路11的内部电路结构,以及外部输出端口的功能也可以相同。
本实施例提供的一种数据处理器,数据处理器通过改进CSD编码支路,对接收到的数据进行正则有符号数编码处理,得到低位目标编码及高位目标编码,并且低位部分积获取单元和高位部分积获取单元根据低位目标编码及高位目标编码,分别得到符号位扩展后的低位部分积以及符号位扩展后的高位部分积,进而通过改进压缩支路对符号位扩展后的低位部分积以及符号位扩展后的高位部分积进行累加处理,以得到目标运算结果;上述数据处理器可以实现多种不同位宽数据的乘法运算和乘累加运算,提高了数据处理器的通用性,从而降低AI芯片的功耗;另外,数据处理器通过改进压缩支路对符号位扩展后的部分积进行累加运算,还可以有效降低数据处理器功耗。
作为其中一个实施例,继续参见图3所示,所述第一改进CSD编码支路11中的第一改进CSD编码单元111包括:第一数据输入端口1111、第一模式选择信号输入端口112以及第一目标编码输出端口1113;所述第一数据输入端口1111用于接收所述第一数据,所述第一模式选择信号输入端口112用于接收所述功能模式选择信号,所述第一目标编码输出端口1113用于输出对所述第一数据进行正则有符号数编码处理后,得到的所述第一低位目标编码和所述第一高位目标编码。
具体的,乘法运算过程中,数据处理器中的第一改进CSD编码单元111可以通过第一数据输入端口111接收第一数据,通过第一模式选择信号输入端口112接收功能模式选择信号,对第一数据中的乘数进行正则有符号数编码处理得到中间编码,并根据接收到的功能模式选择信号确定是否需要对中间编码进行补数处理,以得到第一目标编码,然后通过目标编码输出端口113输出第一目标编码中的第一低位目标编码和第一高位目标编码。
可选的,继续参见图4所示,所述第二改进CSD编码支路21中的第二改进CSD编码单元211包括:第二数据输入端口2111、第二模式选择信号输入端口2112以及第二目标编码输出端口2113;所述第二数据输入端口2111用于接收所述第二数据,所述第二模式选择信号输入端口2112用于接收所述功能模式选择信号,所述第二目标编码输出端口2113用于输出对所述第二数据进行正则有符号数编码处理后,得到的所述第二低位目标编码和所述第二高位目标编码。
在本实施例中,数据处理器中的第二改进CSD编码单元211的内部电路结构和具体实现功能,与数据处理器中的第一改进CSD编码单元111的内部电路结构和具体实现功相同,因此,本实施例不再赘述第二改进CSD编码单元211的内部电路结构和具体实现功能。
本实施例提供的一种数据处理器,该数据处理器能够对接收到的数据进行正则有符号数编码处理,以降低乘法运算过程中获取的有效部分积的数量,从而降低数据处理器实现乘法运算或者乘累加运算的复杂性,提高了运算效率,有效降低了数据处理器的功耗。
作为其中一个实施例,继续参见图3所示,所述第一改进CSD编码支路11中的第一低位部分积获取单元112包括:第一低位目标编码输入端口1121、第一选通数值输入端口1122、第二选通数值输入端口1123、第一数据输入端口1124以及第一低位部分积输出端口1125;所述第一低位目标编码输入端口1121用于接收所述第一改进CSD编码单元111输出的所述第一目标编码中的第一低位目标编码,所述第一选通数值输入端口1122用于接收所述第一低位选择器组单元113选通后,输出的所述第一符号位扩展后的低位部分积中的第一数值,所述第二选通数值输入端口1123用于接收所述第一低位与逻辑单元114输出的所述第一符号位扩展后的低位部分积中的第二数值,所述第一数据输入端口1124用于接收所述第一数据,所述第一低位部分积输出端口1125用于输出所有第一符号位扩展后的低位部分积。
具体的,数据处理器中的第一低位部分积获取单元112通过第一低位目标编码输入端口1121,可以接收第一改进CSD编码单元111输出的第一低位目标编码,并通过第一数据输入端口1124可以接收第一数据中的被乘数。可选的,第一低位部分积获取单元112可以根据接收到的第一低位目标编码,以及接收到的乘法运算或乘累加运算中的被乘数,得到对应的符号位扩展后的第一低位部分积;并且第一低位部分积获取单元112通过第一选通数值输入端口1122,可以接收第一低位选择器组单元113输出的第一符号位扩展后的低位部分积中的第一数值;第一低位部分积获取单元112通过第二选通数值输入端口1123,可以接收第一低位与逻辑单元114输出的第一符号位扩展后的低位部分积中的第二数值。最后将第一选通数值输入端口1122接收到的第一符号位扩展后的低位部分积中的第一数值、第二选通数值输入端口1123接收到的第一符号位扩展后的低位部分积中的第二数值以及符号位扩展后的第一低位部分积进行组合,得到第一符号位扩展后的低位部分积。可选的,若数据处理器当前可处理的数据位宽为2N,则数据处理器中的第一低位部分积获取单元112可以包含4N个数值生成子单元,每个数值生成子单元可以对应得到第一符号位扩展后的低位部分积中的一位数值,其中,2N个数值生成子单元可以连接2N个第一低位与逻辑单元114,N个数值生成子单元可以连接N个选择器,还有剩余的N个数值生成子单元不连接第一低位与逻辑单元114和选择器;剩余的N个数值生成子单元可以为第一符号位扩展后的低位部分积中,对应从最低位(即第1位)向最高位算起,第1位至第N位数值之间对应位数值生成子单元。其中,数值生成子单元的数量可以等于第一乘法运算电路01当前可处理数据位宽的2倍;第一低位部分积获取单元112得到的第一符号位扩展后的低位部分积的位宽可以等于4N。其中,每个第一低位部分积获取单元112中4N个数值生成子单元的位置分布可以描述为:每个第一低位部分积获取单元112中相同位数值生成子单元均位于同一列。
示例性的,若第一低位部分积获取单元112接收到一个N位被乘数X,则第一低位部分积获取单元112可以根据被乘数X以及第一低位目标编码中包含的三种数值,即-1,1和0,得到对应的原始部分积,并根据原始部分积得到符号位扩展后的第一低位部分积;该符号位扩展后的第一低位部分积中的低(N+1)位数值可以等于原始部分积包含的所有数值,符号位扩展后的第一低位部分积中的高(N-1)位数值均可以等于原始部分积的符号位数值(即最高位数值)。其中,当第一低位目标编码中的数值为-1时,则原始部分积可以为-X,当第一低位目标编码中的数值为1时,则原始部分积可以为X,当第一低位目标编码中的数值为0时,则原始部分积可以为0。
进一步地,第一改进CSD编码支路11中包含的第一低位部分积获取单元112的数量可以等于第一低位目标编码的位宽;所有第一低位部分积获取单元112得到的所有第一符号位扩展后的低位部分积的分布形式可以表征为,第一个第一符号位扩展后的低位部分积中的最低位数值,与其它第一符号位扩展后的低位部分积中的最低位数值均位于对应同一列;第一个第一符号位扩展后的低位部分积中的其它位数值与其它第一符号位扩展后的低位部分积中的对应位数值均位于对应同一列。
可选的,继续参见图4所示,所述第二改进CSD编码支路21中的第二低位部分积获取单元212包括:第二低位目标编码输入端口2121、第五选通数值输入端口2122、第六选通数值输入端口2123、第二数据输入端口2124以及第二低位部分积输出端口2125;所述第二低位目标编码输入端口2121用于接收所述第二改进CSD编码单元211输出的所述第二目标编码中的第二高位目标编码,所述第五选通数值输入端口2122用于接收所述第二低位选择器组单元213选通后,输出的所述第二符号位扩展后的低位部分积中的第五数值,所述第六选通数值输入端口2123用于接收所述第二低位与逻辑单元214输出的所述第二符号位扩展后的低位部分积中的第六数值,所述第二数据输入端口2124用于接收所述第二数据,所述第二低位部分积输出端口2125用于输出所有第二符号位扩展后的低位部分积。
可以理解的是,上述第二改进CSD编码子电路21中的第二低位部分积获取单元212的内部电路结构和具体实现功能,与第一改进CSD编码支路11中第一低位部分积获取单元112的内部电路结构和具体实现功能相同,因此,本实施例对第二低位部分积获取单元212的电路结构和具体实现功能不再赘述。可选的,第二低位部分积获取单元212和第一低位部分积获取单元112对数据处理的方式也相同,对此本实施例也不再赘述。
本实施例提供的一种数据处理器,该数据处理器可以通过第一低位部分积获取单元根据接收到的第一低位目标编码,以及接收到的第一数据中的被乘数,得到第一符号位扩展后的低位部分积,进而通过第一改进压缩支路对第一符号位扩展后的低位部分积进行压缩处理,以得到第一目标运算结果;上述数据处理器可以实现多种不同位宽数据的乘法运算和乘累加运算,提高了数据处理器的通用性,从而降低AI芯片的功耗。
在其中一个实施例中,继续参见图3所示,所述第一改进CSD编码支路11中的第一低位选择器组单元113包括:第一低位选择器1131,多个所述第一低位选择器1131用于选通所述第一符号位扩展后的低位部分积中的第一数值。
具体的,上述第一低位选择器组单元113中第一低位选择器1131的数量,可以等于N*(N+1),2N可以表示第一乘法运算电路01当前可以处理的数据位宽;该第一低位选择器组单元113中每个第一低位选择器1131的内部电路结构均可以相同。可选的,数据处理器执行乘法运算或者乘累加运算时,第一改进CSD编码支路11连接的对应(N+1)个第一低位部分积获取单元112中,每个第一低位部分积获取单元112可以包含4N个数值生成子单元;其中每个第一低位部分积获取单元112中的N个数值生成子单元可以连接N个第一低位选择器1131,这N个数值生成子单元均分别可以连接一个第一低位选择器1131。可选的,N个第一低位选择器1131对应的N个数值生成子单元,可以为第一符号位扩展后的低位部分积中,对应从最低位(即第1位)向最高位算起,第(N+1)位至第2N位数值之间对应位数值生成子单元;同时,该N个第一低位选择器1131的外部输入端口除了模式选择信号输入端口(mode信号输入端口)外,还有其它两个输入端口。可选的,若数据处理器可以处理n种不同位宽的数据运算,并且数据处理器接收到的数据位宽为2N,则上述第一低位选择器1131的其它两个输入端口接收的信号分别可以为,数据处理器进行2N位数据运算,得到的符号位扩展后的低位部分积中的符号位数值;和数据处理器进行2N位数据运算,得到的符号位扩展后的低位部分积中的对应位数值。可选的,若数据处理器进行2N位数据运算时,每个第一低位选择器1131可以选通2N位数据运算,得到的符号位扩展后的低位部分积中的对应位数值,即第一数值;若数据处理器进行N位数据运算时,每个第一低位选择器1131可以选通N位数据运算得到的符号位扩展后的低位部分积中的符号位数值,即第一数值。
可选的,继续参见图3所示,所述第一改进CSD编码支路11中的第一高位选择器组单元116包括:第一高位选择器1161,多个所述第一高位选择器1161用于选通所述第一符号位扩展后的高位部分积中的第三数值。
需要说明的是,第一高位选择器组单元116中第一高位选择器1161的数量,可以等于N*(N+1),2N可以表示数据处理器当前可处理数据的位宽,该第一高位选择器组单元116中每个第一高位选择器1161的内部电路结构可以相同。可选的,数据处理器执行乘法运算或者乘累加运算时,第一改进CSD编码支路11连接的对应(N+1)个第一高位部分积获取单元115中,每个第一高位部分积获取单元115可以包含4N个数值生成子单元,其中每个第一高位部分积获取单元115包含的N个数值生成子单元可以连接N个第一高位选择器1161,这N个数值生成子单元均分别可以连接一个第一高位选择器1161。可选的,N个第一高位选择器1161对应的N个数值生成子单元,可以为第一符号位扩展后的高位部分积中,对应从最高位(即第1位)向最低位算起,第(3N+1)位至第4N位数值之间对应位数值生成子单元;同时,该N个第一高位选择器1161的外部输入端口除了模式选择信号输入端口(mode信号输入端口)外,还有其它两个输入端口。可选的,若数据处理器可以处理n种不同位宽的数据运算,并且数据处理器接收到的数据的位宽为2N,则上述第一高位选择器1161的其它两个输入端口接收的信号分别可以为,数据处理器进行N位数据运算,得到的符号位扩展后的高位部分积中的符号位数值,和数据处理器进行2N位数据运算,得到的符号位扩展后的高位部分积中的符号位数值。可选的,若数据处理器进行不同位宽的数据运算时,第一高位选择器1161选通的是第三数值可以为对应不同位数据运算时,得到的符号位扩展后的高位部分积中的符号位数值。
可选的,继续参见图4所示,所述第二改进CSD编码子电路21中的第二低位选择器组单元213包括:第二低位选择器2131,多个所述第二低位选择器2131用于选通所述第二符号位扩展后的低位部分积中的第五数值。
在本实施例中,上述第二改进CSD编码子电路21中的第二低位选择器组单元213,选通的第二符号位扩展后的低位部分积中的第五数值的位置和方式,与第一改进CSD编码支路11中的第一低位选择器组单元113,选通的第一符号位扩展后的低位部分积中的第一数值的位置和方式相同,因此,本实施例不再赘述第二低位选择器组单元213选通第五数值的方式,以及第五数值在第二符号位扩展后的低位部分积中的位置。同时,上述第二改进CSD编码子电路21中的第二低位选择器组单元213的电路结构和具体实现功能,与第一改进CSD编码支路11中的第一低位选择器组单元113的电路结构和具体实现功能可以完全相同,因此,本实施例不再赘述第二低位选择器组单元213的电路结构和具体实现功能;第二低位选择器组单元213与第一低位选择器组单元113对数据处理的方式也可以相同,对此本实施例也不再赘述。
可选的,继续参见图4所示,所述第二改进CSD编码子电路21中的第二高位选择器组单元216包括:第二高位选择器2161,多个所述第二高位选择器2161用于选通所述第二符号位扩展后的高位部分积中的第七数值。
在本实施例中,上述第二改进CSD编码子电路21中的第二高位选择器组单元216,选通的第二符号位扩展后的高位部分积中的第七数值的位置和方式,与第一改进CSD编码支路11中的第一高位选择器组单元116,选通的第一符号位扩展后的高位部分积中的第三数值的位置和方式相同,因此,本实施例不再赘述第二高位选择器组单元216选通第七数值的方式,以及第七数值在第二符号位扩展后的高位部分积中的位置。同时,上述第二改进CSD编码子电路21中的第二高位选择器组单元216的电路结构和具体实现功能,与第一改进CSD编码支路11中的第一高位选择器组单元116的电路结构和具体实现功能可以完全相同,因此,本实施例不再赘述第二高位选择器组单元216的电路结构和具体实现功能;第二高位选择器组单元216与第一高位选择器组单元116对数据处理的方式也可以相同,对此本实施例也不再赘述。
本实施例提供的一种数据处理器,该数据处理器可以通过第一低位选择器组单元选通第一符号位扩展后的低位部分积中的部分位数值,以得到第一符号位扩展后的低位部分积,进而通过改进压缩支路对第一符号位扩展后的低位部分积进行压缩处理,以得到第一目标运算结果;上述数据处理器可以实现多种不同位宽数据的乘法运算和乘累加运算,提高了数据处理器的通用性,从而降低AI芯片的功耗。
作为其中一个实施例,继续参见图3所述,所述第一改进CSD编码支路11中的第一低位与逻辑单元114包括:第一模式选择信号输入端口1141、第一符号位数值输入端口1142以及第一结果输出端口1143;其中,所述第一模式选择信号输入端口1141用于接收所述功能模式选择信号,所述第一符号位数值输入端口1142用于接收所述符号位扩展后的低位部分积中的第一符号位数值,所述第一结果输出端口1143用于输出对所述功能模式选择信号与所述第一符号位数值进行与逻辑运算,得到的第二数值。
具体的,若数据处理器接收的数据为2N位,且数据处理器中的第一模式选择信号输入端口1141接收到的功能模式选择信号为数值0,此时,数据处理器可以对N位数据进行乘法运算,并且第一低位与逻辑单元114可以对功能模式选择信号,与第一符号位数值输入端口1142接收到的第一符号位数值进行与逻辑运算得到第三逻辑运算结果,并将第三逻辑运算结果通过第一结果输出端口1143输出,发送至第一低位部分积获取单元112;实际上,第一低位与逻辑单元114是对表示功能模式选择信号的数值与第一符号位数值进行与逻辑运算的得到第三逻辑运算结果,其中,该第三逻辑运算结果可以作为第一符号位扩展后的低位部分积中的第二数值。可选的,第一低位与逻辑单元114通过第一符号位数值输入端口1142可以接收其它部分积获取电路发送的第一符号位数值,上述其它部分积获取电路可以为数据处理器内部的其它部分积获取电路,或者数据处理器外的其它处理器中的部分积获取电路。可选的,若数据处理器中的第一模式选择信号输入端口1141接收到的功能模式选择信号为数值1,此时,数据处理器可以对2N位数据进行乘法运算,并且第一低位与逻辑单元114可以对表示功能模式选择信号的数值,与第一符号位数值输入端口1142接收到的第一符号位数值进行与逻辑运算,得到第三逻辑运算结果,并将第三逻辑运算结果通过第一结果输出端口1143输出,发送至第一高位部分积获取单元115;其中,第一符号位数值可以等于数据处理器对2N位数据进行乘法运算的过程中,得到的符号位扩展后的低位部分积中的符号位数值。另外,若数据处理器当前可处理的数据位宽也为2N,则数据处理器中的每个第一低位部分积获取单元112包含的4N个数值生成子单元中,连接N个第一低位与逻辑单元114的N个数值生成子单元可以第一符号位扩展后的低位部分积中,对应从最低位(即第1位)向最高位算起,第(2N+1)位至第4N位数值之间对应位数值生成子单元。可选的,上述第三逻辑运算结果可以为第一符号位扩展后的低位部分积种的第二数值。
可选的,继续参见图3所示,所述第一改进CSD编码支路11中的第一高位与逻辑单元117包括:第二模式选择信号输入端口1171、第二符号位数值输入端口1172以及第二结果输出端口1173;其中,所述第二模式选择信号输入端口1171用于接收所述功能模式选择信号,所述第二符号位数值输入端口1172用于接收所述符号位扩展后的高位部分积中的第二符号位数值,所述第二结果输出端口1173用于输出对所述功能模式选择信号与所述第二符号位数值进行与逻辑运算,得到的第四数值。
需要说明的是,若数据处理器接收的数据为2N位,且数据处理器中的第二模式选择信号输入端口1171接收到的功能模式选择信号为数值0,此时,数据处理器可以对N位数据进行乘法运算,并且第一高位与逻辑单元117可以对表示功能模式选择信号的数值与第二符号位数值输入端口1172接收到的第二符号位数值进行与逻辑运算,到第四逻辑运算结果,并将第四逻辑运算结果通过第二结果输出端口1173输出;若数据处理器中的第二模式选择信号输入端口1171接收到的功能模式选择信号为数值1,此时,数据处理器可以对2N位数据进行乘法运算,并且第一高位与逻辑单元117可以对表示功能模式选择信号的数值与第二符号位数值输入端口1172接收到的第二符号位数值进行与逻辑运算,得到第四逻辑运算结果,并将第四逻辑运算结果通过第二结果输出端口1173输出;其中,第二符号位数值可以等于数据处理器对2N位数据进行乘法运算的过程中,得到符号位扩展后的高位部分积中的符号位数值。另外,若数据处理器当前可处理的数据位宽也为2N,则数据处理器中的第一高位部分积获取单元115包含的4N个数值生成子单元中,连接2N个第一高位与逻辑单元117的N个数值生成子单元可以第一符号位扩展后的高位部分积中,对应从最低位(即第1位)向最高位算起,第1位至第2N位数值之间对应位数值生成子单元。可选的,上述第四逻辑运算结果可以为第一符号位扩展后的高位部分积种的第四数值。
可选的,继续参见图4所示,所述第二改进CSD编码子电路21中的第二低位与逻辑单元214包括:第三模式选择信号输入端口2141、第三符号位数值输入端口2142以及第三结果输出端口2143;其中,所述第三模式选择信号输入端口2141用于接收所述功能模式选择信号,所述第三符号位数值输入端口2142用于接收所述符号位扩展后的低位部分积中的第三符号位数值,所述第一结果输出端口2143用于输出对所述功能模式选择信号与所述第三符号位数值进行与逻辑运算得到的第五逻辑运算结果。
可以理解的是,上述第五逻辑运算结果可以为第二符号位扩展后的低位部分积中的第六数值;第六数值在第二符号位扩展后的低位部分积中的位置,与第二数值在第一符号位扩展后的低位部分积中的位置相同,因此,本实施例对第六数值在第二符号位扩展后的低位部分积中的位置不再详细赘述。在本实施例中,上述第二低位与逻辑单元214的电路结构和具体实现功能,与第一低位与逻辑单元114的电路结构和具体实现功能可以完全相同,第二低位与逻辑单元214与第一低位与逻辑单元114对数据处理的方式也可以相同,对此本实施例不再赘述。
可选的,继续参见图4所示,所述第二改进CSD编码子电路21中的第二高位与逻辑单元217包括:第四模式选择信号输入端口2171、第四符号位数值输入端口2172以及第四结果输出端口2173;其中,所述第二模式选择信号输入端口2171用于接收所述功能模式选择信号,所述第四符号位数值输入端口2172用于接收所述符号位扩展后的高位部分积中的第四符号位数值,所述第四结果输出端口2173用于输出对所述功能模式选择信号与所述第四符号位数值进行与逻辑运算得到的第六逻辑运算结果。
还可以理解的是,上述第六逻辑运算结果可以为第二符号位扩展后的高位部分积中的第八数值;第八数值在第二符号位扩展后的高位部分积中的位置,与第四数值在第一符号位扩展后的高位部分积中的位置相同,因此,本实施例对第八数值在第二符号位扩展后的高位部分积中的位置不再详细赘述。在本实施例中,上述第二高位与逻辑单元217的电路结构和具体实现功能,与第一低位与逻辑单元114的电路结构和具体实现功能可以完全相同,第二高位与逻辑单元217与第一低位与逻辑单元114对数据处理的方式也可以相同,对此本实施例不再赘述。
本实施例提供的一种数据处理器,该数据处理器可以通过第一低位与逻辑单元进行处理得到第一符号位扩展后的低位部分积中的部分位数值,进而以得到第一符号位扩展后的低位部分积,并通过改进压缩支路对第一符号位扩展后的低位部分积进行压缩处理,以得到第一目标运算结果;上述数据处理器可以实现多种不同位宽数据的乘法运算和乘累加运算,提高了数据处理器的通用性,从而降低AI芯片的功耗。
作为其中一个实施例,继续参见图3所示,所述第一改进CSD编码支路11中的第一高位部分积获取单元115包括:第一高位目标编码输入端口1151、第三选通数值输入端口1152、第四选通数值输入端口1153、第一数据输入端口1154以及第一高位部分积输出端口1155;所述第一高位目标编码输入端口1151用于接收所述第一改进CSD编码单元111输出的所述第一目标编码中的第一高位目标编码,所述第三选通数值输入端口1152用于接收所述第一高位选择器组单元116选通后,输出的所述第一符号位扩展后的高位部分积中的第三数值,所述第四选通数值输入端口1153用于接收所述第一高位与逻辑单元117输出的所述第一符号位扩展后的高位部分积中的第四数值,所述第一数据输入端口1154用于接收所述第一数据,所述第一高位部分积输出端口1155用于输出所有第一符号位扩展后的高位部分积。
具体的,数据处理器中的第一高位部分积获取单元115通过第一高位目标编码输入端口1151,可以接收第一改进CSD编码单元111输出的第一高位目标编码,并通过第一数据输入端口1154可以接收第一数据中的被乘数。可选的,第一高位部分积获取单元115可以根据接收到的第一高位目标编码,以及接收到的乘法运算或乘累加运算中的被乘数,得到对应的符号位扩展后的高位部分积;并且第一高位部分积获取单元115通过第三选通数值输入端口1152,可以接收第一高位选择器组单元116输出的第一符号位扩展后的高位部分积中的第三数值;第一高位部分积获取单元115通过第四选通数值输入端口1153,可以接收第一高位与逻辑单元117输出的第一符号位扩展后的高位部分积中的第四数值。最后将第三选通数值输入端口1152接收到的第一符号位扩展后的高位部分积中的第三数值、第四选通数值输入端口1153接收到的第一符号位扩展后的高位部分积中的第四数值以及符号位扩展后的高位部分积进行组合,得到第一符号位扩展后的高位部分积。可选的,若数据处理器当前可处理的数据位宽为2N,则数据处理器中的第一高位部分积获取单元115可以包含4N个数值生成子单元,每个数值生成子单元可以对应得到第一符号位扩展后的高位部分积中的一位数值,其中,2N个数值生成子单元可以连接2N个第一高位与逻辑单元117,N个数值生成子单元可以连接N个选择器,还有剩余的N个数值生成子单元不连接第一高位与逻辑单元117和选择器;剩余的N个数值生成子单元可以为第一符号位扩展后的高位部分积中,对应从最低位(即第1位)向最高位算起,第(2N+1)位至第3N位数值之间对应位数值生成子单元。其中,数值生成子单元的数量可以等于第一乘法运算电路01当前可处理数据位宽的2倍;第一高位部分积获取单元115得到的第一符号位扩展后的高位部分积的位宽可以等于4N。其中,每个第一高位部分积获取单元115中4N个数值生成子单元的位置分布可以描述为:每个第一高位部分积获取单元115中相同位数值生成子单元均位于同一列。
示例性的,若第一高位部分积获取单元115接收到一个N位被乘数X,则第一高位部分积获取单元115可以根据被乘数X以及第一高位目标编码中包含的三种数值,即-1,1和0,得到对应的原始部分积,并根据原始部分积得到符号位扩展后的高位部分积;该符号位扩展后的高位部分积中的低(N+1)位数值可以等于原始部分积包含的所有数值,符号位扩展后的高位部分积中的高(N-1)位数值均可以等于原始部分积的符号位数值(即最高位数值)。其中,当第一高位目标编码中的数值为-1时,则原始部分积可以为-X,当第一高位目标编码中的数值为1时,则原始部分积可以为X,当第一高位目标编码中的数值为0时,则原始部分积可以为0。
进一步地,第一高位部分积获取单元115得到的所有第一符号位扩展后的高位部分积的分布形式可以表征为,第一个第一符号位扩展后的高位部分积中的最低位数值,与其它第一符号位扩展后的高位部分积中的最低位数值均位于同一列;第一个第一符号位扩展后的高位部分积中的其它位数值与其它第一符号位扩展后的高位部分积中的对应位数值均位于同一列。
可选的,继续参见图4所示,所述第二改进CSD编码子电路21中的第二高位部分积获取单元215包括:第二高位目标编码输入端口2151、第七选通数值输入端口2152、第八选通数值输入端口2153、第二数据输入端口2154以及第二高位部分积输出端口2155;所述第二高位目标编码输入端口2151用于接收所述第二改进CSD编码单元211输出的所述第二目标编码中的第二高位目标编码,所述第七选通数值输入端口2152用于接收所述第二高位选择器组单元216选通后,输出的所述第二符号位扩展后的高位部分积中的第七数值,所述第八选通数值输入端口2153用于接收所述第二高位与逻辑单元217输出的所述第二符号位扩展后的高位部分积中的第八数值,所述第二数据输入端口2154用于接收所述第二数据,所述第二高位部分积输出端口2155用于输出所有第二符号位扩展后的高位部分积。
可以理解的是,上述第二改进CSD编码子电路21中的第二高位部分积获取单元215的电路结构和具体实现功能,与第一改进CSD编码支路11中第一高位部分积获取单元115的电路结构和具体实现功能相同,因此,本实施例对第二高位部分积获取单元215的电路结构和具体实现功能不再赘述。可选的,第二高位部分积获取单元215和第一高位部分积获取单元115对数据处理的方式也相同,对此本实施例也不再赘述。
本实施例提供的一种数据处理器,该数据处理器可以通过第一高位部分积获取单元根据接收到的第一高位目标编码,以及接收到的第一数据中的被乘数,得到第一符号位扩展后的高位部分积,进而通过第一改进压缩支路对第一符号位扩展后的高位部分积进行压缩处理,以得到第一目标运算结果;上述数据处理器可以实现多种不同位宽数据的乘法运算和乘累加运算,提高了数据处理器的通用性,从而降低AI芯片的功耗。
图5为另一实施例提供的数据处理器中的第一选择支路12、第一改进压缩支路13、第二选择支路22、第二改进压缩支路23以及部分积交换电路03的具体结构示意图,如图5所示,其中,所述第一选择支路12包括第一部分积选择子电路121,所述第一部分积选择子电路121包括:功能模式选择信号输入端口(mode)1211、第一部分积输入端口1212、第二部分积输入端口1213、第一部分积输出端口1214以及第一选通部分积输出端口1215;所述功能模式选择信号输入端口(mode)1211用于接收所述功能模式选择信号,所述第一部分积输入端口1212用于接收所述第一改进CSD编码支路11得到的所有第一符号位扩展后的部分积,所述第二部分积输入端口1213用于接收所述部分积交换电路03进行交换的所述第二符号位扩展后的低位部分积或者所述第二符号位扩展后的高位部分积,所述第一部分积输出端口1214用于输出需要所述部分积交换电路03进行交换的所述第一符号位扩展后的低位部分积或者所述第一符号位扩展后的高位部分积,所述第一选通部分积输出端口1215用于输出未交换处理的所述第一符号位扩展后的高位部分积,以及接收到的所述第二符号位扩展后的低位部分积,或者输出未交换处理的所述第一符号位扩展后的低位部分积,以及接收到的所述第二符号位扩展后的高位部分积,或者未处理的所有第一符号位扩展后的部分积。
具体的,若数据处理器当前可处理2N位*N位数据的乘累加运算,则数据处理器中的部分积交换电路03可以交换第二符号位扩展后的部分积以及第一符号位扩展后的部分积,此时,第一部分积选择子电路121可以通过第二部分积输入端口1213,接收部分积交换电路03交换的第二符号位扩展后的部分积,并将需要交换的第一符号位扩展后的部分积通过第一部分积输出端口1214输出至部分积交换电路03。可选的,交换的部分积可以为第一符号位扩展后的低位部分积和第二符号位扩展后的低位部分积,或者为第一符号位扩展后的高位部分积和第二符号位扩展后的高位部分积。其中,第一选通部分积输出端口1215可以选通不需要交换的第一符号位扩展后的部分积,以及接收到的第二符号位扩展后的部分积,并且第一部分积选择子电路121将不需要交换的第一符号位扩展后的部分积,和/或接收到的第二符号位扩展后的部分积输出,作为第一目标编码部分积,输入至第一改进压缩支路13进行压缩处理。
可选的,继续参见图5所示,所示第二选择支路22包括第二部分积选择子电路221,所述第二部分积选择子电路221包括:功能模式选择信号输入端口(mode)2211、第一部分积输入端口2212、第二部分积输入端口2213、第一部分积输出端口2214以及第二选通部分积输出端口2215;所述功能模式选择信号输入端口(mode)2211用于接收所述功能模式选择信号,所述第一部分积输入端口2212用于接收所述部分积交换电路03进行交换的所述第一符号位扩展后的低位部分积或者所述第一符号位扩展后的高位部分积,所述第二部分积输入端口2213用于接收所述第二改进CSD编码支路21得到的所有第二符号位扩展后的部分积,所述第一部分积输出端口2214用于输出需要所述部分积交换电路03进行交换的所述第二符号位扩展后的低位部分积或者所述第二符号位扩展后的高位部分积,所述第二选通部分积输出端口2215用于输出未交换处理的所述第二符号位扩展后的高位部分积,以及接收到的所述第一符号位扩展后的低位部分积,或者输出未交换处理的所述第二符号位扩展后的低位部分积,以及接收到的所述第一符号位扩展后的高位部分积,或者未处理的所有第二符号位扩展后的部分积。
在本实施例中,第二部分积选择子电路221与第一部分积选择子电路121的具体功能和电路结构完全相同,对此不再赘述第二部分积选择子电路221的具体功能。
本实施例提供的一种数据处理器,数据处理器中第一乘法运算电路通过第一部分积选择子电路,可以选通第一符号位扩展后的部分积,以得到第一目标编码部分积,使得数据处理器不仅能够实现同位宽数据的乘法运算以及乘累加运算,还能够实现不同位宽数据的乘累加运算,从而提高了数据处理器的通用性,有效减少了数据处理器占用AI芯片的面积,降低了AI芯片的功耗。
作为其中一个实施例,继续参见图5,其中,所示第一改进压缩支路13包括第一改进华莱士树单元131以及第一改进累加单元132,所述第一改进华莱士数单元131的输出端与所述第一改进累加单元132的输入端连接;所述第一改进华莱士树单元131用于对所述第一目标编码部分积进行累加处理得到第一累加运算结果,所述第一改进累加单元132用于对所述第一累加运算结果进行累加处理,得到第一目标运算结果。
具体的,第一改进华莱士树单元131以及第一改进累加单元132均可以包含逻辑门单元;同一次乘法运算时,逻辑门单元接收到的功能模式选择信号均可以相等。可选的,上述逻辑门单元可以为与门逻辑单元,还可以为与门逻辑单元以及或门逻辑单元组合而成的逻辑门单元。在本实施例中,第一改进华莱士树单元131可以通过华莱士树子单元和逻辑门子单元组成,第一改进累加单元132可以通过进位加法器和逻辑门子单元组成。
可选的,继续参见图5所示,其中,所述第二改进压缩支路23包括第二改进华莱士树单元231以及第二改进累加单元232,所述第二改进华莱士数单元231的输出端与所述第二改进累加单元232的输入端连接;所述第二改进华莱士树单元231用于对所述第二目标编码部分积进行累加处理得到第二累加运算结果,所述第二改进累加单元232用于对所述第二累加运算结果进行累加处理,得到第二目标运算结果。
需要说明的是,第二乘法运算电路02中的第二改进压缩支路23,与第一乘法运算电路01中的第一改进压缩支路13的内部电路结构和具体实现功能可以完全一致,本实施例对第二改进压缩支路23的内部电路结构和具体实现功能不再赘述。
本实施例提供的一种数据处理器,数据处理器中的第一乘法运算结果,可以通过第一改进压缩支路对第一部分积选择子电路得到的所有第一目标编码部分积进行压缩处理,得到第一目标运算结果;该数据处理器可以实现多种不同位宽数据的乘法运算和乘累加运算,提高了数据处理器的通用性,有效减少了数据处理器占用AI芯片的面积;另外,数据处理器通过第一改进压缩支路对所有第一目标编码部分积进行压缩处理,还可以有效降低数据处理器功耗。
作为其中一个实施例,继续参见图5所示,所述第一改进压缩支路13中的第一改进华莱士树单元131包括:第一低位华莱士树子单元1311、第一与逻辑子单元1312以及第一高位华莱士树子单元1313,所述第一低位华莱士树子单元1311的输出端与所述第一与逻辑子单元1312的输入端连接,所述第一与逻辑子单元1312的输出端与所述第一高位华莱士树子单元1313的输入端连接;其中,多个所述第一低位华莱士树子单元1311用于对所有第一目标编码部分积中的低位列数值进行累加处理得到第一进位输出信号,所述第一与逻辑子单元1312用于对接收到的所述功能模式选择信号,和所述第一低位华莱士树子单元1311输出的所述第一进位输出信号进行与逻辑运算,得到所述第一高位华莱士树子单元1313接收到的第一进位输入信号,多个所述第一高位华莱士树子单元1313用于对所述第一进位输入信号和所有第一目标编码部分积中的高位列数值进行累加处理,得到所述第一累加运算结果。
其中,所述第一低位华莱士树子单元1311和所述第一高位华莱士树子单元1313均包括所述4-2压缩器以及模式选择电路,所述模式选择电路的输出端与所述4-2压缩器的输入端连接,所述模式选择电路中包括第一输入端,用于接收所述功能模式选择信号;其中,所述4-2压缩器用于对所有第一目标编码部分积中每列数值进行累加处理,所述模式选择电路用于选通所述4-2压缩器接收到的所述第一目标编码部分积中的数值。
具体的,第一低位华莱士树子单元1311可以通过4-2压缩器组成。可选的,1个4-2压缩器可以包括多个全加器以及选择电路,在一定条件下,4-2压缩器中的选择电路可以控制全加器为关闭状态,以提高第一改进压缩支路13的运算效率,减少时延。可选的,选择电路可以为多个选择器构成的电路,并且选择电路可以接收功能模式选择信号,根据接收到的功能模式选择信号控制全加器的开闭状态。在本实施例中,该选择器可以为二路选择器。
在本实施例中,第一改进华莱士树单元131可以理解为是一种能够对多位输入信号进行相加处理,得到两路输出信号的电路。可选的,所有第一目标编码部分积的列数可以等于第一乘法运算电路01当前可处理数据位宽的2倍,且所有第一目标编码部分积中的数值均参与累加运算。示例性的,若数据处理器接收到的两个数据位宽均为8比特,当前数据处理器可处理8位数据的乘法运算,则当前数据处理器可以对拆分后的两组4位*4位数据进行同步乘法运算,该数据处理器通过第一部分积选择子电路121得到的5个第一目标编码低位部分积,以及5个第一目标编码高位部分积的分布形式如图6所示,其中,右上角为5个第一目标编码低位部分积的分布图,左下角为5个第一目标编码高位部分积的分布图,“○”表示第一目标编码低位部分积中的部分位数值,表示第一目标编码高位部分积中的部分位数值,“●”表示第一目标编码低位部分积和第一目标编码高位部分积的符号位数值;若数据处理器当前可处理8位*4位的数据乘累加运算,该数据处理器通过第一改进CSD编码支路11得到的5个第一目标编码低位部分积,以及5个第一目标编码高位部分积的分布形式如图7所示,其中,“○”表示第一目标编码低位部分积中的部分位数值,/>表示第一目标编码高位部分积中的部分位数值,“●”表示第一目标编码低位部分积和第一目标编码高位部分积的符号位数值。
需要说明的是,第一改进压缩支路13中第一低位华莱士树子单元1311的数量可以等于数据处理器当前接收到的数据位宽N,还可以等于第一高位华莱士树子单元1313的数量;并且各第一低位华莱士树子单元1311之间可以串行连接,各第一高位华莱士树子单元1313之间也可以串行连接。可选的,最后一个第一低位华莱士树子单元1311的输出端和第一与逻辑子单元1312的输入端连接,第一与逻辑子单元1312的输出端与第一个第一高位华莱士树子单元1313的输入端连接。可选的,第一改进压缩支路13中每个第一低位华莱士树子单元1311可以对所有第一目标编码部分积中低位列数值进行加法处理,每个第一低位华莱士树子单元1311可以输出两路信号,即和位信号Sumi与进位信号Carryi;其中,i可以表示每个第一低位华莱士树子单元1311对应的编号,第一个第一低位华莱士树子单元1311的编号为0。同时,第一改进压缩支路13中每个第一高位华莱士树子单元1313可以对所有第一目标编码部分积中高位列数值进行加法处理,每个第一高位华莱士树子单元1313也可以输出两路信号,即和位信号Sumi以及进位信号Carryi。可选的,每个第一低位华莱士树子单元1311和每个第一高位华莱士树子单元1313,接收到输入信号的数量可以等于第一目标编码和/或第二目标编码的总数量,第一符号位扩展后的部分积的数量或者大于第一符号位扩展后的部分积的数量;其中,当数据处理器当前可处理乘累加运算时,则每个第一低位华莱士树子单元1311和每个第一高位华莱士树子单元1313,接收到输入信号的数量可以大于等于第一目标编码和第二目标编码的总数量。
可以理解的是,每个第一低位华莱士树子单元1311和每个第一高位华莱士树子单元1313,接收到的信号可以包括进位输入信号Cini,部分积数值输入信号,输出的信号可以为进位输出信号Couti。可选的,每个第一低位华莱士树子单元1311和每个第一高位华莱士树子单元1313接收到的部分积数值输入信号,可以为所有第一目标编码部分积中对应列的数值,每个第一低位华莱士树子单元1311和每个第一高位华莱士树子单元1313输出的进位输出信号Couti的位数可以等于NCout=floor((NI+NCin)/2)-1。其中,NI可以表示该华莱士树子单元的数据输入位数,NCin可以表示该华莱士树子单元的进位输入位数,NCout可以表示该华莱士树子单元最少的进位输出位数,floor(·)可以表示向下取整函数。可选的,第一改进华莱士树单元131中每个第一低位华莱士树子单元1311或每个第一高位华莱士树子单元1313接收到的进位输入信号,可以为上一个每个第一低位华莱士树子单元1311或每个第一高位华莱士树子单元1313输出的进位输出信号,并且第一个第一低位华莱士树子单元1311接收到的进位输入信号为0。其中,第一个第一高位华莱士树子单元1313接收到的进位数输入信号,可以为第一与逻辑子单元1312输出的数据。其中,第一改进压缩支路13中第一低位华莱士树子单元1311与第一高位华莱士树子单元1313的数量之和,可以等于2N;所有第一目标编码部分积中,从最低列至最高列的总列数可以等于2N,N个第一低位华莱士树子单元1311可以对所有第一目标编码部分积的低N列数值(即低位列数值)中的对应列数值进行累加运算,N个第一高位华莱士树子单元1313可以对所有第一目标编码部分积的高N列数值(即高位列数值)中的对应列数值进行累加运算。
示例性的,若数据处理器接收到的数据位宽为2N比特,并且无论当前数据处理器进行N位或者2N位数据乘法运算时,数据处理器包含的第一低位华莱士树子单元1311和第一高位华莱士树子单元1313的总数量,均可以等于数据处理器接收到的数据位宽的2倍,第一低位华莱士树子单元1311和第一高位华莱士树子单元1313的数量各占一半,此时,第一与逻辑子单元1312可以对第一改进压缩支路13中最后一个第一低位华莱士树子单元1311,输出的第一进位输出信号CoutN与功能模式选择信号进行与逻辑运算得到第七逻辑运算结果,并将第七逻辑运算结果作为第一改进压缩支路13中,第一个第一高位华莱士树子单元1313接收到的第一进位输入信号CinN+1。可选的,数据处理器当前可以将接收到的2N位数据,划分成高N位和低N位数据分别进行同步乘法运算;其中,从第一个第一低位华莱士树子单元1311至最后一个第一低位华莱士树子单元1311的对应编号i分别为1,2,…,N,从第一个第一高位华莱士树子单元1313至最后一个第一高位华莱士树子单元1313的对应编号i分别为N+1,N+2,…,2N。
可选的,继续参见图5所示,其中,所述第二改进压缩支路23中的第二改进华莱士树单元231包括:第二低位华莱士树子单元2311、第二与逻辑子单元2312以及第二高位华莱士树子单元2313,所述第二低位华莱士树子单元2311的输出端与所述第二与逻辑子单元2312的输入端连接,所述第二与逻辑子单元2312的输出端与所述第二高位华莱士树子单元2313的输入端连接;其中,多个所述第二低位华莱士树子单元2311用于对所有第二目标编码部分积中的低位列数值进行累加处理得到第二进位输出信号,所述第二与逻辑子单元2312用于对接收到的所述功能模式选择信号,和所述第二低位华莱士树子单元2311输出的所述第二进位输出信号进行与逻辑运算,得到所述第二高位华莱士树子单元2313接收到的第二进位输入信号,多个所述第二高位华莱士树子单元2313用于对所述第二进位输入信号和所有第二目标编码部分积中的高位列数值进行累加处理,得到所述第二累加运算结果。
其中,所述第二低位华莱士树子单元2311和所述第一低位华莱士树子单元1311均包括所述4-2压缩器以及模式选择电路,所述模式选择电路的输出端与所述4-2压缩器的输入端连接;其中,所述4-2压缩器用于对所有第二目标编码部分积中每列数值进行累加处理,所述模式选择电路用于选通所述4-2压缩器接收到的所述第二目标编码部分积中的数值;其中,所述模式选择电路中包括第一输入端,用于接收所述功能模式选择信号。
可以理解的是,上述第二改进压缩支路23中的第二与逻辑子单元2312,可以对接收到的功能模式选择信号,和第二低位华莱士树子单元2311输出的进位输出信号进行与逻辑运算得到第八逻辑运算结果,并将第八逻辑运算结果作为第二高位华莱士树子单元2313接收到的进位输入信号。另外,第二改进压缩支路23中第二改进华莱士树单元231的内部电路结构和具体实现功能,与第一改进压缩支路13中第一改进华莱士树单元131的内部电路结构和具体实现功能可以相同,因此,本实施例对第二改进华莱士树单元231内部包含的所有结构的具体功能不再赘述。
本实施例提供的一种数据处理器,数据处理器中的第一乘法运算结果,可以通过第一改进华莱士树单元对第一部分积选择子电路得到的所有第一目标编码部分积进行累加处理得到第一累加运算结果,进而通过第一改进累加单元对第一累加运算结果进行再次累加运算,得到第一目标运算结果;该数据处理器可以实现多种不同位宽数据的乘法运算和乘累加运算,提高了数据处理器的通用性,有效减少了数据处理器占用AI芯片的面积;另外,数据处理器通过第一改进华莱士树单元对所有第一目标编码部分积进行累加处理,还可以有效降低数据处理器功耗。
在其中一个实施例中,继续参见图5所示,所述第一改进压缩支路13中的第一改进累加单元132包括:第一加法器1321,所述第一加法器1321用于对所述第一累加运算结果进行加法运算得到所述第一目标运算结果。
具体的,第一加法器1321可以为不同位宽的进位加法器。可选的,第一加法器1321可以接收第一改进华莱士树单元131输出的两路信号,对输出的两路信号进行加法运算,输出数据处理器当前可处理的数据运算模式得到的运算结果,即第一目标运算结果。可选的,上述第一加法器1321可以为超前进位加法器,该超前进位加法器对应处理数据的位宽可以等于第一改进华莱士树单元131输出的第一累加运算结果的位宽。在本实施例中,实际上是对信号表示的数值进行加法运算的。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,则第一改进累加单元132中的第一加法器1321可以为16位超前进位加法器,如图8所示第一改进压缩支路13,图6中Wallace_i表示第一低位华莱士树子单元1311和第一高位华莱士树子单元1313,i为第一低位华莱士树子单元1311和第一高位华莱士树子单元1313从0开始的编号,并且两两华莱士树子单元之间连接的实线表示高位编号对应的华莱士树子单元有进位输出信号,虚线表示高位编号对应的华莱士树子单元没有进位输出信号,两两华莱士树子单元之间连接的实线还是虚线,需要根据具体运算数据进行确定。
可选的,继续参见图5所示,所述第二改进压缩支路23中的第二改进累加单元232包括:第二加法器2321,所述第二加法器2321用于对所述第二累加运算结果进行加法运算得到所述第二目标运算结果。
需要说明的是,第二加法器2321和第一加法器1321对数据处理的方式相同,对此本实施例不再赘述第二加法器2321对数据处理的具体过程。
本实施例提供的一种数据处理器,数据处理器中的第一改进编码支路通过第一改进累加电路可以对第一改进华莱士树单元输出的两路信号进行累加处理,输出不同数据运算模式结果,该数据处理器并不需要对乘法运算结果再进行一次累加运算才能完成乘累加运算操作,仅通过一次运算过程就可以直接实现乘法或乘累加运算操作,从而降低了数据处理器的功耗。
在其中一个实施例中,继续参见图5所示,其中,所述部分积交换电路03包括:功能模式选择信号输入端口(mode)31、第一部分积输入端口32、第一部分积输出端口33、第二部分积输入端口34以及第二部分积输出端口35;所述功能模式选择信号输入端口(mode)31用于接收所述功能模式选择信号,所述第一部分积输入端口32用于接收所述第一部分积选择子电路121输入的需要交换的所述第一符号位扩展后的低位部分积,或者所述第一符号位扩展后的高位部分积,所述第一部分积输出端口33用于输出所述第一部分积输入端口32接收到的所述第一符号位扩展后的低位部分积,或者所述第一符号位扩展后的高位部分积,所述第二部分积输入端口34用于接收所述第二部分积选择子电路221输入的需要交换的所述第二符号位扩展后的低位部分积,或者所述第二符号位扩展后的高位部分积,所述第二部分积输出端口35用于输出所述第二部分积输入端口34接收到的所述第二符号位扩展后的低位部分积,或者所述第二符号位扩展后的高位部分积。
具体可以理解的是,部分积交换电路03根据功能模式选择信号输入端口(mode)31,接收到的功能模式选择信号,确定当前是否需要交换第一符号位扩展后的部分积以及第二符号位扩展后的部分积;若需要,则部分积交换电路03可以交换第一符号位扩展后的低位部分积与第二符号位扩展后的低位部分积,或者交换第一符号位扩展后的高位部分积与第二符号位扩展后的高位部分积。在本实施例中,只有当数据处理器需要执行2N位*N位数据的乘累加运算时,部分积交换电路03才需要交换符号位扩展后的低位部分积或者高位部分积,执行其它三种数据运算模式时,部分积交换电路03可以不需要进行交换处理。
本实施例提供的一种数据处理器,数据处理器通过部分积交换电路可以交换第一乘法运算电路得到的第一符号位扩展后的部分积,与第二乘法运算电路得到的第二符号位扩展后的部分积,进而实现2N位*N位数据的乘累加运算,该数据处理器不仅能够实现同位宽数据的乘法运算以及乘累加运算,还能够实现不同位宽数据的乘累加运算,从而提高了数据处理器的通用性,有效减少了数据处理器占用AI芯片的面积。
图9为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图1所示的数据处理器进行处理,本实施例涉及的是实现四种不同数据运算模式的过程。如图9所示,该方法包括:
步骤S101、接收待处理数据和功能模式选择信号,其中,所述功能模式选择信号用于指示数据处理器当前可处理的对应数据运算模式。
具体的,数据处理器可以通过第一乘法运算电路以及第二乘法运算电路,分别接收一个待处理数据,该待处理数据可以包括两个待处理子数据,这两个待处理子数据可以为同位宽的相同子数据,也可以为同位宽的不同子数据。可选的,上述待处理数据中的两个子数据均可以拼接后作为一个整体,输入至第一乘法运算电路或第二乘法运算电路,还可以分开同时输入至第一乘法运算电路或第二乘法运算电路。其中,上述待处理子数据可以为定点数,且位宽可以为2N,两个待处理子数据拼接后得到的数据位宽可以为4N。
需要说明的是,第一乘法运算电路以及第二乘法运算电路均可以接收到相同的功能模式选择,该功能模式选择信号可以有四种,四种功能模式选择信号分别对应数据处理器可处理的四种数据运算模式,四种功能模式选择信号可以用二进制数值分别表示为数值00,01,10,11,也可以为其它的表示方式,本实施例并不做任何限定。可选的,上述四种数据运算模式分别可以表示为N位*N位数据的乘法运算,N位*N位数据的乘累加运算,2N位*2N位数据的乘法运算以及2N位*N位数据的乘累加运算。其中,数据处理器根据接收到的不同功能模式选择信号,可以确定当前需要处理的数据运算模式。另外,一个待处理数据包含的其中一个待处理子数据可以作为数据处理器执行乘法运算或乘累加运算处理时的乘数,另一个待处理子数据可以作为数据处理器执行乘法运算或乘累加运算处理时的被乘数。本实施例的方式可以适用于数据处理器接收到的数据位宽大于等于数据处理器当前可处理的数据位宽的情况。
步骤S102、根据所述功能模式选择信号,判断所述待处理数据是否需要进行拆分处理。
具体的,数据处理器可以根据接收到的功能模式选择信号,确定数据处理器当前可处理的数据运算模式,以判断是否需要对待处理数据进行拆分处理。其中,拆分处理可以表征为将待处理数据分成多组相同位宽的数据。
可选的,上述步骤S102中根据所述功能模式选择信号,判断所述待处理数据是否需要进行拆分处理的过程,可以包括:根据所述功能模式选择信号,判断所述待处理数据的位宽与数据处理器当前可处理的数据运算模式对应的数据位宽是否相等。另外,在根据所述功能模式选择信号,判断所述待处理数据的位宽与数据处理器当前可处理的数据运算模式对应的数据位宽是否相等的步骤之后,所述方法还可以包括:若所述待处理数据的位宽与数据处理器当前可处理的数据运算模式的对应的数据位宽相等,则继续执行对所述待处理数据进行正则有符号数编码处理,得到所述目标编码。
需要说明的是,若数据处理器当前可处理的数据位宽与数据处理器接收到的数据位宽相等,此时,数据处理器不需要对待处理数据进行拆分处理,可以直接对完整的待处理数据进行正则有符号数编码处理。
可选的,若所述待处理数据需要进行拆分处理,则对所述待处理数据进行拆分处理,得到拆分后的数据的步骤,具体包括:若所述待处理数据的位宽与数据处理器当前可处理的数据运算模式对应的数据位宽不相等,则对所述待处理数据进行拆分处理,得到拆分后的数据。
在本实施例中,若数据处理器当前可处理的数据位宽与数据处理器接收到的数据位宽不相等,此时,数据处理器需要对待处理数据进行拆分处理,得到拆分后的数据。其中,不相等的情况可以表征为当前可处理的数据位宽小于数据处理器接收到的数据位宽的情况。
例如,数据处理器中的第一改进CSD编码支路以及第二改进CSD编码支路分别接收到的两个数据的位宽均为N比特,且数据处理器可以当前可处理N位*N位的乘法运算,此时,表征数据处理器当前可处理的数据位宽与数据处理器接收到的数据位宽相等。其中,上述正则有符号数编码处理可以表征为通过数值0,-1和1编码的数据处理过程。可选的,若数据处理器当前可处理N位数据运算,则目标编码的位宽可以等于N加1;若数据处理器当前可处理2N位数据运算,则目标编码的位宽可以等于2N加2;相当于数据处理器当前接收到的数据位宽x等于数据处理器可处理的最小数据位宽的a倍,则目标编码的位宽可以等于ax加a。
步骤S103、若所述待处理数据需要进行拆分处理,则对所述待处理数据进行拆分处理,得到拆分后的数据。
例如,数据处理器中的第一改进CSD编码支路以及第二改进CSD编码支路分别接收到的两个数据的位宽均为2N比特,且数据处理器可以当前可处理N位*N位的乘法运算,此时,第一改进CSD编码支路以及第二改进CSD编码支路分别可以自动将接收到的两个数据均分成高N位数据以及低N位数据,以满足数据处理器当前可处理的对应数据运算模式的数据位宽。
步骤S104、对所述拆分后的数据进行正则有符号数编码处理,得到目标编码。
可选的,上述步骤S104中对所述拆分后的数据进行正则有符号数编码处理,得到目标编码的过程,可以包括:将所述拆分后的数据中连续的l位数值1转换为(l+1)位最高位数值为1,最低位数值为-1,其余位为数值0后,得到所述目标编码,其中,l大于等于2。
具体的,若数据处理器接收到的待处理数据的位宽为2N,数据处理器当前可处理的数据位宽为N,则数据处理器中的第一改进CSD编码支路以及第二改进CSD编码支路,均可以自动将2N位数据拆分成高N位数据以及低N位数据,同时,分别对高N位数据和低N位数据进行正则有符号数编码处理,得到对应的高位目标编码以及低位目标编码。可选的,上述待处理数据进行拆分处理后可以包括待处理高N位数据和待处理低N位数据。其中,若待处理数据的位宽为2N,则高N位数据可以称为待处理高位数据,低N位数据可以称为待处理低位数据。
步骤S105、根据所述目标编码以及所述拆分后的数据进行逻辑运算和融合处理,得到符号位扩展后的部分积。
具体的,上述逻辑运算可以为与逻辑运算、或逻辑运算、组合逻辑运算,还可以为其它单一逻辑运算。可选的,上述融合处理可以包括实质数据运算处理以及非实质数据运算处理(仅为一种数据结合处理)。
其中,所述目标编码部分积包括第一目标编码部分积和第二目标编码部分积;上述步骤S105中根据所述目标编码以及所述拆分后的数据进行逻辑运算和融合处理,得到符号位扩展后的部分积的过程,可以包括:通过所述第一目标编码以及所述待处理数据进行逻辑运算和融合处理,得到第一符号位扩展后的部分积;通过所述第二目标编码以及所述待处理数据进行逻辑运算和融合处理,得到第二符号位扩展后的部分积。
在本实施例中,上述第一目标编码可以包括第一乘法运算电路得到的第一低位目标编码和第一高位目标编码。可选的,第二目标编码可以包括第二乘法运算电路得到的第二低位目标编码和第二高位目标编码。同时,符号位扩展后的部分积可以包括第一乘法运算电路得到的第一符号位扩展后的部分积,以及第二乘法运算电路得到的第二符号位扩展后的部分积。可选的,正则有符号数编码处理后,数据处理器得到的第一低位目标编码的数量和第一高位目标编码的数量可以相等,第二低位目标编码的数量和第二高位目标编码的数量可以相等;并且第一符号位扩展后的部分积的数量可以等于第一目标编码的位宽,第二符号位扩展后的部分积的数量可以等于第二目标编码的位宽。
可以理解的是,数据处理器中的第一乘法运算电路可以根据得到的第一目标编码,与接收到的待处理数据中的待处理子数据(即被乘数),得到对应的第一符号位扩展后的部分积;数据处理器中的第二乘法运算电路可以根据得到的第二目标编码,与接收到的待处理数据中的待处理子数据(即被乘数),得到对应的第二符号位扩展后的部分积。其中,该第一符号位扩展后的部分积的位宽可以等于第一乘法运算电路当前可处理的数据位宽的2倍;第二符号位扩展后的部分积的位宽可以等于第二乘法运算电路当前可处理的数据位宽的2倍。
需要说明的是,数据处理器确定当前可处理的具体数据运算模式后,第一乘法运算电路可以根据得到的第一目标编码以及接收到的待处理数据中的待处理子数据(即被乘数),得到对应第一符号位扩展后的部分积;第二乘法运算电路可以根据得到的第二目标编码以及接收到的待处理数据中的待处理子数据(即被乘数),得到对应第二符号位扩展后的部分积。
例如,待处理数据中的两个待处理子数据的位宽均为2N比特,作为被乘数的待处理子数据可以表示为X,则第一目标编码可以包括三种数值,分别为-1,1和0。另外,若数据处理器当前可处理的是N位*N位数据的乘法运算,第一乘法运算结果可以根据被乘数X和第一目标编码,直接得到对应的第一符号位扩展后的部分积,此时,第一符号位扩展后的部分积的位宽可以等于2N,该第一符号位扩展后的部分积中的低(N+1)位数值可以等于原始部分积包含的数值,第一符号位扩展后的部分积中的高(N-1)位数值均可以等于原始部分积的符号位数值,该符号位数值也就是原始部分积中的最高位数值。若第一目标编码中的数值为-1,且拆分后的数据为X,则原始部分积可以为-X,若第一目标编码中的数值为1,则原始部分积可以为X,若第一目标编码中的数值为0,则原始部分积可以为0。可选的,数据处理器根据第二目标编码得到第二符号位扩展后的部分积的具体过程,与第一目标编码得到第一符号位扩展后的部分积的具体过程相同,对此不再赘述。
步骤S106、根据所述功能模式选择信号,判断是否需要对所述符号位扩展后的部分积进行交换处理。
可选的,上述步骤S106中根据所述功能模式选择信号,判断是否需要对所述符号位扩展后的部分积进行交换处理的过程,可以包括:根据所述功能模式选择信号,确定所述数据处理器当前可处理的数据运算模式;根据所述数据运算模式,判断是否需要对所述第一符号位扩展后的部分积和所述第二符号位扩展后的部分积进行交换处理。
具体的,当数据处理器当前接收到的功能选择模式信号,确定数据处理器当前可处理2N位*N位数据的乘累加运算,此时,数据处理器中的部分积交换电路才可以根据实际需求,将第一改进CSD编码支路得到的第一符号位扩展后的部分积,与第二改进CSD编码支路得到的第二符号位扩展后的部分积进行交换。否则,数据处理器接收到的其它三种功能模式选择信号,确定数据处理器可处理其它三种数据运算模式时,部分积交换电路为悬空状态,符号位扩展后的低位部分积以及符号位扩展后的高位部分积不做对应交换处理。同时,第一数据和第二数据中的两个子数据位宽均为2N,若数据处理器当前可处理一个N位*N位数据的乘法运算时,根据实际需求,此时第一数据和第二数据中有一个数据为0,另一个数据包括的两个子数据中的高位数值均为0,或者低位数值均为0,根据实际需求,此时第一数据和第二数据可以按照原始数据进行计算;若数据处理器当前可处理一个2N位*2N位数据的乘法运算时,根据实际需求,此时第一数据和第二数据中有一个数据为0,另一个数据的两个子数据中高位数值和低位数值均为非0数值;若数据处理器当前可处理两个2N位*2N位数据的乘法运算时,根据实际需求,此时第一数据和第二数据中不存在数据0。
可选的,所述目标编码部分积包括第一目标编码部分积和第二目标编码部分积;上述步骤S106中在根据所述功能模式选择信号,判断是否需要对所述符号位扩展后的部分积进行交换处理之后,所述方法还可以包括:若所述符号位扩展后的部分积不需要交换处理,则将所述第一符号位扩展后的部分积作为所述第一目标编码部分积,将所述第二符号位扩展后的部分积作为所述第二目标编码部分积。
需要说明的是,若判定第一符号位扩展后的部分积和第二符号位扩展后的部分积不需要进行交换处理,则数据处理器中的第一部分积选择子电路将所有第一符号位扩展后的部分积输出,作为第一目标编码部分积,数据处理器中的第二部分积选择子电路将所有第二符号位扩展后的部分积输出,作为第二目标编码部分积。
步骤S107、若所述符号位扩展后的部分积需要交换处理,则对所述符号位扩展后的部分积进行交换处理,得到目标编码部分积。
具体的,上述目标编码部分积可以包括第一目标编码部分积和第二目标编码部分积。若判定第一符号位扩展后的部分积和第二符号位扩展后的部分积需要进行交换处理,则数据处理器中的部分积交换电路将第一符号位扩展后的部分积与第二符号位扩展后的部分积进行交换,数据处理器中的第一部分积选择子电路可以将交换后的部分积作为第一目标编码部分积输出,数据处理器中的第二部分积选择子电路可以将交换后的部分积作为第二目标编码部分积输出。
可选的,上述步骤S107中对所述符号位扩展后的部分积进行交换处理,得到目标编码部分积的过程,具体可以包括:对所述第一符号位扩展后的低位部分积和所述第二符号位扩展后的低位部分积进行交换处理,或者对所述第一符号位扩展后的高位部分积和所述第二符号位扩展后的高位部分积进行交换处理,得到所述第一目标编码部分积和所述第二目标编码部分积。
需要说明的是,数据处理器中的第一部分积选择子电路可以将未交换处理的第一符号位扩展后的高位部分积和交换的第二符号位扩展后的低位部分积结合,作为第一目标编码部分积;数据处理器中的第二部分积选择子电路可以将未交换处理的第二符号位扩展后的高位部分积和交换的第一符号位扩展后的低位部分积结合,作为第二目标编码部分积。
步骤S108、对所述目标编码部分积进行压缩处理和逻辑运算,得到目标运算结果。
具体的,上述压缩处理可以称为累加运算处理。另外,目标运算结果可以为数据处理器执行N位*N位数据的乘法运算结果,N位*N位数据的乘累加运算结果,2N位*2N位数据的乘法运算结果,或者2N位*N位数据的乘累加运算结果。其中,N位*N位数据的乘累加运算是在目标编码部分积压缩处理时,数据处理器可以直接把两组待处理数据得到的所有目标编码部分积,压缩成一个进位信号以及一个和位信号,再对这两个信号累加处理得到一个目标运算结果。其中,在压缩处理过程中需要进行逻辑运算,该逻辑运算可以为与逻辑运算、或逻辑运算、组合逻辑运算,还可以为其它单一逻辑运算。在本实施例中,步骤S700和步骤S800的执行顺序可以交换,对此执行顺序本实施例不做任何限定。
本实施例提供的一种数据处理方法,该方法可以根据接收到的功能模式选择信号确定当前可处理的不同数据运算模式,不仅能够实现乘法运算,还能够实现乘累加运算,从而提高了数据处理器的通用性;另外,该方法并不需要对乘法运算结果再进行一次累加运算才能完成乘累加运算操作,仅通过一次运算过程就可以直接实现乘法或乘累加运算操作,也有效降低了数据处理器的功耗。
作为其中一个实施例,上述步骤S103中对所述拆分后的数据进行正则有符号数编码处理,得到目标编码的过程,具体可以包括以下过程:将所述拆分后的数据中连续的l位数值1转换为(l+1)位最高位数值为1,最低位数值为-1,其余位为数值0后,得到所述目标编码,其中,l大于等于2。
具体的,若数据处理器接收到的待处理数据的位宽为2N,数据处理器当前可处理的数据位宽为N,则数据处理器中的第一改进CSD编码支路以及第二改进CSD编码支路,均可以自动将2N位数据拆分成高N位数据以及低N位数据,同时,分别对高N位数据和低N位数据进行正则有符号数编码处理,得到对应的高位目标编码以及低位目标编码。可选的,上述待处理数据进行拆分处理后可以包括待处理高N位数据和待处理低N位数据(即拆分后的数据)。其中,若待处理数据的位宽为2N,则高N位数据可以称为待处理高位数据,低N位数据可以称为待处理高位数据。
需要说明的是,数据处理器可以对拆分后的数据进行正则有符号数编码处理,得到中间编码,并根据中间编码以及数据处理器接收到的功能模式选择信号,得到目标编码。可选的,目标编码可以包括第一目标编码和第二目标编码。其中,进行正则有符号数编码处理的拆分后的数据可以为乘法运算或乘累加运算中的乘数。
在本实施例中,正则有符号数编码处理的方法可以通过以下方式表征:对于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转换处理的方式也类似。
例如,数据处理器中的第一改进CSD编码支路或第二改进CSD编码支路接收到的乘数为“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,此时,将第五新数据可以称为初始编码,并对初始编码进行一次补位处理后,表征正则有符号数编码处理完成得到中间编码,其中,初始编码的位宽可以等于乘数的位宽。可选的,第一改进CSD编码支路或第二改进CSD编码支路对乘数进行正则有符号数编码处理后,得到新数据(即初始编码),若新数据中的最高位数值和次高位数值为“10”或“01”,则第一改进CSD编码支路或第二改进CSD编码支路可以对该新数据的最高位数值的高一位处补一位数值0,得到对应中间编码的高三位数值分别为“010”或“001”。可选的,上述中间编码的位宽可以等于数据处理器当前可处理数据的位宽加1。
另外,若数据处理器接收到的数据位宽为2N,且当前可处理N位数据运算,则数据处理器中的第一改进CSD编码支路或第二改进CSD编码支路,可以将2N位数据拆分成两组N位数据分别进行数据运算,此时,将得到的两组(N+1)位中间编码进行结合后可以作为目标编码;若数据处理器当前可处理2N位数据运算,则数据处理器中的第一改进CSD编码支路或第二改进CSD编码支路,可以对获取的(2N+1)位中间编码的最高位数值的高一位处补一位数值0(即补数处理)后,将补数处理后的(2N+2)位数据作为目标编码。其中,第一改进CSD编码支路可以得到第一目标编码,第二改进CSD编码支路可以得到第二目标编码。
本实施例提供的一种数据处理方法,该方法能够对多种不同位宽的数据进行乘法运算以及乘累加运算,提高了数据处理器的通用性,有效减少了数据处理器占用AI芯片的面积;同时,该方法能够对数据进行正则有符号数编码处理,降低运算过程中获取的有效部分积的数量,从而降低乘法运算或乘累加运算的复杂性,提高了运算效率。
作为其中一个实施例,所述符号位扩展后的部分积包括第一符号位扩展后的部分积,且所述第一符号位扩展后的部分积包括第一符号位扩展后的低位部分积以及第一符号位扩展后的高位部分积;如图10所示,图10为另一实施例提供的得到符号位扩展后的部分积的具体流程示意图,上述步骤S105中根据所述目标编码以及所述拆分后的数据进行逻辑运算和融合处理,得到符号位扩展后的部分积过程,可以包括:
步骤S1051、根据所述目标编码以及所述拆分后的数据,得到符号位扩展后的第一低位部分积。
具体的,数据处理器中的第一乘法运算电路可以根据第一低位目标编码和拆分后的被乘数,得到符号位扩展后的第一低位部分积。可选的,符号位扩展后的第一低位部分积的位宽可以等于第一乘法运算电路当前可处理的拆分后的被乘数位宽的2倍。
步骤S1052、根据所述功能模式选择信号,得到所述第一符号位扩展后的低位部分积中的第一数值。
具体的,上述第一数值可以位于第一符号位扩展后的低位部分积中,对应从最低位(即第1位)向最高位算起,第(N+1)位至第2N位数值之间对应位数值。可选的,若数据处理器接收到的功能模式选择信号对应当前可处理2N位数据,则第一数值可以等于数据处理器中的第一乘法运算电路当前可处理2N位数据时,得到的符号位扩展后的低位部分积中的对应位数值;若数据处理器接收到的功能模式选择信号对应当前可处理N位数据,则第一数值可以等于数据处理器中的第一乘法运算电路当前可处理N位数据时,得到的符号位扩展后的低位部分积中的符号位数值;其中,数据处理器接收到的数据位宽为2N。
步骤S1053、对所述功能模式选择信号和所述符号位扩展后的第一低位部分积中的符号位数值进行与逻辑运算,得到所述第一符号位扩展后的低位部分积中的第二数值。
具体的,数据处理器接收到的数据位宽为2N,数据处理器中的第一乘法运算电路可以通过第一低位与逻辑单元对功能模式选择信号,与数据处理器对2N位数据进行乘法运算的过程中,得到的符号位扩展后的第一低位部分积中的符号位数值进行与逻辑运算,得到第一符号位扩展后的低位部分积中的第二数值。可选的,第二数值可以位于第一符号位扩展后的低位部分积中,对应从最低位(即第1位)向最高位算起,第(2N+1)位至第4N位数值之间对应位数值。可选的,上述步骤S1051可以在步骤S1054之前的任意一个步骤交换,具体执行顺序不做限定。另外,本实施例中对信号进行逻辑运算的操作,实际上是对表示信号的数据进行的逻辑运算。
步骤S1054、将所述符号位扩展后的第一低位部分积中的数值、所述第一数值以及所述第二数值进行结合,得到所述第一符号位扩展后的低位部分积。
具体的,继续上一示例,将符号位扩展后的第一低位部分积中,对应从最低位(即第1位)向最高位算起,第1位至第N位数值之间对应位数值;与第(2N+1)位至第4N位数值之间对应位数值(即第二数值)以及第(N+1)位至第2N位数值之间对应位数值(即第一数值)结合,得到第一符号位扩展后的低位部分积。
步骤S1055、根据所述目标编码以及所述拆分后的数据,得到符号位扩展后的第一高位部分积。
步骤S1056、根据所述功能模式选择信号,得到所述第一符号位扩展后的高位部分积中的第三数值。
步骤S1057、对所述功能模式选择信号和所述符号位扩展后的第一高位部分积中的符号位数值进行与逻辑运算,得到所述第一符号位扩展后的高位部分积中的第四数值。
步骤S1058、将所述符号位扩展后的第一高位部分积中的数值、所述第三数值以及所述第四数值进行结合,得到所述第一符号位扩展后的高位部分积。
进一步地,数据处理器可以根据第一高位目标编码和拆分后的被乘数,得到符号位扩展后的第一高位部分积。可选的,符号位扩展后的第一高位部分积的位宽可以等于拆分后的被乘数位宽的2倍。可选的,上述第三数值可以位于第一符号位扩展后的高位部分积中,对应从最低位(即第1位)向最高位算起,第(3N+1)位至第4N位数值之间对应位数值。可选的,若数据处理器接收到的功能模式选择信号对应处理2N位数据,则第三数值可以等于数据处理器对2N位数据进行乘法运算的过程中,得到符号位扩展后的高位部分积中的符号位数值,还可以等于数据处理器对N位数据进行乘法运算的过程中,符号位扩展后的高位部分积中的符号位数值;其中,数据处理器接收到的数据位宽为2N。可选的,数据处理器接收到的数据位宽为2N,数据处理器通过第一高位与逻辑单元对功能模式选择信号,与数据处理器对2N位数据进行乘法运算的过程中,得到的符号位扩展后的第一高位部分积中的符号位数值进行与逻辑运算,得到第一符号位扩展后的高位部分积中的第四数值。可选的,第四数值可以位于第一符号位扩展后的高位部分积中,对应从最低位(即第1位)向最高位算起,第1位至第2N位数值之间对应位数值。继续上一示例,将符号位扩展后的第一高位部分积中,对应从最低位(即第1位)向最高位算起,第(2N+1)位至第3N位数值之间对应位数值;与第(3N+1)位至第4N位数值之间对应位数值(即第四数值)以及第1位至第2N位数值之间对应位数值(即第三数值)结合,得到第一符号位扩展后的高位部分积。
在本实施例中,数据处理器中的第一改进CSD编码支路可以根据第一目标编码,得到第一符号位扩展后的低位部分积和第一符号位扩展后的高位部分积。其中,上述步骤S1055可以在步骤S1058之前的任意一个步骤交换,具体执行顺序不做限定。可选的,上述步骤S1051~步骤S1054,与步骤S1055~步骤S1058的步骤顺序可以互换,对此执行顺序不作任何限定。
可选的,所述符号位扩展后的部分积还包括第二符号位扩展后的部分积,且所述第二符号位扩展后的部分积包括第二符号位扩展后的低位部分积以及第二符号位扩展后的高位部分积;上述步骤S105中根据所述目标编码以及所述拆分后的数据进行逻辑运算和融合处理,得到符号位扩展后的部分积的过程,还可以包括如下步骤:
根据所述第一目标编码和/或所述第二目标编码,与所述拆分后的数据,得到符号位扩展后的第二低位部分积;根据所述功能模式选择信号,得到所述第二符号位扩展后的低位部分积中的第五数值;对所述功能模式选择信号和所述符号位扩展后的第二低位部分积中的符号位数值进行与逻辑运算,得到所述第二符号位扩展后的低位部分积中的第六数值;将所述符号位扩展后的第二低位部分积中的数值、所述第五数值以及所述第六数值进行结合,得到所述第二符号位扩展后的低位部分积;根据所述第一目标编码和/或所述第二目标编码,与所述拆分后的数据,得到符号位扩展后的第二高位部分积;根据所述功能模式选择信号,得到所述第二符号位扩展后的高位部分积中的第七数值;对所述功能模式选择信号和所述符号位扩展后的第二高位部分积中的符号位数值进行与逻辑运算,得到所述第一符号位扩展后的高位部分积中的第八数值;将所述符号位扩展后的第二高位部分积中的数值、所述第七数值以及所述第八数值进行结合,得到所述第二符号位扩展后的高位部分积。
其中,数据处理器中的第二乘法运算电路得到的第二符号位扩展后的低位部分积中的第五数值,与第一乘法运算电路得到的第一符号位扩展后的低位部分积中的第一数值的具体位置和具体获取方式相同;数据处理器中的第二乘法运算电路得到的第二符号位扩展后的低位部分积中的第六数值,与第一乘法运算电路得到的第一符号位扩展后的低位部分积中的第二数值的获取方式和具体位置相同;数据处理器中的第二乘法运算电路得到的第二符号位扩展后的高位部分积中的第七数值,与第一乘法运算电路得到的第一符号位扩展后的高位部分积中的第三数值的具体位置和具体获取方式相同;数据处理器中的第二乘法运算电路得到的第二符号位扩展后的高位部分积中的第八数值,与第一乘法运算电路得到的第一符号位扩展后的高位部分积中的第四数值的获取方式和具体位置相同,第二符号位扩展后的低位部分积和第二符号位扩展后的高位部分积的获取方式和位置本实施例将不再赘述。其中,第二部分积电路获取第二符号位扩展后的低位部分积,与获取第二符号位扩展后的高位部分积的步骤,在本实施例中的执行顺序可以互换,本实施例对此执行顺序不做任何限定。
本实施例提供的一种数据处理方法,该方法可以根据数据处理器接收到的功能模式选择信号对多种不同位宽的数据进行乘法运算或者乘累加运算,提高了数据处理器的通用性,有效减少了数据处理器占用AI芯片的面积。
作为其中一个实施例,所述目标运算结果包括第一目标运算结果;上述步骤S108中对所述目标编码部分积进行压缩处理,得到目标运算结果的过程,具体可以包括:通过第一低位华莱士树子单元对所有第一目标编码部分积中的列数值进行累加处理,得到第一中间输出结果;通过第一与逻辑子单元对所述第一中间输出结果和所述功能模式选择信号进行与逻辑运算,得到进位输入信号;通过第一高位华莱士树子单元根据所述进位输入信号以及所有第一目标编码部分积中的列数值进行累加处理,得到所述第一累加运算结果;通过第一改进累加单元对第一累加运算结果进行累加运算,得到所述第一目标运算结果。
具体的,若第一符号位扩展后的部分积的位宽可以等于2N,则数据处理器可以包括N个第一低位华莱士树子单元以及N个第一高位华莱士树子单元。其中,N个第一低位华莱士树子单元可以对所有第一目标编码部分积中的低N列数值进行累加运算,得到一个累加运算结果,即第一中间输出结果;N个第一高位华莱士树子单元可以对所有第一目标编码部分积中的高N列数值进行累加运算,得到另一累加运算结果;在累加运算过程中,第一低位华莱士树子单元可以对所有第一目标编码部分积中,从最低列(即第1列)至最高列算起,第1列数值至第N列数值进行累加运算得到第一中间输出结果;第一个高位华莱士树子单元可以对接收到的第一与逻辑子单元输出的逻辑运算结果(即该逻辑运算结果作为进位输入信号),与所有第一目标编码部分积中,从最低列至最高列算起,第(N+1)列数值进行累加运算。然后数据处理器在通过第一改进累加单元对第一改进华莱士树单元的输出的第一累加运算结果进行累加运算得到第一目标运算结果。在本实施例中,信号与数据,或者信号与信号之间的运算,实际上为表示信号的数据与数据之间运算。
需要说明的是,数据处理器通过第一乘法运算电路可以对第一目标编码部分积进行累加处理得到第一中间输出结果,该第一中间输出结果均可以包括和位输出信号Sum与进位输出信号Carry;其中,和位输出信号Sum与进位输出信号Carry的位宽可以相同,并且第一中间输出结果可以等于0,也可以等于非0信号。例如,当前仅需要对一组2N位*2N位数据进行乘法运算,此时,数据处理器接收到的两个待处理数据中有一个数据为数值0,并且为数值0的待处理数据对应得到的第一目标编码,第一符号位扩展后的部分积以及第一累加运算结果均可以等于0;当前需要对两组2N位*2N位数据进行乘法运算时,据处理器接收到的两个待处理数据均为非0信号,并且两个待处理数据对应得到的第一目标编码,第一符号位扩展后的部分积以及第一中间输出结果均可以为非0信号。
可以理解的是,数据处理器通过第一改进累加单元可以对第一累加运算结果进行累加处理,得到第一目标运算结果。另外,数据处理器可以通过第一改进累加单元中的第一加法器对第一改进华莱士树单元输出的进位输出信号Carry与和位输出信号Sum进行加法运算,输出加法运算结果。可选的,第一改进华莱士树单元中每个华莱士树子单元(即低位华莱士树子单元或高位华莱士树子单元),均可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=0,…,2N-1,i为每个华莱士树子单元的对应编号,编号从0开始)。可选的,第一加法器接收到的Carry={[Carry0:Carry2N-2],0},也就是说,第一加法器接收到的进位输出信号Carry的位宽为2N,进位输出信号Carry中前2N-1位数值对应第一改进华莱士树单元中前2N-1个华莱士树子单元的进位输出信号,进位输出信号Carry中最后一位数值可以用数值0代替。可选的,第一加法器接收到的和位输出信号Sum的位宽为2N,和位输出信号Sum中的数值可以等于第一改进华莱士树单元中每个华莱士树子单元的和位输出信号。
示例性的,若数据处理器当前需要处理8位*8位的乘法运算,则第一加法器可以为16位超前进位加法器,如图8所示,第一改进华莱士树单元可以输出16个华莱士树子单元的和位输出信号Sum和进位输出信号Carry,但是16位超前进位加法器接收到的和位输出信号可以为第一改进华莱士树单元输出的完整和位信号Sum,接收到的进位输出信号可以为第一改进华莱士树单元中,除去最后一个华莱士树子单元输出的进位输出信号的所有进位输出信号与0结合后的进位信号Carry。
另外,目标运算结果还可以包括第二乘法运算电路得到的第二目标运算结果。可选的,上述步骤S108中对所述目标编码部分积进行压缩处理,得到目标运算结果的过程,还可以包括:通过第二低位华莱士树子单元对所有第二目标编码部分积中的列数值进行累加处理,得到第二中间输出结果;通过第二与逻辑子单元对所述第二中间输出结果和所述功能模式选择信号进行与逻辑运算,得到进位输入信号;通过第二高位华莱士树子单元根据所述进位输入信号以及所有第二目标编码部分积中的列数值进行累加处理,得到所述第二累加运算结果;通过第二改进累加单元对第二累加运算结果进行累加运算,得到所述第二目标运算结果。其中,第二乘法运算电路获取到的第二目标运算结果的方式,与第一乘法运算电路获取到的第一目标运算结果的方式相同,对此本实施例不再赘述。
本实施例提供的一种数据处理方法,该方法可以根据数据处理器接收到的功能模式选择信号对多种不同位宽的数据进行乘法运算或者乘累加运算,提高了数据处理器的通用性,有效减少了数据处理器占用AI芯片的面积;同时,数据处理器通过改进华莱士树单元对符号位扩展后的部分积进行累加运算,得到目标运算结果,能够有效降低数据处理器的功耗。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的数据处理器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上数据处理器时,数据处理器间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图11为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图12所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图13所示,图13提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其它的配套部件,该配套部件包括但不限于:存储器件390、接收装置391和控制器件392;
所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每组所述存储单元与所述芯片通过总线连接。可以理解,每组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接收装置与所述芯片封装结构内的芯片电连接。所述接收装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接收装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接收装置还可以是其它的接口,本申请并不限制上述其它的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接收装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备可以为数据处理器、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的电路组合,但是本领域技术人员应该知悉,本申请并不受所描述的电路组合方式的限制,因为依据本申请,某些电路可以采用其它方式或者结构实现。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的器件和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (35)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911351200.0A CN113033799B (zh) 2019-12-24 2019-12-24 数据处理器、方法、装置及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911351200.0A CN113033799B (zh) 2019-12-24 2019-12-24 数据处理器、方法、装置及芯片

Publications (2)

Publication Number Publication Date
CN113033799A CN113033799A (zh) 2021-06-25
CN113033799B true CN113033799B (zh) 2023-09-08

Family

ID=76452195

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911351200.0A Active CN113033799B (zh) 2019-12-24 2019-12-24 数据处理器、方法、装置及芯片

Country Status (1)

Country Link
CN (1) CN113033799B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413254A (zh) * 2019-09-24 2019-11-05 上海寒武纪信息科技有限公司 数据处理器、方法、芯片及电子设备
CN110515588A (zh) * 2019-08-30 2019-11-29 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043517B2 (en) * 2003-03-07 2006-05-09 Faraday Technology Corp. Multiply accumulator for two N bit multipliers and an M bit addend

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515588A (zh) * 2019-08-30 2019-11-29 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN110413254A (zh) * 2019-09-24 2019-11-05 上海寒武纪信息科技有限公司 数据处理器、方法、芯片及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于信号阻断的可配置低功耗乘法器设计;李道通;夏银水;钱立波;;无线通信技术(第03期);全文 *

Also Published As

Publication number Publication date
CN113033799A (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
CN111008003B (zh) 数据处理器、方法、芯片及电子设备
CN110515589B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110362293B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110515587B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110554854B (zh) 数据处理器、方法、芯片及电子设备
CN110673823B (zh) 乘法器、数据处理方法及芯片
CN111258541B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258544B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258633B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110647307B (zh) 数据处理器、方法、芯片及电子设备
CN110515586B (zh) 乘法器、数据处理方法、芯片及电子设备
CN209879493U (zh) 乘法器
CN110515588B (zh) 乘法器、数据处理方法、芯片及电子设备
CN210109789U (zh) 数据处理器
CN210006029U (zh) 数据处理器
CN110688087B (zh) 数据处理器、方法、芯片及电子设备
CN209895329U (zh) 乘法器
CN113033799B (zh) 数据处理器、方法、装置及芯片
CN210109863U (zh) 乘法器、装置、神经网络芯片及电子设备
CN210006031U (zh) 乘法器
CN210006030U (zh) 数据处理器
CN111258542B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258545B (zh) 乘法器、数据处理方法、芯片及电子设备
CN113031909B (zh) 数据处理器、方法、装置及芯片
CN113031915A (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