CN103984522A - Gpdsp中定点和浮点混合除法的实现方法 - Google Patents

Gpdsp中定点和浮点混合除法的实现方法 Download PDF

Info

Publication number
CN103984522A
CN103984522A CN201410227927.9A CN201410227927A CN103984522A CN 103984522 A CN103984522 A CN 103984522A CN 201410227927 A CN201410227927 A CN 201410227927A CN 103984522 A CN103984522 A CN 103984522A
Authority
CN
China
Prior art keywords
iterative computation
division
point
result
business
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
Application number
CN201410227927.9A
Other languages
English (en)
Other versions
CN103984522B (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201410227927.9A priority Critical patent/CN103984522B/zh
Publication of CN103984522A publication Critical patent/CN103984522A/zh
Application granted granted Critical
Publication of CN103984522B publication Critical patent/CN103984522B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开一种GPDS中定点和浮点混合除法的实现方法,步骤为:1)输入除数和被除数,若为定点整数,转入执行步骤2);若为浮点数据,转入执行步骤3);2)除数和被除数根据前导0个数进行移位并计算出执行除法迭代的迭代次数,根据定点数据类型以及迭代次数执行一级或多级SRT算法的迭代;将商结果进行移位后得到最终的商结果,并根据最终商结果得到最终的余数;3)计算出除数和被除数的尾数,采用SRT算法执行尾数的除法迭代计算并将迭代计算通过一级或截断为多级执行;根据浮点数据类型以及迭代计算所执行的级数将商结果的尾数进行规格化。本发明具有除法功能全面且实现方法简单、执行周期短、延时小、除法执行效率高的优点。

Description

