JPH0721012A - 割り算器 - Google Patents

割り算器

Info

Publication number
JPH0721012A
JPH0721012A JP5164485A JP16448593A JPH0721012A JP H0721012 A JPH0721012 A JP H0721012A JP 5164485 A JP5164485 A JP 5164485A JP 16448593 A JP16448593 A JP 16448593A JP H0721012 A JPH0721012 A JP H0721012A
Authority
JP
Japan
Prior art keywords
value
integer
bit
multiplication
subtraction
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.)
Withdrawn
Application number
JP5164485A
Other languages
English (en)
Inventor
Mitsuyoshi Yao
光善 八尾
Koichi Ueda
孝一 上田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP5164485A priority Critical patent/JPH0721012A/ja
Priority to US08/214,315 priority patent/US5485414A/en
Publication of JPH0721012A publication Critical patent/JPH0721012A/ja
Withdrawn legal-status Critical Current

Links

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
    • G06F7/535Dividing only
    • 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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • 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)
  • 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)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】本発明は、割り切れることが保証されている整
数a÷整数bの割り算値cを算出する割り算器に関し、
高速な割り算処理の実行を目的とする。 【構成】下位に位置する同一個数の0値のビットを削除
することで新たな整数a/整数bを設定する設定手段10
と、nビットの全パターン値と整数bとの乗算値を算出
する乗算手段11と、整数aを演算対象整数の初期値とし
て用いて、算出された乗算値の内、下位nビットが演算
対象整数の下位nビットと一致するものを特定するとと
もに、演算対象整数とこの特定乗算値との引き算値を算
出する算出手段13と、算出された引き算値が非ゼロのと
きに、引き算値の下位nビットを削除することで新たな
演算対象整数を設定して算出手段13を再起動する起動手
段14と、算出された引き算値がゼロのときに、特定され
た乗算値の算出元のnビット値を下位側から順番に並べ
て出力する出力手段15とを備えるように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、整数間の割り算値を算
出する割り算器に関し、特に、割り切れることが保証さ
れるときにあって、高速に割り算処理を実行できるよう
にする割り算器に関する。
【0002】データ処理の様々な分野で、整数間の割り
算値を算出していくことが要求されている。この割り算
値を算出する割り算器では、データ処理の効率を高める
ためにも、高速に割り算処理を実行可能とする構成の構
築が必要である。
【0003】
【従来の技術】従来の割り算器では、人間が行う割り算
手順と基本的に同じ割り算手順に従って割り算値を算出
するという構成を採っていた。
【0004】すなわち、従来の割り算器では、割られる
整数の上位桁から順番に整数値を選択して、その選択し
た整数値に含まれる割る数の個数を評価していくことを
繰り返し実行していくことで、割り算値を算出していく
という構成を採っていたのである。
【0005】
【発明が解決しようとする課題】しかしながら、このよ
うに、上位桁から割り算を実行していくことで割り算値
を算出していく構成を採っていると、上位桁から選択し
た整数値に含まれる割る数の個数をトライアンドエラー
で評価していく必要があることから、割り算処理に時間
がかかるという問題点があった。すなわち、高速に割り
算値を算出することができないという問題点があったの
である。
【0006】本発明はかかる事情に鑑みてなされたもの
であって、割り切れることが保証されている整数間の割
り算値を算出するときにあって、この割り算処理を高速
に実行できるようにする新たな割り算器の提供を目的と
する。
【0007】
【課題を解決するための手段】図1及び図2に本発明の
原理構成を図示する。図中、1は本発明により構成され
る割り算器であって、割り切れるのが保証されている割
られる整数aと割る整数bとの割り算値cを算出するも
の、2は割り算器1の前段に設けられる前処理手段であ
って、割られる整数Aと割る整数bとの割り算の余りの
整数dを求めて、整数Aからこの余りの整数dを引き算
することにより整数aを求めることで、割られる整数A
と割る整数bとの割り算式を割り切れるのが保証される
割られる整数aと割る整数bとの割り算式に置換するも
のである。
【0008】図1に原理構成を図示する割り算器1は、
設定手段10と、乗算手段11と、乗算値管理手段12
と、算出手段13と、起動手段14と、出力手段15と
を備える。
【0009】この設定手段10は、整数a及び整数bを
変形して新たな整数a及び整数bを設定する。乗算手段
11は、予測商部分値をなすnビットの全ビットパター
ン値と、設定手段10の設定する整数bとの乗算値を算
出する。乗算値管理手段12は、乗算手段11の算出す
る乗算値を予測商部分値に対応付けて管理する。算出手
段13は、乗算値管理手段12に管理される乗算値の
内、下位nビットのビット値が設定されている演算対象
整数の下位nビットのものと一致するものを特定すると
ともに、演算対象整数とこの特定する乗算値との引き算
値を算出する。起動手段14は、新たな演算対象整数を
設定して算出手段13を再起動する。出力手段15は、
算出手段13の特定結果に従って割り算値cを生成して
外部に出力する。
【0010】ここで、算出手段13は、乗算手段11の
算出した乗算値対応に設けられて、演算対象整数と対応
の乗算値との引き算値を算出する減算手段と、この減算
手段の算出する引き算値の内、下位nビットの全てのビ
ット値が0値を示すものを選択して出力する選択手段と
から構成されることがあり、また、乗算手段11の算出
した乗算値の内、下位nビットのビット値が演算対象整
数の下位nビットのものと一致するものを検索する検索
手段と、演算対象整数とこの検索手段の検索する乗算値
との引き算値を算出する減算手段とから構成されること
がある。
【0011】そして、乗算手段11は、予測商部分値を
なすnビットの全ビットパターン値と、設定手段10の
設定する整数bとの乗算値の下位nビットのみを算出す
る構成を採ることがある。このときには、算出手段13
は、乗算値管理手段12に管理されるnビット値の内、
設定されている演算対象整数の下位nビットのものと一
致するものを特定する構成を採り、更に、この算出手段
13の特定するnビット値の算出元となったnビットパ
ターン値と整数bとの乗算値を算出する第2の乗算手段
を備えるとともに、算出手段13は、演算対象整数とこ
の第2の乗算手段の算出する乗算値との引き算値を算出
していく構成を採ることになる。
【0012】図2に原理構成を図示する割り算器1は、
設定手段20と、抽出手段21と、第1の起動手段22
と、引き算手段23と、第2の起動手段24と、出力手
段25とを備える。
【0013】この設定手段20は、整数a及び整数bを
変形して新たな整数a及び整数bを設定する。抽出手段
21は、設定されている演算対象整数の最下位ビットの
ビット値を抽出する。第1の起動手段22は、新たな演
算対象整数を設定して抽出手段21を再起動する。引き
算手段23は、設定されている演算対象整数から設定手
段20の設定する整数bを引き算する。第2の起動手段
24は、新たな演算対象整数を設定して抽出手段21を
再起動する。出力手段25は、抽出手段21の抽出結果
に従って割り算値cを生成して外部に出力する。
【0014】
【作用】図1に原理構成を図示する本発明の割り算器1
では、設定手段10は、後に続く処理を簡略化するため
に、整数bの下位に位置する0値のビットを削除するこ
とで、最下位ビットが1値を示すものとなる新たな整数
bを設定するとともに、整数aの下位に位置するこの削
除個数分の0値のビットを削除することで新たな整数a
を設定する。例えば、整数bが「101000」である
場合には、下位に位置する3個の0値のビットを削除す
ることで新たな整数bを設定するとともに、割り切れる
ことが保証されることで存在する整数aの下位に位置す
る3個の0値のビットを削除することで新たな整数aを
設定するのである。ここで、「奇数÷偶数」は割り切れ
ないものであることから、新たに設定される整数bの最
下位ビットは必ず1値を持つことになる。
【0015】整数a/整数bが設定されると、乗算手段
11は、予測商部分値をなすnビットの全ビットパター
ン値と、設定手段10の設定する整数bとの乗算値を算
出して予測商部分値と対応付けて乗算値管理手段12に
格納する。例えば、「n=2」であるときには、「“0
0”×b」、「“01”×b」、「“10”×b」、
「“11”×b」という4つの乗算値を算出して、これ
らを「“00”」、「“01”」、「“10”」、
「“11”」に夫々対応付けて乗算値管理手段12に格
納するのである。
【0016】続いて、算出手段13は、最初に、整数a
を演算対象整数の初期値として設定して、乗算値管理手
段12に格納される乗算値の内、下位nビットのビット
値が整数aの下位nビットのものと一致するものを特定
するとともに、この特定した乗算値の算出元となったn
ビットパターン値(予測商部分値)を特定する。「a÷
b=c」は「c×b=a」と変形されるものであり、割
り算値cの下位nビットと割る数bとの乗算値の下位n
ビットのビット値は、整数aの下位nビットのビット値
と必ず一致するものであることから、この特定されるn
ビットパターン値(予測商部分値)は、割り算値cの下
位nビットのビット値を表すものとなる。
【0017】算出手段13は、次に、演算対象整数の初
期値である整数aから先に特定した乗算値を引き算す
る。すなわち、「a÷b=c」を求めるときにあって、
割り算値cの下位nビットのビット値mが求められるこ
とで「a÷b=c’+m」が求められたことから、
「(a−m×b)÷b=c’」の関係式に従って、整数
aから先に特定した乗算値(m×b)を引き算するので
ある。
【0018】続いて、起動手段14は、算出手段13の
算出した引き算値がゼロとならないことを判断すると、
算出手段13の引き算処理により0値となる整数a(演
算対象整数の初期値である)の下位nビットを削除する
ことで新たな演算対象整数を設定して算出手段13を再
起動する。
【0019】このようにして再起動されると、今度は、
算出手段13は、最初に、乗算値管理手段12に格納さ
れる乗算値の内、下位nビットのビット値が設定された
演算対象整数の下位nビットのものと一致するものを特
定するとともに、この特定した乗算値の算出元となった
nビットパターン値(予測商部分値)を特定し、次に、
設定された演算対象整数からこの特定した乗算値を引き
算する。そして、起動手段14は、算出手段13の算出
した引き算値がゼロとならないことを判断すると、算出
手段13の引き算処理により0値となる演算対象整数の
下位nビットを削除することで新たな演算対象整数を設
定して算出手段13を再起動する。
【0020】この処理を繰り返していくことで、割り算
値cのnビットパターン値(予測商部分値)を下位側か
ら順番に求めていくときにあって、算出手段13の算出
した引き算値がゼロとなることを判断すると、出力手段
15は、この求めたnビットパターン値を下位側から順
番に並べて出力していくことで割り算値cを出力して処
理を終了する。
【0021】このように、図1に原理構成を図示する割
り算器1では、割り切れることが保証されている整数間
の割り算を実行する場合に、その割り算を乗算に組み直
す構成を採って、下位桁から順番にトライアンドエラー
の処理を用いることなく直接割り算値を算出していく構
成を採ることから、従来よりも高速に割り算値を求める
ことができるのである。
【0022】この構成にあって「n=1」であるときに
は、乗算値管理手段12には、予測商部分値“0”に対
応する「0」と、予測商部分値“1”に対応する「b」
という2種類の乗算値が格納される。そして、算出手段
13は、演算対象整数の最下位ビットが0値であること
で予測商部分値“0”を特定するときには、演算対象整
数をそのまま出力し、一方、演算対象整数の最下位ビッ
トが1値であることで予測商部分値“1”を特定すると
きには、演算対象整数から整数bを引き算して出力して
いく。そして、起動手段14は、算出手段13の出力値
の最下位ビットを削除することで新たな演算対象整数を
設定して算出手段13を再起動していくことになる。
【0023】この「n=1」の構成に従う割り算器1が
図2に原理構成を図示する本発明の割り算器1である
が、「n=1」の特殊性により形式上異なる手段で構成
されることになる。
【0024】図2に原理構成を図示する本発明の割り算
器1では、設定手段20は、図1の設定手段10と同様
に、後に続く処理を簡略化するために、整数bの下位に
位置する0値のビットを削除することで、最下位ビット
が1値を示すものとなる新たな整数bを設定するととも
に、整数aの下位に位置するこの削除個数分の0値のビ
ットを削除することで新たな整数aを設定する。
【0025】整数a/整数bが設定されると、抽出手段
21は、最初に、整数aを演算対象整数の初期値として
設定して、整数aの最下位ビットのビット値を抽出し、
この抽出結果を受けて、第1の起動手段22は、この抽
出されたビット値が0値を示すときには、整数aの最下
位ビットを削除することで新たな演算対象整数を設定し
て抽出手段21を再起動する。
【0026】一方、抽出手段21の抽出結果を受けて、
引き算手段23は、この抽出されたビット値が1値を示
すときには、最初に、演算対象整数の初期値である整数
aから整数bを引き算し、この引き算値を受けて、第2
の起動手段24は、この引き算値がゼロとならないこと
を判断すると、この引き算値の最下位ビットを削除する
ことで新たな演算対象整数を設定して抽出手段21を再
起動する。
【0027】このようにして第1及び第2の起動手段2
2,23から再起動されると、抽出手段21は、今度
は、設定された演算対象整数の最下位ビットのビット値
を抽出し、この抽出結果が0値であるときには、第1の
起動手段22は、設定された演算対象整数の最下位ビッ
トを削除することで新たな演算対象整数を設定して抽出
手段21を再起動する。一方、この抽出結果が1値であ
るときには、引き算手段23が今度は設定された演算対
象整数から整数bを引き算することで引き算値を算出す
るので、第2の起動手段24は、この引き算値の最下位
ビットを削除することで新たな演算対象整数を設定して
抽出手段21を再起動していく。
【0028】この処理を繰り返していくことで、割り算
値cのビット値を下位側から順番に1ビットずつ求めて
いくときにあって、引き算手段23の算出した引き算値
がゼロとなることを判断すると、出力手段25は、抽出
手段21の抽出した0値/1値を下位側から順番に並べ
て出力していくことで割り算値cを出力する。
【0029】このように、図2に原理構成を図示する割
り算器1もまた、割り切れることが保証されている整数
間の割り算を実行する場合に、その割り算を乗算に組み
直して、下位桁から順番にトライアンドエラーの処理を
用いることなく直接割り算値を算出していく構成を採る
ことから、従来よりも高速に割り算値を求めることがで
きるのである。
【0030】
【実施例】以下、実施例に従って本発明を詳細に説明す
る。図1でも説明したように、本発明の割り算器1は、
割り切れることが保証されている整数間の割り算値を算
出する機能を持つものである。
【0031】この本発明の割り算器1を実装するにあた
って、割り切れることが保証されていない場合には、図
1及び図2に示した前処理手段2を備えることが要求さ
れることになる。
【0032】本発明の割り算器1の実施例の説明に入る
前に、この前処理手段2の一構成例について開示してお
く。前処理手段2は、先ず最初に、「2j (modb)」の
剰余テーブルを作成する。ここで、bは割る整数であ
る。
【0033】この剰余テーブルの作成は、特開平2-156
329 号に開示されているように、「x(mody)=z」な
らば「2・x(mody)=2・z(mody)」という性質が
あることを利用すると少ない計算量で実行できる。具体
的に説明すると、「整数b=27」、「j=12」とす
る場合には、「20 (mod27)〜212(mod27)」を計
算することになるが、上述の性質を使って、
【0034】
【数1】
【0035】というように簡単に計算できることにな
る。なお、この剰余テーブルのデータは周期的に変化す
るものであって、「2x (modz)=2y (modz)」とな
る「x,y」が見つかれば、以後計算は不要で、「x〜
y」間のデータを繰り返せば足りる。
【0036】図3に、この剰余テーブルの作成を実現す
るハードウェア機構の一例を図示する。このハードウェ
ア機構は、割る整数bを格納するレジスタ30と、初期
値「1」から更新されていく整数値を格納するレジスタ
31と、レジスタ31の格納値とレジスタ30の格納値
との差分値を算出する減算器32と、レジスタ31の格
納値か減算器32の減算値のいずれか一方を選択出力す
るマルチプレクサ33と、レジスタ30の格納値とレジ
スタ31の格納値との大小を比較して、レジスタ30の
格納値の方が大きい場合にはマルチプレクサ33に対し
てレジスタ31の格納値の選択出力を指示し、逆に、レ
ジスタ31の格納値の方が大きい場合にはマルチプレク
サ33に対して減算器32の減算値の選択出力を指示す
る比較器34と、マルチプレクサ33の出力値を2倍し
てレジスタ31に格納するシフトレジスタ35と、マル
チプレクサ33の出力値を格納する剰余テーブル36と
から構成されている。
【0037】このようにして、剰余テーブル36を作成
すると、前処理手段2は、続いて、割られる整数Aを2
進数で表して、作成した剰余テーブル36の該当するデ
ータを参照することで、「A÷b」の割り算式の余りの
整数dを算出する。
【0038】例えば、「6757÷27」の割り算式の
余りの整数dを算出する場合には、「6757」が、 6757=212+211+29 +26 +25 +22 +20 と表されることで、「6757(mod27)」で表される
余りの整数dが、 6757(mod27)=212(mod27)+211(mod27)
+29 (mod27)+26 (mod27)+25 (mod27)+
2 (mod27)+20 (mod27) と表されるので、上述の〔数1〕式から求まる剰余テー
ブル36のデータを参照して、 6757(mod27)=(19+23+26+10+5+
4+1)(mod 27)=7 と算出するのである。
【0039】このようにして、「A÷b」の割り算式の
余りの整数dを算出すると、前処理手段2は、続いて、
「A−d」を算出して整数aを求めることにより、割り
切れることが保証されていない「A÷b」という割り算
式を、「a÷b」という割り切れることが保証される割
り算式に置き換えて、この置き換えた割り算式を本発明
の割り算器1に入力していくよう処理することになる。
【0040】次に、本発明の割り算器1の一実施例につ
いて説明する。本発明の割り算器1は、ハードウェア構
成でもソフトウェア構成でも実現可能であるが、説明の
便宜上、ソフトウェア構成で実現する場合で説明する。
【0041】図4に、ソフトウェア構成で実現する場合
の本発明の割り算器1の実行する処理フローの一実施例
を図示する。次に、この処理フローに従って、本発明の
割り算器1の実行する割り算処理について詳細に説明す
る。
【0042】本発明の割り算器1は、前処理手段2から
割られる整数aと割る整数bとを受け取ると、図4の処
理フローに示すように、先ず最初に、ステップ1で、整
数bの下位に位置する0値のビットを削除することで、
最下位ビットが1値を示すものとなる新たな整数bを設
定するとともに、整数aの下位に位置するこの削除個数
分の0値のビットを削除することで新たな整数aを設定
する。すなわち、10進数で説明するならば、「400
0÷40」が「400÷4」となるようにと割り算式を
置き換えるのである。ここで、「奇数÷偶数」は割り切
れないものであることから、新たに設定される整数bの
最下位ビットは必ず1値を持つことになる。
【0043】次に、ステップ2で、nビットを単位とし
て「a÷b」の割り算値cを求めるときには、このnビ
ットの全ビットパターン値を図1の乗算値管理手段12
に相当するテーブルに格納する。例えば、「n=4」で
あるときには、図5に示すように、「0000」〜「1111」
の16個のビットパターン値をテーブルに格納するので
ある。この各ビットパターン値が予測商部分値となる。
【0044】続いて、ステップ3で、これらの予測商部
分値と整数bとの乗算値を算出して、これらの乗算値を
予測商部分値に対応付けて上記のテーブルに格納する。
このステップ3の処理に従って、「整数b=23」であ
るときには、図5に示すような乗算値がテーブルに格納
されることになる。
【0045】続いて、ステップ4で、変数「演算対象整
数」に整数aを設定する。続いて、ステップ5で、上記
のテーブルに格納される乗算値の内、下位4ビットのビ
ット値が演算対象整数(この時点では整数a)の下位4
ビットのものと一致するものを検索するとともに、この
検索した乗算値の算出元となった予測商部分値を特定す
る。例えば、「整数a=48553(≡1011 1101 1010
1001)」である場合には、図5のテーブルデータを検索
することで乗算値「1 0101 1001 」を検索するととも
に、予測商部分値「1111」を特定するのである。
【0046】「a÷b=c」は「c×b=a」と変形さ
れるものであり、割り算値cの下位4ビットと割る数b
との乗算値の下位4ビットのビット値は、整数aの下位
4ビットのビット値と必ず一致するものであることか
ら、このようにして特定される予測商部分値は、割り算
値cの下位4ビットのビット値を表すものである。
【0047】続いて、ステップ6で、割り算値cの下位
4ビットのビット値が求められたことに対応して、演算
対象整数とステップ5で検索された乗算値との引き算値
を算出して演算対象整数を更新する。すなわち、「a÷
b=c」を求めるときにあって、割り算値cの下位4ビ
ットのビット値mが求められることで「a÷b=c’+
m」が求められたことから、「(a−m×b)÷b=
c’」の関係式に従って、整数aから先に特定した乗算
値(m×b)を引き算するのである。この算出処理に従
って、上述の例で説明するならば、演算対象整数が
「(1011 1101 1010 1001)−(1 0101 1001) =1011 110
0 0101 0000 」に更新されることになる。
【0048】続いて、ステップ7で、更新された演算対
象整数がゼロに到達したか否かを判断して、ゼロに到達
していないと判断するときには、ステップ8に進んで、
ステップ6の引き算処理により0値となった演算対象整
数の下位4ビットを削除することで新たな演算対象整数
を設定してからステップ5に戻っていき、一方、ゼロに
到達したことを判断するときには、ステップ9に進ん
で、ステップ5で特定された予測商部分値を下位側から
順番に並べて出力していくことで割り算値cを出力して
処理を終了する。このステップ8での設定処理に従っ
て、上述の例で説明するならば、新たな演算対象整数と
して「1011 1100 0101」が設定されてステップ5に戻っ
ていくことになる。
【0049】このようにしてステップ5ないしステップ
8の処理を繰り返していくことで、次には、ステップ5
で、乗算値「100 0101」が検索されるとともに、割り算
値cの次の4ビット値を表す予測商部分値「0011」が特
定され、ステップ6で、演算対象整数が「(1011 1100 0
101)−(100 0101)=1011 1000 0000」に更新され、ステ
ップ8で、演算対象整数が「1011 1000 」に設定され、
続いて、ステップ5で、乗算値「1011 1000 」が検索さ
れるとともに、割り算値cの次の4ビット値を表す予測
商部分値「1000」が特定され、ステップ6で、演算対象
整数が「(10111000) −(1011 1000) =0」に更新され
ることになるので、ステップ9に進んで、割り算値c
「1000 0011 1111」を出力して処理を終了する。
【0050】このように、本発明の割り算器1は、割り
切れることが保証されている整数間の割り算を実行する
場合にあって、その割り算を乗算に組み直す構成を採っ
て、下位桁から順番にトライアンドエラーの処理を用い
ることなく直接割り算値を算出していくよう処理するの
である。
【0051】この図4の処理フローでは、ステップ3
で、予測商部分値と整数bとの乗算値を算出してテーブ
ルに格納していく構成を採ったが、この乗算値の下位4
ビットのビット値のみを算出してテーブルに格納する構
成を採って、ステップ6でもって、ステップ5で特定し
た予測商部分値と整数bとの乗算値を算出することで検
索乗算値を決定していくことで演算対象整数を更新して
いく構成を採ることも可能である。
【0052】また、本発明の割り算器1をハードウェア
構成で実現する場合には、例えば、図6に示すように、
予測商部分値と整数bとの乗算値を格納するレジスタ4
0-i(i=1〜n)と、演算対象整数を格納するレジス
タ41と、レジスタ40-i対応に備えられて、レジスタ
41の演算対象整数と対応の乗算値との引き算値を算出
する減算器42-iと、減算器42-i対応に備えられて、
対応の減算器42-iの算出する引き算値の下位4ビット
がオール0値を示すか否かを検出する検出手段43-i
と、減算器42-iの算出する引き算値を選択するマルチ
プレクサ44と、検出手段43-iの検出結果を入力とし
て、マルチプレクサ44に対して、オール0値を検出す
る検出手段43-iに対応付けられる減算器42-iの引き
算値の選択を指示するセレクタ45とを備える構成を用
いることが可能である。
【0053】図4に示す処理フローは、「n=1」のと
きにもそのまま適用できるものであるが、このときには
上記のテーブルを備える必要もないので形式上異なった
処理を実行することになる。
【0054】図7に、この構成を採る場合の本発明の割
り算器1の実行する処理フローの一実施例を図示する。
次に、この処理フローについて説明する。本発明の割り
算器1は、前処理手段2から割られる整数aと割る整数
bとを受け取ると、図7の処理フローに示すように、先
ず最初に、ステップ1で、整数bの下位に位置する0値
のビットを削除することで、最下位ビットが1値を示す
ものとなる新たな整数bを設定するとともに、整数aの
下位に位置するこの削除個数分の0値のビットを削除す
ることで新たな整数aを設定する。ここで、「奇数÷偶
数」は割り切れないものであることから、新たに設定さ
れる整数bの最下位ビットは必ず1値を持つことにな
る。
【0055】次に、ステップ2で、変数「演算対象整
数」に整数aを設定する。続いて、ステップ3で、演算
対象整数(この時点では整数a)の最下位ビットのビッ
ト値を抽出し、続くステップ4で、この抽出したビット
値が1値であるか否かを判断する。整数bの最下位ビッ
トは上述したように1値を示すものであることから、こ
の時点の判断で抽出ビットが1値を示すときには、割り
算値cの最下位ビットが1値となることを意味し、一
方、この時点の判断で抽出ビットが0値を示すときに
は、割り算値cの最下位ビットが0値となることを意味
する。
【0056】これから、このステップ4で抽出ビットが
1値を示すと判断するときには、ステップ5に進んで、
演算対象整数と整数bとの引き算値を算出して演算対象
整数を更新する。すなわち、「a÷b=c」を求めると
きにあって、割り算値cの最下位ビットのビット値
「1」が求められることで「a÷b=c’+1」が求め
られたことから、「(a−1×b)÷b=c’」の関係
式に従って、整数aから整数bを引き算するのである。
【0057】続いて、ステップ6で、更新された演算対
象整数がゼロに到達したか否かを判断して、ゼロに到達
していないと判断するときには、ステップ7に進んで、
ステップ6の引き算処理により0値となった演算対象整
数の最下位ビットを削除することで新たな演算対象整数
を設定してからステップ3に戻っていく。一方、ステッ
プ4で抽出ビットが0値を示すと判断するときには、ス
テップ5/ステップ6の処理を省略して、直ちに、ステ
ップ7に進んで、0値を示す演算対象整数の最下位ビッ
トを削除することで新たな演算対象整数を設定してから
ステップ3に戻っていく。そして、ステップ6で、更新
された演算対象整数がゼロに到達したことを判断すると
きには、ステップ8に進んで、ステップ3で抽出したビ
ット値を下位側から順番に並べて出力していくことで割
り算値cを出力して処理を終了する。
【0058】この図7の処理フローを実行することで、
「6750(≡1 1010 0101 1110)÷27(≡1 101
1)」という割り算処理の割り算値cは、先ず最初に、
整数a「1 1010 0101 1110」の最下位ビットが0値であ
るので、その最下位ビットが0値として求まって、演算
対象整数が「1101 0010 1111」に設定され、続いて、こ
の演算対象整数「1101 0010 1111」の最下位ビットが1
値であるので、その次のビットが1値として求まって、
演算対象整数が「(1101 0010 1111 −1 1011) =1101 0
001 0100」の最下位ビットを削除した「110 1000 1010
」に設定され、続いて、この演算対象整数「110 1000
1010 」の最下位ビットが0値であるので、その次のビ
ットが0値として求まって、演算対象整数が「11 0100
0101」に設定され、続いて、この演算対象整数「11 010
0 0101」の最下位ビットが1値であるので、その次のビ
ットが1値として求まって、演算対象整数が「(11 0100
0101 −1 1011) =11 0011 1010」の最下位ビットを削
除した「1 1001 0101 」に設定され、続いて、この演算
対象整数「1 1001 0101 」の最下位ビットが1値である
ので、その次のビットが1値として求まって、演算対象
整数が「(1 1001 0101−11011) =1 0111 1010 」の最
下位ビットを削除した「1011 1101 」に設定され、続い
て、この演算対象整数「1011 1101 」の最下位ビットが
1値であるので、その次のビットが1値として求まっ
て、演算対象整数が「(1011 1101−1 1011) =1010 001
0 」の最下位ビットを削除した「101 0001」に設定さ
れ、続いて、この演算対象整数「101 0001」の最下位ビ
ットが1値であるので、その次のビットが1値として求
まって、演算対象整数が「(101 0001 −1 1011) =11 0
110 」の最下位ビットを削除した「1 1011」に設定さ
れ、続いて、この演算対象整数「1 1011」の最下位ビッ
トが1値であるので、その次のビットが1値として求ま
って、演算対象整数が「(1 1011 −1 1011) =0」に到
達することで処理を終了して、最終的に「1111 1010 」
と求まることになる。
【0059】
【発明の効果】以上説明したように、本発明によれば、
割り切れることが保証されている整数間の割り算を実行
する場合に、その割り算を乗算に組み直して、下位桁か
ら順番にトライアンドエラーの処理を用いることなく直
接割り算値を算出していく構成を採ることから、従来よ
りも高速に割り算値を求めることができるようになるの
である。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明の原理構成図である。
【図3】剰余テーブル作成のハードウェア機構の構成例
である。
【図4】本発明の割り算器が実行する処理フローの一実
施例である。
【図5】テーブルデータの説明図である。
【図6】本発明の割り算器のハードウェア構成例の説明
図である。
【図7】本発明の割り算器が実行する処理フローの他の
実施例である。
【符号の説明】
1 割り算器 10 設定手段 11 乗算手段 12 乗算値管理手段 13 算出手段 14 起動手段 15 出力手段 20 設定手段 21 抽出手段 22 第1の起動手段 23 引き算手段 24 第2の起動手段 25 出力手段

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 割り切れるのが保証されている割られる
    整数aと割る整数bとの割り算値cを算出する割り算器
    であって、 整数bの下位に位置する0値のビットを削除すること
    で、最下位ビットが1値を示すものとなる新たな整数b
    を設定するとともに、整数aの下位に位置するこの削除
    個数分の0値のビットを削除することで新たな整数aを
    設定する設定手段(10)と、 予測商部分値をなすnビットの全ビットパターン値と、
    上記設定手段(10)の設定する整数bとの乗算値を算出す
    る乗算手段(11)と、 上記設定手段(10)の設定する整数aを演算対象整数の初
    期値として用いて、上記乗算手段(11)の算出した乗算値
    の内、下位nビットのビット値が該演算対象整数の下位
    nビットのものと一致するものを特定するとともに、該
    演算対象整数とこの特定する乗算値との引き算値を算出
    する算出手段(13)と、 上記算出手段(13)が引き算値を算出するときに、該引き
    算値がゼロとならないときには、該引き算値の下位nビ
    ットを削除することで新たな演算対象整数を設定して上
    記算出手段(13)を再起動する起動手段(14)と、 上記算出手段(13)が引き算値を算出するときに、該引き
    算値がゼロとなるときには、上記算出手段(13)の特定し
    た乗算値の算出元となったnビットパターン値を下位側
    から順番に並べて割り算値cとして出力する出力手段(1
    5)とを備えることを、 特徴とする割り算器。
  2. 【請求項2】 請求項1記載の割り算器において、 算出手段(13)は、 乗算手段(11)の算出した乗算値対応に設けられて、演算
    対象整数と対応の乗算値との引き算値を算出する減算手
    段と、 上記減算手段の算出する引き算値の内、下位nビットの
    全てのビット値が0値を示すものを選択して出力する選
    択手段とから構成されることを、 特徴とする割り算器。
  3. 【請求項3】 請求項1記載の割り算器において、 算出手段(13)は、 乗算手段(11)の算出した乗算値の内、下位nビットのビ
    ット値が演算対象整数の下位nビットのものと一致する
    ものを検索する検索手段と、 演算対象整数と上記検索手段の検索する乗算値との引き
    算値を算出する減算手段とから構成されることを、 特徴とする割り算器。
  4. 【請求項4】 請求項1記載の割り算器において、 乗算手段(11)は、予測商部分値をなすnビットの全ビッ
    トパターン値と、設定手段(10)の設定する整数bとの乗
    算値の下位nビットのみを算出するとともに、算出手段
    (13)は、乗算手段(11)の算出したnビット値の内、演算
    対象整数の下位nビットのものと一致するものを特定す
    る構成を採り、 かつ、算出手段(13)の特定するnビット値の算出元とな
    ったnビットパターン値と整数bとの乗算値を算出する
    第2の乗算手段を備え、 そして、算出手段(13)は、演算対象整数と上記第2の乗
    算手段の算出する乗算値との引き算値を算出していくよ
    う処理することを、 特徴とする割り算器。
  5. 【請求項5】 割り切れるのが保証されている割られる
    整数aと割る整数bとの割り算値cを算出する割り算器
    であって、 整数bの下位に位置する0値のビットを削除すること
    で、最下位ビットが1値を示すものとなる新たな整数b
    を設定するとともに、整数aの下位に位置するこの削除
    個数分の0値のビットを削除することで新たな整数aを
    設定する設定手段(20)と、 上記設定手段(20)の設定する整数aを演算対象整数の初
    期値として用いて、該演算対象整数の最下位ビットのビ
    ット値を抽出する抽出手段(21)と、 上記抽出手段(21)がビット値を抽出するときに、該ビッ
    ト値が0値を示すときには、演算対象整数の最下位ビッ
    トを削除することで新たな演算対象整数を設定して上記
    抽出手段(21)を再起動する第1の起動手段(22)と、 上記抽出手段(21)がビット値を抽出するときに、該ビッ
    ト値が1値を示すときには、演算対象整数から上記設定
    手段(20)の設定する整数bを引き算する引き算手段(23)
    と、 上記引き算手段(23)が引き算値を算出するときに、該引
    き算値がゼロとならないときには、該引き算値の最下位
    ビットを削除することで新たな演算対象整数を設定して
    上記抽出手段(21)を再起動する第2の起動手段(24)と、 上記引き算手段(23)が引き算値を算出するときに、該引
    き算値がゼロとなるときには、上記抽出手段(21)の抽出
    したビット値を抽出順に下位側から順番に並べて割り算
    値cとして出力する出力手段(25)とを備えることを、 特徴とする割り算器。
