CN111930342B - 一种针对规格化浮点数的误差无偏近似乘法器及其实现方法 - Google Patents

一种针对规格化浮点数的误差无偏近似乘法器及其实现方法 Download PDF

Info

Publication number
CN111930342B
CN111930342B CN202010969041.7A CN202010969041A CN111930342B CN 111930342 B CN111930342 B CN 111930342B CN 202010969041 A CN202010969041 A CN 202010969041A CN 111930342 B CN111930342 B CN 111930342B
Authority
CN
China
Prior art keywords
module
output
mantissa
exponent
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.)
Active
Application number
CN202010969041.7A
Other languages
English (en)
Other versions
CN111930342A (zh
Inventor
卓成
陈闯涛
杨森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202010969041.7A priority Critical patent/CN111930342B/zh
Publication of CN111930342A publication Critical patent/CN111930342A/zh
Application granted granted Critical
Publication of CN111930342B publication Critical patent/CN111930342B/zh
Priority to US17/190,417 priority patent/US11429347B2/en
Priority to JP2021065061A priority patent/JP7016559B1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying

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

本发明公开了一种针对规格化浮点数的误差无偏近似乘法器及其实现方法,误差无偏近似乘法器包括符号与指数位模块、尾数近似模块和规格化模块;符号与指数位模块处理浮点数的符号运算和指数位运算;尾数近似模块通过多级误差修正模块的结果求和得到不同精度要求下的尾数近似结果;规格化模块根据尾数的运算结果对指数位进行调整,同时处理指数位溢出的情况,得到最终的乘积结果。本发明针对IEEE 754标准下规格化浮点数的乘法运算,在可控制精度等级的情况下,误差分布无偏,同时有明显的面积、速度、能效提升;适用于图像处理、机器学习等应用。

Description

一种针对规格化浮点数的误差无偏近似乘法器及其实现方法
技术领域
本发明涉及低功耗设计、近似计算、图像处理、机器学习等工程技术领域,特别涉及一种针对规格化浮点数的误差无偏近似乘法器及其实现方法。
背景技术
随着物联网的设备的快速发展,智能移动和可穿戴设备的功耗成为了限制视频图像处理等计算密集型应用效果的因素之一。乘法是视频图像处理、卷积神经网络等应用中的关键操作,同时也是降低功耗的关键。特定应用如多媒体处理、神经网络具有对于误差的容忍特性,这意味着计算过程中的近似对于结果的影响很小,利用这些特性,可以在降低乘法器精度的情况下大幅降低功耗、面积同时提高速度。
近年来,近似乘法器的研究多针对于近似电路模块的设计,如近似的乘法或加法模块,通过重新设计加法模块的逻辑电路以简化电路的复杂度,如以近似的4-2 、15-4Compressors模块替代原有的加法电路,另外,Parag Kulkarni等人提出2×2近似乘法器,使用3 bit来表示乘法结果(误差概率1/16),利用该近似乘法器生成修正误差,并通过添加移位来建立更大位宽的乘法器。这些近似乘法器由于其固定的逻辑设计无法做到精度的调节,并且一般平均误差较大。
其他的近似方法如DRUM乘法器,其通过截取为k长度的尾数,以该部分尾数的乘法结果近似尾数的乘积,通过调节k的值可调节结果精度,在截取尾数后补1使得结果误差无偏。CFPU,RMAC是针对于浮点数的近似乘法器,两者采用近似和精确乘法器混合的方法,当近似计算无法达到误差要求时采用精确乘法计算,两者误差要求的阈值可以调整但是无法调整近似部分的精度。以上三种近似乘法器仍需要精确乘法器的参与。ApproxLP通过以输入的线性迭代操作替换非线性的乘法操作,在不依赖精确乘法器的同时做到了实时精度调节的能力。相对于之前的乘法器在精度、面积等方面均有所提升,但是其缺少严格的理论支持和一般性的设计方法,这使得其线性迭代方法的精度无法达到最优化。
综上,提供一种用于低误差、低面积、低功耗的近似乘法器的一般性设计方法对于智能移动和可穿戴设备的发展十分关键。
发明内容
本发明的目的在于针对目前近似乘法器能效的现有技术的不足,提供了一种针对规格化浮点数的误差无偏近似乘法器及其实现方法,理论分析表明,以均方绝对误差为标准,该近似乘法器的线性误差迭代方法具有理论最优性,具有相对误差小、误差分布无偏、面积开销小、计算速度快,功耗小的优点。
本发明的目的是通过以下技术方案来实现的:一种针对规格化浮点数的误差无偏近似乘法器,所述误差无偏近似乘法器包括符号与指数位模块、尾数近似模块和规格化模块;
所述符号与指数位模块将输入的规格化浮点数的符号位做异或处理,对指数位做 加法操作并减去偏移量
Figure 826016DEST_PATH_IMAGE001
,其中为n指数位的位数;
所述尾数近似模块包括0级近似模块和多级误差修正模块,所述0级近似模块和多 级误差修正模块均以浮点数的尾数作为输入,其中每个误差修正模块还需要一个使能信 号;0级近似模块生成基础的近似尾数乘法结果,即
Figure 211998DEST_PATH_IMAGE002
,误差修正模 块在使能时输出渐进的误差修正,该误差修正为输入尾数的移位与一个常数求和,即
Figure 726156DEST_PATH_IMAGE003
Figure 593136DEST_PATH_IMAGE004
为第i级误差修正模块的输出结果,X,Y表示输入浮点数 尾数代表的实际值,对于规格化的浮点数,其范围为
Figure 876350DEST_PATH_IMAGE005
A,B为右移位数,C为浮点数偏移 值;尾数近似模块将0级近似模块与使能的误差修正模块的结果输出进行求和,得到近似的 尾数乘积结果;
所述规格化模块对近似的尾数乘积结果进行调整使其规格化,即使其范围在
Figure 167654DEST_PATH_IMAGE006
之间,同时对符号与指数位模块的输出进行相应调整,得到待输出的指数结果;最后对待输 出的指数结果进行溢出判断,如果指数位向上溢出,将结果赋值为IEEE 754标准下的无穷; 如果指数位向下溢出,将结果赋值为IEEE 754标准下的0;若不发生溢出,则将当前的符号 位、待输出的指数结果以及近似的尾数乘积结果作为输出,得到两规格化浮点数近似乘法 的最终结果。
进一步地,对指数位减去偏移量
Figure 903529DEST_PATH_IMAGE007
具体为:对于IEEE 754标准下的32位浮点 数,n=8;对于64位浮点数,n=11。
进一步地,误差无偏近似乘法器通过使能不同数量的误差修正模块,在计算过程中实时调整近似精度。
进一步地,符号与指数位模块的指数位输出结果为输入的规格化浮点数的指数位 求和并减去偏移值
Figure 836850DEST_PATH_IMAGE008
,指数位向高位做两位扩展,用以判断上下溢出;发生上溢出时最 高两位为01,此时
Figure 974570DEST_PATH_IMAGE009
,结果为过大而无法表示的数,即正负无穷,其 中
Figure 436775DEST_PATH_IMAGE010
表示规格化浮点数的指数位求和结果;发生下溢出最高两位为11,此时
Figure 925525DEST_PATH_IMAGE011
,结果为过小而无法表示的数,即正负零;不发生溢出时最高两位为00。
进一步地,所述尾数近似模块默认输入浮点数为规格化浮点数,将尾数前补1得到 范围在
Figure 131379DEST_PATH_IMAGE012
之间的尾数实际值,并在最高位做位扩展即补0,使得尾数的表示范围为
Figure 123606DEST_PATH_IMAGE013
; 0级近似模块生成基础的近似尾数乘法结果;误差修正模块采用对尾数进行线性处理的方 法;误差修正模块中的符号、移位位数和偏移值由模块级数、输入尾数的所属范围决定。
进一步地,误差修正模块对两输入浮点数的尾数区间进行方形划分:第k级误差修 正模块将尾数的范围
Figure 287871DEST_PATH_IMAGE014
划分为
Figure 998338DEST_PATH_IMAGE015
个相等的区间,需要尾数的前k位判断尾数的所属区 间;两输入尾数的所属区间划分是互相独立的,即模块将
Figure 742303DEST_PATH_IMAGE016
的输入区间划分为
Figure 854615DEST_PATH_IMAGE017
个相同的方形;同时不同等级的误差修正模块是互相独立的,即每个模块的操作不依赖于 其他模块的结果。
进一步地,误差修正模块的线性化近似方法根据线性代数中极小化问题原理得到在方形划分方式下最低的方均误差结果以及无偏的误差分布。
进一步地,规格化模块对尾数近似模块的输出结果和符号与指数位模块的输出结 果进行处理,具体为:通过对尾数近似模块的输出结果乘以2、除以2或不处理使其数值处于
Figure 924203DEST_PATH_IMAGE014
的范围,尾数近似模块的输出结果大于等于2时,将尾数近似模块的输出结果右移并 将符号与指数位模块输出的指数结果部分减1;尾数近似模块的输出结果小于1时,将尾数 近似模块的输出结果左移并将符号与指数位模块输出的指数部分加1;尾数近似模块的输 出结果在
Figure 121966DEST_PATH_IMAGE012
间时保持尾数近似模块和符号与指数位模块的输出结果不变;规格化模块 对尾数近似模块的输出结果和符号与指数位模块的输出结果进行处理后,将处理后的尾数 近似模块的输出结果作为待输出的尾数结果,将处理后的符号与指数位模块的指数部分作 为待输出的指数结果。
进一步地,规格化模块对待输出的指数结果做溢出判断,当待输出的指数结果的高2位为01时表示发生向上溢出,结果赋值为符合IEEE 754标准的无穷,即指数位全为1,尾数位全为0;当待输出的指数结果的高2位为11时表示发生向下溢出,结果赋值为IEEE 754标准的零值,即指数位与尾数位全为0;当待输出的指数结果高2位为00时,不发生溢出,以符号与指数位模块输出中的符号位作为输出符号位,以待输出的指数结果去除高两位作为输出的指数位,以待输出的尾数结果去除高两位作为输出的尾数位。
本发明还提出一种针对规格化浮点数的误差无偏近似乘法器的实现方法,具体实现步骤如下:
(1)符号与指数位模块对输入的规格化浮点数中乘数与被乘数的符号位做异或处 理,对指数位高位扩展2位,将乘数与被乘数的指数位求和并减去偏移量
Figure 669622DEST_PATH_IMAGE001
,得到符号 与指数位模块的指数位结果;
(2)尾数近似模块中的0级近似模块和多级误差修正模块均以浮点数的尾数作为 输入,其中每个误差修正模块还需要一个使能信号;0级近似模块的输出为:
Figure 367932DEST_PATH_IMAGE018
;第i级误差修正模块的输出为
Figure 608420DEST_PATH_IMAGE003
; 尾数近似模块对0级近似模块和使能的误差修正模块的结果进行求和,作为近似的尾数乘 积结果输出;
(3)规格化模块以符号与指数位模块、尾数近似模块的输出为输入,通过对尾数近 似模块的输出结果乘以2、除以2或不处理使其数值处于
Figure 27900DEST_PATH_IMAGE019
的范围;当对尾数近似模块的 输出除以2时,符号与指数位模块输出中的指数部分加1,当对尾数近似模块的输出乘以2 时,将符号与指数位模块输出中的指数部分减1,当对尾数近似模块的输出不处理时,符号 与指数位模块输出中的指数部分也不处理,规格化模块得到待输出的尾数结果和待输出的 指数结果;
(4)对于待输出的指数结果的高两位做溢出判断:当高两位为01时,向上溢出,将结果赋值为IEEE 754标准下的无穷;当高两位为11时,向下溢出,将结果赋值为IEEE 754标准下的0;当高两位为00时,结果不发生溢出,以符号与指数位模块输出中的符号位作为输出符号位;以待输出的指数结果去除高两位作为输出的指数位,以待输出的尾数结果去除高两位作为输出的尾数位。
本发明的有益效果如下:
1)本发明实现了针对规约形式浮点数的近似乘法器,在可控制精度等级的情况下,有明显的面积、速度、能效提升;适用于图像处理、机器学习等应用。
2)以移位和加法的方式对误差进行迭代修正,能够在计算过程中实时调节近似误差。
3)通过线性代数中的极小化问题得到迭代过程中的系数,达到了在输入独立判断情况下的最优近似同时保证了误差的无偏分布。
附图说明
图1是本发明所提出的针对规格化浮点数的误差无偏近似乘法器的总体架构示意图,包括三个模块:a)符号与指数位模块;b)尾数近似模块;c)规格化模块;
图2是本发明所提出的近似乘法器与ApproxLP在尾数近似部分的结构差异,a)为ApproxLP的尾数近似模块结构图;b)为本发明所提出的近似乘法器的尾数近似模块结构图;
图3是对于均匀分布的随机浮点数输入,不同近似等级下,本发明所提出的的近似乘法器的均方误差MSE、平均绝对误差MAE与最大误差Max Error示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
如图1所示,本发明提出的一种针对规格化浮点数的误差无偏近似乘法器,包括以下模块:
(1)符号与指数位模块:将输入的规格化浮点数的符号位做异或操作:
Figure 644826DEST_PATH_IMAGE020
Figure 466152DEST_PATH_IMAGE021
Figure 143121DEST_PATH_IMAGE022
分别表示输入的两乘数的符号位,
Figure 49897DEST_PATH_IMAGE023
为符号位做异或操作的结果。
对输入指数位做求和操作,并减去偏移值,得到符号位与指数位的指数结果
Figure 939356DEST_PATH_IMAGE024
Figure 880767DEST_PATH_IMAGE025
Figure 728637DEST_PATH_IMAGE026
Figure 122709DEST_PATH_IMAGE027
分别表示两乘数的输入指数位,将结果做位扩展为n+2位用于溢出判断: 发生上溢出,即
Figure 815859DEST_PATH_IMAGE028
时,最高两位为01;发生下溢出,即
Figure 611777DEST_PATH_IMAGE029
时,最高两位为11。其中n为指数位的位数,对于IEEE 754标准下的 32位浮点数,n=8;对于64位浮点数,n=11。
(2)尾数近似模块:包括0级近似模块和多级误差修正模块,这些模块均以浮点数 的尾数作为输入,其中每个误差修正模块还需要一个使能信号,误差无偏近似乘法器通过 使能不同数量的误差修正模块,在计算过程中实时调整近似精度;尾数近似模块通过对输 入尾数的线性操作近似非线性的乘法操作。线性操作指
Figure 364969DEST_PATH_IMAGE030
, 其中A’,B’,C’为常数,Z为近似结果,X,Y表示输入浮点数尾数代表的实际值,对于规约化的 浮点数,其范围为
Figure 246337DEST_PATH_IMAGE031
。为了避免再引入常数与输入的乘法操作,对于前两个系数的限制 为其必须为2的幂次或较少数量的2的幂次的组合,将乘法操作转化成对于输入的移位和加 法操作。尾数近似模块将0级近似模块与使能的误差修正模块的结果输出进行求和,得到近 似的尾数乘积结果;
本发明所提出的近似乘法器,第k级近似将输入尾数的范围
Figure 743178DEST_PATH_IMAGE032
划分为
Figure 659181DEST_PATH_IMAGE033
个相 等的区间,判断其所属区间需要尾数的前k位,两输入尾数的所属区间划分是互相独立的, 即模块将
Figure 317695DEST_PATH_IMAGE034
的输入区间划分为
Figure 686360DEST_PATH_IMAGE035
个相同的方形;将前k位代表的实际值表示为
Figure 978102DEST_PATH_IMAGE036
Figure 748612DEST_PATH_IMAGE037
,则其所属区间的中点值为
Figure 578028DEST_PATH_IMAGE038
Figure 699568DEST_PATH_IMAGE039
,即在第
Figure 538211DEST_PATH_IMAGE040
位小数补,记为
Figure 897648DEST_PATH_IMAGE041
,
Figure 429123DEST_PATH_IMAGE042
。例如:输入尾数
Figure 506801DEST_PATH_IMAGE043
(二进制小数表示),第4级近似,需要X的小数位前 4位,
Figure 149135DEST_PATH_IMAGE044
X的所属区间为
Figure 628658DEST_PATH_IMAGE045
,该区间的中点值为
Figure 331034DEST_PATH_IMAGE046
k级近似下的近似乘法结果记为
Figure 896008DEST_PATH_IMAGE047
,根据极小化问题可以得到:
Figure 342033DEST_PATH_IMAGE048
特别的,0级近似模块为k=0的情况,
Figure 410483DEST_PATH_IMAGE049
Figure 18182DEST_PATH_IMAGE050
时,
Figure 336031DEST_PATH_IMAGE051
以保证各级模块结果的求和
Figure 54588DEST_PATH_IMAGE052
。进一步的,计算
Figure 508703DEST_PATH_IMAGE053
的表达式为:
Figure 552882DEST_PATH_IMAGE055
每一级的误差修正模块仅涉及输入尾数的移位操作,第i级误差修正模块对输入 右移i+1位;
Figure 89518DEST_PATH_IMAGE056
表达式表示当
Figure 611767DEST_PATH_IMAGE057
为1时,该表达式结果为1,当
Figure 920388DEST_PATH_IMAGE058
为0时, 该表达式结果为-1,即正负号由另一输入的第i位的值决定。偏移项
Figure 135469DEST_PATH_IMAGE059
与 输入的所属区间有关,对于i不大的情况,将其作为常数预先计算能够节省逻辑单元。
例如对于1级误差修正模块,输入区间被划分为
Figure 896751DEST_PATH_IMAGE060
四个区间,对于不同的区间下偏移项的值如表1所 示:
表1 不同的区间下偏移项的值
Figure 222691DEST_PATH_IMAGE062
如图2所示,为本发明所提出的近似乘法器与ApproxLP在尾数近似部分的结构差异示意图。图2中a)为ApproxLP的尾数近似模块结构图,高等级误差修正模块依赖于低等级误差修正模块的判断结果;图2中b)为本发明所提出的近似乘法器的尾数近似模块结构图,不同等级模块之间没有依赖关系。相较于ApproxLP近似乘法器,本发明所提出近似乘法器对于两浮点数输入做独立判断,且不同级别模块的判断之间独立,高等级误差修正模块不依赖于低等级误差修正模块的判断结果,每个模块对于区域的判断无需用到所有位,这样的处理简化了判断逻辑和电路延时。并且如图3所示,对于均匀分布的随机浮点数输入,不同近似等级下,本发明所提出的的近似乘法器随着近似级数越多,均方误差MSE、平均绝对误差MAE与最大误差Max Error越小。
对于每一个区间数均需要一个预设的偏移值,这在低等级模块是十分方便且简洁的,然而这个数量与模块等级的复杂度是呈指数级别的,对于高等级的误差修正模块,提出以下优化方法:
i级的误差修正结果等价于以下形式:
Figure 385819DEST_PATH_IMAGE063
采用上述表达的近似模块增加了两次加法操作和一次移位和异或操作,但是不需要预先计算偏移值,这在近似等级较高时能大幅降低电路复杂度。
(3)规格化模块:规格化模块调整尾数近似模块输出结果的范围使其满足规格化 要求。规格化浮点数的尾数范围为
Figure 771801DEST_PATH_IMAGE064
,由于近似计算的原因,两尾数的近似乘积的范围 为(0.5,4),当尾数乘积结果在(0.5,1)范围时,最高两位为00,将结果左移一位作为待输出 的尾数结果,并在符号位与指数位的指数结果减一作为待输出的指数结果;当尾数乘积结 果在[2,4)范围时,最高位为1,将结果右移一位作为待输出的尾数结果并在符号位与指数 位的指数结果加一作为待输出的指数结果;当尾数乘积结果在
Figure 285959DEST_PATH_IMAGE065
范围时,最高两位为 01,无需移位直接作为待输出的尾数结果,且直接将指数位的指数结果作为待输出的指数 结果。
上述操作后,对待输出的指数结果作如下判断:当待输出的指数结果的高2位为01时表示发生向上溢出,即过大而无法表示的表示数,结果赋值为符合IEEE 754标准的无穷,即指数位全为1,尾数位全为0;当最终指数结果的高2位为11时表示发生向下溢出,即过小而无法表示的数,结果赋值为IEEE 754标准的零值,即指数位与尾数位全为0。不发生溢出则以符号与指数位模块输出中的符号位作为输出符号位,以待输出的指数结果去除高两位作为输出的指数位,以尾数近似模块的输出的小数部分作为输出的尾数位。
本发明还提出一种针对规格化浮点数的误差无偏近似乘法器的实现方法,误差无偏近似乘法器包括符号与指数位模块、尾数近似模块和规格化模块;具体实现步骤如下:
(1)符号与指数位模块对输入的规格化浮点数中乘数与被乘数的符号位做异或处 理,对指数位高位扩展2位,将乘数与被乘数的指数位求和并减去偏移量
Figure 150009DEST_PATH_IMAGE066
,其中n为指 数位的位数,得到符号与指数位模块的指数位结果;
(2)尾数近似模块包含0级近似模块和多级误差修正模块,以两规格化浮点数的尾 数部分的实际值X,Y以及每一级误差修正模块的使能信号为输入;0级近似模块的输出为:
Figure 433223DEST_PATH_IMAGE067
;第i级误差修正模块的输出为
Figure 990106DEST_PATH_IMAGE068
,其中,X,Y表示输入浮点数尾数代表的实际值,对于规格化的浮点数,其范围为
Figure 725981DEST_PATH_IMAGE019
A,B 为右移位数,C为浮点数偏移值;正负号和A,B,C的值通过对于输入浮点数的尾数区间的方 形划分后利用线性代数极小化问题确定;所述方形划分具体为:第k级误差修正模块将尾数 的范围
Figure 659302DEST_PATH_IMAGE069
划分为
Figure 531443DEST_PATH_IMAGE070
个相等的区间,需要尾数的前k位判断尾数的所属区间;尾数近似模 块对0级近似模块和使能的误差修正模块的结果进行求和,作为近似的尾数乘积结果输出。
(3)规格化模块以符号与指数位模块、尾数近似模块的输出为输入,通过对尾数近 似模块的输出结果乘以2、除以2或不处理使其数值处于
Figure 259228DEST_PATH_IMAGE005
的范围;当对尾数近似模块的 输出除以2时,符号与指数位模块输出中的指数部分加1,当对尾数近似模块的输出乘以2 时,将符号与指数位模块输出中的指数部分减1,当对尾数近似模块的输出不处理时,符号 与指数位模块输出中的指数部分也不处理,规格化模块得到待输出的尾数结果和待输出的 指数结果。
(4)对于待输出的指数结果的高两位做溢出判断:当高两位为01时,向上溢出,将结果赋值为IEEE 754标准下的无穷;当高两位为11时,向下溢出,将结果赋值为IEEE 754标准下的0;当高两位为00时,结果不发生溢出,以符号与指数位模块输出中的符号位作为输出符号位,以待输出的指数结果去除高两位作为输出的指数位,以待输出的尾数结果去除高两位作为输出的尾数位。
本专利不局限于上述最佳实施方式。任何人在本专利的启示下都可以得出其他各种形式的用于可配置近似乘法器及其实现方法,凡依照本发明申请专利范围所做的均等变化与修饰,皆应属本专利的涵盖范围。

