利用浮点架构的定点除法电路的制作方法

文档序号:6535198阅读:216来源:国知局
利用浮点架构的定点除法电路的制作方法
【专利摘要】本发明涉及利用浮点架构的定点除法电路。提供一种用于将两个二进制数相除的系统、方法和计算机程序产品。除法器使用浮点归一化架构来实施定点除法函数以产生最接近的初始商近似值。除法器通过将每个数缩放必需的二倍而将输入被除数和除数归一化到范围[0.5,1.0)。向除法器核心提交归一化的输入,所述除法器核心可以被优化用于将此类有限的范围的输入相除。然后,将除法器核心输出重新缩放适当的二倍、适当地带符号,并且加载到饱和寄存器中以便以各种格式输出。除法器核心以递减的有效值顺序逐步输出商位直到达到预定的精度等级,通常比完整的商中更少的位,以便更快的输出。一个实施方案在一个时钟周期内生成六个最高有效商位。
【专利说明】利用浮点架构的定点除法电路
【技术领域】
[0001]本发明涉及一种用于除法器的系统、方法和计算机程序产品,所述除法器将以二进制形式表示的两个数相除。除法器可以被实施在集成电路中。
【背景技术】
[0002]除法是可以被视为与乘法相反,并且需要解决很多不同的问题的算术运算。从概念上说,商可以被视为被除数可以完全包含除数的次数。如果被除数不能被除数整除,那么将留下余数,并且可以用各种方式表示余数。因此,一般地,被除数=(商*除数)+余数。商的符号取决于被除数和除数的符号,即,如果被除数与除数具有同号,那么商为正,但是如果被除数与除数具有异号,那么商为负。除以零未定义。
[0003]将两个数相除的熟悉的手动运算涉及从被除数重复的减去除数。商基本上充当可以从被除数完全减去除数的次数的计数器。在余数小于除数时,输入数的除法可以停止,但是更一般地说,过程可以继续将余数评估为分数。
[0004]以二进制形式表示的数的除法也为多种用途所需。例如,数字计算机具有在算术逻辑单元中执行二进制除法以及其他运算的微处理器。数字信号处理电路经常也需要二进制除法。常规的二进制除法器遵循熟悉的“重复减法”算法,并且因此具有许多缺点,主要是其运算可能非常耗时。
[0005]因此,发明人已确定在本领域中需要一种改进的二进制除法器。
【专利附图】