JP5164485A 1993-07-02 1993-07-02 割り算器 Withdrawn JPH0721012A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5164485A JPH0721012A (ja) 1993-07-02 1993-07-02 割り算器
US08/214,315 US5485414A (en) 1993-07-02 1994-03-17 Divider circuit which calculates an integral quotient of an integral divisor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5164485A JPH0721012A (ja) 1993-07-02 1993-07-02 割り算器

Publications (1)

Publication Number Publication Date
JPH0721012A true JPH0721012A (ja) 1995-01-24

Family

ID=15794067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5164485A Withdrawn JPH0721012A (ja) 1993-07-02 1993-07-02 割り算器

Country Status (2)

Country Link
US (1) US5485414A (ja)
JP (1) JPH0721012A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP3173419B2 (ja) * 1997-05-08 2001-06-04 日本電気株式会社 倍数判定回路及びその判定方法
JP5509839B2 (ja) * 2009-12-22 2014-06-04 富士通株式会社 通信装置、受信データ長判定方法、倍数判定回路及び受信データ長判定プログラム
CN102063284B (zh) * 2010-12-13 2012-05-30 青岛海信信芯科技有限公司 一种除法运算方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5047973A (en) * 1989-04-26 1991-09-10 Texas Instruments Incorporated High speed numerical processor for performing a plurality of numeric functions
US5046038A (en) * 1989-07-07 1991-09-03 Cyrix Corporation Method and apparatus for performing division using a rectangular aspect ratio multiplier

Also Published As

Publication number Publication date
US5485414A (en) 1996-01-16

Similar Documents

Publication Publication Date Title
JPH0235348B2 (ja)
JP2585649B2 (ja) 除算回路
JPH0721012A (ja) 割り算器
JP2001222410A (ja) 除算器
JP2004519017A (ja) 係数乗算するための方法および装置
JPH0317132B2 (ja)
JPH1195982A (ja) 演算処理回路及び演算処理方法並びに演算処理システム
JPS58129653A (ja) 乗算方式
WO2003096182A1 (en) “emod” a fast modulus calculation for computer systems
JPS6155691B2 (ja)
JP2777265B2 (ja) 高基数開平演算装置
JPH08202533A (ja) 除算処理装置
JP2518532B2 (ja) 減算シフト型除算器
JP2584516B2 (ja) 開立計算装置
JP3477866B2 (ja) 除算器の除算方法
JP2790327B2 (ja) 剰余乗算回路および剰余乗算方法
JP3851025B2 (ja) 除算回路
JP2803442B2 (ja) 開平装置
JPH10333883A (ja) 乗算方法および乗算回路
JPH0535773A (ja) ベクトル除算方式とその装置
JP2002117017A (ja) 再帰型離散フーリエ変換装置
JP4080754B2 (ja) 剰余演算装置及び方法
JP3695561B2 (ja) 積和器
KR0164728B1 (ko) 2진 연산처리에 있어서의 나머지를 구하는 회로
JP3185861B2 (ja) 多桁整数と単桁整数との乗算方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000905