Claims (10)

1.一种针对规格化浮点数的误差无偏近似乘法器,其特征在于,所述误差无偏近似乘法器包括符号与指数位模块、尾数近似模块和规格化模块;
所述符号与指数位模块将输入的规格化浮点数的符号位做异或处理,对指数位做加法 操作并减去偏移量
Figure DEST_PATH_IMAGE001
,其中为n指数位的位数;
所述尾数近似模块包括0级近似模块和多级误差修正模块,所述0级近似模块和多级误 差修正模块均以浮点数的尾数作为输入,其中每个误差修正模块还需要一个使能信号;0级 近似模块生成基础的近似尾数乘法结果,即
Figure DEST_PATH_IMAGE002
,误差修正模块在使 能时输出渐进的误差修正,该误差修正为输入尾数的移位与一个常数求和,即
Figure DEST_PATH_IMAGE003
Figure DEST_PATH_IMAGE004
为第i级误差修正模块的输出结果,X,Y表示输入浮点 数尾数代表的实际值,对于规格化的浮点数,其范围为
Figure DEST_PATH_IMAGE005
A,B为右移位数,C为浮点数偏 移值;尾数近似模块将0级近似模块与使能的误差修正模块的结果输出进行求和,得到近似 的尾数乘积结果;
所述规格化模块对近似的尾数乘积结果进行调整使其规格化,使其范围在
Figure DEST_PATH_IMAGE006
之间, 同时对符号与指数位模块的输出进行相应调整,得到待输出的指数结果;最后对待输出的 指数结果进行溢出判断,如果指数位向上溢出,将结果赋值为IEEE 754标准下的无穷;如果 指数位向下溢出,将结果赋值为IEEE 754标准下的0;若不发生溢出,则将当前的符号位、待 输出的指数结果以及近似的尾数乘积结果作为输出,得到两规格化浮点数近似乘法的最终 结果。
2.根据权利要求1所述的一种针对规格化浮点数的误差无偏近似乘法器,其特征在于, 对指数位减去偏移量
Figure DEST_PATH_IMAGE007
具体为:对于IEEE 754标准下的32位浮点数,n=8;对于64位浮 点数,n=11。
3.根据权利要求1所述的一种针对规格化浮点数的误差无偏近似乘法器,其特征在于,误差无偏近似乘法器通过使能不同数量的误差修正模块,在计算过程中实时调整近似精度。
4.根据权利要求1所述的一种针对规格化浮点数的误差无偏近似乘法器,其特征在于, 符号与指数位模块的指数位输出结果为输入的规格化浮点数的指数位求和并减去偏移值
Figure 380337DEST_PATH_IMAGE007
,指数位向高位做两位扩展,用以判断上下溢出;发生上溢出时最高两位为01,此时
Figure DEST_PATH_IMAGE008
,符号与指数位模块的指数位输出结果为过大而无法表示的数, 即正负无穷,其中
Figure DEST_PATH_IMAGE009
表示规格化浮点数的指数位求和结果;发生下溢出最高两位为11,此时
Figure DEST_PATH_IMAGE010
,符号与指数位模块的指数位输出结果为过小而无法表示的数,即正负 零;不发生溢出时最高两位为00。
5.根据权利要求1所述的一种针对规格化浮点数的误差无偏近似乘法器,其特征在于, 所述尾数近似模块默认输入浮点数为规格化浮点数,将尾数前补1得到范围在
Figure DEST_PATH_IMAGE011
之间的 尾数实际值,并在最高位做位扩展,即补0,使得尾数的表示范围为
Figure DEST_PATH_IMAGE012
;0级近似模块生成 基础的近似尾数乘法结果;误差修正模块采用对尾数进行线性处理的方法;误差修正模块 中的符号、移位位数和偏移值由模块级数、输入尾数的所属范围决定。
6.根据权利要求1所述的一种针对规格化浮点数的误差无偏近似乘法器,其特征在于, 误差修正模块对两输入浮点数的尾数区间进行方形划分:第k级误差修正模块将尾数的范 围
Figure 969581DEST_PATH_IMAGE011
划分为
Figure DEST_PATH_IMAGE013
个相等的区间,需要尾数的前k位判断尾数的所属区间;两输入尾数的所 属区间划分是互相独立的,即模块将
Figure DEST_PATH_IMAGE014
的输入区间划分为
Figure DEST_PATH_IMAGE015
个相同的方形;同时 不同等级的误差修正模块是互相独立的。
7.根据权利要求6所述的一种针对规格化浮点数的误差无偏近似乘法器,其特征在于,误差修正模块的线性化近似方法根据线性代数中极小化问题原理得到在方形划分方式下最低的方均误差结果以及无偏的误差分布。
8.根据权利要求1所述的一种针对规格化浮点数的误差无偏近似乘法器,其特征在于, 规格化模块对尾数近似模块的输出结果和符号与指数位模块的输出结果进行处理,具体 为:通过对尾数近似模块的输出结果乘以2、除以2或不处理使其数值处于
Figure 578679DEST_PATH_IMAGE011
的范围,尾 数近似模块的输出结果大于等于2时,将尾数近似模块的输出结果右移并将符号与指数位 模块输出的指数结果部分减1;尾数近似模块的输出结果小于1时,将尾数近似模块的输出 结果左移并将符号与指数位模块输出的指数部分加1;尾数近似模块的输出结果在
Figure 505047DEST_PATH_IMAGE011
间 时保持尾数近似模块和符号与指数位模块的输出结果不变;规格化模块对尾数近似模块的 输出结果和符号与指数位模块的输出结果进行处理后,将处理后的尾数近似模块的输出结 果作为待输出的尾数结果,将处理后的符号与指数位模块的指数部分作为待输出的指数结 果。
9.根据权利要求1所述的一种针对规格化浮点数的误差无偏近似乘法器,其特征在于,规格化模块对待输出的指数结果做溢出判断,当待输出的指数结果的高2位为01时表示发生向上溢出,结果赋值为符合IEEE 754标准的无穷,即指数位全为1,尾数位全为0;当待输出的指数结果的高2位为11时表示发生向下溢出,结果赋值为IEEE 754标准的零值,即指数位与尾数位全为0;当待输出的指数结果高2位为00时,不发生溢出,以符号与指数位模块输出中的符号位作为输出符号位,以待输出的指数结果去除高两位作为输出的指数位,以待输出的尾数结果去除高两位作为输出的尾数位。
10.一种基于权利要求1所述的针对规格化浮点数的误差无偏近似乘法器的实现方法,其特征在于,具体实现步骤如下:
(1)符号与指数位模块对输入的规格化浮点数中乘数与被乘数的符号位做异或处理, 对指数位高位扩展2位,将乘数与被乘数的指数位求和并减去偏移量
Figure 850578DEST_PATH_IMAGE007
,得到符号与指 数位模块的指数位结果;
(2)尾数近似模块中的0级近似模块和多级误差修正模块均以浮点数的尾数作为输入, 其中每个误差修正模块还需要一个使能信号;0级近似模块的输出为:
Figure DEST_PATH_IMAGE016
;第i级误差修正模块的输出为
Figure DEST_PATH_IMAGE017
;尾数近似模块对0级近似模块和使能的误差修正模块的结果进行求和,作为近似的尾数乘 积结果输出;
(3)规格化模块以符号与指数位模块、尾数近似模块的输出为输入,通过对尾数近似模 块的输出结果乘以2、除以2或不处理使其数值处于
Figure 17248DEST_PATH_IMAGE005
的范围;当对尾数近似模块的输出 除以2时,符号与指数位模块输出中的指数部分加1,当对尾数近似模块的输出乘以2时,将 符号与指数位模块输出中的指数部分减1,当对尾数近似模块的输出不处理时,符号与指数 位模块输出中的指数部分也不处理,规格化模块得到待输出的尾数结果和待输出的指数结 果;
(4)对于待输出的指数结果的高两位做溢出判断:当高两位为01时,向上溢出,将结果赋值为IEEE 754标准下的无穷;当高两位为11时,向下溢出,将结果赋值为IEEE 754标准下的0;当高两位为00时,结果不发生溢出,以符号与指数位模块输出中的符号位作为输出符号位;以待输出的指数结果去除高两位作为输出的指数位,以待输出的尾数结果去除高两位作为输出的尾数位。
CN202010969041.7A 2020-09-15 2020-09-15 一种针对规格化浮点数的误差无偏近似乘法器及其实现方法 Active CN111930342B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010969041.7A CN111930342B (zh) 2020-09-15 2020-09-15 一种针对规格化浮点数的误差无偏近似乘法器及其实现方法
US17/190,417 US11429347B2 (en) 2020-09-15 2021-03-03 Error unbiased approximate multiplier for normalized floating-point numbers and implementation method of error unbiased approximate multiplier
JP2021065061A JP7016559B1 (ja) 2020-09-15 2021-04-07 正規化浮動小数点数に対する誤差不偏近似乗算器及びその実現方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010969041.7A CN111930342B (zh) 2020-09-15 2020-09-15 一种针对规格化浮点数的误差无偏近似乘法器及其实现方法

