[发明专利]一种芯片内部高速高精度定点数开方方法在审
| 申请号: | 201910724753.X | 申请日: | 2019-08-07 |
| 公开(公告)号: | CN112346706A | 公开(公告)日: | 2021-02-09 |
| 发明(设计)人: | 刘吉平;熊辉兵 | 申请(专利权)人: | 深圳市航顺芯片技术研发有限公司 |
| 主分类号: | G06F7/552 | 分类号: | G06F7/552 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 518000 广东省深圳市龙华区*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 芯片 内部 高速 高精度 点数 开方 方法 | ||
本发明提出一种芯片内部高速高精度定点数开方方法,该方法预先根据所需开方结果的精度要求设置迭代轮数,然后设置每轮迭代完成被开方数最高4位的计算,通过多轮迭代,完成对被开方数的开方运算。本发明能够提高被开方数精度,使得被开方数的结果位数与被开方数位数一致。
技术领域
本发明涉及计算机领域,尤其是一种芯片内部高速高精度定点数开方方法。
背景技术
开方运算是一种会经常使用到的基本数学运算,有定点开方运算和浮点开方运算。在很多应用场景中都会用到开方运算,因此为了提高系统的效率,在许多芯片内部由硬件电路实现的开方运算。
开方运算的实现方法有很多种,采用循环迭代的方法实现开方运算需要的硬件资源最小,因此被广泛采用来作为硬件实现的方法。
开方运算得到结果的速度和开方运算结果的精度是开方运算电路的两个重要指标。
目前已有的电路中,很多电路每次迭代只完成2位数据运算,并且开方运算的结果位数固定为被开方数的位数的一半。在芯片中,被开方数的位数一般和CPU的位数相同。比如在32位CPU的系统中,被开方数一般为32位长度,则开方结果为16位,在64位CPU系统中,被开方数一般为64位长度,则开方结果为32位。这种情况下得到的开方结果精度比较低,只有被开方数精度的一半,比被开方数为abcd.efgh的开方结果为xx.xx。
发明内容
发明目的:为提高开方运算的效率,本发明提出一种芯片内部高速高精度开方方法。
技术方案:本发明提出的技术方案如下:
一种芯片内部高速高精度定点数开方方法,包括步骤:
(1)获取定点被开方数,设置迭代轮数和余数舍入方式;设置每轮迭代完成被开方数最高4位的计算;
(2)设置r表示本轮迭代的输入数据,y表示上轮迭代后的临时开方结果;r'表示本轮迭代后的余数,y'表示本轮迭代后的临时开方结果;
(3)初始化r'=0,y'=0;将参与本轮迭代的输入数据赋值给r,初始化y=0;
(4)将r左移4位后和被开方数的最高4位拼接成一个新的数据,把这个新的数据记为m,使用这个数据进行轮运算;把y左移3位,并和2进制数据001拼接为一个新的数据,记为n;计算test_result_1=m-n;
(5)判断test_result_1是否为正数,若不为正数,则更新y'和r':使y'等于y左移两位的结果,r'等于m;将被开方数左移4位后,计算r= r',y= y',返回步骤(4);若为正数,则执行步骤(6);
(6)把y左移3位并和2进制数据011拼接为1个新数,把这个数记为p;计算test_result_2= test_result_1-p;
(7)判断test_result_2是否为正数,若不为正数,则更新y'和r':使y'等于y左移2位并拼接2进制数据01的结果,r'= test_result_1;并将被开方数左移4位后,计算r= r',y=y',返回步骤(4);若为正数,则执行步骤(8);
(8)把y左移3位并和2进制数据101拼接为1个新数,把这个数记为q;计算test_result_3= test_result_2-q;
(9)判断test_result_3是否为正数,若不为正数,则更新y'等于y左移2位并拼接2进制数据01的结果,r'= test_result_2;并将被开方数左移4位后,计算r= r',y= y',返回步骤(4);若为正数,则更新y'等于y左移2位并拼接2进制数据11的结果,r'= test_result_3,返回步骤(4);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市航顺芯片技术研发有限公司,未经深圳市航顺芯片技术研发有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910724753.X/2.html,转载请声明来源钻瓜专利网。





