JP2502836B2 - 除算回路の前処理装置 - Google Patents
除算回路の前処理装置Info
- Publication number
- JP2502836B2 JP2502836B2 JP3078265A JP7826591A JP2502836B2 JP 2502836 B2 JP2502836 B2 JP 2502836B2 JP 3078265 A JP3078265 A JP 3078265A JP 7826591 A JP7826591 A JP 7826591A JP 2502836 B2 JP2502836 B2 JP 2502836B2
- Authority
- JP
- Japan
- Prior art keywords
- divisor
- bits
- dividend
- shifter
- quotient
- 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 - Fee Related
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
-
- 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49936—Normalisation mentioned as feature 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)
Description
【0001】
【産業上の利用分野】本発明は除算回路の前処理装置に
係り、特に1度にnビット(n≧2)の部分商を求める
高基数除算方式を採用する除算回路の前処理装置に関す
る。
係り、特に1度にnビット(n≧2)の部分商を求める
高基数除算方式を採用する除算回路の前処理装置に関す
る。
【0002】除算演算は大きく分けて、前処理、本処
理、後処理の3部分からなる。ここで前処理は、オペラ
ンドデータを本処理が適用できる様な形に直すもので、
本処理は商及び剰余を実際に求める。本処理の出力を結
果の所定の形式にするのが後処理である。
理、後処理の3部分からなる。ここで前処理は、オペラ
ンドデータを本処理が適用できる様な形に直すもので、
本処理は商及び剰余を実際に求める。本処理の出力を結
果の所定の形式にするのが後処理である。
【0003】
【従来の技術】上述した除算装置における前処理は、本
処理の方式により異なるが、本処理の方式として最も知
られているのは、部分剰余から除数を一回引いて部分商
を1ビット求め、引き算の結果あるいは元の部分剰余を
1ビットシフトしたものを新たな部分剰余とする方法で
ある(以下、これを1ビット方式と呼ぶ)。これに対し
て高基数除算方式はnビットの部分商を一度に求めるも
のである。
処理の方式により異なるが、本処理の方式として最も知
られているのは、部分剰余から除数を一回引いて部分商
を1ビット求め、引き算の結果あるいは元の部分剰余を
1ビットシフトしたものを新たな部分剰余とする方法で
ある(以下、これを1ビット方式と呼ぶ)。これに対し
て高基数除算方式はnビットの部分商を一度に求めるも
のである。
【0004】ここで1ビット方式では、前処理として除
数、被除数とも最上ビットが“1”になるように正規化
シフトを行うものである。この処理は図6に示す前処理
装置により実現されている。この前処理装置は、入力さ
れる除数又は被除数を選択するセレクタ11と、除数及
び被除数の先頭にある“0”を記載してたビットの数を
計数するゼロカウンタ12と、計数しただけのゼロビッ
トをシフトして最上ビットが“1となるようにするシフ
タ13とから構成され、ゼロカウンタ12が計測し、シ
フタ13がシフトした0表示ビット数と、正規化した除
数及び被除数とを本処理装置に出力する。
数、被除数とも最上ビットが“1”になるように正規化
シフトを行うものである。この処理は図6に示す前処理
装置により実現されている。この前処理装置は、入力さ
れる除数又は被除数を選択するセレクタ11と、除数及
び被除数の先頭にある“0”を記載してたビットの数を
計数するゼロカウンタ12と、計数しただけのゼロビッ
トをシフトして最上ビットが“1となるようにするシフ
タ13とから構成され、ゼロカウンタ12が計測し、シ
フタ13がシフトした0表示ビット数と、正規化した除
数及び被除数とを本処理装置に出力する。
【0005】これにより例えば“0111”÷“001
1”は以下の手順で計算できる。先ず、除数Y=001
1と被除数X=0111を正規化して1100と111
0とを得る。この時のシフト量をsaY,saXとする
と、saY=2、saX=1となる。
1”は以下の手順で計算できる。先ず、除数Y=001
1と被除数X=0111を正規化して1100と111
0とを得る。この時のシフト量をsaY,saXとする
と、saY=2、saX=1となる。
【0006】本処理装置では、図7に示すように、2進
整数として除算を行い、被除数Xの左ビットを第0ビッ
トとすると、商は第3ビットから(saY−saX+
1)だけ、即ち本例では2ビットだけ求め、第3ビット
の左には(3−saY+saX)個、即ち本例では2個
の0をつめ、商を0010と得る。
整数として除算を行い、被除数Xの左ビットを第0ビッ
トとすると、商は第3ビットから(saY−saX+
1)だけ、即ち本例では2ビットだけ求め、第3ビット
の左には(3−saY+saX)個、即ち本例では2個
の0をつめ、商を0010と得る。
【0007】そして剰余は第(−saX)ビット、本例
では第(−1)ビットから4ビット分即ち0001とな
る。
では第(−1)ビットから4ビット分即ち0001とな
る。
【0008】
【発明が解決しようとする課題】ところで、上述した除
算装置における前処理装置にあっては、高基数除算を行
い、商及び剰余の両者を同時に求めたい時には不具合が
生じることがある。これは、剰余を得るためには、商の
算出を決められた桁で打ち切る必要があるが、この決め
られた桁がまとまったn桁中の最終桁でない桁になる場
合がある。具体的には、図8に示すように、1011÷
0011を1度に2ビットずつの商を求める高基数方式
で計算してみる。(saY−saX+1)=3となるの
で、高基数方式で第3、第4ビットを同時に求めたのち
第5ビットだけを求めたいが、第5、第6ビットを同時
に求めてしまうと、第6ビットの商がたってしまう。商
だけを求めるのであれば、第6ビットを切り捨ててしま
えばよいが、剰余を求めるには、その後の第6ビットの
商の分を引きすぎているため補正を行う必要がある。
算装置における前処理装置にあっては、高基数除算を行
い、商及び剰余の両者を同時に求めたい時には不具合が
生じることがある。これは、剰余を得るためには、商の
算出を決められた桁で打ち切る必要があるが、この決め
られた桁がまとまったn桁中の最終桁でない桁になる場
合がある。具体的には、図8に示すように、1011÷
0011を1度に2ビットずつの商を求める高基数方式
で計算してみる。(saY−saX+1)=3となるの
で、高基数方式で第3、第4ビットを同時に求めたのち
第5ビットだけを求めたいが、第5、第6ビットを同時
に求めてしまうと、第6ビットの商がたってしまう。商
だけを求めるのであれば、第6ビットを切り捨ててしま
えばよいが、剰余を求めるには、その後の第6ビットの
商の分を引きすぎているため補正を行う必要がある。
【0009】商を第2ビットから求めるようにするとこ
の例はうまく行くようになるが、例えば、1011÷0
110を計算するときに、図9に示すように、商の算出
を第4ビットで止めたいのに第5ビットまで求めてしま
うこととなる。高基数除算においてはこのような問題が
あるため、従来では、求めるべき商のビット数をnの倍
数に成るようにマイクロプログラムで補正してから被除
数のシフトを行うものとしている。
の例はうまく行くようになるが、例えば、1011÷0
110を計算するときに、図9に示すように、商の算出
を第4ビットで止めたいのに第5ビットまで求めてしま
うこととなる。高基数除算においてはこのような問題が
あるため、従来では、求めるべき商のビット数をnの倍
数に成るようにマイクロプログラムで補正してから被除
数のシフトを行うものとしている。
【0010】しかしながら、このようなマイクロプログ
ラムによる補正を行うと、その処理に数マシンサイクル
の時間がかかり除算の性能の低下をもたらしている。そ
こで、本発明は高基数除算の前処理を高速に行うことが
できる除算回路の前処理装置を提供することを目的とす
る。
ラムによる補正を行うと、その処理に数マシンサイクル
の時間がかかり除算の性能の低下をもたらしている。そ
こで、本発明は高基数除算の前処理を高速に行うことが
できる除算回路の前処理装置を提供することを目的とす
る。
【0011】
【課題を解決するための手段】本発明において、上記の
課題を解決するための手段は、図1に示すように、一度
にnビット(n≧2)の部分商を求める高基数除算方式
を採用する除算装置の前処理装置であって、入力された
除数及び被除数の先頭の連続する0ビットの内、nビッ
トを1単位とした時、連続する0ビットが何単位あるか
を計数する第1のゼロカウンタ1と、前記第1のゼロカ
ウンタ1によって除数及び被除数から求められた単位数
×nビットを、前記除数及び被除数についてシフトする
第1のシフタ2と、前記第1のシフタ2によってシフト
された除数の先頭の連続して0ビットを指示するビット
数を計数する第2のカウンタ3と、前記第2のカウンタ
の値を格納するラッチ4と、前記第2のカウンタ3又
は、前記ラッチ4から出力される数に応じて、前記第1
のシフタ2によってシフトされた除数又は、被除数をシ
フトする第2のシフタ5を有し、前記第2のカウンタ3
で除数の連続する0ビットを計数し、その計数値をラッ
チに格納した後に、被除数について第1のシフタから出
力されたシフトされた被除数を前記ラッチ4に格納され
た値に基づき第2のシフタ5)でシフトして、除数及び
被除数を正規化し、正規化された除数及び被除数と各シ
フト数を出力するようにしたことである。
課題を解決するための手段は、図1に示すように、一度
にnビット(n≧2)の部分商を求める高基数除算方式
を採用する除算装置の前処理装置であって、入力された
除数及び被除数の先頭の連続する0ビットの内、nビッ
トを1単位とした時、連続する0ビットが何単位あるか
を計数する第1のゼロカウンタ1と、前記第1のゼロカ
ウンタ1によって除数及び被除数から求められた単位数
×nビットを、前記除数及び被除数についてシフトする
第1のシフタ2と、前記第1のシフタ2によってシフト
された除数の先頭の連続して0ビットを指示するビット
数を計数する第2のカウンタ3と、前記第2のカウンタ
の値を格納するラッチ4と、前記第2のカウンタ3又
は、前記ラッチ4から出力される数に応じて、前記第1
のシフタ2によってシフトされた除数又は、被除数をシ
フトする第2のシフタ5を有し、前記第2のカウンタ3
で除数の連続する0ビットを計数し、その計数値をラッ
チに格納した後に、被除数について第1のシフタから出
力されたシフトされた被除数を前記ラッチ4に格納され
た値に基づき第2のシフタ5)でシフトして、除数及び
被除数を正規化し、正規化された除数及び被除数と各シ
フト数を出力するようにしたことである。
【0012】
【作用】本発明によれば、除数及び被除数は、第1のゼ
ロカウンタにより先頭の連続する0ビットの内、nビッ
トを1単位とした時、連続する0ビットが何単位あるか
を計数すされて、第1のシフタによってnビットを単位
として単位数×nビットを、前記除数及び被除数につい
てシフトされると共に、第1のシフタによってシフトさ
れた除数は第2のゼロカウンタによって残余の先頭0表
示ビットの数を計測され、第2のシフタによって先頭ビ
ットが1表示となるように正規化される。また、被除数
はラッチ4が格納した第2のゼロカウンタの除数の先頭
0表示ビット数、即ち、除数のシフト数だけ第2のシフ
タによってシフトされる。従って除数のシフト数と被除
数のシフト数の差は、常にnの整数倍数となる。よって
商の桁数もnの整数倍数となり、除算は所定の桁で終了
することができ、必要となる剰余を商と同時に得ること
ができる。
ロカウンタにより先頭の連続する0ビットの内、nビッ
トを1単位とした時、連続する0ビットが何単位あるか
を計数すされて、第1のシフタによってnビットを単位
として単位数×nビットを、前記除数及び被除数につい
てシフトされると共に、第1のシフタによってシフトさ
れた除数は第2のゼロカウンタによって残余の先頭0表
示ビットの数を計測され、第2のシフタによって先頭ビ
ットが1表示となるように正規化される。また、被除数
はラッチ4が格納した第2のゼロカウンタの除数の先頭
0表示ビット数、即ち、除数のシフト数だけ第2のシフ
タによってシフトされる。従って除数のシフト数と被除
数のシフト数の差は、常にnの整数倍数となる。よって
商の桁数もnの整数倍数となり、除算は所定の桁で終了
することができ、必要となる剰余を商と同時に得ること
ができる。
【0013】
【実施例】以下本発明に係る除算回路の前処理装置の実
施例を図面に基づいて説明する。図2乃至図5は本発明
に係る除算回路の前処理装置の実施例を示すものであ
る。本実施例において除算回路の前処理装置は、図3に
示すように、入力される除数及び被除数のうち一方を選
択する第1のセレクタ6と、入力された除数及び被除数
の先頭の連続する0ビットの内、nビットを1単位とし
た時、連続する0ビットが何単位あるかを計数する第1
のゼロカウンタ1と、この計数に基づき除数及び被除数
のnビット単位のシフトをおこなう第1のシフタ2と、
第1の正規化が終了した除数の先頭0指示ビット数bs
aYを計数する第2のゼロカウンタ3と、このゼロカウ
ンタの値を格納するラッチ4と、ラッチ4の出力と、上
記第2のゼロカウンタ3の出力を選択して出力する第2
のセレクタ7と、このセレクタの出力を受け、計測した
除数のnビット未満のシフトと、被除数の上記ラッチ4
が格納した数のシフトを行う第2のシフタ5とから成
り、正規化した被除数X及び除数Yと各シフト数を出力
するものである。
施例を図面に基づいて説明する。図2乃至図5は本発明
に係る除算回路の前処理装置の実施例を示すものであ
る。本実施例において除算回路の前処理装置は、図3に
示すように、入力される除数及び被除数のうち一方を選
択する第1のセレクタ6と、入力された除数及び被除数
の先頭の連続する0ビットの内、nビットを1単位とし
た時、連続する0ビットが何単位あるかを計数する第1
のゼロカウンタ1と、この計数に基づき除数及び被除数
のnビット単位のシフトをおこなう第1のシフタ2と、
第1の正規化が終了した除数の先頭0指示ビット数bs
aYを計数する第2のゼロカウンタ3と、このゼロカウ
ンタの値を格納するラッチ4と、ラッチ4の出力と、上
記第2のゼロカウンタ3の出力を選択して出力する第2
のセレクタ7と、このセレクタの出力を受け、計測した
除数のnビット未満のシフトと、被除数の上記ラッチ4
が格納した数のシフトを行う第2のシフタ5とから成
り、正規化した被除数X及び除数Yと各シフト数を出力
するものである。
【0014】従って、本実施例によれば、例えば、000
010 111 010 ÷000 000 001 001 を3を基数とする高基
数除算を行うときには、まず第1のセレクタ6が除数00
0 000 001 001 を選択し、第1のゼロカウンタ1に送出
する。第1のゼロカウンタ1はn=3を1単位として何
単位の0ビットが先頭からあるかをカウントしてシフト
単位量nsaY=2を得て、第1のシフタ2に送出す
る。これば即ち、3つ連続する0ビット「000 」がいく
つあるかを計数するもので同様に000 000 001 111 を入
力した場合にもnsaY=2を得るものである。
010 111 010 ÷000 000 001 001 を3を基数とする高基
数除算を行うときには、まず第1のセレクタ6が除数00
0 000 001 001 を選択し、第1のゼロカウンタ1に送出
する。第1のゼロカウンタ1はn=3を1単位として何
単位の0ビットが先頭からあるかをカウントしてシフト
単位量nsaY=2を得て、第1のシフタ2に送出す
る。これば即ち、3つ連続する0ビット「000 」がいく
つあるかを計数するもので同様に000 000 001 111 を入
力した場合にもnsaY=2を得るものである。
【0015】すると第1のシフタ2は、除数を(n×n
saY)ビット、即ち3×2=6ビットシフトして、00
1 001 000 000 とし、第2のゼロカウンタ3に送出す
る。第2のゼロカウンタでは、第1のシフタでシフトさ
れた除数のゼロ表示ビットをカウントし、シフト数2を
得てラッチ4と第2のシフタ5に送出する。第2のシフ
タ5は、2ビットシフトを行い100 100 000 000 と第1
回のシフト単位数nsaY=2と第2回のシフト数bs
aY=2を出力する。
saY)ビット、即ち3×2=6ビットシフトして、00
1 001 000 000 とし、第2のゼロカウンタ3に送出す
る。第2のゼロカウンタでは、第1のシフタでシフトさ
れた除数のゼロ表示ビットをカウントし、シフト数2を
得てラッチ4と第2のシフタ5に送出する。第2のシフ
タ5は、2ビットシフトを行い100 100 000 000 と第1
回のシフト単位数nsaY=2と第2回のシフト数bs
aY=2を出力する。
【0016】次に被除数の正規化を行うため、第1のセ
レクタ6は、被除数000 010 111 010 を選択して、第1
のゼロカウンタ1に入力する第1のゼロカウンタ1はn
=3を1単位としてシフト単位数をカウントしてシフト
単位数nsaX=1を得て、第1のシフタ2に送出す
る。すると第1のシフタ2は、被除数を3ビットシフト
して、001 001 000 000 とし、第2のゼロカウンタ3に
送出する。この時第2のセレクタ7はラッチ4を選択し
ておりシフト数2を得てラッチ4と第2のシフタ5に送
出する。第2のシフタ5は、2ビットシフトを行い被除
数01 011 101 000000と第1回のシフト単位数nsaX
=1を出力する。
レクタ6は、被除数000 010 111 010 を選択して、第1
のゼロカウンタ1に入力する第1のゼロカウンタ1はn
=3を1単位としてシフト単位数をカウントしてシフト
単位数nsaX=1を得て、第1のシフタ2に送出す
る。すると第1のシフタ2は、被除数を3ビットシフト
して、001 001 000 000 とし、第2のゼロカウンタ3に
送出する。この時第2のセレクタ7はラッチ4を選択し
ておりシフト数2を得てラッチ4と第2のシフタ5に送
出する。第2のシフタ5は、2ビットシフトを行い被除
数01 011 101 000000と第1回のシフト単位数nsaX
=1を出力する。
【0017】このように本実施例によれば除数と、被除
数のシフト数の差は8−5=3と3の倍数になってい
る。この関係は常に成立し、演算された商のビット数が
3の倍数となり、所定の桁で除算を停止でき、正しい剰
余を得ることができる。即ち、除数は(3×l+m)ビ
ットシフトされ、また被除数は(3×l’+m)ビット
シフトされるから(l,l’は第1のシフタでのシフト
単位数を示し、mは第2のシフタでのシフト数を示し、
l,l’,mは整数)シフト数の差は(3×l+m)−
(3×l’+m)=3(l−l’)となり、本例の基数
n=3の倍数となる。
数のシフト数の差は8−5=3と3の倍数になってい
る。この関係は常に成立し、演算された商のビット数が
3の倍数となり、所定の桁で除算を停止でき、正しい剰
余を得ることができる。即ち、除数は(3×l+m)ビ
ットシフトされ、また被除数は(3×l’+m)ビット
シフトされるから(l,l’は第1のシフタでのシフト
単位数を示し、mは第2のシフタでのシフト数を示し、
l,l’,mは整数)シフト数の差は(3×l+m)−
(3×l’+m)=3(l−l’)となり、本例の基数
n=3の倍数となる。
【0018】次に本実施例に係る除算回路の前処理装置
を使用した除算回路の例を説明する。前処理装置は上述
したもの同一であるのでその説明は省略する。図3は上
述した除算回路の前処理装置を使用した除算装置を示す
ものである。図において21は第1のゼロカウンタ1が
カウントした被除数の第1のシフト量nsaXを格納す
るラッチ、22は除数の第1のシフト量nsaYを格納
するラッチ、23は被除数及び除数の2回めのシフト数
bsaYを格納するラッチ、24は正規化された除数を
格納するYレジスタ、25は正規化された被除数を格納
するXレジスタを示している。また26はnsaX−n
saYを計算する減算器、27は商及び剰余を算出する
本処理装置、28は本処理装置27が算出した商を格納
する商レジスタ、29は商レジスタの格納した商を上記
減算器の値に基づいて右シフトする右シフタ、30はX
レジスタに格納した剰余をnsaX及びbsaYの値に
基づいて右シフトする右シフタ、31はXレジスタへ本
処理装置からの剰余を格納するための第3のセレクタで
ある。
を使用した除算回路の例を説明する。前処理装置は上述
したもの同一であるのでその説明は省略する。図3は上
述した除算回路の前処理装置を使用した除算装置を示す
ものである。図において21は第1のゼロカウンタ1が
カウントした被除数の第1のシフト量nsaXを格納す
るラッチ、22は除数の第1のシフト量nsaYを格納
するラッチ、23は被除数及び除数の2回めのシフト数
bsaYを格納するラッチ、24は正規化された除数を
格納するYレジスタ、25は正規化された被除数を格納
するXレジスタを示している。また26はnsaX−n
saYを計算する減算器、27は商及び剰余を算出する
本処理装置、28は本処理装置27が算出した商を格納
する商レジスタ、29は商レジスタの格納した商を上記
減算器の値に基づいて右シフトする右シフタ、30はX
レジスタに格納した剰余をnsaX及びbsaYの値に
基づいて右シフトする右シフタ、31はXレジスタへ本
処理装置からの剰余を格納するための第3のセレクタで
ある。
【0019】各ラッチ21,22,23及びレジスタ2
4、25がnsaX、nsaY、bsaY,X及びYを
格納すると、減算器26により、nsaY−nsaXを
計算することにより、商算出のための繰り返し回数ns
aX−nsaY+1を定める。これにより、本処理装置
は計算を行い、各処理毎に商と中間剰余が求まりそれぞ
れ商レジスタ28とXレジスタ25に格納され、所定回
数が終了した後、商が商レジスタ28に剰余がXレジス
タ25に格納されていることとなる。
4、25がnsaX、nsaY、bsaY,X及びYを
格納すると、減算器26により、nsaY−nsaXを
計算することにより、商算出のための繰り返し回数ns
aX−nsaY+1を定める。これにより、本処理装置
は計算を行い、各処理毎に商と中間剰余が求まりそれぞ
れ商レジスタ28とXレジスタ25に格納され、所定回
数が終了した後、商が商レジスタ28に剰余がXレジス
タ25に格納されていることとなる。
【0020】この商と剰余は正規化された被除数及び除
数に対するものであるため、これを各右シフタ29,3
0により、商を〔n×(nsaX−nsaY)+a〕ビ
ット、剰余を(n×nsaX+bsaY+b)ビット右
シフトして商と剰余を得ることができる。尚、a,bは
除数と被除数の位取り及びその他の条件により定まる定
数である。
数に対するものであるため、これを各右シフタ29,3
0により、商を〔n×(nsaX−nsaY)+a〕ビ
ット、剰余を(n×nsaX+bsaY+b)ビット右
シフトして商と剰余を得ることができる。尚、a,bは
除数と被除数の位取り及びその他の条件により定まる定
数である。
【0021】次にn=2として、具体的な計算について
説明する。図4に示すように、1011÷0011を計
算するとき除数の第1のシフト数nsaY=1、除数の
第1のシフト数nsaX=0、除数の第2シフト数bs
aY=0であるから、演算回数nsaY−nsaX+1
は2となり、また商数は0011、余りは0010とな
る。また同様に、1011÷0110は、図5に示すよ
うに、除数の第1のシフト数nsaY=0、被除数の第
1のシフト数nsaX=0、被除数の第2シフト数bs
Y=1であるから、演算回数nsaY−nsaX+1は
1となり、また商は0で0001、余りは0101とな
る。
説明する。図4に示すように、1011÷0011を計
算するとき除数の第1のシフト数nsaY=1、除数の
第1のシフト数nsaX=0、除数の第2シフト数bs
aY=0であるから、演算回数nsaY−nsaX+1
は2となり、また商数は0011、余りは0010とな
る。また同様に、1011÷0110は、図5に示すよ
うに、除数の第1のシフト数nsaY=0、被除数の第
1のシフト数nsaX=0、被除数の第2シフト数bs
Y=1であるから、演算回数nsaY−nsaX+1は
1となり、また商は0で0001、余りは0101とな
る。
【0022】従って、本実施例によれば、除数のシフト
数と被除数のシフト数の差は、常にnの整数倍数とな
り。商の桁数もnの整数倍数となり、除算は所定の桁で
終了することができ、必要となる剰余を商と同時に得る
ことができる。
数と被除数のシフト数の差は、常にnの整数倍数とな
り。商の桁数もnの整数倍数となり、除算は所定の桁で
終了することができ、必要となる剰余を商と同時に得る
ことができる。
【0023】
【発明の効果】以上説明したように、本発明によれば、
除数及び被除数は、第1のゼロカウンタによりnビット
を1単位として先頭0表示ビットのビット数を計測し
て、第1のシフタによってnビットを単位としてシフト
されると共に、第1のシフタによってシフトされた除数
は第2のゼロカウンタによって残余の先頭0表示ビット
の数を計測され、第2のシフタによって先頭ビットが1
表示となるように正規化されまた、被除数はラッチが格
納した第2のゼロカウンタの除数の先頭0表示ビット
数、即ち、除数のシフト数だけ第2のシフタによってシ
フトされる。従って除数のシフト数と被除数のシフト数
の差は、常にnの整数倍数となり商の桁数もnの整数倍
数となり、除算は所定の桁で終了することができ、必要
となる剰余を商と同時に得ることができる。そしてこの
除算回路の前処理装置はハードウエアで実現しているか
ら除算処理を高速に行うことができることとなり、計算
機全体の性能の向上させることができるという効果を奏
する。
除数及び被除数は、第1のゼロカウンタによりnビット
を1単位として先頭0表示ビットのビット数を計測し
て、第1のシフタによってnビットを単位としてシフト
されると共に、第1のシフタによってシフトされた除数
は第2のゼロカウンタによって残余の先頭0表示ビット
の数を計測され、第2のシフタによって先頭ビットが1
表示となるように正規化されまた、被除数はラッチが格
納した第2のゼロカウンタの除数の先頭0表示ビット
数、即ち、除数のシフト数だけ第2のシフタによってシ
フトされる。従って除数のシフト数と被除数のシフト数
の差は、常にnの整数倍数となり商の桁数もnの整数倍
数となり、除算は所定の桁で終了することができ、必要
となる剰余を商と同時に得ることができる。そしてこの
除算回路の前処理装置はハードウエアで実現しているか
ら除算処理を高速に行うことができることとなり、計算
機全体の性能の向上させることができるという効果を奏
する。
【図1】本発明の原理を示す図である。
【図2】本発明に係る除算回路の前処理装置の実施例を
示す図である。
示す図である。
【図3】本発明に係る除算回路の前処理装置を使用した
除算装置を示す図である。
除算装置を示す図である。
【図4】実施例に係る除算回路の前処理装置の作動を示
す図である。
す図である。
【図5】実施例に係る除算回路の前処理装置の作動を示
す図である。
す図である。
【図6】従来の除算回路の前処理装置を示す図である。
【図7】従来の除算回路の前処理装置の作動を示す図で
ある。
ある。
【図8】従来の除算回路の前処理装置の作動を示す図で
ある。
ある。
【図9】従来の除算回路の前処理装置の作動を示す図で
ある。
ある。
1 第1のゼロカウンタ 2 第1のシフタ 3 第2のゼロカウンタ 4 ラッチ 5 第2のシフタ
Claims (1)
- 【請求項1】一度にnビット(n≧2)の部分商を求め
る高基数除算方式を採用する除算装置の前処理装置であ
って、入力された除数及び被除数の先頭の連続する0ビ
ットの内、nビットを1単位とした時、連続する0ビッ
トが何単位あるかを計数する第1のゼロカウンタ(1)
と、前記第1のゼロカウンタ(1)によって除数及び被
除数から求められた単位数×nビットを、前記除数及び
被除数についてシフトする第1のシフタ(2)と、前記
第1のシフタ(2)によってシフトされた除数の先頭の
連続して0ビットを指示するビット数を計数する第2の
カウンタ(3)と、前記第2のカウンタの値を格納する
ラッチ(4)と、前記第2のカウンタ(3)又は、前記
ラッチ(4)から出力される数に応じて、前記第1のシ
フタ(2)によってシフトされた除数又は、被除数をシ
フトする第2のシフタ(5)を有し、前記第2のカウン
タ(3)で除数の連続する0ビットを計数し、その計数
値をラッチに格納した後に、被除数について第1のシフ
タから出力されたシフトされた被除数を前記ラッチ
(4)に格納された値に基づき第2のシフタ(5)でシ
フトして、除数及び被除数を正規化し、正規化された除
数及び被除数と各シフト数を出力することを特徴とする
除算回路の前処理装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3078265A JP2502836B2 (ja) | 1991-03-19 | 1991-03-19 | 除算回路の前処理装置 |
EP92302363A EP0505175B1 (en) | 1991-03-19 | 1992-03-19 | Preprocessor of a division device employing a high radix division system |
DE69228400T DE69228400T2 (de) | 1991-03-19 | 1992-03-19 | Vorprozessor für Dividierer unter Verwendung eines Divisionssystems mit hoher Grundzahl |
US08/071,341 US5339267A (en) | 1991-03-19 | 1993-06-02 | Preprocessor of division device employing high radix division system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3078265A JP2502836B2 (ja) | 1991-03-19 | 1991-03-19 | 除算回路の前処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04291418A JPH04291418A (ja) | 1992-10-15 |
JP2502836B2 true JP2502836B2 (ja) | 1996-05-29 |
Family
ID=13657154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3078265A Expired - Fee Related JP2502836B2 (ja) | 1991-03-19 | 1991-03-19 | 除算回路の前処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5339267A (ja) |
EP (1) | EP0505175B1 (ja) |
JP (1) | JP2502836B2 (ja) |
DE (1) | DE69228400T2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2846816B2 (ja) * | 1994-09-13 | 1999-01-13 | 三洋電機株式会社 | ディジタル信号処理装置 |
DE69529047D1 (de) * | 1994-10-05 | 2003-01-16 | Ibm | Festkomma-Dividiervorrichtung ohne Rückstellung |
US5696713A (en) * | 1995-08-21 | 1997-12-09 | International Business Machines Corporation | Method for faster division by known divisor while maintaining desired accuracy |
US5825681A (en) * | 1996-01-24 | 1998-10-20 | Alliance Semiconductor Corporation | Divider/multiplier circuit having high precision mode |
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 |
KR100505134B1 (ko) * | 2003-06-10 | 2005-08-02 | 한국과학기술원 | 3차원 컴퓨터 그래픽 시스템의 제산유니트 |
US7539720B2 (en) * | 2004-12-15 | 2009-05-26 | Sun Microsystems, Inc. | Low latency integer divider and integration with floating point divider and method |
US8452831B2 (en) * | 2009-03-31 | 2013-05-28 | Oracle America, Inc. | Apparatus and method for implementing hardware support for denormalized operands for floating-point divide operations |
JP5397061B2 (ja) | 2009-07-21 | 2014-01-22 | 富士通株式会社 | 演算処理装置、その制御方法および演算処理プログラム |
US9086890B2 (en) | 2012-01-06 | 2015-07-21 | Oracle International Corporation | Division unit with normalization circuit and plural divide engines for receiving instructions when divide engine availability is indicated |
US20160034256A1 (en) * | 2014-08-01 | 2016-02-04 | Imagination Technologies, Limited | Fast integer division |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1231455A (en) * | 1984-04-09 | 1988-01-12 | Masayuki Ikeda | Nonrestoring divider |
JPH0831029B2 (ja) * | 1989-07-11 | 1996-03-27 | 日本電気株式会社 | 除算用近似逆数生成装置 |
-
1991
- 1991-03-19 JP JP3078265A patent/JP2502836B2/ja not_active Expired - Fee Related
-
1992
- 1992-03-19 EP EP92302363A patent/EP0505175B1/en not_active Expired - Lifetime
- 1992-03-19 DE DE69228400T patent/DE69228400T2/de not_active Expired - Fee Related
-
1993
- 1993-06-02 US US08/071,341 patent/US5339267A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69228400D1 (de) | 1999-03-25 |
EP0505175A3 (en) | 1993-02-03 |
DE69228400T2 (de) | 1999-06-24 |
US5339267A (en) | 1994-08-16 |
JPH04291418A (ja) | 1992-10-15 |
EP0505175B1 (en) | 1999-02-10 |
EP0505175A2 (en) | 1992-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR940008615B1 (ko) | 고기수제산기 | |
JP2502836B2 (ja) | 除算回路の前処理装置 | |
US20090172069A1 (en) | Method and apparatus for integer division | |
US4692891A (en) | Coded decimal non-restoring divider | |
JP5397061B2 (ja) | 演算処理装置、その制御方法および演算処理プログラム | |
US20060129625A1 (en) | Low latency integer divider and integration with floating point divider and method | |
US20060179098A1 (en) | System and method for reduction of leading zero detect for decimal floating point numbers | |
US20120131078A1 (en) | Arithmetic device | |
JPH02194430A (ja) | 除算器 | |
JPH04355827A (ja) | 開平演算装置 | |
JPH0346024A (ja) | 浮動小数点演算器 | |
JPH0342715A (ja) | 除算用近似逆数生成装置 | |
JPS58132837A (ja) | 10進除算装置 | |
JPH0831024B2 (ja) | 演算プロセッサ | |
JP3415569B2 (ja) | 10進データ除算方法およびそのプログラム記録媒体 | |
JP2508286B2 (ja) | 平方根演算装置 | |
JP2000010763A (ja) | 除算回路 | |
JP3477866B2 (ja) | 除算器の除算方法 | |
JP3539077B2 (ja) | 並列演算方式による除算方法 | |
JP2591250B2 (ja) | データ処理装置 | |
KR100265358B1 (ko) | 고속의쉬프팅장치 | |
JP2010033275A (ja) | データ処理方法及びデータ処理プロセッサ | |
SU748409A1 (ru) | Устройство дл умножени двоично- дес тичных чисел | |
JPH0553759A (ja) | 固定小数点演算ユニツト | |
JPH01304535A (ja) | 除算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19960123 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080313 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090313 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100313 Year of fee payment: 14 |
|
LAPS | Cancellation because of no payment of annual fees |