CN111260069B - 数据处理装置、方法、芯片及电子设备 - Google Patents

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

Info

Publication number
CN111260069B
CN111260069B CN201811450656.8A CN201811450656A CN111260069B CN 111260069 B CN111260069 B CN 111260069B CN 201811450656 A CN201811450656 A CN 201811450656A CN 111260069 B CN111260069 B CN 111260069B
Authority
CN
China
Prior art keywords
data
bit
circuit
multiplier
partial product
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811450656.8A
Other languages
English (en)
Other versions
CN111260069A (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 CN201811450656.8A priority Critical patent/CN111260069B/zh
Priority to PCT/CN2019/120994 priority patent/WO2020108486A1/zh
Publication of CN111260069A publication Critical patent/CN111260069A/zh
Application granted granted Critical
Publication of CN111260069B publication Critical patent/CN111260069B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

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

Abstract

本申请提供一种数据处理装置、方法、芯片及电子设备,该数据处理装置,包括:所述数据处理装置包括主处理电路以及从处理电路,所述主处理电路的输出端与所述从处理电路的输入端连接,该数据处理装置在进行数据处理时,该装置并可以通过分支处理电路将接收到的数据分配成多组数据,通过每一个分支处理电路连接的从处理电路能够对分配后的多组数据进行并行运算,从而提高数据处理效率,降低AI芯片的功耗。

Description

数据处理装置、方法、芯片及电子设备
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据处理装置、方法、芯片及电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片的快速发展对于数据处理的要求越来越高,进而对一些数据处理器的要求也越来越严格。
目前,终端对信息的处理均是基于一种通用处理器实现的,并且这种基于通用处理器运行软件程序来处理信息的方式,受限于通用处理器的运行速率,尤其在通用处理器负荷较大的情况下,数字处理效率较低,对于数字处理的计算模型中的正向运算来说,正向运算的计算量较大,通用的处理器完成正向运算的效率较低,从而导致AI芯片的功耗较高。
发明内容
基于此,有必要针对上述技术问题,提供一种数据处理装置、方法、芯片及电子设备。
本发明实施例提供一种数据处理装置,所述数据处理装置用于执行机器学习计算;所述数据处理装置包括主处理电路以及从处理电路,所述主处理电路的输出端与所述从处理电路的输入端连接,所述从处理电路的输出端与所述主处理电路的输入端连接,所述主处理电路用于对接收到的第一数据进行不同运算,并接收所述从处理电路的运算结果,所述从处理电路用于对接收到的第二数据进行累加运算以及乘累加运算,并将所述运算结果传输至所述主处理电路。
在其中一个实施例中,所述机器学习计算包括人工神经网络运算;所述第一数据和所述第二数据包括神经元数据和权值数据。
在其中一个实施例中,所述数据处理装置还包括分支处理电路,所述分支处理电路用于传输数据;其中,所述主处理电路的输出端与所述分支处理电路的第一输入端连接,所述分支处理电路的第一输出端与所述从处理电路的输入端连接,所述从处理电路的输出端与所述分支处理电路的第二输入端连接,所述分支处理电路的第二输出端与所述主处理电路的输入端连接。
在其中一个实施例中,所述主处理电路包括:第一顶层控制模块以及第一数据处理模块;所述第一顶层控制模块包括第一输出端,该第一输出端与所述第一数据处理模块的输入端连接,所述第一数据处理模块的输出端与所述第一顶层控制模块的第一输入端连接;所述第一顶层控制模块用于接收控制信号与数据,解析所述控制信号得到分支控制信号,并根据所述分支控制信号对所述数据进行调度处理,所述第一数据处理模块用于接收所述第一顶层控制模块调度后的数据以及所述分支控制信号,根据所述分支控制信号对调度后的所述数据进行不同运算。
在其中一个实施例中,所述不同运算包括,激活处理、池化操作、数据填充操作、计数操作、滤波操作、矩阵转置、向量比较、向量极值选取、向量乘、向量逐元素平方、生成随机数以及转数运算等。
在其中一个实施例中,所述第一顶层控制模块还包括第二输出端,该第二输出端与所述分支处理电路的第三输入端连接,所述分支处理电路的第三输出端与所述第一顶层控制模块的第二输入端连接。
在其中一个实施例中,所述第一数据处理模块包括:运算单元和矩阵转置单元;所述运算单元用于接收所述分支控制信号以及所述第一顶层控制模块调度后的数据,根据所述分支控制信号对调度后的所述数据进行向量比较运算、向量极值选取运算、向量逐元素平方运算、向量累加运算、生成随机数运算以及转数运算等,所述矩阵转置单元用于接收所述分支控制信号以及所述第一顶层控制模块调度后的数据,根据所述分支控制信号对调度后的所述数据进行矩阵转置处理。
在其中一个实施例中,所述运算单元包括乘法器、数据比较装置以及转数单元。
在其中一个实施例中,所述从处理电路包括:第二顶层控制模块和第二数据处理模块,所述第二顶层控制模块的输出端与所述第二数据处理模块的输入端连接;
其中,所述第二顶层控制模块用于接收所述分支控制信号以及所述第一顶层控制模块调度后的数据,解析所述分支控制信号得到控制子信号,并根据所述控制子信号对调度后的所述数据进行再次调度,所述第二数据处理模块用于接收所述第一顶层控制模块调度后的数据以及所述分支控制信号,根据所述分支控制信号对调度后的所述数据进行不同的运算。
在其中一个实施例中,所述第二数据处理模块包括:乘法单元、选择器、累加单元以及转数单元,所述乘法单元的输出端与所述选择器的输入端连接,所述选择器的输出端与所述累加单元的输入端连接,所述累加单元的输出端与所述转数单元的输入端连接;所述乘法单元用于对接收到的所述数据进行乘法运算,所述选择器用于选通所述乘法单元的乘法结果或所述数据,所述累加单元用于对接收到的所述乘法结果进行累加运算,或者对接收到的所述数据进行累加运算,所述转数单元用于对接收到的累加运算结果进行转数处理,得到目标格式的数据。
在其中一个实施例中,所述乘法单元包括所述乘法器。
本实施例提供的一种数据处理装置,该装置包括主处理电路以及从处理电路,在进行数据处理时,该装置并可以通过分支处理电路将接收到的数据数据分配成多组数据,通过每一个分支处理电路连接的从处理电路能够对分配后的多组数据进行并行运算,从而提高数据处理效率,降低AI芯片的功耗。
本发明实施例提供一种数据处理方法,所述方法包括:
接收待处理的数据以及控制信号;
解析所述控制信号得到分支控制信号;
根据所述分支控制信号对待处理的所述数据进行调度处理,得到调度后的第一数据;
根据所述分支控制信号对调度后的所述第一数据进行运算处理,得到运算结果。
在其中一个实施例中,所述根据所述分支控制信号对调度后的所述第一数据进行运算处理,得到运算结果,包括:
解析所述分支控制信号得到控制子信号;
根据所述控制子信号对调度后的所述第一数据进行调度处理,得到调度后的第二数据;
对调度后的所述第二数据进行运算处理,得到运算结果。
在其中一个实施例中,若所述运算处理为向量极值选取运算时,则所述对调度后的所述第二数据进行运算处理,得到运算结果,包括:
对调度后的所述第二数据进行向量比较运算,得到比较运算结果;和/或
对调度后的所述第二数据进行向量极值选取运算,得到极值选取运算结果。
在其中一个实施例中,若所述运算处理为乘法运算时,则所述对调度后的所述第二数据进行运算处理,得到运算结果,包括:
对调度后的所述第二数据进行乘法运算,得到乘法运算结果;和/或
对调度后的所述第二数据进行乘累加运算,得到乘累加运算结果。
本实施例提供的一种数据处理方法,接收数据以及控制信号,解析所述控制信号得到分支控制信号,根据所述分支控制信号对所述数据进行调度处理,得到调度后的第一数据,根据所述分支控制信号对调度后的所述第一数据进行不同的运算处理,得到运算结果,该方法可以对接收到的数据进行调度,对调度后的数据进行并行运算处理,有效提高数据处理效率,并降低了AI芯片的功耗。
本发明实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个第一方面所述的数据处理装置;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述数据处理装置时,所述多个所述数据处理装置间可以通过特定的结构进行链接并传输数据;
其中,多个所述数据处理装置通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据处理装置共享同一控制系统或拥有各自的控制系统;多个所述数据处理装置共享内存或者拥有各自的内存;多个所述数据处理装置的互联方式是任意互联拓扑。
本发明实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
本发明实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的数据处理装置、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本发明实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本发明实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本申请实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本发明实施例提供的一种芯片,包括至少一个如上述任一项所述的数据处理装置。
本发明实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为一实施例提供的一种数据处理装置结构示意图;
图1a为一实施例提供的一种数据处理装置的具体结构示意图;
图2为一实施例提供的数据处理装置中主处理电路以及从处理电路的具体结构示意图;
图3为另一实施例提供的一种基于消除符号位扩展的低功耗乘法器的结构示意图;
图4为另一实施例提供的另一种基于消除符号位扩展的低功耗乘法器的结构示意图;
图5为另一实施例提供的一种基于消除符号位扩展的低功耗乘法器的具体结构示意图;
图6为另一实施例提供的另一种基于消除符号位扩展的低功耗乘法器的具体结构示意图;
图7为另一实施例提供的一种基于消除负部分积取反后加一位的低功耗乘法器的结构示意图;
图8为另一实施例提供的另一种基于消除负部分积取反后加一位的低功耗乘法器的结构示意图;
图9为另一实施例提供的一种基于消除负部分积取反后加一位的低功耗乘法器的具体结构示意图;
图10为另一实施例提供的另一种基于消除负部分积取反后加一位的低功耗乘法器的具体结构示意图;
图11为另一实施例提供的一种支持多种位宽的复用乘法器的结构示意图;
图12为另一实施例提供的另一种支持多种位宽的复用乘法器的结构示意图;
图13为另一实施例提供的一种支持多种位宽的复用乘法器的具体结构示意图;
图14为另一实施例提供的另一种支持多种位宽的复用乘法器的具体结构示意图;
图15为另一实施例提供的一种基于一组畸形华莱士树的低功耗乘法器的结构示意图;
图16为另一实施例提供的一种基于一组畸形华莱士树的低功耗乘法器的具体结构示意图;
图17为另一实施例提供的一种基于不同数据位宽复用的乘法器的结构示意图;
图18为另一实施例提供的一种基于不同数据位宽复用的乘法器的具体结构示意图;
图19为另一实施例提供的一种数据比较器的结构示意图;
图20为另一实施例提供的一种数据比较器的外部电路结构示意图;
图21为另一实施例提供的另一种数据比较器的结构示意图;
图22为另一实施例提供的一种数据比较器的具体结构示意图;
图23为另一实施例提供的另一种数据比较器的具体结构示意图;
图24为另一实施例提供的一种复用向量选择装置的结构示意图;
图25为另一实施例提供的另一种复用向量选择装置的结构示意图;
图26为另一实施例提供的另一种复用向量选择装置的结构示意图;
图27为另一实施例提供的一种复用向量选择装置的具体结构示意图;
图28为另一实施例提供的另一种复用向量选择装置的具体结构示意图;
图29为另一实施例提供的另一种复用向量选择装置的具体结构示意图;
图30为另一实施例提供的另一种复用向量选择装置的具体结构示意图;
图31为另一实施例提供的另一种复用向量选择装置的具体结构示意图;
图32为另一实施例提供的一种复用向量选择装置的结构示意图;
图33为另一实施例提供的另一种复用向量选择装置的结构示意图;
图34为另一实施例提供的一种复用向量选择装置的具体结构示意图;
图35为另一实施例提供的另一种复用向量选择装置的具体结构示意图;
图36为一实施例提供的一种数据处理方法流程示意图;
图37为另一实施例提供的一种得到运算结果的方法流程示意图;
图38为另一实施例提供的一种进行不同运算得到对应运算结果的方法流程示意图;
图39为一实施例提供的一种组合处理装置的结构图;
图40为一实施例提供的另一种组合处理装置的结构图;
图41为一实施例提供的一种板卡的结构示意图。
具体实施方式
本申请提供的数据处理装置可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable GateArray,FPGA)芯片、或者是其它的硬件电路设备中进行数据处理,其结构示意图如图1所示。
如图1所示,图1为一个实施例提供的一种数据处理装置的结构图。如图1所示,该数据处理装置用于执行机器学习计算;所述数据处理装置包括主处理电路11以及从处理电路12;所述主处理电路11的输出端与所述从处理电路12的输入端连接,所述从处理电路12的输出端与所述主处理电路11的输入端连接,所述主处理电路11用于对接收到的第一数据进行不同运算,并接收所述从处理电路12的运算结果;所述从处理电路12用于对接收到的第二数据进行累加运算以及乘累加运算,并将所述运算结果传输至所述主处理电路11。
可选的,所述机器学习计算包括:人工神经网络运算,所述第一数据和所述第二数据包括神经元数据和权值数据。可选的,如图1a所示,所述数据处理装置还包括分支处理电路13,所述分支处理电路13用于传输数据,其中,所述主处理电路11的输出端与所述分支处理电路13的第一输入端连接,所述分支处理电路13的第一输出端与所述从处理电路12的输入端连接,所述从处理电路12的输出端与所述分支处理电路13的第二输入端连接,所述分支处理电路13的第二输出端与所述主处理电路11的输入端连接。
具体的,上述从处理电路12可以对接收到的两个向量进行累加运算以及乘累加运算,其中,乘累加运算可以表征为对数据先进行乘法运算得到乘法结果,并将所有的乘法结果进行累加运算得到乘累加运算的结果。可选的,主处理电路11可以对接收到的多个矩阵或多个向量进行不同的运算处理,在本实施例中,不同运算处理实际上可以理解为,除去从处理电路12可处理的累加运算以及乘累加运算以外的所有向量运算和矩阵运算。可选的,上述第一数据和第二数据均可以为多位宽的相同数据,也可以均为多位宽的不同数据,并且该数据可以为定点数,也可以为浮点数,也可以理解为,进行向量累加运算以及向量乘累加运算的数据均可以为定点数,进行其它不同运算处理的数据均可以为浮点数和定点数。可选的,进行不同运算的数据可以为第一数据中的部分数据或者所有的第一数据,还可以为第二数据进行累加运算以及乘累加运算后得到的运算结果,而进行累加运算和/或乘累加运算的第二数据可以为第一数据中的部分数据。
需要说明的是,上述一个主处理电路11可以连接N个分支处理电路13。可选的,若N等于4,则四个分支处理电路13中每一个分支处理电路13可以连接四个从处理电路12。其中,每一个分支处理电路13可以接收主处理电路11发送的第二数据中的部分数据,并将这部分数据分配后分别传输至其连接的四个分支处理电路13中,通过这四个分支处理电路13对分配后的数据进行并行运算处理。
另外,继续参见图1a,上述数据处理装置还可以包括控制器单元14,该控制器单元14可以获取输入数据以及计算指令,并且还可以解析该计算指令得到多个运算指令,将该多个运算指令以及输入数据发送给主处理电路11。可选的,数据处理装置还可以包括存储单元15,其中,存储单元15包括:寄存器、缓存中任意组合,缓存可以存储输入数据,寄存器可以存储输入数据中标量数据,缓存可以包括高速暂存缓存。可选的,上述输入数据可以包括第一数据和第二数据。可选的,控制器单元14可以包括:指令缓存单元、指令处理单元和存储队列单元,依赖关系处理单元,其中,指令缓存单元可以存储人工神经网络运算关联的计算指令,指令处理单元可以对计算指令解析得到多个运算指令,存储队列单元可以存储指令队列,该指令队列可以包括:按该队列的前后顺序待执行的多个运算指令或计算指令。
本实施例提供的一种数据处理装置,该装置包括主处理电路以及从处理电路,在进行数据处理时,该装置并可以通过分支处理电路将接收到的数据数据分配成多组数据,通过每一个分支处理电路连接的从处理电路能够对分配后的多组数据进行并行运算,从而提高数据处理效率,降低AI芯片的功耗。
如图2所示为另一个实施例提供的一种数据处理装置中主从处理电路的具体结构示意图,其中,数据处理装置包括所述主处理电路11,该主处理电路11包括:第一顶层控制模块111以及第一数据处理模块112;所述第一顶层控制模块111包括第一输出端,该第一输出端与所述第一数据处理模块112的输入端连接,所述第一数据处理模块112的输出端与所述第一顶层控制模块111的第一输入端连接。所述第一顶层控制模块111用于接收控制信号与数据,解析所述控制信号得到分支控制信号,并根据所述分支控制信号对所述数据进行调度处理,所述第一数据处理模块112用于接收所述第一顶层控制模块111调度后的数据以及所述分支控制信号,根据所述分支控制信号对调度后的所述数据进行不同运算。
可选的,所述不同运算包括,激活处理、池化操作、数据填充操作、计数操作、滤波操作、矩阵转置、向量比较、向量极值选取、向量乘、向量逐元素平方、向量累加、生成随机数以及转数运算等。可选的,继续参见图2所示,所述第一顶层控制模块111还包括第二输出端,该第二输出端与所述分支处理电路13的第三输入端连接,所述分支处理电路13的第三输出端与所述第一顶层控制模块111的第二输入端连接。
具体的,第一顶层控制模块111可以对接收到的控制信号进行解析,得到多个不同的分支控制信号,其中,每一个分支控制信号可以表征一种运算指令,以及该运算指令对应需要处理的具体数据。可选的,分支控制信号可以包括两类,一类为向量累加运算指令和向量乘累加运算指令,若分支控制信号为该类指令,则可以将该分支控制信号输入至从处理电路12;另一类为除向量累加运算指令和向量乘累加运算指令之外的所有其它运算指令,但是这些运算指令还可以包括向量累加运算指令,若分支控制信号为该类指令,则可以将该分支控制信号输入至主处理电路11中的第一数据处理模块112。可选的,第一顶层控制模块111可以对未输入至从处理电路12中的分支控制信号再进行一次解析处理,得到控制子信号后输入至第一数据处理模块112。可选的,数据处理装置可以连接四个分支处理电路13,但图2中只示出了一个分支处理电路13。
需要说明的是,上述调度处理可以表征为第一顶层控制模块111根据不同分支控制信号对应的运算指令将数据划分,划分成不同运算指令对应不同的具体数据,该具体数据可以为第一顶层控制模块111接收到的数据的一部分。可选的,第一数据处理模块112可以接收不同的分支控制信号,以及调度后对应不同的具体数据,并根据不同分支控制信号对应的运算指令对这些具体数据进行对应的运算操作。
本实施例提供的一种数据处理装置,该装置可以包括主处理电路,主处理电路包括第一顶层控制模块以及第一数据处理模块,主处理电路通过这两个模块可以对数据进行不同的运算操作,从而提高数据处理效率,降低AI芯片的功耗。
作为其中一个实施例,继续参见图2所示,其中,所述第一数据处理模块112包括:运算单元1121和矩阵转置单元1122;所述运算单元1121用于接收所述分支控制信号以及所述第一顶层控制模块111调度后的数据,根据所述分支控制信号对调度后的所述数据进行向量比较运算、向量极值选取运算、向量逐元素平方运算、向量累加运算、生成随机数运算以及转数运算,所述矩阵转置单元1122用于接收所述分支控制信号以及所述第一顶层控制模块111调度后的数据,根据所述分支控制信号对调度后的所述数据进行矩阵转置处理。
可选的,所述运算单元1121包括乘法器、数据比较装置以及转数单元。可选的,所述运算单元1121还可以包括向量加法器以及随机数生成器等,但本实施例不限于这些。
具体的,上述矩阵转置处理可以包括矩阵90°翻转,矩阵180°翻转,矩阵270°翻转以及矩阵镜像等操作。可选的,矩阵90°翻转可以表征为以矩阵的中心为原点,顺时针或逆时针旋转90°,矩阵180°翻转可以表征为以矩阵的中心为原点,顺时针或逆时针旋转180°,矩阵270°翻转可以表征为以矩阵的中心为原点,顺时针或逆时针旋转270°,矩阵镜像可以包括水平镜像和垂直镜像,其中,水平镜像可以表征为以矩阵中所有列的中间一列数据为中心轴左右翻转,垂直镜像可以表征为以矩阵中所有行的中间一行数据为中心轴上下翻转。可选的,每一次主处理电路11可以接收到一条指令,也就是说,每一次运算操作时,主处理电路11通过第一顶层控制模块111将接收到的该条指令进行解析,然后将解析后的信号发送至第一数据处理模块112中的运算单元1121或矩阵转置单元1122进行处理。可选的,主处理电路11在执行一条指令时,运算单元1121和矩阵转置单元1122中有一个单元可以处于空闲状态。另外,若第一顶层控制模块111解析后的信号对应为内积运算或累加运算,则第一顶层控制模块111可以将解析后的信号发送至从处理电路12,此时,运算单元1121和矩阵转置单元1122均可以处于空闲状态。
另外,上述向量比较运算可以表征为获取两个数据中的极大值和极小值,向量极值选取运算可以表征为获取多个数据中的极大值和极小值,向量逐元素平方运算可以表征为向量乘法运算。其中,向量的比较运算可以对浮点数进行处理,向量乘法运算可以对定点数进行处理。可选的,转数运算可以为将接收到的数据转换成不同类型不同位宽的另一种数据。可选的,所述运算单元1121可以包括多个不同功能的乘法器以及多个不同功能的数据比较装置。
需要说明的是,数据转换信号可以为多种。可选的,若数据转换信号包括四种信号,分别可以用二进制数值表示成0000,0001,0010,0011,其中,数据转换信号为0000表征的信号可以为转数单元接收到的数据为2N比特位宽的定点数,将该2N比特位宽的定点数需要转换成N比特位宽的定点数,其中,转换前2N比特位宽的定点数小数点的位置可以是确定的;数据转换信号为0001表征的信号可以为转数单元接收到的数据为2N比特位宽的定点数,将该2N比特位宽的定点数需要转换成N比特位宽的浮点数,数据转换信号为0010表征的信号可以包括转数单元接收到的数据为2N比特位宽的定点数,将该2N比特位宽的定点数需要转换成2N比特位宽的浮点数,数据转换信号为0011表征的信号可以包括转数单元接收到的数据为2N比特位宽的定点数,将该2N比特位宽的定点数需要转换成4N比特位宽的浮点数。可选的,转数单元可以根据接收到的四种不同的数据转换信号将接收到的数据进行不同的转换处理,具体实现方式通过如下方式实现:
(1)若转数单元接收到的数据转换信号为0000,则转数单元可以将2N比特位宽的定点数转换成N比特位宽的定点数,具体地,转换处理时,需要将目标转换后N比特位宽的定点数小数点的位置,与转换前2N比特位宽的定点数小数点的位置对齐,然后截取转换前2N比特位宽的定点数小数点位置前后共N位数值,得到转换后的N比特位宽的定点数。需要说明的是,转换后N比特位宽的定点数小数点的位置,小数点后包含数值的位数以及小数点前包含数值的位数均是已知的。示例性的,若转换后N比特位宽的定点数的小数点位置前有A位数值,小数点位置后有B位数值,则转数单元具体可以截取转换前2N比特位宽的定点数小数点位置前A位数值,以及小数点位置后B位数值作为转换后的N比特位宽的定点数。可选的,截取的方式可以分为三种情况:
情况a,当即将截取N位数值均包含在转换前2N比特位宽的定点数内,则转数单元可以直接截取转换前2N比特位宽的定点数中小数点位置前后共N位数值;
情况b,当即将截取的N位数值中的一部分数值包含在转换前2N比特位宽的定点数内,而需要截取的N位数值中的高位部分数值,在转换前2N比特位宽的定点数内没有对应的部分数值可截取,则转数单元均可以用转换前2N比特位宽的定点数的符号位,对这部分每位数值进行补位,然后从补位后的定点数中截取N位数值;
情况c,当即将截取的N位数值中的一部分数值包含在转换前2N比特位宽的定点数内,而需要截取的N位数值中的低位部分数值,在转换前2N比特位宽的定点数内没有对应的部分数值可截取,则转数单元可以根据转换前2N比特位宽的定点数的正负,对这部分每位数值进行补位,若转换前2N比特位宽的定点数为正数,这部分每位数值可以用数值0补位,否则用数值1补位,然后从补位后的定点数中截取N位数值;
(2)若转数单元接收到的数据转换信号为0001,0010,0011,则转数单元可以将2N比特位宽的定点数转换成N比特位宽的浮点数,转换成2N比特位宽的浮点数以及转换成4N比特位宽的浮点数,具体地,转换处理时,将定点数的最高位数值(即符号位)可以作为转换后浮点数的符号位数值,另外,若转换前2N位定点数为正数,则除去最高位数值符号位,从2N-1位定点数最高位往最低位方向查找,查找到数值1时,统计数值1后还有m位数值,此时,转换后浮点数的指数位数值可以等于m加指数位偏移值i,并减去转换前2N位定点数小数点的位置,但是,若转换前2N位定点数为负数,则除去最高位数值符号位,从2N-1位定点数最高位往最低位方向查找,查找到数值0时,统计的是数值0后还有m位数值,此外,还需要截取m位数值中的高n位数值作为转换后浮点数的尾数位数值,若m>=n,则可以直接截取n位数值作为尾数位数值,若m<n,则可以在转换前2N位定点数后补n-m位最高位(即符号位)数值。
示例性的,若需要将2N比特位宽的定点数转换成16比特位宽的浮点数,则i可以等于16,n可以等于10;若需要将2N比特位宽的定点数转换成32比特位宽的浮点数,则i可以等于127,n可以等于23;若需要将2N比特位宽的定点数转换成64比特位宽的浮点数,则i可以等于1023,n可以等于52。
本实施例提供的一种数据处理装置,该装置可以包括主处理电路,主处理电路中的运算单元可以通过乘法器和数据比较装置进行数据运算处理,以降低AI芯片的功耗。
具体的,在可能的实施方式中,上述运算单元1121中包括的多个不同功能的乘法器,可以通过以下实施例中的技术方案对几类乘法器进一步详细说明,但是不限于以下实施例中的乘法器。
第一类乘法器
该乘法器可以通过如下实施例进行详细说明:
如图3所示,图3为一个实施例提供的一种乘法器的结构图,该乘法器包括:编码电路11和修正累加电路12,其中,所述编码电路11的输出端与所述修正累加电路12的输入端连接;所述编码电路11用于对接收到的数据进行编码处理得到消除符号位扩展后的部分积,所述修正累加电路12用于对消除符号位扩展后的部分积进行修正累加处理。
具体的,上述编码电路11可以包括多个具有不同功能的数据处理单元,并且编码电路11接收到的数据可以作为乘法运算中的乘数,还可以作为乘法运算中的被乘数。可选的,上述不同功能的数据处理单元可以为具有二进制编码功能的数据处理单元。可选的,上述乘数和被乘数可以是多比特位宽的定点数。可选的,修正累加电路12可以对编码电路11得到的消除符号位扩展后的部分积进行累加的过程中做修正处理,得到目标的乘法运算结果。
需要说明的是,本实施例提供的乘法器可以处理固定位宽数据的乘法运算,该固定位宽可以为8比特,16比特,32比特,还可以为64比特,对此本实施例不做任何限定。但是,同一次乘法运算时,编码电路11接收到的乘数和被乘数为同位宽的数据。可选的,上述不同功能的数据处理单元的输入端口可以有一个,每个数据处理单元的每个输入端口的功能可以相同,输出端口也可以有一个,每个数据处理单元的每个输出端口的功能可以不相同,并且不同功能数据处理单元的电路结构可以不相同。
本实施例提供的一种乘法器,通过编码电路对接收到的数据进行编码处理得到消除符号位扩展后的部分积,修正累加电路可以对消除符号位扩展后的部分积进行修正累加处理,得到目标的运算结果,该过程能够消除符号位的扩展,有效降低乘法器的功耗,进而可以降低数据处理装置的功耗;另外,乘法器可以根据修正累加电路修正消除相关符号位扩展的处理,能够保证乘法器运算结果的准确性,提高数据处理装置的性能,进而提高AI芯片的性能。
图4为一个实施例提供的一种乘法器的结构图。如图4所示,该乘法器包括:布斯编码处理电路11、部分积获取电路12以及修正累加电路13;其中,所述布斯编码处理电路11的输出端与所述部分积获取电路12输入端连接,所述部分积获取电路12的输出端与所述修正累加电路13的输入端连接。所述布斯编码处理电路11用于对接收到的数据进行布斯编码处理得到编码信号,所述部分积获取电路12用于根据编码信号得到原始部分积,并根据所述原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积,所述修正累加电路13用于对消除符号位扩展后的部分积进行修正累加处理。
可选的,所述布斯编码处理电路11包括:数据输入端口111和编码信号输出端口112;所述数据输入端口111用于接收进行布斯编码处理的数据,所述编码信号输出端口112用于输出对接收到的数据进行布斯编码处理后得到的编码信号。
可选的,所述部分积获取电路12具体用于根据编码信号得到原始部分积,并通过逻辑门电路对所述原始部分积的高两位数值进行逻辑运算处理,得到消除符号位扩展后的部分积。可选的,所述部分积获取电路12包括异或门电路,与门电路和反相器。
具体的,上述布斯编码处理电路11可以接收乘法运算中的乘数,并对乘数进行布斯编码处理,得到编码信号。其中,在布斯编码处理前,布斯编码处理电路11可以自动对接收到的乘数进行补位处理,该补位处理可以表征为对乘数的最低位数值后补一位数值0。示例性的,若乘法器当前处理8位*8位数据的乘法运算,乘数为y7y6y5y4y3y2y1y0,则在布斯编码处理前,布斯编码处理电路11可以自动将乘数转换为y7y6y5y4y3y2y1y00,即在乘数的最低位y0后补了一位数值0。可选的,上述编码信号的数量可以等于乘法器当前所处理数据位宽的1/2,该编码信号的数量可以等于原始部分积的数量,且部分积获取电路12可以根据每一个编码信号得到对应的原始部分积,并通过逻辑门电路对每一个原始部分积中的最高位和次高位数值进行逻辑运算处理,得到消除符号位扩展后的部分积。可选的,上述原始部分积可以为未进行符号位扩展的部分积,且原始部分积的位宽比乘法器当前所处理数据的位宽多一位。同时,原始部分积中的最高位和次高位的数值,通过逻辑门电路确定目标编码的消除符号位扩展后的部分积中的额外一位数值,该位数值可以用Q表示。可选的,上述逻辑门电路可以为异或门电路,与门电路和反相器。
需要说明的是,若原始部分积的最高位数值用A表示,次高位数值用B表示,则部分积获取电路12可以将次高位数值B通过一个反相器处理后,得到原始部分积的最高位,对应在目标编码的消除符号位扩展后的部分积中对应位的数值
Figure BDA0001886575000000142
部分积获取电路12可以将最高位数值A和次高位数值B通过一个异或门电路处理后,得到原始部分积的最高位,对应在目标编码的消除符号位扩展后的部分积中对应位的数值A'=A∧B;另外,部分积获取电路12还可以将最高位数值A和次高位数值B,通过反相器及一个与门电路处理后,得到目标编码的消除符号位扩展后的部分积中的额外一位数值Q(即
Figure BDA0001886575000000143
)。其中,原始部分积的最高位数值A和次高位数值B,和逻辑运算处理后得到的消除符号位扩展后的部分积对应的最高位A',次高位B'以及额外一位数值Q之间的生成关系,可以参见表1。
表1
Figure BDA0001886575000000141
示例性的,若乘法器当前处理8位数据的乘法运算,得到的其中一个原始部分积可以为“P8P7P6P5P4P3P2P1P0”,消除符号位扩展后的部分积可以表示为“P9’P8’P7’P6’P5’P4’P3’P2’P1’P0’”,则对原始部分积中的最高位数值P8和次高位数值P7进行加1处理后,得到的消除符号位扩展后的部分积中P8’和P7’对应的数值,可以等于原始部分积中P8和P7对应的数值通过逻辑门电路进行逻辑运算后的结果,并且P9’为消除符号位扩展后的部分积中的额外一位数值,其中,消除符号位扩展后的部分积中对应位P6’,P5’,P4’,P3’,P2’,P1’和P0’的数值,可以等于原始部分积中对应位P6,P5,P4,P3,P2,P1和P0的数值。
本实施例提供的一种乘法器,通过布斯编码处理电路可以对接收到的数据进行布斯编码处理得到编码信号,再通过部分积获取电路根据每一个编码信号得到原始部分积,并通过逻辑门电路对原始部分积的高两位数据进行逻辑运算处理,以实现消除符号位扩展处理,得到消除符号位扩展后的部分积,最后通过修正累加电路对消除符号位扩展后的部分积进行修正累加处理从而保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗,进而降低数据处理装置的功耗,以提高AI芯片的性能。
图5为一个实施例提供的一种编码电路的具体结构示意图,如图5所示,所述编码电路11包括:布斯编码处理单元111和部分积获取单元112;所述布斯编码处理单元111的输出端与所述部分积获取单元112的输入端连接。其中,所述布斯编码处理单元111用于对接收到的数据进行布斯编码处理得到编码信号,所述部分积获取单元112用于根据编码信号得到原始部分积,并根据原始部分积进行算术运算处理及判断处理。
可选的,所述部分积获取单元112具体用于根据编码信号得到原始部分积,并根据原始部分积的高两位数值进行二进制加法运算处理及所述判断处理,得到消除符号位扩展后的部分积。可选的,所述部分积获取单元112包括第一全加器1121和1122。
具体的,上述布斯编码处理单元111可以接收乘法运算中的乘数,并对乘数进行布斯编码处理,得到编码信号。可选的,上述编码信号的数量可以等于乘法器当前所处理数据位宽的1/2,该编码信号的数量可以等于原始部分积的数量,且部分积获取单元112可以根据每一个编码信号得到对应的原始部分积,并通过部分积获取单元112中包含的两个第一全加器1121和1122,对每一个原始部分积中的最高位和次高位数值进行加1处理,以及根据原始部分积中的最高位和次高位的数值进行一次判断处理。
需要说明的是,若原始部分积的最高位数值用A表示,次高位数值用B表示,对最高位的数值A和次高位的数值B进行判断处理后,可以得到目标编码的消除符号位扩展后的部分积中的额外一位数值,该位数值可以用Q表示。可选的,消除符号位扩展后的部分积中的额外一位数值Q,可以根据原始部分积中最高位数值A和次高位数值B共同确定,确定规则可以参见表2。另外,通过最高位数值A和次高位数值B确定额外一位数值Q具体可以通过逻辑门电路实现。
表2
Figure BDA0001886575000000151
示例性的,若原始部分积为“z9iz8iz7iz6iz5iz4iz3iz2iz1i”,消除符号位扩展后的部分积为“z10iz9i’z8i’z7iz6iz5iz4iz3iz2iz1i”,则对原始部分积中的最高位数值z9i和次高位数值z8i进行加1处理及判断处理后,得到的消除符号位扩展后的部分积中z9i’和z8i’对应的数值,可以等于原始部分积中z9i和z8i对应的数值进行加1处理后得到的对应和位的数值,并且根据表2的信息再进行一次判断处理,得到消除符号位扩展后的部分积中Q位z10i的数值。可选的,布斯编码处理过程中,得到的编码信号数量可以等于得到的原始部分积的数量,还可以等于消除符号位扩展后的部分积数量。
本实施例提供的一种乘法器,通过布斯编码处理单元可以对接收到的数据进行布斯编码处理得到编码信号,再通过部分积获取单元根据每一个编码信号得到原始部分积,并根据原始部分积的高两位数值进行加1处理及判断处理,以实现消除符号位扩展处理,得到消除符号位扩展后的部分积,最后通过修正累加电路对应的消除符号位扩展后的部分积,并对消除符号位扩展后的部分积进行修正累加处理,从而保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗,进而降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,继续如图5所示乘法器的具体结构示意图,其中,乘法器包括所述布斯编码处理单元111,该布斯编码处理单元111包括:数据输入端口1111和编码信号输出端口1112;所述数据输入端口1111用于接收进行布斯编码处理的数据,所述编码信号输出端口1112用于输出对接收到的数据进行布斯编码处理后得到的编码信号。
具体的,若数据输入端口1111接收到一个数据,则布斯编码处理单元111可以自动对该数据的最低位数值后补一位数值0,得到一个比原数据的位宽多一位数值的数据,同时,布斯编码处理单元111可以对补0后的数据进行布斯编码处理处理,得到多个编码信号,将多个编码信号通过编码信号输出端口1112输出。可选的,布斯编码处理单元111可以通过数据输入端口1111接收乘法运算中的乘数,且布斯编码处理单元111可以对乘数进行布斯编码处理处理。可选的,每一次布斯编码处理处理时,可以将补0后的数据划分成多组待编码数据,布斯编码处理单元111可以同时对划分后的多组待编码数据进行布斯编码处理处理,可选的,划分多组待编码数据的原则可以是补0后的数据中相邻每3位数值作为一组待编码数据,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。可选的,布斯编码处理的编码规则可以参见表3,其中,表3中的y2i+1,y2i和y2i-1可以表示每一组待编码数据对应的数值,X可以表示编码电路11接收到的被乘数,对每一组对应待编码数据进行布斯编码处理处理后得到对应的编码信号PPi(i=0,1,2,...,n)。可选的,根据表3所示,布斯编码处理后得到的编码信号可以包括五类,每类编码信号分别定义为-2X,2X,-X,X和0。示例性的,若编码电路11接收到的被乘数为“x7x6x5x4x3x2x1x0”,则X可以表示为“x7x6x5x4x3x2x1x0”。
表3
Figure BDA0001886575000000171
示例性的,若布斯编码处理单元111接收到的乘数为8位的数据“y7y6y5y4y3y2y1y0”,则补0后的数据可以为“y7y6y5y4y3y2y1y00”,当i=0时,y2i+1=y1,y2i=y0,y2i-1=y-1,则y-1可以表示y0后的一位数值0(即乘数可以表示为y7y6y5y4y3y2y1y0y-1),布斯编码处理过程中,可以对y-1y0y1,y1y2y3,y3y4y5和y5y6y7四组待编码数据分别进行编码,得到4个编码信号,其中,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。
本实施例提供的一种乘法器,布斯编码处理单元可以对接收到的数据进行布斯编码处理得到编码信号,然后部分积获取单元可以根据每一个编码信号得到对应的消除符号位扩展后的部分积,并通过修正累加电路可以对消除符号位扩展后的部分积进行修正累加处理,得到目标的乘法运算结果,从而保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗,进而降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,继续如图5所示乘法器的具体结构示意图,其中,乘法器包括所述部分积获取单元112,该部分积获取单元112包括:编码信号输入端口1121、数据输入端口1122以及部分积输出端口1123;所述编码信号输入端口1121用于接收编码信号,数据输入端口1122用于接收数据,部分积输出端口1123用于输出根据编码信号与接收到的数据获取的消除符号位扩展后的部分积。
具体的,通过部分积获取单元112对接收到的每一类编码信号进行加1处理及判断处理,可以得到对应的消除符号位扩展后的部分积。可选的,数据输入端口1122可以接收乘法运算中的数据,该数据可以为乘法运算中的被乘数。
本实施例提供的一种乘法器,通过部分积获取单元可以根据每一个编码信号得到对应的消除符号位扩展后的部分积,并通过修正累加电路可以对消除符号位扩展后的部分积进行修正累加处理,得到目标的乘法运算结果,从而保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗,进而降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,继续如图5所示乘法器的具体结构示意图,其中,乘法器包括所述修正累加电路12,该修正累加电路12包括:第二全加器121~12n,多个所述第二全加器121~12n用于对接收到的所述原始部分积进行修正累加处理。
具体的,第二全加器121~12n可以用门电路实现二进制相加并求出和的组合电路,还可以理解为对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路。可选的,修正累加电路12中包含的第二全加器数量n可以等于乘法器当前所处理数据的位宽M加2的结果,与N的乘积,与2M之和,其中,N可以表示布斯编码处理单元111得到的编码信号数量。可选的,修正累加电路12中n个第二全加器的分布规律可以为逐层分布,部分积获取单元112得到的每一个消除符号位扩展后的部分积可以对应一层第二全加器。其中,第二全加器的层数可以等于消除符号位扩展后的部分积数量,最后一层第二全加器的数量可以等于乘法器当前所处理数据位宽N的2倍,其它每一层第二全加器的数量可以等于N。另外,对所有消除符号位扩展后的部分积进行累加处理时,每一个消除符号位扩展后的部分积的最低位数值所处位置,比下一个消除符号位扩展后的部分积最低位数值所处位置向右错开两位数值。可选的,全加器121~12n通过修正累加处理结束后,可以得到运算结果,该运算结果可以为最后一层第二全加器输出的和位信号。另外,上述第二全加器121~12n的内部电路结构与第一全加器1121和1122的内部电路结构可以相同,功能也可以相同。
需要说明的是,修正累加电路12中的每一个第二全加器可以对两位及两位以上的输入信号进行加法运算,得到两位输出信号,该两位输出信号可以包括进位信号Carry和结果位信号Sum。可选的,本实施例中,修正累加电路12中的每一个第二全加器可以接收三个输入信号,该三个输入信号可以为消除符号位扩展的部分积中的任意一位数值,低位加法器得到的进位输出信号Carry,结果位信号Sum,和二进制信号中的任意三种信号。可选的,通过修正累加电路12对消除符号位扩展后的部分积进行修正累加处理过程中,可以通过修正累加电路12中的第二全加器,对部分积获取单元112得到的两个消除符号位扩展后的部分积进行加1处理(即修正处理)。可选的,乘法器通过修正累加电路12中的第一层第二全加器,可以对部分积获取单元112得到的第一个消除符号位扩展后的部分积,和第二个消除符号位扩展后的部分积的对应位进行累计,第二层第二全加器可以对部分积获取单元112得到的第三个消除符号位扩展后的部分积,与上一层第二全加器的结果进行累加处理,依次类推,最后一层第二全加器可以对上一层第二全加器的结果,与最后一层之前的每一层第二全加器输出的信号中未处理的进位信号或和位信号,以及部分积获取单元112得到的最后一个消除符号位扩展后的部分积进行累加,得到乘法运算结果,在处理过程中,除第一层第二全加器外,其它层每一个第二全加器接收到的输入信号不仅可以包括每一个消除符号位扩展后的部分积对应位数值,还可以包括上一层对应位第二全加器输出的和位信号,与上一层对应位的低一位第二全加器输出的进位信号。
可选的,修正累加电路12可以对消除符号位扩展后的部分积进行累加的过程中做两次修正处理,其中,修正累加电路12可以通过第一层和最后一层第二全加器中的两个第二全加器,对消除符号位扩展后的部分积中的数值进行加1处理,其中,如果每一个第二全加器对应一个编号,则第一层第二全加器中进行加1处理的第二全加器可以为次高位编号加法器的低一位全加器,最后一层全加器中进行加1处理的第二全加器可以为最高位编号的全加器。另外,最后一层第二全加器的最低位编号的第二全加器接收到的进位输入信号可以等于0。
本实施例提供的一种乘法器,通过修正累加电路可以对消除符号位扩展后的部分积进行修正累加处理,从而能够对消除符号位扩展处理进行修正,提高乘法运算结果的准确性,提高数据处理装置的性能,进而提高AI芯片的性能。
图6为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述修正累加电路13,该修正累加电路13包括:修正华莱士树组电路131和累加电路132;其中,所述修正华莱士树组电路131的输出端与所述累加电路132的输入端连接;所述修正华莱士树组电路131用于对消除符号位扩展后的部分积进行累加修正处理,所述累加电路132用于对接收到的输入数据进行累加处理。
具体的,上述修正华莱士树组电路131可以对布斯编码处理电路111得到的消除符号位扩展后的部分积中的数值进行累加修正处理,并通过累加电路132对修正华莱士树组电路13得到修正结果进行累加处理,得到乘法运算结果。
本实施例提供的一种乘法器,通过修正华莱士树组电路可以对消除符号位扩展后的部分积进行累加修正处理,并通过累加电路对修正结果进行累加处理,得到乘法运算结果,该过程能够对消除符号位扩展处理进行修正,提高乘法运算结果的准确性,提高数据处理装置的性能,进而有效提高AI芯片的性能。
在其中一个实施例中,继续如图6所示乘法器的具体结构示意图,其中,乘法器包括所述修正华莱士树组电路131,该修正华莱士树组电路131包括:华莱士树子电路1311~131n,多个所述华莱士树子电路1311~131n用于对消除符号位扩展后的部分积的每一列进行修正累加处理。
具体的,华莱士树子电路1311~131n的电路结构可以由全加器和半加器组合实现,另外,还可以理解为华莱士树子电路1311~131n是一种能够对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路。可选的,修正华莱士树组电路131包含的华莱士树子电路的数量n可以等于乘法器当前所处理数据位宽的2倍,并且n个华莱士树子电路可以对目标编码的部分积进行并行处理,但连接方式可以是串行连接。可选的,修正华莱士树组电路13中每一个华莱士树子电路可以对消除符号位扩展后的所有部分积的每一列进行加法处理,每一个华莱士树子电路可以输出两个信号,即进位信号Carryi与一个和位信号Sumi,其中,i可以表示每一个华莱士树子电路对应的编号,每一个华莱士树子电路的编号为0。可选的,每一个华莱士树子电路接收到输入信号的数量可以等于编码信号数量或者消除符号位扩展后的部分积数量,还可以等于编码信号数量或者消除符号位扩展后的部分积数量加1。
需要说明的是,乘法器对消除符号位扩展后的部分积的每一列进行相加的过程中,通过修正华莱士树组电路131中的两个华莱士树子电路,对消除符号位扩展后的部分积中的两列数值进行加1处理(即修正处理),也就是说,消除符号位扩展后的部分积中的这两列数值所分别对应的两个华莱士树子电路的输入信号,比消除符号位扩展后的部分积中其它列数值所对应的每一个华莱士树子电路的输入信号多了一个输入信号,该输入信号为1。
另外,修正华莱士树组电路131中每一个华莱士树子电路接收到的信号可以包括进位输入信号Cini,部分积输入信号,进位输出信号Couti。可选的,每一个华莱士树子电路接收到的部分积输入信号可以为所有消除符号位扩展后的部分积中每一列的数值,每一个华莱士树子电路输出的进位信号Couti的位数可以等于NCout=floor((NI+NCin)/2)-1。其中,NI可以表示该华莱士树子电路的数据输入位数,NCin可以表示该华莱士树子电路的进位输入位数,NCout可以表示该华莱士树子电路最少的进位输出位数,floor(·)可以表示向下取整函数。可选的,修正华莱士树组电路131中每一个华莱士树子电路接收到的进位输入信号可以为上一个华莱士树子电路输出的进位输出信号,而第一个华莱士树子电路接收到的进位输入信号为0,同时,第一个华莱士树子电路接收到的进位信号输入端口的数量,可以与其它华莱士树子电路的进位信号输入端口的数量相同。
在本实施例中,若修正华莱士树组电路131中串行连接的n个华莱士树子电路的编号为1,2,…,i,…,n,则修正华莱士树组电路131可以通过第i个华莱士树子电路和第n个华莱士树子电路,对消除符号位扩展后的部分积中对应的两列数据进行加1处理,另外,若布斯编码处理电路11得到的第一个消除符号位扩展后的部分积,从最低位到最高位对应的位数编号为1,2,…,m-2,m-1,m,其中,m对应Q位的编号,1对应第一个消除符号位扩展后的部分积中最低位数的编号,则i可以等于n/2,可以理解为,修正华莱士树组电路131可以通过第n/2个华莱士树子电路和最后一个华莱士树子电路,对消除符号位扩展后的部分积进行加1处理。
示例性的,若乘法器当前处理8位*8位数据的乘法运算,通过部分积获取电路12得到的消除符号位扩展后的部分积为“pi9pi8pi7pi6pi5pi4pi3pi2pi1”(i=1,…,n=4),其中,i可以表示第i个消除符号位扩展后的部分积,则修正累加处理时,4个消除符号位扩展后的部分积的分布规律可以参见图10所示,每一个原点代表消除符号位扩展后的部分积中的每一位数值,从最右列至最左列算起,总共需要16个华莱士树子电路对4个消除符号位扩展后的部分积进行修正累加处理,修正华莱士树组电路131可以通过第8个华莱士树子电路和最后一个华莱士树子电路进行修正加1处理。
本实施例提供的一种乘法器,通过修正华莱士树组电路可以对消除符号位扩展后的部分积进行修正累加处理,该过程能够对消除符号位扩展处理进行修正,提高乘法运算结果的准确性,提高数据处理装置性能,进而提高AI芯片的性能。
在其中一个实施例中,继续如图6所示乘法器的具体结构示意图,其中,乘法器包括所述累加电路132,该累加电路132包括:加法器1321,所述加法器1321用于对接收到的两个同位宽数据进行加法运算。
具体的,加法器1321可以为不同位宽的加法器,该加法器可以为超前进位加法器。可选的,加法器1321可以接收修正华莱士树组电路131输出的两路信号,对两路输出信号进行加法运算,得到乘法运算结果。
本实施例提供的一种乘法器,通过累加电路可以对修正华莱士树组电路输出的两路信号进行累加处理,得到的乘法运算结果,该过程能够对消除符号位扩展处理进行修正,提高乘法运算结果的准确性,提高数据处理装置性能,进而提高AI芯片的性能。
在其中一个实施例中,继续如图6所示乘法器的具体结构示意图,其中,乘法器包括所述加法器1321,该加法器1321包括:进位信号输入端口1321a、和位信号输入端口1321b以及结果输出端口1321c;所述进位信号输入端口1321a用于接收进位信号,和位信号输入端口1321b用于接收和位信号,结果输出端口1321c用于输出进位信号与和位信号进行累加处理的结果。
具体的,加法器1321可以通过进位信号输入端口1321a接收修正华莱士树组电路131输出的进位信号Carry,通过和位信号输入端口1321b接收修正华莱士数组电路131输出的和位信号Sum,并将进位信号Carry与和位信号Sum进行累加的结果,通过结果输出端口1321c输出。
需要说明的是,乘法运算时,乘法器可以采用不同位宽的加法器1321对修正华莱士树组电路131输出的进位输出信号Carry与和位输出信号Sum进行加法运算,其中,上述加法器1321的可处理数据的位宽可以等于乘法器当前处理的数据位宽N的2倍。可选的,修正华莱士树组电路131中的每一个华莱士树子电路可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=0,…,N-1,i为每一个华莱士树子电路的对应编号,编号从0开始)。可选的,加法器1321接收到的Carry={[Carry0:CarryN-2],0},也就是说,加法器1321接收到的进位输出信号Carry的位宽为N,进位输出信号Carry中前N-1位数值对应修正华莱士树组电路131中前N-1个华莱士树子电路的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器1321接收到的和位输出信号Sum的位宽为N,和位输出信号Sum中的数值可以等于修正华莱士树组电路131中每一个华莱士树子电路的和位输出信号。
示例性的,若乘法器当前处理8位*8位数据的乘法运算,则加法器1321可以为16位超前进位加法器,乘法器中的修正华莱士树组电路131可以输出16个华莱士树子电路的和位输出信号Sum和进位输出信号Carry,但是,16位超前进位加法器接收到的和位输出信号可以为修正华莱士树组电路131输出的完整和位信号Sum,接收到的进位输出信号可以为修正华莱士树组电路131中,除去最后一个华莱士树子电路输出的进位输出信号的所有进位输出信号与0结合后的进位信号Carry。
本实施例提供的一种乘法器,通过累加电路可以对修正华莱士树组电路输出的两路信号进行累加运算,得到乘法运算结果,该过程能够对消除符号位扩展处理进行修正,提高乘法运算结果的准确性,提高数据处理装置性能,进而提高AI芯片的性能。
第二类乘法器
该乘法器可以通过如下实施例进行详细说明:
图7为一个实施例提供的一种乘法器的结构示意图,如图7所示,所述乘法器包括:布斯编码电路11,修正部分积获取电路12,华莱士树组电路13和累加电路14,所述布斯编码电路11的输出端与所述修正部分积获取电路12的输入端连接,所述修正部分积获取电路12的输出端与所述华莱士树组电路13的输入端连接,所述华莱士树组电路13的输出端与所述累加电路14的输入端连接。其中,所述布斯编码电路11用于对接收到的数据进行布斯编码处理得到编码信号,所述修正部分积获取电路12用于根据所述编码信号得到符号位扩展后的部分积以及加一位数值,并根据符号位扩展后的所述部分积得到目标编码的部分积,所述华莱士树组电路13用于根据目标编码的所述部分积以及所述加一位数值进行累加处理,所述累加电路14用于对接收到的输入数据进行累加处理。
具体的,上述布斯编码电路11可以接收乘法运算中的乘数,并对乘数进行布斯编码处理,得到编码信号。其中,在布斯编码处理前,布斯编码电路11可以自动对接收到的乘数进行补位处理。可选的,上述编码信号的数量可以等于乘法器当前所处理数据位宽的1/2,该编码信号的数量可以等于符号位扩展后的部分积的数量,且修正部分积获取电路12可以根据每一个编码信号得到对应的符号位扩展后的部分积以及对应的加一位数值。
需要说明的是,乘法器中的布斯编码电路11根据接收到的乘数进行布斯编码处理,得到编码信号,修正部分积获取电路12通过编码信号和接收到的被乘数获得符号位扩展后的部分积和加一位数值,并根据符号位扩展后的部分积得到目标编码的部分积,通过华莱士树组电路13可以对修正部分积获取电路12得到目标编码的部分积中的每一列数值进行累加处理,得到累加结果,并通过累加电路14对华莱士树组电路13得到的累加结果进行累加处理,得到乘法运算的目标结果,其中,在乘法运算过程中,加一位数值可以作为华莱士树组电路13和累加电路14的进位输入信号。可选的,编码信号可以为正信号,也可以为负信号,若编码信号为负信号,则加一位数值为1,否则为0。可选的,上述乘数和被乘数可以是多比特位宽的定点数,可以理解为,本实施例提供的乘法器可以处理固定比特位宽的数据乘法运算,但是,同一次乘法运算时,布斯编码电路11和修正部分积获取电路12接收到的乘数以及被乘数可以是同位宽的数据。
本实施例提供的一种乘法器,通过布斯编码电路对接收到的数据进行布斯编码处理得到编码信号,修正部分积获取电路根据编码信号和接收到的数据获取符号位扩展后的部分积以及加一位数值,并根据符号位扩展后的部分积得到目标编码的部分积,通过华莱士树组电路对目标编码的部分积以及加一位数值进行累加处理得到累加结果,最后通过累加电路对接收到的累加结果进行累加处理,得到运算结果,该过程能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到原始部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
图8为一个实施例提供的一种乘法器的结构示意图,如图8所示,所述乘法器包括:布斯编码电路11,修正部分积获取电路12,修正华莱士树组电路13和累加电路14,所述布斯编码电路11的输出端与所述修正部分积获取电路12的输入端连接,所述修正部分积获取电路12的输出端与所述修正华莱士树组电路13的输入端连接,所述修正华莱士树组电路13的输出端与所述累加电路14的输入端连接。其中,所述布斯编码电路11用于对接收到的数据进行布斯编码处理得到编码信号,所述修正部分积获取电路12用于根据编码信号得到符号位扩展后的部分积以及加一位数值,并根据符号位扩展后的所述部分积以及所述加一位数值得到目标编码的所述部分积,所述修正华莱士树组电路13用于对目标编码的所述部分积进行累加处理,所述累加电路14用于对接收到的输入数据进行累加处理。
具体的,上述布斯编码电路11可以接收乘法运算中的乘数,并对乘数进行布斯编码处理,得到编码信号。其中,在布斯编码处理前,布斯编码电路11可以自动对接收到的乘数进行补位处理。可选的,上述编码信号的数量可以等于乘法器当前所处理数据位宽的1/2,可以等于原始部分积的数量,还可以等于目标编码的部分积的数量,且修正部分积获取电路12可以根据每一个编码信号得到对应的符号位扩展后的部分积以及对应的加一位数值,并根据符号位扩展后的所有部分积和所有加一位数值得到目标编码的部分积。可选的,上述符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽的2倍。可选的,修正华莱士树组电路13可以对编码电路11得到的目标编码的部分积中的每一列数值进行累加处理,得到累加结果,并通过累加电路14对修正华莱士树组电路13得到的累加结果进行累加处理,得到乘法运算的目标结果。可选的,上述目标编码的所有部分积可以包括符号位扩展后部分积中的数值和加一位数值。
需要说明的是,乘法器通过修正部分积获取电路12可以接收乘法运算中的被乘数,并根据布斯编码电路11得到的编码信号和接收到的被乘数获取符号位扩展后的部分积,并根据布斯编码电路11得到的编码信号获取加一位数值。
本实施例提供的一种乘法器,该乘法器能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到目标编码的部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,上述乘法器包括所述布斯编码电路11,该布斯编码电路11包括:数据输入端口111和编码信号输出端口112,所述数据输入端口111用于接收进行布斯编码处理的数据,所述编码信号输出端口112用于输出对接收到的所述数据进行布斯编码处理后得到的编码信号。
具体的,若布斯编码电路11通过数据输入端口111接收到一个数据,则布斯编码电路11可以自动对该数据进行补位处理,得到一个比原数据的位宽多一位数值的数据,同时,布斯编码电路11可以对补位后的数据进行布斯编码处理,得到多个编码信号,将多个编码信号通过编码信号输出端口112输出。可选的,布斯编码电路11可以通过数据输入端口111接收乘法运算中的乘数,且布斯编码电路11可以对乘数进行布斯编码处理。可选的,每一次布斯编码处理时,可以将补位后的数据划分成多组待编码数据,布斯编码电路11可以同时对划分后的多组待编码数据进行布斯编码处理。可选的,划分多组待编码数据的原则可以表征为将补位后的数据中相邻每3位数值作为一组待编码数据,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。
本实施例提供的一种乘法器,该乘法器能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到目标编码的部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
作为其中一个实施例,修正部分积获取电路12包括:编码信号输入端口121,数据输入端口122和部分积输出端口123,所述编码信号输入端口121用于接收编码信号,数据输入端口122用于接收数据,部分积输出端口123用于输出目标编码的所述部分积。
具体的,修正部分积获取电路12可以根据接收到的不同编码信号以及接收到的数据获取原始部分积,对原始部分积进行符号位扩展处理得到符号位扩展后的部分积,并根据接收到的不同编码信号获取对应的加一位数值,最后根据符号位扩展后的部分积得到目标编码的部分积。可选的,数据输入端口122可以接收乘法运算中的数据,该数据可以为乘法运算中的被乘数。可选的,原始部分积与符号位扩展后的部分积中每一位数值均为二进制数据0或1,其中,0可以表示低电平信号,1可以表示高电平信号。
可选的,目标编码的所有部分积的分布规律中,每一个目标编码的部分积可以等于符号位扩展后的部分积,还可以等于符号位扩展后的部分积中的部分位数值,其中,第一个目标编码的部分积可以等于第一个对应的符号位扩展后的部分积。可选的,每一个目标编码的部分积中的最低位数值可以与上一个目标编码的部分积中的最低位数值的低两位处数值位于同一列,相当于每一个符号位扩展后的部分积中的每一位数值,在上一个符号位扩展后的部分积中的每一位数值所处对应列的基础上,左移两列,并且每一个目标编码的部分积的最高位数值,与第一个目标编码的部分积中的最高位数值位于同一列,相当于每一个符号位扩展后的部分积,超出第一个符号位扩展后的部分积中最高位数值对应列的更高列数值可以不进行累加运算。可选的,目标编码的所有部分积的列数可以等于乘法器当前所处理数据位宽的2倍。
需要说明的是,修正部分积获取电路12可以根据编码信号直接得到原始部分积,并对原始部分积进行符号位扩展处理得到符号位扩展后的部分积。可选的,原始部分积的位宽可以等于N+1,符号位扩展后的部分积的位宽可以等于2N,其中,N表示乘法器当前所处理数据的位宽。可选的,符号位扩展后的部分积中,低N+1位数值可以等于原始部分积的N+1位数值,将高N-1位数值扩展成原始部分积中的符号位数值,该原始部分积中的符号位数值可以为原始部分积中的最高位数值。也可以理解为,符号位扩展后的部分积中,高N位数值可以相同,低N+1位数值可以等于原始部分积的N+1位数值。
示例性的,若乘法器当前处理8位*8位的数据乘法运算,通过修正部分积获取电路12得到的一个原始部分积为p8p7p6p5p4p3p2p1p0,进行符号位扩展处理后得到的符号位扩展后的部分积可以表示为p8p8p8p8p8p8p8p8p7p6p5p4p3p2p1p0
另外,若修正部分积获取电路12可以接收到五类编码信号-2X,2X,-X,X和0,当编码信号为-2X时,则对应的加一位数值可以为1,当编码信号为2X时,则对应的加一位数值可以为0,当编码信号为-X时,则对应的加一位数值可以为1,当编码信号为X时,则对应的加一位数值可以为0,当编码信号为±0时,则对应的加一位数值可以为0。
本实施例提供的一种乘法器,该乘法器能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到原始部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,上述乘法器包括所述华莱士树组电路13,该华莱士树组电路13包括:加一位数值输入端口131,部分积输入端口132,和位信号输出端口133和进位信号输出端口134,所述加一位数值输入端口131用于接收修正部分积获取电路12获取的所述加一位数值,所述部分积输入端口132用于接收修正部分积获取电路12得到的符号位扩展后的所述部分积,所述和位信号输出端口133用于输出华莱士树组电路13获取的和位信号,所述进位信号输出端口134用于输出华莱士树组电路13获取的进位信号。
可选的,如图9所示,上述乘法器包括所述华莱士树组电路13,该华莱士树组电路13包括:华莱士树子电路1311~131n,多个所述华莱士树子电路1311~131n用于对符号位扩展后的所述部分积的每一列进行累加处理。
具体的,华莱士树子电路1311~131n的电路结构可以由全加器和/或半加器组合实现,另外,还可以理解为华莱士树子电路1311~131n是一种能够对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路。可选的,华莱士树组电路13包含的华莱士树子电路的数量n可以等于乘法器当前所处理数据位宽的2倍,并且n个华莱士树子电路对目标编码的部分积进行并行处理,但连接方式可以是串行连接。可选的,华莱士树组电路13中每一个华莱士树子电路可以对目标编码的所有部分积的每一列进行加法处理,每一个华莱士树子电路可以输出两个信号,即进位信号Carryi与一个和位信号Sumi,其中,i可以表示每一个华莱士树子电路对应的编号,第一个华莱士树子电路的编号为0。可选的,每一个华莱士树子电路接收到的部分积输入信号的数量可以等于符号位扩展后的部分积的数量,还可以等于符号位扩展后的部分积加1,并且上述输入信号可以为目标编码的所有部分积中的一列数值和0,其中,每一个华莱士树子电路接收到的进位输入信号的端口与部分积输入信号的端口不同,并且每一个华莱士树子电路的部分积输入信号端口的数量是固定的,若目标编码的所有部分积中,其中一列数值数量小于部分积输入信号端口的数量,则可以将未输入列数值的部分积输入信号端口输入0。另外,上述加一位数值输入端口131和部分积输入端口132,可以为华莱士树组电路13中的第一个华莱士树子电路的输入端口,上述和位信号输出端口133和进位信号输出端口134,可以为华莱士树组电路13中的最后一个华莱士树子电路的输入端口。
需要说明的是,每一个华莱士树子电路的进位输出信号,可以作为下一个华莱士树子电路对应的进位输入信号。可选的,若从第一个编码信号开始对应的编号分别为0,1,…,(n/2)-1,对应得到的加一位数值的编号也可以为0,1,…,(n/2)-1,则华莱士树组电路中的第一个华莱士树子电路,接收到的进位输入信号可以为编码信号对应编号从0到(n/2)-3的这(n/2)-2个编码信号对应的加一位数值。可选的,每一个华莱士树子电路的进位输出位数NCout可以等于floor((NI+NCin)/2)-1,其中,NI表示该华莱士树子电路的数据(即包括输入信号和进位输入信号)输入位数,NCin表示该华莱士树子电路的进位输入位数,floor(·)表示向下取整函数,NCout表示最少数量的进位输出位数。
另外,原目标编码的所有部分积的第一列是第一个符号位扩展后的部分积的最低位数值,其它数值均为0,实际上,华莱士树组电路中的第一个华莱士树子电路,接收到的进位输入信号可以为编码信号对应编号从0到(n/2)-3的这(n/2)-2个编码信号对应的加一位数值,因此,实际目标编码的所有部分积的分布规律可以理解为,实际运算的数值为一个N*2N的方阵,除了每一个符号位扩展后的部分积中的数值外,每一位数值周围空白处的数值均用数值0或1补位。可选的,每一个目标编码的部分积均有对应的编码信号,若编码信号为负数,则实际运算对应的目标编码的部分积的空白处用数值1补位进行运算,若编码信号为正数,则实际运算对应的目标编码的部分积的空白处用数值0补位进行运算。可选的,华莱士树组电路13在实际累加运算中,是将目标编码的所有部分积中的第一列数据中的空白出补位数值,用编码信号对应编号从0到(n/2)-3的这(n/2)-2个编码信号对应的加一位数值等效代替。
本实施例提供的一种乘法器,该乘法器能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到原始部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
继续参见图9所示,另一实施例提供的一种乘法器,该乘法器包括所述累加电路14,该累加电路14包括:加法器141,所述加法器141用于对接收到的两个同位宽数据以及进位输入信号进行加法运算。
具体的,加法器141可以为不同位宽的加法器,该加法器可以为超前进位加法器。可选的,加法器141可以接收华莱士树组电路13输出的两路信号以及进位输入信号,对两路输出信号和进位输入信号进行加法运算,输出乘法运算结果。
本实施例提供的一种乘法器,该乘法器能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到原始部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
作为其中一个实施例,该加法器141包括:进位信号输入端口1411,和位信号输入端口1412,进位输入端口1413和结果输出端口1414,所述进位信号输入端口1411用于接收进位信号,和位信号输入端口1412用于接收所述和位信号,进位输入端口1413用于接收所述修正部分积获取电路12得到的所述加一位数值,并将所述加一位数值填充至进位输入信号的最低位处,所述结果输出端口1414用于输出对所述进位信号,所述和位信号以及所述加一位数值进行累加运算的结果。
具体的,加法器141可以通过进位信号输入端口1411接收华莱士树组电路13输出的进位信号Carry,通过和位信号输入端口1412接收华莱士树组电路13输出的和位信号Sum,通过进位输入端口1413可以接收修正部分积获取电路12得到的最后一个编号的编码信号对应的加一位数值,还可以接收修正部分积获取电路12得到的倒数第二个编号的编码信号对应的加一位数值,其中,Carry={Carry1,Carry2,…,Carryi},Sum={Sum1,Sum2,…,Sumi},i表示华莱士树组电路13中从第一个华莱士树子电路开始对应的编号,i可以等于华莱士树子电路的数量。其中,最后一个编号的编码信号对应的加一位数值可以作为加法器141进位输入信号。
需要说明的是,加法器141对接收到的加一位数值,进位输入信号与和位输入信号进行累加运算前,可以将进位输入信号Carry={Carry1,Carry2,…,Carryi}左移一位,得到一个i-1位进位输入信号,即{Carry2,Carry3,…,Carryi},相当于最低位进位输入信号不进行累加运算,原始进位输入信号Carry对应的最低位变空,此时,加法器141可以将接收到的倒数第二个编号对应的加一位数值,填充至原始进位输入信号Carry对应的最低位处,重新得到一个i位进位输入信号,加法器141可以对重新得到的该i位进位输入信号,接收到的和位信号Sum,以及接收到的最后一个编号的编码信号对应的加一位数值进行累加运算,并将累加运算的结果通过结果输出端口1414输出。
示例性的,若乘法器当前处理8位*8位的数据乘法运算,则加法器141可以为16位超前进位加法器,华莱士树组电路13可以输出16个华莱士树子电路的和位输出信号Sum和进位输出信号Carry,但是,16位超前进位加法器接收到的和位输出信号可以为华莱士树组电路13输出的完整和位信号Sum,接收到的进位输出信号可以为华莱士树组电路13中,除去最后一个华莱士树子电路输出的进位输出信号的所有进位输出信号与0结合后的进位信号Carry。
本实施例提供的一种乘法器,该乘法器能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到原始部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
作为其中一个实施例,其中,乘法器包括所述修正部分积获取电路12,该修正部分积获取电路12包括:编码信号输入端口121,数据输入端口122和部分积输出端口123,所述编码信号输入端口121用于接收编码信号,数据输入端口122用于接收数据,部分积输出端口123用于输出目标编码的所述部分积。
具体的,继续参见上一示例,根据表3可知,修正部分积获取电路12可以通过编码信号输入端口121接收布斯编码电路11输出的五类不同的编码信号,每类编码信号分别定义为-2X,2X,-X,X和0,并且修正部分积获取电路12可以根据接收到的不同编码信号以及接收到的数据获取原始部分积,对原始部分积进行符号位扩展处理得到符号位扩展后的部分积,同时,根据接收到的不同编码信号获取对应的加一位数值,最后根据符号位扩展后的部分积和加一位数值得到目标编码的部分积。可选的,数据输入端口122可以接收乘法运算中的数据,该数据可以为乘法运算中的被乘数。可选的,原始部分积与符号位扩展后的部分积中每一位数值均为二进制数据0或1,其中0可以表示低电平信号,1可以表示高电平信号。
另外,乘法器可以通过修正部分积获取电路12,将得到的每一个符号位扩展后的部分积,与对应的加一位数值组合,得到目标编码的部分积。可选的,上述每一个目标编码的部分积可以等于符号位扩展后的部分积,还可以等于符号位扩展后的部分积中的部分数值,与上一个符号位扩展后的部分积对应的加一位数值组合的部分积,并且每一个目标编码的部分积中的加一位数值可以位于对应符号位扩展后的部分积中最低位数值后低两位处。可选的,目标编码的所有部分积的列数可以等于乘法器当前所处理数据位宽的2倍,且目标编码的部分积的数量可以等于符号位扩展后的部分积的数量加1。
需要说明的是,修正部分积获取电路12可以根据编码信号直接得到原始部分积,并对原始部分积进行符号位扩展处理得到符号位扩展后的部分积。可选的,原始部分积的位宽可以等于N+1,符号位扩展后的部分积的位宽可以等于2N,其中,N表示乘法器当前所处理数据的位宽。可选的,符号位扩展后的部分积中,低N+1位数值可以等于原始部分积的N+1位数值,将高N-1位数值扩展成原始部分积中的符号位数值,该原始部分积中的符号位数值可以为原始部分积中的最高位数值。也可以理解为,符号位扩展后的部分积中,高N位数值可以相同,低N+1位数值可以等于原始部分积的N+1位数值。
示例性的,若乘法器当前处理8位*8位的数据乘法运算,通过修正部分积获取电路12得到的一个原始部分积为p8p7p6p5p4p3p2p1p0,进行符号位扩展处理后得到的符号位扩展后的部分积可以表示为p8p8p8p8p8p8p8p8p7p6p5p4p3p2p1p0
另外,若修正部分积获取电路12可以接收到五类编码信号-2X,2X,-X,X和0,当编码信号为-2X时,则对应的加一位数值可以为1,当编码信号为2X时,则对应的加一位数值可以为0,当编码信号为-X时,则对应的加一位数值可以为1,当编码信号为X时,则对应的加一位数值可以为0,当编码信号为+0时,则对应的加一位数值可以为0。
可选的,目标编码的所有部分积的分布规律中,第一个目标编码的部分积可以等于第一个符号位扩展后的部分积,从第二个目标编码的部分积开始,每一个目标编码的部分积可以等于每一个符号位扩展后的部分积,与上一个符号位扩展后的部分积对应的加一位数值组合得到的部分积,且加一位数值可以位于所对应符号位扩展后的部分积最低位数值的低两位处,但是,最后一个目标编码的部分积可以等于最后一个符号位扩展后的部分积得到的对应加一位数值,还可以理解为,最后一个加一位数值没有可以组合的符号位扩展后的部分积。同时,目标编码的所有部分积的分布规律中,第一个目标编码的部分积的最低位数值,可以与第二个目标编码的部分积的最低位数值位于同一列,从第三个目标编码的部分积开始,每一个目标编码的部分积的最低位数值,可以与上一个目标编码的部分积的最低位的高两位处对应的数值位于同一列。同时,目标编码的所有部分积的分布规律中,以第一个目标编码的部分积的最高位数值对应列为准,其它的每一个目标编码的所有部分积最高位数值所对应列,与第一个目标编码的部分积的最高位数值对应列为同一列,可以理解为,目标编码的所有部分积中的高位数值均为对应符号位扩展后的部分积中的数值,超出最高位数值对应列的数值均不进行累加运算。
本实施例提供的一种乘法器,该乘法器能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到目标编码的部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
作为其中一个实施例,该修正华莱士树组电路13包括:部分积输入端口131,进位信号输入端口132,和位信号输出端口133和进位信号输出端口134,所述部分积输入端口131用于接收修正部分积获取电路12得到的目标编码的所述部分积,所述进位信号输入端口132用于接收进位输入信号,所述和位信号输出端口133用于输出华莱士树组电路13获取的和位信号,所述进位信号输出端口134用于输出华莱士树组电路13获取的进位信号。
可选的,所述修正华莱士树组电路13包括:修正华莱士树子电路1311~131n,多个所述修正华莱士树子电路1311~131n用于对目标编码的所述部分积的每一列进行累加处理。
具体的,修正华莱士树组电路13包含的修正华莱士树子电路的数量n可以等于乘法器当前所处理数据位宽的2倍,并且n个修正华莱士树子电路可以对目标编码的部分积进行并行处理,但连接方式可以是串行连接。可选的,修正华莱士树组电路13中每一个修正华莱士树子电路可以对目标编码的所有部分积的每一列进行加法处理,每一个修正华莱士树子电路可以输出两个信号,即进位信号Carryi与一个和位信号Sumi,其中,i可以表示每一个修正华莱士树子电路对应的编号,第一个修正华莱士树子电路的编号为0,且第一个修正华莱士树子电路接收到的进位信号可以为0。可选的,每一个修正华莱士树子电路接收到部分积输入信号的数量可以等于目标编码的部分积的数量,还可以等于符号位扩展后的部分积的数量加1,并且上述输入信号可以为目标编码的所有部分积中的一列数值和0,其中,每一个修正华莱士树子电路接收到的进位输入信号的端口与部分积输入信号的端口不同,并且每一个修正华莱士树子电路的部分积输入信号端口的数量是固定的,若目标编码的所有部分积中,其中一列数值数量小于部分积输入信号端口的数量,则可以将未输入列数值的部分积输入信号端口输入0。
另外,修正华莱士树组电路13中的每一个修正华莱士树子电路接收到部分积输入信号的数量还可以等于目标编码的部分积的数量减1,但是,其中一个修正华莱士树子电路接收到部分积输入信号的数量可以等于目标编码的部分积的数量,该修正华莱士树子电路对应接收的是最后一个目标编码的部分积对应列的所有数值。其中,最后一个目标编码的部分积可以等于最后一个编码信号对应的加一位数值。
本实施例提供的一种乘法器,通过修正华莱士树组电路对目标编码的部分积进行累加处理得到累加结果,并通过累加电路对累加结果进行累加处理,得到运算结果,该过程能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到目标编码的部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,如图10所示乘法器的具体结构示意图,其中,乘法器包括所述累加电路14,该累加电路14包括:加法器141,所述加法器141用于对接收到的两个同位宽数据进行加法运算。
具体的,加法器141可以为不同位宽的加法器,并且加法器141可以为超前进位加法器。可选的,加法器141可以接收修正华莱士树组电路13输出的两路信号,对两路输出信号进行加法运算,输出乘法运算结果。
本实施例提供的一种乘法器,通过累加电路可以对修正华莱士树组电路输出的两路信号进行累加处理,输出乘法运算结果,该过程能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到目标编码的部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,其中,乘法器包括所述加法器141,该加法器141包括:进位信号输入端口1411,和位信号输入端口1412和结果输出端口1413,所述进位信号输入端口1411用于接收进位信号,所述和位信号输入端口1412用于接收和位信号,所述结果输出端口1413用于输出进位信号与和位信号进行累加处理的结果。
具体的,加法器141可以通过进位信号输入端口1411接收修正华莱士树组电路13输出的进位信号Carry,通过和位信号输入端口1412接收修正华莱士树组电路13输出的和位信号Sum,并将进位信号Carry与和位信号Sum进行累加运算的结果,通过结果输出端口1413输出。
需要说明的是,乘法运算时,乘法器可以采用不同位宽的加法器141对修正华莱士树组电路13输出的进位输出信号Carry与和位输出信号Sum进行加法运算,其中,上述加法器141可处理数据的位宽可以等于乘法器当前处理的数据位宽N的2倍。可选的,修正华莱士树组电路13中的每一个华莱士树子电路可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=0,…,2N-1,i为每一个畸形华莱士树子电路的对应编号,编号从0开始)。可选的,加法器141接收到的Carry={[Carry0:Carry2N-2],0},也就是说,加法器141接收到的进位输出信号Carry的位宽为N,进位输出信号Carry中前2N-2位数值对应华莱士树组电路12中前2N-2个华莱士树子电路的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器141接收到的和位输出信号Sum的位宽为2N,和位输出信号Sum中的数值可以等于修正华莱士树组电路13中每一个华莱士树子电路的和位输出信号。
本实施例提供的一种乘法器,该乘法器能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到目标编码的部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
第三类乘法器
该乘法器可以通过如下实施例进行详细说明:
如图11所示,图11为一个实施例提供的一种乘法器的结构图。如图11所示,该乘法器包括:修正编码电路11和修正压缩电路12;所述修正编码电路11的输出端与所述修正压缩电路12的输入端连接;所述修正编码电路11用于对接收到的定点数进行编码处理,得到符号位扩展后的部分积,并根据符号位扩展后的所述部分积得到目标编码的部分积,所述修正压缩电路12用于对目标编码的部分积进行累加处理。
具体的,上述修正编码电路11可以包括多个具有不同功能的数据处理单元,并且修正编码电路11接收到的定点数可以作为乘法运算中的乘数,还可以作为乘法运算中的被乘数。可选的,修正编码电路11可以接收多种不同比特位宽的定点数,也就是说,本实施例提供的乘法器可以处理多种不同比特位宽定点数的乘法运算。但是,同一次乘法运算时,修正编码电路11接收到的乘数和被乘数可以是同位宽的定点数,即乘数和被乘数位宽相等。示例性的,本实施例提供的乘法器可以处理8位*8位的数据乘法运算,16位*16位的数据乘法运算,32位*32位的数据乘法运算,还可以处理64位*64位的数据乘法运算,对此本实施例不作任何限定。
可选的,修正编码电路11可以对接收到的定点数进行二进制编码处理,相当于可以对接收到的乘数进行二进制编码处理,并根据接收到的被乘数,得到符号位扩展后的部分积,该符号位扩展后的部分积的位宽可以等于乘法器当前所处理定点数位宽的2倍。示例性的,修正编码电路11接收到的是16比特位宽的定点数,若乘法器当前所处理8位定点数乘法运算,则修正编码电路11需要将16比特位宽的定点数划分成,高8位和低8位的两组定点数分别进行运算,此时,得到的符号位扩展后的部分积的位宽可以等于乘法器当前所处理定点数位宽的2倍;若乘法器当前所处理16位定点数乘法运算,则修正编码电路11需要对整体16位定点数进行运算,此时,得到的符号位扩展后的部分积的位宽可以等于乘法器当前所处理定点数位宽的2倍。
可选的,所述修正编码电路11中包括第一输入端,用于接收输入的功能选择模式信号;所述修正压缩电路12中包括第一输入端,用于接收输入的所述功能选择模式信号。可选的,所述功能选择模式信号用于确定乘法器处理的定点数位宽。
需要说明的是,上述功能选择模式信号可以有多种,不同功能选择模式信号对应于乘法器当前可以处理不同位宽定点数的乘法运算。可选的,同一次乘法运算时,修正编码电路11和修正压缩电路12接收到的功能选择模式信号可以相等。
示例性的,如果修正编码电路11和修正压缩电路12能够接收多种功能选择模式信号,以三种功能选择模式信号为例,可以分别为mode=00,mode=01,mode=10,则mode=00可以表征乘法器能够对16位定点数进行处理,mode=01可以表征乘法器能够对32位定点数进行处理,mode=10可以表征乘法器能够对64位定点数进行处理,另外,mode=00也可以表征为乘法器能够对64位定点数进行处理,mode=01也可以表征为乘法器能够对16位定点数进行处理,mode=10可以表征乘法器能够对32位定点数进行处理。
本实施例提供的乘法器,该乘法器能够保证乘法器运算结果准确性的前提下,能够对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
图12为另一实施例提供的一种乘法器的结构图。如图12所示,该乘法器包括:判断电路11、数据扩展电路12、编码电路13以及压缩电路14;所述判断电路11的输出端与所述数据扩展电路12的输入端连接,所述判断电路11的输出端与所述编码电路13的第一输入端连接,所述数据扩展电路12的输出端与所述编码电路13的第二输入端连接,所述编码电路13的输出端与所述压缩电路14的输入端连接。其中,所述判断电路11用于判断接收到的定点数是否需要通过与所述判断电路11的输出端相连的数据扩展电路12进行处理,所述数据扩展电路12用于对接收到的定点数进行扩展处理,所述编码电路13用于对接收到的定点数进行编码处理得到目标编码的部分积,所述压缩电路14用于对目标编码的部分积进行累加处理。
具体的,上述判断电路11可以为一种判断接收到的定点数的位宽,与乘法器可处理的定点数的位宽2N大小的电路。可选的,上述编码电路13可以包括多个具有不同功能的数据处理单元,并且编码电路13接收到的定点数可以作为乘法运算中的乘数,还可以作为乘法运算中的被乘数。另外,编码电路13接收到的定点数可以是判断电路11输出的两个定点数,还可以为数据扩展电路12对接收到的两个定点数进行扩展处理后的定点数。可选的,上述不同功能的数据处理单元可以为具有二进制编码功能的数据处理单元。可选的,上述乘数和被乘数可以是多比特位宽的浮点数。可选的,压缩电路14可以对编码电路13得到的目标编码的部分积进行累加处理,得到最终的乘法运算结果。
需要说明的是,乘法器可以对固定2N比特位宽的定点数进行乘法运算,还可以理解为乘法器中的编码电路和压缩电路可以对2N比特位宽的定点数进行乘法运算。但是,同一次乘法运算时,编码电路13接收到的乘数和被乘数为同位宽的定点数。示例性的,本实施例提供的乘法器可以处理8位*8位的数据乘法运算,16位*16位的数据乘法运算,32位*32位的数据乘法运算,还可以处理64位*64位的数据乘法运算,对此本实施例不作任何限定。可选的,上述不同功能的数据处理单元的输入端口可以有一个,每个数据处理单元的每个输入端口的功能可以相同,输出端口也可以有一个,每个数据处理单元的每个输出端口的功能可以不相同,并且不同功能数据处理单元的电路结构可以不相同。
可选的,所述编码电路13中包括第三输入端,用于接收输入的功能选择模式信号;所述压缩电路14中包括第一输入端,用于接收输入的功能选择模式信号。
本实施例提供的一种乘法器,该乘法器能够保证处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
图13为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述修正编码电路11,该修正编码电路11包括:低位布斯编码单元111、低位部分积获取单元112、选择器113、高位布斯编码单元114、高位部分积获取单元115、低位选择器组单元116以及高位选择器组单元117;所述低位布斯编码单元111的第一输出端与所述选择器112的输入端连接,所述低位布斯编码单元111的第二输出端与所述低位部分积获取单元112的第一输入端连接,所述选择器112的输出端与所述高位布斯编码单元113的第一输入端连接,所述高位布斯编码单元113的输出端与所述高位部分积获取单元115的第一输入端连接,所述低位选择器组单元116的输出端与所述低位部分积获取单元112的第二输入端连接,所述高位选择器组单元117的输出端与所述高位部分积获取单元115的第二输入端连接。其中,所述低位布斯编码单元111用于对接收到的定点数中的低位定点数进行布斯编码处理得到低位编码信号,所述低位部分积获取单元112用于根据所述低位编码信号,得到目标编码的低位部分积,所述选择器113用于选通高位定点数进行布斯编码时的补位数值,所述高位布斯编码单元114用于对接收到的所述高位定点数以及所述补位数值,进行布斯编码处理得到高位编码信号,所述高位部分积获取单元115用于根据所述高位编码信号,得到目标编码的高位部分积,所述低位选择器组单元116用于选通目标编码的低位部分积中的数值,所述高位选择器组单元117用于选通目标编码的高位部分积中的数值。
具体的,上述修正编码电路11可以接收乘法运算中的乘数和被乘数,并对乘数进行布斯编码处理,得到编码信号,根据编码信号以及接收到的被乘数得到目标编码的部分积。其中,低位定点数在进行布斯编码处理前,低位布斯编码单元111可以自动对修正编码电路11接收到的定点数中的低位定点数进行一次补位处理,并对补位处理后的低位定点数进行布斯编码处理,得到低位编码信号,该定点数可以为乘法运算中的乘数。可选的,上述低位编码信号的数量可以等于低位定点数位宽的1/2,且该低位编码信号的数量可以等于低位定点数对应得到的符号位扩展后的部分积的数量。需要说明的是,无论乘法器当前可处理定点数的位宽和乘法器接收到的定点数位宽是否相同,实现布斯编码处理时,低位布斯编码单元111都需要对低位定点数进行补位处理。
同时,通过高位布斯编码单元114可以对修正编码电路11接收到的乘数中的高位定点数,进行布斯编码处理得到高位编码信号,但是,高位定点数在进行布斯编码处理前,需要通过选择器113获得一个选通数值,该选通数值可以作为高位定点数进行布斯编码时的补位数值,然后将高位定点数与补位数值组合得到补位后的高位定点数,通过高位布斯编码单元114对补位后的高位定点数进行布斯编码处理,得到高位编码信号。可选的,选择器113可以为二路选择器,选通数值可以为0,还可以为乘数中的低位定点数的最高位数值。示例性的,一乘法器可以处理N比特和2N比特位宽定点数的乘法运算,修正编码电路11接收到的定点数位宽为2N比特,若该乘法器当前处理的是N比特位宽定点数的运算,则选择器113选通的数据为0,也就是说,乘法器需要将接收到的2N比特位宽的定点数划分成,高N位和低N位定点数进行分别处理;若该乘法器当前处理的是2N比特位宽定点数的运算,则选择器113选通的数据为低位定点数中的最高位数值,此时相当于,乘法器需要将接收到的2N比特位宽的定点数作为一个整体进行布斯编码处理。另外,选择器112还可以根据接收到的不同功能选择模式信号确定选通的补位数值。
需要说明的是,低位部分积获取单元114可以根据每一个低位编码信号得到低位定点数对应的符号位扩展后的部分积,以及低位选择器组单元116选通后得到的目标编码的低位部分积中的数值,得到目标编码的低位部分积。可选的,高位部分积获取单元115可以根据每一个高位编码信号得到高位定点数对应的符号位扩展后的部分积,以及高位选择器组单元117选通后得到的目标编码的高位部分积中的数值,得到目标编码的高位部分积。可选的,布斯编码过程中,得到的低位编码信号的数量可以等于得到的高位编码信号的数量,还可以等于低位定点数对应的符号位扩展后的部分积的数量,或高位定点数对应的符号位扩展后的部分积的数量。可选的,修正编码电路11可以包含N/4个低位布斯编码单元111,还可以包含N/4个高位布斯编码单元114。可选的,修正编码电路11中可以包含N/4个低位部分积获取单元112,还可以包含N/4个高位部分积获取单元115。可选的,上述每一个低位部分积获取单元112和每一个高位部分积获取单元115中,均可以包含2N个数值生成子单元,每一个数值生成子单元可以获取符号位扩展后的部分积中的一个数值。其中,上述N均可以表示乘法器接收到的定点数的位宽。
本实施例提供的一种乘法器,该乘法器能够保证运算结果准确性的前提下,能够对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,继续如图13所示乘法器的具体结构示意图,其中,乘法器包括所述低位布斯编码单元111,该低位布斯编码单元111包括:低位数据输入端口1111以及低位编码信号输出端口1112。所述低位数据输入端口1111用于接收进行布斯编码处理的低位数据,所述低位编码信号输出端口1112用于输出对低位定点数进行布斯编码处理后得到的低位编码信号。
具体的,乘法运算中,乘法器中的修正编码电路11需要对乘数进行布斯编码处理,修正编码电路11中的低位布斯编码单元111可以通过低位数据输入端口1111接收乘数中低位数据中的三位数值,该三位作为一组待编码数据,该三个数值可以为低位数据中相邻的三位数值。其中,每一个低位布斯编码单元111对接收到的待编码数据处理后,将得到的低位编码信号可以通过低位编码信号输出端口1114输出。另外,修正编码电路11中的第一个低位布斯编码单元111,通过低位数据输入端口1111可以接收补位数值0,以及低位数据中的低两位数值。
示例性的,若乘法器接收到的乘数为16比特位宽的定点数“y15y14y13y12y11y10y9y8y7y6y5y4y3y2y1y0”,从最低位数值至最高位数值对应的编号为0,…,15,低位布斯编码单元111可以对低位定点数y7y6y5y4y3y2y1y0进行布斯编码处理,布斯编码处理前对8位低位定点数进行补位处理后得到9位定点数y7y6y5y4y3y2y1y00,低位布斯编码单元111可以分别对y7y6y5y4y3y2y1y00中y7y6y5,y5y4y3,y3y2y1,y1y00这四组数据分别进行布斯编码处理,通过低位布斯编码单元111中的低位数据输入端口1111可以接收9位数据划分后的四组数据中相邻的三位数值。
需要说明的是,每一次布斯编码处理时,可以将低位定点数进行补位处理后的定点数划分成多组待编码数据,低位布斯编码单元111可以同时对划分后的多组待编码数据进行布斯编码处理。可选的,划分多组待编码数据的原则可以表征为对补位处理后的定点数中相邻的每3位数值作为一组待编码数据,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。
本实施例提供的一种乘法器,该乘法器能够保证运算结果准确性的前提下,能够对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,继续如图13所示乘法器的具体结构示意图,其中,乘法器包括所述低位部分积获取单元112,该低位部分积获取单元112包括:低位编码信号输入端口1121、选通数值输入端口1122、定点数输入端口1123以及部分积中的数值输出端口1124;所述低位编码信号输入端口1121用于接收低位布斯编码单元111输出的低位编码信号,所述选通数值输入端口1122用于接收低位选择器组单元116选通后,输出的目标编码的低位部分积中的数值,所述定点数输入端口1123用于接收乘法运算的定点数,所述部分积中的数值输入端口1124用于接收目标编码的低位部分积中的数值。
具体的,低位部分积获取单元112通过低位编码信号输入端口1121可以接收低位布斯编码单元111输出的低位编码信号,并通过定点数输入端口1123可以接收乘法运算中的被乘数。可选的,低位部分积获取单元112可以根据接收到的低位编码信号以及接收到的乘法运算中的被乘数,得到低位定点数对应的符号位扩展后的部分积。可选的,若定点数输入端口1123接收到的被乘数位宽为N,则符号位扩展后的部分积的位宽可以等于2N。示例性的,若低位部分积获取单元112接收到一个N比特位宽的被乘数X,则低位部分积获取单元112可以根据被乘数X与五类编码信号-2X,2X,-X,X和0直接得到对应的符号位扩展后的部分积,该符号位扩展后的部分积的低(N+1)位数值可以等于原始部分积的数值,符号位扩展后的部分积的高(N-1)位数值可以等于原始部分积的符号位数值,该符号位数值也就是原始部分积的最高位数值。当编码信号为-2X时,则原始部分积可以为对X进行左右一位后取反再加1,当编码信号为2X时,则原始部分积可以为对X进行左移一位,当编码信号为-X时,则原始部分积可以为对X按位取反再加1,当编码信号为X时,则原始部分积可以为X与X的符号位数值(即X的最高位数值)结合的数据,当编码信号为+0时,则原始部分积可以为0,也就是9位原始部分积中的每一位数值均等于0。
需要说明的是,低位部分积获取单元112可以通过选通数值输入端口1122,接收低位选择器组单元116选通的不同位宽定点数对应的符号位扩展后的部分积中的对应位数值,并根据乘法器当前得到的低位定点数对应的符号位扩展后的部分积,以及选通后的对应位数值,得到目标编码的低位部分积。
本实施例提供的一种乘法器,该乘法器能够保证运算结果准确性的前提下,能够对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,继续如图13所示乘法器的具体结构示意图,其中,乘法器包括所述选择器113,该选择器113包括:功能选择模式信号输入端口1131(mode)、第一选通数值输入端口1132、第二选通数值输入端口1133以及运算结果输出端口1134;所述功能选择模式信号输入端口1131用于接收乘法器需要处理不同位宽的定点数对应的功能选择模式信号,所述第一选通数值输入端口1132用于接收第一选通数值,所述第二选通数值输入端口1133用于接收第二选通数值,所述运算结果输出端口1134输出选通后的所述第一选通数值或所述第二选通数值。
具体的,选择器113可以通过功能选择模式信号输入端口1131接收到的功能选择模式信号,确定乘法器当前可处理的定点数位宽,并确定运算结果输出端口1134输出第一选通数值或第二选通数值。可选的,第一选通数据可以为0或低位定点数的最高位数值,第二选通数据可以为0或低位定点数的最高位数值。
需要说明的是,若乘法器当前可处理8位定点数乘法运算时,则乘法器可以对16位乘数和16位被乘数对应的高8位定点数和低8位定点数分别进行乘法运算,也就是说,高8位乘数和高8位被乘数通过高位布斯编码单元114进行8位定点数运算,低8位乘数和低8位被乘数通过低位布斯编码单元111进行8位定点数运算,并且乘法器进行8位定点数乘法运算时,选择器113可以通过第二选通数值输入端口1133接收第二选通数值0,相当于高8位定点数补位处理后的补位数值为0;若乘法器当前可处理16位定点数乘法运算时,则乘法器可以直接对16位乘数和16位被乘数进行乘法运算,即修正编码电路11直接对16位乘数进行布斯编码,此时,选择器113可以通过第一选通数值输入端口1132接收第一选通数值,该第一选通数值为低8位定点数中的最高位数值。
本实施例提供的一种乘法器,该乘法器可以对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
图13为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述高位布斯编码单元114,该高位布斯编码单元114包括:高位数据输入端口1141以及高位编码信号输出端口1142;所述高位数据输入端口1141用于接收进行布斯编码处理的高位数据,所述高位编码信号输出端口1142用于输出对高位数据进行布斯编码处理后得到的高位编码信号。
具体的,乘法运算中,乘法器中的修正编码电路11需要对乘数进行布斯编码处理,修正编码电路11中的高位布斯编码单元114可以通过高位数据输入端口1141可以接收乘数中高位数据中的三位数值,该三位数值作为一组待编码数据,该三个数值可以为高位数据中相邻的三位数值。
示例性的,继续参见16位数据乘法运算的示例,高位布斯编码单元114可以分别对y7y6y5y4y3y2y1y00中y7y6y5,y5y4y3,y3y2y1,y1y00四组数据分别进行布斯编码处理,通过高位布斯编码单元114中的高位数据输入端口1141可以接收9位数据划分后的四组数据中连续的三位数值。
需要说明的是,每一次布斯编码处理时,高位布斯编码单元114处理待编码的高位定点数的原理,与低位布斯编码单元111处理待编码的低位定点数的原理可以相同。其中,高位布斯编码单元114与低位布斯编码单元111的内部电路结构可以相同,外部输出端口的功能也可以相同。
本实施例提供的一种乘法器,该乘法器能够保证运算结果准确性的前提下,能够对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,继续如图13所示乘法器的具体结构示意图,其中,乘法器包括所述高位部分积获取单元115,该高位部分积获取单元115包括:高位编码信号输入端口1151、选通数值输入端口1152、定点数输入端口1153以及部分积中的数值输出端口1154;所述高位编码信号输入端口1151用于接收高位布斯编码单元111输出的高位编码信号,所述选通数值输入端口1152用于接收高位选择器组单元117选通后,输出的目标编码的高位部分积中的数值,所述定点数输入端口1153用于接收乘法运算的定点数,所述部分积中的数值输入端口1154用于接收目标编码的高位部分积中的数值。
具体的,高位部分积获取单元115通过高位编码信号输入端口1151可以接收高位布斯编码单元114输出的高位编码信号,并通过定点数输入端口1153可以接收乘法运算中的被乘数。可选的,高位部分积获取单元115可以根据接收到的高位编码信号以及接收到的乘法运算中的被乘数,得到高位定点数对应的符号位扩展后的部分积。可选的,若定点数输入端口1153接收到的被乘数位宽为N,则符号位扩展后的部分积的位宽可以等于2N。
需要说明的是,高位部分积获取单元115可以通过选通数值输入端口1122,接收高位选择器组单元117选通的不同位宽定点数对应的符号位扩展后的部分积中的对应位数值,并根据乘法器当前得到的高位定点数对应的符号位扩展后的部分积,以及选通后的对应位数值,得到目标编码的高位部分积。
本实施例提供的一种乘法器,该乘法器能够保证运算结果准确性的前提下,能够对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,继续如图13所示乘法器的具体结构示意图,其中,乘法器包括所述低位选择器组单元116,该低位选择器组单元116包括:低位选择器1161,多个所述低位选择器1161用于对目标编码的低位部分积中的数值进行选通。
具体的,上述低位选择器组单元116中低位选择器1161的数量,可以等于乘法器当前接收到的定点数位宽平方的3/8倍,该低位选择器组单元116中多个低位选择器1161的内部电路结构可以相同。可选的,乘法运算时,每一个低位布斯编码单元111连接的对应低位部分积获取单元112中,可以包含2N个数值生成子单元,其中,N个数值生成子单元可以连接N个低位选择器1161,每一个数值生成子单元连接一个低位选择器1161,其中,N表示乘法器当前接收到的定点数的位宽。可选的,上述N个低位选择器1161对应的N个数值生成子单元,可以为目标编码的低位部分积中高N位数值对应的数值生成子单元,且该N个低位选择器1161与选择器113的内部电路结构可以完全相同,同时,该N个低位选择器1161的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口。可选的,若乘法器可以处理n种不同位宽的定点数运算,并且乘法器接收到的定点数的位宽是N,则上述低位选择器1161的两个其它输入端口分别接收的信号可以为0和乘法器进行N比特位宽的定点数运算时,该低位布斯编码单元111得到的对应符号位扩展后的部分积中的符号位数值。其中,N/4个低位部分积获取单元112可以连接N/4组N个低位选择器1161,各组的N个低位选择器1161接收到的符号位数值可以相同,也可以不同,但是,同一组的N个低位选择器1161接收到的符号位数值是相同的,并且该符号位数值可以根据每一组N个低位选择器1161,对应连接的低位部分积获取单元112获取的符号位扩展后的部分积中的符号位数值得到。
另外,每一个低位部分积获取单元112包含的2N个数值生成子单元中,对应N/2个数值生成子单元可以不连接低位选择器1161,此时,该N/2个数值生成子单元获取的数值可以为乘法器当前所处理不同位宽的定点数,对应的一个低位定点数得到的符号位扩展后的部分积中的对应位数值,也可以理解为,N/2个数值生成子单元获取的数值可以为对应符号位扩展后的部分积中,对应低N/2-1位至最低位之间的所有数值。
需要说明的是,每一个低位部分积获取单元112包含的2N个数值生成子单元中,剩余的N/2个数值生成子单元也可以连接N/2个低位选择器1161,每一个数值生成子单元可以连接1个低位选择器1161,该N/2个低位选择器1161与选择器113的内部电路结构可以相同,并且该N/2个低位选择器1161的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口,这两个其它输入端口分别接收的信号,可以为乘法器进行N/2位定点数运算,得到的对应符号位扩展后的部分积中的符号位数值,和乘法器进行N位定点数运算,得到的对应符号位扩展后的部分积中对应位数值。其中,N/4个低位部分积获取单元112可以连接N/4组N/2个低位选择器1161,各组的N/2个低位选择器1161接收到的符号位数值可以相同,也可以不同,但是,同一组的N/2个低位选择器1161接收到的符号位数值是相同的,并且该符号位数值可以根据每一组N/2个低位选择器1161,对应连接的低位部分积获取单元112获取的符号位扩展后的部分积中的符号位数值得到。
另外,各组的N/2个低位选择器1161接收到的符号位扩展后的部分积中对应位数值,可以根据该组低位选择器1161所连接的低位部分积获取单元112,获取的符号位扩展后的部分积中的对应位数值确定,并且每一组的N/2个低位选择器1161中,每一个低位选择器1161接收到的对应位数值可以相同,可以不同。其中,每一个低位部分积获取单元112中2N个数值生成子单元的位置,可以在上一个低位部分积获取单元112中2N个数值生成子单元位置的基础上,左移两个数值生成子单元。可选的,目标编码的低位部分积中,只有第一个低位部分积的位宽可以等于2N,剩余的低位部分积都会在上一个低位部分积的基础上少高两位的数值,且最后一个低位部分积的位宽可以等于(3N/2+2)。
本实施例提供的一种乘法器,该乘法器能够保证运算结果准确性的前提下,能够对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,继续如图13所示乘法器的具体结构示意图,其中,乘法器包括所述高位选择器组单元117,该低位选择器组单元117包括:高位选择器1171,多个所述高位选择器1171用于对目标编码的高位部分积中的数值进行选通。
具体的,上述高位选择器组单元117中高位选择器1171的数量,可以等于乘法器当前接收到的定点数位宽平方的3/8倍,该高位选择器组单元117中多个高位选择器1171的内部电路结构可以相同。可选的,乘法运算时,每一个高位布斯编码单元114连接的对应高位部分积获取单元115中,可以包含2N个数值生成子单元,其中,N个数值生成子单元可以连接N个高位选择器1171,每一个数值生成子单元连接一个高位选择器1171,其中,N表示乘法器当前接收到的定点数的位宽。可选的,上述N个高位选择器1171对应的N个数值生成子单元,可以为目标编码的高位部分积中低N位数值对应的数值生成子单元,且该N个高位选择器1171与选择器113的内部电路结构可以完全相同,同时,该N个高位选择器1171的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口。可选的,若乘法器可以处理n种不同位宽的定点数运算,并且乘法器接收到的定点数的位宽是N,则上述高位选择器1171的两个其它输入端口分别接收的信号可以为0和乘法器进行N比特位宽的定点数运算时,该高位布斯编码单元114得到的对应符号位扩展后的部分积中的对应位数值。其中,N/4个高位部分积获取单元115可以连接N/4组N个高位选择器1171,各组的N个高位选择器1171接收到的对应位数值可以相同,也可以不同。
另外,每一个高位部分积获取单元115包含的2N个数值生成子单元中,对应N/2个数值生成子单元可以连接N/2个高位选择器1171,每一个数值生成子单元可以连接1个高位选择器1171,该N/2个高位选择器1171与选择器113的内部电路结构可以相同,并且该N/2个高位选择器1171的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口,这两个其它输入端口分别接收的信号,可以为乘法器进行N/2位定点数运算,得到的对应符号位扩展后的部分积中的符号位数值,和乘法器进行N位定点数运算,得到的对应符号位扩展后的部分积中的符号位数值。其中,N/4个高位部分积获取单元115可以连接N/4组N/2个高位选择器1171,各组的N/2个高位选择器1171接收到的符号位数值可以相同,也可以不同,但是,同一组的N/2个高位选择器1171接收到的符号位数值是相同的,并且该符号位数值可以根据每一组N/2个高位选择器1171,对应连接的高位部分积获取单元115获取的符号位扩展后的部分积中的符号位数值得到。另外,各组的N/2个高位选择器1171接收到的符号位扩展后的部分积中对应位数值,可以根据该组高位选择器1171所连接的高位部分积获取单元115,获取的符号位扩展后的部分积中的符号位数值确定,并且每一组的N/2个高位选择器1171中,每一个高位选择器1171接收到的对应位数值可以相同,可以不同。
需要说明的是,每一个高位部分积获取单元115包含的2N个数值生成子单元中,剩余的N/2个数值生成子单元可以不连接高位选择器1171,此时,该N/2个数值生成子单元获取的数值可以为乘法器当前所处理不同位宽的定点数,对应的一个高位定点数得到的符号位扩展后的部分积中的对应位数值,也可以理解为,N/2个数值生成子单元获取的数值可以为对应符号位扩展后的部分积中,对应高3N/2-1位至低N+1位之间的所有数值。其中,每一个高位部分积获取单元115中2N个数值生成子单元的位置,可以在上一个高位部分积获取单元115中2N个数值生成子单元位置的基础上,左移两个数值生成子单元。可选的,目标编码的高位部分积中,只有第一个高位部分积的位宽可以等于3N/2,剩余的高位部分积都会在上一个高位部分积的基础上少高两位的数值。
本实施例提供的一种乘法器,该乘法器能够保证运算结果准确性的前提下,能够对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
图13为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述修正压缩电路12,该修正压缩电路12包括:修正华莱士树组电路121和累加电路122,所述修正华莱士树组电路121的输出端与所述累加电路122的输入端连接;所述修正华莱士树组电路121用于对不同位宽定点数运算时,得到的目标编码的部分积中每一列的数值进行累加处理,所述累加电路122用于对接收到的输入数据进行累加处理。
具体的,上述修正华莱士树组电路121可以对修正编码电路11得到的目标编码的部分积中每一列数值进行累加处理,并累加电路122对修正华莱士树组电路121得到的两个运算结果进行累加处理,得到乘法运算的最终结果。其中,通过修正华莱士树组电路121进行累加处理时,目标编码的所有部分积的分布规律,可以表征为每一行对应部分积最低位数值所处位置,比下一行对应部分积最低位数值所处位置向右错开两位数值,修正华莱士树组电路121按照此分布规律,对目标编码的所有部分积中的每一列数值进行累加处理。可选的,目标编码的部分积可以包括目标编码的低位部分积和目标编码的高位部分积。可选的,上述修正华莱士树组电路121得到的两个运算结果可以包括和位输出信号S与进位输出信号C。
本实施例提供的一种乘法器,该乘法器可以对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,继续如图13所示乘法器的具体结构示意图,其中,乘法器包括所述修正华莱士树组电路121,该修正华莱士树组电路121包括:低位华莱士树子电路1211、选择器1212以及高位华莱士树子电路1213,所述低位华莱士树子电路1211的输出端与所述选择器1212的输入端连接,所述选择器1212的输出端与所述高位华莱士树子电路1213的输入端连接;其中,多个所述低位华莱士树子电路1211用于对目标编码的所述部分积中的每一列数值进行累加运算,所述选择器1212用于选通高位华莱士树子电路1213接收的进位输入信号,多个所述高位华莱士树子电路1213用于对目标编码的所述部分积中的每一列数值进行累加运算。
具体的,多个低位华莱士树子电路1211和多个高位华莱士树子电路1213的电路结构均可以由全加器和半加器组合实现,还可以由4-2压缩器组合实现,另外,还可以理解为是一种能够对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路。可选的,修正华莱士树组电路121中高位华莱士树子电路1213的数量可以等于乘法器当前接收到的定点数位宽N,还可以等于低位华莱士树子电路1211的数量,并且各低位华莱士树子电路1211之间可以串行连接,各高位华莱士树子电路1213之间也可以串行连接。可选的,最后一个低位华莱士树子电路1211的输出端与选择器1212的输入端连接,选择器1212的输出端与第一个高位华莱士树子电路1211的输入端连接。可选的,修正华莱士树组电路121中每一个低位华莱士树子电路1211可以对目标编码的所有部分积的每一列进行加法处理,每一个低位华莱士树子电路1211可以输出两个信号,即进位信号Carryi与一个和位信号Sumi,其中,i可以表示每一个低位华莱士树子电路1211对应的编号,第一个低位华莱士树子电路1211的编号为0。可选的,每一个低位华莱士树子电路1211接收到输入信号的数量可以等于编码信号数量或者目标编码的部分积的数量。其中,修正华莱士树组电路121中高位华莱士树子电路1213与低位华莱士树子电路1211的数量之和,可以等于2N,目标编码的所有部分积中,从最低列至最高列的总列数可以等于2N,N个低位华莱士树子电路1211可以对目标编码的所有部分积的低N列中的每一列进行累加运算,N个高位华莱士树子电路1213可以对目标编码的所有部分积的高N列中的每一列进行累加运算。
示例性的,若乘法器接收到的定点数位宽为N比特,并且当前乘法器进行N位定点数乘法运算,此时,选择器1212可以选通修正华莱士树组电路121中的最后一个低位华莱士树子电路1211,输出的进位输出信号CoutN作为修正华莱士树组电路121中,第一个高位华莱士树子电路1213接收到的进位输入信号CinN+1,还可以理解为,乘法器当前可以将接收到的N为定点数作为一个整体进行运算;当前乘法器进行N/2位定点数乘法运算,此时,选择器1212可以选通0作为修正华莱士树组电路121中,第一个高位华莱士树子电路1213接收到的进位输入信号CinN+1,还可以理解为,乘法器当前可以将接收到的N位定点数划分成高N/2位和低N/2位定点数分别进行乘法运算,其中,从第一个低位华莱士树子电路1211至最后一个低位华莱士树子电路1211的对应编号i分别为1,2,…,N,从第一个高位华莱士树子电路1213至最后一个高位华莱士树子电路1213的对应编号i分别为N+1,N+2,…,2N。
需要说明的是,修正华莱士树组电路121中每一个低位华莱士树子电路1211和高位华莱士树子电路1213,接收到的信号可以包括进位输入信号Cini,部分积数值输入信号,进位输出信号Couti。可选的,每一个低位华莱士树子电路1211和高位华莱士树子电路1213接收到的部分积数值输入信号,可以为目标编码的所有部分积中对应列的数值,每一个低位华莱士树子电路1211和高位华莱士树子电路1213输出的进位信号Couti的位数可以等于NCout=floor((NI+NCin)/2)-1。其中,NI可以表示该华莱士树子电路的数据输入位数,NCin可以表示该华莱士树子电路的进位输入位数,NCout可以表示该华莱士树子电路最少的进位输出位数,floor(·)可以表示向下取整函数。可选的,修正华莱士树组电路121中每一个低位华莱士树子电路1211或高位华莱士树子电路1213接收到的进位输入信号,可以为上一个低位华莱士树子电路1211或高位华莱士树子电路1213输出的进位输出信号,并且第一个低位华莱士树子电路1211接收到的进位数输入信号为0。其中,第一个高位华莱士树子电路1213接收到的进位数输入信号,可以通过乘法器当前所处理的定点数的位宽与乘法器接收到的定点数位宽确定。
本实施例提供的一种乘法器,该乘法器可以对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
图13为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述累加电路122,该累加电路122包括:加法器1221,所述进位加法器1221用于对接收到的两个同位宽数据进行加法运算。
具体的,加法器1221可以为不同位宽的进位加法器。可选的,加法器1221可以接收修正华莱士树组电路121输出的两路信号,对两路输出信号进行加法运算,输出最终的乘法运算结果。可选的,上述加法器1221可以为超前进位加法器。
本实施例提供的一种乘法器,该乘法器可以对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,继续如图13所示乘法器的具体结构示意图,其中,乘法器包括所述加法器1221,该加法器1221包括:进位信号输入端口1221a、和位信号输入端口1221b以及运算结果输出端口1221c;所述进位信号输入端口1221a用于接收进位信号,和位信号输入端口1221b用于接收和位信号,运算结果输出端口1221c用于输出进位信号与和位信号进行累加处理的结果。
具体的,加法器1221可以通过进位信号输入端口1221a接收修正华莱士树组电路121输出的进位信号Carry,通过和位信号输入端口1221b接收修正华莱士数组电路121输出的和位信号Sum,并将进位信号Carry与和位信号Sum进行累加的结果,通过运算结果输出端口1221c输出。
需要说明的是,乘法运算时,乘法器可以采用不同位宽的加法器1221对修正华莱士树组电路121输出的进位输出信号Carry与和位输出信号Sum进行加法运算,其中,上述加法器1221的可处理数据的位宽可以等于乘法器当前处理的定点数位宽M的2倍。可选的,修正华莱士树组电路121中的每一个低位华莱士树子电路1211和高位华莱士树子电路1213,可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=1,…,2M,i为每一个低位或高位华莱士树子电路的对应编号,编号从1开始)。可选的,加法器1221接收到的Carry={[Carry1:Carry2M-1],0},也就是说,加法器1221接收到的进位输出信号Carry的位宽为2M,进位输出信号Carry中前2M-1位数值对应修正华莱士树组电路121中,前2M-1个低位和高位华莱士树子电路的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器1221接收到的和位输出信号Sum的位宽为M,和位输出信号Sum中的数值可以等于修正华莱士树组电路121中每一个低位或高位华莱士树子电路的和位输出信号。
示例性的,若乘法器当前处理8位*8位的数据乘法运算,则加法器1221可以为16位进位加法器,乘法器中的修正华莱士树组电路121可以输出16个低位和高位华莱士树子电路的和位输出信号Sum和进位输出信号Carry,但是,16位进位加法器接收到的和位输出信号,可以为修正华莱士树组电路121输出的完整和位信号Sum,接收到的进位输出信号可以为修正华莱士树组电路121中,除去最后一个高位华莱士树子电路1213输出的进位输出信号的所有进位输出信号,与0结合后的进位信号Carry。
本实施例提供的一种乘法器,该乘法器可以对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
图14为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述判断电路11,该判断电路11包括:数据输入端口111和数据输出端口112;所述数据输入端口111用于接收进行乘法运算的定点数,所述数据输出端口112用于输出接收到的所述定点数,所述第四数据输入端口114用于输出接收到的第二所述定点数。
具体的,判断电路11通过数据输入端口111接收进行乘法运算的两个定点数。可选的,判断电路11接收到的定点数可以为乘法运算中的乘数和被乘数,且乘数和被乘数的位宽可以相同。可选的,判断电路11可以通过数据输出端口112输出接收到的两个定点数,并将这两个定点数同时输入至数据扩展电路12中,或者同时输入至编码电路13中。
需要说明的是,若判断电路11判断接收到的两个定点数的位宽为N,小于乘法器可处理的定点数的位宽2N,此时,判断电路11需要将接收到的两个N比特位宽的定点数输入至数据扩展电路12进行扩展处理,得到两个2N比特位宽的定点数;若判断电路11判断接收到的两个定点数的位宽为2N,等于乘法器可处理的定点数的位宽2N,此时,判断电路11可以直接将接收到的两个2N比特位宽的定点数输入至编码电路13中进行编码处理。
本实施例提供的一种乘法器,该乘法器能够保证处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
图14为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述数据扩展电路12,该数据扩展电路12包括:数据输入端口121、数据扩展模式选择信号输入端口122、功能选择模式信号输出端口123以及扩展后的数据输出端口124;所述数据输入端口121用于接收所述判断电路11输出的所述定点数,所述数据扩展模式选择信号输入端口122用于接收对接收到的所述定点数进行扩展处理对应的数据扩展模式选择信号,所述功能选择模式信号输出端口123用于输出根据数据扩展电路12对接收到的所述定点数进行扩展处理的模式,确定的功能选择模式信号,所述扩展后的数据输出端口124用于输出扩展处理后的定点数。
具体的,上述数据扩展模式选择信号输入端口122接收到的数据扩展模式选择信号可以有三种,三种不同的数据扩展模式选择信号可以分别为00,01,10,其中,信号00表示数据扩展电路12可以将接收到的N位定点数扩展成2N位定点数,2N位定点数中的高N位数值可以等于接收到的N位定点数的数值,低N位数值均可以等于扩展的数值0,此时,功能选择模式信号输出端口123可以输出功能选择模式信号00,并且乘法器得到的4N比特位宽的运算结果中,高2N位数值可以为最终的运算结果;信号01表示数据扩展电路12可以将接收到的N位定点数扩展成2N位定点数,2N位定点数中的低N位数值可以等于接收到的N位定点数的数值,高N位数值均可以等于扩展的数值0,此时,功能选择模式信号输出端口123可以输出功能选择模式信号00,并且乘法器得到的4N比特位宽的运算结果中,低2N位数值可以为最终的运算结果;信号10表示数据扩展电路12可以将接收到的N位定点数扩展成2N位定点数,2N位定点数中的低N位数值可以等于接收到的N位定点数的数值,高N位数值均可以等于数据扩展电路12接收到的定点数的符号位数值,此时,功能选择模式信号输出端口123可以输出功能选择模式信号01,并且乘法器得到的4N比特位宽的运算结果中,低2N位数值可以为最终的运算结果。
需要说明的是,若乘法器接收到的两个定点数的位宽为2N,与乘法器可处理的定点数的位宽2N相等,则判断电路11可以直接将接收到的两个定点数输入至编码电路13中进行布斯编码处理;若乘法器接收到的两个定点数的位宽为N,小于乘法器可处理的定点数的位宽2N,并且数据扩展电路12接收到的数据扩展模式选择信号为10,则判断电路11可以将接收到的两个定点数输入至数据扩展电路12进行扩展处理,并将扩展后的定点数输入至编码电路13中进行布斯编码处理。
本实施例提供的一种乘法器,该乘法器能够保证处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
图14为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述编码电路13,该编码电路13包括:布斯编码子电路131和部分积获取子电路132,所述布斯编码子电路131的输出端与所述部分积获取子电路132的第一输入端连接。其中,所述布斯编码子电路131用于对接收到的定点数进行布斯编码得到编码信号,所述部分积获取子电路132用于根据所述编码信号得到目标编码的部分积。
具体的,上述布斯编码子电路131接收到的定点数可以是判断电路11输入的,还可以是数据扩展电路12输入的,并且接收到的定点数可以为乘法运算中的乘数,并对乘数进行布斯编码处理,得到编码信号。
本实施例提供的一种乘法器,该乘法器能够保证处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
图14为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述布斯编码子电路131,该布斯编码子电路131包括:数据输入端口1311和编码信号输出端口1312;所述数据输入端口1311用于接收进行布斯编码处理的定点数,所述编码信号输出端口1312用于输出对接收到的定点数进行布斯编码处理后得到的编码信号。
具体的,若数据输入端口1311接收到一个定点数,则布斯编码子电路131可以自动对该定点数进行补位处理,得到一个比原定点数的位宽多一位数值的定点数,同时,布斯编码子电路131可以对补位后的定点数进行布斯编码处理,得到多个编码信号,将多个编码信号通过编码信号输出端口1312输出。可选的,布斯编码子电路131可以通过数据输入端口1311接收乘法运算中的乘数,且布斯编码子电路131可以对乘数进行布斯编码处理。
本实施例提供的一种乘法器,该乘法器能够对接收到的低位宽定点数进行扩展处理,扩展处理后的定点数满足乘法器可处理定点数的位宽要求,使得最终乘法运算的结果仍然为原始位宽的定点数进行乘法运算的结果,从而保证了乘法器能够处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
图14为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述部分积获取子电路132,该部分积获取子电路132包括:编码信号输入端口1321、数据输入端口1322以及部分积输出端口1323;所述编码信号输入端口1321用于接收所述编码信号,所述数据输入端口1322用于接收所述定点数,所述部分积输出端口1323用于输出根据编码信号与接收到的定点数获取的目标编码的部分积。
具体的,数据输入端口1322可以接收乘法运算中的定点数,该定点数可以为乘法运算中的被乘数。可选的,部分积获取子电路132可以根据编码信号得到对应的原始部分积,并对原始部分积进行符号位扩展处理得到符号位扩展后的部分积。其中,符号位扩展后的部分积的位宽可以等于乘法器当前所处理定点数位宽2N的2倍,并且原始部分积的位宽可以等于2N+1,符号位扩展后的部分积的高2N-1位的数据均可以等于原始部分积中的符号位数值。可选的,上述目标编码的部分积可以为符号位扩展后的部分积,上述原始部分积可以为未进行符号位扩展的部分积。
可选的,部分积获取子电路132获取的目标编码的所有部分积的分布规律中,从第二个目标编码的部分积开始,每一个目标编码的部分积比上一个目标编码的部分积可以左移两位,并且第二个目标编码的部分积开始,高两位数值不进行累加运算。
本实施例提供的一种乘法器,该乘法器能够保证处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
图14为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述压缩电路14,该压缩电路14包括:华莱士树组子电路141和累加子电路142;其中,所述华莱士树组子电路141的输出端与所述累加子电路142的输入端连接;所述华莱士树组子电路141用于对目标编码的所述部分积进行累加处理,所述累加子电路142用于对接收到的输入数据进行累加处理。
具体的,上述华莱士树组子电路141可以对编码电路13得到的目标编码的所有部分积中的数值进行累加处理,并通过累加子电路142对华莱士树组子电路141得到两路输出结果进行累加处理,得到乘法运算的最终结果。
本实施例提供的一种乘法器,该乘法器能够保证处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,继续如图14所示乘法器的具体结构示意图,其中,乘法器包括所述华莱士树组子电路141,该华莱士树组子电路141包括:华莱士树单元1411~141n,多个所述华莱士树单元1411~141n用于对目标编码的部分积的每一列进行累加处理。
具体的,华莱士树单元1411~141n的电路结构可以由全加器和半加器组合实现,还可以由4-2压缩器组合实现,另外,还可以理解为华莱士树子电路1411~141n是一种能够对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路。可选的,华莱士树组子电路141包含的华莱士树子电路的数量n可以等于乘法器当前所处理定点数位宽的2倍,并且每一个华莱士树子电路可以串行连接。可选的,华莱士树组子电路141中每一个华莱士树子电路可以对目标编码的所有部分积的每一列进行加法处理,每一个华莱士树子电路可以输出两个信号,即进位信号Carryi与一个和位信号Sumi,其中,i可以表示每一个华莱士树子电路对应的编号,每一个华莱士树子电路的编号为0。可选的,每一个华莱士树子电路接收到输入信号的数量可以等于编码信号数量或者目标编码的部分积数量。
需要说明的是,华莱士树组子电路141中每一个华莱士树子电路接收到的信号可以包括进位输入信号Cini,部分积输入信号,进位输出信号Couti。可选的,每一个华莱士树单元接收到的部分积输入信号可以为所有目标编码的部分积中每一列的数值,每一个华莱士树单元输出的进位信号Couti的位数可以等于NCout=floor((NI+NCin)/2)-1。其中,NI可以表示该华莱士树单元的数据输入位数,NCin可以表示该华莱士树单元的进位输入位数,NCout可以表示该华莱士树单元最少的进位输出位数,floor(·)可以表示向下取整函数。可选的,华莱士树组子电路141中每一个华莱士树单元接收到的进位输入信号可以为上一个华莱士树单元输出的进位输出信号,并且第一个华莱士树单元接收到的进位数输入信号为0。
本实施例提供的一种乘法器,该乘法器能够保证处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,继续如图14所示乘法器的具体结构示意图,其中,乘法器包括所述累加子电路142,该累加子电路142包括:加法器1421,所述加法器1421用于对接收到的两个同位宽数据进行加法运算。
具体的,加法器1421可以为不同位宽的加法器。可选的,加法器1421可以接收华莱士树组子电路141输出的两路信号,对两路输出信号进行加法运算,输出最终的乘法运算结果。可选的,上述加法器1421可以为超前进位加法器。
可选的,所述加法器1421包括:进位信号输入端口1421a、和位信号输入端口1421b以及运算结果输出端口1421c;所述进位信号输入端口1421a用于接收进位信号,和位信号输入端口1421b用于接收和位信号,运算结果输出端口1421c用于输出进位信号与和位信号进行累加处理的结果。
可选的,加法器1421可以通过进位信号输入端口1421a接收华莱士树组子电路141输出的进位信号Carry,通过和位信号输入端口1421b接收华莱士数组子电路141输出的和位信号Sum,并将进位信号Carry与和位信号Sum进行累加的结果,通过运算结果输出端口1421c输出。
需要说明的是,乘法运算时,乘法器可以采用不同位宽的加法器1421对华莱士树组子电路141输出的进位输出信号Carry与和位输出信号Sum进行加法运算,其中,上述加法器1421的可处理数据的位宽可以等于乘法器当前处理的定点数位宽2N的2倍。可选的,华莱士树组子电路141中的每一个华莱士树单元可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=0,…,4N-1,i为每一个华莱士树单元的对应编号,编号从0开始)。可选的,加法器1421接收到的Carry={[Carry0:Carry4N-2],0},也就是说,加法器1421接收到的进位输出信号Carry的位宽为4N,进位输出信号Carry中前4N-1位数值对应华莱士树组子电路141中前4N-1个华莱士树单元的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器1421接收到的和位输出信号Sum的位宽为M,和位输出信号Sum中的数值可以等于华莱士树组子电路141中每一个华莱士树单元的和位输出信号。
本实施例提供的一种乘法器,该乘法器能够对接收到的低位宽定点数进行扩展处理,扩展处理后的定点数满足乘法器可处理定点数的位宽要求,使得最终乘法运算的结果仍然为原始位宽的定点数进行乘法运算的结果,从而保证了乘法器能够处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该乘法器对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
第四类乘法器
该乘法器可以通过如下实施例进行详细说明:
图15为一个实施例提供的一种乘法器的具体结构示意图,如图15所示,所述乘法器包括:编码电路11,畸形华莱士树组电路12和累加电路13,所述编码电路11的输出端与所述畸形华莱士树组电路12的输入端连接,所述畸形华莱士树组电路12的输出端与所述累加电路13的输入端连接。其中,所述编码电路11用于对接收到的数据进行编码处理得到目标编码的部分积,所述畸形华莱士树组电路12用于对目标编码的所述部分积进行累加处理,所述累加电路13用于对接收到的输入数据进行累加处理。
具体的,上述编码电路11可以包括多个具有不同功能的数据处理单元,并且编码电路11接收到的数据可以作为后续乘法运算中的乘数,还可以作为乘法运算中的被乘数。可选的,上述不同功能的数据处理单元可以为具有二进制编码功能的数据处理单元。可选的,上述乘数和被乘数可以是多比特位宽的定点数。可选的,畸形华莱士树组电路12可以对编码电路11得到的目标编码的部分积中的数值进行累加处理,得到累加结果,并通过累加电路13对畸形华莱士树组电路12得到的累加结果进行再次累加处理,得到乘法运算的最终结果。
需要说明的是,乘法器进行同一次乘法运算时,编码电路11接收到的乘数和被乘数为同位宽的数据,并且在本实施例中,上述乘法器可以处理固定位宽的数据,且固定位宽可以等于8比特,16比特,32比特,还可以等于64比特,对此本实施例不作任何限定。可选的,上述不同功能的数据处理单元的输入端口可以有一个,每个数据处理单元的每个输入端口的功能可以相同,输出端口也可以有一个,每个数据处理单元的每个输出端口的功能可以不相同,并且不同功能数据处理单元的电路结构可以不相同。
本实施例提供的一种乘法器,该乘法器能够在完全保证运算准确性的前提下,去除处理0数值的过程,有效降低了乘法器的功耗;另外,乘法器可以使用畸形华莱士树组电路对目标编码的部分积进行累加处理,降低乘法器的延迟,从而降低数据处理装置的功耗,提高AI芯片的性能。
图16为另一实施例提供的一种乘法器的具体结构示意图,作为一个实施例,该编码电路11包括:布斯编码子电路111和部分积获取子电路112,所述布斯编码子电路111的输出端与所述部分积获取子电路112的输入端连接;其中,所述布斯编码子电路111用于对接收到的数据进行布斯编码处理得到编码信号,所述部分积获取子电路112用于根据所述编码信号得到原始部分积,并对所述原始部分积进行优化处理,得到目标编码的所述部分积。
具体的,上述布斯编码单元子电路111可以接收数据,并对数据进行布斯编码处理,得到编码信号。可选的,上述编码信号的数量可以等于乘法器当前所接收到的数据位宽N的1/2,还可以等于原始部分积的数量。可选的,布斯编码子电路111接收到的数据可以为乘法运算中的乘数,该乘数可以为浮点数,而部分积获取子电路112可以接收到乘法运算中的被乘数,该被乘数也可以为浮点数。
另外,部分积获取子电路112可以根据每一个编码信号得到对应的原始部分积,并对每一个原始部分积进行优化处理,得到目标编码的部分积。可选的,上述原始部分积可以为未进行符号位扩展的部分积,且原始部分积的位宽可以等于N+1,其中,N表示乘法器当前所处理数据的位宽。可选的,上述优化处理可以包括消除符号位扩展处理以及消除负部分积取反后加一位处理。
本实施例提供的一种乘法器,该乘法器能够保证在优化处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗,从而降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,继续参见图16所示乘法器的具体结构示意图,其中,编码电路11包括所述布斯编码子电路111,该布斯编码子电路111包括:数据输入端口1111和编码信号输出端口1112,所述数据输入端口1111用于接收进行布斯编码处理的数据,所述编码信号输出端口1112用于输出对接收到的所述数据进行布斯编码处理后得到的编码信号。
具体的,若布斯编码子电路111通过数据输入端口1111接收到一个数据,则布斯编码子电路111可以自动对该数据进行补位处理,得到一个比原数据的位宽多一位数值的数据,同时,布斯编码子电路111可以对补位后的数据进行布斯编码处理,得到多个编码信号,将多个编码信号通过编码信号输出端口1112输出。可选的,布斯编码子电路111可以通过数据输入端口1111接收乘法运算中的乘数,且布斯编码子电路111可以对乘数进行布斯编码处理。可选的,每一次布斯编码处理时,可以将补位后的数据划分成多组待编码数据,布斯编码子电路111可以同时对划分后的多组待编码数据进行布斯编码处理。可选的,划分多组待编码数据的原则可以表征为将补位后的数据中相邻每3位数值作为一组待编码数据,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。
本实施例提供的一种乘法器,该乘法器能够在完全保证运算准确性的前提下,去除处理0数值的过程,有效降低了乘法器的功耗;另外,乘法器可以使用畸形华莱士树组电路对目标编码的部分积进行累加处理,降低乘法器的延迟,同时还可以降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,继续如图16所示乘法器的具体结构示意图,其中,乘法器包括所述部分积获取子电路112,该部分积获取子电路112包括:修正符号位扩展单元1121和修正取反单元1122,所述修正符号位扩展单元1121用于对所述原始部分积进行消除符号位扩展处理,得到消除符号位扩展后的部分积,所述修正取反单元1122用于对所述原始部分积进行消除取反后加一位处理,得到加一位数值。
具体的,通过修正符号位扩展单元1121对原始部分积进行消除符号位扩展处理时,可以对原始部分积中的高两位数值进行加1处理以及判断处理,得到消除符号位扩展后的部分积。可选的,消除符号位扩展后的部分积的位宽可以等于(M+1),其中,M表示原始部分积的位宽,且M可以等于N+1,N表示乘法器接收到的数据的位宽。可选的,消除符号位扩展后的部分积比原始部分积多一位数值(即额外一位数值),该额外一位数值可以位于消除符号位扩展后的部分积中最高位处,且对原始部分积中的高两位数值进行加1处理,得到的和位信号可以为消除符号位扩展后的部分积中,最高位后相邻两位的数值,同时,修正符号位扩展单元1121可以根据原始部分积的高两位数值进行判断处理,确定消除符号位扩展后的部分积中的额外一位数值。
需要说明的是,若原始部分积的最高位数值用A表示,次高位数值用B表示,对原始部分积中的最高位的数值A和次高位的数值B进行加1处理后,可以得到消除符号位扩展后的部分积中的额外一位数值,该额外一位数值可以用Q表示。可选的,消除符号位扩展后的部分积中的额外一位数值Q,可以根据原始部分积中最高位数值A和次高位数值B共同确定,确定规则(即判断处理规则)可以参见表2。
示例性的,若乘法器当前处理8位*8位的数据乘法运算,得到的其中一个原始部分积为z9iz8iz7iz6iz5iz4iz3iz2iz1i,对应得到的消除符号位扩展后的部分积为z10iz9i’z8i’z7iz6iz5iz4iz3iz2iz1i,则对该原始部分积中的最高位数值z9i和次高位数值z8i进行加1处理后,得到的消除符号位扩展后的部分积中对应位z9i’和z8i’的数值,z9i’和z8i’的数值可以等于z9i和z8i对应的数值进行加1处理后得到对应的和位信号,同时,消除符号位扩展后的部分积中的额外一位z10i的数值,可以通过原始部分积中的最高位数值z9i,次高位数值z8i以及表2中的确定规则获取。可选的,布斯编码过程中,得到的编码信号的数量可以等于得到的原始部分积的数量,还可以等于消除符号位扩展后的部分积的数量。
另外,乘法器可以通过修正取反单元1122,对每一个原始部分积进行消除取反后加一位处理,得到加一位数值,部分积获取子电路112并将得到的每一个消除符号位扩展后的部分积,与对应的加一位数值组合,得到目标编码的部分积。可选的,修正取反单元1122可以根据每一个原始部分积对应的编码信号得到对应的加一位数值。可选的,上述目标编码的部分积的位宽可以等于消除符号位扩展后的部分积的位宽,还可以等于消除符号位扩展后的部分积的位宽加1,多一位可以称为加一位,并且每一个目标编码的部分积中的加一位数值可以位于对应消除符号位扩展后的部分积中最低位数值后低两位处。可选的,目标编码的所有部分积的列数可以等于乘法器当前所处理数据位宽的2倍。
需要说明的是,修正取反单元1122可以根据每一个编码信号得到一个对应加一位数值。另外,得到的加一位数值的数量可以等于编码信号的数量,还可以得到消除符号位扩展后的部分积的数量。
可选的,目标编码的所有部分积的分布规律中,第一个目标编码的部分积可以等于第一个消除符号位扩展后的部分积,从第二个目标编码的部分积开始,每一个目标编码的部分积可以等于每一个消除符号位扩展后的部分积,与上一个消除符号位扩展后的部分积对应的加一位数值组合得到的部分积,且加一位数值可以位于所对应消除符号位扩展后的部分积最低位数值的低两位处。但是,最后一个目标编码的部分积可以等于最后一个消除符号位扩展后的部分积得到的对应加一位数值,还可以理解为,最后一个加一位数值没有可以组合的消除符号位扩展后的部分积。同时,目标编码的所有部分积的分布规律中,第一个目标编码的部分积的最低位数值,可以与第二个目标编码的部分积的最低位数值位于同一列,从第三个目标编码的部分积开始,每一个目标编码的部分积的最低位数值,可以与上一个目标编码的部分积的最低位的高两位处对应的数值位于同一列。
可选的,第一个消除符号位扩展后的部分积可以与低位编码信号中的最低位编码信号对应,依次类推,最后一个消除符号位扩展后的部分积可以与高位编码信号中的最高位编码信号对应,其中,低位编码信号可以为乘法器接收到的数据中的低位数据进行布斯编码处理得到的对应编码信号,高位编码信号可以为乘法器接收到的数据中的高位数据进行布斯编码处理得到的对应编码信号。可选的,若乘法器接收到N比特位宽的数据,低N/2位数据可以称为低位数据,高N/2位数据可以称为高位数据。
可选的,乘法器可以先通过修正取反单元1122对原始部分积进行消除取反后加一位处理,得到加一位数值,再通过修正符号位扩展单元1121对原始部分积进行消除符号位扩展处理,得到消除符号位扩展后的部分积。
本实施例提供的一种乘法器,该乘法器能够保证在消除符号位扩展处理,以及消除取反后加一位处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗,从而降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,继续如图16所示乘法器的具体结构示意图,其中,乘法器包括所述畸形华莱士树组电路12,该畸形华莱士树组电路12包括:畸形华莱士树子电路121~12n,多个所述畸形华莱士树子电路121~12n用于对目标编码的所述部分积进行修正累加处理。
具体的,畸形华莱士树子电路121~12n的电路结构可以由全加器和/或半加器组合实现,另外,还可以理解为畸形华莱士树子电路121~12n是一种能够对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路。可选的,畸形华莱士树组电路12包含的畸形华莱士树子电路的数量n可以等于乘法器当前所处理数据位宽的2倍,并且n个畸形华莱士树子电路可以对目标编码的部分积进行并行处理,但连接方式可以是串行连接。可选的,畸形华莱士树组电路12中每一个畸形华莱士树子电路可以对目标编码的所有部分积的每一列进行加法处理,每一个畸形华莱士树子电路可以输出两个信号,即进位输出信号与一个和位输出信号Sumi,其中,进位输出信号可以为Carryi或0,和位输出信号可以为Sumi,i可以表示每一个畸形华莱士树子电路对应的编号,第一个畸形华莱士树子电路的编号为0。可选的,每一个畸形华莱士树子电路接收到输入信号的数量可以等于1,2,…或n,其中,n可以等于符号位扩展后的部分积的数量加1,还可以理解为,每一个畸形华莱士树子电路输入信号的数量可以不同,每一个畸形华莱士树子电路的内部结构也不同。
另外,乘法器对目标编码的所有部分积的每一列进行加法运算的过程中,通过畸形华莱士树组电路12中的两个畸形华莱士树子电路,对目标编码的所有部分积中的两列数值进行加1处理(即修正加1处理),也就是说,目标编码的所有部分积中的这两列数值所对应的两个畸形华莱士树子电路的输入信号,除了符号位扩展后的部分积中的数值,或者除了消除符号位扩展后的部分积中的数值和加一位数值外,还多了一位修正信号,该修正信号为1。在本实施例中,若畸形华莱士树组电路12中串行连接的n个畸形华莱士树子电路的编号为1,2,…,i,…,n,则畸形华莱士树组电路12可以通过第i个畸形华莱士树子电路和第n个畸形华莱士树子电路,对目标编码的部分积中对应的两列数值进行加1处理,同时,若目标编码的所有部分积中,从最低位数值到最高位数值对应的列数编号为1,2,…,n/2,...,n-1,n,上述i可以等于n/2,可以理解为,畸形华莱士树组电路12可以通过第n/2个畸形华莱士树子电路和第n个畸形华莱士树子电路,对目标编码的部分积进行加1处理。
需要说明的是,每一个畸形华莱士树子电路的进位连接信号,可以作为下一个畸形华莱士树子电路对应的进位输入信号,且第一个畸形华莱士树子电路的进位输入信号可以等于0。可选的,每一个畸形华莱士树子电路输出的进位连接信号的位数NCout可以等于floor((NI+NCin)/2)-1,其中,NI表示该畸形华莱士树子电路的数据(即包括输入信号和进位输入信号)输入位数,NCin表示该畸形华莱士树子电路的进位输入信号的位数,floor(·)表示向下取整函数,NCout表示输出的最少数量的进位连接信号的位数。另外,畸形华莱士树组电路12中的第二个畸形华莱士树子电路122,和倒数第二个畸形华莱士树子电路12(n-1)的进位输出信号均可以等于0。
本实施例提供的一种乘法器,该乘法器能够在完全保证运算准确性的前提下,去除处理0数值的过程,有效降低了乘法器的功耗;另外,乘法器还可以使用畸形华莱士树组电路对目标编码的部分积进行累加处理,有效降低乘法器占用AI芯片的面积,并且降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,继续如图16所示乘法器的具体结构示意图,其中,乘法器包括所述累加电路13,该累加电路13包括:加法器131,所述加法器131用于对接收到的两个同位宽数据进行加法运算。
具体的,加法器131可以为不同位宽的加法器,并且加法器131可以为超前进位加法器。可选的,加法器131可以接收畸形华莱士树组电路12输出的两路信号,对两路输出信号进行加法运算,输出最终的乘法运算结果。
本实施例提供的一种乘法器,该乘法器能够在完全保证运算准确性的前提下,去除处理0数值的过程,有效降低乘法器的功耗,同时降低乘法器占用AI芯片的面积,从而降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,继续如图16所示乘法器的具体结构示意图,其中,乘法器包括所述加法器131,该加法器131包括:进位输出信号输入端口1311,和位输出信号输入端口1312和结果输出端口1313,所述进位输出信号输入端口1311用于接收进位输出信号,所述和位输出信号输入端口1312用于接收和位输出信号,所述结果输出端口1313用于输出进位输出信号与和位输出信号进行累加处理的结果。
具体的,加法器131可以通过进位输出信号输入端口1311接收畸形华莱士树组电路12输出的进位输出信号Carry,通过和位输出信号输入端口1312接收畸形华莱士树组电路12输出的和位输出信号Sum,并将进位输出信号Carry与和位输出信号Sum进行累加运算的结果,通过结果输出端口1313输出。
需要说明的是,乘法运算时,乘法器可以采用不同位宽的加法器131对畸形华莱士树组电路12输出的进位输出信号Carry与和位输出信号Sum进行加法运算,其中,上述加法器131可处理数据的位宽可以等于乘法器当前处理的数据位宽N的2倍。可选的,畸形华莱士树组电路12中的每一个畸形华莱士树子电路可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=0,…,2N-1,i为每一个畸形华莱士树子电路的对应编号,编号从0开始)。可选的,加法器131接收到的Carry={[Carry0:Carry2N-2],0},也就是说,加法器131接收到的进位输出信号Carry的位宽为N,进位输出信号Carry中前2N-2位数值对应畸形华莱士树组电路12中前2N-2个畸形华莱士树子电路的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器131接收到的和位输出信号Sum的位宽为2N,和位输出信号Sum中的数值可以等于畸形华莱士树组电路12中每一个畸形华莱士树子电路的和位输出信号。
示例性的,若乘法器当前处理8位*8位的数据乘法运算,则加法器131可以为16位超前进位加法器,乘法器中的畸形华莱士树组电路12可以输出16个压缩器子电路的和位输出信号Sum和进位输出信号Carry,但是,16位超前进位加法器接收到的和位输出信号可以为畸形华莱士树组电路12输出的完整和位输出信号Sum,接收到的进位输出信号可以为畸形华莱士树组电路12中,除去最后一个畸形华莱士树子电路输出的进位输出信号的所有进位输出信号与0结合后的进位输出信号Carry。
本实施例提供的一种乘法器,该乘法器能够在完全保证运算准确性的前提下,去除处理0数值的过程,有效降低了乘法器的功耗;另外,乘法器还可以使用畸形华莱士树组电路对目标编码的部分积进行累加处理,降低乘法器的延迟,同时有效降低数据处理装置的功耗,提高AI芯片的性能。
第五类乘法器
该乘法器可以通过如下实施例进行详细说明:
如图17所示为一个实施例提供的一种乘法器的结构图。如图17所示,该乘法器包括:改进编码电路11、改进华莱士树组电路12以及累加电路13;所述改进编码电路11的输出端与所述改进华莱士树组电路12的输入端连接,所述改进华莱士树组电路12的输出端与所述累加电路13的输入端连接。其中,所述改进编码电路11用于对接收到的数据进行编码处理,得到符号位扩展后的部分积,并根据符号位扩展后的所述部分积得到目标编码的部分积,所述改进华莱士树组电路12用于对目标编码的所述部分积进行累加处理,所述累加电路13用于对接收到的输入数据进行累加处理。
具体的,上述改进编码电路11可以包括多个具有不同功能的数据处理单元,并且改进编码电路11可以接收到两个数据,分别可以作为乘法运算中的乘数和被乘数,其中,乘数和被乘数位宽相同。可选的,上述数据可以为定点数。可选的,改进编码电路11可以接收多种不同比特位宽的数据,也就是说,本实施例提供的乘法器可以处理多种不同比特位宽数据的乘法运算。但是,同一次乘法运算时,改进编码电路11接收到的乘数和被乘数可以是同位宽的数据,即乘数和被乘数位宽相等。示例性的,本实施例提供的乘法器可以处理8位*8位的数据乘法运算,16位*16位的数据乘法运算,32位*32位的数据乘法运算,还可以处理64位*64位的数据乘法运算,对此本实施例不作任何限定。
可选的,改进编码电路11可以对接收到的数据进行二进制编码处理,相当于可以对接收到的乘数进行二进制编码处理,并根据接收到的被乘数,得到符号位扩展后的部分积,该符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽的2倍。示例性的,一乘法器接收到16比特位宽的数据,且该乘法器当前所处理8位数据乘法运算,则乘法器中的改进编码电路11需要将16比特位宽的数据划分成,高8位和低8位的两组数据分别进行运算,此时,得到的符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽的2倍;若该乘法器当前可处理16位数据乘法运算,则乘法器中的改进编码电路11需要对整体16位数据进行运算,此时,得到的符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽的2倍。
可选的,所述改进编码电路11中包括第一输入端,用于接收输入的功能选择模式信号;所述改进华莱士树组电路12中包括第二输入端,用于接收输入的所述功能选择模式信号。可选的,所述功能选择模式信号用于确定乘法器处理的数据位宽。
需要说明的是,上述功能选择模式信号可以有多种,不同功能选择模式信号对应于乘法器当前可以处理不同位宽数据的乘法运算。可选的,同一次乘法运算时,改进编码电路11和改进华莱士树组电路12接收到的功能选择模式信号可以相等。
示例性的,如果改进编码电路11和改进华莱士树组电路12能够接收多种功能选择模式信号,以三种功能选择模式信号为例,可以分别为mode=00,mode=01,mode=10,mode=11,则mode=00可以表征乘法器能够对8位数据进行处理,mode=01可以表征乘法器能够对16位数据进行处理,mode=10可以表征乘法器能够对32位数据进行处理,mode=11可以表征乘法器能够对64位数据进行处理,另外,mode=00也可以表征为乘法器能够对32位数据进行处理,mode=01也可以表征为乘法器能够对64位数据进行处理,mode=10可以表征乘法器能够对8位数据进行处理,mode=11可以表征乘法器能够对16位数据进行处理,对此本实施例可以灵活设置。
本实施例提供的乘法器,该乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积;另外,乘法器通过改进华莱士树组电路对目标编码的部分积进行累加运算,可以有效降低乘法器功耗,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
图18为另一实施例提供的乘法器的具体结构示意图,其中,乘法器包括所述改进编码电路11,该改进编码电路11包括:低位布斯编码单元111、低位部分积获取单元112、选择器113、高位布斯编码单元114、高位部分积获取单元115、低位选择器组单元116以及高位选择器组单元117;所述低位布斯编码单元111的第一输出端与所述选择器112的输入端连接,所述低位布斯编码单元111的第二输出端与所述低位部分积获取单元112的第一输入端连接,所述选择器112的输出端与所述高位布斯编码单元113的输入端连接,所述高位布斯编码单元113的输出端与所述高位部分积获取单元115的第一输入端连接,所述低位选择器组单元116的输出端与所述低位部分积获取单元112的第二输入端连接,所述高位选择器组单元117的输出端与所述高位部分积获取单元115的第二输入端连接。其中,所述低位布斯编码单元111用于对接收到的数据中的低位数据进行布斯编码处理得到低位编码信号,所述低位部分积获取单元112用于根据所述低位编码信号,得到目标编码的低位部分积,所述选择器113用于选通高位数据进行布斯编码时的补位数值,所述高位布斯编码单元114用于对接收到的所述高位数据以及所述补位数值,进行布斯编码处理得到高位编码信号,所述高位部分积获取单元115用于根据所述高位编码信号,得到目标编码的高位部分积,所述低位选择器组单元116用于选通目标编码的低位部分积中的数值,所述高位选择器组单元117用于选通目标编码的高位部分积中的数值。
具体的,上述改进编码电路11可以接收乘法运算中的乘数和被乘数,并对乘数进行布斯编码处理,得到编码信号,根据编码信号以及接收到的被乘数得到目标编码的部分积。其中,低位数据在进行布斯编码处理前,低位布斯编码单元111可以自动对改进编码电路11接收到的数据中的低位数据进行一次补位处理,并对补位处理后的低位数据进行布斯编码处理,得到低位编码信号,该数据可以为乘法运算中的乘数。可选的,若改进编码电路11接收到的乘数位宽为N,则低位数据可以为低N/2位的数据,补位处理可以表征为对低位数据中最低位数值的更低一位处补一位数值0。可选的,上述低位编码信号的数量可以等于低位数据位宽的1/2,且该低位编码信号的数量可以等于低位数据对应得到的符号位扩展后的部分积的数量。需要说明的是,无论乘法器当前可处理数据的位宽和乘法器接收到的数据位宽是否相同,实现布斯编码处理时,低位布斯编码单元111都需要对低位数据进行补位处理。
同时,通过高位布斯编码单元114可以对改进编码电路11接收到的乘数中的高位数据,进行布斯编码处理得到高位编码信号,但是,高位数据在进行布斯编码处理前,需要通过选择器113获得一个选通数值,该选通数值可以作为高位数据进行布斯编码时的补位数值,然后将高位数据与补位数值组合得到补位后的高位数据,通过高位布斯编码单元114对补位后的高位数据进行布斯编码处理,得到高位编码信号。可选的,选择器113可以为二路选择器,选通数值可以为0,还可以为乘数中的低位数据的最高位数值。示例性的,一乘法器可以处理N比特和2N比特位宽数据的乘法运算,改进编码电路11接收到的数据位宽为2N比特,若该乘法器当前处理的是N比特位宽数据的运算,则选择器113选通的数据为0,也就是说,乘法器需要将接收到的2N比特位宽的数据划分成,高N位和低N位数据进行分别处理;若该乘法器当前处理的是2N比特位宽数据的运算,则选择器113选通的数据为低位数据中的最高位数值,此时相当于,乘法器需要将接收到的2N比特位宽的数据作为一个整体进行布斯编码处理。另外,选择器112还可以根据接收到的不同功能选择模式信号确定选通的补位数值。
需要说明的是,低位部分积获取单元114可以根据每一个低位编码信号得到低位数据对应的符号位扩展后的部分积,以及低位选择器组单元116选通后得到的目标编码的低位部分积中的数值,得到目标编码的低位部分积。可选的,高位部分积获取单元115可以根据每一个高位编码信号得到高位数据对应的符号位扩展后的部分积,以及高位选择器组单元117选通后得到的目标编码的高位部分积中的数值,得到目标编码的高位部分积。可选的,布斯编码过程中,得到的低位编码信号的数量可以等于得到的高位编码信号的数量,还可以等于低位数据对应的符号位扩展后的部分积的数量,或高位数据对应的符号位扩展后的部分积的数量。可选的,改进编码电路11可以包含N/4个低位布斯编码单元111,还可以包含N/4个高位布斯编码单元114。可选的,改进编码电路11中可以包含N/4个低位部分积获取单元112,还可以包含N/4个高位部分积获取单元115。可选的,上述每一个低位部分积获取单元112和每一个高位部分积获取单元115中,均可以包含2N个数值生成子单元,每一个数值生成子单元可以获取符号位扩展后的部分积中的一个数值。其中,上述N均可以表示乘法器接收到的数据的位宽。
本实施例提供的一种乘法器,该乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,其中,乘法器包括所述低位布斯编码单元111,该低位布斯编码单元111包括:第一数值输入端口1111以及低位编码信号输出端口1112。所述第一数值输入端口1111用于接收所述低位数据中的三位数值,或第一补位数值和所述低位数据中的两位数值,所述低位编码信号输出端口1112用于输出对低位数据进行布斯编码处理后得到的低位编码信号。
具体的,乘法运算中,乘法器中的改进编码电路11需要对乘数进行布斯编码处理,改进编码电路11中的低位布斯编码单元111可以通过第一数值输入端口1111接收乘数中低位数据中的相邻三位数值作为一组待编码数据。其中,每一个低位布斯编码单元111对接收到的待编码数据处理后,将得到的低位编码信号可以通过低位编码信号输出端口1112输出。另外,改进编码电路11中的第一个低位布斯编码单元111,通过第一数值输入端口1111可以接收低位数据的补位数值0,以及低位数据中的低两位数值。可选的,低位数据的补位数值可以等于乘法器接收到的乘数的补位数值。
示例性的,若乘法器接收到的乘数为16比特位宽的数据“y15y14y13y12y11y10y9y8y7y6y5y4y3y2y1y0”,从最低位数值至最高位数值对应的编号为0,…,15,低位布斯编码单元111可以对低位数据y7y6y5y4y3y2y1y0进行布斯编码处理,布斯编码处理前对8位低位数据进行补位处理后得到9位数据y7y6y5y4y3y2y1y00,低位布斯编码单元111可以分别对y7y6y5y4y3y2y1y00中y7y6y5,y5y4y3,y3y2y1,y1y00这四组数据分别进行布斯编码处理,通过低位布斯编码单元111中的第一数值输入端口1111可以接收9位数据划分后的四组数据中相邻的三位数值。
需要说明的是,每一次布斯编码处理时,可以将低位数据进行补位处理后的数据划分成多组待编码数据,低位布斯编码单元111可以同时对划分后的多组待编码数据进行布斯编码处理。可选的,划分多组待编码数据的原则可以表征为对补位处理后的数据中相邻的每3位数值作为一组待编码数据,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。示例性的,继续参见上述示例,当i=0时,y2i+1=y1,y2i=y0,y2i-1=y-1,则y-1可以表示y0后的补位数值0(即补位处理后的乘数表示为y7y6y5y4y3y2y1y0y-1),布斯编码过程中,可以对y-1y0y1,y1y2y3,y3y4y5和y5y6y7四组待编码数据分别进行编码,得到4个低位编码信号,其中,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。
本实施例提供的一种乘法器,该乘法器能够保证运算结果准确性的前提下,能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
作为其中一个实施例,乘法器包括所述低位部分积获取单元112,该低位部分积获取单元112包括:低位编码信号输入端口1121、选通数值输入端口1122、数据输入端口1123以及部分积中的数值输出端口1124;所述低位编码信号输入端口1121用于接收低位布斯编码单元111输出的低位编码信号,所述选通数值输入端口1122用于接收低位选择器组单元116选通后,输出的目标编码的低位部分积中的数值,所述数据输入端口1123用于接收乘法运算的数据,所述部分积中的数值输入端口1124用于接收目标编码的低位部分积中的数值。
具体的,低位部分积获取单元112通过低位编码信号输入端口1121可以接收低位布斯编码单元111输出的低位编码信号,并通过数据输入端口1123可以接收乘法运算中的被乘数。可选的,低位部分积获取单元112可以根据接收到的低位编码信号以及接收到的乘法运算中的被乘数,得到低位数据对应的符号位扩展后的部分积。可选的,若数据输入端口1123接收到的被乘数位宽为N,则符号位扩展后的部分积的位宽可以等于2N。示例性的,若低位部分积获取单元112接收到一个N比特位宽的被乘数X,则低位部分积获取单元112可以根据被乘数X与五类编码信号-2X,2X,-X,X和0直接得到对应的符号位扩展后的部分积,该符号位扩展后的部分积的低(N+1)位数值可以等于原始部分积的数值,符号位扩展后的部分积的高(N-1)位数值可以等于原始部分积的符号位数值,该符号位数值也就是原始部分积的最高位数值。当编码信号为-2X时,则原始部分积可以为对X进行左右一位后取反再加1,当编码信号为2X时,则原始部分积可以为对X进行左移一位,当编码信号为-X时,则原始部分积可以为对X按位取反再加1,当编码信号为X时,则原始部分积可以为X与X的符号位数值(即X的最高位数值)结合的数据,当编码信号为+0时,则原始部分积可以为0,也就是9位原始部分积中的每一位数值均等于0。
需要说明的是,低位部分积获取单元112可以通过选通数值输入端口1122,接收低位选择器组单元116选通的不同位宽数据对应的符号位扩展后的部分积中的对应位数值,并根据乘法器当前得到的低位数据对应的符号位扩展后的部分积,以及选通后的对应位数值,得到目标编码的低位部分积。
本实施例提供的一种乘法器,该乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,上述乘法器包括所述选择器113,该选择器113包括:功能选择模式信号输入端口1131(mode)、第一选通数值输入端口1132、第二选通数值输入端口1133以及运算结果输出端口1134;所述功能选择模式信号输入端口1131用于接收乘法器需要处理不同位宽的数据对应的功能选择模式信号,所述第一选通数值输入端口1132用于接收第一选通数值,所述第二选通数值输入端口1133用于接收第二选通数值,所述运算结果输出端口1134输出选通后的所述第一选通数值或所述第二选通数值。
具体的,选择器113可以通过功能选择模式信号输入端口1131接收到的功能选择模式信号,确定乘法器当前可处理的数据位宽,并确定运算结果输出端口1134输出第一选通数值或第二选通数值。可选的,第一选通数据可以为0或低位数据的最高位数值,第二选通数据可以为0或低位数据的最高位数值。
示例性的,乘法运算时,若改进编码电路11接收到的乘数和被乘数均为16位数据,且选择器113的功能选择模式信号输入端口1131(mode)可以接收两种不同功能选择模式信号,分别为mode=0,mode=1,mode=0可以表征乘法器能够对8位数据进行处理,mode=1可以表征乘法器能够对16位数据进行处理,当选择器112的功能选择模式信号输入端口1121(mode)接收到的mode为0,则乘法器当前可处理8位数据运算,此时,选择器113可以通过第二选通数值输入端口1133接收第二选通数值,该第二选通数值可以等于0;当选择器113的功能选择模式信号输入端口1131(mode)接收到的mode为1时,则乘法器当前可处理16位数据运算,此时,选择器113可以通过第一选通数值输入端口1132接收第一选通数值,该第一选通数值可以等于低位数据的最高位数值。
需要说明的是,若乘法器当前可处理8位数据乘法运算时,则乘法器可以对16位乘数和16位被乘数对应的高8位数据和低8位数据分别进行乘法运算,也就是说,高8位乘数和高8位被乘数通过高位布斯编码单元114进行8位数据运算,低8位乘数和低8位被乘数通过低位布斯编码单元111进行8位数据运算,并且乘法器进行8位数据乘法运算时,选择器113可以通过第二选通数值输入端口1133接收第二选通数值0,相当于高8位数据补位处理后的补位数值为0;若乘法器当前可处理16位数据乘法运算时,则乘法器可以直接对16位乘数和16位被乘数进行乘法运算,即改进编码电路11直接对16位乘数进行布斯编码,此时,选择器113可以通过第一选通数值输入端口1132接收第一选通数值,该第一选通数值为低8位数据中的最高位数值。
本实施例提供的一种乘法器,该乘法器可以对补位后的数据进行布斯编码处理,以减少部分积,从而减少乘法器压缩过程的运算量,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
作为其中一个实施例,乘法器包括所述高位布斯编码单元114,该高位布斯编码单元114包括:第二数值输入端口1141以及高位编码信号输出端口1142;所述第二数值输入端口1141用于接收所述高位数据中的三位数值,或第二补位数值和所述高位数据中的两位数值,所述高位编码信号输出端口1142用于输出对高位数据进行布斯编码处理后得到的高位编码信号。
具体的,乘法运算中,乘法器中的改进编码电路11需要对乘数进行布斯编码处理,改进编码电路11中的高位布斯编码单元114可以通过第二数值输入端口1141接收乘数中高位数据的相邻三位数值作为一组待编码数据。其中,每一个高位布斯编码单元114对接收到的待编码数据处理后,将得到的高位编码信号可以通过高位编码信号输出端口1142输出。另外,改进编码电路11中的第一个高位布斯编码单元114,通过第二数值输入端口1141可以接收高位数据的补位数值,以及高位数据中的低两位数值。可选的,高位数据的补位数值可以为低位数据中的最高位数值。
示例性的,继续参见16位数据乘法运算的示例,高位布斯编码单元114可以分别对y7y6y5y4y3y2y1y00中y7y6y5,y5y4y3,y3y2y1,y1y00四组数据分别进行布斯编码处理,通过高位布斯编码单元114中的第二数值输入端口1141可以接收9位数据划分后的四组数据中连续的三位数值。
需要说明的是,每一次布斯编码处理时,高位布斯编码单元114处理待编码的高位数据的原理,与低位布斯编码单元111处理待编码的低位数据的原理可以相同。其中,高位布斯编码单元114与低位布斯编码单元111的内部电路结构可以相同,外部输出端口的功能也可以相同。
本实施例提供的一种乘法器,该乘法器能够保证乘法器对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,其中,乘法器包括所述高位部分积获取单元115,该高位部分积获取单元115包括:高位编码信号输入端口1151、选通数值输入端口1152、数据输入端口1153以及部分积中的数值输出端口1154;所述高位编码信号输入端口1151用于接收高位布斯编码单元111输出的高位编码信号,所述选通数值输入端口1152用于接收高位选择器组单元117选通后,输出的目标编码的高位部分积中的数值,所述数据输入端口1153用于接收乘法运算的数据,所述部分积中的数值输入端口1154用于接收目标编码的高位部分积中的数值。
具体的,高位部分积获取单元115通过高位编码信号输入端口1151可以接收高位布斯编码单元114输出的高位编码信号,并通过数据输入端口1153可以接收乘法运算中的被乘数。可选的,高位部分积获取单元115可以根据接收到的高位编码信号以及接收到的乘法运算中的被乘数,得到高位数据对应的符号位扩展后的部分积。可选的,若数据输入端口1153接收到的被乘数位宽为N,则符号位扩展后的部分积的位宽可以等于2N。
需要说明的是,高位部分积获取单元115可以通过选通数值输入端口1122,接收高位选择器组单元117选通的不同位宽数据对应的符号位扩展后的部分积中的对应位数值,并根据乘法器当前得到的高位数据对应的符号位扩展后的部分积,以及选通后的对应位数值,得到目标编码的高位部分积。
本实施例提供的一种乘法器,该乘法器能够保证乘法器运算结果准确性的前提下,能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,其中,乘法器包括所述低位选择器组单元116,该低位选择器组单元116包括:低位选择器1161,多个所述低位选择器1161用于对目标编码的低位部分积中的数值进行选通。
具体的,上述低位选择器组单元116中低位选择器1161的数量,可以等于乘法器当前接收到的数据位宽平方的3/8倍,该低位选择器组单元116中多个低位选择器1161的内部电路结构可以相同。可选的,乘法运算时,每一个低位布斯编码单元111连接的对应低位部分积获取单元112中,可以包含2N个数值生成子单元,其中,N个数值生成子单元可以连接N个低位选择器1161,每一个数值生成子单元连接一个低位选择器1161,其中,N表示乘法器当前接收到的数据的位宽。可选的,上述N个低位选择器1161对应的N个数值生成子单元,可以为目标编码的低位部分积中高N位数值对应的数值生成子单元,且该N个低位选择器1161与选择器113的内部电路结构可以完全相同,同时,该N个低位选择器1161的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口。可选的,若乘法器可以处理n种不同位宽的数据运算,并且乘法器接收到的数据的位宽是N,则上述低位选择器1161的两个其它输入端口分别接收的信号可以为0和乘法器进行N比特位宽的数据运算时,该低位布斯编码单元111得到的对应符号位扩展后的部分积中的符号位数值。其中,N/4个低位部分积获取单元112可以连接N/4组N个低位选择器1161,各组的N个低位选择器1161接收到的符号位数值可以相同,也可以不同,但是,同一组的N个低位选择器1161接收到的符号位数值是相同的,并且该符号位数值可以根据每一组N个低位选择器1161,对应连接的低位部分积获取单元112获取的符号位扩展后的部分积中的符号位数值得到。
另外,每一个低位部分积获取单元112包含的2N个数值生成子单元中,对应N/2个数值生成子单元可以不连接低位选择器1161,此时,该N/2个数值生成子单元获取的数值可以为乘法器当前所处理不同位宽的数据,对应的一个低位数据得到的符号位扩展后的部分积中的对应位数值,也可以理解为,N/2个数值生成子单元获取的数值可以为对应符号位扩展后的部分积中,对应低N/2-1位至最低位之间的所有数值。
需要说明的是,每一个低位部分积获取单元112包含的2N个数值生成子单元中,剩余的N/2个数值生成子单元也可以连接N/2个低位选择器1161,每一个数值生成子单元可以连接1个低位选择器1161,该N/2个低位选择器1161与选择器113的内部电路结构可以相同,并且该N/2个低位选择器1161的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口,这两个其它输入端口分别接收的信号,可以为乘法器进行N/2位数据运算,得到的对应符号位扩展后的部分积中的符号位数值,和乘法器进行N位数据运算,得到的对应符号位扩展后的部分积中对应位数值。其中,N/4个低位部分积获取单元112可以连接N/4组N/2个低位选择器1161,各组的N/2个低位选择器1161接收到的符号位数值可以相同,也可以不同,但是,同一组的N/2个低位选择器1161接收到的符号位数值是相同的,并且该符号位数值可以根据每一组N/2个低位选择器1161,对应连接的低位部分积获取单元112获取的符号位扩展后的部分积中的符号位数值得到。
另外,各组的N/2个低位选择器1161接收到的符号位扩展后的部分积中对应位数值,可以根据该组低位选择器1161所连接的低位部分积获取单元112,获取的符号位扩展后的部分积中的对应位数值确定,并且每一组的N/2个低位选择器1161中,每一个低位选择器1161接收到的对应位数值可以相同,可以不同。其中,每一个低位部分积获取单元112中2N个数值生成子单元的位置,可以在上一个低位部分积获取单元112中2N个数值生成子单元位置的基础上,左移两个数值生成子单元。可选的,目标编码的低位部分积中,只有第一个低位部分积的位宽可以等于2N,剩余的低位部分积都会在上一个低位部分积的基础上少高两位的数值,且最后一个低位部分积的位宽可以等于(3N/2+2)。
本实施例提供的一种乘法器,该乘法器能够对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,其中,乘法器包括所述高位选择器组单元117,该低位选择器组单元117包括:高位选择器1171,多个所述高位选择器1171用于对目标编码的高位部分积中的数值进行选通。
具体的,上述高位选择器组单元117中高位选择器1171的数量,可以等于乘法器当前接收到的数据位宽平方的3/8倍,该高位选择器组单元117中多个高位选择器1171的内部电路结构可以相同。可选的,乘法运算时,每一个高位布斯编码单元114连接的对应高位部分积获取单元115中,可以包含2N个数值生成子单元,其中,N个数值生成子单元可以连接N个高位选择器1171,每一个数值生成子单元连接一个高位选择器1171,其中,N表示乘法器当前接收到的数据的位宽。可选的,上述N个高位选择器1171对应的N个数值生成子单元,可以为目标编码的高位部分积中低N位数值对应的数值生成子单元,且该N个高位选择器1171与选择器113的内部电路结构可以完全相同,同时,该N个高位选择器1171的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口。可选的,若乘法器可以处理n种不同位宽的数据运算,并且乘法器接收到的数据的位宽是N,则上述高位选择器1171的两个其它输入端口分别接收的信号可以为0和乘法器进行N比特位宽的数据运算时,该高位布斯编码单元114得到的对应符号位扩展后的部分积中的对应位数值。其中,N/4个高位部分积获取单元115可以连接N/4组N个高位选择器1171,各组的N个高位选择器1171接收到的对应位数值可以相同,也可以不同。
另外,每一个高位部分积获取单元115包含的2N个数值生成子单元中,对应N/2个数值生成子单元可以连接N/2个高位选择器1171,每一个数值生成子单元可以连接1个高位选择器1171,该N/2个高位选择器1171与选择器113的内部电路结构可以相同,并且该N/2个高位选择器1171的外部输入端口除了功能选择模式信号输入端口(mode)外,还有两个其它输入端口,这两个其它输入端口分别接收的信号,可以为乘法器进行N/2位数据运算,得到的对应符号位扩展后的部分积中的符号位数值,和乘法器进行N位数据运算,得到的对应符号位扩展后的部分积中的符号位数值。其中,N/4个高位部分积获取单元115可以连接N/4组N/2个高位选择器1171,各组的N/2个高位选择器1171接收到的符号位数值可以相同,也可以不同,但是,同一组的N/2个高位选择器1171接收到的符号位数值是相同的,并且该符号位数值可以根据每一组N/2个高位选择器1171,对应连接的高位部分积获取单元115获取的符号位扩展后的部分积中的符号位数值得到。另外,各组的N/2个高位选择器1171接收到的符号位扩展后的部分积中对应位数值,可以根据该组高位选择器1171所连接的高位部分积获取单元115,获取的符号位扩展后的部分积中的符号位数值确定,并且每一组的N/2个高位选择器1171中,每一个高位选择器1171接收到的对应位数值可以相同,可以不同。
需要说明的是,每一个高位部分积获取单元115包含的2N个数值生成子单元中,剩余的N/2个数值生成子单元可以不连接高位选择器1171,此时,该N/2个数值生成子单元获取的数值可以为乘法器当前所处理不同位宽的数据,对应的一个高位数据得到的符号位扩展后的部分积中的对应位数值,也可以理解为,N/2个数值生成子单元获取的数值可以为对应符号位扩展后的部分积中,对应高(3N/2)-1位至低N+1位之间的所有数值。其中,每一个高位部分积获取单元115中2N个数值生成子单元的位置,可以在上一个高位部分积获取单元115中2N个数值生成子单元位置的基础上,左移两个数值生成子单元。可选的,目标编码的高位部分积中,只有第一个高位部分积的位宽可以等于3N/2,剩余的高位部分积都会在上一个高位部分积的基础上少高两位的数值。
本实施例提供的一种乘法器,该乘法器能够对多种不同位宽的数据进行乘法运算,有效减少乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,其中,乘法器包括所述改进华莱士树组电路12,该改进华莱士树组电路12包括:改进华莱士树子电路121~12n;多个所述改进华莱士树子电路121~12n用于对不同位宽数据运算时得到的目标编码的所述部分积进行累加处理。
具体的,改进华莱士树组电路12包含的改进华莱士树子电路的数量n可以等于乘法器当前所处理数据位宽的2倍,并且n个改进华莱士树子电路可以对目标编码的部分积进行并行处理,但连接方式可以是串行连接。可选的,通过改进华莱士树组电路12可以对目标编码的部分积中的每一列的数值进行累加处理,得到两路输出信号。
需要说明的是,目标编码的所有部分积的分布规律中,每一个目标编码的部分积可以等于符号位扩展后的部分积,还可以等于符号位扩展后的部分积中的部分位数值,其中,第一个目标编码的部分积可以等于第一个对应的符号位扩展后的部分积。可选的,每一个目标编码的部分积中的最低位数值可以与上一个目标编码的部分积中的最低位数值的低两位处数值位于同一列,相当于每一个符号位扩展后的部分积中的每一位数值,在上一个符号位扩展后的部分积中的每一位数值所处对应列的基础上,左移两列,并且每一个符号位扩展后的部分积的最高位数值,与第一个符号位扩展后的部分积中的最高位数值位于同一列,其中,超出第一个符号位扩展后的部分积中的最高位数值对应列的更高列的数值可以进行累加运算。可选的,目标编码的所有部分积的列数可以等于乘法器当前所处理数据位宽的2倍。
本实施例提供的一种乘法器,该乘法器可以对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
继续参见图18为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述改进华莱士树组电路12,该改进华莱士树组电路12包括:低位改进华莱士树子电路1211、选择器1212以及高位改进华莱士树子电路1213,所述低位改进华莱士树子电路121的输出端与所述选择器1212的输入端连接,所述选择器1212的输出端与所述高位改进华莱士树子电路1213的输入端连接;其中,多个所述低位改进华莱士树子电路1211用于对目标编码的所述部分积中的每一列数值进行累加运算,所述选择器1212用于选通所述高位改进华莱士树子电路1213接收的进位输入信号,多个所述高位改进华莱士树子电路1213用于对目标编码的所述部分积中的每一列数值进行累加运算。
可选的,多个所述低位改进华莱士树子电路1211和多个所述高位改进华莱士树子电路1213均包括4-2压缩器以及模式选择单元,所述模式选择单元的输出端与所述4-2压缩器的输入端连接。其中,多个所述4-2压缩器用于对目标编码的所述部分积中每一列的数值进行累加处理,所述模式选择单元用于选通过所述4-2压缩器接收到的目标编码的所述部分积中的数值。可选的,所述模式选择单元中包括第一输入端,用于接收输入的功能选择模式信号。
具体的,每一个低位改进华莱士树子电路1211的电路结构可以由一个或多个4-2压缩器以及一个模式选择单元组合实现,每一个高位改进华莱士树子电路1213的电路结构也可以由一个或多个4-2压缩器以及一个模式选择单元组合实现,另外,还可以理解为,每一个改进华莱士树子电路中的一个或多个4-2压缩器,可以对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路,同时,每一个4-2压缩器的电路结构可以通过两个全加器组合实现。可选的,改进华莱士树组子电路121~12n可以包括多个低位改进华莱士树子电路1211和多个高位改进华莱士树子电路1213,其中,高位改进华莱士树子电路1213的数量可以等于乘法器当前接收到的数据位宽N,还可以等于低位改进华莱士树子电路1211的数量,并且各低位改进华莱士树子电路1211之间可以串行连接,各高位改进华莱士树子电路1213之间也可以串行连接。可选的,最后一个低位改进华莱士树子电路1211的输出端与选择器1212的输入端连接,选择器1212的输出端与第一个高位改进华莱士树子电路1211的输入端连接。可选的,改进华莱士树组电路12中每一个低位改进华莱士树子电路1211可以对目标编码的所有部分积的每一列进行加法处理,每一个低位改进华莱士树子电路1211可以输出两个信号,即进位信号Carryi与一个和位信号Sumi,其中,i可以表示每一个低位改进华莱士树子电路1211对应的编号,第一个低位改进华莱士树子电路1211的编号为0。可选的,每一个低位改进华莱士树子电路1211接收到输入信号的数量可以等于编码信号数量或者目标编码的部分积的数量。其中,改进华莱士树组电路12中高位改进华莱士树子电路1213与低位改进华莱士树子电路1211的数量之和,可以等于2N,目标编码的所有部分积中,从最低列至最高列的总列数可以等于2N,N个低位改进华莱士树子电路1211可以对目标编码的所有部分积的低N列中的每一列进行累加运算,N个高位改进华莱士树子电路1213可以对目标编码的所有部分积的高N列中的每一列进行累加运算。
示例性的,若乘法器接收到的数据位宽为N比特,并且当前乘法器进行N位数据乘法运算,此时,选择器1212可以选通改进华莱士树组电路12中的最后一个低位改进华莱士树子电路1211,输出的进位输出信号CoutN作为改进华莱士树组电路12中,第一个高位改进华莱士树子电路1213接收到的进位输入信号CinN+1,还可以理解为,乘法器当前可以将接收到的N为数据作为一个整体进行运算;当前乘法器进行N/2位数据乘法运算,此时,选择器1212可以选通0作为改进华莱士树组电路12中,第一个高位改进华莱士树子电路1213接收到的进位输入信号CinN+1,还可以理解为,乘法器当前可以将接收到的N位数据划分成高N/2位和低N/2位数据分别进行乘法运算,其中,从第一个低位改进华莱士树子电路1211至最后一个低位改进华莱士树子电路1211的对应编号i分别为1,2,…,N,从第一个高位改进华莱士树子电路1213至最后一个高位改进华莱士树子电路1213的对应编号i分别为N+1,N+2,…,2N。
需要说明的是,改进华莱士树组电路12中每一个低位改进华莱士树子电路1211和高位改进华莱士树子电路1213,接收到的信号可以包括进位输入信号Cini,部分积数值输入信号,进位输出信号Couti。其中,NI可以表示该改进华莱士树子电路的数据输入位数,NCin可以表示该华莱士树子电路的进位输入位数,NCout可以表示该改进华莱士树子电路最少的进位输出位数,floor(·)可以表示向下取整函数。可选的,改进华莱士树组电路12中每一个低位改进华莱士树子电路1211或高位改进华莱士树子电路1213接收到的进位输入信号,可以为上一个低位改进华莱士树子电路1211或高位改进华莱士树子电路1213输出的进位输出信号,并且第一个低位改进华莱士树子电路1211接收到的进位数输入信号为0。其中,第一个高位改进华莱士树子电路1213接收到的进位数输入信号,可以通过乘法器当前所处理的数据的位宽与乘法器接收到的数据位宽确定。可选的,改进华莱士树组电路12中,低位改进华莱士树子电路1211的进位输出端口与选择器1212的输入端口连接,低位改进华莱士树子电路1211的进位输入端口与选择器1212的输出端口连接。
另外,每一个低位改进华莱士树子电路1211和每一个高位改进华莱士树子电路1213,均可以通过电路结构中的模式选择单元选通目标编码的所有部分积中对应列的其中一位数值,并将该位数值输入至4-2压缩器中的全加器,以选通低电平信号,使得该全加器的输入信号均为低电平信号,相当于关闭了该全加器。
本实施例提供的一种乘法器,该乘法器可以对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积;另外,乘法器可以通过高位和低位改进华莱士树子电路中的模式选择单元选通目标编码的部分积中的数值,使得改进华莱士树子电路中的一个全加器接收到的信号均为低电平信号,保证关闭该全加器,达到降低功耗的目的,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
继续参见图18为另一实施例提供的乘法器的具体结构示意图,乘法器包括所述累加电路13,该累加电路13包括:加法器131,所述加法器131用于对接收到的两个同位宽数据进行加法运算。
具体的,加法器131可以为不同位宽的进位加法器。可选的,加法器131可以接收改进华莱士树组电路12输出的两路信号,对两路输出信号进行加法运算,得到乘法运算结果。可选的,上述加法器131可以为超前进位加法器。
可选的,所述加法器131,该加法器131包括:进位信号输入端口131a、和位信号输入端口131b以及运算结果输出端口131c;所述进位信号输入端口131a用于接收进位信号,和位信号输入端口131b用于接收和位信号,运算结果输出端口131c用于输出进位信号与和位信号进行累加处理的结果。
具体的,加法器131可以通过进位信号输入端口131a接收改进华莱士树组电路12输出的进位信号Carry,通过和位信号输入端口131b接收改进华莱士数组电路12输出的和位信号Sum,并将进位信号Carry与和位信号Sum进行累加的结果,通过运算结果输出端口131c输出。
需要说明的是,乘法运算时,乘法器可以采用不同位宽的加法器131对改进华莱士树组电路12输出的进位输出信号Carry与和位输出信号Sum进行加法运算,其中,上述加法器131的可处理数据的位宽可以等于乘法器当前处理的数据位宽M的2倍。可选的,改进华莱士树组电路121中的每一个低位改进华莱士树子电路121和高位改进华莱士树子电路123,可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=1,…,2M,i为每一个低位或高位改进华莱士树子电路的对应编号,编号从1开始)。可选的,加法器131接收到的Carry={[Carry1:Carry2M-1],0},也就是说,加法器131接收到的进位输出信号Carry的位宽为2M,进位输出信号Carry中前2M-1位数值对应改进华莱士树组电路12中,前2M-1个低位和高位改进华莱士树子电路的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器131接收到的和位输出信号Sum的位宽为M,和位输出信号Sum中的数值可以等于改进华莱士树组电路12中每一个低位或高位改进华莱士树子电路的和位输出信号。
示例性的,若乘法器当前处理8位*8位的数据乘法运算,则加法器131可以为16位超前进位加法器,乘法器中的改进华莱士树组电路12可以输出16个低位和高位改进华莱士树子电路的和位输出信号Sum和进位输出信号Carry,但是,16位超前进位加法器接收到的和位输出信号,可以为改进华莱士树组电路12输出的完整和位信号Sum,接收到的进位输出信号可以为改进华莱士树组电路12中,除去最后一个高位改进华莱士树子电路123输出的进位输出信号的所有进位输出信号,与0结合后的进位信号Carry。
本实施例提供的一种乘法器,该乘法器可以对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
具体的,在可能的实施方式中,上述运算单元1121中包括的多个不同功能的数据比较装置,可以通过以下实施例中的技术方案对几类数据比较装置进一步详细说明,但是不限于以下实施例中的几类数据比较装置。
第一类数据比较器
该数据比较器可以通过如下实施例进行详细说明:
图19为一实施例提供的一种数据比较器的结构示意图。如图19所示,该数据比较器包括:判断电路11和比较电路12,所述判断电路11的输出端与所述比较电路12的输入端连接;所述判断电路11用于判断接收到的数据是否需要通过与所述判断电路11的输出端相连的比较电路12进行处理,所述比较电路12用于对接收到的所述数据进行比较。
具体的,判断电路11和比较电路12可以采用串行方式处理数据,还可以通过或逻辑实现并行方式处理数据。可选的,该数据可以为浮点数。可选的,上述判断电路11可以为一种判断接收到的数据的数值类型的电路。可选的,上述数据比较器的外部结构示意图如图20所示。可选的,上述数值类型可以包括非数值,无穷数和零值。可选的,上述比较电路12可以为一种将接收到的数据的符号位,指数位和尾数位进行比较的电路。可选的,上述比较电路12可以包括多个具有不同功能的比较单元。可选的,上述不同功能的比较单元的输入端口可以有多个,各比较单元的每个输入端口的功能可以不相同或相同,输出端口也可以有多个,各比较单元的每个输出端口的功能可以相同或不相同,但是,不同比较单元的输入端口的功能可以相同,也可以不同,不同比较单元的输出端口的功能可以相同,也可以不同,并且不同功能的比较单元的电路结构可以不同,也可以相同。
可选的,所述判断电路11中包括第一输入端01,用于接收输入的功能选择模式信号;所述比较电路12中包括第二输入端02,用于接收输入的所述功能选择模式信号。
需要说明的是,上述功能选择模式信号可以有多种,不同功能选择模式信号对应于数据比较器可以处理不同位宽的数据。
本实施例提供的一种数据比较器,当比较电路输出高电平信号时,结束运算获得运算结果,从而可以减少运算量,节省运算时间;另外,数据比较器根据判断电路和比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,上述判断电路11可具体用于判断接收到的数据中是否存在非数值、无穷数或零值,并根据结果判断是否需要通过所述比较电路进行下一步处理。
具体的,上述判断电路11可以包括将接收到的数据,与IEEE数据算术标准中非数值、无穷数或零值对应的编码格式进行比较判断的电路。可选的,上述判断电路11可以包括多个具有不同功能的判断单元。另外,上述不同功能的判断单元的输入端口可以有多个,各判断单元的每个输入端口的功能可以不相同或相同;类似的,输出端口也可以有多个,各判断单元的每个输出端口的功能可以相同或不相同,并且不同功能判断单元的电路结构可以不同,也可以相同。
本实施例提供的一种数据比较器,该数据比较器中判断电路的判断结果为是时,就会结束运算,不需要进行比较电路的运算,可以减少运算量,节省运算时间;另外,数据比较器根据判断电路和比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
图21为另一实施例提供的一种数据比较器的结构图。如图21所示,该数据比较器包括:判断电路11和比较电路12,所述判断电路11包括零值判断单元113,所述比较电路包括符号位比较单元121和指数位比较单元122,所述零值判断单元113的输出端与所述符号位比较单元121的输入端及所述指数位比较单元122的输入端连接,所述符号位比较单元121的输出端与所述指数位比较单元122的输入端连接;
所述零值判断单元113用于判断接收到的所述数据中是否存在零值,所述符号位比较单元121用于判断接收到的所述数据的符号位大小,所述指数位比较单元122用于判断接收到的所述数据的指数位大小。
具体的,判断电路11和比较电路12可以采用串行方式处理数据,还可以通过或逻辑实现并行方式处理数据。可选的,上述判断电路11可以为一种判断接收到的数据的数值类型的电路,该判断电路11可以包括判断数据的数值类型的多个判断单元,该数值类型可以包括非数值,无穷数和零值。可选的,上述比较电路12可以为一种将接收到的数据的符号位,指数位和尾数位进行比较的电路。可选的,上述比较电路12可以包括多个不同功能的比较单元。可选的,上述不同功能的比较单元的输入端口可以有多个,各比较单元的每个输入端口的功能可以不相同或相同,输出端口也可以有多个,各比较单元的每个输出端口的功能可以相同或不相同,但是,不同比较单元的输入端口的功能可以相同,也可以不同,不同比较单元的输出端口的功能可以相同,也可以不同,并且不同功能的比较单元的电路结构可以不同,也可以相同。可选的,上述数据比较器的外部结构示意图如图20所示。
可选的,所述符号位比较单元121的输出端与所述指数位比较单元122的输入端连接。
另外,若零值判断单元113的判断结果为是,则零值判断单元113可以输出高电平信号,此时,结束运算输出运算结果。若零值判断单元113的判断结果不满足预设条件,则零值判断单元113可以输出低电平信号,此时,不结束运算,需要继续通过下一单元进行处理。可选的,上述满足的预设条件可以表征为接收到的数据满足IEEE标准中零值对应的编码格式。其中,IEEE数据算术标准中,零对应的编码格式可以表示为数据的指数位全为0,尾数位全为0。
可选的,所述判断电路11中包括第一输入端01,用于接收输入的功能选择模式信号;所述比较电路12中包括第二输入端02,用于接收输入的所述功能选择模式信号。
需要说明的是,上述功能选择模式信号可以有多种,不同功能选择模式信号对应于数据比较器可以处理不同位宽的数据。
本实施例提供的一种数据比较器,通过判断电路中的零值判断单元判断接收到的数据中是否存在零值,如果接收到的数据中存在零值,则该判断单元的判断结果为是,此时结束运算得到运算结果,不需要进行比较电路的运算,可以减少运算量,节省运算时间;另外,数据比较器根据判断电路和比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
图22为另一实施例提供的一种数据比较器的具体结构示意图,该数据比较器包括所述判断电路11,该判断电路11还包括:非数值判断单元111和无穷数判断单元112,所述非数值判断单元111的输出端与所述无穷数判断单元112的输入端连接;
其中,所述非数值判断单元111用于判断接收到的所述数据中是否存在非数值,所述无穷数判断单元112用于判断接收到的所述数据中是否存在无穷数。
可选的,所述无穷数判断单元112的输出端与所述零值判断单元113的输入端连接。
需要说明的是,通过非数值判断单元111,无穷数判断单元112和零值判断单元113对接收到的数据依次进行处理,直到其中一个判断单元的判断结果满足预设条件为止,三个判断单元中的任意一个判断单元的判断结果为是,则判断结果为是的对应判断单元会输出高电平信号,此时,结束运算输出运算结果。若上述三个判断单元中的任意一个或多个判断单元的判断结果不满足预设条件,则不满足预设条件的对应判断单元可以输出低电平信号,此时,不结束运算,需要继续通过下一单元进行处理。可选的,上述满足的预设条件可以表征为接收到的数据满足IEEE标准中非数值、无穷数或零值对应的编码格式。其中,IEEE数据算术标准中,非数值对应的编码格式可以表示为数据的指数位全为0,尾数位不全为0;无穷数对应的编码格式可以表示为数据的指数位全为0,尾数位全为0;零对应的编码格式可以表示为数据的指数位全为0,尾数位全为0。
可选的,所述无穷数判断单元112的输出端还可以与所述非数值判断单元111的输入端连接,所述非数值判断单元111的输出端与所述零值判断单元113的输入端连接。需要说明的是,判断电路11中的非数值判断单元111与无穷数判断单元112的连接结构可以相互交换,对此本实施例不做任何限定。
本实施例提供的一种数据比较器,通过非数值判断单元,无穷数判断单元和零值判断单元,依次判断接收到的数据中是否存在非数值、无穷数或零值,如果接收到的数据中存在非数值,无穷或零值,相应判断单元的判断结果为是时,此时结束运算得到运算结果,不需要进行比较电路的运算,可以减少运算量,节省运算时间;另外,数据比较器根据判断电路和比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
图23为另一实施例提供的一种数据比较器的具体结构示意图,数据比较器包括所述判断电路11,该判断电路11包括:非数值判断单元111,无穷数判断单元112和零值判断单元113,所述非数值判断单元111的输出端与所述无穷数判断单元112的输入端连接,所述无穷数判断单元112的输出端与所述零值判断单元113的输入端连接;所述非数值判断单元111用于判断接收到的所述数据中是否存在非数值,所述无穷数判断单元112用于判断接收到的所述数据中是否存在无穷数,所述零值判断单元113用于判断接收到的所述数据中是否存在零值。
可选的,所述无穷数判断单元112的输出端与所述非数值111判断单元的输入端连接,所述非数值判断单元111的输出端与所述零值判断单元113的输入端连接。
需要说明的是,通过非数值判断单元111,无穷数判断单元112和零值判断单元113对接收到的数据依次进行处理,直到其中一个判断单元的判断结果满足预设条件为止,三个判断单元中的任意一个判断单元的判断结果为是,则判断结果为是的对应判断单元会输出高电平信号,此时,结束运算输出运算结果。若上述三个判断单元中的任意一个或多个判断单元的判断结果不满足预设条件,则不满足预设条件的对应判断单元会输出低电平信号,此时,不结束运算,需要继续通过下一单元进行处理。可选的,上述满足的预设条件可以表征为接收到的数据满足IEEE标准中非数值、无穷数或零值对应的编码格式。其中,IEEE数据算术标准中,非数值对应的编码格式可以表示为数据的指数位全为0,尾数位不全为0;无穷数对应的编码格式可以表示为数据的指数位全为0,尾数位全为0;零对应的编码格式可以表示为数据的指数位全为0,尾数位全为0。
本实施例提供的一种数据比较器,通过非数值判断单元,无穷数判断单元和零值判断单元,依次判断接收到的数据中是否存在非数值、无穷数或零值,如果接收到的数据中存在非数值,无穷或零值,相应判断单元的判断结果为是时,此时结束运算得到运算结果,不需要进行比较电路的运算,可以减少运算量,节省运算时间;另外,数据比较器根据判断电路和比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,所述非数值判断单元111包括:第一数据输入端口1111,第二数据输入端口1112,功能选择模式信号输入端口(mode)1113,第一数据输出端口1114,第二数据输出端口1115,非数值判断结果输出端口(unordered)1116;所述第一数据输入端口1111用于接收输入的第一数据,第二数据输入端口1112用于接收输入的第二数据,所述功能选择模式信号输入端口(mode)1113用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口1114用于将接收到的所述第一数据输出到下一单元的输入端口,所述第二数据输出端口1115用于将接收到的所述第二数据输出到下一单元的输入端口,所述非数值判断结果输出端口(unordered)1116用于输出非数值判断单元111的判断结果。
需要说明的是,上述非数值判断结果输出端口(unordered)1116输出的判断结果可以为逻辑信号,该逻辑信号可以为高电平信号,还可以为低电平信号。若非数值判断单元111的判断结果满足预设条件时,非数值判断结果输出端口(unordered)1116可以输出高电平信号,结束运算,该情况可以表示非数值判断单元111接收到的两个数据中至少存在一个非数值。若非数值判断单元111的判断结果满足预设条件时,非数值判断结果输出端口(unordered)1116可以输出低电平信号,不能结束运算,需要进行下一单元处理,该情况可以表示非数值判断单元111接收到的数据中不存在一个非数值。可选的,上述非数值判断单元111对应的预设条件可以为非数值判断单元111接收到的数据是否满足IEEE标准中非数值对应的编码格式。可选的,上述非数值判断单元111中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。
本实施例提供的一种数据比较器,非数值判断单元可以根据非数值判断结果输出端口输出的判断结果,确定数据比较器是否可以直接结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,所述无穷数判断单元112包括:第一数据输入端口1121,第二数据输入端口1122,功能选择模式信号输入端口(mode)1123,第一数据输出端口1124,第二数据输出端口1125,无穷数判断结果输出端口(altb1)1126,(aeqb1)1127和(agtb1)1128;所述第一数据输入端口1121用于接收输入的所述第一数据,第二数据输入端口1122用于接收输入的所述第二数据,所述功能选择模式信号输入端口(mode)1123用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口1124用于将接收到的所述第一数据输出到下一单元的输入端口,第二数据输出端口1125用于将接收到的所述第二数据输出到下一单元的输入端口,所述无穷数判断结果输出端口(altb1)1126,(aeqb1)1127和(agtb1)1128用于输出无穷数判断单元112的判断结果。
具体的,上述三个无穷数判断结果输出端口(altb1)1126,(aeqb1)1127和(agtb1)1128输出的判断结果可以为逻辑信号,该逻辑信号可以为高电平信号,还可以为低电平信号。若无穷数判断单元112的判断结果满足预设条件时,无穷数判断结果输出端口(altb1)1126,(aeqb1)1127和(agtb1)1128中任意一个端口可以输出高电平信号,其它两个端口输出低电平信号,结束运算,该情况可以表示无穷数判断单元112接收到的两个数据中至少存在一个无穷数。若三个端口均输出低电平信号时,可以表示无穷数判断单元112接收到的数据中不存在无穷数,不能结束运算,需要进行下一单元处理。可选的,上述无穷数判断单元112对应的预设条件可以为接收到的数据是否满足IEEE标准中无穷数对应的编码格式。可选的,上述无穷数判断单元112中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。
需要说明的是,若数据比较器接收到的两个数据分别为a和b,则altb1输出高电平信号可以表征为a小于b,aeqb1输出高电平信号可以表征为a等于b,agtb1输出高电平信号可以表征为a大于b。
本实施例提供的一种数据比较器,无穷数判断单元可以根据无穷数判断结果输出端口输出的判断结果,确定数据比较器是否可以直接结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,所述零值判断单元113包括:第一数据输入端口1131,第二数据输入端口1132,功能选择模式信号输入端口(mode)1133,零值判断结果输出端口(altb2)1134a,(altb2)1134b和(agtb2)1134c,第一符号位输出端口1135a,第二符号位输出端口1135b,第一指数位输出端口1136a,第二指数位输出端口1136b,第一尾数位输出端口1137a,第二尾数位输出端口1137b和逻辑信号输出端口1138;
其中,所述第一数据输入端口1131接收输入的所述第一数据,所述第二数据输入端口1132用于接收输入的所述第二数据,所述功能选择模式信号输入端口(mode)1133用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述零值判断结果输出端口(altb2)1134a,(aeqb2)1134b和(agtb2)1134c用于输出零值判断单元113的判断结果,第一符号位输出端口1135a用于输出接收的第一数据的符号位数据,第二符号位输出端口1135b用于输出接收的第二数据的符号位数据,第一指数位输出端口1136a用于输出接收的第一数据的指数位数据,第二指数位输出端口1136b用于输出接收的第二数据的指数位数据,第一尾数位输出端口1137a用于输出接收的第一数据的尾数位数据,第二尾数位输出端口1137b用于输出接收的第二数据的尾数位数据,所述零值逻辑信号输出端口1138用于输出逻辑判断信号。
具体的,上述三个零值判断结果输出端口(altb2)1134a,(aeqb2)1134b和(agtb2)1134c输出的判断结果可以为逻辑信号,该逻辑信号可以为高电平信号,还可以为低电平信号。若零值判断单元113的判断结果满足预设条件时,零值判断结果输出端口(altb2)1134a,(aeqb2)1134b和(agtb2)1134c中任意一个端口可以输出高电平信号,其它两个端口输出低电平信号,结束运算,该情况可以表示零值判断单元113接收到的数据中至少存在一个零值,此时,逻辑信号输出端口1138可以输出低电平信号。若三个端口均输出低电平信号时,可以表示零值判断单元113接收到的数据中不存在零值,不能结束运算,需要进行下一单元处理,此时,零值逻辑信号输出端口1138可以输出高电平信号。可选的,上述零值判断单元113对应的预设条件可以为接收到的数据是否满足IEEE标准中零值对应的编码格式。可选的,上述零值判断单元113中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。
需要说明的是,若数据比较器接收到的数据为a和b,则altb2输出高电平信号可以表征为a小于b,aeqb2输出高电平信号可以表征为a等于b,agtb2输出高电平信号可以表征为a大于b。另外,若零值逻辑信号输出端口1138输出高电平信号时,则第一符号位输出端口1135a和第二符号位输出端口1135b可以将接收到的第一数据和第二数据的符号位分别输入至符号位比较单元114,通过符号位比较单元114对接收到的两个数据继续进行比较处理。
本实施例提供的一种数据比较器,零值判断单元可以根据零值判断结果输出端口输出的判断结果,确定数据比较器是否可以直接结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,所述零值判断单元113包括:第一数据输入端口1131,第二数据输入端口1132,功能选择模式信号输入端口(mode)1133,第一数据输出端口1134,第二数据输出端口1135,零值判断结果输出端口(altb2)1136,(aeqb2)1137和(agtb2)1138;所述第一数据输入端口1131用于接收输入的所述第一数据,第二数据输入端口1132用于接收输入的所述第二数据,所述功能选择模式信号输入端口(mode)1133用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口1134用于将接收到的所述第一数据输出到下一单元的输入端口,第二数据输出端口1135用于将接收到的所述第二数据输出到下一单元的输入端口,所述零值判断结果输出端口(altb2)1136,(aeqb2)1137和(agtb2)1138用于输出零值判断单元113的判断结果。
具体的,上述三个零值判断结果输出端口(altb2)1136,(aeqb2)1137和(agtb2)1138输出的判断结果可以为逻辑信号,该逻辑信号可以为高电平信号,还可以为低电平信号。若零值判断单元113的判断结果满足预设条件时,零值判断结果输出端口(altb2)1136,(aeqb2)1137和(agtb2)1138中任意一个端口可以输出高电平信号,其它两个端口输出低电平信号,结束运算,该情况可以表示零值判断单元113接收到的两个数据中至少存在一个零值。若三个端口均输出低电平信号时,可以表示零值判断单元113接收到的两个数据中不存在零值,不能结束运算,需要进行下一单元处理。可选的,上述零值判断单元113对应的预设条件可以为接收到的数据是否满足IEEE标准中零值对应的编码格式。可选的,上述零值判断单元113中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。
需要说明的是,若数据比较器接收到的数据为a和b,则altb2输出高电平信号可以表征为a小于b,aeqb2输出高电平信号可以表征为a等于b,agtb2输出高电平信号可以表征为a大于b。
本实施例提供的一种数据比较器,零值判断单元可以根据零值判断结果输出端口输出的判断结果,确定数据比较器是否可以直接结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
图23为另一实施例提供的数据比较器的具体结构示意图,数据比较器包括所述比较电路12,该比较电路12还包括:尾数位比较单元123,所述尾数位比较单元123用于判断接收到的所述数据的尾数位大小。
具体的,尾数位比较单元123对接收到的数据进行处理,得到一个比较结果时,尾数位比较单元123可以输出高电平信号,此时,结束运算输出运算结果。
可选的,所述零值判断单元113的输出端可以与所述尾数位比较单元123的输入端连接。
本实施例提供的一种数据比较器,通过尾数位比较单元,判断接收到的数据的尾数位的大小,如果可以确定接收到的数据的尾数位的大小,则尾数位比较单元会输出高电平信号,从而结束运算得到运算结果;另外,数据比较器根据比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
图23为另一实施例提供的数据比较器的具体结构示意图,数据比较器包括所述比较电路12,该比较电路12包括:符号位比较单元121,指数位比较单元122和尾数位比较单元123,所述符号位比较单元121的输出端与所述指数位比较单元122的输入端连接,所述指数位比较单元122的输出端与所述尾数位比较单元123的输入端连接;所述符号位比较单元121用于判断接收到的所述数据的符号位大小,所述指数位比较单元122用于判断接收到的所述数据的指数位大小,所述尾数位比较单元123用于判断接收到的所述数据的尾数位大小。
需要说明的是,通过符号位比较单元121,指数位比较单元122和尾数位比较单元123对接收到的数据依次进行处理,直到其中一个比较单元可以得到一个比较结果为止,对应的比较单元会输出高电平信号,此时,结束运算输出运算结果。可选的,上述比较结果可以包括数据的符号位大小比较结果,数据的指数位大小比较结果和数据的尾数位大小比较结果。
本实施例提供的一种数据比较器,通过符号位比较单元,指数位比较单元和尾数位比较单元,依次判断接收到的数据的符号位的大小,指数位的大小和尾数位的大小,如果可以确定接收到的数据的符号位的大小,指数位的大小或尾数位的大小,则相应的比较单元会输出高电平信号,此时结束运算得到运算结果,不需要进行其它比较单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据比较电路接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,所述符号位比较单元121包括:第一符号位输入端口1211,第二符号位输入端口1212,功能选择模式信号输入端口(mode)1213,符号位比较结果输出端口(altb3)1214a和(agtb3)1214b,符号位逻辑信号输出端口1215和零值逻辑信号输入端口1216;所述第一符号位输入端口1211用于接收所述第一数据的符号位数据,所述第二符号位输入端口1212用于接收所述第二数据的符号位数据,所述功能选择模式信号输入端口(mode)1213用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述符号位比较结果输出端口(altb3)1214a和(agtb3)1214b用于输出所述数据的符号位大小比较结果,所述符号位逻辑信号输出端口1215用于输出逻辑判断信号,所述零值逻辑信号输入端口1216用于接收零值判断单元113输出的逻辑判断信号。
具体的,上述第一符号位输入端口1211和第二符号位输入端口1212可以分别接收零值判断单元113输出的第一数据和第二数据的符号位数据。
需要说明的是,若符号位比较结果输出端口(altb3)1214a或(agtb3)1214b输出高电平信号时,则表示不需要继续进行下一单元对数据进行处理,结束运算得到运算结果,此时,符号位逻辑信号输出端口1215可以输出低电平信号。否则,符号位比较结果输出端口(altb3)1214a或(agtb3)1214b输出低电平信号时,需要继续进行下一单元的处理,此时,符号位逻辑信号输出端口1215可以输出高电平信号。
本实施例提供的一种数据比较器,符号位比较单元可以根据符号位比较结果输出端口输出的比较结果,确定数据比较器是否可以直接结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,所述符号位比较单元121包括:第一数据输入端口1211,第二数据输入端口1212,功能选择模式信号输入端口(mode)1213,第一数据输出端口1214,第二数据输出端口1215,符号位比较结果输出端口(altb3)1216和(agtb3)1217;所述第一数据输入端口1211用于接收输入的所述第一数据,所述第二数据输入端口1212用于接收输入的所述第二数据,所述功能选择模式信号输入端口(mode)1213用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口1214用于将接收到的所述第一数据输出到下一单元的输入端口,所述第二数据输出端口1215用于将接收到的所述第二数据输出到下一单元的输入端口,所述符号位比较结果输出端口(altb3)1216和(agtb3)1217用于输出所述数据的符号位大小比较结果。
需要说明的是,上述符号位比较单元121中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。若符号位比较结果输出端口(altb3)1216或(agtb3)1217输出高电平信号,则表示不需要继续进行下一单元对数据进行处理,结束运算得到运算结果,否则,符号位比较结果输出端口(altb3)1216和(agtb3)1217均输出低电平信号,需要继续进行下一单元的处理。示例性的,若数据比较器接收到的数据为a和b,则altb3输出高电平信号可以表征为a小于b,agtb3输出高电平信号可以表征为a大于b。
本实施例提供的一种数据比较器,符号位比较单元可以根据符号位比较结果输出端口输出的比较结果,确定数据比较器是否可以直接结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,所述指数位比较单元122包括:第一指数位输入端口1221,第二指数位输入端口1222,功能选择模式信号输入端口(mode)1223,指数位比较结果输出端口(altb4)1224a和(agtb4)1224b,指数位逻辑信号输出端口1225和符号位逻辑信号输入端口1226;所述第一指数位输入端口1211用于接收所述第一数据的指数位数据,所述第二指数位输入端口1212用于接收所述第二数据的指数位数据,所述功能选择模式信号输入端口(mode)1223用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述指数位比较结果输出端口(altb4)1224a和(agtb4)1224b用于输出所述数据的指数位大小比较结果,所述指数位逻辑信号输出端口1225用于输出逻辑判断信号,所述符号位逻辑信号输入端口1226用于接收符号位比较单元121输出的逻辑判断信号。
具体的,上述第一指数位输入端口1221和第二指数位输入端口1222可以分别接收零值判断单元113输出的第一数据和第二数据的指数位数据。
需要说明的是,若指数位比较结果输出端口(altb4)1224a或(agtb4)1224b输出高电平信号时,则表示不需要继续进行下一单元对数据进行处理,结束运算得到运算结果,此时,指数位逻辑信号输出端口1225可以输出低电平信号。否则,指数位比较结果输出端口(altb4)1224a或(agtb4)1224b输出低电平信号时,需要继续进行下一单元的处理,此时,指数位逻辑信号输出端口1225可以输出高电平信号。
本实施例提供的一种数据比较器,指数位比较单元可以根据指数位比较结果输出端口输出的比较结果,确定数据比较器是否可以直接结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,所述指数位比较单元122包括:第一数据输入端口1221,第二数据输入端口1222,功能选择模式信号输入端口(mode)1223,第一数据输出端口1224,第二数据输出端口1225,指数位比较结果输出端口(altb4)1226和(agtb4)1227;所述第一数据输入端口1221用于接收输入的所述第一数据的指数位数据,所述第二数据输入端口1222用于接收输入的所述第二数据的指数位数据,所述功能选择模式信号输入端口(mode)1223用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输出端口1224用于将接收到的所述第一数据输出到下一单元的输入端口,所述第二数据输出端口1225用于将接收到的所述第二数据输出到下一单元的输入端口,所述指数位比较结果输出端口(altb4)1226和(agtb4)1227用于输出所述数据的指数位大小比较结果。
需要说明的是,上述指数位比较单元122中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。若指数位比较结果输出端口(altb4)1224或(agtb4)1225输出高电平信号,则表示不需要继续进行下一单元对数据进行处理,结束运算得到运算结果,否则,指数位比较结果输出端口(altb4)1224和(agtb4)1225均输出低电平信号,需要继续进行下一单元的处理。示例性的,若数据比较器接收到的数据为a和b,则altb4输出高电平信号可以表征为a小于b,agtb4输出高电平信号可以表征为a大于b。
本实施例提供的一种数据比较器,指数位比较单元可以根据指数位比较结果输出端口输出的比较结果,确定数据比较器是否可以直接结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,所述尾数位比较单元123包括:第一尾数位输入端口1231,第二尾数位输入端口1232,功能选择模式信号输入端口(mode)1233,尾数位比较结果输出端口(altb5)1234a,(agtb5)1234b和(aeqb5)1234c,指数位逻辑信号输入端口1235;所述第一尾数位输入端口1231用于接收所述第一数据的尾数位数据,所述第二尾数位输入端口1232用于接收所述第二数据的尾数位数据,所述功能选择模式信号输入端口(mode)1233用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述尾数位比较结果输出端口(altb5)1234a和(agtb5)1234b用于输出所述数据的尾数位大小比较结果,所述指数位逻辑信号输入端口1235用于接收指数位比较单元122输出的逻辑判断信号。
具体的,上述第一尾数位输入端口1231和第二尾数位输入端口1232可以分别接收零值判断单元113输出的第一数据和第二数据的指数位数据。
需要说明的是,若尾数位比较结果输出端口(altb5)1234a或(agtb5)1234b输出高电平信号时,则结束运算得到运算结果,此时,指数位逻辑信号输入端口1235可以接收高电平信号。
本实施例提供的一种数据比较器,尾数位比较单元可以根据尾数位比较结果输出端口输出的比较结果,确定数据比较器是否可以直接结束运算得到运算结果,此时,该数据比较器就不需要进行后续其它单元的运算,可以减少运算量,节省运算时间;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,所述尾数位比较单元123包括:第一数据输入端口1231,第二数据输入端口1232,功能选择模式信号输入端口(mode)1233,尾数位比较结果输出端口(altb5)1234,(agtb5)1235和(aegb5)1236;所述第一数据输入端口1231用于接收输入的所述第一数据,所述第二数据输入端口1232用于接收输入的所述第二数据,所述功能选择模式信号输入端口(mode)1233用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述尾数位比较结果输出端口(altb5)1234,(agtb5)1235和(aegb5)1236用于输出所述数据的尾数位大小比较结果。
需要说明的是,上述尾数位比较单元123中输入的功能选择模式信号可以根据用户需求确定,并且可以根据输入的功能选择模式信号确定数据比较器当前可处理的数据位宽。若尾数位比较结果输出端口(altb5)1234,(agtb5)1235或(aegb5)1236输出高电平信号,则结束运算得到运算结果。示例性的,若数据比较器接收到的数据为a和b,则altb5输出高电平信号可以表征为a小于b,aeqb5输出高电平信号可以表征为a等于b,agtb5输出高电平信号可以表征为a大于b。同时,若所有判断单元的判断结果输出端口,符号位比较单元121和指数位比较单元122的比较结果输出端口均无高电平信号输出,则尾数位比较单元123对应的三个比较结果输出端口中必然有一个端口可以输出高电平信号。
本实施例提供的一种数据比较器,尾数位比较单元可以根据尾数位比较结果输出端口输出比较结果,从而结束运算得到运算结果;另外,数据比较器根据功能选择模式信号输入端口接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
第二类复用向量选择装置
该复用向量选择装置可以通过如下实施例进行详细说明:
图24为一个实施例提供的一种复用向量选择装置的结构图。如图24所示,该复用向量选择装置包括:数据读入电路11、循环比较电路12、结束判断电路13和极值寄存电路14;其中,所述数据读入电路11的第一输出端与所述循环比较电路12的第一输入端及所述结束判断电路13的输入端连接,所述结束判断电路13的第一输出端与所述数据读入电路11的第一输入端及所述极值寄存电路14的第一输入端连接,所述极值寄存电路14的第一输出端与所述循环比较电路12的第二输入端连接,所述循环比较电路12的输出端与所述极值寄存电路14的第二输入端连接;所述数据读入电路11用于接收数据的个数N,并根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述循环比较电路12用于循环比较接收到的N个所述数据的大小,所述结束判断电路13用于判断循环比较处理是否结束,所述极值寄存电路14用于输出比较运算的结果。
可选的,图25为另一种复用向量选择装置的结构图。如图25所示,该复用向量选择装置包括:数据读入电路11、循环比较电路12、结束判断电路13和极值寄存电路14;其中,所述数据读入电路11的第一输出端与所述循环比较电路12的第一输入端,所述数据读入电路11的第二输出端与所述结束判断电路13的输入端连接,所述循环比较电路12的输出端与所述极值寄存电路14的第一输入端连接,所述结束判断电路13的输出端与所述极值寄存电路14的第二输入端连接,所述极值寄存电路14的第一输出端与所述循环比较电路12的第二输入端连接;所述数据读入电路11用于接收数据的个数N,并根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述循环比较电路12用于循环比较接收到的所述数据的大小,所述结束判断电路13用于判断循环比较处理是否结束,所述极值寄存电路14用于输出比较运算的结果。
可选的,图26为另一种复用向量选择装置的结构图。如图26所示,该复用向量选择装置包括:数据读入电路11、循环比较电路12、结束判断电路13和极值寄存电路14,所述数据读入电路11的输出端与所述循环比较电路12的第一输入端连接,所述循环比较电路12的第一输出端与所述极值寄存电路14的第一输入端及所述结束判断电路13的输入端连接,所述结束判断电路13的输出端与所述极值寄存电路14的第二输入端连接,所述极值寄存电路14的第一输出端与所述循环比较电路12的第二输入端连接;所述数据读入电路11用于接收数据的个数N,并根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述循环比较电路12用于循环比较接收到的N个所述数据的大小,所述结束判断电路13用于判断循环比较处理是否结束,所述极值寄存电路14用于输出比较运算的结果。
具体的,上述数据读入电路11可以包括多个具有不同功能的数据读取单元,上述循环比较电路12可以包括多个数据比较处理单元,所述结束判断电路13可以包括多个不同功能的判断处理单元,所述极值寄存电路14可以包括极大值处理单元和极小值处理单元。可选的,上述结束判断电路13可以根据数据读入电路11接收到的数据个数N来判断循环比较处理是否结束。可选的,上述寄存器中多个存储区间的首地址可以是寄存器中所有存储区间中的任意一个存储区间对应的地址。可选的,上述数据可以为浮点数,数据读入电路11读入数据的个数可以为N。可选的,上述不同功能的数据读取单元的输入端口可以有一个或多个,每个数据读取单元的每个输入端口的功能可以不相同,输出端口也可以有一个或多个,每个数据读取单元的每个输出端口的功能可以不相同,并且不同功能数据读取单元的电路结构可以不相同。可选的,上述多个数据比较处理单元可以包括多个具有相同功能的比较处理单元。
需要说明的是,每个比较处理单元的输入端口可以有多个,每个输入端口的功能可以不相同,并且每个比较处理单元的输出端口也可以有多个,每个输出端口的功能可以不相同,但是,不同比较处理单元的输入端口的功能可以相同,也可以不相同,不同比较处理单元的输出端口的功能可以相同,也可以不相同,并且不同功能的比较处理单元的电路结构可以不同,也可以相同。可选的,每个判断处理单元的输入端口可以有一个或多个,每个输入端口的功能可以相同,也可以不相同,每个判断处理单元的输出端口也可以有一个或多个,每个输出端口的功能可以相同,也可以不相同。可选的,极大值处理单元和极小值处理单元的输入端口均可以有多个,每个输入端口的功能可以不相同,并且极大值处理单元和极小值处理单元的输出端口也均可以有多个,每个输出端口的功能可以不相同。
可选的,所述循环比较电路12中包括功能选择模式输入端口,用于接收输入的功能选择模式信号。可选的,所述功能选择模式信号用于确定复用向量选择装置处理的数据的位宽。
可选的,功能选择模式信号可以有多种,不同功能选择模式信号对应的复用向量选择装置可以处理不同位宽的数据。
本实施例提供的一种复用向量选择装置,通过数据读入电路可以根据寄存器中多个存储区间的首地址和数据的个数读入数据,循环比较电路循环比较数据读入电路读入的多个数据,当比较完多个数据时,结束判断单元的结果为是,并通过极值寄存电路输出比较运算结果,从而可以对多个数据进行循环比较,得到其中的极大值和极小值,以节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
图27为另一实施例提供的一种数据读入电路的具体结构示意图,如图27所示,所述数据读入电路11,包括:地址计数器111和标量数据读取单元112,所述地址计数器111的输出端与所述标量数据读取单元112的输入端连接;所述地址计数器111用于接收所述数据的个数N,根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,并累加记录比较运算时寄存器中存储区间对应的地址移位数值,所述标量数据读取单元112用于根据每一次比较运算时当前寄存器中存储区间的地址读取一个所述数据输入到所述循环比较电路。
具体的,上述地址计数器111中预先存储的初始值可以为寄存器中存储区间的首地址A,地址计数器111中记录的数值可以为每一次比较运算时读取的数据对应的寄存器存储地址,与上一次比较运算时读取的数据对应的存储地址之差的累加数据。可选的,每一次比较运算时,标量数据读取单元112可以读取地址计数器读入一个的数据。可选的,一个寄存器中存储区间可以存储一个数据。需要说明的是,每一次比较运算时,标量数据读取单元112可以读取一个数据进行比较运算。
本实施例提供的一种复用向量选择装置,通过地址计数器获得每一次比较运算时读取的是对应的寄存器中存储区间,与上一次比较运算时读取的数据对应的存储地址之差的累加数据,通过标量数据读取单元读取地址计数器读入的每一个数据,并通过结束判断电路判断是否满足循环比较运算结束的条件,满足循环比较运算结束的条件时,得到N个数据中的最大值和最小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,继续参见图27,复用向量选择装置包括所述地址计数器111,该地址计数器111包括:数据个数输入端口1111,数据输入端口1112,地址计数数值输出端口1113和数据输出端口1114,所述数据个数输入端口用于接收读入所述数据的个数N,所述数据输入端口用于根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述地址计数数值输出端口1113用于输出累加记录比较运算读入数据时,寄存器中存储区间对应的地址移位数据,所述数据输出端口1114用于输出读取的数据。
具体的,每一次比较运算时,数据输入端口1112可以读入一个寄存器中存储区间内存储的数据,读入的次数可以为数据的个数N,并且地址计数器111第一次读入的数据可以为寄存器中存储区间的首地址A对应的数据。可选的,地址计数数值输出端口1113可以将地址计数单元111累加记录的地址移位数据输入到结束判断电路13中。可选的,在每一次比较运算时,通过数据输出端口1114可以将读取的数据输入到标量数据读取单元112中,输出的次数可以为数据的个数N。
本实施例提供的一种复用向量选择装置,通过地址计数器获得每一次比较运算时读取的数据对应的寄存器存储地址,与上一次比较运算时读取的数据对应的存储地址之差的累加数据,并通过结束判断电路判断是否满足循环比较运算结束的条件,满足循环比较运算结束的条件时,得到N个数据中的最大值和最小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,继续参见图27,复用向量选择装置包括所述标量数据读取单元112,该标量数据读取单元112包括:逻辑信号输入端口1121,数据读取端口1122和数据输出端口1123,所述逻辑信号输入端口1121用于接收所述结束判断电路13的判断结果,所述数据读取端口1122用于读取每一次比较运算时所述地址计数器111读入的所述浮点数,所述数据输出端口1123用于将读取的所述数据输入到所述循环比较电路12中。
具体的,数据读取端口1122读取数据的次数可以等于数据的个数N。可选的,每一次运算时,数据输出端口1123可以输出一个寄存器中存储区间内存储的一个数据,输出的次数可以为N次。
需要说明的是,上述结束判断电路13的判断结果可以为高电平信号,还可以为低电平信号。如果逻辑信号输入端口1121接收到的是结束判断电路13输出的低电平信号,则标量数据读取单元112可以继续读取地址计数器111读入的数据,并将读取的数据输入到循环比较电路12继续进行数据比较运算,直到逻辑信号输入端口1121接收到的是高电平信号为止,循环比较运算结束。
本实施例提供的一种复用向量选择装置,通过标量数据读取单元根据寄存器中存储区间的首地址依次读取每一个数据,并将读取的数据输出到循环比较电路进行比较运算,从而可以得到N个数据中的最大值和最小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
图28为另一实施例提供的一种数据读入电路的具体结构示意图,如图28所示,所述数据读入电路11,包括:数据读取单元111和标量寄存器阵列112,所述数据读取单元111的输出端与所述标量寄存器阵列112的输入端连接;所述数据读取单元111用于所述数据的个数N,并根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述标量寄存器阵列112用于根据所述寄存器中N个存储区间的地址存储所述数据读取单元111读入的所述数据。
具体的,上述标量寄存器阵列112可以包括N个存储区间,并且存储区间的数量可以等于数据读取单元111接收到的数据个数N。可选的,每个存储区间可以存放一个数据,每一个存储区间可以存放接收到的任意一个数据。可选的,当N个数据全部被存储至标量寄存器阵列112中时,才可以进行下一电路的处理。需要说明的是,数据读取单元111可以根据根据寄存器中N个存储区间的首地址A依次将N个数据读入。
本实施例提供的一种复用向量选择装置,数据读取单元可以接收所述数据的个数,并根据寄存器中N个存储区间的首地址和所述数据的个数读入所述数据,通过标量寄存器阵列接收数据读取单元输入数据,通过标量寄存器阵列按照存储区间的首地址依次将接收到的数据存放至存储区间中,从而使得每一个存储区间存放一个数据,以便后续循环比较运算时,每一次比较运算可以接收到一个数据进行比较运算,不断循环,直到结束循环比较,从而可以对N个数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,继续参见图28,复用向量选择装置包括所述数据读取单元111,该数据读取单元111包括:数据输入端口1111,数据个数输入端口1112和数据输出端口1113,所述数据输入端口1111用于根据寄存器中N个存储区间的首地址和所述数据的个数N读入所述数据,所述数据个数输入端口1112用于接收读入的所述数据的个数N,所述数据输出端口1113用于输出读入的所述数据。
需要说明的是,若寄存器中的所有存储区间均有编号,例如,0,1,2,3,……,则存储区间的首地址A可以为0。可选的,上述N可以为任意正整数,N的具体数值可以等于数据读取单元111接收到的数据个数。可选的,数据个数输入端口1112可以接收数据读取单元111读入的数据的个数。可选的,根据存储区间的首地址,数据输出端口1113每一次可以输出一个数据,并且输出数据的次数可以等于数据的个数N。
本实施例提供的一种复用向量选择装置,通过数据读取单元可以接收所述数据的个数,并根据寄存器中N个存储区间的首地址和所述数据的个数读入所述数据,从而可以对N个数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,该复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,继续参见图28,复用向量选择装置包括所述标量寄存器阵列112,该标量寄存器阵列112包括:数据输入端口1121,数据输出端口1122和清空存储区间数量输出端口1123,所述数据输入端口1121用于接收所述数据,所述数据输出端口1122用于输出寄存器中每一个存储区间内存储的所述数据,所述清空存储区间数量输出端口1123用于输出所述标量寄存器阵列中,当前寄存器中被清空的存储区间的数量。
可选的,参见图29,30和31所示复用向量选择装置的具体结构示意图,复用向量选择装置包括所述标量寄存器阵列112,该标量寄存器阵列112包括:数据输入端口1121和数据输出端口1122,所述数据输入端口1121用于接收所述数据,所述数据输出端口1122用于输出寄存器中每一个存储区间内存储的所述数据。
具体的,上述数据输入端口1121可以接收N个数据,其中,每一次可以接收一个数据,每一次还可以接收N个数据,但是每一次只能输出一个存储区间中的数据,输出数据的次数可以等于数据输入端口1121接收到的数据的个数N。可选的,一个存储区间可以存储一个数据。可选的,标量寄存器阵列112中的存储区间的数量可以等于数据读取单元111接收到的数据的个数N。可选的,清空存储区间数量输出端口1123可以输出当前标量寄存器阵列112中未存储数据的存储区间数量。
需要说明的是,每一次比较运算,标量寄存器阵列112中都会清除一个数据,相当于当前标量寄存器阵列112中存储的数据就会少一个,直到比较运算结束,标量寄存器阵列112中存储的数据会被清空。
本实施例提供的一种复用向量选择装置,根据通过标量寄存器阵列可以依次存放接收到的N个数据,进行比较处理时,每一次可以输出一个存储区间中的数据进行比较处理,循环比较多次,从而可以得到N个数据中的极大值和极小值,节省运算时间;另外,该复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
图27至图31分别为另一实施例提供的一种循环比较电路的具体结构示意图,如图27至图31所示,所述循环比较电路12包括:第一复用比较器121和第二复用比较器122,所述第一复用比较器121用于对两个数据进行比较,得到最大的数据,所述第二复用比较器122用于对两个数据进行比较,得到最小的数据。
需要说明的是,第一复用比较器121和第二复用比较器122之间可以有连接关系,还可以没有连接关系,可选的,第一复用比较器121和第二复用比较器122的电路结构可以相同。其中,第一复用比较器121和第二复用比较器122的具体结构示意图如图3所示。在比较运算时,可以通过第一复用比较器121和第二复用比较器122对接收到的数据进行多次循环比较处理,其中,第一复用比较器121和第二复用比较器122进行比较运算的次数均可以等于数据读入电路接收到的数据的个数,但是,第二复用比较器122进行比较运算的次数还可以不等于数据读入电路接收到的数据的个数。同时,第一复用比较器121和第二复用比较器122均可以采用并行处理的方式对数据进行比较处理。可选的,第一复用比较器121进行比较运算的总次数与第二复用比较器122进行比较运算的总次数可以相等,还可以不相等。可选的,每一次比较处理第一复用比较器121和第二复用比较器122均可以接收同一个数据进行比较运算。可选的,复用向量选择装置可以通过第一复用比较器121进行极大值比较运算,通过第二复用比较器122进行极小值比较运算。
本实施例提供的一种复用向量选择装置,通过第一复用比较器和第二复用比较器可以对接收到的N个数据进行多次比较,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据第一复用比较器和第二复用比较器,接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,继续参见图27,复用向量选择装置包括所述第一复用比较器121和第二复用比较器122,该第一复用比较器121或第二复用比较器122包括:判断结果输出端口(unordered)1210,功能选择模式信号输入端口(mode)1211,数据输入端口(Mi)1212,调用极值输入端口1213,极大值输出端口1214,极小值输出端口1215和判断信号输出端口1216,所述功能选择模式信号输入端口(mode)1211用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述浮点数输入端口(Mi)1212用于接收输入的所述浮点数,所述调用极值输入端口1213用于接收每一次数据比较运算结束后所述极值寄存电路14中存储的极值,所述极大值输出端口1214用于输出每一次数据比较运算后的极大值,所述极小值输出端口1215用于输出每一次数据比较运算后的极小值,所述判断信号输出端口1216用于输出是否停止采用所述第二复用比较器122进行比较运算的逻辑信号。
具体的,上述功能选择模式信号输入端口(mode)1211可以接收不同的功能选择模式信号。可选的,不同的功能选择模式信号可以有多种,不同功能选择模式信号对应于第一复用比较器121和第二复用比较器122可以处理不同位宽的数据。可选的,浮点数输入端口(Mi)1212可以接收数据读入电路输出的浮点数。可选的,上述极值可以包括极大值和极小值。可选的,若第一复用比较器121通过数据输入端口(Mi)1212接收输入的数据,第一复用比较器121通过判断信号输出端口1216输出高电平信号,表示接收到的数据大于极大值寄存单元中存储的值,则接收到的数据必然大于当前极大值寄存单元中存储的值,此时,复用向量选择装置可以判断出不需要第二复用比较器122对待处理的数据进行比较处理,第二复用比较器122可以停止处理比较运算,若第一复用比较器121通过判断信号输出端口1216输出低电平信号,则需要继续通过第二复用比较器122进行比较处理。
另外,若第一复用比较器121通过浮点数输入端口(Mi)1212接收输入的数据,通过判断信号输出端口1216输出高电平信号,表示接收到的数据小于极小值寄存单元中存储的值,则接收到的数据必然小于当前极小值寄存单元中存储的值,此时,复用向量选择装置可以判断出不需要第二复用比较器122对待处理的数据进行比较处理,第二复用比较器122可以停止处理比较运算,若第一复用比较器121通过判断信号输出端口1216输出低电平信号,则需要继续通过第二复用比较器122进行比较处理。
需要说明的是,若数据读入电路11读取的N个数据中不存在非数值,则第一复用比较器121和第二复用比较器122的判断结果输出端口(unordered)1210可以为悬空状态,若数据读入电路11读取的N个数据中存在非数值时,则第一复用比较器121和第二复用比较器122的判断结果输出端口(unordered)1210可以输出高电平信号,同时,极大值输出端口1214和极小值输出端口1215输出的是非数值,该情况可以表征数据读入电路11读取的N个数据中存在非数值,即存在错误数据。可选的,极大值输出端口1214,极小值输出端口1215可以为悬空状态。
同时,如图29至图31所示,复用向量选择装置中的所述第一复用比较器121或第二复用比较器122还包括:运算次数输出端口1217,所述运算次数输出端口1217用于输出所述第一复用比较器121或第二复用比较器122的比较运算的总次数。
具体的,运算次数输出端口1217可以输出第一复用比较器121或第二复用比较器122进行比较运算的次数。可选的,当极大值输出端口1214,极小值输出端口1215以及运算次数输出端口1217均处于悬空状态时,可以表征为上述三个端口在电路中无作用。
需要说明的是,如果比较运算过程中第一复用比较器121或第二复用比较器122的三个判断结果输出子端口agtb,altb,aeqb进行或逻辑运算,得到的结果为一个高电平信号,可以表征当次比较运算结束,通过运算次数输出端口1217将或逻辑运算结果输出。
本实施例提供的一种复用向量选择装置,通过第一复用比较器和第二复用比较器可以对接收到的N个数据进行多次比较,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值;同时,复用向量选择装置能够根据第一复用比较器或第二复用比较器输出的判断信号提前关闭其中一个复用比较器,有效减少复用向量选择装置内部的比较器调用次数,节省运算时间;另外,复用向量选择装置能够根据第一复用比较器和第二复用比较器,接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,可以有效减小复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
继续参见图27,图27为另一实施例提供的一种复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述结束判断电路13,该结束判断电路13包括:判断单元131,所述判断单元131用于判断地址计数器累加记录的寄存器存储区间对应的地址移位数值,与比较运算寄存器总共需要的地址移位数值的大小。
需要说明的是,当地址计数器113中累加记录数据,与比较完所有数据总共需要的地址移位数值相等时,判断单元131的判断结果可以为是,结束循环比较运算。此时,该情况可以表示寄存器中存储区间内存储的数据已经全部进行了比较运算,标量数据读取单元112不能继续读取地址计数器111读入的数据。
本实施例提供的一种复用向量选择装置,通过判断单元对地址计数器累加记录的寄存器存储区间对应的地址移位数值,与比较运算寄存器总共需要的地址移位数值进行比较,如果比较结果为相等,则判断单元的判断结果可以为是,结束循环比较运算,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算结果;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,继续参见图27,图27为另一种复用向量选择装置的具体结构示意图,复用向量选择装置包括所述判断单元131,该判断单元131包括:地址计数数值输入端口1311和判断结果输出端口1312,地址计数数值输入端口1311用于接收地址计数器111输出的累加记录比较运算读入数据时,寄存器存储区间对应的地址移位数据,所述判断结果输出端口1312用于输出累加记录比较运算读入数据时,寄存器存储区间对应的地址移位数据,与比较N个数据寄存器总共需要的地址移位数值的比较结果。
需要说明的是,若地址计数器111中累加记录比较运算读入数据时,寄存器存储单元对应的地址移位数据,等于比较N个数据寄存器总共需要的地址移位数值时,判断单元131通过判断结果输出端口1332输出高电平信号,则表示循环比较运算结束,可以指示极值寄存电路14输出运算结果。若判断单元131通过判断结果输出端口1332输出低电平信号,则可以指示标量数据读取单元112读取数据输入到循环比较电路12,继续进行比较运算。
本实施例提供的一种复用向量选择装置,通过判断单元可以指示极值寄存电路输出运算结果,并可以指示标量数据读取单元112读取数据输入到循环比较电路,从而继续进行比较运算,当判断单元向极值寄存电路输出高电平信号时,输出最终的极值结果,比较运算结束,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
继续参见图28,图28为另一实施例提供的一种复用向量选择装置的具体结构示意图,复用向量选择装置包括所述结束判断电路13,该结束判断电路13包括:判断单元133,所述判断单元133用于判断所述标量寄存器阵列中,寄存器中的存储区间存储的数据是否已经被清空。
具体的,判断单元133可以根据标量寄存器阵列112中当前被清空的存储区间数量与数据读入单元111接收到的数据个数N的大小,得到判断结果。需要说明的是,当标量寄存器阵列112中当前存储的数据被清空时,判断单元133的判断结果可以为是,结束循环比较运算。
示例性的,数据读入电路11中有四个存储单元,分别为A[0],A[1],A[2],A[3],若上一次比较运算标量寄存器阵列112将A[2]中存储的数据输出到第一复用比较器121和第二复用比较器122,此时,标量寄存器阵列112中还有一个存储单元A[3]中存储有数据,标量寄存器阵列112中存储的数据未被清空;当前比较运算时标量寄存器阵列112将A[3]中存储的数据输出到第一复用比较器121和第二复用比较器122,此时,标量寄存器阵列112中存储的数据已经被清空了。
本实施例提供的一种复用向量选择装置,比较标量寄存器阵列中当前存储区间未存储数据的数量与数据读入单元接收到的数据个数的大小关系,如果比较结果为相等,则判断单元的判断结果可以为是,结束循环比较运算,从而可以对N个数据进行循环比较,得到其中的极大值和极小值,节省运算结果;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
可选的,继续参见图29,30,31,图29,30,31分别为另一实施例提供的一种复用向量选择装置的具体结构示意图,复用向量选择装置包括所述结束判断电路13,该结束判断电路13包括:计数单元131和判断单元132,所述计数单元131的输出端口与所述判断单元132的输入端口连接;所述计数单元131用于累加记录循环比较电路12进行比较运算的总次数,所述判断单元132用于比较所述循环比较电路12的运算次数与数据读入单元接收到的所述数据个数N的大小。
需要说明的是,若计数单元131中记录的数据用counter表示,循环比较电路12中的第一复用比较器121或第二复用比较器122每一次比较运算结束后,则计数单元131的记录数据可以在上一次比较运算结束后得到的counter数值的基础上加1,直到counter的值等于数据读入电路11接收到的数据个数N为止,判断单元132的判断结果为是,结束循环比较运算。其中,counter的初始值可以等于0。可选的,计数单元131中记录的数值可以等于第一复用比较器121进行比较运算的总次数,还可以等于第二复用比较器122进行比较运算的总次数。
可选的,如图29,30,31所示分别为一种复用向量选择装置的具体结构示意图,复用向量选择装置包括所述计数单元131,该计数单元131包括:运算次数输入端口1311和计数数值输出端口1312,所述运算次数输入端口1311用于累加记录所述第一复用比较器121或第二复用比较器122的比较运算总次数,计数数值输出端口1312用于输出记录的所述第一复用比较器121或第二复用比较器122的比较运算的总次数。
需要说明的是,每一次比较运算结束后,计数单元131的数值会在上一次比较运算结束后得到的比较运算总次数的基础上加1。
本实施例提供的一种复用向量选择装置,通过计算单元累加记录循环比较电路进行比较运算处理的总次数,从而根据记录的数据判断是否可以结束比较运算,输出最终的比较结果;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,继续参见图8,其中,所述判断单元133,包括:清空存储区间数量输入端口1331和判断结果输出端口1332,所述清空存储区间数量输入端口1331用于接收所述标量寄存器阵列112中,当前寄存器中被清空的存储区间的数量,所述判断结果输出端口1332用于输出所述标量寄存器阵列112中,当前寄存器中被清空的存储区间的数量,与所述数据读取单元111接收的数据个数N的比较结果。
需要说明的是,若标量寄存器阵列112中当前寄存器中被清空的存储区间的数量等于数据读取单元111接收的数据个数N时,判断单元133通过判断结果输出端口1332输出高电平信号,指示极值寄存电路14输出运算结果。
本实施例提供的一种复用向量选择装置,通过判断单元可以指示极值寄存电路输出运算结果,并可以指示标量寄存器阵列向循环比较电路输入数据,从而进行循环比较运算,当判断单元向极值寄存电路输出高电平信号时,输出最终的极值结果,比较运算结束,从而可以对N个数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
可选的,继续参见图29,30,31,图29,30,31分别为另一实施例提供的一种判断单元的具体结构示意图,所述判断单元132,包括:运算次数输入端口1321和判断结果输出端口1322,所述计数数值输入端口1321用于接收所述计算单元131中记录的数值,所述判断结果输出端口1322用于输出所述循环比较运算的总次数与数据读入电路11接收到的所述数据个数N的比较结果。
需要说明的是,循环比较运算的次数可以等于计算单元131中记录的数值。若循环比较运算的总次数等于数据读入电路11接收到的所述数据个数N时,则判断单元132的判断结果为是,判断结果输出端口1322可以输出高电平信号,结束比较运算。若循环比较运算的总次数小于数据读入电路11接收到的所述数据个数时,则判断单元132的判断结果为否,判断结果输出端口1322可以输出低电平信号,进一步,需要通过循环比较电路12继续进行比较运算。
本实施例提供的一种复用向量选择装置,根据计算单元记录的数据判断是否可以结束比较运算,如果判断结果为否,则继续进行比较运算,否则,结束比较运算得到最终的比较结果,该判断单元可以指示极值寄存电路输出最终的结果,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
继续参见图28至图31,图28至图31分别为另一实施例提供的一种复用向量选择装置的具体结构示意图,复用向量选择装置包括所述极值寄存单元14,该极值寄存单元14包括:极大值寄存单元141和极小值寄存单元142;所述极大值寄存单元141用于存储所述第一复用比较器121每一次比较运算后得到的极大值,所述极小值寄存单元142用于存储所述第二复用比较器122每一次比较运算后得到的极小值。
需要说明的是,极大值寄存单元141和极小值寄存单元142之间没有连接关系,可以独立比较运算,两者之间无相互影响。可选的,每一次第一复用比较器121比较运算结束后得到的极大值可以相同,也可以不相同。可选的,每一次第二复用比较器122比较运算结束后得到的极小值可以相同,也可以不相同。其中,极大值寄存单元141中存储的最大初始值可以等于负无穷,极小值寄存单元142中存储的最小初始值可以等于正无穷。如果判断单元13的判断结果为是,则极大值寄存单元141和极小值寄存单元142可以分别输出极大值和极小值,循环比较运算结束。可选的,当每一次比较运算时,如果第一复用比较器121接收到的待处理的比较大于极大值寄存单元中存储的比较时,则第一复用比较器121可以通过判断信号输出端口127输出高电平信号到第二复用比较器122,表征复用向量选择装置停止使用第二复用比较器122对待处理的比较进行比较运算处理。
本实施例提供的一种复用向量选择装置,通过极大值寄存单元和极小值寄存单元存储每一次比较运算得到的运算结果,进行循环比较,如果判断单元判断结果为是时,复用向量选择装置可以通过极大值寄存单元和极小值寄存单元输出N个数据中最终的极大值和极小值,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,继续参见图28至图31,其中,所述极大值寄存单元141,包括:极大值调用输出端口(Max_r)1411,极大值输入端口1412,极大值输出端口1413和第一判断信号输入端口1414,所述极大值调用输出端口(Max_r)1411用于每一次比较运算时,输出所述极大值寄存单元141中存储的极大值,所述极大值输入端口1412用于接收每一次比较运算后得到的极大值,所述极大值输出端口1413用于循环比较结束后输出N个所述数据中的极大值,所述第一判断信号输入端口1414用于接收所述结束判断电路13输出的逻辑判断信号。
具体的,当循环比较电路12进行比较运算时,可以通过极大值调用输出端口(Max_r)1411将极大值寄存单元141当前存储的极大值,输出到循环比较电路12中进行比较运算。可选的,每一次比较运算结束后可以通过极大值输入端口1412接收本次比较运算得到的极大值,也可以不接收本次比较运算得到的极大值。如果不接收本次比较运算得到的极大值时,则可以表示本次比较运算得到的极大值,与上一次比较运算得到的极大值相等。
需要说明的是,当结束判断电路13向极大值寄存单元141输入的逻辑判断信号为高电平信号时,可以表征循环比较运算结束,并且可以通过极大值输出端口1413输出最终的比较结果极大值。可选的,结束判断电路13向极大值寄存单元141输入的逻辑判断信号可以为高电平信号,还可以为低电平信号。如果第一判断信号输入端口1414接收的是高电平信号,则极大值输出端口1413可以输出N个数据中的极大值,若第一判断信号输入端口1414接收的是低电平信号时,则极大值输出端口1413不会输出任何信号,此时,极大值输出端口1413可以为悬空状态。
本实施例提供的一种复用向量选择装置,通过极大值寄存单元存储每一次比较运算得到的运算结果,进行循环比较,如果判断单元向极大值寄存单元输出高电平信号时,复用向量选择装置可以通过极大值寄存单元输出N个数据中最终的极大值,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,继续参见图28至图31,其中,所述极小值寄存单元142,包括:极小值调用输出端口(Min_r)1421,极小值输入端口1422,极小值输出端口1423和所述第二判断信号输入端口1424,所述极小值调用输出端口(Max_r)1421用于每一次比较运算时,输出所述极小值寄存单元142中存储的极小值,所述极小值输入端口1422用于接收每一次比较运算后得到的极小值,所述极小值输出端口1423用于循环比较结束后输出N个所述数据中的极小值,所述第二判断信号输入端口1424用于接收所述结束判断电路13输出的逻辑判断信号。
具体的,当循环比较电路进行比较运算时,可以通过极小值调用输出端口(Min_r)1421,将极小值寄存单元142当前存储的极小值输出到循环比较电路12中,进行比较运算。可选的,每一次比较运算结束后可以通过极小值输入端口1422接收本次比较运算得到的极小值,也可以不接收本次比较运算得到的极小值。如果不接收本次比较运算得到的极小值时,则可以表示本次比较运算得到的极小值,与上一次比较运算得到的极小值相等。
需要说明的是,当判断单元向极小值寄存单元142输入高电平信号时,可以表征循环比较运算结束,并且可以通过极小值输出端口1423输出最终的比较结果极小值。可选的,结束判断电路13向极小值寄存单元142输入的逻辑判断信号可以为高电平信号,还可以为低电平信号。如果第二判断信号输入端口1424接收的是高电平信号,则极小值输出端口1423可以输出N个数据中的极小值,若第二判断信号输入端口1424接收的是低电平信号,则极小值输出端口1423不会输出任何信号,此时,极小值输出端口1423可以为悬空状态。
本实施例提供的一种复用向量选择装置,通过极小值寄存单元存储每一次比较运算得到的运算结果,进行循环比较,如果结束判断电路向极小值寄存单元输出高电平信号时,复用向量选择装置可以通过极小值寄存单元输出N个数据中最终的极小值,从而可以对N个待处理的数据进行循环比较,得到其中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能。
第三类复用向量选择装置
该复用向量选择装置可以通过如下实施例进行详细说明:
图32为一个实施例提供的一种复用向量选择装置的结构图。如图32所示,该复用向量选择装置包括:数据读入电路11、复用比较树电路12、极值寄存器电路13和结束判断电路14;其中,所述数据读入电路11的输出端与所述复用比较树电路12的第一输入端连接,所述复用比较树电路12的第一输出端与所述极值寄存器电路13的第一输入端连接,所述极值寄存器电路13的第一输出端与所述结束判断电路14的输入端,,所述结束判断电路的输出端与所述极值寄存器电路的第二输入端连接,所述极值寄存器电路的第二输出端与所述复用比较树电路12的第二输入端连接;所述数据读入电路11用于接收数据的个数N和寄存器中多个存储区间的首地址,并根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述复用比较树电路12用于多层循环比较接收到的多个所述数据的大小,所述极值寄存器电路13用于存储每一层循环比较得到的极值,所述结束判断电路14用于判断多层循环比较处理是否结束。
具体的,上述数据读入电路11可以包括多个具有不同功能的数据读入单元,上述复用比较树电路12可以包括多个复用比较器,所述极值寄存器电路13可以包括极大值处理单元和极小值处理单元。可选的,上述不同功能的数据读入单元的输入端口可以有一个或多个,每个数据读入单元的每个输入端口的功能可以不相同,输出端口也可以有一个或多个,每个数据读入单元的每个输出端口的功能可以不相同,并且不同功能数据读入单元的电路结构可以不相同。可选的,上述多个复用比较器的电路结构可以相同,每个复用比较器的输入端口和输出端口的功能均可以相同。
需要说明的是,极大值处理单元和极小值处理单元的输入端口均可以有多个,每个输入端口的功能可以不相同,并且极大值处理单元和极小值处理单元的输出端口也均可以有多个,每个输出端口的功能可以不相同。
可选的,所述复用比较树电路12中可以包括功能选择模式信号输入端Mode,用于接收输入的功能选择模式信号。可选的,所述功能选择模式信号用于确定数据选择器处理的数据的位宽。
可选的,功能选择模式信号可以有多种,不同功能选择模式信号对应的复用比较器可以处理不同位宽的数据。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
图33为一个实施例提供的另一种复用向量选择装置的结构图。如图33所示,该复用向量选择装置包括:数据读入电路11、选择电路12、复用比较树电路13、极值寄存器电路14和结束判断电路15;其中,所述数据读入电路11的输出端与所述选择电路12的第一输入端连接,所述选择电路12的输出端与所述复用比较树电路13的第一输入端连接,所述复用比较树电路13的输出端与所述极值寄存器电路14的第一输入端连接,所述极值寄存器电路14的第一输出端与所述选择电路12的第二输入端连接,所述极值寄存器电路14的第二输出端与所述结束判断电路15的输入端连接,所述结束判断电路15的输出端与所述极值寄存器电路14的第二输入端连接,所述极值寄存器电路14的第三输出端与所述复用比较树电路13的第二输入端连接;所述数据读入电路11用于接收数据的个数N和寄存器中多个存储区间的首地址,并根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述选择电路12用于选通循环比较运算复用比较树电路13接收的两个数据,所述复用比较树电路13用于多层循环比较接收到的多个所述数据的大小,所述极值寄存器电路14用于存储每一层循环比较得到的极值,所述结束判断电路15用于判断多层循环比较处理是否结束。
具体的,上述数据读入电路11可以包括多个具有不同功能的数据读入单元,上述选择电路12可以选通复用比较树电路13每一次比较运算接收到的两个数据是需要通过极值寄存器电路14输入,还是需要通过数据读入电路11输入。可选的,上述复用比较树电路13可以包括多个复用比较器,上述极值寄存器电路14可以包括极大值处理单元和极小值处理单元。可选的,上述不同功能数据读入单元的输入端口可以有一个或多个,每个数据读入单元的每个输入端口的功能可以不相同,输出端口也可以有一个或多个,每个数据读入单元的每个输出端口的功能可以不相同,并且不同功能数据读入单元的电路结构可以不相同。可选的,上述多个复用比较器的电路结构可以相同,每个复用比较器的输入端口和输出端口的功能均可以相同。
需要说明的是,极大值处理单元和极小值处理单元的输入端口均可以有多个,每个输入端口的功能可以不相同,并且极大值处理单元和极小值处理单元的输出端口也均可以有多个,每个输出端口的功能可以不相同。
可选的,所述复用比较树电路13中可以包括功能选择模式信号输入端Mode,用于接收输入的功能选择模式信号。
可选的,功能选择模式信号可以有多种,不同功能选择模式信号对应的复用比较器可以处理不同位宽的数据。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
图34为另一实施例提供的一种复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述数据读入电路11,该数据读入电路11包括:数据读取单元111和标量寄存器阵列112,所述数据读取单元111的输出端与所述标量寄存器阵列112的输入端连接;所述数据读取单元111用于接收所述数据的个数N和寄存器中多个存储区间的所述首地址,并根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述标量寄存器阵列112用于根据所述寄存器中多个存储区间的地址存储所述数据读取单元111读入的所述数据。
具体的,上述标量寄存器阵列112可以包括多个存储区间,并且存储区间的数量可以等于数据读取单元111接收到的数据个数N。可选的,每个存储区间可以存放一个数据,每一个存储区间可以存放接收到的任意一个数据。可选的,当N个数据全部被存储至标量寄存器阵列112中时,才可以进行下一电路的处理。需要说明的是,数据读取单元111可以根据寄存器中多个存储区间的首地址A依次将N个数据读入。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图34所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述数据读取单元111,该数据读取单元111包括:数据输入端口1111,数据个数和首地址输入端口1112和数据输出端口1113,所述数据输入端口1111用于根据寄存器中多个存储区间的所述首地址和所述数据的个数N读入所述数据,所述数据个数输入端口1112用于接收读入的所述数据的个数N和寄存器中多个存储区间的所述首地址,所述数据输出端口1113用于输出读入的所述数据。
需要说明的是,若寄存器中的所有存储区间均有编号,例如,0,1,2,3,……,则存储区间的首地址A可以为0。可选的,上述N可以为任意正整数,N的具体数值可以等于数据读取单元111接收到的数据个数。可选的,数据个数输入端口1112可以接收数据读取单元111读入的数据的个数。可选的,根据存储区间的首地址,数据输出端口1113每一次可以输出一个数据,并且输出数据的次数可以等于数据的个数N。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图34所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述标量寄存器阵列112,该所述标量寄存器阵列112包括:数据输入端口1121,第一数据输出端口1122,第二数据输出端口1123和剩余数据输出端口1124,所述数据输入端口1121用于接收N个所述数据,所述第一数据输出端口1122用于每一次比较运算时输出每一个寄存器存储区间内存储的所述数据,所述第二数据输出端口1123用于输出每一个寄存器存储区间中存储的所述数据,剩余数据输出端口1124用于输出比较运算时寄存器存储区间内存储的剩余所述数据。
具体的,上述数据输入端口1121可以接收N个数据,其中,每一次可以接收一个数据,每一次还可以接收N个数据,但是每一次只能输出一个寄存器存储区间内存储的数据,输出数据的次数可以等于N。可选的,一个寄存器存储区间内可以存储一个数据。可选的,标量寄存器阵列112中的寄存器存储区间数量可以等于数据读取单元111接收到的数据个数N。
需要说明的是,复用比较树电路13进行循环比较运算时,如果第一数据输出端口1122和第二数据输出端口1123为悬空状态,则剩余数据输出端口1124可以向最值寄存器电路13输入数据。每一次循环比较运算时,若剩余数据输出端口1124为悬空状态,则第一数据输出端口1122和第二数据输出端口1123可以分别向极值寄存器电路13输入一个数据,并且输入的这两个数据为标量寄存器阵列112中不同寄存器存储区间中的存储的数据,两个不同寄存器存储区间对应的存储地址可以是相邻的,还可以是不相邻的。可选的,剩余数据输出端口1124可以输出复用比较树电路12进行循环比较运算时,标量寄存器阵列112中寄存器存储区间中存储的剩余的所述寄存器。另外,当标量寄存器阵列112中存储的数据数量为奇数时,在循环比较运算过程中,上述剩余数据输出端口1124在最后一次比较运算后才可以不为悬空状态,此时,会输出标量寄存器阵列112中剩余的一个数据。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对N个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图34所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述第一级复用比较器121,该第一级复用比较器121包括:复用比较器1211,所述复用比较器1211用于对所述标量寄存器阵列112中存储的数据进行循环比较运算,得到极大值向量和极小值向量。
具体的,复用比较器1211可以进行第一层循环比较运算,每一次可以对两个数据进行比较运算,得到两个数据中的极大值和极小值。需要说明的是,若数据读入电路11接收到的数据个数为N,且N为偶数,则复用比较器1211可以进行第一层循环比较运算的次数等于N/2,若N为奇数,则复用比较器1211可以进行循环比较运算的次数等于round(N/2),round(*)可以表示对实数取整。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图34所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述第二级复用比较器122,该第二级复用比较器122包括:第一复用比较器1221和第二复用比较器1222,所述第一复用比较器1221用于对两个数据进行比较得到极大值,所述第二复用比较器1222用于对两个数据进行比较得到极小值。
需要说明的是,第一复用比较器1221和第二复用比较器1222均可以进行多层循环比较运算,每一层循环比较运算的比较结果均可以存储至极值寄存器电路13中,极值寄存器电路13对每一层循环比较结果均有对应编号。可选的,第一复用比较器1221进行循环比较运算的层数可以等于第二复用比较器1222进行循环比较运算的层数,并且每一层比较运算的总次数可以相等。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
另一实施例提供的一种复用比较树电路,所述复用比较树电路12包括:第一级复用比较器121和第二级复用比较器122,所述第一级复用比较器121用于对两个数据进行比较得到极值,所述第二级复用比较器122用于对两个数据进行比较得到极值。
具体的,第一级复用比较器121和第二级复用比较器122均可以对多个数据进行多层循环比较运算。可选的,第一级复用比较器121可以对标量寄存器阵列112中存储的所有数据进行第一层循环比较运算,每一次比较运算得到的结果可以输入至极值寄存器电路13中存储,其中,极值寄存器电路13可以对每一层循环比较结果进行对应的编号。示例性的,第一层循环比较结果的编号对应为1,第二层循环比较结果的编号对应为2,依次编号,直到第M层循环比较结果的编号对应为M。另外,每一次比较运算时,第一级复用比较器121可以接收标量寄存器阵列112输入的两个不同存储区间中存储的数据进行比较,得到两个数据中的极大值和极小值,并将极大值和极小值存放至极值寄存器电路13中,同时,标量寄存器阵列112存储的这两个数据的存储区间会被清空,下一次比较运算时,标量寄存器阵列112可以将另外两个不同存储区间中存储的数据输入至第一级复用比较器121,继续进行比较运算,直到标量寄存器阵列112中存储的数据全部比较完为止,第一级复用比较器121结束循环运算。
需要说明的是,每一次比较运算后第一级复用比较器121可以得到一个极值存放至极值寄存器电路13中,从第一次比较运算开始,如果第一级复用比较器121连续两次比较运算,从而可以向极值寄存器电路13输入两个极值,并且这两个极值均为第一层循环比较结果,对应编号均为1,此时,第二级复用比较器122可以读取极值寄存器电路13中存储的这两个第一层循环比较结果进行第二层循环比较运算,也就是说,只要极值寄存器电路13存储的第一层循环比较结果为两个数据时,第二级复用比较器122可以自动读取极值寄存器电路13中存储的这两个第一层循环比较结果进行第二层循环比较运算。可选的,第二级复用比较器122处理的第一层循环比较结果均可以称为第二层循环比较运算,第二层循环比较运算得到的结果可以称为第二层循环比较结果,第二层循环比较结果依然可以存储至极值寄存器电路13中,依次进行多层循环比较运算,下一层循环比较运算可以对上一层循环比较结果进行处理,并且从第二层循环比较运算开始,需要每一层循环比较运算结束后,该层运算的全部结果存储至极值寄存器电路13中才可以通过第二级复用比较器122进行下一层循环比较运算,直到某一层循环比较运算的结果为一个数据为止,多层循环比较运算结束。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图34所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述复用比较器1211,第一复用比较器1221和第二复用比较器1222,该复用比较器1211,第一复用比较器1221或第二复用比较器1222包括:功能选择模式信号输入端口(Mode)1221a,第一数据输入端口1221b,第二数据输入端口1221c,极大值输出端口1221d和极小值输出端口1221e,所述功能选择模式信号输入端口(Mode)1221a用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输入端口1221b用于接收输入的所述第一数据,所述第二数据输入端口1221c用于接收输入的所述第二数据,所述极大值输出端口1221d用于输出每一次数据比较运算后的极大值,所述极小值输出端口1221e用于输出每一次数据比较运算后的极小值。
具体的,上述功能选择模式信号输入端口(Mode)1221a可以接收不同的功能选择模式信号。可选的,不同的功能选择模式信号可以有多种,不同功能选择模式信号对应于复用选择器1211,第一复用比较器1221和第二复用比较器1222可以处理不同位宽的数据。可选的,每一次比较运算时,第一数据输入端口1221b和第二数据输入端口1221c可以接收标量寄存器阵列112中存储的两个不同数据,还可以接收极值寄存器电路13中存储的两个不同数据。
可选的,上述复用选择器1211,第一复用比较器1221和第二复用比较器1222的电路结构均可以相等,电路结构图如图5所示。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图34所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述极值寄存器电路13,该极值寄存器电路13包括:极大值寄存器堆131和极小值寄存器堆132,所述极大值寄存器堆131用于存储多层循环比较运算得到的极大值,所述极小值寄存器堆132用于存储多层循环比较运算得到的极小值。
需要说明的是,极大值寄存器堆131可以存储第一级复用比较器121每一次比较运算得到的极大值,还可以存储第二级复用比较器122每一层循环比较运算得到的极大值。可选的,极大值寄存器堆131内的存储区间数量可以根据用户需要设定,并且极大值寄存器堆131内可以存储多层循环比较运算的结果。示例性的,若数据读入电路11接收到的数据个数为N,则循环比较运算的总层数可以等于log2N。可选的,复用比较树电路12每一层循环比较得到的极大值比较结果对应的层数可以等于第二复用比较器1222进行循环比较运算的总层数加一。示例性的,若第二复用比较器1222进行第一层循环比较运算,则该层循环比较运算得到的循环比较结果为复用比较树电路12第二层的循环比较结果。
可选的,极小值寄存器堆131可以存储第一级复用比较器121每一次比较运算得到的极小值,还可以存储第二级复用比较器122每一层循环比较运算得到的极小值。可选的,极小值寄存器堆132内的存储区间数量可以根据用户需要设定,并且极小值寄存器堆132内可以存储多层循环比较运算的结果。示例性的,若数据读入电路11接收到的数据个数为N,则循环比较运算的总层数可以等于log2N。可选的,复用比较树电路12每一层循环比较运算得到的极小值比较结果对应的层数可以等于第二复用比较器1222进行循环比较运算的总层数加一。示例性的,若第二复用比较器1222进行第一层循环比较运算,则该层循环比较运算得到的循环比较结果为复用比较树电路12第二层的循环比较结果。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图34所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述极大值寄存器堆131,该极大值寄存器堆131包括:第一极大值输出端口1311,第二极大值输出端口1312,极大值输入端口1313,第三极大值输出端口1314,比较层级输出端口1315,判断结果输入端口1316,剩余数据输入端口1317和极大值输入端口1318,所述第一极大值输出端口1311用于输出第一极大值,所述第二极大值输出端口1312用于输出第二极大值,所述极大值输入端口1313用于接收下一层比较运算得到的极大值,所述第三极大值输出端口1314用于输出多个所述数据中的极大值,所述比较层级输出端口1315用于输出复用比较树电路12当前进行循环比较运算的层数,所述判断结果输入端口1316用于接收逻辑判断信号,所述剩余数据输入端口1317用于接收比较运算时所述寄存器存储区间内存储的剩余所述数据,所述极大值输入端口1318用于接收每一次数据比较运算后得到的极大值。
具体的,上述极大值输入端口1313可以接收第一复用比较器1221循环比较运算输出的极大值结果。需要说明的是,若第一复用比较器1221第一层比较运算的总次数为N/2,得到的第一层循环比较的结果中数据的个数可以为N/2,则下一层比较运算的总次数可以为N/4,依次类推,直到最后一层循环比较运算得到的比较结果中数据的个数等于1为止,结束多层循环比较运算,此时,极大值寄存器堆131中存储有一个数据。另外,当N=2^n(n可以等于任意实数)时,每一层比较运算的总次数可以等于当层比较运算得到的比较结果中数据的个数,并且每一层比较运算的总次数可以等于前一层比较运算次数的1/2;当N为奇数或者非2^n的偶数时,每一层比较运算的总次数可以不等于前一层比较运算次数的1/2。可选的,第二复用比较器1222可以对上一层比较结果中的任意两个极大值进行比较运算,还可以对复用比较器1211相邻两次比较运算得到的结果进行比较运算,此时,极大值寄存器堆131中存储的正在进行比较运算的这两个极大值的对应存储区间会被清空,并且当层比较运算得到的比较结果可以存储到清空的这两个存储区间,还可以存储到其它未存储数据的寄存器存储区间中。可选的,判断结果输入端口1316用于接收结束判断电路14输出的逻辑判断信号。
需要说明的是,第一层循环比较运算结束后,若标量寄存器阵列112中还存储有一个未处理的数据时,极大值寄存器堆131可以通过剩余数据输入端口1317接收剩余的该数据,并通过复用比较树电路12对该浮点数和第一层循环比较运算结果进行多层循环比较运算。可选的,极大值输入端口1318可以接收第一层循环比较运算时每一次比较运算得到的极大值。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,向量极值复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图34所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述极小值寄存器堆132,该极小值寄存器堆132包括:第一极小值输出端口1321,第二极小值输出端口1322,极小值输入端口1323,第三极小值输出端口1324,比较层级输出端口1325,判断结果输入端口1326,剩余数据输入端口1327,极小值输入端口1328,所述第一极小值输出端口1321用于输出第一极小值,所述第二极小值输出端口1322用于输出第二极小值,所述极小值输入端口1323用于接收下一层比较运算得到的极小值,所述第三极小值输出端口1324用于输出多个所述数据中的极小值,所述比较层级输出端口1325用于输出第二复用比较器1222当前进行比较运算的层数,所述判断结果输入端口1326用于接收结束判断电路14输出的逻辑判断信号,所述剩余数据输入端口1327用于接收比较运算时标量寄存器阵列112中存储的剩余的所述数据,所述极小值输入端口1328用于接收每一次数据比较运算后得到的极小值。
具体的,上述极小值输入端口1323可以接收第一复用比较器1221循环比较运算输出的极小值结果。需要说明的是,若第一复用比较器1221第一层比较运算的总次数为N/2,得到的第一层循环比较的结果中数据的个数可以为N/2,则下一层比较运算的总次数可以为N/4,依次类推,直到最后一层循环比较运算得到的比较结果中数据的个数等于1为止,结束多层循环比较运算,此时,极小值寄存器堆132中存储有一个浮点数。可选的,第二复用比较器1222可以对上一层比较结果中的任意两个极小值进行比较运算,还可以对复用比较器1211相邻两次比较运算得到的结果进行比较运算,此时,极小值寄存器堆132中存储的正在进行比较运算的这两个极小值的对应存储区间会被清空,并且当层比较运算得到的比较结果可以存储到清空的这两个存储区间,还可以存储到其它未存储数据的寄存器存储区间中。可选的,判断结果输入端口1326用于接收结束判断电路14输出的逻辑判断信号。
需要说明的是,第一层循环比较运算结束后,若标量寄存器阵列112中还存储有一个未处理的数据时,极小值寄存器堆132可以通过剩余数据输入端口1327接收剩余的该数据,并通过复用比较树电路12对该数据和第一层循环比较运算结果进行多层循环比较运算。可选的,极小值输入端口1328可以接收第一层循环比较运算时每一次比较运算得到的极小值。另外,若第一层循环比较运算结束后,标量寄存器阵列112中还有一个剩余的数据时,将该剩余数据同时输入到极大值寄存器堆131和极小值寄存器堆132中。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图34所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述结束判断电路14,该结束判断电路14包括:判断单元141,所述判断单元141用于判断当前极值比较结果的层数,与得到最终极值所述复用比较树电路12需要进行循环比较运算的总层数的大小。
需要说明的是,若当前极值比较结果的层数,与得到最终极值复用比较树电路12需要进行循环比较运算的总层数相等时,判断单元141的判断结果可以为是,结束多层循环比较运算,输出多个数据中的极值,此时,复用比较树电路12不需要继续进行循环比较运算。可选的,上述极值比较结果可以为极大值比较结果,还可以为极小值比较结果。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图34所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述判断单元141,该判断单元141包括:比较层级输入端口1411和判断结果输出端口1412,所述比较层级输入端口1411用于接收所述极值寄存器电路13当前得到的循环比较结果对应的层数,所述判断结果输出端口1412用于输出当前极值比较结果对应的层数与复用比较树电路12需要进行循环比较运算的总层数的比较结果。
需要说明的是,若当前极值比较结果对应的层数等于复用比较树电路12需要进行循环比较运算层数时,判断单元141可以通过判断结果输出端口1412向极大值寄存器堆131和极小值寄存器堆132输入高电平信号,指示极大值寄存器堆131和极小值寄存器堆132分别输出运算结果。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
图35为一实施例提供的另一种复用向量选择装置的具体结构示意图,图35与图34所示的复用向量选择装置的结构基本相同。其不同包括如下内容。图35所示的复用向量选择装置中包括所述标量寄存器阵列112,该所述标量寄存器阵列112包括:数据输入端口1121,第一数据输出端口1122,第二数据输出端口1123,第三数据输出端口1124,第四数据输出端口1125,剩余数据输出端口1126,第一逻辑信号输出端口(Sel0)1127和第二逻辑信号输出端口(Sel1)1128,所述数据输入端口1121用于接收N个所述数据,所述第一数据输出端口1122用于每一次比较运算时输出每一个寄存器存储区间内存储的所述数据,所述第二数据输出端口1123用于输出每一个寄存器存储区间内存储的所述数据,所述第三数据输出端口1124用于输出每一个寄存器存储区间内存储的所述数据,所述第四数据输出端口1125用于输出每一个寄存器存储区间内存储的所述数据,剩余数据输出端口1126用于输出比较运算时所述寄存器存储区间内存储的剩余所述数据,所述第一逻辑信号输出端口(Sel0)1127用于输出第一逻辑信号,所述第二逻辑信号输出端口(Sel1)1128用于输出第二逻辑信号。
具体的,上述第一逻辑信号和第二逻辑信号均可以包括高电平逻辑信号和低电平逻辑信号。可选的,数据读入电路11接收到的数据个数N可以为奇数,还可以为偶数。可选的,第一数据输出端口1122,第二数据输出端口1123,第三数据输出端口1124和第四数据输出端口1125均可以向复用比较树电路13输入数据进行多层循环比较运算。
需要说明的是,在第一层循环比较运算过程中,若N为奇数,且数据读入电路11中的数据数量小于等于1时,则第一逻辑信号输出端口(Sel0)1127可以输出高电平逻辑信号,若N为奇数,且数据读入电路11中的数据数量小于等于3时,则第二逻辑信号输出端口(Sel1)1128可以输出高电平逻辑信号。可选的,上述第一层循环比较运算可以表征为复用比较树电路13对数据读入电路11中存储的所有数据进行一次循环比较运算的过程。可选的,在第一层循环比较运算过程中,若数据读入电路11中的数据数量小于等于1时,则数据读入电路11将剩余的数据可以直接输入至极值寄存器电路14,不需要进行第一层循环比较运算。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述选择电路12,该所述选择电路12包括:第一选择单元121,第二选择单元122,第三选择单元123和第四选择单元124,所述第一选择单元121用于选通循环比较运算复用比较树电路13接收的第一数据,所述第二选择单元122用于选通循环比较运算复用比较树电路13接收的第二数据,所述第三选择单元123用于选通循环比较运算复用比较树电路13接收的第三数据,所述第四选择单元124用于选通循环比较运算复用比较树电路13接收的第四数据。
具体的,第一层循环比较运算时,第一选择单元121可以选通复用比较树电路13接收到的第一数据是需要通过极值寄存器电路14输入,还是需要通过数据读入电路11输入。可选的,第二选择单元122可以选通复用比较树电路13接收到的第二数据是需要通过极值寄存器电路14输入,还是需要通过数据读入电路11输入。可选的,第三选择单元123可以选通复用比较树电路13接收到的第三数据是需要通过极值寄存器电路14输入,还是需要通过数据读入电路11输入。可选的,第四选择单元124可以选通复用比较树电路13接收到的第四数据是需要通过极值寄存器电路14输入,还是需要通过数据读入电路11输入。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述第一选择单元121,该第一选择单元121包括:第一逻辑信号输入端口1211,第一数据输入端口1212,调用第一极大值输入端口1213和第一数据输出端口1214,所述第一逻辑信号输入端口1211用于接收第一逻辑信号,所述第一数据输入端口1212用于接收输入的第一数据,所述调用第一极大值输入端口1213用于接收极值寄存器电路14中存储的极大值比较结果,所述第一数据输出端口1214用于输出选通后的第一数据。
具体的,上述第一逻辑信号输入端口1211可以接收数据读入电路11输出的高电平逻辑信号,还可以接收数据读入电路11输出的低电平逻辑信号。若第一逻辑信号输入端口1211接收的是数据读入电路11输入的高电平逻辑信号时,则第一选择单元121可以选通调用第一极大值输入端口1213,接收极值寄存器电路14中存储的一个极大值比较结果,并将接收到的这一个极大值比较结果通过第一数据输出端口1214输入至复用比较树电路13中,作为复用比较树电路13进行比较运算的第一数据。否则,若第一逻辑信号输入端口1211接收的是标量寄存器阵列112输入的低电平逻辑信号时,则第一选择单元121可以选通第一数据输入端口1212,接收数据读入电路11中存储的任意一个数据,并将接收到的这一个数据通过第一数据输出端口1214输入至复用比较树电路13中,作为复用比较树电路13进行比较运算的第一数据。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述第二选择单元122,该所述第二选择单元122包括:第一逻辑信号输入端口1221,第二数据输入端口1222,调用第二极大值输入端口1223和第二数据输出端口1224,所述第一逻辑信号输入端口1221用于接收第一逻辑信号,所述第二数据输入端口1222用于接收输入的第二数据,所述调用第二极大值输入端口1223用于接收极值寄存器电路14中存储的极大值比较结果,所述第二数据输出端口1224用于输出选通后的第二数据。
具体的,上述第一逻辑信号输入端口1221可以接收数据读入电路11输入的高电平逻辑信号,还可以接收数据读入电路11输入的低电平逻辑信号。若第一逻辑信号输入端口1221接收的是数据读入电路11输入的高电平逻辑信号时,则第二选择单元122可以选通调用第二极大值输入端口1223,接收极值寄存器电路14中存储的一个极大值比较结果,并将接收到的这一个极大值比较结果通过第二数据输出端口1224输入至复用比较树电路12中,作为复用比较树电路12进行比较运算的第二数据。否则,若第一逻辑信号输入端口1221接收的是标量寄存器阵列112输入的低电平逻辑信号时,则第二选择单元122可以选通第二数据输入端口1222,接收数据读入电路11中存储的任意一个数据,并将接收到的这一个数据通过第二数据输出端口1224输入至复用比较树电路13中,作为复用比较树电路13进行比较运算的第二数据。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述第三选择单元123,该第三选择单元123包括:第二逻辑信号输入端口1231,第三浮点数输入端口1232,调用第三极小值输入端口1233和第三数据输出端口1234,所述第二逻辑信号输入端口1231用于接收第二逻辑信号,所述第三数据输入端口1232用于接收输入的第三数据,所述调用第三极大值输入端口1233用于接收极值寄存器电路14中存储的极小值比较结果,所述第三数据输出端口1234用于输出选通后的第三数据。
具体的,上述第二逻辑信号输入端口1231可以接收数据读入电路11输入的高电平逻辑信号,还可以接收数据读入电路11输入的低电平逻辑信号。若第二逻辑信号输入端口1231接收的是数据读入电路11输入的高电平逻辑信号时,则第三选择单元123可以选通调用第三极小值输入端口1233,接收极值寄存器电路14中存储的一个极小值比较结果,并将接收到的这一个极小值比较结果通过第三数据输出端口1234输入至复用比较树电路12中,作为复用比较树电路12进行比较运算的第三数据。否则,若第二逻辑信号输入端口1231接收的是标量寄存器阵列112输入的低电平逻辑信号时,则第三选择单元123可以选通第三数据输入端口1232,接收数据读入电路11中存储的任意一个数据,并将接收到的这一个数据通过第三数据输出端口1234输入至复用比较树电路13中,作为复用比较树电路13进行比较运算的第三数据。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述第四选择单元124,该第四选择单元124包括:第二逻辑信号输入端口1241,第四数据输入端口1242,调用第四极小值输入端口1243和第四数据输出端口1244,所述第二逻辑信号输入端口1241用于接收第二逻辑信号,所述第四数据输入端口1242用于接收输入的第四数据,所述调用第四极小值输入端口1243用于接收极值寄存器电路14中存储的极小值比较结果,所述第四数据输出端口1244用于输出选通后的第四数据。
具体的,上述第二逻辑信号输入端口1241可以接收数据读入电路11输入的高电平逻辑信号,还可以接收数据读入电路11输入的低电平逻辑信号。若第二逻辑信号输入端口1241接收的是数据读入电路11输入的高电平逻辑信号时,则第四选择单元124可以选通调用第四极小值输入端口1243,接收极值寄存器电路14中存储的一个极小值比较结果,并将接收到的这一个极小值比较结果通过第四数据输出端口1244输入至复用比较树电路12中,作为复用比较树电路12进行比较运算的第四数据。否则,若第二逻辑信号输入端口1241接收的是标量寄存器阵列112输入的低电平逻辑信号时,则第四选择单元124可以选通第四数据输入端口1242,接收数据读入电路11中存储的任意一个数据,并将接收到的这一个数据通过第四数据输出端口1244输入至复用比较树电路13中,作为复用比较树电路13进行比较运算的第四数据。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
另一实施例提供的另一种复用比较树电路,所述复用比较树电路13包括:第一级复用比较器131和第二级复用比较器132,所述第一级复用比较器131用于对两个数据进行比较得到极值,所述第二级复用比较器132用于对两个数据进行比较得到极值。
具体的,第一级复用比较器131和第二级复用比较器132均可以对多个数据进行循环比较运算。可选的,第一级复用比较器131可以包括多个复用比较器,第二级复用比较器132也可以包括多个复用比较器,其中,第一级复用比较器131和第二级复用比较器132中的每一个复用比较器接收到功能选择模式信号相同。可选的,第一级复用比较器131可以对选择电路12选通后的所有数据进行第一层循环比较运算,每一次比较运算得到的结果可以输入至极值寄存器电路14中存储,其中,极值寄存器电路14可以对每一层循环比较结果进行对应的编号。示例性的,第一层循环比较结果的编号对应为1,第二层循环比较结果的编号对应为2,依次编号,直到最后一层(即M层)循环比较结果的编号对应为M。另外,在第一层循环比较运算的每一次比较运算中,第一级复用比较器141可以接收第一选择单元121和第二选择单元122选通后的两个数据进行比较,得到两个数据中的极大值和极小值,并将极大值和极小值存储至极值寄存器电路14中,如果第一选择单元121和/或第二选择单元122选通的数据是通过标量寄存器阵列112输入的,则标量寄存器阵列112中存储的这一个或两个数据的存储区间会自动被清空,下一次比较运算的过程和上一次比较运算的过程相同,在此不再赘述。当标量寄存器阵列112中存储的数据全部被选通为止,第一级复用比较器131会结束第一层循环比较运算。可选的,复用比较树电路13每一层循环比较运算得到的极大值比较结果对应的层数,可以等于当前第一级复用比较器131和第二级复用比较器132进行循环比较运算的总层数之和。可选的,若第二级复用比较器132进行第一层循环比较运算,则该层循环比较运算得到的循环比较结果为复用比较树电路13第二层的循环比较结果。可选的,复用比较树电路13每一层循环比较得到的极小值比较结果对应的层数,可以等于当前第一级复用比较器131和第二级复用比较器132进行循环比较运算的总层数之和。
需要说明的是,在第一层循环比较运算的每一次比较运算后,第一级复用比较器131可以得到一个极值存放至极值寄存器电路14中,并且从第一次比较运算开始,第一级复用比较器131连续两次比较运算,可以向极值寄存器电路13连续输入两个极值,这两个极值均可以称为第一层循环比较结果,对应编号均为1,此时,第二级复用比较器132可以读取极值寄存器电路14中存储的这两个第一层循环比较结果进行第二层循环比较运算,也就是说,只要极值寄存器电路14存储的第一层循环比较结果为两个数据时,第二级复用比较器132可以自动读取极值寄存器电路14中存储的这两个第一层循环比较结果进行第二层循环比较运算。可选的,第二级复用比较器132处理的第一层循环比较结果均可以称为第二层循环比较运算,第二层循环比较运算得到的结果可以称为第二层循环比较结果,第二层循环比较结果依然可以存储至极值寄存器电路14中,依次进行多层循环比较运算,下一层循环比较运算可以对上一层循环比较结果进行处理,但是,从第二层循环比较运算开始,需要每一层循环比较运算结束后,该层运算的全部结果存储至极值寄存器电路14中才可以通过第一级复用比较器131或第二级复用比较器132进行下一层循环比较运算,直到某一层循环比较运算的结果为一个数据为止,多层循环比较运算结束。可选的,第一级复用比较器131和第二级复用比较器132可以轮换进行多层循环比较运算,其中,第一级复用比较器131可以进行偶数层循环比较运算,第二级复用比较器132可以进行奇数层循环比较运算。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述第一级复用比较器131,该第一级复用比较器131包括:第一复用比较器1311和第二复用比较器1312,所述复用比较器1311用于对所述选择电路12选通后的第一数据进行循环比较运算得到极大值向量和极小值向量,所述第二复用比较器1312用于对所述选择电路12选通后的第二数据进行循环比较运算得到极大值向量和极小值向量。
具体的,第一复用比较器1311和第二复用比较器1312均可以进行第一层循环比较运算,每一次均可以对两个数据进行比较运算,得到两个数据中的极大值和极小值。需要说明的是,若数据读入电路11接收到的数据个数为N,且N为偶数(4的倍数),则第一复用比较器1311和第二复用比较器1312可以进行第一层循环比较运算的次数均等于N/4,若N为奇数,则第一复用比较器1311和第二复用比较器1312可以进行循环比较运算的次数均等于round(N/4),round(*)可以表示对实数取整。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到最终的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述第一复用比较器1311,该第一复用比较器1311包括:功能选择模式信号输入端口(Mode)1311a,第一数据输入端口1311b,第二数据输入端口1311c,极大值第一输出端口1311d和极小值第一输出端口1311e,所述功能选择模式信号输入端口(Mode)1311a用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第一数据输入端口1311b用于接收选择电路12输入的第一数据,所述第一数据输入端口1311c用于接收选择电路12输入的第一数据,所述极大值第一输出端口1311d用于输出比较运算得到的极大值,所述极小值第一输出端口1311e用于输出比较运算得到的极小值。
具体的,每一次第一复用比较器1311可以对第一数据输入端口1311b和第二数据输入端口1311c,接收到的选择电路12输入的第一数据及第二数据进行比较运算,将得到的极大值通过极大值第一输出端口1311d输出存储至极值寄存器电路中,将得到的极小值通过极小值第一输出端口1311e输出存储至极值寄存器电路中。
本实施例提供的一种复用向量选择装置,第一复用比较器和第二复用比较器能够对选通后的数据进行第一层循环比较运算得到极值,再通过第一复用比较器或第二级复用比较器进行多层循环比较处理,得到最终的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图4所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述第二复用比较器1312,该第二复用比较器1312包括:功能选择模式信号输入端口(Mode)1312a,第三数据输入端口1312b,第四数据输入端口1312c,极大值第二输出端口1312d和极小值第二输出端口1312e,所述功能选择模式信号输入端口(Mode)1312a用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述第三数据输入端口1312b用于接收选择电路12输入的第三数据,所述第四数据输入端口1312c用于接收选择电路12输入的第四数据,所述极大值第二输出端口1312d用于输出比较运算得到的极大值,所述极小值第二输出端口1312e用于输出比较运算得到的极小值。
具体的,每一次第二复用比较器1312可以对第二数据输入端口1312b和第二数据输入端口1312c,接收到的选择电路12输入的第二数据进行比较运算,将得到的极大值通过极大值第二输出端口1312d输出存储至极值寄存器电路中,将得到的极小值通过极小值第二输出端口1312e输出存储至极值寄存器电路中。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到最终的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述第二级复用比较器132,该第二级复用比较器132包括:第三复用比较器1321和第四复用比较器1322,所述第三复用比较器1321用于对两个数据进行比较得到极大值,所述第四复用比较器1322用于对两个浮点数进行比较得到极小值。
需要说明的是,第三复用比较器1321和第四复用比较器1322均可以进行多层循环比较运算,每一层循环比较运算的比较结果均可以存储至极值寄存器电路14中,极值寄存器电路14对每一层循环比较结果均有对应编号。可选的,第三复用比较器1321进行循环比较运算的层数,与第四复用比较器1322进行循环比较运算的层数可以等于,还可以不相等,另外,每一层比较运算的总次数可以相等。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述第三复用比较器1321,该第三复用比较器1321包括:功能选择模式信号输入端口(Mode)1321a,调用极大值第一输入端口1321b,调用极大值第二输入端口1321c和极大值第三输出端口1321d,所述功能选择模式信号输入端口(Mode)1321a用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述调用极大值第一输入端口1321b用于读取极值寄存器电路14中存储的第一极大值比较结果,所述调用极大值第二输入端口1321c用于读取极值寄存器电路14中存储的第二极大值比较结果,所述极大值第三输出端口1321d用于输出比较运算得到的极大值。
具体的,每一次第三复用比较器1321可以通过调用极大值第一输入端口1321b和调用极大值第二输入端口1321c,读取极值存储器电路14中存储的两个极大值比较结果进行比较运算,将得到的极大值通过极大值第三输出端口1321d输出存储至极值寄存器电路14中。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到最终的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述第四复用比较器1322,该第四复用比较器1322包括:功能选择模式信号输入端口(Mode)1322a,调用极小值第一输入端口1322b,调用极小值第二输入端口1322c和极小值第四输出端口1322d,所述功能选择模式信号输入端口(Mode)1322a用于接收需要处理不同位宽的数据对应的功能选择模式信号,所述调用极小值第一输入端口1322b用于读取极值寄存器电路14中存储的第一极小值比较结果,所述调用极小值第二输入端口1322c用于读取极值寄存器电路14中存储的第二极小值比较结果,所述极小值第三输出端口1322d用于输出比较运算得到的极小值。
具体的,每一次第四复用比较器1322可以通过调用极小值第一输入端口1322b和调用极小值第二输入端口1322c,读取极值存储器电路14中存储的两个极小值比较结果进行比较运算,将得到的极小值通过极小值第四输出端口1322d输出存储至极值寄存器电路14中。
可选的,上述第一复用比较器1311,第二复用比较器1312,第三复用比较器1321和第四复用比较器1322的电路结构均可以相等,电路结构图如图5所示。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到最终的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述极值寄存器电路14,该极值寄存器电路14包括:极大值寄存器堆141和极小值寄存器堆142,所述极大值寄存器堆141用于存储多层循环比较运算得到的极大值,所述极小值寄存器堆142用于存储多层循环比较运算得到的极小值。
需要说明的是,极大值寄存器堆141可以存储第一级复用比较器131每一层循环比较运算得到的极大值,还可以存储第二级复用比较器132每一层循环比较运算得到的极大值。可选的,极大值寄存器堆141内的存储区间数量可以根据用户需要设定,另外,极大值寄存器堆141内可以存储多层循环比较运算的结果。示例性的,若数据读入电路11接收到的数据个数为N,则循环比较运算的总层数可以等于log2N,极大值寄存器堆141内可以存储log2N层循环比较运算的结果。
可选的,极小值寄存器堆141可以存储第一级复用比较器131每一次比较运算得到的极小值,还可以存储第二级复用比较器132每一层循环比较运算得到的极小值。可选的,极小值寄存器堆142内的存储区间数量可以根据用户需要设定,另外,极小值寄存器堆142内可以存储多层循环比较运算的结果。示例性的,若数据读入电路11接收到的数据个数为N,则循环比较运算的总层数可以等于log2N,极小值寄存器堆142内可以存储log2N层循环比较运算的结果。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,向量极值复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述极大值寄存器堆141,该极大值寄存器堆141包括:剩余数据输入端口1410,调用极大值第一输出端口1411,调用极大值第二输出端口1412,极大值第三输入端口1413,调用第一极大值输出端口1414,调用第二极大值输出端口1415,极大值第一输入端口1416a,极大值第二输入端口1416b,极大值输出端口1417,比较层级输出端口1418和判断结果输入端口1419;其中,所述剩余数据输入端口1410用于接收比较运算时所述寄存器存储区间内存储的剩余所述数据,所述调用极大值第一输出端口1411用于输出第一极大值比较结果,所述调用极大值第二输出端口1412用于输出第二极大值比较结果,所述极大值第三输入端口1413用于接收比较运算得到的极大值,所述调用第一极大值输出端口1414用于输出一个极大值比较结果,所述调用第二极大值输出端口1415用于输出第二极大值比较结果,所述极大值第一输入端口1416a用于接收比较运算得到的第一极大值,所述极大值第二输入端口1416b用于接收比较运算得到的第二极大值,所述极大值输出端口1417用于输出多层循环比较运算得到的最终极大值,所述比较层级输出端口1418用于输出当前循环比较结果对应的层数,所述判断结果输入端口1419用于接收当前极大值比较结果的层数与复用比较树电路13需要进行循环比较运算的总层数的比较结果。
具体的,当第三复用比较器133进行循环比较运算时,第三复用比较器133可以通过调用极大值第一输出端口1411和调用极大值第二输出端口1412分别接收上一层循环比较运算得到的两个不同比较结果,每一次比较运算结束后,极大值第三输入端口1413可以接收第三复用比较器133输出的极大值结果,当多层循环比较运算结束后,通过极大值输出端口1417输出最终的极大值。可选的,比较层级输出端口1418可以输出当前极大值寄存器堆141中存储的极大值比较结果对应的层数。若当前极大值寄存器堆141中存储的极大值比较结果对应的层数,等于复用比较树电路13需要进行循环比较运算的总层数时,则判断结果输入端口1419可以接收到结束判断电路15输入的高电平逻辑信号,此时,极大值输出端口1417可以输出最终的比较结果。否则,判断结果输入端口1419可以接收到结束判断电路15输入的低电平逻辑信号,此时,复用比较树电路13还需要继续进行比较运算,直到判断结果输入端口1419接收到高电平逻辑信号为止,多层循环比较运算结束。
需要说明的是,第一层循环比较运算结束后,若标量寄存器阵列112中还存储有一个未处理的数据时,极大值寄存器堆141可以通过剩余数据输入端口1410接收剩余的该数据,并通过复用比较树电路13对该数据和第一层循环比较运算结果进行多层循环比较运算。可选的,极大值第一输入端口1416a可以接收第一复用比较器1311比较运算得到的第一极大值,所述极大值第二输入端口1416b可以接收第二复用比较器1312比较运算得到的第二极大值。
本实施例提供的一种复用向量选择装置,复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述极小值寄存器堆142,该极小值寄存器堆142包括:剩余数据输入端口1420,调用极小值第一输出端口1421,调用极小值第二输出端口1422,极小值第四输入端口1423,调用第三极小值输出端口1424,调用第四极小值输出端口1425,极小值第一输入端口1426a,极小值第二输入端口1426b,极小值输出端口1427,比较层级输出端口1428和判断结果输入端口1429;其中,所述剩余数据输入端口1420用于接收比较运算时所述寄存器存储区间内存储的剩余所述数据,所述调用极小值第一输出端口1421用于输出第三极小值比较结果,所述调用极小值第二输出端口1422用于输出第四极小值比较结果,所述极小值第四输入端口1423用于接收比较运算得到的极小值,所述调用第三极小值输出端口1424用于输出第三极小值比较结果,所述调用第四极小值输出端口1425用于输出第四极小值比较结果,所述极小值第一输入端口1426a用于接收比较运算得到的第一极小值,所述极小值第二输入端口1426b用于接收比较运算得到的第二极小值,所述极小值输出端口1427用于输出多层循环比较运算得到的最终极小值,所述比较层级输出端口1428用于输出当前循环比较结果对应的层数,所述判断结果输入端口1429用于接收当前极小值比较结果的层数与复用比较树电路13需要进行循环比较运算的总层数的比较结果。
具体的,当第四复用比较器134进行循环比较运算时,第四复用比较器134可以通过调用极小值第一输出端口1421和调用极小值第二输出端口1422分别接收上一层循环比较运算得到的两个不同比较结果,每一次比较运算结束后,极小值第四输入端口1423可以接收第四复用比较器134输出的极小值结果,当多层循环比较运算结束后,通过极小值输出端口1427输出最终的极小值。可选的,比较层级输出端口1428可以输出当前极小值寄存器堆142中存储的极小值比较结果对应的层数。若当前极小值寄存器堆142中存储的极小值比较结果对应的层数,等于复用比较树电路13需要进行循环比较运算的总层数时,则判断结果输入端口1429可以接收到结束判断电路15输入的高电平逻辑信号,此时,极大值输出端口1427可以输出最终的比较结果。否则,判断结果输入端口1429可以接收到结束判断电路15输入的低电平逻辑信号,此时,复用比较树电路13还需要继续进行比较运算,直到判断结果输入端口1429接收到高电平逻辑信号为止,多层循环比较运算结束。
需要说明的是,第一层循环比较运算结束后,若标量寄存器阵列112中还存储有一个未处理的数据时,极大值寄存器堆141可以通过剩余数据输入端口1420接收剩余的该数据,并通过复用比较树电路13对该数据和第一层循环比较运算结果进行多层循环比较运算。可选的,极小值第一输入端口1426a可以接收第一复用比较器1311比较运算得到的第一极小值,所述极小值第二输入端口1426b可以接收第二复用比较器1312比较运算得到的第二极小值。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述结束判断电路15,该结束判断电路15包括:判断单元151,所述判断单元151用于判断当前极值比较结果的层数,与得到最终极值所述复用比较树电路13需要进行循环比较运算的总层数的大小。
需要说明的是,若当前极值比较结果的层数,与得到最终极值复用比较树电路13需要进行循环比较运算的总层数相等时,判断单元141的判断结果可以为是,结束多层循环比较运算,输出多个数据中的极值,此时,复用比较树电路13不需要继续进行循环比较运算。可选的,上述极值比较结果可以为极大值比较结果,还可以为极小值比较结果。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续如图35所示复用向量选择装置的具体结构示意图,其中,复用向量选择装置包括所述判断单元151,该判断单元151包括:比较层级输入端口1511和判断结果输出端口1512,所述比较层级输入端口1511用于接收所述极值寄存器电路14当前得到的循环比较结果对应的层数,所述判断结果输出端口1512用于输出当前极值比较结果对应的层数,与复用比较树电路13需要进行循环比较运算的总层数的比较结果。
需要说明的是,若当前极值比较结果对应的层数等于复用比较树电路13需要进行循环比较运算总的层数时,判断单元151可以通过判断结果输出端口1512向极大值寄存器堆141和极小值寄存器堆142输入高电平信号,指示极大值寄存器堆141和极小值寄存器堆142分别输出运算结果。
本实施例提供的一种复用向量选择装置,该复用向量选择装置可以对多个数据进行多层循环比较处理,得到其中的极大值和极小值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例中,继续参见如图2,其中,该数据处理装置包括所述从处理电路12,该从处理电路12包括:第二顶层控制模块121和第二数据处理模块122,所述第二顶层控制模块121的输出端与所述第二数据处理模块122的输入端连接;所述第二顶层控制模块121用于接收所述分支控制信号以及所述第一顶层控制模块111调度后的数据,解析所述分支控制信号得到控制子信号,并根据所述控制子信号对调度后的所述数据进行再次调度,所述第二数据处理模块122用于接收所述第一顶层控制模块111调度后的数据以及所述分支控制信号,根据所述分支控制信号对调度后的所述数据进行不同的运算。
具体的,上述第一顶层控制模块111调度后的数据可以包括神经元数据和权值数据。可选的,第二顶层控制模块121可以对接收到的分支控制信号进行解析,得到多个不同的控制子信号后输入至第二数据处理模块122中,其中,每一个控制子信号可以表征一种运算指令,以及该运算指令对应需要处理的具体神经元数据和具体的权值数据。可选的,第二数据处理模块122可以接收不同的控制子信号,以及调度后对应不同的具体的神经元数据和具体的权值数据,并根据不同控制子信号对应的运算指令,对这些具体的神经元数据和具体的权值数据进行对应的运算操作。其中,该运算操作可以包括乘累加运算和累加运算。另外,在乘累加运算的乘法运算过程中,神经元数据和权值数据可以分别作为乘数和被乘数,任意一个作为乘数或被乘数均可。
本实施例提供的一种数据处理装置,该装置还可以包括从处理电路,从处理电路包括第二顶层控制模块和第二数据处理模块,从处理电路通过这两个模块可以对数据进行不同的并行运算操作,从而提高数据处理效率,降低AI芯片的功耗。
在其中一个实施例中,继续参见图2,其中,所述第二数据处理模块122包括:乘法单元1221、选择器1222、累加单元1223以及转数单元1224,所述乘法单元1221的输出端与所述选择器1222的输入端连接,所述选择器1222的输出端与所述累加单元1223的输入端连接,所述累加单元1223的输出端与所述转数单元1224的输入端连接;所述乘法单元1221用于对接收到的所述数据进行乘法运算,所述选择器1222用于选通所述乘法单元1221的乘法结果或所述数据,所述累加单元1223用于对接收到的所述乘法结果进行累加运算,或者对接收到的所述数据进行累加运算,所述转数单元1224用于对接收到的累加运算结果进行转数处理,得到目标格式的数据。
具体的,乘法单元1221接收到的数据可以为第二顶层控制模块121调度后,进行乘法运算的具体神经元数据和具体权值数据,其中,神经元数据和权值数据均可以为多位宽的定点数,且位宽相同。可选的,选择器1222可以为二路选择器,一路输入的信号可以为第二顶层控制模块121根据得到的控制子信号确定进行累加运算的具体神经元数据,另一路输入的信号可以为乘法单元1221输出的乘法结果。可选的,累加单元1223可以对接收到的乘法结果进行不断累加运算,还可以对接收到的未进行乘法运算的神经元数据直接进行不断累加运算。
需要说明的是,转数单元1224可以接收累加单元1223得到的累加结果,并将累加结果转换成不同类型以及不同位宽的数据,并将该数据传回至主处理电路11中的第一顶层控制模块111。可选的,上述累加运算结果可以为定点数,转换成不同类型的数据可以包括定点数类型和浮点数类型。示例性的,若累加运算结果为一个16比特位宽的定点数,则转数单元1224可以将该累加运算结果转换成目标格式的数据,该目标格式的数据可以包括16比特位宽的浮点数,32比特位宽的浮点数,64比特位宽的浮点数以及8比特位宽的定点数等等。可选的,乘法单元1221接收到的数据位宽可以等于2的N次方,N可以为大于等于3的正整数。
示例性的,一从处理电路12中的第二数据处理模块122接收到的控制子信号为卷积运算指令,且第二数据处理模块122中的乘法单元1221接收到的神经元数据和权值数据均为512比特位宽的定点数,其中,在卷积神经网络中,可以将16个权值作为一个卷积核,每一个权值的位宽为8比特,相当于乘法单元1221接收到了4个卷积核,总共有64个权值,因此,乘法单元1221可以将64个权值和64个神经元数据对应相乘,得到64个值输出,这64个值可以分成4组数据,每一组数据均有对应的一个卷积核,且每组数据均有16个值,累加单元1223可以将这四组数据分别进行累加得到四个结果,并将这四个结果输入至转数单元1224做转换运算后输出。
本实施例提供的一种数据处理装置,该装置还可以包括从处理电路,从处理电路中的第二数据处理模块包括,乘法单元、选择器、累加单元以及转数单元,可以通过乘法单元对接收到的数据进行并行乘法运算,有效提高数据处理效率,降低AI芯片的功耗。
在其中一个实施例中,所述乘法单元1221包括乘法器。
具体的,乘法单元1221可以包括多个相同功能的乘法器,且多个乘法器的内部电路结构也相同,并且该乘法器可以为主处理电路11中的不同功能的乘法器。需要说明的是,在本实施例中,若数据处理装置需要对一定位宽的数据进行并行运算,则数据处理装置可以调用l次从处理电路12实现并行运算,得到目标结果,该情况下,从处理电路12的乘法单元1221中包含的乘法器的数量可以等于乘法单元1221接收到的数据位宽,与乘法单元1221中乘法器输入数据位宽的商值,并用该商值除以调用次数l。
示例性的,基于卷积神经网络运算,若目前乘法单元1221需要对接收到一个卷积核(即1个16比特位宽的权值数据),与512比特位宽的神经元数据做乘法运算,其中,512比特位宽的神经元数据相当于32个16比特位宽的数据,若乘法单元1221中包含的乘法器可同时处理8比特位宽的定点数和16比特位宽的定点数,则乘法单元1221中需要32个乘法器,每一个乘法器可以一次支持16比特位宽的定点数运算或者两次8比特位宽的定点数运算,相当于乘法单元1221可以通过32个乘法器,进行32次16比特位宽的定点数并行乘法运算,即并行对一个卷积核与512比特位宽的神经元数据进行卷积处理;另外,乘法单元1221还可以通过16个乘法器,进行16次16比特位宽的定点数并行乘法运算,但是,此时数据处理装置可以再调用一次从处理单元12,通过乘法单元1221中的这16个乘法器对剩余未处理的定点数再进行16次并行乘法运算,其实也就相当于数据处理装置调用了两次从处理单元12,总共进行32次16比特位宽的定点数并行乘法运算。
本实施例提供的一种数据处理装置,该装置还可以包括从处理电路,从处理电路中的乘法单元包括多个乘法器,可以通过多个乘法器对接收到的数据进行并行乘法运算,有效提高数据处理效率,并降低AI芯片的功耗。
图36为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图1和图2所示的数据处理装置进行处理,本实施例涉及的是对数据进行运算处理的过程。如图36所示,该方法包括:
S1000、接收待处理数据以及控制信号。
具体的,数据处理装置可以通过主处理电路接收待处理的数据和控制信号,该待处理的数据可以包括神经元数据和权值数据。可选的,神经元数据和权值数据均可以为多位宽的定点数,或浮点数,且神经元数据和权值数据的位宽可以相同。可选的,控制信号可以为计算指令的集合。
S2000、解析所述控制信号得到分支控制信号。
具体的,第一顶层控制模块可以解析控制信号,得到多个分支控制信号。可选的,分支控制信号可以为计算指令集合中的子指令,子指令可以包括神经网络中的正向运算指令或反向训练指令,其它神经网络运算指令(例如卷积运算指令),向量乘累加运算指令,向量累加运算指令,向量逐元素平方运算指令等等。在本实施例中,分支控制信号可以包括两类,一类为向量累加运算指令和向量乘累加运算指令,若分支控制信号为该类指令,则可以将该分支控制信号输入至从处理电路;另一类为除向量累加运算指令和向量乘累加运算指令之外的所有其它运算指令,若分支控制信号为该类指令,则可以将该分支控制信号输入至主处理电路。
S3000、根据所述分支控制信号对待处理的所述数据进行调度处理,得到调度后的第一数据。
具体的,主处理电路中的第一顶层控制模块可以根据解析得到的分支控制信号对接收到的数据进行调度处理,得到调度后的第一数据。可选的,每一个分支控制信号可以对应一部分调用后的第一数据,并且该部分数据可以根据分支控制信号进行对应的运算处理。可选的,第一顶层控制模块调度后的第一数据可以输入至从处理电路中的第二顶层控制模块中,还可以输入至第一数据处理模块中。
S4000、根据所述分支控制信号对调度后的所述第一数据进行运算处理,得到运算结果。
需要说明的是,从处理电路可以根据接收到的分支控制信号对接收到的调度后的第一数据进行对应的运算处理,得到运算结果,并给可以将运算结果传输至主处理电路后输出,其中,该运算处理可以包可以乘累加运算和累加运算。可选的,主处理电路中的第一数据处理模块可以根据接收到的分支控制信号对接收到的调度后的第一数据进行对应的运算处理,得到运算结果,并将该运算结果传输至主处理电路中的第一顶层控制模块后输出,其中,该运算处理可以包括激活处理、池化操作、数据填充操作、计数操作、滤波操作、矩阵转置运算,向量比较、向量极值选取、向量逐元素平方、生成随机数以及转数运算等。
本实施例提供的一种数据处理方法,接收待处理的数据以及控制信号,解析所述控制信号得到分支控制信号,根据所述分支控制信号对待处理的所述数据进行调度处理,得到调度后的第一数据,根据所述分支控制信号对调度后的所述第一数据进行不同的运算处理,得到运算结果,该方法可以对接收到的待处理的数据进行调度,对调度后的数据进行并行运算处理,有效提高数据处理效率,并降低了AI芯片的功耗。
在其中一个实施例中,如图37所述,上述S4000中根据所述分支控制信号对调度后的所述第一数据进行不同的运算处理,得到运算结果,包括:
S4100、解析所述分支控制信号得到控制子信号。
具体的,主处理电路中的第一顶层控制模块可以对未输入至从处理电路的分支控制信号进行解析,得到主处理单元可处理运算对应的控制子信号,另外,从处理电路通过第二顶层控制模块对接收到的分支控制信号进行解析,得到从处理单元可处理运算对应的控制子信号。
S4200、根据所述控制子信号对调度后的所述第一数据进行调度处理,得到调度后的第二数据。
具体的,主处理电路中的第一顶层控制模块可以根据解析得到的控制子信号对调度后的第一数据进行再次调度处理,得到输入至第一数据处理模块调度后的第二数据,而从处理电路中的第二顶层控制模块可以根据解析得到的控制子信号,对接收到的主处理电路输入的调度后的第一数据进行再次调度处理,得到调度后的第二数据。
需要说明的是,第一顶层控制模块得到的调度后的第二数据可以与第二顶层控制模块得到的调度后的第二数据不相同。
S4300、对调度后的所述第二数据进行运算处理,得到运算结果。
具体的,第一数据处理模块可以根据第一顶层控制模块得到的控制子信号,对接收到的调度后的第二数据进行运算处理,得到运算结果。另外,第二数据处理模块还可以根据第二顶层控制模块接收到的控制子信号,对接收到的调度后的第二数据进行运算处理,得到运算结果。
本实施例提供的一种数据处理方法,解析所述分支控制信号得到控制子信号,根据所述控制子信号对调度后的所述第一数据进行调度处理,得到调度后的第二数据,进而对调度后的第二数据进行不同的并行运算处理,有效提高数据处理效率,并降低了AI芯片的功耗。
在其中一个实施例中,如图38所示,上述S4300中的运算处理为向量极值选取运算,则包括:
S4310、对调度后的所述第二数据进行向量比较运算,得到比较运算结果。
具体的,数据处理装置可以通过第一数据处理模块中的数据比较器或复用向量选择装置对调度后的第二数据进行向量比较运算,得到比较运算结果。可选的,该数据比较器或复用向量选择装置具体可以为图19至图31所示的电路结构。
S4320、对调度后的所述第二数据进行向量极值选取运算,得到极值选取运算结果。
具体的,数据处理装置可以通过第一数据处理模块中的复用向量选择装置对调度后的第二数据进行向量极值选取运算,得到极值选取运算结果。可选的,该复用向量选择装置具体可以为图32至图35所示的电路结构。可选的,本实施例中,上述步骤S4310与步骤S4320可以同时进行,也可以只执行任意一个步骤。
可选的,继续参见图38,若上述S4300中的运算处理为乘法运算,则包括:
S4330、对调度后的所述第二数据进行乘法运算,得到乘法运算结果。
具体的,数据处理装置可以通过第一数据处理模块中的乘法器对调度后的第二数据进行乘法运算,得到乘法运算结果。可选的,该乘法器具体可以为图3至图18所示的不同功能的任意乘法器。
S4340、对调度后的所述第二数据进行乘累加运算,得到乘累加运算结果。
具体的,数据处理装置可以通过第二数据处理模块中的乘法器对调度后的第二数据进行乘累加运算,得到乘累加运算结果。可选的,该乘法器具体可以为图11至图14所示的电路结构。其中,第二数据处理模块可以通过多个相同功能的乘法器对调度后的第二数据进行乘累加运算。可选的,本实施例中,上述步骤S4330与步骤S4340可以同时进行,也可以只执行任意一个步骤。
本实施例提供的一种数据处理方法,对调度后的所述第二数据进行向量比较运算,得到比较运算结果,对调度后的所述第二数据进行向量极值选取运算,得到极值选取运算结果,对调度后的所述第二数据进行乘法运算,得到乘法运算结果,对调度后的所述第二数据进行乘累加运算,得到乘累加运算结果,该方法通过主处理电路和从处理电路对调度后的第二数据进行不同的并行运算处理,有效提高数据处理效率,并降低了AI芯片的功耗。
在其中一个实施例中,上述S4310中对调度后的所述第二数据进行向量比较运算,得到比较运算结果,具体包括以下两种方式实现:
第一种实现方式
该种实现方式可以通过如下实施例进行详细说明:
另一实施例提供的数据处理方法的流程示意图,该方法可以通过图19和图23所示的数据比较器进行处理,本实施例涉及的是对数据进行比较运算的过程。该方法包括:
S101、接收待处理的数据。
具体的,数据比较器可以接收两个待处理的数据。可选的,数据比较器将接收到的待处理的数据,输入到判断电路,若判断电路运算结束后,还需要通过比较电路对待处理的数据处理时,则判断电路将接收到的待处理的数据,输入到比较电路对待处理的数据进行比较运算。可选的,数据比较器还可以通过判断电路中的每一个判断单元和比较电路中的每一个比较单元同时接收不同功能选择模式信号,并且进行同一次运算时,判断电路中的每一个判断单元和比较电路中的每一个比较单元接收到的功能选择模式信号可以相同。若数据比较器接收不同的功能选择模式信号,则数据比较器可以处理不同对应位宽的数据,同时,不同选择模式信号与数据比较器可以处理不同位宽的数据之间的对应关系可以灵活设置,对此本实施例不作任何限定。
需要说明的是,如果判断电路接收到的待处理的数据的位宽,与数据比较器接收到的功能选择模式信号对应可处理的数据位宽不相等,则数据比较器会根据数据比较器当前可处理的数据位宽,将接收到的待处理的数据分成,与数据比较器当前可处理的数据位宽相等的多组数据据进行并行处理,其中,判断电路接收到的待处理的数据的位宽可以大于数据比较器当前可处理的数据位宽。可选的,上述并行处理可以表征为将分成的每一组待处理的数据据同时进行处理。如果判断电路接收到的待处理的数据的位宽,与数据比较器接收到的功能选择模式信号对应可处理的数据位宽相等,则数据比较器直接对接收到的待处理的数据进行处理。
S102、通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理。
具体的,数据比较器可以根据判断电路输出的判断结果判断待处理的数据是否需要通过比较电路进行处理。
S103、若需要,则所述判断电路分别将待处理的所述数据的符号位,指数位和尾数位输入到所述比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出比较运算结果。
具体的,若待处理的数据中不存在非数值、无穷数或零值,则通过判断电路对待处理的数据进行处理后,可以分别将待处理的数据的符号位,指数位和尾数位输入到比较电路,通过比较电路中的每一个比较单元依次比较待处理的数据的符号位,指数位和尾数位大小,比较单元根据符号位比较结果输出端口,指数位比较结果输出端口和/或尾数位比较结果输出端口输出的比较结果中任意一个端口输出高电平信号,并通过数据比较器的最大值输出端口(Zmax)和最小值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束运算。
示例性的,若输入的是32位的两个待处理的数据a和b,当前数据比较器可以进行16位待处理的数据比较运算,数据比较器将输入的两个32位待处理的数据按照高低16位对应分成两组16位待处理的数据,则最大值输出端口(Zmax)和最小值输出端口(Zmin)输出的数值,均是通过高低16位待处理的数据分别比较最大值或最小值后拼接得到,即可以通过公式Zmax={max{a[31:16],b[31:16]},max{a[15:0],b[15:0]}}表示最大值的获取方式,通过Zmin={min{a[31:16],b[31:16]},min{a[15:0],b[15:0]}}表示最小值的获取方式,其中,最大值输出端口(Zmax)和最小值输出端口(Zmin)输出的32位最大值和最小值的高低16位待处理的数据,可以是同一个待处理的数据的高低16位数据,还可以为不同待处理的数据的高低16位数据拼接的最大或最小数据。若数据比较器当前可处理的数据位宽和接收到的待处理的数据位宽相等均为32,则最大数值输出端口(Zmax)和最小数值输出端口(Zmin)输出的32位最大值和最小值的高低16位数据,为同一个待处理的数据的高低16位数据。
可选的,在通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理的步骤之后,还可以包括:若需要,则所述判断电路分别将待处理的所述数据输入到所述比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出比较运算结果。
本实施例提供的一种数据处理方法,数据比较器通过判断电路判断待处理的数据是否需要通过比较电路进行处理,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法。上述S102中通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理,包括:通过所述判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值;若待处理的所述数据中不存在非数值、无穷数以及零值,则判断待处理的所述数据需要通过所述比较电路进行处理。
需要说明的是,基于IEEE数据算术标准中非数值,无穷数和零值对应的编码标准,若判断电路接收到的待处理的数据中不存在非数值、无穷数和零值,则可以判断待处理的数据还需要通过比较电路进行下一步处理;若判断电路接收到的待处理的数据中存在非数值、无穷数或零值,则判断电路的判断结果为是,并且判断结果输出端口可以输出高电平信号,结束运算。在本实施例中,高电平信号可以用1表示,低电平信号可以用0表示。
示例性的,若输入的是32位的两个待处理的数据a和b,当前数据比较器可以对16位数据进行比较运算,则数据比较器会将输入的两个32位待处理的数据按照高低16位对应分成两组16位待处理的数据,分别可以表示为a[31:16]和a[15:0],与b[31:16]和b[15:0],因此,数据比较器会通过判断单元对a[31:16]与b[31:16],和a[15:0]与b[15:0]两组待处理的数据进行同时处理,分别得到两组高低16位待处理的数据中是否存在非数值、无穷数和零值。
本实施例提供的一种数据处理方法,数据比较器通过判断电路先对待处理的数据中是否存在非数值、无穷数和零值进行判断,根据判断结果决定是否输入比较电路进行处理,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S102中通过判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值,可以通过以下所述方法实现,具体包括:
S1021、通过非数值判断单元判断待处理的所述数据中是否存在非数值。
具体的,数据比较器基于IEEE数据算术标准中非数值对应的编码标准,通过非数值判断单元判断接收到的待处理的数据中是否有非数值存在。
S1022、若不存在非数值,则将待处理的所述数据输入到无穷数判断单元,通过所述无穷数判断单元判断待处理的所述数据中是否存在无穷数。
具体的,若非数值判断单元接收到的待处理的数据中没有非数值存在,则非数值判断单元将接收到的待处理的数据输出到无穷数判断单元,基于IEEE数据算术标准中无穷数对应的编码标准,通过无穷数判断单元继续判断接收到的待处理的数据中是否存在无穷数。
S1023、若不存在无穷数,则将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值。
具体的,若无穷数判断单元接收到的待处理的数据中没有无穷数的存在,则无穷数判断单元将接收到的待处理的数据输出到零值判断单元,基于IEEE数据算术标准中零值对应的编码标准,通过零值判断单元继续判断接收到的待处理的数据中是否存在零值。
S1024、若不存在零值,则判断所述数据需要通过所述比较电路进行处理。
具体的,若零值判断单元接收到的待处理的数据中没有零值的存在,则零值判断单元可以将接收到的待处理的数据输出到比较电路进行处理。
可选的,上述S102中通过判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值,还可以通过以下所述方法实现,如图11所示,具体包括:
S1025、通过无穷数判断单元判断待处理的所述数据中是否存在无穷数。
S1026、若不存在无穷数,则将待处理的所述数据输入到非数值判断单元,通过所述非数值判断单元判断待处理的所述数据中是否存在非数值。
S1027、若不存在非数值,则将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值。
S1028、若不存在零值,则判断所述数据需要通过所述比较电路进行处理。
本实施例提供的一种数据处理方法,数据比较器对待处理的数据中是否存在非数值、无穷数或零值依次进行判断,根据判断结果决定是否需要将待处理的数据输入比较电路进行比较,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一个实施例提供的数据处理方法,上述S1021中通过非数值判断单元判断待处理的所述数据中是否存在非数值之后,还包括:若存在非数值,则输出第一运算结果,结束运算。
具体的,如果非数值判断单元接收到的待处理的数据中至少有一个非数值,则非数值判断单元可以直接通过非数值判断结果输出端口(unordered)输出第一运算结果,结束比较运算,其中,上述第一运算结果为高电平信号。此时,说明接收到的待处理的数据中有非数值,无法进行数值比较,结束运算。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据中至少存在一个非数值,则非数值判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S1021中将待处理的所述数据输入到无穷数判断单元,通过所述无穷数判断单元判断待处理的所述数据中是否存在无穷数之后,还包括:若存在无穷数,则输出第二运算结果,结束运算。
具体的,如果无穷数判断单元接收到的待处理的数据中有无穷数,则无穷数判断单元可以直接通过无穷数判断结果输出端口(altb1),(aeqb1)和(agtb1)中的任意一个端口输出第二运算结果,并通过数据比较器的最大值输出端口(Zmax)和最小值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第二运算结果为高电平信号。
示例性的,若输入的两个待处理的数据为a和b,当无穷数判断结果输出端口(altb1)输出高电平信号时,则表示a<b,此时,通过数据比较器的最大值输出端口(Zmax)输出数据b,通过最小值输出端口(Zmin)输出待处理的数据a。
需要说明的是,若无穷数判断单元接收到的两个待处理的数据均为无穷数,且两个无穷数的符号位相同,则无穷数判断单元通过无穷数判断结果输出端口(aeqb1)输出第二运算结果,结束运算,其中,上述第二运算结果为高电平信号。若无穷数判断单元接收到的两个待处理的数据中有一个待处理的数据为无穷数,另一个待处理的数据不为无穷数,则根据符号位判断两个待处理的数据的大小。
示例性的,若输入的两个待处理的数据为a和b,a为无穷数,且符号位为0(即表示正无穷),b不为无穷数,则说明a>b,此时,无穷数判断单元通过无穷数判断结果输出端口(agtb1)输出第二运算结果,结束比较运算。若输入的两个待处理的数据为a和b,a为无穷数,且符号位为1(即表示负无穷),b不为无穷数,则说明a<b,此时,无穷数判断单元通过无穷数判断结果输出端口(altb1)输出第二运算结果,结束比较运算。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据中存在无穷数,则无穷数判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S1023中将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值之后,还包括:若存在零值,则输出第三运算结果,结束运算。
具体的,如果零值判断单元接收到的待处理的数据中有零值,则零值判断单元可以直接通过零值判断结果输出端口(altb2),(aeqb2)和(agtb2)中的任意一个端口输出第三运算结果,并通过数据比较器的最大值输出端口(Zmax)和最小值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算。其中,上述第三运算结果为高电平信号。
需要说明的是,若零值判断单元接收到的两个待处理的数据均为零值时,则零值判断单元通过零值判断结果输出端口(aeqb2)输出第三运算结果,结束运算,其中,上述第三运算结果为高电平信号。若零值判断单元接收到的两个待处理的数据中有一个待处理的数据为零值,则根据另一个待处理的数据的符号位判断两个待处理的数据的大小。
示例性的,若输入的待处理的数据为a和b,a为零值,b不为零值,b的符号位为0(即b为正数),则零值判断单元通过零值判断结果输出端口(altb2)输出第三运算结果,结束运算,若b的符号位为1(即b为负数),则零值判断单元通过零值判断结果输出端口(agtb2)输出第三运算结果,结束运算。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据中存在零值,则零值判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S103中所述判断电路分别将待处理的所述数据的符号位,指数位和尾数位输入到比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出比较运算结果,可以通过以下所述方法实现,具体包括:
S1031、通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等。
具体的,上述待处理的数据的符号位可以用0或1表示,0表示该数据为正数,1表示该数据为负数。需要说明的是,当零值判断结果输出端口和无穷数判断结果输出端口均输出低电平信号时,数据比较器可以通过零值判断单元或无穷数判断单元将待处理的数据输入到符号位比较单元进行处理。
S1032、若待处理的所述数据的符号位相等,则将待处理的所述数据的指数位输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等。
具体的,如果接收到的待处理的数据的符号位相等,则将待处理的数据的指数位输入到指数位比较单元,通过指数位比较单元继续判断待处理的数据的指数位是否相等。
需要说明的是,当符号位比较结果输出端口没有输出高电平信号时,数据比较器可以通过符号位比较单元将待处理的数据的指数位输入到指数位比较单元。
S1033、若待处理的所述数据的指数位相等,则将待处理的所述数据的尾数位输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等。
具体的,如果接收到的待处理的数据的指数位相等,则将待处理的数据的尾数位输入到尾数位比较单元,通过尾数位比较单元继续判断待处理的数据的尾数位是否相等。
需要说明的是,当指数位比较结果输出端口没有输出高电平信号时,数据比较器可以通过指数位比较单元将待处理的数据的尾数位输入到尾数位比较单元。
S1034、若待处理的所述数据的尾数位相等,则输出第四运算结果,结束运算。
具体的,如果接收到的待处理的数据的尾数位相等,则尾数位比较单元通过尾数位比较结果输出端口(aegb5)输出第四运算结果,并通过数据比较器的最大值输出端口(Zmax)和最小值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第四运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器对接收到的待处理的数据的符号位,指数位和尾数位依次进行比较,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
可选的,上述通过判断电路分别将待处理的所述数据输入到比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,输出比较运算结果,具体包括:
S1035、通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等。
S1036、若待处理的所述数据的符号位相等,则将待处理的所述数据输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等。
具体的,如果接收到的待处理的数据的符号位相等,则将待处理的数据输入到指数位比较单元,通过指数位比较单元继续判断待处理的数据的指数位是否相等。
需要说明的是,当符号位比较结果输出端口没有输出高电平信号时,数据比较器可以通过符号位比较单元将待处理的数据输入到指数位比较单元。
S1037、若待处理的所述数据的指数位相等,则将待处理的所述数据输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等。
具体的,如果接收到的待处理的数据的指数位相等,则将待处理的数据输入到尾数位比较单元,通过尾数位比较单元继续判断待处理的数据的尾数位是否相等。
需要说明的是,当指数位比较结果输出端口没有输出高电平信号时,数据比较器可以通过指数位比较单元将待处理的数据输入到尾数位比较单元。
S1038、若待处理的所述数据的尾数位相等,则输出第四运算结果,结束运算。
具体的,如果接收到的待处理的数据的尾数位相等,则尾数位比较单元通过尾数位比较结果输出端口(aegb5)输出第四运算结果,并通过数据比较器的最大值输出端口(Zmax)和最小值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第四运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器对接收到的待处理的数据的符号位,指数位和尾数位依次进行比较,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S103中所述判断电路分别将待处理的所述数据的符号位,指数位和尾数位输入到比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,得到比较运算结果,可以通过以下所述方法实现,具体包括:将所述判断电路与所述比较电路中每一个单元对应的输出端口进行或逻辑运算,得到比较运算结果。
具体的,如果数据比较器采用并行处理方式处理数据时,可以分别通过判断电路中的每一个判断单元和比较电路中的每一个比较单元对待处理的数据进行处理,并将判断电路与比较电路中每个单元对应的输出端口unordered,altb,agtb和aeqb分别进行或逻辑运算,得到比较运算结果。
本实施例提供的一种数据处理方法,数据比较器对接收到的待处理的数据进行并行处理,可以减少运算的复杂度,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S1031中通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等之后,还包括:若待处理的所述数据的符号位不相等,则输出第五运算结果,结束运算。
具体的,若符号位比较单元接收到的两个待处理的数据的符号位不相等时,正数大于负数。示例性的,若输入的两个数据为a和b,a的符号位为0,b的符号位为1,则说明a>b,此时,符号位比较单元通过符号位比较结果输出端口(agtb3)输出第五运算结果,并通过数据比较器的最大值输出端口(Zmax)和最小值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第五运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据的符号位不相等,则符号位比较单元直接输出高电平信号,不需要继续通过其它单元对待处理的数据进行处理,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S1032中将所述待处理的数据的指数位输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等之后,还包括:若待处理的所述数据的指数位不相等,则输出第六运算结果,结束运算。
需要说明的是,若指数位比较单元接收到的两个待处理的数据的指数位不相等时,对于正数,则指数位越大,数值越大,对于负数,则指数位越大,数值越小。示例性的,若输入的两个数据为a和b,a和b的符号位均为1,且a的指数位大于b的指数位,则说明a<b,此时,指数位比较单元通过指数位比较结果输出端口(altb4)输出第六运算结果,结束运算;若a和b的符号位均为0,且a的指数位大于b的指数位,则说明a>b,此时,指数位比较单元通过指数位比较结果输出端口(agtb4)输出第六运算结果,并通过数据比较器的最大值输出端口(Zmax)和最小值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第六运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据的指数位不相等,则指数位比较单元直接输出高电平信号,不需要继续通过其它单元对待处理的数据进行处理,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
可选的,上述S1036中将所述待处理的数据输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等之后,还包括:若待处理的所述数据的指数位不相等,则输出第六运算结果,结束运算。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据的指数位不相等,则指数位比较单元直接输出高电平信号,不需要继续通过其它单元对待处理的数据进行处理,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,上述S1036中所述指数位比较单元判断待处理的所述数据的指数位是否相等,具体包括:
S1036a、将待处理的所述数据的指数位划分成第一指数位和第二指数位,判断所述第一指数是否相等。
具体的,通过综合考虑IEEE数据算术标准规定的不同位宽数据的指数位和尾数位位宽,待处理的数据的位宽,以及数据比较器可处理的数据位宽,将待处理的数据的指数位可以划分成两部分,分别为第一指数位和第二指数位。可选的,上述第一指数位可以为指数位的前半部分,上述第二指数位可以为指数位的后半部分。
示例性的,基于IEEE数据算术标准,规定32位数据中符号位可以为1比特位宽,指数位可以为8比特位宽,尾数位可以为23比特位宽。其中,a[30:26]和a[25:23]可以作为数据指数位的前后两部分,a[22:16]、a[15]、a[14:10]和a[9:0]均可以作为数据尾数位部分,a[31]可以为数据的符号位。另外,基于IEEE数据算术标准中将32位数据的指数位和尾数位按照上述方法划分,主要兼顾了32位数据和16位数据的指数位和尾数位的位宽规则,以及32位数据可以划分成高低16位数据进行比较处理的问题。
S1036b、若待处理的所述数据指数位的第一指数位相等,则判断所述第二指数位是否相等。
需要说明的是,对于32位数据或16位数据的指数位进行比较运算时,可以先比较指数位的前半部分,若数据指数位的前半部分大小不相等,此时就可以直接确定两个数据的大小关系,结束运算,若数据指数位的前半部分大小相等,则继续比较数据指数位的后半部分的大小,直达数据指数位全部比较完成。
S1036c、若待处理的所述数据指数位的第二指数位相等,则继续通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等。
具体的,如果数据的第二指数位也比较完成后且相等,则可以继续对数据的尾数位进行比较。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据的指数位不相等,则指数位比较单元直接输出高电平信号,不需要继续通过其它单元对待处理的数据进行处理,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S1033中将待处理的所述数据的尾数位输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等之后,还包括:若待处理的所述数据的尾数位不相等,则输出第七运算结果,结束运算。
需要说明的是,若尾数位比较单元接收到的两个待处理的数据的尾数位不相等时,对于正数,则尾数位越大,数值越大,对于负数,则尾数位越大,数值越小。示例性的,若输入的两个待处理的数据为a和b,a和b的符号位均为1,且a的尾数位大于b的尾数位,则说明a<b,此时,尾数位比较单元通过尾数位比较结果输出端口(altb5)输出第六运算结果,结束运算;若a和b的符号位均为0,且a的尾数位大于b的尾数位,则说明a>b,此时,尾数位比较单元通过尾数位比较结果输出端口(agtb5)输出第七运算结果,并通过数据比较器的最大值输出端口(Zmax)和最小值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第七运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据的尾数位不相等,则尾数位比较单元直接输出高电平信号,不需要继续通过其它单元对待处理的数据进行处理,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
可选的,上述S1037中将待处理的所述数据输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等之后,还包括:若待处理的所述数据的尾数位不相等,则输出第七运算结果,结束运算。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理数据的尾数位不相等,则尾数位比较单元可以输出高电平信号,从而结束运算得到运算结果;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,上述S1037中所述尾数位比较单元判断待处理的所述数据的尾数位是否相等,具体包括:
S1037a、将待处理的所述数据的尾数位划分成第一尾数位和第二尾数位,判断所述第一尾数位是否相等。
S1037b、若待处理的所述数据指数位的第一尾数位相等,则判断所述第二尾数位是否相等。
需要说明的是,尾数位的比较方式可以与指数位的比较方式类似,在此不再赘述。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理数据的尾数位不相等,则尾数位比较单元可以输出高电平信号,从而结束运算得到运算结果;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少数据比较器占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法的流程示意图,该方法可以通过图21和图22所示的数据比较器进行处理,本实施例涉及的是对数据进行比较运算的过程。该方法包括:
S201、接收待处理的数据。
S202、通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理。
S203、若需要,则所述判断电路将待处理的所述数据输入到所述比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,得到运算结果。
具体的,若待处理的数据中不存在非数值、无穷数或零值,则通过判断电路对待处理的数据处理后,可以将待处理的数据或待处理的数据的符号位数据输入到比较电路,通过比较电路依次比较待处理的数据的符号位,指数位和尾数位大小,比较单元根据数据的符号位,指数位和尾数位的比较结果输出高电平信号,并通过数据比较器的最大数值输出端口(Zmax)和最小数值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束运算。
示例性的,若输入的是32位的两个待处理的数据a和b,当前数据比较器可以进行16位待处理的数据比较运算,数据比较器将输入的两个32位待处理的数据按照高低16位对应分成两组16位待处理的数据,则最大数值输出端口(Zmax)和最小数值输出端口(Zmin)输出的数值,均是通过高低16位待处理的数据分别比较最大值或最小值后拼接得到。若数据比较器当前可处理的数据位宽和接收到的待处理的数据位宽相等均为32,则最大数值输出端口(Zmax)和最小数值输出端口(Zmin)输出的32位最大值和最小值的高低16位数据,为同一个待处理的数据的高低16位数据。
本实施例提供的一种数据处理方法,数据比较器通过判断电路判断待处理的数据是否需要通过比较电路进行处理,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据处理方法。上述S202中通过判断电路判断待处理的所述数据是否需要通过比较电路进行处理,包括:通过所述判断电路判断待处理的所述数据中是否存在非数值、无穷数或零值;若不存在零值,则判断所述数据需要通过所述比较电路进行处理。
需要说明的是,基于IEEE数据算术标准中非数值,无穷数和零值对应的编码标准,若判断电路接收到的待处理的数据中不存在非数值、无穷数或零值,则可以判断待处理的数据还需要通过比较电路进行下一步处理;若判断电路接收到的待处理的数据中存在非数值、无穷数或零值,则判断电路的判断结果为是,会输出高电平信号,结束运算。在本实施例中,高电平信号可以用1表示。
本实施例提供的一种数据处理方法,数据比较器通过先对待处理的数据中是否存在非数值、无穷数或零值进行判断,根据判断结果决定是否输入比较电路进行处理,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一个实施例提供的数据处理方法,上述S2021中通过非数值判断单元判断待处理的所述数据中是否存在非数值之后,还包括:若存在非数值,则输出第一运算结果,结束运算。
具体的,如果非数值判断单元接收到的待处理的数据中至少有一个非数值,则非数值判断单元可以直接通过判断结果输出端口(unordered)输出第一运算结果,结束比较运算,其中,上述第一运算结果为高电平信号。此时,说明接收到的待处理的数据中有非数值,无法进行数值比较,结束运算。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据中至少存在一个非数值,则非数值判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S2021中将待处理的所述数据输入到无穷数判断单元,通过所述无穷数判断单元判断待处理的所述数据中是否存在无穷数之后,还包括:若存在无穷数,则输出第二运算结果,结束运算。
具体的,如果无穷数判断单元接收到的待处理的数据中有无穷数,则无穷数判断单元可以直接通过判断结果输出端口(altb1),(aeqb1)和(agtb1)输出第二运算结果,并通过数据比较器的最大数值输出端口(Zmax)和最小数值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第二运算结果为高电平信号。
示例性的,若输入的两个待处理的数据为a和b,当判断结果输出端口(altb1)输出高电平信号时,则表示a<b,此时,通过数据比较器的最大数值输出端口(Zmax)输出数据b,通过最小数值输出端口(Zmin)输出待处理的数据a。
需要说明的是,若无穷数判断单元接收到的两个待处理的数据均为无穷数,且两个无穷数的符号位相同,则无穷数判断单元通过判断结果输出端口(aeqb1)输出第二运算结果,结束运算,其中,上述第二运算结果为高电平信号。若无穷数判断单元接收到的两个待处理的数据中有一个待处理的数据为无穷数,另一个待处理的数据不为无穷数,则根据符号位判断两个待处理的数据的大小。
示例性的,若输入的两个待处理的数据为a和b,a为无穷数,且符号位为0(即表示正无穷),b不为无穷数,则说明a>b,此时,无穷数判断单元通过判断结果输出端口(agtb1)输出第二运算结果,结束比较运算。若输入的两个待处理的数据为a和b,a为无穷数,且符号位为1(即表示负无穷),b不为无穷数,则说明a<b,此时,无穷数判断单元通过判断结果输出端口(altb1)输出第二运算结果,结束比较运算。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据中存在无穷数,则无穷数判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S2023中将待处理的所述数据输入到零值判断单元,通过所述零值判断单元判断待处理的所述数据中是否存在零值之后,还包括:若存在零值,则输出第三运算结果,结束运算。
具体的,如果零值判断单元接收到的待处理的数据中有零值,则零值判断单元可以直接通过判断结果输出端口(altb2),(aeqb2)和(agtb2)输出第三运算结果,并通过数据比较器的最大数值输出端口(Zmax)和最小数值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算。其中,上述第三运算结果为高电平信号。
需要说明的是,若零值判断单元接收到的两个待处理的数据均为零值时,则零值判断单元通过判断结果输出端口(aeqb2)输出第三运算结果,结束运算,其中,上述第三运算结果为高电平信号。若零值判断单元接收到的两个待处理的数据中有一个待处理的数据为零值,则根据另一个待处理的数据的符号位判断两个待处理的数据的大小。
示例性的,若输入的两个待处理的数据为a和b,a为零值,b不为零值,b的符号位为0(即表示b为正数),则零值判断单元通过判断结果输出端口(altb2)输出第三运算结果,结束运算,若b的符号位为1(即表示b为负数),则零值判断单元通过判断结果输出端口(agtb2)输出第三运算结果,结束运算。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据中存在零值,则零值判断单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S203中所述判断电路将待处理的所述数据输入到比较电路,通过所述比较电路比较待处理的所述数据的符号位,指数位和尾数位大小,得到运算结果,可以通过以下所述方法实现,具体包括:
S2031、通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等。
需要说明的是,上述待处理的数据的符号位可以用0或1表示,0表示该数据为正数,1表示该数据为负数。
需要说明的是,当零值判断单元或无穷数判断单元没有输出高电平信号时,数据比较器可以通过零值判断单元或无穷数判断单元将待处理的数据输入到符号位比较单元。
S2032、若待处理的所述数据的符号位相等,则将待处理的所述数据输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等。
具体的,如果接收到的待处理的数据的符号位相等,则将待处理的数据输入到指数位比较单元,通过指数位比较单元继续判断待处理的数据的指数位是否相等。
需要说明的是,当符号位比较单元没有输出高电平信号时,数据比较器可以通过符号位比较单元将待处理的数据输入到指数位比较单元。
S2033、若待处理的所述数据的指数位相等,则将待处理的所述数据输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等。
具体的,如果接收到的待处理的数据的指数位相等,则将待处理的数据输入到尾数位比较单元,通过尾数位比较单元继续判断待处理的数据的尾数位是否相等。
需要说明的是,当指数位比较单元没有输出高电平信号时,数据比较器可以通过指数位比较单元将待处理的数据输入到尾数位比较单元。
S2034、若待处理的所述数据的尾数位相等,则输出第四运算结果,结束运算。
具体的,如果接收到的待处理的数据的尾数位相等,则尾数位比较单元通过比较结果输出端口(aegb5)输出第四运算结果,并通过数据比较器的最大数值输出端口(Zmax)和最小数值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第四运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器对接收到的待处理的数据的符号位,指数位和尾数位依次进行比较,以减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S2031中通过符号位比较单元判断接收到的待处理的所述数据的符号位是否相等之后,还包括:若待处理的所述数据的符号位不相等,则输出第五运算结果,结束运算。
需要说明的是,若符号位比较单元接收到的两个待处理的数据的符号位不相等时,正数大于负数。示例性的,若输入的两个数据为a和b,a的符号位为0,b的符号位为1,则说明a>b,此时,符号位比较单元通过比较结果输出端口(agtb3)输出第五运算结果,并通过数据比较器的最大数值输出端口(Zmax)和最小数值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第五运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据的符号位不相等,则符号位比较单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S1032中将所述待处理的数据输入到指数位比较单元,通过所述指数位比较单元判断待处理的所述数据的指数位是否相等之后,还包括:若待处理的所述数据的指数位不相等,则输出第六运算结果,结束运算。
需要说明的是,若指数位比较单元接收到的两个待处理的数据的指数位不相等时,对于正数,则指数位越大,数值越大,对于负数,则指数位越大,数值越小。示例性的,若输入的两个数据为a和b,a和b的符号位均为1,且a的指数位大于b的指数位,则说明a<b,此时,符号位比较单元通过比较结果输出端口(altb4)输出第六运算结果,结束运算;若a和b的符号位均为0,且a的指数位大于b的指数位,则说明a>b,此时,符号位比较单元通过比较结果输出端口(agtb4)输出第六运算结果,并通过数据比较器的最大数值输出端口(Zmax)和最小数值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第六运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据的指数位不相等,则指数位比较单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
另一实施例提供的数据处理方法,上述S2033中将所述数据输入到尾数位比较单元,通过所述尾数位比较单元判断待处理的所述数据的尾数位是否相等之后,还包括:若待处理的所述数据的尾数位不相等,则输出第七运算结果,结束运算。
需要说明的是,若尾数位比较单元接收到的两个待处理的数据的尾数位不相等时,对于正数,则尾数位越大,数值越大,对于负数,则尾数位越大,数值越小。示例性的,若输入的两个待处理的数据为a和b,a和b的符号位均为1,且a的尾数位大于b的尾数位,则说明a<b,此时,尾数位比较单元通过比较结果输出端口(altb5)输出第六运算结果,结束运算;若a和b的符号位均为0,且a的尾数位大于b的尾数位,则说明a>b,此时,尾数位比较单元通过比较结果输出端口(agtb5)输出第七运算结果,并通过数据比较器的最大数值输出端口(Zmax)和最小数值输出端口(Zmin),输出接收到的待处理的数据中最大数据和最小数据,结束比较运算,其中,上述第七运算结果为高电平信号。
本实施例提供的一种数据处理方法,数据比较器若接收到的待处理的数据的尾数位不相等,则尾数位比较单元直接输出高电平信号,不需要继续进行其它单元的运算,从而减少运算量,节省运算时间;另外,数据比较器根据接收到的不同功能选择模式信号,可以处理多种不同位宽的数据运算,有效减少了数据比较器占用AI芯片的面积。
第二种实现方式
该种实现方式可以通过如下实施例进行详细说明:
另一个实施例提供的数据处理方法,该方法可以通过图24和图27所示的复用向量选择装置进行处理,本实施例涉及的是N个数据进行循环比较运算选取极值的过程。该方法包括:
S101、接收待处理的数据。
具体的,复用向量选择装置可以通过数据读入电路接收N个待处理的数据,并且复用向量选择装置还可以通过循环比较电路接收不同功能选择模式信号。可选的,数据读入电路接收的待处理的数据个数N可以大于2,即数据读入电路读入待处理的数据的数量可以大于2。
可选的,若循环比较电路接收不同功能选择模式信号,则表示循环比较电路可以对不同对应位宽的数据进行比较运算,同时,不同功能选择模式信号与循环比较电路可以处理不同位宽的数据之间的对应关系可以灵活设置,对此本实施例不作任何限定。
需要说明的是,如果数据读入电路接收到的N个待处理的数据的位宽,与循环比较电路接收到的功能选择模式信号对应可处理的数据位宽不相等,则循环比较电路会根据循环比较电路当前可处理的数据位宽,将接收到的N个待处理的数据分成,与循环比较电路当前可处理的数据位宽相等的多组数据进行并行处理,其中,数据读入电路接收到的待处理的数据的位宽可以大于循环比较电路当前可处理的数据位宽。可选的,上述并行处理可以表征为将分成的每一组待处理的数据同时进行处理。如果数据读入电路接收到的N个待处理的数据的位宽,与循环比较电路接收到的功能选择模式信号对应可处理的数据位宽相等,则循环比较电路可以直接对接收到的N个待处理的数据进行处理。
S102、对待处理的所述数据进行循环比较运算。
需要说明的是,每一次比较运算,通过循环比较电路可以对N个待处理的数据中的任意两个数据进行比较,得到两个数据中的极值,并且在每一次比较运算时,通过循环比较电路可以接收到数据读入电路输入的一个待处理的数据。
S103、获取当前寄存器存储区间对应的地址移位数据。
具体的,复用向量选择装置通过判断单元可以获取所述地址计数器中累加记录比较运算读入数据时,当前寄存器存储区间对应的地址移位数据。
需要说明的是,通过地址计数器可以获取每一次比较运算,地址计数器读入的待处理的数据所对应的寄存器中存储地址,与上一次读入的待处理数据对应的寄存器存储地址的移位数值。可选的,地址计数器第一次读入的待处理的数据的地址移位数据可以在寄存器中存储区间的首地址基础上获得。
示例性的,若有两个寄存器存储区间,每个存储区间分别存储一个16位的待处理数据,两个待处理的数据为1011110000000100→1(寄存器存储区间的存储地址为A[1]),1011110011000100→2(寄存器存储区间的存储地址为首地址A[2]),并且寄存器存储区间存储数据的首地址为A[0],则地址计数器读入第一个待处理的数据时,寄存器需要在首地址的基础上向后移一位,才能将第一个待处理的数据输入到地址计数器,此时,寄存器存储区间的地址移位数据可以等于1;若地址计数器需要接收第二个待处理的数据时,寄存器需要在第一个待处理数据对应寄存器存储地址的基础上向后移一位,才能将第二个待处理的数据输入到地址计数器,此时,寄存器存储区间的地址移位数据可以等于第一次的地址移位数据与第二次的地址移位数据(即1)之和。
S104、根据当前寄存器存储区间对应的所述地址移位数据,判断是否满足结束所述循环比较运算的条件。
具体的,每一次比较运算结束后,复用向量选择装置中的结束判断电路可以根据当前寄存器存储区间对应的地址移位数据,判断当前是否满足结束循环比较运算的条件。
S105、若满足结束所述循环比较运算的条件,则输出极值选取运算结果。
具体的,如果结束判断电路判断出本次比较运算结束后,可以结束循环比较运算,则停止循环比较运算,并通过极值寄存电路输出最终的向量极值。可选的,上述向量极值可以表征为数据读入电路接收到的所有待处理的数据中的极值。
本实施例提供的一种数据处理方法,该方法可以通过循环比较运算得到待处理数据中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号,处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一个实施例提供的另一种数据处理方法,该方法可以通过图25和图28所示的复用向量选择装置进行处理,本实施例涉及的是数据进行循环比较运算选取极值的过程。该方法包括:
S201、接收待处理的数据。
S202、通过循环比较电路对待处理的所述数据进行循环比较运算。
S203、通过结束判断电路判断是否满足结束所述循环比较运算的条件。
具体的,每一次比较运算结束后,可以通过结束判断电路判断当前是否满足结束循环比较运算的条件。
S204、若满足结束所述循环比较运算的条件,则输出极值选取运算结果。
具体的,如果结束判断电路判断出本次比较运算结束后,可以结束循环比较运算,则停止循环比较运算,并通过极值寄存电路输出最终的向量极值。可选的,上述向量极值可以表征为数据读入电路接收到的所有待处理的数据中的极值。
本实施例提供的一种数据处理方法,该方法可以通过循环比较运算得到待处理数据中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号,处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一个实施例提供的另一种数据处理方法,该方法可以通过图26及图29至图31所示的复用向量选择装置进行处理,本实施例涉及的是数据进行循环比较运算选取极值的过程。该方法包括:
S301、接收待处理的数据。
S302、对待处理的所述数据进行循环比较运算。
S303、获取循环比较电路的运算总次数。
具体的,通过计数单元可以累加记录得到第一复用比较器和第二复用比较器循环比较运算的总次数。
需要说明的是,循环比较运算的总次数可以等于第一复用比较器进行循环比较运算的总次数,还可以等于第二复用比较器进行循环比较运算的总次数。
S304、根据循环比较电路的所述运算总次数,判断是否满足结束所述循环比较运算的条件。
具体的,每一次比较运算结束后,复用向量选择装置中的结束判断电路可以根据循环比较电路的运算总次数,判断当前是否满足结束循环比较运算的条件。
S305、若满足结束所述循环比较运算的条件,则输出极值选取运算结果。
本实施例提供的一种数据处理方法,该方法可以通过循环比较运算得到待处理数据中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号,处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S302中对待处理的所述数据进行循环比较运算,包括:按照寄存器中存储区间的地址顺序,将所述标量寄存器阵列中存储的待处理的所述数据输入到所述循环比较电路,通过所述循环比较电路循环比较待处理的所述数据。
具体的,复用向量选择装置可以按照存储区间的首地址将标量寄存器阵列中存储的待处理数据依次输入到第一复用比较器和/或第二复用比较器中,每一次比较运算时,标量寄存器阵列可以按照存储区间的地址顺序向第一复用比较器和/或第二复用比较器输入一个待处理的数据,并且第一复用比较器和第二复用比较器均可以对两个待处理的数据进行比较运算,得到两个数据中的极大值或极小值。可选的,循环比较运算的总次数可以等于待处理的数据的个数。
本实施例提供的一种数据处理方法,该方法可以得到待处理数据中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,所述接收待处理的数据的步骤包括:
S1011、所述地址计数器按照寄存器中存储区间的地址顺序,读入所述寄存器中存储区间内存储的待处理的数据。
具体的,根据寄存器中存储区间的首地址和寄存器中存储区间的地址顺序,每一次比较运算时,通过地址计数器可以读入一个寄存器中存储区间内存储的待处理的数据。可选的,寄存器中存储区间的数量可以等于待处理的数据的数量。可选的,地址计数器读入数据的次数可以等于待处理的数据的数量。
S1012、通过所述标量数据读取单元读取地址计数器读入的待处理的所述数据。
需要说明的是,每一次比较运算时,地址计数器可以读入一个寄存器中存储区间内存储的待处理的数据,并通过标量数据读取单元读取本次比较运算地址计数器读入的待处理的数据。可选的,标量数据读取单元读取数据的次数可以等于待处理数据的数量。
本实施例提供的一种数据处理方法,该方法可以得到待处理数据中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S102中对待处理的所述数据进行循环比较运算,包括:将所述标量数据读取单元读取的待处理的所述数据输入到所述循环比较电路,通过所述循环比较电路循环比较待处理的所述数据。
需要说明的是,复用向量选择装置可以将标量数据读取单元读取的待处理数据依次输入到第一复用比较器和/或第二复用比较器中,每一次比较运算时,地址计数器按照寄存器中存储区间的地址的顺序读入对应的待处理的数据,标量数据读取单元读取地址计数器本次比较运算读入的对应待处理的数据,并将该待处理的数据输入到第一复用比较器和/或第二复用比较器进行比较运算。可选的,第一复用比较器和第二复用比较器均可以对两个待处理的数据进行比较运算,得到两个数据中的极大值或极小值。可选的,循环比较运算的总次数可以等于待处理的数据的个数。
本实施例提供的一种数据处理方法,该方法可以得到待处理数据中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S104中根据当前寄存器存储区间对应的所述地址移位数据,判断是否满足结束所述循环比较运算的条件,包括:根据寄存器存储区间对应的所述地址移位数值,与比较运算寄存器总共需要的地址移位数值,判断所述循环比较运算是否满足结束所述循环比较运算的条件。
具体的,复用向量选择装置通过判断单元可以根据地址计数器中累加记录比较运算读入数据时,寄存器存储区间对应的地址移位数值,与比较N个数据寄存器总共需要的地址移位数值的大小关系,判断循环比较运算是否满足结束循环比较运算的条件。可选的,结束循环比较运算的条件可以为地址计数器中累加记录比较运算读入数据时,寄存器存储区间对应的地址移位数值,等于比较N个数据寄存器总共需要的地址移位数值。
本实施例提供的一种数据处理方法,该方法可以得到待处理数据中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,本实施例涉及的是在接收待处理的数据的步骤之后,该方法还包括:
S106、通过数据读取单元接收待处理的所述数据的个数N。
S107、根据寄存器中N个存储区间的首地址和所述数据个数读入所述数据,并将所述数据存储至标量寄存器阵列中。
具体的,标量寄存器阵列可以根据寄存器中N个存储区间的首地址,依次将数据读取单元读入的待处理数据存放至标量寄存器阵列中的N个存储区间中。可选的,每一次所述标量寄存器阵列可以存储一个待处理的数据。可选的,每一个存储区间可以存放一个待处理的数据。可选的,存储区间的数量可以等于接收到的待处理的数据个数,还可以大于接收到的待处理的数据个数。
示例性的,如果待处理数据的首地址对应的存储区间为A[0],数据读入电路读入的是三个16位浮点数,分别为1011110000000100→1,1011110011000100→2,1011110001010100→3,则标量寄存器阵列可以有三个寄存器存储区间存放数据,当第1个数据存放至存储区间A[0]对应的首地址中时,则第2个数据可以存放至下一个存储区间(即A[1])对应的存储地址中,第3个浮点数可以继续存放至下一个存储区间(即A[2])对应的存储地址中。
本实施例提供的一种数据处理方法,该方法可以得到待处理数据中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S302中对待处理的所述数据进行循环比较运算,包括:按照所述存储区间的地址顺序,将所述标量寄存器阵列中存储的待处理的所述数据输入到所述循环比较电路,通过所述循环比较电路循环比较待处理的所述数据。
具体的,复用向量选择装置可以按照存储区间的首地址将标量寄存器阵列中存储的待处理数据依次输入到第一复用比较器和/或第二复用比较器中,每一次比较运算时,标量寄存器阵列可以按照存储区间的地址顺序向第一复用比较器和/或第二复用比较器输入一个待处理的数据,并且第一复用比较器和第二复用比较器均可以对两个待处理的数据进行比较运算,得到两个数据中的极大值或极小值。可选的,循环比较运算的总次数可以等于待处理的数据的个数。
本实施例提供的一种数据处理方法,该方法可以得到待处理浮点数中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,上述S304中根据循环比较电路的所述运算总次数,判断是否满足结束所述循环比较运算的条件,包括:根据循环比较电路的所述运算总次数,与数据读入电路接收到的待处理数据的个数,判断所述循环比较运算是否满足结束所述循环比较运算的条件。
具体的,判断单元可以根据循环比较电路循环比较运算的总次数与数据读入电路接收到的待处理数据的个数,判断循环比较运算是否满足结束循环比较运算的条件。可选的,结束循环比较运算的条件可以为循环比较运算的总次数等于数据读取单元接收到的待处理数据的个数。
本实施例提供的一种数据处理方法,该方法可以得到待处理数据中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S203中通过结束判断电路判断是否满足结束所述循环比较运算的条件,包括:
S2031、通过判断单元获取所述标量寄存器阵列中,当前寄存器中被清空的存储区间数量。
具体的,通过判断单元可以获取标量寄存器阵列中所有存储区间,当前已经被清空的存储区间的数量。需要说明的是,已经被清空的存储区间可以表征为存储区间中存储的数据已经输入到循环比较电路,进行了比较运算处理,当前该存储区间中没有存储的数据了。
S2032、根据所述标量寄存器阵列中,当前寄存器中被清空的存储区间的数量,判断所述循环比较运算是否满足结束所述循环比较运算的条件。
具体的,判断单元可以根据标量寄存器阵列中当前被清空的存储区间的数量,与数据读取单元接收到的数据的个数的大小关系,判断循环比较运算是否满足结束循环比较运算的条件。可选的,结束循环比较运算的条件可以为标量寄存器阵列中当前被清空的存储区间的数量,等于数据读取单元接收到的数据的个数。
本实施例提供的一种数据处理方法,该方法可以得到待处理数据中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,在上述S304根据循环比较电路的所述运算次数,判断是否满足结束所述循环比较运算的条件的步骤之后,该方法还包括:若否,则继续通过所述循环比较电路对待处理的所述数据进行比较运算。
具体的,如果结束判断电路判断出本次比较运算结束后,不满足结束循环比较运算的条件,则复用向量选择装置可以通过循环比较电路对数据读入电路中未进行比较运算的待处理数据,继续进行比较运算。可选的,数据读入电路中未进行比较运算的待处理数据可以有一个,还可以有多个。
本实施例提供的一种数据处理方法,该过程可以得到待处理数据中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S305中若满足结束所述循环比较运算的条件,则输出极值选取运算结果,包括:通过极值寄存电路接收所述判断单元输入的逻辑判断信号,并根据所述逻辑判断信号输出运算结果。
具体的,极值寄存电路可以接收判断单元输入的高电平逻辑判断信号,还可以接收判断单元输入的低电平逻辑判断信号。若极值寄存电路接收到的是低电平逻辑判断信号,则可以表示复用向量选择装置需要继续通过循环比较电路对未进行比较运算的待处理数据进行循环比较运算。若极值寄存电路接收到的是高电平逻辑判断信号,则可以结束运算,输出最终的比较运算结果。
本实施例提供的一种数据处理方法,该过程可以得到待处理数据中的极大值和极小值,节省运算时间;另外,复用向量选择装置能够根据循环比较电路接收到的不同功能选择模式信号,处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且可以降低数据处理装置的功耗,进而提高AI芯片的性能,并且有效降低数据处理装置的功耗,进而提高AI芯片的性能。
在其中一个实施例中,上述S4320中对调度后的所述第二数据进行向量极值选取运算,得到极值选取运算结果,具体包括通过以下方式实现。
该种实现方式可以通过如下实施例进行详细说明:
另一个实施例提供的数据处理方法,该方法可以通过图32和图35所示的复用向量选择装置进行处理,本实施例涉及的是多个数据进行多层循环比较运算选取极值的过程。该方法包括:
S101、接收待处理的数据。
具体的,复用向量选择装置可以通过数据读入电路接收N个待处理的数据,并且复用向量选择装置还可以通过复用比较树电路接收不同功能选择模式信号。可选的,上述数据可以为浮点数。可选的,数据读入电路接收的待处理的数据个数N可以大于2,即数据读入电路读入待处理的数据的个数N可以大于2。
需要说明的是,若复用比较树电路接收不同功能选择模式信号,则表示复用比较树电路可以对不同对应位宽的数据进行比较运算,同时,不同功能选择模式信号与复用比较树电路可以处理不同位宽的数据之间的对应关系可以灵活设置,对此本实施例不作任何限定。
需要说明的是,如果数据读入电路接收到的待处理的数据的位宽,与复用比较树电路接收到的功能选择模式信号对应可处理的数据位宽不相等,则复用比较树电路会根据复用比较树电路当前可处理的数据位宽,将接收到的待处理的数据分成,与复用比较树电路当前可处理的数据位宽相等的多组数据进行并行处理,其中,数据读入电路接收到的待处理的数据的位宽可以大于复用比较树电路当前可处理的数据位宽。可选的,上述并行处理可以表征为将分成的每一组待处理的数据同时进行处理。如果数据读入电路接收到的待处理的数据的位宽,与复用比较树电路接收到的功能选择模式信号对应可处理的数据位宽相等,则复用比较树电路可以直接对接收到的待处理的数据进行处理。
S102、通过复用比较树电路对待处理的所述数据进行多层循环比较运算。
需要说明的是,每一次比较运算时,复用比较树电路可以对两个数据进行比较,得到两个数据中的极值,并且每一次比较运算时,复用比较树电路可以接收数据读入电路输入的两个待处理的数据。
S103、通过结束判断电路判断是否满足结束所述多层循环比较运算的条件。
具体的,每一次比较运算结束后,可以通过结束判断电路判断当前是否满足结束多层循环比较运算的条件。
S104、若满足结束所述多层循环比较运算的条件,则输出极值选取运算结果。
具体的,如果结束判断电路判断出本次比较运算结束后,可以结束多层循环比较运算,则停止比较运算,并通过极值寄存器电路输出最终的向量极值。可选的,上述向量极值可以表征为数据读入电路接收到的所有待处理的数据中的极值。
本实施例提供的一种数据处理方法,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且该方法有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
另一实施例提供的数据处理方法,本实施例涉及的是在接收待处理的数据的步骤之后,该方法还包括:
S105、通过数据读取单元接收待处理的所述数据的个数N和寄存器中多个存储区间的首地址。
S106、根据寄存器中多个存储区间的所述首地址和所述数据个数N读入所述数据,并将所述数据存储至标量寄存器阵列中。
具体的,标量寄存器阵列可以根据寄存器中多个存储区间的首地址,依次将数据读取单元读入的待处理数据存放至标量寄存器阵列中的多个存储区间中。可选的,每一次所述标量寄存器阵列可以存储一个待处理的数据。可选的,每一个存储区间可以存放一个待处理的数据。可选的,存储区间的数量可以等于接收到的待处理的数据个数N,还可以大于接收到的待处理的数据个数N。
示例性的,如果待处理数据的首地址对应的存储区间为A[0],数据读入电路读入的是三个16位浮点数,分别为1011110000000100→1,1011110011000100→2,1011110001010100→3,则标量寄存器阵列可以有三个寄存器存储区间存放数据,当第1个数据存放至存储区间A[0]对应的首地址中时,则第2个数据可以存放至下一个存储区间(即A[1])对应的存储地址中,第3个浮点数可以继续存放至下一个存储区间(即A[2])对应的存储地址中。
本实施例提供的一种数据处理方法,该方法可以有效减少运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且该方法有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
另一实施例提供的数据处理方法的流程示意图,上述S102中通过复用比较树电路对待处理的所述数据进行多层循环比较运算,包括:
S1021、通过第一级复用比较器对待处理的所述数据进行第一层循环比较运算,得到第一层极值比较结果。
需要说明的是,复用向量选择装置可以将标量寄存器阵列中存储的待处理浮点数输入到第一级复用比较器中,第一层每一次比较运算时,标量寄存器阵列可以向第一级复用比较器输入任意两个不同的待处理的数据,并且该层下一次比较运算时,标量寄存器阵列可以向第一级复用比较器输入另外两个不同的待处理的浮点数。可选的,第一级复用比较器可以对两个待处理的数据进行比较运算,得到两个数据中的极大值和极小值。可选的,第一层循环比较运算的总次数可以等于数据读入电路接收到的待处理数据个数的1/2。可选的,上述第一级复用比较器对所有待处理的数据进行循环比较运算可以称为第一层比较运算,第一层比较运算后,可以得到第一层极值比较结果,该第一层极值比较结果可以包括第一层极大值比较结果和第一层极小值比较结果。可选的,第一级复用比较器可以进行第一层循环比较运算。
S1022、通过第二级复用比较器对所述第一层极值比较结果进行多层循环比较运算。
具体的,通过第二级复用比较器对第一层极值比较结果进行第二层循环比较运算得到的比较结果,可以称为第二层极值比较结果,然后通过第二级复用比较器依次循环运算,下一层循环比较运算对上一层极值比较结果进行比较运算,直到最后一层极值比较结果为一个数据为止,多层循环比较运算结束,得到最终的极值比较结果。其中,每一层循环比较运算的总次数可以等于上一层极值比较结果中数据个数的1/2。可选的,第二级复用比较器进行循环比较运算总层数加一可以等于复用比较树电路进行循环比较运算的总层数。
本实施例提供的一种数据处理方法,该方法可以有效减少运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且该方法有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
另一实施例提供的数据处理方法,上述S103中通过结束判断电路判断是否满足结束所述多层循环比较运算的条件,包括:
S1031、通过所述结束判断电路获取所述第二级复用比较器当前比较运算得到的极值比较结果对应的层数。
具体的,通过第二级复用比较器进行每一层循环比较运算,得到的极值比较运算结果都有对应的编号。示例性的,第二层极值比较运算得到的比较运算结果对应的编号为2,第三层比较运算得到的比较运算结果对应的编号为3,依次,最后一层比较运算得到的比较运算结果对应的编号可以为M,若数据读入电路接收到的数据的个数为N,则M可以等于log2N。
S1032、根据当前所述极值比较结果的层数,判断所述多层循环比较运算是否满足结束所述多层循环比较运算的条件。
具体的,结束判断电路中的判断单元可以根据当前第二级复用比较器循环比较运算得到的极值比较结果对应的层数,与得到最终极值复用比较树电路需要进行循环比较运算层数的大小关系,判断多层循环比较运算是否满足结束多层循环比较运算的条件。可选的,结束多层循环比较运算的条件可以为当前第二级复用比较器进行循环比较运算得到的极值比较结果对应的层数,等于得到最终极值复用比较树电路需要进行循环比较运算的层数。
本实施例提供的一种数据处理方法,该方法可以有效减少运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且该方法有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
另一实施例提供的数据处理方法,在上述S103通过结束判断电路判断是否满足结束所述多层循环比较运算的条件之后,该方法还包括:若否,则继续通过所述第二级复用比较器对上一层循环比较运算得到的极值比较结果进行比较运算,直到最后一层循环比较运算的极值比较结果为一个数据为止,结束运算输出极值选取运算结果。
具体的,如果结束判断电路判断出第二级复用比较器本层循环比较运算结束后,不满足结束多层循环比较运算的条件,则复用向量选择装置可以通过第二级复用比较器对上一层比较运算得到的极值比较结果继续进行循环比较运算。可选的,继续进行循环比较运算的层数可以等于1,还可以等于其它正整数。
本实施例提供的一种数据处理方法,该方法可以有效减少运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且该方法有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
另一实施例提供的数据处理方法,上述S104中若满足结束所述多层循环比较运算的条件,则输出极值选取运算结果,包括:通过极值寄存器电路接收所述判断单元输入的逻辑判断信号,并根据所述逻辑判断信号输出运算结果。
具体的,极值寄存器电路可以接收判断单元输入的高电平逻辑判断信号,还可以接收判断单元输入的低电平逻辑判断信号。若极值寄存器电路接收到的是低电平逻辑判断信号,则可以表示复用向量选择装置需要继续通过第二复用比较器对上一层比较结果进行比较运算。若极值寄存器电路接收到的是高电平逻辑判断信号,则可以结束运算,输出最终的比较运算结果。
本实施例提供的一种数据处理方法,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且该方法有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
另一个实施例提供的数据处理方法,该方法可以通过图33和图35所示的复用向量选择装置进行处理,本实施例涉及的是多个数据进行多层循环比较运算选取极值的过程。该方法包括:
S201、接收待处理的数据。
S202、通过选择电路对待处理的所述数据进行选通,将选通后的比较数据输入至复用比较树电路。
具体的,循环比较运算时,选择电路可以对待处理的数据进行选通,选通的数据可以为两对,一对选通的数据可以是数据读入电路中存储的数据,另一对选通的数据可以是极值寄存器电路中存储的数据。若选择电路接收到数据读入电路输入的高电平逻辑信号时,选择电路可以对极值寄存器电路中存储的数据选通,将极值寄存器电路中存储的任意两个数据输入至复用比较树电路,否则,选择电路可以对数据读入电路中存储的数据选通,将数据读入电路中存储的任意两个数据输入至复用比较树电路。
S203、通过复用比较树电路对选通后的所述比较数据进行多层循环比较运算。
需要说明的是,每一次比较运算时,复用比较树电路可以对两个比较数据进行比较,得到两个比较数据中的极值,并且每一次比较运算时,复用比较树电路可以接收选择电路输入的两个比较数据。可选的,上述比较数据可以为待处理的数据,还可以为上一层极值比较结果中的数据。
S204、通过结束判断电路判断是否满足结束所述多层循环比较运算的条件。
具体的,每一次比较运算结束后,可以通过结束判断电路判断当前是否满足结束多层循环比较运算的条件。
S205、若满足结束所述多层循环比较运算的条件,则输出极值选取运算结果。
具体的,如果结束判断电路判断出本次比较运算结束后,可以结束多层循环比较运算,则停止比较运算,通过极值寄存器电路输出最终的向量极值。可选的,上述向量极值可以表征为数据读入电路接收到的所有待处理的浮点数中的极值。
本实施例提供的一种数据处理方法,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且该方法有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
另一实施例提供的数据处理方法,上述S202中通过选择电路对待处理的所述数据进行选通,将选通后的比较数据输入至复用比较树电路,包括:通过第一选择单元,第二选择单元,第三选择单元和第四选择单元对待处理的所述数据进行选通,将选通后的比较数据输入至所述复用比较树电路。
具体的,比较运算时,第一选择单元,第二选择单元,第三选择单元和第四选择单元可以分别对待处理的数据进行选通,每一个选择单元选通的数据可以为两对,一对选通的数据可以是数据读入电路中存储的数据,另一对选通的数据可以是极值寄存器电路中存储的数据。若选择电路接收到数据读入电路输入的高电平逻辑信号时,选择电路可以对极值寄存器电路中存储的数据选通,将极值寄存器电路中存储的任意两个数据输入至复用比较树电路,否则,选择电路可以对数据读入电路中存储的数据选通,将数据读入电路中存储的任意两个数据输入至复用比较树电路。
本实施例提供的一种数据处理方法,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且该方法有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例,所述通过第一选择单元,第二选择单元,第三选择单元和第四选择单元对待处理的所述数据进行选通,将选通后的比较数据输入至所述复用比较树电路,包括:
S301、通过第一选择单元选通得到第一比较数据,并将所述第一比较数据输入至第一复用比较器。
具体的,通过第一选择单元可以选通第一比较数据,第一比较数据可以为极值寄存器电路中存储的数据,还可以为数据读入电路中存储的数据。
S302、通过第二选择单元选通得到第二比较数据,并将所述第二比较数据输入至第一复用比较器。
具体的,通过第二选择单元可以选通第二比较数据,第二比较数据可以为极值寄存器电路中存储的数据,还可以为数据读入电路中存储的数据。
S303、通过第三选择单元选通得到第三比较数据,并将所述第三比较数据输入至第二复用比较器。
具体的,通过第三选择单元可以选通第三比较数据,第三比较数据可以为极值寄存器电路中存储的数据,还可以为数据读入电路中存储的数据。
S304、通过第四选择单元选通得到第四比较数据,并将所述第四比较数据输入至第二复用比较器。
具体的,通过第四选择单元可以选通第四比较数据,第四比较数据可以为极值寄存器电路中存储的数据,还可以为数据读入电路中存储的数据。需要说明的是,选通后的比较数据只需通过第一复用比较器或第二复用比较器进行循环比较运算,不需要通过第三复用比较器或第四复用比较器进行循环比较运算。
本实施例提供的一种数据处理方法,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且该方法有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
在其中一个实施例,上述S203中通过复用比较树电路对选通后的所述比较数据进行多层循环比较运算,包括:
S2031、通过第一复用比较器对所述第一比较数据和所述第二比较数据进行第一层循环比较运算,得到第一层极值比较结果。
需要说明的是,第一复用比较器可以对选通后接收到的第一比较数据和第二比较数据进行第一层循环比较运算,得到第一层极值比较结果。可选的,上述第一层极值比较结果可以包括第一层极大值比较结果,还可以包括第一层极小值比较结果。
S2032、通过第二复用比较器对所述第三比较数据和所述第四比较数据进行第一层循环比较运算,得到第一层极值比较结果。
需要说明的是,第二复用比较器可以对选通后接收到的第三比较数据和第四比较数据进行第一层循环比较运算。
S2033、通过第三复用比较器和第四复用比较器对第一层极值比较结果进行第二层循环比较运算,得到第二层极值比较结果。
具体的,通过第三复用比较器可以对第一层极大值比较结果进行第二层循环比较运算,得到第二层极大值比较结果,通过第四复用比较器可以对第一层极小值比较结果进行第二层循环比较运算,得到第二层极小值比较结果。
S2034、通过第一复用比较器和第二复用比较器,与第三复用比较器和第四复用比较器轮换对上一层极值比较结果进行多层循环比较运算。
具体的,通过第一复用比较器和第二复用比较器可以对比较数据可以进行第一层循环比较运算,通过第三复用比较器和第四复用比较器可以对第一层循环比较运算得到的第一层极值比较结果进行第二层循环比较运算,然后通过第一复用比较器和第二复用比较器对第二层循环比较运算得到的第二层极值比较结果进行第三层循环比较运算,之后继续通过第三复用比较器和第四复用比较器对第三层循环比较运算,得到的第三层极值比较结果进行第四层循环比较运算,依次轮换通过第一复用比较器和第二复用比较器/第三复用比较器和第四复用比较器两级复用比较器对上一层极值比较结果进行多层循环比较运算。
本实施例提供的一种数据处理方法,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积,并且该方法有效降低了数据处理装置的功耗,进而提高了AI芯片的性能。
另一实施例提供的数据处理方法,在上述S204通过结束判断电路判断是否满足结束所述多层循环比较运算的条件之后,该方法还包括:若否,则继续通过所述第一复用比较器与第二复用比较器,和第三复用比较器与第四复用比较器轮换对上一层极值比较结果进行多层循环比较运算。
具体的,如果结束判断电路判断出第一复用比较器与第二复用比较器,或第三复用比较器与第四复用比较器本层循环比较运算结束后,不满足结束多层循环比较运算的条件,则复用向量选择装置可以继续通过第一复用比较器与第二复用比较器,和第三复用比较器与第四复用比较器对上一层循环比较运算得到的极值比较结果继续进行循环比较运算。可选的,继续进行循环比较运算的层数可以等于1,还可以等于其它正整数。
本实施例提供的一种数据处理方法,该过程可以通过多层循环比较运算得到多个待处理数据中的极值,有效减少了运算量及复用向量选择装置内部的延迟;另外,复用向量选择装置能够根据复用比较树电路接收到的不同功能选择模式信号处理多种不同位宽的数据比较运算,有效减小了复用向量选择装置占用AI芯片的面积。
为了便于本领域技术人员的理解,以复用向量选择装置可处理16位浮点数,复用向量选择装置接收的是N个32位浮点数为例介绍本发明提供的数据处理方法,具体的方法包括:
S401、通过数据读入电路接收浮点数的个数N和寄存器中多个存储区间的首地址A,并按照寄存器中多个存储区间的首地址A和浮点数的个数N读入N个浮点数(即A(a1,a2,,aN)),存储至存储区间;
S402、数据读入电路按照寄存器中多个存储区间的首地址A,并将存储区间中存储的浮点数输入至第一级复用比较器;
S403、通过第一级复用比较器对N个浮点数进行循环比较运算,得到第一层极值比较结果,并将第一层极值比较结果存储至极值寄存器电路中。
S404、通过第二级复用比较器对极值寄存器电路中存储的极值比较结果,进行多层循环比较运算。
S405、多层循环比较结束后,通过极值寄存器电路输出运算结果。
需要说明的是,比较运算时,第一级复用比较器和第二级复用比较器可以对接收到的浮点数的高低16位对应数据进行循环比较(即将32位浮点数A可以分成高16位A1(a1[31:16],a2[31:16],,aN[31:16])和低16位A2(a1[15:0],a2[15:0],,aN[15:0]));
可选的,上述运算结果可以由向量A1和A2拼接得到,即Amax={max(A1),max(A2)},Amin={min(A1),min(A2)}。可选的,极大值Amax的高低16位数据可以为同一个32位浮点数的高低16位数据,还可以为不同32位浮点数的高低16位数据拼接而成。可选的,极小值Amin的高低16位数据可以为同一个32位浮点数的高低16位数据,还可以为不同32位浮点数的高低16位数据拼接而成。
另外,若第一级复用比较器和第二级复用比较器接收到的两个待处理浮点数为a和b,在比较运算过程中,第一级复用比较器和第二级复用比较器中每一个单元的判断结果输出端口均为两位有效,即高电平和低电平均有效,具体比较情况见表4:
表4
Figure BDA0001886575000001741
以上S401至S405的执行过程具体可以参见上述实施例的描述,其实现原理和技术效果类似,在此不再赘述。
另外,若以复用向量选择装置可处理16位浮点数,复用向量选择装置接收的是N个16位浮点数为例介绍本发明提供的数据处理方法,具体的方法包括:
S501、通过数据读入电路接收浮点数的个数N寄存器中多个存储区间的首地址A,并按照寄存器中多个存储区间的首地址A和浮点数的个数N读入N个浮点数(即B(b1,b2,,bN)),存储至存储区间;
S502、数据读入电路按照寄存器中多个存储区间的首地址A,并将存储区间中存储的浮点数输入至第一级复用比较器;
S503、通过第一级复用比较器对N个浮点数进行循环比较运算,得到第一层极值比较结果,并将第一层极值比较结果存储至极值寄存器电路中。
S504、通过第二级复用比较器对极值寄存器电路中存储的极值比较结果,进行多层循环比较运算。
S505、多层循环比较结束后,通过极值寄存器电路输出运算结果。
可选的,上述运算结果可以为Bmax={max(b1,b2,,bN)},Bmin={min(b1,b2,,bN)}。
另外,若第一级复用比较器和第二级复用比较器接收到的两个待处理浮点数为a和b,在比较运算过程中,第一级复用比较器和第二级复用比较器中每一个单元的判断结果输出端口均为一位有效,即高电平或低电平有效,若以低电平有效为例,具体比较情况见表5:
表5
Figure BDA0001886575000001751
以上S501至S505的执行过程具体可以参见上述实施例的描述,其实现原理和技术效果类似,在此不再赘述。
在其中一个实施例中,上述S4330中对调度后的所述第二数据进行乘法运算,得到乘法运算结果,具体可以通过以下几种方式实现:
第一种实现方式
该种实现方式可以通过如下实施例进行详细说明:
另一个实施例提供的数据处理方法的流程示意图,该方法可以通过图3和图5所示的乘法器进行处理,本实施例涉及的是数据乘法运算的过程。该方法包括:
S101、接收待处理的数据。
具体的,乘法器可以通过编码电路接收待处理的数据,该数据可以为乘法运算中的乘数和被乘数。其中,待处理乘数的位宽可以等于待处理被乘数的位宽。
S102、对待处理的所述数据进行编码,得到编码结果,并根据待处理的所述数据及所述编码结果得到消除符号位扩展后的部分积。
具体的,乘法器可以通过编码电路对接收到的待处理乘数进行二进制编码,并根据待处理的被乘数和二进制编码的结果得到消除符号位扩展后的部分积,并且消除符号位扩展后的部分积数量可以等于乘法器当前所处理数据位宽的1/2。
S103、对所述消除符号位扩展后的部分积进行修正累加处理,得到乘法运算结果。
具体的,乘法器可以通过修正累加电路中的逐层第二全加器对消除符号位扩展后的部分积进行修正累加处理,直到最后一层第二全加器结束运算为止,得到乘法运算结果。可选的,上述修正累加处理可以表征为对消除符号位扩展后的部分积进行累加的过程中进行修正处理,该修正处理可以是通过修正累加电路中第一层第二全加器,和最后一层第二全加器中的两个第二全加器进行加1处理。可选的,上述运算结果可以为消除符号位扩展后并进行修正累计处理后的运算结果。需要说明的是,在修正累加处理过程中,修正累加电路可以通过第一层和最后一层第二全加器中的两个全加器对消除符号位扩展后的部分积中的数值进行加1处理,其中,如果每一个第二全加器对应一个编号,则第一层全加器中进行加1处理的第二全加器可以为次高位编号加法器的低一位加法器,最后一层第二全加器中进行加1处理的第二全加器可以为最高位编号的加法器。
另外,乘法器还可以通过修正累加电路中的修正华莱士树组电路对消除符号位扩展后的部分积的每一列数值进行累加处理,并在累加处理的过程中通过修正华莱士树组电路中的两个华莱士树子电路可以进行加1处理,通过修正华莱士树组电路输出修正加1处理后的进位输出信号与和位输出信号,最后通过累加电路将修正华莱士树组电路的进位输出信号,与用0替代最后一个和位信号后的信号进行累加处理,并将乘法运算结果输出。需要说明的是,若乘法器当前处理N为数据运算,且修正华莱士树组电路中串行连接2N个华莱士树子电路,每一个华莱士树子电路对应的编号从0开始,则修正华莱士树组电路可以通过第N个华莱士树子电路和第2N-1个华莱士树子电路进行加1处理。
本实施例提供的一种数据处理方法,接收待处理的数据,将待处理的所述数据进行编码,根据待处理的所述数据及编码结果得到消除符号位扩展后的部分积,对所述消除符号位扩展后的部分积进行修正累加处理,得到运算结果,该方法在保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S102中对待处理的所述数据进行编码,得到编码结果,并根据待处理的所述被数据及所述编码结果得到消除符号位扩展的部分积,包括:
S1021、对待处理的所述数据进行布斯编码处理,得到编码信号。
具体的,乘法器可以通过布斯编码处理单元对待处理的乘数进行布斯编码处理,得到编码信号。可选的,布斯编码处理过程中,输入的乘数中3比特位宽的数据可以得到一位编码后的数据,上述布斯编码处理过程中的编码规则可以参见表2,根据表2可知,布斯编码处理单元对乘数进行布斯编码处理,可以得到五类不同的编码信号,每类编码信号分别定义为-2X,2X,-X,X和0。
S1022、根据待处理的所述数据与所述编码信号,得到消除符号位扩展后的所述部分积。
具体的,部分积获取单元可以根据待处理的被乘数与编码信号,并通过二进制算术运算得到消除符号位扩展后的部分积。
本实施例提供的一种数据处理方法,对待处理的数据进行布斯编码处理,得到编码信号,根据待处理的数据与所述编码信号,得到消除符号位扩展后的部分积,进而对消除符号位扩展后的部分积进行修正累加处理,并将运算结果输出,该方法在保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,上述S1022中根据待处理的所述数据与所述编码信号,得到消除符号位扩展后的部分积,包括:
S1022a、根据待处理的所述数据与所述编码信号,得到原始部分积。
需要说明的是,原始部分积的数量可以等于编码信号的数量。
S1022b、根据所述原始部分积进行加法运算处理,得到消除符号位扩展后的部分积。
可选的,上述S1022b中对所述原始部分积进行加法运算处理,得到消除符号位扩展的部分积,包括:根据所述原始部分积的高两位数值进行加1处理以及所述判断处理,得到消除符号位扩展后的部分积。
具体的,乘法器通过部分积获取单元可以对每一个原始部分积的最高位和次高位的数值通过第一全加器进行加1处理,并且根据原始部分积的最高位和次高位的数值,可以得到消除符号位扩展后的部分积中的额外一位数值Q,进而得到消除符号位扩展后的部分积。可选的,上述判断处理可以理解为根据原始部分积的最高位数值和次高位数值确定Q位数值的过程。
本实施例提供的一种数据处理方法,根据待处理的所述数据与所述编码信号,得到原始部分积,根据原始部分积的高两位数值进行加1处理以及判断处理,得到消除符号位扩展后的部分积,进而对消除符号位扩展后的部分积进行修正累加处理,得到乘法运算结果,该方法在保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
另一个实施例提供的数据处理方法的流程示意图,该方法可以通过图4和图6所示的乘法器进行处理,本实施例涉及的是数据乘法运算的过程。该方法包括:
S201、接收待处理的数据。
具体的,乘法器可以通过布斯编码处理电路接收待处理的数据,该数据可以为乘法运算中的乘数和被乘数。其中,待处理乘数的位宽可以等于待处理被乘数的位宽。
S202、将待处理的所述数据进行布斯编码处理,得到原始部分积。
具体的,乘法器通过布斯编码处理电路对待处理的乘数进行布斯编码处理,根据布斯编码处理的结果可以得到原始部分积。
S203、根据所述原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积。
具体的,乘法器可以通过部分积获取电路中的逻辑门电路对原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积。
S204、对所述消除符号位扩展后的部分积进行修正累加处理,得到乘法运算结果。
具体的,乘法器可以通过修正累加电路中的逐层第二全加器对消除符号位扩展后的部分积进行修正累加处理,直到最后一层第二全加器结束运算为止,得到运算结果。可选的,上述修正累加处理可以表征为对消除符号位扩展后的部分积进行累加的过程中进行修正处理,该修正处理可以是通过修正累加电路中第一层第二全加器,和最后一层第二全加器中的两个全加器进行加1处理。可选的,上述运算结果可以为消除符号位扩展后并进行修正累计处理后的运算结果。需要说明的是,在修正累加处理过程中,修正累加电路可以通过第一层和最后一层第二全加器中的两个第二全加器,对消除符号位扩展后的部分积中的数值进行加1处理,其中,如果每一个全加器对应一个编号,则第一层第二全加器中进行加1处理的第二全加器,可以为次高位编号加法器的低一位加法器,最后一层第二全加器中进行加1处理的全加器可以为最高位编号的加法器。
另外,乘法器还可以通过修正累加电路中的修正华莱士树组电路对消除符号位扩展后的部分积的每一列数值进行累加处理,并在累加处理的过程中通过修正华莱士树组电路中两个华莱士树子电路可以进行修正加1处理,通过修正华莱士树组电路输出修正加1处理后的进位输出信号与和位输出信号,最后通过累加电路将修正华莱士树组电路的所有进位输出信号Carryi,与用0替代最后一个和位信号SumN-1后的所有和位信号进行累加处理,并将运算结果输出。需要说明的是,若乘法器当前处理N位数据运算,且修正华莱士树组电路中串行连接2N个华莱士树子电路,每一个华莱士树子电路对应的编号从0开始,则修正华莱士树组电路可以通过第N个华莱士树子电路和第2N-1个华莱士树子电路进行加1处理。
本实施例提供的一种数据处理方法,接收待处理的数据,将待处理的所述数据进行布斯编码处理,得到原始部分积,根据所述原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积,对所述消除符号位扩展后的部分积进行修正累加处理,得到运算结果,该方法在保证乘法器在消除符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S202中将待处理的所述数据进行布斯编码处理,得到原始部分积,包括:
S2021、对待处理的所述数据进行布斯编码处理,得到编码信号。
具体的,乘法器可以通过布斯编码处理电路对待处理的乘数进行布斯编码处理,得到编码信号。
S2022、根据待处理的所述数据与所述编码信号,得到所述原始部分积。
需要说明的是,原始部分积数量可以等于编码信号的数量。
示例性的,若部分积获取电路接收到一个8位的被乘数“x7x6x5x4x3x2x1x0”(即X),则部分积获取电路可以根据被乘数“x7x6x5x4x3x2x1x0”(即X)与五类编码信号-2X,2X,-X,X和0直接得到对应原始部分积,当编码信号为-2X时,则原始部分积可以为对X进行左右一位后取反再加1,当编码信号为2X时,则原始可以为对X进行左移一位,当编码信号为-X时,则原始部分积可以为对X按位取反再加1,当编码信号为X时,则原始部分积可以为X与X最高位的更高一位数值结合的数据,其中,X最高位的更高一位数值可以等于X的符号位数值,当编码信号为+0时,则原始部分积可以为0,也就是9位部分积中的每一位数值均等于0。
本实施例提供的一种数据处理方法,对待处理的所述数据进行布斯编码处理,得到编码信号,根据待处理的所述数据与所述编码信号,得到所述原始部分积,然后对原始部分积进行消除符号位扩展处理,可以有效降低乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S203中根据所述原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积,包括:对所述原始部分积的高两位数值进行异或,取反和与逻辑运算处理,得到消除符号位扩展后的部分积。
具体的,乘法器可以通过部分积获取电路中的逻辑门电路,对原始部分积中的次高位数值与最高位数值进行异或逻辑运算,得到消除符号位扩展后的部分积中的对应最高位数值,并通过部分积获取电路中的逻辑门电路,对原始部分积中的次高位数值取反后,得到消除符号位扩展后的部分积中的对应次高位数值,另外,乘法器还可以通过部分积获取电路中的逻辑门电路,对原始部分积中的最高位数值取反后和最高位数值进行与逻辑运算,得到消除符号位扩展后的部分积中的额外一位数值Q。
本实施例提供的一种数据处理方法,对待处理的数据进行处理后,得到原始部分积,并对所述原始部分积的高两位数值进行异或,取反和与逻辑运算,得到消除符号位扩展后的部分积,可以有效降低乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
第二种实现方式
该种实现方式可以通过如下实施例进行详细说明:
另一个实施例提供的数据处理方法的流程示意图,该方法可以通过图7和图9所示的乘法器进行处理,本实施例涉及的是数据乘法运算的过程。该方法包括:
S101、接收待处理的数据。
具体的,乘法器可以通过布斯编码电路接收待处理的数据,该数据可以为乘法运算中的乘数和被乘数。可选的,布斯编码电路接收到的待处理的乘数和被乘数的位宽可以为8比特,16比特,32比特,64比特,对此本实施例不做任何限定。其中,待处理乘数的位宽可以等于待处理被乘数的位宽。
S102、将待处理的所述数据进行布斯编码处理,得到编码信号。
具体的,乘法器可以通过布斯编码电路对待处理的乘数进行布斯编码处理,得到编码信号。
S103、根据待处理的所述数据与所述编码信号,得到目标编码的部分积以及加一位数值。
S104、根据所述加一位数值对目标编码的所述部分积进行累加处理,得到乘法运算结果。
具体的,乘法器中的华莱士树组电路可以根据加一位数值对目标编码的部分积中的每一列数值进行累加处理,得到累加结果,并将累加结果输出。其中,加一位数值可以作为华莱士树组电路的进位输入信号。
本实施例提供的一种数据处理方法,该方法能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到目标编码的部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S103中根据待处理的所述数据与所述编码信号,得到目标编码的部分积以及加一位数值,包括:
S1031、根据待处理的所述数据与所述编码信号,得到符号位扩展后的所述部分积。
具体的,修正部分积获取电路可以根据接收到的待处理被乘数,与布斯编码电路得到的编码信号,得到符号位扩展后的部分积。
S1032、根据所述编码信号得到所述加一位数值。
具体的,修正部分积获取电路可以根据接收到的编码信号通过加一位处理规则得到对应的加一位数值。
示例性的,若修正部分积获取电路可以接收到五类编码信号,分别定义为-2X,2X,-X,X和0,接收到的被乘数为X,修正部分积获取电路可以根据加一位处理规则确定每一类编码信号对应的加一位数值,当编码信号为-2X时,则对应的加一位数值可以为1,当编码信号为2X时,则对应的加一位数值可以为0,当编码信号为-X时,则对应的加一位数值可以为1,当编码信号为X时,则对应的加一位数值可以为0,当编码信号为+0时,则对应的加一位数值可以为0。
S1033、根据符号位扩展后的所述部分积得到目标编码的所述部分积。
具体的,每一个符号位扩展后的部分积可以对应一个编号,编号从1开始。可选的,乘法运算的数据可以包括高位数据和低位数据,高位数据可以为乘法器接收到的N位数据中的高N/2位数据,低位数据可以为乘法器接收到的N位数据中的低N/2位数据。可选的,低位数据得到的符号位扩展后的部分积对应的编号可以从1开始。可选的,第一个目标编码的部分积可以等于第一个对应的符号位扩展后的部分积,从第二个目标编码的部分积开始,每一个目标编码的部分积可以为对应符号位扩展后的部分积左移(2N-i+1)位数值,相当于对应符号位扩展后的部分积中的高(2N-i+1)位数值不进行累加运算,其中,i表示每一个符号位扩展后的部分积的编号。
本实施例提供的一种数据处理方法,该方法能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到原始部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,上述S1031中根据待处理的所述数据与所述编码信号,得到符号位扩展后的所述部分积,包括:
S1031a、根据待处理的所述数据与所述编码信号,得到原始部分积。
具体的,上述原始部分积的数量可以等于编码信号的数量。
S1031b、对所述原始部分积进行符号位扩展处理,得到符号位扩展后的所述部分积。
具体的,符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽N的2倍,而原始部分积的位宽可以等于N+1,符号位扩展位的位数可以等于N-1。可选的,符号位扩展处理可以理解为将符号位扩展位的数值均用原始部分积中符号位的数值填充,符号位的数值可以为原始部分积中最高位数值,得到一个2N比特位宽的符号位扩展后的部分积。可选的,在符号位扩展后的所有部分积的分布规律中,符号位扩展后的所有部分积中的最高位数值可以位于同一列,最低位数值也可以位于同一列,其它对应位数值也可以对应同一列。
本实施例提供的一种数据处理方法,方法能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到原始部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S104中根据所述加一位数值对目标编码的所述部分积进行累加处理,得到乘法运算结果,包括:
S1041、根据所述加一位数值对目标编码的所述部分积进行累加处理,得到两路输出信号。
具体的,乘法器通过华莱士树组电路中的华莱士树子电路,可以对目标编码的所有部分积中的每一列数值进行累加处理,得到两路输出信号,进位输出信号Carry={Carry0,Carry1,…,Carryi}与和位输出信号Sum={Sum0,Sum1,…,Sumi},其中,i表示华莱士树子电路从0开始的编号。
需要说明的是,若华莱士树组电路中的华莱士树子电路从0开始的编号为0,1,…,i-1,华莱士树组电路接收到的对应原始部分积的编号也可以为0,1,…,i-1,则华莱士树组电路中的第一个华莱士树子电路,接收到的进位输入信号可以为编号为0,1,…,i-3的原始部分积对应的i-2个加一位数值。
S1042、根据所述加一位数值对所述两路输出信号进行累加处理,得到乘法运算结果。
具体的,上述累加电路的进位输入信号可以为最后一个编号的编码信号对应的加一位数值。可选的,乘法器通过累加电路可以对华莱士树组电路输出的进位输出信号Carry进行移位处理,得到移位后的进位输出信号Carry’,再对移位后的进位输出信号Carry’,华莱士树组电路输出的和位输出信号Sum以及累加电路接收到的进位输入信号进行累加处理,并将运算结果输出。可选的,上述移位处理可以为左移一位处理,华莱士树组电路将输出的进位输出信号Carry进行左移一位处理后,原始进位输入信号Carry对应的最低位变空,此时,累加电路可以将接收到的倒数第二个编号对应的编码信号对应的加一位数值,填充至原始进位输入信号Carry对应的最低位处,得到移位后的进位输出信号Carry’。
本实施例提供的一种数据处理方法,该方法能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到原始部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
另一个实施例提供的数据处理方法的流程示意图,该方法可以通过图8和图10所示的乘法器进行处理,本实施例涉及的是数据乘法运算的过程。该方法包括:
S201、接收待处理的数据。
具体的,乘法器可以通过布斯编码电路接收待处理的数据,该数据可以为乘法运算中的乘数和被乘数。可选的,布斯编码电路接收到的待处理的乘数和被乘数的位宽可以为8比特,16比特,32比特,64比特,对此本实施例不做任何限定。其中,待处理乘数的位宽可以等于待处理被乘数的位宽。
S202、将待处理的所述数据进行布斯编码处理,得到编码信号。
S203、根据待处理的所述数据与所述编码信号,得到目标编码的部分积。
具体的,乘法器中的修正部分积获取电路可以根据接收到的待处理数据,以及布斯编码电路获得的编码信号,得到目标编码的部分积。
S204、对目标编码的所述部分积进行累加处理,得到乘法运算结果。
本实施例提供的一种数据处理方法,该方法能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到目标编码的部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S202中根据待处理的所述数据与所述编码信号,得到目标编码的部分积,包括:
S2021、根据待处理的所述数据与所述编码信号,得到符号位扩展后的部分积。
具体的,修正部分积获取电路可以根据接收到的待处理被乘数,与布斯编码电路得到的编码信号,得到符号位扩展后的部分积。
S2022、根据所述编码信号得到加一位数值。
具体的,修正部分积获取电路可以根据接收到的编码信号通过加一位处理规则得到对应的加一位数值。
S2023、通过符号位扩展后的所述部分积与所述加一位数值,获得目标编码的所述部分积。
具体的,每一个符号位扩展后的部分积有对应的编码信号,而每一个编码信号又有对应的加一位数值,相当于每一个符号位扩展后的部分积都有对应的加一位数值。可选的,目标编码的所有部分积可以通过符号位扩展后的部分积中的数值与加一位数值组合得到。可选的,在目标编码的所有部分积的分布规律中,第一个符号位扩展后的部分积没有与对应的加一位数值组合,从第二个符号位扩展后的部分积开始,每一个符号位扩展后的部分积均可以与上一个符号位扩展后的部分积对应的加一位数值组合,得到目标编码的部分积,但是,最后一个目标编码的部分积可以为最后一个编号的编码信号对应的加一位数值,没有对应组合的符号位扩展后的部分积。可选的,目标编码的部分积的数量可以等于符号位扩展后的部分积的数量加1。
需要说明的是,目标编码的所有部分积的分布规律中,第一个目标编码的部分积可以等于第一个符号位扩展后的部分积,从第二个目标编码的部分积开始,每一个目标编码的部分积可以等于每一个符号位扩展后的部分积,与上一个符号位扩展后的部分积对应的加一位数值组合得到的部分积,且加一位数值可以位于所对应符号位扩展后的部分积最低位数值的低两位处,但是,最后一个目标编码的部分积可以等于最后一个符号位扩展后的部分积得到的对应加一位数值,还可以理解为,最后一个加一位数值没有可以组合的符号位扩展后的部分积。同时,目标编码的所有部分积的分布规律中,第一个目标编码的部分积的最低位数值,可以与第二个目标编码的部分积的最低位数值位于同一列,从第三个目标编码的部分积开始,每一个目标编码的部分积的最低位数值,可以与上一个目标编码的部分积的最低位的高两位处对应的数值位于同一列。同时,目标编码的所有部分积的分布规律中,以第一个目标编码的部分积的最高位数值对应列为准,其它的每一个目标编码的所有部分积最高位数值所对应列,与第一个目标编码的部分积的最高位数值对应列为同一列,可以理解为,目标编码的所有部分积中的高位数值均为对应符号位扩展后的部分积中的数值,超出最高位数值对应列的数值均不进行累加运算。
本实施例提供的一种数据处理方法,该方法能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到目标编码的部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
另一实施例提供的乘法运算方法,上述S2021中根据待处理的所述数据与所述编码信号,得到符号位扩展后的部分积,包括:
S2021a、根据待处理的所述数据与所述编码信号,得到原始部分积。
S2021b、对所述原始部分积进行符号位扩展处理,得到符号位扩展后的所述部分积。
本实施例提供的一种数据处理方法,该方法能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到目标编码的部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S204中对目标编码的所述部分积进行累加处理,得到运算结果,包括:
S2041、对目标编码的所述部分积进行累加处理,得到两路输出信号。
S2042、对所述两路输出信号进行累加处理,得到运算结果。
具体的,乘法器可以通过累加电路对修正华莱士树组电路中每一个修正华莱士树子电路获得的进位输出信号Carryi与和位输出信号Sumi进行累加处理,输出乘法运算结果。可选的,上述累加处理可以理解为通过累加电路将修正华莱士树组电路的所有进位输出信号Carryi,与用0替代最后一个和位信号Sum2N-1后的所有和位信号的加法运算。
本实施例提供的一种数据处理方法,该方法能够在能够完全保证乘法器运算准确性的前提下,消除因负的编码信号得到目标编码的部分积时,需要进行取反加一操作可能会产生进位向前传递,造成多位数据信号的翻转,有效降低了乘法器的功耗,进而降低数据处理装置的功耗,提高AI芯片的性能。
第一种实现方式
该种实现方式可以通过如下实施例进行详细说明:
另一个实施例提供的数据处理方法的流程示意图,该方法可以通过图11和图13所示的乘法器进行处理,本实施例涉及的是对不同位宽的定点数进行乘法运算的过程。该方法包括:
S101、接收待处理的定点数。
具体的,乘法器可以通过修正编码电路接收待处理的定点数,该定点数可以为乘法运算中的乘数和被乘数。每一次乘法运算时,乘法器还可以通过修正编码电路和修正压缩电路中的所有选择器接收不同的功能选择模式信号,并且同一次运算时修正编码电路中的所有选择器和修正压缩电路中的选择器接收到的功能选择模式信号可以相同。若乘法器接收不同的功能选择模式信号,则乘法器可以处理不同位宽的定点数运算,同时,不同选择模式信号与乘法器可以处理不同位宽的定点数之间的对应关系可以灵活设置,对此本实施例不作任何限定。
需要说明的是,如果修正编码电路接收到的待处理的乘数和被乘数的位宽,与乘法器接收到的功能选择模式信号对应可处理的定点数位宽不相等,则乘法器会根据乘法器当前可处理的定点数位宽,将接收到的待处理的定点数划分成,与乘法器当前可处理的定点数位宽相等的多组定点数进行并行处理,其中,修正编码电路接收到的待处理的定点数的位宽可以大于乘法器当前可处理的定点数位宽。可选的,上述并行处理可以表征为将划分后的每一组待处理的定点数据同时进行处理。如果修正编码电路接收到的待处理的定点数的位宽,与乘法器接收到的功能选择模式信号对应可处理的定点数位宽相等,则乘法器直接对接收到的待处理的定点数进行处理。可选的,上述待处理的定点数可以包括待处理的高位定点数和待处理的低位定点数。其中,若待处理的定点数的位宽为2N,则高N位为待处理的高位定点数,低N位为待处理的高位定点数。
可选的,修正编码电路接收到的待处理的乘数和被乘数的位宽可以为8比特,16比特,32比特,64比特,对此本实施例不做任何限定。其中,待处理乘数的位宽可以等于待处理被乘数的位宽。
S102、选通待编码信号,根据所述待编码信号对待处理的所述定点数进行布斯编码处理,得到编码信号。
具体的,乘法器可以通过修正编码电路接收到的功能模式选择信号确定选择器选通后的待编码信号,根据确定的待编码信号对待处理的定点数进行布斯编码处理,得到编码信号。可选的,上述待处理的定点数可以为乘法运算中的乘数,并且可以包括待处理的高位定点数和待处理的低位定点数,其中,若待处理的定点数的位宽为2N,则高N位可以为待处理的高位定点数,低N位可以为待处理的低位定点数。可选的,上述待编码信号可以为0,还可以为待处理的低位定点数中的最高位数值。
需要说明的是,若乘法器接收到的定点数的位宽为2N,并且乘法器当前所处理定点数的位宽也为2N,则修正编码电路可以通过选择器选通待处理的低位定点数中的最高位数值,作为高位定点数中的补位数值,此时,乘法器可以将接收到的2N位定点数作为一个整体进行乘法运算;若乘法器当前所处理定点数的位宽为N,则乘法器需要将接收到的2N位定点数分成高N位和低N位定点数进行并行处理,此时,修正编码电路可以通过选择器选通0,作为高位定点数中的补位数值。
S103、根据所述编码信号和待处理的所述定点数,得到目标编码的部分积。
具体的,乘法器中的部分积获取单元可以根据待处理的被乘数和编码信号,得到当前乘法器接收到的功能选择模式信号对应的目标编码的部分积。可选的,上述目标编码的部分积可以为乘法器得到的对应符号位扩展后的部分积,该符号位扩展后的部分积的数量可以等于编码信号的数量。
示例性的,若乘法器接收到的定点数的位宽为2N,并且乘法器当前所处理N位宽的定点数,则目标编码的部分积可以为高N位定点数得到的对应符号位扩展后的部分积,和低N位定点数得到的对应符号位扩展后的部分积。
S104、对目标编码的所述部分积进行累加处理,得到运算结果。
具体的,乘法器可以通过修正压缩电路对目标编码的部分积进行累加处理,并得到乘法运算结果。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该方法能够对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S102中选通待编码信号,根据所述待编码信号对对待处理的所述定点数进行布斯编码处理,得到编码信号的步骤,包括:
S1021、根据所述待编码信号与待处理的所述定点数,得到待编码的高位数据和低位数据。
具体的,修正编码电路可以根据待编码信号确定待处理的高位定点数对应的多个待编码高位数据。可选的,在对待处理的定点数进行布斯编码处理前,修正编码电路需要对接收到的待处理的乘数进行补位处理,即在乘数中最低位数值的更低一位处补一位数值0。可选的,待处理的低位定点数与补位数值0可以得到多组待编码的低位数据,待处理的高位定点数与选通后得到的待编码信号可以得到多组待编码的低位数据。可选的,待编码的低位数据的组数可以等于待编码的高位数据的组数,还可以等于乘法器接收到的定点数位宽的1/4。
需要说明的是,划分多组待编码的低位数据的原则可以表征为对补位处理后的低位定点数中相邻的每3位数值作为一组待编码的低位数据,每一组待编码的低位数据中的最高位数值可以作为相邻下一组待编码的低位数据中的最低位数值。可选的,划分多组待编码的高位数据的原则可以表征为将选通得到的待编码信号作为高位定点数的补位数值,对补位后的高位定点数中相邻的每3位数值作为一组待编码的高位数据,每一组待编码的高位数据中的最高位数值可以作为相邻下一组待编码的高位数据中的最低位数值。
S1022、对待编码的所述高位数据以及所述低位数据进行布斯编码处理,得到高位编码信号和低位编码信号。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该方法能够对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S103中根据所述编码信号和待处理的所述定点数,得到目标编码的部分积的步骤,包括:
S1031、根据所述低位编码信号和待处理的所述定点数,得到目标编码的低位部分积。
需要说明的是,若乘法器接收到的待处理的定点数的位宽为2N,并且乘法器当前可处理N位的定点数时,则乘法器需要将2N位待处理的定点数划分成待处理的高N位定点数和低N位定点数进行并行运算,此时,乘法器通过修正编码电路可以根据低位编码信号和待处理的低N位定点数,得到目标编码的低位部分积;若乘法器当前可处理2N位的定点数时,则乘法器需要根据低位编码信号和待处理的2N位定点数,得到目标编码的低位部分积。其中,目标编码的低位部分积的位宽可以为4N,且目标编码的低位部分积的数量可以等于N/2。
S1032、根据所述高位编码信号和待处理的所述定点数,得到目标编码的高位部分积。
需要说明的是,若乘法器接收到的待处理的定点数的位宽为2N,并且乘法器当前可处理N位的定点数时,则乘法器需要将2N位待处理的定点数划分成待处理的高N位定点数和低N位定点数进行并行运算,此时,乘法器通过修正编码电路可以根据高位编码信号和待处理的高N位定点数,得到目标编码的高位部分积;若乘法器当前可处理2N位的定点数时,则乘法器需要根据高位编码信号和待处理的2N位定点数,得到目标编码的高位部分积。其中,目标编码的高位部分积的位宽可以为4N,且目标编码的高位部分积的数量可以等于N/2。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该方法能够对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,上述S1031中根据所述低位编码信号和待处理的所述定点数,得到目标编码的低位部分积的步骤,包括:
S1031a、根据所述低位编码信号和待处理的所述定点数,得到符号位扩展后的低位部分积。
具体的,乘法器根据接收到的功能选择模式信号,低位编码信号和待处理的定点数,得到乘法器当前所处理不同位宽定点数对应的原始低位部分积,并对原始低位部分积进行符号位扩展处理得到符号位扩展后的低位部分积。可选的,上述原始低位部分积可以为未进行符号位扩展的低位部分积,还可以理解为低位定点数对应得到的未进行符号位扩展的部分积。可选的,符号位扩展后的低位部分积的位宽可以等于乘法器接收到的定点数位宽M的2倍,原始低位部分积的位宽可以等于M+1。可选的,符号位扩展后的低位部分积可以包括原始低位部分积中的M+1位数值和M-1位原始低位部分积中的符号位数值。
需要说明的是,若低位部分积获取单元接收到一个8位的被乘数x7x6x5x4x3x2x1x0(即X),则低位部分积获取单元可以根据被乘数x7x6x5x4x3x2x1x0(即X)与五类低位编码信号-2X,2X,-X,X和0直接得到对应的原始低位部分积,当低位编码信号为-2X时,则原始低位部分积可以为对X进行左右一位后取反再加1,当低位编码信号为2X时,则原始低位部分积可以为对X进行左移一位,当低位编码信号为-X时,则原始低位部分积可以为对X按位取反再加1,当低位编码信号为X时,则原始低位部分积可以为X与X最高位的更高一位数值结合的数据,其中,X最高位的更高一位数值可以等于X的符号位数值,当低位编码信号为+0时,则原始低位部分积可以为0,也就是9位部分积中的每一位数值均等于0。
S1031b、通过低位选择器组单元选通目标编码的所述低位部分积中的数值。
具体的,低位选择器组单元中的每一个低位选择器可以根据接收到的不同功能选择信号,选通目标编码的低位部分积中的对应位数值。
S1031c、根据目标编码的所述低位部分积中的数值以及符号位扩展后的所述低位部分积中的数值,得到目标编码的低位部分积。
具体的,低位部分积获取单元可以根据低位选择器组单元选通后得到的,目标编码的所述低位部分积中的数值以及乘法器当前可处理对应位宽定点数得到的符号位扩展后的低位部分积中的部分位数值,得到乘法器当前所处理对应位宽定点数对应的目标编码的低位部分积。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该方法能够对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,上述S1032中根据所述高位编码信号和待处理的所述定点数,得到目标编码的高位部分积的步骤,包括:
S1032a、根据所述高位编码信号和待处理的所述定点数,得到符号位扩展后的高位部分积。
具体的,乘法器根据接收到的功能选择模式信号,高位编码信号和待处理的定点数,得到乘法器当前所处理不同位宽定点数对应的原始高位部分积,并对原始高位部分积进行符号位扩展处理得到符号位扩展后的高位部分积。可选的,上述原始高位部分积可以为未进行符号位扩展的高位部分积,还可以理解为高位定点数对应得到的未进行符号位扩展的部分积。可选的,符号位扩展后的高位部分积的位宽可以等于乘法器接收到的定点数位宽M的2倍,原始高位部分积的位宽可以等于M+1。可选的,符号位扩展后的高位部分积可以包括原始高位部分积中的M+1位数值和M-1位原始高位部分积中的符号位数值。
S1032b、通过高位选择器组单元选通目标编码的所述高位部分积中的数值。
具体的,高位选择器组单元中的每一个高位选择器可以根据接收到的不同功能选择信号,选通目标编码的高位部分积中的对应位数值。
S1032c、根据目标编码的所述高位部分积中的数值以及符号位扩展后的所述高位部分积中的数值,得到目标编码的高位部分积。
具体的,高位部分积获取单元可以根据高位选择器组单元选通后得到的,目标编码的所述高位部分积中的数值以及乘法器当前可处理对应位宽定点数得到的符号位扩展后的高位部分积中的部分位数值,得到乘法器当前所处理对应位宽定点数对应的目标编码的高位部分积。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该方法能够对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S104中对目标编码的所述部分积进行累加处理,得到乘法运算结果的步骤,包括:
S1041、通过修正华莱士树组电路对目标编码的所述低位部分积和所述高位部分积,进行累加处理得到第一运算结果。
具体的,乘法器可以通过修正华莱士树组电路对目标编码的所有低位部分积和所有高位部分积,按照分布规律对每一列数值进行累加处理,得到第一运算结果。可选的,第一运算结果可以包括和位输出信号Sum与进位输出信号Carry,其中,和位输出信号Sum与进位输出信号Carry的位宽可以相同。
S1042、通过累加电路对所述第一运算结果进行累加处理,得到乘法运算结果。
具体的,乘法器可以通过累加电路中的加法器对修正华莱士树组电路输出的进位输出信号Carry与和位输出信号Sum进行加法运算,输出加法运算结果。可选的,修正华莱士树组电路中每一个华莱士树单元可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=0,…,N-1,i为每一个华莱士树单元的对应编号,编号从0开始)。可选的,加法器接收到的Carry={[Carry0:CarryN-2],0},也就是说,加法器接收到的进位输出信号Carry的位宽为N,进位输出信号Carry中前N-1位数值对应修正华莱士树组电路中前N-1个华莱士树单元的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器接收到的和位输出信号Sum的位宽为N,和位输出信号Sum中的数值可以等于修正华莱士树组电路中每一个华莱士树单元的和位输出信号。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该方法能够对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
另一实施例提供的乘法运算方法,上述S1041中通过累加电路对所述第一运算结果进行累加处理,得到乘法运算结果,包括:
S1041a、通过低位华莱士树组子电路对目标编码的所述部分积中的列数值进行累加处理,得到累加运算结果。
具体的,按照目标编码的所有低位部分积和所有高位部分积的分布规律可知,目标编码的所有部分积对应数值的总列数为2N(N为乘法器当前所处理定点数的位宽),从最低位数值开始每一列数值对应的编号可以为0,…,2N-1,其中,编号0至N-1可以称低N列数值。可选的,累加运算结果可以为低位华莱士树组电路中的最后一个华莱士树单元输出的进位输出信号Cout。
需要说明的是,低位华莱士树组子电路中包含的N个华莱士树单元可以按照编号顺序对低N列数值进行累加运算,得到累加运算结果。可选的,累加运算结果可以包括每一个华莱士树单元的进位输出信号Carry,Sum,以及低位华莱士树组子电路中的最后一个华莱士树单元的输出信号Cout。
S1041b、通过选择器对所述累加运算结果进行选通,得到进位选通信号。
具体的,修正压缩电路中的选择器可以根据接收到的功能选择模式信号,选通低位华莱士树组电路中的最后一个华莱士树单元的输出信号Cout或0,得到进位选通信号。
S1041c、通过高位华莱士树组电路根据所述进位选通信号以及目标编码的所述部分积中的列数值进行累加处理,得到乘法运算结果。
具体的,按照目标编码的所有部分积的分布规律可知,目标编码的所有部分积对应数值的总列数为2N(N为乘法器当前所处理定点数的位宽),从最低位数值开始每一列数值对应的编号可以为0,…,2N-1,其中,编号N至2N-1可以称高N列数值。
需要说明的是,高位华莱士树组电路中包含的N个华莱士树单元可以按照编号顺序对高N列数值进行累加运算,输出第二运算结果。其中,高位华莱士树组电路中的第一个华莱士树单元接收到的进位输入信号可以为选择器输出的进位选通信号。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的定点数进行乘法运算,有效减少了乘法器占用AI芯片的面积,并且该方法能够对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
另一实施例提供的数据处理方法的流程示意图,该方法可以通过图12和图14所示的乘法器进行处理,本实施例涉及的是对不同位宽的定点数进行乘法运算的过程。该方法包括:
S201、接收待处理的定点数。
具体的,乘法器接收到的待处理的定点数可以为两个,并且为乘法运算中的乘数和被乘数,另外,同一次运算时,乘法器可以接收到的乘数和被乘数的位宽是相同的。
S202、判断待处理的所述定点数的位宽与乘法器可处理定点数的位宽是否相等。
具体的,乘法器通过判断电路判断接收到的两个待处理的定点数的位宽与乘法器可处理定点数的位宽是否相等。在本实施例中,乘法器可处理定点数的位宽是固定的,即2N比特。可选的,判断电路接收到的待处理的定点数的位宽可以为N,还可以为2N。
S203、若不相等,则对待处理的所述定点数进行数据扩展处理,得到扩展后的定点数。
具体的,若判断电路接收到的待处理的定点数的位宽,不等于乘法器可处理定点数的位宽2N,则乘法器可以通过数据扩展电路对待处理的定点数进行数据扩展处理,将待处理的定点数扩展成2N比特位宽的定点数。
可选的,所述对待处理的所述定点数进行数据扩展处理,得到扩展后的定点数,包括:通过0或待处理的所述定点数的符号位数值,将待处理的所述定点数进行数据扩展处理,得到扩展后的定点数。可选的,所述扩展后的定点数的位宽等于乘法器当前所处理定点数的位宽。
需要说明的是,上述数据扩展电路可以接收三种数据扩展模式选择信号,分别表示为00,01,10,其中,信号00表示数据扩展电路可以将接收到的N位待处理的定点数扩展成2N位定点数,2N位定点数中的高N位数值可以等于接收到的N位定点数的数值,低N位数值均可以等于扩展的数值0,此时,数据扩展电路可以输出功能选择模式信号00,并且乘法器得到的4N比特位宽的运算结果中,高2N位数值可以为最终的运算结果;信号01表示数据扩展电路可以将接收到的N位定点数扩展成2N位定点数,2N位定点数中的低N位数值可以等于接收到的N位定点数的数值,高N位数值均可以等于扩展的数值0,此时,数据扩展电路可以输出功能选择模式信号00,并且乘法器得到的4N比特位宽的运算结果中,低2N位数值可以为最终的运算结果;信号10表示数据扩展电路可以将接收到的N位定点数扩展成2N位定点数,2N位定点数中的低N位数值可以等于接收到的N位定点数的数值,高N位数值均可以等于数据扩展电路接收到的定点数的符号位数值,此时,数据扩展电路可以输出功能选择模式信号01,并且乘法器得到的4N比特位宽的运算结果中,低2N位数值可以为最终的运算结果。
S204、对扩展后的所述定点数进行编码处理,得到符号位扩展后的部分积。
具体的,乘法器可以通过编码电路对扩展后的定点数进行二进制编码处理,并根据接收到的待处理的被乘数和二进制编码的结果得到符号位扩展后的部分积。可选的,符号位扩展后的部分积的数量可以等于N。
S205、对符号位扩展后的所述部分积进行累加处理,得到乘法运算结果。
具体的,乘法器可以通过压缩电路对符号位扩展后的部分积进行累加处理,并得到运算结果。
示例性的,一乘法器可处理16比特位宽的定点数,并且接收到的是两个8比特位宽的定点数,乘法器通过数据扩展电路可以将接收到的两个8比特位宽的定点数,扩展成两个16位比特位宽的定点数,对其进行乘法运算后,可以得到一个32比特位宽的数据;若数据扩展电路将两个8比特位宽的定点数,扩展成低8位均为0,高8位为接收到的定点数,此时,数据扩展电路接收到的数据扩展模式选择信号为00,输出的功能选择模式信号也为00,并且乘法器可以截取32比特位宽数据中的高16位数据作为最终的运算结果;若数据扩展电路将两个8比特位宽的定点数,扩展成高8位均为0,低8位为接收到的定点数,此时,数据扩展电路接收到的数据扩展模式选择信号为01,输出的功能选择模式信号也为00,并且乘法器可以截取32比特位宽数据中的低16位数据作为最终的运算结果;若数据扩展电路将两个8比特位宽的定点数,扩展成高8位数值为接收到的8比特位宽的定点数中的符号位数值,低8位为接收到的定点数,此时,数据扩展电路接收到的数据扩展模式选择信号为10,输出的功能选择模式信号也为01,并且乘法器可以截取32比特位宽数据中的低16位数据作为最终的运算结果。
本实施例提供的一种数据处理方法,该方法能够对接收到的低位宽定点数进行扩展处理,扩展处理后的定点数满足乘法器可处理定点数的位宽要求,使得最终乘法运算的结果仍然为原始位宽的定点数进行乘法运算的结果,从而保证了乘法器能够处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该方法能够对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
另一实施例提供的乘法运算方法,在判断待处理的所述定点数的位宽与乘法器可处理定点数的位宽是否相等之后,所述方法还包括:若相等,则对待处理的所述定点数进行编码处理,得到符号位扩展后的部分积。
具体的,如果乘法器接收到的待处理定点数的位宽与乘法器当前可处理定点数的位宽2N相等,则乘法器中的判断电路可以将接收到的待处理的定点数输入至编码电路,通过编码电路对待处理的定点数直接进行二进制编码处理,得到符号位扩展后的部分积。此情况下,乘法器不需要对待处理的定点数进行数据扩展处理。
本实施例提供的一种数据处理方法,该方法能够对接收到的低位宽定点数进行扩展处理,扩展处理后的定点数满足乘法器可处理定点数的位宽要求,使得最终乘法运算的结果仍然为原始位宽的定点数进行乘法运算的结果,从而保证了乘法器能够处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该方法能够对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
另一实施例提供的乘法运算方法,上述S204中对扩展后的所述定点数进行编码处理,得到符号位扩展后的部分积步骤,包括:
S2041、对扩展后的所述定点数进行布斯编码处理,得到编码信号。
具体的,乘法器可以通过布斯编码子电路对扩展后的待处理的乘数进行布斯编码处理,得到编码信号。可选的,布斯编码过程中,输入的乘数中3比特位宽的数据可以得到一位编码后的数据,上述布斯编码过程中的编码规则可以参见表3,根据表3可知,布斯编码子电路对乘数进行布斯编码,可以得到五类不同的编码信号,每类编码信号分别定义为-2X,2X,-X,X和0。
S2042、根据待处理的所述定点数与所述编码信号,得到所述符号位扩展后的部分积。
具体的,部分积获取子电路可以根据扩展后的待处理的被乘数与编码信号,并通过数据扩展处理得到符号位扩展后的部分积。
本实施例提供的一种数据处理方法,该方法能够对接收到的低位宽定点数进行扩展处理,扩展处理后的定点数满足乘法器可处理定点数的位宽要求,使得最终乘法运算的结果仍然为原始位宽的定点数进行乘法运算的结果,从而保证了乘法器能够处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该方法能够对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
在其中一个实施例中,上述S2042中根据待处理的所述定点数与所述编码信号,得到所述符号位扩展后的部分积的步骤,包括:
S2042a、根据待处理的所述定点数与所述编码信号,得到原始部分积。
具体的,原始部分积的数量可以等于编码信号的数量。可选的,原始部分积可以为未进行符号位扩展的部分积。
S2042b、对所述原始部分积进行符号位扩展处理,得到符号位扩展后的所述部分积。
具体的,部分积获取子电路可以根据原始部分积的符号位数值对原始部分积进行符号位扩展处理,得到符号位扩展后的所述部分积。可选的,原始部分积的位宽可以等于N+1,符号位扩展后的部分积的位宽可以等于2N。可选的,符号位扩展后的部分积中的低N+1位数值为原始部分积的N+1位数值,符号位扩展后的部分积中的高N-1位数值均为原始部分积中的符号位数值。
本实施例提供的一种数据处理方法,该方法能够对接收到的低位宽定点数进行扩展处理,扩展处理后的定点数满足乘法器可处理定点数的位宽要求,使得最终乘法运算的结果仍然为原始位宽的定点数进行乘法运算的结果,从而保证了乘法器能够处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该方法能够对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S205中对符号位扩展后的所述部分积进行累加处理,得到乘法运算结果的步骤,包括:
S2051、通过华莱士树组子电路对符号位扩展后的部分积,进行累加处理得到第一运算结果。
具体的,乘法器可以通过华莱士树组子电路对符号位扩展后的所有部分积,按照分布规律对每一列数值进行累加处理,得到第一运算结果。可选的,第一运算结果可以包括和位输出信号Sum与进位输出信号Carry,其中,和位输出信号Sum与进位输出信号Carry的位宽可以相同。
S2052、通过累加子电路对所述第一运算结果进行累加处理,得到乘法运算结果。
具体的,乘法器可以通过累加子电路中的加法器对华莱士树组子电路输出的进位输出信号Carry与和位输出信号Sum进行加法运算,输出加法运算结果。
本实施例提供的一种数据处理方法,该方法能够对接收到的低位宽定点数进行扩展处理,扩展处理后的定点数满足乘法器可处理定点数的位宽要求,使得最终乘法运算的结果仍然为原始位宽的定点数进行乘法运算的结果,从而保证了乘法器能够处理低位宽定点数的运算,有效减少了乘法器占用AI芯片的面积,并且该方法能够对多种不同位宽的定点数进行乘法运算,降低数据处理装置的功耗,以提高AI芯片的性能。
第四种实现方式
该种实现方式可以通过如下实施例进行详细说明:
另一个实施例提供的数据处理方法的流程示意图,该方法可以通过图15和图16所示的乘法器进行处理,本实施例涉及的是数据乘法运算的过程。该方法包括:
S101、接收待处理的数据。
具体的,乘法器可以通过编码电路接收待处理的数据,该数据可以为乘法运算中的乘数和被乘数。可选的,编码电路接收到的待处理的乘数和被乘数的位宽可以均为8比特,16比特,32比特或64比特,对此本实施例不做任何限定。其中,待处理乘数的位宽可以等于待处理被乘数的位宽。
S102、对待处理的所述数据进行编码,得到编码结果,并根据待处理的所述数据及所述编码结果得到目标编码的部分积。
具体的,乘法器可以通过编码电路对接收到的待处理的乘数进行二进制编码,得到二进制编码的结果。可选的,二进制编码的结果的数量可以等于乘法器当前所处理的数据位宽的1/2倍。可选的,目标编码的部分积的数量可以等于二进制编码结果的数量。
S103、对目标编码的所述部分积进行修正累加处理,得到乘法运算结果。
具体的,乘法器可以通过畸形华莱士树子电路对目标编码的所有部分积中的每一列数值进行累加处理,并在累加处理的过程中通过畸形华莱士树子电路中两个畸形华莱士树子电路可以进行修正加1处理,通过畸形华莱士树组电路输出修正加1处理后的进位输出信号与和位输出信号,最后通过累加电路将畸形华莱士树组电路的所有进位输出信号Carryi,与用0替代最后一个和位输出信号SumN-1后的所有和位输出信号进行累加处理,并将最终的运算结果输出。需要说明的是,若乘法器当前处理N位数据运算,且畸形华莱士树组电路中串行连接2N个畸形华莱士树子电路,每一个畸形华莱士树子电路对应的编号从0开始,则畸形华莱士树组电路可以通过第N个畸形华莱士树子电路和第2N-1个畸形华莱士树子电路进行加1处理。
本实施例提供的一种数据处理方法,该方法能够在完全保证乘法器运算准确性的前提下,去除处理0数值的过程,有效降低了乘法器的功耗;另外,该方法可以通过畸形华莱士树组电路使用较少级数的全加器对目标编码的部分积进行累加处理,降低乘法器的延迟,,从而降低数据处理装置的功耗,提高AI芯片的性能。
另一实施例提供的乘法运算方法,上述S102中对待处理的所述数据进行编码,得到编码结果,并根据待处理的所述数据及所述编码结果,通过优化处理得到目标编码的部分积,包括:
S1021、对待处理的所述数据进行布斯编码处理,得到编码信号。
具体的,乘法器可以通过布斯编码子电路对接收到的待处理的乘数进行布斯编码处理,得到编码信号。
S1022、根据待处理的所述数据与所述编码信号,并通过优化处理得到目标编码的所述部分积。
具体的,上述优化处理可以包括消除符号位扩展处理和消除取反后加一位处理。
本实施例提供的一种数据处理方法,该方法能够在完全保证乘法器运算准确性的前提下,去除处理0数值的过程,有效降低乘法器的功耗,同时降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,上述S1022中根据待处理的所述数据与所述编码信号,并通过优化处理得到目标编码的所述部分积,包括:
S1022a、根据待处理的所述数据与所述编码信号,得到原始部分积。
S1022b、对所述原始部分积进行消除符号位扩展处理,得到消除符号位扩展后的部分积。
具体的,乘法器通过修正符号位扩展单元可以对每一个原始部分积的最高位数值和次高位数值进行加1处理,并根据原始部分积的最高位数值和次高位数值进行判断处理,得到消除符号位扩展后的部分积。可选的,消除符号位扩展后的部分积的位宽可以等于应原始部分积的位宽加1。
需要说明的是,根据每一个原始部分积的最高位数值和次高位数值进行加1处理以及判断处理,得到的消除符号位扩展后的部分积中的最高位数值Q,可以通过原始部分积的最高位数值和次高位数值共同确定,确定规则可以参见表2,最高位数值Q后的相邻两位数值可以分别等于原始部分积中对应两位数值进行加1处理后,得到的两个和位信号。
S1022c、根据所述编码信号得到目标编码的所述部分积中的加一位数值。
具体的,乘法器中的修正取反单元可以根据接收到的所有编码信号得到对应的加一位数值。可选的,上述加一位数值的确定规则可以表征为,若乘法运算中,乘法器接收到的被乘数为Y,乘数为X,对乘数进行布斯编码处理后,得到的编码信号可以包括五类,每类编码信号分别定义为-2X,2X,-X,X和0,则修正取反单元1122可以根据五类编码信号直接得到对应加一位数值,当编码信号为-2X时,则加一位数值可以为1,当编码信号为2X时,则加一位数值可以为0,当编码信号为-X时,则加一位数值可以为1,当编码信号为X时,则加一位数值可以为0,当编码信号为+0时,则加一位数值可以为0。
S1022d、根据消除符号位扩展后的所述部分积和所述加一位数值,得到目标编码的所述部分积。
具体的,通过部分积获取子电路可以将消除符号位扩展后的所有部分积和对应的所有加一位数值组合,得到目标编码的部分积。其中,目标编码的部分积的分布规律中,第一个目标编码的部分积可以等于第一个消除符号位扩展后的部分积,从第二个目标编码的部分积开始,每一个目标编码的部分积可以等于每一个消除符号位扩展后的部分积,与上一个消除符号位扩展后的部分积对应的加一位数值组合得到的部分积,且加一位数值可以位于所组合消除符号位扩展后的部分积最低位数值的低两位处。但是,最后一个目标编码的部分积可以等于最后一个消除符号位扩展后的部分积得到的对应加一位数值,还可以理解为,最后一个加一位数值没有可以组合的消除符号位扩展后的部分积。同时,目标编码的所有部分积的分布规律中,第一个目标编码的部分积的最低位数值,可以与第二个目标编码的部分积的最低位数值位于同一列,从第三个目标编码的部分积开始,每一个目标编码的部分积的最低位数值,可以与上一个目标编码的部分积的最低位的高两位处对应的数值位于同一列。
本实施例提供的一种数据处理方法,该方法能够在完全保证乘法器运算准确性的前提下,去除处理0数值的过程,有效降低乘法器的功耗,同时降低数据处理装置的功耗,提高AI芯片的性能。
第五种实现方式
该种实现方式可以通过如下实施例进行详细说明:
另一个实施例提供的数据处理方法的流程示意图,该方法可以通过图17和图18所示的乘法器进行处理,本实施例涉及的是对不同位宽的数据进行乘法运算的过程。该方法包括:
S101、接收待处理的数据。
具体的,乘法器可以通过改进编码电路接收待处理的数据,该数据可以为乘法运算中的乘数和被乘数。每一次乘法运算时,乘法器还可以通过改进编码电路和改进华莱士树组电路中的所有选择器接收不同的功能选择模式信号,并且同一次运算时改进编码电路中的所有选择器和改进华莱士树组电路中的选择器接收到的功能选择模式信号可以相同。若乘法器接收不同的功能选择模式信号,则乘法器可以处理不同位宽的数据运算,同时,不同选择模式信号与乘法器可以处理不同位宽的数据之间的对应关系可以灵活设置,对此本实施例不作任何限定。
需要说明的是,如果改进编码电路接收到的待处理的乘数和被乘数的位宽,与乘法器接收到的功能选择模式信号对应可处理的数据位宽不相等,则乘法器会根据乘法器当前可处理的数据位宽,将接收到的待处理的数据划分成,与乘法器当前可处理的数据位宽相等的多组数据进行并行处理,其中,改进编码电路接收到的待处理的数据的位宽可以大于乘法器当前可处理的数据位宽。可选的,上述并行处理可以表征为将划分后的每一组待处理的数据据同时进行处理。如果改进编码电路接收到的待处理的数据的位宽,与乘法器接收到的功能选择模式信号对应可处理的数据位宽相等,则乘法器直接对接收到的待处理的数据进行处理。可选的,上述待处理的数据可以包括待处理的高位数据和待处理的低位数据。其中,若待处理的数据的位宽为2N,则高N位为待处理的高位数据,低N位为待处理的高位数据。
可选的,改进编码电路接收到的待处理的乘数和被乘数的位宽可以为8比特,16比特,32比特,64比特,对此本实施例不做任何限定。其中,待处理乘数的位宽可以等于待处理被乘数的位宽。
S102、选通待编码信号,根据所述待编码信号对待处理的所述数据进行布斯编码处理,得到编码信号。
具体的,乘法器可以通过改进编码电路接收到的功能模式选择信号确定选择器选通后的待编码信号,根据确定的待编码信号对待处理的数据进行布斯编码处理,得到编码信号。可选的,上述待处理的数据可以为乘法运算中的乘数,并且可以包括待处理的高位数据和待处理的低位数据,其中,若待处理的数据的位宽为2N,则高N位可以为待处理的高位数据,低N位可以为待处理的低位数据。可选的,上述待编码信号可以为0,还可以为待处理的低位数据中的最高位数值。
需要说明的是,若乘法器接收到的数据的位宽为2N,并且乘法器当前所处理数据的位宽也为2N,则改进编码电路可以通过选择器选通待处理的低位数据中的最高位数值,作为高位数据中的补位数值,此时,乘法器可以将接收到的2N位数据作为一个整体进行乘法运算;若乘法器当前所处理数据的位宽为N,则乘法器需要将接收到的2N位数据分成高N位和低N位数据进行并行处理,此时,改进编码电路可以通过选择器选通0,作为高位数据中的补位数值。
S103、根据所述编码信号和待处理的所述数据,得到目标编码的部分积。
具体的,乘法器中的部分积获取单元可以根据待处理的被乘数和编码信号,得到当前乘法器接收到的功能选择模式信号对应的目标编码的部分积。可选的,上述目标编码的部分积可以为乘法器得到的对应符号位扩展后的部分积,该符号位扩展后的部分积的数量可以等于编码信号的数量。
示例性的,若乘法器接收到的数据的位宽为2N,并且乘法器当前所处理N位宽的数据,则目标编码的部分积可以为高N位数据得到的对应符号位扩展后的部分积,和低N位数据得到的对应符号位扩展后的部分积。
S104、通过改进华莱士树组电路对目标编码的所述部分积中每一列数值进行累加处理,得到乘法运算结果。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积;另外,该方法还可以通过改进华莱士树子电路中的模式选择单元选通目标编码的部分积中的数值,使得改进华莱士树子电路中的一个全加器接收到的信号均为低电平信号,保证关闭该全加器,以达到降低功耗的目的,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S102中选通待编码信号,根据所述待编码信号对对待处理的所述数据进行布斯编码处理,得到编码信号的步骤,包括:
S1021、根据所述待编码信号与待处理的所述数据,得到待编码的高位数据和低位数据。
具体的,改进编码电路可以根据待编码信号确定待处理的高位数据对应的多个待编码高位数据。可选的,在对待处理的数据进行布斯编码处理前,改进编码电路需要对接收到的待处理的乘数进行补位处理,即在乘数中最低位数值的更低一位处补一位数值0。可选的,待处理的低位数据与补位数值0可以得到多组待编码的低位数据,待处理的高位数据与选通后得到的待编码信号可以得到多组待编码的低位数据。可选的,待编码的低位数据的组数可以等于待编码的高位数据的组数,还可以等于乘法器接收到的数据位宽的1/4。
需要说明的是,划分多组待编码的低位数据的原则可以表征为对补位处理后的低位数据中相邻的每3位数值作为一组待编码的低位数据,每一组待编码的低位数据中的最高位数值可以作为相邻下一组待编码的低位数据中的最低位数值。可选的,划分多组待编码的高位数据的原则可以表征为将选通得到的待编码信号作为高位数据的补位数值,对补位后的高位数据中相邻的每3位数值作为一组待编码的高位数据,每一组待编码的高位数据中的最高位数值可以作为相邻下一组待编码的高位数据中的最低位数值。
S1022、对待编码的所述高位数据以及所述低位数据进行布斯编码处理,得到高位编码信号和低位编码信号。
具体的,上述布斯编码处理过程中的编码规则可以参见表3,根据表3可知,通过低位布斯编码单元和高位布斯编码单元对划分后的待编码低位数据,以及高位数据进行布斯编码处理,可以得到五类不同的编码信号,分别为-2X,2X,-X,X和0。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S103中根据所述编码信号和待处理的所述数据,得到目标编码的部分积的步骤,包括:
S1031、根据所述低位编码信号和待处理的所述数据,得到目标编码的低位部分积。
需要说明的是,若乘法器接收到的待处理的数据的位宽为2N,并且乘法器当前可处理N位的数据时,则乘法器需要将2N位待处理的数据划分成待处理的高N位数据和低N位数据进行并行运算,此时,乘法器通过改进编码电路可以根据低位编码信号和待处理的低N位数据,得到目标编码的低位部分积;若乘法器当前可处理2N位的数据时,则乘法器需要根据低位编码信号和待处理的2N位数据,得到目标编码的低位部分积。其中,目标编码的低位部分积的位宽可以为4N,且目标编码的低位部分积的数量可以等于N/2。
S1032、根据所述高位编码信号和待处理的所述数据,得到目标编码的高位部分积。
需要说明的是,若乘法器接收到的待处理的数据的位宽为2N,并且乘法器当前可处理N位的数据时,则乘法器需要将2N位待处理的数据划分成待处理的高N位数据和低N位数据进行并行运算,此时,乘法器通过改进编码电路可以根据高位编码信号和待处理的高N位数据,得到目标编码的高位部分积;若乘法器当前可处理2N位的数据时,则乘法器需要根据高位编码信号和待处理的2N位数据,得到目标编码的高位部分积。其中,目标编码的高位部分积的位宽可以为4N,且目标编码的高位部分积的数量可以等于N/2。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,上述S1031中根据所述低位编码信号和待处理的所述数据,得到目标编码的低位部分积的步骤,包括:
S1031a、根据所述低位编码信号和待处理的所述数据,得到符号位扩展后的低位部分积。
具体的,乘法器根据接收到的功能选择模式信号,低位编码信号和待处理的数据,得到乘法器当前所处理不同位宽数据对应的原始低位部分积,并对原始低位部分积进行符号位扩展处理得到符号位扩展后的低位部分积。可选的,上述原始低位部分积可以为未进行符号位扩展的低位部分积,还可以理解为低位数据对应得到的未进行符号位扩展的部分积。可选的,符号位扩展后的低位部分积的位宽可以等于乘法器接收到的数据位宽M的2倍,原始低位部分积的位宽可以等于M+1。可选的,符号位扩展后的低位部分积可以包括原始低位部分积中的M+1位数值和M-1位原始低位部分积中的符号位数值。
S1031b、通过低位选择器组单元选通目标编码的所述低位部分积中的数值。
具体的,低位选择器组单元中的每一个低位选择器可以根据接收到的不同功能选择信号,选通目标编码的低位部分积中的对应位数值。
S1031c、根据目标编码的所述低位部分积中的数值以及符号位扩展后的所述低位部分积中的数值,得到目标编码的低位部分积。
具体的,低位部分积获取单元可以根据低位选择器组单元选通后得到的,目标编码的所述低位部分积中的数值以及乘法器当前可处理对应位宽数据得到的符号位扩展后的低位部分积中的部分位数值,得到乘法器当前所处理对应位宽数据对应的目标编码的低位部分积。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
在其中一个实施例中,上述S1032中根据所述高位编码信号和待处理的所述数据,得到目标编码的高位部分积的步骤,包括:
S1032a、根据所述高位编码信号和待处理的所述数据,得到符号位扩展后的高位部分积。
具体的,乘法器根据接收到的功能选择模式信号,高位编码信号和待处理的数据,得到乘法器当前所处理不同位宽数据对应的原始高位部分积,并对原始高位部分积进行符号位扩展处理得到符号位扩展后的高位部分积。可选的,上述原始高位部分积可以为未进行符号位扩展的高位部分积,还可以理解为高位数据对应得到的未进行符号位扩展的部分积。可选的,符号位扩展后的高位部分积的位宽可以等于乘法器接收到的数据位宽M的2倍,原始高位部分积的位宽可以等于M+1。可选的,符号位扩展后的高位部分积可以包括原始高位部分积中的M+1位数值和M-1位原始高位部分积中的符号位数值。
S1032b、通过高位选择器组单元选通目标编码的所述高位部分积中的数值。
具体的,高位选择器组单元中的每一个高位选择器可以根据接收到的不同功能选择信号,选通目标编码的高位部分积中的对应位数值。
S1032c、根据目标编码的所述高位部分积中的数值以及符号位扩展后的所述高位部分积中的数值,得到目标编码的高位部分积。
具体的,高位部分积获取单元可以根据高位选择器组单元选通后得到的,目标编码的所述高位部分积中的数值以及乘法器当前可处理对应位宽数据得到的符号位扩展后的高位部分积中的部分位数值,得到乘法器当前所处理对应位宽数据对应的目标编码的高位部分积。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
另一实施例提供的数据处理方法,上述S104中通过改进华莱士树组电路对目标编码的所述部分积中每一列数值进行累加处理,得到乘法运算结果的步骤,包括:
S1041、通过改进华莱士树组电路对目标编码的所述低位部分积和所述高位部分积,进行累加处理得到第一运算结果。
具体的,乘法器可以通过改进华莱士树组电路对目标编码的所有低位部分积和所有高位部分积,按照分布规律对每一列数值进行累加处理,得到第一运算结果。可选的,第一运算结果可以包括和位输出信号Sum与进位输出信号Carry,其中,和位输出信号Sum与进位输出信号Carry的位宽可以相同。
S1042、通过累加电路对所述第一运算结果进行累加处理,得到乘法运算结果。
具体的,乘法器可以通过累加电路中的加法器对改进华莱士树组电路输出的进位输出信号Carry与和位输出信号Sum进行加法运算,输出加法运算结果。可选的,改进华莱士树组电路中每一个改进华莱士树子电路可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=0,…,N-1,i为每一个华莱士树单元的对应编号,编号从0开始)。可选的,加法器接收到的Carry={[Carry0:CarryN-2],0},也就是说,加法器接收到的进位输出信号Carry的位宽为N,进位输出信号Carry中前N-1位数值对应改进华莱士树组电路中前N-1个华莱士树单元的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器接收到的和位输出信号Sum的位宽为N,和位输出信号Sum中的数值可以等于改进华莱士树组电路中每一个改进华莱士树子电路的和位输出信号。
示例性的,若乘法器当前处理8位*8位的数据乘法运算,则加法器可以为16位超前进位加法器,乘法器中的改进华莱士树组电路可以输出16个改进华莱士树子电路的和位输出信号Sum和进位输出信号Carry,但是16位超前进位加法器接收到的和位输出信号可以为改进华莱士树组电路输出的完整和位信号Sum,接收到的进位输出信号可以为改进华莱士树组电路中,除去最后一个改进华莱士树子电路输出的进位输出信号的所有进位输出信号与0结合后的进位信号Carry。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积;另外,该方法可以通过改进华莱士树子电路中的模式选择单元选通目标编码的部分积中的数值,使得改进华莱士树子电路中的一个全加器接收到的信号均为低电平信号,保证关闭该全加器,达到降低功耗的目的,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
另一实施例提供的乘法运算方法,上述S1041中通过累加电路对所述第一运算结果进行累加处理,得到乘法运算结果,包括:
S1041a、通过低位改进华莱士树子电路对目标编码的所述部分积中的列数值进行累加处理,得到累加运算结果。
具体的,按照目标编码的所有低位部分积和所有高位部分积的分布规律可知,目标编码的所有部分积对应数值的总列数为2N(N为乘法器当前所处理数据的位宽),从最低位数值开始每一列数值对应的编号可以为0,…,2N-1,其中,编号0至N-1可以称低N列数值。可选的,累加运算结果可以为低位改进华莱士树子电路中的最后一个改进华莱士树子电路输出的进位输出信号Cout。
需要说明的是,低位改进华莱士树子电路中包含的N个改进华莱士树子电路可以按照编号顺序对低N列数值进行累加运算,得到累加运算结果。可选的,累加运算结果可以包括每一个改进华莱士树子电路的进位输出信号Carry,Sum,以及低位改进华莱士树子电路中的最后一个改进华莱士树子电路的输出信号Cout。
S1041b、通过选择器对所述累加运算结果进行选通,得到进位选通信号。
具体的,改进华莱士树组电路中的选择器可以根据接收到的功能选择模式信号,选通低位改进华莱士树子电路中的最后一个改进华莱士树子电路的输出信号Cout或0,得到进位选通信号。
S1041c、通过高位改进华莱士树子电路根据所述进位选通信号以及目标编码的所述部分积中的列数值进行累加处理,得到乘法运算结果。
具体的,按照目标编码的所有部分积的分布规律可知,目标编码的所有部分积对应数值的总列数为2N(N为乘法器当前所处理数据的位宽),从最低位数值开始每一列数值对应的编号可以为0,…,2N-1,其中,编号N至2N-1可以称高N列数值。
需要说明的是,高位改进华莱士树子电路中包含的N个改进华莱士树子电路可以按照编号顺序对高N列数值进行累加运算,输出第二运算结果。其中,高位华莱士树组电路中的第一个华莱士树单元接收到的进位输入信号可以为选择器输出的进位选通信号。
本实施例提供的一种数据处理方法,该方法能够根据乘法器接收到的功能选择模式信号对多种不同位宽的数据进行乘法运算,有效减少了乘法器占用AI芯片的面积,进而有效降低数据处理装置的功耗,提高AI芯片的性能。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的数据处理装置,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上数据处理装置时,数据处理装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图39为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图40所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图41所示,图41提供了一种板卡,上述板卡除了包括上述芯片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 (21)

1.一种数据处理装置,其特征在于,所述数据处理装置用于执行机器学习计算;所述数据处理装置包括主处理电路以及从处理电路,所述主处理电路的输出端与所述从处理电路的输入端连接,所述从处理电路的输出端与所述主处理电路的输入端连接;
其中,所述主处理电路,用于接收控制信号和第一数据,解析所述控制信号得到分支控制信号,并根据所述分支控制信号对所述第一数据进行调度处理得到调度后的第一数据,并对调度后的所述第一数据进行不同运算,以及接收所述从处理电路的运算结果;所述不同运算包括向量运算和矩阵运算;
所述从处理电路,用于接收所述主处理电路发送的分支控制信号和调度后的所述第一数据,解析所述分支控制信号得到控制子信号,并根据所述控制子信号对调度后的所述第一数据进行调度处理得到调度后的第二数据,然后对调度后的所述第二数据进行运算处理,并将所述运算结果传输至所述主处理电路;所述运算处理包括累加运算以及乘累加运算。
2.根据权利要求1所述的数据处理装置,其特征在于,所述机器学习计算包括人工神经网络运算;所述第一数据和所述第二数据包括神经元数据和权值数据。
3.根据权利要求1-2任一项所述的数据处理装置,其特征在于,所述数据处理装置还包括分支处理电路,所述分支处理电路用于传输数据;其中,所述主处理电路的输出端与所述分支处理电路的第一输入端连接,所述分支处理电路的第一输出端与所述从处理电路的输入端连接,所述从处理电路的输出端与所述分支处理电路的第二输入端连接,所述分支处理电路的第二输出端与所述主处理电路的输入端连接。
4.根据权利要求1所述的数据处理装置,其特征在于,所述主处理电路包括:第一顶层控制模块以及第一数据处理模块;所述第一顶层控制模块包括第一输出端,该第一输出端与所述第一数据处理模块的输入端连接,所述第一数据处理模块的输出端与所述第一顶层控制模块的第一输入端连接;所述第一顶层控制模块用于接收所述控制信号与数据,解析所述控制信号得到所述分支控制信号,并根据所述分支控制信号对所述数据进行调度处理,所述第一数据处理模块用于接收所述第一顶层控制模块调度后的数据以及所述分支控制信号,根据所述分支控制信号对调度后的所述数据进行不同运算。
5.根据权利要求4所述的数据处理装置,其特征在于,所述不同运算包括,激活处理、池化操作、数据填充操作、计数操作、滤波操作、矩阵转置、向量比较、向量极值选取、向量乘、向量逐元素平方、生成随机数以及转数运算等。
6.根据权利要求4所述的数据处理装置,其特征在于,所述第一顶层控制模块还包括第二输出端,该第二输出端与分支处理电路的第三输入端连接,所述分支处理电路的第三输出端与所述第一顶层控制模块的第二输入端连接。
7.根据权利要求4所述的数据处理装置,其特征在于,所述第一数据处理模块包括:运算单元和矩阵转置单元;所述运算单元用于接收所述分支控制信号以及所述第一顶层控制模块调度后的数据,根据所述分支控制信号对调度后的所述数据进行向量比较运算、向量极值选取运算、向量逐元素平方运算、向量累加运算、生成随机数运算以及转数运算,所述矩阵转置单元用于接收所述分支控制信号以及所述第一顶层控制模块调度后的数据,根据所述分支控制信号对调度后的所述数据进行矩阵转置处理。
8.根据权利要求7所述的数据处理装置,其特征在于,所述运算单元包括乘法器、数据比较装置以及转数单元。
9.根据权利要求4所述的数据处理装置,其特征在于,所述从处理电路包括:第二顶层控制模块和第二数据处理模块,所述第二顶层控制模块的输出端与所述第二数据处理模块的输入端连接;
其中,所述第二顶层控制模块用于接收所述分支控制信号以及第一顶层控制模块调度后的数据,解析所述分支控制信号得到所述控制子信号,并根据所述控制子信号对调度后的所述数据进行再次调度,所述第二数据处理模块用于接收所述第一顶层控制模块调度后的数据以及所述分支控制信号,根据所述分支控制信号对调度后的所述数据进行不同的运算。
10.根据权利要求9所述的数据处理装置,其特征在于,所述第二数据处理模块包括:乘法单元、选择器、累加单元以及转数单元,所述乘法单元的输出端与所述选择器的输入端连接,所述选择器的输出端与所述累加单元的输入端连接,所述累加单元的输出端与所述转数单元的输入端连接;所述乘法单元用于对接收到的所述数据进行乘法运算,所述选择器用于选通所述乘法单元的乘法结果或所述数据,所述累加单元用于对接收到的所述乘法结果进行累加运算,或者对接收到的所述数据进行累加运算,所述转数单元用于对接收到的累加运算结果进行转数处理,得到目标格式的数据。
11.根据权利要求10所述的数据处理装置,其特征在于,所述乘法单元包括乘法器。
12.一种数据处理方法,其特征在于,所述方法应用于上述权利要求1-11中任一项所述的数据处理装置,所述方法包括:
接收待处理的数据以及控制信号;
解析所述控制信号得到分支控制信号,并根据所述分支控制信号对待处理的所述数据进行调度处理,得到调度后的第一数据,对调度后的所述第一数据进行不同运算;所述不同运算包括向量运算和矩阵运算;
解析所述分支控制信号得到控制子信号,并根据所述控制子信号对调度后的所述第一数据进行调度处理,得到调度后的第二数据,对调度后的所述第二数据进行运算处理,得到运算结果;所述运算处理包括累加运算以及乘累加运算。
13.根据权利要求12所述的方法,其特征在于,所述运算处理还包括向量极值选取运算;所述对调度后的所述第二数据进行运算处理,得到运算结果,包括:
对调度后的所述第二数据进行向量比较运算,得到比较运算结果;和/或
对调度后的所述第二数据进行向量极值选取运算,得到极值选取运算结果。
14.根据权利要求12所述的方法,其特征在于,所述运算处理包括累加运算或乘累加运算,所述运算结果包括乘法运算结果或乘累加运算结果;所述对调度后的所述第二数据进行运算处理,得到运算结果,包括:
对调度后的所述第二数据进行乘法运算,得到所述乘法运算结果;或
对调度后的所述第二数据进行乘累加运算,得到所述乘累加运算结果。
15.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-11任一项所述的数据处理装置,用于从其它处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述数据处理装置时,所述多个所述数据处理装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述数据处理装置通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据处理装置共享同一控制系统或拥有各自的控制系统;多个所述数据处理装置共享内存或者拥有各自的内存;多个所述数据处理装置的互联方式是任意互联拓扑。
16.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求15所述的机器学习运算装置,通用互联接口和其它处理装置;
所述机器学习运算装置与所述其它处理装置进行交互,共同完成用户指定的计算操作。
17.根据权利要求16所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
18.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求15所述的机器学习运算装置或如权利要求16所述的组合处理装置。
19.一种电子设备,其特征在于,所述电子设备包括如权利要求18所述的神经网络芯片。
20.一种板卡,其特征在于,所述板卡包括:存储器件、接收装置和控制器件以及如权利要求18所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接收装置分别连接;
所述存储器件,用于存储数据;
所述接收装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
21.根据权利要求20所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接收装置为:标准PCIE接口。
CN201811450656.8A 2018-11-30 2018-11-30 数据处理装置、方法、芯片及电子设备 Active CN111260069B (zh)

Priority Applications (2)

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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811450656.8A CN111260069B (zh) 2018-11-30 2018-11-30 数据处理装置、方法、芯片及电子设备

Publications (2)

Publication Number Publication Date
CN111260069A CN111260069A (zh) 2020-06-09
CN111260069B true CN111260069B (zh) 2022-12-09

Family

ID=70951822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811450656.8A Active CN111260069B (zh) 2018-11-30 2018-11-30 数据处理装置、方法、芯片及电子设备

Country Status (1)

Country Link
CN (1) CN111260069B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844826A (zh) * 2017-10-30 2018-03-27 中国科学院计算技术研究所 神经网络处理单元及包含该处理单元的处理系统
CN107886166A (zh) * 2016-09-29 2018-04-06 北京中科寒武纪科技有限公司 一种执行人工神经网络运算的装置和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798519B2 (en) * 2014-07-02 2017-10-24 Via Alliance Semiconductor Co., Ltd. Standard format intermediate result

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107886166A (zh) * 2016-09-29 2018-04-06 北京中科寒武纪科技有限公司 一种执行人工神经网络运算的装置和方法
CN107844826A (zh) * 2017-10-30 2018-03-27 中国科学院计算技术研究所 神经网络处理单元及包含该处理单元的处理系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《人工神经网络系统硬件实现的研究进展》;陈琼 等;《电路与系统学报》;20000331;第5卷(第1期);第48-51页 *

Also Published As

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

Similar Documents

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