JP2001344093A - 除算装置 - Google Patents

除算装置

Info

Publication number
JP2001344093A
JP2001344093A JP2000163364A JP2000163364A JP2001344093A JP 2001344093 A JP2001344093 A JP 2001344093A JP 2000163364 A JP2000163364 A JP 2000163364A JP 2000163364 A JP2000163364 A JP 2000163364A JP 2001344093 A JP2001344093 A JP 2001344093A
Authority
JP
Japan
Prior art keywords
digit
remainder
register
divisor
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.)
Pending
Application number
JP2000163364A
Other languages
English (en)
Inventor
Kunio Yoshida
邦男 吉田
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2000163364A priority Critical patent/JP2001344093A/ja
Publication of JP2001344093A publication Critical patent/JP2001344093A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 構成が簡単でかつ高速演算が可能な除算装置
を提供する。 【解決手段】 3以上の除数D=SQ−Pを用いるS進
数の除算を行う除算装置において、最初に、剰余用レジ
スタ11に被除数N0が記憶され、商用レジスタ12が
クリアされる。次いで、剰余用レジスタ11の記憶値N
をQ桁目で上位桁NUと下位桁NDとに2分し、上位桁
NUと商用レジスタ12の記憶値との和を商用レジスタ
12に更新記憶させ、かつ上位桁と除数差P*との積を
下位桁に加えた和を剰余用レジスタ11に更新記憶させ
る処理が、剰余用レジスタ11の記憶値Nの上位桁NU
が0になるまで繰返される。商用レジスタ12の記憶値
が商として出力され、剰余用レジスタ11の記憶値Nが
剰余として出力される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、除算装置に関す
る。
【0002】
【従来の技術】演算処理を行う装置において、除算は、
種々の数値計算で用いられる他、たとえば画像処理にお
けるフィルタ計算でも多く用いられている。図32は、
除算の利用例の一つである画像処理におけるフィルタ計
算を説明するための図である。フィルタ演算時には、図
32(A)に示すようにデータ化されている入力画像内
に着目領域が設定され、該着目領域内の画素のデータの
重付け平均が求められる。図32(A)では着目領域を
黒太線で囲んで示す。ある単一の着目領域設定後、図3
2(B)に示すフィルタマトリクス内の各フィルタ係数
を用い、該着目領域内の各画素のデータに対する重付け
を行う。
【0003】重付け時には、着目領域内の各画素と該各
画素と対応する位置にあるフィルタ係数とが乗算され
る。それらの和がフィルタマトリクス内の全フィルタ係
数の総和で除算されて、得られる商が該着目領域内の画
素のデータの重み平均として出力される。図32(C)
は、図32(A)の注目領域内の画素のデータの重付け
平均を、図32(B)のフィルタマトリクスを用いて算
出する場合の具体的な演算である。画像処理のフィルタ
演算時には、着目領域は入力画像内において中央画素の
位置を1画素づつずらしつつ順次設定され、着目領域が
設定されるたびに重付け平均が求められる。この結果フ
ィルタ演算時には、同じ値の除数による除算処理を、繰
返し多量に実行する必要が生じる。
【0004】このような多量の除算処理をソフトウエア
処理として行うと、画像形成の処理速度にフィルタ演算
の処理速度が追いつかないので、多くの場合、上記の多
量の除算処理にはASIC(組込み集積回路)が使用さ
れるが、ASIC化のために、除算装置の開発時には、
構成の簡略化と、如何に処理速度を高速化するかとが、
大きな課題になっている。
【0005】特開平8−202533公報は、2進数表
記の被除数を2進数表記の除数で除算する構成の除算装
置を開示している。本公報の除算装置は、除数が2n
1の値をもつ場合、まず、nビットを単位に、被除数を
区画し、区画された部分毎に、該部分を上位桁としてか
つ下位桁の全ビットが0であるビット列を上記除数で除
算して得られる商および剰余を発生させ、それらを商お
よび剰余毎に加算し、求められた商および剰余を補正す
ることによって、該除数で割ったときの商および剰余を
求めている。これによって、商が高速に求められる。
【0006】
【発明が解決しようとする課題】特開平8−20253
3公報の除算装置は、2進数表記の除数が、11、11
1、1111…等、2n−1の値の場合だけ有効である
という制約があるので、汎用の除算装置として用いるこ
とは困難である。また前記除算装置では、除数が異なれ
ば被除数の分割位置の他、分割される個数も変わるの
で、除算装置の回路構成やプログラムを大幅に変更しな
けれればならない。すなわち、前記除算装置は、除数に
よって定まるnの値に基づき、被除数をnビットづつ区
切って処理を行うので、nをパラメータとする回路構成
が非常に複雑になる。
【0007】本発明の目的は、簡単な構成で商および剰
余を高速に算出可能な除算装置を提供することである。
【0008】
【課題を解決するための手段】本発明は、S進数の除算
を行う除算装置であって、除数DがSQ−P*で表現され
る3以上の整数であり、分割桁数QがSQ≧Dを満たす
最小の整数またはSQ≧Dを満たす最大の整数であり、
かつ除数差P*が整数であり、初期値として被除数を記
憶している剰余用レジスタと、初期値として0を記憶し
ている商用レジスタと、剰余用レジスタの記憶値を、最
下位桁からQ桁目で、最上位桁から第Q+1桁までの上
位桁と第Q桁から最下位桁までの下位桁とに分割する剰
余分割手段と、上位桁を商用レジスタの記憶値に加算し
て、加算結果を該商用レジスタに更新記憶させる商更新
手段と、上位桁と除数差P*との積を求める乗算手段
と、求められている積を下位桁に加算し、加算結果を剰
余用レジスタに更新記憶させる剰余更新手段と、剰余用
レジスタの上位桁が0になるまで、剰余分割手段と商更
新手段と乗算手段と剰余更新手段とに動作を繰返させる
繰返し制御手段とを含み、商用レジスタの記憶値が商と
して出力されることを特徴とする除算装置である。
【0009】本発明に従えば、除算装置は、除数Dに基
づいて算出される分割桁数Qおよび除数差P*を用い
て、与えられた被除数N0を除算するS進数の除算を、
数値の分割と加算と減算と乗算の組合わせまたは数値の
分割と加算と乗算との組合わせで実行する。これによっ
て、除算装置の構成が簡単になり、かつ商および剰余を
高速に求めることができる。さらに本発明の除算装置
は、与えられた被除数N0および除数Dの進数表記に拘
わらず除算の実行が可能であり、かつ除数Dの制限が極
めて少ないので、本発明の除算装置の汎用性が従来技術
の除算装置よりも大幅に向上する。
【0010】本発明は、S進数の除算を行う除算装置で
あって、除数DがSQ−P*で表現される3以上の整数で
あり、分割桁数QがSQ≧Dを満たす最小の整数または
Q≦Dを満たす最大の整数であり、かつ除数差P*が整
数であり、入力される数値を、最下位桁からQ桁目で、
最上位桁から第Q+1桁までの上位桁と第Q桁から最下
位桁までの下位桁とに分割する剰余分割手段と剰余分割
手段から出力される数値の上位桁を記憶する上位桁用レ
ジスタと、剰余分割手段から出力される数値の下位桁を
記憶する下位桁用レジスタと、初期値として0を記憶し
ている商用レジスタと、上位桁用レジスタの記憶値を商
用レジスタの記憶値に加算して、加算結果を該商用レジ
スタに更新記憶させる商更新手段と、上位桁用レジスタ
の記憶値と除数差P*との積を求める乗算手段と、求め
られている積を下位桁用レジスタの記憶値に加算し、加
算結果を剰余分割手段に出力する剰余更新手段と、上位
桁用のレジスタの記憶値が0になるまで、剰余分割手段
と商更新手段と乗算手段と剰余更新手段とに動作を繰返
させる繰返し制御手段とを含み、商用レジスタの記憶値
が商として出力されることを特徴とする除算装置であ
る。
【0011】本発明に従えば、除算装置は、除数Dに基
づいて算出される分割桁数Qおよび除数差P*を用い
て、被除数N0を除算するS進数の除算を、数値の分割
と加算と減算と乗算との組合わせまたは数値の分割と加
算と乗算との組合わせで実行する。これによって、除算
装置の構成が簡単になり、かつ商および剰余を高速に求
めることができる。さらに本発明の除算装置は、与えら
れた被除数N0および除数Dの進数表記に拘わらず除算
の実行が可能であり、かつ除数Dの制限が極めて少ない
ので、本発明の除算装置の汎用性が従来技術の除算装置
よりも大幅に向上する。
【0012】本発明は、2進数の除算を行う除算装置で
あって、除数Dが2Q−2nで表現される3以上の整数で
あり、分割桁数Qが2Q≧Dを満たす最小の整数であ
り、かつ除数差指数nが0以上の整数であり、初期値と
して被除数を記憶している剰余用レジスタと、初期値と
して0を記憶している商用レジスタと、剰余用レジスタ
の記憶値を、最下位桁からQ桁目で、最上位桁から第Q
+1桁までの上位桁と第Q桁から最下位桁までの下位桁
とに分割する剰余分割手段と、上位桁を商用レジスタの
記憶値に加算して、加算結果を該商用レジスタに更新記
憶させる商更新手段と、上位桁をnビット上位側にシフ
トさせた値を下位桁に加算し、加算結果を剰余用レジス
タに更新記憶させる剰余更新手段と、剰余用レジスタの
記憶値の上位桁が0になるまで、剰余分割手段と商更新
手段と剰余更新手段とに動作を繰返させる繰返し制御手
段とを含み、商用レジスタの記憶値が商として出力され
ることを特徴とする除算装置である。
【0013】本発明に従えば、除算装置は、除数Dに基
づいて算出される分割桁数Qおよび除数差指数nを用い
て与えられた被除数N0を除算する2進数の除算を、数
値の分割と加算の組合わせで実行する。これによって、
除算装置の構成が簡単になり、かつ商および剰余を高速
に求めることができる。
【0014】本発明は、2進数の除算を行う除算装置で
あって、除数Dが2Q+2nで表現される3以上の整数で
あり、分割桁数Qが2Q≦Dを満たす最大の整数であ
り、かつ除数差指数nが0以上の整数であり、初期値と
して被除数を記憶している剰余用レジスタと、初期値と
して0を記憶している商用レジスタと、剰余用レジスタ
の記憶値を、最下位桁からQ桁目で、最上位桁から第Q
+1桁までの上位桁と第Q桁から最下位桁までの下位桁
とに分割する剰余分割手段と、上位桁を商用レジスタの
記憶値に加算して、加算結果を該商用レジスタに更新記
憶させる商更新手段と、上位桁をnビット上位側にシフ
トさせた値を下位桁から減算し、減算結果を剰余用レジ
スタに更新記憶させる剰余更新手段と、剰余用レジスタ
の記憶値の上位桁が0になるまで、剰余分割手段と商更
新手段と剰余更新手段とに動作を繰返させる繰返し制御
手段とを含み、商用レジスタの記憶値が商として出力さ
れることを特徴とする除算装置である。
【0015】本発明に従えば、除算装置は、除数Dに基
づいて算出される分割桁数Qおよび除数差指数nを用い
て、与えられた被除数N0を除算する2進数の除算を、
数値の分割と加算と減算との組合わせで実行する。これ
によって、除算装置は、構成が簡単になり、かつ商およ
び剰余を高速に求めることができる。
【0016】本発明は、2進数の除算を行う除算装置で
あって、除数Dが2Q−Pで表現される3以上の整数で
あり、分割桁数Qが2Q≧Dを満たす最小の整数であ
り、かつ除数差Pが0以上の整数であり、初期値として
被除数を記憶している剰余用レジスタと、初期値として
0を記憶している商用レジスタと、剰余用レジスタの記
憶値を、最下位桁からQ桁目で、最上位桁から第Q+1
桁までの上位桁と第Q桁から最下位桁までの下位桁とに
分割する剰余分割手段と、上位桁を商用レジスタの記憶
値に加算して、加算結果を該商用レジスタに更新記憶さ
せる商更新手段と、上位桁と除数差Pとの積を求める乗
算手段と、求められている積を下位桁に加算し、加算結
果を剰余用レジスタに更新記憶させる剰余更新手段と、
剰余用レジスタの記憶値の上位桁が0になるまで、剰余
分割手段と商更新手段と乗算手段と剰余更新手段とに動
作を繰返させる繰返し制御手段とを含み、商用レジスタ
の記憶値が商として出力されることを特徴とする除算装
置である。
【0017】本発明に従えば、除算装置は、除数Dに基
づいて算出される分割桁数Qおよび除数差Pを用いて、
与えられた被除数N0を除算する2進数の除算を、数値
の分割と加算と乗算との組み合わせで実行する。これに
よって除算装置の構成が簡単になり、かつ商および剰余
を高速に求めることができる。
【0018】本発明は、2進数の除算を行う除算装置で
あって、除数Dが2Q+Pで表現される3以上の整数で
あり、分割桁数Qが2Q≦Dを満たす最大の整数であ
り、かつ除数差Pが0以上の整数であり、初期値として
被除数を記憶している剰余用レジスタと、初期値として
0を記憶している商用レジスタと、剰余用レジスタの記
憶値を、最下位桁からQ桁目で、最上位桁から第Q+1
桁までの上位桁と第Q桁から最下位桁までの下位桁とに
分割する剰余分割手段と、上位桁を商用レジスタの記憶
値に加算して、加算結果を該商用レジスタに更新記憶さ
せる商更新手段と、上位桁と除数差Pとの積を求める乗
算手段と、求められている積を下位桁から減算し、減算
結果を剰余用レジスタに更新記憶させる剰余更新手段
と、剰余用レジスタの記憶値の上位桁が0になるまで、
剰余分割手段と商更新手段と乗算手段と剰余更新手段と
に動作を繰返させる繰返し制御手段とを含み、商用レジ
スタの記憶値が商として出力されることを特徴とする除
算装置である。
【0019】本発明に従えば、除算装置は、除数Dに基
づいて算出される分割桁数Qおよび除数差Pを用いて、
与えられた被除数N0を除算する2進数の除算を、数値
の分割と加算と減算と乗算との組み合わせで実行する。
これによって除算装置の構成が簡単になり、かつ商およ
び剰余を高速に求めることができる。
【0020】本発明は、上述の除算装置と、与えられた
除数Dに基づき、D=2Qa−Paを満たす第1の分割桁
数Qaおよび第1の除数差Paと、D=2Qb+Pbを満
たす第2の分割桁数Qbおよび第2の除数差Pbとを求
める算出手段と、第1の除数差Paと第2の除数差Pb
の2倍値との大きさを比較し、第1の除数差Paが第2
の除数差Pbの2倍値未満である場合、第1の分割桁数
Qaおよび第1の除数差Paとを用いて請求項5記載の
除算装置に除算を行わせ、第1の除数差Paが第2の除
数差Pbの2倍値以上である場合、第2の分割桁数Qb
および第2の除数差Pbとを用いて請求項6に記載の除
算装置に除算を行わせる切換え制御手段とを含むことを
特徴とする除算装置である。
【0021】本発明に従えば、与えられた除数Dから、
D=2Q+PとD=2Q−Pとの2種類の式から異なる分
割桁数および除数差の組合わせを得ることができるが、
いずれを選択するか、すなわち、2種類の除算装置のう
ちいずれを選択するかによって商の収束の仕方に違いが
有る。第1の除数差Paと第2の除数差Pbの2倍の値
との大小関係に基づいて2種類の除算装置のうちのどち
らかが選ばれる場合、2種類の除算装置のうち、収束し
易い、あるいは、発散しない除算装置が選択されるの
で、より高速な除算が可能になる。
【0022】
【発明の実施の形態】図1は、本発明の実施の第1の形
態である除算装置の構成を示すブロック図である。図1
の除算装置は、式1に示すように、S進数表記の被除数
0をS進数表記の除数Dで除算して、商Xと剰余Yと
を求める。被除数N0および除数Dの進数表記には制限
がなく、進数の基数Sは2以上の任意の整数であり、除
数Dは3以上の任意の整数である。 N0÷D = X余りY …(1)
【0023】図1の除算装置は、剰余用レジスタ11、
商用レジスタ12、定数算出部13、剰余分割部14、
商更新部15、上位桁乗算部16、剰余更新部17、繰
返し制御部18、補正制御部19、商補正部20、およ
び剰余補正部21を含む。なお、図1における破線は、
補正制御部19の出力によって、剰余用レジスタ11お
よび商用レジスタ12の入力が切換えられる関係、なら
びに商補正部20と剰余補正部21との演算内容、すな
わち加算をするのか減算をするのかが切換えられる関係
を示している。
【0024】剰余用レジスタ11は、初期値として被除
数N0を記憶しており、演算過程では計算途上の剰余N
の更新記憶に用いられ、かつ最終的には剰余Yを記憶す
る。商用レジスタ12は、初期値として0を記憶してお
り、最終的には商Xを記憶する。定数算出部13は、与
えられた除数Dに基づき、仮除数SQの指数値、すなわ
ち分割桁数Qと、仮除数SQから除数Dを引いた除数差
*とを求め、それぞれを記憶する。分割桁数Qおよび
除数差P*は、式2を満たす。除数差P*の符号は、第1
の実施の形態では、正負どちらの値であってもよい。 D=SQ−P* ただし、Dは3以上の整数、かつ Qは、SQ≦Dを満たす最大の整数、または、 SQ≧Dを満たす最小の整数とする …(2)
【0025】剰余分割部14は、剰余用レジスタ11の
記憶値Nを、最下位桁から第Q桁までの下位桁NDと、
第Q+1桁から最上位桁までの上位桁NUとに分割す
る。商更新部15は、剰余用レジスタ11の記憶値Nの
上位桁NUを、商用レジスタ12の記憶値Kに加算し
て、加算結果K+NUを該商用レジスタ12に更新記憶
させる。上位桁乗算部16は、上位桁NUと除数差P*
とを乗算する。剰余更新部17は、上位桁乗算部16で
求められている積NU×P*を下位桁NDに加算し、加
算結果ND+NU×P*を新たな剰余Nとして剰余用レ
ジスタ11に更新記憶させる。繰返し制御部18は、剰
余用レジスタ11の記憶値の上位桁NUが0か否かを判
定し、0になるまで、剰余分割部14と商更新部15と
上位桁乗算部16と剰余更新部17とに、動作を繰返さ
せる。
【0026】補正制御部19は、剰余用レジスタ11の
記憶値の上位桁NUが0になった時点において、該剰余
用レジスタ11に残された剰余Nの符号に基づき、およ
び剰余Nの符号が正の場合は剰余Nと除数Dとの大小関
係に基づいて、剰余用レジスタ11の記憶値Nおよび商
用レジスタ12の記憶値Kの補正の必要性を判断する。
具体的には、残された剰余Nが負の場合は、剰余用レジ
スタ11に除数Dを加えてかつ商用レジスタ12の記憶
値から1を引き、残された剰余Nが除数D以上の場合
は、除数D未満になるまで剰余用レジスタ11の記憶値
から除数Dを引いてかつ商用レジスタ12の記憶値に1
を加えることを繰返す。残された剰余Nが0以上でかつ
除数Dより小さい場合は、補正処理は行わない。この時
点で商用レジスタ12に記憶されている記憶値Kが商X
として出力され、かつ該時点において剰余用レジスタ1
1に記憶されている記憶値Nが剰余Yとして出力され
る。
【0027】図2は、図1の除算装置における除算処理
を説明するためのフローチャートである。演算開始後、
ステップA0からステップA1に進む。ステップA1お
よびステップA2は、除算処理の前処理である。ステッ
プA1では、剰余用レジスタ11に被除数N0がストア
され、かつ商用レジスタ12がクリアされる。ステップ
A2では、除数Dに基づき、式2を用いて分割桁数Qと
除数差P*とが求められる。求められた分割桁数Qおよ
び除数差P*は定数算出部13に記憶される。
【0028】ステップA3では、剰余用レジスタ11に
記憶されている剰余Nおよび商用レジスタに記憶されて
いる商Kの更新記憶を行う。剰余分割部14内の下位桁
抽出部25で、剰余用レジスタ11に記憶されている剰
余Nのうち、最下位桁W1から第Q桁WQまでの部分が下
位桁NDとして抽出され、剰余分割部14内の上位桁抽
出部26で、前記剰余Nのうち、第Q+1桁WQ+1から
最上位桁までの部分が上位桁NUとして抽出されてい
る。これらの値を用いて処理が行われる。商更新部15
が、商用レジスタ12の記憶値Kに、得られている上位
桁NUを加算して、加算結果K+NUを商用レジスタ1
2に更新記憶させる。また、得られている上位桁NUと
除数差P*とを上位桁乗算部16が乗算し、積NU×P*
と上記の下位桁NDとの和を剰余更新部17が求める。
得られた和ND+NU×P*が、新たな剰余Nとして、
剰余用レジスタ11に更新記憶される。
【0029】ステップA4において、繰返し制御部18
は、更新後の剰余Nの上位桁NUが0であるか否かを判
断する。上位桁NUが0でなければ、ステップA3に戻
る。この結果、剰余レジスタ11の記憶値Nの上位桁N
Uが0になるまで、ステップA3の処理が施される。剰
余レジスタ11の記憶値Nの上位桁NUが0になった
後、ステップA4からステップA5に進む。
【0030】ステップA5〜A8は、除算の後処理であ
る。すなわち、剰余用レジスタ11に残っている値が剰
余Nとなるが、それが0以上かつ除数D未満であるかを
判定し、前記の範囲外であれば、商および剰余の補正を
行う。まず、ステップA5およびA6において、補正制
御部19は、商および剰余の補正の有無の判断のため
に、剰余Nの符号および該剰余Nと除数Dとの大小関係
の判断を行う。剰余Nが0以上でありかつ除数D未満で
ある場合、商および剰余への補正の必要はないので、ス
テップA7,A8を飛ばしてステップA9で除算処理を
終了する。なお、図2の後処理部分では、剰余用レジス
タ11の記憶値Nの代わりにその下位桁NDを用いてい
るが、剰余用レジスタ11の記憶値Nの上位桁NUは0
であるので、どちらでもよい。
【0031】ステップA5で剰余Nの下位桁NDが除数
D以上であると判定された場合、ステップA7に進み、
商補正部20が商用レジスタ12の記憶値Kに1を加算
し、加算結果K+1を商用レジスタ12に更新記憶させ
る。さらに剰余補正部21が、剰余Nから除数Dを減算
して、減算結果N−Dを剰余用レジスタ11に更新記憶
させる。なお、ステップA7の処理はステップA5にお
いて、下位桁NDが除数Dより小さくなるまで繰返され
る。
【0032】ステップA6で剰余Nが0未満であると判
定された場合、ステップA8を実行し、商補正部20が
商用レジスタ12の記憶値Kから1を減算して、減算結
果K−1を商用レジスタ12に更新記憶させる。さらに
剰余補正部21が、剰余Nに除数Dを加算し、加算結果
N+Dを剰余用レジスタ11に更新記憶させる。後処理
完了後、ステップA9で処理を終了する。ステップA9
に進んだ時点で、剰余用レジスタ11に剰余Yが、商用
レジスタ12に商Xが記憶されている。
【0033】以上説明したように図1の除算装置では、
数値を上位桁と下位桁の2個に分割する処理と加減算と
乗算とを主とする演算だけで実現されるので、演算処理
自体が極めて高速に行われる。なお、図1の剰余補正部
21、剰余更新部17、商更新部15、および商補正部
20は、加算器や減算器で構成されており、図1では分
かり易くするために各々独立なものとして示したが、こ
れら加算器および減算器を相互に共用させてもよい。
【0034】このような演算処理を繰返す除算装置で
は、該演算処理の繰返し回数が、従来技術の除算装置に
おける所定の演算処理の繰返し回数よりも大幅に減少さ
れるので、第1の実施の形態の除算装置は、商および剰
余を高速に求めることができる上、除数Dが3以上の整
数であればそれ以上の制限がないなどの特徴がある。さ
らにまた上記のように除算全体が極めて簡単な演算の繰
返しになっているので、図1の除算装置をハードウエア
で実現する場合、装置の構成の簡略化が可能になる。ま
た、上記演算手順に基づく処理を演算回路に実行させる
ソフトウエアを組込んだ場合でも、繰返して行われる演
算処理の回数が減少するため、高速に商や剰余を求める
ことができる。また図2のステップA5〜A8の説明で
述べたように、剰余用レジスタ11の上位桁NUが0に
至った後、該下位桁NDが0未満又は除数D以上であれ
ば、商や剰余の出力に先立ち、剰余用レジスタ11の記
憶値Nおよび商用レジスタ12の記憶値Kに対して後処
理が施されている。これによって図1の除算装置は、商
および剰余を誤りなく算出することができる。
【0035】図1の除算装置の定数算出部13が算出し
記憶し出力する分割桁数Qおよび除数差P*の算出方法
には、2通りの方法がある。第1の方法は、式3に基づ
いて分割桁数Qと除数差P*とを求める方法であり、第
2の方法は、式4に基づいて分割桁数Qと除数差P*
を求める方法である。除数差P*は、式3を用いたとき
は正または0となり、式4を用いたときは負または0と
なる。どちらの式を用いたか、すなわち、P*の符号が
正であるか負であるかは、剰余Nの更新時に影響を及ぼ
す。なお、P*が0の場合、式3および式4のどちらに
基づいて除算が行われてもよいが、この場合は、与えら
れた被除数N0の上位桁NUが商、下位桁が剰余である
ため、敢えて除算を行う必要はない。下位桁NDに加算
される上位桁と除数差との積NU×P*の符号は除数差
*の符号に等しくなるため、積の絶対値が加算される
か減算されるかは、分割桁数Qおよび除数差P*の設定
手法、すなわち式3および式4のどちらに基づいて決定
されたのかに依存して定まる。 SQ≧D,P*=SQ−D、 ただし、QはD≦SQを満たす最小の整数 …(3) SQ≦D,P*=SQ−D、 ただし、QはSQ≦Dを満たす最大の整数 …(4)
【0036】図3は、分割桁数Qが式3を満たす場合の
除算装置の演算アルゴリズムを説明するための図であ
り、進数Sが10、与えられた被除数N0が[1234
5642]、除数Dが[999]であると仮定してい
る。図3において、ステップS11では、まず、除数D
に基づき、式3を用いて分割桁数Qと除数差P*とが求
められる。式3を用いるのか式4を用いるのかについて
は後述する。図3では除数D=[999]なので、分割
桁数Q=3、除数差P*=1となる。次にステップS1
2において、商用レジスタ12がクリアされ、与えられ
た[12345642]が剰余用レジスタ11にストア
される。図3では、被除数N0=[12345642]
であり分割桁数Q=3であるので、被除数N0は上位桁
NU=[12345]と下位桁ND=[642]とに分
割される。
【0037】続いてステップS13において、上位桁N
Uの値[12345]が商用レジスタ12の記憶値であ
る0に加算されて、加算結果[12345]が商用レジ
スタ12に更新記憶される。次に上位桁NUと除数差P
*との積が下位桁NDに加算され、加算結果[642+
12345×1]=[12987]が、新たな剰余Nと
して、剰余用レジスタ11に更新記憶される。なお図3
では、除数差P*=1であり1を乗算しても値に変化は
ないので、上位桁NUをそのまま下位桁NDに加算して
いる。上記の更新された新たな剰余Nは[12987]
であり、該剰余Nの上位桁NU(=[12])は0でな
いので、ステップS14において、更新された剰余用レ
ジスタ11内の剰余Nが、再び上位桁NUと下位桁ND
とに分割される。以後ステップS13およびステップS
14と同じ処理が、上位桁NUが0となるまで繰返され
る。すなわち続いてステップS15において、剰余Nの
上位桁NUを商用レジスタ12の記憶値K(=[123
45])に加算して該商用レジスタ12の内容が更新さ
れ(K=[12357])、さらに上位桁NU(=[1
2])と除数差P*との積に剰余Nの下位桁NDを加算
した値(=[12]×1+[987]=[999])
が、新たな剰余Nとして、剰余用レジスタ11に更新記
憶される。
【0038】図3では、ステップS16で剰余Nの上位
桁NUは0となっているので、ここで繰返し処理は終わ
る。この結果ステップS16では、剰余用レジスタ11
に記憶されている剰余Nまたは下位桁NDが除数D以上
(ND≧D)になっている。具体的には、剰余用レジス
タ11に残る剰余Nと除数Dとが等しくなっている。ゆ
えにステップS17において、後処理として、商用レジ
スタ12の記憶値K=[12357]に1が加算され、
かつ剰余用レジスタ11の記憶値Nから除数Dが減算さ
れる。剰余Nが除数D未満(N<D)であれば、これら
の補正処理は行われない。ステップS18に示すよう
に、以上の処理の結果商用レジスタ12に残る最終の記
憶値K(=[12358])が商Xとして出力され、か
つ剰余用レジスタ11に残る記憶値N(=[0])が剰
余Yとして出力される。
【0039】図4は、分割桁数Qが式4を満たす場合の
除算装置の演算アルゴリズムを説明するための図であ
り、進数Sが10、与えられた被除数N0が[1234
500]、除数Dが[105]であると仮定している。
式4に基づき、分割桁数Q=2、除数差P*=−5とな
るが、図4の各ステップS22〜S29の処理は、図3
の各ステップS12〜S18の処理とそれぞれ比較する
と、以下の〔イ〕、〔ロ〕だけが異なり、他は等しい。
【0040】〔イ〕図3では、除数差P*の値は正であ
るが、図4の場合は負になる。剰余用レジスタ11内の
上位桁と除数差との積を下位桁に加算した和ND+NU
×P *を剰余用レジスタ11に更新記憶させているが、
図3では、上位桁NDと下位桁NUと除数差P*とがい
ずれも正であるのに対し、図4では、除数差P*の値が
負であり、下位桁NDと除数差P*との積および上記の
和が負になることがある。したがって、実質的には加算
をしたり減算をしたりすることになる。
【0041】〔ロ〕除数差P*が負数の場合、すなわち
図4の場合、下位桁NDと上位桁NUと除数差P*の積
の和、ND+NU×P*が負の値になることがあるた
め、剰余用レジスタ11は剰余Nの符号をも記憶してい
る。剰余Nが剰余分割部14で分割されるときは、該剰
余の上位桁NUおよび下位桁NDの両方が該剰余Nの符
号を共通的に用いる。すなわち剰余Nが負の値であれ
ば、該上位桁NUおよび下位桁NDは両方とも負の値に
なる。
【0042】また、図3では、すなわち式3を用いた場
合は、剰余用レジスタ11に残る剰余Nが除数D以上の
場合に後処理を行うが、図4では、すなわち式4を用い
た場合は、剰余用レジスタ11に残る剰余Nが負の値の
場合に後処理を行う。図4の場合の後処理は、商用レジ
スタ12の記憶値Kから1を減算し、剰余用レジスタ1
1の剰余Nに除数Dを加えるという処理であるが、この
処理、すなわち図2のステップA8の処理は1回行えば
よい。なお、図2のフローチャートは、図3および図4
を考慮したものになっている。
【0043】図1〜図4では、除数Dが除算装置の外部
から与えられる構成なので、定数算出部13において除
数差P*および分割桁数Qが求められている。除数Dを
与える代わりに、分割桁数Qと除数差P*とが、除算装
置の外部から数値で与えられてもよい。これによって定
数算出部13の省略が可能となる。また、剰余が不要な
場合は、図1では剰余補正部21、図2のフローチャー
トではステップA5およびステップ7を省略することが
できるので、除算装置の構成がさらに簡略化される。
【0044】式5は、式3に基づいて図3の数値例を用
いて、図1の除算装置の演算アルゴリズムを数式で示し
たものである。式6は、式4に基づいて図4の数値例を
用いて、図1の除算装置の演算アルゴリズムを数式で示
したものである。また、式7は、式3に基づいて図4の
数値例を用いて、図1の除算装置の演算アルゴリズムを
数式で示したものである。
【0045】また式5〜式7において細い一重線の下線
が付された項は、商用レジスタ12に加算される上位桁
NUの値を示し、二重線の下線が付された項は、上位桁
NUと除数差P*との積と下位桁NDとの和、すなわ
ち、新たに剰余用レジスタ11に記憶される値を示して
いる。また太い一重線の下線が付された項は、商として
出力される値を示し、波線の下線が付された項は、剰余
として出力される値を示している。式6および式7は同
じ被除数と同じ除数とを用いる除算であるが、式3と式
4のいずれを用いるかによって収束する速度が異なるこ
とを示している。
【0046】
【数1】
【0047】図5は、本発明の第1の実施の形態の除算
装置の他の構成例を示すブロック図である。図5の除算
装置は、図1の除算装置とほぼ同様の構成を有し、大き
くは次の点で異なっている。図1の除算装置では、与え
られた被除数N0と剰余更新部17および剰余補正部2
1から出力される数値とは、そのまま剰余用レジスタ1
1に記憶され、剰余分割部14は剰余用レジスタ11の
記憶値Nを分割桁数Qで分割している。図5の除算装置
では、与えられた被除数N0と剰余更新部17および剰
余補正部21から出力される数値とを剰余分割部14で
分割桁数Qに基づいて分割し、分割された数値を別々の
レジスタ11A,11Bに記憶させている。上位桁NU
を記憶する上位桁用レジスタ11A、および下位桁ND
を記憶する下位桁用レジスタ11Bは、別々に符号記憶
部41A,41Bをもってもよいし、共通的にもっても
よい。また、剰余補正部21の出力値は、剰余分割部1
4を経由してもよいし、下位桁用レジスタ11Bに直接
更新記憶されてもよい。
【0048】すなわち図5の除算装置では、剰余用レジ
スタ11の代わりに上位桁用レジスタ11Aと下位桁用
レジスタ11Bとが配置されており、与えられた被除数
0または剰余更新部17の出力値を定数算出部13か
ら与えられた分割桁数Qに基づき剰余分割部14によっ
て上位桁NUおよび下位桁NDに分割し、上位桁NUを
上位桁用レジスタ11Aに記憶させて、下位桁NDを下
位桁用レジスタ11Bに記憶させている。図1と図5と
では、これら2つのレジスタ11A,11Bの剰余分割
部14に対する位置が剰余用レジスタ11の剰余分割部
14に対する位置と反対になっている以外は同様であ
り、同様の動作を行う。この結果、図5の除算装置は、
図1の除算装置と動作内容が等しく、手順だけが異な
る。
【0049】図6は、図5の除算装置における除算処理
を説明するためのフローチャートである。演算開始後、
ステップA100からステップA101に進む。図2の
ステップA1,A2における前処理のうち、商用レジス
タのクリアと分割桁数Qおよび除数差P*の算出とだけ
がステップA101で行われ、被除数N0はステップA
102で剰余分割部14に与えられる。剰余分割部14
は、ステップA103で、与えられている最新の数値
を、分割桁数Qを境に上位桁NUと下位桁NDとに分割
して、求められた上位桁NUおよび下位桁NDを上位桁
用および下位桁用レジスタ11A,11Bに記憶させ
る。ステップA104で、繰返し制御部18が図2のス
テップA4と同様に、更新後の上位桁NUと0との比較
を行う。更新後の上位桁NUが0より大きい場合、ステ
ップA105で、図2のステップA3と同様に、商更新
部15が更新後の上位桁NUを商用レジスタ12の記憶
値Kに加算して加算結果K+NUを商用レジスタ12に
更新記憶させ、かつステップA106で、剰余更新部1
7が更新後の上位桁と除数差との積NU×P*に更新後
の下位桁NDを加算して、得られる和ND+NU×P*
を剰余分割部14に与えている。更新後の上位桁NUが
0以下の場合に実行されるステップA107〜A110
の後処理は、図2のステップA5〜A8の後処理と等し
い。
【0050】以上説明するように、図5の除算装置は、
図1の除算装置と同様に、除数Dに基づいて算出される
分割桁数Qおよび除数差P*を用いて被除数N0を除算す
るS進数の除算を、数値の分割と加算と減算と乗算の組
合わせまたは数値の分割と加算と乗算との組合わせで実
行する。これによって、除算装置の構成が簡単になり、
かつ商および剰余を高速に求めることができる。さらに
図5の除算装置は、与えられた被除数N0および除数D
の進数表記に拘わらず除算の実行が可能であり、かつ除
数Dの制限が極めて少ないので、従来技術の除算装置よ
りも汎用性が大幅に向上する。
【0051】本発明の第2の実施の形態である除算装置
について以下に説明する。第2の実施の形態の除算装置
は、式8に示すように、2進数表記の被除数N0を2進
数表記の除数Dで除算して商Xと剰余Yとを求めてお
り、かつ除数Dが式9または式10を満たす値に制限さ
れている。すなわち第2の実施の形態の除算装置は、図
1の除算装置において進数Sが2に限定され、かつ除数
差Pが2nとなる除数Dに限定されている。除数差Pを
定義している2nの指数nを、以後「除数差指数」と称
する。 N0÷D = X余りY …(8) D = 2Q−2n ただし、QはD≦2Qを満たす最小の整数、nは0以上の整数 …(9) D=2Q+2n ただし、QはD≧2Qを満たす最大の整数、nは0以上の整数 …(10)
【0052】図7は、第2の実施の形態の除算装置にお
いて、除数Dが式9で定義されている場合の演算アルゴ
リズムを説明するための図である。なお図7は、被除数
0が[11110111](10進数表記では[24
7]D)であり、除数Dが[111](10進数表記で
は[7]D)である場合の例になっている。なお以後の
説明および図において、サフィックスD(D)が付され
た数値は10進数表記、サフィックスH(H)が付され
た数値は16進数表記である。
【0053】ステップS41において、与えられている
被除数N0が剰余用レジスタ11にストアされ、かつ商
用レジスタ12の記憶値がクリアされ、さらに除数Dに
基づいて分割桁数Qと除数差指数nとが式9に基づいて
求められる。図7の例では、除数Dが[111]なの
で、分割桁数Q=[3]Dであり、除数差指数n=
[0]Dである。ステップS42において、剰余用レジ
スタ11の記憶値Nが、最下位桁からQ桁目まで、すな
わち1桁目から3桁目までの下位桁NDと、Q+1桁目
から最上位桁目まで、すなわち4桁目から8桁目までの
上位桁NUとに分けられる。
【0054】ステップS43,S44において、まず、
被除数N0、すなわち剰余レジスタ11の記憶値Nの8
桁目〜4桁目である上位桁NUが商用レジスタ12の記
憶値である0に加えられ、商用レジスタ12に更新記憶
される。図7の例では、[11110]が商用レジスタ
12に記憶される。次に、上位桁NUの各桁の値を除数
差指数nと同じ桁数だけ上位に桁移動した値が下位桁N
Dに加算され、加算結果が剰余用レジスタ11に更新記
憶される。以後の説明では、上位桁NUをn桁だけ桁移
動した数値の参照符に添字「n」を付し、「NUn」と
表記する。図7の例では除数差指数nが0なので、実際
には桁移動は行われない。図7の例では、[111]+
[11110]=[100101]が剰余用レジスタ1
1に記憶される。これらの処理が1サイクル目の処理で
ある。
【0055】1サイクル目の処理後において剰余用レジ
スタ11の記憶値の上位桁NUは0でないので、ステッ
プS45において、1サイクル目と同様の手順で、2サ
イクル目の処理が行われる。この結果ステップS46に
おいて、商用レジスタ12の記憶値である[1111
0]と上位桁NUである[100]の和である[100
010]が、商用レジスタ12に更新記憶される。また
剰余用レジスタ11の上位桁NUである[100]と下
位桁NDである[101]との和[1001]が剰余用
レジスタ11に更新記憶される。2サイクル目の処理後
に剰余用レジスタ11に記憶されている被除数用レジス
タの記憶値の上位桁は0でないので、ステップS47に
おいて、1サイクル目と同様の手順で、3サイクル目の
処理が行われる。この結果ステップS48において、商
用レジスタ12には[100011]が記憶され、剰余
用レジスタ11には[10]が記憶される。この時点で
剰余用レジスタ11の上位桁NUが0になるので、繰返
し処理が終わる。
【0056】繰返し処理の終了後、剰余用レジスタ11
の下位桁NDの記憶値[10]と除数Dである[11
1]とが比べられる。下位桁NDが除数D以上であれ
ば、後処理として、商用レジスタ12の記憶値Kに1が
加えられ、かつ剰余用レジスタ11の下位桁NDの記憶
値から除数Dが減算された後に、除算処理が終了する。
なお図7の例では、剰余用レジスタ11の下位桁NDの
記憶値は除数D未満なので、ステップS49において後
処理は行われない。以上の処理の結果、商用レジスタ1
2には商Xとして[100011]が記憶され、剰余用
レジスタ11には剰余Yとして[10]が記憶される。
【0057】図8は、図7の演算アルゴリズムに従って
除算を行う除算装置の構成を示すブロック図である。図
8の除算装置は図1の除算装置の構成と類似の構成を有
するので、図8の除算装置の構成部品のうち、図1の除
算装置の構成部品と基本機能が等しい部品には、該図1
の構成部品と同じ参照符を付している。図8の除算装置
の詳細な構成を、図7の数値例、すなわち被除数N0
[11110111]でありかつ除数Dが[111]の
場合を例として説明する。
【0058】最初に、剰余用レジスタ11に被除数N0
が記憶され、商用レジスタ12の記憶値が0にリセット
される。定数算出部13は、除数D=[111]から式
9に基づいて算出される分割桁数Q=3と除数差指数n
=0とを記憶する。
【0059】剰余用レジスタ11内の記憶値の第Q+1
桁以上の部分が、上位桁NUとして上位桁抽出部26に
よって抽出されて、上位桁乗算部16を実現しているシ
フタ31に与えられる。シフタ31は、定数算出部13
に記憶される除数差指数nに基づいて、剰余更新部17
を実現している加算器32に与えるべき加数を制御す
る。具体的には、シフタ31は、与えられている上位桁
NUの各桁を除数差指数nと同数のnビットだけ上方に
シフトさせたものを、加数として加算器32に与える。
たとえば、上位桁抽出部26から得られる上位桁NUが
[11110]であり、除数差指数n=[2]Dなら
ば、シフタ31は、上位桁NUの各桁を2ビットづつシ
フトした値、すなわち[1111000]を、加算器3
2に加数として与える。同時に、剰余用レジスタ11内
の記憶値の第Q桁以下の部分が、下位桁NDとして下位
桁抽出部25によって抽出されて、剰余更新用の加算器
32に被加数として与えられる。
【0060】剰余更新用の加算器32は、加算処理を行
い、加算結果を剰余用レジスタ11に戻して更新記憶さ
せる。上位桁NUは、上位桁抽出部26から、商更新部
15を実現している加算器33にも、加数として与えら
れる。また商用レジスタ12の記憶値Kは、商更新用の
加算器33に被加数として与えられる。商更新用の加算
器33は、加算処理を行い、加算結果K+NUを商用レ
ジスタ12に戻して更新記憶させる。剰余更新用の加算
器32および商更新用の加算器33の加算処理は、上位
桁抽出部26から出力される上位桁NUが0になるま
で、すなわち、繰返し制御部18を実現する判定器34
において上位桁抽出部26の出力内容が0であると判定
されるまで、繰返し実行される。上位桁抽出部26の出
力内容が0になったと判定されると、上記の加算処理は
終わり、後処理を行う。
【0061】後処理のために、補正制御部19を実現し
ている判定器35が、下位桁抽出部25から出力される
下位桁NDが除数D以上か否かを判定する。下位桁ND
が除数D未満であれば除算は終了する。下位桁NDが除
数D以上であれば、商補正部20を実現している加算器
36が、商用レジスタ12の記憶値Kに1を加えて商用
レジスタ12に更新記憶させ、剰余補正部21を実現し
ている減算器37が、剰余用レジスタ11の記憶値の下
位桁ND、すなわち剰余用レジスタの記憶値Nから除数
Dを減算して、得られる差を剰余用レジスタ11に更新
記憶させる。
【0062】図9は、図8の除算装置における除算処理
の手順を説明するためのフローチャートである。演算開
始後、ステップA10からステップA11に進む。ステ
ップA11では、剰余用レジスタ11に被除数N0がス
トアされ、かつ商用レジスタ12のクリアのために0が
ストアされる。ステップA12では、除数Dから式9に
基づき、分割桁数Qと除数差指数nとが求められる。
【0063】ステップA13では、まず剰余レジスタ1
1の記憶値Nから、上位桁NUおよび下位桁NDがそれ
ぞれ抽出される。次いで商用レジスタ12の記憶値Kに
上位桁NUが加算され、加算結果K+NUが商用レジス
タ12に更新記憶される。また上位桁NUの各桁をn桁
上位に桁移動した値NUnが下位桁NDに加算され、加
算結果ND+NUnが剰余用レジスタ11に更新記憶さ
れる。ステップA14において、上位桁NUと0とが比
較される。上位桁NUが0でない場合、ステップA14
からステップA13に戻る。上位桁NUが0になるま
で、更新後の剰余用レジスタ11および商用レジスタ1
2に対してステップA13の処理が施される。上位桁N
Uが0になった場合、ステップA14からステップA1
6に進む。
【0064】ステップA16において、下位桁NDと除
数Dとが比較される。下位桁NDが除数D未満である場
合、ステップA17を飛ばしてステップA19で除算処
理を終了する。下位桁NDが除数D以上である場合、ス
テップA16に進み、商用レジスタ12に記憶されてい
る値Kに1が加算されて、商用レジスタ12に加算結果
が更新記憶される。さらに下位桁NDから除数Dが減算
されて、減算結果が剰余用レジスタ11に更新記憶され
る。後処理完了後、ステップA19で処理を終了する。
【0065】図7〜図9で説明したように構成されてい
る除算装置は、式9を満たす除数Dに対して有効であ
り、商Xおよび剰余Yを高速に求めることができる。式
11は、図7〜図9の除算装置において有効な除数Dの
例を示す。 D=11 ,111 ,1111 ,11111, …… D=110 ,1110 ,11110 ,111110, …… D=1100 ,11100 ,111100 ,1111100, …… …(11) D=11000 ,111000 ,1111000 ,11111000, …… D=110000,1110000,11110000,……
【0066】第2の実施の形態の除算装置において、除
数Dが式10で定義されている場合、剰余用レジスタ1
1の記憶値Nの符号を記憶する構成が必要になる。剰余
用レジスタ11の記憶値Nが上位桁NUと下位桁NDと
に分割される場合、剰余用レジスタ11の記憶値Nの符
号と同じ符号が上位桁NUおよび下位桁NDに付され
る。すなわち剰余用レジスタ11の記憶値の符号は、該
数値の上位桁NUと該数値の下位桁NDとに共通な符号
となる。第2の実施の形態の説明では、説明を簡略化す
るため、負の数値は、補数でなく、符号と数値の絶対値
との組合わせで表現している。勿論負数を補数で扱うこ
とも可能である。
【0067】図10は、第2の実施の形態の除算装置に
おいて、除数Dが式10で定義されている場合の演算ア
ルゴリズムを示す図である。なお図10は、被除数N0
が[11110111](=[247]D)であり、除
数Dが[1001](=[9]D)である場合の例にな
っている。
【0068】ステップS71において、与えられている
被除数N0が剰余用レジスタ11にストアされ、かつ商
用レジスタ12の記憶値が0に戻され、さらに分割桁数
Qと除数差指数nとが求められる。図10の例では、除
数Dが[1001]なので、分割桁数Q=[3]Dであ
り、除数差指数n=[0]Dになる。ステップS72に
おいて、与えられている被除数N0、すなわち剰余用レ
ジスタ11の記憶値Nが、1桁目から3桁目までの下位
桁NDと、4桁目から8桁目までの上位桁NUとに分け
られる。
【0069】ステップS73において、先ず、上位桁N
Uが商用レジスタ12の記憶値0に加えられ、加算結果
である[11110]が商用レジスタ12に更新記憶さ
れる。次いで、上位桁NUの各桁を除数差指数nと同数
だけ上位に桁移動した値NUnが下位桁NDから減算さ
れる。減算結果は、ステップS74で、剰余用レジスタ
11に戻されて更新記憶される。なお図10の例ではn
=0なので、実際には桁移動は行われず、下位桁NDか
ら上位桁NUがそのまま減算される。この結果[11
1]−[11110]=[−10111]が、剰余用レ
ジスタ11に更新記憶される。これらの処理が1サイク
ル目の処理である。
【0070】1サイクル目と同様の手順で、ステップS
75の2サイクル目の処理を行うと、ステップS76に
おいて、商用レジスタ12は、[11110]と[−1
0]の和である[11100]を更新記憶し、剰余用レ
ジスタ11は、下位桁NDである[−111]から上位
桁NUである[−10]を引いた差である[−101]
を記憶する。ステップS76の段階で更新後の剰余用レ
ジスタ11の8桁目〜4桁目の部分が0となるので、繰
返し処理を終わる。
【0071】この後、剰余用レジスタ11の記憶値[−
101]が負であるので、ステップS77において、商
用レジスタ12の記憶値から1が減算されて、減算結果
[11100]−[1]=[11011]が商Xとして
商用レジスタ12に更新記憶される。かつ剰余用レジス
タ11の記憶値に除数Dである[1001]が加えられ
て、加算結果[−101]+[1001]=[100]
が剰余Yとして剰余用レジスタ11に更新記憶される。
なお、剰余用レジスタ11の記憶値が0以上のときは、
そのまま終了すればよい。
【0072】図11は、図10の演算アルゴリズムに基
づく除算を行う除算装置の構成を示すブロック図であ
る。図11の除算装置は、図1および図8の除算装置と
類似の構成を有し、図11の除算装置の構成部品のう
ち、図1および図8の除算装置の構成部品と基本機能が
等しい部品には、該構成部品と同じ参照符を付してい
る。図11の除算装置の詳細な構成を、図10の数値
例、すなわち被除数N0が[11110111]であ
り、かつ除数Dが[1001]の場合を例として説明す
る。すなわちこの場合、分割桁数Q=[3]Dであり、
除数差指数n=[0]Dである。なお図11の除算装置
においては、処理中に剰余用レジスタ11の記憶値の符
号が負になることがあるが、その符号は、剰余用レジス
タ11に付随する符号記憶部41に記憶され、かつ該符
号記憶部41に記憶される符号が、上位桁NUおよび下
位桁ND双方の符号になる。
【0073】まず最初に、剰余用レジスタ11に被除数
0が記憶され、符号記憶部41には「+」が記憶さ
れ、商用レジスタ12の記憶値が0にリセットされる。
図11の定数算出部13は、除数D=[1001]から
式10に基づいて算出される分割桁数Q=3と除数差指
数n=0とを記憶する。
【0074】上位桁抽出部26によって、剰余用レジス
タ11の記憶値のQ+1桁目以上の桁の記憶値が、上位
桁NUとして抽出されて、シフタ31に与えられる。図
11のシフタ31内部の構成および動作は図8のシフタ
31と等しい。上位桁NUを桁移動した値NUnは、剰
余更新部17を実現している減算器42に、減数として
与えられる。同時に下位桁抽出部25によって、剰余用
レジスタ11の記憶値NのQ桁目以下の桁の記憶値が、
下位桁NDとして抽出されて、剰余更新用の減算器42
に、被減数として与えられる。減算結果の絶対値および
符号は、新たな剰余Nの絶対値および符号として、剰余
用レジスタ11および符号記憶部41にそれぞれ更新記
憶される。商更新部15を実現している加算器33の入
出力および該加算器33の構成動作は、図8の商更新用
の加算器33と等しい。
【0075】剰余更新用の減算器42の減算処理および
商更新用の加算器33の加算処理は、上位桁抽出部26
から出力される上位桁NUが0になるまで、すなわち繰
返し制御部18を実現する判定器34において上位桁抽
出部26の出力内容が0であると判定されるまで、繰返
し実行される。上位桁抽出部26の内容が0になったと
判定されると、上記の加算および減算処理は終わり、後
処理が行われる。
【0076】後処理のために、補正制御部19を実現し
ている判定器45が、剰余用レジスタ11の下位桁ND
の記憶値が負であるか否かを判定する。そのためには、
符号記憶部41の記憶値、すなわち剰余レジスタの記憶
値Nの符号の正負を判定する。下位桁NDの符号が正ま
たは下位桁NDの値が0であれば、除算を終了する。符
号が負であれば、商補正部20を実現している減算器4
6が、商用レジスタ12の記憶値Kから1を減算して減
算結果を商用レジスタ12に更新記憶させる。さらに、
剰余補正部21を実現している加算器47が、剰余用レ
ジスタ11の記憶値剰余Nに除数Dを加算して剰余用レ
ジスタ11に更新記憶させる。
【0077】図10および図11で説明したように構成
されている除算装置は、式10を満たす除数Dに対して
有効であり、商Xおよび剰余Yを高速に求めることがで
きる。式12は、図10および図11の除算装置におい
て有効な除数Dの例を示す。 D=11 ,101 ,1001 ,10001 ,100001…… D=110 ,1110 ,11110 ,111110 ,…… D=1100 ,10100 ,100100 ,1000100 ,…… …(12) D=11000 ,101000 ,1001000 ,10001000,…… D=110000,1010000,10010000,……
【0078】図7〜図11で説明したように、除数Dが
式9および式10で表現される場合、剰余レジスタ11
の上位桁と除数差の積NU×2nが該上位桁NUの各桁
をn桁だけ上位に桁移動するだけで得られるので、該積
の演算が極めて簡単になる。これによって第2の実施の
形態の除算装置をさらに簡略化することができる。
【0079】図7〜図11で説明する除算装置は、除数
Dが限定されているが、従来技術の除算装置よりも多く
の除数を利用することができる。たとえば3以上255
以下の整数(10進数表記)のうちの除数Dとして利用
可能な数値は、特開平8−202533公報の除算装置
では3,7,15,31,63,127,255の7種
類であるが、図7〜図9の除算装置では、3,6,7,
12,14,15,24,28,30,31,48,5
6,60,62,63,96,112,120,12
4,126,127,192,224,240,24
8,252,254,255の28種類になっている。
また、図10〜図11の除算装置では、3,5,9,1
0,12,17,18,20,24,33,34,3
6,40,48,65,66,68,72,80,9
6,129,130,132,136,144,16
0,192,255の27種類になっている。このよう
に第2の実施の形態の除算装置は、従来技術の除算装置
よりも汎用性が高い。
【0080】また特開平8−202533公報の除算装
置は、除数D=2n−1のnの値に応じて、除数をnビ
ットづつ区切って処理を行うため、カウンタを用いてn
ビットのブロックを選択する構成等が必要であり、nを
パラメータとする回路の構成が非常に複雑になる。これ
に対し、図7〜図11の除算装置は、図1〜図6でも説
明したように、分割処理は被除数を初期値とする数値を
分割桁数Qを境界として2分する処理であり、分割桁数
Qをパラメータとする回路の構成がより簡単になる。こ
れによって図7〜図11の除算装置は、従来技術の除算
装置よりも構成が簡略化され、かつ高速に除算を行うこ
とができる。
【0081】図8および図11の構成を有する除算装置
において、除数Dが固定される場合、分割桁数Qと除数
差指数nも固定される。除数Dが固定値になる場合と
は、たとえば、図32で説明したような画像処理時に用
いられるデジタルフィルタにおいて、注目領域の全画素
の画素値の重付け平均の算出時に、画像の着目領域内の
各画素の画素値とフィルタマトリクス内の各フィルタ係
数との積の総和をフィルタマトリクス内のフィルタ係数
の総和で除算する場合であり、この場合は着目領域が変
更されても除数Dとなるフィルタ係数の総和は常に等し
い。
【0082】このように固定の除数Dを用いる除算装置
をハードウエアで実現する場合、上位桁抽出部26、下
位桁抽出部25、定数算出部13およびシフタ31を省
略し、代わりに、剰余用レジスタ11の第Q+1桁から
最上位桁までの各桁と剰余更新用の加算器の加数の各桁
の入力端子とを、除数差指数nに応じて結線すればよ
い。すなわち、剰余用レジスタ11のQ+j+n桁目の
桁が剰余更新用の加算器の加数のj+n桁目の値の入力
端子に接続されるように結線し、剰余用レジスタ11の
第Q桁から最下位桁までの各桁と加算器の被加数の入力
端子とを直結すればよい。これによって、除算装置の構
成がさらに簡略化され、かつ演算処理がさらに高速化さ
れる。なおここでjは、1以上の任意の整数である。
【0083】図12は、第2の実施の形態の除算装置に
おいて、図7と同様に除数Dが式9で定義されている場
合の演算アルゴリズムを説明するための図である。なお
図12は、被除数N0が[11110111]=[24
7]Dであり、除数Dが[1100]=[12]Dである
場合の例になっている。前述の図7は除数Dが23−2 0
の場合、すなわち除数差指数nが0の場合を示している
のに対し、図12は、除数Dが24−22の場合、すなわ
ち除数差指数nが2の場合を示している。図12の例と
図7の例との相違点は、図12の桁移動後の上位桁NU
nに示すように、剰余レジスタ11の記憶値Nの上位桁
NUと該記憶値の下位桁NDとの加算の際に、上位桁N
Uの各桁を2ビット上位方向へシフトした値NU×22
を加数としている点である。すなわち図12の例では、
上位桁NUの最下位桁に「00」を付加えたものを加数
としている。これで、上位桁NUの4倍値を加数として
下位桁NDに加えた場合と同じ結果が得られる。
【0084】図12の例と同様に、上位桁NUの最下位
桁に「0」を1個付加えると、上位桁NUを2倍した値
を加数とすることと等価であり、3個付加えると上位桁
NUを8倍した値を加数とすることと等価になる。剰余
更新のための加数処理時に上位桁NUの最下位桁に続け
て付加する0の個数を変えることによって、除数Dを変
えることができる。また図12で説明した手法は、除数
Dが式9で表現される場合に限らず、除数Dが式10で
表現される場合でも適用可能である。たとえば図12の
例において除数Dが24+21あるいは24+22である場
合、上述したように、剰余更新のための減数算出時に上
位桁NUの最下位桁に続けて0を1個あるいは2個付加
するなど、付加える0の個数を変えることによって、異
なる除数Dでの除算が可能になる。
【0085】本発明の第3の実施の形態である除算装置
について以下に説明する。第3の実施の形態の除算装置
は、式13に示すように、2進数表記の被除数N0を2
進数表記の除数Dで除算して商Xと剰余Yとを求める。
除数Dと分割桁数Qと除数差Pの間には、式14または
式15に示した関係がある。すなわち第3の実施の形態
の除算装置は、図1の除算装置において進数Sを2に限
定しただけのものである。 N0÷D = X余りY …(13) D = 2Q−P ただしDは3以上の整数、Qは2Q≧Dを満たす最小の整数、 Pは0以上の整数 …(14) D=2Q+P ただしDは3以上の整数、Qは2Q≦Dを満たす最大の整数、 Pは0以上の整数 …(15)
【0086】図13は、第3の実施の形態の除算装置に
おいて、除数Dが式14で定義されている場合の演算ア
ルゴリズムを説明するための図である。図14および図
15は、第3の実施の形態の除算装置において、除数D
が式15で定義されている場合の演算アルゴリズムを説
明するための図である。図13と図14および図15と
を合わせて説明する。図14,15では、負数を符号と
絶対値との組合わせとして扱っている。なお図13は、
被除数N0が[11100101000100011
1](=[234567]D)であり、除数Dが[11
10111](=[119]D)である場合の例になっ
ている。また図14,15は、被除数N0は図13と同
じであり、除数Dが[100110111](=[31
1]D)である場合の例になっている。
【0087】最初に、除数Dから分割桁数Qと除数差P
とが設定される。図13の場合、分割桁数Qおよび除数
差Pは式14に基づいて決定されるので、分割桁数Q=
[7]Dになり、除数差P=[9]Dになる。図14,1
5の場合、分割桁数Qおよび除数差Pは式15に基づい
て決定されるので、分割桁数Q=[8]Dになり、除数
差P=[55]Dになる。
【0088】定数Q,Pの設定後、図13および図1
4,15の演算アルゴリズムにおいては、剰余用レジス
タ11に対する演算サイクル、すなわちその記憶値の分
割と上位桁の商用レジスタへ12の累積加算と剰余レジ
スタ11の記憶値Nの更新が、繰返される。図13およ
び図14,15の各サイクルの中で、上位桁NUが商用
レジスタ12の記憶値Kに加算される構成は、図7およ
び図10で説明した演算アルゴリズムと等しい。図7お
よび図10の演算アルゴリズムとは異なる点は、図13
および図14,15ではどちらも、各サイクルの中で、
上位桁NUと下位桁NDとの加算または減算を行う前
に、上位桁NUがP倍されており、上位桁と除数差との
積NU×Pが剰余更新時の加数または減数になっている
点である。なお、前記積は、P倍された後も符号に変化
はない。図13および図14,15において、剰余レジ
スタ11の記憶値に対する演算サイクルの繰返し制御、
商および剰余の補正制御、ならびに商および剰余の補正
演算は、図7および図10における各制御とそれぞれ等
しい。
【0089】図16は、図13の演算アルゴリズム、す
なわち式14に基づいて除算を行う除算装置の構成を示
すブロック図である。また図17は、図14,15の演
算アルゴリズム、すなわち式15に基づいて除算を行う
除算装置の構成を示すブロック図である。図16の除算
装置を図8の除算装置と比較した場合、および図17の
除算装置を図11の除算装置の構成と比較した場合、そ
れぞれ、上位桁乗算部16がシフタ31で実現されてい
る点が異なり、他は等しい。
【0090】式14および式15に基づくと、図13〜
図17で説明したように、第3の実施の形態の除算装置
では、除数Dは、3以上の整数であれば特に制約はなく
どのような値でも取得る。このため図13および図1
4,15の除算装置のうちのどちらを用いるかが問題に
なる。そのためには演算サイクルの繰返し回数が少なく
なるほう、すなわち除算が早く収束するほうの除算装置
を選択する手がかりがあれば、非常に有用である。結論
から言えば、除算が早く収束するほうの除算装置を見出
す手がかりは、除数差Pに基づいて得られる。
【0091】収束の早さは、与えられた被除数N0にも
依存するが、剰余更新部17で更新されて剰余用レジス
タ11に残る数の絶対値の大きさ、すなわち剰余更新部
17で加減される剰余用レジスタ11の記憶値の上位桁
NUと除数差Pとの積の絶対値NU×Pに依存すると考
えられる。ここで、与えられた除数Dから式14に基づ
いて得た分割桁数および除数差をそれぞれQaおよびP
a、与えられた除数Dから式15に基づいて得た分割桁
数および除数差をそれぞれQb=Qa−1およびPb、
剰余用レジスタ11に記憶されている被除数をN0、式
14に基づいて得られる上位桁をNUa、下位桁をND
a、式15に基づいて得られる上位桁をNUb、下位桁
をNDbとすると、式16および式17の関係が成り立
つ。なお、式15に基づく分割桁数Qb=Qa−1は式
14に基づく分割桁数Qaよりも1だけ小さくなってい
るが、これは式14,式15の定義からくるものであ
る。 N0=NUa×2Qa+NDa=NUa×(D+Pa)+NDa =NUa×D+NUa×Pa+NDa …(16) N0=NUb×2Qa-1+NDb=NUb×(D-Pb)+NDb = NUb×D−NUb×Pb+NDb …(17)
【0092】上記の式16,17において、下位桁ND
a,NDbは被除数N0を2Qa,2Q a-1で割ったときの
剰余であり、概してそれらは小さいため、これらを無視
すると、N0≒NUa×2Qa≒NUb×2Qa-1 したがって、N
Ua×2≒NUbとなる。また式16および式17の下線部
は、剰余用レジスタ11に更新記憶される値である。同
様に剰余を無視して上位桁NUと除数差Pの積の絶対値
NU×Pを比較すると、 式16の場合、NUa×Pa 式17の場合、NUb×Pb≒NUa×2×Pb となる。したがって、Paと2×Pbの大きさを比較
し、小さくなる式を用いる除算装置を選択すれば、より
早く収束する可能性が高くなると考えられる。
【0093】そこで、式14の判定指標をα1、式15
の判定指標をα2とすると、式14および式15の判定
指標α1,α2は式18および式19で与えられ、これ
ら両判定指標α1,α2のうちの値が小さいほうの式
が、収束が早いと予想される。たとえば除数D=[13
1]Dである場合、2つの判定指標α1,α2は、式2
0および式21を用いれば、α1=125、α2=6と
なり、この場合は、式15、すなわち図17の除算装置
を用いるほうがよいことが判る。
【0094】 α1 = Pa …(18) α2 = 2×Pb …(19) 1)D=131のときの判定指標α1を求める。 D=131=28−125、したがって、Pa=125 ∴α1=125 …(20) 2)D=131のときの判定指標α2を求める。 D=131=27+3、したがって、Pb=3 ∴α2=2×3=6 …(21)
【0095】
【表1】
【0096】表1−Aは、図16および図17の除算装
置において、除数Dが[126]D以上[258]D以下
の場合について、式14と式15を用いて、2Qaと2
Qa-1との値、および2つの判定指標α1,α2を、計算
値として求めたものである。表1−Bは、上記の図16
および図17の除算装置において、[168]D以上
[178]D以下の除数Dで被除数N0=[23456
7]Dを除算した場合の実際のサイクル数を示す。サイ
クル数は、商Xおよび剰余Yの算出時に行われるサイク
ルの繰返し回数である。
【0097】表1−Aの両判定指標α1,α2を除数D
毎に比較すると、除数Dが[126]D,[127]D
および[171]D以上[255]D以下のときは図16
の除算装置の判定指標α1のほうが小さく、除数Dが
[129]D以上[170]D以下,[257]D,およ
び[258]Dのときは図17の除算装置の判定指標α
2のほうが小さくなる。しかしながら、表1−Bに示す
ように、被除数N0を[234567]Dとして実際のサ
イクル数を調べると、除数Dが[170]D付近のサイ
クル数に関しては、除数Dが[173]D以下のときは
図17の除算装置のほうがサイクル数が少なく、除数D
が[178]D以上のときは図16の除算装置のほうが
サイクル数が少なくなる。除数Dが[174]D以上
[177]D以下では,図16および図17の除算装置
のサイクル数は相互に等しい。同じサイクル数となる区
間を除くと、除数Dが[171]D〜[173]Dの区間
において判定指標に基づく収束予測は正しくないが、該
区間内における図16および図17の除算装置のサイク
ル数の差は1であり影響は少ない。また判定指標に基づ
く収束予測が不安定になる区間は極めて狭い範囲に限ら
れているので、影響が少ない。
【0098】以上説明したように、収束速度を判定指標
α1,α2の比較結果に基づいて判断する場合、除算選
択結果は完全ではないが殆どの場合は有効であり、除算
の収束をより速めることができる。また上記の選択判断
において、式14および式15の判定指標α1,α2は
極めて簡単に比較することができるので、有効な手がか
りとなる。
【0099】除数Dが予め決定されている場合、第3の
実施の形態の除数装置の設計時に上記の判定指標α1,
α2を用いた判定を行い、収束が早いと判定されたいず
れか一方の演算アルゴリズムに従って除数装置を設計す
ればよい。また除数D自体が変数である除数装置におい
て、剰余更新部17と商補正部20と剰余補正部21と
が加算処理および減算処理を切換え可能に構成され、か
つ補正制御部19が2種類の判定処理を切換え可能に構
成されているならば、除数Dが与えられるたびに、定数
算出部13が上記の判定指標α1,α2を用いた判定を
行い、収束が早いと判定されたいずれか一方の演算アル
ゴリズムに従って分割桁数Qおよび除数差Pを設定すれ
ば良い。
【0100】上述した第1〜第3の実施の形態の除算装
置において、剰余用レジスタ11の記憶値Nが負数にな
る可能性がある状況下では、その値は絶対値と符号との
組合わせで表されている。すなわち、剰余用レジスタ1
1は該剰余Nの絶対値を記憶すると共に、該剰余Nの符
号を符号記憶部41に記憶する。これに限らず、第1〜
第3の実施の形態の除算装置において、剰余用レジスタ
11の記憶値Nが負になる可能性がある状況下では、負
数が補数表現されていてもよい。負数を補数のまま扱う
と、商更新部15、剰余更新部16、商補正部20、剰
余補正部21は、与えられる数値の符号を気にせずに構
成することができる。
【0101】図18および図19は、第1〜第3の実施
の形態の除算装置において、負数を補数表現して扱う除
算装置の演算アルゴリズムを説明するための図である。
図18,19は、第3の実施の形態の除算装置におい
て、除数Dが式15で定義されており、かつ負数を補数
として扱う場合の例になっている。図18,19の例に
おいては、被除数N0および除数Dの具体値として、図
14,15の例で用いた具体値を用いている。図18,
19の演算アルゴリズムは、図14,15の演算アルゴ
リズムと比較すると、負数の取扱いだけが異なり他は等
しいので、負数の取扱いに関する部分だけを以下に説明
する。なお以後の説明において「H」が付された数値は
16進数表記されている。
【0102】剰余用レジスタ11の記憶値Nが正の値の
場合、すなわち補数でない場合、上位桁NUが商用レジ
スタ12の記憶値Kに加算され、該上位桁NUと除数差
Pとの積を下位桁NDから減算した差ND−NU×Pが
剰余用レジスタ11に更新記憶される。たとえば図1
8,19では、1サイクル目の処理に当たる。
【0103】剰余用レジスタ11の記憶値Nが負の場
合、剰余用レジスタ11には補数表記された剰余Ncが
記憶されている。この場合、まず補数表記の剰余Ncが
上位桁NUcと下位桁NDcとに分割され、かつ該補数
表記の下位桁NDcが0か否かが判定される。補数表記
の下位桁NDcが0ではないならば、補数表記の上位桁
NUcの最下位桁に1が加えられる。補数表記の下位桁
NDcが0のときは、そのまま次の処理に移る。補数表
記の剰余用レジスタ11の記憶値の分割後の上記処理
は、補数表記の値を分割して利用するために生ずるもの
である。
【0104】次に、補数表記の上位桁NUcが商用レジ
スタ12の記憶値Kに加算されて該記憶値が更新され
る。さらに補数表記の上位桁NUcと除数差Pとの積が
求められ、該積NUc×Pの下位桁NDcから減算され
る。なお剰余用レジスタの記憶値Nが負であって補数表
記されている場合、下位桁NDcの最上位桁より上の全
桁の値を全て1と見なして、減算を行う。被減数内の下
位桁NDcの最上位桁より上の桁を、図18のサイクル
2では符号「※」を付して示している。下位桁NDcか
ら上記積NUc×Pを引いた差が、新たな剰余用レジス
タ11の記憶値Nとなる。なお得られる差が再び補数の
ときは、そのまま補数表記された記憶値Ncとして、剰
余用レジスタ11に更新記憶される。以上の処理は、た
とえば図18,19では、2サイクル目の処理に当た
る。
【0105】以降、剰余用レジスタ11の記憶値Nが更
新されるたびに、正であるか負であるかに対応して、す
なわち剰余用レジスタ11内の被除数剰余用レジスタ1
1の記憶値Nが補数表記されているかいないかに対応し
て、剰余用レジスタ11に対する演算サイクルの詳細処
理が切換えられる。剰余用レジスタ11の記憶値Nが正
であれば、図18,19の1サイクル目と同じ処理が行
われる。または剰余用レジスタ11の記憶値Nが補数で
あれば、図18,19の2サイクル目と同じ処理が行わ
れる。なお図18,19の上記の1サイクル目および2
サイクル目の説明は、剰余Nが正および補数の場合の演
算サイクルの詳細処理の例示であり、1サイクル目およ
び2サイクル目に剰余レジスタ11の記憶値Nが正また
は補数に限定されているとは限らない。
【0106】図18,19の例における演算手順を以下
に詳細に説明する。演算開始時点であるステップK1で
は、商用レジスタ12がクリアされて0が記憶され、か
つ被除数N0=[39447]H=[234567]D
剰余用レジスタ11に記憶されている。除数Dは[13
7]H=[311]Dである。図14,15の例と同様
に、除数Dの値から、式15に基づき、分割桁数Qが
[8]Dに設定され、除数差Pが[55]Dに設定され
る。なお式14に基づいて分割桁数Q=[9]D、除数
差P=[201]Dと設定することも可能であるが、式
14および式15の判定指数α1,α2の大小関係が式
22に示す関係になっているので、式15を用いる場合
よりも式14を用いた場合のほうが収束が遅くなる。し
たがって、除数Dが[311]Dのときは、式15、す
なわち図18,19の処理を用いたほうが、効率がよ
い。 α1=Pa=201>α2=2・P2=2・55=110 …(22)
【0107】1回目の演算サイクルでは、分割桁数Qが
8に設定されているので、上位桁NUは[394]H
なり、下位桁NDは[47]Hになる。上位桁NUは正
なので、ステップK11において、該上位桁NUが商用
レジスタ12の記憶値にそのまま加えられる。この結
果、商用レジスタ12の記憶値Kは[394]Hにな
る。またステップK13において、上位桁NUが55倍
される。ステップK14において、乗算結果NU×Pで
ある[C4CC]Hが下位桁NDから減算される。得ら
れた差[F…F3B7B]Hは、補数のまま剰余用レジ
スタ11に更新記憶される。
【0108】1サイクル目終了時に剰余用レジスタ11
に記憶される新たな剰余Nは、負の値になっている。図
14,15の例では、補数を負数に変換し、マイナス符
号と絶対値との組合わせ([−11000100100
00101]=[−C485]H)として、剰余用レジ
スタ11に記憶するが、図18,19の例では、補数
([1…110011101101111011]=
[F…F3B7B]H)のまま剰余用レジスタ11に記
憶される。
【0109】2回目の演算サイクルでは、剰余用レジス
タ11に記憶されている数は補数表現されており、かつ
下位桁NDは0ではないので、ステップK22におい
て、該上位桁NUc(=[F…F3B]H)に1が加え
られる。この結果得られる値[F…F3C]Hが、ステ
ップK21において商用レジスタ12の記憶値に加えら
れる。この結果ステップK26における商用レジスタ1
2の記憶値Kは[2D0]Hになっている。さらに、上
位桁NUcに1を加算した値(=[F…F3C]H)が
ステップK23において55倍され、この結果得られる
積[F…FD5E4]HがステップK24において下位
桁NDcから減算される。得られた差[2997]
Hが、ステップK25において剰余用レジスタ11に更
新記憶される。
【0110】3回目および5回目の演算サイクルにおい
て、剰余用レジスタ11の記憶値は正なので、該演算サ
イクルの演算手順は1回目の演算サイクルの演算手順と
等しい。4回目の演算サイクルにおいて、剰余用レジス
タの記憶値は補数表記されているので、該演算サイクル
の演算手順は2回目の演算サイクルの演算手順と等し
い。5回目の演算サイクルにおいて更新された剰余用レ
ジスタの記憶値N(ステップK55…図17)の上位桁
NUの値は0であるので、後処理に移行する。
【0111】図20は、図18,19の演算アルゴリズ
ムに基づいて除算を行う除算装置の構成を示すブロック
図である。なお図20の除算装置は、除数Dが可変であ
る場合の例になっており、また商補正部、剰余補正部お
よび剰余制御部は省略されている。図20の除算装置の
構成は、前述の図1、図8、図11、図16、および図
17の除算装置に類似しているので、図18の構成部品
のうちの図1,8,11,16,17の除算装置の構成
部品と基本機能が等しいものには、同じ参照符を付して
いる。なお図20において、太線は、データが流れるラ
インを示し、細線は制御信号が流れるラインを示す。デ
ータは複数ビットから構成されており、データが流れる
ラインは複数本の配線から構成される。
【0112】図20の除算装置は、前述した図1の除算
装置の構成に加えて、剰余用レジスタ11に記憶される
補数を処理するための補数処理部51をさらに含む。補
数処理部51は、第1判定部52と第2判定部53と第
3判定部57とアンドゲート54と加算器55とを含ん
でいる。また図20の除算装置は、第3の実施の形態の
2種類の演算アルゴリズムを適宜切換えて実行可能に構
成されている。このために図20の除算装置には、演算
アルゴリズムの選択判定を行う切換え制御値を記憶し制
御する切換え制御記憶器SWが設けられており、その出
力に応じて加算処理と減算処理とを切換え可能な加減算
器56によって剰余更新部17が実現されている。
【0113】補数処理部51内の第1判定器52は、上
位桁NUが負数か否か、すなわち上位桁NUが補数か否
かを判定する。補数処理部51内の第2判定器53は、
最新の下位桁NDが0か否かを判定する。アンドゲート
54には、第1判定器52の判定結果を示す信号と第2
判定器53の判定結果を示す信号とが入力されている。
上位桁NUが補数であると判定されかつ下位桁NDが0
でないと判定されている場合だけアンドゲート54から
の出力信号が「1」になり、残余の場合は該出力信号が
「0」になるように、第1判定器52と第2判定器53
とアンドゲート54とは組合わされている。補数処理部
51内の加算器55は、上位桁NUにアンドゲート54
からの出力信号が示す数値を加算する。加算器55によ
って得られる和は、上位桁乗算部16に被乗数として与
えられ、かつ商更新用の加算器33に被加数として与え
られる。
【0114】図21は、図20の除算装置において、負
数を補数で取扱う処理を含む除算の演算処理を説明する
ためのフローチャートである。図20と図21とを合わ
せて説明する。被除数N0と除数Dとが与えられると、
ステップA20からステップA21に進む。ステップA
21において、被除数N0が剰余用レジスタ11に格納
され、かつ商用レジスタ12がクリアされる。
【0115】ステップA22において、除数Dから式1
4に基づいて分割桁数Qaおよび除数差Paを求め、さ
らに除数Dから式15に基づいて分割桁数Qb=Qa−
1および除数差Pbを求める。これらによって、上述の
判定指標α1,α2が算出され、該判定指標α1,α2
を用いて2種類の演算アルゴリズムのうちの収束が早い
いずれか一方が選択される。式23に示すように、式1
4の判定指標α1が式15の判定指標α2より小さけれ
ば、式14に基づく分割桁数Qaおよび除数差Paがそ
れぞれ実際の除算に用いられるQ,Pとなり、式14の
判定指標α1が式15の判定指標α2より大きければ、
式15に基づく分割桁数Qbおよび除数差Pbがそれぞ
れ実際の除算に用いられるQ,Pとなる。また、このと
きどちらの式が選択されたのかを、制御切換えのための
切換え制御記憶器SWに記憶させる。 α1<α2のとき、Q=Qa、P=Pa、SW=0 α1>α2のとき、Q=Qb、P=Pb、SW=1 …(23)
【0116】ステップA23〜A29は、図18,19
における各サイクルの処理に相当する部分である。剰余
用レジスタ11内の記憶値が更新されるたびに、剰余分
割部14は、設定された分割桁数Qに応じて、更新され
た剰余用レジスタ11の記憶値を上位桁NUと下位桁N
Dとに分割する。ステップA23において補数処理部5
1内の第1判定器52は、上位桁NUが補数か否かを判
定する。ステップA24において補数処理部51内の第
2判定器53は、下位桁NDが0か否かを判定する。
【0117】上位桁NUが補数でありかつ下位桁NDが
0でない場合だけ、ステップA25において、補数処理
部51内の加算器55が、補数表現されている上位桁N
Ucに1を加算する。上位桁NUが補数でない場合、あ
るいは下位桁NDが0である場合には、ステップA25
の処理が飛ばされるので、補数処理部51内の加算器5
5から上位桁NUがそのまま出力される。次にステップ
A26では、上位桁NUを、商更新用の加算器33が商
用レジスタ12の記憶値Kに加えてその記憶値を更新さ
せる。
【0118】ステップA27において、式14あるいは
式15のいずれに基づいて処理を行っているのかを切換
え制御記憶器SWで判定し、演算内容を選択する。剰余
更新部17内の加減算器56は、切換え制御記憶器SW
が0であれば、ステップA28において加算器として、
また1であれば、ステップA29において減算器として
動作する。
【0119】ステップA28およびA29では、上位桁
乗算部16は、補数処理部51内の加算器55からの出
力値と除数差Pとの積を求め、それを下位桁NDに加
算、または下位桁NDから減算する。すなわち、この積
を被除数更新用の加減算器56に加減数として与え、下
位桁NDを被加減数として与えればよい。なお、図18
の除算装置において除数差Pが2nで表現される場合
は、上位桁乗算部16はシフタ31で実現され、乗算の
代わりに、加算器55からの出力値の各桁をn桁上位に
桁移動させたものを加数または減数にすればよい。
【0120】ステップA30において、繰返し制御部1
8を実現している判定器34は、更新後の剰余レジスタ
11の記憶値Nの上位桁NUが0か否かを判定し、ステ
ップA31において、補数処理部51内の第3判定器5
7は、剰余用レジスタの記憶値Nの上位桁NUの全桁が
1であるか否か、すなわち該記憶値Nが補数でかつその
上位桁NUが0に相当する値であるか否かを判定する。
記憶値Nが補数の場合、その上位桁NUが[FF…FF
H]のとき、上位桁NUは実質的には0であることを意
味する。上位桁NUが0でない場合で、しかも全桁が
[FF…FFH]でない場合、ステップA31からステ
ップA23に戻り、再び、剰余用レジスタ11の記憶値
Nに対してステップA23〜A29の処理を施す。そう
でない場合、後処理に進む。すなわち、上位桁NUが0
の場合はステップA32に進み、上位桁NUが[FF…
FFH]の場合はステップA34に進む。なお、ステッ
プA30で、NU=0と判定された場合に下位桁NDに
残った剰余は正であるが、ステップA31で、NU=
[FF…FFH]と判定された場合に下位桁NDに残っ
た剰余は実質的には負である。ステップA32におい
て、剰余用レジスタ11の記憶値N、すなわち剰余と除
数Dの大きさとが比較される。記憶値Nが除数D以上で
あれば、ステップA33において商用レジスタ12の記
憶値Kに1が加算されて更新記憶され、かつ剰余用レジ
スタ11の記憶値N、または該記憶値Nの下位桁ND
(NU=0であるためN=ND)から除数Dが減算され
て更新記憶されて、ステップA35で除算処理が終了す
る。剰余用レジスタ11の記憶値Nが除数D未満あれ
ば、ステップA33の処理が飛ばされて、ステップA3
5で除算処理が終了する。ステップA31において、上
位桁NUの全桁が1である場合、すなわち、NU=[F
F…FFH]である場合、上位桁NUは絶対値に直せば
0でありかつ負数であるので、ステップA31からステ
ップA34に進む。ステップA31は、演算サイクルの
繰返し制御時の0判定と補正制御のための負数判定とを
兼ねている。ステップA34において、商用レジスタ1
2の記憶値Kから1が減算されて更新記憶され、かつ剰
余用レジスタ11の記憶値Nに除数Dが加算されて更新
記憶され、ステップA35で除算処理が終了する。
【0121】以下の図22〜図27を用いて、第1〜第
3の実施の形態の除算装置の各構成部品の詳細構成の一
例を示す。なお図22〜図27の説明では、説明の簡略
化のために、除算装置が2進数の数値を取扱う場合を想
定した例になっている。
【0122】図22は、式14および式15に基づいて
分割桁数Qと除数差Pとを求める定数算出部13の算出
処理を説明するためのフローチャートである。また、図
22の処理では、判定指標に基づいて切換え制御記憶器
SWの設定も行う。図23(A)は式9に基づいて、図
23(B)は式10に基づいて、分割桁数Qと除数差指
数nとを求める定数算出部13の算出処理を説明するた
めのフローチャートである。勿論、除数Dが固定的に与
えられる場合はこのような処理は不要である。また、図
8および図11の除算装置を共通化するときは、図23
(A)、図23(B)のステップB1,B21に、「0
→SW」、「1→SW」をそれぞれ追加し、図20と同
様に、図8または図11において切換え制御記憶器SW
を追加した上で、剰余補正部21、剰余更新部17、商
補正部20の加算器または減算器を加減算器とし、さら
に補正制御部19の判定内容が切換えられるようにすれ
ばよい。
【0123】図22,23の算出処理のために、定数算
出部13は、最大V桁の数値を記憶可能な除数差P用レ
ジスタを備えている。図22,23の説明では、除数差
P用レジスタ内の第v桁目の記憶値をPvと記す。ま
た、与えられた除数Dを記憶するM桁のレジスタの第m
桁目の記憶値をDmとする。mは1以上M以下の整数、
vは1以上V以下の整数である。また、SWは制御切換
えのための切換え制御記憶器であり、式14あるいは式
15に基づいて処理を行うのかを制御するための記憶器
である。
【0124】図22のステップB1〜B3、図23
(A)のステップB11〜B13、および図23(B)
のステップB21〜B23が、除数Dから分割桁数Qを
求める演算である。分割桁数の算出時には、除数Dを記
憶するレジスタDRの第m桁目の記憶値Dmと0との比
較が最上位桁から最下位桁に向かって順次行われ、記憶
値Dmが0と一致しないと判定される最初の桁の位置が
仮の分割桁数Qとして用いられる。また図23(A)お
よび図23(B)において除数差指数nを算出するステ
ップB30〜B33は等しいので、図面では共通に記し
ている。除数差指数の算出時には、除数差Pを記憶する
レジスタPRの第v桁目の記憶値Pvと0との比較が最
上位桁から最下位桁に向かって順次行われ、記憶値Pv
が0と一致しないと判定される最初の桁の位置が除数差
指数nとして用いられる。なお、図22のステップB4
およびステップB6について補足する。
【0125】ステップB4において、式9と式10のい
ずれを用いれば、または、式14と式15のいずれを用
いればより収束が早いかを判定する。そのためには、式
14および式15の判定指標α1,α2を求めて比較し
てもよいが、2Q+1と3×Dの大きさを比較してもよ
い。これは、 α1 = Pa = 2Q−D α2 = 2×Pb = 2×(D−2Q-1) = 2×D−
Q であるから、α1>α2は、2Q−D>2×D−2Qに等
価であり、移項すれば、 2Q+1 > 3×D …(24) が得られる。式24を満たす場合はα1>α2である。
式24を満たす場合は式15を用い、そうでない場合は
式14を用いれば、より収束が早くなる。ステップB6
でQから1を引いているが、これは式10あるいは式1
5で得られるQの値は、式9あるいは式14で得られる
Qの値より常に1小さくなるためである。
【0126】定数算出部13は分割桁数Qを2進数表記
で記憶しており、該分割桁数Qはデコード回路を経由し
て、上位桁抽出部26および下位桁抽出部25に与えら
れる。図24は、分割桁数Qのデコード回路の構成を示
すブロック図である。図24では、Q=1からQ=25
5までデコードされているが、たとえば、除数Dが、2
55≧D≧65に限定されており、式14に基づいて処
理が行われる場合は、Q=7またはQ=8の出力で充分
である。そのときは、当然ながら図24の回路構成は大
幅に簡略化される。
【0127】図25は、剰余用レジスタ11から下位桁
NDを抽出する下位桁抽出部25の構成を示すブロック
図である。分割桁数の値がQであるとき、図25に示し
たANDゲートおよびORゲートの動作によって、剰余
用レジスタ11の第Q桁〜第1桁の記憶値を出力する構
成となっている。図26は、剰余用レジスタ11から上
位桁NUを抽出する上位桁抽出部26の構成を示すブロ
ック図である。分割桁数の値がQであるとき、図26に
示したANDゲートおよびORゲートの動作によって、
剰余用レジスタ11の最上位桁〜第Q+1桁の記憶値を
出力する構成となっている。なお、図25,26におい
て、剰余用レジスタ11の最上位桁の記憶値は常に上位
桁NUの一部として出力され、下位桁に含まれることは
ない。また、最下位桁の記憶値は常に下位桁NDの一部
となり、上位桁には含まれることはない。
【0128】図25の下位桁抽出部25および図26の
上位桁抽出部26が除算装置に備えられるなら、分割桁
数Qを可変にすることが可能になり、除数Dの自由度が
増大する。除算装置において、除数Dが予め設定されて
いて固定されているならば、下位桁抽出部25および上
位桁抽出部26をANDゲートおよORゲートを用いて
構成する必要は無く、分割桁数Qに合わせて構成される
スルーラインだけを設ければ良いので、下位桁抽出部2
5および上位桁抽出部26は省略することができる。た
とえば、分割桁数Qが5に固定されているならば、下位
桁抽出部25は剰余用レジスタ11の第5桁〜第1桁の
記憶値を出力し、上位桁抽出部26は剰余用レジスタ1
1の最上位桁〜第6桁の記憶値を出力すればよい。
【0129】除数差指数nはデコード回路を経由してシ
フタ31に与えられる。除数差指数nのデコード回路の
構成は、分割桁数Qのデコード回路の構成と等しい。図
27は、第2の実施形態の除算装置に備えられるシフタ
31の構成を示すブロック図である。なお図27は、除
数差指数nの最大値が11である場合を例としている。
シフタ31は、入力された数値の各桁をnビット上方へ
シフトした値を出力する。すなわち、入力された上位桁
NUのある桁NUiをNUi+n桁の値として出力し、剰余
更新部の加減算器の加減数の第i+n端子に与えられ
る。たとえば、上位桁NU3、すなわち剰余用レジスタ
11の記憶値NのQ+3桁目の値は、n=0ならばその
まま加減数の第3端子、n=1ならば第4端子に与えら
れる。
【0130】図27は、除数差指数nが可変である場合
についてシフタ31の構成を示したものであるが、その
値が固定である場合はこのような構成は不要であり、除
数差指数nの値に基づいて上位桁NUと剰余更新部の加
減算器の加減数の端子との結線方法を変更するだけでよ
い。なお、図27のt1〜t23はORゲート群の出力
値をその()内に示したもので、出力値tiは、図8お
よび図11の剰余更新部17の加減算器の加減数側の第
i端子に接続される。()内の“/”の左側は、nの
値、右側は上位桁の桁数を表している。たとえば、(0
/2+1/1)は、(n=0)*(NU2)+(n=
1)*(NU1)を表す。
【0131】図28は、上位桁乗算部16の構成を示す
ブロック図である。図28の例では、除数差Pが最大8
ビットの値の図となっている(すなわち、V=8)。図
28における加算器B1〜B4の構成を図29に示し、
また、定数算出部13に含まれる除数差Pの記憶器PR
を図30に示す。図29の加算器は入力された数値X1
〜XjをPxが1のときそれを被加数とし、Pyが1の
ときそれを1桁上方へシフトしたものを加数として和を
求める。PxおよびPyが0のときは、被加数および加
数は0となる。図28の加算器B1はPxとして除数差
Pの記憶器PRの第1桁目の値P1、Pyとして除数差
Pの記憶器の第2桁目の値P2が与えられる。すなわ
ち、加算器B1の出力は、 (Xj〜X1) ×P1+(Xj〜X1) ×P2×21=(Xj〜X1) ×(P2×21
+ P1×20)=B1出力 となる。同様にして、 (Xj〜X1) ×P3+(Xj〜X1) ×P4×21=(Xj〜X1) ×(P4×21
+ P3×20)=B2出力 (Xj〜X1) ×P5+(Xj〜X1) ×P6×21=(Xj〜X1) ×(P6×21
+ P5×20)=B3出力 (Xj〜X1) ×P7+(Xj〜X1) ×P8×21=(Xj〜X1) ×(P8×21
+ P7×20)=B4出力 が、加算器B2〜B4で求められる。加算器A1〜A3
は、図28の図中の通常の加算器と同じ構成である。加
算器B1およびB3の出力を加算器A1および加算器A
2の被加数側の入力端子に、加算器B2およびB4の出
力を2桁上位側へシフトしたものを加算器A1および加
算器A2の加数側の入力端子に接続し、加数側の下位2
桁の入力端子を0としている。したがって、加算器A
1、A2の出力は、 (B1出力)+(B2出力)×22=(Xj〜X1)×(P4×23+P3×22+P2
×21+P1×20) =A1出力 (B3出力)+(B4出力)×22=(Xj〜X1)×(P8×23+P7×22+P6
×21+P5×20) =A2出力 となる。さらに、加算器A1の出力を加算器A3の被加
数側の入力端子に、加算器A2の出力を4桁上位側へシ
フトしたものを加算器A3の加数側の入力端子に接続
し、加数側の下位4桁の入力端子を0としている。した
がって、加算器A3の出力は、 (A1出力)+(A2出力)×24 =(Xj〜X1)×(P8×27+P7×26+P6×25+P5×24+ P4×23+P3×22+P2×21+P1×20 ) =A3出力 となる。したがって、加算器A3の出力として(Xj〜
X1)×Pが得られる。
【0132】図31は、本発明の実施の他の形態の除算
装置の構成を示すブロック図である。図31の除算装置
は、図7および図8の除算装置と同様に、除算装置内で
取扱われる数値が2進数表記されており、除数Dが[1
111](=[15]D)の場合に限定されているが、
剰余用加算器の入力端子群IP3への接続方法および後
述する段数を変えることによって、除数Dが[1
4]D,[12]Dの場合でも可能となる。除数Dに基づ
き、分割桁数Qは4、除数差指数nは0となる。 D = 24−20
【0133】図31の除算装置は、剰余用レジスタ11
と、剰余用加算器と商用加算器とからなる少なくとも1
段の加算器群と、後処理部とを含む。加算器群の段数
は、与えられる被除数N0および除数Dによって変わ
る。図31の除算装置において、剰余用レジスタ11の
長さには制約はないが、段数が充分な数だけあれば、余
分に段数があっても同じ答が求められる。ただし、段数
が充分な数でないならば正しい答は得られないのは勿論
である。なお、加算器群の段数は、図7および図10で
は、サイクル数に相当する。加算器群は、図31では4
段となっているが、被除数N0が16ビット以下ならば
充分である。なお、初段の加算器群の商用加算器は省略
可能なため、図31の除算装置では除去している。剰余
用加算器ADy1〜ADy4および商用加算器ADx2
ADx4は、いずれもパラレルに加算を行う。加算器A
Dy1〜ADy4の一方の入力端子群IP3は最大13ビ
ット、他方の入力端子群IP4は4ビット、また、加算
器ADx2〜ADx4の一方入力端子群IP1は最大13
ビット、他方の入力端子群IP2は最大9ビットの入力
が可能であり、出力端子群OPは最大13ビットの出力
が可能である。各加算器ADy1〜ADy4,ADx2
ADx4は、これらの入出力端子を持つものを全てに用
いてもよいが、順次端子数を減少させてもよい。
【0134】剰余用加算器ADyiの一方の入力端子群
IP3には、剰余用レジスタ11の記憶値、すなわち、
被除数N0の上位桁NU(上位12ビット)、または前
段の加算器ADyi-1の出力値の上位12桁が与えら
れ、他方の入力端子群IP4には、剰余用レジスタ11
の記憶値の下位桁ND(下位4ビット)、または前段の
加算器ADyi-1の出力値の下位4桁が与えられる。商
用加算器ADxiの一方入力端子群IP2には、前段の
剰余用加算器ADyi-1の出力値の上位桁NU(上位1
2ビット)が与えられ、他方の入力端子群IP1には、
剰余用レジスタ11の記憶値、すなわち、被除数N0
上位桁NU(上位12ビット)、または、前段の加算器
ADxi-1の出力値が与えられる。
【0135】図31は除数Dが[1111]=[15]
Dの場合の構成を示したものであるが、表2は、さら
に、被除数N0を[111011101001110
1]=[61085]D)としたときの各加算器に与え
られる被加数、加数、出力値を示したものである。な
お、最終段の剰余用加算器ADy4の出力が剰余(=
H)、商用加算器ADx4の出力が商(=FE8H)と
なる。
【0136】
【表2】
【0137】再び図31を参照する。図31の後処理部
は、加算器ADzと制御用のANDゲートGyとAND
ゲート群Gzとインバータとを含む。ゲートGyは最終
段の加算器ADy4の下位桁4ビットがすべて1のとき
1を出力し、加算器ADzで商を補正するため1を加え
る。と同時に、剰余が必要なときは加算器ADy4の出
力から除数Dを減ずるため、下位桁4ビットがすべて1
のときは、ANDゲート群Gzをオフにし、他の場合は
そのまま通過させている。これらの処理により、加算器
ADzは商を、ANDゲート群Gzは剰余を出力する。
勿論、これらのインバータを含むゲート群の構成は除数
Dによって変わる。
【0138】この図31の除算装置の構成例では、剰余
用レジスタ11以外は、ANDゲートおよびORゲート
等によって構成可能な加算器とANDゲートとを含み、
必要ならばORゲートとインバータと等が用いられてい
るだけである。このために、各加算器および各ゲート等
の信号伝達に時間遅れがないとすると、被除数N0を剰
余用レジスタ11に格納した時点で商および剰余が求め
られるので、極めて高速な除算が可能になる。実際に
は、図31の構成の除算装置をASIC(組込み集積回
路)として構成した場合、各加算器および各ゲート等の
信号伝達に遅れが生じるが、該遅れは極めて小さいた
め、被除数N0を剰余用レジスタ11に格納した時点の
直後に商および剰余が求められるので、充分に高速な除
算が可能になる。
【0139】上述の各実施の形態の除算装置は本発明の
除算装置の例示であり、主要な構成および動作が等しけ
れば、他の様々な形で実施することができる。特に除算
装置内部の各構成部品の詳細な構成および動作は、同じ
効果が得られるならば、上述の構成および動作に限らず
他の構成および動作によって実現されてもよい。
【0140】
【発明の効果】以上のように本発明によれば、S進数の
除算を行う除算装置において、除数DをD=SQ−Pと
するとき、被除数N0が剰余用レジスタに代入されかつ
0が商用レジスタに代入される。剰余用レジスタに更新
記憶される記憶値を第Q桁で上位桁NUと下位桁NDと
に2分し、上位桁の累積加算結果を商用レジスタに更新
記憶させ、下位桁NDを被加減数とし、上位桁と除数差
Pとの積を加減数として加減算を行わせ、その結果を剰
余用レジスタに更新記憶させる処理が、該上位桁NUが
0になるまで繰返される。ただし、Dは3以上の整数、
QはSQ≧Dを満たす最小の整数またはSQ≦Dを満たす
最大の整数、Sは2以上の整数、Pは整数とする。商用
レジスタの記憶値が商として出力される。これによって
除算装置は、構成が簡単であり、かつ商および剰余の高
速算出が可能であり、かつ汎用性が高くなる。
【0141】また以上のように本発明によれば、上記の
除算装置において数値が2進数表記されており、かつ除
数Dが2Q±2nを満たす整数に限定されている場合、上
位桁と除数差2nとの積は上位桁NUをnビット上位に
桁移動させて求められる。これによって除算装置は、構
成が簡単になり、かつ商および剰余を高速に求めること
ができる。また以上のように本発明によれば、除算装置
において、除数Dが2 Q±Pで定義される2種類の除算
装置のうち、除数Dから得られる除数差Pに応じて、収
束し易い除算装置が選択される。これによって、より高
速な除算が可能になる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態である除算装置の構
成を示すブロック図である。
【図2】図1の除算装置における除算手順を示すフロー
チャートである。
【図3】図1の除算装置においてD=SQ+P*、P*
0の場合の演算アルゴリズムを示す図である。
【図4】図1の除算装置においてD=SQ+P*、P*
0の場合の演算アルゴリズムを示す図である。
【図5】本発明の第1の実施の形態の除算装置の他の構
成例を示すブロック図である。
【図6】図5の除算装置における除算処理を説明するた
めのフローチャートである。
【図7】本発明の第2の実施の形態の除算装置におい
て、D=2Q−2nの場合の演算アルゴリズムを示す図で
ある。
【図8】図7の除算装置の構成を示すブロック図であ
る。
【図9】図7の除算装置における除算手順を示すフロー
チャートである。
【図10】本発明の第2の実施の形態の除算装置におい
て、D=2Q+2nの場合の演算アルゴリズムを示す図で
ある(n=0のとき)。
【図11】図10の除算装置の構成を示すブロック図で
ある。
【図12】本発明の第2の実施の形態の除算装置におい
て、D=2Q+2nの場合の演算アルゴリズムを示す図で
ある(n=2のとき)。
【図13】本発明の第3の実施の形態の除算装置におい
て、D=2Q−Pの場合の演算アルゴリズムを示す図で
ある。
【図14】本発明の第3の実施の形態の除算装置におい
て、D=2Q+Pの場合の演算アルゴリズムの前半部分
を示す図である。
【図15】本発明の第3の実施の形態の除算装置におい
て、D=2Q+Pの場合の演算アルゴリズムの後半部分
を示す図である。
【図16】図13の除算装置の構成を示すブロック図で
ある。
【図17】図14,15の除算装置の構成を示すブロッ
ク図である。
【図18】本発明の第1〜第3の実施の形態の除算装置
において、負数を補数表記で取扱う場合の演算アルゴリ
ズムの前半部分を示す図である。
【図19】本発明の第1〜第3の実施の形態の除算装置
において、負数を補数表記で取扱う場合の演算アルゴリ
ズムの後半部分を示す図である。
【図20】図18,19の除算装置の構成を示すブロッ
ク図である。
【図21】図20の除算装置における除算手順を示すフ
ローチャートである。
【図22】第1〜第3の実施の形態の除算装置におい
て、分割桁数Qと除数差Pとの算出手順を示すフローチ
ャートである。
【図23】第1〜第3の実施の形態において、分割桁数
Qと除数差Pと除数差指数nとの算出手順を示すフロー
チャートである。
【図24】第1〜第3の実施の形態の除算装置に備えら
れる、2進数表記の分割桁数Qのデコード回路の構成を
示す図である。
【図25】第1〜第3の実施の形態の除算装置に備えら
れる下位桁抽出部の構成を示す図である。
【図26】第1〜第3の実施の形態の除算装置に備えら
れる上位桁抽出部の構成を示す図である。
【図27】第2の実施の形態の除算装置に備えられるシ
フタの構成を示す図である。
【図28】第3の実施の形態の除算装置に備えられる上
位桁乗算部の構成を示す図である。
【図29】図28の上位桁乗算部の内部に備えられる内
部加算器の構成を示す図である。
【図30】第3の実施の形態の除算装置に備えられる定
数算出部において除数差を記憶する記憶器の構成を示す
図である。
【図31】第2の実施の形態の除算装置において、除数
Dが15に固定されている場合の構成を示すブロック図
である。
【図32】除算の利用例の1つであるフィルタ演算の手
順を示す図である。
【符号の説明】
11 剰余用レジスタ 12 商用レジスタ 14 剰余分割部 15 商更新部 16 上位桁乗算部 17 剰余更新部 18 繰返し制御部

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 S進数の除算を行う除算装置であって、 除数DがSQ−P*で表現される3以上の整数であり、分
    割桁数QがSQ≧Dを満たす最小の整数またはSQ≦Dを
    満たす最大の整数であり、かつ除数差P*が整数であ
    り、 初期値として被除数を記憶している剰余用レジスタと、 初期値として0を記憶している商用レジスタと、 剰余用レジスタの記憶値を、最下位桁からQ桁目で、最
    上位桁から第Q+1桁までの上位桁と第Q桁から最下位
    桁までの下位桁とに分割する剰余分割手段と、 上位桁を商用レジスタの記憶値に加算して、加算結果を
    該商用レジスタに更新記憶させる商更新手段と、 上位桁と除数差P*との積を求める乗算手段と、 求められている積を下位桁に加算し、加算結果を剰余用
    レジスタに更新記憶させる剰余更新手段と、 剰余用レジスタの上位桁が0になるまで、剰余分割手段
    と商更新手段と乗算手段と剰余更新手段とに動作を繰返
    させる繰返し制御手段とを含み、 商用レジスタの記憶値が商として出力されることを特徴
    とする除算装置。
  2. 【請求項2】 S進数の除算を行う除算装置であって、 除数DがSQ−P*で表現される3以上の整数であり、分
    割桁数QがSQ≧Dを満たす最小の整数またはSQ≦Dを
    満たす最大の整数であり、かつ除数差P*が整数であ
    り、 入力される数値を、最下位桁からQ桁目で、最上位桁か
    ら第Q+1桁までの上位桁と第Q桁から最下位桁までの
    下位桁とに分割する剰余分割手段と剰余分割手段から出
    力される数値の上位桁を記憶する上位桁用レジスタと、 剰余分割手段から出力される数値の下位桁を記憶する下
    位桁用レジスタと、 初期値として0を記憶している商用レジスタと、 上位桁用レジスタの記憶値を商用レジスタの記憶値に加
    算して、加算結果を該商用レジスタに更新記憶させる商
    更新手段と、 上位桁用レジスタの記憶値と除数差P*との積を求める
    乗算手段と、 求められている積を下位桁用レジスタの記憶値に加算
    し、加算結果を剰余分割手段に出力する剰余更新手段
    と、 上位桁用のレジスタの記憶値が0になるまで、剰余分割
    手段と商更新手段と乗算手段と剰余更新手段とに動作を
    繰返させる繰返し制御手段とを含み、 商用レジスタの記憶値が商として出力されることを特徴
    とする除算装置。
  3. 【請求項3】 2進数の除算を行う除算装置であって、 除数Dが2Q−2nで表現される3以上の整数であり、分
    割桁数Qが2Q≧Dを満たす最小の整数であり、かつ除
    数差指数nが0以上の整数であり、 初期値として被除数を記憶している剰余用レジスタと、 初期値として0を記憶している商用レジスタと、 剰余用レジスタの記憶値を、最下位桁からQ桁目で、最
    上位桁から第Q+1桁までの上位桁と第Q桁から最下位
    桁までの下位桁とに分割する剰余分割手段と、 上位桁を商用レジスタの記憶値に加算して、加算結果を
    該商用レジスタに更新記憶させる商更新手段と、 上位桁をnビット上位側にシフトさせた値を下位桁に加
    算し、加算結果を剰余用レジスタに更新記憶させる剰余
    更新手段と、 剰余用レジスタの記憶値の上位桁が0になるまで、剰余
    分割手段と商更新手段と剰余更新手段とに動作を繰返さ
    せる繰返し制御手段とを含み、 商用レジスタの記憶値が商として出力されることを特徴
    とする除算装置。
  4. 【請求項4】 2進数の除算を行う除算装置であって、 除数Dが2Q+2nで表現される3以上の整数であり、分
    割桁数Qが2Q≦Dを満たす最大の整数であり、かつ除
    数差指数nが0以上の整数であり、 初期値として被除数を記憶している剰余用レジスタと、 初期値として0を記憶している商用レジスタと、 剰余用レジスタの記憶値を、最下位桁からQ桁目で、最
    上位桁から第Q+1桁までの上位桁と第Q桁から最下位
    桁までの下位桁とに分割する剰余分割手段と、 上位桁を商用レジスタの記憶値に加算して、加算結果を
    該商用レジスタに更新記憶させる商更新手段と、 上位桁をnビット上位側にシフトさせた値を下位桁から
    減算し、減算結果を剰余用レジスタに更新記憶させる剰
    余更新手段と、 剰余用レジスタの記憶値の上位桁が0になるまで、剰余
    分割手段と商更新手段と剰余更新手段とに動作を繰返さ
    せる繰返し制御手段とを含み、 商用レジスタの記憶値が商として出力されることを特徴
    とする除算装置。
  5. 【請求項5】 2進数の除算を行う除算装置であって、 除数Dが2Q−Pで表現される3以上の整数であり、分
    割桁数Qが2Q≧Dを満たす最小の整数であり、かつ除
    数差Pが0以上の整数であり、 初期値として被除数を記憶している剰余用レジスタと、 初期値として0を記憶している商用レジスタと、 剰余用レジスタの記憶値を、最下位桁からQ桁目で、最
    上位桁から第Q+1桁までの上位桁と第Q桁から最下位
    桁までの下位桁とに分割する剰余分割手段と、 上位桁を商用レジスタの記憶値に加算して、加算結果を
    該商用レジスタに更新記憶させる商更新手段と、 上位桁と除数差Pとの積を求める乗算手段と、 求められている積を下位桁に加算し、加算結果を剰余用
    レジスタに更新記憶させる剰余更新手段と、 剰余用レジスタの記憶値の上位桁が0になるまで、剰余
    分割手段と商更新手段と乗算手段と剰余更新手段とに動
    作を繰返させる繰返し制御手段とを含み、 商用レジスタの記憶値が商として出力されることを特徴
    とする除算装置。
  6. 【請求項6】 2進数の除算を行う除算装置であって、 除数Dが2Q+Pで表現される3以上の整数であり、分
    割桁数Qが2Q≦Dを満たす最大の整数であり、かつ除
    数差Pが0以上の整数であり、 初期値として被除数を記憶している剰余用レジスタと、 初期値として0を記憶している商用レジスタと、 剰余用レジスタの記憶値を、最下位桁からQ桁目で、最
    上位桁から第Q+1桁までの上位桁と第Q桁から最下位
    桁までの下位桁とに分割する剰余分割手段と、 上位桁を商用レジスタの記憶値に加算して、加算結果を
    該商用レジスタに更新記憶させる商更新手段と、 上位桁と除数差Pとの積を求める乗算手段と、 求められている積を下位桁から減算し、減算結果を剰余
    用レジスタに更新記憶させる剰余更新手段と、 剰余用レジスタの記憶値の上位桁が0になるまで、剰余
    分割手段と商更新手段と乗算手段と剰余更新手段とに動
    作を繰返させる繰返し制御手段とを含み、 商用レジスタの記憶値が商として出力されることを特徴
    とする除算装置。
  7. 【請求項7】 請求項5記載の除算装置および請求項6
    記載の除算装置と、 与えられた除数Dに基づき、D=2Qa−Paを満たす第
    1の分割桁数Qaおよび第1の除数差Paと、D=2Qb
    +Pbを満たす第2の分割桁数Qbおよび第2の除数差
    Pbとを求める算出手段と、 第1の除数差Paと第2の除数差Pbの2倍値との大き
    さを比較し、第1の除数差Paが第2の除数差Pbの2
    倍値未満である場合、第1の分割桁数Qaおよび第1の
    除数差Paを用いて請求項5記載の除算装置に除算を行
    わせ、第1の除数差Paが第2の除数差Pbの2倍値以
    上である場合、第2の分割桁数Qbおよび第2の除数差
    Pbを用いて請求項6記載の除算装置に除算を行わせる
    切換え制御手段とを含むことを特徴とする除算装置。
