一种尾码采用移位和减法运算的浮点数除法器及运算方法
技术领域
本发明属于一种浮点型除法器,具体讲涉及一种尾码采用移位和减法运算的浮点数除法器及运算方法。
背景技术
伴随工作站以及工业等诸多方面对于数字信号处理以及图像处理需求的日益增长,浮点运算扮演的角色越加显得重要;特别是在高性能计算领域。浮点运算性能是衡量微处理器性能的重要指标,为提高浮点运算性能现在的微处理器通常包含专用的浮点运算单元或浮点协处理器,浮点运算精度高,算法复杂,通常需要多个时钟周期才能完成,这些运算特性决定了浮点运算单元具有硬件开销大,速度慢和功耗大等特点,因此浮点运算单元是整个微处理器设计中需重点考虑的对象。与定点数相比,浮点数据拥有更大的动态范围与更高的精密度,因而更具运算上的优越性。随着集成电路生产工艺的进步,工艺特征尺寸的缩小,单芯片面积的增大,使得单芯片的集成度有了空前的提高,因此,实现算法更复杂的高性能浮点运算单元成为可能。
当前应用广泛的浮点运算包括:浮点加法、浮点乘法、浮点除法以及浮点平方根。同时典型的浮点应用程序中常用浮点运算比例为:加法45%,乘法45%,除法5%,平方根3%。多年以来研究及工程人员更多关注高速浮点乘法和加法,浮点除法以及浮点平方根的性能则少人问津。与浮点乘法和加法相比,浮点除法和平方根使用频率低;但对于某些应用而言,浮点除法部件则成为制约系统性能提高的瓶颈。高性能浮点加法、乘法算法、熔合乘加算法以及其实现技术已经相当成熟,浮点除法器的设计与实现仍然存在严峻挑战。浮点除法算法种类众多,但鉴于设计参数多样性,如:硬件成本、设计复杂度、运算精度、运算速度等等,各种算法在实现中各有所长,所以其实现与优化的空间仍然相当大。
发明内容
针对现有技术的不足,本发明提出一种尾码采用移位和减法运算的浮点数除法器及运算方法。除数和被除数经过浮点数除法器的预处理模块得到浮点数的尾数,并通过移位和减法运算得到尾数的商。通过把除法运算转化成移位运算和减法运算,使得采用硬件电路实现变得容易,结构简单,容易移植,计算精度高。
本发明的目的是采用下述技术方案实现的:
一种尾码采用移位和减法运算的浮点数除法器,其改进之处在于,所述除法器包括预处理模块,符号位运算模块,浮点数阶码运算模块,浮点数尾码运算模块,浮点数后处理模块;
所述预处理模块、符号位运算模块、浮点数阶码运算模块、浮点数尾码运算模块和浮点数后处理模块相连。
本发明基于另一目的提供的一种尾码采用移位和减法运算的浮点数除法运算方法,其改进之处在于,所述方法包括
(1)进行判0处理和数据分解;
(2)计算出商的符号;
(3)计算出阶码的商;
(4)处理得到尾数除法的商;
(5)进行浮点数商的整合和规格化处理。
优选的,所述步骤(1)包括浮点数的预处理模块根据除数和被除数进行判0处理,并且将除数和被除数进行分解。
进一步地,所述将除数和被除数进行分解,分解出除数和被除数的符号位、阶码、尾码。
优选的,所述步骤(2)包括浮点数除法器的符号位运算模块用于计算商的符号。
优选的,所述步骤(3)包括浮点数的阶码运算模块用于计算阶码的商值,被除数的移码减去除数的移码得到阶码运算的结果,并根据阶码判断浮点数结果是否溢出。
优选的,所述步骤(4)包括浮点数尾数运算模块采用移位和减法进行运算,得到尾数相除的商并进行舍入处理。
优选的,所述步骤(5)包括浮点数后处理模块将所得到的符号位,阶码运算的值,尾码运算的值按照IEEE745的标准进行整合,并进行规格化处理。
优选的,所述浮点数尾数运算模块采用移位和减法进行运算,其中包含移位器、比较器、减法器和商寄存器。
与现有技术比,本发明的有益效果为:
本发明把除法运算转换成移位和减法运算,采循环移位方法,用硬件电路实现,运算的精度高,运算延迟小,可行性好。采用移位方法得到商值,结构简单,便于移植。
本发明适合单精度和双精度的浮点数除法器,并符合IEEE745标准。
附图说明
图1为本发明提供的一种尾码采用移位和减法运算的浮点数除法器运算方法示意图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
本发明提出一种尾码采用移位和减法运算的浮点数除法器及运算方法,本发明采取以下设计方案:
1)、本发明提出一种浮点数尾数采用移位和减法运算的浮点数除法器。
2)、本发明适用于单精度浮点数除法器,并符合IEEE745标准。
3)、浮点数除法器分为预处理模块,符号位运算模块,浮点数阶码运算模块,浮点数尾码运算模块,浮点数后处理模块。
4)、浮点数的预处理模块,根据除数和被除数进行判0处理,并且将除数和被除数进行分解,分解出除数和被除数的符号位、阶码、尾码。
5)、浮点数符号位运算模块,通过异或计算出商的符号。
6)、浮点数阶码运算用于计算商的阶码,被除数的移码减去除数的移码得到阶码运算的结果,根据阶码判断浮点数结果是否溢出。
7)、浮点数尾数运算模块,采用移位和减法进行运算,得到尾数相除的商并进行舍入处理。
8)、浮点数后处理模块,将所得到的的符号位,阶码运算的商,尾码运算的商按照IEEE745的标准进行整合,并进行规格化处理。
实施例
本发明提出一种尾码采用移位和减法运算的单精度浮点数除法运算方法。
如图1所述,浮点数除法器的结构图以及尾数运算的过程图,
首先是除数和被除数经过预处理模块进行判0处理和数据分解;
通过符号运算模块计算出商的符号;
通过阶码运算模块计算出阶码的商,并且确定浮点数的结果是否溢出;
通过尾数处理模块得到尾数除法的商;
通过后处理模块进行浮点数商的整合和规格化处理。
如图1所述,一种尾码采用移位和减法运算的单精度浮点数除法运算方法过程进一步描述,具体为:
首先通过预处理得到除数和被除数的尾数,被除数的尾数放到被除数_尾数_寄存器,除数的尾数放到移位器里;
将被除数_尾数_寄存器和移位器里的数进行比较;
如果被除数大于除数,两个数相减,差值存放到被除数_尾数_寄存器;
商寄存器相应的位数上为1,移位器里的除数移位;
如果被除数小于除数,商寄存器相应的位数上为0,移位器里的除数移位。
经过25个周期(单精度浮点数)得出位尾数的商值,然后进行整合、规格化处理。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。