使用在硬件中实现的加法器计算2n-x的方法与流程

xiaoxiao2026-09-10  7


本发明涉及浮点加法器,具体地,涉及使用在硬件中实现的加法器计算2n+x的方法。


背景技术:

1、本公开涉及一种浮点加法器,具体地,其被配置用于将浮点格式的变量输入与2的幂相加。

2、表示数值的一种方式是浮点格式。浮点数由于能够用相对少的位来表示宽范围的值而被广泛地用于计算领域。浮点数可使用二进制位来表示。二进制浮点数的示意图在图1中示出。浮点数100包括符号字段s102、指数字段e 104和尾数字段m106。浮点数100的符号字段包括单个符号位。如果浮点数是无符号数,则它可能不包括符号字段。指数字段e包括ew位集合。尾数字段m包括mw位集合。除了标记为0或不合规数的指数0以及标记无穷大或非数字(“nan”)码的2ew-1之外,浮点数的有效数s包括具有附加前导1的尾数。该附加前导1是隐式的,并且没有显式地包括在表示浮点数100的数据中。

3、浮点运算在计算机处理的许多领域中具有应用,包括实时3d图形处理和实现线性代数、偏微分方程和傅立叶变换(仅举一些示例)的处理。

4、浮点数可使用通用处理器在软件中相加。然而,在硬件中(例如,在固定功能电路中)实现浮点加法器来将浮点数加在一起可能更有效(例如在等待时间和功耗方面)。

5、通用浮点加法器是被配置为将两个浮点数加在一起的硬件模块。被配置为将两个输入浮点数加在一起的通用浮点加法器通常将具有对齐单元、加法器单元、再归一化器单元、指数确定单元、舍入单元和异常处理单元。对齐单元计算输入之间的指数差,并且相应地对齐它们的有效数。对齐的有效数在减法的情况下任选地被求反,并且然后可通过执行带进位的二进制加法(其可称为“整数加法”)而在加法器单元中以2的补码格式相加。再归一化器单元对来自加法器单元的尾数结果上的前导零进行计数,并且对尾数结果进行移位,使得前导零处于正确的位置,以用于以正常浮点格式表示尾数。再归一化器应用的移位的指示被传递到指数确定单元,该指数确定单元使用移位的指示以及两个输入数的指数来确定浮点结果的指数。舍入单元根据特定的舍入模式(例如,远离零舍入、向零舍入、向正无穷大舍入、向负无穷大舍入、向最近舍入)对尾数结果进行舍入。最后,异常单元检测异常输入码和异常计算指数,并且在计算的浮点结果和适当异常之间多路复用。加法的结果是浮点数,其包括符号位(等于具有最大幅度或适当异常的输入数的符号位)、由指数确定或异常单元确定的指数位、以及表示从舍入单元或异常输出的舍入尾数的尾数位。结果从通用浮点加法器输出。

6、可以使用通用浮点加法器来获得浮点数加1.0(或从浮点数减去1.0,或将1.0减去浮点数)。一些改进可以通过约束加法器的输入来实现,从而允许通过电路合成工具来优化电路,只要以工具可以理解的方式应用约束。然而,此类改进可能是微不足道的。


技术实现思路

1、提供本
技术实现要素:
是为了介绍在以下详细描述中进一步描述的一些概念。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

2、提供了一种用于计算2n+x的加法器,其中x是以浮点格式表示的变量输入,并且n是整数,该加法器包括:

3、第一路径,该第一路径被配置为针对x<0和2n-1≤|x|<2n+1计算2n+x;

4、第二路径,该第二路径被配置为针对|x|<2n计算2n+x;

5、第三路径,该第三路径被配置为针对|x|≥2n计算2n+x;以及

6、选择逻辑,该选择逻辑被配置为使加法器根据x和n的值从第一路径、第二路径和第三路径中的一者输出结果。

7、选择逻辑可被配置为通过以下方式选择第一路径、第二路径和第三路径中的一者:如果x<0和2n-1≤|x|<2n+1,则选择第一路径,从而使加法器从第一路径输出结果;以及如果第一路径未被选择,则基于|x|和2n的比较选择第二路径或第三路径。

8、选择逻辑可被配置为通过以下方式选择第一路径、第二路径和第三路径中的一者:如果第一路径未被选择并且|x|<2n,则选择第二路径,从而使加法器从第二路径输出结果;以及如果第一路径或第二路径未被选择,则选择第三路径,从而使加法器从第三路径输出结果。

9、选择逻辑可被配置为通过以下方式选择第一路径、第二路径和第三路径中的一者:如果第一路径未被选择并且|x|≥2n,则选择第三路径,从而使加法器从第三路径输出结果;以及如果第一路径或第三路径未被选择,则选择第二路径,从而使加法器从第二路径输出结果。

10、选择逻辑可被配置为执行|x|和2n的比较,以通过比较x的指数与n来确定|x|<2n还是|x|≥2n。

11、加法器可以在固定功能电路中实现。n的值在固定功能电路中可以是固定的。

12、加法器还可包括模式切换逻辑,该模式切换逻辑被配置为接收n的值的指示,并且将n的值传送到选择逻辑以及第一路径、第二路径和第三路径。n可以是多个预设值中的一个预设值。

13、第一路径可以包括求反单元,该求反单元被配置为如果|x|<2n,则对x的尾数求反,并输出x的求反尾数。求反单元可被配置为如果|x|≥2n,则输出尾数x。

14、第一路径可以不包括移位器,该移位器被配置为在求反单元的运算之前移位x或2n的位。

15、第一路径可以包括再归一化器,该再归一化器被配置为移位求反单元的输出以移除前导零。

16、第二路径和第三路径可能不包括再归一化器。

17、第二路径可以包括求反单元,该求反单元被配置为如果x<0,则对x的尾数求反。

18、第一路径的求反单元和第二路径的求反单元可以是相同的单元。

19、第二路径可以包括右移位器,该右移位器被配置为对齐x和2n的尾数位。

20、第二路径和第三路径可以各自包括舍入单元,该舍入单元被配置为根据预定义的舍入模式对相应路径的结果进行舍入。

21、第一路径可能不包括被配置为对第一路径的结果进行舍入的舍入单元。

22、n可以等于1,并且选择逻辑可被配置为通过检查x的指数的最高有效位是否为0来确定|x|<2n。

23、选择逻辑可以包括一个或多个多路复用器,该多路复用器被配置为从路径中的每个路径接收结果,并且根据x和n的值从路径中的一个路径输出结果。

24、选择逻辑可被配置为基于x的符号和指数,而不是基于x的尾数来选择路径中的一个路径。

25、三个路径可被配置为在接收到x的尾数和指数中的一者或两者时开始计算。

26、选择逻辑可被配置为选择第一路径、第二路径和第三路径中的一者用于计算,并且所选择的路径可以用于该计算,但是未选择的路径可以不用于该计算。

27、第一路径和第三路径可以包括被配置为执行有符号二进制加法的整数加法逻辑。

28、第二路径可能不包括被配置为执行有符号二进制加法的整数加法逻辑。

29、第三路径可被配置为根据x是正还是负来将2n加到x的有效数或从该有效数减去2n。

30、第三路径可被配置为如果x<0,则从x的尾数减去2n,并改变结果的符号。

31、加法器可被配置为通过改变x的符号,计算2n+x,以及改变计算2n+x的结果的符号来计算x-2n。

32、加法器可被配置为通过改变x的符号,以及计算2n+x来计算2n-x。

33、提供了一种使用在硬件中实现(例如,在固定功能电路中实现)的加法器来计算2n+x的方法,其中x是以浮点格式表示的变量输入,并且n是整数,其中加法器包括:

34、第一路径,该第一路径被配置为针对x<0和2n-1≤|x|<2n+1计算2n+x;

35、第二路径,该第二路径被配置为针对|x|<2n计算2n+x;以及

36、第三路径,该第三路径被配置为针对|x|≥2n计算2n+x;

37、该方法包括:

38、接收表示输入x的数据;

39、将表示x的数据中的至少一些提供给第一路径、第二路径和第三路径中的一者或多者以用于计算2n+x;

40、根据x和n的值选择第一路径、第二路径和第三路径中的一者;以及

41、输出由所选择的路径计算的结果。

42、该方法可用于通过改变x的符号,以及计算2n+x来计算2n-x。

43、该方法可用于通过改变x的符号,计算2n+x以及改变计算2n+x的结果的符号来计算x-2n。

44、可以提供一种使用在硬件中实现(例如,在固定功能电路中实现)的加法器来计算2n-x的方法,其中x是以浮点格式表示的变量输入,并且n是整数,其中加法器包括:

45、第一路径,该第一路径被配置为针对y<0和2n-1≤|y|<2n+1计算2n+y,其中y是变量;

46、第二路径,该第二路径被配置为针对|y|<2n计算2n+y;以及

47、第三路径,该第三路径被配置为针对|y|≥2n计算2n+y;

48、该方法包括:

49、接收表示输入x的数据;

50、改变x的符号以确定表示y的数据,其中y=-x;

51、将表示y的数据中的至少一些提供给第一路径、第二路径和第三路径中的一者或多者以用于计算2n+y;

52、根据y和n的值选择第一路径、第二路径和第三路径中的一者;以及

53、输出由所选择的路径计算的结果。

54、可以提供一种使用在硬件中实现(例如,在固定功能电路中实现)的加法器来计算x-2n的方法,其中x是以浮点格式表示的变量输入,并且n是整数,其中加法器包括:

55、第一路径,该第一路径被配置为针对y<0和2n-1≤|y|<2n+1计算2n+y,其中y是变量;

56、第二路径,该第二路径被配置为针对|y|<2n计算2n+y;以及

57、第三路径,该第三路径被配置为针对|y|≥2n计算2n+y;

58、该方法包括:

59、接收表示输入x的数据;

60、改变x的符号以确定表示y的数据,其中y=-x;

61、将表示y的数据中的至少一些提供给第一路径、第二路径和第三路径中的一者或多者以用于计算2n+y;

62、根据y和n的值选择第一路径、第二路径和第三路径中的一者;

63、改变由所选路径计算的结果的符号以确定输出;以及

64、输出所确定的输出。

65、还提供了一种用于计算2n+x的加法器,其中x是以浮点格式表示的变量输入,并且n是整数,该加法器包括:

66、小|x|路径,其被配置为针对|x|<2n计算2n+x;

67、大|x|路径,其被配置为针对|x|≥2n计算2n+x;

68、选择逻辑208,该选择逻辑被配置为使加法器根据x和n的值从小|x|路径和大|x|路径中的一者输出结果。

69、一种用于使用在硬件中实现的加法器来计算2n+x的方法,其中x是以浮点格式表示的变量输入,并且n是整数,其中加法器包括:

70、小|x|路径,其被配置为针对|x|<2n计算2n+x;以及

71、大|x|路径,其被配置为针对|x|≥2n计算2n+x;

72、该方法包括:

73、接收表示输入x的数据;

74、将表示x的数据中的至少一些提供给小|x|路径和大|x|路径中的一者或多者以用于计算2m+x;

75、根据x和m的值选择小|x|路径和大|x|路径中的一者;以及

76、输出由所选择的路径计算的结果。

77、加法器可以在集成电路上的硬件中体现。提供一种在集成电路制造系统处制造加法器的方法。可提供一种集成电路定义数据集,该集成电路定义数据集在集成电路制造系统中被处理时配置该系统以制造加法器。可以提供一种非暂态计算机可读存储介质,在其上存储有加法器的计算机可读描述,当在集成电路制造系统中被处理时,该计算机可读描述使集成电路制造系统制造体现加法器的集成电路。

78、可以提供一种集成电路制造系统,其包括:非暂态计算机可读存储介质,其上存储有加法器的计算机可读描述;布局处理系统,其被配置为处理计算机可读描述,以便生成包含加法器的集成电路的电路布局描述;以及集成电路生成系统,其被配置为根据电路布局描述制造加法器。

79、可以提供用于执行本文所述的任一方法的计算机程序代码。可提供非暂时性计算机可读存储介质,其上存储有计算机可读指令,当在计算机系统处执行时,所述计算机可读指令促使所述计算机系统执行本文中所描述的方法中的任一种方法。

80、如对本领域的技术人员将显而易见,上述特征可以适当地组合,并且可与本文中所描述的示例的各方面中的任一方面进行组合。


技术特征:

1.一种使用在硬件中实现的加法器计算2n-x的方法,其中,x是以浮点格式表示的变量输入,并且n是整数,其中,所述加法器包括:

2.一种使用在硬件中实现的加法器计算x-2n的方法,其中,x是以浮点格式表示的变量输入,并且n是整数,其中,所述加法器包括:

3.根据权利要求1或2所述的方法,其中,选择所述第一路径、所述第二路径和所述第三路径中的一个路径的步骤包括:

4.根据权利要求3所述的方法,其中,选择所述第一路径、所述第二路径和所述第三路径中的一个路径的步骤包括:

5.根据权利要求3所述的方法,其中,选择所述第一路径、所述第二路径和所述第三路径中的一个路径的步骤包括:

6.根据权利要求3所述的方法,其中,选择所述第一路径、所述第二路径和所述第三路径中的一个路径的步骤包括:执行|y|与2n的比较,以通过比较y的指数与n来确定|y|<2n还是|y|≥2n。

7.根据权利要求1或2所述的方法,其中,所述加法器在固定功能电路中实现,并且其中,n的值在所述固定功能电路中是固定的。

8.根据权利要求1或2所述的方法,所述方法还包括:在选择所述第一路径、所述第二路径和所述第三路径中的一个路径的步骤之前,接收n的值的指示。

9.根据权利要求1或2所述的方法,其中,所述第一路径包括求反单元,所述求反单元被配置为,如果|y|<2n,则对y的尾数求反,并且输出y的求反尾数。

10.根据权利要求9所述的方法,其中,所述求反单元被配置为,如果|y|≥2n,则输出y的尾数。

11.根据权利要求1或2所述的方法,其中,所述第一路径包括再归一化器,所述再归一化器被配置为移位所述求反单元的输出以移除前导零。

12.根据权利要求1或2所述的方法,其中,所述第二路径包括求反单元,所述求反单元被配置为,如果y<0,则对y的尾数求反。

13.根据权利要求12所述的方法,其中,所述第一路径包括求反单元,所述求反单元被配置为,如果|y|<2n,则对y的尾数求反,并且输出y的求反尾数,并且其中,所述第一路径的求反单元和所述第二路径的求反单元是同一个单元。

14.根据权利要求1或2所述的方法,其中,所述第二路径包括右移位器,所述右移位器被配置为对齐y和2n的尾数位。

15.根据权利要求1或2所述的方法,其中,所述第二路径和所述第三路径各自包括舍入单元,所述舍入单元被配置为根据预定义的舍入模式对相应路径的结果进行舍入。

16.根据权利要求1或2所述的方法,其中,n=1,并且其中,选择所述第一路径、所述第二路径和所述第三路径中的一个路径的步骤包括:通过检查y的指数的最高有效位是否为0来确定|y|<2n。

17.根据权利要求1或2所述的方法,其中,选择所述第一路径、所述第二路径和所述第三路径中的一个路径的步骤包括:使用一个或更多个多路复用器,所述一个或更多个多路复用器被配置为从所述第一路径、所述第二路径和所述第三路径中的每个路径接收结果,并且根据y和n的值从所述第一路径、所述第二路径和所述第三路径中的一个路径输出所述结果。

18.根据权利要求1或2所述的方法,其中,选择所述第一路径、所述第二路径和所述第三路径中的一个路径的步骤包括:基于y的符号和指数,而不是基于y的尾数,来选择所述第一路径、所述第二路径和所述第三路径中的一个路径。

19.根据权利要求1或2所述的方法,其中,y以浮点格式表示,并且其中,所述第一路径、所述第二路径和所述第三路径被配置为在接收到y的尾数和指数中的一者或两者时开始计算。

20.根据权利要求1或2所述的方法,其中,所述第一路径和所述第三路径包括被配置为执行有符号二进制加法的整数加法逻辑,并且其中,所述第二路径不包括被配置为执行有符号二进制加法的整数加法逻辑。


技术总结
本发明涉及使用在硬件中实现的加法器计算2<supgt;n</supgt;‑x的方法。一种使用在硬件中实现的加法器计算2<supgt;n</supgt;+x的方法,x是以浮点格式表示的变量输入,n是整数,加法器包括:第一路径,其包括求反单元和再归一化器中的至少一个,针对y<0和2<supgt;n‑1</supgt;≤|y|<2<supgt;n+1</supgt;计算2<supgt;n</supgt;+y,y是变量;第二路径,其包括求反单元、右移位器和舍入单元中的至少一个,针对|y|<2<supgt;n</supgt;计算2<supgt;n</supgt;+y;以及第三路径,其包括舍入单元,针对|y|≥2<supgt;n</supgt;计算2<supgt;n</supgt;+y;方法包括:接收表示输入x的数据;改变x的符号,以确定表示y的数据,y=‑x;将表示y的数据中的至少一些提供给第一路径、第二路径和第三路径中的一个或更多个路径,以计算2<supgt;n</supgt;+y;根据y和n的值选择第一路径、第二路径和第三路径中的一个路径;以及输出由所选择的路径计算的结果。

技术研发人员:M·弗里伯豪斯
受保护的技术使用者:想象技术有限公司
技术研发日:
技术公布日:2024/9/23
转载请注明原文地址:https://www.famiwei.com/read-9027114.html

最新回复(0)