一种用于执行浮点指数运算的方法及装置制造方法及图纸

技术编号:28418687 阅读:20 留言:0更新日期:2021-05-11 18:25
本发明专利技术公开了一种用于执行浮点指数运算的方法及装置,预处理模块:包括对输入的浮点指数函数进行异常处理、利用乘法器预处理得到输出值

【技术实现步骤摘要】
一种用于执行浮点指数运算的方法及装置
本专利技术涉及指数运算的
,具体涉及一种用于执行浮点指数运算的装置和方法。
技术介绍
在现实生活中,很多方面都需要用到指数函数的计算。例如:航空领域的飞行器控制、语音传输和导航等方面;航天领域的图像、实时信息传输等方面;金融领域的计算利息中的复利时也涉及高精度浮点指数函数的计算。提高指数运算的精度和计算速度,对实际应用有着重要的意义。而在集成电路的设计中,由于制造工艺、芯片面积等条件的限制,传统的浮点指数硬件运算单元架构简单、速度慢,难以满足计算需求,因此在实际中多结合数学变换和软件方法实现浮点指数运算。这种方式容易实现,但是运行效率不高,在高精度的计算要求下将成为难以突破的计算瓶颈。
技术实现思路
本专利技术针对上述问题,提供了一种用于执行浮点指数运算的方法及装置,利用新型改进四次预测CORDIC算法,在一个时钟周期内预测出四个迭代方向值,效率提高了四倍。本专利技术的技术方案如下:提供一种用于执行浮点指数运算的方法,步骤为:S1、预处理:包括异常处理和输入值预处理两部分,先将输入的浮点指数函数M×2E拆分为符号位S、指数E和尾数M,根据指数E检测浮点指数函数是否存在异常,如果输入值不存在异常,假设浮点指数函数M×2E的计算结果尾数部分为X,指数部分为Y,所述指数部分Y为尾数M乘以(ln2)-1并向左移动E位,根据CORDIC算法的收敛要求,将尾数部分X通过求2X得到,满足公式根据2X定义148位宽num1,具体为:num1=M×2E-Y×ln2+ln2,通过乘法器将num1进行移位拼合得到num2;S2、指数函数尾数迭代:接收S1预处理得到的num2,通过四次预测CORDIC算法对输入值num2进行X数据通路、Y数据通路和Z数据通路的四次预测迭代计算,得到输出136位的x值和y值,将x值和y值输入加法器中运算得到2X的运算结果,进而得到计算结果尾数值X;S3、浮点规则化:将步骤S1、S2处理得到的尾数值X和指数值Y进行前导零检测,然后通过移位运算换成标准浮点格式,最后与符号位S合并进行规格化格式输出。进一步的,所述步骤S2中四次预测CORDIC算法的计算公式为:其中,σi,σi+1,σi+2,σi+3为取值为-1或1的符号因子,代表当次迭代的预测旋转方向,i表示四次预测迭代次数,θi,θi+1,θi+2,θ3表示四个旋转角度,xi,yi,zi表示第i次四次预测迭代X数据通路、Y数据通路、Z数据同理的初始值,xi+4,yi+4,zi+4表示第i次四次预测迭代X数据通路、Y数据通路、Z数据通路的迭代结果。进一步的,所述步骤S2中通过四次预测CORDIC算法对X数据通路、Y数据通路和Z数据通路进行四次预测迭代计算的实现过程为:(1)遍历σi,σi+1,σi+2,σi+3各自取值-1或1,形成共16种σi,σi+1,σi+2,σi+3取值,Z数据通路根据16种σi,σi+1,σi+2,σi+3取值计算对应的z值;(2)通过选取z的16种结果中最逼近0的作为本次四次预测迭代的数值ite_z,而对应的σi,σi+1,σi+2,σi+3作为本次四次预测迭代的预测旋转方向S=[σi,σi+1,σi+2,σi+3]输出到X数据通路和Y数据通路,X数据通路和Y数据通路根据传递来的旋转方向S=[σi,σi+1,σi+2,σi+3]进行计算,得到本次四次预测迭代的结果x值和y值。进一步的,步骤S2中通过四次预测CORDIC算法对X数据通路、Y数据通路和Z数据通路进行四次预测迭代计算的第二种实现过程为:(1)遍历σi,σi+1,σi+2,σi+3各自取值-1或1,形成共16种σi,σi+1,σi+2,σi+3取值,X数据通路、Y数据通路和Z数据通路分别以每个σi,σi+1,σi+2,σi+3取值进行并行计算,同时产生16组迭代结果;(2)通过选取Z数据通路的16种结果中最逼近0的作为本次四次预测迭代的数值ite_z,,然后将ite_z结果对应的σi,σi+1,σi+2,σi+3产生的X数据通路迭代结果x值和Y数据通路迭代结果y值直接作为本次四次预测迭代的结果。本专利技术的另一方面,提供一种用于执行浮点指数运算的装置,包括:预处理模块:用于对输入的浮点指数函数进行异常处理和输入值预处理,先将输入的浮点指数函数M×2E拆分为符号位S、指数E和尾数M,根据指数E检测浮点指数函数是否存在异常,如果输入值不存在异常,假设浮点指数函数M×2E的计算结果尾数部分为X,指数部分为Y,所述指数部分Y为尾数M乘以(ln2)-1并向左移动E位,根据CORDIC算法的收敛要求,将尾数部分X通过求2X得到,满足公式根据2X定义148位宽num1,具体为:num1=M×2E-Y×ln2+ln2,通过乘法器将num1进行移位拼合得到num2;指数函数尾数迭代模块:用于接收S1预处理得到的num2,通过四次预测CORDIC算法对输入值num2进行X数据通路、Y数据通路和Z数据通路的四次预测迭代计算,得到输出136位的x值和y值,将x值和y值输入加法器中运算得到2X的运算结果,进而得到计算结果尾数值X;浮点规则化模块:用于将步骤S1、S2处理得到的尾数值X和指数值Y进行前导零检测,然后通过移位运算换成标准浮点格式,最后与符号位S合并进行规格化格式输出。进一步的,所述指数函数尾数迭代模块中四次预测CORDIC算法的计算公式为:其中,σi,σi+1,σi+2,σi+3为取值为-1或1的符号因子,代表当次迭代的预测旋转方向,i表示四次预测迭代次数,θi,θi+1,θi+2,θ3表示四个旋转角度,xi,yi,zi表示第i次四次预测迭代X数据通路、Y数据通路、Z数据同理的初始值,xi+4,yi+4,zi+4表示第i次四次预测迭代X数据通路、Y数据通路、Z数据通路的迭代结果。进一步的,所述指数函数尾数迭代模块中通过四次预测CORDIC算法对X数据通路、Y数据通路和Z数据通路进行四次预测迭代计算的实现过程为:(1)遍历σi,σi+1,σi+2,σi+3各自取值-1或1,形成共16种σi,σi+1,σi+2,σi+3取值,Z数据通路根据16种σi,σi+1,σi+2,σi+3取值计算对应的z值;(2)通过选取z的16种结果中最逼近0的作为本次四次预测迭代的数值ite_z,而对应的σi,σi+1,σi+2,σi+3作为本次四次预测迭代的预测旋转方向S=[σi,σi+1,σi+2,σi+3]输出到X数据通路和Y数据通路,X数据通路和Y数据通路根据传递来的旋转方向S=[σi,σi+1,σi+2,σi+3]进行计算,得到本次四次预测迭代的结果x值和y值。进一步的,所述指数函数尾数迭代模块中通过四次预测CORDIC算法对X数据通路、Y数据通路和Z数据通路进行四次预测迭代计算的第二种实现过程为:(1)遍历σi,σi+1,σi+2,σi+3各自取值-1或1,形成共16种σi,σi+1本文档来自技高网...

【技术保护点】
1.一种用于执行浮点指数运算的方法,其特征在于,步骤为:/nS1、预处理:包括异常处理和输入值预处理两部分,先将输入的浮点指数函数M×2

【技术特征摘要】
1.一种用于执行浮点指数运算的方法,其特征在于,步骤为:
S1、预处理:包括异常处理和输入值预处理两部分,先将输入的浮点指数函数M×2E拆分为符号位S、指数E和尾数M,根据指数E检测浮点指数函数是否存在异常,如果输入值不存在异常,假设浮点指数函数M×2E的计算结果尾数部分为X,指数部分为Y,所述指数部分Y为尾数M乘以(ln2)-1并向左移动E位,根据CORDIC算法的收敛要求,将尾数部分X通过求2X得到,满足公式根据2X定义148位宽num1,具体为:num1=M×2E-Y×ln2+ln2,通过乘法器将num1进行移位拼合得到num2;
S2、指数函数尾数迭代:接收S1预处理得到的num2,通过四次预测CORDIC算法对输入值num2进行X数据通路、Y数据通路和Z数据通路的四次预测迭代计算,得到输出136位的x值和y值,将x值和y值输入加法器中运算得到2X的运算结果,进而得到计算结果尾数值X;
S3、浮点规则化:将步骤S1、S2处理得到的尾数值X和指数值Y进行前导零检测,然后通过移位运算换成标准浮点格式,最后与符号位S合并进行规格化格式输出。


