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

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

Info

Publication number
CN110378477A
CN110378477A CN201910817880.4A CN201910817880A CN110378477A CN 110378477 A CN110378477 A CN 110378477A CN 201910817880 A CN201910817880 A CN 201910817880A CN 110378477 A CN110378477 A CN 110378477A
Authority
CN
China
Prior art keywords
circuit
target code
partial product
data
product
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910817880.4A
Other languages
English (en)
Other versions
CN110378477B (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 CN201910817880.4A priority Critical patent/CN110378477B/zh
Publication of CN110378477A publication Critical patent/CN110378477A/zh
Application granted granted Critical
Publication of CN110378477B publication Critical patent/CN110378477B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/5235Multiplying only using indirect methods, e.g. quarter square method, via logarithmic domain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • 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)
  • Complex Calculations (AREA)

Abstract

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

Description

乘法器、数据处理方法、芯片及电子设备
技术领域
本申请涉及计算机技术领域,特别是涉及一种乘法器、数据处理方法、芯片及电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片的快速发展对于高性能数字乘法器的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,通过乘法器进行乘法运算在神经网络算法中是一种常见的操作。
目前,乘法器是对乘数中的每三位数值作为一个编码,并根据被乘数得到部分积,并用华莱士树对所有部分积进行压缩处理得到乘法运算结果。但是,传统技术中,编码中非零位数值的数目较多,产生的对应部分积的数目较多,导致乘法器实现乘法运算的复杂性较高。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减少乘法运算过程中获取的有效部分积的数目,以降低乘法器乘法运算复杂性的乘法器、数据处理方法、芯片及电子设备。
本申请实施例提供一种乘法器,所述乘法器包括:正则有符号数编码电路、畸形华莱士树组电路和累加电路,所述正则有符号数编码电路的输出端与所述畸形华莱士树组电路的输入端连接,所述畸形华莱士树组电路的输出端与所述累加电路的输入端连接;
其中,所述正则有符号数编码电路用于对接收到的数据进行正则有符号数编码处理得到原始部分积,并对所述原始部分积进行优化处理得到目标编码的部分积,所述畸形华莱士树组电路用于对所述目标编码的部分积进行累加处理得到累加运算结果,所述累加电路用于对所述累加运算结果进行加法运算。
在其中一个实施例中,所述正则有符号数编码电路包括:正则有符号数编码子电路和部分积获取子电路,所述正则有符号数编码子电路的输出端与所述部分积获取子电路的输入端连接;其中,所述正则有符号数编码子电路用于对接收到的数据进行正则有符号数编码处理得到目标编码,所述部分积获取子电路用于根据所述目标编码得到原始部分积,并对所述原始部分积进行优化处理,得到所述目标编码的部分积。
在其中一个实施例中,所述正则有符号数编码子电路包括:数据输入端口和目标编码输出端口,所述数据输入端口用于接收进行正则有符号数编码处理的数据,所述目标编码输出端口用于输出对接收到的所述数据进行正则有符号数编码处理后得到的所述目标编码。
在其中一个实施例中,所述部分积获取子电路包括:部分积获取单元、修正符号位扩展单元以及修正取反单元,所述部分积获取单元的输出端与所述修正符号位扩展单元以及所述修正取反单元的输入端连接;其中,所述部分积获取单元用于根据接收到的所述目标编码得到所述原始部分积,所述修正符号位扩展单元用于对所述原始部分积进行消除符号位扩展处理,得到消除符号位扩展后的部分积,所述修正取反单元用于对所述原始部分积进行消除取反后修正处理,得到修正数值。
在其中一个实施例中,所述畸形华莱士树组电路包括:畸形华莱士树子电路,所述畸形华莱士树子电路用于对所有目标编码的部分积进行修正累加处理,得到累加运算结果。
在其中一个实施例中,所述累加电路,该累加电路包括:加法器,所述加法器用于对所述累加运算结果进行加法运算。
在其中一个实施例中,所述加法器包括:进位输出信号输入端口,和位输出信号输入端口和结果输出端口,所述进位输出信号输入端口用于接收进位输出信号,所述和位输出信号输入端口用于接收和位输出信号,所述结果输出端口用于输出所述进位输出信号与所述和位输出信号进行累加处理的所述目标运算结果。
本实施例提供的一种乘法器,通过正则有符号数编码电路对接收到的数据进行正则有符号数编码处理得到目标编码的部分积,畸形华莱士树组电路可以对目标编码的部分积进行累加处理,并通过累加电路对畸形华莱士树组电路得到的累加结果进行再次累加处理,得到最终的运算结果,该乘法器能够通过正则有符号数编码电路对接收到的数据进行正则有符号数编码,得到的有效部分积的数目较少,从而降低了乘法器实现乘法运算的复杂性。
本申请实施例提供一种数据处理方法,所述方法包括:
接收待处理数据;
对所述待处理数据进行正则有符号数编码处理,得到目标编码;
根据所述待处理数据及所述目标编码,通过优化处理得到目标编码的部分积;
对所述目标编码的部分积进行修正累加处理,得到所述目标运算结果。
在其中一个实施例中,所述对所述待处理数据进行正则有符号数编码处理,得到目标编码,包括:将所述待处理数据中连续的l位数值1转换为(l+1)位最高位数值为1,最低位数值为-1,其余位为数值0后,得到所述目标编码,其中,l大于等于2。
在其中一个实施例中,所述根据所述待处理数据及所述目标编码,通过优化处理得到目标编码的部分积,包括:
根据所述待处理数据与所述目标编码,得到消除符号位扩展后的部分积;
根据所述目标编码得到所述目标编码的部分积中的修正数值;
根据所述消除符号位扩展后的部分积和所述修正数值,得到所述目标编码的部分积。
在其中一个实施例中,所述根据所述待处理数据与所述目标编码,得到消除符号位扩展后的部分积,包括:
根据所述待处理数据与所述目标编码,得到原始部分积;
对所述原始部分积进行消除符号位扩展处理,得到消除符号位扩展后的部分积。
本实施例提供的一种数据处理方法,接收待处理数据,对所述待处理数据进行正则有符号数编码处理,得到目标编码,根据待处理数据及目标编码,并通过优化处理得到目标编码的部分积,对目标编码的部分积进行修正累加处理,得到目标运算结果,该方法能够对接收到的待处理数据进行正则有符号数编码,降低乘法运算中有效部分积的数目,从而降低乘法运算的复杂性。
本申请实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个第一方面所述的乘法器;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,多个所述计算装置间通过预设特定结构进行连接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
本申请实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
本申请实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的乘法器、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本申请实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本申请实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本申请实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本申请实施例提供的一种芯片,包括至少一个如上述任一项所述的乘法器。
本申请实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为一实施例提供的一种乘法器的结构示意图;
图2为另一实施例提供的乘法器的具体结构示意图;
图3为另一实施例提供的8位数据乘法运算得到的所有目标编码的部分积的分布规律示意图;
图4为另一实施例提供的实现8位数据乘法运算时畸形华莱士树子电路的连接结构示意图;
图5为一实施例提供的一种数据的处理方法流程示意图;
图6为另一实施例提供的得到目标编码的部分积的方法流程示意图;
图7为一实施例提供的一种组合处理装置的结构图;
图8为一实施例提供的另一种组合处理装置的结构图;
图9为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的乘法器可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中进行乘法运算处理,其具体结构示意图如图1所示。
图1为一个实施例提供的一种乘法器的具体结构示意图,如图1所示,所述乘法器包括:正则有符号数编码电路11,畸形华莱士树组电路12和累加电路13,所述正则有符号数编码电路11的输出端与所述畸形华莱士树组电路12的输入端连接,所述畸形华莱士树组电路12的输出端与所述累加电路13的输入端连接。其中,所述正则有符号数编码电路11用于对接收到的数据进行正则有符号数编码处理得到原始部分积,并对所述原始部分积进行优化处理得到目标编码的部分积,所述畸形华莱士树组电路12用于对所述目标编码的部分积进行累加处理得到累加运算结果,所述累加电路13用于对所述累加运算结果进行加法运算。
具体的,上述正则有符号数编码电路11可以包括多个具有不同功能的数据处理单元,并且正则有符号数编码电路11接收到的数据可以作为后续乘法运算中的乘数,还可以作为乘法运算中的被乘数。可选的,上述不同功能的数据处理单元可以为具有正则有符号数编码功能的数据处理单元。可选的,上述乘数和被乘数可以是多比特位宽的定点数。可选的,畸形华莱士树组电路12可以对正则有符号数编码电路11得到的目标编码的部分积中的数值进行累加处理,得到累加运算结果,并通过累加电路13对畸形华莱士树组电路12得到的累加结果进行再次累加处理,得到乘法运算的目标运算结果。
需要说明的是,乘法器进行同一次乘法运算时,正则有符号数编码电路11接收到的乘数和被乘数为同位宽的数据,并且在本实施例中,上述乘法器可以处理固定位宽的数据,且固定位宽可以等于8比特,16比特,32比特,还可以等于64比特,对此本实施例不作任何限定。可选的,上述不同功能的数据处理单元的输入端口可以有一个,每个数据处理单元的输入端口的功能可以相同,不同功能的数据处理单元的输出端口也可以有一个,每个数据处理单元的输出端口的功能可以不相同,并且不同功能数据处理单元的电路结构可以不相同。
本实施例提供的一种乘法器,通过正则有符号数编码电路对接收到的数据进行正则有符号数编码处理得到目标编码的部分积,畸形华莱士树组电路可以对目标编码的部分积进行累加处理,并通过累加电路对畸形华莱士树组电路得到的累加结果进行再次累加处理,得到最终的运算结果,该乘法器能够采用正则有符号数编码电路对接收到的数据进行正则有符号数编码处理,以降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
图2为另一实施例提供的一种乘法器的具体结构示意图,作为一个实施例,所述乘法器包括正则有符号数编码电路11,该正则有符号数编码电路11包括:正则有符号数编码子电路111和部分积获取子电路112,所述正则有符号数编码子电路111的输出端与所述部分积获取子电路112的输入端连接;其中,所述正则有符号数编码子电路111用于对接收到的数据进行正则有符号数编码处理得到目标编码,所述部分积获取子电路112用于根据所述目标编码得到原始部分积,并对所述原始部分积进行优化处理,得到所述目标编码的部分积。
具体的,上述正则有符号数编码子电路111可以接收乘法运算中的乘数,并对该乘数进行正则有符号数编码处理,得到目标编码。可选的,上述目标编码的位宽可以等于乘法器当前所接收到的数据位宽N加1,还可以等于原始部分积的数目。可选的,正则有符号数编码子电路111接收到的乘数可以为定点数,而部分积获取子电路112可以接收到乘法运算中的被乘数,该被乘数也可以为定点数。
需要说明的是,上述正则有符号数编码处理的方法可以通过以下方式表征:对于N位乘数而言,从低位数值向高位数值处理,若存在连续l(l>=2)位数值1时,则可以将连续n位数值1转换处理为数据“1(0)l-1(-1)”,并且将其余对应(N-l)位数值与转换后的(l+1)位数值进行结合得到一个新的数据;然后将该新数据作为下一级转换处理的初始数据,直到转换处理后得到的新数据中不存在连续l(l>=2)位数值1为止;其中,对N位乘数进行正则有符号数编码处理,得到的目标编码的位宽可以等于(N+1)。进一步地,在正则有符号数编码处理时,数据11可以转换为(100-001),即数据11可以等价转换为10(-1);数据111可以转换为(1000-0001),即数据111可以等价转换为100(-1);依次类推,其它连续l(l>=2)位数值1转换处理的方式也类似。
例如,正则有符号数编码子电路111接收到的乘数为“001010101101110”,对该乘数进行第一级转换处理后得到的第一新数据为“0010101011100(-1)0”,继续对第一新数据进行第二级转换处理后得到的第二新数据为“0010101100(-1)00(-1)0”,继续对第二新数据进行第三级转换处理后得到的第三新数据为“0010110(-1)00(-1)00(-1)0”,继续对第三新数据进行第四级转换处理后得到的第四新数据为“00110(-1)0(-1)00(-1)00(-1)0”,继续对第四新数据进行第五级转换处理后得到的第五新数据为“010(-1)0(-1)0(-1)00(-1)00(-1)0”,第五新数据中不存在连续的l(l>=2)位数值1,此时,将第五新数据可以称为中间编码,并对中间编码进行一次补位处理后,表征正则有符号数编码处理完成,其中,中间编码的位宽可以等于乘数的位宽。可选的,正则有符号数编码子电路111对乘数进行正则有符号数编码处理后,得到的新数据(即中间编码)中,若新数据中的最高位数值和次高位数值为“10”或“01”,则正则有符号数编码子电路111可以对该新数据得到的中间编码的最高位数值的更高一位处补一位数值0,得到对应目标编码的高三位数值分别为“010”或“001”。可选的,上述中间编码的位宽可以等于目标编码的位宽减1。
另外,部分积获取子电路112可以根据目标编码得到对应的原始部分积,并对每一个原始部分积进行优化处理,得到目标编码的部分积。可选的,上述原始部分积可以为未进行符号位扩展的部分积,且原始部分积的位宽可以等于N,其中,N表示乘法器当前所处理数据的位宽。可选的,上述优化处理可以包括消除符号位扩展处理以及消除负部分积取反后修正处理。
本实施例提供的一种乘法器,正则有符号数编码子电路可以对接收到的数据进行正则有符号数编码处理得到目标编码,然后部分积获取子电路可以根据每一个目标编码得到对应的原始部分积,并对原始部分积进行优化处理,得到目标编码的部分积,该乘法器能够采用正则有符号数编码子电路可以对接收到的数据进行正则有符号数编码处理,以降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
在其中一个实施例中,继续如图2所示乘法器的具体结构示意图,其中,正则有符号数编码电路11包括所述正则有符号数编码子电路111,该正则有符号数编码子电路111包括:数据输入端口1111和目标编码输出端口1112,所述数据输入端口1111用于接收进行正则有符号数编码处理的数据,所述目标编码输出端口1112用于输出对接收到的所述数据进行正则有符号数编码处理后得到的所述目标编码。
具体的,若正则有符号数编码子电路111通过数据输入端口1111接收到一个数据,则正则有符号数编码子电路111可以对接收到的该数据进行正则有符号数编码处理,得到目标编码,将目标编码通过目标编码输出端口1112输出。可选的,正则有符号数编码子电路111可以通过数据输入端口1111接收乘法运算中的乘数,且正则有符号数编码子电路111可以对乘数进行正则有符号数编码处理。
本实施例提供的一种乘法器,通过正则有符号数编码子电路可以对接收到的数据进行正则有符号数编码处理得到目标编码,进而部分积获取子电路可以根据目标编码得到目标编码的部分积,并通过畸形华莱士树组电路对目标编码的部分积进行累加处理,最后通过累加电路对畸形华莱士树组电路得到的累加结果,进行再次累加处理,得到最终的运算结果,该乘法器能够采用正则有符号数编码子电路可以对接收到的数据进行正则有符号数编码处理,以降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
在其中一个实施例中,继续如图2所示乘法器的具体结构示意图,其中,乘法器包括所述部分积获取子电路112,该部分积获取子电路112包括:部分积获取单元1121、修正符号位扩展单元1122以及修正取反单元1123,所述部分积获取单元1121的输出端与所述修正符号位扩展单元1122以及所述修正取反单元1123的输入端连接;其中,所述部分积获取单元1121用于根据接收到的所述目标编码得到所述原始部分积,所述修正符号位扩展单元1122用于对所述原始部分积进行消除符号位扩展处理,得到消除符号位扩展后的部分积,所述修正取反单元1123用于对所述原始部分积进行消除取反后修正处理,得到修正数值。
具体的,通过修正符号位扩展单元1122对原始部分积进行消除符号位扩展处理时,可以对原始部分积中的最高位数值进行与逻辑运算处理,得到消除符号位扩展后的部分积。可选的,消除符号位扩展后的部分积的位宽可以等于(N+1),其中,N表示原始部分积的位宽,N表示乘法器接收到的数据的位宽。可选的,消除符号位扩展后的部分积比原始部分积多一位数值(即额外一位数值),该额外一位数值可以位于消除符号位扩展后的部分积中最高位处,且对原始部分积中的最高位数值和信号1进行与逻辑运算处理,得到的和位信号可以为消除符号位扩展后的部分积中的次高位数值,同时,得到的进位信号可以为消除符号位扩展后的部分积中的额外一位数值。
需要说明的是,若原始部分积的最高位数值用A表示,对原始部分积中的最高位的数值A和信号1进行与逻辑运算处理后,可以得到消除符号位扩展后的部分积中的额外一位数值,该额外一位数值可以用Q表示,得到消除符号位扩展后的部分积中的次高位数值可以用A'表示,运算结果可以参见表1。
表1
另外,乘法器可以通过修正取反单元1123,对每一个原始部分积进行消除取反后修正处理,得到修正数值,部分积获取子电路112并将得到的每一个消除符号位扩展后的部分积,与对应的修正数值组合,得到目标编码的部分积。可选的,修正取反单元1123可以根据每一个原始部分积对应的目标编码得到对应的修正数值。可选的,上述目标编码的部分积的位宽可以等于消除符号位扩展后的部分积的位宽,或者消除符号位扩展后的部分积的位宽加1,还可以等于修正数值的位宽1,并且每一个目标编码的部分积中的修正数值可以位于对应消除符号位扩展后的部分积中最低位数值后低一位处。可选的,所有目标编码的部分积的列数可以等于乘法器处理的数据位宽的2倍。可选的,上述目标编码的部分积的数目可以等于消除符号位扩展后的部分积的数目加1。
需要说明的是,修正取反单元1123可以根据每一个目标编码得到一个对应修正数值。另外,得到的修正数值的数目可以等于原始部分积的数目,还可以得到消除符号位扩展后的部分积的数目。可选的,上述目标编码中可以包括三种数值,分别为-1、0和1,当数值为-1时,则对应的原始部分积可以为-X,当数值为0时,则对应的原始部分积可以为0,当数值为1时,则对应的原始部分积可以为X;其中,X可以表示部分积获取子电路112接收到的被乘数。也就是,在本实施例中,目标编码中的每个数值均可以得到一个对应的原始部分积。
其中,所有目标编码的部分积的分布规律中,第一个目标编码的部分积可以等于第一个消除符号位扩展后的部分积,从第二个目标编码的部分积开始,每一个目标编码的部分积可以等于每一个消除符号位扩展后的部分积,与上一个消除符号位扩展后的部分积对应的修正数值组合得到的部分积,且修正数值可以与上一个目标编码的部分积最低位数值位于同一列,且消除符号位扩展后的部分积最低位数值与修正数值中间没有空位,目标编码的部分积的最低位数值可以为消除符号位扩展后的部分积的最低位数值,还可以为修正数值。但是,最后一个目标编码的部分积可以等于最后一个消除符号位扩展后的部分积得到的对应修正数值,还可以理解为,最后一个修正数值没有可以组合的消除符号位扩展后的部分积。示例性的,继续参见上一示例,乘法器进行8位*8位的数据乘法运算,得到所有目标编码的部分积的分布规律如图3所示(图中示出了17列部分积数值,在实际运算时,倒数第二行的最高位数值溢出,也就是倒数第二个目标编码的部分积中的额外一位数值Q溢出,不参与后续累加运算),图中表示修正数值,“●”表示消除符号位扩展处理后得到的额外一位数值Q,“○”表示消除符号位扩展后的部分积中,除去额外一位数值Q外的其它位数值。
可以理解的是,第一个消除符号位扩展后的部分积可以与目标编码中的最低位数值对应,依次类推,最后一个消除符号位扩展后的部分积可以与目标编码中的最高位数值对应。可选的,乘法器可以先通过修正取反单元1123对原始部分积进行消除取反后修正处理,得到修正数值,再通过修正符号位扩展单元1122对原始部分积进行消除符号位扩展处理,得到消除符号位扩展后的部分积。
本实施例提供的一种乘法器,部分积获取子电路可以根据正则有符号数编码子电路得到的目标编码,得到对应的原始部分积,并对原始部分积进行消除符号位扩展处理以及消除取反后修正处理,得到目标编码的部分积,该乘法器能够获取的有效部分积的数目较少,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
在其中一个实施例中,继续如图2所示乘法器的具体结构示意图,其中,乘法器包括所述畸形华莱士树组电路12,该畸形华莱士树组电路12包括:畸形华莱士树子电路121~12n,多个所述畸形华莱士树子电路121~12n用于对所有目标编码的部分积进行修正累加处理,得到累加运算结果。
具体的,畸形华莱士树子电路121~12n的电路结构可以由全加器和/或半加器组合实现,另外,还可以理解为畸形华莱士树子电路121~12n是一种能够对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路。可选的,畸形华莱士树组电路12包含的畸形华莱士树子电路的数目n可以等于乘法器当前所处理数据位宽N的2倍,并且n个畸形华莱士树子电路可以对目标编码的部分积进行并行处理,但连接方式可以是串行连接。可选的,畸形华莱士树组电路12中每一个畸形华莱士树子电路可以对所有目标编码的部分积的每一列进行加法处理,每一个畸形华莱士树子电路可以输出两个信号,即进位输出信号与一个和位输出信号Sumi,其中,进位输出信号可以为Carryi或0,和位输出信号可以为Sumi,i可以表示每一个畸形华莱士树子电路对应的编号,第一个畸形华莱士树子电路的编号为0。可选的,每一个畸形华莱士树子电路接收到输入信号的数目可以等于1,2,…或m,其中,m可以等于消除符号位扩展后的部分积的数目加1,还可以理解为,每一个畸形华莱士树子电路输入信号的数目可以不同,每一个畸形华莱士树子电路的内部结构也可以不同。
另外,乘法器对所有目标编码的部分积的每一列进行加法运算的过程中,通过畸形华莱士树组电路12中的两个畸形华莱士树子电路,对所有目标编码的部分积中的两列数值进行修正处理,也就是说,所有目标编码的部分积中的这两列数值所对应的两个畸形华莱士树子电路的输入信号,可以包括消除符号位扩展后的部分积中的数值,或者消除符号位扩展后的部分积中的数值、修正数值以及一位修正信号,该修正信号可以为1。在本实施例中,若畸形华莱士树组电路12中串行连接的n个畸形华莱士树子电路的编号为1,2,…,i,…,n,则畸形华莱士树组电路12可以通过第i个畸形华莱士树子电路和第n个畸形华莱士树子电路,对目标编码的部分积中对应的两列数值进行修正处理,同时,若所有目标编码的部分积中,从最低位数值到最高位数值对应的列数编号为1,2,…,n/2,...,n-1,n,上述i可以等于n/2,可以理解为,畸形华莱士树组电路12可以通过第n/2个畸形华莱士树子电路和第n个畸形华莱士树子电路,对目标编码的部分积进行修正处理。其中,上述n可以等于乘法器接收到的数据的位宽N的2倍。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,部分积获取子电路112得到的所有目标编码的部分积的分布规律可以如图3所示,每一个畸形华莱士树子电路可以接收所有目标编码的部分积中对应列的所有数值,并且乘法器需要通过第8个和第16个畸形华莱士树子电路进行修正处理,这两个畸形华莱士树子电路除了接收所有目标编码的部分积中对应列的所有数值外,还多了一个输入信号端口,该端口接收到的信号可以为1,此时,畸形华莱士树组电路12中的16个畸形华莱士树子电路的连接电路图以及实现修正处理的两个畸形华莱士树子电路图均如图4所示,其中,图4中Wallace_i表示畸形华莱士树子电路,i为畸形华莱士树子电路从0开始的编号,并且两两畸形华莱士树子电路之间连接的实线表示高位编号对应的畸形华莱士树子电路有输出的进位连接信号,虚线表示高位编号对应的畸形华莱士树子电路没有输出的进位连接信号。可选的,上述进位连接信号可以表征为每一个畸形华莱士树子电路输入至相邻的下一个畸形华莱士树子电路的进位输出信号。
需要说明的是,每一个畸形华莱士树子电路的进位连接信号,可以作为下一个畸形华莱士树子电路对应的进位输入信号,且第一个畸形华莱士树子电路的进位输入信号可以等于0。可选的,每一个畸形华莱士树子电路输出的进位连接信号的位数NCout可以等于floor((NI+NCin)/2)-1,其中,NI表示该畸形华莱士树子电路的部分积数值输入信号的数目,NCin表示该畸形华莱士树子电路的进位输入信号的数目,floor(·)表示向下取整函数,NCout表示输出的最少数目的进位连接信号的位数。另外,畸形华莱士树组电路12中的第一个畸形华莱士树子电路122,和倒数第一个畸形华莱士树子电路12(n-1)的进位输出信号均可以等于0。
本实施例提供的一种乘法器,乘法器通过畸形华莱士树组电路对目标编码的部分积进行累加处理,并通过累加电路对畸形华莱士树组电路得到累加结果,进行再次累加处理,得到最终的运算结果,该乘法器能够降低实现乘法运算的复杂性,提高乘法运算的运算效率,有效降低了乘法器的功耗。
在其中一个实施例中,继续如图2所示乘法器的具体结构示意图,其中,乘法器包括所述累加电路13,该累加电路13包括:加法器131,所述加法器131用于对所述累加运算结果进行加法运算。
具体的,加法器131可以为不同位宽的加法器,并且加法器131可以为超前进位加法器。可选的,加法器131可以接收畸形华莱士树组电路12输出的两路信号,对两路输出信号进行加法运算,输出目标运算结果。
本实施例提供的一种乘法器,通过累加电路可以对畸形华莱士树组电路输出的两路信号进行累加处理,输出乘法运算的目标运算结果,该乘法器能够降低实现乘法运算的复杂性,提高乘法运算的运算效率,有效降低了乘法器的功耗。
在其中一个实施例中,所述加法器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开始,N为乘法器接收到的数据的位宽)。可选的,加法器131接收到的Carry={[Carry0:Carry2N-2],0},也就是说,加法器131接收到的进位输出信号Carry的位宽为2N,进位输出信号Carry中前2N-1位数值对应畸形华莱士树组电路12中,前2N-1个畸形华莱士树子电路的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器131接收到的和位输出信号Sum的位宽为2N,和位输出信号Sum中的数值可以等于畸形华莱士树组电路12中每一个畸形华莱士树子电路的和位输出信号。
示例性的,若乘法器当前处理8位*8位的数据乘法运算,则加法器131可以为16位超前进位加法器,继续参见图4所示,畸形华莱士树组电路12可以输出16个压缩器子电路的和位输出信号Sum和进位输出信号Carry,但是,16位超前进位加法器接收到的和位输出信号可以为畸形华莱士树组电路12输出的完整和位输出信号Sum,接收到的进位输出信号可以为畸形华莱士树组电路12中,除去最后一个畸形华莱士树子电路输出的进位输出信号的所有进位输出信号与0结合后的进位输出信号Carry。
本实施例提供的一种乘法器,通过累加电路可以对畸形华莱士树组电路输出的两路信号进行累加处理,输出乘法运算的目标运算结果,该乘法器能够降低实现乘法运算的复杂性,提高乘法运算的运算效率,有效降低了乘法器的功耗。
图5为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图1和图2所示的乘法器进行处理,本实施例涉及的是数据乘法运算的过程。如图5所示,该方法包括:
S101、接收待处理数据。
具体的,乘法器可以通过正则有符号数编码电路接收待处理数据,该待处理数据可以为乘法运算中的乘数和被乘数。可选的,正则有符号数编码电路接收到的待处理的乘数和被乘数的位宽可以均为8比特,16比特,32比特或64比特,对此本实施例不做任何限定。其中,待处理数据的位宽可以等于待处理被乘数的位宽。可选的,上述乘数和被乘数均可以为定点数。
S102、对所述待处理数据进行正则有符号数编码处理,得到目标编码。
具体的,乘法器可以通过正则有符号数编码电路对接收到的待处理数据进行正则有符号数编码处理,得到目标编码,该待处理数据可以为乘数。其中,目标编码的位宽可以等于待处理数据位宽N加1。
可选的,上述S102中对所述待处理数据进行正则有符号数编码处理,得到目标编码的步骤,可以包括:将所述待处理数据中连续的l位数值1转换为(l+1)位最高位数值为1,最低位数值为-1,其余位为数值0后,得到所述目标编码,其中,l大于等于2。
需要说明的是,上述正则有符号数编码处理的方法可以通过以下方式表征:对于N位乘数而言,从低位数值向高位数值处理,若存在连续l(l>=2)位数值1时,则可以将连续n位数值1转换处理为数据“1(0)l-1(-1)”,并且将其余对应(N-l)位数值与转换后的(l+1)位数值进行结合得到一个新的数据;然后将该新数据作为下一级转换处理的初始数据,直到转换处理后得到的新数据中不存在连续l(l>=2)位数值1为止;其中,对N位乘数进行正则有符号数编码处理,得到的目标编码的位宽可以等于(N+1)。
S103、根据所述待处理数据及所述目标编码,通过优化处理得到目标编码的部分积。
具体的,上述优化处理可以为消除符号位扩展处理以及消除取反后修正处理。可选的,上述目标编码的部分积的数目可以等于目标编码的数目加1。
S104、对所述目标编码的部分积进行修正累加处理,得到所述目标运算结果。
具体的,乘法器可以通过畸形华莱士树子电路对所有目标编码的部分积中的每一列数值进行累加处理,并在累加处理的过程中通过畸形华莱士树子电路中两个畸形华莱士树子电路可以进行修正处理,通过畸形华莱士树组电路输出修正处理后的进位输出信号与和位输出信号,最后通过累加电路将畸形华莱士树组电路的所有进位输出信号Carryi,与用0替代最后一个和位输出信号Sum2N-1后的所有和位输出信号进行累加处理,并将目标运算结果输出。
需要说明的是,若乘法器当前处理N位数据运算,且畸形华莱士树组电路中串行连接M+N个畸形华莱士树子电路,每一个畸形华莱士树子电路对应的编号从0开始,则畸形华莱士树组电路可以通过第N个畸形华莱士树子电路和第2N-1个畸形华莱士树子电路进行修正处理,其中,N为乘法器接收到的数据的位宽。
本实施例提供的一种数据处理方法,接收待处理数据,对所述待处理数据进行正则有符号数编码处理,得到目标编码,根据所述待处理数据及所述目标编码,并通过优化处理得到目标编码的部分积,对所述目标编码的部分积进行修正累加处理,得到所述目标运算结果,该方法能够采用正则有符号数编码电路对接收到的数据进行正则有符号数编码处理,以降低乘法运算过程中获取的有效部分积的数目,从而降低乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
如图6所示为另一实施例提供的乘法运算方法,上述S103中根据所述待处理数据及所述目标编码,通过优化处理得到目标编码的部分积的步骤,可以通过以下方式实现:
S1031、根据所述待处理数据与所述目标编码,得到消除符号位扩展后的部分积。
具体的,目标编码中的每一位数值均可以有对应的一个消除符号位扩展后的部分积。可选的,上述目标编码的位宽可以等于消除符号位扩展后部分积的数目。
需要说明的是,乘法器可以根据待处理的被乘数以及目标编码,得到消除符号位扩展后的部分积。
S1032、根据所述目标编码得到所述目标编码的部分积中的修正数值。
具体的,乘法器中的修正取反单元可以根据接收到的目标编码中的数值得到对应的修正数值。可选的,上述修正数值的确定规则可以表征为,若乘法运算中,乘法器接收到的被乘数为X,乘数为Y,对乘数进行正则有符号数编码处理后,得到的目标编码可以包括三种数值,分别为-1,0和1,则修正取反单元可以根据目标编码中包含的三种数值直接得到对应修正数值,当目标编码中的数值为-1时,则对应的修正数值可以为1,当目标编码中的数值为1时,则修正数值可以为0,当目标编码中的数值为0时,则修正数值可以为0。
S1033、根据所述消除符号位扩展后的部分积和所述修正数值,得到所述目标编码的部分积。
具体的,通过部分积获取子电路可以将消除符号位扩展后的所有部分积和对应的所有修正数值组合,得到目标编码的部分积。其中,所有目标编码的部分积的分布规律中,第一个目标编码的部分积可以等于第一个消除符号位扩展后的部分积,从第二个目标编码的部分积开始,每一个目标编码的部分积可以等于每一个消除符号位扩展后的部分积,与上一个消除符号位扩展后的部分积对应的修正数值组合得到的部分积,且修正数值可以与上一个目标编码的部分积最低位数值位于同一列,且消除符号位扩展后的部分积最低位数值与修正数值中间没有空位,目标编码的部分积的最低位数值可以为消除符号位扩展后的部分积的最低位数值,还可以为修正数值;最后一个目标编码的部分积可以等于最后一个消除符号位扩展后的部分积得到的对应修正数值,还可以理解为,最后一个修正数值没有可以组合的消除符号位扩展后的部分积。以乘法器处理8位数据运算为例,所有目标编码的部分积总共17列数值,在实际运算时,倒数第二个目标编码的部分积中的额外一位数值Q溢出,不参与后续累加运算。
示例性的,若乘法器当前处理8位*8位的数据乘法运算,所有目标编码的部分积的分布规律可以继续参见图3。
可选的,上述S1031中根据所述待处理数据与所述目标编码,得到消除符号位扩展后的部分积的步骤,具体可以包括:
S1031a、根据所述待处理数据与所述目标编码,得到原始部分积。
具体的,上述原始部分积的数目可以等于目标编码的位宽。示例性的,若部分积获取子电路接收到一个8位的被乘数x7x6x5x4x3x2x1x0(即X),则部分积获取子电路可以根据被乘数x7x6x5x4x3x2x1x0(即X)与目标编码中的三种数值-1,0和1直接得到对应的原始部分积,当目标编码中的数值为-1时,则原始部分积可以为-X,当目标编码中的数值为1时,则原始部分积可以为X,当目标编码中的数值为0时,则原始部分积可以0。
S1031b、对所述原始部分积进行消除符号位扩展处理,得到消除符号位扩展后的部分积。
具体的,乘法器通过修正符号位扩展单元可以对每一个原始部分积的最高位数值进行与逻辑运算,得到消除符号位扩展后的部分积。可选的,消除符号位扩展后的部分积的位宽可以等于原始部分积的位宽加1。
需要说明的是,根据每一个原始部分积的最高位数值进行与逻辑运算处理,得到的消除符号位扩展后的部分积中的最高位数值Q,和次高位数值,最终获取的数值可以参见表1。
本实施例提供的一种数据处理方法,乘法器根据待处理数据与目标编码,得到消除符号位扩展后的部分积,根据目标编码得到目标编码的部分积中的修正数值,根据消除符号位扩展后的部分积和修正数值,得到目标编码的部分积,该方法能够获取的有效部分积的数目较少,从而降低乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的乘法器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上乘法器时,乘法器间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图7为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图8所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图9所示,图9提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其它的配套部件,该配套部件包括但不限于:存储器件390、接收装置391和控制器件392;
所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接收装置与所述芯片封装结构内的芯片电连接。所述接收装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接收装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接收装置还可以是其它的接口,本申请并不限制上述其它的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接收装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备可以为乘法器、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的电路组合,但是本领域技术人员应该知悉,本申请并不受所描述的电路组合方式的限制,因为依据本申请,某些电路可以采用其它方式或者结构实现。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的器件和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (18)

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

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN110378477A true CN110378477A (zh) 2019-10-25
CN110378477B CN110378477B (zh) 2023-09-08

Family

ID=68261394

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN110378477B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1056939A (zh) * 1990-05-31 1991-12-11 三星电子株式会社 使用跳跃阵列和变形华莱士树的并行乘法器
US20020116433A1 (en) * 2001-02-16 2002-08-22 Kaoru Awaka Multiply accumulate modules and parallel multipliers and methods of designing multiply accumulate modules and parallel multipliers
CN101384991A (zh) * 2006-02-15 2009-03-11 松下电器产业株式会社 乘法器、数字滤波器、信号处理装置、合成装置、合成程序和合成程序记录介质
CN101739231A (zh) * 2010-01-04 2010-06-16 西安电子科技大学 布斯-华莱士树型乘法器
CN101882127A (zh) * 2010-06-02 2010-11-10 湖南大学 一种多核心处理器
CN102314215A (zh) * 2011-09-27 2012-01-11 西安电子科技大学 集成电路系统中小数乘法器的低功耗优化方法
CN105739945A (zh) * 2016-01-22 2016-07-06 南京航空航天大学 一种基于改进部分积阵列的修正Booth编码乘法器
DE102018110607A1 (de) * 2017-05-08 2018-11-08 Nvidia Corporation Verallgemeinerte Beschleunigung von Matrix-Multiplikations-und-Akkumulations-Operationen
CN109150187A (zh) * 2018-08-02 2019-01-04 南京理工大学 一种基于多比特数字信号的数模转换电路

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1056939A (zh) * 1990-05-31 1991-12-11 三星电子株式会社 使用跳跃阵列和变形华莱士树的并行乘法器
US20020116433A1 (en) * 2001-02-16 2002-08-22 Kaoru Awaka Multiply accumulate modules and parallel multipliers and methods of designing multiply accumulate modules and parallel multipliers
CN101384991A (zh) * 2006-02-15 2009-03-11 松下电器产业株式会社 乘法器、数字滤波器、信号处理装置、合成装置、合成程序和合成程序记录介质
CN101739231A (zh) * 2010-01-04 2010-06-16 西安电子科技大学 布斯-华莱士树型乘法器
CN101882127A (zh) * 2010-06-02 2010-11-10 湖南大学 一种多核心处理器
CN102314215A (zh) * 2011-09-27 2012-01-11 西安电子科技大学 集成电路系统中小数乘法器的低功耗优化方法
CN105739945A (zh) * 2016-01-22 2016-07-06 南京航空航天大学 一种基于改进部分积阵列的修正Booth编码乘法器
DE102018110607A1 (de) * 2017-05-08 2018-11-08 Nvidia Corporation Verallgemeinerte Beschleunigung von Matrix-Multiplikations-und-Akkumulations-Operationen
CN109150187A (zh) * 2018-08-02 2019-01-04 南京理工大学 一种基于多比特数字信号的数模转换电路

