CN110515585B - 乘法器、数据处理方法、芯片及电子设备 - Google Patents
乘法器、数据处理方法、芯片及电子设备 Download PDFInfo
- Publication number
- CN110515585B CN110515585B CN201910817892.7A CN201910817892A CN110515585B CN 110515585 B CN110515585 B CN 110515585B CN 201910817892 A CN201910817892 A CN 201910817892A CN 110515585 B CN110515585 B CN 110515585B
- Authority
- CN
- China
- Prior art keywords
- partial product
- circuit
- data
- bit
- target
- 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
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
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Neurology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (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为一实施例提供的乘法器的具体结构示意图;
图5为另一实施例提供的8位数据乘法运算得到的另一种所有目标编码的部分积的分布规律示意图;
图6为另一实施例提供的实现8位数据乘法运算时华莱士树子电路的连接结构示意图;
图7为另一实施例提供的另一种乘法器的具体结构示意图;
图8为另一实施例提供的另一种8位数据乘法运算得到的所有目标编码的部分积的分布规律示意图;
图9为另一实施例提供的实现8位数据乘法运算时修正华莱士树子电路的连接结构示意图;
图10为另一实施例提供的实现8位数据乘法运算时另一种修正华莱士树子电路的连接结构示意图;
图11为一实施例提供的一种数据的处理方法流程示意图;
图12为另一实施例提供的另一种数据的处理方法流程示意图;
图13为一实施例提供的一种组合处理装置的结构图;
图14为一实施例提供的另一种组合处理装置的结构图;
图15为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的乘法器可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中进行乘法运算处理,其具体结构示意图如图1和2所示。
图1为一个实施例提供的一种乘法器的具体结构示意图,如图1所示,所述乘法器包括:正则有符号数编码电路11,修正部分积获取电路12,华莱士树组电路13和累加电路14,所述正则有符号数编码电路11的输出端与所述修正部分积获取电路12的输入端连接,所述修正部分积获取电路12的输出端与所述华莱士树组电路13的输入端连接,所述华莱士树组电路13的输出端与所述累加电路14的输入端连接。
其中,所述正则有符号数编码电路11用于对接收到的数据进行正则有符号数编码处理得到目标编码,所述修正部分积获取电路12用于根据所述目标编码得到符号位扩展后的部分积以及修正数值,并根据所述符号位扩展后的部分积得到目标编码的部分积,所述华莱士树组电路13用于根据所述目标编码的部分积以及所述修正数值进行累加处理,所述累加电路14用于对所述累加运算结果与所述修正数值进行加法运算。
具体的,上述正则有符号数编码电路11可以接收乘法运算中的乘数,并对乘数进行正则有符号数编码处理,得到目标编码。可选的,上述正则有符号数编码处理可以表征为通过数值0,-1和1编码的数据处理过程。可选的,上述乘数可以为定点数。
需要说明的是,上述正则有符号数编码处理的方法可以通过以下方式表征:对于N位乘数而言,从低位数值向高位数值处理,若存在连续l(l>=2)位数值1时,则可以将连续n位数值1转换处理为数据“1(0)l-1(-1)”,并且将其余对应(N-l)位数值与转换后的(l+1)位数值进行结合得到一个新的数据;然后将该新数据作为下一级转换处理的初始数据,直到转换处理后得到的新数据中不存在连续l(l>=2)位数值1为止;其中,对N位乘数进行正则有符号数编码处理,得到的目标编码的位宽可以等于(N+1)。进一步地,在正则有符号数编码处理时,数据11可以转换为(100-001),即数据11可以等价转换为10(-1);数据111可以转换为(1000-0001),即数据111可以等价转换为100(-1);依次类推,其它连续l(l>=2)位数值1转换处理的方式也类似。
例如,正则有符号数编码电路11接收到的乘数为“001010101101110”,对该乘数进行第一级转换处理后得到的第一新数据为“0010101011100(-1)0”,继续对第一新数据进行第二级转换处理后得到的第二新数据为“0010101100(-1)00(-1)0”,继续对第二新数据进行第三级转换处理后得到的第三新数据为“0010110(-1)00(-1)00(-1)0”,继续对第三新数据进行第四级转换处理后得到的第四新数据为“00110(-1)0(-1)00(-1)00(-1)0”,继续对第四新数据进行第五级转换处理后得到的第五新数据为“010(-1)0(-1)0(-1)00(-1)00(-1)0”,第五新数据中不存在连续的l(l>=2)位数值1,此时,将第五新数据可以称为中间编码,并对中间编码进行一次补位处理后,表征正则有符号数编码处理完成,其中,中间编码的位宽可以等于乘数的位宽。可选的,正则有符号数编码电路11对乘数进行正则有符号数编码处理后,得到的新数据(即中间编码)中,若新数据中的最高位数值和次高位数值为“10”或“01”,则正则有符号数编码电路11可以对该新数据得到的中间编码的最高位数值的更高一位处补一位数值0,得到对应目标编码的高三位数值分别为“010”或“001”。可选的,上述中间编码的位宽可以等于目标编码的位宽减1。
其中,上述目标编码的位宽可以等于乘法器接收到的乘数的位宽N加1,该目标编码的位宽可以等于原始部分积的数目,且修正部分积获取电路12可以根据目标编码包含的每一位数值,得到对应的符号位扩展后的部分积以及对应的修正数值。可选的,上述符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽的2倍。可选的,上述所有目标编码的部分积可以包括符号位扩展后部分积中的数值。
可以理解的是,乘法器中的正则有符号数编码电路11可以对接收到的乘数进行正则有符号数编码处理,得到目标编码,修正部分积获取电路12通过目标编码和接收到的被乘数,获得符号位扩展后的部分积和修正数值,并根据符号位扩展后的部分积得到目标编码的部分积,通过华莱士树组电路13可以对修正部分积获取电路12得到目标编码的部分积中的每一列数值进行累加处理,得到累加结果,并通过累加电路14对华莱士树组电路13得到的累加结果进行累加处理,得到乘法运算的目标运算结果。其中,在乘法运算过程中,修正数值可以作为华莱士树组电路13和累加电路14的进位输入信号。可选的,目标编码中的数值可以为正信号(即数值1和0),也可以为负信号(即数值-1),若目标编码中的数值为-1,则修正数值为-1,否则为0。可选的,上述乘数和被乘数可以是多比特位宽相同的定点数,且本实施例可以提供的乘法器可以处理固定比特位宽的数据乘法运算。
本实施例提供的一种乘法器,通过正则有符号数编码电路对接收到的数据进行正则有符号数编码处理得到目标编码,修正部分积获取电路根据目标编码和接收到的数据,获取符号位扩展后的部分积以及修正数值,并根据符号位扩展后的部分积得到目标编码的部分积,通过华莱士树组电路对目标编码的部分积以及修正数值进行累加处理得到累加结果,最后通过累加电路对接收到的累加结果进行再次累加处理,得到运算结果,该乘法器能够采用正则有符号数编码电路对接收到的数据进行正则有符号数编码处理,降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
图2为一个实施例提供的一种乘法器的具体结构示意图,如图2所示,所述乘法器包括:正则有符号数编码电路21,修正部分积获取电路22,修正华莱士树组电路23和累加电路24,所述正则有符号数编码电路21的输出端与所述修正部分积获取电路22的输入端连接,所述修正部分积获取电路22的输出端与所述修正华莱士树组电路23的输入端连接,所述修正华莱士树组电路23的输出端与所述累加电路24的输入端连接。所述正则有符号数编码电路21用于对接收到的数据进行正则有符号数编码处理得到目标编码,所述修正部分积获取电路22用于根据所述目标编码得到符号位扩展后的部分积以及修正数值,并根据所述符号位扩展后的部分积以及所述修正数值,得到目标编码的部分积,所述修正华莱士树组电路23用于根据所述目标编码的部分积以及所述修正数值进行累加处理得到累加运算结果,所述累加电路24用于对所述累加运算结果进行加法运算处理。
具体的,上述正则有符号数编码电路21可以接收乘法运算中的乘数,并对乘数进行正则有符号数编码处理,得到目标编码。需要说明的是,上述正则有符号数编码处理的方法可以通过以下方式表征:对于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转换处理的方式也类似。
例如,正则有符号数编码电路21接收到的乘数为“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,此时,将第五新数据可以称为中间编码,并对中间编码进行一次补位处理后,表征正则有符号数编码处理完成,其中,中间编码的位宽可以等于乘数的位宽。可选的,正则有符号数编码电路21对乘数进行正则有符号数编码处理后,得到的新数据(即中间编码)中,若新数据中的最高位数值和次高位数值为“10”或“01”,则正则有符号数编码电路21可以对该新数据得到的中间编码的最高位数值的更高一位处补一位数值0,得到对应目标编码的高三位数值分别为“010”或“001”。可选的,上述中间编码的位宽可以等于目标编码的位宽减1。
可选的,上述目标编码的位宽可以等于乘法器接收到的乘数的位宽N加1,该目标编码的位宽可以等于原始部分积的数目,且修正部分积获取电路22可以根据目标编码中的每一位数值,得到对应的符号位扩展后的部分积以及对应的修正数值,并根据所有符号位扩展后的部分积和所有修正数值得到目标编码的部分积。可选的,上述符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽的2倍。可选的,修正华莱士树组电路23可以对正则有符号数编码电路21得到的所有目标编码的部分积中的每一列数值进行累加处理,得到累加结果,并通过累加电路24对修正华莱士树组电路23得到的累加结果进行累加处理,得到乘法运算的目标运算结果。可选的,上述所有目标编码的部分积可以包括所有符号位扩展后部分积中的数值以及所有修正数值。
需要说明的是,乘法器通过修正部分积获取电路22可以接收乘法运算中的被乘数,并根据正则有符号数编码电路21得到的目标编码以及接收到的被乘数,获取符号位扩展后的部分积,同时,修正部分积获取电路22可以根据正则有符号数编码电路21得到的目标编码,获取修正数值。
可选的,所述正则有符号数编码电路21,该正则有符号数编码电路21包括:数据输入端口211和目标编码输出端口212,所述数据输入端口211用于接收进行所述正则有符号数编码处理的第一数据,所述目标编码输出端口212用于输出对接收到的所述第一数据进行所述正则有符号数编码处理后得到的所述目标编码。
可选的,正则有符号数编码电路21的内部结构与输出端口的功能,和正则有符号数编码电路11的内部结构与输出端口的功能可以完全相同。
本实施例提供的一种乘法器,通过正则有符号数编码电路对接收到的数据进行正则有符号数编码处理得到目标编码,修正部分积获取电路根据目标编码和接收到的数据获取符号位扩展后的部分积以及修正数值,并根据符号位扩展后的部分积以及修正数值得到目标编码的部分积,通过修正华莱士树组电路对目标编码的部分积进行累加处理得到累加结果,最后通过累加电路对接收到的累加结果进行累加处理,从而保证乘法器能够通过正则有符号数编码电路对对接收到的数据进行正则有符号数编码处理,降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
在其中一个实施例中,上述乘法器包括所述正则有符号数编码电路11,该正则有符号数编码电路11包括:数据输入端口111和目标编码输出端口112,所述数据输入端口111用于接收进行所述正则有符号数编码处理的第一数据,所述目标编码输出端口112用于输出对接收到的所述第一数据进行所述正则有符号数编码处理后得到的所述目标编码。
具体的,若正则有符号数编码电路11通过数据输入端口111接收到一个第一数据,则正则有符号数编码电路11可以对该第一数据进行正则有符号数编码处理,得到目标编码,将目标编码通过目标编码输出端口112输出,其中,第一数据可以为乘法运算中的乘数。可选的,正则有符号数编码处理后得到的目标编码中包含的数值可以为-1,0和1。
本实施例提供的一种乘法器,正则有符号数编码电路可以对接收到的第一数据进行正则有符号数编码得到目标编码,然后修正部分积获取电路可以根据目标编码中的数值以及接收到的数据,获取符号位扩展后的部分积以及修正数值,并通过符号位扩展后的部分积以及修正数值得到目标编码的部分积,再通过华莱士树组电路对目标编码的部分积进行累加处理得到累加结果,最后通过累加电路对接收到的累加结果进行累加处理,该乘法器能够获取的有效部分积的数目较少,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
作为其中一个实施例,修正部分积获取电路12包括:目标编码输入端口121,数据输入端口122和部分积输出端口123,所述目标编码输入端口121用于接收目标编码,所述数据输入端口122用于接收第二数据,所述部分积输出端口123用于输出根据所述第二数据以及所述目标编码得到的所述目标编码的部分积。
具体的,修正部分积获取电路12可以通过目标编码输入端口121,接收正则有符号数编码电路11输出的目标编码中的每一位数值,目标编码中可以包含三种数值,分别为-1,0和1,同时,修正部分积获取电路12可以根据接收到的目标编码中的每一位数值以及接收到的第二数据,获取原始部分积,并对原始部分积进行符号位扩展处理得到符号位扩展后的部分积,以及根据接收到的目标编码中的每一位数值,获取对应的修正数值,最后根据符号位扩展后的部分积得到目标编码的部分积。可选的,数据输入端口122可以接收乘法运算中的第二数据,该第二数据可以为乘法运算中的被乘数。可选的,原始部分积与符号位扩展后的部分积中每一位数值均为数值0和/或1,其中,0可以表示低电平信号,1可以表示高电平信号。
可选的,所有目标编码的部分积的分布规律中,每一个目标编码的部分积可以等于符号位扩展后的部分积,还可以等于符号位扩展后的部分积中的部分位数值,其中,第一个目标编码的部分积可以等于第一个对应的符号位扩展后的部分积,从第二个目标编码的部分积开始,每一个目标编码的部分积中的最低位数值可以与上一个目标编码的部分积中的最低位数值的低两位处数值位于同一列,相当于每一个符号位扩展后的部分积中的每一位数值,在上一个符号位扩展后的部分积中的每一位数值所处对应列的基础上,左移一列,并且每一个目标编码的部分积的最高位数值,与第一个目标编码的部分积中的最高位数值位于同一列,相当于每一个符号位扩展后的部分积,超出第一个符号位扩展后的部分积中最高位数值对应列的更高列数值可以不参与累加运算。可选的,所有目标编码的部分积的列数可以等于乘法器当前所处理数据位宽的2倍。可选的,上述目标编码的部分积的数目可以等于原始部分积的位宽加1。
需要说明的是,修正部分积获取电路12可以根据目标编码直接得到原始部分积,并对原始部分积进行符号位扩展处理,得到符号位扩展后的部分积。可选的,原始部分积的位宽可以等于N,符号位扩展后的部分积的位宽可以等于2N,其中,N表示乘法器当前所处理数据的位宽。可选的,符号位扩展后的部分积中,低N位数值可以等于原始部分积的N位数值,将高N位数值扩展成原始部分积中的符号位数值,该原始部分积中的符号位数值可以为原始部分积中的最高位数值。也可以理解为,符号位扩展后的部分积中,高N位数值可以相同,低N位数值可以等于原始部分积中的低N位数值。但是,参与运算的所有符号位扩展后的部分积的分布规律与所有目标编码的部分积的分布规律相同,即从第二个符号位扩展后的部分积开始,最低位数值与上一个符号位扩展后的部分积的次低位数值位于同一列,且每一个符号位扩展后的部分积的最高位数值均与第一个符号位扩展后的部分积的最高位数值位于同一列。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,通过修正部分积获取电路12得到的一个原始部分积为p8p7p6p5p4p3p2p1p0,进行符号位扩展处理后得到的符号位扩展后的部分积可以表示为p8p8p8p8p8p8p8p8p7p6p5p4p3p2p1p0。
另外,若修正部分积获取电路12可以接收到目标编码中包含的三种数值,分别为-1,0和1,当目标编码中的数值为-1时,则对应的修正数值可以为1,当目标编码中的数值为1或0时,则对应的修正数值可以为0。
示例性的,继续参见上一示例,乘法器进行8位*8位的数据乘法运算,得到所有目标编码的部分积的分布规律如图3所示,图中“●”表示符号位扩展后的部分积中的符号位数值,“○”表示符号位扩展后的部分积中,除去符号位数值外的其它位数值。
在本实施中,上述修正部分积获取电路12与修正部分积获取电路22的内部电路结构以及实现功能可以完全相同。
本实施例提供的一种乘法器,通过修正部分积获取电路可以根据目标编码中包含的每一位数值和接收到的数据,获取对应的符号位扩展后的部分积以及修正数值,根据符号位扩展后的部分积得到目标编码的部分积,通过华莱士树组电路以及修正数值对目标编码的部分积进行累加处理得到累加结果,最后通过累加电路对接收到的累加结果进行累加处理,上述乘法器能够获得较少数目的目标编码的部分积,以降低乘法运算的复杂性,提高乘法运算的运算效率,有效降低乘法器的功耗。
在其中一个实施例中,上述乘法器包括所述华莱士树组电路13,该华莱士树组电路13包括:修正数值输入端口131,部分积输入端口132,和位信号输出端口133以及进位信号输出端口134,所述修正数值输入端口131用于接收所述修正部分积获取电路12获取的所述修正数值,所述部分积输入端口132用于接收所述修正部分积获取电路12得到的所述符号位扩展后的部分积,所述和位信号输出端口133用于输出所述华莱士树组电路13获取的和位信号,所述进位信号输出端口134用于输出所述华莱士树组电路13获取的进位信号。
可选的,如图4所示,乘法器包括所述华莱士树组电路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,对应得到的修正数值的编号也可以为0,1,…,n,则华莱士树组电路13中的第一个华莱士树子电路,接收到的进位输入信号可以为目标编码对应编号从0到n-2的这n-1个目标编码对应的修正数值。可选的,每一个华莱士树子电路的进位输出位数NCout可以等于floor((NI+NCin)/2)-1,其中,NI表示该华莱士树子电路的部分积数值输入信号的数目,NCin表示该华莱士树子电路的进位输出信号的数目,floor(·)表示向下取整函数,NCout表示最少数目的进位输出信号的数目。
另外,华莱士树组电路13中的第一个华莱士树子电路,接收到的进位输入信号可以为目标编码对应编号从0到n-2的这n-1个目标编码对应的修正数值,因此,所有目标编码的部分积的分布规律可以理解为,实际运算的数值为一个(N+2)*2N的方阵,除了每一个符号位扩展后的部分积中的数值外,每一位数值周围空白处的数值均用数值0或1补位。可选的,每一个目标编码的部分积均与目标编码中的一位数值对应,若目标编码中的数值为-1,则实际运算对应的目标编码的部分积的空白处用数值1补位进行运算,若目标编码中的数值为0或1,则实际运算对应的目标编码的部分积的空白处用数值0补位进行运算。继续上一示例,乘法器进行8位*8位的定点数乘法运算,可以等于9个目标编码的部分积,N可以等于8,则所有目标编码的部分积的分布规律可以参见图5所示,图中“●”表示符号位扩展后的部分积中的符号位数值,“○”表示符号位扩展后的部分积中,除去符号位数值外的其它位数值,表示所有目标编码的部分积中空白处的数值,该数值由目标编码确定。可选的,华莱士树组电路13在实际累加运算中,是将所有目标编码的部分积中的第一列数据中空白处的补位数值,用目标编码对应编号从0到n-2的这n-1个目标编码对应的修正数值等效代替。
示例性的,若乘法器当前处理8位*8位的数据乘法运算,修正部分积获取电路12得到的所有目标编码的部分积的分布规律可以继续参见图5,每一个华莱士树子电路可以接收所有目标编码的部分积中对应列的所有数值,华莱士树组电路13中的16个华莱士树子电路的连接电路图如图6所示,图中Wallace_i表示华莱士树子电路,i为华莱士树子电路从0开始的编号,并且两两华莱士树子电路之间连接的实线表示高位编号对应的华莱士树子电路有进位输出信号,虚线表示高位编号对应的华莱士树子电路没有进位输出信号。
本实施例提供的一种乘法器,通过华莱士树组电路对目标编码的部分积进行累加处理得到累加结果,并通过累加电路对累加结果进行累加处理,上述乘法器能够获得较少数目的目标编码的部分积,以降低乘法运算的复杂性,提高乘法运算的运算效率,有效降低乘法器的功耗。
另一实施例提供的一种乘法器的具体结构,其中,乘法器包括所述累加电路14,该累加电路14包括:加法器141,所述加法器141用于根据所述修正数值对所述两路输出信号进行累加处理,得到所述目标运算结果。
具体的,上述加法器141的进位输入信号可以为最后一个编号的目标编码对应的修正数值。可选的,乘法器通过加法器141可以对华莱士树组电路13输出的进位输出信号Carry进行移位处理,得到移位后的进位输出信号Carry’,再对移位后的进位输出信号Carry’,华莱士树组电路输出的和位输出信号Sum以及累加电路接收到的进位输入信号进行累加处理,并将运算结果输出。可选的,上述移位处理可以为左移一位处理,华莱士树组电路13将输出的进位输出信号Carry进行左移一位处理后,原始进位输入信号Carry对应的最低位数值为空,此时,加法器141可以将接收到的倒数第二个编号对应的目标编码对应的修正数值,填充至原始进位输入信号Carry对应的最低位处,得到移位后的进位输出信号Carry’。在本实施中,上述累加电路14与累加电路24的内部电路结构以及实现功能可以完全相同。
本实施例提供的一种乘法器,通过累加电路可以对华莱士树组电路输出的两路信号以及接收到的进位信号进行累加处理,输出乘法运算结果,上述乘法器能够降低乘法运算的复杂性,提高乘法运算的运算效率,有效降低乘法器的功耗。
作为其中一个实施例,该加法器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位超前进位加法器,继续参见图6所示,华莱士树组电路13可以输出16个华莱士树子电路的和位输出信号Sum和进位输出信号Carry,但是,16位超前进位加法器接收到的和位输出信号可以为华莱士树组电路13输出的完整和位信号Sum,接收到的进位输出信号可以为华莱士树组电路13中,除去最后一个华莱士树子电路输出的进位输出信号的所有进位输出信号与0结合后的进位信号Carry。
本实施例提供的一种乘法器,通过累加电路可以对华莱士树组电路输出的两路信号以及接收到的进位输入信号进行累加处理,输出乘法运算结果,上述乘法器能够降低乘法运算的复杂性,提高乘法运算的运算效率,有效降低乘法器的功耗。
作为其中一个实施例,其中,乘法器包括所述修正部分积获取电路22,该修正部分积获取电路22包括:目标编码输入端口221,数据输入端口222和部分积输出端口223,所述目标编码输入端口221用于接收所述目标编码,所述数据输入端口222用于接收第二数据,所述部分积输出端口223用于输出根据所述第二数据以及所述目标编码得到的所述目标编码的部分积。
具体的,修正部分积获取电路22可以通过目标编码输入端口221接收正则有符号数编码电路21输出的目标编码中包含的三种数值,分别为-1,0和1,并且修正部分积获取电路22可以根据接收到的目标编码中的不同数值以及接收到的第二数据,获取原始部分积,并对原始部分积进行符号位扩展处理得到符号位扩展后的部分积,同时,根据接收到的目标编码中的不同数值,获取对应的修正数值,最后根据符号位扩展后的部分积和修正数值得到目标编码的部分积。可选的,数据输入端口222可以接收乘法运算中的第二数据,该第二数据可以为乘法运算中的被乘数。可选的,原始部分积与符号位扩展后的部分积中每一位数值均为数值0和/或1,其中,0可以表示低电平信号,1可以表示高电平信号。
另外,乘法器可以通过修正部分积获取电路22,将得到的每一个符号位扩展后的部分积,与对应的修正数值组合,得到目标编码的部分积。可选的,上述每一个目标编码的部分积可以等于符号位扩展后的部分积,还可以等于符号位扩展后的部分积中的部分数值,与上一个符号位扩展后的部分积对应的修正数值组合的部分积,并且每一个目标编码的部分积中的修正数值可以位于对应符号位扩展后的部分积中最低位数值后低两位处。可选的,所有目标编码的部分积的列数可以等于乘法器当前所处理数据位宽的2倍,且目标编码的部分积的数目可以等于符号位扩展后的部分积的数目加1。
需要说明的是,修正部分积获取电路22可以根据目标编码直接得到原始部分积,并对原始部分积进行符号位扩展处理得到符号位扩展后的部分积。可选的,原始部分积的位宽可以等于N,符号位扩展后的部分积的位宽可以等于2N,其中,N表示乘法器当前所处理数据的位宽。可选的,符号位扩展后的部分积中,低N位数值可以等于原始部分积的N+1位数值,将高N位数值扩展成原始部分积中的符号位数值,该原始部分积中的符号位数值可以为原始部分积中的最高位数值。也可以理解为,符号位扩展后的部分积中,高N位数值可以相同,低N位数值可以等于原始部分积中的低N位数值。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,通过修正部分积获取电路22得到的一个原始部分积为p8p7p6p5p4p3p2p1p0,进行符号位扩展处理后得到的符号位扩展后的部分积可以表示为p8p8p8p8p8p8p8p8p7p6p5p4p3p2p1p0。
另外,若修正部分积获取电路22可以接收到目标编码中包含的三种数值,分别为-1,0和1,当目标编码中的数值为-1时,则对应的修正数值可以为1,当目标编码中的数值为1或0时,则对应的修正数值可以为0。
可选的,所有目标编码的部分积的分布规律中,第一个目标编码的部分积可以等于第一个符号位扩展后的部分积,从第二个目标编码的部分积开始,每一个目标编码的部分积可以等于对应符号位扩展后的部分积,与上一个符号位扩展后的部分积对应的修正数值组合得到的部分积,且修正数值可以与上一个目标编码的部分积最低位数值位于同一列,且目标编码的部分积中的修正数值与对应符号位扩展后的部分积最低位数值之间没有空位,但是,最后一个目标编码的部分积可以等于最后一个符号位扩展后的部分积对应的修正数值,还可以理解为,最后一个修正数值没有可以组合的符号位扩展后的部分积。同时,所有目标编码的部分积的分布规律中,以第一个目标编码的部分积的最高位数值对应列为准,其它的所有目标编码的部分积最高位数值所对应列,与第一个目标编码的部分积的最高位数值对应列为同一列,超出第一个目标编码的部分积的最高位数值对应列的数值均不进行累加运算。
示例性的,继续参见上一示例,乘法器进行8位*8位的数据乘法运算,得到所有目标编码的部分积的分布规律如图8所示,图中表示修正数值,“●”表示符号位扩展后的部分积中的符号位数值,“○”表示符号位扩展后的部分积中,除去符号位数值外的其它位数值。
本实施例提供的一种乘法器,通过修正部分积获取电路可以根据每一个目标编码和接收到的数据获取符号位扩展后的部分积以及修正数值,并通过符号位扩展后的部分积以及修正数值得到目标编码的部分积,再通过修正华莱士树组电路对目标编码的部分积进行累加处理,最后通过累加电路对接收到的输入数据进行再次累加处理,得到运算结果,该乘法器能够降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
作为其中一个实施例,该修正华莱士树组电路23包括:部分积输入端口231,进位信号输入端口232,和位信号输出端口233以及进位信号输出端口234,所述部分积输入端口231用于接收修正部分积获取电路22得到的所述目标编码的部分积,所述进位信号输入端口232用于接收进位输入信号,所述和位信号输出端口233用于输出所述修正华莱士树组电路23获取的和位信号,所述进位信号输出端口234用于输出所述修正华莱士树组电路23获取的进位信号。
可选的,所述修正华莱士树组电路23包括:修正华莱士树子电路2311~231n,多个所述修正华莱士树子电路2311~231n用于对所有目标编码的部分积的每一列数值进行累加处理。
具体的,修正华莱士树组电路23包含的修正华莱士树子电路的数目n可以等于乘法器当前所处理数据位宽的2倍,并且n个修正华莱士树子电路可以对所有目标编码的部分积进行并行处理,但连接方式可以是串行连接。可选的,修正华莱士树组电路23中每一个修正华莱士树子电路可以对所有目标编码的部分积中的每一列数值进行加法处理,每一个修正华莱士树子电路可以输出两个信号,即进位信号Carryi与一个和位信号Sumi,其中,i可以表示每一个修正华莱士树子电路对应的编号,第一个修正华莱士树子电路的编号为0,且第一个修正华莱士树子电路接收到的进位信号可以为0。可选的,每一个修正华莱士树子电路接收到部分积输入信号的数目可以等于目标编码的部分积中每一列数值的总数目,还可以等于符号位扩展后的部分积的数目加1,并且上述输入信号可以为所有目标编码的部分积中的一列数值和0,其中,每一个修正华莱士树子电路接收到的进位输入信号的端口与部分积输入信号的端口不同,并且每一个修正华莱士树子电路的部分积输入端口的数目是固定的,若所有目标编码的部分积中,其中一列数值数目小于部分积输入端口的数目,则可以将未输入数值的部分积输入端口输入数值0。
另外,修正华莱士树组电路23中的每一个修正华莱士树子电路接收到部分积输入信号的数目还可以等于目标编码的部分积的数目减1,但是,其中一个修正华莱士树子电路接收到部分积输入信号的数目可以等于目标编码的部分积的数目,该修正华莱士树子电路对应接收的是最后一个目标编码的部分积中对应的修正数值对应列的所有数值。其中,最后一个目标编码的部分积可以等于最后一个目标编码对应的修正数值。
示例性的,若乘法器当前处理8位*8位的数据乘法运算,修正部分积获取电路22得到的所有目标编码的部分积的分布规律可以继续参见图8,得到10个目标编码的部分积,每一个修正华莱士树子电路可以接收所有目标编码的部分积中对应列的所有数值,修正华莱士树组电路23中的16个修正华莱士树子电路的连接电路图如图9所示,图中Wallace_i表示修正华莱士树子电路,i为修正华莱士树子电路从0开始的编号,并且两两修正华莱士树子电路之间连接的实线表示高位编号对应的修正华莱士树子电路有进位输出信号,虚线表示高位编号对应的修正华莱士树子电路没有进位输出信号,其中,该修正华莱士树组电路23中的每一个修正华莱士树子电路除去进位输入端口外,均有10个部分积数值输入端口。另外,针对本示例还可以采用另一种修正华莱士树组电路23进行累加运算,其中16个修正华莱士树子电路的连接电路图如图10所示,其中,该修正华莱士树组电路23中的每一个修正华莱士树子电路除去进位输入端口外,均有9个部分积数值输入端口,但是,仅有一个修正华莱士树子电路除去进位输入端口外,还有10个部分积数值输入端口,该修正华莱士树子电路对应处理的是图8中最后一个目标编码的部分积对应列的数值。
本实施例提供的一种乘法器,通过修正华莱士树组电路对目标编码的部分积进行累加处理得到累加结果,并通过累加电路对累加结果进行累加处理,得到运算结果,该乘法器能够降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
在其中一个实施例中,继续如图7所示乘法器的具体结构示意图,其中,乘法器包括所述累加电路2,该累加电路24包括:加法器241,所述加法器241用于对接收到的两个同位宽数据进行加法运算。
具体的,加法器241可以为不同位宽的加法器,并且加法器241可以为超前进位加法器。可选的,加法器241可以接收修正华莱士树组电路23输出的两路信号,对两路输出信号进行加法运算,输出乘法运算结果。
本实施例提供的一种乘法器,通过累加电路可以对修正华莱士树组电路23输出的两路信号进行累加处理,输出乘法运算结果,该乘法器能够降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
在其中一个实施例中,其中,乘法器包括所述加法器241,该加法器241包括:进位信号输入端口2411,和位信号输入端口2412以及结果输出端口2413,所述进位信号输入端口2411用于接收进位信号,所述和位信号输入端口2412用于接收和位信号,所述结果输出端口2413用于输出所述进位信号与所述和位信号进行累加处理得到的结果。
具体的,加法器241可以通过进位信号输入端口2411接收修正华莱士树组电路23输出的进位信号Carry,通过和位信号输入端口2412接收修正华莱士树组电路23输出的和位信号Sum,并将进位信号Carry与和位信号Sum进行累加运算得到的结果,通过结果输出端口2413输出。
需要说明的是,乘法运算时,乘法器可以采用不同位宽的加法器241对修正华莱士树组电路23输出的进位输出信号Carry与和位输出信号Sum进行加法运算,其中,上述加法器241可处理数据的位宽可以等于乘法器当前处理的数据位宽N的2倍。可选的,修正华莱士树组电路23中的每一个华莱士树子电路可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=0,…,2N-1,i为每一个畸形华莱士树子电路的对应编号,编号从0开始)。可选的,加法器241接收到的Carry={[Carry0:Carry2N-2],0},也就是说,加法器241接收到的进位输出信号Carry的位宽为2N,进位输出信号Carry中前2N-1位数值对应修正华莱士树组电路23中前2N-1个修正华莱士树子电路的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器241接收到的和位输出信号Sum的位宽为2N,和位输出信号Sum中的数值可以等于修正华莱士树组电路23中每一个修正华莱士树子电路的和位输出信号。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,则加法器241可以为16位超前进位加法器,继续参见图9所示,修正华莱士树组电路23可以输出16个修正华莱士树子电路的和位输出信号Sum以及进位输出信号Carry,但是,16位超前进位加法器接收到的和位输出信号可以为修正华莱士树组电路23输出的完整和位信号Sum,接收到的进位输出信号可以为修正华莱士树组电路23中,除去最后一个修正华莱士树子电路输出的进位输出信号的其余所有进位输出信号与0结合后的进位信号Carry。
本实施例提供的一种乘法器,通过累加电路可以对修正华莱士树组电路输出的两路信号进行累加处理,输出乘法运算结果,该乘法器能够降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
图11为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图1和图3所示的乘法器进行处理,本实施例涉及的是数据乘法运算的过程。如图11所示,该方法包括:
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,0和1,当目标编码中的数值为-1时,则对应的修正数值可以为1,当目标编码中的数值为1或0时,则对应的修正数值可以为0。可选的,每一个目标编码均有对应的目标编码的部分积以及对应的修正数值。
S104、根据所述修正数值对所述目标编码的部分积进行累加处理,得到目标运算结果。
具体的,乘法器中的华莱士树组电路可以根据修正数值对目标编码的部分积中的每一列数值进行累加处理,得到乘法运算的目标运算结果,并将目标运算结果输出。其中,修正数值可以作为华莱士树组电路的进位输入信号。
本实施例提供的一种数据处理方法,接收待处理数据,将所述待处理数据进行正则有符号数编码处理,得到目标编码,对所述待处理数据与所述目标编码进行转换处理,得到目标编码的部分积,对所述待处理数据与所述目标编码进行转换处理,得到目标编码的部分积以及修正数值,根据所述修正数值对所述目标编码的部分积进行累加处理,得到目标运算结果,上述方法能够通过正则有符号数编码电路对接收到的数据进行正则有符号数编码,得到的有效部分积的数目较少,从而降低了乘法器实现乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低乘法器的功耗。
另一实施例提供的数据处理方法,上述S103中根据所述待处理数据与所述目标编码,得到目标编码的部分积以及修正数值,包括:
S1031、根据所述待处理数据与所述目标编码,得到所述符号位扩展后的部分积。
具体的,修正部分积获取电路可以根据接收到的待处理数据,与正则有符号数编码电路得到的目标编码,得到符号位扩展后的部分积,该待处理数据可以为被乘数。
S1032、根据所述目标编码得到所述修正数值,并根据所述符号位扩展后的部分积得到所述目标编码的部分积。
具体的,修正部分积获取电路可以根据接收到的目标编码通过修正处理规则,得到对应的修正数值。
示例性的,若修正部分积获取电路可以接收目标编码中包含的三种数值,分别为-1,0和1,并且接收到的被乘数为X,修正部分积获取电路可以根据修正处理规则确定目标编码中包含的每一种数值对应的修正数值。可选的,上述修正处理规则可以表征为,当目标编码中的数值为-1时,则对应的修正数值可以为1,当目标编码中的数值为0或1时,则对应的修正数值可以为0。
需要说明的是,每一个目标编码的部分积可以对应一个编号,编号从1开始。可选的,低位数据得到的目标编码的部分积对应的编号可以从1开始。可选的,第一个目标编码的部分积可以等于第一个对应的符号位扩展后的部分积,从第二个目标编码的部分积开始,每一个目标编码的部分积可以为对应符号位扩展后的部分积左移(2N-i+1)位数值,相当于对应符号位扩展后的部分积中的高(i-1)位数值不进行累加运算,其中,i表示每一个符号位扩展后的部分积的编号。
本实施例提供的一种数据处理方法,根据所述待处理数据与所述目标编码,得到符号位扩展后的部分积,通过所述符号位扩展后的部分积与所述修正数值进行转换处理,得到所述目标编码的部分积,并根据修正数值对目标编码的部分积进行累加处理,得到目标运算结果,上述方法能够得到的有效部分积的数目较少,从而降低了乘法器实现乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低乘法器的功耗。
在其中一个实施例中,上述S1031中根据所述待处理数据与所述目标编码,得到符号位扩展后的部分积,包括:
S1031a、根据所述待处理数据与所述目标编码,得到原始部分积。
具体的,上述原始部分积的数目可以等于目标编码的数目。示例性的,若修正部分积获取电路接收到一个8位的被乘数x7x6x5x4x3x2x1x0(即X),则修正部分积获取电路可以根据被乘数x7x6x5x4x3x2x1x0(即X)与目标编码中包含的三种数值直接得到对应的原始部分积,当目标编码中的数值为-1时,则原始部分积可以为-X,当目标编码中的数值为1时,则原始部分积可以为X,当目标编码中的数值为0时,则原始部分积可以为0,相当于原始部分积中的9位数值均为数值0。
S1031b、对所述原始部分积进行符号位扩展处理,得到所述符号位扩展后的部分积。
具体的,符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽N的2倍,而原始部分积的位宽可以等于N,符号位扩展位的位数可以等于N。可选的,符号位扩展处理可以理解为将符号位扩展位的数值均用原始部分积中符号位的数值填充,符号位的数值可以为原始部分积中的最高位数值,得到一个2N比特位宽的符号位扩展后的部分积。可选的,在所有符号位扩展后的部分积的分布规律中,所有符号位扩展后的部分积中的最高位数值可以位于同一列,最低位数值也可以位于同一列,其它对应位数值也可以对应同一列。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,通过修正部分积获取电路得到的一个原始部分积为p8p7p6p5p4p3p2p1p0,进行符号位扩展后的部分积可以表示为p8p8p8p8p8p8p8p8p7p6p5p4p3p2p1p0。
本实施例提供的一种数据处理方法,根据所述待处理数据与所述目标编码,得到原始部分积,对所述原始部分积进行符号位扩展处理,得到所述符号位扩展后的部分积,并根据修正数值对所述符号位扩展后的部分积进行累加处理,得到运算结果,上述方法能够得到的有效部分积的数目较少,从而降低了乘法器实现乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低乘法器的功耗。
另一实施例提供的数据处理方法,上述S104中根据所述修正数值对所述目标编码的部分积进行累加处理,得到目标运算结果,包括:
S1041、根据所述修正数值对所述目标编码的部分积进行累加处理,得到两路输出信号。
具体的,乘法器通过华莱士树组电路中的华莱士树子电路,可以对所有目标编码的部分积中的每一列数值进行累加处理,得到两路输出信号,进位输出信号Carry={Carry0,Carry1,…,Carryi}与和位输出信号Sum={Sum0,Sum1,…,Sumi},其中,i表示华莱士树子电路从0开始的编号。可选的,每一个华莱士树子电路接收到的输入信号的数目可以等于符号位扩展后的部分积的数目,从第二个华莱士树子电路开始,每一个华莱士树子电路接收到的进位输入信号的数目,可以等于上一个华莱士树子电路输出的进位输出信号的数目。可选的,若正则有符号数编码电路得到的目标编码的数目为n+1,目标编码中所有数值对应的编号可以为1,...,n+1,则第一个华莱士树子电路接收到的进位输入信号可以为目标编码中,编号从1至n-1的数值对应得到的n-1个修正数值,其中,n可以表示乘法器接收到的数据的位宽。另外,每一个华莱士树子电路可以输出两路信号,进位输出信号Carryi与和位输出信号Sumi。可选的,每一个华莱士树子电路输入信号的端口数目可以等于对应列目标编码的部分积中的数值与修正数值的总数目。
需要说明的是,若华莱士树组电路中的华莱士树子电路从0开始的编号为0,1,…,i,华莱士树组电路接收到的对应原始部分积的编号也可以为0,1,…,i,则华莱士树组电路中的第一个华莱士树子电路,接收到的进位输入信号可以为编号为0,1,…,i-2的原始部分积对应的i-1个修正数值。
S1042、根据所述修正数值对所述两路输出信号进行累加处理,得到所述目标运算结果。
具体的,上述累加电路的进位输入信号可以为最后一个编号的目标编码对应的修正数值。可选的,乘法器通过累加电路可以对华莱士树组电路输出的进位输出信号Carry进行移位处理,得到移位后的进位输出信号Carry’,再对移位后的进位输出信号Carry’,华莱士树组电路输出的和位输出信号Sum以及累加电路接收到的进位输入信号进行累加处理,并将运算结果输出。可选的,上述移位处理可以为左移一位处理,华莱士树组电路将输出的进位输出信号Carry进行左移一位处理后,原始进位输入信号Carry对应的最低位数值为空,此时,累加电路可以将接收到的倒数第二个编号对应的目标编码对应的修正数值,填充至原始进位输入信号Carry对应的最低位处,得到移位后的进位输出信号Carry’。
本实施例提供的一种数据处理方法,根据所述修正数值对所述目标编码的部分积进行累加处理,得到两路输出信号,根据所述修正数值对所述两路输出信号进行累加处理,得到目标运算结果,上述方法能够得到的有效部分积的数目较少,从而降低了乘法器实现乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低乘法器的功耗。
图12为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图2和图7所示的乘法器进行处理,本实施例涉及的是数据乘法运算的过程。如图12所示,该方法包括:
S201、接收待处理数据。
具体的,乘法器可以通过正则有符号数编码电路接收待处理数据,该待处理数据为乘数,通过修正部分积获取电路接收待处理数据,该待处理数据可以为被乘数。可选的,上述乘数和被乘数的位宽均可以为8比特,16比特,32比特,64比特,对此本实施例不做任何限定。其中,待处理的乘数和被乘数均可以为定点数。
S202、将所述待处理数据进行正则有符号数编码处理,得到目标编码。
具体的,乘法器通过正则有符号数编码电路可以对接收到的待处理数据进行正则有符号数编码处理,得到目标编码,该待处理数据为乘数。其中,目标编码的位宽可以等于待处理乘数位宽N加1。
可选的,上述S202中将所述待处理数据进行正则有符号数编码处理,得到目标编码的步骤,可以包括:将所述待处理数据中连续的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)。
S203、根据所述目标编码得到修正数值。
具体的,修正部分积获取电路可以根据接收到的目标编码通过修正处理规则,得到对应的修正数值。修正处理的规则可以表征为,若修正部分积获取电路可以接收到目标编码中包含的三种数值,分别为-1,0和1,当目标编码中的数值为-1时,则对应的修正数值可以为1,当目标编码中的数值为1或0时,则对应的修正数值可以为0。可选的,每一个目标编码均有对应的目标编码的部分积以及对应的修正数值。
S204、对所述待处理数据与所述目标编码进行转换处理,得到目标编码的部分积。
具体的,上述转换处理可以表征为,基于待处理数据,该待处理数据为被乘数,将目标编码转换为目标编码的部分积。
可选的,步骤S203和S204的处理顺序本实施例不做任何限定。
S205、根据所述修正数值对所述目标编码的部分积进行累加处理,得到目标运算结果。
具体的,乘法器中的华莱士树组电路可以根据修正数值对目标编码的部分积中的每一列数值进行累加处理,得到乘法运算的目标运算结果,并将目标运算结果输出。其中,修正数值可以作为华莱士树组电路的进位输入信号。
本实施例提供的一种数据处理方法,接收待处理数据,将所述待处理数据进行正则有符号数编码处理,得到目标编码,对所述待处理数据与所述目标编码进行转换处理,得到目标编码的部分积,对所述待处理数据与所述目标编码进行转换处理,得到目标编码的部分积以及修正数值,根据所述修正数值对所述目标编码的部分积进行累加处理,得到目标运算结果,上述方法能够通过正则有符号数编码电路对接收到的数据进行正则有符号数编码,得到的有效部分积的数目较少,从而降低了乘法器实现乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低乘法器的功耗。
另一实施例提供的数据处理方法,上述S204中对所述待处理数据与所述目标编码进行转换处理,得到目标编码的部分积,包括:
S2041、根据所述待处理数据与所述目标编码,得到所述符号位扩展后的部分积。
具体的,修正部分积获取电路可以根据接收到的待处理被乘数,与正则有符号数编码电路得到的目标编码,得到符号位扩展后的部分积。
S2042、通过所述符号位扩展后的部分积与所述修正数值进行转换处理,得到所述目标编码的部分积。
具体的,修正部分积获取电路可以根据接收到的目标编码通过修正处理规则,得到对应的修正数值。
示例性的,若修正部分积获取电路可以接收目标编码中包含的三种数值,分别为-1,0和1,并且接收到的被乘数为X,修正部分积获取电路可以根据修正处理规则确定目标编码中包含的每一种数值对应的修正数值。可选的,上述修正处理规则可以表征为,当目标编码中的数值为-1时,则对应的修正数值可以为1,当目标编码中的数值为0或1时,则对应的修正数值可以为0。
需要说明的是,每一个目标编码的部分积可以对应一个编号,编号从1开始。可选的,低位数据得到的目标编码的部分积对应的编号可以从1开始。可选的,第一个目标编码的部分积可以等于第一个对应的符号位扩展后的部分积,从第二个目标编码的部分积开始,每一个目标编码的部分积可以为对应符号位扩展后的部分积左移(2N-i+1)位数值,相当于对应符号位扩展后的部分积中的高(i-1)位数值不进行累加运算,其中,i表示每一个符号位扩展后的部分积的编号。
本实施例提供的一种数据处理方法,根据所述待处理数据与所述目标编码,得到符号位扩展后的部分积,通过所述符号位扩展后的部分积与所述修正数值进行转换处理,得到所述目标编码的部分积,并根据修正数值对目标编码的部分积进行累加处理,得到目标运算结果,上述方法能够得到的有效部分积的数目较少,从而降低了乘法器实现乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低乘法器的功耗。
在其中一个实施例中,上述S2041中根据所述待处理数据与所述目标编码,得到所述符号位扩展后的部分积,包括:
S2041a、根据所述待处理数据与所述目标编码,得到原始部分积。
具体的,上述原始部分积的数目可以等于目标编码的数目。示例性的,若修正部分积获取电路接收到一个8位的被乘数x7x6x5x4x3x2x1x0(即X),则修正部分积获取电路可以根据被乘数x7x6x5x4x3x2x1x0(即X)与目标编码中包含的三种数值直接得到对应的原始部分积,当目标编码中的数值为-1时,则原始部分积可以为-X,当目标编码中的数值为1时,则原始部分积可以为X,当目标编码中的数值为0时,则原始部分积可以为0,相当于原始部分积中的9位数值均为数值0。
S2041b、对所述原始部分积进行符号位扩展处理,得到所述符号位扩展后的部分积。
具体的,符号位扩展后的部分积的位宽可以等于乘法器当前所处理数据位宽N的2倍,而原始部分积的位宽可以等于N,符号位扩展位的位数可以等于N。可选的,符号位扩展处理可以理解为将符号位扩展位的数值均用原始部分积中符号位的数值填充,符号位的数值可以为原始部分积中的最高位数值,得到一个2N比特位宽的符号位扩展后的部分积。可选的,在所有符号位扩展后的部分积的分布规律中,所有符号位扩展后的部分积中的最高位数值可以位于同一列,最低位数值也可以位于同一列,其它对应位数值也可以对应同一列。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,通过修正部分积获取电路得到的一个原始部分积为p8p7p6p5p4p3p2p1p0,进行符号位扩展后的部分积可以表示为p8p8p8p8p8p8p8p8p7p6p5p4p3p2p1p0。
本实施例提供的一种数据处理方法,根据所述待处理数据与所述目标编码,得到原始部分积,对所述原始部分积进行符号位扩展处理,得到所述符号位扩展后的部分积,并根据修正数值对所述符号位扩展后的部分积进行累加处理,得到运算结果,上述方法能够得到的有效部分积的数目较少,从而降低了乘法器实现乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低乘法器的功耗。
另一实施例提供的数据处理方法,上述S205中根据所述修正数值对所述目标编码的部分积进行累加处理,得到目标运算结果,包括:
S2051、对所述目标编码的部分积进行累加处理,得到两路输出信号。
具体的,乘法器通过华莱士树组电路中的华莱士树子电路,可以对所有目标编码的部分积中的每一列数值进行累加处理,得到两路输出信号,进位输出信号Carry={Carry0,Carry1,…,Carryi}与和位输出信号Sum={Sum0,Sum1,…,Sumi},其中,i表示华莱士树子电路从0开始的编号。可选的,每一个华莱士树子电路接收到的输入信号的数目可以等于符号位扩展后的部分积的数目,从第二个华莱士树子电路开始,每一个华莱士树子电路接收到的进位输入信号的数目,可以等于上一个华莱士树子电路输出的进位输出信号的数目。可选的,若正则有符号数编码电路得到的目标编码的数目为n+1,目标编码中所有数值对应的编号可以为1,...,n+1,则第一个华莱士树子电路接收到的进位输入信号可以为目标编码中,编号从1至n-1的数值对应得到的n-1个修正数值,其中,n可以表示乘法器接收到的数据的位宽。另外,每一个华莱士树子电路可以输出两路信号,进位输出信号Carryi与和位输出信号Sumi。可选的,每一个华莱士树子电路输入信号的端口数目可以等于对应列目标编码的部分积中的数值与修正数值的总数目。
需要说明的是,若华莱士树组电路中的华莱士树子电路从0开始的编号为0,1,…,i,华莱士树组电路接收到的对应原始部分积的编号也可以为0,1,…,i,则华莱士树组电路中的第一个华莱士树子电路,接收到的进位输入信号可以为编号为0,1,…,i-2的原始部分积对应的i-1个修正数值。
S2052、对所述修正数值与所述两路输出信号进行累加处理,得到目标运算结果。
具体的,上述累加电路的进位输入信号可以为最后一个编号的目标编码对应的修正数值。可选的,乘法器通过累加电路可以对华莱士树组电路输出的进位输出信号Carry进行移位处理,得到移位后的进位输出信号Carry’,再对移位后的进位输出信号Carry’,华莱士树组电路输出的和位输出信号Sum以及累加电路接收到的进位输入信号进行累加处理,并将运算结果输出。可选的,上述移位处理可以为左移一位处理,华莱士树组电路将输出的进位输出信号Carry进行左移一位处理后,原始进位输入信号Carry对应的最低位数值为空,此时,累加电路可以将接收到的倒数第二个编号对应的目标编码对应的修正数值,填充至原始进位输入信号Carry对应的最低位处,得到移位后的进位输出信号Carry’。
本实施例提供的一种数据处理方法,根据所述修正数值对所述目标编码的部分积进行累加处理,得到两路输出信号,根据所述修正数值对所述两路输出信号进行累加处理,得到目标运算结果,上述方法能够得到的有效部分积的数目较少,从而降低了乘法器实现乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低乘法器的功耗。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的乘法器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上乘法器时,乘法器间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图13为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数目不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图14所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图15所示,图15提供了一种板卡,上述板卡除了包括上述芯片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.0 X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接收装置还可以是其它的接口,本申请并不限制上述其它的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接收装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备可以为乘法器、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的电路组合,但是本领域技术人员应该知悉,本申请并不受所描述的电路组合方式的限制,因为依据本申请,某些电路可以采用其它方式或者结构实现。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的器件和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (19)
1.一种乘法器,其特征在于,所述乘法器包括:正则有符号数编码电路、修正部分积获取电路、华莱士树组电路和累加电路,所述正则有符号数编码电路的输出端与所述修正部分积获取电路的输入端连接,所述修正部分积获取电路的输出端与所述华莱士树组电路的输入端连接,所述华莱士树组电路的输出端与所述累加电路的输入端连接;
其中,所述正则有符号数编码电路用于对接收到的乘数进行正则有符号数编码处理得到目标编码,所述修正部分积获取电路用于根据所述目标编码中的每一位数值和接收到的被乘数获取原始部分积,对所述原始部分积进行符号位扩展处理得到符号位扩展后的部分积,并根据所述符号位扩展后的部分积得到目标编码的部分积,以及根据所述目标编码中的每一位数值获取修正数值;所述华莱士树组电路用于根据所述目标编码的部分积以及所述修正数值进行累加处理得到累加运算结果,所述累加电路用于根据所述修正数值对所述累加运算结果进行加法运算处理。
2.根据权利要求1所述的乘法器,其特征在于,所述正则有符号数编码电路包括:数据输入端口和目标编码输出端口,所述数据输入端口用于接收进行所述正则有符号数编码处理的第一数据,所述目标编码输出端口用于输出对接收到的所述第一数据进行所述正则有符号数编码处理后得到的所述目标编码。
3.根据权利要求1或2所述的乘法器,其特征在于,所述修正部分积获取电路包括:目标编码输入端口、数据输入端口和部分积输出端口,所述目标编码输入端口用于接收目标编码,所述数据输入端口用于接收第二数据,所述部分积输出端口用于输出根据所述第二数据以及所述目标编码得到的所述目标编码的部分积。
4.根据权利要求1或2所述的乘法器,其特征在于,所述华莱士树组电路包括:修正数值输入端口、部分积输入端口、和位信号输出端口以及进位信号输出端口,所述修正数值输入端口用于接收所述修正部分积获取电路获取的所述修正数值,所述部分积输入端口用于接收所述修正部分积获取电路得到的所述符号位扩展后的部分积,所述和位信号输出端口用于输出所述华莱士树组电路获取的和位信号,所述进位信号输出端口用于输出所述华莱士树组电路获取的进位信号。
5.根据权利要求1或2所述的乘法器,其特征在于,所述华莱士树组电路包括:华莱士树子电路,所述华莱士树子电路用于对所有目标编码的部分积中的每一列数值进行累加处理,得到累加运算结果。
6.根据权利要求1或2所述的乘法器,其特征在于,所述累加电路包括:加法器,所述加法器用于根据所述修正数值对两路输出信号进行累加处理,得到目标运算结果。
7.根据权利要求6所述的乘法器,其特征在于,所述加法器包括:进位信号输入端口、和位信号输入端口、进位输入端口以及结果输出端口,所述进位信号输入端口用于接收进位信号,所述和位信号输入端口用于接收所述和位信号,所述进位输入端口用于接收所述修正部分积获取电路得到的所述修正数值,并将所述修正数值填充至进位输入信号的最低位处,所述结果输出端口用于输出对所述进位信号,所述和位信号以及所述修正数值进行累加运算得到的结果。
8.一种数据处理方法,其特征在于,应用于上述权利要求1-7中任一项所述的乘法器,所述方法包括:
接收待处理数据;
将所述待处理数据进行正则有符号数编码处理,得到目标编码;
根据所述待处理数据与所述目标编码,得到符号位扩展后的部分积以及修正数值,并根据所述符号位扩展后的部分积得到目标编码的部分积;
根据所述修正数值对所述目标编码的部分积进行累加处理,得到累加运算结果,并对所述累加运算结果进行加法运算处理得到目标运算结果。
9.根据权利要求8所述的方法,其特征在于,所述将所述待处理数据进行正则有符号数编码处理,得到目标编码,包括:将所述待处理数据中连续的l位数值1转换为(l+1)位最高位数值为1,最低位数值为-1,其余位为数值0后,得到所述目标编码,其中,l大于等于2。
10.根据权利要求8或9所述的方法,其特征在于,所述根据所述待处理数据与所述目标编码,得到符号位扩展后的部分积以及修正数值,包括:
根据所述待处理数据与所述目标编码,得到符号位扩展后的部分积;
根据所述目标编码得到所述修正数值。
11.根据权利要求10所述的方法,其特征在于,所述根据所述待处理数据与所述目标编码,得到符号位扩展后的部分积,包括:
根据所述待处理数据与所述目标编码,得到原始部分积;
对所述原始部分积进行符号位扩展处理,得到所述符号位扩展后的部分积。
12.根据权利要求8或9所述的方法,其特征在于,所述累加运算结果包括两路输出信号;所述对所述累加运算结果进行加法运算处理得到目标运算结果,包括:
根据所述修正数值对所述两路输出信号进行加法运算处理,得到所述目标运算结果。
13.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-7任一项所述的乘法器,用于从其它处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,多个所述乘法器间通过预设特定结构进行连接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
14.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求13所述的机器学习运算装置,通用互联接口和其它处理装置;
所述机器学习运算装置与所述其它处理装置进行交互,共同完成用户指定的计算操作。
15.根据权利要求14所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
16.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求13所述的机器学习运算装置或如权利要求14所述的组合处理装置或如权利要求15所述的组合处理装置。
17.一种电子设备,其特征在于,所述电子设备包括如所述权利要求16所述的神经网络芯片。
18.一种板卡,其特征在于,所述板卡包括:存储器件、接收装置和控制器件以及如权利要求16所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接收装置分别连接;
所述存储器件,用于存储数据;
所述接收装置,用于实现所述神经网络芯片与外部设备之间的数据传输;
所述控制器件,用于对所述神经网络芯片的状态进行监控。
19.根据权利要求18所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述神经网络芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述神经网络芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接收装置为:标准PCIE接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910817892.7A CN110515585B (zh) | 2019-08-30 | 2019-08-30 | 乘法器、数据处理方法、芯片及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910817892.7A CN110515585B (zh) | 2019-08-30 | 2019-08-30 | 乘法器、数据处理方法、芯片及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110515585A CN110515585A (zh) | 2019-11-29 |
CN110515585B true CN110515585B (zh) | 2024-03-19 |
Family
ID=68628651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910817892.7A Active CN110515585B (zh) | 2019-08-30 | 2019-08-30 | 乘法器、数据处理方法、芯片及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110515585B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101156130A (zh) * | 2005-03-31 | 2008-04-02 | Nxp股份有限公司 | 正则符号数字乘法器 |
CN105183424A (zh) * | 2015-08-21 | 2015-12-23 | 电子科技大学 | 一种具有高精度低能耗特性的固定位宽乘法器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7080115B2 (en) * | 2002-05-22 | 2006-07-18 | Broadcom Corporation | Low-error canonic-signed-digit fixed-width multiplier, and method for designing same |
US7680872B2 (en) * | 2005-01-11 | 2010-03-16 | Via Telecom Co., Ltd. | Canonical signed digit (CSD) coefficient multiplier with optimization |
-
2019
- 2019-08-30 CN CN201910817892.7A patent/CN110515585B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101156130A (zh) * | 2005-03-31 | 2008-04-02 | Nxp股份有限公司 | 正则符号数字乘法器 |
CN105183424A (zh) * | 2015-08-21 | 2015-12-23 | 电子科技大学 | 一种具有高精度低能耗特性的固定位宽乘法器 |
Non-Patent Citations (2)
Title |
---|
基于CSD编码的16位并行乘法器的设计;王瑞光等;《微计算机信息》;第24卷(第23期);第1-3页 * |
高速FIR滤波器中乘加单元的优化设计;万超等;《仪器仪表用户》;第15卷(第2期);第82-84页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110515585A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111008003B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN110515589B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110362293B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110515587B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110673823B (zh) | 乘法器、数据处理方法及芯片 | |
CN110515590B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110531954B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110554854B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN113031912B (zh) | 乘法器、数据处理方法、装置及芯片 | |
CN110515588B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111258541B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110515586B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110647307B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN113031911A (zh) | 乘法器、数据处理方法、装置及芯片 | |
CN113033799B (zh) | 数据处理器、方法、装置及芯片 | |
CN110515585B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110688087B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN210109863U (zh) | 乘法器、装置、神经网络芯片及电子设备 | |
CN209879493U (zh) | 乘法器 | |
CN210109789U (zh) | 数据处理器 | |
CN111258542B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110378478B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN209879492U (zh) | 乘法器、机器学习运算装置及组合处理装置 | |
CN110378477B (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 |