CN108595146A - 除法运算方法、装置及设备 - Google Patents
除法运算方法、装置及设备 Download PDFInfo
- Publication number
- CN108595146A CN108595146A CN201711474020.2A CN201711474020A CN108595146A CN 108595146 A CN108595146 A CN 108595146A CN 201711474020 A CN201711474020 A CN 201711474020A CN 108595146 A CN108595146 A CN 108595146A
- Authority
- CN
- China
- Prior art keywords
- data
- quotient
- registered
- divisor
- shift register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明涉及一种除法运算方法、装置及设备,其中,除法运算方法可包括以下步骤:通过获取被除数的符号位,生成第一商数据,通过对截取的待预判数据与除数进行移位预判,在第二寄存数据小于或等于除数时,将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,从而生成第二商数据;在第二寄存数据大于除数时,对第一寄存数据进行加减交替法运算、直至商上1且第二寄存数据小于或等于除数,从而生成第三商数据;对第一商数据、第二商数据和第三商数据依据生成时间的先后进行高位到低位排列输出,从而得到商运算结果,减少了运算周期,大大提高了除法运算速度,进而提高了除法运算的效率。
Description
技术领域
本发明涉及数字信号处理领域,特别是涉及一种除法运算方法、装置及设备。
背景技术
在数字信号处理中,经常会涉及到除法运算,如归一化最小均方差的计算。而实现除法器电路的算法中,常用的方法有恢复余数法、加减交替法和定点数除法。
其中,恢复余数法的除法器把除法运算化成移位运算和减法运算,直接从被除数/余数中减去除数,若够减余数为正,上商1;若不够减余数为负,上商0,此时必须将除数加回去,恢复成原来的余数,以便继续计算;恢复余数法在不够减时要恢复余数,多做一次加法操作,运算速度因而受到影响,控制线路复杂,运算不规则,运算时间变长。另外,加减交替法又称不恢复余数法,它是恢复余数法的一种变形,其规则是:当余数为正时商“1”,余数左移一位减除数;当余数为负时商“0”,余数左移一位加除数;从而造成加减交替法运算周期比较长。除此之外,定点数除法也称为跳0跳1的K位除法,当得到的余数的绝对值甚小时,可以根据余数前几位的代码一次得到数个0或数个1;但其一般只适用于余数的绝对值甚小的情况,在其他的情况下,如果在除法过程中只允许加、减除数,那么就必须按照通常的不恢复除法来进行运算,即也会造成运算周期比较长。
在实现过程中,发明人发现传统技术中至少存在如下问题:传统的实现除法器电路的算法中运算周期较长(例如恢复余数法、加减交替法和定点数除法等运算周期比较长),容易增加实现除法器电路的复杂度,降低除法运算的效率。
发明内容
基于此,有必要针对传统的技术方案中运算周期较长的问题,本发明提供了一种除法运算方法、装置及设备。
为了实现上述目的,一方面,本发明实施例提供了一种除法运算方法,包括以下步骤:
获取运算数据中的被除数,并将被除数传输给第一移位寄存器;运算数据包括被除数和除数;
获取被除数的符号位,并将第一移位寄存器的第一寄存数据左移符号位的位数,生成第一商数据;
从高位截取第一寄存数据中预设移位位数的数据,将得到的待预判数据从低位传输给第二移位寄存器,并对第二移位寄存器的第二寄存数据与除数进行移位预判;
在移位预判的结果为第二寄存数据小于或等于除数时,将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,生成第二商数据,并清空第二移位寄存器;将第一寄存数据进行加减交替法运算、直至商上1,生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动移位预判;
在移位预判的结果为第二寄存数据大于除数时,对第一寄存数据进行加减交替法运算、直至商上1,生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动移位预判;将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,生成第二商数据,并清空第二移位寄存器;
根据生成次序,按高位到低位排列输出第一商数据、第二商数据和第三商数据,得到商运算结果。
在其中一个实施例中,获取被除数的符号位,并将第一移位寄存器的第一寄存数据左移符号位的位数,生成第一商数据的步骤具体包括:
按照预设位数值对第一寄存数据进行高位截取,得到截取数据;
在确认截取数据为符号位时,将第一寄存数据左移截取数据的位数,得到第一商数据。
在其中一个实施例中,根据生成次序,按高位到低位排列输出第一商数据、第二商数据和第三商数据,得到商运算结果的步骤之前包括:
在第一寄存数据的位数小于等于待预判数据的位数时,对第一寄存数据进行加减交替法运算,生成第三商数据和余数运算结果。
在其中一个实施例中,根据生成次序,按高位到低位排列输出第一商数据、第二商数据和第三商数据,得到商运算结果的步骤之后包括:
对商运算结果进行进制数据换算,得到相应进制的商数据。
另一方面,本发明实施例还提供了一种除法运算装置,包括:
运算数据获取单元,用于获取运算数据中的被除数,并将被除数传输给第一移位寄存器;运算数据包括被除数和除数;
符号位获取单元,用于获取被除数的符号位,并将第一移位寄存器的第一寄存数据左移符号位的位数,生成第一商数据;
移位数据比较单元,用于从高位截取第一寄存数据中预设移位位数的数据,将得到的待预判数据从低位传输给第二移位寄存器,并对第二移位寄存器的第二寄存数据与除数进行移位预判;
第一处理单元,用于在移位预判的结果为第二寄存数据小于或等于除数时,将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,生成第二商数据,并清空第二移位寄存器;将第一寄存数据进行加减交替法运算、直至商上1,生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动移位预判;
第二处理单元,用于在移位预判的结果为第二寄存数据大于除数时,对第一寄存数据进行加减交替法运算、直至商上1,生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动移位预判;将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,生成第二商数据,并清空第二移位寄存器;
商获取单元,用于根据生成次序,按高位到低位排列输出第一商数据、第二商数据和第三商数据,得到商运算结果。
在其中一个实施例中,还包括:
数据截取单元,用于按照预设位数值对第一寄存数据进行高位截取,得到截取数据;
截取数据处理单元,用于在确认截取数据为符号位时,将第一寄存数据左移截取数据的位数,得到第一商数据。
在其中一个实施例中,还包括:
位数判断单元,用于在第一寄存数据的位数小于等于待预判数据的位数时,对第一寄存数据进行加减交替法运算,生成第三商数据和余数运算结果。
在其中一个实施例中,还包括:
商数据换算单元,用于对商运算结果进行进制数据换算,得到相应进制的商数据。
另一方面,本发明实施例还提供了一种除法运算设备,包括处理器以及连接处理器的第一移位寄存器、第二移位寄存器;
处理器能够执行上述的除法运算方法。
另一方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的除法运算方法。
上述技术方案中的一个技术方案具有如下优点和有益效果:
通过获取被除数的符号位,生成第一商数据,通过对截取的待预判数据与除数对比,在第二寄存数据小于或等于除数时,将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,从而生成第二商数据;在第二寄存数据大于除数时,对第一寄存数据进行加减交替法运算、直至商上1且第二寄存数据小于或等于除数,从而生成第三商数据;对第一商数据、第二商数据和第三商数据依据生成时间的先后进行高位到低位排列输出,从而得到商运算结果。本发明实施例通过对被除数进行符号位预判,生成第一商数据;通过对第一寄存数据进行移位预判,在第二寄存数据不大于除数时,对第一寄存数据左移预设移位位数;在第二寄存数据大于除数时,对第一寄存数据加减交替法运算,从而得到商运算结果,减少了运算周期,大大提高了除法运算速度,进而提高了除法运算的效率。
附图说明
图1为本发明除法运算方法实施例1的流程示意图;
图2为本发明除法运算方法实施例的符号位处理流程示意图;
图3为本发明除法运算方法实施例的第一具体流程示意图;
图4为本发明除法运算方法实施例的运算结果转换流程示意图;
图5为本发明除法运算装置实施例的结构示意图;
图6为本发明除法运算装置实施例的符号位处理结构示意图;
图7为本发明除法运算装置实施例的第一具体结构示意图;
图8为本发明除法运算装置实施例的运算结果转换结构示意图;
图9为本发明除法运算系统实施例的结构示意图;
图10为本发明除法运算系统实施例的具体工作流程示意图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的首选实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
为了解决传统除法运算的技术方案中运算周期较长的问题,本发明提供了一种除法运算方法实施例1。图1为本发明除法运算方法实施例1的流程示意图;如图1所示,可以包括以下步骤:
步骤S110,获取运算数据中的被除数,并将被除数传输给第一移位寄存器;运算数据包括被除数和除数。
其中,第一移位寄存器指的是具有存储功能和对数据移位操作的移位寄存器。运算数据可以是二进制的数据。
具体的,将获取运算数据中的被除数传输给第一移位寄存器,从而可通过第一移位寄存器对被除数进行存储和移位操作。
步骤S120,获取被除数的符号位,并将第一移位寄存器的第一寄存数据左移符号位的位数,生成第一商数据。
其中,符号位可用来确定被除数的正负,符号位的位数可以是1位,也可以是多位。第一寄存数据指的是第一移位寄存器存储的实时数据。第一商数据指的是符号位的数据。
具体的,获取被除数的符号位,并将第一移位寄存器的第一寄存数据左移符号位的位数,从而生成第一商数据,且第一寄存数据更新为第一移位寄存器左移符号位的位数后的数据。
步骤S130,从高位截取第一寄存数据中预设移位位数的数据,将得到的待预判数据从低位传输给第二移位寄存器,并对第二移位寄存器的第二寄存数据与除数进行移位预判。
其中,高位截取指的是从第一寄存数据的高位截取数据。第二移位寄存器指的是具有存储功能和对数据移位操作的移位寄存器。第二寄存数据指的是第二移位寄存器存储的实时数据。
具体的,将截取到的第一寄存数据的待预判数据从低位传输给第二移位寄存器,并比对第二移位寄存器的第二寄存数据与除数。再次截取第一寄存器的数据时,依然将带预判数据从低位传输给第二移位寄存器,并对更新后的第二寄存数据与除数比对进行移位预判。
步骤S140,在移位预判的结果为第二寄存数据小于或等于除数时,将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,生成第二商数据,并清空第二移位寄存器;将第一寄存数据进行加减交替法运算、直至商上1,生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动移位预判。
其中,第二商数据指的是预设移位位数的符号位。清空第二移位寄存器指的是对第二移位寄存器进行复位,删除第二寄存数据。商上1指的是对第一寄存数据通过加减交替法运算进行左移一位操作时生成的商结果。
具体的,根据比对结果,在第二寄存数据小于或等于除数时,将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,从而生成第二商数据,并清空第二移位寄存器;通过加减交替法运算将第一寄存数据依次进行左移一位、直至商上1,从而生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动下一轮的移位预判。需要说明的是,启动下一轮移位预判时,第二寄存数据的高位包含有余数数据。
在一个具体的示例中,对第二寄存数据与除数进行比对,若第二寄存数据小于或等于除数,则将第一寄存数据左移预设移位位数;并再次从高位截取第一寄存数据中预设移位位数的数据,将得到的待预判数据从低位传输给第二移位寄存器,继续对第二寄存数据与除数比对,直至第二寄存数据大于除数,从而生成第二商数据,并清空第二移位寄存器。通过加减交替法运算将第一寄存数据依次进行左移一位、直至商上1,生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动移位预判。再次从高位截取第一寄存数据中预设移位位数的数据,将得到的待预判数据从低位传输给第二移位寄存器,继续对第二寄存数据与除数比对,直至第二寄存数据小于或等于除数,从而生成第三商数据。
步骤S150,在移位预判的结果为第二寄存数据大于除数时,对第一寄存数据进行加减交替法运算、直至商上1,生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动移位预判;将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,生成第二商数据,并清空第二移位寄存器。
具体的,根据比对结果,在第二寄存数据大于除数时,通过加减交替法运算将第一寄存数据依次进行左移一位,直至商上1,生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动下一轮的移位预判。将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,从而生成第二商数据,并清空第二移位寄存器。
在一个具体的示例中,对第二寄存数据与除数进行比对,若第二寄存数据大于除数,通过加减交替法运算将第一寄存数据依次进行左移一位、直至商上1,生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动下一轮的移位预判。再次从高位截取第一寄存数据中预设移位位数的数据,将得到的待预判数据从低位传输给第二移位寄存器,继续对第二寄存数据与除数比对进行移位预判,直至第二寄存数据小于或等于除数,从而生成第三商数据,并清空第二移位寄存器。并将第一寄存数据左移预设移位位数;再次从高位截取第一寄存数据中预设移位位数的数据,将得到的待预判数据从低位传输给第二移位寄存器,继续对第二寄存数据与除数比对,直至第二寄存数据大于除数,从而生成第二商数据。
步骤S160,根据生成次序,按高位到低位排列输出第一商数据、第二商数据和第三商数据,得到商运算结果。
其中,生成次序指的是根据第一商数据、第二商数据和第三商数据的时间生成次序。
具体的,根据第一商数据、第二商数据和第三商数据的生成次序,对第一商数据、第二商数据和第三商数据进行高位到低位排列输出,从而得到商运算结果。
需要说明的是,第一商数据、第二商数据和第三商数据分别可包括多个商数值。
上述除法运算方法实施例,通过获取被除数的符号位,从而得到第一商数据;通过比对第二移位寄存器的第二寄存数据与除数,从而在第二寄存数据小于或等于除数时,得到第二商数据,在第二寄存数据大于除数时,对第一寄存数据进行加减交替法运算,得到第三商运算,根据第一商数据、第二商数据和第三商数据的生成次序,从而得到商运算结果,减少了运算周期,大大提高了除法运算速度,进而提高了除法运算的效率。
在一个具体的实施例中,如图2所示,为本发明除法运算方法实施例的符号位处理流程示意图。获取被除数的符号位,并将第一移位寄存器的第一寄存数据左移符号位的位数,生成第一商数据的步骤具体包括:
步骤S210,按照预设位数值对第一寄存数据进行高位截取,得到截取数据。
步骤S220,在确认截取数据为符号位时,将第一寄存数据左移截取数据的位数,得到第一商数据。
具体的,对第一寄存数据按照预设位数值进行高位截取,得到截取数据,在截取数据判断为符号位时,对第一寄存数据左移截取数据的位数,从而得到第一商数据。
在一个具体的实施例中,如图3所示,为本发明除法运算方法实施例的第一具体流程示意图。步骤S370之前包括:
步骤S360,在第一寄存数据的位数小于等于待预判数据的位数时,对第一寄存数据进行加减交替法运算,生成第三商数据和余数运算结果。
其中,余数运算结果指的是对第一寄存数据进行加减交替法运算后剩余的数据。
具体的,根据比对结果,对第一寄存数据进行移位操作时,直至第一寄存数据的位数小于等于待预判数据的位数,中断对第二移位寄存器的第二寄存数据与除数比对处理,通过对第一寄存数据进行加减交替法运算,从而生成第三商数据和余数运算结果。
在一个具体的实施例中,如图4所示,为本发明除法运算方法实施例的运算结果转换流程示意图。根据生成次序,按高位到低位排列输出第一商数据、第二商数据和第三商数据,得到商运算结果的步骤之后包括:
步骤S410,对商运算结果进行进制数据换算,得到相应进制的商数据。
具体的,通过对商运算结果进行进制数据换算,从而得到相应进制的商数据。优选的,通过对商运算结果进行十进制数据换算,从而得到十进制的商数据。
在一个具体的示例中,通过对大量32位随机被除数与32位随机除数的除法运算进行统计,可得到本发明除法运算方法实施例在的除法运算处理结果,与传统的基于加减交替法的除法运算处理结果对比,如表1所示。
表1
传统的除法运算 | 本发明实施例的除法运算 | |
电路门数 | 5285 | 8045 |
平均运算时间 | 32个时钟 | 12个时钟 |
最小周期 | 1.6ns | 1.7ns |
如表1可知,对于同样是32位除以32位的除法运算,在适当增加硬件面积的前提下,本发明所需要的运算时间是原本基于加减交替法的除法器的37.5%,而且能跑的最大时钟频率接近。与只有加减交替算法的除法器相比,大大提高了运算速度。通过上述实施例可知,本发明实施例除法运算方法只需12个时钟周期,比传统的加减交替法省了20个周期,提高了效率。其中ns表示纳秒。
在一个具体的示例中,本发明除法运算方法实施例与传统的跳0跳1除法运算的方法相比。例如,在二进制数xxxx011011除以二进制数0000001000的10位除法中,若用传统的跳0跳1的四位除法来运算,高4位xxxx只有等于0000时才会跳移4位,而通过本发明实施例的除法运算方法,高4位xxxx只要小于1000,都可以直接跳过这4位,从而通过本发明实施例可提高运算速度,还可适用于任何位数的除法运算,且移位预判的移位位数参数可配置。从而可灵活地应用更广泛的数据处理,并能有效地提高除法运算速率。
在一个具体的示例中,以32位被除数与32位除数的除法运算为例,假设预设移位位数K为4,其中:
二进制被除数为00000000_00000000_01000010_10010110,
二进制除数为00000000_00000000_00000000_00100000。
将被除数存入移位寄存器,以8位为单位对被除数高位做符号位预判,该例子中被除数最高16位全为符号位,最高24位不全为符号位,所以此次符号位预判结果为商上16位符号位,移位寄存器左移16位。
根据加减交替法对01000010_10010110_00000000_00000000从高到低依次做移位加减处理,与此同时,移K位预判启动。第一次截取高4位0100存进临时移位寄存器(即第一移位寄存器),与除数比较,发现不够减,则商上4位符号位,移位寄存器左移4位,即00101001_01100000_00000000_00000000。接下来继续截取高4位0010存进临时移位寄存器(第二移位寄存器),此时临时移位寄存器的数据为00000000_00000000_00000000_01000010,与除数相比,发现够减,移K位预判结束且失效,结果按照移位加减的结果上商——即01000与除数做移位加减处理,结果商上“0”,余数为1000。下个周期被除数再次左移一位,与上次余数组成10000,与除数做移位加减处理,结果商上“0”,有效余数为10000。下个周期被除数再次左移一位,与上次余数组成100001,与除数做移位加减处理,结果商上“1”,有效余数为1。由于遇到商上“1”,满足移K位预判启动条件,下个周期重启K位移位预判,截取被除数高4位0100与余数存进临时移位寄存器,有效数据为00010100,与除数比较,发现不够减,则商上4位符号位,被除数左移4位,即10110000_00000000_00000000_00000000。接下来继续截取高4位1011存进临时移位寄存器,此时临时移位寄存器的数据为00000000_00000000_00000001_01001011,与除数相比,发现够减,K位移位预判结束且失效,结果按照移位加减的结果上商——即101001与除数做移位加减处理,结果商上“1”,余数为1001。由于被除数最低K位不做K位移位预判处理,所以下个周期被除数再次左移一位,与上次余数组成10010,与除数做移位加减处理,结果商上“0”,有效余数为10010。后面根据加减交替法连续做三次移位加减,商陆续上“1”“0”“0”,最后余数为10110。综上,最终商为00000000_00000000_00000010_00010100。以上数据换算成十进制,被除数为17046,除数为32,商为532,余数为22,结果正确。从而减少了运算周期,大大提高了除法运算速度。
本发明除法运算装置实施例1:
基于以上方法的技术构思,同时为了解决传统的除法运算技术方案中运算周期较长的问题,本发明还提供了一种除法运算装置实施例1;图5为本发明除法运算装置实施例1的结构示意图;如图5所示,该装置可以包括:
运算数据获取单元510,用于获取运算数据中的被除数,并将被除数传输给第一移位寄存器;运算数据包括被除数和除数。
符号位获取单元520,用于获取被除数的符号位,并将第一移位寄存器的第一寄存数据左移符号位的位数,生成第一商数据。
移位数据比较单元530,用于从高位截取第一寄存数据中预设移位位数的数据,将得到的待预判数据从低位传输给第二移位寄存器,并对第二移位寄存器的第二寄存数据与除数进行移位预判。
第一处理单元540,用于在移位预判的结果为第二寄存数据小于或等于除数时,将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,生成第二商数据,并清空第二移位寄存器;将第一寄存数据进行加减交替法运算、直至商上1,生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动移位预判。
第二处理单元550,用于在移位预判的结果为第二寄存数据大于除数时,对第一寄存数据进行加减交替法运算、直至商上1,生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动移位预判;将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,生成第二商数据,并清空第二移位寄存器。
商获取单元560,用于根据生成次序,按高位到低位排列输出第一商数据、第二商数据和第三商数据,得到商运算结果。
需要说明的是,上述除法运算装置实施例的各单元模块,能够对应实现上述除法运算方法各实施例中对应的流程步骤,以及在对应的除法运算方法各实施例中对各个名词的解释也适用于除法运算装置实施例,此处不再重复赘述。
上述除法运算装置实施例,通过符号位获取单元,得到第一商数据;通过第一处理单元和第二处理单元,得到第二商数据和第三商数据;通过商获取单元,从而得到商运算结果,减少了运算周期,大大提高了除法运算速度,进而提高了除法运算的效率。
在一个具体的实施例中,如图6所示,为本发明除法运算装置实施例的符号位处理结构示意图。该装置还包括:
数据截取单元610,用于按照预设位数值对第一寄存数据进行高位截取,得到截取数据。
截取数据处理单元620,用于在确认截取数据为符号位时,将第一寄存数据左移截取数据的位数,得到第一商数据。
具体的,通过数据截取单元610得到的截取数据;通过截取数据处理单元620对截取数据进行判断,在确认截取数据为符号位时,将第一寄存数据左移截取数据的位数,从而得到第一商数据,减少了除法运算的时间。
通过截取数据处理单元620对进行
在一个具体的实施例中,如图7所示,为本发明除法运算装置实施例的第一具体结构示意图。
位数判断单元760,用于在第一寄存数据的位数小于等于待预判数据的位数时,对第一寄存数据进行加减交替法运算,生成第三商数据和余数运算结果。
具体的,通过位数判断单元760得到第三商数据和余数运算结果,从而进一步缩减了除法运算周期。
在一个具体的实施例中,如图8所示,为本发明除法运算装置实施例的运算结果转换结构示意图。
商数据换算单元870,用于对商运算结果进行进制数据换算,得到相应进制的商数据。
具体的,通过商数据换算单元870,可快速得到进制转换后的商数据,从而进一步提高了运算效率。
本发明除法运算系统实施例1:
图9为本发明除法运算系统实施例的结构示意图;如图9所示,可以包括处理器910以及连接处理器910的第一移位寄存器920、第二移位寄存器930;处理器910能够执行上述实施例的除法运算方法。
其中,处理器910可用于数据处理和数据传输等。第一移位寄存器920可用于对传输的数据进行存储和移位操作。第二移位寄存器930可用于对传输的数据进行存储和移位操作。
具体的,通过处理器910分别连接第一移位寄存器920、第二移位寄存器930,通过处理器910执行上述各实施例的除法运算方法,从而可快速得到运算结构,缩减了运算周期,进而提高了运算效率,同时也简化了除法运算的控制电路。
在一个具体的实施例中,处理器可包括加法器、减法器、比较器。其中加法器和减法器是加减交替法运算处理的构成部分,可根据上商数据进行加法或减法运算。比较器可用于比较第二寄存数据与除数的大小。
具体而言,第一移位寄存器可存放被除数或余数的寄存器,根据移位预判的结果进行移位操作;加减交替法运算中每周期处理1位,第一移位寄存器一开始存入被除数,往后根据符号位预判和移K位(预设移位位数)预判的结果左移X位(如移8位)、K或1位。而比较器和第二移位寄存器是移K位预判运算的组成部分,第二移位寄存器根据一定条件截取第一移位寄存器高K位作为待预判数据。在满足一定条件下启动移K位预判,第二移位寄存器截取第一移位寄存器高K位与除数通过比较器作比较,如果发现第二移位寄存器临时截取的数据小于除数(以原码为例),则判断可以移K位,即商上K位,第一移位寄存器左移K位,如果第二移位寄存器临时截取的数据不小于除数,则移K位失效和结束,结果按照加法器或减法器的结果上商值,第一移位寄存器左移1位。如果第一次移K位预判除数比较大,下次(即下个周期)第二移位寄存器在保留第一次的K位基础上移位并再截取第一移位寄存器新的高K位组成新的数据与除数作比较,以此循环,直至除数比较小为止。优选的,加法器或减法器与第一移位寄存器运算,比较器与第二移位寄存器的运算是同个时钟周期进行的,先判断移K位预判的结果,再决定后续处理。
在一个具体的实施例中,处理器还包括计数器和复用器。计数器可用于记录已处理的被除数的位数,控制除法运算流程。复用器可用于根据移位预判的结果选择商赋值以及移位寄存器(第一移位寄存器和第二移位寄存器)更新。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种除法运算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取运算数据中的被除数,并将被除数传输给第一移位寄存器;运算数据包括被除数和除数;
获取被除数的符号位,并将第一移位寄存器的第一寄存数据左移符号位的位数,生成第一商数据;
从高位截取第一寄存数据中预设移位位数的数据,将得到的待预判数据从低位传输给第二移位寄存器,并对第二移位寄存器的第二寄存数据与除数进行移位预判;
在移位预判的结果为第二寄存数据小于或等于除数时,将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,生成第二商数据,并清空第二移位寄存器;将第一寄存数据进行加减交替法运算、直至商上1,生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动移位预判;
在移位预判的结果为第二寄存数据大于除数时,对第一寄存数据进行加减交替法运算、直至商上1,生成第三商数据和余数数据,并将余数数据从低位传输给第二移位寄存器,启动移位预判;将第一寄存数据左移预设移位位数、直至第二寄存数据大于除数,生成第二商数据,并清空第二移位寄存器;
根据生成次序,按高位到低位排列输出第一商数据、第二商数据和第三商数据,得到商运算结果。
在一个具体的实施例中,如图10所示,为本发明除法运算系统实施例的具体工作流程示意图。符号位移位预判是一开始的时候对被除数进行高位的符号位判断,以8位为单位,判断最高的8位/16位/24位(以32位被除数为例)是否为符号位,若是,则直接将被除数左移8位/16位/24位,商上8位/16位/24位符号位,直到不全为符号位的8位为止。
移位加减可基于加减交替法的运算,是在为没做移K位(预设移位位数)预判或移K位预判失效时提供结果的。每次左移1位,然后根据上一次加法/减法的商结果进行加法或减法。移K位预判是在做移位加减(加减交替法)的过程中同时进行的。移K位预判在移位加减处理某位被除数时启动,首先从该位开始直接取后面K位(包括该位),然后与除数做比较(以原码为例),判断是否够减,若不够减,则商上K位符号位,被除数或余数左移K位,然后在下次做移位加减时再截取后面K位与前面截取的数据组成新数据做预判,以此循环,直到判断够减,则不作K位移位,此次K位移位预判结束。等待下次移K位预判启动。其中K的大小可根据数据运算数据的大小进行预设。优选的,当移位加减运算到剩下K位被除数时不再做K位移位预判,从而可防止移位溢出。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各除法运算方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
在一个实施例中,还提供一种存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上述各实施例中的任意一种除法运算方法。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
该计算机存储介质,其存储的计算机程序,通过实现包括如上述各除法运算方法的实施例的流程,从而可以减少了运算周期,大大提高了除法运算速度,进而提高了除法运算的效率。。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种除法运算方法,其特征在于,包括以下步骤:
获取运算数据中的被除数,并将所述被除数传输给第一移位寄存器;所述运算数据包括被除数和除数;
获取所述被除数的符号位,并将所述第一移位寄存器的第一寄存数据左移所述符号位的位数,生成第一商数据;
从高位截取所述第一寄存数据中预设移位位数的数据,将得到的待预判数据从低位传输给第二移位寄存器,并对所述第二移位寄存器的第二寄存数据与所述除数进行移位预判;
在所述移位预判的结果为所述第二寄存数据小于或等于所述除数时,将所述第一寄存数据左移所述预设移位位数、直至所述第二寄存数据大于所述除数,生成第二商数据,并清空所述第二移位寄存器;将所述第一寄存数据进行加减交替法运算、直至商上1,生成第三商数据和余数数据,并将所述余数数据从低位传输给所述第二移位寄存器,启动所述移位预判;
在所述移位预判的结果为所述第二寄存数据大于所述除数时,对所述第一寄存数据进行加减交替法运算、直至商上1,生成所述第三商数据和所述余数数据,并将所述余数数据从低位传输给所述第二移位寄存器,启动所述移位预判;将所述第一寄存数据左移所述预设移位位数、直至所述第二寄存数据大于所述除数,生成所述第二商数据,并清空所述第二移位寄存器;
根据生成次序,按高位到低位排列输出所述第一商数据、所述第二商数据和所述第三商数据,得到商运算结果。
2.根据权利要求1所述的除法运算方法,其特征在于,所述获取所述被除数的符号位,并将所述第一移位寄存器的第一寄存数据左移所述符号位的位数,生成第一商数据的步骤具体包括:
按照预设位数值对所述第一寄存数据进行高位截取,得到截取数据;
在确认所述截取数据为符号位时,将所述第一寄存数据左移所述截取数据的位数,得到所述第一商数据。
3.根据权利要求1所述的除法运算方法,其特征在于,所述根据生成次序,按高位到低位排列输出所述第一商数据、所述第二商数据和所述第三商数据,得到商运算结果的步骤之前包括:
在所述第一寄存数据的位数小于等于所述待预判数据的位数时,对所述第一寄存数据进行加减交替法运算,生成所述第三商数据和余数运算结果。
4.根据权利要求1至3任意一项所述的除法运算方法,其特征在于,所述根据生成次序,按高位到低位排列输出所述第一商数据、所述第二商数据和所述第三商数据,得到商运算结果的步骤之后包括:
对所述商运算结果进行进制数据换算,得到相应进制的商数据。
5.一种除法运算装置,其特征在于,包括:
运算数据获取单元,用于获取运算数据中的被除数,并将所述被除数传输给第一移位寄存器;所述运算数据包括被除数和除数;
符号位获取单元,用于获取所述被除数的符号位,并将所述第一移位寄存器的第一寄存数据左移所述符号位的位数,生成第一商数据;
移位数据比较单元,用于从高位截取所述第一寄存数据中预设移位位数的数据,将得到的待预判数据从低位传输给第二移位寄存器,并对所述第二移位寄存器的第二寄存数据与所述除数进行移位预判;
第一处理单元,用于在所述移位预判的结果为所述第二寄存数据小于或等于所述除数时,将所述第一寄存数据左移所述预设移位位数、直至所述第二寄存数据大于所述除数,生成第二商数据,并清空所述第二移位寄存器;将所述第一寄存数据进行加减交替法运算、直至商上1,生成第三商数据和余数数据,并将所述余数数据从低位传输给所述第二移位寄存器,启动所述移位预判;
第二处理单元,用于在所述移位预判的结果为所述第二寄存数据大于所述除数时,对所述第一寄存数据进行加减交替法运算、直至商上1,生成所述第三商数据和所述余数数据,并将所述余数数据从低位传输给所述第二移位寄存器,启动所述移位预判;将所述第一寄存数据左移所述预设移位位数、直至所述第二寄存数据大于所述除数,生成所述第二商数据,并清空所述第二移位寄存器;
商获取单元,用于根据生成次序,按高位到低位排列输出所述第一商数据、所述第二商数据和所述第三商数据,得到商运算结果。
6.根据权利要求5所述的除法运算装置,其特征在于,还包括:
数据截取单元,用于按照预设位数值对所述第一寄存数据进行高位截取,得到截取数据;
截取数据处理单元,用于在确认所述截取数据为符号位时,将所述第一寄存数据左移所述截取数据的位数,得到所述第一商数据。
7.根据权利要求5所述的除法运算装置,其特征在于,还包括:
位数判断单元,用于在所述第一寄存数据的位数小于等于所述待预判数据的位数时,对所述第一寄存数据进行加减交替法运算,生成所述第三商数据和余数运算结果。
8.根据权利要求5至7任意一项所述的除法运算装置,其特征在于,还包括:
商数据换算单元,用于对所述商运算结果进行进制数据换算,得到相应进制的商数据。
9.一种除法运算设备,其特征在于,包括处理器以及连接所述处理器的第一移位寄存器、第二移位寄存器;
所述处理器用于执行权利要求1至4任意一项所述的除法运算方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至4中任意一种除法运算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711474020.2A CN108595146B (zh) | 2017-12-29 | 2017-12-29 | 除法运算方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711474020.2A CN108595146B (zh) | 2017-12-29 | 2017-12-29 | 除法运算方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108595146A true CN108595146A (zh) | 2018-09-28 |
CN108595146B CN108595146B (zh) | 2020-10-27 |
Family
ID=63633491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711474020.2A Active CN108595146B (zh) | 2017-12-29 | 2017-12-29 | 除法运算方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108595146B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254072A (zh) * | 2021-05-27 | 2021-08-13 | 上海阵量智能科技有限公司 | 数据处理器、数据处理方法、芯片、计算机设备及介质 |
CN115033205A (zh) * | 2022-08-11 | 2022-09-09 | 深圳市爱普特微电子有限公司 | 一种低延迟高精度定值除法器 |
CN117331529A (zh) * | 2023-12-01 | 2024-01-02 | 泰山学院 | 一种除法器逻辑电路及实现除法器逻辑电路的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4381550A (en) * | 1980-10-29 | 1983-04-26 | Sperry Corporation | High speed dividing circuit |
EP0379998A2 (en) * | 1989-01-24 | 1990-08-01 | Oki Electric Industry Co., Ltd. | Divider for carrying out high speed arithmetic operation |
CN1816030A (zh) * | 2005-02-04 | 2006-08-09 | 上海无线通信研究中心 | 正交频分复用系统中估计和补偿频率偏差的方法和装置 |
CN1855031A (zh) * | 2005-04-18 | 2006-11-01 | 展讯通信(上海)有限公司 | 求定点数除法的算法在视频编码流量控制中的应用 |
CN2847379Y (zh) * | 2005-09-14 | 2006-12-13 | 上海广电(集团)有限公司中央研究院 | 一种快速除法器 |
CN101650643A (zh) * | 2009-09-11 | 2010-02-17 | 杭州中天微系统有限公司 | 一种用于不可除尽浮点除法开方的舍入方法 |
-
2017
- 2017-12-29 CN CN201711474020.2A patent/CN108595146B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4381550A (en) * | 1980-10-29 | 1983-04-26 | Sperry Corporation | High speed dividing circuit |
EP0379998A2 (en) * | 1989-01-24 | 1990-08-01 | Oki Electric Industry Co., Ltd. | Divider for carrying out high speed arithmetic operation |
CN1816030A (zh) * | 2005-02-04 | 2006-08-09 | 上海无线通信研究中心 | 正交频分复用系统中估计和补偿频率偏差的方法和装置 |
CN1855031A (zh) * | 2005-04-18 | 2006-11-01 | 展讯通信(上海)有限公司 | 求定点数除法的算法在视频编码流量控制中的应用 |
CN2847379Y (zh) * | 2005-09-14 | 2006-12-13 | 上海广电(集团)有限公司中央研究院 | 一种快速除法器 |
CN101650643A (zh) * | 2009-09-11 | 2010-02-17 | 杭州中天微系统有限公司 | 一种用于不可除尽浮点除法开方的舍入方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254072A (zh) * | 2021-05-27 | 2021-08-13 | 上海阵量智能科技有限公司 | 数据处理器、数据处理方法、芯片、计算机设备及介质 |
CN115033205A (zh) * | 2022-08-11 | 2022-09-09 | 深圳市爱普特微电子有限公司 | 一种低延迟高精度定值除法器 |
CN117331529A (zh) * | 2023-12-01 | 2024-01-02 | 泰山学院 | 一种除法器逻辑电路及实现除法器逻辑电路的方法 |
CN117331529B (zh) * | 2023-12-01 | 2024-03-05 | 泰山学院 | 一种除法器逻辑电路及实现除法器逻辑电路的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108595146B (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tocher | Techniques of multiplication and division for automatic binary computers | |
CN108595146A (zh) | 除法运算方法、装置及设备 | |
Nowicki et al. | The flow shop with parallel machines: A tabu search approach | |
Gamrath et al. | Progress in presolving for mixed integer programming | |
CN104820580A (zh) | 改进的返回堆栈缓存 | |
JP3609512B2 (ja) | 演算器 | |
CN101479698A (zh) | 将两数相乘 | |
KR100289513B1 (ko) | 파풀레이션 카운트의 계산 장치와 계산 및 누적 장치 | |
Hibbard | An empirical study of minimal storage sorting | |
Giaquinta et al. | New algorithms for binary jumbled pattern matching | |
Huang et al. | Sign-extension avoidance and word-length optimization by positive-offset representation for FIR filter design | |
Potters et al. | Computing the nucleolus by solving a prolonged simplex algorithm | |
US3736413A (en) | Pre-conditioned divisor trial quotient divider | |
CN101366231A (zh) | 密码运算处理电路 | |
US5014233A (en) | Divider for carrying out high speed arithmetic operation | |
NL8102650A (nl) | Logische rekeneenheid bedoeld voor het behandelen van bits. | |
CN114997391B (zh) | 电子神经系统中的泄露方法、芯片及电子设备 | |
US8495275B2 (en) | List structure control circuit | |
Mailund | The joys of hashing: hash table programming with C | |
Schneider et al. | A new power estimation technique with application to decomposition of boolean functions for low power | |
Wilkes | Arithmetic on the EDSAC | |
CN105159766B (zh) | 数据的同步访问方法和同步访问装置 | |
US11132296B1 (en) | Linear interpolator of tabulated functions | |
US20220253563A1 (en) | Steganography of hardware intellectual property | |
CN107480002A (zh) | 消息处理方法及装置、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: 519000 No. 333, Kexing Road, Xiangzhou District, Zhuhai City, Guangdong Province Patentee after: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. Address before: Floor 1-107, building 904, ShiJiHua Road, Zhuhai City, Guangdong Province Patentee before: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |