CN108958704A - 一种数据处理装置及方法 - Google Patents
一种数据处理装置及方法 Download PDFInfo
- Publication number
- CN108958704A CN108958704A CN201710352844.6A CN201710352844A CN108958704A CN 108958704 A CN108958704 A CN 108958704A CN 201710352844 A CN201710352844 A CN 201710352844A CN 108958704 A CN108958704 A CN 108958704A
- Authority
- CN
- China
- Prior art keywords
- domain
- unit
- log
- data
- logarithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
Abstract
本发明实施例公开了一种数据处理装置及方法,涉及数据处理领域,解决了在数据处理装置能够同时支持线性域数据处理方式与对数域数据处理方式的情况下,如何在进行线性域数据处理时复用对数域数据处理单元的硬件资源,提高硬件资源利用率的问题。具体方案为:当需要对输入数据执行乘累加计算时,先根据第一使能信号使能线性域转对数域单元,将输入数据转换为对数域数据,再通过对数域乘累加单元阵列对对数域数据执行乘累加计算;当需要对输入数据执行乘法计算时,先根据第二使能信号使能线性域数据扩展编码单元,对输入数据进行预处理,再通过对数域乘累加单元阵列对预处理数据执行乘法计算。本发明实施例用于数据处理的过程。
Description
技术领域
本发明实施例涉及数据处理领域,尤其涉及一种数据处理装置及方法。
背景技术
在乘法、乘累加(Multiply-and-Add,MAC)计算密集型的数据处理装置中,计算强度较大,往往需要大量的乘法器来实现算法的高效运行。由于线性域数据的乘法等效为对数域数据的加法,如当需要计算数据A与数据B的乘积A*B时,可以先将数据A和数据B分别转换到对数域,以2为底的对数为例,将数据A转换为log2 A,将数据B分别与log2 B,然后在对数域上计算加法,因为有log2 A+log2 B=log2 (A*B),在计算完加法后,即可将结果转换回线性域得到A*B的结果。因此,对数域数据处理方式在此类乘法、乘累加计算操作密集的应用中优势特别明显,能够使乘法器替换为加法器,大幅降低数据处理装置中乘法、乘累加计算的硬件资源开销。然而,由于对数域数据处理单元的硬件实现的精度限制,完全在对数域对线性域数据进行处理,可能无法满足应用的需求,需要进行部分线性域数据处理、部分对数域数据处理的操作。因此,数据处理装置因精度或算法需求需要同时进行线性域数据与对数域数据的乘法运算。
图1为现有技术提供的一种数据处理装置结构示意图,如图1所示,包括输入数据选择器11、输出数据选择器12、对数域数据处理单元13和线性域数据处理单元14,其中,输入数据选择器的一端接收输入数据,输入数据选择器的另一端分别与对数域数据处理单元和线性域数据处理单元连接,输出数据选择器的一端分别与对数域数据处理单元和线性域数据处理单元连接,输出数据选择器的另一端输出输出数据。数据处理装置通过选择信号控制输入数据的处理方式,并控制输出数据的输出。具体的,当选择信号指示对数域数据处理单元处理输入数据,并指示输出数据选择器选通对数域数据处理单元的输出时,输入数据选择器将输入数据输入给对数域数据处理单元,由对数域数据处理单元以对数处理方式完成输入数据的乘累加操作,对数域数据处理单元将处理结果输入给输出数据选择器,输出数据选择器将处理结果作为数据处理装置的输出数据输出;当选择信号指示线性域数据处理单元处理输入数据,并指示输出数据选择器选通线性域数据处理单元的输出时,输入数据选择器将输入数据输入给线性域数据处理单元,由线性域数据处理单元以线性处理方式完成输入数据的乘法操作,线性域数据处理单元将处理结果输入给输出数据选择器,输出数据选择器将处理结果作为数据处理装置的输出数据输出。
从而,现有技术通过例化两套完整的数据处理单元来使数据处理装置同时支持线性域数据处理方式与对数域数据处理方式,来实现乘累加或乘法的功能,并通过配置选择信号来动态调整数据处理装置的处理方式。虽然现有技术提供的数据处理装置能够满足不同应用需求对不同数据处理方式的支持,但是对数域数据处理单元的硬件资源开销优势已经不复存在,因为仍然需要一套独立的线性域数据处理单元,导致数据处理装置的硬件资源开销不减反增,且硬件资源的利用率不高,不同功能状态下只有一部分硬件资源是可用的。
因此,在数据处理装置能够同时支持线性域数据处理方式与对数域数据处理方式的情况下,如何在进行线性域数据处理时复用对数域数据处理单元的硬件资源,提高硬件资源利用率是一个亟需解决的问题。
发明内容
本发明实施例提供一种数据处理装置及方法,解决了在数据处理装置能够同时支持线性域数据处理方式与对数域数据处理方式的情况下,如何在进行线性域数据处理时复用对数域数据处理单元的硬件资源,提高硬件资源利用率的问题。
为达到上述目的,本发明实施例采用如下技术方案:
本发明实施例的第一方面,提供一种数据处理装置,包括:控制单元、线性域转对数域单元、线性域数据扩展编码单元、选择器和对数域乘累加单元阵列,其中,控制单元的输出端分别与线性域转对数域单元的输入端和线性域数据扩展编码单元的输入端连接,线性域转对数域单元的输出端和线性域数据扩展编码单元的输出端均与选择器的输入端连接,选择器的输出端与对数域乘累加单元阵列连接,控制单元的输入端用于接收输入数据和配置信号,配置信号用于指示对输入数据执行乘累加计算或乘法计算,输入数据为第一输入数据或第二输入数据,配置信号为第一配置信号或第二配置信号,第一输入数据包括两组数据,第一组数据包括x1至xM,第二组数据包括y1至yM,第一配置信号用于指示对第一输入数据执行乘累加计算,第二输入数据包括X和Y,第二配置信号用于指示对第二输入数据执行乘法X*Y计算;在输入数据为第一输入数据,且配置信号为第一配置信号的情况下,控制单元用于根据第一配置信号使能线性域转对数域单元,并选通线性域转对数域单元到选择器的通路,以及选通选择器将线性域转对数域单元的输出传输至对数域乘累加单元阵列的通路;在输入数据为第二输入数据,且配置信号为第二配置信号的情况下,控制单元用于根据第二配置信号使能线性域数据扩展编码单元,并选通线性域数据扩展编码单元到选择器的通路,以及选通选择器将线性域数据扩展编码单元的输出传输至对数域乘累加单元阵列的通路;线性域转对数域单元用于将xi和yi分别进行对数域转换,得到M组对数域数据,每组对数域数据包括一个xi的对数值和一个yi的对数值,并将M组对数域数据传输至选择器,i为大于等于1小于等于M的整数;选择器用于将M组对数域数据传输至对数域乘累加单元阵列;对数域乘累加单元阵列用于对M组对数域数据进行加法运算,以及移位操作和累加操作,输出第一输入数据的乘累加结果;线性域数据扩展编码单元用于对Y进行预处理得到Q个第一移位偏移量Ys,并将X和Q个Ys传输至选择器,s的取值为1至Q的整数,Q为Y的位宽;选择器还用于将X和Q个Ys传输至对数域乘累加单元阵列;对数域乘累加单元阵列用于根据Q个Ys对X进行移位操作和累加操作,输出第二输入数据的乘法X*Y结果。本发明实施例提供的数据处理装置,当需要对输入数据执行乘累加计算时,先根据第一使能信号使能线性域转对数域单元,将输入数据转换为对数域数据,再通过对数域乘累加单元阵列对对数域数据执行乘累加计算;当需要对输入数据执行乘法计算时,先根据第二使能信号使能线性域数据扩展编码单元,对输入数据进行预处理,再通过对数域乘累加单元阵列对预处理数据执行乘法计算,那么,对数域乘累加单元阵列既实现了对数据的乘累加计算,又实现了对数据的乘法计算,从而,在数据处理装置能够同时支持线性域数据处理方式与对数域数据处理方式的情况下,在进行线性域数据处理时复用对数域数据处理单元的硬件资源,有效地提高了硬件资源利用率。
为了在数据处理装置能够同时支持线性域数据处理方式与对数域数据处理方式的情况下,在进行线性域数据处理时复用对数域数据处理单元的硬件资源,有效地提高了硬件资源利用率,本发明实施例提供了对数域乘累加单元阵列一种具体的实现方式,结合第一方面,在一种可能的实现方式中,对数域乘累加单元阵列包括N个对数域乘累加基本单元和加法树,每个对数域乘累加基本单元包括加法器和移位器,N为大于等于2的整数,其中,选择器的输出端分别与每个加法器的输入端和每个移位器的输入端连接,加法器的输出端与移位器的输入端连接,移位器的输出端与加法树的输入端连接。
结合第一方面,在一种可能的实现方式中,选择器具体用于,选通选择器到N个加法器的通路,将M组对数域数据传输至M个加法器,一组对数域数据传输至一个加法器;加法器用于对一组对数域数据进行加法运算得到加法运算结果,并将加法运算结果传输至移位器;移位器用于对加法运算结果进行移位操作,得到第一中间结果,并将第一中间结果传输至加法树;加法树用于对M个移位器传输的M个第一中间结果进行累加操作得到第一输入数据的乘累加结果,输出第一输入数据的乘累加结果,M为大于等于1小于等于N的整数;选择器具体用于,选通选择器到N个移位器的通路,将X和Q个Ys传输至Q个移位器,Q为大于等于1小于等于N的整数;移位器还用于根据Ys对X进行移位操作,得到第二中间结果,并将第二中间结果传输至加法树;加法树还用于对Q个移位器传输的Q个第二中间结果进行累加操作得到第二输入数据的乘法X*Y结果,输出第二输入数据的乘法X*Y结果。本发明实施例提供基于对数域乘累加单元阵列一种具体的实现方式,在数据处理装置能够同时支持线性域数据处理方式与对数域数据处理方式的情况下,在进行线性域数据处理时复用对数域数据处理单元的硬件资源,有效地提高了硬件资源利用率。
为了在数据处理装置能够同时支持线性域数据处理方式与对数域数据处理方式的情况下,在进行线性域数据处理时复用对数域数据处理单元的硬件资源,提高硬件资源利用率,本发明实施例提供了对数域乘累加单元阵列包括的移位器对加法器传输的加法运算结果进行移位操作的具体的实现方式。结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,移位器具体用于:若加法运算结果为整数,根据加法运算结果左移1,得到第一中间结果;若加法运算结果为小数,将加法运算结果的整数部分作为第三移位偏移量;通过查表法查询2的加法运算结果的小数部分幂次方,得到待移位值;根据第三移位偏移量左移待移位值,得到第一中间结果。
为了在数据处理装置能够同时支持线性域数据处理方式与对数域数据处理方式的情况下,在进行线性域数据处理时复用对数域数据处理单元的硬件资源,提高硬件资源利用率,本发明实施例提供了线性域转对数域单元将输入数据转换为对数域数据的一种具体的实现方式。结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,线性域转对数域单元具体用于:右移xi,得到第二移位偏移量和xi′,xi′的整数部分的最低位为1,xi′的整数部分的其他位为0;通过查表法查询xi′的对数域数据,得到xi′的对数值;将第二移位偏移量作为xi以2为底的对数值的整数部分,将xi′的对数值作为xi以2为底的对数值的小数部分,得到xi以2为底的对数值右移yi,得到第二移位偏移量和yi′,yi′的整数部分的最低位为1,yi′的整数部分的其他位为0;通过查表法查询yi′的对数域数据,得到yi′的对数值;将第二移位偏移量作为yi以2为底的对数值的整数部分,将yi′的对数值作为yi以2为底的对数值的小数部分,得到yi以2为底的对数值
为了在数据处理装置能够同时支持线性域数据处理方式与对数域数据处理方式的情况下,在进行线性域数据处理时复用对数域数据处理单元的硬件资源,提高硬件资源利用率,本发明实施例提供了线性域数据扩展编码单元对数据进行预处理的具体的实现方式。结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,线性域数据扩展编码单元具体用于:若Y的第s位为1,则第s个第一移位偏移量Ys=s-1;若Y的第s位为0,则第s个第一移位偏移量Ys为特殊指示符,特殊指示符用于指示移位器输出0。
为了在数据处理装置能够同时支持线性域数据处理方式与对数域数据处理方式的情况下,在进行线性域数据处理时复用对数域数据处理单元的硬件资源,提高硬件资源利用率,本发明实施例提供了对数域乘累加单元阵列包括的移位器对预处理的数据进行移位操作的具体的实现方式。结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,移位器具体用于:当第一移位偏移量Ys=s-1时,根据Ys对X进行左移操作;当第一移位偏移量Ys为特殊指示符时,移位器输出0。
本发明实施例的第二方面,提供一种数据处理方法,包括:应用于数据处理装置,数据处理装置包括控制单元、线性域转对数域单元、线性域数据扩展编码单元、选择器和对数域乘累加单元阵列,其中,控制单元的输出端分别与线性域转对数域单元的输入端和线性域数据扩展编码单元的输入端连接,线性域转对数域单元的输出端和线性域数据扩展编码单元的输出端均与选择器的输入端连接,选择器的输出端与对数域乘累加单元阵列连接,数据处理方法包括:控制单元接收输入数据和配置信号,配置信号用于指示对输入数据执行乘累加计算或乘法计算,输入数据为第一输入数据或第二输入数据,配置信号为第一配置信号或第二配置信号,第一输入数据包括两组数据,第一组数据包括x1至xM,第二组数据包括y1至yM,第一配置信号用于指示对第一输入数据执行乘累加计算,第二输入数据包括X和Y,第二配置信号用于指示对第二输入数据执行乘法X*Y计算;在输入数据为第一输入数据,且配置信号为第一配置信号的情况下,控制单元根据第一配置信号使能线性域转对数域单元,并选通线性域转对数域单元到选择器的通路,以及选通选择器将线性域转对数域单元的输出传输至对数域乘累加单元阵列的通路;在输入数据为第二输入数据,且配置信号为第二配置信号的情况下,控制单元根据第二配置信号使能线性域数据扩展编码单元,并选通线性域数据扩展编码单元到选择器的通路,以及选通选择器将线性域数据扩展编码单元的输出传输至对数域乘累加单元阵列的通路;线性域转对数域单元将xi和yi分别进行对数域转换,得到M组对数域数据,每组对数域数据包括一个xi的对数值和一个yi的对数值,并将M组对数域数据传输至选择器,i为大于等于1小于等于M的整数;选择器将M组对数域数据传输至对数域乘累加单元阵列;对数域乘累加单元阵列对M组对数域数据进行加法运算,以及移位操作和累加操作,输出第一输入数据的乘累加结果;线性域数据扩展编码单元对Y进行预处理得到Q个第一移位偏移量Ys,并将X和Q个Ys传输至选择器,s的取值为1至Q的整数,Q为Y的位宽;选择器将X和Q个Ys传输至对数域乘累加单元阵列;对数域乘累加单元阵列根据Q个Ys对X进行移位操作和累加操作,输出第二输入数据的乘法X*Y结果。具体的,可以参考第一方面提供的数据处理装置中对应模块的行为的功能。
需要说明的是,上述第一方面的功能模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。例如,处理器,用于完成线性域转对数域单元和/或线性域数据扩展编码单元的功能,存储器,用于处理器处理本发明实施例的数据处理方法的程序指令。处理器和存储器通过总线连接并完成相互间的通信。
本发明实施例的第三方面,提供一种数据处理装置,该数据处理装置可以包括:至少一个处理器,存储器、通信接口、通信总线;至少一个处理器与存储器、通信接口通过通信总线连接,存储器用于存储计算机执行指令,当数据处理装置运行时,处理器执行存储器存储的计算机执行指令,以使数据处理装置执行第一方面或第一方面的可能的实现方式中任一种。
第四方面,本申请实施例提供了一种计算机可读存储介质,用于储存为上述数据处理方法所用的计算机软件指令,当其在计算机上运行时,使得计算机可以执行上述中任意方面的方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述任意方面的方法。
另外,第三方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
本申请实施例中,数据处理装置的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本申请实施例类似,属于本申请权利要求及其等同技术的范围之内。
本申请实施例的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
图1为现有技术提供的一种数据处理装置结构示意图;
图2为本发明实施例提供的数据处理装置结构示意图;
图3为本发明实施例提供的数据处理装置结构示意图;
图4为本发明实施例提供的数据处理装置结构示意图;
图5为本发明实施例提供的数据处理装置结构示意图;
图6为本发明实施例提供的数据处理装置结构示意图;
图7为本发明实施例提供的数据处理装置结构示意图;
图8为本发明实施例提供的数据处理装置结构示意图;
图9为本发明实施例提供的一种数据处理方法的流程图。
具体实施方式
本发明实施例提供一种数据处理装置,其基本原理是:该数据处理装置包括控制单元、线性域转对数域单元、线性域数据扩展编码单元、选择器和对数域乘累加单元阵列。当需要对输入数据执行乘累加计算时,控制单元先根据第一使能信号使能线性域转对数域单元,并选通选择器到对数域乘累加单元阵列的通路,线性域转对数域单元将输入数据转换为对数域数据,通过对数域乘累加单元阵列对对数域数据执行乘累加计算;当需要对输入数据执行乘法计算时,控制单元先根据第二使能信号使能线性域数据扩展编码单元,并选通选择器到对数域乘累加单元阵列的通路,线性域数据扩展编码单元对输入数据进行预处理,通过对数域乘累加单元阵列对预处理数据执行乘法计算,也就是通过配置不同的数据处理模式选通不同的数据到对数域乘累加单元阵列,对数域乘累加单元阵列既实现了对数据的乘累加计算,又实现了对数据的乘法计算。由于该数据处理装置包括的线性域转对数域单元、线性域数据扩展编码单元和选择器为数据预处理相关模块,其硬件资源开销相对较小,在数据处理装置执行不同的处理操作过程中切换使用线性域转对数域单元和线性域数据扩展编码单元;对数域乘累加单元阵列占据了主要的硬件资源且能够在不同的数据处理模式下复用,从而,使整个数据处理装置的硬件资源利用率极高。
下面将结合附图对本发明实施例的实施方式进行详细描述。
为了方便理解,对本申请实施例中所述的单元、模块进行简单说明。
控制单元是一个专用的电路结构,为根据数据处理装置的功能配置生成对应的控制信号。底层具体的硬件实现可以为选择器。
线性域转对数域单元,可以为一个通用的线性域与对数域转换的标准电路单元库,即计算对数(log)和乘方(exp)的标准电路单元库。也可以是根据自有算法设计的专用电路结构,其具体包括的内容与实现方案相关。
线性域数据扩展编码单元,为一个本例中特有的电路结构。底层具体的硬件实现可以为解码电路。
选择器,基本的电路结构,接收多个输入,根据另外一个输入的选择信号,选择一个输入作为输出。
加法器,是计算两个数据之和的基本电路单元,有标准的电路实现。
移位器,对输入数据进行移位操作的基本电路单元,有标准的电路实现。
加法树,使用多个加法器构建的树状结构的累加电路,用于计算多个数据之和。
图2示出的是本发明实施例提供的数据处理装置结构示意图。如图2所示,该数据处理装置包括:控制单元21、线性域转对数域单元22、线性域数据扩展编码单元23、选择器24和对数域乘累加单元阵列25,其中,控制单元21的输出端分别与线性域转对数域单元22的输入端和线性域数据扩展编码单元23的输入端连接,线性域转对数域单元22的输出端和线性域数据扩展编码单元23的输出端均与选择器24的输入端连接,选择器24的输出端与对数域乘累加单元阵列25连接。
控制单元21的输入端用于接收输入数据和配置信号,配置信号用于指示对输入数据执行乘累加计算或乘法计算,输入数据为第一输入数据或第二输入数据,配置信号为第一配置信号或第二配置信号,第一输入数据包括两组数据,第一组数据包括x1至xM,第二组数据包括y1至yM,第一配置信号用于指示对第一输入数据执行乘累加计算,第二输入数据包括X和Y,第二配置信号用于指示对第二输入数据执行乘法X*Y计算。
需要说明的是,第一输入数据或第二输入数据均是以二进制形式表示的数据,即x1至xM、y1至yM、X和Y均是二进制形式表示的数据。
在输入数据为第一输入数据,且配置信号为第一配置信号的情况下,控制单元21用于根据第一配置信号使能线性域转对数域单元22,并选通线性域转对数域单元22到选择器24的通路,以及选通选择器24将线性域转对数域单元22的输出传输至对数域乘累加单元阵列25的通路。
在输入数据为第二输入数据,且配置信号为第二配置信号的情况下,控制单元21用于根据第二配置信号使能线性域数据扩展编码单元23,并选通线性域数据扩展编码单元23到选择器24的通路,以及选通选择器24将线性域数据扩展编码单元23的输出传输至对数域乘累加单元阵列25的通路。
需要说明的是,在一种具体的实现方式中,控制单元21可以根据第一配置信号生成第一使能信号和第一选择信号,第一使能信号用于使能线性域转对数域单元22,并选通线性域转对数域单元22到选择器24的通路,第一选择信号用于选通选择器24将线性域转对数域单元22的输出传输至对数域乘累加单元阵列25的通路。控制单元21可以根据第二配置信号生成第二使能信号和第二选择信号,第二使能信号用于使能线性域数据扩展编码单元23,并选通线性域数据扩展编码单元23到选择器24的通路,第二选择信号用于选通选择器24将线性域数据扩展编码单元23的输出传输至对数域乘累加单元阵列25的通路。
线性域转对数域单元22用于将xi和yi分别进行对数域转换,得到M组对数域数据,每组对数域数据包括一个xi的对数值和一个yi的对数值,并将M组对数域数据传输至选择器,i为大于等于1小于等于M的整数。
选择器24用于将M组对数域数据传输至对数域乘累加单元阵列25。
对数域乘累加单元阵列25用于对M组对数域数据进行加法运算,以及移位操作和累加操作,输出第一输入数据的乘累加结果。
线性域数据扩展编码单元23用于对Y进行预处理得到Q个第一移位偏移量Ys,并将X和所述Q个Ys传输至选择器24,s的取值为1至Q的整数,Q为Y的位宽。
选择器24还用于将X和Q个Ys传输至对数域乘累加单元阵列25。
对数域乘累加单元阵列25用于根据Q个Ys对X进行移位操作和累加操作,输出第二输入数据的乘法X*Y结果。
进一步的,对数域乘累加单元阵列具体可以包括加法器、移位器和加法树来实现对数域乘累加单元阵列的功能。基于图2如图3所示,本发明实施例提供一种数据处理装置结构示意图,对数域乘累加单元阵列25具体包括N个对数域乘累加基本单元和加法树253,每个对数域乘累加基本单元包括加法器251和移位器252,N为大于等于2的整数,其中,选择器24的输出端分别与每个加法器251的输入端和每个移位器252的输入端连接,加法器251的输出端与移位器252的输入端连接,移位器252的输出端与加法树253的输入端连接。
需要说明的是,因为对数域乘累加基本单元包含加法器与移位器用于实现对数域的加法并通过移位将数据转换到线性域,通过复用对数域乘累加基本单元的移位器,能够实现线性乘法移位累加中的移位操作;又因为对数域乘累加单元阵列中包含加法树用于计算乘累加的结果,通过复用加法树,能够实现线性乘法移位累加中的累加操作。所以使得对数域乘累加单元阵列能够经过简单的配置实现线性域乘法的操作,该单元模块能够在不同处理模式下复用,从而保证了硬件架构的通用性。
如图4所示,本发明实施例提供一种基于数据处理装置的乘累加处理方式示意图。
线性域转对数域单元22具体用于:右移xi,得到第二移位偏移量和xi′,xi′的整数部分的最低位为1,xi′的整数部分的其他位为0;通过查表法查询xi′的对数域数据,得到xi′的对数值;将第二移位偏移量作为xi以2为底的对数值的整数部分,将xi′的对数值作为xi以2为底的对数值的小数部分,得到xi以2为底的对数值右移yi,得到第二移位偏移量和yi′,yi′的整数部分的最低位为1,yi′的整数部分的其他位为0;通过查表法查询yi′的对数域数据,得到yi′的对数值;将第二移位偏移量作为yi以2为底的对数值的整数部分,将yi′的对数值作为yi以2为底的对数值的小数部分,得到yi以2为底的对数值
需要说明的是,在数据处理装置处理数据之前,需要预先设置数据格式,例如数据位宽和数据中小数点的位置。右移数据就是将数据右移,在数据的左侧填零,相当于移动了数据的小数点的位置,对应到数学意义上就是将数据的小数点左移。同理,左移数据就是将数据左移,在数据的右侧填零,相当于移动了数据的小数点的位置,对应到数学意义上就是将数据的小数点右移。如本申请实施例所述右移xi,即将xi的小数点向左移动到xi的整数部分的最高位1后面。示例的,以5为例,5的二进制为101.00,xi为101.00,右移101.00得到1.0100,即将5的二进制101.00的小数点移到整数部分的最高位1后面,需要左移2位,则第二移位偏移量为2,xi′为1.0100,1.0100的十进制为1.25,通过查表得到1.0100的对数值,将第二移位偏移量2作为5以2为底的对数值log2 5的整数部分,将1.0100的对数值作为5以2为底的对数值log2 5的小数部分,得到5以2为底的对数值log2 5。因此,并不需要真正进行加法,只需要将整数部分与小数部分进行拼接即可。一组对数域数据可以包括和
选择器24具体用于,选通选择器24到N个加法器251的通路,将M组对数域数据传输至M个加法器251,一组对数域数据传输至一个加法器251。
加法器251用于对一组对数域数据进行加法运算得到加法运算结果,并将加法运算结果传输至与其相连的移位器252。
移位器252用于对加法运算结果进行移位操作,得到第一中间结果,并将第一中间结果传输至加法树253。
需要说明的是,对数域乘累加基本单元的加法器完成一组对数域数据包括的数据的加法操作,将加法运算结果传输至移位器,对数域数据的加法即对应为线性域的乘法,即移位器负责将加法器的对数域的加法运算结果转换到线性域,由于线性域转对数域单元求对数时使用的底为2,在硬件实现中可以方便的通过移位的方式将对数域结果转换到线性域,因为有
具体的,若加法运算结果为整数,根据加法运算结果左移1,得到第一中间结果。例如,若加法器输出为整数3,整数3的二进制为11,则将1左移3位,即可得到第一中间结果为整数8,整数8的二进制为1000。
若加法运算结果为小数,将加法运算结果的整数部分作为第三移位偏移量;通过查表法查询2的加法运算结果的小数部分幂次方,得到待移位值;根据第三移位偏移量左移待移位值,得到第一中间结果。例如,加法运算结果为P,第三移位偏移量O为P的整数部分Pi对应的数值,通过查表得到P小数部分Pf的幂次方结果,并将结果左移O位即可得到最终的转换结果,因为有2P=2Pi+Pf=2Pi*2Pf。若P=9.6,需要求解29.6,整数部分为9,因此O=9,通过查表得到20.6的值,并将该结果左移9位,等效为乘以29即可得到最终的转换结果。完成移位转换之后,将该结果输出到加法树。
加法树253用于对M个移位器252传输的M个第一中间结果进行累加操作得到第一输入数据的乘累加结果,输出第一输入数据的乘累加结果,M为大于等于1小于等于N的整数。
如图5所示,本发明实施例提供一种基于数据处理装置的乘法处理方式示意图。
需要说明的是,在二进制硬件设计中,乘法操作可以转换为若干个因数1经过不同移位偏移量移位后的累加操作。假设因数1为X,因数2为Y,Y的位宽为Q,则实施例中对数域乘累加单元阵列需要Q个对数域乘累加基本单元来实现X*Y的操作。
线性域数据扩展编码单元23具体用于:若Y的第s位为1,则第s个第一移位偏移量Ys=s-1;若Y的第s位为0,则第s个第一移位偏移量Ys为特殊指示符,特殊指示符用于指示移位器输出0,即表示后续移位器的输出应当直接置为0。按照上述描述,Y的第1位,也就是第1个第一移位偏移量Y1=1-1=0,因此,对X的最大有效移位量为Q-1,第一移位偏移量为Q则可判断为特殊指示符,供移位器用于输出置零判断,即特殊指示符可以为Q。
选择器24具体用于,选通选择器24到N个移位器252的通路,将X和Q个Ys传输至Q个移位器252,X和一个Ys传输至一个移位器252,即可以将一个X同时传输至Q个移位器252,Q为大于等于1小于等于N的整数。
移位器252还用于根据Ys对X进行移位操作,得到第二中间结果,并将第二中间结果传输至加法树253。
具体的,当第一移位偏移量Ys=s-1时,根据Ys对X进行左移操作;当第一移位偏移量Ys为特殊指示符时,移位器输出0。
加法树253还用于对Q个移位器252传输的Q个第二中间结果进行累加操作得到第二输入数据的乘法X*Y结果,输出第二输入数据的乘法X*Y结果。
本发明实施例旁路对数域乘累加基本单元中的加法器,将选择器选通的线性域数据扩展编码单元的输出直接接入N个对数域乘累加基本单元的移位器,其中待移位的数据均为X,第一移位偏移量为Ys,并进行对应的左移操作。若Ys为特殊指示符,如N时,将移位器的输出直接置为零,输出到加法树。从而,在进行线性域数据处理时复用对数域数据处理单元的硬件资源,有效地提高了硬件资源利用率。
示例的,图6示出的是本发明实施例提供的数据处理装置结构示意图。该数据处理装置包括线性域转对数域单元、线性域数据扩展编码单元、选择器和对数域乘累加单元阵列,其中对数域乘累加单元阵列包含三个对数域乘累加基本单元和加法树。使用该数据处理装置能够通过配置不同的配置信号实现两种不同的功能,其一为两组数据的乘累加操作,每组数据包含三个元素,其二为两个数据相乘的操作,因数2的位宽为三位,即Y的位宽为3位。
在一种具体的实现方式中,控制单元21可以根据第一配置信号生成第一使能信号和第一选择信号,第一使能信号用于使能线性域转对数域单元22,并选通线性域转对数域单元22到选择器24的通路,第一选择信号用于选通选择器24将线性域转对数域单元22的输出传输至对数域乘累加单元阵列25的通路。控制单元21可以根据第二配置信号生成第二使能信号和第二选择信号,第二使能信号用于使能线性域数据扩展编码单元23,并选通线性域数据扩展编码单元23到选择器24的通路,第二选择信号用于选通选择器24将线性域数据扩展编码单元23的输出传输至对数域乘累加单元阵列25的通路。其中,第一使能信号、第二使能信号、第一选择信号和第二选择信号的取值与数据处理装置完成的处理操作如表1所示。
表1处理操作与相关信号的关系
第一使能信号用高电平指示使能线性域转对数域单元,用于低电平指示不使能线性域数据扩展编码单元。第二使能信号用高电平指示使能线性域数据扩展编码单元,用低电平指示不使能线性域转对数域单元。第一选择信号用高电平指示选通选择器将线性域转对数域单元的输出传输至对数域乘累加单元阵列的通路,用低电平指示不选通选择器将线性域数据扩展编码单元的输出传输至对数域乘累加单元阵列的通路。第二选择信号用高电平指示选通选择器将线性域数据扩展编码单元的输出传输至对数域乘累加单元阵列的通路,用低电平指示不选通选择器将线性域转对数域单元的输出的输出传输至对数域乘累加单元阵列的通路。
图7给出计算两个数据乘累加的操作示例,示例中所有的数据都使用二进制表示,其中虚线部分的单元不工作。为了简化示例便于理解,示例中给出的数据均为2的幂次方的数据,这样转换为对数域后数据均为整数。假设第一组数据为{xi}=4、8、16,第二组数据为{yi}=2、4、2,每组数据包含三个元素,需要计算这两组数据的乘累加操作
如图7所示,在数据处理过程中,线性域转对数域单元将两组数据转换为对数域数据,求解对应数据以2为底的对数,将数据转换为 并分别输入三个对数域乘累加基本单元的加法器。三个对数域乘累加基本单元的加法器分别计算输入数据之和,得到对数域上的加法运算结果 每个加法器将加法运算结果传输至与其相连接的移位器。之后通过移位器将对数域数据转换到线性域,即将1分别左移3、5、5位,得到第一中间结果1000、100000、100000,第一中间结果对应的十进制分别为{x1*y1、x2*y2、x3*y3}=8、32、32。加法树计算三个第一中间结果之和,得到最终乘累加结果8+32+32=72,即为要求解的两组数据的累加和。图7给出了该示例中相关数据的中间结果以便理解。需要说明的是,数据处理装置处理的数据均是二进制形式的数据,为了方便理解,示例中均用十进制表示各个单元处理的结果。
图8给出计算两个数据乘法的操作示例,示例中所有的数据都使用二进制表示,其中虚线部分的单元不工作。图8示例了计算11*5的计算过程,对应的二进制为1011*101,即X为1011,Y为101。X不需要经过预处理,线性域数据扩展编码单元直接将X输入对数域乘累加单元阵列中的三个对数域乘累加基本单元的移位器。Y进行扩展编码,其位宽为三位,所以会生成三个第一移位偏移量Ys,其第1位为1,所以输入到第一个对数域乘累加基本单元的编码为0;第2位为0,所以输入到第二个对数域乘累加基本单元的编码为11,即Y的位宽3,指示移位器的输出应当置0;第三位为1,所以输入到第三个对数域乘累加基本单元的编码为10,即2。经过预处理后的数据输入对数域乘累加单元阵列后,对数域乘累加基本单元中的加法器会被旁路不被使用,移位器根据第一移位偏移量Ys对X进行移位操作,三个对数域乘累加基本单元的输出分别为1011、0、101100,对应的十进制为11、0、44。三个输出数据经过加法树累加后即可得到乘法结果110111,对应的十进制为55。
图9为本发明实施例提供的一种数据处理方法的流程图,应用于如图3所示的数据处理装置,如图9所示,该方法可以包括:
301、控制单元接收输入数据和配置信号。
302、控制单元判断输入数据是否为第一数据数据,以及判断配置信号是否为第一配置信号。
当输入数据为第一输入数据,且配置信号为第一配置信号时,执行步骤303;当输入数据为第二输入数据,且配置信号为第二配置信号时,执行步骤306。
303、线性域转对数域单元将xi和yi分别进行对数域转换,得到M组对数域数据,并将M组对数域数据传输至选择器。
304、选择器将M组对数域数据传输至对数域乘累加单元阵列。
305、对数域乘累加单元阵列对M组对数域数据进行加法运算,以及移位操作和累加操作,输出第一输入数据的乘累加结果。
306、线性域数据扩展编码单元对Y进行预处理得到Q个第一移位偏移量Ys,并将X和Q个Ys传输至选择器。
307、选择器将X和Q个Ys传输至对数域乘累加单元阵列。
308、对数域乘累加单元阵列根据Q个Ys对X进行移位操作和累加操作,输出第二输入数据的乘法X*Y结果。
需要说明的是,本发明实施例提供的数据处理方法是基于如图3所示的数据处理装置,上述装置实施例涉及的各模块的所有相关内容均可以援引到对应方法步骤中,在此不再赘述。数据处理装置用于执行上述数据处理方法,因此上述数据处理方法可以达到与数据处理装置相同的效果。
上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如数据处理装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对数据处理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种数据处理装置,其特征在于,包括:
控制单元、线性域转对数域单元、线性域数据扩展编码单元、选择器和对数域乘累加单元阵列,其中,所述控制单元的输出端分别与所述线性域转对数域单元的输入端和所述线性域数据扩展编码单元的输入端连接,所述线性域转对数域单元的输出端和所述线性域数据扩展编码单元的输出端均与所述选择器的输入端连接,所述选择器的输出端与所述对数域乘累加单元阵列连接;
所述控制单元的输入端用于接收输入数据和配置信号,所述配置信号用于指示对所述输入数据执行乘累加计算或乘法计算,所述输入数据为第一输入数据或第二输入数据,所述配置信号为第一配置信号或第二配置信号,所述第一输入数据包括两组数据,第一组数据包括x1至xM,第二组数据包括y1至yM,所述第一配置信号用于指示对所述第一输入数据执行乘累加计算,所述第二输入数据包括X和Y,所述第二配置信号用于指示对所述第二输入数据执行乘法X*Y计算;
在所述输入数据为第一输入数据,且所述配置信号为第一配置信号的情况下,所述控制单元用于根据所述第一配置信号使能所述线性域转对数域单元,并选通所述线性域转对数域单元到所述选择器的通路,以及选通所述选择器将所述线性域转对数域单元的输出传输至所述对数域乘累加单元阵列的通路;
在所述输入数据为第二输入数据,且所述配置信号为第二配置信号的情况下,所述控制单元用于根据所述第二配置信号使能所述线性域数据扩展编码单元,并选通所述线性域数据扩展编码单元到所述选择器的通路,以及选通所述选择器将所述线性域数据扩展编码单元的输出传输至所述对数域乘累加单元阵列的通路;
所述线性域转对数域单元用于将所述xi和所述yi分别进行对数域转换,得到M组对数域数据,每组所述对数域数据包括一个所述xi的对数值和一个所述yi的对数值,并将所述M组对数域数据传输至所述选择器,所述i为大于等于1小于等于M的整数;
所述选择器用于将所述M组对数域数据传输至所述对数域乘累加单元阵列;
所述对数域乘累加单元阵列用于对所述M组对数域数据进行加法运算,以及移位操作和累加操作,输出所述第一输入数据的乘累加结果;
所述线性域数据扩展编码单元用于对所述Y进行预处理得到Q个第一移位偏移量Ys,并将所述X和所述Q个Ys传输至所述选择器,所述s的取值为1至Q的整数,所述Q为所述Y的位宽;
所述选择器还用于将所述X和所述Q个Ys传输至所述对数域乘累加单元阵列;
所述对数域乘累加单元阵列用于根据所述Q个Ys对所述X进行移位操作和累加操作,输出所述第二输入数据的乘法X*Y结果。
2.根据权利要求1所述的装置,其特征在于,所述对数域乘累加单元阵列包括N个对数域乘累加基本单元和加法树,每个所述对数域乘累加基本单元包括加法器和移位器,所述N为大于等于2的整数,其中,所述选择器的输出端分别与每个所述加法器的输入端和每个所述移位器的输入端连接,所述加法器的输出端与所述移位器的输入端连接,所述移位器的输出端与所述加法树的输入端连接。
3.根据权利要求2所述的装置,其特征在于,
所述选择器具体用于,选通所述选择器到N个所述加法器的通路,将所述M组对数域数据传输至M个所述加法器,一组所述对数域数据传输至一个所述加法器;
所述加法器用于对一组所述对数域数据进行加法运算得到加法运算结果,并将所述加法运算结果传输至所述移位器;
所述移位器用于对所述加法运算结果进行移位操作,得到第一中间结果,并将所述第一中间结果传输至所述加法树;
所述加法树用于对M个所述移位器传输的M个所述第一中间结果进行累加操作得到所述第一输入数据的乘累加结果,输出所述第一输入数据的乘累加结果,所述M为大于等于1小于等于N的整数;
所述选择器具体用于,选通所述选择器到N个所述移位器的通路,将所述X和所述Q个Ys传输至Q个所述移位器,所述Q为大于等于1小于等于N的整数;
所述移位器还用于根据所述Ys对所述X进行移位操作,得到第二中间结果,并将所述第二中间结果传输至所述加法树;
所述加法树还用于对Q个所述移位器传输的Q个所述第二中间结果进行累加操作得到所述第二输入数据的乘法X*Y结果,输出所述第二输入数据的乘法X*Y结果。
4.根据权利要求3所述的装置,其特征在于,所述移位器具体用于:
若所述加法运算结果为整数,根据所述加法运算结果左移1,得到所述第一中间结果;
若所述加法运算结果为小数,将所述加法运算结果的整数部分作为第三移位偏移量;
通过查表法查询2的所述加法运算结果的小数部分幂次方,得到待移位值;
根据所述第三移位偏移量左移所述待移位值,得到所述第一中间结果。
5.根据权利要求1-4任一项权利要求所述的装置,其特征在于,所述线性域转对数域单元具体用于:
右移所述xi,得到第二移位偏移量和xi′,所述xi′的整数部分的最低位为1,所述xi′的整数部分的其他位为0;
通过查表法查询所述xi′的对数域数据,得到所述xi′的对数值;
将所述第二移位偏移量作为所述xi以2为底的对数值的整数部分,将所述xi′的对数值作为所述xi以2为底的对数值的小数部分,得到所述xi以2为底的对数值
右移所述yi,得到第二移位偏移量和yi′,所述yi′的整数部分的最低位为1,所述yi′的整数部分的其他位为0;
通过查表法查询所述yi′的对数域数据,得到所述yi′的对数值;
将所述第二移位偏移量作为所述yi以2为底的对数值的整数部分,将所述yi′的对数值作为所述yi以2为底的对数值的小数部分,得到所述yi以2为底的对数值
6.根据权利要求2-5任一项权利要求所述的装置,其特征在于,所述线性域数据扩展编码单元具体用于:
若Y的第s位为1,则第s个所述第一移位偏移量Ys=s-1;
若Y的第s位为0,则第s个所述第一移位偏移量Ys为特殊指示符,所述特殊指示符用于指示所述移位器输出0。
7.根据权利要求6所述的装置,其特征在于,所述移位器具体用于:
当所述第一移位偏移量Ys=s-1时,根据所述Ys对所述X进行左移操作;
当所述第一移位偏移量Ys为所述特殊指示符时,所述移位器输出0。
8.一种数据处理方法,其特征在于,应用于数据处理装置,所述数据处理装置包括控制单元、线性域转对数域单元、线性域数据扩展编码单元、选择器和对数域乘累加单元阵列,其中,所述控制单元的输出端分别与所述线性域转对数域单元的输入端和所述线性域数据扩展编码单元的输入端连接,所述线性域转对数域单元的输出端和所述线性域数据扩展编码单元的输出端均与所述选择器的输入端连接,所述选择器的输出端与所述对数域乘累加单元阵列连接,所述数据处理方法包括:
所述控制单元接收输入数据和配置信号,所述配置信号用于指示对所述输入数据执行乘累加计算或乘法计算,所述输入数据为第一输入数据或第二输入数据,所述配置信号为第一配置信号或第二配置信号,所述第一输入数据包括两组数据,第一组数据包括x1至xM,第二组数据包括y1至yM,所述第一配置信号用于指示对所述第一输入数据执行乘累加计算,所述第二输入数据包括X和Y,所述第二配置信号用于指示对所述第二输入数据执行乘法X*Y计算;
在所述输入数据为第一输入数据,且所述配置信号为第一配置信号的情况下,所述控制单元根据所述第一配置信号使能所述线性域转对数域单元,并选通所述线性域转对数域单元到所述选择器的通路,以及选通所述选择器将所述线性域转对数域单元的输出传输至所述对数域乘累加单元阵列的通路;
在所述输入数据为第二输入数据,且所述配置信号为第二配置信号的情况下,所述控制单元根据所述第二配置信号使能所述线性域数据扩展编码单元,并选通所述线性域数据扩展编码单元到所述选择器的通路,以及选通所述选择器将所述线性域数据扩展编码单元的输出传输至所述对数域乘累加单元阵列的通路;
所述线性域转对数域单元将所述xi和所述yi分别进行对数域转换,得到M组对数域数据,每组所述对数域数据包括一个所述xi的对数值和一个所述yi的对数值,并将所述M组对数域数据传输至所述选择器,所述i为大于等于1小于等于M的整数;
所述选择器将所述M组对数域数据传输至所述对数域乘累加单元阵列;
所述对数域乘累加单元阵列对所述M组对数域数据进行加法运算,以及移位操作和累加操作,输出所述第一输入数据的乘累加结果;
所述线性域数据扩展编码单元对所述Y进行预处理得到Q个第一移位偏移量Ys,并将所述X和所述Q个Ys传输至所述选择器,所述s的取值为1至Q的整数,所述Q为所述Y的位宽;
所述选择器将所述X和所述Q个Ys传输至所述对数域乘累加单元阵列;
所述对数域乘累加单元阵列根据所述Q个Ys对所述X进行移位操作和累加操作,输出所述第二输入数据的乘法X*Y结果。
9.根据权利要求8所述的方法,其特征在于,所述对数域乘累加单元阵列包括N个对数域乘累加基本单元和加法树,每个所述对数域乘累加基本单元包括加法器和移位器,所述N为大于等于2的整数,其中,所述选择器的输出端分别与每个所述加法器的输入端和每个所述移位器的输入端连接,所述加法器的输出端与所述移位器的输入端连接,所述移位器的输出端与所述加法树的输入端连接。
10.根据权利要求9所述的方法,其特征在于,
所述选择器将所述M组对数域数据传输至所述对数域乘累加单元阵列包括:
所述选择器选通所述选择器到N个所述加法器的通路,将所述M组对数域数据传输至M个所述加法器,一组所述对数域数据传输至一个所述加法器;
所述加法器对一组所述对数域数据进行加法运算得到加法运算结果,并将所述加法运算结果传输至所述移位器;
所述移位器对所述加法运算结果进行移位操作,得到第一中间结果,并将所述第一中间结果传输至所述加法树;
所述加法树对M个所述移位器传输的M个所述第一中间结果进行累加操作得到所述第一输入数据的乘累加结果,输出所述第一输入数据的乘累加结果,所述M为大于等于1小于等于N的整数;
所述选择器将所述X和所述Q个Ys传输至所述对数域乘累加单元阵列包括:
所述选择器选通所述选择器到N个所述移位器的通路,将所述X和所述Q个Ys传输至Q个所述移位器,所述Q为大于等于1小于等于N的整数;
所述移位器根据所述Ys对所述X进行移位操作,得到第二中间结果,并将所述第二中间结果传输至所述加法树;
所述加法树对Q个所述移位器传输的Q个所述第二中间结果进行累加操作得到所述第二输入数据的乘法X*Y结果,输出所述第二输入数据的乘法X*Y结果。
11.根据权利要求10所述的方法,其特征在于,所述移位器对所述加法器传输的所述加法运算结果进行移位操作,得到第一中间结果包括:
若所述加法运算结果为整数,根据所述加法运算结果左移1,得到所述第一中间结果;
若所述加法运算结果为小数,将所述加法运算结果的整数部分作为第三移位偏移量;
通过查表法查询2的所述加法运算结果的小数部分幂次方,得到待移位值;
根据所述第三移位偏移量左移所述待移位值,得到所述第一中间结果。
12.根据权利要求8-11任一项权利要求所述的方法,其特征在于,所述线性域转对数域单元根据所述控制单元传输的所述第一使能信号将所述xi和所述yi分别转换为对数域数据包括:
右移所述xi,得到第二移位偏移量和xi′,所述xi′的整数部分的最低位为1,所述xi′的整数部分的其他位为0;
通过查表法查询所述xi′的对数域数据,得到所述xi′的对数值;
将所述第二移位偏移量作为所述xi以2为底的对数值的整数部分,将所述xi′的对数值作为所述xi以2为底的对数值的小数部分,得到所述xi以2为底的对数值
右移所述yi,得到第二移位偏移量和yi′,所述yi′的整数部分的最低位为1,所述yi′的整数部分的其他位为0;
通过查表法查询所述yi′的对数域数据,得到所述yi′的对数值;
将所述第二移位偏移量作为所述yi以2为底的对数值的整数部分,将所述yi′的对数值作为所述yi以2为底的对数值的小数部分,得到所述yi以2为底的对数值
13.根据权利要求9-12任一项权利要求所述的方法,其特征在于,所述线性域数据扩展编码单元根据所述控制单元传输的所述第二使能信号对所述Y进行预处理得到Q个第一移位偏移量Ys包括:
若Y的第s位为1,则第s个所述第一移位偏移量Ys=s-1;
若Y的第s位为0,则第s个所述第一移位偏移量Ys为特殊指示符,所述特殊指示符用于指示所述移位器输出0。
14.根据权利要求13所述的方法,其特征在于,所述移位器根据所述选择器传输的所述Ys对所述X进行移位操作,得到第二中间结果包括:
当所述第一移位偏移量Ys=s-1时,根据所述Ys对所述X进行左移操作;
当所述第一移位偏移量Ys为所述特殊指示符时,所述移位器输出0。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710352844.6A CN108958704B (zh) | 2017-05-18 | 2017-05-18 | 一种数据处理装置及方法 |
PCT/CN2018/087493 WO2018210339A1 (zh) | 2017-05-18 | 2018-05-18 | 一种数据处理装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710352844.6A CN108958704B (zh) | 2017-05-18 | 2017-05-18 | 一种数据处理装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108958704A true CN108958704A (zh) | 2018-12-07 |
CN108958704B CN108958704B (zh) | 2020-12-15 |
Family
ID=64273300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710352844.6A Active CN108958704B (zh) | 2017-05-18 | 2017-05-18 | 一种数据处理装置及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108958704B (zh) |
WO (1) | WO2018210339A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871950A (zh) * | 2019-02-01 | 2019-06-11 | 京微齐力(北京)科技有限公司 | 单元具有旁路功能的人工智能模块的芯片电路和系统芯片 |
CN112051981A (zh) * | 2020-09-15 | 2020-12-08 | 厦门壹普智慧科技有限公司 | 一种数据流水线计算路径结构及单线程数据流水线系统 |
CN114217857A (zh) * | 2022-02-21 | 2022-03-22 | 深圳云豹智能有限公司 | 一种数据处理电路、系统及数据处理方法 |
RU214596U1 (ru) * | 2022-05-16 | 2022-11-07 | Федеральное государственное казенное военное образовательное учреждение высшего образования "ВОЕННАЯ АКАДЕМИЯ МАТЕРИАЛЬНО-ТЕХНИЧЕСКОГО ОБЕСПЕЧЕНИЯ имени генерала армии А.В. Хрулева" Министерства обороны Российской Федерации | Устройство для расчета потребности в автомобильном транспорте для подвоза материальных средств |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547694A (zh) * | 2001-07-16 | 2004-11-17 | �����ɷ� | 对数查询表 |
CN101022518A (zh) * | 2006-02-14 | 2007-08-22 | 逐点半导体(上海)有限公司 | 一种自动音量调节的方法及系统 |
CN101174200A (zh) * | 2007-05-18 | 2008-05-07 | 清华大学 | 一种浮点乘加融合单元的五级流水线结构 |
CN103294446A (zh) * | 2013-05-14 | 2013-09-11 | 中国科学院自动化研究所 | 一种定点乘累加器 |
US20130304787A1 (en) * | 2012-05-12 | 2013-11-14 | Stmicroelectronics (Grenoble 2) Sas | Digital serial multiplier |
CN104011706A (zh) * | 2011-12-31 | 2014-08-27 | 英特尔公司 | 包括对数和反对数单元的图形照明引擎 |
CN105589677A (zh) * | 2014-11-17 | 2016-05-18 | 沈阳高精数控智能技术股份有限公司 | 一种基于fpga的脉动结构矩阵乘法器及其实现方法 |
CN105824601A (zh) * | 2016-03-31 | 2016-08-03 | 同济大学 | 一种支持多模式乘法器的部分积复用方法 |
CN106610813A (zh) * | 2015-10-21 | 2017-05-03 | 阿尔特拉公司 | 用于在乘法器累加器块中执行乘积级数运算的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082860A (zh) * | 2007-07-03 | 2007-12-05 | 浙江大学 | 一种乘累加装置 |
EP2608015B1 (en) * | 2011-12-21 | 2019-02-06 | IMEC vzw | System and method for implementing a multiplication |
US9753695B2 (en) * | 2012-09-04 | 2017-09-05 | Analog Devices Global | Datapath circuit for digital signal processors |
CN203966104U (zh) * | 2014-07-23 | 2014-11-26 | 中国电子科技集团公司第五十八研究所 | 可配置可扩展的流水线乘累加器 |
-
2017
- 2017-05-18 CN CN201710352844.6A patent/CN108958704B/zh active Active
-
2018
- 2018-05-18 WO PCT/CN2018/087493 patent/WO2018210339A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547694A (zh) * | 2001-07-16 | 2004-11-17 | �����ɷ� | 对数查询表 |
CN101022518A (zh) * | 2006-02-14 | 2007-08-22 | 逐点半导体(上海)有限公司 | 一种自动音量调节的方法及系统 |
CN101174200A (zh) * | 2007-05-18 | 2008-05-07 | 清华大学 | 一种浮点乘加融合单元的五级流水线结构 |
CN104011706A (zh) * | 2011-12-31 | 2014-08-27 | 英特尔公司 | 包括对数和反对数单元的图形照明引擎 |
US20130304787A1 (en) * | 2012-05-12 | 2013-11-14 | Stmicroelectronics (Grenoble 2) Sas | Digital serial multiplier |
CN103294446A (zh) * | 2013-05-14 | 2013-09-11 | 中国科学院自动化研究所 | 一种定点乘累加器 |
CN105589677A (zh) * | 2014-11-17 | 2016-05-18 | 沈阳高精数控智能技术股份有限公司 | 一种基于fpga的脉动结构矩阵乘法器及其实现方法 |
CN106610813A (zh) * | 2015-10-21 | 2017-05-03 | 阿尔特拉公司 | 用于在乘法器累加器块中执行乘积级数运算的方法和装置 |
CN105824601A (zh) * | 2016-03-31 | 2016-08-03 | 同济大学 | 一种支持多模式乘法器的部分积复用方法 |
Non-Patent Citations (1)
Title |
---|
李庆坤: "基于迭代原理的低复杂度均衡算法", 《基于迭代原理的低复杂度均衡算法》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871950A (zh) * | 2019-02-01 | 2019-06-11 | 京微齐力(北京)科技有限公司 | 单元具有旁路功能的人工智能模块的芯片电路和系统芯片 |
CN112051981A (zh) * | 2020-09-15 | 2020-12-08 | 厦门壹普智慧科技有限公司 | 一种数据流水线计算路径结构及单线程数据流水线系统 |
CN112051981B (zh) * | 2020-09-15 | 2023-09-01 | 厦门壹普智慧科技有限公司 | 一种数据流水线计算路径结构及单线程数据流水线系统 |
CN114217857A (zh) * | 2022-02-21 | 2022-03-22 | 深圳云豹智能有限公司 | 一种数据处理电路、系统及数据处理方法 |
RU214596U1 (ru) * | 2022-05-16 | 2022-11-07 | Федеральное государственное казенное военное образовательное учреждение высшего образования "ВОЕННАЯ АКАДЕМИЯ МАТЕРИАЛЬНО-ТЕХНИЧЕСКОГО ОБЕСПЕЧЕНИЯ имени генерала армии А.В. Хрулева" Министерства обороны Российской Федерации | Устройство для расчета потребности в автомобильном транспорте для подвоза материальных средств |
Also Published As
Publication number | Publication date |
---|---|
CN108958704B (zh) | 2020-12-15 |
WO2018210339A1 (zh) | 2018-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100405361C (zh) | 用于执行计算操作的方法、系统以及设备 | |
Luo et al. | Towards efficient deep neural network training by FPGA-based batch-level parallelism | |
CN108958704A (zh) | 一种数据处理装置及方法 | |
Athanas | Scheduling and partitioning ANSI-C programs onto multi-FPGA CCM architectures | |
CN105468335A (zh) | 流水级运算装置、数据处理方法及片上网络芯片 | |
CN101478785B (zh) | 资源池管理系统及信号处理方法 | |
CN102043761B (zh) | 一种基于可重构技术的傅立叶变换的实现方法 | |
CN109409510B (zh) | 神经元电路、芯片、系统及其方法、存储介质 | |
CN107301453A (zh) | 支持离散数据表示的人工神经网络正向运算装置和方法 | |
CN104375802B (zh) | 一种乘除法器及运算方法 | |
CN104145281A (zh) | 神经网络计算装置和系统及其方法 | |
CN103853618A (zh) | 基于截止日期驱动的云系统代价最小化资源分配方法 | |
CN103677736A (zh) | 数字信号处理器的数据路径电路 | |
CN102043760B (zh) | 数据处理方法及系统 | |
CN104054254A (zh) | 电转换器的多核实现的基于权函数的预测控制 | |
Albers et al. | Optimal algorithms for right-sizing data centers | |
CN110018848A (zh) | 一种基于risc-v的混合混算系统及方法 | |
Lang et al. | Very high radix square root with prescaling and rounding and a combined division/square root unit | |
Shepovalov et al. | FPGA and GPU-based acceleration of ML workloads on Amazon cloud-A case study using gradient boosted decision tree library | |
CN111651208B (zh) | 面向异构众核并行计算机的模态并行计算方法及系统 | |
CN103176948A (zh) | 一种低成本的单精度初等函数运算加速器 | |
CN107092462B (zh) | 一种基于fpga的64位异步乘法器 | |
CN103761213A (zh) | 基于循环流水计算的片上阵列系统 | |
KR20190131611A (ko) | 구성가능 논리 유닛 스위칭 장치 및 방법 | |
CN102722472A (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 |