Also Published As

Publication number Publication date
CN110378477B (zh) 2023-09-08

Similar Documents

Publication Publication Date Title
CN109740739A (zh) 神经网络计算装置、神经网络计算方法及相关产品
CN109086076A (zh) 神经网络处理装置及其执行向量点积指令的方法
CN110515589A (zh) 乘法器、数据处理方法、芯片及电子设备
CN111008003B (zh) 数据处理器、方法、芯片及电子设备
CN109740754A (zh) 神经网络计算装置、神经网络计算方法及相关产品
CN110163357A (zh) 一种计算装置及方法
CN110362293A (zh) 乘法器、数据处理方法、芯片及电子设备
CN110515587A (zh) 乘法器、数据处理方法、芯片及电子设备
CN110515590A (zh) 乘法器、数据处理方法、芯片及电子设备
CN110531954A (zh) 乘法器、数据处理方法、芯片及电子设备
CN109670581A (zh) 一种计算装置及板卡
CN111258541B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110515586A (zh) 乘法器、数据处理方法、芯片及电子设备
CN110515588A (zh) 乘法器、数据处理方法、芯片及电子设备
CN110378477A (zh) 乘法器、数据处理方法、芯片及电子设备
CN210109863U (zh) 乘法器、装置、神经网络芯片及电子设备
CN110647307B (zh) 数据处理器、方法、芯片及电子设备
CN110378478A (zh) 乘法器、数据处理方法、芯片及电子设备
CN110688087B (zh) 数据处理器、方法、芯片及电子设备
CN110515585A (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258542B (zh) 乘法器、数据处理方法、芯片及电子设备
CN113031909B (zh) 数据处理器、方法、装置及芯片
CN210006083U (zh) 乘法器、装置、芯片及电子设备
CN210006082U (zh) 乘法器、装置、神经网络芯片及电子设备
CN210006032U (zh) 乘法器、机器学习运算装置及组合处理装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant