一种除法运算方法及装置的制作方法

文档序号:6338295阅读:276来源:国知局
专利名称:一种除法运算方法及装置的制作方法
技术领域
本发明涉及一种利用数制表示且应用在半导体器件的非线性组合数字除法计算 方法以及实现这种运算方法的除法装置,更具体地,本发明涉及一种除法运算方法及采用 该方法的运算装置。
背景技术
在工控领域内,微控制器近几年的应用越来越广泛和重要,特别是在电子、航空航 天、家电、通信等领域已经达到无可取代的程度。传统的微控制器的设计,在执行除法运算 指令时总是把相减和移位操作放在两个不同的时钟周期内,也就是移位操作必须在相减操 作完成之后的下一个时钟周期内来执行。在对微控制器运算速度要求不高的条件下,该除 法指令的实现方法也许能够应对。但是随着科学技术的发展以及对控制技术要求的提高, 特别是在高端的嵌入式领域内,该种除法指令实现方法的速度慢性能低的缺点就严重的暴 露出来了。针对此问题,技术人员研究发展出各种能够提高除法运算效率的方法,其中公开 号为CN1423189,名称为“一种除法器”的中国发明专利提出了一种采用移位运算和减法运 算的除法器,包括减法器、移位器1.比较器、移位器2.移位加法器,计数器和复选器;除数 经过所述移位器1移位后与被除数一起输入所述减法器,所述减法器的输出连接到所述比 较器和所述计数器,所述比较器与所述移位加法器和所述移位器2相连,所述移位加法器 与所述移位器的输出送至所述复选器,所述计数器控制所述复选器的输出是否返回所述减 法器。上述专利文件中提出的除法运算方法把一个除法运算用减法和移位操作来实现, 移位根据减法操作的结果来进行相应的操作。但是该方法仍把相减和移位放在了两个时钟 周期内来完成,从根本上说依然没有最大化的缩减一个除法运算的时钟周期数,这样就很 难达到各种状况下对微控制器执行指令的快速高效的要求。

发明内容
本发明的发明目的在于提供一种效率高、速度快且指令状态进行周期优化的除法 运算方法,同时还提供了采用这种运算方法的除法运算装置。为了实现上述的发明目的,本发明采用如下的技术方案本发明所提供的除法的运算方法概括来说包括如下的几步运算步骤(1)在寄存单元内存入无符号整数的被除数、除数,以及中间值;(2)对被除数以及中间值进行联合左移位操作,并计算中间值左移位操作后与除 数之间的差值;(3)在与步骤(2)同一时钟周期内,如果步骤(2)中所述差值大于等于0,则将所 述的差值替代并作为所述的中间值,并将被除数最低位置1替代原有的被除数;如果步骤 (2)中所述差值小于0,则将被除数最低位置0替代原有的被除数;
3
(4)判断移位次数是否等于所述被除数的存储位数,一般来说也是寄存单元的存 储位数,如果不是则返回步骤2重新执行,如果是则结束运算。优选地,在步骤(1)中所述的被除数存储在所述的累加器中,所述的除数存储在 所述的寄存器中,所述的中间值存储在所述的第二暂存器中;在步骤( 开始运算之后,所 述的除数存储在第一暂存器中,所述的被除数存储在寄存器中并开始运算。这样,在整个运 算方法运算结束之后所述的寄存器内存储除法运算的商,所述的第二暂存器内存储的是除 法运算的余数,当然可以根据需要将上述的商或者余数转移到累加器或者寄存器中方便调 用。另外,在整个除法运算方法开始运算之前,在步骤(1)中存入的中间值为整数0。为了优化整个除法运算方法的计算周期,在所述步骤O)中被除数以及中间值进 行左移位操作,并且计算中间值左移位操作后与除数之间的差值,这两步操作是在同一时 钟周期内完成的。同时需要说明的是,由于本除法运算方法是基于无符号的整数之间的运 算关系,因此上述的移位操作采用的是逻辑左移操作,避免符号位对整个运算方法产生不 必要的影响。更具体地,通过在运算逻辑单元内设置的不同功能模块,上述除法运算方法中各 个计算步骤通过运算逻辑单元内的不同功能模块完成。具体来说,所述步骤O)中的左移 位操作通过移位器完成,所述的差值运算通过加法器完成,所述的整个运算过程中的比较 运算均通过比较器完成,所述的整个运算过程中的计数均通过计数器完成。本发明还提供了采用上述无符号整数除法运算方法的一种除法运算装置,所述的 除法运算装置包括用于进行逻辑运算的运算逻辑单元,以及用于存储数据以及中间运算数 据的寄存单元,所述的寄存单元中的数据通过运算逻辑单元控制进行逻辑运算。具体地,所述的寄存单元包括用于存储被除数的累加器,以及用于存储除数的寄 存器,所述的寄存单元还至少包括用于存储逻辑运算过程的中间过渡数据的第一暂存器以 及第二暂存器。当然,寄存器单元可以根据实际情况包括更多的暂存器用于存储逻辑运算 中的产生的中间数据,而不限于上述说明的两个暂存器。一般来说,所述累加器、寄存器以及所述的第一暂存器和第二暂存器的存储位数 相同,优选为2指数倍,更优选的是采用8位或者16位存储单元。更具体的说,所述的运算逻辑单元至少包括用于逻辑运算的加法器,用于控制所 述的寄存单元中数据移位的移位器,用于比较运算的比较器,用于统计数据的计数器以及 用于统一上述部件工作时序的晶振。这样,通过采用上述的技术方案,本发明提供了一种运算速度快,运算效率高,并 且计算周期得到优化的除法运算方法,并且还提供了一种采用上述除法运算方法的除法运
算装置。


