CN209962284U - 乘法器、装置、芯片及电子设备 - Google Patents
乘法器、装置、芯片及电子设备 Download PDFInfo
- Publication number
- CN209962284U CN209962284U CN201921434165.4U CN201921434165U CN209962284U CN 209962284 U CN209962284 U CN 209962284U CN 201921434165 U CN201921434165 U CN 201921434165U CN 209962284 U CN209962284 U CN 209962284U
- Authority
- CN
- China
- Prior art keywords
- partial product
- processing
- multiplier
- data
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本申请提供一种乘法器、芯片及电子设备,所述乘法器包括:正则有符号数编码电路和修正累加电路,其中,所述正则有符号数编码电路的输出端与所述修正累加电路的输入端连接,该乘法器通过正则有符号数编码电路对接收到的数据进行正则有符号数编码处理处理,得到原始部分积,并对原始部分积的高两位数值进行加法运算处理及判断处理,以实现消除符号位扩展处理,得到消除符号位扩展后的部分积,最后通过修正累加电路对消除符号位扩展后的部分积进行累加修正处理,得到目标运算结果,该乘法器能够通过正则有符号数编码电路对接收到的数据进行正则有符号数编码,得到的有效部分积的数目较少,从而降低了乘法器实现乘法运算的复杂性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种乘法器、装置、芯片及电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片的快速发展对于高性能数字乘法器的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,通过乘法器进行乘法运算在神经网络算法中是一种常见的操作。
目前,乘法器是对乘数中的每三位数值作为一个编码,并根据被乘数得到部分积,并用华莱士树对所有部分积进行压缩处理得到乘法运算中的目标运算结果。但是,传统技术中,编码中非零位数值的数目较多,产生的对应部分积的数目较多,导致乘法器实现乘法运算的复杂性较高。
实用新型内容
基于此,有必要针对上述技术问题,提供一种能够减少乘法运算过程中获取的有效部分积的数目,以降低乘法器乘法运算复杂性的乘法器、芯片及电子设备。
本申请实施例提供一种乘法器,所述乘法器包括:正则有符号数编码电路和修正累加电路,其中,所述正则有符号数编码电路的输出端与所述修正累加电路的输入端连接,其中,所述正则有符号数编码电路包括:正则有符号数编码处理单元和部分积获取单元,所述正则有符号数编码处理单元的输出端与所述部分积获取单元的输入端连接,所述修正累加电路包括全加器;所述正则有符号数编码处理单元用于对接收到的第一数据进行正则有符号数编码处理得到目标编码,所述部分积获取单元用于根据目标编码得到原始部分积,并根据原始部分积进行算术运算处理及判断处理得到消除符号位扩展后的部分积,所述全加器用于对接收到的所述消除符号位扩展后的部分积进行累加修正处理。
在其中一个实施例中,所述正则有符号数编码处理单元包括:数据输入端口和目标编码输出端口;所述数据输入端口用于接收进行正则有符号数编码处理的所述第一数据,所述目标编码输出端口用于输出对接收到的所述第一数据进行正则有符号数编码处理后得到的目标编码。
在其中一个实施例中,所述部分积获取单元具体用于根据目标编码得到原始部分积,并根据原始部分积的最高位数值进行二进制加法运算处理,得到所述消除符号位扩展后的部分积。
在其中一个实施例中,所述部分积获取单元包括:第一全加器。
在其中一个实施例中,所述部分积获取单元包括:目标编码输入端口、数据输入端口以及部分积输出端口;所述目标编码输入端口用于接收所述目标编码,数据输入端口用于接收第二数据,部分积输出端口用于输出根据所述目标编码与接收到的所述第二数据获取所述消除符号位扩展后的部分积。
本实施例提供的一种乘法器,通过正则有符号数编码电路对接收到的数据进行正则有符号数编码处理处理,得到原始部分积,并对原始部分积的最高位数值进行逻辑运算处理,以实现消除符号位扩展处理,得到消除符号位扩展后的部分积,最后通过修正累加电路对消除符号位扩展后的部分积进行累加修正处理,得到目标运算结果,该乘法器能够通过正则有符号数编码电路对接收到的数据进行正则有符号数编码,得到的有效部分积的数目较少,从而降低了乘法器实现乘法运算的复杂性。
本申请实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个所述的乘法器;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,多个所述计算装置间通过预设特定结构进行连接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
本申请实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
本申请实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的乘法器、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本申请实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本申请实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本申请实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本申请实施例提供的一种芯片,包括至少一个如上述任一项所述的乘法器。
本申请实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为一实施例提供的一种乘法器的结构示意图;
图2为另一实施例提供的另一种乘法器的结构示意图;
图3为一实施例提供的一种乘法器的具体结构示意图;
图4为另一实施例提供的另一种乘法器的具体结构示意图;
图5为另一实施例提供的9个消除符号位扩展后的部分积的分布规律示意图;
图6为另一实施例提供的8位数据运算时修正累加电路的另一具体电路结构图;
图7为一实施例提供的一种数据的处理方法流程示意图;
图8为一实施例提供的另一种数据的处理方法流程示意图;
图9为一实施例提供的一种组合处理装置的结构图;
图10为一实施例提供的另一种组合处理装置的结构图;
图11为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的乘法器可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中进行乘法运算处理,其具体结构示意图如图1和2所示。
如图1所示,图1为一个实施例提供的一种乘法器的结构图,该乘法器包括:正则有符号数编码电路11和修正累加电路12,其中,所述正则有符号数编码电路11的输出端与所述修正累加电路12的输入端连接;所述正则有符号数编码电路11用于对接收到的数据进行正则有符号数编码处理得到消除符号位扩展后的部分积,所述修正累加电路12用于对所述消除符号位扩展后的部分积进行累加修正处理。
具体的,上述正则有符号数编码电路11可以包括多个具有不同功能的数据处理单元,并且正则有符号数编码电路11接收到的数据可以作为乘法运算中的乘数,还可以作为乘法运算中的被乘数。可选的,上述不同功能的数据处理单元可以包括具有正则有符号数编码处理功能的数据处理单元,上述正则有符号数编码处理可以表征为通过数值0,-1和1编码的数据处理过程。可选的,上述乘数和被乘数可以是多比特位宽的定点数。可选的,修正累加电路 12可以对正则有符号数编码电路11得到的消除符号位扩展后的部分积进行累加的过程中做修正处理,得到乘法运算中的目标运算结果。
需要说明的是,本实施例提供的乘法器可以处理固定位宽数据的乘法运算,该固定位宽可以为8比特,16比特,32比特,还可以为64比特,对此本实施例不做任何限定。但是,同一次乘法运算时,正则有符号数编码电路11接收到的乘数和被乘数为同位宽的数据。可选的,上述不同功能的数据处理单元的输入端口可以有一个,每个数据处理单元的输入端口的功能可以相同,输出端口也可以有一个,每个数据处理单元的输出端口的功能可以不相同,并且不同功能数据处理单元的电路结构可以不相同。
本实施例提供的一种乘法器,乘法器通过正则有符号数编码电路对接收到的数据进行正则有符号数编码处理得到消除符号位扩展后的部分积,修正累加电路可以对消除符号位扩展后的部分积进行累加修正处理,得到目标运算结果;该乘法器能够采用正则有符号数编码电路对接收到的数据进行正则有符号数编码处理,降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
图2为一个实施例提供的一种乘法器的结构图。如图2所示,该乘法器包括:正则有符号数编码电路21、部分积获取电路22以及修正累加电路23;其中,所述正则有符号数编码电路21的输出端与所述部分积获取电路22输入端连接,所述部分积获取电路22的输出端与所述修正累加电路23的输入端连接。所述正则有符号数编码电路21用于对接收到的数据进行正则有符号数编码处理得到目标编码,所述部分积获取电路22用于根据所述目标编码得到原始部分积,并根据所述原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积,所述修正累加电路23用于对所述消除符号位扩展后的部分积进行累加修正处理。
可选的,所述正则有符号数编码电路21包括:数据输入端口211和目标编码输出端口212;所述数据输入端口211用于接收进行正则有符号数编码处理的第一数据,所述目标编码输出端口212用于输出对接收到的所述第一数据进行正则有符号数编码处理后,得到的所述目标编码。
可选的,所述部分积获取电路22包括原始部分积获取单元221以及逻辑门单元222,所述原始部分积获取单元221用于根据目标编码得到原始部分积,所述逻辑门单元222用于对所述原始部分积的最高位数值进行逻辑运算处理,得到消除符号位扩展后的部分积。可选的,所述部分积获取电路22包括与门电路。
具体的,上述正则有符号数编码电路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中的原始部分积获取单元221可以根据目标编码中的每一位数值得到对应的原始部分积,并通过逻辑门电路222对每一个原始部分积中的最高位数值进行逻辑运算处理,直接消除符号扩展位得到消除符号位扩展后的部分积。可选的,上述原始部分积可以为未进行符号位扩展的部分积。同时,原始部分积中的最高位数值,通过逻辑门电路222确定消除符号位扩展后的部分积中的额外一位数值,该位数值可以用Q表示。可选的,上述逻辑门单元222可以包括与门电路。
需要说明的是,若原始部分积的最高位数值用A表示,则部分积获取电路22可以将最高位数值和信号1通过与门电路进行与逻辑运算,得到原始部分积的最高位,对应在目标编码的消除符号位扩展后的部分积中对应位的数值A',即A'为A和信号1的和位信号;并且得到目标编码的消除符号位扩展后的部分积中的额外一位数值Q可以等于A和信号1的进位信号。其中,原始部分积的最高位数值A,和逻辑运算处理后得到的消除符号位扩展后的部分积中对应的最高位A'以及额外一位数值Q之间的生成关系,可以参见表1。
表1
本实施例提供的一种乘法器,乘法器通过正则有符号数编码电路可以对接收到的第一数据进行正则有符号数编码处理得到目标编码,再通过部分积获取电路根据目标编码中的每一位数值得到原始部分积,并通过逻辑门单元对原始部分积的高一位数据进行逻辑运算处理,以实现消除符号位扩展处理,得到消除符号位扩展后的部分积,最后通过修正累加电路对消除符号位扩展后的部分积进行累加修正处理,从而保证乘法器能够通过正则有符号数编码电路对接收到的数据进行正则有符号数编码处理,降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
图3为一个实施例提供的一种乘法器的具体结构示意图,如图3所示,该乘法器包括所述正则有符号数编码电路11,该正则有符号数编码电路11包括:正则有符号数编码处理单元111和部分积获取单元112;所述正则有符号数编码处理单元111的输出端与所述部分积获取单元112的输入端连接。其中,所述正则有符号数编码处理单元111用于对接收到的第一数据进行正则有符号数编码处理得到目标编码,所述部分积获取单元112用于根据目标编码得到原始部分积,并根据原始部分积进行逻辑运算处理。
可选的,所述部分积获取单元112具体用于根据目标编码得到原始部分积,并根据原始部分积的最高位数值进行二进制加法运算处理,得到所述消除符号位扩展后的部分积。可选的,所述部分积获取单元112包括第一全加器112a和1122b。
具体的,上述正则有符号数编码处理单元111可以接收第一数据,并对第一数据进行正则有符号数编码处理,得到目标编码;上述第一数据可以为乘法运算中的乘数。需要说明的是,上述正则有符号数编码处理的方法可以通过以下方式表征:对于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。
其中,上述目标编码的位宽可以等于乘法器接收到的乘数的位宽N加1,该目标编码的位宽可以等于原始部分积的数目,且部分积获取单元112可以根据目标编码中的每一位数值得到对应的原始部分积,并通过部分积获取单元112中包含的两个第一全加器112a和1122b,对每一个原始部分积中的最高位数值进行进行与逻辑运算。可选的,上述原始部分积的位宽可以等于乘法器接收到的乘数的位宽N。可选的,由上一示例可知,目标编码中包含三个数值,分别为-1,0,1,其中,部分积获取单元112可以根据接收到的数值-1以及被乘数X,得到原始部分积为-X,根据接收到的数值1以及被乘数X,得到原始部分积为X,根据接收到的数值0以及被乘数X,得到原始部分积为0。
需要说明的是,若原始部分积的最高位数值用A表示,对最高位的数值A进行逻辑运算后,可以得到目标编码的消除符号位扩展后的部分积中的额外一位数值,该位数值可以用Q 表示。可选的,消除符号位扩展后的部分积中的额外一位数值Q,可以根据原始部分积中最高位数值A和信号1进行与逻辑运算的结果进行确定,其中,消除符号位扩展后的部分积中的Q位数值可以等于原始部分积中最高位数值A和信号1进行与逻辑运算的进位信号,消除符号位扩展后的部分积中的次高位数值可以等于最高位数值A和信号1进行与逻辑运算的和位信号。
本实施例提供的一种乘法器,乘法器通过正则有符号数编码处理单元可以对接收到的第一数据进行正则有符号数编码处理得到目标编码,再通过部分积获取单元根据目标编码中的每一位数值得到原始部分积,并根据原始部分积的最高位数值进行与逻辑运算,以实现消除符号位扩展处理,得到消除符号位扩展后的部分积,最后通过修正累加电路对应的消除符号位扩展后的部分积,并对消除符号位扩展后的部分积进行累加修正处理,从而保证乘法器能够采用正则有符号数编码电路对接收到的数据进行正则有符号数编码处理,降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
在其中一个实施例中,乘法器包括所述正则有符号数编码处理单元111,该正则有符号数编码处理单元111包括:数据输入端口1111和目标编码输出端口1112;所述数据输入端口 1111用于接收进行正则有符号数编码处理的所述第一数据,所述目标编码输出端口1112用于输出对接收到的所述第一数据进行正则有符号数编码处理后得到的目标编码。
具体的,若数据输入端口1111接收到第一数据,则正则有符号数编码处理单元111可以对接收到的第一数据进行正则有符号数编码处理,得到目标编码,并将目标编码通过目标编码输出端口1112输出。可选的,正则有符号数编码处理单元111可以通过数据输入端口1111 接收第一数据,且该第一数据可以为乘法运算中的乘数。需要说明的是,图3所示的正则有符号数编码电路11与正则有符号数编码处理单元111的内部电路结构和外部输出端口及功能相同。可选的,正则有符号数编码处理单元111对乘数进行正则有符号数编码处理后得到的目标编码中包含的数值可以为-1,0和1。
本实施例提供的一种乘法器,正则有符号数编码处理单元可以对接收到的第一数据进行正则有符号数编码处理得到目标编码,然后部分积获取单元可以根据目标编码中的每一位数值得到对应的消除符号位扩展后的部分积,并通过修正累加电路可以对消除符号位扩展后的部分积进行累加修正处理,得到乘法运算中的目标运算结果,从而保证乘法器能够通过正则有符号数编码处理单元对接收到的数据进行正则有符号数编码处理,降低乘法运算过程中获取的有效部分积的数目,从而降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
在其中一个实施例中,乘法器包括所述部分积获取单元112,该部分积获取单元112包括:目标编码输入端口1121、数据输入端口1122以及部分积输出端口1123;所述目标编码输入端口1121用于接收所述目标编码,数据输入端口1122用于接收第二数据,部分积输出端口1123用于输出根据所述目标编码与接收到的所述第二数据获取所述消除符号位扩展后的部分积。
具体的,部分积获取单元112通过目标编码输入端口1121可以接收正则有符号数编码处理单元111输出目标编码,部分积获取单元112根据目标编码输入端口1121接收到的目标编码中的每一位数值,以及数据输入端口1122接收第二数据,得到原始部分积,该第二数据可以为乘法运算中的被乘数,并对原始部分积进行与逻辑运算处理,可以得到对应的消除符号位扩展后的部分积。可选的,消除符号位扩展后的部分积的位宽可以等于原始部分积的位宽。
本实施例提供的一种乘法器,乘法器通过部分积获取单元可以根据目标编码中的每一位数值得到对应的消除符号位扩展后的部分积,并通过修正累加电路可以对消除符号位扩展后的部分积进行累加修正处理,得到乘法运算中的目标运算结果,从而保证乘法器获取的有效部分积的数目减少,降低乘法器实现乘法运算的复杂性;同时,该乘法器能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
在其中一个实施例中,继续如图3所示乘法器的具体结构示意图,其中,乘法器包括所述修正累加电路12,该修正累加电路12包括:全加器121~12n,多个所述全加器121~12n 用于对接收到的所述消除符号位扩展后的部分积进行累加修正处理。
具体的,全加器121~12n可以用门电路实现二进制相加并求和的组合电路,还可以理解为对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路。可选的,修正累加电路12中包含的全加器的数目n可以等于消除符号位扩展后的部分积的位宽N加1的结果,与(N+1)的乘积,再与N之和,其中,N可以表示正则有符号数编码处理单元111得到的目标编码中包含的数值的数目减1,也就是目标编码的数目等于N+1。可选的,修正累加电路12中n个全加器的分布规律可以为逐层分布,部分积获取单元112得到的每一个消除符号位扩展后的部分积可以对应一层全加器。其中,全加器的层数可以等于消除符号位扩展后的部分积的数目,最后一层全加器的数目可以等于消除符号位扩展后的部分积的位宽N 加1与N之和,其它每一层全加器的数目可以等于消除符号位扩展后的部分积的位宽N。另外,对所有消除符号位扩展后的部分积进行累加处理时,每一个消除符号位扩展后的部分积的最低位数值所处位置,比下一个消除符号位扩展后的部分积最低位数值所处位置向右错开一位数值。可选的,全加器121~12n通过累加修正处理结束后,可以得到运算结果,该运算结果可以为最后一层全加器输出的和位信号。另外,上述全加器121~12n的内部电路结构与第一全加器112a和1122b的内部电路结构可以相同,功能也可以相同。
需要说明的是,修正累加电路12中的每一个全加器可以对两位及两位以上的输入信号进行加法运算,得到两位输出信号,该两位输出信号可以包括进位信号Carry和结果位信号Sum。可选的,本实施例中,修正累加电路12中的每一个全加器可以接收三个输入信号,该三个输入信号可以为消除符号位扩展的部分积中的任意一位数值,低位加法器得到的进位输出信号 Carry,结果位信号Sum,和二进制信号中的任意三种信号。可选的,通过修正累加电路12 对消除符号位扩展后的部分积进行累加修正处理过程中,可以通过修正累加电路12中的全加器,对部分积获取单元112得到的两个消除符号位扩展后的部分积进行修正处理,该修正处理相当于加1处理。可选的,乘法器通过修正累加电路12中的第一层全加器,可以对部分积获取单元112得到的第一个消除符号位扩展后的部分积,和第二个消除符号位扩展后的部分积的对应位进行累加,第二层全加器可以对部分积获取单元112得到的第三个消除符号位扩展后的部分积,与上一层全加器的结果进行累加处理,依次类推,最后一层全加器可以对上一层全加器的结果,与最后一层之前的每一层全加器输出的信号中未处理的进位信号或和位信号,以及部分积获取单元112得到的最后一个消除符号位扩展后的部分积进行累加,得到乘法运算中的目标运算结果,在处理过程中,除第一层全加器外,其它层每一个全加器接收到的输入信号不仅可以包括每一个消除符号位扩展后的部分积对应位数值,还可以包括上一层对应位全加器输出的和位信号,与上一层对应位的低一位全加器输出的进位信号。
可选的,修正累加电路12可以对消除符号位扩展后的部分积进行累加的过程中做两次修正处理,其中,修正累加电路12可以通过第一层和最后一层全加器中的两个全加器,对消除符号位扩展后的部分积中的数值进行修正处理,其中,如果每一个全加器对应一个编号,则第一层全加器中进行修正处理的全加器可以为次高位编号的全加器,以及最后一层全加器中进行修正处理的全加器可以为最高位编号的全加器。另外,最后一层全加器的最低位编号的全加器接收到的进位输入信号可以等于0。
本实施例提供的一种乘法器,乘法器中的修正累加电路可以对部分积获取单元得到的较少的消除符号位扩展后的部分积进行累加修正处理,得到乘法运算中的目标运算结果,从而降低乘法器实现乘法运算的复杂性,有效降低了乘法器的功耗。
图4为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述修正累加电路23,该修正累加电路23包括:修正华莱士树组子电路231和累加子电路232;其中,所述修正华莱士树组子电路231的输出端与所述累加子电路232的输入端连接;所述修正华莱士树组子电路231用于对所述消除符号位扩展后的部分积进行累加修正处理,所述累加子电路232用于对所述累加修正运算结果进行累加处理。
具体的,上述修正华莱士树组子电路231可以对正则有符号数编码电路211得到的消除符号位扩展后的部分积中的数值进行累加修正处理,并通过累加子电路232对修正华莱士树组子电路13得到累加修正运算结果进行累加处理,得到乘法运算中的目标运算结果。
本实施例提供的一种乘法器,乘法器中的修正累加电路可以对部分积获取单元得到的较少的消除符号位扩展后的部分积进行累加修正处理,得到乘法运算中的目标运算结果,从而降低乘法器实现乘法运算的复杂性,有效降低了乘法器的功耗。
在其中一个实施例中,继续如图4所示乘法器的具体结构示意图,其中,乘法器包括所述修正华莱士树组子电路231,该修正华莱士树组子电路231包括:华莱士树单元2311~231n,多个所述华莱士树单元2311~231n用于对所述消除符号位扩展后的部分积的每一列数值进行累加修正处理。
具体的,华莱士树单元2311~231n的电路结构可以由全加器和半加器组合实现,另外,还可以理解为华莱士树单元2311~231n是一种能够对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路。可选的,修正华莱士树组子电路231包含的华莱士树单元的数目n可以等于消除符号位扩展后的部分积的位宽N的2倍,其中,N可以表示正则有符号数编码电路21得到的目标编码中包含的数值的数目减1;同时,n个华莱士树单元可以对目标编码的部分积进行并行处理,但连接方式可以是串行连接,其中,目标编码的部分积可以为部分积获取电路22得到的所有消除符号位扩展后的部分积。可选的,修正华莱士树组子电路23中每一个华莱士树单元可以对消除符号位扩展后的所有部分积的每一列的所有数值进行加法处理,每一个华莱士树单元可以输出两个信号,即进位信号Carryi与一个和位信号 Sumi,其中,i可以表示每一个华莱士树单元对应的编号,第一个华莱士树单元的编号为0。可选的,每一个华莱士树单元接收到输入信号的数目可以等于目标编码中包含的所有数值的数目或者消除符号位扩展后的部分积的总数目,还可以等于目标编码中包含的所有数值的数目或者消除符号位扩展后的部分积的总数目加1。
需要说明的是,乘法器对所有消除符号位扩展后的部分积的每一列数值进行相加的过程中,通过修正华莱士树组子电路231中的两个华莱士树单元,对消除符号位扩展后的部分积中的两列数据进行修正处理,也就是说,消除符号位扩展后的部分积中的这两列数据所分别对应的两个华莱士树单元的输入信号,比消除符号位扩展后的部分积中其它列数值所对应的每一个华莱士树单元的输入信号多了一个输入信号,该输入信号为1。
另外,修正华莱士树组子电路231中每一个华莱士树单元接收到的信号可以包括进位输入信号Cini,部分积输入信号,进位输出信号Couti。可选的,每一个华莱士树单元接收到的部分积输入信号可以为所有消除符号位扩展后的部分积中每一列的数值,每一个华莱士树单元输出的进位信号Couti的位数可以等于NCout=floor((NI+NCin)/2)-1。其中,NI可以表示该华莱士树单元的部分积数值输入信号的数目,NCin可以表示该华莱士树单元的进位输入信号的数目,NCout可以表示该华莱士树单元最少的进位输出信号的数目,floor(·)可以表示向下取整函数。可选的,修正华莱士树组子电路231中每一个华莱士树单元接收到的进位输入信号可以为上一个华莱士树单元输出的进位输出信号,而第一个华莱士树单元接收到的进位输入信号为0,同时,第一个华莱士树单元接收到的进位信号输入端口的数目,可以与其它华莱士树单元的进位信号输入端口的数目相同。
在本实施例中,若修正华莱士树组子电路231中串行连接的n个华莱士树单元的编号为 1,2,…,i,…,n,则修正华莱士树组子电路231可以通过第i个华莱士树单元和第n个华莱士树单元,对消除符号位扩展后的部分积中对应的两列数据进行修正处理;另外,若正则有符号数编码电路21得到的第一个消除符号位扩展后的部分积,从最低位到最高位对应的位数编号为1,2,…,m-2,m-1,m,其中,m对应Q位的编号,1对应第一个消除符号位扩展后的部分积中最低位数的编号,则i可以等于N,可以理解为,修正华莱士树组子电路231 可以通过第N个华莱士树单元和最后一个华莱士树单元,对消除符号位扩展后的部分积进行修正处理,其中,N可以表示乘法器接收到的乘数的位宽。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,通过部分积获取电路22得到的消除符号位扩展后的部分积为“pi8pi7pi6pi5pi4pi3pi2pi1pi0”(i=1,…,n=9),其中,i可以表示第i个消除符号位扩展后的部分积,则累加修正处理时,9个消除符号位扩展后的部分积的分布规律可以参见图5所示,每一个原点代表消除符号位扩展后的部分积中的每一位数值,从最右列至最左列算起(图中示出了17列部分积数值,在实际运算时,倒数第一列的数值溢出,即最后一个消除符号位扩展后的部分积最高位数值溢出,不参与后续累加运算),总共需要16个华莱士树单元对9个消除符号位扩展后的部分积进行累加修正处理,修正华莱士树组子电路231可以通过第8个华莱士树单元和最后一个华莱士树单元进行修正处理,16个华莱士树单元的连接电路图以及实现修正处理的两个华莱士树单元图均如图6所示,其中,图6 中Wallace_i表示华莱士树单元,i为华莱士树单元从1开始的编号,并且两两华莱士树单元之间连接的实线表示高位编号对应的华莱士树单元有进位输出信号,虚线表示高位编号对应的华莱士树单元没有进位输出信号。
本实施例提供的一种乘法器,乘法器中的修正华莱士树组子电路可以对部分积获取单元得到的较少的消除符号位扩展后的部分积进行累加修正处理,得到乘法运算中的目标运算结果,从而降低乘法器实现乘法运算的复杂性,有效降低了乘法器的功耗。
在其中一个实施例中,继续如图4所示乘法器的具体结构示意图,其中,乘法器包括所述累加子电路232,该累加子电路232包括:加法器2321,所述加法器2321用于对所述累加修正运算结果进行加法运算。
具体的,加法器2321可以为不同位宽的加法器,该加法器可以为超前进位加法器。可选的,加法器2321可以接收修正华莱士树组子电路231输出的两路信号,对两路输出信号进行加法运算,得到乘法运算中的目标运算结果。
本实施例提供的一种乘法器,乘法器通过累加子电路可以对修正华莱士树组子电路输出的两路信号进行累加处理,得到乘法运算的目标运算结果,该过程能够降低乘法器实现乘法运算的复杂性,有效降低了乘法器的功耗。
在其中一个实施例中,乘法器包括所述加法器2321,该加法器2321包括:进位信号输入端口2321a、和位信号输入端口2321b以及结果输出端口2321c;所述进位信号输入端口2321a用于接收进位信号,所述和位信号输入端口2321b用于接收和位信号,所述结果输出端口2321c用于输出所述进位信号与所述和位信号进行累加处理的所述目标运算结果。
具体的,加法器2321可以通过进位信号输入端口2321a接收修正华莱士树组子电路231 输出的进位信号Carry,通过和位信号输入端口2321b接收修正华莱士数组电路231输出的和位信号Sum,并将进位信号Carry与和位信号Sum进行累加的结果,通过结果输出端口2321c 输出。
需要说明的是,乘法运算时,乘法器可以采用不同位宽的加法器2321对修正华莱士树组子电路231输出的进位输出信号Carry与和位输出信号Sum进行加法运算,其中,上述加法器2321可处理数据的位宽可以等于乘法器当前处理的数据位宽N的2倍。可选的,修正华莱士树组子电路231中的每一个华莱士树单元可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=0,…,2N-1,i为每一个华莱士树单元的对应编号,编号从0开始)。可选的,加法器2321接收到的Carry={[Carry0:Carry2N-2],0},也就是说,加法器2321接收到的进位输出信号Carry的位宽为2N,进位输出信号Carry中前2N-1位数值对应修正华莱士树组子电路231中前2N-1个华莱士树单元的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器2321接收到的和位输出信号Sum的位宽为2N,和位输出信号Sum中的数值可以等于修正华莱士树组子电路231中每一个华莱士树单元的和位输出信号。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,则加法器2321可以为16位超前进位加法器,如图6所示,修正华莱士树组子电路231可以输出16个华莱士树单元的和位输出信号Sum和进位输出信号Carry,但是,16位超前进位加法器接收到的和位输出信号可以为修正华莱士树组子电路231输出的完整和位信号Sum,接收到的进位输出信号可以为修正华莱士树组子电路231中,除去最后一个华莱士树单元输出的进位输出信号的所有进位输出信号与0结合后的进位信号Carry。
本实施例提供的一种乘法器,通过累加子电路可以对修正华莱士树组子电路输出的两路信号进行累加处理,得到乘法运算的目标运算结果,该过程能够降低乘法器实现乘法运算的复杂性,有效降低了乘法器的功耗。
图7为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图1所示的乘法器进行处理,本实施例涉及的是数据乘法运算的过程。如图7所示,该方法包括:
S101、接收待处理数据。
具体的,乘法器可以通过正则有符号数编码电路接收待处理数据,该待处理数据可以为乘法运算中的乘数和被乘数。其中,上述乘数的位宽可以等于被乘数的位宽。
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、根据所述待处理数据及所述目标编码得到消除符号位扩展后的部分积。
需要说明的是,正则有符号数编码电路可以根据乘法运算中的被乘数和正则有符号数编码得到的目标编码,得到消除符号位扩展后的部分积,并且消除符号位扩展后的部分积的数目可以等于目标编码的位宽。
S104、对所述消除符号位扩展后的部分积进行累加修正处理,得到目标运算结果。
具体的,乘法器可以通过修正累加电路中的逐层全加器对消除符号位扩展后的部分积进行累加修正处理,直到最后一层全加器结束运算为止,得到乘法运算中的目标运算结果。可选的,上述累加修正处理可以表征为对消除符号位扩展后的部分积进行累加的过程中进行修正处理,该修正处理可以是通过修正累加电路中第一层全加器,和最后一层全加器中的两个全加器进行修正处理。可选的,上述目标运算结果可以为消除符号位扩展后并进行修正累加处理后的运算结果。需要说明的是,在累加修正处理过程中,修正累加电路可以通过第一层和最后一层全加器中的两个全加器对消除符号位扩展后的部分积中的数值进行修正处理,其中,如果每一个全加器对应一个编号,则第一层全加器中进行修正处理的全加器可以为次高位编号的全加器,最后一层全加器中进行修正处理的全加器可以为最高位编号的全加器。
另外,乘法器还可以通过修正累加电路中的修正华莱士树组子电路对消除符号位扩展后的部分积的每一列数值进行累加处理,并在累加处理的过程中通过修正华莱士树组子电路中的两个华莱士树单元可以进行修正处理,通过修正华莱士树组子电路输出修正处理后的进位输出信号与和位输出信号,最后通过累加子电路将修正华莱士树组子电路的进位输出信号,与用0替代最后一个和位信号后的信号进行累加处理,并将目标运算结果输出。
需要说明的是,若乘法器当前处理N位数据运算,且修正华莱士树组子电路中串行连接 2N个华莱士树单元,每一个华莱士树单元对应的编号从0开始,则修正华莱士树组子电路可以通过第N个华莱士树单元和第2N个华莱士树单元进行修正处理。
本实施例提供的一种数据处理方法,接收待处理数据,对所述待处理数据进行正则有符号数编码处理,得到目标编码,根据所述待处理数据及所述目标编码得到消除符号位扩展后的部分积,对所述消除符号位扩展后的部分积进行累加修正处理,得到目标运算结果,该方法能够采用正则有符号数编码电路对接收到的数据进行正则有符号数编码处理,降低乘法运算过程中获取的有效部分积的数目,从而降低乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
另一实施例提供的数据处理方法,上述S103中根据所述待处理数据及所述目标编码得到消除符号位扩展后的部分积,包括:
S1031、根据所述待处理数据与所述目标编码,得到原始部分积。
需要说明的是,上述原始部分积的数目可以等于目标编码的位宽。
示例性的,若部分积获取单元接收到一个8位的被乘数“x7x6x5x4x3x2x1x0”(即X),则部分积获取单元可以根据被乘数“x7x6x5x4x3x2x1x0”(即X)与目标编码中包含的三种数值-1,0, 1直接得到对应原始部分积,当目标编码中一位数值为-1时,则原始部分积可以为-X,当目标编码中一位数值为0时,则原始部分积可以为0,当目标编码中一位数值为1时,则原始部分积可以为X。
S1032、对所述原始部分积进行加法运算处理,得到消除符号位扩展后的部分积。
可选的,上述S1032中对所述原始部分积进行加法运算处理,得到消除符号位扩展的部分积,包括:对所述原始部分积的最高位数值进行与逻辑运算处理,得到消除符号位扩展后的部分积。
具体的,乘法器通过部分积获取单元可以对每一个原始部分积的最高位数值通过第一全加器进行与逻辑运算处理,可以得到消除符号位扩展后的部分积中的额外一位数值Q和次高位数值,进而得到消除符号位扩展后的部分积。可选的,上述消除符号位扩展后的部分积中的额外一位数值Q可以为原始部分积中最高位数值和信号1进行与逻辑运算的进位信号,消除符号位扩展后的部分积中的次高位数值可以为原始部分积中最高位数值和信号1进行与逻辑运算的和位信号。
本实施例提供的一种数据处理方法,根据所述待处理数据与所述目标编码,得到原始部分积,根据所述原始部分积的最高位数值进行与逻辑运算处理,得到消除符号位扩展后的部分积,进而对消除符号位扩展后的部分积进行累加修正处理,得到乘法运算中的目标运算结果,该方法能够降低乘法运算过程中获取的有效部分积的数目,从而降低乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
图8为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图2所示的乘法器进行处理,本实施例涉及的是数据乘法运算的过程。如图8所示,该方法包括:
S201、接收待处理数据。
具体的,乘法器可以通过正则有符号数编码电路接收待处理数据,该待处理数据可以为乘法运算中的乘数和被乘数。其中,乘数的位宽可以等于被乘数的位宽。
S202、对所述待处理数据进行正则有符号数编码处理,得到原始部分积。
具体的,乘法器通过正则有符号数编码电路对乘法运算中的乘数进行正则有符号数编码处理,并且部分积获取电路根据正则有符号数编码处理的结果可以得到原始部分积。
S203、根据所述原始部分积进行逻辑运算处理,消除符号扩展位得到消除符号位扩展后的部分积。
具体的,乘法器可以通过部分积获取电路中的逻辑门单元对原始部分积进行逻辑运算处理,直接消除了符号扩展位的数值得到消除符号位扩展后的部分积。
S204、对所述消除符号位扩展后的部分积进行累加修正处理,得到目标运算结果。
具体的,乘法器可以通过修正累加电路中的逐层全加器对消除符号位扩展后的部分积进行累加修正处理,直到最后一层全加器结束运算为止,得到运算结果。可选的,上述累加修正处理可以表征为对消除符号位扩展后的部分积进行累加的过程中进行修正处理,该修正处理可以是通过修正累加电路中第一层全加器,和最后一层全加器中的两个全加器进行修正处理。可选的,上述运算结果可以为消除符号位扩展后并进行修正累加处理后的运算结果。需要说明的是,在累加修正处理过程中,修正累加电路可以通过第一层和最后一层全加器中的两个全加器,对消除符号位扩展后的部分积中的数值进行修正处理,其中,如果每一个全加器对应一个编号,则第一层全加器中进行修正处理的全加器,可以为次高位编号的全加器,最后一层全加器中进行修正处理的全加器可以为最高位编号的全加器。
另外,乘法器还可以通过修正累加电路中的修正华莱士树组子电路对消除符号位扩展后的部分积的每一列数值进行累加处理,并在累加处理的过程中通过修正华莱士树组子电路中两个华莱士树单元可以进行修正处理,通过修正华莱士树组子电路输出修正处理后的进位输出信号与和位输出信号,最后通过累加子电路将修正华莱士树组子电路的所有进位输出信号Carryi,与用0替代最后一个和位信号Sum2N后的所有和位信号进行累加处理,并将运算结果输出。需要说明的是,若乘法器当前处理N位数据运算,且修正华莱士树组子电路中串行连接2N个华莱士树单元,每一个华莱士树单元对应的编号从0开始,则修正华莱士树组子电路可以通过第N个华莱士树单元和第2N个华莱士树单元进行修正处理。
本实施例提供的一种数据处理方法,接收待处理数据,对所述待处理数据进行正则有符号数编码处理,得到原始部分积,根据所述原始部分积进行逻辑运算处理,得到消除符号位扩展后的部分积,对所述消除符号位扩展后的部分积进行累加修正处理,得到目标运算结果,该方法能够对接收到的待处理数据进行正则有符号数编码,降低乘法运算中有效部分积的数目,从而降低乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
另一实施例提供的数据处理方法,上述S202中对所述待处理数据进行正则有符号数编码处理,得到原始部分积,包括:
S2021、对所述待处理数据进行正则有符号数编码处理,得到目标编码。
具体的,乘法器可以通过正则有符号数编码电路对乘法运算中的乘数进行正则有符号数编码处理,得到目标编码。可选的,正则有符号数编码处理后,得到的目标编码包含的数值包括三种,分别为-1,0和1。
可选的,上述S2021中对所述待处理数据进行正则有符号数编码处理,得到目标编码的步骤,可以包括:将所述待处理数据中连续的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)。
S2022、根据所述待处理数据与所述目标编码,得到所述原始部分积。
需要说明的是,原始部分积数目可以等于目标编码的位宽。
示例性的,若原始部分积获取单元接收到一个8位的被乘数“x7x6x5x4x3x2x1x0”(即X),则原始部分积获取单元可以根据被乘数“x7x6x5x4x3x2x1x0”(即X)与目标编码中包含的三种数值-1,0,1直接得到对应原始部分积,当目标编码中一位数值为-1时,则原始部分积可以为 -X,当目标编码中一位数值为0时,则原始部分积可以为0,当目标编码中一位数值为1时,则原始部分积可以为X。
本实施例提供的一种数据处理方法,对所述待处理数据进行正则有符号数编码处理,得到目标编码,根据所述待处理数据与所述目标编码,得到所述原始部分积,然后对原始部分积进行消除符号位扩展处理,对消除符号位扩展后的部分积进行累加修正处理,以得到乘法运算中的目标运算结果,该方法能够采用正则有符号数编码电路对接收到的数据进行正则有符号数编码处理,降低乘法运算过程中获取的有效部分积的数目,从而降低乘法运算的复杂性;同时,该方法能够提高乘法运算的运算效率,有效降低了乘法器的功耗。
另一实施例提供的数据处理方法,上述S203中根据所述原始部分积进行逻辑运算处理,消除符号扩展位得到消除符号位扩展后的部分积,包括:对所述原始部分积的最高位数值进行与逻辑运算处理,消除符号扩展位得到所述消除符号位扩展后的部分积。
具体的,乘法器可以通过部分积获取电路中的逻辑门单元,对原始部分积中的最高位数值进行与逻辑运算,得到消除符号位扩展后的部分积中的次高位数值,和最高位数值,另外,乘法器还可以通过部分积获取电路中的逻辑门单元,对原始部分积中的最高位数值与信号1 进行与逻辑运算,得到消除符号位扩展后的部分积中的额外一位数值Q,以及消除符号位扩展后的部分积中的次高位数值(即Q位的低一位数值)。
本实施例提供的一种数据处理方法,对待处理数据进行处理后,得到原始部分积,并对所述原始部分积的最高位数值进行与逻辑运算,消除符号扩展位得到消除符号位扩展后的部分积,从而可以有效降低乘法器的功耗。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的乘法器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi 接口,服务器。当包含一个以上乘法器时,乘法器间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图9为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图10所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图11所示,图11 提供了一种板卡,上述板卡除了包括上述芯片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 (10)
1.一种乘法器,其特征在于,所述乘法器包括:正则有符号数编码电路和修正累加电路,其中,所述正则有符号数编码电路的输出端与所述修正累加电路的输入端连接,其中,所述正则有符号数编码电路包括:正则有符号数编码处理单元和部分积获取单元,所述正则有符号数编码处理单元的输出端与所述部分积获取单元的输入端连接,所述修正累加电路包括全加器;
所述正则有符号数编码处理单元用于对接收到的第一数据进行正则有符号数编码处理得到目标编码,所述部分积获取单元用于根据目标编码得到原始部分积,并根据原始部分积进行算术运算处理及判断处理得到消除符号位扩展后的部分积,所述全加器用于对接收到的所述消除符号位扩展后的部分积进行累加修正处理。
2.根据权利要求1所述的乘法器,其特征在于,所述正则有符号数编码处理单元包括:数据输入端口和目标编码输出端口;所述数据输入端口用于接收进行正则有符号数编码处理的所述第一数据,所述目标编码输出端口用于输出对接收到的所述第一数据进行正则有符号数编码处理后得到的目标编码。
3.根据权利要求1或2所述的乘法器,其特征在于,所述部分积获取单元具体用于根据目标编码得到原始部分积,并根据原始部分积的最高位数值进行二进制加法运算处理,得到所述消除符号位扩展后的部分积。
4.根据权利要求1所述的乘法器,其特征在于,所述部分积获取单元包括:第一全加器。
5.根据权利要求1所述的乘法器,其特征在于,所述部分积获取单元包括:目标编码输入端口、数据输入端口以及部分积输出端口;所述目标编码输入端口用于接收所述目标编码,数据输入端口用于接收第二数据,部分积输出端口用于输出根据所述目标编码与接收到的所述第二数据获取所述消除符号位扩展后的部分积。
6.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-5任一项所述的乘法器,用于从其它处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,多个所述乘法器间可以通过特定的结构进行连接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
7.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求6所述的机器学习运算装置,通用互联接口和其它处理装置;
所述机器学习运算装置与所述其它处理装置进行交互,共同完成用户指定的计算操作。
8.根据权利要求7所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
9.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求6所述的机器学习运算装置或如权利要求7所述的组合处理装置或如权利要求8所述的组合处理装置。
10.一种电子设备,其特征在于,所述电子设备包括如所述权利要求9所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201921434165.4U CN209962284U (zh) | 2019-08-30 | 2019-08-30 | 乘法器、装置、芯片及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201921434165.4U CN209962284U (zh) | 2019-08-30 | 2019-08-30 | 乘法器、装置、芯片及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN209962284U true CN209962284U (zh) | 2020-01-17 |
Family
ID=69249306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201921434165.4U Active CN209962284U (zh) | 2019-08-30 | 2019-08-30 | 乘法器、装置、芯片及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN209962284U (zh) |
-
2019
- 2019-08-30 CN CN201921434165.4U patent/CN209962284U/zh active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413254B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN110673823B (zh) | 乘法器、数据处理方法及芯片 | |
CN110515587B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111258541B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111258633B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN113031912A (zh) | 乘法器、数据处理方法、装置及芯片 | |
CN110515586B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111258542B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111258544A (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN209879493U (zh) | 乘法器 | |
CN210109863U (zh) | 乘法器、装置、神经网络芯片及电子设备 | |
CN110515588B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110647307B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN209895329U (zh) | 乘法器 | |
CN209962284U (zh) | 乘法器、装置、芯片及电子设备 | |
CN111258545B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN113031915A (zh) | 乘法器、数据处理方法、装置及芯片 | |
CN210006082U (zh) | 乘法器、装置、神经网络芯片及电子设备 | |
CN209879492U (zh) | 乘法器、机器学习运算装置及组合处理装置 | |
CN110378478B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110688087A (zh) | 数据处理器、方法、芯片及电子设备 | |
CN111258540B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111258546B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN210006032U (zh) | 乘法器、机器学习运算装置及组合处理装置 | |
CN110378477B (zh) | 乘法器、数据处理方法、芯片及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant |