JP3277497B2 - 除算装置 - Google Patents

除算装置

Info

Publication number
JP3277497B2
JP3277497B2 JP21746993A JP21746993A JP3277497B2 JP 3277497 B2 JP3277497 B2 JP 3277497B2 JP 21746993 A JP21746993 A JP 21746993A JP 21746993 A JP21746993 A JP 21746993A JP 3277497 B2 JP3277497 B2 JP 3277497B2
Authority
JP
Japan
Prior art keywords
digit
circuit
value
quotient
division
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
JP21746993A
Other languages
English (en)
Other versions
JPH0773025A (ja
Inventor
正幸 阿部
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP21746993A priority Critical patent/JP3277497B2/ja
Publication of JPH0773025A publication Critical patent/JPH0773025A/ja
Application granted granted Critical
Publication of JP3277497B2 publication Critical patent/JP3277497B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、除算装置に関し、特に
上位桁間の近似的な除算結果を用いて、高速に多数桁の
商および剰余を求める除算装置に関するものである。
【0002】
【従来の技術】従来より、汎用計算機を初めとして汎用
マイクロプロセッサを用いるシステム等においては、正
の整数A,Nが与えられ、A/Nの割り算を実行するこ
とによって、商と剰余とが求められている。しかし、除
算装置において割り算を実行する途中で、被除数Aが負
になる場合を判断する必要があるため、除算の高速化が
妨げられていた。そこで、本出願人は特願平4−503
37号明細書および図面に記載された『除算装置』によ
り、負の値を扱うことに伴う処理を不要にして、高速化
を可能にするように提案した。この除算装置では、上位
ブロック間(例えば、最上位桁と次位桁)の近似的な除
算結果を用いて、多数桁の商と剰余とを求める。すなわ
ち、Q←「(Ai‖Ai-1)/(Nn+1+1)]の式で商
を求めた後、被除数Aの上位桁AiがNn+1+1以上の場
合に限り、Aからrの(i−n+1)乗と商Qと除数N
を乗じた値を減算し(以上が公式)、その減算した結果
をAとして、上記処理を繰り返し行うのである。
【0003】例えば、被除数Aを96543、除数Nを
5621としたとき、商Q171、剰余4241を求め
る場合について考える。先ず、ポインタi=6−1=
5、商Q=0と置き、被除数Aの上位1桁目の9を除数
Nの1桁目に1を加えた値6と比較し、前者が大である
ため、前者を後者で除算すると、Q=9/6=1とな
る。上記公式によりA−r5-4+1×N=965432−
102×5621=403332を計算することによ
り、剰余403332の上位2桁の40を除数Nの上位
1桁目に1を加えた値6で除算する。Q=40/6=6
となる。そして、これを上記公式に代入することによ
り、A=403332−105-4×6×5621=06
6072を得る。一方、商Q=10×1+6=16に更
新される。次に、上記066072の上位2桁の06を
除数Nの1桁目に1を加えた値6で除算すると、Q=0
6/6=1である。そして、これを上記公式に代入する
ことにより、A=066072−105-4×1×562
1=009862を得る。一方、Q=16+1に更新さ
れる。この場合、被除数00と除数に1を加えた値6と
を比較すると、後者の方が大であるため、AとQはその
ままの状態を保つ。次に、ポインタiを5−1=4と
し、被除数009862の上位2桁目と3桁目の09を
除数Nに1を加えた値6で除算する。Q=09/6=1
となる。これを上記公式に代入して、A=09862−
104-4×1×5621=04241を得る。一方、商
Q=10×17+1=171を得る。次に、04241
の上位2桁の04を除数Nに1を加えた値6で除算する
が、商は0であるため、AとQはそのままの状態を保
つ。i=3、i=2になったとき、A=4241<N=
5621となって、商Q=171、剰余A=4241を
得る。
【0004】いま、r進n桁で最上位桁の値がr/2以
上r未満である正の整数Nと、n+1≦mなるr進m桁
の整数Aにおいて、AをNで除した商、および0以上N
未満の剰余を、従来の除算方法により求める場合には、
次のように実行されている。ただし、rは除算機の演算
ワード長に対応し(例えば、10進法の数では、10に
相当する)、除算機内部には1ワードの加減算を行う回
路と、2ワードを1ワードで除算して1ワードの商を得
る除算回路と、1ワードどうしの乗算を行い、2ワード
の積を得る乗算回路とが設けられているものとする。な
お、多数桁の整数A,Nのi+1桁目に相当するメモリ
の値をそれぞれA〔i〕、N〔i〕と表わし、またAの
最上位桁からi+1桁目までのメモリの値をAiと表わ
す。先ずAの演算桁位置を指すポインタiをm−nに初
期化して、商を記憶するメモリQに0を初期化する。手
計算による場合には、Aiに対する部分商を得るために
AiをNで除算するが、除算機内部の演算の場合には、
1ワードの除算回路を利用して近似的な部分商を得た後
に、補正を行う。すなわち、近似的な部分商を得るため
に、Aの上位2桁A〔i+n〕、A〔i+n−1〕の絶
対値を被除数とし、Nの最上位桁N〔n−1〕を除数と
して除算回路に入力して、近似部分商q′を得る。
【数1】 なお、記号a‖bはa・r+b(つまり、上位1桁目と
上位2桁目の数値)を示し、また「a]はaを超えない
最大の整数を示す。この上位2桁による近似部分商q′
は、i+1桁目以上の桁による部分商q=「Ai/N]
に対して、q′−2≦q≦q′となる誤差を持ってい
る。ここで、従来の方法において、上記q′の誤差を減
少させるためには、次式(2)が成立するか否かを調べ
る。 N〔n−2〕・q′>(A〔i+n〕‖A〔i+n−1〕−N〔n−1〕・q′ )‖A〔i+n−2〕 ・・・・・・・・・・・・・・・・・・・・・・(2)
【0005】
【発明が解決しようとする課題】前式(2)が成立しな
い場合には、q′←q′−1としてq′を更新し、上式
(2)が成立するまで、この処理を繰り返し行う。一
方、上記(2)が成立した場合には、q″←q′とすれ
ば、q″−1≦q≦q″となる。このq″を用いてAi
からq″・Nを減算し、その結果をAiに格納する。こ
の場合、Aiが負になったならば、AiにNを加算して
Aiが正数となるように補正し、q′″=q″−1と
し、商のメモリQを上位方向に1桁シフトして(r倍し
て)、部分商q′″をメモリQに加える。i=i−1と
してiが負になるまで、上記手順を繰り返し実行する。
しかしながら、上述のような従来方法では、近似部分商
q′の誤差を減少させるための処理が3ワードを2ワー
ドで除算するのと同じである。そして、この処理を1ワ
ードの数値演算ユニットで実行するためには、少なくと
も乗算を2回、減算を4回実行する必要があるため、そ
れらの演算に必要な回路を用意しなければならず、その
結果、遅延時間が大となってしまう。本発明の目的は、
このような従来の課題を解決し、従来のような近似部分
商の誤差を減少させるための処理が不要で、高速な除算
装置を提供することにある。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、本発明の除算装置は、r進n桁で最上位桁の値がr
/2以上r未満である正の整数Nと、n+1≦mなるr
進m+1桁の整数Aが入力され、r進1桁の整数の加減
乗除算を行う数値演算ユニットを操作して、上記整数A
を上記整数Nで除算した商および0以上N未満の剰余を
求める除算装置において、多数桁の整数A,Nのi+1
桁目に相当する値をそれぞれA〔i〕,N〔i〕で表わ
し、かつAの最上位桁からi桁目までの値をAiで表わ
して、それぞれ格納する被除数記憶手段(図1における
1)および除数記憶手段(2)と、被除数を除数で除算
した結果の商Qを記憶する商記憶手段(3)と、被除数
の上位2桁の絶対値を除数の上位1桁で除算する除算回
路(4)と、A±q′・Nを演算する部分剰余演算回路
(5)と、2入力の加算または減算を行う加減算回路
(7)と、上記被除数記憶手段および部分剰余演算回路
の出力の正負により該部分剰余演算回路および上記加減
算回路を制御する制御部(6)とを具備し、該制御部
(6)は、上記Aの演算桁位置を指すポインタiをm−
nに初期化し、上記商記憶手段(3)の値Qを0に初期
化し、ポインタiが負でないときは上記Aの上位2桁A
〔i+n〕、A〔i+n−1〕の絶対値を被除数とし、
上記Nの上位1桁の値を除数として上記除算回路(4)
に入力し、1桁の正整数からなる除算出力q′を得、次
に、該Aが正のとき、上記部分剰余演算回路(5)によ
りAiからq′・Nを減じ、また該Aが負のとき、Ai
にq′・Nを加えて、被除数記憶手段(1)のAを更新
し、次に、商記憶手段(3)の値Qを1桁上位にシフト
し、該Aが正のとき、上記加減算回路(7)により該Q
にq′を加え、該Aが負のとき該Qからq′を減じて、
商記憶手段(3)の該Qを更新し、次に、上記加減算回
路(7)の演算結果、A〔i+n−1〕の絶対値がNの
最上位桁の値N〔n−1〕以上の場合に限り、該加減算
回路(7)で該Aが正のときAiからNを減じ、かつ該
Qに1を加え、また該Aが負のときAiにNを加え、か
つ該Qから1を減じ、次に、上記ポインタiから1を減
じて、初めに戻って同じ処理を繰り返し行うように制御
することを特徴としている。
【0007】
【作用】本発明においては、演算の途中結果Aが負であ
っても、Aの上位ワードを絶対値で表現して近似部分商
q′を求め、メモリQを1桁上位にシフトして、Aが正
のときQにq′を加え、またはAが負のときQAiに
q′・Nを加えて部分剰余Aを求め、その結果、A〔i
+n−1〕の絶対値がNの最上桁の値N〔n−1〕以上
の場合に限り、Aが正のときAiからNを減算し、かつ
Qに1を加算する。または、Aが負のときAiにNを加
算し、かつQから1を減算する。このように、本発明で
は、Aの上位ワードを絶対値で表現して近似部分商q′
を求めた後、直ちに部分剰余を求める処理に移る。部分
剰余を求める処理は、Aが正のときAiからq′・Nを
減算し、またはAが負のときAiにq′・Nを加算す
る。同時に、メモリQを1桁上位にシフトして、Aが正
のときQにq′を加算し、またはAが負のときQから
q′を減算して部分商を得る。この部分剰余と部分商
は、部分剰余の最上位桁A〔i+n−1〕の絶対値がN
の最上位桁の値N〔n−1〕以上の場合に限り、Aが正
のときAiからNを減算し、かつQに1を加算する。ま
たは、Aが負のときAiにNを加算し、かつQから1を
減算して補正する。これにより、部分剰余を符号付きで
表現し、除数と被除数の上位桁による近似的な試行除算
の際に絶対値を用いるので、試行除算の商に補正を加え
る際に、従来必要であった少なくとも1ワードの乗算2
回、減算4回の処理にかかる時間を減少することができ
る。その結果、高速化が可能となる。
【0008】
【実施例】以下、本発明の実施例を、図面により詳細に
説明する。図1は、本発明の一実施例を示す除算装置の
ブロック図である。図1において、1は外部から初期状
態が与えられた後、被除数が格納される記憶領域(メモ
リ)、2は外部から初期状態が与えられた後、除数が格
納される記憶領域、3は初期状態は0であり、その後に
商が格納される記憶領域、4は被除数の上位2桁の絶対
値を除数の上位1桁で除算して、この回路の出力を近似
部分商q′とする除算回路、5はA−q′NまたはA+
q′Nを行う回路であって、1桁の乗算、加算、減算の
各回路を組み合わせて構成され、制御回路6からの信号
によりA−q′NまたはA+q′Nの演算を選択して実
行する回路、6はAまたは演算回路5の出力の正負によ
り、演算回路5と加減算回路7を制御する制御回路、7
は制御回路6からの信号を受けて、2入力の加算または
減算を行う加減算回路である。なお、加減算回路7も、
1桁の加算回路と減算回路とを組み合わせて構成され
る。
【0009】図2は、図1における処理手順のフローチ
ャートである。図2におけるブロック(a)は図1の除
算回路4の処理を示し、ブロック(b)は演算回路5の
処理を示し、ブロック(c)は加減算回路7の処理を示
している。いま、一例として、10進数で、5桁の39
000を3桁の588で除算する場合を考える。先ず、
メモリ(A)1に39000を、メモリ(N)2に58
8を格納する。ポインタiを2に、メモリ(Q)3を0
に初期化する(ステップ101)。ポインタiが負では
ないので、次のステップに進む(ステップ102)。部
分商q′は、Aの上位2桁をNの上位1桁で除算して、
q′=「|39|/5]=7となる(ステップ10
3)。Aが正であるので(ステップ104)、メモリ
(Q)3に7を加える。Aの上位4桁、つまり3900
からq′・N=4116を減算すると、A=−216と
なる(ステップ105)。メモリ(Q)3にq′=7を
加算する(ステップ106)。このとき、部分剰余の最
上位桁A〔i+n−1〕の絶対値は2で、Nの最上位桁
の値N〔n−1〕は5であるので、2>5が不成立とな
って、補正の必要はない(ステップ109)。ポインタ
iから1を減算し(ステップ113)、繰り返して次の
ステップに進む(ステップ102)。
【0010】次のステップでは、q′=「|21|/
5]=4となる(ステップ103)。次に、Aが負であ
るため(ステップ104)、Aの上位4桁、つまり−2
160にq′×N=2352を加算すると、A=192
となる(ステップ107)。また、メモリ(Q)3を1
桁上位桁にシフトし、現在の値から4を減算すると、Q
=7×10−4=66となる(ステップ108)。この
とき、部分剰余の最上位桁A〔i+n−1〕の絶対値は
1で、Nの最上位桁の値N〔n−1〕は5であるため、
1>5は成立せず(ステップ109)、従って補正の必
要はない。ポインタiから1を引くと負になるので、繰
り返し処理を終了する(ステップ113)。なお、最終
ステップ110〜112では、Aが正であるため(ステ
ップ109)、補正は必要ない。その結果、メモリ
(Q)3に商66を、またメモリ(A)1に剰余192
を、得ることができる。一方、部分剰余の最上位桁Aの
絶対値がNの最上位桁の値よりも大である場合には、A
が正か負を判断した後(ステップ110)、正であれ
ば、メモリ(A)1の値からNの値を減算し、メモリ
(Q)3の値に1を加算してから(ステップ111)、
次のステップに進む。また、Aが負であれば、メモリ
(A)1の値にNの値を加算し、メモリ(Q)3の値か
ら1を減算してから(ステップ112)、次のステップ
に進む。
【0011】このように、本実施例においては、部分剰
余を符号付きで表現し、除数と被除数の上位桁による近
似的な試行除算の際に絶対値を用いるので、試行除算の
商に補正を加える場合、従来は必要とされていた少なく
とも1ワードの乗算2回と減算4回の処理をなくすこと
ができるので、それらの処理にかかる時間だけ節約が可
能である。いま、減算にかかる時間を1とすると、乗算
は概ね3〜5倍程度の処理時間かかる。一方、絶対値に
変換する処理時間は減算と同等であるため、試行除算の
補正にかかる時間は従来の1/10程度になる。従っ
て、全体では、1ワードの加算(減算)9(m−n)回
分の処理時間の節約となる。中間結果の正負により、加
算と減算を切り替える制御に要する時間は十分に小さい
ため、これを無視することができる。また、本実施例で
は、図2に示すように、最終ステップ(ステップ110
〜112)で剰余を正にするための補正が必要となる場
合がある。その場合、この処理にかかる時間は加算n回
分であるため、結局、本発明においては、1ワードの加
算9m−10n回分の高速化が可能となる。
【0012】
【発明の効果】以上説明したように、本発明によれば、
除数と被除数の上位桁による近似的な試行除算の際に絶
対値を用いるので、試行除算の商に補正を加える場合に
必要な1ワードの乗算2回と減算4回の処理にかかる時
間を節約することができ、試行除算の補正にかかる時間
を従来の1/10程度に短縮することが可能である。
【図面の簡単な説明】
【図1】本発明の一実施例を示す除算装置のブロック図
である。
【図2】図1における処理手順のフローチャートであ
る。
【符号の説明】
1 被除数(部分剰余)の記憶手段 2 除数の記憶手段 3 商の記憶手段 4 試行除算回路 5 部分剰余演算回路 6 制御部 7 加減算回路

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 r進n桁で最上位桁の値がr/2以上r
    未満である正の整数Nと、n+1≦mなるr進m+1桁
    の整数Aが入力され、r進1桁の整数の加減乗除算を行
    う数値演算ユニットを操作して、上記整数Aを上記整数
    Nで除算した商および0以上N未満の剰余を求める除算
    装置において、 多数桁の整数A,Nのi+1桁目に相当する値をそれぞ
    れA〔i〕,N〔i〕で表わし、かつAの最上位桁から
    i桁目までの値をAiで表わして、それぞれ格納する被
    除数記憶手段および除数記憶手段と、被除数を除数で除
    算した結果の商Qを記憶する商記憶手段と、被除数の上
    位2桁の絶対値を除数の上位1桁で除算する除算回路
    と、A±q′・Nを演算する部分剰余演算回路と、2入
    力の加算または減算を行う加減算回路と、上記被除数記
    憶手段および部分剰余演算回路の出力の正負により該部
    分剰余演算回路および上記加減算回路を制御する制御部
    とを具備し、該制御部は、 上記Aの演算桁位置を指すポインタiをm−nに初期化
    し、上記商記憶手段の値Qを0に初期化し、 ポインタiが負でないときは上記Aの上位2桁A〔i+
    n〕、A〔i+n−1〕の絶対値を被除数とし、上記N
    の上位1桁の値を除数として上記除算回路に入力し、1
    桁の正整数からなる除算出力q′を得、 次に、該Aが正のとき、上記部分剰余演算回路によりA
    iからq′・Nを減じ、また該Aが負のとき、Aiに
    q′・Nを加えて、被除数記憶手段のAを更新し、 次に、商記憶手段の値Qを1桁上位にシフトし、該Aが
    正のとき、上記加減算回路により該Qにq′を加え、該
    Aが負のとき該Qからq′を減じて、商記憶手段の該Q
    を更新し、 次に、上記加減算回路の演算結果、A〔i+n−1〕の
    絶対値がNの最上位桁の値N〔n−1〕以上の場合に限
    り、該加減算回路で該Aが正のときAiからNを減じ、
    かつ該Qに1を加え、また該Aが負のときAiにNを加
    え、かつ該Qから1を減じ、 次に、上記ポインタiから1を減じて、初めに戻って同
    じ処理を繰り返し行うように制御することを特徴とする
    除算装置。
