CN112230882A - 浮点数处理装置、浮点数加法装置及浮点数处理方法 - Google Patents
浮点数处理装置、浮点数加法装置及浮点数处理方法 Download PDFInfo
- Publication number
- CN112230882A CN112230882A CN202011177522.0A CN202011177522A CN112230882A CN 112230882 A CN112230882 A CN 112230882A CN 202011177522 A CN202011177522 A CN 202011177522A CN 112230882 A CN112230882 A CN 112230882A
- Authority
- CN
- China
- Prior art keywords
- floating point
- point number
- processing
- target
- result
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- 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/4824—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 using signed-digit representation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (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)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Abstract
本申请提供一种浮点数处理装置、浮点数加法装置及浮点数处理方法,该浮点数处理装置中:阶码差值运算子单元用于在目标浮点数的隐含整数位为1时,计算目标阶码与带偏阶的阶码的阶码差值;对阶移位器用于根据阶码差值对目标浮点数的隐含整数位和尾数进行右移,将输出结果发送给第一反相器;第一反相器用于根据目标浮点数的符号位,对对阶移位器的输出结果进行与符号位对应的处理,将处理结果发送给CSA压缩阵列;使CSA压缩阵列以及加法器对符号位的加和、多个浮点数处理单元输出的处理结果进行处理。本申请通过计算每个浮点数的带偏阶的阶码与目标阶码的差得到阶码差值,并根据该阶码差值进行运算,与现有技术相比,节省了计算的时间。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种浮点数处理装置、浮点数加法装置及浮点数处理方法。
背景技术
随着人工智能、信号处理,物联网等多个领域的发展,处理器对浮点半精度的性能需求越来越高。一方面,浮点半精度能够以较低的实现代价提供满足需求的计算精度,硬件效率较高;另一方面,浮点半精度只有16位宽,相对浮点单精度、双精度等高精度浮点数据格式,在相同的访存带宽下,可以提供更多单位的计算数据,让程序拥有更好的性能。因此,目前采用浮点半精度的应用越来越广泛,使得提升浮点半精度的性能变得越来越重要。
现有技术中,在进行两个浮点数相加时,往往会计算两个浮点数的阶码的差值,然后保持两个浮点数中阶码较大的浮点数的阶码不变,将两个浮点数中阶码较小的浮点数的阶码与阶码较大的浮点数对阶。然后再对完成对阶后的两个浮点数进行执行相加运算。然而,获取两个浮点数各自的阶码,再计算两个浮点数的阶码的差值在实际计算过程中,耗费的时间较多,不利于浮点半精度性能的提升。
发明内容
本申请实施例的目的在于提供一种浮点数处理装置、浮点数加法装置及浮点数处理方法,用以改善现有技术在计算浮点数相加运算时耗费时间多的问题。
第一方面,本申请实施例提供了一种浮点数处理装置,包括多个浮点数处理单元和符号位压缩逻辑单元,所述多个浮点数处理单元和所述符号位压缩逻辑单元均与进位保存加法器CSA压缩阵列连接;每个所述浮点数处理单元均包括:阶码差值运算子单元、对阶移位器和第一反相器;所述阶码差值运算子单元用于在所属的浮点数处理单元对应处理的目标浮点数的隐含整数位为1时,计算目标阶码与带偏阶的阶码的阶码差值,其中,所述阶码差值为所述目标浮点数的整体右移的位数;所述对阶移位器用于根据所述阶码差值对所述目标浮点数的所述隐含整数位和尾数进行整体右移,将进行过整体右移的所述目标浮点数作为输出结果发送给所述第一反相器;所述第一反相器用于根据所述目标浮点数的符号位,对所述对阶移位器的输出结果进行与所述符号位对应的处理,得到处理结果,并将所述处理结果发送给所述CSA压缩阵列;所述符号位压缩逻辑单元用于获取多个浮点数处理单元分别对应处理的目标浮点数的符号位,对获取的符号位进行加和运算,并将加和值发送给所述CSA压缩阵列,以使所述CSA压缩阵列对所述符号位的加和值、以及多个浮点数处理单元输出的处理结果进行加和运算,得到两个中间加和结果,并经所述CSA压缩阵列连接的加法器对所述两个中间加和结果进行加和运算得到累加值。
在上述的实施方式中,符号位压缩逻辑单元用于实现多个浮点数中每个浮点数的符号位的相加。阶码差值运算子单元在目标浮点数的隐含整数位为1时,计算预先设置的目标阶码与目标浮点数的带偏阶的阶码的阶码差值。该阶码差值同样为目标浮点数进行整体右移时,需要右移的位数。然后对接移位器根据该阶码差值,对目标浮点数的隐含整数位和尾数进行整体右移。整体右移后得到的右移结果被输入到第一反相器。第一反相器可以根据目标浮点数的符号位,对上述的右移结果进行与符号位对应的处理,得到处理结果,该目标浮点数的处理结果被输入到CSA压缩阵列。CSA压缩阵列以及与CSA压缩阵列连接的加法器可以对多个浮点数处理单元输出的处理结果以及多个浮点数的符号位的相加加和进行处理。本申请通过计算每个浮点数的带偏阶的阶码与目标阶码的差得到阶码差值,并根据该阶码差值进行运算,与现有的两两浮点数之间计算阶码差值相比,节省了计算的时间。
在一个可能的设计中,所述浮点数处理单元还包括:或处理子单元,所述或处理子单元与所述对阶移位器连接;所述或处理子单元用于:获取目标浮点数的带偏阶的阶码,并对所述带偏阶的阶码进行或操作,得到或操作结果;根据所述或操作结果,确定所述目标浮点数的隐含整数位的数值。
在上述的实施方式中,可以通过或处理子单元来确定目标浮点数的隐含整数位。或处理子单元可以获取以二进制形式表示的带偏阶的阶码,并对该带偏阶的阶码逐位进行或操作,得到或操作结果。
在一个可能的设计中,所述或处理子单元用于:根据所述或操作结果,确定所述目标浮点数的隐含整数位的数值,具体包括:当所述或操作结果为1时,确定所述目标浮点数的隐含整数位为1;当所述或操作结果为0时,确定所述目标浮点数的隐含整数位为0。
在上述的实施方式中,在或操作结果为1时,确定目标浮点数的隐含整数位为1。若对带偏阶的阶码逐位进行或操作,得到的或操作结果为0。
在一个可能的设计中,所述对阶移位器还用于在所述隐含整数位为0时,将所述目标浮点数的尾数维持在小数部分,并在整数部分补0,得到新的目标浮点数,并将所述新的目标浮点数作为输出结果发送给所述第一反相器。
在上述的实施方式中,对于隐含整数位为0的情况,可以将目标浮点数的尾数维持在小数部分,并在整数部分补0,得到新的目标浮点数,对阶移位器可以将该新的目标浮点数发送给第一反相器,以便反相器对隐含整数位为0的浮点数进行进一步的计算。
在一个可能的设计中,所述第一反相器用于:根据所述目标浮点数的符号位,对所述对阶移位器的输出结果进行与所述符号位对应的处理,得到处理结果,并将所述处理结果发送给所述CSA压缩阵列,包括:在所述目标浮点数的符号位为0时,将所述对阶移位器的输出结果发送给所述CSA压缩阵列;在所述目标浮点数的符号位为1时,将所述对阶移位器的输出结果按位取反得到反相值,并将所述反相值发送给所述CSA压缩阵列。
在上述的实施方式中,符号位为0,则意味着目标浮点数为正,则在进行加和运算时,目标浮点数对应的输出结果可以直接参与相加;符号位为1,则意味着目标浮点数为负,则在进行加和运算时,根据运算规则,加一个负数与加该负数的取反加一一致。由于符号位压缩逻辑单元已经加了目标浮点数的符号位1,即已经进行加一的操作,因此,第一反相器可以直接对目标浮点数对应的输出结果进行取反。通过第一反相器对不同符号位的浮点数进行不同的处理,使得不同符号位的浮点数均能准确地参与到加和运算中。
在一个可能的设计中,所述目标阶码的十进制对应值为31,所述阶码差值运算子单元为第二反相器;所述阶码差值运算子单元用于对所述带偏阶的阶码取反,得到所述阶码差值。
在上述的实施方式中,目标阶码可以取十进制对应值为31,即二进制对应值为11111。在目标阶码确定为31的情况下,阶码差值运算子单元可以由反相器实现。由于目标浮点数的带偏阶的阶码也是一个五位的二进制数,因此,二进制数11111(十进制对应值31)与带偏阶的阶码相减与直接对带偏阶的阶码取反等效。通过明确目标阶码为31,可以使得浮点数据处理装置的数据处理过程更加快捷高效。与现有技术相比,直接消除了阶码对阶的动作,通过取反直接实现对阶移位,节省了计算时间。
第二方面,本申请实施例提供了一种浮点数加法装置,包括CSA压缩阵列、加法器以及上述的浮点数处理装置,所述浮点数处理装置包括多个浮点数处理单元和符号位压缩逻辑单元,所述多个浮点数处理单元和符号位压缩逻辑单元均与CSA压缩阵列连接,所述CSA压缩阵列与加法器连接;所述CSA压缩阵列用于对所述符号位压缩逻辑单元计算出的符号位的加和值、以及多个浮点数处理单元输出的处理结果进行加和运算,得到两个中间加和结果;所述加法器用于对所述两个中间加和结果进行加和运算,得到累加值。
在上述的实施方式中,CSA压缩阵列可以对符号位的加和、多个浮点数处理单元输出的处理结果组成的多个加数进行处理,得到两个中间加和结果。该中间加和结果的具体值与CSA压缩阵列的内部电路的构建有关。CSA压缩阵列在计算出两个中间加和结果之后,可以将这两个中间加和结果输入到加法器,由加法器对两个中间加和结果进行加和运算,得到累加值,从而实现了多个浮点数的加法运算的过程。
在一个可能的设计中,还包括与所述CSA压缩阵列连接的前导零预测单元LZA,以及与所述LZA连接的规格化移位器;所述LZA用于根据所述两个中间加和结果,获得前导零结果,并将所述前导零结果发送给所述规格化移位器;所述规格化移位器还与所述加法器连接,所述规格化移位器用于根据目标阶码以及前导零结果,获得左移位数;并根据所述左移位数,对所述加法器输出的累加值进行左移操作以得到规格化处理结果。
在上述的实施方式中,还包括规格化移位器、与CSA压缩阵列连接的LZA。LZA用于根据两个中间加和结果,获得前导零结果。该前导零结果被发送给规格化移位器,由规格化移位器根据目标阶码和前导零结果得到左移位数,并根据具体的左移位数,对加法器计算出的累加值进行规格化左移操作。
在一个可能的设计中,所述规格化移位器用于根据目标阶码以及前导零结果,获得左移位数,具体包括:计算所述目标阶码与所述前导零结果的差值,所述差值为所述左移位数。
第三方面,本申请提供一种一种浮点数处理方法,多个浮点数处理单元中的每个浮点数处理单元的阶码差值运算子单元在对应的目标浮点数的隐含整数位为1时,计算目标阶码与带偏阶的阶码的阶码差值,其中,所述阶码差值为所述目标浮点数的整体右移的位数;所述每个浮点数处理单元的所述对阶移位器根据所述阶码差值对所述目标浮点数的所述隐含整数位和尾数进行整体右移,进行过整体右移的所述目标浮点数为对应的所述对阶移位器的输出结果;所述每个浮点数处理单元的所述第一反相器根据所述目标浮点数的符号位,对所述对阶移位器的输出结果进行与所述符号位对应的处理,得到处理结果,并将所述处理结果发送给所述CSA压缩阵列;所述符号位压缩逻辑单元获取所述多个浮点数处理单元分别对应处理的目标浮点数的符号位,对获取的符号位进行加和运算得到加和值,并将所述加和值发送给所述CSA压缩阵列,以使所述CSA压缩阵列对所述符号位的加和值、以及多个浮点数处理单元输出的处理结果进行加和运算,得到两个中间加和结果,并经所述CSA压缩阵列连接的加法器对所述两个中间加和结果进行加和运算得到累加值。
在上述的实施方式中,符号位压缩逻辑单元用于实现多个浮点数中每个浮点数的符号位的相加。阶码差值运算子单元在目标浮点数的隐含整数位为1时,计算预先设置的目标阶码与目标浮点数的带偏阶的阶码的阶码差值。该阶码差值同样为目标浮点数进行整体右移时,需要右移的位数。然后对接移位器根据该阶码差值,对目标浮点数的隐含整数位和尾数进行整体右移。整体右移后得到的右移结果被输入到第一反相器。第一反相器可以根据目标浮点数的符号位,对上述的右移结果进行与符号位对应的处理,得到处理结果,该目标浮点数的处理结果被输入到CSA压缩阵列。CSA压缩阵列以及与CSA压缩阵列连接的加法器可以对多个浮点数处理单元输出的处理结果以及多个浮点数的符号位的相加加和进行处理。本申请通过计算每个浮点数的带偏阶的阶码与目标阶码的差得到阶码差值,并根据该阶码差值进行运算,与现有的两两浮点数之间计算阶码差值相比,节省了计算的时间。
在一个可能的设计中,所述浮点数处理单元还包括:或处理子单元;所述目标浮点数的隐含整数位为1通过如下方法确定:所述或处理子单元获取目标浮点数的带偏阶的阶码,并对所述带偏阶的阶码进行或操作,得到或操作结果;若所述或操作结果为1,所述或处理子单元确定所述目标浮点数的隐含整数位为1。
在上述的实施方式中,可以通过或处理子单元来确定目标浮点数的隐含整数位。或处理子单元可以获取以二进制形式表示的带偏阶的阶码,并对该带偏阶的阶码逐位进行或操作,得到或操作结果。
在一个可能的设计中,在所述或处理子单元获取目标浮点数的带偏阶的阶码,并对所述带偏阶的阶码进行或操作,得到或操作结果之后,所述方法还包括:若或操作结果为1,确定目标浮点数的隐含整数位为1。若所述或操作结果为0,所述或处理子单元确定所述目标浮点数的隐含整数位为0;所述对阶移位器将所述目标浮点数的尾数维持在小数部分,并在整数部分补0,得到新的目标浮点数,并将所述新的目标浮点数作为输出结果发送给所述第一反相器。
在上述的实施方式中,在或操作结果为1时,确定目标浮点数的隐含整数位为1。若对带偏阶的阶码逐位进行或操作,得到的或操作结果为0,则可以将目标浮点数的尾数维持在小数部分,并在整数部分补0,得到新的目标浮点数,对阶移位器可以将该新的目标浮点数发送给第一反相器,以便反相器对隐含整数位为0的浮点数进行进一步的计算。
在一个可能的设计中,所述第一反相器根据所述目标浮点数的符号位,对所述对阶移位器的输出结果进行与所述符号位对应的处理,得到处理结果,并将所述处理结果发送给所述CSA压缩阵列,包括:所述第一反相器在所述目标浮点数的符号位为0时,将所述对阶移位器的输出结果发送给所述CSA压缩阵列;在所述目标浮点数的符号位为1时,将所述对阶移位器的输出结果按位取反得到反相值,并将所述反相值发送给所述CSA压缩阵列。
在上述的实施方式中,符号位为0,则意味着目标浮点数为正,则在进行加和运算时,目标浮点数对应的输出结果可以直接参与相加;符号位为1,则意味着目标浮点数为负,则在进行加和运算时,根据运算规则,加一个负数与加该负数的取反加一一致。由于符号位压缩逻辑单元已经加了目标浮点数的符号位1,即已经进行加一的操作,因此,第一反相器可以直接对目标浮点数对应的输出结果进行取反。通过第一反相器对不同符号位的浮点数进行不同的处理,使得不同符号位的浮点数均能准确地参与到加和运算中。
在一个可能的设计中,所述目标阶码的十进制对应值为31;所述计算目标阶码与所述带偏阶的阶码的阶码差值,包括:对所述带偏阶的阶码取反,得到所述阶码差值。
在上述的实施方式中,目标阶码可以取十进制对应值为31,即二进制对应值为11111。在目标阶码确定为31的情况下,阶码差值运算子单元可以由反相器实现。由于目标浮点数的带偏阶的阶码也是一个五位的二进制数,因此,二进制数11111(十进制对应值31)与带偏阶的阶码相减与直接对带偏阶的阶码取反等效。通过明确目标阶码为31,可以使得浮点数据处理装置的数据处理过程更加快捷高效。
为使本申请实施例所要实现的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的浮点数加法装置的示意性结构框图;
图2示出了本申请实施例提供的浮点数处理装置的示意性结构框图;
图3示出了图2的浮点数处理装置对浮点数进行处理的具体示例图;
图4示出了对阶移位器的一种具体实施方式的示意性结构框图;
图5示出了本申请实施例提供的浮点数处理方法的一种流程示意图;
图6示出了本申请实施例提供的浮点数处理方法的部分步骤的流程示意图;
图7示出了图5中步骤S140的具体步骤的流程示意图。
具体实施方式
浮点数可以用形如F=(-1)s·(x.M)·2E-bias的式子表示,其中,s表示浮点数的符号位,s由一位二进制数表示,即s可以为0或1;若s为0,则表示浮点数的符号为正;若s为1,则表示浮点数的符号为负。x表示浮点数的隐含整数位,隐含整数位可以为0或1。M表示浮点数的尾数。E表示浮点数的带偏阶的阶码;bias为偏阶。根据IEEE二进制浮点数算术标准(IEEE754)规定,s由一位二进制数表示,E可以由五位二进制数表示,尾数由十位二进制数表示,浮点半精度的数据长度为16位宽,由上述三部分组成。bias为15;E-bias的取值范围可以为-24至15,则E的取值范围可以为-9至30。
现有技术在进行两个浮点数相加时,往往会计算两个浮点数的阶码的差值,然后保持两个浮点数中阶码较大的浮点数的阶码不变,将两个浮点数中阶码较小的浮点数的阶码与阶码较大的浮点数对阶。然后再对完成对阶后的两个浮点数进行执行相加运算。
现有技术在进行上述两个浮点数相加时,会先判断待相加的两个浮点数是否为0,若两个浮点数中有一个浮点数为0,则相加结果为另一个浮点数的数值。
若两个浮点数均不为0,则会计算两者的带偏阶的阶码的阶码差值ΔE=Ex-Ey,并且将ΔE+Ey作为Fy新的阶码,同时将Fy的1.My右移ΔE个值,得到右移后的1.M'y。然后在阶码统一为Ex的情况下,将1.M'y与1.Mx相加。
获取两个浮点数各自的阶码,再计算两个浮点数的阶码的差值在实际计算过程中,耗费的时间较多。
本申请实施例提供的浮点数处理装置通过计算每个浮点数的带偏阶的阶码与目标阶码的差得到阶码差值,并根据该阶码差值进行运算,与现有的两两浮点数之间计算阶码差值相比,节省了计算的时间。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参见图1,图1示出了本申请实施例提供的浮点数加法装置的示意性结构框图,浮点数加法装置包括浮点数处理装置、进位保存加法器(Carry save adder,简称CSA)压缩阵列310、加法器320、前导零预测单元(Leading-Zero Anticipator,简称LZA)330、规格化移位器340以及舍入和异常处理模块350。浮点数处理装置与CSA压缩阵列310连接,CSA压缩阵列310分别与加法器320和LZA 330连接。加法器320和LZA 330均与规格化移位器340连接,规格化移位器340还与舍入和异常处理模块350连接。
请参见图1,浮点数处理装置包括符号位压缩逻辑单元200和多个浮点数处理单元100。符号位压缩逻辑单元200和多个浮点数处理单元100均与CSA压缩阵列310连接。
符号位压缩逻辑单元200用于获取多个浮点数的符号位的加和,并将浮点数的符号位的加和发送给CSA压缩阵列310。
可选地,在一种具体实施方式中,符号位压缩逻辑单元200获取多个浮点数的符号位的加和,可以通过如下方式实现:如图1所示,符号位压缩逻辑单元200可以获取从A0到An-1这n个浮点数中的每个浮点数的符号位,并将上述n个符号位相加在一起,得到n个符号位的累加值。
可选地,在另一种具体实施方式中,符号位压缩逻辑单元200获取多个浮点数的符号位的加和,也可以通过如下方式实现:符号位压缩逻辑单元200可以获取从A0到An-1这n个浮点数中的每个浮点数的符号位,并对上述n个符号位进行进位保存加法处理,得到符号位的两个中间加和结果。符号位压缩逻辑单元200获取多个浮点数的符号位的加和的具体方式不应该理解为是对本申请的限制。
多个浮点数处理单元100中的每个浮点数处理单元100对应处理一个浮点数,请参见图1,从A0到An-1这n个浮点数与n个浮点数处理单元100一一对应。
多个浮点数处理单元100中的每个浮点数处理单元100均包括:阶码差值运算子单元110、对阶移位器120、第一反相器130以及或处理子单元140,详情请参见图2,图2示出了浮点数Ai对应的浮点数处理单元100,其中,i=0,1,2…n-1。阶码差值运算子单元110以及或处理子单元140均用于获取浮点数Ai的带偏阶的阶码,阶码差值运算子单元110以及或处理子单元140均与对阶移位器120连接,对阶移位器120还与第一反相器130连接,第一反相器130连接到图1中的CSA压缩阵列310。
或处理子单元140用于获取浮点数Ai的带偏阶的阶码Ei,并对带偏阶的阶码进行或操作,得到或操作结果。其中,Ei为五位二进制数,或处理子单元140可以对组成Ei的五位二进制数按位进行或操作,得到或操作结果,或操作结果具体可能为1或0。若或操作结果为1,则或处理子单元140确定浮点数Ai的隐含整数位为1;若或操作结果为0,则或处理子单元140确定浮点数Ai的隐含整数位为0。
阶码差值运算子单元110用于在浮点数Ai的隐含整数位为1时,计算目标阶码与浮点数Ai的带偏阶的阶码的阶码差值。该阶码差值会被传送到对阶移位器120中,由对阶移位器120进行进一步的处理。其中,目标阶码为人为设置的一个固定值。
可选地,在一种具体实施方式中,目标阶码的十进制对应值可以是31。与之对应的,阶码差值运算子单元110具体可以为第二反相器。
在目标阶码的十进制对应值是31的情况下,阶码差值运算子单元110可以通过对浮点数Ai的带偏阶的阶码取反的方式,来得到上述的阶码差值。目标阶码十进制值31的二进制对应值为11111,浮点数Ai的带偏阶的阶码也是一个五位的二进制数,因此,二进制数11111(十进制对应值31)与浮点数Ai的带偏阶的阶码相减,与直接对浮点数Ai的带偏阶的阶码取反是等效的。
可选地,若目标阶码的十进制对应值为除31以外的其他数值,则阶码差值运算子单元110可以通过直接计算该目标阶码与浮点数Ai的带偏阶的阶码的阶码差值的方式,来得到上述的阶码差值,计算目标阶码与浮点数Ai的带偏阶的阶码的方式可以采用与现有技术相同的方式,例如,可以对浮点数Ai的带偏阶的阶码取反后,再与目标阶码相加,再得到的加和结果的基础上,再加一,便可以得到阶码差值。
对阶移位器120可以从或处理子单元140获取到隐含整数位,并执行与隐含整数位对应的操作。即对阶移位器120所要执行的操作与隐含整数位的具体值相关,隐含整数位为1或0,对阶移位器120执行的操作不同。
在隐含整数位为1时,对阶移位器120用于从阶码差值运算子单元110获取到目标阶码与浮点数Ai的带偏阶的阶码的阶码差值,并根据该阶码差值,对浮点数Ai的进行整体右移。即对阶移位器120对浮点数Ai的整数位和尾数组成的整体进行整体右移,得到右移后的输出结果,该输出结果会传送到第一反相器130。
在隐含整数位为0时,对阶移位器120用于将浮点数Ai的尾数维持在小数部分,并在整数部分补0,得到新的浮点数Ai,并将该新的浮点数Ai作为输出结果,发送给第一反相器130。
请参见图4,图4示出了对阶移位器120的一种具体实施方式,对阶移位器120可以包括数据选择器121(multiplexer,简称mux)和移位器122,数据选择器121包括两个输入端和一个输出端,数据选择器121的第一输入端连接有移位器122,第二输入端连接有一根信号线。
数据选择器121可以接收或处理子单元140发送的隐含整数位,并根据隐含整数位的具体值,选择需导通的输入端。数据选择器121在隐含整数位为1时,选择导通连接有移位器122的第一输入端;在隐含整数位为0时,选择导通连接一根信号线的第二输入端。
移位器122可以接收阶码差值运算子单元110输出的阶码差值,并根据阶码差值对浮点数Ai的整数位和尾数组成的整体进行整体右移,并将结果输出给数据选择器121。
请参见图2,第一反相器130会获取浮点数Ai的符号位,并执行与浮点数Ai的符号位对应的操作。即第一反相器130所要执行的操作与浮点数Ai的符号位的具体值相关,浮点数Ai的符号位为1或0,第一反相器130所要执行的操作不同。
在浮点数Ai的符号位为0时,第一反相器130可以将对阶移位器120的输出结果直接发送到CSA压缩阵列310,而不对对阶移位器120的输出结果进行处理。
符号位为0,则意味着浮点数Ai为正,则在进行加和运算时,浮点数Ai对应的输出结果可以直接参与相加。
在浮点数Ai的符号位为1时,第一反相器130将对阶移位器120的输出结果按位取反,得到反相值,再将该反相值发送给CSA压缩阵列310。
符号位为1,则意味着浮点数Ai为负,则在进行加和运算时,根据运算规则,加一个负数的结果与加该负数的反相值并且再加一的结果相同。请参见图1,由于符号位压缩逻辑单元200已经加了目标浮点数的符号位1,即已经进行过加一的操作,因此,第一反相器130可以直接对浮点数Ai对应的输出结果进行取反,得到Ai的反相值。
通过第一反相器130对不同符号位的浮点数进行不同的处理,使得不同符号位的浮点数均能准确地参与到加和运算中。
通过图2示出的与浮点数Ai对应的浮点数处理单元100,对浮点数Ai进行处理得到了处理结果,且处理结果被传输到图1示出的CSA压缩阵列310,图1中的其他的浮点数处理单元100也会对自身对应的浮点数执行上述处理过程,并将处理结果传输到CSA压缩阵列310,在此便不做赘述。
请参见图3,图3示出了浮点数的隐含整数位为1时以及隐患整数位为0时,图2示出的浮点数处理单元100对浮点数进行处理的示例图,浮点数均是由隐含整数位与10位尾数组成的11位浮点数。
不妨设:目标阶码的十进制对应值为31;E-bias的取值范围为-24至15,bias取值为15,其中,包括-24至-15这10位小数部分,-14至-1这14位负指数,0至15这16位正指数。对应的,E的取值范围为-9至30,其中,包括-9至0这10位小数部分,1至14这14位负指数,15至30这16位正指数。
请参见图3,对于E=30的浮点数,可以利用阶码差分运算子单元110计算目标阶码与E的差值,即31-30=1,得出该浮点数需要整体右移1位,则对阶移位器120将该浮点数整体右移1位,即隐含整数位1移动至E的取值为30对应的位置,且隐含整数位与10位尾数位共同组成的11位数被移动到E的取值为30至20对应的位置,在E的取值为-9至19的部分补0,详情请参见图3示出的E=30所在的行,其中,E=30所在的行的虚线框框出的部分为上述的补0的部分。
对于E=15的浮点数,可以利用阶码差分运算子单元110计算目标阶码与E的差值,即31-15=16,得出该浮点数需要整体右移16位,则对阶移位器120将该浮点数整体右移16位,即隐含整数位1移动至E的取值为15对应的位置,且隐含整数位与10位尾数位共同组成的11位数被移动到E的取值为15至5对应的位置,在E的取值为-9至4的部分以及16至30的部分补0。详情请参见图3示出的E=15所在的行,其中,E=15所在的行的虚线框框出的部分为上述的补0的部分。
对于E=1的浮点数,可以利用阶码差分运算子单元110计算目标阶码与E的差值,即31-1=30,得出该浮点数需要整体右移30位,则对阶移位器120将该浮点数整体右移30位,即隐含整数位1移动至E的取值为1对应的位置,且隐含整数位与10位尾数位共同组成的11位数被移动到E的取值为-9至1对应的位置,在E的取值为2至30的部分补0。详情请参见图3示出的E=1所在的行,其中,E=1所在的行的虚线框框出的部分为上述的补0的部分。
可选地,请参见图3,对于隐含整数位为0的非规格数,E恒等于0,该非规格数与隐含整数位为1的规格数的E=1的浮点数的处理过程相同,在此便不做赘述。
在经过对阶移位器的操作后,便可以得到右移后的40位长的数据。
第一反相器130可以根据符号位来确定是否对右移后的40位长的数据进行按位取反。
在符号位为0时,第一反相器130可以直接将右移后的40位长的数据发送到CSA压缩阵列310,而不对右移后的40位长的数据进行按位取反。
在符号位为1时,第一反相器130可以对右移后的40位长的数据进行按位取反。
请参见图1,CSA压缩阵列310用于对符号位压缩逻辑单元200得到的符号位的加和、以及多个浮点数处理单元100输出的处理结果进行加和运算,得到两个中间加和结果。请参见图1,CSA压缩阵列310输出的两个中间加和结果可以分别输出给加法器320和LZA330。
加法器320得到CSA压缩阵列310算出的两个中间加和结果,并对两个中间加和结果进行加和运算,得到累加值。该累加值为图1示出的A0到An-1这n个浮点数的累加值。
LZA 330用于根据所述两个中间加和结果,获得前导零结果,并将前导零结果发送给规格化移位器340。
规格化移位器340用于根据目标阶码以及前导零结果,获得左移位数;并根据左移位数,对所述累加值进行左移操作,得到规格化处理结果。规格化移位器340可以将规格化处理结果发送给舍入和异常处理模块350。
可选地,规格化移位器340可以通过如下方式计算左移位数:
规格化移位器340计算目标阶码与LZA 330得到的前导零结果的差值,该差值便为左移位数。其中,目标阶码可以存储在规格化移位器340中。若目标阶码的十进制对应值为31,则规格化移位器340可以通过对前导零结果取反的方式得到目标阶码与前导零结果的差值。
舍入和异常处理模块350用于获取规格化处理结果,并对该规格化处理结果进行舍入处理和异常情况处理。
在IEEE754标准中,舍入处理提供了四种可选方法:
就近舍入:其实质就是通常所说的"四舍五入"。例如,尾数超出规定的23位的多余位是10010,多余位的值超过规定的最低有效位值的一半,故最低有效位应增1;若尾数超出规定的23位的多余位是01111,则进行截尾即可。对尾数超出规定的23位的多余位是10000这种特殊情况,可以通过如下方式进行处理:若最低有效位现为0,则截尾处理;若最低有效位现为1,则向上进一位使其变为0。
朝0舍入:朝数轴原点方向舍入,即简单的截尾。无论尾数是正数还是负数,截尾都使取值的绝对值比原值的绝对值小。
朝正无穷舍入:对正数来说,只要多余位不全为0,则向最低有效位进1;对负数来说,则进行截尾处理。
朝负无穷舍入:处理方法与朝正无穷舍入情况相反。对正数来说,只要多余位不全为0,则进行截尾处理;对负数来说,向最低有效位进1。
异常情况处理指的是判断浮点数是否为无穷大或NAN,若是,则对该浮点数进行专门的异常数处理流程,该异常数处理流程可以采用现有技术中的异常数处理流程。
本申请通过计算每个浮点数的带偏阶的阶码与目标阶码的差得到阶码差值,并根据该阶码差值进行运算,与现有的两两浮点数之间计算阶码差值相比,节省了计算的时间。
在目标阶码确定为十进制值31(即二进制对应值为11111)的情况下,二进制数11111与带偏阶的阶码相减与直接对带偏阶的阶码取反等效。通过明确目标阶码为31,并对带偏阶的阶码取反获取目标阶码与带偏阶的阶码的差值,可以使得浮点数据处理装置的数据处理过程更加快捷高效。
本申请实施例提供的浮点数加法装置中,对浮点数的符号位进行处理的线路、对阶移位处理过程对应的线路以及CSA压缩阵列310进行加和运算的路径均相互独立,对浮点数的符号位进行处理的过程以及对阶移位的处理过程均不会占据CSA压缩阵列310进行加和运算的路径,进一步节约了处理时间。
图5为本申请实施例提供的浮点数处理方法的一种流程示意图,该浮点数处理方法由上述的浮点数处理装置执行,具体包括如下步骤S110至步骤S140:
步骤S110,多个浮点数处理单元中的每个浮点数处理单元的阶码差值运算子单元在对应的目标浮点数的隐含整数位为1时,计算目标阶码与带偏阶的阶码的阶码差值,其中,所述阶码差值为所述目标浮点数的整体右移的位数。
步骤S120,每个浮点数处理单元的对阶移位器根据所述阶码差值对所述目标浮点数的所述隐含整数位和尾数进行整体右移,进行过整体右移的所述目标浮点数为对应的所述对阶移位器的输出结果。
步骤S130,每个浮点数处理单元的第一反相器根据所述目标浮点数的符号位,对所述对阶移位器的输出结果进行与所述符号位对应的处理,得到处理结果,并将所述处理结果发送给CSA压缩阵列。
步骤S140,符号位压缩逻辑单元获取所述多个浮点数处理单元分别对应处理的目标浮点数的符号位,对获取的符号位进行加和运算得到加和值,并将所述加和值发送给所述CSA压缩阵列。
目标阶码的十进制对应值可以为31,则计算目标阶码与所述带偏阶的阶码的阶码差值,包括:对所述带偏阶的阶码取反,得到所述阶码差值。
目标阶码可以取十进制对应值为31,即二进制对应值为11111。在目标阶码确定为31的情况下,阶码差值运算子单元110可以由反相器实现。由于目标浮点数的带偏阶的阶码也是一个五位的二进制数,因此,二进制数11111(十进制对应值31)与带偏阶的阶码相减与直接对带偏阶的阶码取反等效。
符号位压缩逻辑单元200用于实现多个浮点数中每个浮点数的符号位的相加。阶码差值运算子单元110在目标浮点数的隐含整数位为1时,计算预先设置的目标阶码与目标浮点数的带偏阶的阶码的阶码差值。该阶码差值同样为目标浮点数进行整体右移时,需要右移的位数。然后对接移位器根据该阶码差值,对目标浮点数的隐含整数位和尾数进行整体右移。整体右移后得到的右移结果被输入到第一反相器130。第一反相器130可以根据目标浮点数的符号位,对上述的右移结果进行与符号位对应的处理,得到处理结果,该目标浮点数的处理结果被输入到CSA压缩阵列310。CSA压缩阵列310以及加法器320可以对多个浮点数处理单元100输出的处理结果以及多个浮点数的符号位的加和进行相加处理。本申请通过计算每个浮点数的带偏阶的阶码与目标阶码的差得到阶码差值,并根据该阶码差值进行运算,与现有的两两浮点数之间计算阶码差值相比,节省了计算的时间。
请参见图7,图7示出了步骤S140的具体步骤的流程示意图,具体包括如下步骤S141至步骤S142:
步骤S141,第一反相器130在所述目标浮点数的符号位为0时,将所述对阶移位器120的输出结果发送给所述CSA压缩阵列310。
符号位为0,则意味着目标浮点数为正,则在进行加和运算时,目标浮点数对应的输出结果可以直接参与相加。
步骤S142,在所述目标浮点数的符号位为1时,将所述对阶移位器120的输出结果按位取反得到反相值,并将所述反相值发送给所述CSA压缩阵列310。
符号位为1,则意味着目标浮点数为负,则在进行加和运算时,根据运算规则,加一个负数与加该负数的取反加一一致。由于符号位压缩逻辑单元200已经加了目标浮点数的符号位1,即已经进行加一的操作,因此,第一反相器130可以直接对目标浮点数对应的输出结果进行取反。通过第一反相器130对不同符号位的浮点数进行不同的处理,使得不同符号位的浮点数均能准确地参与到加和运算中。
可选地,请参见图6,目标浮点数的隐含整数位为1通过如下步骤S210至步骤S220确定:
步骤S210,或处理子单元140获取目标浮点数的带偏阶的阶码,并对所述带偏阶的阶码进行或操作,得到或操作结果。
步骤S220,若所述或操作结果为1,所述或处理子单元140确定所述目标浮点数的隐含整数位为1。
可以通过或处理子单元140来确定目标浮点数的隐含整数位。或处理子单元140可以获取以二进制形式表示的带偏阶的阶码,并对该带偏阶的阶码逐位进行或操作,得到或操作结果。在或操作结果为1时,确定目标浮点数的隐含整数位为1。
可选地,请参见图6,或处理子单元140还可以执行如下步骤S230至步骤S240:
步骤S230,若所述或操作结果为0,所述或处理子单元140确定所述目标浮点数的隐含整数位为0。
步骤S240,所述对阶移位器120将所述目标浮点数的尾数维持在小数部分,并在整数部分补0,得到新的目标浮点数,并将所述新的目标浮点数作为输出结果发送给所述第一反相器130。
若对带偏阶的阶码逐位进行或操作,得到的或操作结果为0,则可以将目标浮点数的尾数维持在小数部分,并在整数部分补0,得到新的目标浮点数,对阶移位器120可以将该新的目标浮点数发送给第一反相器130,以便反相器对隐含整数位为0的浮点数进行进一步的计算。
在本申请所提供的实施例中,应该理解到,所揭露设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种浮点数处理装置,其特征在于,包括多个浮点数处理单元和符号位压缩逻辑单元,所述多个浮点数处理单元和所述符号位压缩逻辑单元均与进位保存加法器CSA压缩阵列连接;
每个所述浮点数处理单元均包括:阶码差值运算子单元、对阶移位器和第一反相器;
所述阶码差值运算子单元用于在所属的浮点数处理单元对应处理的目标浮点数的隐含整数位为1时,计算目标阶码与带偏阶的阶码的阶码差值,其中,所述阶码差值为所述目标浮点数的整体右移的位数;
所述对阶移位器用于根据所述阶码差值对所述目标浮点数的所述隐含整数位和尾数进行整体右移,将进行过整体右移的所述目标浮点数作为输出结果发送给所述第一反相器;
所述第一反相器用于根据所述目标浮点数的符号位,对所述对阶移位器的输出结果进行与所述符号位对应的处理,得到处理结果,并将所述处理结果发送给所述CSA压缩阵列;
所述符号位压缩逻辑单元用于获取多个浮点数处理单元分别对应处理的目标浮点数的符号位,对获取的符号位进行加和运算,并将加和值发送给所述CSA压缩阵列,以使所述CSA压缩阵列对所述符号位的加和值、以及多个浮点数处理单元输出的处理结果进行加和运算,得到两个中间加和结果,并经所述CSA压缩阵列连接的加法器对所述两个中间加和结果进行加和运算得到累加值。
2.根据权利要求1所述的浮点数处理装置,其特征在于,所述浮点数处理单元还包括:或处理子单元,所述或处理子单元与所述对阶移位器连接;
所述或处理子单元用于:
获取目标浮点数的带偏阶的阶码,并对所述带偏阶的阶码进行或操作,得到或操作结果;
根据所述或操作结果,确定所述目标浮点数的隐含整数位的数值。
3.根据权利要求2所述的浮点数处理装置,其特征在于,所述或处理子单元用于:根据所述或操作结果,确定所述目标浮点数的隐含整数位的数值,具体包括:
当所述或操作结果为1时,确定所述目标浮点数的隐含整数位为1;当所述或操作结果为0时,确定所述目标浮点数的隐含整数位为0。
4.根据权利要求1所述的浮点数处理装置,其特征在于,所述对阶移位器还用于在所述隐含整数位为0时,将所述目标浮点数的尾数维持在小数部分,并在整数部分补0,得到新的目标浮点数,并将所述新的目标浮点数作为输出结果发送给所述第一反相器。
5.根据权利要求1所述的浮点数处理装置,其特征在于,所述第一反相器用于:根据所述目标浮点数的符号位,对所述对阶移位器的输出结果进行与所述符号位对应的处理,得到处理结果,并将所述处理结果发送给所述CSA压缩阵列,包括:
在所述目标浮点数的符号位为0时,将所述对阶移位器的输出结果发送给所述CSA压缩阵列;在所述目标浮点数的符号位为1时,将所述对阶移位器的输出结果按位取反得到反相值,并将所述反相值发送给所述CSA压缩阵列。
6.根据权利要求1所述的浮点数处理装置,其特征在于,所述目标阶码的十进制对应值为31,所述阶码差值运算子单元为第二反相器;
所述阶码差值运算子单元用于对所述带偏阶的阶码取反,得到所述阶码差值。
7.一种浮点数加法装置,其特征在于,包括CSA压缩阵列、加法器以及权利要求1-6任一项所述的浮点数处理装置,所述浮点数处理装置包括多个浮点数处理单元和符号位压缩逻辑单元,所述多个浮点数处理单元和符号位压缩逻辑单元均与CSA压缩阵列连接,所述CSA压缩阵列与加法器连接;
所述CSA压缩阵列用于对所述符号位压缩逻辑单元计算出的符号位的加和值、以及多个浮点数处理单元输出的处理结果进行加和运算,得到两个中间加和结果;
所述加法器用于对所述两个中间加和结果进行加和运算,得到累加值。
8.根据权利要求7所述的浮点数加法装置,其特征在于,还包括与所述CSA压缩阵列连接的前导零预测单元LZA,以及与所述LZA连接的规格化移位器;
所述LZA用于根据所述两个中间加和结果,获得前导零结果,并将所述前导零结果发送给所述规格化移位器;
所述规格化移位器还与所述加法器连接,所述规格化移位器用于根据目标阶码以及前导零结果,获得左移位数;并根据所述左移位数,对所述加法器输出的累加值进行左移操作以得到规格化处理结果。
9.根据权利要求8所述的浮点数加法装置,其特征在于,所述规格化移位器用于根据目标阶码以及前导零结果,获得左移位数,具体包括:
计算所述目标阶码与所述前导零结果的差值,所述差值为所述左移位数。
10.一种浮点数处理方法,其特征在于,所述方法包括:
多个浮点数处理单元中的每个浮点数处理单元的阶码差值运算子单元在对应的目标浮点数的隐含整数位为1时,计算目标阶码与带偏阶的阶码的阶码差值,其中,所述阶码差值为所述目标浮点数的整体右移的位数;
所述每个浮点数处理单元的对阶移位器根据所述阶码差值对所述目标浮点数的所述隐含整数位和尾数进行整体右移,进行过整体右移的所述目标浮点数为对应的所述对阶移位器的输出结果;
所述每个浮点数处理单元的第一反相器根据所述目标浮点数的符号位,对所述对阶移位器的输出结果进行与所述符号位对应的处理,得到处理结果,并将所述处理结果发送给CSA压缩阵列;
所述符号位压缩逻辑单元获取所述多个浮点数处理单元分别对应处理的目标浮点数的符号位,对获取的符号位进行加和运算得到加和值,并将所述加和值发送给所述CSA压缩阵列,以使所述CSA压缩阵列对所述符号位的加和值、以及多个浮点数处理单元输出的处理结果进行加和运算,得到两个中间加和结果,并经所述CSA压缩阵列连接的加法器对所述两个中间加和结果进行加和运算得到累加值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011177522.0A CN112230882B (zh) | 2020-10-28 | 2020-10-28 | 浮点数处理装置、浮点数加法装置及浮点数处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011177522.0A CN112230882B (zh) | 2020-10-28 | 2020-10-28 | 浮点数处理装置、浮点数加法装置及浮点数处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112230882A true CN112230882A (zh) | 2021-01-15 |
CN112230882B CN112230882B (zh) | 2021-06-01 |
Family
ID=74109895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011177522.0A Active CN112230882B (zh) | 2020-10-28 | 2020-10-28 | 浮点数处理装置、浮点数加法装置及浮点数处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112230882B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672198A (zh) * | 2021-08-18 | 2021-11-19 | 南京英锐创电子科技有限公司 | 二进制浮点数加法运算方法、电路及计算装置 |
CN114253507A (zh) * | 2021-12-22 | 2022-03-29 | 广东技术师范大学 | 伺服驱动器芯片的浮点数计算方法、装置及系统 |
CN114265575A (zh) * | 2021-12-31 | 2022-04-01 | 上海阵量智能科技有限公司 | 浮点数处理方法、装置、电子设备及存储介质 |
CN114327361A (zh) * | 2022-03-08 | 2022-04-12 | 中科南京智能技术研究院 | 一种21比特浮点加法器 |
CN117097345A (zh) * | 2022-12-28 | 2023-11-21 | 山东华科信息技术有限公司 | 用于分布式新能源的数据压缩方法及系统 |
WO2024120249A1 (zh) * | 2022-12-09 | 2024-06-13 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000155671A (ja) * | 1998-11-24 | 2000-06-06 | Mitsubishi Electric Corp | 浮動小数点演算装置 |
CN1410877A (zh) * | 2001-09-27 | 2003-04-16 | 中国科学院计算技术研究所 | 不必计算指数差而直接对阶的高速浮点加减部件 |
US6785701B2 (en) * | 2001-01-26 | 2004-08-31 | Yonsei University | Apparatus and method of performing addition and rounding operation in parallel for floating-point arithmetic logical unit |
CN101093442A (zh) * | 2007-07-18 | 2007-12-26 | 中国科学院计算技术研究所 | 一种浮点乘加器及其乘法csa压缩树的进位校验装置 |
CN101178645A (zh) * | 2007-12-20 | 2008-05-14 | 清华大学 | 一种并行浮点乘加单元 |
CN101221490A (zh) * | 2007-12-20 | 2008-07-16 | 清华大学 | 一种具有数据前送结构的浮点乘加单元 |
CN101263467A (zh) * | 2005-09-14 | 2008-09-10 | 飞思卡尔半导体公司 | 浮点规格化和反规格化 |
CN101751239A (zh) * | 2009-12-31 | 2010-06-23 | 西北工业大学 | 高速浮点规格化运算器 |
CN102566965A (zh) * | 2011-12-22 | 2012-07-11 | 上海大学 | 一种误差平坦的浮点数对数运算装置 |
CN102799411A (zh) * | 2012-06-29 | 2012-11-28 | 华为技术有限公司 | 浮点数累加电路及其实现方法 |
US8620983B2 (en) * | 2011-01-05 | 2013-12-31 | Via Technologies, Inc. | Leading sign digit predictor for floating point near subtractor |
CN105404494A (zh) * | 2015-12-18 | 2016-03-16 | 苏州中晟宏芯信息科技有限公司 | 一种基于内部前推的浮点融合乘加方法、装置及处理器 |
CN107273090A (zh) * | 2017-05-05 | 2017-10-20 | 中国科学院计算技术研究所 | 面向神经网络处理器的近似浮点乘法器及浮点数乘法 |
CN107305485A (zh) * | 2016-04-25 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种用于执行多个浮点数相加的装置及方法 |
CN109343823A (zh) * | 2018-11-01 | 2019-02-15 | 何安平 | 基于异步控制的浮点数加法器和浮点数的相加方法 |
US20190121615A1 (en) * | 2017-10-25 | 2019-04-25 | Arm Limited | Apparatus and method for subtracting significand values of floating-point operands |
CN110168493A (zh) * | 2017-01-16 | 2019-08-23 | 国际商业机器公司 | 在128位宽的操作数上的融合乘加浮点运算 |
CN110515584A (zh) * | 2019-08-09 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 浮点计算方法及系统 |
CN110888623A (zh) * | 2019-11-25 | 2020-03-17 | 集美大学 | 数据转换方法、乘法器、加法器、终端设备及存储介质 |
CN111240746A (zh) * | 2020-01-12 | 2020-06-05 | 苏州浪潮智能科技有限公司 | 一种浮点数据反量化及量化的方法和设备 |
US20200183650A1 (en) * | 2018-12-10 | 2020-06-11 | King Fahd University Of Petroleum And Minerals | Radix-1000 decimal floating-point numbers and arithmetic units using a skewed representation of the fraction |
US20200310754A1 (en) * | 2019-03-28 | 2020-10-01 | Arm Limited | Floating-point addition |
-
2020
- 2020-10-28 CN CN202011177522.0A patent/CN112230882B/zh active Active
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000155671A (ja) * | 1998-11-24 | 2000-06-06 | Mitsubishi Electric Corp | 浮動小数点演算装置 |
US6785701B2 (en) * | 2001-01-26 | 2004-08-31 | Yonsei University | Apparatus and method of performing addition and rounding operation in parallel for floating-point arithmetic logical unit |
CN1410877A (zh) * | 2001-09-27 | 2003-04-16 | 中国科学院计算技术研究所 | 不必计算指数差而直接对阶的高速浮点加减部件 |
CN101263467A (zh) * | 2005-09-14 | 2008-09-10 | 飞思卡尔半导体公司 | 浮点规格化和反规格化 |
CN101093442A (zh) * | 2007-07-18 | 2007-12-26 | 中国科学院计算技术研究所 | 一种浮点乘加器及其乘法csa压缩树的进位校验装置 |
CN101178645A (zh) * | 2007-12-20 | 2008-05-14 | 清华大学 | 一种并行浮点乘加单元 |
CN101221490A (zh) * | 2007-12-20 | 2008-07-16 | 清华大学 | 一种具有数据前送结构的浮点乘加单元 |
CN101751239A (zh) * | 2009-12-31 | 2010-06-23 | 西北工业大学 | 高速浮点规格化运算器 |
US8620983B2 (en) * | 2011-01-05 | 2013-12-31 | Via Technologies, Inc. | Leading sign digit predictor for floating point near subtractor |
CN102566965A (zh) * | 2011-12-22 | 2012-07-11 | 上海大学 | 一种误差平坦的浮点数对数运算装置 |
CN102799411A (zh) * | 2012-06-29 | 2012-11-28 | 华为技术有限公司 | 浮点数累加电路及其实现方法 |
CN105404494A (zh) * | 2015-12-18 | 2016-03-16 | 苏州中晟宏芯信息科技有限公司 | 一种基于内部前推的浮点融合乘加方法、装置及处理器 |
CN107305485A (zh) * | 2016-04-25 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种用于执行多个浮点数相加的装置及方法 |
CN110168493A (zh) * | 2017-01-16 | 2019-08-23 | 国际商业机器公司 | 在128位宽的操作数上的融合乘加浮点运算 |
CN107273090A (zh) * | 2017-05-05 | 2017-10-20 | 中国科学院计算技术研究所 | 面向神经网络处理器的近似浮点乘法器及浮点数乘法 |
US20190121615A1 (en) * | 2017-10-25 | 2019-04-25 | Arm Limited | Apparatus and method for subtracting significand values of floating-point operands |
CN109343823A (zh) * | 2018-11-01 | 2019-02-15 | 何安平 | 基于异步控制的浮点数加法器和浮点数的相加方法 |
US20200183650A1 (en) * | 2018-12-10 | 2020-06-11 | King Fahd University Of Petroleum And Minerals | Radix-1000 decimal floating-point numbers and arithmetic units using a skewed representation of the fraction |
US20200310754A1 (en) * | 2019-03-28 | 2020-10-01 | Arm Limited | Floating-point addition |
CN110515584A (zh) * | 2019-08-09 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 浮点计算方法及系统 |
CN110888623A (zh) * | 2019-11-25 | 2020-03-17 | 集美大学 | 数据转换方法、乘法器、加法器、终端设备及存储介质 |
CN111240746A (zh) * | 2020-01-12 | 2020-06-05 | 苏州浪潮智能科技有限公司 | 一种浮点数据反量化及量化的方法和设备 |
Non-Patent Citations (5)
Title |
---|
ALEXANDRE F. TENCA: "Multi-operand Floating-Point Addition", 《2009 19TH IEEE SYMPOSIUM ON COMPUTER ARITHMETIC》 * |
TAO YAO 等: "A novel floating-point function unit combining MAF and 3-input adder", 《2012 IEEE INTERNATIONAL CONFERENCE ON SIGNAL PROCESSING, COMMUNICATION AND COMPUTING (ICSPCC 2012)》 * |
YAO TAO 等: "Correctly rounded architectures for Floating-Point multi-operand addition and dot-product computation", 《2013 IEEE 24TH INTERNATIONAL CONFERENCE ON APPLICATION-SPECIFIC SYSTEMS, ARCHITECTURES AND PROCESSORS》 * |
姚涛 等: "浮点和与点积计算结构研究", 《小型微型计算机系统》 * |
高静 等: "基于粗粒度可重构处理器的浮点乘加算法", 《天津大学学报(自然科学与工程技术版)》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672198A (zh) * | 2021-08-18 | 2021-11-19 | 南京英锐创电子科技有限公司 | 二进制浮点数加法运算方法、电路及计算装置 |
CN113672198B (zh) * | 2021-08-18 | 2024-01-26 | 南京英锐创电子科技有限公司 | 二进制浮点数加法运算电路控制方法、电路及计算装置 |
CN114253507A (zh) * | 2021-12-22 | 2022-03-29 | 广东技术师范大学 | 伺服驱动器芯片的浮点数计算方法、装置及系统 |
CN114265575A (zh) * | 2021-12-31 | 2022-04-01 | 上海阵量智能科技有限公司 | 浮点数处理方法、装置、电子设备及存储介质 |
WO2023124362A1 (zh) * | 2021-12-31 | 2023-07-06 | 上海商汤智能科技有限公司 | 浮点数处理方法、装置、电子设备及存储介质 |
CN114327361A (zh) * | 2022-03-08 | 2022-04-12 | 中科南京智能技术研究院 | 一种21比特浮点加法器 |
CN114327361B (zh) * | 2022-03-08 | 2022-05-27 | 中科南京智能技术研究院 | 一种21比特浮点加法器 |
WO2024120249A1 (zh) * | 2022-12-09 | 2024-06-13 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
CN117097345A (zh) * | 2022-12-28 | 2023-11-21 | 山东华科信息技术有限公司 | 用于分布式新能源的数据压缩方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112230882B (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112230882B (zh) | 浮点数处理装置、浮点数加法装置及浮点数处理方法 | |
US9639326B2 (en) | Floating-point adder circuitry | |
US4758972A (en) | Precision rounding in a floating point arithmetic unit | |
CA1311848C (en) | Apparatus and method for floating point normalization prediction | |
US9552189B1 (en) | Embedded floating-point operator circuitry | |
KR20150003338A (ko) | 디지털 신호 프로세서들에서의 신호 처리를 위한 시스템 및 방법 | |
CN114546330B (zh) | 函数实现方法、逼近区间分段方法、芯片、设备及介质 | |
CN112463113B (zh) | 浮点加法单元 | |
CN108055041B (zh) | 一种数据类型转换电路单元及装置 | |
CN112130803A (zh) | 具有正确舍入的浮点点积运算器 | |
KR20170138143A (ko) | 단일 곱셈-누산 방법 및 장치 | |
US4639887A (en) | Bifurcated method and apparatus for floating point addition with decreased latency time | |
CN112527239B (zh) | 一种浮点数据处理方法及装置 | |
CN116643718A (zh) | 一种流水线结构的浮点融合乘加装置、方法及处理器 | |
US9400635B1 (en) | Methods and apparatus for performing dynamic data alignment for floating-point operations | |
US7290023B2 (en) | High performance implementation of exponent adjustment in a floating point design | |
CN112667197B (zh) | 一种基于posit浮点数格式的参数化加减法运算电路 | |
CN113126954A (zh) | 浮点数乘法计算的方法、装置和算术逻辑单元 | |
CN113377334B (zh) | 一种浮点数据处理方法、装置及存储介质 | |
CN102789376B (zh) | 浮点数加法电路及其实现方法 | |
CN116974512A (zh) | 浮点运算装置、矢量处理装置、处理器及电子设备 | |
CN112394904B (zh) | 一种浮点数据处理方法、运算器及电子设备 | |
CN109582279B (zh) | 数据运算装置及相关产品 | |
WO2022109917A1 (zh) | 浮点运算装置、浮点运算方法、可移动平台及存储介质 | |
CN117873427A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Huayuan Industrial Zone, Binhai New Area, Tianjin 300450 Applicant after: Haiguang Information Technology Co., Ltd Address before: 100082 industrial incubation-3-8, North 2-204, 18 Haitai West Road, Huayuan Industrial Zone, Haidian District, Beijing Applicant before: Haiguang Information Technology Co., Ltd |
|
GR01 | Patent grant | ||
GR01 | Patent grant |