图1中显示的是本发明所采用的除法运算装置实施例的示意图;图2中显示的是本发明的除法运算方法实施例的流程示意图;图3中显示的是本发明的除法运算方法实施例的时序图。
具体实施例方式本发明在于提供一种运算速度快,运算效率高的除法运算方法以及采用这种运算 方法的除法运算装置。下面结合说明书附图对本发明的具体实施例进行详细的说明。图1中显示的是本发明所采用的除法运算装置实施例的示意图。在本实施例中的 除法运算装置包括用于进行逻辑运算的运算逻辑单元ALU,以及用于存储数据以及中间运 算数据的寄存单元,所述的寄存单元中的数据通过运算逻辑单元ALU控制进行逻辑运算。 本实施例中的寄存单元包括用于存储被除数的累加器Acc,以及用于存储除数的寄存器B, 所述的寄存单元还至少包括用于存储逻辑运算过程的中间过渡数据第一暂存器Tmpl以及 第二暂存器Tmp2。上述的运算逻辑单元ALU以及上述的累加器Acc,寄存器B,第一暂存器 Tmpl和第二暂存器Tmp2均与除法运算装置的总线连接。在本实施例中的累加器Acc、寄存 器B以及所述的第一暂存器Tmpl和第二暂存器Tmp2的存储位数相同,均为8位存储位宽。更具体的说,在所述的运算逻辑单元包括用于逻辑运算的加法器,用于控制所述 的寄存单元中数据移位的移位器,用于比较运算的比较器,用于统计数据的计数器以及用 于统一上述部件工作时序的晶振。另外该除法运算装置内还包括用于存储操作数以及其它数据的外部随机数据存 储器Ram,该随机数据存储器Ram通过数据总线DB与数据寄存器DR、指令寄存器顶、指令译 码器ID以及控制器Ctrl顺次连接对指令以及数据进行传输和执行,同时该随机数据存储 器Ram通过地址总线AB与地址寄存器以及程序计数器PC顺次连通,用于对随机数据存储 器Ram进行寻址。除此之外,算术逻辑单元ALU通过程序状态寄存器PSW与总线连通用于 确定整个除法装置的程序状态。这样,整个除法运算装置具有完成本发明除法运算算法的 所有功能模块,进一步地能够高效率,高速度的执行本发明除法运算方法。图2中显示的是本发明的除法运算方法的具体实施例的流程示意图。其中所采用 的除法运算方法是基于图1中显示的除法运算装置的基础之上进行运算的。本发明所采用的除法运算方法的除法指令针对的是无符号整数,所采用的算法 是”移位减”的方法。细化起来说,是在累加器Acc中存储被除数,寄存器B中存储除数。第 二暂存器Tmp2清零;然后,寄存器B中的除数导入第一暂存器Tmpl中作为除数,随后将累 加器Acc中的被除数导入寄存器B。而在运算逻辑单元ALU中的加法器的运算模式保持为 第二暂存器Tmp2减去第一暂存器Tmpl。在具体的操作过程中,首先,在同一时钟周期内将联合第二暂存器Tmp2以及寄存 器B中的数据逻辑左移一位(其中B的最高位B [7]移入Tmp2的最低位Tmp2
,此时B的 最低位悬空),然后在运算逻辑单元ALU中执行第二暂存器Tmp2与第一暂存器Tmpl的相减 操作,再使得上述两个暂存器的结果相减之后与0作比较。如果判断的结果大于或等于0则执行如下操作将寄存器B中数据的最低位置1, 将第二暂存器Tmp2与第一暂存器Tmpl相减之后的结果导入第二暂存器Tmp2中;但是如果 判断的结果小于0,则将寄存器B中的最低位置零。然后再判断上述对寄存器B以及第二缓存器Tmp2中的数据是否进行移位操作已 经移满8次(本实施例中的除数存储位数以及除法装置的数据存储位宽均为8)。倘若判断 上述移位操作的次数小于8次则跳转到图1中所示的对寄存器B以及第二暂存器Tmp2中 的数据进行移位操作的位置,依次循环进行相应的操作直到上述移位操作满8次为止,停
5止移位操作。最后一步将寄存器B中的数据导入累加器Acc中,将第二缓存器Tmp2中的数 据导入到寄存器B中,即最终累加器Acc内存放的是除法运算的商,而寄存器B内存放的是 余数。为更进一步清晰地说明本设计方案是如何把除法指令的相减和移位操作在同一 个时钟周期内完成的,举例说明把减法指令的每一个状态周期所执行的微操作及相应控制 信号列入下表。这里执行一个除法运算一共用了十一个时钟周期,分别用Sl-Sll表示。特 别是在下表中的在S2时钟周期状态所描述的微操作过程中,很巧妙的把除法操作S2中的 步骤( 和移位操作C3)通过组合逻辑电路在一个时钟周期内实现,这样的相减和移位操 作要执行8次,所以S3至S9的操作步骤和S2基本相同,这里不再赘述了。显然,如果把相 减和移位操作用两个时钟周期来完成的话,则执行一条减法指令至少要用19个时钟周期, 而本发明设计的这种方法只要用11个时钟周期就足够了,这样一来提高除法运算装置执 行除法运算的速度是显而易见的。下面表格中显示的是在本发明的除法装置中完成一次除法运算所采用的典型的 运算指令,具体如下
Sta teOperat ionSl(1):Tmp2_clr (Tmp2 清零标志)=1;清零 Tmp2; (2) B2D_calu (寄存器 B 到 databus 控制信号)=1; Tmpl.en (Tmpl 使能信号)=1,将B寄存器值传给Tmpl.(3): Acc2BbusA(Acc 到 BbusA 控制信号)=1; BbusA2B_calu (BbusA到B的控制信号)二 1;把Acc寄存器值传给B。S2(1):aluain—sel (aluain 选择信号)=001,选择 divshift — aluain(即 Tmp2 [6: 0] & B [7])进入 ALU 参与运算。
(2) aluop-subb (减法控制信号),alubuf-wr (ALU写入操作),执 行Tmp2-T^mpl操作,影响cyout (借位标志),相减的结果输出 Sdatabus (数据总线)。
(3):shift (移位信号)=1,mill (相乘信号)=0 (B寄存器输入选 #divshift-B_in,而 divshift_B_in 又居 cyout 为 1 或 0选 择β寄存器的最低位移入0还是1); Shift=I, div-Ι (即Tmp2 寄存器输入选择 divshif t_Tmp2-in,而 divshif t—Tmp2_ in 又根 据cyout为1或0选择Tmp2为{Tmp2[6:0], B [7] }还是为 dbus in)。
(4):在此状态下,数据就写入B,Tmp2.S3同S2S4同S2S5同S2S6同S2S7同S2S8同S2S9同S2SlO取下一指令。SllB2d-calu, Acc.en , Trap22BbusA , BbusA2b—calu
权利要求
1.一种除法运算方法,其特征在于,该运算方法包括(1)在寄存单元内存入被除数、除数,以及中间值;(2)在同一个时钟周期内对被除数以及中间值联合进行左移操作,同时计算进行左移 操作后的中间值与除数之间的差值;(3)在与步骤O)同一时钟周期内,如果所述差值大于等于0,则将所述的差值替代并 作为新的中间值,并将被除数最低位置1 ;如果所述差值小于0,则将被除数最低位置0 ;(4)判断移位次数是否等于被除数在寄存单元的存储位数,如果不是则返回步骤2重 新循环执行,如果是则结束运算。
2.根据权利要求1所述的除法运算方法,其特征在于,在步骤(1)中所述的被除数存储 在所述的累加器中,所述的除数存储在所述的寄存器中,所述的中间值存储在所述的第二 暂存器中;在步骤( 开始运算之后,所述的除数存储在第一暂存器中,所述的被除数存储 在寄存器中并开始运算。
3.根据权利要求2所述的除法运算方法,其特征在于,在整个运算方法运算结束之后 所述的寄存器内存储本运算方法产生的商,所述的第二暂存器内存储的是本运算算法产生 的余数。
4.根据权利要求1所述的除法运算方法,其特征在于,在步骤(1)中存入的中间值为0。
5.根据权利要求1所述的除法运算方法,其特征在于,在步骤( 中对被除数以及中间 值进行的左移操作为逻辑左移。
6.根据权利要求1所述的除法运算方法,其特征在于,所述步骤(2)中的左移位操作通 过移位器完成,所述的差值运算通过加法器完成,所述的整个运算过程中的比较运算均通 过比较器完成,所述的整个运算过程中的计数均通过计数器完成。
7.一种采用根据权利要求1-6任意一项权利要求所述的运算方法的装置,其特征在 于,所述的运算装置包括用于进行逻辑运算的运算逻辑单元,以及用于存储数据的寄存单 元,所述的寄存单元中的数据通过运算逻辑单元控制进行逻辑运算。
8.根据权利要求7所述的装置,其特征在于,所述的寄存单元包括用于存储被除数的 累加器,以及用于存储除数的寄存器,所述的寄存单元还至少包括用于存储逻辑运算过程 中的中间过渡数据的第一暂存器以及第二暂存器。
9.根据权利要求8所述的装置,其特征在于,所述累加器、寄存器以及所述的第一暂存 器和第二暂存器的存储位数相同。
10.根据权利要求7所述的装置,其特征在于,所述的运算逻辑单元至少包括用于逻辑 运算的加法器,用于控制所述的寄存单元中数据移位的移位器,用于比较运算的比较器,用 于统计数据的计数器以及用于统一上述部件工作时序的晶振。
全文摘要
本发明涉及一种利用数制表示且应用在半导体器件的非线性组合数字除法计算方法以及实现这种运算方法的除法装置,更具体地,本发明涉及一种除法运算方法及采用该方法的运算装置。本发明的除法运算方法采用“移位减”的方法,并通过将移位以及减法同时在一个周期内执行达到减少整个除法运算方法的运算周期,优化整个除法运算算法的目的,同时本发明还提供了一种采用上述除法运算方法的除法装置。通过采用上述的技术方案,本发明提供了一种运算速度快,运算效率高,并且计算周期得到优化的除法运算方法,以及一种采用上述除法运算方法的除法运算装置。
文档编号G06F7/52GK102063284SQ20101058408
公开日2011年5月18日 申请日期2010年12月13日 优先权日2010年12月13日
发明者赵兴朋 申请人:青岛海信信芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1