CN111258541B - 乘法器、数据处理方法、芯片及电子设备 - Google Patents
乘法器、数据处理方法、芯片及电子设备 Download PDFInfo
- Publication number
- CN111258541B CN111258541B CN201811450696.2A CN201811450696A CN111258541B CN 111258541 B CN111258541 B CN 111258541B CN 201811450696 A CN201811450696 A CN 201811450696A CN 111258541 B CN111258541 B CN 111258541B
- Authority
- CN
- China
- Prior art keywords
- partial product
- circuit
- multiplier
- processing
- signal
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供一种乘法器、数据处理方法、芯片及电子设备,所述乘法器包括:编码电路、压缩树组电路以及累加电路;所述编码电路的输出端与所述压缩树组电路的输入端连接,所述压缩树组电路的输出端与所述累加电路的输入端连接,该乘法器可以通过压缩树组电路对目标编码的部分积进行压缩处理,有效降低了乘法器中压缩电路的延迟,从而提高乘法器的运算性能和芯片的整体性能。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种乘法器、数据处理方法、芯片及电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片的快速发展对于高性能数字乘法器的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,通过乘法器进行乘法运算在神经网络算法中是一种常见的操作。
大部分传统的乘法器,是采用布斯算法求取部分积,通过华莱士树电路进行部分积的压缩,然后通过一组超前进位加法器进行对压缩结果进行累加并输出最终的结果。
但是,大部分传统技术中,在处理部分积压缩的过程中,采用华莱士树电路会增大压缩电路的延迟,从而降低乘法器的运算性能以及芯片的整体性能。
发明内容
基于此,有必要针对上述技术问题,提供一种乘法器、数据处理方法、芯片及电子设备。
本发明实施例提供一种乘法器,所述乘法器包括:编码电路、压缩树组电路以及累加电路,所述编码电路的输出端与所述压缩树组电路的输入端连接,所述压缩树组电路的输出端与所述累加电路的输入端连接;
其中,所述编码电路用于对接收到的定点数进行编码处理得到目标编码的部分积,所述压缩树组电路用于对目标编码的所述部分积进行累加处理,所述累加电路用于对接收到的输入数据进行累加处理。
在其中一个实施例中,所述编码电路包括:布斯编码单元和部分积获取单元,所述布斯编码单元的输出端与所述部分积获取单元的输入端连接;其中,所述布斯编码单元用于对接收到的定点数进行布斯编码处理得到编码信号,所述部分积获取单元用于根据所述编码信号得到原始部分积,并根据所述原始部分积进行符号位扩展处理,得到符号位扩展后的所述部分积,通过符号位扩展后的所述部分积得到目标编码的所述部分积。
在其中一个实施例中,所述布斯编码单元包括:数据输入端口和编码信号输出端口;所述数据输入端口用于接收进行布斯编码处理的定点数,所述编码信号输出端口用于输出对接收到的所述定点数进行布斯编码处理后得到的编码信号。
在其中一个实施例中,所述部分积获取单元包括:编码信号输入端口、数据输入端口以及部分积输出端口;所述编码信号输入端口用于接收编码信号,数据输入端口用于接收定点数,部分积输出端口用于输出目标编码的所述部分积。
在其中一个实施例中,所述压缩树组电路包括:压缩器子电路,所述压缩器子电路用于对接收到的目标编码的所述部分积的每一列进行累加处理。
在其中一个实施例中,所述压缩器子电路包括:计数器和数据处理装置,所述计数器用于获取接收到的输入信号中的高电平数量,所述数据处理模块用于对接收到的输入信号进行逻辑运算处理。
在其中一个实施例中,所述累加电路包括:加法器,所述加法器用于对接收到的两个同位宽数据进行加法运算。
在其中一个实施例中,所述加法器包括:进位信号输入端口,和位信号输入端口和运算结果输出端口,所述进位信号输入端口用于接收进位信号,所述和位信号输入端口用于接收和位信号,所述运算结果输出端口用于输出进位信号与和位信号进行累加处理的结果。
本实施例提供的一种乘法器,该乘法器可以通过编码电路对接收到的定点数进行编码处理得到符号位扩展后的部分积,通过压缩树组电路可以对符号位扩展后的部分积进行累加处理,得到累加运算的结果,并通过累加电路对压缩树组电路输出的累加运算结果进行再次累加处理,得到最终的乘法运算结果,该乘法器可以通过压缩树组电路对目标编码的部分积进行压缩处理,有效降低了乘法器中压缩电路的延迟,从而提高乘法器的运算性能和芯片的整体性能。
本发明实施例提供一种数据处理方法,所述方法包括:
接收待处理的定点数;
对待处理的所述定点数进行编码,得到编码结果,并根据待处理的所述定点数及所述编码结果得到目标编码的部分积;
对目标编码的所述部分积进行压缩处理,得到运算结果。
在其中一个实施例中,所述对待处理的所述定点数进行编码,得到编码结果,并根据待处理的所述定点数及所述编码结果得到目标编码的部分积,包括:
对待处理的所述定点数进行布斯编码处理,得到编码信号;
根据待处理的所述定点数与所述编码信号,得到目标编码的所述部分积。
在其中一个实施例中,所述根据待处理的所述定点数与所述编码信号,得到目标编码的所述部分积,包括:
根据待处理的所述定点数与所述编码信号,得到原始部分积;
对所述原始部分积进行符号位扩展处理,得到符号位扩展后的部分积;
对符号位扩展后的所述部分积进行移位运算得到目标编码的所述部分积。
在其中一个实施例中,所述对符号位扩展后的所述部分积进行移位运算得到目标编码的所述部分积,包括:对符号位扩展后的所述部分积进行左移运算得到目标编码的所述部分积。
在其中一个实施例中,所述对目标编码的所述部分积进行压缩处理,得到运算结果,包括:
接收目标编码的所有部分积中的每一列数值,获取所述每一列数值中高电平信号的数量;
根据所述高电平信号的数量进行异或逻辑运算,得到两路输出信号;
对所述两路输出信号进行累加处理,得到运算结果。
本实施例提供的一种数据处理方法,接收待处理的定点数,对待处理的所述定点数进行编码,得到编码结果,并根据待处理的所述定点数及所述编码结果得到目标编码的所述部分积,对目标编码的所述部分积进行压缩处理,得到运算结果,该方法可以有效降低乘法器中压缩电路的延迟,提高乘法器的运算性能和芯片的整体性能。
本发明实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个所述的乘法器;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,所述多个所述乘法器间可以通过特定的结构进行链接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
本发明实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
本发明实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的乘法器、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本发明实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本发明实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本申请实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本发明实施例提供的一种芯片,包括至少一个如上述任一项所述的乘法器。
本发明实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为一实施例提供的一种乘法器的结构示意图;
图2为另一实施例提供的乘法器的具体结构示意图;
图3为另一实施例提供的8位定点数乘法运算得到的目标编码的部分积的分布规律示意图;
图4为另一实施例提供的实现8位定点数乘法运算时压缩器子电路的连接结构示意图;
图5为另一实施例提供的实现8位定点数乘法运算得到的整体目标编码的部分积的分布规律示意图;
图6为一实施例提供的一种定点数的处理方法流程示意图;
图7为另一实施例提供的得到目标编码的部分积的方法流程示意图;
图8为另一实施例提供的得到目标编码的部分积的具体方法流程示意图;
图9为另一实施例提供的得到运算结果的具体方法流程示意图;
图10为一实施例提供的一种组合处理装置的结构图;
图11为一实施例提供的另一种组合处理装置的结构图;
图12为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的乘法器可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中进行乘法运算处理,其具体结构示意图如图1所示。
图1为一个实施例提供的一种乘法器的结构图。如图1所示,该乘法器包括:编码电路11、压缩树组电路12以及累加电路13;所述编码电路11的输出端与所述压缩树组电路12的输入端连接,所述压缩树组电路12的输出端与所述累加电路13的输入端连接。其中,所述编码电路11用于对接收到的定点数进行编码处理得到目标编码的部分积,所述压缩树组电路12用于对目标编码的所述部分积进行累加处理,所述累加电路13用于对接收到的输入数据进行累加处理。
具体的,上述编码电路11可以包括多个具有不同功能的数据处理单元,并且编码电路11接收到的定点数可以作为乘法运算中的乘数,还可以作为乘法运算中的被乘数。可选的,上述不同功能的数据处理单元可以为具有二进制编码功能的数据处理单元。可选的,上述乘数和被乘数可以是多比特位宽的浮点数。可选的,乘法器可以通过压缩树组电路12对编码电路11得到的符号位扩展后的部分积进行累加处理,得到累加处理后的结果,并通过累加电路13对累加处理后的结果进行再次累加处理,得到乘法运算的最终结果。
需要说明的是,本实施例提供的乘法器可以对固定比特位宽的定点数进行处理,并且同一次乘法运算时,编码电路11接收到的乘数和被乘数为同位宽的定点数。可选的,上述不同功能的数据处理单元的输入端口可以有一个,每个数据处理单元的每个输入端口的功能可以相同,输出端口也可以有一个,每个数据处理单元的每个输出端口的功能可以不相同,并且不同功能数据处理单元的电路结构可以不相同。
本实施例提供的一种乘法器,该乘法器通过编码电路对接收到的定点数进行编码处理得到符号位扩展后的部分积,通过压缩树组电路可以对符号位扩展后的部分积进行累加处理,得到累加运算的结果,并通过累加电路对压缩树组电路输出的累加运算结果进行再次累加处理,得到最终的乘法运算结果,该过程可以通过压缩树组电路对目标编码的部分积进行压缩处理,有效降低了乘法器中压缩电路的延迟,从而提高乘法器的运算性能和芯片的整体性能。
图2为另一实施例提供的一种乘法器的具体结构示意图,其中,数据处理模块包括所述编码电路11,该编码电路11包括:布斯编码单元111和部分积获取单元112;所述布斯编码单元111的输出端与所述部分积获取单元112的输入端连接。其中,所述布斯编码单元111用于对接收到的定点数进行布斯编码处理得到编码信号,所述部分积获取单元112用于根据所述编码信号得到原始部分积,并根据所述原始部分积进行符号位扩展处理,得到符号位扩展后的所述部分积,通过符号位扩展后的所述部分积得到目标编码的所述部分积。
具体的,上述布斯编码单元111可以接收定点数,并对定点数进行布斯编码处理,得到编码信号。可选的,布斯编码单元111接收到的定点数可以为乘法运算中的乘数,该乘数可以为浮点数,而部分积获取单元112可以接收到乘法运算中的被乘数,该被乘数也可以为浮点数。其中,在布斯编码处理前,布斯编码单元111可以自动对接收到的定点数进行补位处理,该补位处理可以表征为对定点数中最低位数值后补一位数值0。示例性的,若乘法器当前处理的是8*8的乘法运算,乘数为“y7y6y5y4y3y2y1y0”,则在布斯编码处理前,布斯编码单元111可以自动对乘数进行补位处理,将乘数转换为“y7y6y5y4y3y2y1y00”。可选的,上述编码信号的数量可以等于乘法器当前所接收到的定点数位宽N的1/2,还可以等于原始部分积的数量。
需要说明的是,部分积获取单元112可以根据每一个编码信号得到对应的原始部分积,并对每一个原始部分积进行符号位扩展处理,得到符号位扩展后的部分积,再对符号位扩展后的部分积进行移位处理得到目标编码的部分积。可选的,上述原始部分积可以为未进行符号位扩展的部分积,且原始部分积的位宽可以等于N+1,并且符号位扩展后的部分积的位宽可以等于原始部分积的位宽与符号位扩展的位数之和,还可以等于2N。可选的,目标编码的部分积的数量可以等于符号位扩展后的部分积的数量。可选的,目标编码的所有部分积中,第一个目标编码的部分积的位宽M0可以等于第一个对应符号位扩展后的部分积的位宽2N,第二个目标编码的部分积的位宽M1可以等于第二个对应符号位扩展后的部分积的位宽2N少两位,少的两位数值可以为第二个对应符号位扩展后的部分积的高两位数值,这两位数值可以不进行最终的加法运算,依次类推,每一个目标编码的部分积的位宽Mi可以比上一个目标编码的部分积的位宽Mi-1少两位,还可以等于每一个对应符号位扩展后的部分积的位宽2N减2*(i-1),其中,i表示目标编码的部分积从0开始的编号。
本实施例提供的一种乘法器,通过布斯编码单元可以对接收到的定点数进行布斯编码处理得到编码信号,再通过部分积获取单元根据每一个编码信号得到原始部分积,对原始部分积进行符号位扩展处理,得到符号位扩展后的部分积,并根据符号位扩展后的部分积得到目标编码的部分积,进而通过压缩树组电路对目标编码的部分积进行压缩处理,能够有效降低乘法器中压缩电路的延迟,提高乘法器的运算性能和芯片的整体性能。
在其中一个实施例中,所述布斯编码单元111,该布斯编码单元111包括:数据输入端口1111以及编码信号输出端口1112;所述数据输入端口1111用于接收进行布斯编码处理的定点数,所述编码信号输出端口1112用于输出对接收到的所述定点数进行布斯编码处理后得到的编码信号。
具体的,若布斯编码单元111通过数据输入端口1111接收到一个定点数,则布斯编码单元111可以自动对该定点数进行补位处理,得到一个比原定点数的位宽多一位数值的定点数,同时,布斯编码单元111可以对补位后的定点数进行布斯编码处理,得到多个编码信号,将多个编码信号通过编码信号输出端口1112输出。可选的,布斯编码单元111可以通过数据输入端口1111接收乘法运算中的乘数,且布斯编码单元111可以对乘数进行布斯编码处理。可选的,每一次布斯编码处理时,可以将补位后的定点数划分成多组待编码数据,布斯编码单元111可以同时对划分后的多组待编码数据进行布斯编码处理。可选的,划分多组待编码数据的原则可以表征为将补位后的定点数中相邻每3位数值作为一组待编码数据,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。可选的,布斯编码单元111实现布斯编码处理的编码规则可以参见表1,其中,表1中的y2i+1,y2i和y2i-1可以表示每一组待编码数据对应的数值,X可以表示编码电路11接收到的被乘数,对每一组对应待编码数据进行布斯编码处理后得到对应的编码信号PPi(i=0,1,2,...,n)。可选的,根据表1所示,布斯编码处理后得到的编码信号可以包括五类,每类编码信号分别定义为-2X,2X,-X,X和0。示例性的,若编码电路11接收到的被乘数为“x7x6x5x4x3x2x1x0”,则X可以表示为“x7x6x5x4x3x2x1x0”。
表1
示例性的,若布斯编码单元111接收到的乘数为8位的定点数“y7y6y5y4y3y2y1y0”,则补位后的定点数可以为“y7y6y5y4y3y2y1y00”,当i=0时,y2i+1=y1,y2i=y0,y2i-1=y-1,则y-1可以表示y0后的补位数值0(即乘数可以表示为y7y6y5y4y3y2y1y0y-1),布斯编码过程中,可以对y-1y0y1,y1y2y3,y3y4y5和y5y6y7四组待编码数据分别进行布斯编码处理,得到4个编码信号,其中,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。
本实施例提供的一种乘法器,布斯编码单元可以对接收到的定点数进行布斯编码处理得到编码信号,然后可以通过部分积获取单元可以根据每一个编码信号得到对应的符号位扩展后的部分积,根据符号位扩展后的部分积得到目标编码的部分积,并通过压缩树组电路对目标编码的部分积进行压缩处理,从而能够有效降低乘法器中压缩电路的延迟,提高乘法器的运算性能和芯片的整体性能。
在其中一个实施例中,所述部分积获取单元112,该部分积获取单元112包括:编码信号输入端口1121、数据输入端口1122以及部分积输出端口1123;所述编码信号输入端口1121用于接收编码信号,数据输入端口1122用于接收定点数,部分积输出端口1123用于输出目标编码的所述部分积。
具体的,根据表1可知,部分积获取单元112可以通过编码信号输入端口1121接收布斯编码单元111输出的五类不同的编码信号,每类编码信号分别定义为-2X,2X,-X,X和0,根据得到的五类编码信号以及数据输入端口1122接收到的定点数得到原始部分积,对原始部分积进行符号位扩展处理,得到符号位扩展后的部分积,对符号位扩展后的部分积进行移位运算得到目标编码的部分积,并通过部分积输出端口1123输出目标编码的部分积。可选的,数据输入端口1122可以接收乘法运算中的定点数,该定点数可以为乘法运算中的被乘数,并且该被乘数还可以为浮点数。可选的,原始部分积与符号位扩展后的部分积中每一位数值均为二进制数据0或1,其中0可以表示低电平信号,1可以表示高电平信号。
需要说明的是,上述符号位扩展后的部分积中符号位扩展位的数值均相等,可以等于原始部分积中最高位数值,也可以理解为符号位扩展后的部分积中高N位的数值均相同,其中,N表示乘法器当前所接收到的定点数的位宽。可选的,符号位扩展位的位宽可以等于2N与原始部分积位宽之差。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,通过部分积获取单元112得到的一个原始部分积为“p8p7p6p5p4p3p2p1p0”,进行符号位扩展后的部分积可以表示为“p8p8p8p8p8p8p8p8p7p6p5p4p3p2p1p0”。
本实施例提供的一种乘法器,通过部分积获取单元可以根据每一个编码信号得到对应的符号位扩展后的部分积,并对符号位扩展后的部分积进位移位运算获取目标编码的部分积,通过压缩树组电路对符号位扩展后的部分积进行压缩处理,从而能够有效降低乘法器中压缩电路的延迟,提高乘法器的运算性能和芯片的整体性能。
在其中一个实施例中,继续如图2所示乘法器的具体结构示意图,其中,乘法器包括所述压缩树组电路12,该压缩树组电路12包括:压缩器子电路121~12n,多个所述压缩器子电路121~12n用于对接收到的目标编码的所述部分积的每一列进行累加处理。
具体的,压缩树组电路12中的每一个压缩器子电路可以包括多个具有不同功能的基本逻辑器件,另外,还可以理解为压缩子电路121~12n是一种对多位输入信号进行逻辑运算处理,得到两位输出信号的电路。可选的,压缩树组电路12包含的压缩器子电路的数量n可以等于符号位扩展后的部分积的位宽,还可以等于2N,并且n个压缩器子电路可以并行处理,但连接方式可以是串行连接。可选的,压缩树组电路12中每一个压缩器子电路可以对目标编码的所有部分积中每一列的所有数值进行加法处理,每一个压缩器子电路可以输出两路信号,即进位信号Carryi与一个和位信号Sumi,其中,i可以表示每一个压缩器子电路对应的编号,第一个压缩器子电路的编号为0。可选的,每一个压缩器子电路接收到输入信号的数量可以等于编码信号数量,还可以等于符号位扩展后的部分积的数量或目标编码的部分积的数量。可选的,目标编码的所有部分积的分布规律可以表征为,第一个目标编码的部分积可以等于第一个对应符号位扩展后的部分积,从第二个目标编码的部分积开始,每一个目标编码的部分积可以等于对应符号位扩展后的部分积中的低2N-2i位数值,i表示目标编码的部分积从1开始的编号,同时,每一个目标编码的部分积的最高位数值均位于同一列,次高位数值均位于同一列,依次类推,还可以理解为,每一个目标编码的部分积最低位数值所在列,可以位于上一个目标编码的部分积的最低位数值所在列左移两列的位置。
需要说明的是,压缩树组电路12中每一个压缩器子电路接收到的信号可以包括进位输入信号Cini和符号位扩展后的部分积输入信号。可选的,每一个压缩器子电路接收到的目标编码的部分积输入信号可以为目标编码的所有部分积中每一列的数值,每一个压缩器子电路输出的进位信号Couti的位数可以等于1。可选的,压缩树组电路12中每一个压缩器子电路接收到的进位输入信号Cini可以为上一个压缩器子电路输出的进位输出信号Couti-1,并且第一个压缩器子电路接收到的进位数输入信号Cin0为0。
示例性的,若乘法器当前处理的是8位*8位的定点数乘法运算,乘法器中的部分积获取单元112得到的符号位扩展后的部分积可以表示为“pi15pi14pi13pi12pi11pi10pi09pi08pi0 7pi06pi05pi04pi03pi02pi01pi00”(i=1,…,n=4),并通过每一个符号位扩展后的部分积得到目标编码的对应部分积,其中,i可以表示符号位扩展后的部分积从1开始的编号,则通过多个压缩器子电路121~12n进行累加处理时,4个目标编码的部分积的分布规律可以参见图3所示,图中“○”可以表示原始部分积中的数值,“●”可以表示符号位扩展后的部分积中的符号位数值,从最右列至最左列算起,总共需要16个压缩器子电路对4个目标编码的部分积进行累加处理,16个压缩器子电路的连接电路图如图4所示,其中,图4中Compressors_i表示压缩器子电路,i为压缩器子电路从0开始的编号,并且两两压缩器子电路之间连接的实线可以表示高位编号对应的压缩器子电路,向相邻低位编号对应的压缩器子电路输入的进位输出信号。
本实施例提供的一种乘法器,通过压缩树组电路可以对目标编码的部分积进行压缩处理,有效降低了乘法器中压缩电路的延迟,提高乘法器的运算性能和芯片的整体性能。
在其中一个实施例中,继续如图2所示乘法器的具体结构示意图,其中,乘法器包括所述压缩器子电路121~12n,该压缩器子电路121~12n包括:计数器1211~12n1和数据处理模块1212~12n2;多个所述计数器1211~12n1用于获取接收到的输入信号中的高电平数量,多个所述数据处理模块1212~12n2用于对接收到的输入信号进行逻辑运算处理。
具体的,每一个计数器的输出端与对应数据处理模块的输入端连接。可选的,每一个压缩器子电路中可以包括一个计数器和一个数据处理模块,压缩树组电路12中多个压缩器子电路121~12n可以采用串行方式连接,每一个压缩器子电路中数据处理模块的输出端,可以与下一个压缩器子电路中计数器的输入端连接,但是,多个压缩器子电路121~12n可以对目标编码的所有部分积中的每一列数值进行并行处理,其中,n可以表示多个压缩器子电路121~12n中包括的计数器数量,还可以表示多个压缩器子电路121~12n中包括的数据处理模块数量。可选的,每一个压缩器子电路中的计数器可以接收目标编码的所有部分积中的对应列数值,获取对应列数值中的高电平数量,另外,每一个压缩器子电路中的数据处理模块可以接收该压缩器子电路中计数器的输出信号,并通过逻辑运算可以得到两路输出信号,两路信号分别为和位输出信号Sumi与进位输出信号Carryi,i为压缩器子电路从0开始的编号。
需要说明的是,每一个压缩器子电路中包含的计数器可以包括多个输入端口,输入端口的数量可以等于乘法器当前所处理定点数位宽N的1/2,其中,每一个输入端口可以接收目标编码的所有部分积,对应每一列数值中的任意一个数值。同时,计数器可以包括多个输出端口,输出端口的数量可以等于N/2+2,其中一个输出端口可以输出计数器的进位输出信号Couti,剩余的输出端口可以输出计数器根据接收到的输入信号中高电平数量Num_m,其中,i可以表示计数器接收到的输入信号中可能的高电平数量。可选的,当部分积获取单元112得到n个目标编码的部分积时,每一个压缩器子电路中的计数器可以接收到n个数值,目标编码的所有部分积中的对应列数值小于n,除对应列的多个数值外,剩余多个数值均用0替代。可选的,若目标编码的所有部分积中其中一列数值为I0,I1,…,In-1,则Num_m可以等于对A1,A2,…和Al通过或门电路进行或逻辑运算的结果,其中,m>l,m=0,1,...,n,Al可以等于该列n个数值中,任意n-l个数值取反后得到的n-l个数值,与这n个数值中未取反的剩余l个数值通过与门电路进行与逻辑运算的结果,Couti可以等于|Num_m(m>=2),“|”表示连或符号,对应的,当n越大,Couti的位数也会越多。另外,每一个压缩器子电路中输出的Couti位数NCout可以等于floor(n/2)-1,floor(*)表示向下取整,其中,上述Couti的每一位数值可以与Carryi的数值等效,在本实施例中,Couti优先比Carryi进位,还可以理解为,若目标编码的所有部分积的其中一列数值中有q个1,floor(q/2)个进位,优先使用Couti的位进行进位,再使用Carryi进行进位。
示例性的,若部分积获取单元112得到4个目标编码的部分积,4个目标编码的分布规律可以继续参见图3所示,每一列下方的空白处对应位数值可以用0补位,用0补位后的分布规律如图5所示,图中表示用0补位后对应位的数值,乘法器可以通过16个压缩器子电路对4个目标编码的部分积进行累加处理,通过每一个压缩器子电路中的计数器接收4个目标编码的部分积中的每一列数值,每一列的4个数值中高电平信号的数量可以为0,1,2,3,4,因此,每一个计数器的输出端口中,除一个进位输出信号端口外,还有5个计数数值输出端口,这5个计数数值输出端口输出的数值可以用Num_m表示,本示例中分别为Num_0,Num_1,Num_2,Num_3,Num_4,若4个目标编码的部分积中某一列的数值分别为I0,I1,I2,I3,则Num_0~Num_4的数值可以通过下面逻辑运算公式获取,并且该计数器的另一个输出信号Couti可以通过Num_2~Num_4采用下面逻辑运算公式获取。
Num_4=(I0&I1&I2&I3);
Couti=Num_2|Num_3|Num_4。
另外,每一个压缩器子电路中包含的数据处理模块可以接收多个输入信号,分别可以表示为Num_0,…,Num_m和Cini,其中,Cin可以表示进位输入信号,该数据处理模块接收到的多个输入信号Num_0,…,Num_m和Cini,可以分别对应上一压缩器子电路中计数器输出的所有信号Num_0,…,Num_m和Couti,其中,第一个压缩器子电路中计数器接收到的进位输入信号Cini可以等于0。可选的,每一个压缩器子电路中包含的数据处理模块可以包括两路输出信号,即和位输出信号Sumi与进位输出信号Carryi。可选的,每一个数据处理模块可以根据接收到的多个输入信号通过与或门逻辑电路确定输出信号。
其中,若每一个压缩器子电路中,计数器输出的所有信号Num_0,…,Num_l,…,Num_m中,仅有一个高电平信号Num_l,该高电平信号对应的计数器中输入的高电平信号Num_l对应的l值,与数据处理模块接收到的Cini中非零进位输入信号数量之和为奇数时,则该压缩器子电路中的数据处理模块输出的和位输出信号Sumi可以等于高电平信号1;若每一个压缩器子电路中,计数器输出的所有Num_i信号中为高电平信号的数量,与数据处理模块接收到的Cini中非零进位输入信号数量之和为偶数时,则该压缩器子电路中的数据处理模块输出的和位输出信号Sumi可以等于低电平信号0;同时,若每一个压缩器子电路中,计数器输出的所有Num_m信号中为高电平信号的数量,与数据处理模块接收到的Cini中非零进位输入信号数量之和为奇数,并除以2向下取整,取整后的数值大于计数器输出的Couti的位数时,则该压缩器子电路中的数据处理模块输出的进位输出信号Carryi可以等于高电平信号1,否则,Carryi可以等于低电平信号0。
示例性的,继续参见上一示例,对应压缩器子电路中数据处理模块的进位输入信号为Cini,则若((Num_1|Num_3==1)&(Cini==0))|((Num_0|Num_2|Num_4==0)&(Cini==1))时,则和位输出信号Sumi可以等于高电平信号1,否则可以等于低电平信号0;若((Num_4==1)&(Cini==0))|((Num_1|Num_3|Num_4==1)&(Cini==1))时,则进位输出信号Carryi可以等于高电平信号1,否则可以等于低电平信号0。
可选的,每一个压缩器子电路中包括的计数器和数据处理模块,最终可以输出两路信号Carryi和Sumi,i可以表示压缩树组电路12中压缩器子电路从0开始的编号。
本实施例提供的一种乘法器,通过压缩树组电路可以对目标编码的部分积进行压缩处理,有效降低了乘法器中压缩电路的延迟,提高乘法器的运算性能和芯片的整体性能。
在其中一个实施例中,继续如图2所示乘法器的具体结构示意图,其中,乘法器包括所述累加电路13,该累加电路13包括:加法器131,所述加法器131用于对接收到的两个同位宽数据进行加法运算。
具体的,加法器131可以为不同位宽的加法器,并且加法器131可以为超前进位加法器。可选的,加法器131可以接收压缩树组电路12输出的两路信号,对两路输出信号进行加法运算,输出最终的乘法运算结果。
本实施例提供的一种乘法器,通过压缩树组电路可以对目标编码的部分积进行压缩处理,得到两路输出信号,并通过累加电路对两个输出信号进行加法运算处理,得到最终的乘法运算结果,该过程可以有效降低乘法器中压缩电路的延迟,提高乘法器的运算性能和芯片的整体性能。
在其中一个实施例中,继续如图2所示乘法器的具体结构示意图,其中,乘法器包括所述加法器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位超前进位加法器,继续参见图4所示,压缩树组电路12可以输出16个压缩器子电路的和位输出信号Sum和进位输出信号Carry,但是,16位超前进位加法器接收到的和位输出信号可以为压缩树组电路12输出的完整和位信号Sum,接收到的进位输出信号可以为压缩树组电路12中,除去最后一个压缩器子电路输出的进位输出信号的所有进位输出信号与0结合后的进位信号Carry。
本实施例提供的一种乘法器,通过累加电路可以对压缩树组电路输出的两路信号进行累加运算,输出最终的乘法运算结果,该过程可以有效降低乘法器中压缩电路的延迟,提高乘法器的运算性能和芯片的整体性能。
图6为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图1和图2所示的乘法器进行处理,本实施例涉及的是定点数乘法运算的过程。如图6所示,该方法包括:
S101、接收待处理的定点数。
具体的,乘法器可以通过编码电路接收待处理的定点数,该定点数可以为乘法运算中的乘数和被乘数。可选的,编码电路接收到的待处理的乘数和被乘数的位宽可以为乘法器当前可处理定点数的位宽。其中,待处理乘数的位宽可以等于待处理被乘数的位宽。
S102、对待处理的所述定点数进行编码,得到编码结果,并根据待处理的所述定点数及所述编码结果得到目标编码的部分积。
具体的,乘法器可以通过编码电路对接收到的待处理乘数进行二进制编码,并根据待处理的被乘数和二进制编码的结果得到目标编码的部分积,并且目标编码的部分积的数量可以等于乘法器当前所处理定点数位宽的1/2。
S103、对目标编码的所述部分积进行压缩处理,得到运算结果。
具体的,乘法器还可以通过压缩树组电路对目标编码的所有部分积中的每一列数值进行压缩处理,得到压缩结果,并将压缩结果输出。可选的,上述压缩处理可以为逻辑运算处理。
本实施例提供的一种数据处理方法,接收待处理的定点数,对待处理的所述定点数进行编码,得到编码结果,并根据待处理的所述定点数及所述编码结果得到目标编码的所述部分积,对目标编码的所述部分积进行压缩处理,得到运算结果,该方法可以有效降低乘法器中压缩电路的延迟,提高乘法器的运算性能和芯片的整体性能。
如图7所示为另一实施例提供的数据处理方法,上述S102中对待处理的所述定点数进行编码,得到编码结果,并根据待处理的所述定点数及所述编码结果得到目标编码的部分积,包括:
S1021、对待处理的所述定点数进行布斯编码处理,得到编码信号。
具体的,乘法器可以通过布斯编码单元对接收到的待处理的乘数进行布斯编码处理,得到编码信号。可选的,布斯编码过程中,输入的乘数中3比特位宽的数据可以得到一位编码后的数据,上述布斯编码过程中的编码规则可以参见表1,根据表1可知,布斯编码单元对乘数进行布斯编码处理,可以得到五类不同的编码信号,每类编码信号分别定义为-2X,2X,-X,X和0。
S1022、根据待处理的所述定点数与所述编码信号,得到目标编码的所述部分积。
具体的,部分积获取单元可以根据接收到的待处理的被乘数与编码信号,并通过二进制数值扩展和逻辑运算得到目标编码的部分积。
本实施例提供的一种数据处理方法,对待处理的所述定点数进行布斯编码处理,得到编码信号,根据待处理的所述定点数与所述编码信号,得到目标编码的所述部分积,进而对目标编码的部分积进行累加处理,并将运算结果输出,该方法可以有效降低乘法器中压缩电路的延迟,提高乘法器的运算性能和芯片的整体性能。
在其中一个实施例中,如图8所示,上述S1022中根据待处理的所述定点数与所述编码信号,得到目标编码的所述部分积,包括:
S1022a、根据待处理的所述定点数与所述编码信号,得到原始部分积。
需要说明的是,原始部分积的数量可以等于编码信号的数量。
示例性的,若部分积获取单元接收到一个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。
S1022b、对所述原始部分积进行符号位扩展处理,得到符号位扩展后的部分积。
具体的,符号位扩展后的部分积的位宽可以等于乘法器当前所处理定点数位宽N的2倍,而原始部分积的位宽可以等于N+1,符号位扩展位的位数可以等于N-1。可选的,符号位扩展处理可以理解为将符号位扩展位的数值均用原始部分积中符号位的数值填充,符号位的数值可以为原始部分积中最高位数值,得到一个2N比特位宽的符号位扩展后的部分积。可选的,在符号位扩展后的所有部分积的分布规律中,符号位扩展后的所有部分积中的最高位数值可以位于同一列,最低位数值也可以位于同一列,其它对应位数值也可以对应同一列。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,通过部分积获取单元得到的一个原始部分积为“p8p7p6p5p4p3p2p1p0”,进行符号位扩展后的部分积可以表示为“p8p8p8p8p8p8p8p8p7p6p5p4p3p2p1p0”。
S1022c、对符号位扩展后的所述部分积进行移位运算得到目标编码的所述部分积。
具体的,每一个符号位扩展后的部分积进行移位运算可以得到对应的目标编码的部分积。可选的,上述符号位扩展后的部分积的数量可以等于目标编码的部分积的数量。
可选的,上述S1022c中对符号位扩展后的所述部分积进行移位运算得到目标编码的所述部分积,具体包括:对符号位扩展后的所述部分积进行左移运算得到目标编码的所述部分积。
可选的,每一个符号位扩展后的部分积可以对应一个编号,编号从1开始。可选的,乘法运算的定点数可以包括高位定点数和低位定点数,高位定点数可以为乘法器接收到的N位定点数中的高N/2位定点数,低位定点数可以为乘法器接收到的N位定点数中的低N/2位定点数。可选的,低位定点数得到的符号位扩展后的部分积对应的编号可以从1开始。可选的,第一个目标编码的部分积可以等于第一个对应的符号位扩展后的部分积,从第二个目标编码的部分积开始,每一个目标编码的部分积可以为对应符号位扩展后的部分积左移(2N-i+1)位数值,相当于对应符号位扩展后的部分积左移的(2N-i+1)位数值不进行最终的累加运算,其中,i表示每一个符号位扩展后的部分积的编号。
本实施例提供的一种数据处理方法,根据待处理的所述定点数与所述编码信号,得到原始部分积,根据所述原始部分积进行符号位扩展处理,得到所述符号位扩展后的部分积,对符号位扩展后的部分积进行移位运算得到目标编码的部分积,进而对目标编码的部分积进行累加处理,并将运算结果输出,该方法可以有效降低乘法器中压缩电路的延迟,提高乘法器的运算性能和芯片的整体性能。
在其中一个实施例中,如图9所示,上述S103中对目标编码的所述部分积进行压缩处理,得到运算结果,包括:
S1031、接收目标编码的所有部分积中的每一列数值,获取所述每一列数值中高电平信号的数量。
具体的,乘法器通过压缩树组电路中的每一个压缩器子电路,可以接收目标编码的部分积中的对应一列数值,通过该压缩器子电路中的计数器可以得到接收到的这一列数值中高电平信号的数量。
需要说明的是,通过计数器还可以得到下一压缩器子电路中的数据处理模块接收到的进位输入信号Cini。
S1032、根据所述高电平信号的数量进行异或逻辑运算,得到两路输出信号。
具体的,乘法器可以根据每一个压缩器子电路中,计数器获取目标编码的所有部分积中对应一列数值的高电平信号数量,以及该压缩器子电路中数据处理模块接收到的进位输入信号Cini进行异或逻辑运算,可以得到每一个压缩器子电路的两路输出信号,进位输出信号Carryi与和位输出信号Sumi,其中,i可以表示压缩树组电路中每一个压缩器子电路从0开始的编码。
S1033、对所述两路输出信号进行累加处理,得到运算结果。
具体的,乘法器可以通过累加电路对压缩树组电路中每一个压缩器子电路获得的进位输出信号Carryi与和位输出信号Sumi进行累加处理,输出乘法运算的最终结果。可选的,上述累加处理可以理解为通过累加电路将压缩器树组电路的所有进位输出信号Carryi,与用0替代最后一个和位信号Sum2N-1后的所有和位信号的加法运算。
本实施例提供的一种数据处理方法,接收所有目标编码的所有部分积中每一列数值,获取所述每一列数值中高电平信号的数量,根据每一列数值中所述高电平信号的数量进行异或逻辑运算,得到两路输出信号,对所述两路输出信号进行累加处理,得到运算结果,该方法可以有效降低乘法器中压缩电路的延迟,提高乘法器的运算性能和芯片的整体性能。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的乘法器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上乘法器时,乘法器间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图10为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图11所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图12所示,图12提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其它的配套部件,该配套部件包括但不限于:存储器件390、接收装置391和控制器件392;
所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4棵粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200棵粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接收装置与所述芯片封装结构内的芯片电连接。所述接收装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接收装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接收装置还可以是其它的接口,本申请并不限制上述其它的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接收装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备可以为数据处理器、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的电路组合,但是本领域技术人员应该知悉,本申请并不受所描述的电路组合方式的限制,因为依据本申请,某些电路可以采用其它方式或者结构实现。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的器件和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (20)
1.一种乘法器,其特征在于,所述乘法器包括:编码电路、压缩树组电路以及累加电路,所述编码电路的输出端与所述压缩树组电路的输入端连接,所述压缩树组电路的输出端与所述累加电路的输入端连接;
其中,所述编码电路用于对接收到的定点数进行编码处理得到目标编码的部分积,所述压缩树组电路用于对目标编码的所述部分积进行累加处理,所述累加电路用于对接收到的输入数据进行累加处理,所述编码处理包括布斯编码处理。
2.根据权利要求1所述的乘法器,其特征在于,所述编码电路包括:布斯编码单元和部分积获取单元,所述布斯编码单元的输出端与所述部分积获取单元的输入端连接;其中,所述布斯编码单元用于对接收到的定点数进行布斯编码处理得到编码信号,所述部分积获取单元用于根据所述编码信号得到原始部分积,并根据所述原始部分积进行符号位扩展处理,得到符号位扩展后的所述部分积,通过符号位扩展后的所述部分积得到目标编码的所述部分积。
3.根据权利要求2所述的乘法器,其特征在于,所述布斯编码单元包括:数据输入端口和编码信号输出端口,所述数据输入端口用于接收进行布斯编码处理的定点数,所述编码信号输出端口用于输出对接收到的所述定点数进行布斯编码处理后得到的编码信号。
4.根据权利要求2所述的乘法器,其特征在于,所述部分积获取单元包括:编码信号输入端口、数据输入端口以及部分积输出端口;所述编码信号输入端口用于接收编码信号,数据输入端口用于接收定点数,部分积输出端口用于输出目标编码的所述部分积。
5.根据权利要求1所述的乘法器,其特征在于,所述压缩树组电路包括:压缩器子电路,所述压缩器子电路用于对接收到的目标编码的所述部分积的每一列进行累加处理。
6.根据权利要求5所述的乘法器,其特征在于,所述压缩器子电路包括:计数器和数据处理模块,所述计数器用于获取接收到的输入信号中的高电平数量,所述数据处理模块用于对接收到的输入信号进行逻辑运算处理。
7.根据权利要求1所述的乘法器,其特征在于,所述累加电路包括:加法器,所述加法器用于对接收到的两个同位宽数据进行加法运算。
8.根据权利要求7所述的乘法器,其特征在于,所述加法器包括:进位信号输入端口、和位信号输入端口以及运算结果输出端口;所述进位信号输入端口用于接收进位信号,所述和位信号输入端口用于接收和位信号,所述运算结果输出端口用于输出进位信号与和位信号进行累加处理的结果。
9.一种数据处理方法,其特征在于,所述方法包括:
接收待处理的定点数;
对待处理的所述定点数进行编码,得到编码结果,并根据待处理的所述定点数及所述编码结果得到目标编码的部分积;
对目标编码的所述部分积进行压缩处理,得到运算结果。
10.根据权利要求9所述的方法,其特征在于,所述对待处理的所述定点数进行编码,得到编码结果,并根据待处理的所述定点数及所述编码结果得到目标编码的部分积,包括:
对待处理的所述定点数进行布斯编码处理,得到编码信号;
根据待处理的所述定点数与所述编码信号,得到目标编码的所述部分积。
11.根据权利要求10所述的方法,其特征在于,所述根据待处理的所述定点数与所述编码信号,得到目标编码的所述部分积,包括:
根据待处理的所述定点数与所述编码信号,得到原始部分积;
对所述原始部分积进行符号位扩展处理,得到符号位扩展后的部分积;
对符号位扩展后的所述部分积进行移位运算得到目标编码的所述部分积。
12.根据权利要求11所述的方法,其特征在于,所述对符号位扩展后的所述部分积进行移位运算得到目标编码的所述部分积,包括:对符号位扩展后的所述部分积进行左移运算得到目标编码的所述部分积。
13.根据权利要求9所述的方法,其特征在于,所述对目标编码的所述部分积进行压缩处理,得到运算结果,包括:
接收目标编码的所有部分积中的每一列数值,获取所述每一列数值中高电平信号的数量;
根据所述高电平信号的数量进行异或逻辑运算,得到两路输出信号;
对所述两路输出信号进行累加处理,得到运算结果。
14.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-8任一项所述的乘法器,用于从其它处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,所述多个所述乘法器间可以通过特定的结构进行连接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
15.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求14所述的机器学习运算装置,通用互联接口和其它处理装置;
所述机器学习运算装置与所述其它处理装置进行交互,共同完成用户指定的计算操作。
16.根据权利要求15所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
17.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求14所述的机器学习运算装置或如权利要求15所述的组合处理装置。
18.一种电子设备,其特征在于,所述电子设备包括如所述权利要求17所述的芯片。
19.一种板卡,其特征在于,所述板卡包括:存储器件、接收装置和控制器件以及如权利要求17所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接收装置分别连接;
所述存储器件,用于存储数据;
所述接收装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
20.根据权利要求19所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接收装置为:标准PCIE接口。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811450696.2A CN111258541B (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 |
---|---|---|---|
CN201811450696.2A CN111258541B (zh) | 2018-11-30 | 2018-11-30 | 乘法器、数据处理方法、芯片及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258541A CN111258541A (zh) | 2020-06-09 |
CN111258541B true CN111258541B (zh) | 2022-06-17 |
Family
ID=70948472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811450696.2A Active CN111258541B (zh) | 2018-11-30 | 2018-11-30 | 乘法器、数据处理方法、芯片及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258541B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988112B (zh) * | 2021-04-27 | 2021-08-10 | 北京壁仞科技开发有限公司 | 点积计算装置 |
CN116205244B (zh) * | 2023-05-06 | 2023-08-11 | 中科亿海微电子科技(苏州)有限公司 | 一种数字信号处理结构 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571268B1 (en) * | 1998-10-06 | 2003-05-27 | Texas Instruments Incorporated | Multiplier accumulator circuits |
CN101384991A (zh) * | 2006-02-15 | 2009-03-11 | 松下电器产业株式会社 | 乘法器、数字滤波器、信号处理装置、合成装置、合成程序和合成程序记录介质 |
CN101739231A (zh) * | 2010-01-04 | 2010-06-16 | 西安电子科技大学 | 布斯-华莱士树型乘法器 |
-
2018
- 2018-11-30 CN CN201811450696.2A patent/CN111258541B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571268B1 (en) * | 1998-10-06 | 2003-05-27 | Texas Instruments Incorporated | Multiplier accumulator circuits |
CN101384991A (zh) * | 2006-02-15 | 2009-03-11 | 松下电器产业株式会社 | 乘法器、数字滤波器、信号处理装置、合成装置、合成程序和合成程序记录介质 |
CN101739231A (zh) * | 2010-01-04 | 2010-06-16 | 西安电子科技大学 | 布斯-华莱士树型乘法器 |
Non-Patent Citations (1)
Title |
---|
适用于数字信号的多路复用器辅助并行乘法器;王锦毅;《福建师大福清分校学报》;20180420(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111258541A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413254B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN110515590B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110515587B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110673823B (zh) | 乘法器、数据处理方法及芯片 | |
CN110554854A (zh) | 数据处理器、方法、芯片及电子设备 | |
CN111258541B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111258633B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111258544B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN113031912A (zh) | 乘法器、数据处理方法、装置及芯片 | |
CN210109863U (zh) | 乘法器、装置、神经网络芯片及电子设备 | |
CN111258542B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN209895329U (zh) | 乘法器 | |
CN210109789U (zh) | 数据处理器 | |
CN110515586B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN210006029U (zh) | 数据处理器 | |
CN209879493U (zh) | 乘法器 | |
CN111258545B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN113031916A (zh) | 乘法器、数据处理方法、装置及芯片 | |
CN113031911A (zh) | 乘法器、数据处理方法、装置及芯片 | |
CN113031915A (zh) | 乘法器、数据处理方法、装置及芯片 | |
CN110688087A (zh) | 数据处理器、方法、芯片及电子设备 | |
CN111258546B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN209962284U (zh) | 乘法器、装置、芯片及电子设备 | |
CN111258540B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110647307A (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 |