【附图说明】
[0006]图1为描绘根据本发明的一个方面的示例性快速除法器示意图的图解。
[0007]图2为描绘根据本发明的一个方面的示例性快速除法器方法的流程图。
[0008]图3为描绘根据本发明的一个方面的示例性除法器核心示意图的图解。
[0009]图4为描绘根据本发明的一个方面的示例性多格式完整的除法器示意图的图解。
【具体实施方式】
[0010]本发明的实施方案提供一种用于将两个二进制数相除的系统、方法和计算机程序产品。在一些情况下,可能并不需要计算完整的商,因为部分商可能足以满足某些目的。快速产生部分商可能在某些应用(例如,数字信号处理)中是特别有用的。
[0011]因此,提供一种快速除法器实施方案,其可以快速计算只是完整的商值的近似值的部分商。例如,可以只计算完整的64位商中的24位,但是那些24位是最高有效位。此实施方案可以提供具有有限的精确度,但具有大动态范围的快速的结果。也描述以各种二进制格式提供完整的商的替代实施方案。
[0012]如下文将要描述的,快速除法器可以通过使用浮点归一化架构来实施定点除法函数以产生最接近的初始商近似值。简要地,快速除法器可以归一化其输入,执行24位除法运算,并且乘/移位输出到其正确的值。归一化输入允许高度优化除法器核心,这是因为除法器处理的输入可能被约束到范围[0.5,1.0),即,从二分之一(含)到接近一。
[0013]此外,可以通过以数据块或商子集输出结果的除法器核心来计算所需的精密商。快速生成甚至是部分商的初始数据块可能在一些情况下会有很大的效用。因此,所描述的除法器实施方案可以迅速产生商子集的最高有效位,然后在进一步的时钟周期内继续生成额外的较低有效商位直到达到预定的商精度。
[0014]图1为描绘根据本发明的一个方面的示例性快速除法器100的功能图。快速除法器100可以被制造成集成电路。被除数102和除数104为快速除法器的输入。在一个示例性实施方案中,被除数可以为64位二进制数并且除数可以为32位二进制数。在一个实施方案中,向快速除法器100提交除数可以触发快速除法器的运算。
[0015]在一个实施方案中,被除数102和除数104可以是带符号数,因此快速除法器100可以接着在方框106和108获得每个输入的绝对值,并且分离出被除数符号位110和除数符号位112以供后续使用。符号位110和112可以确定将要描述的商的适当的符号。
[0016]快速除法器100可以包括方框114和116以分别归一化现在无符号的被除数102和除数104,以使得每个数可以具有在范围[0.5,1.0)内的值,即,从二分之一(含)到(但不包括)一。在一个实施方案中,通过将每个数缩放必需的二倍直到每个数的最高有效位的位置为“1”,可以归一化输入。通过移位数字一位,二进制数的值可以容易地改变二倍。因此,电路块114和116可以根据需要移位被除数102和除数104,以使得每个数的缩放值在所需的范围内。可以将描述由此得到的指数的数据传递到加法器118。加法器118可以减去用于每个归一化中的指数(例如,二的幂)(例如,从除数104的标度因子122减去被除数102的标度因子120)以产生将要描述的商的重新标度因子124。
[0017]在一个实施方案中,归一化的被除数可以为45位数,而归一化的除数可以为23位数。可以向执行除法的除法器核心126提交归一化的输入。下文参照图4描述除法器核心126的不同的实施方案。不同的实施方案可以在每个时钟周期具有不同的除数宽度和不同的吞吐量(例如,计算出的商位)。可以使用除法器核心生成除以零标记BY0128 ;除以零未定义并且可以被视为可能会停止运算并且触发特定的预定商值的输出的误差条件。在一个实施方案中,除法器核心126可以在接收到时钟信号130后开始其运算,时钟信号130可以为高级高性能总线(AHB)时钟信号。AHB为在微控制器设计的领域中众所周知的一部分高级微控制器总线架构(AMBA)协议、开放标准片上互连规范。
[0018]除法器核心126的输出132为归一化的被除数与归一化的除数的商。在一个实施方案中,系统的输出可以为表不归一化的输入的商的24位数。可以从除法器核心126内的存储商的存储单元检索商。在其他实施方案中,可以在运算的多个时钟周期内建立除法器核心输出132,其中可以计算每个时钟周期所需的商位的总数的预定数或“数据块”。
[0019]如将要描述的,例如,在一个总线时钟周期内,可以使用除法器核心126相当迅速地生成要计算的商位的第一数据块。商位的这个子集可以包括最高有效商位,以使得可以产生商的最精确的近似值作为初始输出。可以随后生成额外的较低有效位,过程可能会继续直到实现所需的商精度等级。因此,除法器核心126可以被设计成通过以有效值的递减顺序逐步输出商位来满足特定的需求。在例如每个时钟周期计算六个商位的系统中,在一个时钟周期后的六个最高有效位将可用,在两个时钟周期后的十二个最高有效位将可用,依此类推。在四个时钟周期后的所有二十四个示例性商位将可用。[0020]可以通过商的重新标度因子124缩放除法器核心126的输出132以在归一化期间补偿任何先前输入缩放。如同先前定义的归一化电路,移位寄存器134可以通过在适当的方向上移位输出适当的位数将除法器核心输出缩放二的幂。在一个实施方案中,缩放的输出可以为64位数。
[0021]必要时,可以基于被除数符号位110和除数符号位112,使用符号器136将缩放的输出转变为带符号数。在一个实施方案中,逻辑138对被除数符号位110和除数符号位112执行异或运算以确定商符号,例如,如果被除数和除数中只有一个为负,那么商应为负,否则商为正。可以将带符号的缩放的输出存储在寄存器140中。
[0022]也可以将带符号的缩放的输出加载到饱和累加器142中以输出为商。在算术运算期间,饱和算术将被处理数的值限制或“夹紧”到最大或最小范围界限。这种行为可能会避免数值的经常不切实际的剧变,其可能由模算术“环绕”引起。例如,在8位寄存器中,256个数值可用于描述通常从O变化到最多255的物理测量。如果测量超过预期范围,那么寄存器可以例如在溢出期间“翻转”到零,从而产生极具误导性的数值描述,这是因为真正的最高有效位被丢弃。在下溢和负数值的存储的情况下,可能会发生类似的问题。因此,饱和累加器142可以有效地重新格式化带符号的缩放的输出以最好地表示具有可用的寄存器大小的商值。饱和累加器的使用是可选的。
[0023]图1表示可以具有专用于每个方框的电路的功能方框图。可以根据需要合并电路,例如,为了速度和功率效率。如本领域中已知的,一些功能可能由控制器执行。
[0024]现在参看图2,示出描绘根据本发明的一个方面的示例性快速除法器方法200的流程图。可以在步骤202输入被除数和除数。可以在单独的步骤中发生这些输入,并且在一些实施方案中,除数的输入可以触发方法开始。
[0025]在步骤204中,可以使用为随后用于计算商符号而保留的符号信息获得除数的绝对值。在步骤206中,可以使用同样保留的除数符号信息获得被除数的绝对值。在一些实施方案中,可以同时执行符号处理。
[0026]可以在步骤208中归一化除数,步骤208可以包括使除数移位二的足够幂以使得其缩放值在范围[0.5,1.0)中,即,从二分之一(含)到(但实际上不包括)一。类似地,可以在步骤210中归一化被除数;归一化除数和被除数不需要以所述示例性顺序发生,并且实际上可以被同时执行。
[0027]在步骤212中,除法器核心可以开始执行被处理的被除数和除数的除法。除法器核心可以在步骤214中生成除以零标记,其可以触发特定处理输出以表示误差条件。例如,除法器200可以输出特定终值以表示除以零误差条件。除法器核心可以在步骤216中另外生成商或商数据块。
[0028]在步骤218中,方法可以组合被除数和除数归一化因子以生成应用于商的重新标度或去归一化因子。在步骤220中,例如,可以通过移位将商缩放二的适当幂。在步骤222中,可以从除数的符号和被除数的符号计算商的符号,例如,不同的符号将产生负商。在步骤224中,可以输出具有适当符号的商(或商“数据块”,例如,逐步生成的商子集)。
[0029]在步骤226中,方法可以确定是否已计算所有必需的商位。在一个实施方案中,可以在一个总线时钟周期内生成要计算的商位的第一子集;这些商位可以是最高有效商位。可以生成一般具有较低有效值的额外的必需的位,因为方法可以将运算选择性地返回到除法器核心以在步骤226中执行额外的计算。这个计算过程可以继续直到实现所需的输出商精度等级。
[0030]现在参看图3,示出描绘根据本发明的一个方面的示例性除法器核心示意图的图解。这个除法器核心300可以用于先前描述的快速除法器实施方案,或用于关于图4描述的替代除法器实施方案。也可以使用可能在本领域中已知的其他除法器核心,例如,在MaurusCappa 和 V.Carl Hamacher 的“An Augmented Iterative Array for High-Speed BinaryDivision” (IEEE Transactions on Computers, v.C-22, n.2,1973 年 2 月)中描述的迭代阵列除法器(IAD)电路,其以引用的方式整体并入本文。
[0031]除法器核心300可以包括许多移位/加块302。每个移位/加块302可以执行这
个运算:
[0032]
【权利要求】
1.一种用于将两个输入二进制数相除的电路,其包括: 归一化器,其用于归一化输入除数和输入被除数; 除法器核心,其用于将所述归一化的输入相除以产生至少部分商; 定标器,其用于逆转所述归一化;以及 至少一个输出寄存器,其用于输出所述至少部分商。
2.如权利要求1所述的电路,其中所述电路通过高级高性能总线(AHB)通信。
3.如权利要求1所述的电路,其中通过接收到所述除数来触发所述电路。
4.如权利要求1所述的电路,其中在除以零事件发生时,所述电路输出除以零标记和预定的商值中的至少一个。
5.如权利要求1所述的电路,其中用所述被除数写入的所述特定寄存器确定操作模式和数据格式中的至少一个。
6.如权利要求1所述的电路,其中所述归一化器移位除数位和被除数位,并且所述定标器比较所述被除数的所述移位与所述除数的所述移位,并且相应地移位商位。
7.如权利要求1所述的电路,其中所述归一化器归一化所述除数和所述被除数以使每个在范围[0.5,1.0)内。
8.如权利要求1所述的电路,其中所述电路计算完整的商和部分商中的至少一个。
9.如权利要求8所述的电路,其中所述完整的商包括64位并且所述部分商包括24位。
10.如权利要求1所述的电路,其中所述除法器核心被优化用于将归一化的输入相除。
11.如权利要求1所述的电路,其中所述除法器核心以递减的位有效值顺序计算商数据块。
12.如权利要求1所述的电路,其中所述除法器核心计算每个总线时钟周期的多个商数据块位。
13.如权利要求1所述的电路,其中所述除法器核心计算商数据块直到达到预定义的商精度等级。
14.如权利要求13所述的电路,其中所述商数据块包括六位。
15.如权利要求1所述的电路,其中所述除法器核心包括Cappa集成阵列除法器(IAD)。
16.如权利要求1所述的电路,其中所述除法器核心包括通过至少一个移位/加块序列输入至少一个除数位并且序列输出至少一个商位的移位寄存器, 其中第一移位/加块最初保存所述被除数, 其中每个移位/加块计算输出进位位和输出和位,每个移位/加块为两倍输入和位加上被除数位加上根据输入进位位值带符号的除数位, 其中所述商位为所述输出进位位,以及 其中所述输出进位位和所述输出和位进行至少一个操作:被传递给后续移位/加块并且被回收到所述第一移位/加块,以便计算另一商位。
17.如权利要求1所述的电路,其中所述电路进一步包括从被除数符号位和除数符号位的异或计算商符号位的符号校正器。
18.如权利要求1所述的电路,其中所述输出寄存器为饱和累加器。
19.一种将两个输入二进制数相除的方法,其包括:归一化除数和被除数; 将所述归一化的输入相除以产生至少部分商; 逆转所述归一化;以及 输出所述至少部分商。
20.如权利要求19所述的方法,其中所述归一化缩放所述除数和所述被除数以使每个在范围[0.5,1.0)内。
21.如权利要求19所述的方法,其中所述相除以递减的位有效值顺序逐步产生商数据块直到达到预定义的商精度等级。
22.一种用于将两个输入二进制数相除的系统,其包括: 用于归一化除数和被除数的构件; 用于将所述归一化的输入相除以产生至少部分商的构件; 用于逆转所述归一化的构件;以及 用于输出所述至少部分商的构件。
23.如权利要求22所述的系统,其中所述用于归一化的构件缩放所述除数和所述被除数以使每个在范围[0.5,1.0)内。
24.如权利要求22所述的系统,其中所述用于相除的构件以递减的位有效值顺序逐步产生商数据块直到达到预定义的商精度等级。
【文档编号】G06F7/535GK103914276SQ201410007454
【公开日】2014年7月9日 申请日期:2014年1月8日 优先权日:2013年1月8日
【发明者】P·S·威尔金斯 申请人:美国亚德诺半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1