2.根据权利要求1所述的用于执行浮点指数运算的方法,其特征在于,所述步骤S2中四次预测CORDIC算法的计算公式为:



其中,σi,σi+1,σi+2,σi+3为取值为-1或1的符号因子,代表当次迭代的预测旋转方向,i表示四次预测迭代次数,θi,θi+1,θi+2,θ3表示四个旋转角度,xi,yi,zi表示第i次四次预测迭代X数据通路、Y数据通路、Z数据同理的初始值,xi+4,yi+4,zi+4表示第i次四次预测迭代X数据通路、Y数据通路、Z数据通路的迭代结果。


3.根据权利要求2所述的用于执行浮点指数运算的方法,其特征在于,所述步骤S2中通过四次预测CORDIC算法对X数据通路、Y数据通路和Z数据通路进行四次预测迭代计算的实现过程为:
(1)遍历σi,σi+1,σi+2,σi+3各自取值-1或1,形成共16种σi,σi+1,σi+2,σi+3取值,Z数据通路根据16种σi,σi+1,σi+2,σi+3取值计算对应的z值;
(2)通过选取z的16种结果中最逼近0的作为本次四次预测迭代的数值ite_z,而对应的σi,σi+1,σi+2,σi+3作为本次四次预测迭代的预测旋转方向S=[σi,σi+1,σi+2,σi+3]输出到X数据通路和Y数据通路,X数据通路和Y数据通路根据传递来的旋转方向S=[σi,σi+1,σi+2,σi+3]进行计算,得到本次四次预测迭代的结果x值和y值。


4.根据权利要求2所述的用于执行浮点指数运算的方法,其特征在于,步骤S2中通过四次预测CORDIC算法对X数据通路、Y数据通路和Z数据通路进行四次预测迭代计算的第二种实现过程为:
(1)遍历σi,σi+1,σi+2,σi+3各自取值-1或1,形成共16种σi,σi+1,σi+2,σi+3取值,X数据通路、Y数据通路和Z数据通路分别以每个σi,σi+1,σi+2,σi+3取值进行并行计算,同时产生16组迭代结果;
(2)通过选取Z数据通路的16种结果中最逼近0的作为本次四次预测迭代的数值ite_z,,然后将ite_z结果对应的σi,σi+1,σi+2,σi+3产生的X数据通路迭代结果x值和Y数据通路迭代结果y值直接作为本次四次预测迭代的结果。


5.一种用于执行浮点指数运算的装置,其特征在于,所述装置包括:
预处理模块:用于对输入的浮点指数函数进行异常处理和输入值预处理,先将输入的浮点指数函数M×2E拆分为符号位S、指数E和尾数M,根据指数E检测浮点指数函数是否存在异常,如果输入值不存在异常,假设浮点指数函数M×2E的计算结果尾数部分为X,指数部分为Y,所述指数部分Y为尾数M乘以(ln2)-1并向左移动E位,根据CORDIC算法的...

【专利技术属性】
技术研发人员:刘明周彦兵周小明赵学华
申请(专利权)人:深圳信息职业技术学院
类型:发明
国别省市:广东;44

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

1