JP2000163364A 2000-05-31 2000-05-31 除算装置 Pending JP2001344093A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000163364A JP2001344093A (ja) 2000-05-31 2000-05-31 除算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000163364A JP2001344093A (ja) 2000-05-31 2000-05-31 除算装置

Publications (1)

Publication Number Publication Date
JP2001344093A true JP2001344093A (ja) 2001-12-14

Family

ID=18667132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000163364A Pending JP2001344093A (ja) 2000-05-31 2000-05-31 除算装置

Country Status (1)

Country Link
JP (1) JP2001344093A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113467750A (zh) * 2021-05-31 2021-10-01 深圳致星科技有限公司 用于基数为4的srt算法的大整数位宽除法电路及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113467750A (zh) * 2021-05-31 2021-10-01 深圳致星科技有限公司 用于基数为4的srt算法的大整数位宽除法电路及方法

Similar Documents

Publication Publication Date Title
JP2938547B2 (ja) 演算処理装置
KR20010014992A (ko) 고차 기수 제산기 및 그 방법
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
JP2001222410A (ja) 除算器
JPH1195982A (ja) 演算処理回路及び演算処理方法並びに演算処理システム
JP2001344093A (ja) 除算装置
JP3660075B2 (ja) 除算装置
JP2645422B2 (ja) 浮動小数点演算処理装置
JP2991788B2 (ja) 復号器
JP2777265B2 (ja) 高基数開平演算装置
JP3261600B2 (ja) 剰余乗算器
US20210365239A1 (en) Logarithm calculation method and logarithm calculation circuit
JP2753922B2 (ja) 固定小数点除算方法
US7139786B2 (en) Method and apparatus for efficiently performing a square root operation
JP3277497B2 (ja) 除算装置
JPH10133856A (ja) 丸め機能付き乗算方法及び乗算器
JPH0836483A (ja) 除算装置
JP3851024B2 (ja) 乗算器
JPH07160480A (ja) 10進除算器
JP3851025B2 (ja) 除算回路
KR20020092244A (ko) 평방근의 역수 계산 방법, 계산 회로, 및 프로그램
JPH11134176A (ja) 逆数演算回路
JPH11134174A (ja) 演算回路
JP3477866B2 (ja) 除算器の除算方法
JPH0371332A (ja) 剰余乗算回路および剰余乗算方法