GPDSP中定点和浮点混合除法的实现方法
技术领域
本发明涉及GPDSP中除法运算技术领域,尤其涉及一种GPDSP中定点和浮点混合除法的实现方法。
背景技术
在早期的计算机中,除了除法本身的复杂性外,除法的不频繁使用导致了人们对除法效率的忽略。随着VLSI技术的发展,针对各个应用领域的处理器相继提出,这些处理器的应用需求使得除法应用越来越广泛。有从业者指出SPECfp92测试套件中浮点除法指令仅占总指令数的3%,但是除法的计算开销却占总时间开销的40%,除法的性能已经成为了影响这些处理器整体性能的瓶颈。同时,各种应用的处理器对计算速度、芯片面积以及功耗大小的要求也对除法的实现提出了挑战,因此设计并实现高速低开销的除法器是十分重要的。
除法算法可以分为三类:查表法、函数迭代和数字迭代,其中查表法使用简单,当精确度要求不高时可以直接使用得到结果;函数迭代算法包括Newton-Raphson和Goldschmidt算法,这类算法具有收敛速度快的特点,通常与查表法相结合使用来降低迭代次数;函数迭代算法每次迭代时都涉及到多次乘法操作,所以需要较大的乘法器,面积较大。
数字迭代方法是基本函数实现中最广泛的一类算法,其以简单的加减法和移位操作为基础,每次迭代后获得固定位数的商。在目前的处理器中,使用最多的数字循环算法是SRT(Sweeney Robertson and Robertson)算法,该算法由Sweeney、Robertson以及Tocher三人同时独立提出。目前,Intel Pentium CPUs、ARM处理器和IBM FPUs使用基为4的SRT(SRT-4)算法实现浮点除法,Intel Core2处理器则实现了基为16的SRT(SRT-16)算法除法。
构建高基可以提高降低迭代次数,但是增大基数的同时也会增加硬件设计的复杂度、以及除法部件的延迟和面积。在GPDSP(General-Purpose Digital Signal Processor,通用数字信号处理器)中,常用的浮点加减、乘法等指令的执行周期一般不超过七拍,而仅只有浮点除法指令的执行周期为数十拍,例如基16的双精度的浮点除法需要14次迭代周期,这增大了中断处理逻辑的硬件复杂度,因此高基SRT算法除法器仍然不适合在处理器中实现。TMS320C6000整数除法中所需的周期数也较多,且根据商的位数变化而变化,对于32位定点无符号除法根据求商的位数需要18~42个周期,而对于32位定点有符号除法根据求商的位数则需要16~41个周期。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种能够实现64位、32位定点整数除法以及IEEE-754标准双精度浮点除法、单精度浮点除法,功能全面且实现方法简单、执行周期短、延时小、除法执行效率高的GPDSP中定点和浮点混合除法的实现方法。
为解决上述技术问题,本发明提出的技术方案为:
一种GPDSP中定点和浮点混合除法的实现方法,具体实施步骤为:
1)数据类型判断:输入待运算的除数和被除数,若为64位或32位定点整数,转入执行步骤2);若为IEEE-754标准双精度或单精度浮点数据,转入执行步骤3);
2)定点除法:所述除数和被除数根据前导0个数进行移位并计算出执行除法迭代的迭代次数,根据定点数据类型以及所述迭代次数执行一级或多级迭代计算,其中每级执行次数不超过GPDSP的最大指令周期数的SRT算法的迭代,迭代计算完成后得到商结果;将所述商结果进行移位后得到最终的商结果,并根据最终商结果得到最终的余数;
3)浮点除法:计算出所述除数和被除数的尾数,采用SRT算法执行所述尾数的除法迭代计算并将迭代计算通过一级或截断为多级执行,其中每级执行次数不超过GPDSP的最大指令周期数的SRT算法的迭代,迭代计算完成后得到商结果和余数;根据浮点数据类型以及迭代计算所执行的级数将所述商结果的尾数进行规格化,得到最终的商结果。
作为本发明进一步改进,所述步骤2)的具体实施步骤为:
2.1)定点预处理:判断是否为有符号数,若为有符号数,对除数和被除数取绝对值,若为无符号数,不进行取绝对值操作;对被除数和除数进行前导0,得到被除数和除数的前导0个数分别为M和N后将被除数左移M位、除数左移N位;根据除数和被除数的前导0个数M和N按照下式计算得到除法迭代的迭代次数L,其中当M>N时,得到商为0,退出计算;
L=N-M+1            (1)
2.2)定点迭代计算:根据定点数据类型以及所述步骤2.1)计算得出的迭代次数L获取迭代计算级数NUM,执行NUM级迭代计算,每级执行多次SRT算法的迭代,迭代计算完成后得到商结果和余数;
2.3)定点结果后规整:将所述商结果右移(N-M)位,得到最终的商结果;将除数与商相乘,得到相乘结果MID,被除数减去所述相乘结果MID得到最终的余数。
作为本发明进一步改进,所述步骤2.2)中根据定点数据类型以及所述步骤2.1)计算得出的迭代次数L获取迭代计算级数NUM的具体实施方法为:通过查询预先建立的迭代次数L与迭代计算级数对应关系表获取到迭代计算级数NUM。
作为本发明进一步改进,所述步骤2)中根据定点数据类型以及迭代次数执行一级或多级迭代计算的具体实施方法为:当为64位定点整数时,若所述迭代次数不大于24,执行一级迭代计算,若所述迭代次数大于24且不大于48,执行两级迭代计算,若所述迭代次数大于48且不大于64,执行三级迭代计算,其中每级迭代计算执行6次基为16的SRT算法的迭代计算,执行下一级迭代计算时,将上一级迭代计算输出的商和余数作为下一级迭代计算的输入;当为32位定点整数时,若所述迭代次数不大于12,执行一级迭代计算,若所述迭代次数大于12且不大于24,执行两级迭代计算,若所述迭代次数大于24且不大于32,执行三级迭代计算,其中每级迭代计算执行3次基为16的SRT算法的迭代计算,执行下一级迭代计算时,将上一级迭代计算输出的商和余数作为下一级迭代计算的输入。
作为本发明进一步改进,所述步骤3)中采用SRT算法执行所述尾数的除法迭代计算并将迭代计算通过一级或截断为多级执行的具体实施方法为:采用基为16的SRT算法并将迭代计算截断为三级执行,其中当为双精度浮点数据时,每级执行5次基为16的SRT算法的迭代计算;当为单精度浮点数据时,每级执行2次基为16的SRT算法的迭代计算。
作为本发明进一步改进,所述步骤3)中根据浮点数据类型以及迭代计算所执行的级数将所述商结果的尾数进行规格化的具体实施方法为:当为双精度浮点数据时,若迭代计算所执行的级数为一级,将所述商结果的尾数规格化为20位,若迭代计算所执行的级数为两级,将所述商结果的尾数规格化为40位,若迭代计算所执行的级数为三级,将所述商结果的尾数规格化为53位;当为单精度浮点数据时,若迭代计算所执行的级数为一级,将所述商结果的尾数规格化为8位,若迭代计算所执行的级数为两级,将商结果的尾数规格化为16位,若迭代计算所执行的级数为三级,将商结果的尾数规格化为24位。
作为本发明进一步改进:所述基为16的SRT算法通过两次基为4的SRT算法实现。
与现有技术相比,本发明的优点在于:
1)本发明通过对定点数据进行预处理、不同级的除法迭代计算以及结果后规整实现定点除法运算,对浮点数据执行截断为多级的尾数除法迭代、商的尾数规格化实现浮点除法运算,并根据数据类型执行不同次数的SRT算法迭代,从而可实现64位定点、32位定点、双精度浮点和单精度浮点的混合除法运算;通过复用关键的迭代计算部分,使得能够在同一硬件平台上实现定点和浮点的混合除法运算,除法运算的功能全面且所需的面积开销小;
2)本发明采用SRT-16算法实现除法迭代计算,所需的执行周期短,且通过调用一次指令执行一级迭代计算,每一级执行的迭代计算次数不超过处理器的最大指令周期,从而减少执行的指令周期及中断处理逻辑的硬件复杂度,使得高基除法能够直接在处理器中实现;
3)本发明的定点除法中通过求商的精度控制调用迭代计算执行的级数,能够有效减少执行周期;浮点除法中则根据迭代计算执行的级数调整和控制商的运算精度,能够满足多种应用需求。
4)本发明通过采用两次SRT-4算法嵌套实现SRT-16算法的除法迭代计算,降低除法实现的复杂度,除法运算性能高、结构简单且易于设计和实现。
附图说明
图1是本实施例GPDSP中定点和浮点混合除法的实现方法流程示意图。
图2是本实施例GPDSP中定点和浮点混合除法的具体指令实现流程示意图。
图3是本实施例中迭代次数与迭代指令对应关系表示意图。
图4是本实施例定点除法中迭代指令执行的控制原理示意图。
图5是本实施例中浮点结果规格化指令实现原理示意图。
图6是本实施例浮点除法中商规格化实现方法示意图。
图7是本实施例GPDSP中定点和浮点混合除法具体实施原理示意图。
图8是本实施例中SRT-16算法实现结构示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
以下以采用基为16的SRT(SRT-16)算法实现除法迭代计算为例对本发明进行说明。
如图1所示,本实施例GPDSP中定点和浮点混合除法的实现方法,步骤为:
1)数据类型判断:输入待运算的除数和被除数,若为64位或32位定点整数,转入执行步骤2);若为IEEE-754标准双精度或单精度浮点数据,转入执行步骤3);
2)定点除法:除数和被除数根据前导0个数进行移位并计算出执行除法迭代的迭代次数,根据定点数据类型以及所述迭代次数执行一级或多级迭代计算,其中每级执行次数不超过GPDSP的最大指令周期数的SRT算法的迭代,迭代计算完成后得到商结果;将商结果进行移位后得到最终的商结果,并根据最终商结果得到最终的余数;
3)浮点除法:计算出所述除数和被除数的尾数,采用SRT算法执行所述尾数的除法迭代计算并将迭代计算通过一级或截断为多级执行,其中每级执行次数不超过GPDSP的最大指令周期数的SRT算法的迭代,迭代计算完成后得到商结果和余数;根据浮点数据类型以及迭代计算所执行的级数将所述商结果的尾数进行规格化,得到最终的商结果。
本实施例中,可以输入定点整数数据执行定点除法,也可以输入浮点数据执行浮点除法,其中定点除法中包括输入64位或32位的有符号、无符号定点整数,进行64位有符号、无符号定点整数除法,或32位有符号、无符号定点整数除法,浮点除法中包括输入IEEE-754标准双精度浮点(以下简称双精度浮点数据)数据或IEEE-754标准单精度浮点(以下简称单精度浮点)数据,进行双精度浮点除法或单精度浮点除法。
本实施例中,通过定义混合浮点指令集分别实现64位有符号和无符号定点整数除法、32位有符号和无符号定点整数除法、IEEE-754标准双精度浮点除法和单精度浮点除法,指令包括实现64位有符号和无符号定点整数除法的组合指令(ABS、LZD、SHFLL、SUB、TIME、ISRT64、SUBU、SHFLR和MULU)、32位有符号和无符号定点整数除法的组合指令(ABS32、LZD32、SHFLL32、SUB32、TIME32、ISRT32、SUBU32、SHFLR32和MULU32),双精度浮点除法的组合指令(FMAND、FSRTD和FNORMD)和单精度浮点除法的组合指令(FMANS、FSRTS和FNORMS)。各指令完成的功能如下表所示:
表1混合浮点指令集功能描述
如图2所示,本实施例GPDSP中定点和浮点混合除法的具体指令,包括预处理指令、迭代计算指令以及后规整指令。预处理指令中包括定点预处理指令和浮点预处理指令,其中定点预处理指令又分为64位定点预处理指令(LZD、SHFLL以及SUBU)、32位定点预处理指令(LZD32、SHFLL32以及SUBU32),分别对64位、32位定点整数除数和被除数进行前导0、移位及计算迭代次数L的预处理;浮点预处理指令包括双精度浮点预处理(FMAND)和单精度浮点预处理(FMANS)指令,分别对双精度浮点、单精度浮点除数和被除数进行尾数计算的预处理。迭代计算指令分为定点迭代计算指令和浮点迭代计算指令,其中定点迭代计算指令包括64位定点迭代计算指令(TIME、ISRT64)、32位定点迭代计算指令(TIME32、ISRT32),分别对64位、32位定点除数和被除数进行SRT-16算法的迭代计算,并由TIME指令/TIME32指令查询ISRT迭代指令/ISRT32迭代指令循环执行次数NUM;浮点迭代计算指令包括双精度浮点迭代计算指令(FSRTD)、单精度浮点迭代计算指令(FSRTS),分别执行双精度、单精度浮点除数和被输出的SRT-16算法的迭代。后规整指令分为定点结果后规整指令和浮点结果规格化指令,其中定点结果后规整指令包括64位定点结果后规整指令(SHFLR、MULIU以及SUBU)、32位定点结果后规整指令(SHFLR32、MULIU32以及SUBU32),分别对64位、32位定点商、余数结果进行求最终商、最终余数的后规整;浮点结果规格化指令包括双精度规格化指令(FNORMD)、单精度规格化指令(FNORMS),分别对双精度、单精度数据经过迭代计算后得到的商结果进行规格化。
本实施例中,步骤2)定点除法的具体实施步骤为:
2.1)定点预处理:判断是否为有符号数,若为有符号数,对除数和被除数取绝对值,若为无符号数,不进行取绝对值操作;对被除数和除数进行前导0,得到被除数和除数的前导0个数分别为M和N后将被除数左移M位、除数左移N位;根据除数和被除数的前导0个数M和N按照下式计算得到采用SRT算法进行除法迭代的迭代次数L,其中当M>N时,得出商为0,不进行迭代计算且退出;
L-1=N-M                  (1)
2.2)定点迭代计算:根据步骤2.1)计算得出的迭代次数L获取迭代计算级数NUM,执行NUM级迭代计算,每级执行多次SRT算法迭代且满足,迭代计算完成后得到商结果和余数;
2.3)定点结果后规整:将商结果右移(N-M)位,得到最终的商结果;将除数与商相乘,得到相乘结果MID,被除数减去所述相乘结果MID得到最终的余数。
本实施例中,若为64位定点整数时,执行64位定点除法,具体是通过与步骤对应的定点预处理指令、定点迭代计算指令和定点结果后规整指令实现,其中由定点预处理指令对定点源操作数进行预处理,包括ABS指令、LZD指令、SHFLL指令和SUB指令。ABS指令用于对64位定点被除数和除数取绝对值,将有符号操作数转换成无符号数;LZD指令用于对被除数和除数进行前导0,得到前导0个数M1和N1,M1为被除数前导0个数,N1为除数前导0个数;SHFLL指令用于根据前导0个数对被除数和除数进行左移,其中被除数左移M1位,除数左移N1位;SUB指令用于执行N1减去M1,求出迭代次数L1,且L1-1=N1-M1。定点迭代计算指令对定点预处理后的除数和被除数进行除法迭代计算,包括TIME指令和ISRT迭代指令,其中TIME指令用于获取执行ISRT64迭代指令循环次数NUM1,ISRT迭代指令用于根据TIME指令获得的迭代指令循环次数NUM1执行NUM1级SRT算法的迭代计算。定点结果后规整指令对迭代计算完成后得到的商结果进行后处理,包括SHFLR指令、MULIU指令和SUBU指令,其中SHFLR指令用于将迭代求出商进行右移(N1-M1)位,求出最后的商结果;MULIU指令用于将除数和商相乘得到结果MID1;SUBU指令用于将被除数减去MID1,得到最后的余数。其中ABS、LZD、SHFLL、SUB、SHFLR、MULIU和SUBU为其他部件现有指令,TIME指令和ISRT64迭代指令为本实施例中定义的用于64位定点除法的指令。
本实施例中,64位定点除法通过调用一次ISRT64指令执行一级的迭代计算,每级迭代计算执行6次SRT-16算法的迭代。ISRT64指令的调用方法为:ISRT64Src1,Src2,Src3Dst1:Dst2,其中对于第一次调用,源操作数Src1、Src2分别为64位定点被除数和64位定点除数,源操作数Src3为0,输出结果为经过1~6次64位定点除法迭代后的余数和商,分别存入目的寄存器Dst1和目的寄存器Dst2;对于第二次调用,源操作数Src1为第一次调用ISRT64指令的结果余数,源操作数Src2为64位定点除数,源操作数Src3为第一次调用ISRT64指令的结果商,输出结果为经过7~12次64位定点除法迭代后的余数和商,分别存入目的寄存器Dst1和目的寄存器Dst2;对于第三次调用,源操作数Src1为第二次调用ISRT64指令的结果余数,源操作数Src2为64位定点除数,源操作数Src3为第二次调用ISRT64指令的结果商,输出结果为经过13~18次除法迭代后的商和余数,分别存入目的寄存器Dst1和目的寄存器Dst2。
本实施例中,预先建立迭代次数L1-1(即为N1-M1)与ISRT64迭代指令循环次数NUM1的对应关系表,根据计算得出的(N1-M1)结果的三位即可查询得到对应的ISRT64迭代指令循环执行次数NUM1。如图3,本实施例中迭代次数与迭代指令对应关系表,其中64位定点除法的迭代次数L1-1与ISRT64迭代指令循环执行次数NUM1的对应关系表以及下式所示:
NUM1=1,N1-M1={0,1,…22,23};
NUM1=2,N1-M1={24,25,…46,47};
NUM1=3,N1-M1={48,49,…62,63};
其中当(N1-M1)[5:3]=3’b000或3’b001或3’b010时,NUM1=1;当(N1-M1)[5:3]=3’b011或3’b100或3’b101时,NUM1=2;当(N1-M1)[5:3]=3’b110或3’b111时,NUM1=3。
采用SRT-16算法进行除法迭代时,每次迭代得到4位的商,本实施例根据64位定点除数和被除数前导0个数的关系式(N1-M1)得出迭代次数L1,根据迭代次数L1执行对应级数的ISRT64迭代指令,使得可以根据求商的位数来控制迭代计算执行级数,从而减少执行周期。如图4所示,本实施例定点除法中迭代指令执行的控制原理,64位定点除法求商在24位以内,则控制ISRT64指令循环执行一次;求商在48位以内,则控制ISRT64指令循环执行两次,其中第二次调用ISRT64指令的输入为第一次调用ISRT64指令的输出;求商在64位以内,则控制ISRT64指令循环执行三次,其中第三次调用ISRT64指令的输入为第二次调用ISRT64指令的输出。
本实施例中,通过指令实现64位无符号定点除法的具体流程为:
A1)64位定点预处理
通过LZD指令,对被除数和除数进行前导0,得到前导0个数M1和N1;通过SHFLL指令将被除数左移M1位,除数左移N1位;通过SUB指令计算N1-M1得到迭代次数L1
A2)64位定点迭代计算
通过TIME指令查询迭代次数L1-1与ISRT64迭代指令循环执行次数NUM1的对应关系表,获取循环执行次数NUM1(1,2,3);通过ISRT64指令执行NUM1次的循环迭代计算,每次ISRT64指令执行6次SRT-16算法的迭代。
A3)64位定点结果后规整
通过SHFLR指令将迭代求出商进行右移(N1-M1)位,得到最后的商结果;通过MULIU指令将除数和商相乘得到结果MID1;通过SUBU指令将被除数减去MID1,得到最后的余数。
如下表所示,本发明具体实施例中64位无符号定点整数除法的指令流程,计算两个64位的定点数据除法18/5=3…3,其中周期表示指令执行时所在的周期数,且括号内分别对应执行第2、3次ISRT64指令后所在的周期数,R11=64’h00000000_00010010,R12=64’h00000000_00000101,R10为定点除法结果商,R20为定点除法结果余数。
表264位无符号定点整数除法指令流程
本实施例中,64位无符号定点除法预处理过程中需要首先进行取绝对值操作,将有符号操作数转换为无符号操作数,通过ABS指令执行。如下表所示,本发明具体实施例64位有符号定点整数除法的指令流程,计算两个64位有符号的定点数18和-5的除法18/-5=-3…3,其中周期表示指令执行时所在的周期数,且括号内分别对应执行第2、3次ISRT64指令后所在的周期数,R11=64’h00000000_00010010,R12=64’hFFFFFFFF_FFFFFEFF,R20为除法结果。
表364位有符号定点整数除法指令流程
本实施例中,32位定点除法的定点预处理指令包括ABS32指令、LZD32指令、SHFLL32指令以及SUB32指令,其中由ABS32指令对有符号的32位定点被除数和除数进行取绝对值操作,转换为无符号操作数;由LZD32指令计算32位定点被除数和除数的前导0个数,得到被除数的前导0个数M2、除数的前导0个数N2;由SHFLL32对被除数和除数进行移位,被除数左移M2位、除数左移N2位;SUB32指令计算得到迭代次数L2,且L2-1=N2-M2
本实施例中,32位定点除法通过调用一次ISRT32指令执行一级迭代计算,每级执行3次SRT-16算法的迭代。ISRT64指令的调用方法为:ISRT32Src1,Src2,Src3Dst1:Dst2,其中对于第一次调用,源操作数Src1、Src2分别为32位定点被除数和32位定点除数,源操作数Src3为0,输出结果为经过1~3次32位定点除法迭代后的余数和商,分别存入目的寄存器Dst1和目的寄存器Dst2;对于第二次调用,源操作数Src1为第一次调用ISRT32指令的结果余数,源操作数Src2为32位定点除数,源操作数Src3为第一次调用ISRT32指令的结果商,输出结果为经过4~6次32位定点除法迭代后的余数和商,分别存入目的寄存器Dst1和目的寄存器Dst2;对于第三次调用,源操作数Src1为第二次调用ISRT32指令的结果余数,源操作数Src2为32位定点除数,源操作数Src3为第二次调用ISRT32指令的结果商,输出结果为经过7~9次除法迭代后的商和余数,分别存入目的寄存器Dst1和目的寄存器Dst2。
本实施例中,32位定点除法的迭代次数L2-1与ISRT32迭代指令循环执行次数NUM2的对应关系表如下所示:
NUM2=1,N2-M2={0,1,…10,11};
NUM2=2,N2-M2={12,13,…22,23};
NUM2=3,N2-M2={24,25,…30,31};
其中,当(N2-M2)[4:2]=3’b000或3’b001或3’b010时,NUM2=1;当(N2-M2)[4:2]=3’b011或3’b100或3’b101时,NUM2=2;当(N2-M2)[4:2]=3’b110或3’b111时,NUM2=3。
本实施例32位定点除法通过迭代次数L2-1(即N2-M2)的结果控制执行ISRT32迭代指令次数,即为迭代计算的级数,使得可以根据求商的位数多少控制调用迭代指令的次数,可以减少执行周期。如图4所示,32位定点除法求商在12位以内,则ISRT32指令循环执行一次;求商在24位以内,则ISRT32指令循环执行两次,其中第二次调用ISRT32指令的输入为第一次调用ISRT32指令的输出;求商在32位以内,则ISRT32指令循环执行三次,其中第二次调用ISRT32指令的输入为第一次调用ISRT32指令的输出,第三次调用ISRT32指令的输入为第二次调用ISRT32指令的输出。
本实施例中,通过指令实现32位有符号、无符号定点整数除法的具体流程为:
B1)定点预处理
通过ABS32指令对有符号定点整数除法被除数和除数取绝对值,有符号操作数转换成无符号数(无符号定点整数除法则不执行此操作);通过LZD32指令对被除数和除数进行前导0个数分别为M2和N2;通过SHFLL32指令根据前导0个数对被除数和除数进行左移,其中被除数左移M2位,除数左移N2位;通过SUB32指令执行N2减去M2,求出L2-1=N2-M2,L2为迭代次数(当M2>N2时,不需要进行迭代);
B2)定点迭代计算
通过TIME32指令根据迭代次数L2查询迭代次数L2-1(即N2-M2)与ISRT32迭代指令循环执行次数NUM2的对应关系表,求出迭代指令循环次数NUM2(1,2,3);通过ISRT32指令迭代循环NUM2次,每次执行3次SRT-16算法的迭代。
B3)定点结果后规整
通过SHFLR32指将迭代求出商进行右移(N2-M2)位,求出最后的商结果;通过MULIU32指令将除数和商相乘得到结果MID2;通过SUBU32指令将被除数减去MID2,得到最后的余数。其中ABS32、LZD32、SHFLL32、SUB32、SHFLR32、MULIU32和SUBU32是其他部件现有指令,TIME32和ISRT32为本实施例定义的用于实现32位定点除法的除法指令。
如下表所示,本发明具体实施例中32位无符号定点整数除法的指令流程,计算两个32位的定点数据18和5的除法18/5=3…3,其中周期表示指令执行时所在的周期数,且括号内分别对应执行第2、3次ISRT32指令后所在的周期数,R11=32’h00010010,R12=32’h00000101,R10为定点除法结果商,R20为定点除法结果余数。
表432位无符号定点整数除法指令流程
本实施例中,32位无符号定点整数除法需要在预处理过程中首先对被除数和除数取绝对值,转换为无符号操作数。如下表所示,本发明具体实施例中32位有符号定点整数除法的指令流程,计算两个32位的定点数据18和-5除法18/-5=-3…3,其中周期所在列表示对应指令执行时所在的周期数,且周期数括号内分别对应执行第2、3次ISRT32指令后所在的周期数,R11=32’h00010010,R12=32’hFFFFFEFF,R10为定点除法结果商,R20为定点除法结果余数。
表532位有符号定点整数除法指令流程
本实施例中,步骤3)浮点除法采用SRT-16算法执行尾数的除法迭代计算,并将迭代计算分为三级执行,每级执行迭代的次数不超过GPDSP的最大指令周期数。浮点除法具体通过浮点预处理指令、浮点迭代计算指令以及浮点结果规格化指令实现,浮点预处理指令中包括FMAND指令和FMANS指令,其中由FMAND指令求双精度浮点被除数和双精度浮点除数的尾数;由FMANS指令求单精度浮点被除数和单精度浮点除数的尾数。
本实施例中,双精度浮点除数经过FMAND指令求出除数和被除数的尾数后,输出至进行除法迭代计算。通过调用一次FSRTD迭代指令执行一级的迭代计算,每级执行5次SRT-16算法的迭代,完成定点尾数除法。首先定义一个64位的双精度浮点除法的数据类型divd_type,用于存储每次FSRTD迭代指令调用完成后得到的商及调用信息,数据类型divd_type各数据位存储的数据包括:已调用次数(N)、余数符号(R)、被除数与除数尾数比较结果(C)、余数全0判断(RAll0)和单元商(P)组成,其中divd_type[63:62]为FSRTD迭代指令的已调用次数N,divd_type[61]为余数符号位,divd_type[60]为被除数与除数尾数比较结果C,divd_type[59:54]为余数全0判断,divd_type[53:0]为单元商P。
本实施例中,双精度浮点除法通过FMAND指令的预处理后,调用3次FSRTD迭代指令和一次FNORMD规格化指令完成。FSRTD迭代指令分为第1、2、3次调用指令,分别执行双精度浮点除法中第1~5次SRT-16算法的迭代,第6~10次SRT-16算法的迭代和第11~15次SRT-16算法的迭代。FNORMD指令根据第1、2、3次FSRTD迭代指令输出的余数和商结果,规格化双精度浮点除法不同精度的结果。
对于第一次调用({Src3[63:62]}=00)FSRTD迭代指令,源操作数Src1、Src2分别为双精度浮点被除数和双精度浮点除数,源操作数Src3为0(Src3包含已调用FSRTD迭代指令次数信息),输出结果为经过1~5次除法迭代后的商和余数,目的寄存器Dst1为divd_type,目的寄存器Dst2为1个64位定点有符号数据,表示余数;对于第二次调用({Src3[63:62]}=01),源操作数Src1为第一次调用FSRTD迭代指令的结果余数,源操作数Src2为双精度浮点除数,源操作数Src3为第一次调用FSRTD迭代指令的结果divd_type,输出结果为经过6~10次除法迭代后的商和余数,目的寄存器Dst1为divd_type,目的寄存器Dst2为1个64位定点有符号数据,表示余数;对于第三次调用({Src3[63:62]}=10),源操作数Src1为第二次调用FSRTD迭代指令的结果余数,源操作数Src2为双精度浮点除数,源操作数Src3为第二次调用FSRTD迭代指令的结果divd_type,输出结果为经过10~15次除法迭代后的商和余数,目的寄存器Dst1为divd_type,目的寄存器Dst2为1个64位定点有符号数据,表示余数。
本实施例中,通过FNORMD指令对第三次FSRTD迭代指令调用完成后得到的余数和商结果进行规格化。如图5所示,本实施例中浮点结果规格化指令实现原理,首先对于两个浮点数据相除,进行例外数据判断,进行IEEE-754标准中的各种浮点数异常和溢出处理。然后对于两个浮点数据相除,被除数与除数的符号位进行异或运算得到结果的符号位;被除数的指数减去除数的指数得到中间指数结果PreExp,由被除数与除数的尾数比较和舍入位来修正指数得到最终指数结果ResultExp;根据FSRTD迭代指令的调用次数(01、10、11)规格化双精度浮点除法为不同运算精度的尾数。本实施例浮点除法中商规格化实现方法如图6所示,双精度浮点除法对于调用一次(01)FSRTD迭代指令进行规格化取尾数精度为20位,对于调用两次(10)FSRTD迭代指令进行规格化取尾数精度为40位,对于调用三次(11)FSRTD迭代指令进行规格化取尾数精度为53位(全精度的单精度浮点)。最后根据双精度浮点例外判断来选择最终结果。根据双精度浮点除法中迭代计算所执行的级数将商结果的尾数规格化为不同位数,浮点除法运算的精度可以根据调用迭代指令的次数来调整和控制,可以满足多种应用场合的要求。
如下表所示,本发明具体实施例中双精度浮点除法指令流程,计算两个64位的双精度数据3.0/5.0=0.6,其中周期为指令执行时所在的周期数,FNORMD指令对应的周期数分别对应调用1次、2次以及3次FSRTD迭代指令时执行FNORMD指令所在的周期数,R11=64’h40080000_00000000,R12=64’h40140000_00000000,R10为除法结果。
表6双精度浮点除法指令指令流程
本实施例中,单精度浮点除法由FMANS指令求出被除数和除数的尾数后输出进行除法迭代计算。通过调用一次FSRTS迭代指令执行一级的迭代计算,每级执行2次SRT-16算法的迭代,完成定点尾数除法。首先定义一个32位的单精度浮点除法的数据类型divs_type,用于存储每次FSRTS迭代指令调用完成后得到的商结果以及调用信息,数据类型divs_type各数据位存储的数据包括:已调用次数(N)、余数符号(R)、被除数与除数尾数比较结果(C)、余数全0判断(RAll0)和单元商(P)组成,其中divs_type[31:30]表示FSRTS迭代指令的已调用次数N,divs_type[29]表示余数符号位,divs_type[28]表示被除数与除数尾数比较结果C,divs_type[27:25]表示余数全0判断,divs_type[24:0]表示单元商P。
本实施例中,单精度浮点除法通过FMANS指令进行预处理后调用3次FSRTS迭代指令和一次FNORMS指令完成,FSRTS迭代指令又分为第1、2、3次调用指令,分别执行单精度浮点除法中第1~2次SRT-16算法的迭代,第3~4次SRT-16算法的迭代和第5~6次SRT-16算法的迭代。FNORMS指令根据第1、2、3次FSRTS迭代指令输出的余数和商结果,规格化单精度浮点除法不同精度的结果。
对于第一次调用({Src3[31:30]}=00)FSRTS迭代指令,源操作数Src1、Src2分别为单精度浮点被除数和单精度浮点除数,源操作数Src3为0(Src3包含已调用FSRTS迭代指令次数信息),输出结果为经过1~2次除法迭代后的商和余数,目的寄存器Dst1为divs_type,目的寄存器Dst2为1个32位定点有符号数据,表示余数;对于第二次调用({Src3[31:30]}=01),源操作数Src1为第一次调用FSRTS迭代指令的结果余数,源操作数Src2为单精度浮点除数,源操作数Src3为第一次调用FSRTS迭代指令的结果divs_type,输出结果为经过3~4次除法迭代后的商和余数,目的寄存器Dst1为divs_type,目的寄存器Dst2为1个32位定点有符号数据,表示余数;对于第三次调用({Src3[31:30]}=10),源操作数Src1为第二次调用FSRTS迭代指令的结果余数,源操作数Src2为单精度浮点除数,源操作数Src3为第二次调用FSRTS迭代指令的结果divs_type,输出结果为经过5~6次除法迭代后的商和余数,目的寄存器Dst1为divs_type,目的寄存器Dst2为1个32位定点有符号数据,表示余数。
本实施例中,FNORMS指令接收FSRTS迭代指令输出的尾数定点除法余数和商结果,如图6所示,首先对于两个浮点数据相除,进行例外数据判断,进行IEEE-754标准中的各种浮点数异常和溢出处理。然后对于两个浮点数据相除,被除数与除数的符号位进行异或运算得到结果的符号位;被除数的指数减去除数的指数得到中间指数结果PreExp,由被除数与除数的尾数比较和舍入位来修正指数得到最终指数结果ResultExp;根据FSRTS迭代指令的调用次数(01、10、11),规格化单精度浮点除法不同运算精度的尾数。如图6所示,单精度浮点除法对于调用一次(01)FSRTS迭代指令进行规格化取尾数精度为8位,对于调用两次(10)FSRTS迭代指令进行规格化取尾数精度为16位,对于调用三次(11)FSRTS迭代指令进行规格化取尾数精度为24位(全精度的单精度浮点)。最后根据单精度浮点例外判断来选择最终结果并写回。单精度浮点除法运算的精度可以根据调用迭代指令的次数来调整和控制,可以满足多种应用场合的要求。
如下表所示,本发明具体实施例中单精度浮点除法指令流程,计算A的32位单精度数据6.0/B的32位单精度数据8.0=0.75,其中周期为指令执行时所在的周期数,FNORMS指令对应的周期数分别对应调用1次、2次以及3次FSRTS迭代指令时执行FNORMS指令所在的周期数,R11=32’h40C00000,R12=32’h41000000,R10=除法结果。
表7单精度浮点除法指令指令流程
如图7所示,本实施例GPDSP中定点和浮点混合除法具体实施原理,预处理过程中通过定点除法前导0单元对被除数和除数进行前导0,定点除法移位单元执行移位操作,浮点除法预处理单元计算浮点数据尾数;迭代过程中,通过复用混合除法迭代单元执行64位、32位定点整数除法、双精度和单精度浮点除法中的迭代计算,每调用一次指令执行一级SRT算法的迭代计算,得到迭代计算结果;后规整过程中通过定点除法提取商单元提取得到定点除法的最终商结果,并通过定点除法乘、减单元得到定点除法的最终余数结果,通过浮点除法规格化单元对双精度、单精度浮点数据迭代后结果进行规格化。定点与浮点除法复用关键的混合除法迭代单元,使得能同一硬件平台上实现定点和浮点混合除法,除法运算的功能全面且硬件开销小。
本实施例中,SRT-16算法通过两次SRT-4算法嵌套实现,SRT-16算法实现结构如图8所示,第一次SRT-4算法迭代求出两位商qH和相对应的余数Pc1、Ps1;第二次SRT-4算法迭代求出两位商qL和相对应的余数Pc2、Ps2。采用基于两次SRT-4算法嵌套组成基16除法迭代,性能好、结构简单且在硬件上易于设计和实现。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围的情况下,都可利用上述揭示的技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

