CN1103077C - 整数除法运算装置及整数除法运算方法 - Google Patents

整数除法运算装置及整数除法运算方法 Download PDF

Info

Publication number
CN1103077C
CN1103077C CN94191178A CN94191178A CN1103077C CN 1103077 C CN1103077 C CN 1103077C CN 94191178 A CN94191178 A CN 94191178A CN 94191178 A CN94191178 A CN 94191178A CN 1103077 C CN1103077 C CN 1103077C
Authority
CN
China
Prior art keywords
dividend
mentioned
divisor
integer
contraposition
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.)
Expired - Lifetime
Application number
CN94191178A
Other languages
English (en)
Other versions
CN1117763A (zh
Inventor
威廉姆·A·赫夫曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Arm Overseas Finance Co ltd
Overpass Bridge Co ltd
Toshiba Corp
Original Assignee
Toshiba Corp
MIPS Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, MIPS Technologies Inc filed Critical Toshiba Corp
Publication of CN1117763A publication Critical patent/CN1117763A/zh
Application granted granted Critical
Publication of CN1103077C publication Critical patent/CN1103077C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5353Restoring division

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

本发明的装置用整数除数除整数被除数、产生整数商。该装置将除数右端位与被除数的M位对齐,对该被除数和除数进行对位处理。从被除数的各个位中选定看来应该与除数对齐的位的整数值和上述除数进行比较。根据该比较结果,将与被除数的M位及其左侧的位相对应的商数位设为0。根据上述比较结果、在上述对位状态下,通过被除数除以除数,算出在未设定为0的商数位中的商位值。

Description

整数除法运算装置及整数除法运算方法
本发明涉及计算机系统中进行除法运算用的装置及方法。
大多数计算机系统都有整数除法运算装置,即整数被除数除以整数除数的运算装置。原有的整数除法运算装置都是对被除数及除数返复进行移位及减法处理。原有的这种整数除法运算装置已经多次公开发表。例如,在约翰·埃尔·赫奈西(ジヨン·エル·ヘネシ-)和戴维特·埃·帕达松(デビシド、エ-·パタ-ソン)合著的“计算机功能结构、定量方法”(1990年,美国加利福尼亚州圣马特奥,莫尔干考夫曼(モルガンカワフマン)公司出版)中就有阐述。本说明书参考了其中的阐述内容。
移位及减法处理都要花费时间和运算费用。原有的整数除法装置由于反复对被除数及除数进行移位和减法运算,由于运算所花费的时间,增大了运算费用。
因此要求提供一种更有效的除法运算装置及除法运算方法。
为了解决上述课题,本发明提供一种进行整数被除数除以整数除数的运算,生成整数商用的装置及方法。本发明的装置是在将除数的右端位与被除数的M位对位以后进行的除法运算。M是表示被除数的位的位置上正整数值。从被除数的各个位中选定看来应该是与除数位对位的位的整数值同除数进行比较。
根据该比较的结果,将与被除数的M位和位于其左侧的被除数位相对应的位置处的商数位设为0。再根据上述比较结果,在经过上述对位处理的状态下,进行被除数除以除数的除法运算,算出未设定为0的商数位的值。
图1是表示以本发明的实施例为根据的整数除法装置的运作的流程图。
图2A-2C是以本发明的实施例为根据的整数除法运算处理的示例图。
图3是表示根据本发明的实施例,将除数和被除数对位,进行处理的流程图。
图4A-4L是表示以本发明的实施例为根据的整数除法运算处理的另一示例图。
图5是整数除法的示意图。
图6是以本发明的第1实施例为根据的整数除法运算装置的框图。
图7是以本发明的第2实施例为根据的整数除法运算装置的框图。
图8是以本发明的第3实施例为根据的整数除法运算装置的框图。
下面参照附图详细说明本发明的特征和优点、以及各实施例的结构和运作。附图中,同一标号表示相同的或类似的部件。
本发明的整数除法运算装置与原有的整数除法运算装置及方法相比较,其运算时间短,运算费用低。特别是在整数除法运算中,当商位短时,即与商数的全部位数相对应的设在商数开头的0的位数多时,或被除数的位数短时,本发明的有效性显著。本发明能应用于需用整数除法的一切数据处理装置。例如,本发明能应用于RISC(限定命令置位计算机)。在ジ-·ケイン和ジエイ·ハインリツヒ合著的“MIPSRISC功能结构”(1992年,美国新泽西州英格尔伍德,プレンテイスホ-ル公司出版);マィク·ジヨンソン著的超标量微处理机结构(1991年,プレンテイスホ-ル公司出版),以及ステフアン·ビ-·フア-バ-著的VLSIRISC功能结构(1989年,美国纽约州纽约,マ-セルデツカ-公司出版)等中都有关于RISC的说明。本说明书参考了这些说明。
本发明的整数除法运算装置能进行带符号的整数除法运算和不带符号的整数除法运算。为了便于说明,本说明书首先说明不带符号的整数除法运算。然后再讨论带符号的整数除法运算。
在详细说明本发明之前,先说明原有的整数除法运算装置如何运算,例如怎样进行9÷3的运算。在许多文献中都对原有的整数除法运算装置发表过阐述。例如有上述的赫奈西和帕达松所著的“计算机功能结构定量方法。图4A表示在9÷3的运算中,被除数9和除数3=值的表示方法。被除数的各位用DD0-DD7表示。DD0是右端位即最低位,DD7是左端位即最高位。除数的各位用DS0-DS7表示。DS0是右端位。DS7是左端位。商数的各位用Q0-Q7表示。Q0是右端位,Q7是左端位。图5示出了这些位。
如图4B所示,原有的整数除法运算装置将除数的右端位DS0与被除数的左端位DD7对齐。然后,从被除数中与除数对齐的位(在图4B的情况下,是位DD7)相对应的整数值中减去除数。即从与被除数位DD7相对应的整数值0中减去除数3,得-3。因减得的结果为负,所以将商数位Q7设定为0。如果减得的结果为正(包括0),则商位Q7设定为1。在图4B的情况下,商位Q7设定为0。
其次,如图4C所示,将除数向右移1位。从与除数对齐的被除数位(在图4C中,位DD7及DD6)相对应的右端一侧的位中所有的整数值中减去除数。即从与被除数位DD7及DD6相对应的右端一侧的位中所有的整数值0中减去除数3,得-3。由于减得的结果为负,所以设定商数位Q6为0。如果减得的结果为正,则商位Q6设定为1。在图4C中,商数位Q6设定为0。
这样,如图4D-4G所示,商数位Q5-Q2也设定为0。
设定商数位Q2为0后,如图4H所示,将除数向右移1位,从与除数对齐的被除数位(图4H中,位DD7-DD1)相对应的右端一侧的位中所有的整数值中减去除数。即从与被除数位DD7-DD1相对应的右端一侧的位中所有的整数值4中减去除数3,得1。因减得的结果为正,所以设定商数位Q1为1。这时,如图4I所示,根据该减法运算结果修正被除数。
其次,如图4I所示,将除数向右移1位,从与除数对齐的被除数位(图4I中,位DD7-DD0)相对应的右端一侧位中所有的整数值中减去除数。即从与被除数DD7-DD0相对应的右端一侧位中所有的整数值3中减去除数3,得0。因减得的结果为正,所以设定商数位Q0为1。这时,由于除数的右端位DS0与被除数的右端位DD0对齐,所以整数除法运算结束。
至此应该注意的是,在原有的整数除法装置的运算中,与被除数起始的各0位相对应的商数位总为0。这在无符号整数除法运算中总是正确的。这是因为从0中减去非零的除数所致。
因此,正如本发明者们所发现的那样,如果将与被除数起始一侧的各0位相对应位置的商数位设定为0,然后将除数的右端位DS0与被除数起始的非零位即被除数左端一侧开始为1的位对齐,开始进行原有的整数除法运算,则可省去许多移位过程和减法运算过程。
这样,如果能省去移位及减法过程,则可缩短整数除法处理的时间,减少运算费用。实际上能缩短的时间或能节约的费用的多少都取决于被除数、除数及商值。通常,如果商数位短,即如果与商数的全部位数相对应的起始的0数多,或者如果被除数短,则能提高整数除法运算装置的性能。
本发明的第1个实施例进行整数除法运算时,对被除数从左向右搜索,具体确定最初的非零被除数位的位置,即起始非零被除数位的位置。然后将除数的右端位DS0与该起始非零被除数位对齐。而且将与该起始非零被除数位的左侧的被除数位相对应的商数位设为0。这样,将被除数和除数对齐,并将适当个数的0设定为商数后,开始进行用图4A-4I说明过的原有的整数除法处理。
图4J表示本发明的第1个实施例的运作。图中,起始非零被除数位为DD3。将除数的右端位DS0与该被除数位DD3对齐,将与起始非零被除数位DD3的左侧的被除数位DD7-DD4相对应的商数位Q7-Q4设为0。
图6是以本发明的第1个实施例为根据的整数除法运算装置602的框图。整数除法运算装置602备有被除数寄存器604和除数寄存器606。
起始非零位探试电路(FFO)608将寄存器604中的被除数的各位从左向右调,具体确定起始非零被除数位的位置W。检索的位的位置W提供给控制状态装置610。在图4J中,位的位置W为3。
控制状态装置610将指示送给1-63位右移位寄存器612,将被除数的W位向右进行逻辑移位。该寄存器612能将1-63任意位数的目标数据向右移位。这时,各0移向寄存器612的左端。向右移位后的被除数根据控制状态装置610的指示,通过多路转换器616及620,存储在寄存器604中。
移出右移位寄存器612以外的被除数位存储在暂存寄存器(图中未示出)中。该暂存寄存器分别与右移位寄存器612、左移位寄存器614及左移位寄存器622连接。在图4J中,该暂存寄存器所存的为“001”。
控制状态装置610将与被除数位W的左侧的被除数位相对应的商数位设定为0。这些商数位最好存储在寄存器(图中未示出)中。在图4J中,将商数位Q7-Q4设定为0。
这样将除数和被除数对齐,并将适当个数的起始商数位设定为0,并将其存入寄存器中,然后利用图6所示的各部件开始进行原有的整数除法运算。
即减法器618从寄存器604中的被除数中减去寄存器606中的除数。在图4J所示例中,从1减去3。控制状态装置610断定减得结果为负时,将商数位Q3设定为0,将指示送给左移位寄存器614,将寄存器604中的被除数向左移一位。这时,暂存寄存器内的左端位被移到左移位寄存器614的右端位置。该左移位后的被除数值通过多路转换器616及620,存入寄存器604。在图4J中,将二进制数字“10”存入寄存器604。
控制状态装置610反复进行上述处理,设商数位Q2为0,将二进制数字“100”存入寄存器604。
根据控制状态装置610的指示反复进行同样的处理,在图4J的情况下,用减法器618从寄存器604中现在的被除数中减去寄存器606中的除数后的值为正1。即4-3=1。因此,控制状态装置610设定商数位Q1为1,指示左移位寄存器622,将减法器618的输出数据向左移1位。而且将存储在暂存寄存器中的值的左端位移到该左移后的输出数据的右端位置。该左移后的输出数据成为现在的被除数,通过多路转换器616及620,存入寄存器604中。在图4J所示例中,将二进制数字“11”存入寄存器604。
根据控制状态装置610的指令,再反复进行上述处理。即在减法器618中,从存储在寄存器604中的现在的被除数中减去存储在寄存器606中的除数。因减法器输出0,所以控制状态装置610设定商位Q0为1。至此,整数除法运算结束。
图6中的整数除法装置602的控制状态装置610最好用硬件实现。或者采用根据计算机的软件运作的处理机也可。起始非零探试电路(FFO)608可应用浮点加法器的正规化控制来实现。其结构及运作,通过参照本说明书,本专业的技术人员自会明白。图6中的其它部件是专业的技术人员已知的。
现说明本发明的第2个实施例。该实施例在进行整数除法运算时,将被除数从左向右调动,具体确定最初的非零位、即起始非零被除数位的位置。然后将除数从左向右调动,确定最初的非零位即起始非零除数位的具体位置。从起始非零被除数位的位置减去起始非零除数位的位置,生成两者对齐的位的位置。
与该对位的位置相对应的被除数位,简称为对位被除数位,将除数的右端位DS0与该经过对位处理的被除数位对齐。然后将与该对位被除数位和其左侧的被除数位相对应的商数位设为0。这样将除数和被除数进行对位处理,在商数的开头设定适当个数的0后,开始进行参照图4A-4I说明过的原有的整数除法运算。
图4L表示本发明的第2个实施例的运作。该图中,起始非零被除数位为DD3。起始非零除数位为DS1。因此对位的位置为2。因此,将除数的右端位DS0与被除数位DD2对齐,将与被除数位DD2和其左侧的被除数位DD7-DD3相对应的商数位Q2及Q7-Q3设为0。
第2个实施例根据起始非零被除数位的位置和起始非零除数位的位置,将除数与被除数的对位处理达到最佳位置。
图7是以本发明的第2个实施例为根据的整数除法运算装置702的框图。整数除法运算装置702备有被除数寄存器704和除数寄存器706。
起始非零探试电路(FFO)708将寄存器704中的被除数从左向右调动,具体确定起始非零被除数位的位置X,将该位置X输送至减法器712。在图4L所示例中,X=3。
起始非零探试电路(FFO)710将寄存器706中的除数从左向右调动,具体确定起始非零除数位的位置Y,将该位置Y输送至减法器712。在图4L所示例中,Y=1。
减法器712从X中减去Y,生成上述对位位的位置。在图4L所示例中,该对位位置为2。该对位位置被输至控制状态装置714。
控制状态装置714向1-63位右移位寄存器716发送指示,指令将被除数右移进行与对位位置相对应位数的逻辑移位。根据控制状态装置714的指示,右移后的被除数通过多路转换器720及726,存入寄存器704。
移出右移位寄存器716以外的被除数位存入暂存寄存器中(图中未示出)。该暂存寄存器分别与右移位寄存器716、左移位寄存器718和左移位寄存器724连接。在图4L中,该暂存寄存器所存的为“01”。
控制状态装置714将比对位位置高的商数位设定为0。这些商数位存入寄存器中即可(图中未示出)。在图4L中,设定商数位Q7-Q2为0。
对除数和被除数进行对位处理,将从开头算起的适当个数的商数位设定为0,并存入寄存器。然后利用图7所示的各部件,开始进行原有的整数除法运算。该整数除法运算方法与参照图6说明过的相同,所以不再重复说明。
图7中的整数除法运算装置702的控制状态装置714最好用硬件实现。或者也可采用根据计算机软件运作的处理机。起始非零探试电路(FFO)708及710可应用浮点加法器的正规化控制来实现。其结构及运作,通过参照本说明书,本专业的技术人员会明白的。图7中的其它部件是本专业工作者已知的。
现说明本发明的第3个实施例。该实施例将除数右端位DS0与被除数的规定位对齐。然后从被除数中与除数对齐的位相对应的整数值中减去除数。
如果减得的结果为负,则将上述规定的与被除数位和其左侧的被除数位相对应的商位设定为0,对经过对位运算的被除数及除数进行原有的整数除法运算。如果减得结果为正(包括0),则对被除数和未经过对位运算的除数进行原有的整数除法运算。下面详细说明本发明的第3个实施例。
图4K表示本发明的第3个实施例的运作。该图中,DD4是被除数的规定位。将除数的右端位DS0与该被除数位DD4对齐。将与规定的被除数位DD4和其左侧的被除数位DD7-DD5相对应的商数位Q4及Q7-Q5设为0。
图1是表示本发明的第3个实施例的运作的流程图。参照该流程图和图2A-2C中的除法例,详细说明本发明的第3个实施例。在图示例中使用16位被除数202和16位除数204。在本发明中,被除数,除数及商数最好为同一位长。图1中的流程图从步102开始。
在步104中,将除数204的右端位DS0与被除数202的第1规定被除数位M对齐。即通过将被除数位M与除数位DS0对齐,将被除数和除数进行对位处理。M是预先决定的值。在图2A-2C中,M为4。因此如图2B所示,除数204的位DS0与被除数202的位DD4对位。
再在步104中,从表示被除数202的位中与除数204对位的位(图2B中DD15-DD4)的整数值中减去除数204。在图2B中,得32-4=28。
在步106中,判定步104中减得的结果是否为负。即在步106中判断如下的关系是否正确。
2的M次方*除数>被除数式中符号*表示乘号。
在图2A-2C所示例中,步104中的减得结果不为负,即上述关系不正确。因此执行步112以后的一系列处理。如果步104中减得的结果为负,即如果上述关系正确,则执行步108以后的一系列处理。
在步108中,在商数的开头部分插入“K-M”个数的0,将该商数存入寄存器中。在本实施例中,K是被除数202的位数,与除数204或商的位数相等。于是,将与第1规定的被除数位DD4和其左侧的被除数位DD15-DD5相对应的商数位设为0。
步108结束后,参照图4A-4I说明的原有的整数除法的第1阶段也就结束。即将除数的右端位DS0与第1规定的被除数位DD4对位进行的除法的第1阶段结束。就是说对与第1规定的被除数位DD4相对应的商数位Q4设定数值。另外,也可以采用其它众所周知的整数除法运算方法代替图4A-4I中的方法。在步110中,继续进行参照图4A-4I说明的原有的整数除法运算,在步108中生成未设定为0的商数位。在步110中利用众所周知的方法生成余数。经过步110以后,在步122中除法运算结束。
当在步106判定步104中减得的结果不为负时,执行步112以后的一系列处理。
步112将除数204的右端位DS0与被除数202的第2规定被除数位N对位。N是预先确定的规定正整数。在图2A-2C所示例中,N=8。因此,如图2C所示,除数204的右端位DS0与被除数204的位DD8对位。然后,从被除数202的位中表示与除数204对位的位(在本例的情况下,为DD15-DD8)的整数值中减去除数204。在图2C的情况下为2-4=-2。
步114判断步112中减得的结果是否为负。如果不为负,执行步120以后的处理。如图2C所示;如果为负,则执行步116以后的一系列处理。
在步116中,在商数的开头端插入“K-N”个0。这样将与第2规定的被除数位DD8和其左侧的被除数位DD15-DD9相对应的商数位设为0。
步116结束后,参照图4A-4I说明的原有的整数除法的第1阶段也就结束。即将除数204的右端位DS0与第2规定被除数位DD8对齐进行的除法的第1阶段结束。就是说将与第2规定的被除数位DD8相对应的商数位Q8设定数值。另外,也可以采用其它已知的整数除法运算方法代替图4A-4I中的方法。在步118中,继续进行参照图4A-4I说明的原有的整数除法运算,在步116中生成未设定0的商数位。步118利用众所周知的方法生成余数。经过步118以后,在步122中除法运算结束。
当在步114中判定步112中减得的结果不为负后,执行步120以后的处理。
步120开始进行上述原有的整数除法处理或众所周知的其它除法处理。即将除数204的右端位DS0与被除数202的左端位“K-1”对齐后,生成全部商数位。这时,商数中连一个0也不作预设定。另外,除数204也不与被除数202的位对位。即,直接执行原有的整数除法运算。步120利用众所周知的方法生成余数。经过步120以后,在步122中除法运算结束。
本发明的第3实施例在整数除法运算中试行两次最佳化处理。第1次最佳化处理与步104、106、108及110相对应,将除数204的右端位与被除数202的M位对齐。第2次最佳化处理与步112、114、116及118相对应,将除数204的右端位与被除数202的N位对位。在本发明中,由于在整数除法运算中进行最佳化处理,所以只进行一次最佳化即可。或者也可以试行3次以上的最佳化处理。随着最佳化处理次数的重复,作为与除数右端位对位的目标规定的被除数位的位置增多。这种变更形态,本专业工作者是会明白的。
可使用各种数字,例如K=64、M=16、N=32。K、M、N的值也取永久的设定值,也可使用适当的软件命令,由程序进行调整。
图3是表示图1中的步104的详细过程的流程图。该流程从步302开始,直接移到步304。
在步304中,将被除数向右移M位。这时,各0移到被除数的左端位的位置。将其称为逻辑右移值。
在步306中,从右移位后的被除数中减去除数。
图1中的步112与步104相同,但可说明将步304中的M置换成N。步104及步112中的其它运作,本专业工作者是会明白的。
图8是以本发明的第3个实施例为根据的整数除法运算装置802的框图。该整数除法运算装置802备有被除数寄存器804和除数寄存器806。
控制状态装置814将指示发送至右移位寄存器808,将寄存器804中的被除数向右进行M位逻辑移位。最好使M=16,但也可是其它数。根据控制状态装置814的指示,右移位后的被除数通过多路转换器812及820,存入寄存器804。移出右移位寄存器808以外的被除数位存入暂存寄存器中(图中未示出)。该暂存寄存器分别与右移位寄存器808,左移位寄存器810及左移位寄存器818连接。在图4K中,M为4,该暂存寄存器中所存由为“1001”。
控制状态装置814将指示发送至减法器816,从寄存器804中的被除数中减去寄存器806中的除数,并接收减得的结果。如果减得的结果为负,控制状态装置814将寄存器中存储的商数位中位置在M以上的商数位设为0。在图4K所示例中,将商数位Q7-Q4设为0。
经过对除数和被除数进行对位处理后,在商数位的开头设定适当个数的0,并存入寄存器。然后利用图8所示的各部件,开始进行原有的整数除法运算。该整数除法与参照图6说明过的相同,其重复说明从略。
当减法器816减得的结果为正时,控制状态装置814指示右移位寄存器808,再将寄存器804中的被除数向右移M位,将被除数从原来的位置向右共计移N位(N=M+M)。根据控制状态装置814的指示,向右移位后的被除数通过多路转换器812及820,存入寄存器604。移出左移位寄存器808以外的被除数位存入暂存寄存器中作为右移位。
控制状态装置814指示减法器816,从寄存器804中的被除数的现在值减去寄存器806中的除数,并接收减得的结果。如果减得的结果为负,控制状态装置814将寄存器中存储的商数位中位于N以上的商数位设定为0。
经过对除数和被除数进行对位处理后,在商数位的开头设定适当个数的0,并存入寄存器中。然后使用图8所示的各部件,开始进行原有的整数除法运算。该整数除法与参照图6说明过的相同,因此其重复说明从略。
如果上述第2次减得的结果为正,控制状态装置814再将原被除数存入寄存器804。然后利用图8所示的各部件,开始进行原有的整数除法运算。这时,除数的右端位与被除数的左端位对位。
图8中的整数除法运算装置802的控制状态装置814最好用硬件实现。或者也可以采用根据计算机软件运作的处理机来实现。图8中的其它部件是本专业工作者已知的。
以本发明为根据的整数除法运算装置,已说明了有关无符号整数除法运算。将本发明的第1-第3实施例经过稍加变更之后,就能进行带符号的整数除法运算。
例如,在本发明的任意一个实施例中都可增加第1电路。该第1电路是在进行前面说明过的整数除法的算法之前产生被除数及除数两者的绝对值的电路。另外,再增加第2电路。该第2电路是根据被除数和除数的符号调整商数符号的电路。例如,如果被除数和除数都为正或都为负,则设定商的符号为正。在进行绝对值运算之前进行该符号的设定。
对于实现该第1及第2电路的方法,本专业技术人员都很清楚。为了实现带符号的整数除法运算,在本发明的整数除法运算装置中也可进行其它形态的变更,参照本说明书,本专业工作者能明白这种变更形态。
以第2实施例为根据的整数除法装置的运算速度,通常比以第3实施例为根据的装置快。其原因有二,其一是在第2实施例对除数和被除数进行对位处理,找出最适合的对位的位置。然而第3实施例是将除数和被除数的对位选定在任意的位置上。其二是第2实施例预先确定除数的对位位置,不需要反复进行移位及减法运算。
可是在第3实施例中的整数除法运算装置中所需要的硬件比第2个实施例中的少。其原因有三,其一是第3实施例完全不需要右移位处理器。即第3实施例不需要进行1-”K-1”(K为除数的长度)的任意位数的移位的右移位处理器。其二是第3实施例不需要上述的两个起始非零探试电路(FFO)。其三是第3实施例与第2实施例相比较,前者不需要复杂的状态装置。
第1实施例中的整数除法运算装置则是将第2及第3实施例的优点及缺点折中的一种装置。可是,对于具有这种一般性特征的实施例来说,本发明的实施并不一定正确。
在全部除法运算阶段中原有的非复原除法运算程序都能适用。
在以上对于各实施例所作的说明,都是展示在开始进行原有的除法运算之前,为了与被除数对位在确定除数需要前移的范围的过程中所用的各种不同的程序和技术。
上述各实施例只是本发明的几个示例,本发明并不受此限,即本发明的范围不受上述实施例的限制,而由权利要求范围所规定。

Claims (16)

1.一种整数被除数除以整数除数产生整数商的方法,该方法的特征在于具有下述步骤:
(1)将除数的右端位与被除数预定的M位对齐的被除数和除数的对位步骤,其中,M是表示被除数的位的位置的整数值;
(2)将被除数的位中表示与除数对位的位的整数值和上述除数进行比较的步骤;
(3)如果判定所述除数大于所述整数值,将与上述被除数预定的M位及位于被除数预定的M位左侧的被除数位相对应的位置处的商数位设定为0的步骤;和
(4)如果判定所述除数大于所述整数值,通过步骤(1)中对位后被除数除以除数的除法运算,算出在未设定为0的商数位中的商位值的步骤。
2.根据权利要求1所述的方法,其特征在于:上述步骤(1)包括将上述被除数向右移M位的逻辑右移步骤。
3.根据权利要求1所述的方法,其特征在于:上述步骤(2)包括判定2的M次方乘以上述除数后的值是否大于上述被除数的步骤。
4.根据权利要求1所述的方法,其特征在于:上述步骤(2)包括步骤:
从上述整数值中减去上述除数以算出减后结果的步骤;以及
如果上述减后结果为负值,判定上述除数比上述整数值大的步骤。
5.根据权利要求4所述的方法,其特征在于:当上述被除数和上述商的位长分别为K位时,上述步骤(3)包括在上述除数比上述整数值大的条件下,将“K-M”个数的0插入上述商数开头的步骤。
6.根据权利要求1所述的方法,其特征在于:如果判定所述除数不大于所述整数值,则还具有下述各步骤:
(5)当除数不大于被除数的位中表示与除数对位的位的整数值时,将上述除数的右端位与上述被除数预定的位N的位置对齐,对该被除数和除数进行对位处理的步骤,其中N是表示被除数的位的位置的整数值;
(6)根据步骤(5)执行的对位操作,将被除数的位中表示与除数对位的位的第2整数值和上述除数进行比较的步骤;
(7)如果判定所述除数大于所述第2整数值,将与上述被除数预定的位N以及位于被除数预定的位N左侧的被除数位相对应的商数位设定为0的步骤;以及
(8)如果判定所述除数大于所述第2整数值,通过进行步骤(5)中对位后上述被除数除以上述除数的除法运算,算出在未设定为0的商数位中的商位值的步骤。
7.根据权利要求6所述的方法,其特征在于:当上述被除数,上述除数和上述商的位长为K位时,K=64,M=16,N=32。
8.一种整数被除数除以整除除数产生整数商的装置,该装置的特征在于包括:
将除数的右端位与被除数的M位的位置对齐,对该被除数和除数进行对位处理的对位装置,其中M是表示被除数的位的位置的整数值;
将被除数的位中表示与除数对位的位的整数值和上述除数进行比较的比较装置;
响应于所述除数大于所述整数值的判定,将与上述被除数的M位及位于被除数的M位左侧的被除数位相对应的商数位设定为0的零设定装置;以及
响应于所述数大于所述整数值的判定,通过进行在由上述对位装置进行的对位状态后的上述被除数除以上述除数的除法运算,算出在未设定为0商数位中的商位值的除法运算装置。
9.根据权利要求8所述的装置,其特征在于:上述对位装置对上述被除数进行M位的逻辑右移。
10.根据权利要求8所述的装置,其特征在于:由前述比较装置判定2的M次方乘以上述除数后的值是否大于上述被除数。
11.根据权利要求8所述的装置,其特征在于:上述比较装置包括:
从上述整数值中减去上述除数以算出减后结果的装置;以及
在上述减后结果为负值的条件下,判定上述除数比上述整数值大的装置。
12.根据权利要求11所述的装置,其特征在于:当上述被除数和上述商的位长为K位时,上述零设定装置在上述除数比上述整数值大的条件下,将“K-M”个数的0插入上述商数的开头。
13.根据权利要求8所述的装置,其特征在于还包括:
响应于所述除数不大于所述整数值的判定,将上述除数的右端位与上述被除数的N位对位,对该被除数和除数进行对位处理的第2对位装置,其中N是表示被除数的位的位置的整数值;
经过上述第2对位装置执行的对位,将被除数的位中表示与除除数对位的位的第2整数值和上述除数进行比较的第2比较装置;
响应于所述除数大于所述第2整数值的判定,将与上述被除数的N位以及位于被除数的位N左侧的被除数位相对应的商数位设定为0的第2零设定装置;以及
响应于所述除数大于所述第2整数值的判定,通过进行在经过上述第2对位装置对位处理过的上述被除数除以上述除数的除法运算,算出在未设定为0商数位中的商位值的第2除法运算装置。
14.根据权利要求13所述的装置,其特征在于:当上述被除数、上述除数和上述商的位长为K位时,K=64,M=16,N=32。
15.一种整数被除数除以整数除数、产生整数商的方法,其特征在于具有下述各步骤:(1)确定被除数的起始非零位的具体位置的步骤;(2)使除数的右端位与上述起始非零的被除数位对齐、对该除数和被除数进行对位处理的步骤;(3)将与位于上述起始非零被除数位的左侧的被除数位相对应的商数位设定为0的步骤;(4)在上述步骤(2)的对位状态下,通过进行上述被除数除以上述除数的除法运算,算出在未设定为0的商数位的商位值的步骤。
16.一种整数被除数除以整数除数、产生整数商的方法,其特征在于具有下述各步骤:(1)确定被除数的起始非零位的具体位置、以及除数的起始非零位的具体位置的阶段;(2)从上述起始非零的被除数位的位置减去上述起始非零的除数位的位置、算出对位位值的步骤;(3)将上述除数的右端位与上述对位位值所对应的被除数位对齐、对上述除数和上述被除数进行对位处理的步骤;(4)将较比上述对位位值高的高位位置的商数位设定为0的步骤;(5)在上述步骤(3)的对位状态下,通过进行上述被除数除以上述除数的除法运算、算出在未设定为0的商数位中的商位值的步骤。
CN94191178A 1993-12-15 1994-12-15 整数除法运算装置及整数除法运算方法 Expired - Lifetime CN1103077C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/167,006 1993-12-15
US08/167,006 US5493523A (en) 1993-12-15 1993-12-15 Mechanism and method for integer divide involving pre-alignment of the divisor relative to the dividend

Publications (2)

Publication Number Publication Date
CN1117763A CN1117763A (zh) 1996-02-28
CN1103077C true CN1103077C (zh) 2003-03-12

Family

ID=22605562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN94191178A Expired - Lifetime CN1103077C (zh) 1993-12-15 1994-12-15 整数除法运算装置及整数除法运算方法

Country Status (9)

Country Link
US (1) US5493523A (zh)
EP (1) EP0684548B1 (zh)
JP (1) JP3564138B2 (zh)
KR (1) KR100305544B1 (zh)
CN (1) CN1103077C (zh)
DE (1) DE69430053T2 (zh)
HK (1) HK1018168A1 (zh)
TW (1) TW280891B (zh)
WO (1) WO1995016951A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754460A (en) * 1995-05-26 1998-05-19 National Semiconductor Corporation Method for performing signed division
US5946223A (en) * 1995-12-08 1999-08-31 Matsushita Electric Industrial Co. Ltd. Subtraction/shift-type dividing device producing a 2-bit partial quotient in each cycle
US5805489A (en) * 1996-05-07 1998-09-08 Lucent Technologies Inc. Digital microprocessor device having variable-delay division hardware
US5768573A (en) * 1996-11-20 1998-06-16 International Business Machines Corporation Method and apparatus for computing a real time clock divisor
TW374885B (en) * 1997-06-06 1999-11-21 Matsushita Electric Ind Co Ltd The arithmetic unit
US6317771B1 (en) * 1998-01-15 2001-11-13 Altera Corporation Method and apparatus for performing digital division
US20040249877A1 (en) * 2003-06-05 2004-12-09 International Business Machines Corporation Fast integer division with minimum number of iterations in substraction-based hardware divide processor
US7403966B2 (en) * 2003-12-08 2008-07-22 Freescale Semiconductor, Inc. Hardware for performing an arithmetic function
US7734901B2 (en) * 2005-10-31 2010-06-08 Mips Technologies, Inc. Processor core and method for managing program counter redirection in an out-of-order processor pipeline
US7711934B2 (en) * 2005-10-31 2010-05-04 Mips Technologies, Inc. Processor core and method for managing branch misprediction in an out-of-order processor pipeline
US20070204139A1 (en) 2006-02-28 2007-08-30 Mips Technologies, Inc. Compact linked-list-based multi-threaded instruction graduation buffer
US7721071B2 (en) * 2006-02-28 2010-05-18 Mips Technologies, Inc. System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor
US20080016326A1 (en) 2006-07-14 2008-01-17 Mips Technologies, Inc. Latest producer tracking in an out-of-order processor, and applications thereof
US7370178B1 (en) * 2006-07-14 2008-05-06 Mips Technologies, Inc. Method for latest producer tracking in an out-of-order processor, and applications thereof
US7650465B2 (en) 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US7657708B2 (en) * 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US8032734B2 (en) * 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
US8078846B2 (en) 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated
US9946547B2 (en) * 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
JP2009175958A (ja) * 2008-01-23 2009-08-06 Seiko Epson Corp 除算器および除算方法、並びに除算器を用いた画像符号化装置
JP5397061B2 (ja) * 2009-07-21 2014-01-22 富士通株式会社 演算処理装置、その制御方法および演算処理プログラム
RU2498393C1 (ru) * 2012-07-27 2013-11-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Вятский государственный университет ФГБОУ ВПО "ВятГУ" Способ деления целых двоичных чисел без остатка начиная с младших разрядов
US9747074B2 (en) 2014-02-25 2017-08-29 Kabushiki Kaisha Toshiba Division circuit and microprocessor
CN111104092B (zh) * 2019-12-06 2022-10-11 北京多思安全芯片科技有限公司 一种快速除法器和除法运算方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3293418A (en) * 1964-07-08 1966-12-20 Control Data Corp High speed divider
US4380051A (en) * 1980-11-28 1983-04-12 Motorola, Inc. High speed digital divider having normalizing circuitry
US4460970A (en) * 1981-05-22 1984-07-17 Data General Corporation Digital data processing system using unique techniques for handling the leading digits and the signs of operands in arithmetic operations
US4760550A (en) * 1986-09-11 1988-07-26 Amdahl Corporation Saving cycles in floating point division
JP2585649B2 (ja) * 1987-11-30 1997-02-26 インデータシステムズ株式会社 除算回路
DE68927398T2 (de) * 1988-08-29 1997-05-28 Nippon Electric Co Digitale Divisionsschaltung mit einem N/2-Bit-Subtrahierer für N-Subtraktionen
US5097435A (en) * 1988-12-24 1992-03-17 Kabushiki Kaisha Toshiba High speed dividing apparatus
JPH02194430A (ja) * 1989-01-24 1990-08-01 Oki Electric Ind Co Ltd 除算器
JPH04283832A (ja) * 1991-03-13 1992-10-08 Fujitsu Ltd 除算回路
JPH0540609A (ja) * 1991-08-02 1993-02-19 Toshiba Corp 浮動小数点除算装置
JPH0553768A (ja) * 1991-08-23 1993-03-05 Mitsubishi Electric Corp 除算器
JPH0573271A (ja) * 1991-09-17 1993-03-26 Nec Ic Microcomput Syst Ltd 除算回路
US5317531A (en) * 1992-04-02 1994-05-31 Intel Corporation Apparatus for reducing the size of an arithmetic and logic unit necessary to practice non-restore division
US5297073A (en) * 1992-08-19 1994-03-22 Nec Electronics, Inc. Integer divide using shift and subtract

Also Published As

Publication number Publication date
KR960701397A (ko) 1996-02-24
KR100305544B1 (ko) 2001-11-22
EP0684548A1 (en) 1995-11-29
TW280891B (zh) 1996-07-11
HK1018168A1 (en) 1999-12-10
JP3564138B2 (ja) 2004-09-08
WO1995016951A1 (fr) 1995-06-22
EP0684548A4 (en) 1996-04-03
DE69430053D1 (de) 2002-04-11
US5493523A (en) 1996-02-20
DE69430053T2 (de) 2002-11-21
CN1117763A (zh) 1996-02-28
EP0684548B1 (en) 2002-03-06

Similar Documents

Publication Publication Date Title
CN1103077C (zh) 整数除法运算装置及整数除法运算方法
EP0411491B1 (en) Method and apparatus for performing division using a rectangular aspect ratio multiplier
US5307303A (en) Method and apparatus for performing division using a rectangular aspect ratio multiplier
CN101630243B (zh) 超越函数装置以及用该装置实现超越函数的方法
CN1914589A (zh) 用于复合相旋转的cordic算法的实现
EP1769334A1 (en) Complex logarithmic alu
CN1928809A (zh) 用于执行浮点运算的系统、设备和方法
CN1503936A (zh) 部分逐位置换
CN1561478A (zh) 用于有效的混和精度dsp的分割乘法器
US5060182A (en) Method and apparatus for performing the square root function using a rectangular aspect ratio multiplier
CN1185606A (zh) 面向算术/移位操作的单指令多数据校正电路
CN1539102A (zh) 执行除法的方法和装置
CN1258710C (zh) 用于高效模数归约和模数乘法的电路和方法
CN1109963C (zh) 一种并行处理除法电路
CN1218240C (zh) 数据处理设备及其数据处理方法
US6182100B1 (en) Method and system for performing a logarithmic estimation within a data processing system
JP2005018759A (ja) 2の浮動小数点数乗の概算を実施するための方法および装置
CN1833220A (zh) 用于求出整数余数的方法和装置
CN1099071C (zh) 具有比特移位单元的数字滤波器
KR100712864B1 (ko) 디지털 필터 계수의 동적 범위를 변화시키는 시스템
CN1761938A (zh) 超高基数除法
US7225216B1 (en) Method and system for a floating point multiply-accumulator
CN1731344A (zh) 快速多周期二进制及十进制加法器单元的高度并行结构
US5757688A (en) Method and apparatus for high speed division
JP2645422B2 (ja) 浮動小数点演算処理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MIPS TECHNOLOGY CO.,LTD.

Free format text: FORMER OWNER: SILICON IMAGE CO., LTD.

Effective date: 20020911

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20020911

Address after: Tokyo, Japan

Applicant after: Toshiba Corp.

Co-applicant after: MIPS Technologies, Inc.

Address before: Tokyo, Japan

Applicant before: Toshiba Corp.

Co-applicant before: Silicon Graphics, Inc.

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: BRIDGE DECK LLC

Free format text: FORMER OWNER: MIPS TECHNOLOGIES INC.

Effective date: 20141231

Owner name: ARM FINANCE OVERSEAS LTD.

Free format text: FORMER OWNER: BRIDGE DECK LLC

Effective date: 20141231

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20141231

Address after: Tokyo, Japan

Patentee after: Toshiba Corp.

Patentee after: ARM Overseas Finance Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: Toshiba Corp.

Patentee before: Overpass Bridge Co.,Ltd.

Effective date of registration: 20141231

Address after: Tokyo, Japan

Patentee after: Toshiba Corp.

Patentee after: Overpass Bridge Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: Toshiba Corp.

Patentee before: MIPS Technologies, Inc.

C17 Cessation of patent right
CX01 Expiry of patent term

Expiration termination date: 20141215

Granted publication date: 20030312