Publications (2)

Publication Number Publication Date
CN111930342A CN111930342A (zh) 2020-11-13
CN111930342B true CN111930342B (zh) 2021-01-19

Family

ID=73333525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010969041.7A Active CN111930342B (zh) 2020-09-15 2020-09-15 一种针对规格化浮点数的误差无偏近似乘法器及其实现方法

Country Status (3)

Country Link
US (1) US11429347B2 (zh)
JP (1) JP7016559B1 (zh)
CN (1) CN111930342B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114860190B (zh) * 2022-04-28 2023-03-24 中国人民解放军战略支援部队信息工程大学 一种针对高性能计算函数库中浮点算术表达式在指定区间内误差较大子区间划分方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140028677A1 (en) * 2011-12-31 2014-01-30 Intel Corporation Graphics lighting engine including log and anti-log units
CN108804077A (zh) * 2017-04-28 2018-11-13 英特尔公司 用来执行用于机器学习的浮点和整数操作的指令和逻辑
CN109643227A (zh) * 2016-08-22 2019-04-16 阿尔特拉公司 可变精度浮点乘法器
CN109901814A (zh) * 2019-02-14 2019-06-18 上海交通大学 自定义浮点数及其计算方法和硬件结构

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63259720A (ja) * 1988-03-25 1988-10-26 Hitachi Ltd 浮動小数点乗算回路
JP3201097B2 (ja) * 1993-09-02 2001-08-20 理化学研究所 乗算器における乗算処方方法
CN107153522B (zh) * 2017-04-21 2020-10-02 东南大学 一种面向人工神经网络计算的动态精度可配近似乘法器
US10732929B2 (en) 2018-01-09 2020-08-04 Samsung Electronics Co., Ltd. Computing accelerator using a lookup table

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140028677A1 (en) * 2011-12-31 2014-01-30 Intel Corporation Graphics lighting engine including log and anti-log units
CN109643227A (zh) * 2016-08-22 2019-04-16 阿尔特拉公司 可变精度浮点乘法器
CN108804077A (zh) * 2017-04-28 2018-11-13 英特尔公司 用来执行用于机器学习的浮点和整数操作的指令和逻辑
CN109901814A (zh) * 2019-02-14 2019-06-18 上海交通大学 自定义浮点数及其计算方法和硬件结构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
低面积低功耗的机器学习运算单元设计;周聖元等;《高技术通讯》;20190131;第13-19页 *

Also Published As

Publication number Publication date
JP7016559B1 (ja) 2022-02-07
JP2022048965A (ja) 2022-03-28
CN111930342A (zh) 2020-11-13
US20220083313A1 (en) 2022-03-17
US11429347B2 (en) 2022-08-30

Similar Documents

Publication Publication Date Title
EP4080351A1 (en) Arithmetic logic unit, and floating-point number multiplication calculation method and device
CN109214509B (zh) 一种用于深度神经网络高速实时量化结构和运算实现方法
KR101603471B1 (ko) 디지털 신호 프로세서들에서의 신호 처리를 위한 시스템 및 방법
US7720899B2 (en) Arithmetic operation unit, information processing apparatus and arithmetic operation method
CN110852416A (zh) 基于低精度浮点数数据表现形式的cnn加速计算方法及系统
CN111984227B (zh) 一种针对复数平方根的近似计算装置及方法
CN111930342B (zh) 一种针对规格化浮点数的误差无偏近似乘法器及其实现方法
CN112734023B (zh) 应用于循环神经网络的激活函数的可重构电路
CN109165006B (zh) Softmax函数的设计优化及硬件实现方法及系统
CN110888623A (zh) 数据转换方法、乘法器、加法器、终端设备及存储介质
CN114418057A (zh) 卷积神经网络的运算方法及相关设备
CN116594590A (zh) 一种浮点数据的多功能运算装置及方法
CN110222305B (zh) 一种基于双曲cordic的对数函数计算系统及方法
CN113010148B (zh) 一种适用于混合精度神经网络的定点乘加运算单元及方法
CN112527239B (zh) 一种浮点数据处理方法及装置
CN110879697B (zh) 一种近似计算tanh函数的装置
Celia et al. Optimizing power-accuracy trade-off in approximate adders
US7606850B2 (en) Method and apparatus for providing a base-2 logarithm approximation to a binary number
CN110837624A (zh) 一种针对sigmoid函数的近似计算装置
CN117270811B (zh) 非线性算子近似计算方法、装置、神经网络处理器
CN112732223B (zh) 半精度浮点数除法器数据处理方法及系统
JP2645422B2 (ja) 浮動小数点演算処理装置
Xiong et al. Hardware Complexity Aware Design Strategy for a Fused Logarithmic and Anti-Logarithmic Converter
JP2902041B2 (ja) 浮動小数点数演算装置
CN113515259B (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