浮点数的对数运算方法和装置制造方法及图纸

技术编号:2873966 阅读:330 留言:0更新日期:2012-04-11 18:40
一种浮点数的对数运算装置,用于获得一浮点数X以p为底的一对数运算结果,该浮点数X的表示法为(-1)#+[Sx].2#+[Ex].m#-[x],其中m#-[x]=(1+Fx)=(1+Ax.2#+[-K])+(Bx.2#+[-N]),Sx为该浮点数的符号数、Ex为该浮点数的指数、m#-[x]为该浮点数的尾数且1≤m#-[x]<2、Fx为N位元的分数,Ax为Fx中最显著的K位元的值,Bx为Fx中最不显著的(N-K)位元的值,0≤K<N且p、K、N为自然数,该对数运算装置包括:第一乘法器、对数表、第一加法器、除法器、泰勒展开式运算电路、第二乘法器以及第二加法器。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术是有关于一种对数运算的方法和装置,特别是有关一种浮点数的对数运算方法和装置。电机和电子工程师协会(Institute of Electrical and ElectronicEngineers,IEEE)为浮点数的表示法订立了四种标准格式,前两种格式为单一精确32位元格式(single-precision 32-bit format)以及双位精确64位元格式(double-precision 64-bit format),另外两种为延伸格式用于表示运算时的中间结果。对于单一精确32位元格式表示法而言,最重要的目的即是表现浮点数的精确度,而只有在为了得到更多的有效位数时,才利用双位精确64位元格式表示法使用双倍长度(Double Length)储存空间存放该浮点数。参阅附图说明图1,图1显示上述单一精确32位元格式表示法的示意图。在此表示法中,以2为基数,浮点数F=(-1)S·2E·M。其中M为该浮点数的尾数(mantissa),使用23位元表示,E为该浮点数的对数,使用8位元表示,S为该符点数的符号数使用1位元表示。在目前的电子计算机中,所有的运算几乎都采用浮点数的运算,因此浮点数的运算效率决定了该电子计算机的效能。而在目前的做法中,通常都使用查表的方法,事先建立一对照表,在运算时配合查表,以求得浮点数的对数运算结果,而用此方法做浮点数的对数运算时,会碰到一些运算精确度的问题,一个8位元的对照表已是相当庞大的,但使用8位元的对照表做浮点数的对数运算,其运算结果的精确度仍是不够的,因为通常一个浮点数尾数的部分都有23位元。为达成上述目的,本专利技术提供一种浮点数的对数运算装置,用于获得一浮点数X以p为底的一对数运算结果,该浮点数X的表示法为(-1)Sx·2Ex·mx,其中mx=(1+Fx)=(1+Ax·2-K)+(Bx·2-N),Sx为该浮点数的符号数、Ex为该浮点数的对数、mx为该浮点数的尾数且1≤mx<2,Fx为N位元的分数,Ax为Fx中最显著的K位元的值,Bx为Fx中最不显著的(N-K)位元的值,0≤K<N且p、K、N为自然数,该对数运算装置包括一第一乘法器,用以将一等于logp2的数值和该浮点数的指数Ex相乘以输出一相乘结果;一对数表,用以接收该数值Ax并且查表产生一结果输出;一第一加法器,耦接至该第一乘法器和该对数表,用以将该相乘结果和该结果相加,以输出一相加结果;一除法器,用以接收该数值Bx和一等于2K+Ax的相加数值,并将该数值Bx除以该等于2K+Ax的相加数值以输出一除法结果Rd;一泰勒展开式运算电路,用以接收该除法结果Rd以找出一等于1n(1+Rd)的数值,并且输出该等于1n(1+Rd)的数值;一第二乘法器,用以将一等于1/In(p)的数值和该等于1n(1+Rd)的数值相乘以输出一第二相乘结果;以及一第二加法器,耦接至该第一加法器和该第二乘法器,用以将该相加结果和该第二相乘结果相加,以输出该对数运算结果Y。另一方面,本专利技术也提供一种浮点数的对数运算方法,用于获得一浮点数X以p为底的一对数运算结果,该浮点数X的表示法为(-1)Sx·2Ex·mx,其中mx=(1+Fx)=(1+Ax·2-K)+(Bx·2-N),Sx为该浮点数的符号数、Ex为该浮点数的指数、mx为该浮点数的尾数且1≤mx<2、Fx为N位元的分数,Ax为Fx中最显著的K位元的值,Bx为Fx中最不显著的(N-K)位元的值,0≤K<N且p、K、N为自然数,该对数运算方法包括下列步骤将一等于logp2的数值和该浮点数的指数Ex在一第二乘法器中相乘以输出一相乘结果;利用一对数表接收该数值Ax并且查表产生一结果输出;将该相乘结果和该结果在一第一加法器中相加以输出一相加结果;利用一除法器将该数值Bx除以一等于2K+Ax的相加数值以输出一除法结果Rd;利用一泰勒展开式运算电路接收该除法结果Rd以找出一等于1n(1+Rd)的数值,并且输出该等于1n(1+Rd)的数值;将一等于1/1n(p)的数值和该等于1n(1+Rd)的数值在一第二乘法器中相乘以输出一第二相乘结果;以及将该相加结果和该第二相乘结果在一第二加法器中相加以输出该对数运算结果Y。图号说明100、200、300-浮点数的对数运算装置;110、210-第一乘法器;120、220、320-对数表;130、230、330-第一加法器;140、240、340-除法器;150、250、350-泰勒展开式运算电路;170-第二乘法器;254-减法装置;370、252a、252b、252c-乘法器;256-加法器;160、260、360-第二加法器;Ex-浮点数的指数;Rm1-第一乘法器的输出;Rm2-第二乘法器的输出;Ra-第一加法器的输出;Rd-减法器的输出;K、N-位元数;Ax-N位元的分数中最显著的K位元的值;Bx-N位元的分数中最不显著的(N-K)位元的值。上述浮点数X的表示法为X=(-1)Sx·2Ex·mx(1)其中mx=(1+Fx)=(1+Ax·2-K)+(Bx·2-N),Sx为符号数、Ex为指数、mx为尾数且1≤mx<2、Fx为N位元的分数,Ax为Fx中最显著的K位元的值,Bx为Fx中最不显著的(N-K)位元的值,0≤K<N且p、K、N为自然数。本专利技术的浮点数的对数运算装置,用于获得浮点数X以p为底的对数运算结果YY=logp(X)]]>=logp]]>=logp(2Ex)+logp----(2)]]>=Ex·logp(2)+logp(1+Ax·2-K)+logp(1+Bx·2-N1+Ax·2-K)]]>=Ex·logp(2)+logp(1+Ax·2-K)+ln(1+Rd)ln(p)]]>其中Rd=Bx·2-N1+Ax·2-K]]>为了求得对数运算结果Y,首先,将一等于logp2的数值和浮点数的指数Ex在第一乘法器110中相乘以输出一相乘结果Rm1。将数值Ax送入对数表120中并且查表产生结果logp(1+Ax·2-K)输出。接着,将相乘结果Rm1和结果logp(1+Ax·2-K)在一第一加法器130中相加以输出相加结果Ra。再利用除法器140将数值Bx除以一等于2K+Ax的相加数值以输出除法结果Rd。接着,将除法结果Rd送入泰勒展开式运算电路150中以找出一等于1n(1+Rd)的数值,并且输出等于1n(1+Rd)的数值。将一等于1/1n(p)的数值和等于1n(1+Rd)的数值在第二乘法器170中相乘以输出一第二相乘结果Rm2。最后,将相加结果Ra和第二相乘结果Rm2在第二加法器160中相加以输出对数运算结果Y。当计算浮点数X以2为底的对数运算结果Y时,第一乘法器110接收一等于log22的数值和浮点数的指数Ex,将两者相乘后输出相乘结果Rm1,因为log22=1所以在此情况下将不需要第一乘法器110。当计算浮点数X以自然对数为底的对数运算结果Y时,第二乘法器170接收一等于1/1n(e)的数值和另一本文档来自技高网...

【技术保护点】
一种浮点数的对数运算装置,用于获得一浮点数X以p为底的一对数运算结果,该浮点数X的表示法为(-1)↑[Sx].2↑[Bx].m↓[x],其中m↓[x]=(1+Fx)=(1+Ax.2↑[-K])+(Bx.2↑[-N]),Sx为该浮点数的符号数、Ex为该浮点数的指数、m↓[x]为该浮点数的尾数且1≤m↓[x]<2、Fx为N位元的分数,Ax为Fx中最显著的K位元的值,Bx为Fx中最不显著的(N-K)位元的值,0≤K<N且p、K、N为自然数,该对数运算装置包括: 一第一乘法器,用以将一等于log↓[p]2的数值和该浮点数的指数Ex相乘以输出一相乘结果; 一对数表,用以接收该数值Ax并且查表产生一结果输出; 一第一加法器,耦接至该第一乘法器和该对数表,用以将该相乘结果和该结果相加,以输出一相加结果; 一除法器,用以接收该数值Bx和一等于2↑[K]+Ax的相加数值,并将该数值Bx除以该等于2↑[K]+Ax的相加数值以输出一除法结果Rd; 一泰勒展开式运算电路,用以接收该除法结果Rd以找出一等于1n(1+Rd)的数值,并且输出该等于1n(1+Rd)的数值; 一第二乘法器,用以将一等于1/In(p)的数值和该等于1n(1+Rd)的数值相乘以输出一第二相乘结果;以及 一第二加法器,耦接至该第一加法器和该第二乘法器,用以将该相加结果和该第二相乘结果相加,以输出该对数运算结果Y。...

【技术特征摘要】

【专利技术属性】
技术研发人员:吕忠晏
申请(专利权)人:矽统科技股份有限公司
类型:发明
国别省市:71[中国|台湾]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1