CN100583024C - 一种用于浮点除法和平方根运算的预处理电路结构 - Google Patents

一种用于浮点除法和平方根运算的预处理电路结构 Download PDF

Info

Publication number
CN100583024C
CN100583024C CN200810055617A CN200810055617A CN100583024C CN 100583024 C CN100583024 C CN 100583024C CN 200810055617 A CN200810055617 A CN 200810055617A CN 200810055617 A CN200810055617 A CN 200810055617A CN 100583024 C CN100583024 C CN 100583024C
Authority
CN
China
Prior art keywords
address
data
circuit
output
bit
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.)
Expired - Fee Related
Application number
CN200810055617A
Other languages
English (en)
Other versions
CN101216753A (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.)
Easyway Co ltd
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN200810055617A priority Critical patent/CN100583024C/zh
Publication of CN101216753A publication Critical patent/CN101216753A/zh
Application granted granted Critical
Publication of CN100583024C publication Critical patent/CN100583024C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

一种用于浮点除法和平方根运算的预处理电路结构,属于浮点运算单元设计领域,其特征在于,先用操作数处理电路把操作数分为23位尾数和指数最低位,再用尾数截取电路从高到低截取15位尾数,依次分为高6位、中间4位、低1位和低4位,经处理后作为地址从对称双向查找表中得到六个部分和数据,经补位后,在表示除法或平方根运算的操作状态信号及指数最低位的控制下,用选择电路得出相应运算下的两个部分和,再经加法、和处理及再次选择后,得到操作数的倒数或平方根倒数的尾数为14位精度的近似值,作为单精度浮点除法和平方根运算用的最终的初始值。本发明具有速度快、查找表占用硬件面积小的优点。

Description

一种用于浮点除法和平方根运算的预处理电路结构
技术领域
本发明涉及浮点运算单元设计,是一种用于实现浮点除法和浮点平方根运算的预处理电路结构。
背景技术
近年来,由于计算机的计算复杂度大大增加,浮点处理器的应用十分广泛。同时工业界广泛采用性能评测标准,促使处理器设计者投入更多的精力开发浮点运算单元。基于特定应用的系统,例如高性能的图像处理系统,对处理器提出了更高的要求,这些都需要高速的浮点运算单元来满足。
浮点运算单元一般具有加法、乘法、除法、平方根运算等基本功能。其中,实现除法和平方根运算的一种算法是基于乘法迭代的方法。这种算法的优点是:每次迭代精度增加一倍,需要迭代的次数少;由于共用乘法单元,需要增加的面积相对少。但同时,这种方法需要首先得到运算所需的初始值,这就需要增加一个预处理阶段。在预处理阶段中,通过查找表及其他逻辑得到输入操作数的倒数或平方根倒数的近似值,作为迭代算法的初始值。一种使用预处理结构的浮点运算单元的结构示意图见图1。
二进制数可以用这种形式表示:(-1)S×(b0b1b2…bn-1)×2E。其中,f=b1b2…bn-1。这样一个数存储在一个32位二进制段的三个字段中,即为单精度浮点数的存储格式,见图2。其中包括:符号s(1位):0表示正,1表示负。指数e(8位):指数的表示方法称为偏值表示法,一个固定的偏值从字段中减去,才得到真正的指数,对于32位的单精度浮点数,偏值为127(例如,如果真正的指数为0,则e=01111111)。尾数f(23位):小数点的位置约定在最左(最高)有效位的右边,即小数点左边有1位,对于规格化数,这位是1,小数点右边的部分称为尾数(即f),只有这部分存储于字段中。
对于浮点除法B/A和平方根运算
Figure C20081005561700051
令操作数A的符号位为0,指数为01111111,尾数不变,记为a,需要得到1/a、
Figure C20081005561700052
Figure C20081005561700053
的近似值,作为迭代的初始值。这就需要在存储器的对应地址中存储按一定算法得到的值,这样就形成了一个查找表。在预处理阶段,将a的尾数的一部分作为地址,到存储器中查找,得到对应地址中存储的值,再经过一些其他运算,就可以得到所需要的初始值。初始值精度越高,需要迭代的次数越少,但是查找表需要的面积大大增加。如果是单精度计算,且希望仅通过一次迭代得到单精度的计算结果,就需要尾数为14位精度的初始值。
查找表有很多不同的算法和实现方式,其中一种算法是对称双向查找表(参考文献:Approximating elementary functions with symmetric bipartite tables)。
这种算法由Taylor级数展开得到,下面对它的原理作简要介绍。这里,将a的尾数记为y,将需要得到近似值的函数记为f(y)。首先,将y分为四段,y0、y1、y2、y3,其对应的值为y=y0+y1+y2+y3,四段的位数分别是n0、n1、n2、n3
要使用两个查找表分别存储一定位数的a0、a1,位数根据所需精度决定,计算公式是:
a0(y0,y1)=f(1+y0+y123)
a1(y0,y2)=f′(1+y0123)(y22)
其中,y0、y1、y2分别为其在y中对应的值, δ 1 = 2 - n 0 - 1 - 2 - n 0 - n 1 - 1 , δ 2 = 2 - n 0 - n 1 - 1 - 2 - n 0 - n 1 - n 2 - 1 , δ 3 = 2 - n 0 - n 1 - n 2 - 1 - 2 - n - 1 .
a0(y0,y1)的存储地址为y0、y1的各位连接,a1(y0,y2)的存储地址为y0、y2的各位连接。
具有了这样的查找表后,就可以通过查找得到f(y)的近似值。y输入后,截取y0、y1、y2,将y0、y1的各位连接作为地址查找,得到对应地址中存储的a0;将y0、y2的各位连接作为地址查找,得到对应地址中存储的a1。然后,a0、a1相加,就近舍入,就得到了所需的近似值:f(y)=a0(y0,y1)+a1(y0,y2)。
所谓对称,指的是a1的查找。将y2去掉最高位后剩下的位记为y2′。存储a1的查找表只要存储y2的最高位为0时的a1(y0,y2)的值即可,存储地址为y0、y2′的各位连接,这样可以节约一半的面积。查找过程是:如果y2最高位是0,则由y2剩下的位y2′作为地址查找a1(y0,y2);如果y2最高位是1,则将y2剩下的位取反后作为地址查找a1(y0,y2),然后将查得的值取反即可。
这种查找表算法可以用于实现除法和平方根运算的预处理结构。
发明内容
本发明的目的在于设计一种用于浮点除法和平方根运算的预处理电路结构,它适用于基于乘法迭代方法实现的浮点除法和平方根运算,能够得到除法和平方根运算所需的初始值。
本发明的特征在于,含有:操作数处理电路、尾数截取电路、第一异或电路、第一地址寄存器、第二地址寄存器、第一至第六共六个存储器、补位电路、第一选择电路、第二异或电路、加法电路、和处理电路,以及第二选择电路,其中,
操作数处理电路,输入是单精度操作数operand_A,输出是:a_man,操作数operand_A的23位尾数;exp_odd_even,单精度浮点数存储格式中操作数operand_A的指数的最低位;
尾数截取电路,输入是所述数据a_man,输出为:所述数据a_man的高6位y0、第7至第10位y1、第11位c,以及第12至第15位y2;
第一异或电路,输入是所述尾数截取电路输出的数据c,以及y2,在对所述数据y2的每一位与数据c作异或后,得到y2_xor,共4位;
第一地址寄存器,输入是所述尾数截取电路输出的数据y0和y1,共10位,用s0表示;
第二地址寄存器,输入是所述尾数截取电路输出的数据y0,以及所述第一异或电路输出的数据y2_xor,共10位,用s1表示;
第一存储器,作倒数查找表用,地址位为10位,数据位为15位,在地址h中存储的数据是:d=1/(1+h1×2-6+h2×2-1023),h1为地址h的高6位,h2为地址h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效数字,其中第一位是1,在地址h中只存储后15位,所述第一存储器的输入是所述第一地址寄存器输出的地址s0,输出是数据Q1;
第二存储器,作平方根查找表1用,地址位为10位,数据位为15位,在地址h中存储的数据是: d = 1 / 1 + h 1 × 2 - 6 + h 2 × 2 - 10 + δ 2 + δ 3 , h1为地址h的高6位,h2为地址h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效数字,其中第一位是1,在地址h中只存储后15位,所述第二存储器的输入是所述第一地址寄存器输出的地址s0,输出是数据Q2;
第三存储器,作平方根查找表2用,地址位为10位,数据位为15位,在地址h中存储的数据是: d = 1 / 2 × ( 1 + h 1 2 - 6 + h 2 × 2 - 10 + δ 2 + δ 3 ) , h1为地址h的高6位,h2为地址h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效数字,其中第一位是1,在地址h中只存储后15位,所述第三存储器的输入是所述第一地址寄存器输出的地址s0,输出是数据Q3;
第四存储器,也作倒数查找表用,地址位为10位,数据位为5位,在地址h中存储的数据是:d=-[1/(1+h1×2-6123)2]×(h2×2-152),h1为地址h的高6位,h2为地址h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前5位有效数字,存储在地址h中,所述第四存储器的输入是所述第二地址寄存器输出的地址s1,输出是数据Q4;
第五存储器,也作平方根查找表1用,地址位为10位,数据位为4位,在地址h中存储的数据是: d = - [ 0.5 / ( 1 + h 1 × 2 - 6 + δ 1 + δ 2 + δ 3 ) 3 ] × ( h 2 × 2 - 15 - δ 2 ) , h1为地址h的高6位,h2为地址h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前4位有效数字,存储在地址h中,所述第五存储器的输入是所述第二地址寄存器输出的地址s1,输出是数据Q5;
第六存储器,也作平方根查找表2用,地址位为10位,数据位为4位,在地址h中存储的数据是: d = - [ 0.5 / ( 2 × ( 1 + h 1 × 2 - 6 + δ 1 + δ 2 + δ 3 ) ) 3 ] × ( 2 × ( h 2 × 2 - 15 - δ 2 ) ) , h1为地址h的高6位,h2为地址h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前4位有效数字,存储在地址h中,所述第六存储器的输入是所述第二地址寄存器输出的地址s1,输出是数据Q6;
补位电路,六个输入端分别依次与所述第一至第六存储器的输出端相连,分别输入数据Q1至Q6,该补位电路在数据Q1、Q2、Q3前各补01,依次得到r1、r2和r3,在数据Q4前补12位0,得到r4,在数据Q5、Q6前各补13位0,得到r5、r6,从r1至r6的每一个数据均为17位;
第一选择电路,分别设有数据exp_odd_even、以及操作状态信号operation_in的输入端,operation_in=0表示需要除法运算的初始值,operation_in=1表示需要平方根运算的初始值,所述第一选择电路还设有六个输入端,分别与所述补位电路的六个输出端相连,输入数据r1、r2、r3、r4、r5和r6,当operation_in=1且exp_odd_even=1时,所述第一选择电路输出r2和r5,当operation_in=1且exp_odd_even=0时,所述第一选择电路输出r3和r6,在其他情况下,所述第一选择电路输出r1和r4,所述第一选择电路的两个输出分别用a0、a1表示;
第二异或电路,两个输入端分别与所述尾数截取电路的数据c的输出端、所述第一选择电路的数据a1的输出端相连,将数据a1的每一位与数据c作异或,得到a1_xor,共17位;
加法电路,两个数据输入端分别与所述第一选择电路的数据a0的输出端、所述第二异或电路的数据a1_xor的输出端相连,首先把数据a0和a1_xor相加,得到17位的和,再把这17位的和就近舍入到15位,当第16位是1时则进位,是0时则截断,得到和sum,共15位;
和处理电路,输入端与所述加法电路的sum输出端相连,截取sum的第3位到第15位,再在前面补001111110,后面补10个0,得到seed1,共32位;再截取sum的第2位到第15位,前面补001111111,后面补9个0,得到seed2,共32位;再截取sum的第1位,得到flag;
第二选择电路,控制信号输入端与所述和处理电路的flag信号输出端相连,两个数据输入端分别与所述和处理电路的seed1、seed2数据输出端相连,当flag=0时,选择seed1输出,当flag=1时,选择seed2输出,输出结果x0即为所述预处理电路结构的输出结果,共32位,作除法或平方根运算的初始值用。
本发明的预处理电路结构可以得到基于乘法迭代实现的单精度浮点除法和平方根运算所需的初始值,是用相对较小的面积和较快的速度实现的。由于使用了对称双向查找表,比直接查找的查找表节省了很大的面积,另外由于对称性,比一般的双向查找表也节省了很多面积。由于本电路结构只需要查找操作和一步加法操作,而不需要乘法操作,可以达到较快的速度。本发明的预处理电路结构可以用在基于乘法迭代实现的单精度浮点除法和平方根运算的多种不同的电路结构之前,得到尾数为14位精度的初始值输入后面的电路结构。
附图说明
图1是一种使用预处理结构的浮点运算单元的结构示意图;
图2是单精度浮点数的存储格式;
图3是本发明的预处理结构的结构框图。
具体实施方式
为实现上述目的,本发明提供了一种预处理电路结构,它使用了对称双向查找表算法,能够得到单精度浮点除法和平方根运算所需的尾数为14位精度的初始值,也就是得到操作数的倒数的近似值或平方根倒数的近似值。本发明提供的预处理结构具有查找表、加法电路以及其他逻辑,它的结构框图见图3,含有:
操作数处理电路、尾数截取电路、第一异或电路、第一地址寄存器、第二地址寄存器、第一存储器、第二存储器、第三存储器、第四存储器、第五存储器、第六存储器、补位电路、第一选择电路、第二异或电路、加法电路、和处理电路、第二选择电路,其中,
第一存储器和第四存储器作为倒数查找表;其中,第一存储器的地址位为10位,数据位为15位,在地址h中存储的数据是:d=1/(1+h1×2-6+h2×2-1023),其中,h1为h的高6位,h2为h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效数字,其中第一位是1,只存储后15位在地址h中;
第四存储器的地址位为10位,数据位为5位,在地址h中存储的数据是:d=-1/(1+h1×2-6123)2×(h2×2-152),其中,h1为h的高6位,h2为h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前5位有效数字,存储这5位在地址h中;
第二存储器和第五存储器作为平方根查找表1;其中,第二存储器的地址位为10位,数据位为15位,在地址h中存储的数据是: d = 1 / 1 + h 1 × 2 - 6 + h 2 × 2 - 10 + δ 2 + δ 3 , 其中,h1为h的高6位,h2为h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效数字,其中第一位是1,只存储后15位在地址h中;
第五存储器的地址位为10位,数据位为4位,在地址h中存储的数据是: d = - 0.5 / ( 1 + h 1 × 2 - 6 + δ 1 + δ 2 + δ 3 ) 3 × ( h 2 × 2 - 15 - δ 2 ) , 其中,h1为h的高6位,h2为h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前4位有效数字,存储这4位在地址h中;
第三存储器和第六存储器作为平方根查找表2;其中,第三存储器的地址位为10位,数据位为15位,在地址h中存储的数据是: d = 1 / 2 × ( 1 + h 1 × 2 - 6 + h 2 × 2 - 10 + δ 2 + δ 3 ) , 其中,h1为h的高6位,h2为h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效数字,其中第一位是1,只存储后15位在地址h中;
第六存储器的地址位为10位,数据位为4位,在地址h中存储的数据是: d = - 0.5 / ( 2 × ( 1 + h 1 × 2 - 6 + δ 1 + δ 2 + δ 3 ) ) 3 × ( 2 × ( h 2 × 2 - 15 - δ 2 ) ) , 其中,h1为h的高6位,h2为h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前4位有效数字,存储这4位在地址h中;
预处理结构的输入信号有单精度操作数operand_A和操作状态信号operation_in(operation_in=0表示需要除法运算的初始值,operation_in=1表示需要平方根运算的初始值);
输入操作数operand_A输入操作数处理电路,该电路截取operand_A的23位尾数(即operand_A的后23位),得到,a_man,并截取operand_A的指数的最低位(即operand_A的第9位),得到exp_odd_even;
a_man输入到尾数截取电路,该电路截取a_man的高6位y0(共6位),截取a_man的第7位到第10位y1(共4位),截取a_man的第11位c,截取a_man的第12位到第15位y2(共4位);
c和y2输入第一异或电路,y2的每一位与c作异或,得到y2_xor(共4位);
y0和y1连接,存入第一地址寄存器,记为s0(共10位);y0和y2_xor连接,存入第二地址寄存器,记为s1(共10位);
将s0作为地址信号输入第一存储器、第二存储器、第三存储器,3个存储器分别输出相应地址中存储的数据Q1、Q2、Q3(分别为15位);将s1作为地址信号输入第四存储器、第五存储器、第六存储器,3个存储器分别输出相应地址中存储的数据Q4(共5位)、Q5(共4位)、Q6(共4位);
Q1、Q2、Q3、Q4、Q5、Q6输入补位电路,在Q1前补01,得到r1,在Q2前补01,得到r2,在Q3前补01,得到r3,在Q4前补12位0,得到r4,在Q5前补13位0,得到r5,在Q6前补13位0,得到r6(r1、r2、r3、r4、r5、r6均为17位);
r1、r2、r3、r4、r5、r6输入第一选择电路,输入操作状态信号operation_in和输入操作数处理电路得到的exp_odd_even作为第一选择电路的控制信号,当operation_in=1且exp_odd_even=1时,选择r2和r5输出,当operation_in=1且exp_odd_even=0时,选择r3、r6输出,当其他情况时,选择r1和r4输出,第一选择电路的两个输出分别记为a0、a1;
a1和尾数截取电路中得到的c输入第二异或电路,a1的每一位与c作异或,得到a1_xor(共17位);
a0和a1_xor输入加法电路,加法电路首先将a0和a1_xor相加,得到17位的和,然后将这17位的和就近舍入到15位(如果第16位是1则进位,如果第16位是0则截断),得到sum(共15位);
sum输入和处理电路,截取sum的第3位到第15位,前面补001111110,后面补10个0,得到seed1(共32位),截取sum的第2位到第15位,前面补001111111,后面补9个0,得到seed2(共32位),截取sum的第1位,得到fag;
seed1、seed2输入第二选择电路,flag作为第二选择电路的控制信号,当flag=0时,选择seed1输出,当flag=1时,选择seed2输出,第二选择电路的输出结果x0(共32位)即为预处理结构的输出结果,即除法或平方根运算需要的初始值。
为了得到尾数为14位精度的初始值,倒数查找表需要的面积是(210×15+210×5)bit=20Kb,其中,第一存储器的面积是(210×15)bit,第四存储器的面积是(210×5)bit。对于平方根,由于a的指数为奇数和偶数的情况不同,为了避免在指数是奇数时在计算中增加乘以
Figure C20081005561700121
的乘法操作,平方根倒数需要两个查找表,平方根查找表1和平方根查找表2,面积都是(210×15+210×4)bit=19Kb,其中,第二存储器和第三存储器的面积是(210×15)bit,第五存储器和第六存储器的面积是(210×4)bit。
对于浮点除法B/A和平方根运算
Figure C20081005561700122
令操作数A的符号位为0,指数为01111111,尾数不变,记为a。如果是除法操作,通过倒数查找表得到1/a的近似值;如果是平方根操作,且A的指数末位是0,则通过平方根查找表1得到
Figure C20081005561700123
的近似值;如果是平方根操作,且A的指数末位是0,则通过平方根查找表2得到
Figure C20081005561700124
的近似值。这样,得到的近似值就是除法或平方根运算所需要的迭代的初始值x0。

Claims (1)

1.一种用于浮点除法和平方根运算的预处理电路结构,其特征在于,含有:操作数处理电路、尾数截取电路、第一异或电路、第一地址寄存器、第二地址寄存器、第一至第六共六个存储器、补位电路、第一选择电路、第二异或电路、加法电路、和处理电路,以及第二选择电路,其中,
操作数处理电路,输入是单精度操作数operand_A,输出是:a_man,操作数operand_A的23位尾数;exp_odd_even,单精度浮点数存储格式中操作数operand_A的指数的最低位;
尾数截取电路,输入是数据a_man,输出为:所述数据a_man的高6位y0、第7至第10位y1、第11位c,以及第12至第15位y2;
第一异或电路,输入是所述尾数截取电路输出的数据c,以及y2,在对所述数据y2的每一位与数据c作异或后,得到y2_xor,共4位;
第一地址寄存器,输入是所述尾数截取电路输出的数据y0和y1,输出的地址共10位,用s0表示;
第二地址寄存器,输入是所述尾数截取电路输出的数据y0,以及所述第一异或电路输出的数据y2_xor,输出的地址共10位,用s1表示;
第一存储器,作倒数查找表用,地址位为10位,数据位为15位,在地址h中存储的数据是:d=1/(1+h1×2-6+h2×2-1023),h1为地址h的高6位,h2为地址h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效数字,其中第一位是1,在地址h中只存储后15位,所述第一存储器的输入是所述第一地址寄存器输出的地址s0,输出是数据Q1;
第二存储器,作平方根查找表1用,地址位为10位,数据位为15位,在地址h中存储的数据是: d = 1 / 1 + h 1 × 2 - 6 + h 2 × 2 - 10 + δ 2 + δ 3 , h1为地址h的高6位,h2为地址h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效数字,其中第一位是1,在地址h中只存储后15位,所述第二存储器的输入是所述第一地址寄存器输出的地址s0,输出是数据Q2;
第三存储器,作平方根查找表2用,地址位为10位,数据位为15位,在地址h中存储的数据是: d = 1 / 2 × ( 1 + h 1 × 2 - 6 + h 2 × 2 - 10 + δ 2 + δ 3 ) , h1为地址h的高6位,h2为地址h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效数字,其中第一位是1,在地址h中只存储后15位,所述第三存储器的输入是所述第一地址寄存器输出的地址s0,输出是数据Q3;
第四存储器,也作倒数查找表用,地址位为10位,数据位为5位,在地址h中存储的数据是:d=-[1/(1+h1×2-6123)2]×(h2×2-152),h1为地址h的高6位,h2为地址h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前5位有效数字,将这5位有效数字存储在地址h中,所述第四存储器的输入是所述第二地址寄存器输出的地址s1,输出是数据Q4;
第五存储器,也作平方根查找表1用,地址位为10位,数据位为4位,在地址h中存储的数据是: d = - [ 0.5 / ( 1 + h 1 × 2 - 6 + δ 1 + δ 2 + δ 3 ) 3 ] × ( h 2 × 2 - 15 - δ 2 ) , h1为地址h的高6位,h2为地址h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前4位有效数字,将这4位有效数字存储在地址h中,所述第五存储器的输入是所述第二地址寄存器输出的地址s1,输出是数据Q5;
第六存储器,也作平方根查找表2用,地址位为10位,数据位为4位,在地址h中存储的数据是: d = - [ 0.5 / ( 2 × ( 1 + h 1 × 2 - 6 + δ 1 + δ 2 + δ 3 ) ) 3 ] × ( 2 × ( h 2 × 2 - 15 - δ 2 ) ) , h1为地址h的高6位,h2为地址h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前4位有效数字,将这4位有效数字存储在地址h中,所述第六存储器的输入是所述第二地址寄存器输出的地址s1,输出是数据Q6;
补位电路,六个输入端分别依次与所述第一至第六存储器的输出端相连,分别输入数据Q1至Q6,该补位电路在数据Q1、Q2、Q3前各补01,依次得到r1、r2和r3,在数据Q4前补12位0,得到r4,在数据Q5、Q6前各补13位0,得到r5、r6,从r1至r6的每一个数据均为17位;
第一选择电路,分别设有数据exp_odd_even、以及操作状态信号operation_in的输入端,operation_in=0表示需要除法运算的初始值,operation_in=1表示需要平方根运算的初始值,所述第一选择电路还设有六个输入端,分别与所述补位电路的六个输出端相连,输入数据r1、r2、r3、r4、r5和r6,当operation_in=1且exp_odd_even=1时,所述第一选择电路输出r2和r5,当operation_in=1且exp_odd_even=0时,所述第一选择电路输出r3和r6,在其他情况下,所述第一选择电路输出r1和r4,所述第一选择电路的两个输出分别用a0、a1表示;
第二异或电路,两个输入端分别与所述尾数截取电路的数据c的输出端、所述第一选择电路的数据a1的输出端相连,将数据a1的每一位与数据c作异或,得到a1_xor,共17位;
加法电路,两个数据输入端分别与所述第一选择电路的数据a0的输出端、所述第二异或电路的数据a1_xor的输出端相连,首先把数据a0和a1_xor相加,得到17位的和,再把这17位的和就近舍入到15位,当第16位是1时则进位,是0时则截断,得到和sum,共15位;
和处理电路,输入端与所述加法电路的数据sum的输出端相连,截取sum的第3位到第15位,再在前面补001111110,后面补10个0,得到seed1,共32位;再截取sum的第2位到第15位,前面补001111111,后面补9个0,得到seed2,共32位;再截取sum的第1位,得到flag;
第二选择电路,控制信号输入端与所述和处理电路的信号flag的输出端相连,两个数据输入端分别与所述和处理电路的数据seed1、seed2的输出端相连,当flag=0时,选择seed1输出,当flag=1时,选择seed2输出,输出结果x0即为所述预处理电路结构的输出结果,共32位,作基于乘法迭达实现的单精度浮点除法或平方根运算的初始值用。
CN200810055617A 2008-01-04 2008-01-04 一种用于浮点除法和平方根运算的预处理电路结构 Expired - Fee Related CN100583024C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810055617A CN100583024C (zh) 2008-01-04 2008-01-04 一种用于浮点除法和平方根运算的预处理电路结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810055617A CN100583024C (zh) 2008-01-04 2008-01-04 一种用于浮点除法和平方根运算的预处理电路结构

Publications (2)

Publication Number Publication Date
CN101216753A CN101216753A (zh) 2008-07-09
CN100583024C true CN100583024C (zh) 2010-01-20

Family

ID=39623192

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810055617A Expired - Fee Related CN100583024C (zh) 2008-01-04 2008-01-04 一种用于浮点除法和平方根运算的预处理电路结构

Country Status (1)

Country Link
CN (1) CN100583024C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615404A (zh) * 2015-02-15 2015-05-13 浪潮电子信息产业股份有限公司 一种基于查表操作的高速浮点除法部件装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799411B (zh) * 2012-06-29 2015-09-09 华为技术有限公司 浮点数累加电路及其实现方法
GB2528497B (en) * 2014-07-24 2021-06-16 Advanced Risc Mach Ltd Apparatus And Method For Performing Floating-Point Square Root Operation
CN104375800A (zh) * 2014-12-09 2015-02-25 国网重庆市电力公司电力科学研究院 一种嵌入式系统的浮点除法运算方法、系统和嵌入式系统
GB2539881B (en) * 2015-06-24 2018-07-25 Advanced Risc Mach Ltd An apparatus and method for processing floating point values
CN110073329B (zh) * 2016-12-16 2021-06-22 华为技术有限公司 访存设备、计算设备和应用于卷积神经网络运算的设备
CN109298848B (zh) * 2018-08-29 2023-06-20 中科亿海微电子科技(苏州)有限公司 双模式浮点除法平方根的电路
WO2021056507A1 (zh) * 2019-09-29 2021-04-01 深圳市大疆创新科技有限公司 浮点数处理方法、设备和可移动平台
CN117149133B (zh) * 2023-09-05 2024-05-24 上海合芯数字科技有限公司 浮点数除法及方根运算电路查找表构建方法和运算方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"处理器中的浮点除法和平方根运算算法". 李蓉等.计算机技术与发展,第Vol.17卷第No.3期. 2007
"浮点除法/开方算法研究与电路设计". 闫江毓.中国优秀硕士学位论文全文数据库. 2005
"处理器中的浮点除法和平方根运算算法". 李蓉等.计算机技术与发展,第Vol.17卷第No.3期. 2007 *
"浮点除法/开方算法研究与电路设计". 闫江毓.中国优秀硕士学位论文全文数据库. 2005 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615404A (zh) * 2015-02-15 2015-05-13 浪潮电子信息产业股份有限公司 一种基于查表操作的高速浮点除法部件装置

Also Published As

Publication number Publication date
CN101216753A (zh) 2008-07-09

Similar Documents

Publication Publication Date Title
CN100583024C (zh) 一种用于浮点除法和平方根运算的预处理电路结构
Tenca et al. High-radix design of a scalable modular multiplier
CN102722352B (zh) 一种Booth乘法器
CN106951211B (zh) 一种可重构定浮点通用乘法器
CN107305484B (zh) 一种非线性函数运算装置及方法
CN108021537A (zh) 一种基于硬件平台的softmax实现方式
CN108021781A (zh) 一种可参数化的fft ip核设计和优化方法
US11922133B2 (en) Processor and method for processing mask data
Jain et al. Design and development of efficient reversible floating point arithmetic unit
Ramachandran et al. Performance analysis of mantissa multiplier and Dadda tree multiplier and implementing with DSP architecture
KR20200134281A (ko) 추계학적 반올림 로직
CN103809931A (zh) 一种专用高速浮点指数运算器的设计
Burud et al. Design and Implementation of FPGA Based 32 Bit Floating Point Processor for DSP Application
US7174015B1 (en) Methods and apparatus for variable radix scalable modular multiplication
US5289399A (en) Multiplier for processing multi-valued data
CN101300544B (zh) 大数乘法方法和装置
CN113778378B (zh) 一种求解复数n次方根的装置和方法
CN115629734A (zh) 并行向量乘加器的存内计算装置和电子设备
Putra et al. Optimized hardware algorithm for integer cube root calculation and its efficient architecture
CN103365826A (zh) 一种小面积的基-3fft蝶形单元
CN113504892A (zh) 一种设计乘法器查找表的方法、系统、设备及介质
US6366939B1 (en) Apparatus for computing exponential and trigonometric functions
Lichtblau Half-GCD and fast rational recovery
Liang et al. An innovative Booth algorithm
CN114239818B (zh) 基于tcam和lut的存内计算架构神经网络加速器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: EASYWAY TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: TSINGHUA UNIVERSITY

Effective date: 20121225

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100084 HAIDIAN, BEIJING TO: 100083 HAIDIAN, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20121225

Address after: 100083 Beijing city Haidian District Wangzhuang Road No. 1, Tsinghua Tongfang Technology Plaza, A block 18 layer

Patentee after: Easyway Co.,Ltd.

Address before: 100084 Haidian District 100084-82 mailbox Beijing

Patentee before: Tsinghua University

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100120