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
Links
Description
上位桁間の近似的な除算結果を用いて、高速に多数桁の
商および剰余を求める除算装置に関するものである。
マイクロプロセッサを用いるシステム等においては、正
の整数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として、上記処理を繰り返し行うのである。
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を
得る。
上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′を得る。
上位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)
い場合には、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回実行する必要があるため、そ
れらの演算に必要な回路を用意しなければならず、その
結果、遅延時間が大となってしまう。本発明の目的は、
このような従来の課題を解決し、従来のような近似部分
商の誤差を減少させるための処理が不要で、高速な除算
装置を提供することにある。
め、本発明の除算装置は、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を減
じて、初めに戻って同じ処理を繰り返し行うように制御
することを特徴としている。
っても、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回の処理にかかる時間を減少することができ
る。その結果、高速化が可能となる。
説明する。図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桁の加算回路と減算回路とを組み合わせて構成され
る。
ャートである。図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)。
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)、次のステップ
に進む。
余を符号付きで表現し、除数と被除数の上位桁による近
似的な試行除算の際に絶対値を用いるので、試行除算の
商に補正を加える場合、従来は必要とされていた少なく
とも1ワードの乗算2回と減算4回の処理をなくすこと
ができるので、それらの処理にかかる時間だけ節約が可
能である。いま、減算にかかる時間を1とすると、乗算
は概ね3〜5倍程度の処理時間かかる。一方、絶対値に
変換する処理時間は減算と同等であるため、試行除算の
補正にかかる時間は従来の1/10程度になる。従っ
て、全体では、1ワードの加算(減算)9(m−n)回
分の処理時間の節約となる。中間結果の正負により、加
算と減算を切り替える制御に要する時間は十分に小さい
ため、これを無視することができる。また、本実施例で
は、図2に示すように、最終ステップ(ステップ110
〜112)で剰余を正にするための補正が必要となる場
合がある。その場合、この処理にかかる時間は加算n回
分であるため、結局、本発明においては、1ワードの加
算9m−10n回分の高速化が可能となる。
除数と被除数の上位桁による近似的な試行除算の際に絶
対値を用いるので、試行除算の商に補正を加える場合に
必要な1ワードの乗算2回と減算4回の処理にかかる時
間を節約することができ、試行除算の補正にかかる時間
を従来の1/10程度に短縮することが可能である。
である。
る。
Claims (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を減じて、初めに戻って同
じ処理を繰り返し行うように制御することを特徴とする
除算装置。
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) |
-
1993
- 1993-09-01 JP JP21746993A patent/JP3277497B2/ja not_active Expired - Lifetime
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 |