Claims (7)

1.一种GPDSP中定点和浮点混合除法的实现方法,其特征在于具体实施步骤为:
1)数据类型判断:输入待运算的除数和被除数,若为64位或32位定点整数,转入执行步骤2);若为IEEE-754标准双精度或单精度浮点数据,转入执行步骤3);
2)定点除法:所述除数和被除数根据前导0个数进行移位并计算出执行除法迭代的迭代次数,根据定点数据类型以及所述迭代次数执行一级或多级迭代计算,其中每级执行次数不超过GPDSP的最大指令周期数的SRT算法的迭代,迭代计算完成后得到商结果;将所述商结果进行移位后得到最终的商结果,并根据最终商结果得到最终的余数;
3)浮点除法:计算出所述除数和被除数的尾数,采用SRT算法执行所述尾数的除法迭代计算并将迭代计算通过一级或截断为多级执行,其中每级执行次数不超过GPDSP的最大指令周期数的SRT算法的迭代,迭代计算完成后得到商结果和余数;根据浮点数据类型以及迭代计算所执行的级数将所述商结果的尾数进行规格化,得到最终的商结果。
2.根据权利要求1所述的GPDSP中定点和浮点混合除法的实现方法,其特征在于,所述步骤2)的具体实施步骤为:
2.1)定点预处理:判断是否为有符号数,若为有符号数,对除数和被除数取绝对值,若为无符号数,不进行取绝对值操作;对被除数和除数进行前导0,得到被除数和除数的前导0个数分别为M和N后将被除数左移M位、除数左移N位;根据除数和被除数的前导0个数M和N按照下式计算得到除法迭代的迭代次数L,其中当M>N时,得到商为0,退出计算;
L=N-M+1               (1)
2.2)定点迭代计算:根据定点数据类型以及所述步骤2.1)计算得出的迭代次数L获取迭代计算级数NUM,执行NUM级迭代计算,每级执行多次SRT算法的迭代,迭代计算完成后得到商结果和余数;
2.3)定点结果后规整:将所述商结果右移(N-M)位,得到最终的商结果;将除数与商相乘,得到相乘结果MID,被除数减去所述相乘结果MID得到最终的余数。
3.根据权利要求2所述的GPDSP中定点和浮点混合除法的实现方法,其特征在于,所述步骤2.2)中根据定点数据类型以及所述步骤2.1)计算得出的迭代次数L获取迭代计算级数NUM的具体实施方法为:通过查询预先建立的迭代次数L与迭代计算级数对应关系表获取到迭代计算级数NUM。
4.根据权利要求1所述的GPDSP中定点和浮点混合除法的实现方法,其特征在于,所述步骤2)中根据定点数据类型以及迭代次数执行一级或多级迭代计算的具体实施方法为:当为64位定点整数时,若所述迭代次数不大于24,执行一级迭代计算,若所述迭代次数大于24且不大于48,执行两级迭代计算,若所述迭代次数大于48且不大于64,执行三级迭代计算,其中每级迭代计算执行6次基为16的SRT算法的迭代计算,执行下一级迭代计算时,将上一级迭代计算输出的商和余数作为下一级迭代计算的输入;当为32位定点整数时,若所述迭代次数不大于12,执行一级迭代计算,若所述迭代次数大于12且不大于24,执行两级迭代计算,若所述迭代次数大于24且不大于32,执行三级迭代计算,其中每级迭代计算执行3次基为16的SRT算法的迭代计算,执行下一级迭代计算时,将上一级迭代计算输出的商和余数作为下一级迭代计算的输入。
5.根据权利要求4所述的GPDSP中定点和浮点混合除法的实现方法,其特征在于,所述步骤3)中采用SRT算法执行所述尾数的除法迭代计算并将迭代计算通过一级或截断为多级执行的具体实施方法为:采用基为16的SRT算法并将迭代计算截断为三级执行,其中当为双精度浮点数据时,每级执行5次基为16的SRT算法的迭代计算;当为单精度浮点数据时,每级执行2次基为16的SRT算法的迭代计算。
6.根据权利要求1~5中任意一项所述的GPDSP中定点和浮点混合除法的实现方法,其特征在于,所述步骤3)中根据浮点数据类型以及迭代计算所执行的级数将所述商结果的尾数进行规格化的具体实施方法为:当为双精度浮点数据时,若迭代计算所执行的级数为一级,将所述商结果的尾数规格化为20位,若迭代计算所执行的级数为两级,将所述商结果的尾数规格化为40位,若迭代计算所执行的级数为三级,将所述商结果的尾数规格化为53位;当为单精度浮点数据时,若迭代计算所执行的级数为一级,将所述商结果的尾数规格化为8位,若迭代计算所执行的级数为两级,将商结果的尾数规格化为16位,若迭代计算所执行的级数为三级,将商结果的尾数规格化为24位。
7.根据权利要求4或5所述的GPDSP中定点和浮点混合除法的实现方法,其特征在于,所述基为16的SRT算法通过两次基为4的SRT算法实现。
CN201410227927.9A 2014-05-27 2014-05-27 Gpdsp中定点和浮点混合除法的实现方法 Active CN103984522B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410227927.9A CN103984522B (zh) 2014-05-27 2014-05-27 Gpdsp中定点和浮点混合除法的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410227927.9A CN103984522B (zh) 2014-05-27 2014-05-27 Gpdsp中定点和浮点混合除法的实现方法