JP21746993A 1993-09-01 1993-09-01 除算装置 Expired - Lifetime JP3277497B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21746993A JP3277497B2 (ja) 1993-09-01 1993-09-01 除算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21746993A JP3277497B2 (ja) 1993-09-01 1993-09-01 除算装置

Publications (2)

Publication Number Publication Date
JPH0773025A JPH0773025A (ja) 1995-03-17
JP3277497B2 true JP3277497B2 (ja) 2002-04-22

Family

ID=16704726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21746993A Expired - Lifetime JP3277497B2 (ja) 1993-09-01 1993-09-01 除算装置

Country Status (1)

Country Link
JP (1) JP3277497B2 (ja)

Also Published As

Publication number Publication date
JPH0773025A (ja) 1995-03-17

Similar Documents

Publication Publication Date Title
US5434809A (en) Method and apparatus for performing floating point arithmetic operation and rounding the result thereof
JP4274633B2 (ja) 累乗演算装置
JPH03105614A (ja) マトリツクス演算回路
JP3277497B2 (ja) 除算装置
JP3660075B2 (ja) 除算装置
JPH0831024B2 (ja) 演算プロセッサ
JP3261600B2 (ja) 剰余乗算器
JP3074910B2 (ja) 除算装置
JP2777265B2 (ja) 高基数開平演算装置
JP3415569B2 (ja) 10進データ除算方法およびそのプログラム記録媒体
JP2753922B2 (ja) 固定小数点除算方法
JP3517162B2 (ja) 除算・開平演算装置
JP2960595B2 (ja) ディジタル信号プロセッサ
JP2653470B2 (ja) 10進乗算装置
JP2518532B2 (ja) 減算シフト型除算器
JPH11134174A (ja) 演算回路
JPH0553768A (ja) 除算器
JPH01161437A (ja) 除算装置
JP2001344093A (ja) 除算装置
JPH10312269A (ja) 積和演算器
JPH01233520A (ja) 高基数非回復型除算装置
JPS61118835A (ja) ハ−ドウエア除算器
JP2000066878A (ja) デジタル演算装置およびデジタル演算装置の演算方法
JPS5833754A (ja) デイジタル乗算回路
JPH0635678A (ja) 十進除算回路

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090215

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090215

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100215

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110215

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110215

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120215

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130215

Year of fee payment: 11