[发明专利]实现浮点运算操作的方法和装置有效
申请号: | 201710161711.0 | 申请日: | 2017-03-17 |
公开(公告)号: | CN106997284B | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 杨灿;汪文祥 | 申请(专利权)人: | 龙芯中科技术股份有限公司 |
主分类号: | G06F7/57 | 分类号: | G06F7/57 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 杨贝贝;刘芳 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 浮点 运算 操作 方法 装置 | ||
1.一种实现浮点运算操作的方法,其特征在于,包括:
接收浮点运算指令,所述浮点运算指令指示出源操作数信息和操作精度要求信息,所述操作精度要求信息指示出浮点运算处理结果的精度;所述源操作数信息为存储所述源操作数的第一寄存器的地址信息;
根据所述第一寄存器的地址信息,读取所述第一寄存器,获取所述源操作数;
根据所述操作精度要求信息对所述源操作数信息对应的源操作数进行循环浮点运算操作处理,直到所述浮点运算处理结果满足所述精度为止;
根据满足所述精度的要求之前的每次循环时所述浮点运算操作处理得到的中间浮点值获取浮点运算处理结果;所述操作精度要求信息包括预设循环次数,源操作数包括被除数和除数,所述方法还包括:
根据所述被除数中前导0的个数和所述除数中前导0的个数,获取所述预设循环次数;
所述根据所述被除数中前导0的个数和所述除数中前导0的个数,获取所述预设循环次数,包括:
式中,A为所述源操作数中的被除数,B为所述源操作数中的除数,A与B均为m位的无符号数,m为大于1的正整数,1.a×2m-za-1为A的二进制表示方式,1.b×2m-zb-1为B的二进制表示方式,za为所述被除数中前导0的个数,zb为所述除数中前导0的个数;
当zazb时,所述预设循环次数为0;
当za=zb时,如果a=b,则所述预设循环次数为1;如果ab,则所述预设循环次数为0;
当zazb时,如果a=b,则所述预设循环次数为次;如果ab,则所述预设循环次数是次;其中,表示获取大于或等于*的最小整数,r为冗余数迭代算法的基数。
2.根据权利要求1所述的方法,其特征在于,所述根据所述操作精度要求信息对所述源操作数信息对应的源操作数进行循环浮点运算操作处理,直到所述浮点运算处理结果满足所述精度为止,包括:
根据所述浮点运算指令,将循环次数设置为0,对所述源操作数进行浮点运算处理得到中间商和中间余数,将所述循环次数加1,得到新的循环次数,判断所述新的循环次数与所述操作精度要求信息是否一致;
若否,则对所述中间余数进行所述浮点运算处理得到新的中间商和新的中间余数,再次将所述循环次数加1,得到新的循环次数,并再次判断所述新的循环次数与所述操作精度要求信息是否一致,若否,则对新的中间余数重复执行本步骤,直至新的循环次数与所述操作精度要求信息一致。
3.根据权利要求2所述的方法,其特征在于,
所述操作精度要求信息包括预设循环次数;则所述判断所述新的循环次数与所述操作精度要求信息是否一致,包括:
判断所述新的循环次数与所述预设循环次数是否一致。
4.根据权利要求1所述的方法,其特征在于,在所述接收浮点运算指令之后,所述方法还包括:
根据所述源操作数信息,获取浮点运算处理结果的精度作为所述操作精度要求信息。
5.根据权利要求2或3所述的方法,其特征在于,若所述浮点运算指令还指示出所述浮点运算处理为除法,则所述源操作数包括除数和被除数;所述对所述中间余数进行所述浮点运算处理得到新的中间商和新的中间余数,包括:
对所述中间余数和所述除数进行所述浮点运算处理得到新的中间商和新的中间余数;
若所述浮点运算指令还指示出所述浮点运算处理为开方,则所述源操作数包括被开方数,所述中间商为中间平方根。
6.根据权利要求2或3所述的方法,其特征在于,所述根据满足所述精度的要求之前的每次循环时所述浮点运算操作处理得到的中间浮点值获取浮点运算处理结果,包括:
根据满足所述精度的要求之前的每次循环时所述浮点运算操作处理得到的中间商,进行规格化处理得到所述浮点运算处理结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术股份有限公司,未经龙芯中科技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710161711.0/1.html,转载请声明来源钻瓜专利网。