Publications (2)

Publication Number Publication Date
CN103984522A true CN103984522A (zh) 2014-08-13
CN103984522B CN103984522B (zh) 2018-04-13

Family

ID=51276516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410227927.9A Active CN103984522B (zh) 2014-05-27 2014-05-27 Gpdsp中定点和浮点混合除法的实现方法

Country Status (1)

Country Link
CN (1) CN103984522B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335127A (zh) * 2015-10-29 2016-02-17 中国人民解放军国防科学技术大学 Gpdsp中支持浮点除法的标量运算单元结构
CN106997284A (zh) * 2017-03-17 2017-08-01 龙芯中科技术有限公司 实现浮点运算操作的方法和装置
CN107562408A (zh) * 2016-06-30 2018-01-09 德州仪器公司 支持可中断浮点除法的架构及指令集
CN108845795A (zh) * 2018-05-29 2018-11-20 中国人民解放军国防科技大学 基于gpdsp的稠密矩阵乘法向量化汇编代码生成方法
CN110069240A (zh) * 2019-04-30 2019-07-30 北京探境科技有限公司 定点与浮点数据计算方法及装置
CN110737470A (zh) * 2017-04-28 2020-01-31 英特尔公司 低精度机器学习操作的计算优化
CN111104092A (zh) * 2019-12-06 2020-05-05 北京多思安全芯片科技有限公司 一种快速除法器和除法运算方法
CN111752532A (zh) * 2020-06-24 2020-10-09 上海擎昆信息科技有限公司 一种高精度实现32位整数除法的方法、系统及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5825680A (en) * 1996-06-21 1998-10-20 Digital Equipment Corporation Method and apparatus for performing fast division
US6549926B1 (en) * 1999-10-26 2003-04-15 Sun Microsystems, Inc. SRT divider having several bits of each partial remainder one-hot encoded to minimize the logic levels needed to estimate quotient bits
CN1485725A (zh) * 2003-08-20 2004-03-31 中国科学院计算技术研究所 一种定点除法部件中提前终止循环计算的方法
CN1485726A (zh) * 2003-08-20 2004-03-31 中国科学院计算技术研究所 能使srt算法实现的定点除法部件减少循环次数的方法
US6751645B1 (en) * 1999-02-17 2004-06-15 Elbrus International Limited Methods and apparatus for performing pipelined SRT division
CN103399725A (zh) * 2013-08-08 2013-11-20 中国科学院自动化研究所 一种不恢复余数的除法器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5825680A (en) * 1996-06-21 1998-10-20 Digital Equipment Corporation Method and apparatus for performing fast division
US6751645B1 (en) * 1999-02-17 2004-06-15 Elbrus International Limited Methods and apparatus for performing pipelined SRT division
US6549926B1 (en) * 1999-10-26 2003-04-15 Sun Microsystems, Inc. SRT divider having several bits of each partial remainder one-hot encoded to minimize the logic levels needed to estimate quotient bits
CN1485725A (zh) * 2003-08-20 2004-03-31 中国科学院计算技术研究所 一种定点除法部件中提前终止循环计算的方法
CN1485726A (zh) * 2003-08-20 2004-03-31 中国科学院计算技术研究所 能使srt算法实现的定点除法部件减少循环次数的方法
CN103399725A (zh) * 2013-08-08 2013-11-20 中国科学院自动化研究所 一种不恢复余数的除法器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘康: "《高性能浮点除法单元的设计》", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335127A (zh) * 2015-10-29 2016-02-17 中国人民解放军国防科学技术大学 Gpdsp中支持浮点除法的标量运算单元结构
CN107562408A (zh) * 2016-06-30 2018-01-09 德州仪器公司 支持可中断浮点除法的架构及指令集
CN107562408B (zh) * 2016-06-30 2023-09-12 德州仪器公司 支持可中断浮点除法的实现方法及系统
CN106997284A (zh) * 2017-03-17 2017-08-01 龙芯中科技术有限公司 实现浮点运算操作的方法和装置
CN106997284B (zh) * 2017-03-17 2021-05-04 龙芯中科技术股份有限公司 实现浮点运算操作的方法和装置
CN110737470A (zh) * 2017-04-28 2020-01-31 英特尔公司 低精度机器学习操作的计算优化
CN108845795A (zh) * 2018-05-29 2018-11-20 中国人民解放军国防科技大学 基于gpdsp的稠密矩阵乘法向量化汇编代码生成方法
CN108845795B (zh) * 2018-05-29 2019-06-14 中国人民解放军国防科技大学 基于gpdsp的稠密矩阵乘法向量化汇编代码生成方法
CN110069240A (zh) * 2019-04-30 2019-07-30 北京探境科技有限公司 定点与浮点数据计算方法及装置
CN111104092A (zh) * 2019-12-06 2020-05-05 北京多思安全芯片科技有限公司 一种快速除法器和除法运算方法
CN111752532A (zh) * 2020-06-24 2020-10-09 上海擎昆信息科技有限公司 一种高精度实现32位整数除法的方法、系统及装置

Also Published As

Publication number Publication date
CN103984522B (zh) 2018-04-13

Similar Documents

Publication Publication Date Title
CN103984522A (zh) Gpdsp中定点和浮点混合除法的实现方法
US6049865A (en) Method and apparatus for implementing floating point projection instructions
US8402078B2 (en) Method, system and computer program product for determining required precision in fixed-point divide operations
GB2497469B (en) Multiply add functional unit capable of executing scale,round,Getexp,round,getmant,reduce,range and class instructions
EP3447634B1 (en) Non-linear function computing device and method
JP2017062804A (ja) 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ
CN1928809A (zh) 用于执行浮点运算的系统、设备和方法
CN103984521B (zh) Gpdsp中simd结构浮点除法的实现方法及装置
JPH04227535A (ja) 除算を行なう装置
CN101630243B (zh) 超越函数装置以及用该装置实现超越函数的方法
RU2006143196A (ru) Способ и устройство для реализации целочисленного деления на инвариантный делитель с использованием n-битовой операции умножения и суммирования
CN105335127A (zh) Gpdsp中支持浮点除法的标量运算单元结构
CN105389157A (zh) 基于Goldschmidt算法的浮点除法器
Brunie et al. A mixed-precision fused multiply and add
CN100367191C (zh) 一种快速流水线型除法器
CN101650643B (zh) 一种用于不可除尽浮点除法开方的舍入方法
US20060184602A1 (en) Data processing apparatus and method for performing a reciprocal operation on an input value to produce a result value
GB2423385A (en) Determining an initial estimate of a result value of a reciprocal operation
US9348796B2 (en) Arithmetic operation in a data processing system
US6598065B1 (en) Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal
Sasidharan et al. VHDL Implementation of IEEE 754 floating point unit
Gollamudi et al. Design Of High Performance IEEE-754 Single Precision (32 bit) Floating Point Adder Using VHDL
Yang et al. An architecture of area-effective high radix floating-point divider with low-power consumption
Schulte et al. A software interface and hardware design for variable-precision interval arithmetic
CN109298848A (zh) 双模式浮点除法平方根的电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant