专利名称:以少位处理器作多位求方根的方法
技术领域:
本发明涉及一种以少位处理器作多位求方根的方法,尤指一种以少位处理器(如8位处理器)进行16位或32位的求方根,此方法为有别于传统运算耗时的辗转相除法或二分逼近方法,使用简单的两步骤求得A、B两解,提供一种可较快速地取得多位方根值的方法者。
本发明的次一目的在于提供一种以少位处理器作多位求方根的方法,以8位处理器对32位数据求方根的场合,最多仅需三次循环除法运算即可取得实际值,应用于CD/DVD轨迹的计算方面,为较传统辗转相除法的多次除运步骤更具省时的优点。
本发明的另一目的在于提供一种以少位处理器作多位求方根的方法,为将求方根的解区分为前后两段,前半段为使用简单的二分逼近法取得A值,再以求得后半段B值的叠代公式,由B=0、1、2….开始,进行最多三次的递归处理,即可收敛与获得B值,构成一种可较快速地求得多位方根值的方法者。
本发明的目的是这样实现的本发明公开了一种以少位处理器作多位求方根的方法,其步骤包括一令待求方根值为包括一2K位的整数值c以及一小于2K位的数值d,而开方根后的结果为以一K位的整数值a以及一小于K位的数值b表示的步骤;一运用少位处理器的乘法运算处理,以二分逼近法,取得c开根号后的基值(floor)或者最小值,而据以获得a值的步骤;一重新排列前述公式,转换为相应于b的叠代公式的步骤;一令b值由一特定值开始,代入前述叠代公式中,通过少位处理器的除法递归运算处理,直到公式收敛为止,据以求得b值的步骤;由于取得c开根号的基值的步骤中,仅需少位乘法运算即可,而叠代公式的收敛性,更可在几次循环(最多三次)除法运算即可完成,免除传统辗转相除法的较多层的运算步骤,构成一种可较快速地取得开方根值的方法。
为进一步了解本发明的特征及其它目的,配合附图及详细说明如后。
上述步骤中,已获得开方根前半段的值,而后半段的值则可由对(1)式重新排列而形成一取得b值的等式b=(c×22K+d-a2×22k-b2)/a×2k+1=(c-a2)×22k+(d-b2)/a×2k+1将的转换为叠代公式下即为b[n]=(c-a2)×22k+(d-b[n-1]2)/a×2k+1…………………..(5)而首先假设b=0,代入公式(5)中求得一b
值,再以此b
再以递归方式进行,而经实验的证实,可在第二次递归叠代后,即具收敛性,此时呈现的值即为实际的b值,经数字仿真方式得知,仅需进行三次即可得到结果(例如32位的开方根)。
前述为解释本发明的推导方式,实际步骤流程为如
图1所示,亦即本发明的开方根的方法,概为将a、b两解区分成两部份分别进行,先通过对c开根号与取其最小值而获得a值(步骤11),之后,为进行取得b值的步骤,在步骤(12)中,为设定一循环次数(n),此例中设定n=m,此m值(循环数)在32位的开方根例子中,设定为3次即可,然后,在步骤(13)中,令b的初始值为零,再将此初始值代入步骤(14)的求得b值的叠代公式中进行运算而取得一b值,其次,在循环次数递减(步骤15)与循环次数(n)不等于零时(步骤16),则重复进行公式的叠代处理,如前述,于进行三次递归循环处理后,即结束处理过程,而此时获得的a、b值即为所欲求的开方根的解答。
而通过处理器作业,若以8位处理器计算32位开方根(16位)的场合,该步骤(11)对c开根号的步骤中,可经由二分逼近法(乘法运算)(8位×8位运算),以取得数值小于c的最大的a平方数即可,仅需一次的乘法运算周期,可快速获得结果,而每次进行步骤(14)的除法运算,同为仅需一次16位除以8位的除法运算而已,前述须进行三次除法作业下,则需三个运算周期,故而前述取得a值所花费的一个运算周期加上三个除法运算周期,则总共仅需四个运算周期即可达成,而本发明的运算时间与传统方式的比较,可参看如下图表所示。
若以传统的二分逼近法实施时,需进行16位×16位的乘法运算,需进行二次循环而每次需四个运算周期(共8个运算周期),而公知的辗转相除法实施下,由于采用32位除以16位的除法作业,则需进行两次循环而每次耗费两个运算周期(共四个运算周期),虽此辗转相除法与本发明的作业效率雷同,然仅为其一实施例而已,然对于CD/DVD轨迹的大量数据的实时性运算方面,前述辗转相除法的循环数量为在2次以上,而本发明的循环数量均维持在三次而已,由此可证明本案具有快速取得与缩短运算时间的优点,除此之外,对于更必须进行加、减、乘、除等运算的场合,本发明的方法中亦已包括在内,若以使用8051处理器的环境下,本发明可缩减20%的处理时间。
故以前述说明可知,本发明为基于传统的辗转相除法以及二分逼近法的作业较为耗时的缺陷下,而提供一种将开方根的解区分为前后两部份分别处理,前半部份以简单的二分逼近法取得a值,再以b值叠代公式进行几次的循环处理即可迅速取得b值,由于总处理周期仅需一次乘法以及三次除法周期即可,确具有缩短处理时间的效益。
权利要求
1.一种以少位处理器作多位求方根的方法,其特征在于,以K位数的处理器,对至少2K位数的数据执行开方根作业,其执行的步骤包括一令待处理的数据包括一2K位的整数值c以及一小于2K位的数值d表示的步骤;一对K位处理器实行乘法作业,以取得对该整数值c开根号后的最小值的整数值a的步骤;一令数值b由一初始值开始,以K位处理器进行数次除法作业,直到b值呈收敛状态为止,取得最终的b值的步骤;及以a表示K位的整数值及b表示小于K位的数值组合成一对2K位数据开方根处理的结果。
2.如权利要求1所述的以少位处理器作多位求方根的方法,其特征在于,所述二分逼近法为取得小于c值的最大的a平方数。
3.如权利要求1所述的以少位处理器作多位求方根的方法,其特征在于,所述b的初始值为0。
4.如权利要求1所述的以少位处理器作多位求方根的方法,其特征在于,所述递归施行的次数为三次。
5.如权利要求1所述的以少位处理器作多位求方根的方法,其特征在于,所述乘法作业为二分逼近法。
6.一种以少位处理器作多位求方根的方法,其特征在于,以K位的处理器,对至少2K位的数据执行开方根作业,其执行的步骤包括一令待处理的数据包括一2K位的整数值c以及一小于2K位的数值d表示的步骤;一对欲求的解区分为前后两部份,而分别进行处理的步骤;一在前段部份,运用少位处理器,直接对c开方根与取其最小值而取得一a值;一在后段部份,将前述待开方根数据以及最终结果转换为另一表示式,以一b值由一初始值开始,以少位处理器进行数次递归作业,直到b值收敛为止,据以求得b值的步骤;及由a及b两数值分别代表一K位及一小于K位的数值,而组合成一对多位数据开方根处理的结果。
7.如权利要求6所述的以少位处理器作多位求方根的方法,其特征在于,所述前段部份为使用二分逼近法取得小于c值的最大的a平方数。
8.如权利要求6所述的以少位处理器作多位求方根的方法,其特征在于,所述b的初始值为0。
9.如权利要求6所述的以少位处理器作多位求方根的方法,其特征在于,所述递归施行的次数为三次。
全文摘要
本发明涉及一种以少位处理器作多位求方根的方法,尤指一种可在微处理器呈较少位数量的情况下,仍可达到快速开方根的效果,而有别于传统耗时或占用较多内存的开方根或查表方式,此快速求方根的方法,区分为前后两部份,第一部份以二分逼近法逼近C开根号后的值,而快速获得前半段的A值,在第二部份则以假设B=0,代入求B的迭代公式中,采用递归方式进行几次运算(约三次),于B值为收敛时,即可迅速求得开方根后的A、B两解,提供一种可较快速地取得求方根的方法。
文档编号G06F7/48GK1462937SQ0212190
公开日2003年12月24日 申请日期2002年5月27日 优先权日2002年5月27日
发明者吴声宏 申请人:华邦电子股份有限公司