(57)【特許請求の範囲】
【請求項１】
漸化式に基づき、商桁予測値と除数との積である第１値と、加減算器の出力である部分剰余を１桁上位側へシフトさせたものである第２値との加減算を行って、次の商桁計算用の部分剰余を得る処理を繰り返し実行し、該商桁を第１商レジスタに順次格納する除算器において、
該第２値又は該第１商レジスタの出力を選択する乙セレクタと、
該第１商レジスタの出力又は該加減算器の出力を選択する商セレクタと、
該商セレクタの出力が供給される第２商レジスタと、
該繰り返しの処理を終了した後に、該第１商レジスタに保持された商の切り上げ又は切り捨ての判定を行い、切り上げ判定したときに該商セレクタに対し該加減算器の出力を選択させる丸め判定部と、
該繰り返しの処理を終了した後に、該乙セレクタに該第１商レジスタの出力を選択させ該加減算器に１加算用キャリーを供給しかつ実質的に該第１値を０にさせ、該商セレクタの選択後に、該第２商レジスタにラッチ信号を供給する制御回路と、
を有することを特徴とする除算器。
【請求項２】
漸化式に基づき、商桁予測値と除数との積である第１値と、加減算器の出力である部分剰余を１桁上位側へシフトさせたものである第２値との加減算を行って、次の商桁計算用の部分剰余を得る処理を繰り返し実行し、該商桁を第１商レジスタに順次格納する除算器において、
該第１値又は該第１商レジスタの出力を選択する甲セレクタと、
該第１商レジスタの出力又は該加減算器の出力を選択する商セレクタと、
該商セレクタの出力が供給される第２商レジスタと、
該繰り返しの処理を終了した後に、該第１商レジスタに保持された商の切り上げ又は切り捨ての判定を行い、切り上げ判定したときに該商セレクタに対し該加減算器の出力を選択させる丸め判定部と、
該繰り返しの処理を終了した後に、該甲セレクタに該第１商レジスタの出力を選択させ該加減算器に１加算用キャリーを供給しかつ実質的に該第２値を０にさせ、該商セレクタの選択後に、該第２商レジスタにラッチ信号を供給する制御回路と、
を有することを特徴とする除算器。
【請求項３】
漸化式に基づき、商桁予測値と除数との積である第１値と、加減算器の出力である部分剰余を１桁上位側へシフトさせたものである第２値との加減算を行って、次の商桁計算用の部分剰余を得る処理を繰り返し実行し、該商桁を第１商レジスタに順次格納する除算器において、
該第１値又は値１を選択する甲セレクタと、
該第２値又は該第１商レジスタの出力を選択する乙セレクタと、
該第１商レジスタの出力又は該加減算器の出力を選択する商セレクタと、
該甲セレクタの出力が供給される第２商レジスタと、
該繰り返しの処理を終了した後に、該第１商レジスタに保持された商の切り上げ又は切り捨ての判定を行い、切り上げ判定したときに該商セレクタに対し該加減算器の出力を選択させる丸め判定部と、
該繰り返しの処理を終了した後に、該甲セレクタ及び該乙セレクタに対しそれぞれ該値１及び該第１商レジスタの出力を選択させ、該商セレクタの選択後に、該第２商レジスタにラッチ信号を供給する制御回路と、
を有することを特徴とする除算器。
【請求項４】
漸化式に基づき、商桁予測値と除数との積である第１値と、加減算器の出力である部分剰余を１桁上位側へシフトさせたものである第２値との加減算を行って、次の商桁計算用の部分剰余を得る処理を繰り返し実行し、該商桁を第１商レジスタに順次格納する除算器において、
該第１値又は該第１商レジスタの出力を選択する甲セレクタと、
該第２値又は値１を選択する乙セレクタと、
該第１商レジスタの出力又は該加減算器の出力を選択する商セレクタと、
該乙セレクタの出力が供給される第２商レジスタと、
該繰り返しの処理を終了した後に、該第１商レジスタに保持された商の切り上げ又は切り捨ての判定を行い、切り上げ判定したときに該商セレクタに対し該加減算器の出力を選択させる丸め判定部と、
該繰り返しの処理を終了した後に、該甲セレクタ及び該乙セレクタに対しそれぞれ該第１商レジスタの出力及び該値１を選択させ、該商セレクタの選択後に、該第２商レジスタにラッチ信号を供給する制御回路と、
を有することを特徴とする除算器。
【請求項５】
漸化式に基づき、商桁予測値と除数との積である第１値と、加減算器の出力である部分剰余を１桁上位側へシフトさせたものである第２値との加減算を行って、次の商桁計算用の部分剰余を得る処理を繰り返し実行し、該商桁を第１商レジスタに順次格納する除算器において、
該第２値を保持する部分剰余レジスタと、
該第１値又は該除数を選択する甲セレクタと、
該部分剰余レジスタの出力又は被除数を選択する乙セレクタと、
該繰り返しの処理の前に、該甲セレクタ及び該乙セレクタに対しそれぞれ該除数及び該被除数を選択させ、その後、該加減算器の出力の符号ビットが（該被除数）＞（該除数）であることを示している場合には該被除数をその下位側へ１ビットシフトさせたものを部分剰余初期値として該部分剰余レジスタに保持させ、これと逆の場合には該被除数をそのまま該部分剰余初期値として該部分剰余レジスタに保持させる制御回路と、
を有することを特徴とする除算器。
【請求項６】
漸化式に基づき、商桁予測値と除数との積である第１値と、加減算器の出力である部分剰余を１桁上位側へシフトさせたものである第２値との加減算を行って、次の商桁計算用の部分剰余を得る処理を繰り返し実行し、該商桁を第１商レジスタに順次格納する除算器において、
該第２値を保持する部分剰余レジスタと、
該第１値又は被除数を選択する甲セレクタと、
該部分剰余レジスタの出力又は該除数を選択する乙セレクタと、
該繰り返しの処理の前に、該甲セレクタ及び該乙セレクタに対しそれぞれ該被除数及び該除数を選択させ、その後、該加減算器の出力の符号ビットが（該被除数）＞（該除数）であることを示している場合には該被除数をその下位側へ１ビットシフトさせたものを部分剰余初期値として該部分剰余レジスタに保持させ、これと逆の場合には該被除数をそのまま該部分剰余初期値として該部分剰余レジスタに保持させる制御回路と、
を有することを特徴とする除算器。
【請求項７】
請求項１乃至４のいずれか１つに記載の構成と、
請求項５又は６記載の構成と、
を有することを特徴とする除算器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、除算器に関する。
【０００２】
【背景技術】
基数ｒの浮動小数点数除算（Ｘ・ｒa ）÷（Ｄ・ｒb ）は、（Ｘ÷Ｄ）・ｒa-b となり、仮数部の除算Ｘ÷Ｄを高速かつ正確に実行することが要求される。
除算Ｘ÷Ｄは、逆数器と乗算器とを用いて実行することもできるが、計算精度が低いので、例えば、本発明と対比される図４に示すような除算器が用いられる。この除算器は、除数レジスタ１０、被除数レジスタ１１、符号・指数処理部１２、前処理部２０、繰り返しループ処理部３０、後処理部４０、商レジスタＲ２及びこれらを制御する制御回路５０を備えている。
【０００３】
この除算器は、処理時間短縮化のため、基数ｒを例えば１６と大きくして繰り返し処理回数を低減し、さらに引き放し法及び商予測法を用いており、高基数非回復型除算器と称され、これに類似したものが本発明者により開示されている（特開平４−２６８９２０号公報）。
【０００４】
【発明が解決しようとする課題】
しかし、この除算器は、回路規模が乗算器に比し大きくなる。すなわち、倍数発生器３５は高速演算のために２〜（ｒ−１）倍の各倍数器を備えており、また、５４ビットの加減算器３３に加えて、５４ビットの減算器２３及び５２ビットと１ビットとの加算器（インクリメンタ）４１を備えているので、回路規模が大きくなる。このため、この除算器をＬＳＩのプロセッサ上に形成する場合にその占有面積が比較的広くなり、その低減化が要求されている。
【０００５】
一般に、回路規模を低減しようとすると、演算精度又は処理速度が犠牲になる。
本発明の目的は、このような問題点に鑑み、演算精度及び処理速度を犠牲にすることなく、回路規模を縮小することが可能な除算器を提供することにある。
【０００６】
【課題を解決するための手段及びその作用効果】
請求項１では、漸化式に基づき、商桁予測値と除数との積である第１値と、加減算器の出力である部分剰余を１桁上位側へシフトさせたものである第２値との加減算を行って、次の商桁計算用の部分剰余を得る処理を繰り返し実行し、該商桁を第１商レジスタ（Ｒ１）に順次格納する除算器において、
該第２値又は該第１商レジスタの出力を選択する乙セレクタ（Ｓ２）と、
該第１商レジスタの出力又は該加減算器の出力を選択する商セレクタ（Ｓ３）と、
該商セレクタの出力が供給される第２商レジスタ（Ｒ２）と、
該繰り返しの処理を終了した後に、該第１商レジスタに保持された商の切り上げ又は切り捨ての判定を行い、切り上げ判定したときに該商セレクタに対し該加減算器の出力を選択させる丸め判定部と、
該繰り返しの処理を終了した後に、該乙セレクタに該第１商レジスタの出力を選択させ該加減算器に１加算用キャリーを供給しかつ実質的に該第１値を０にさせ、該商セレクタの選択後に、該第２商レジスタにラッチ信号を供給する制御回路とを有する。
【０００７】
この除算器によれば、図４の比較的回路規模が大きい加算器４１が省略され、簡単な構成の乙セレクタ及び商セレクタが付加されているので、全体として回路規模が縮小され、また、演算内容は加算器省略前と同一であるので計算精度を犠牲にすることがなく、さらに、乙セレクタの早期選択及び丸め判定と加減算器の１加算との並列動作により、処理速度を犠牲にすることもないという効果を奏する。
請求項２では、漸化式に基づき、商桁予測値と除数との積である第１値と、加減算器の出力である部分剰余を１桁上位側へシフトさせたものである第２値との加減算を行って、次の商桁計算用の部分剰余を得る処理を繰り返し実行し、該商桁を第１商レジスタに順次格納する除算器において、
該第１値又は該第１商レジスタの出力を選択する甲セレクタと、
該第１商レジスタの出力又は該加減算器の出力を選択する商セレクタと、
該商セレクタの出力が供給される第２商レジスタと、
該繰り返しの処理を終了した後に、該第１商レジスタに保持された商の切り上げ又は切り捨ての判定を行い、切り上げ判定したときに該商セレクタに対し該加減算器の出力を選択させる丸め判定部と、
該繰り返しの処理を終了した後に、該甲セレクタに該第１商レジスタの出力を選択させ該加減算器に１加算用キャリーを供給しかつ実質的に該第２値を０にさせ、該商セレクタの選択後に、該第２商レジスタにラッチ信号を供給する制御回路とを有する。
【０００８】
この除算器によれば、図４の比較的回路規模が大きい加算器４１が省略され、簡単な構成の甲セレクタ及び商セレクタが付加されているので、全体として回路規模が縮小され、また、演算内容は加算器省略前と同一であるので計算精度を犠牲にすることがなく、さらに、甲セレクタの早期選択及び丸め判定と加減算器の１加算との並列動作により、処理速度を犠牲にすることもないという効果を奏する。
請求項３では、漸化式に基づき、商桁予測値と除数との積である第１値と、加減算器の出力である部分剰余を１桁上位側へシフトさせたものである第２値との加減算を行って、次の商桁計算用の部分剰余を得る処理を繰り返し実行し、該商桁を第１商レジスタ（Ｒ１）に順次格納する除算器において、
該第１値又は値１を選択する甲セレクタ（Ｓ１）と、
該第２値又は該第１商レジスタの出力を選択する乙セレクタ（Ｓ２）と、
該第１商レジスタの出力又は該加減算器の出力を選択する商セレクタ（Ｓ３）と、
該甲セレクタの出力が供給される第２商レジスタ（Ｒ２）と、
該繰り返しの処理を終了した後に、該第１商レジスタに保持された商の切り上げ又は切り捨ての判定を行い、切り上げ判定したときに該商セレクタに対し該加減算器の出力を選択させる丸め判定部と、
該繰り返しの処理を終了した後に、該甲セレクタ及び該乙セレクタに対しそれぞれ該値１及び該第１商レジスタの出力を選択させ、該商セレクタの選択後に、該第２商レジスタにラッチ信号を供給する制御回路とを有する。
【０００９】
この除算器によれば、図４の比較的回路規模が大きい加算器４１が省略され、簡単な構成の甲セレクタ、乙セレクタ及び商セレクタが付加されているので、全体として回路規模が縮小され、また、演算内容は加算器省略前と同一であるので計算精度を犠牲にすることがなく、さらに、甲セレクタ及び乙セレクタの早期選択並びに丸め判定と加減算器の１加算との並列動作により、処理速度を犠牲にすることもないという効果を奏する。
請求項４では、漸化式に基づき、商桁予測値と除数との積である第１値と、加減算器の出力である部分剰余を１桁上位側へシフトさせたものである第２値との加減算を行って、次の商桁計算用の部分剰余を得る処理を繰り返し実行し、該商桁を第１商レジスタに順次格納する除算器において、
該第１値又は該第１商レジスタの出力を選択する甲セレクタと、
該第２値又は値１を選択する乙セレクタと、
該第１商レジスタの出力又は該加減算器の出力を選択する商セレクタと、
該乙セレクタの出力が供給される第２商レジスタと、
該繰り返しの処理を終了した後に、該第１商レジスタに保持された商の切り上げ又は切り捨ての判定を行い、切り上げ判定したときに該商セレクタに対し該加減算器の出力を選択させる丸め判定部と、
該繰り返しの処理を終了した後に、該甲セレクタ及び該乙セレクタに対しそれぞれ該第１商レジスタの出力及び該値１を選択させ、該商セレクタの選択後に、該第２商レジスタにラッチ信号を供給する制御回路とを有する。
【００１０】
この除算器によれば、図４の比較的回路規模が大きい加算器４１が省略され、簡単な構成の甲セレクタ、乙セレクタ及び商セレクタが付加されているので、全体として回路規模が縮小され、また、演算内容は加算器省略前と同一であるので計算精度を犠牲にすることがなく、さらに、甲セレクタ及び乙セレクタの早期選択並びに丸め判定と加減算器の１加算との並列動作により、処理速度を犠牲にすることもないという効果を奏する。
請求項５では、漸化式に基づき、商桁予測値と除数との積である第１値と、加減算器の出力である部分剰余を１桁上位側へシフトさせたものである第２値との加減算を行って、次の商桁計算用の部分剰余を得る処理を繰り返し実行し、該商桁を第１商レジスタ（Ｒ１）に順次格納する除算器において、
該第２値を保持する部分剰余レジスタ（３２）と、
該第１値又は該除数を選択する甲セレクタ（Ｓ１）と、
該部分剰余レジスタの出力又は被除数を選択する乙セレクタ（Ｓ２）と、
該繰り返しの処理の前に、該甲セレクタ及び該乙セレクタに対しそれぞれ該除数及び該被除数を選択させ、その後、該加減算器の出力の符号ビットが（該被除数）＞（該除数）であることを示している場合には該被除数をその下位側へ１ビットシフトさせたものを部分剰余初期値として該部分剰余レジスタに保持させ、これと逆の場合には該被除数をそのまま該部分剰余初期値として該部分剰余レジスタに保持させる制御回路とを有する。
【００１１】
この除算器によれば、図４の比較的回路規模が大きい減算器２３が省略され、簡単な構成の甲セレクタ及び乙セレクタが付加されているので、全体として回路規模が縮小され、また、演算内容は減算器省略前と同一であるので計算精度を犠牲にすることがなく、さらに、甲セレクタ及び乙セレクタの早期選択により、処理速度を犠牲にすることもないという効果を奏する。
請求項６では、漸化式に基づき、商桁予測値と除数との積である第１値と、加減算器の出力である部分剰余を１桁上位側へシフトさせたものである第２値との加減算を行って、次の商桁計算用の部分剰余を得る処理を繰り返し実行し、該商桁を第１商レジスタに順次格納する除算器において、
該第２値を保持する部分剰余レジスタと、
該第１値又は被除数を選択する甲セレクタと、
該部分剰余レジスタの出力又は該除数を選択する乙セレクタと、
該繰り返しの処理の前に、該甲セレクタ及び該乙セレクタに対しそれぞれ該被除数及び該除数を選択させ、その後、該加減算器の出力の符号ビットが（該被除数）＞（該除数）であることを示している場合には該被除数をその下位側へ１ビットシフトさせたものを部分剰余初期値として該部分剰余レジスタに保持させ、これと逆の場合には該被除数をそのまま該部分剰余初期値として該部分剰余レジスタに保持させる制御回路とを有する。
【００１２】
この除算器によれば、図４の比較的回路規模が大きい減算器２３が省略され、簡単な構成の甲セレクタ及び乙セレクタが付加されているので、全体として回路規模が縮小され、また、演算内容は減算器省略前と同一であるので計算精度を犠牲にすることがなく、さらに、甲セレクタ及び乙セレクタの早期選択により、処理速度を犠牲にすることもないという効果を奏する。
請求項７の除算器では、請求項１乃至４のいずれか１つに記載の構成と、
請求項５又は６記載の構成とを有する。
【００１３】
【発明の実施の形態】
以下、図面に基づいて本発明の実施形態を説明する。
［第１実施形態］
図１は、本発明の第１実施形態の除算器を示すブロック図である。
最初に、この除算器で用いられている公知の除算法を説明する。
【００１４】
被除数Ｘを除数Ｄで割って商Ｑ、剰余Ｒになったとすると、
Ｘ＝Ｑ・Ｄ＋Ｒ      ・・・（１）
が成立する。ここで、商が１より小さい数
Ｑ＝ｑ（１）・ｒ-1＋ｑ（２）・ｒ-2＋・・・＋ｑ（ｎ）・ｒ-n  （２）
であるとし、
Ｒ（ｊ）：第ｊ商桁を決定した後の部分剰余、ｊ＝１〜ｎ
Ｒ（０）：被除数Ｘ（部分剰余の初期値）
とすると、ｊ＝０〜ｎについて、次の漸化式が成立する。
【００１５】
0003656699.tif 000002
漸化式（３）が正しいことは、次の計算式から明らかである。すなわち、式（４−１）〜（４−ｎ）の両辺にそれぞれｒn-1 ，ｒn-2 ，・・・，ｒ，１を乗じて各辺の総和をとると、
Ｒ（ｎ）＝ｒn ・Ｒ（０）−｛ｑ（１）・ｒn-1 ＋ｑ（２）・ｒn-2 ＋・・・＋ｑ（ｎ）｝・Ｄ                            ・・・（５）
が得られ、この式（５）からＲ（０）は、
Ｒ（０）＝｛ｑ（１）・ｒ-1＋ｑ（２）・ｒ-2＋・・・＋ｑ（ｎ）・ｒ-n｝Ｄ＋ｒ-n・Ｒ（ｎ）                            ・・・（６）
と表される。この式（６）を式（１）と比較すると、式（２）が得られる。
したがって、漸化式（３）をｊ＝０〜ｎについてｎ＋１回実行すれば商Ｑが得られる。
【００１６】
漸化式（３）において、商桁ｑ（ｊ＋１）を予測することにより、演算速度を向上させることができる。しかし、予測値が大きすぎた場合には、引き過ぎて漸化式（３）の左辺の剰余Ｒ（ｊ＋１）が負になるので、右辺にｑ（ｊ＋１）・Ｄを加算してＲ（ｊ＋１）の値を元に戻す必要があり、処理ステップ数が増える。そこで、引き戻し処理を行わずに、商桁の取り得る範囲を−（ｒ−１）≦ｑ（ｊ）≦ｒ−１と負数まで広げ、部分剰余Ｒ（ｊ＋１）が負になったら、部分剰余が正の値に戻るようにするため、次の商桁を負数にする（引き放し法）。この場合も、漸化式（３）が成立する。
【００１７】
例えば図５（Ｂ）に示すように、十進数除算６÷７を実行し、商桁６が大き過ぎて部分剰余が−２（同図では、負数を上バーで表している）になった場合には、部分剰余が正規の値に戻るようにするため次の商桁を負数−３にする。これにより、次の部分剰余は−２０−｛７×（−３）｝＝−２０＋２１＝１となる。この時、部分商［６（−３）］を［５０＋（１０−３）］＝［５７］に補正する。すなわち１つ前の商桁から１を引き、現在の商桁を補数に変換する。この処理は、任意の基数ｒについて同じである。商桁が２回連続して負数になっても、同様の手法により部分商を正の値に補正することができる。
【００１８】
図５（Ａ）は、公知の浮動小数点数表示法を示している。この浮動小数点数は、仮数部が１より小さく且つ仮数部の小数点から１番目のビットが‘  １’になるように、正規化されている。浮動小数点数の最上位ビットは仮数部の符号ビットであり、仮数部は絶対値表示となっている。正規化されていることから、小数点から１番目のビットが隠しビットとして省略されている。
図１の除数レジスタ１０及び符号・指数処理部１２にはそれぞれ、この浮動小数点数表示法を用いた６４ビットの除数Ｄ・ｒb 及び被除数Ｘ・ｒa がロードされる。
【００１９】
仮数部除算Ｘ÷Ｄを実行するため、除数レジスタ１０及び被除数レジスタ１１の各々の仮数部５２ビットの上位側に、２ビット‘０１’が加えられて、５４ビットの除数仮数Ｄ及び被除数仮数Ｘにされる。この‘０１’の上位ビット‘０’は符号ビットであり、下位ビット‘１’は隠しビットである。
【００２０】
ここで、図１の除算器の、図４の構成との相違点を説明する。
図１の除算器では、図４中の比較的回路規模が大きい減算器２３及び加算器４１が省略され、その替わりに、簡単な構成のセレクタＳ１、Ｓ２及びＳ３が付加されている。加減算器３３は、繰り返しループ処理部３０Ａの構成要素であるが、図４の減算器２３及び加算器４１の役割も果たしていることから、前処理部２０Ａ及び後処理部４０Ａの構成要素でもある。
【００２１】
セレクタＳ１には、倍数発生器３５の出力及び除数仮数Ｄが供給され、制御回路５０Ａからの選択制御信号ＳＬ１によりその一方が選択され又は非選択状態になり、非選択状態のときにはセレクタＳ１の出力が０になる。
セレクタＳ２には、部分剰余レジスタ３２及び商レジスタＲ１の出力並びに被除数仮数Ｘが供給され、制御回路５０Ａからの選択制御信号ＳＬ２によりその１つが選択されて加減算器３３の他方の入力端に供給される。
【００２２】
セレクタＳ１及びＳ２の出力はそれぞれ加減算器３３の、減算器として機能する場合の反転入力端及び非反転入力端に供給される。セレクタＳ１の出力は正又は０であるが、セレクタＳ２の出力は正、０又は負であり、この点は以下の説明から明らかになる。
商セレクタＳ３には、商レジスタＲ１及び加減算器３３の出力が供給され、その一方が丸め判定部４３からの選択制御信号ＳＬ３により選択されて商レジスタＲ２の仮数部に供給される。
【００２３】
制御回路５０Ａは、このような相違点に応じて図４の制御回路５０と異なっており、この点は以下の説明から明らかになる。
図１の除算器の他の構成は、図４のそれと同一である。
なお、右１ビットシフト部２２は、セレクタ２１の入力端に対する、１ビット下位側へシフトされた結線と最上位ビットへのグランド電位（‘０’）供給により、実現されている。同様に左４ビットシフト部３６は、セレクタ３１の入力端に対する、４ビット上位側へシフトされた結線と下位４ビットへのグランド電位（‘００００’）供給により、実現されている。また、倍数発生器３５は、高速演算のために２〜（ｒ−１）倍の各倍数器を備えて積ｋＤを算出し、倍数発生器３５の出力端のセレクタＳ１入力端に対する同様の結線で積ｋＤの１／ｒ倍を実現している。加減算器３３は、クロックＣＬＫと無関係に演算を実行する。商桁予測器３７は、高速処理のため、例えば論理回路で構成されテーブルを参照して商桁の予測値を出力する。
【００２４】
さて、除数レジスタ１０及び被除数レジスタ１１の上位側１２ビットは符号・指数処理部１２に供給され、除算結果の符号が求められ且つ指数部の減算（ａ−ｂ）が行われる。この処理と並行して、以下の（１）〜（３）からなる仮数部除算が行われる。図２は、図１の除算器の概略動作を示すタイムチャートである。初期状態では、制御回路５０Ａからの選択制御信号ＳＬ１及びＳＬ２により、セレクタＳ１及びＳ２はそれぞれ除数仮数Ｄ及び被除数仮数Ｘを選択している。加減算器３３は、減算器として機能するように設定されている。また、セレクタ３１は、制御回路５０Ａからの選択制御信号ＳＬ５により、セレクタ２１の出力Ｒ（０）を選択している。さらに、制御回路５０Ａにより商桁レジスタ３８がゼロクリアされて、倍数発生器３５の出力が０になっている。制御回路５０Ａから加減算器３３へのキャリーＣＲＹは、以下の（１）及び（２）において常に０にされる。
【００２５】
（１）前処理
前処理部２０Ａと加減算器３３とセレクタＳ１及びＳ２と制御回路５０Ａとにより、次のような前処理が行われる。
加減算器３３で減算（Ｘ−Ｄ）が実行され、その出力の符号ビット及びゼロフラグが制御回路５０Ａに供給され、これに応じて制御回路５０Ａからの選択制御信号ＳＬ４によりセレクタ２１の選択制御が行われる。すなわち、Ｄ＞Ｘのときには被除数仮数Ｘが選択され、Ｄ≦Ｘのときには右１ビットシフト部２２の出力が選択される。さらに、Ｄ≦Ｘのときには、符号・指数処理部１２での指数計算（ａ−ｂ）に１が加算される。
【００２６】
このような前処理により、必ずＤ＞Ｘとなり、これにより、商桁レジスタ３８の初期値ｋが０になる。
（２）繰り返しループ処理
次に、繰り返しループ処理部３０Ａと制御回路５０Ａとにより、以下のような繰り返しループ処理が行われる。
【００２７】
ｊ＝０
セレクタＳ１及びＳ２によりそれぞれ倍数発生器３５及び部分剰余レジスタ３２の出力が選択され、また、セレクタ２１の出力Ｒ（０）が部分剰余レジスタ３２に保持される。これにより、加減算器３３は、上記漸化式（３）の両辺をｒで除したときの右辺の演算、すなわち減算（Ｒ（０）−０）を実行し、その出力Ｒ（１）／ｒはＲ（０）に等しくなる。
【００２８】
Ｒ（０）が部分剰余レジスタ３２に保持された後は、セレクタ３１は左４ビットシフト部３６の出力を選択する。
１≦ｊ≦１３
加減算器３３の出力Ｒ（ｊ＋１）／ｒは、一方では左４ビットシフト部３６により左１桁シフトされてＲ（ｊ＋１）となり、セレクタ３１を通って部分剰余レジスタ３２に供給される。
他方では、Ｒ（ｊ＋１）／ｒの上位６ビットが商桁予測器３７に供給され、商桁予測器３７はこれと除数仮数Ｄとからテーブルを参照してｑ（Ｊ＋１）を予測し、その絶対値を商桁レジスタ３８及び部分商予測器３９に供給し、その符号ビットを部分商予測器３９に供給する。この絶対値が商桁レジスタ３８にｋとして保持され、倍数発生器３５に供給される。倍数発生器３５は、ｋとＤの積を右１桁シフトしたｋＤ／ｒを出力する。
【００２９】
倍数発生器３５からｋＤ／ｒが出たところで、部分剰余レジスタ３２にＲ（Ｊ＋１）がＲ（Ｊ）として保持され、漸化式中のｊがインクリメントされたことになる。また、加減算器３３は、商桁予測器３７から出力されるｑ（Ｊ＋１）の符号ビットが負を示している場合には加算器として機能するように設定され、逆の場合には減算器として機能するように設定される。
【００３０】
加減算器３３により、上記漸化式（３）の両辺をｒで除したときの右辺の演算、すなわちＲ（ｊ）−ｋＤ／ｒ又はＲ（ｊ）＋ｋＤ／ｒが実行され、その結果がＲ（ｊ＋１）／ｒとして出力される。
部分商予測器３９には加減算器３３の符号ビットも供給され、部分商予測器３９は前回のこの符号ビットを記憶しておく。部分商予測器３９は、加減算器３３及び商桁予測器３７からの符号ビットと、この記憶した符号ビットとから、商レジスタＲ１に格納されている部分商が正になるように、上述の図５（Ｂ）に示すような補正を行う。すなわち、前回の商桁である商レジスタＲ１の最下位桁を補正し、商レジスタＲ１を上位側へ１桁シフトさせ、今回の商桁であるｑ（Ｊ＋１）を補正したものを商レジスタＲ１の最下位桁に保持させる。
【００３１】
Ｊ＝１〜１３について上記処理が繰り返される。
Ｊ＝１３のときの加減算器３３の出力Ｒ（１４）／ｒが負の場合には、制御回路５０Ａからの指令によりこれが正になるように商桁予測器３７の出力が修正される。
（３）後処理
後処理部４０Ａと加減算器３３とセレクタＳ１及びＳ２と制御回路５０Ａとにより、次のような後処理が行われる。
【００３２】
すなわち、制御回路５０Ａにより、一方では加減算器３３の出力Ｒ（１４）／ｒが剰余レジスタ４２に保持され、他方ではセレクタＳ１が非選択状態にされセレクタＳ２が商レジスタＲ１の出力を選択し、加減算器３３にキャリーＣＲＹ＝‘１’が供給される。これにより、商レジスタＲ１の出力値に‘１’を加算したものが加減算器３３から出力される。
【００３３】
丸め判定部４３は、剰余レジスタ４２の出力Ｒ（１４）／ｒと除数仮数レジスタ３４の出力Ｄとから剰余の切り上げ又は切り捨ての判定を行って選択制御信号ＳＬ３を出力し、商セレクタＳ３に対し、切り上げる場合には加減算器３３の出力を選択させ、切り捨てる場合には商レジスタＲ１の出力を選択させる。商セレクタＳ３の出力は商レジスタＲ２の仮数部に供給され、制御回路５０Ａはこれを商レジスタＲ２に保持させる。
【００３４】
本第１実施形態によれば、図４の比較的回路規模が大きい減算器２３及び加算器４１が省略され、簡単な構成のセレクタＳ１〜Ｓ３が付加されているので、図４の構成よりも回路規模が縮小され、また、演算内容は図４のそれと同一であるので計算精度を犠牲にすることがなく、さらに、セレクタＳ１及びＳ２の早期選択並びに丸め判定と加減算器３３の１加算との並列動作により、処理速度を犠牲にすることもない。
【００３５】
［第２実施形態］
図３は、本発明の第２実施形態の除算器を示す。
この除算器では、後処理で図１の加減算器３３にキャリーＣＲＹ＝‘１’を供給する替わりに、すなわちキャリーＣＲＹを常に０にし、セレクタＳ１Ａに値１を供給してこれを選択可能にし、丸め判定部４３の切り上げ判定に応答して制御回路５０Ｂによりこの値１を選択させ、加減算器３３によりこれと商レジスタＲ１の出力とを加算させている。
【００３６】
他の点は図１の場合と同一である。
なお、本発明には外にも種々の変形例が含まれる。
例えば図１において、除数仮数Ｄと被除数仮数ＸをそれぞれセレクタＳ１及びＳ２に供給する替わりに、逆に除数仮数ＤをセレクタＳ２に供給し被除数仮数ＸをセレクタＳ１に供給する構成であってもよい。
【００３７】
また、商レジスタＲ１の出力をセレクタＳ２に供給する替わりにセレクタＳ１に供給し、セレクタＳ２を非選択状態にしてその出力を０にし、加減算器３３を加算器として機能させる構成であってもよい。
さらに、図３において、値１と商レジスタＲ１の出力とをそれぞれセレクタＳ１Ａ及びＳ２に供給する替わりに、逆に値１及び商レジスタＲ１の出力をそれぞれセレクタＳ２及びＳ１Ａに供給する構成であってもよい。
図４の減算器２３と加算器４１の一方のみ省略した構成であってもよい。
また、以上の構成を任意に組み合わせた構成であってもよい。
【００３８】
本発明の適用は浮動小数点数の仮数部除算に限定されず、固定小数点数の除算にも適用可能である。
【図面の簡単な説明】
【図１】本発明の第１実施形態の除算器を示すブロック図である。
【図２】図１の除算器の概略動作を示すタイムチャートである。
【図３】本発明の第２実施形態の除算器を示すブロック図である。
【図４】本発明と対比される除算器を示すブロック図である。
【図５】（Ａ）は浮動小数点数表示説明図、（Ｂ）は商桁に負数を用いた場合の計算例を示す図である。
【符号の説明】
２０、２０Ａ  前処理部
２１、３１、Ｓ１、Ｓ２  セレクタ
２２  右１ビットシフト部
３０、３０Ａ、３０Ｂ  繰り返しループ処理部
３２  部分剰余レジスタ
３３  加減算器
３４  除数仮数レジスタ
３５  倍数発生器
３６  左４ビットシフト部
３７  商桁予測器
３８  商桁レジスタ
３９  部分商予測器
４０、４０Ａ  後処理部
４２  剰余レジスタ
４３  丸め判定部
Ｓ３  商セレクタ
Ｒ１、Ｒ２  商レジスタ
５０、５０Ａ、５０Ｂ  制御回路
ＳＬ１〜ＳＬ５  選択制御信号
ＣＹＹ  キャリー
Ｄ  除数仮数
Ｘ  被除数仮数
【図１】
0003656699.tif 000003
【図２】
0003656699.tif 000004
【図３】
0003656699.tif 000005
【図４】
0003656699.tif 000006
【図５】
0003656699.tif 000007