JP2857505B2 - 除算装置 - Google Patents
除算装置Info
- Publication number
- JP2857505B2 JP2857505B2 JP3071405A JP7140591A JP2857505B2 JP 2857505 B2 JP2857505 B2 JP 2857505B2 JP 3071405 A JP3071405 A JP 3071405A JP 7140591 A JP7140591 A JP 7140591A JP 2857505 B2 JP2857505 B2 JP 2857505B2
- Authority
- JP
- Japan
- Prior art keywords
- divisor
- partial remainder
- division
- quotient digit
- quotient
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
- G06F7/537—Reduction of the number of iteration steps or stages, e.g. using the Sweeny-Robertson-Tocher [SRT] algorithm
- G06F7/5375—Non restoring calculation, where each digit is either negative, zero or positive, e.g. SRT
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)
- Executing Machine-Instructions (AREA)
Description
【0001】
【産業上の利用分野】本発明は、情報処理装置等に適用
され、浮動小数点数の仮数部どうしの除算や固定小数点
数どうしの除算等を行う除算装置に関するものである。
され、浮動小数点数の仮数部どうしの除算や固定小数点
数どうしの除算等を行う除算装置に関するものである。
【0002】
【従来の技術】近年、信号処理や数値計算など多くの情
報処理分野において高速な浮動小数点演算等を行い得る
演算装置が求められている。特に、除算に関しては、一
般に加減乗算と比較して数倍から数十倍程度の演算時間
がかかり、これを高速化するためには大規模なハードウ
ェアを投入する必要がある。
報処理分野において高速な浮動小数点演算等を行い得る
演算装置が求められている。特に、除算に関しては、一
般に加減乗算と比較して数倍から数十倍程度の演算時間
がかかり、これを高速化するためには大規模なハードウ
ェアを投入する必要がある。
【0003】そこで、簡潔なハードウェアで、しかも除
算を高速に実行し得る除算装置を得るための除算アルゴ
リズムの研究が、計算機の開発当初より盛んに進めら
れ、そのようなアルゴリズムとして例えば、 (1)Kai Hwang 著,堀越彌訳:“コンピュータの高速
演算方式”,近代科学社発行,pp.236〜247 (昭和55
年) (2)テ゛ィー.イー.アトキンス゛著,「ハイアー ラテ゛ィックス テ゛ィウ゛ィシ゛ョン
ユーシ゛ンク゛ エスティメイツ オフ゛ サ゛ テ゛ィウ゛ァイサ゛ー アント゛ ハ゜ーシャル リメイン
タ゛ース゛」アイ・トリフ゜ル・イー・トランサ゛クションス゛・オン・コンヒ゜ュータス゛, 第C-
17巻,10号,1968年10月,pp.925-934(D.E.Atkins,"Hi
gher-Radix Division Using Estimates of the Divisor
and Partial Remainders," IEEETransactions on Com
puters, Vol.C-17, No.10, October 1968, pp.925-93
4) (3)テ゛ィー.イー.アトキンス゛著,「テ゛サ゛イン オフ゛ シ゛ アリスメティック ユ
ニッツ オフ゛ イリアック3: ユース オフ゛ リタ゛ンタ゛ンシー アント゛ ハイアー ラテ゛ィック
ス メソッス゛」アイ・トリフ゜ル・イー・トランサ゛クションス゛・オン・コンヒ゜ュータス゛, 第
C-19巻, 8号,1970年 8月,pp.720-733(D.E.Atkins,"
Design ofthe Arithmetic Units of ILLIAC III: Use o
f Redundancy and Higher RadixMethods," IEEE Transa
ctions on Computers, Vol. C-19, No.8, August 197
0, pp.720-733)に示されているものなどが知られてい
る。
算を高速に実行し得る除算装置を得るための除算アルゴ
リズムの研究が、計算機の開発当初より盛んに進めら
れ、そのようなアルゴリズムとして例えば、 (1)Kai Hwang 著,堀越彌訳:“コンピュータの高速
演算方式”,近代科学社発行,pp.236〜247 (昭和55
年) (2)テ゛ィー.イー.アトキンス゛著,「ハイアー ラテ゛ィックス テ゛ィウ゛ィシ゛ョン
ユーシ゛ンク゛ エスティメイツ オフ゛ サ゛ テ゛ィウ゛ァイサ゛ー アント゛ ハ゜ーシャル リメイン
タ゛ース゛」アイ・トリフ゜ル・イー・トランサ゛クションス゛・オン・コンヒ゜ュータス゛, 第C-
17巻,10号,1968年10月,pp.925-934(D.E.Atkins,"Hi
gher-Radix Division Using Estimates of the Divisor
and Partial Remainders," IEEETransactions on Com
puters, Vol.C-17, No.10, October 1968, pp.925-93
4) (3)テ゛ィー.イー.アトキンス゛著,「テ゛サ゛イン オフ゛ シ゛ アリスメティック ユ
ニッツ オフ゛ イリアック3: ユース オフ゛ リタ゛ンタ゛ンシー アント゛ ハイアー ラテ゛ィック
ス メソッス゛」アイ・トリフ゜ル・イー・トランサ゛クションス゛・オン・コンヒ゜ュータス゛, 第
C-19巻, 8号,1970年 8月,pp.720-733(D.E.Atkins,"
Design ofthe Arithmetic Units of ILLIAC III: Use o
f Redundancy and Higher RadixMethods," IEEE Transa
ctions on Computers, Vol. C-19, No.8, August 197
0, pp.720-733)に示されているものなどが知られてい
る。
【0004】この種のアルゴリズムによれば、例えば被
除数R(0) を除数dで除算した小数点以下のビット長が
n(但し、nは2の倍数)の商Qn 、および最終剰余の
2j 倍(以下単に最終剰余と称する。)R(n+2) は、以
下に示すステップを実行することにより得られる。ここ
で、基数は4、すなわち除算の商を2進数表現における
小数点以下第j−1位と第j位(但し、jは2の倍数)
との2桁ずつ求めて、これを1つの商ディジットqj と
するものとし、小数点以下第j位までの商をQj とす
る。
除数R(0) を除数dで除算した小数点以下のビット長が
n(但し、nは2の倍数)の商Qn 、および最終剰余の
2j 倍(以下単に最終剰余と称する。)R(n+2) は、以
下に示すステップを実行することにより得られる。ここ
で、基数は4、すなわち除算の商を2進数表現における
小数点以下第j−1位と第j位(但し、jは2の倍数)
との2桁ずつ求めて、これを1つの商ディジットqj と
するものとし、小数点以下第j位までの商をQj とす
る。
【0005】また、上記商ディジットqj を求める際に
用いられる部分剰余の2j 倍(以下単に部分剰余と称す
る。)をR(j)で表わし、この部分剰余R(j) を2の補
数表現した場合の小数点以下第i位の値をAi で表わ
す。さらに、除数dにおける小数点以下第i位の値をM
i で表わす。すなわち、 R(j) =A0 .A1 A2 A3 A4 … Qj =q0 .q2 q4 …qj d=0.M1 M2 M3 M4 … で表わされる。但し、上記A0 は2の補数表現において
符号を示すものである。
用いられる部分剰余の2j 倍(以下単に部分剰余と称す
る。)をR(j)で表わし、この部分剰余R(j) を2の補
数表現した場合の小数点以下第i位の値をAi で表わ
す。さらに、除数dにおける小数点以下第i位の値をM
i で表わす。すなわち、 R(j) =A0 .A1 A2 A3 A4 … Qj =q0 .q2 q4 …qj d=0.M1 M2 M3 M4 … で表わされる。但し、上記A0 は2の補数表現において
符号を示すものである。
【0006】また、部分剰余R(j) 、および商ディジッ
トqj は冗長2進数表現、すなわち各2進数1桁が符号
ビットと絶対値ビットとの2ビットで表されるものとす
る。 step1被除数R(0) 、および除数dを正規化する。
すなわち、 2-1≦R(0) <1 2-1≦d<1 となるようにする。(既に正規化されていればこのステ
ップは不要である。); step2q0 :=[01]2 ; Q0 :=q0 ; R(2) :=R(0) −q0 ・d; step3for j:=2 to n+1 step 2do begin 下記(表1)、(表2)に従って商ディジットqj を選
択する; R(j+2) :=4R(j) −qj ・d; Qj :=Qj-2 +qj ・2-j; endstep4if R(n+2) <0 then begin Qn :=Qn −2-n; R(n+2) :=R(n+2) +d; endstep5 商Qn を2の補数表現に変換する。また、必要に応じて
最終剰余R(n+2) を2の補数表現に変換する。;なお、
上記の記述はプログラム言語Pascalの表記に準
じ、‘:=’は代入を表す演算子、[…]2 は2進数表示
の数値であることを示す。
トqj は冗長2進数表現、すなわち各2進数1桁が符号
ビットと絶対値ビットとの2ビットで表されるものとす
る。 step1被除数R(0) 、および除数dを正規化する。
すなわち、 2-1≦R(0) <1 2-1≦d<1 となるようにする。(既に正規化されていればこのステ
ップは不要である。); step2q0 :=[01]2 ; Q0 :=q0 ; R(2) :=R(0) −q0 ・d; step3for j:=2 to n+1 step 2do begin 下記(表1)、(表2)に従って商ディジットqj を選
択する; R(j+2) :=4R(j) −qj ・d; Qj :=Qj-2 +qj ・2-j; endstep4if R(n+2) <0 then begin Qn :=Qn −2-n; R(n+2) :=R(n+2) +d; endstep5 商Qn を2の補数表現に変換する。また、必要に応じて
最終剰余R(n+2) を2の補数表現に変換する。;なお、
上記の記述はプログラム言語Pascalの表記に準
じ、‘:=’は代入を表す演算子、[…]2 は2進数表示
の数値であることを示す。
【0007】
【表1】
【0008】
【表2】
【0009】上記(表1)は、除数dがあらかじめ設定
された値を境界とする複数の区間のうちのいずれに属す
るかを識別する除数区間識別論理を示し、論理式の演算
結果が変数D1 〜D11として表わされ、このうちのい
ずれか一つだけの値が1になるように設定されている。
また、(表2)は、上記変数D1 …等に基づいて商ディ
ジットqj を決定する商ディジット選択論理を示し、商
ディジット選択論理式の演算結果が変数zeroP…と
して表わされ、このうちのいずれか一つだけの値が1に
なり、対応する商ディジットが選択されるように設定さ
れている。
された値を境界とする複数の区間のうちのいずれに属す
るかを識別する除数区間識別論理を示し、論理式の演算
結果が変数D1 〜D11として表わされ、このうちのい
ずれか一つだけの値が1になるように設定されている。
また、(表2)は、上記変数D1 …等に基づいて商ディ
ジットqj を決定する商ディジット選択論理を示し、商
ディジット選択論理式の演算結果が変数zeroP…と
して表わされ、このうちのいずれか一つだけの値が1に
なり、対応する商ディジットが選択されるように設定さ
れている。
【0010】なお、(表1)および(表2)において、
各論理変数に対する上線は論理否定を示す。また、(表
2)において、商ディジットの欄の数字に対する上線は
負の数であることを示す。例えば
各論理変数に対する上線は論理否定を示す。また、(表
2)において、商ディジットの欄の数字に対する上線は
負の数であることを示す。例えば
【0011】
【数1】
【0012】は−1を表す。上記のようなアルゴリズム
で除算を行う除算装置としては、例えば図8に示すよう
な除算装置100が考えられる。同図において、1は除
数区間識別回路で、除数dの小数点以下第2位以下3桁
の値M2 、M3 、およびM4 に基づき、(表1)に従っ
て、除数dがあらかじめ設定された値を境界とする複数
の区間のうちのいずれに属するかを識別するものであ
る。
で除算を行う除算装置としては、例えば図8に示すよう
な除算装置100が考えられる。同図において、1は除
数区間識別回路で、除数dの小数点以下第2位以下3桁
の値M2 、M3 、およびM4 に基づき、(表1)に従っ
て、除数dがあらかじめ設定された値を境界とする複数
の区間のうちのいずれに属するかを識別するものであ
る。
【0013】3は商ディジット決定回路で、上記除数区
間識別回路1の識別結果と、後述する次部分剰余生成回
路17から出力される部分剰余R(j) の上位6桁を2の
補数表現に変換して得られる値の符号A0 と小数点以下
第1位から第6位までの値A 1 〜A6 とに基づき、(表
2)に従って、絶対値が2ビットで表される値−2、−
1、0、1、2のうちのいずれかを商ディジットqj と
して選択するものである。なお、この商ディジット決定
回路3は、除算の開始時には、商ディジットq 0 として
値1を出力するようになっている。商ディジット決定回
路3は、また、後述する除数倍数選択回路13、および
次部分剰余生成回路17に選択指示および加減算指示を
出力するようになっている。
間識別回路1の識別結果と、後述する次部分剰余生成回
路17から出力される部分剰余R(j) の上位6桁を2の
補数表現に変換して得られる値の符号A0 と小数点以下
第1位から第6位までの値A 1 〜A6 とに基づき、(表
2)に従って、絶対値が2ビットで表される値−2、−
1、0、1、2のうちのいずれかを商ディジットqj と
して選択するものである。なお、この商ディジット決定
回路3は、除算の開始時には、商ディジットq 0 として
値1を出力するようになっている。商ディジット決定回
路3は、また、後述する除数倍数選択回路13、および
次部分剰余生成回路17に選択指示および加減算指示を
出力するようになっている。
【0014】4は正の商ディジット格納回路で、商ディ
ジット決定回路3によって選択された商ディジットqj
が正ならば、その商ディジットqj の絶対値、正でなけ
れば、値0を対応する位取りの桁に格納するものであ
る。5は負の商ディジット格納回路で、上記正の商ディ
ジット格納回路4と同様に、商ディジットqj が負なら
ば、商ディジットqj の絶対値、負でなければ、値0を
対応する位取りの桁に格納するものである。
ジット決定回路3によって選択された商ディジットqj
が正ならば、その商ディジットqj の絶対値、正でなけ
れば、値0を対応する位取りの桁に格納するものであ
る。5は負の商ディジット格納回路で、上記正の商ディ
ジット格納回路4と同様に、商ディジットqj が負なら
ば、商ディジットqj の絶対値、負でなければ、値0を
対応する位取りの桁に格納するものである。
【0015】6は商変換回路で、正の商ディジット格納
回路4の内容から負の商ディジット格納回路5の内容を
減算し、減算結果を商Qn として出力するものである。
10は除数2倍回路で、除数dの2倍数を発生するもの
である。13は除数倍数選択回路で、商ディジット決定
回路3からの選択指示に応じて、商ディジットqj の絶
対値と除数dとの積、すなわち、除数d、除数dの2倍
数、または値0のいずれかを選択して出力するものであ
る。
回路4の内容から負の商ディジット格納回路5の内容を
減算し、減算結果を商Qn として出力するものである。
10は除数2倍回路で、除数dの2倍数を発生するもの
である。13は除数倍数選択回路で、商ディジット決定
回路3からの選択指示に応じて、商ディジットqj の絶
対値と除数dとの積、すなわち、除数d、除数dの2倍
数、または値0のいずれかを選択して出力するものであ
る。
【0016】16は部分剰余4倍回路で、後述する次部
分剰余生成回路17から出力される部分剰余R(j) の4
倍数を発生するものである。17は次部分剰余生成回路
で、除算の開始時には、図示しない正規化回路によって
正規化された被除数R(0) から、同じく正規化された除
数dを減算し、減算結果を最初の部分剰余R(2) とする
一方、その後には、商ディジット決定回路3からの加減
算指示に応じ、部分剰余4倍回路16から出力される部
分剰余R(j) の4倍数に対して、除数倍数選択回路13
から出力される値、すなわち商ディジットqj の絶対値
と除数dとの積を、商ディジットqj が正ならば減算、
負ならば加算するものである。
分剰余生成回路17から出力される部分剰余R(j) の4
倍数を発生するものである。17は次部分剰余生成回路
で、除算の開始時には、図示しない正規化回路によって
正規化された被除数R(0) から、同じく正規化された除
数dを減算し、減算結果を最初の部分剰余R(2) とする
一方、その後には、商ディジット決定回路3からの加減
算指示に応じ、部分剰余4倍回路16から出力される部
分剰余R(j) の4倍数に対して、除数倍数選択回路13
から出力される値、すなわち商ディジットqj の絶対値
と除数dとの積を、商ディジットqj が正ならば減算、
負ならば加算するものである。
【0017】なお、上記加減算は冗長2進数(2を基数
とする符号付きディジット数)体系で行なわれ、部分剰
余R(j) も冗長2進数表現として得られるようになって
いる。このように構成された除算装置100で行われる
除算動作を説明する。 (1) まず、正規化された被除数R(0) と、除数dと
が入力されると、次部分剰余生成回路17は被除数R
(0) から除数dを減算し、最初の部分剰余R(2) を出力
する。また、商ディジット決定回路3は最初の商ディジ
ットq0 (2進数表現における1の位の値)として値1
を出力し、正の商ディジット格納回路4に格納する。 (2) 除数区間識別回路1は、除数dの小数点以下第
2位以下3桁の値M2 〜M4 を(表1)に従ってデコー
ドし、除数dの含まれる区間を識別する。この識別は除
算の開始時に1回だけ行われ、識別結果は、その除算処
理が終了するまで保持される。 (3) 商ディジット決定回路3は、次部分剰余生成回
路17から出力された部分剰余R(2) の上位6桁を2の
補数表現に変換し、得られた値の符号A0 と小数点以下
第1位から第6位までの値A1 〜A6 、および上記除数
区間識別回路1の識別結果に基づき、(表2)に従って
値−2、−1、0、1、2のうちのいずれかを商ディジ
ットq2 として選択し、出力する。 (4) 商ディジット決定回路3は、さらに、正の商デ
ィジット格納回路4、および負の商ディジット格納回路
5における対応する位取りの桁に、それぞれ2ビットで
表わされる商ディジットq2 の絶対値、または値0を商
ディジットq2 の正負に応じて格納する。 (5) 除数倍数選択回路13は、商ディジット決定回
路3からの選択指示に応じて、商ディジットq2 の絶対
値と除数dとの積を選択して出力する。 (6) 次部分剰余生成回路17は、部分剰余4倍回路
16から出力される部分剰余R(2) の4倍数に対し、除
数倍数選択回路13から出力される値を、商ディジット
決定回路3からの加減算指示、すなわち商ディジットq
2 の正負に応じて減算または加算し、次の除算ステップ
に用いる部分剰余R(4) を出力する。 (7) 上記(3)〜(6)が、各添え字を2ずつイン
クリメントしつつ、n/2回(小数点以下は切り上げ
る)繰り返されることにより、各商ディジットqj が冗
長2進数表現として得られ、その正負に応じて、正の商
ディジット格納回路4または負の商ディジット格納回路
5に格納されるとともに、最終剰余R(n+2) が次部分剰
余生成回路17から出力される。 (8) 商変換回路6は、正の商ディジット格納回路4
に格納されている値から負の商ディジット格納回路5に
格納されている値を減算し、2の補数表現に変換すると
ともに、最終剰余R(n+2) が負であれば、最下位のビッ
トにおいて1を減じて商Qn を求める。また、必要に応
じて、図示しない最終剰余補正回路により同様に最終剰
余R(n+2) を2の補数表現に変換するともに、その値が
負であれば、これに除数dを加算する。
とする符号付きディジット数)体系で行なわれ、部分剰
余R(j) も冗長2進数表現として得られるようになって
いる。このように構成された除算装置100で行われる
除算動作を説明する。 (1) まず、正規化された被除数R(0) と、除数dと
が入力されると、次部分剰余生成回路17は被除数R
(0) から除数dを減算し、最初の部分剰余R(2) を出力
する。また、商ディジット決定回路3は最初の商ディジ
ットq0 (2進数表現における1の位の値)として値1
を出力し、正の商ディジット格納回路4に格納する。 (2) 除数区間識別回路1は、除数dの小数点以下第
2位以下3桁の値M2 〜M4 を(表1)に従ってデコー
ドし、除数dの含まれる区間を識別する。この識別は除
算の開始時に1回だけ行われ、識別結果は、その除算処
理が終了するまで保持される。 (3) 商ディジット決定回路3は、次部分剰余生成回
路17から出力された部分剰余R(2) の上位6桁を2の
補数表現に変換し、得られた値の符号A0 と小数点以下
第1位から第6位までの値A1 〜A6 、および上記除数
区間識別回路1の識別結果に基づき、(表2)に従って
値−2、−1、0、1、2のうちのいずれかを商ディジ
ットq2 として選択し、出力する。 (4) 商ディジット決定回路3は、さらに、正の商デ
ィジット格納回路4、および負の商ディジット格納回路
5における対応する位取りの桁に、それぞれ2ビットで
表わされる商ディジットq2 の絶対値、または値0を商
ディジットq2 の正負に応じて格納する。 (5) 除数倍数選択回路13は、商ディジット決定回
路3からの選択指示に応じて、商ディジットq2 の絶対
値と除数dとの積を選択して出力する。 (6) 次部分剰余生成回路17は、部分剰余4倍回路
16から出力される部分剰余R(2) の4倍数に対し、除
数倍数選択回路13から出力される値を、商ディジット
決定回路3からの加減算指示、すなわち商ディジットq
2 の正負に応じて減算または加算し、次の除算ステップ
に用いる部分剰余R(4) を出力する。 (7) 上記(3)〜(6)が、各添え字を2ずつイン
クリメントしつつ、n/2回(小数点以下は切り上げ
る)繰り返されることにより、各商ディジットqj が冗
長2進数表現として得られ、その正負に応じて、正の商
ディジット格納回路4または負の商ディジット格納回路
5に格納されるとともに、最終剰余R(n+2) が次部分剰
余生成回路17から出力される。 (8) 商変換回路6は、正の商ディジット格納回路4
に格納されている値から負の商ディジット格納回路5に
格納されている値を減算し、2の補数表現に変換すると
ともに、最終剰余R(n+2) が負であれば、最下位のビッ
トにおいて1を減じて商Qn を求める。また、必要に応
じて、図示しない最終剰余補正回路により同様に最終剰
余R(n+2) を2の補数表現に変換するともに、その値が
負であれば、これに除数dを加算する。
【0018】上記のような除算装置によれば、基数2の
SRT除算や非回復型除算を適用した除算装置に比べ
て、除算ステップの繰り返し回数が約半分になるととも
に、次部分剰余生成回路17が桁上げ伝播を伴わない冗
長2進数体系の演算を行うように構成されていることに
より、1除算ステップの実行時間が短く抑えられるの
で、上記基数2のSRT除算等を適用した除算装置の2
倍近い除算処理速度が得られる。
SRT除算や非回復型除算を適用した除算装置に比べ
て、除算ステップの繰り返し回数が約半分になるととも
に、次部分剰余生成回路17が桁上げ伝播を伴わない冗
長2進数体系の演算を行うように構成されていることに
より、1除算ステップの実行時間が短く抑えられるの
で、上記基数2のSRT除算等を適用した除算装置の2
倍近い除算処理速度が得られる。
【0019】また、基数4のSRT除算を適用した除算
装置においては商ディジットが値−3、−2、−1、
0、1、2、3のうちから選択されるのに対して、値−
2、−1、0、1、2のうちから選択されるように選択
範囲が制限されているので、商ディジットと除数との積
を求める回路を除数2倍回路10と除数倍数選択回路1
3とだけから構成することができ、ハードウェア規模の
増大を比較的小さく抑えることができるとともに、1除
算ステップの実行時間も比較的短く抑えることができ
る。
装置においては商ディジットが値−3、−2、−1、
0、1、2、3のうちから選択されるのに対して、値−
2、−1、0、1、2のうちから選択されるように選択
範囲が制限されているので、商ディジットと除数との積
を求める回路を除数2倍回路10と除数倍数選択回路1
3とだけから構成することができ、ハードウェア規模の
増大を比較的小さく抑えることができるとともに、1除
算ステップの実行時間も比較的短く抑えることができ
る。
【0020】
【発明が解決しようとする課題】しかしながら、上記の
ような除算装置においては、商ディジットと除数との積
を求める回路等を比較的簡潔に構成することができるも
のの、商ディジット選択論理が非常に複雑であり、部分
剰余および除数の多数の上位ビットをデコードする複雑
な商ディジット選択用デコーダを備える必要がある。
ような除算装置においては、商ディジットと除数との積
を求める回路等を比較的簡潔に構成することができるも
のの、商ディジット選択論理が非常に複雑であり、部分
剰余および除数の多数の上位ビットをデコードする複雑
な商ディジット選択用デコーダを備える必要がある。
【0021】それゆえ、商ディジット決定回路3のハー
ドウェア規模が大きく、商ディジットの選択に要する時
間も、SRT除算を適用した除算装置に比べて長くかか
る。したがって、従来の除算装置は、全体的に大幅なハ
ードウェア規模の増大を招くことなく、除算処理速度を
大幅に向上させることは困難であるという問題点を有し
ていた。
ドウェア規模が大きく、商ディジットの選択に要する時
間も、SRT除算を適用した除算装置に比べて長くかか
る。したがって、従来の除算装置は、全体的に大幅なハ
ードウェア規模の増大を招くことなく、除算処理速度を
大幅に向上させることは困難であるという問題点を有し
ていた。
【0022】しかも、同様の手法を基数8以上の高基数
除算に応用することは、一層の商ディジット選択用デコ
ーダの複雑化および商ディジットの選択に要する時間の
増大を招くことになるので、困難である。このように、
従来の除算装置は商ディジットと除数との積の算出を容
易にするために商ディジットの選択範囲を制限してい
た。
除算に応用することは、一層の商ディジット選択用デコ
ーダの複雑化および商ディジットの選択に要する時間の
増大を招くことになるので、困難である。このように、
従来の除算装置は商ディジットと除数との積の算出を容
易にするために商ディジットの選択範囲を制限してい
た。
【0023】本発明は上記の点に鑑み、商ディジット選
択論理を簡素化して、大幅な除算処理の高速化を図ると
ともにハードウェア規模の増大を小さく抑えることがで
きる除算装置の提供を目的としている。
択論理を簡素化して、大幅な除算処理の高速化を図ると
ともにハードウェア規模の増大を小さく抑えることがで
きる除算装置の提供を目的としている。
【0024】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、8を基数として除算を行う除算装置であ
って、2の補数表現の部分剰余の取り得る区間を予め定
められた定数を境界として分割し該部分剰余がどの分割
された区間に含まれるかを該部分剰余の小数点以下4ビ
ットと該部分剰余の符号により判定する部分剰余区間識
別手段と、正規化された除数の取り得る区間を予め定め
られた定数を境界として分割し該除数がどの分割された
区間に含まれるかを該除数の小数第2位以下5ビットに
より判定する除数区間識別手段と、除算の最初において
は、商ディジットとして1を生成し、除算の最初以外に
おいては、前記部分剰余区間識別手段と前記除数区間識
別手段で判定した部分剰余と除数それぞれが含まれる区
間の組み合わせに従い集合{−7、−6、−5、−4、
−3、−2、−1、0、1、2、3、4、5、6、7}
から唯一の商ディジットを選択する商ディジット決定手
段と、前記商ディジットと前記除数との積を求める除数
倍数生成手段と、除算の最初においては、正規化された
被除数より前記除数を減算し且つ該差を最初の2の補数
表現の部分剰余とし、除算の最初以外においては、8倍
された2の補数表現の部分剰余から前記除数倍数生成手
段で求めた商ディジットと除数との積を減算し且つ該差
を次の2の補数表現の部分剰余とする次部分剰余生成手
段とを備え、 前記商ディジット決定手段は、前記部分
剰余区間と除数区間との組み合わせと、商ディジットと
を対応させたテーブルに従って前記唯一の商ディジット
を選択し、前記テーブルは、5ビットにより識別される
各部分剰区間ごとに、商ディジットが存在する除数区間
が組み合わせられ、1つの部分剰余区間に対して、商デ
ィジットが存在する除数区間が複数存在する場合には、
該除数の小数第2位以下5ビットにより1つの除数区間
が特定されている。
め、本発明は、8を基数として除算を行う除算装置であ
って、2の補数表現の部分剰余の取り得る区間を予め定
められた定数を境界として分割し該部分剰余がどの分割
された区間に含まれるかを該部分剰余の小数点以下4ビ
ットと該部分剰余の符号により判定する部分剰余区間識
別手段と、正規化された除数の取り得る区間を予め定め
られた定数を境界として分割し該除数がどの分割された
区間に含まれるかを該除数の小数第2位以下5ビットに
より判定する除数区間識別手段と、除算の最初において
は、商ディジットとして1を生成し、除算の最初以外に
おいては、前記部分剰余区間識別手段と前記除数区間識
別手段で判定した部分剰余と除数それぞれが含まれる区
間の組み合わせに従い集合{−7、−6、−5、−4、
−3、−2、−1、0、1、2、3、4、5、6、7}
から唯一の商ディジットを選択する商ディジット決定手
段と、前記商ディジットと前記除数との積を求める除数
倍数生成手段と、除算の最初においては、正規化された
被除数より前記除数を減算し且つ該差を最初の2の補数
表現の部分剰余とし、除算の最初以外においては、8倍
された2の補数表現の部分剰余から前記除数倍数生成手
段で求めた商ディジットと除数との積を減算し且つ該差
を次の2の補数表現の部分剰余とする次部分剰余生成手
段とを備え、 前記商ディジット決定手段は、前記部分
剰余区間と除数区間との組み合わせと、商ディジットと
を対応させたテーブルに従って前記唯一の商ディジット
を選択し、前記テーブルは、5ビットにより識別される
各部分剰区間ごとに、商ディジットが存在する除数区間
が組み合わせられ、1つの部分剰余区間に対して、商デ
ィジットが存在する除数区間が複数存在する場合には、
該除数の小数第2位以下5ビットにより1つの除数区間
が特定されている。
【0025】また本発明は、4を基数として除算を行う
除算装置であって、2の補数表現の部分剰余の取り得る
区間を予め定められた定数を境界として分割し該部分剰
余がどの分割された区間に含まれるかを該部分剰余の小
数点以下3ビットと該部分剰余の符号により判定する部
分剰余区間識別手段と、除算の最初においては、商ディ
ジットとして1を生成し、除算の最初以外においては、
前記部分剰余区間識別手段で判定した部分剰余が含まれ
る区間と正規化された除数の小数第2位1ビットの組み
合わせに従い集合{−3、−2、−1、0、1、2、
3}から唯一の商ディジットを選択する商ディジット決
定手段と、前記商ディジットと前記除数との積を求める
除数倍数生成手段と、除算の最初においては、正規化さ
れた被除数より前記除数を減算し且つ該差を最初の2の
補数表現の部分剰余とし、除算の最初以外においては、
4倍された2の補数表現の部分剰余から前記除数倍数生
成手段で求めた商ディジットと除数との積を減算し且つ
該差を次の2の補数表現の部分剰余とする次部分剰余生
成手段とを備え、 前記商ディジット決定手段は、前記
部分剰余区間と除数区間との組み合わせと、商ディジッ
トとを対応させたテーブルに従って前記唯一の商ディジ
ットを選択し、前記テーブルは、4ビットにより識別さ
れる各部分剰区間ごとに、商ディジットが存在する除数
区間が組み合わせられ、1つの部分剰余区間に対して、
商ディジットが存在する除数区間が複数存在する場合に
は、該除数の小数第2位の1ビットにより1つの除数区
間が特定されている。
除算装置であって、2の補数表現の部分剰余の取り得る
区間を予め定められた定数を境界として分割し該部分剰
余がどの分割された区間に含まれるかを該部分剰余の小
数点以下3ビットと該部分剰余の符号により判定する部
分剰余区間識別手段と、除算の最初においては、商ディ
ジットとして1を生成し、除算の最初以外においては、
前記部分剰余区間識別手段で判定した部分剰余が含まれ
る区間と正規化された除数の小数第2位1ビットの組み
合わせに従い集合{−3、−2、−1、0、1、2、
3}から唯一の商ディジットを選択する商ディジット決
定手段と、前記商ディジットと前記除数との積を求める
除数倍数生成手段と、除算の最初においては、正規化さ
れた被除数より前記除数を減算し且つ該差を最初の2の
補数表現の部分剰余とし、除算の最初以外においては、
4倍された2の補数表現の部分剰余から前記除数倍数生
成手段で求めた商ディジットと除数との積を減算し且つ
該差を次の2の補数表現の部分剰余とする次部分剰余生
成手段とを備え、 前記商ディジット決定手段は、前記
部分剰余区間と除数区間との組み合わせと、商ディジッ
トとを対応させたテーブルに従って前記唯一の商ディジ
ットを選択し、前記テーブルは、4ビットにより識別さ
れる各部分剰区間ごとに、商ディジットが存在する除数
区間が組み合わせられ、1つの部分剰余区間に対して、
商ディジットが存在する除数区間が複数存在する場合に
は、該除数の小数第2位の1ビットにより1つの除数区
間が特定されている。
【0026】
【作用】上記の構成により、商ディジット選択手段は、
除数および2の補数表現で表される部分剰余における上
位の一部の桁の値と部分剰余の符号、または除数および
冗長2進数表現で表される部分剰余における上位の一部
の桁の値に基づいて、基数のもとにとり得るすべての商
ディジットの値のうちのいずれかを選択する。この商デ
ィジットは、8を基数とする場合には、部分剰余の小数
点以下4ビットと該部分剰余の符号、および除数の小数
第2位以下5ビットにより判定される。また、4を基数
とする場合には、部分剰余の小数点以下3ビットと該部
分剰余の符号、および除数の小数第2位の1ビットによ
り判定される。
除数および2の補数表現で表される部分剰余における上
位の一部の桁の値と部分剰余の符号、または除数および
冗長2進数表現で表される部分剰余における上位の一部
の桁の値に基づいて、基数のもとにとり得るすべての商
ディジットの値のうちのいずれかを選択する。この商デ
ィジットは、8を基数とする場合には、部分剰余の小数
点以下4ビットと該部分剰余の符号、および除数の小数
第2位以下5ビットにより判定される。また、4を基数
とする場合には、部分剰余の小数点以下3ビットと該部
分剰余の符号、および除数の小数第2位の1ビットによ
り判定される。
【0027】複数の除数倍数生成手段は、それぞれ、値
0、および除数の2の整数乗倍の値のうちの少なくとも
いずれか1つを生成する。3入力以上の加減算手段、ま
たは第1および第2の加減算手段は、除数倍数生成手段
の出力および部分剰余の基数倍の値とを加減算して、新
たな部分剰余を生成する。
0、および除数の2の整数乗倍の値のうちの少なくとも
いずれか1つを生成する。3入力以上の加減算手段、ま
たは第1および第2の加減算手段は、除数倍数生成手段
の出力および部分剰余の基数倍の値とを加減算して、新
たな部分剰余を生成する。
【0028】
【実施例】(実施例1)本発明の実施例1として、被除
数R(0) を除数Dで除算した小数点以下のビット長がn
(但し、nは2の倍数)の商Qn 、および最終剰余の2
j 倍(以下単に最終剰余と称する。但し、jは2の倍
数)R(n+2) を算出する除算装置の例を説明する。
数R(0) を除数Dで除算した小数点以下のビット長がn
(但し、nは2の倍数)の商Qn 、および最終剰余の2
j 倍(以下単に最終剰余と称する。但し、jは2の倍
数)R(n+2) を算出する除算装置の例を説明する。
【0029】ここで、基数は4、すなわち除算の商を2
進数表現における小数点以下第j−1位と第j位との2
桁ずつ求めて、これを1つの商ディジットqj とするも
のとし、小数点以下第j位までの商をQj とする。ま
た、上記商ディジットqj を求める際に用いられる部分
剰余の2j 倍(以下単に部分剰余と称する。)をR(j)
で表わし、この部分剰余R(j) の小数点以下第i位の値
をri (j) で表わす。
進数表現における小数点以下第j−1位と第j位との2
桁ずつ求めて、これを1つの商ディジットqj とするも
のとし、小数点以下第j位までの商をQj とする。ま
た、上記商ディジットqj を求める際に用いられる部分
剰余の2j 倍(以下単に部分剰余と称する。)をR(j)
で表わし、この部分剰余R(j) の小数点以下第i位の値
をri (j) で表わす。
【0030】さらに、除数Dにおける小数点以下第i位
の値をdi で表わす。すなわち、 R(j) =r0 (j) .r1 (j) r2 (j) r3 (j) r4 (j)
… Qj =q0 .q2 q4 …qj D=0.d1 d2 d3 d4 … で表わされる。但し、部分剰余R(j) は2の補数表現で
表されるものとし、上記r0 (j) は2の補数表現におけ
る符号を示すものである。
の値をdi で表わす。すなわち、 R(j) =r0 (j) .r1 (j) r2 (j) r3 (j) r4 (j)
… Qj =q0 .q2 q4 …qj D=0.d1 d2 d3 d4 … で表わされる。但し、部分剰余R(j) は2の補数表現で
表されるものとし、上記r0 (j) は2の補数表現におけ
る符号を示すものである。
【0031】また、商ディジットqj は冗長2進数表
現、すなわち下記(表3)に示すように、各2進数1桁
が符号ビットと絶対値ビットとの2ビットで表されるも
のとする。ここで、上記冗長2進数表現のビット割り当
ては便宜上のものであり、任意の割り当てが可能であ
る。なお、同表中および以下の説明において、記号Xは
値が0でも1でもよいことを示し、数字に対する上線は
負の数であることを示す。また、以下の説明において、
論理変数に対する上線は論理否定を示す。
現、すなわち下記(表3)に示すように、各2進数1桁
が符号ビットと絶対値ビットとの2ビットで表されるも
のとする。ここで、上記冗長2進数表現のビット割り当
ては便宜上のものであり、任意の割り当てが可能であ
る。なお、同表中および以下の説明において、記号Xは
値が0でも1でもよいことを示し、数字に対する上線は
負の数であることを示す。また、以下の説明において、
論理変数に対する上線は論理否定を示す。
【0032】
【表3】
【0033】まず、本発明で適用される概略のアルゴリ
ズムについて説明する。 step1 被除数R(0) 、および除数Dを正規化する。すなわち、 2-1≦R(0) <1 2-1≦D<1 となるようにする。(既に正規化されていればこのステ
ップは不要である。);step2 q0 :=[01]2 ; Q0 :=q0 ; R(2) :=R(0) −q0 ・D;step3 for j:=2 to n+1 step 2 dobegin 下記(表4)〜(表6)に従って商ディジットqj を選
択する; R(j+2) :=4R(j) −qj ・D; Qj :=Qj-2 +qj ・2-j; endstep4 if R(n+2) <0 then begin Qn :=Qn −2-n; R(n+2) :=R(n+2) +D; endstep5 商Qn を2の補数表現に変換する。;なお、上記の記述
はプログラム言語Pascalの表記に準じ、‘:=’は
代入を表す演算子、[…]2 は2進数表示の数値である
ことを示す。
ズムについて説明する。 step1 被除数R(0) 、および除数Dを正規化する。すなわち、 2-1≦R(0) <1 2-1≦D<1 となるようにする。(既に正規化されていればこのステ
ップは不要である。);step2 q0 :=[01]2 ; Q0 :=q0 ; R(2) :=R(0) −q0 ・D;step3 for j:=2 to n+1 step 2 dobegin 下記(表4)〜(表6)に従って商ディジットqj を選
択する; R(j+2) :=4R(j) −qj ・D; Qj :=Qj-2 +qj ・2-j; endstep4 if R(n+2) <0 then begin Qn :=Qn −2-n; R(n+2) :=R(n+2) +D; endstep5 商Qn を2の補数表現に変換する。;なお、上記の記述
はプログラム言語Pascalの表記に準じ、‘:=’は
代入を表す演算子、[…]2 は2進数表示の数値である
ことを示す。
【0034】
【表4】
【0035】
【表5】
【0036】
【表6】
【0037】上記(表4)は、部分剰余R(j) があらか
じめ設定された値を境界とする複数の区間のうちのいず
れに属するかを識別する部分剰余区間識別論理を示し、
論理式の演算結果が変数R4 、R3 …として表わされ、
このうちのいずれか一つだけの値が1になるように設定
されている。(表5)は、上記各部分剰余区間ごとの、
商ディジットqj を選択すべき除数Dの範囲を示す。同
表中、()内の数値は理論的な境界値を示し、()外の
数値は本実施例において適用する境界値を示す。また、
空欄は、そのような商ディジットqj の値になる除数D
は存在しないことを示し、記号−は、理論的に、Dmi n
に対しては1/2よりも小さく、Dmax に対しては1よ
りも大きいことを示す。但し、実際には除数Dは正規化
されているので、このような範囲を考慮する必要はな
い。なお、各除数Dの範囲には、理論的境界値Dmin は
含まれる一方Dma x は含まれず、適用する境界値も同様
になるように設定されている。また、部分剰余R(j) が
負である場合には、商ディジットqj の符号を反転した
ものとなる。
じめ設定された値を境界とする複数の区間のうちのいず
れに属するかを識別する部分剰余区間識別論理を示し、
論理式の演算結果が変数R4 、R3 …として表わされ、
このうちのいずれか一つだけの値が1になるように設定
されている。(表5)は、上記各部分剰余区間ごとの、
商ディジットqj を選択すべき除数Dの範囲を示す。同
表中、()内の数値は理論的な境界値を示し、()外の
数値は本実施例において適用する境界値を示す。また、
空欄は、そのような商ディジットqj の値になる除数D
は存在しないことを示し、記号−は、理論的に、Dmi n
に対しては1/2よりも小さく、Dmax に対しては1よ
りも大きいことを示す。但し、実際には除数Dは正規化
されているので、このような範囲を考慮する必要はな
い。なお、各除数Dの範囲には、理論的境界値Dmin は
含まれる一方Dma x は含まれず、適用する境界値も同様
になるように設定されている。また、部分剰余R(j) が
負である場合には、商ディジットqj の符号を反転した
ものとなる。
【0038】(表6)は、除数Dが上記(表5)におけ
る複数の区間のうちのいずれに属するかを識別する除数
区間識別論理を示し、論理式の演算結果が変数D
0 (0)、D1 (1)…として表わされ、それぞれの部
分剰余区間ごとに、いずれか一つだけの値が1になるよ
うに設定されている。すなわち、変数R0 …と変数D0
(0)…との論理積をとることにより、いずれか一つの
論理積だけが1となって商ディジットが選択されるよう
になっている。
る複数の区間のうちのいずれに属するかを識別する除数
区間識別論理を示し、論理式の演算結果が変数D
0 (0)、D1 (1)…として表わされ、それぞれの部
分剰余区間ごとに、いずれか一つだけの値が1になるよ
うに設定されている。すなわち、変数R0 …と変数D0
(0)…との論理積をとることにより、いずれか一つの
論理積だけが1となって商ディジットが選択されるよう
になっている。
【0039】なお、上記除算算法の正当性は数学的帰納
法により証明することができる。次に、上記アルゴリズ
ムに従って除算を行う除算装置を図1ないし図3に基づ
いて説明する。図1は除算装置200の構成を示すブロ
ック図である。同図において、22は部分剰余区間識別
回路で、後述する次部分剰余生成用3入力加減算回路3
7から出力される部分剰余R(j) の符号r0 (j) と小数
点以下第1位から第3位までの値r1 (j) 〜r3 (j) と
に基づき、(表4)に従って、部分剰余R(j) があらか
じめ設定された値を境界とする複数の区間のうちのいず
れに属するかを識別するものである。
法により証明することができる。次に、上記アルゴリズ
ムに従って除算を行う除算装置を図1ないし図3に基づ
いて説明する。図1は除算装置200の構成を示すブロ
ック図である。同図において、22は部分剰余区間識別
回路で、後述する次部分剰余生成用3入力加減算回路3
7から出力される部分剰余R(j) の符号r0 (j) と小数
点以下第1位から第3位までの値r1 (j) 〜r3 (j) と
に基づき、(表4)に従って、部分剰余R(j) があらか
じめ設定された値を境界とする複数の区間のうちのいず
れに属するかを識別するものである。
【0040】23は商ディジット決定回路で、上記部分
剰余区間識別回路22の識別結果と、除数Dの小数点以
下第2位の値d2 とに基づき、(表6)に従って、絶対
値が2ビットで表わされる値−3、−2、−1、0、
1、2、3のうちのいずれかを商ディジットqj として
選択するものである。なお、この商ディジット決定回路
23は、除算の開始時には、商ディジットq0 として値
1を出力するようになっている。商ディジット決定回路
23は、また、後述する第1・第2の除数倍数選択回路
33・34、および次部分剰余生成用3入力加減算回路
37に選択指示および加減算指示を出力するようになっ
ている。
剰余区間識別回路22の識別結果と、除数Dの小数点以
下第2位の値d2 とに基づき、(表6)に従って、絶対
値が2ビットで表わされる値−3、−2、−1、0、
1、2、3のうちのいずれかを商ディジットqj として
選択するものである。なお、この商ディジット決定回路
23は、除算の開始時には、商ディジットq0 として値
1を出力するようになっている。商ディジット決定回路
23は、また、後述する第1・第2の除数倍数選択回路
33・34、および次部分剰余生成用3入力加減算回路
37に選択指示および加減算指示を出力するようになっ
ている。
【0041】24は正の商ディジット格納回路で、商デ
ィジット決定回路23によって選択された商ディジット
qj が正ならば、その商ディジットqj の絶対値、正で
なければ、値0を対応する位取りの桁に格納するもので
ある。25は負の商ディジット格納回路で、上記正の商
ディジット格納回路24と同様に、商ディジットqj が
負ならば、商ディジットqjの絶対値、負でなければ、
値0を対応する位取りの桁に格納するものである。
ィジット決定回路23によって選択された商ディジット
qj が正ならば、その商ディジットqj の絶対値、正で
なければ、値0を対応する位取りの桁に格納するもので
ある。25は負の商ディジット格納回路で、上記正の商
ディジット格納回路24と同様に、商ディジットqj が
負ならば、商ディジットqjの絶対値、負でなければ、
値0を対応する位取りの桁に格納するものである。
【0042】なお、上記正の商ディジット格納回路2
4、負の商ディジット格納回路25は、シフトレジスタ
を用いて、最下位の2桁に商ディジットqj を格納した
後に保持している値を2桁左シフトするように構成して
もよい。26は商変換回路で、正の商ディジット格納回
路24の内容から負の商ディジット格納回路25の内容
を減算し、減算結果を商Qn として出力するものであ
る。
4、負の商ディジット格納回路25は、シフトレジスタ
を用いて、最下位の2桁に商ディジットqj を格納した
後に保持している値を2桁左シフトするように構成して
もよい。26は商変換回路で、正の商ディジット格納回
路24の内容から負の商ディジット格納回路25の内容
を減算し、減算結果を商Qn として出力するものであ
る。
【0043】ここで、上記商変換回路26は、後述する
次部分剰余生成用3入力加減算回路37で代用するよう
に構成してもよい。30は除数2倍回路で、除数Dの2
倍数を発生するものである。この除数2倍回路30は、
より具体的には、例えばシフトレジスタにより構成され
る。ここで、除数Dの2倍数は、1除算ステップごとに
発生するようにしてもよいし、あらかじめ発生しておく
ようにしてもよい。
次部分剰余生成用3入力加減算回路37で代用するよう
に構成してもよい。30は除数2倍回路で、除数Dの2
倍数を発生するものである。この除数2倍回路30は、
より具体的には、例えばシフトレジスタにより構成され
る。ここで、除数Dの2倍数は、1除算ステップごとに
発生するようにしてもよいし、あらかじめ発生しておく
ようにしてもよい。
【0044】33は第1の除数倍数選択回路で、商ディ
ジット決定回路23からの選択指示に応じて、下記(表
7)に従い、除数Dの2倍数、または値0のいずれかを
選択して、値Aとして出力するものである。34は第2
の除数倍数選択回路で、商ディジット決定回路23から
の選択指示に応じて、下記(表7)に従い、除数D、ま
たは値0のいずれかを選択して、値Bとして出力するも
のである。
ジット決定回路23からの選択指示に応じて、下記(表
7)に従い、除数Dの2倍数、または値0のいずれかを
選択して、値Aとして出力するものである。34は第2
の除数倍数選択回路で、商ディジット決定回路23から
の選択指示に応じて、下記(表7)に従い、除数D、ま
たは値0のいずれかを選択して、値Bとして出力するも
のである。
【0045】上記第1・第2の除数倍数選択回路33・
34の出力A、Bは、後述する次部分剰余生成用3入力
加減算回路37で下記(表7)に従って加減算されるこ
とにより、商ディジットqj の絶対値と除数Dとの積と
して、除数Dの0〜3倍までの倍数が生成されるように
なっている。
34の出力A、Bは、後述する次部分剰余生成用3入力
加減算回路37で下記(表7)に従って加減算されるこ
とにより、商ディジットqj の絶対値と除数Dとの積と
して、除数Dの0〜3倍までの倍数が生成されるように
なっている。
【0046】
【表7】
【0047】36は部分剰余4倍回路で、後述する次部
分剰余生成用3入力加減算回路37から出力される部分
剰余R(j) の4倍数を発生するものである。37は次部
分剰余生成用3入力加減算回路で、除算の開始時には、
図示しない正規化回路によって正規化された被除数R
(0) から、同じく正規化された除数Dを減算し、減算結
果を最初の部分剰余R(2) とする一方、その後には、商
ディジット決定回路23からの加減算指示に応じて、上
記(表7)に従い、部分剰余4倍回路36からの出力4
×R(j) と、第1・第2の除数倍数選択回路33・34
の出力A、Bとを加減算するものである。すなわち、部
分剰余R(j) の4倍数に対して、商ディジットqj の絶
対値と除数Dとの積を、商ディジットqjが正ならば減
算、負ならば加算するようになっている。
分剰余生成用3入力加減算回路37から出力される部分
剰余R(j) の4倍数を発生するものである。37は次部
分剰余生成用3入力加減算回路で、除算の開始時には、
図示しない正規化回路によって正規化された被除数R
(0) から、同じく正規化された除数Dを減算し、減算結
果を最初の部分剰余R(2) とする一方、その後には、商
ディジット決定回路23からの加減算指示に応じて、上
記(表7)に従い、部分剰余4倍回路36からの出力4
×R(j) と、第1・第2の除数倍数選択回路33・34
の出力A、Bとを加減算するものである。すなわち、部
分剰余R(j) の4倍数に対して、商ディジットqj の絶
対値と除数Dとの積を、商ディジットqjが正ならば減
算、負ならば加算するようになっている。
【0048】上記次部分剰余生成用3入力加減算回路3
7は、より詳しくは例えば図2に示すように、被減数ビ
ット反転回路371、3入力加算回路372、および和
ビット反転回路373から構成され、上記被減数ビット
反転回路371、および和ビット反転回路373は、図
3に示すように複数のXORゲート374から構成さ
れ、図示しない制御部からの制御信号に応じて、4×R
(j)+A+Bまたは4×R(j) −A−Bの演算が行われ
るようになっている。
7は、より詳しくは例えば図2に示すように、被減数ビ
ット反転回路371、3入力加算回路372、および和
ビット反転回路373から構成され、上記被減数ビット
反転回路371、および和ビット反転回路373は、図
3に示すように複数のXORゲート374から構成さ
れ、図示しない制御部からの制御信号に応じて、4×R
(j)+A+Bまたは4×R(j) −A−Bの演算が行われ
るようになっている。
【0049】上記3入力加算回路372は、除算装置2
00が例えば浮動小数点数演算装置等、3入力加算器を
備えた装置に設けられる場合には、その3入力加算器を
流用するようにしてもよい。また、2入力加算器を備え
た装置に設けられる場合には、僅かなハードウェアの追
加を行って3入力加算器に拡張したものを用いるように
してもよい。
00が例えば浮動小数点数演算装置等、3入力加算器を
備えた装置に設けられる場合には、その3入力加算器を
流用するようにしてもよい。また、2入力加算器を備え
た装置に設けられる場合には、僅かなハードウェアの追
加を行って3入力加算器に拡張したものを用いるように
してもよい。
【0050】ここで、以上説明した各回路は、公知のA
ND回路、OR回路、およびNOT回路等によって構成
され、(表4)(表6)および(表7)に示す論理演算
などが行われるようになっている。なお、実際にはこれ
ら以外にも、部分剰余R(j) を一時記憶する回路や除算
ステップの回数を数える回路など種々の構成要素を必要
とするが、本発明の主眼ではないので省略する。
ND回路、OR回路、およびNOT回路等によって構成
され、(表4)(表6)および(表7)に示す論理演算
などが行われるようになっている。なお、実際にはこれ
ら以外にも、部分剰余R(j) を一時記憶する回路や除算
ステップの回数を数える回路など種々の構成要素を必要
とするが、本発明の主眼ではないので省略する。
【0051】上記の構成において、除算装置200で行
われる除算動作を説明する。 (1) まず、正規化された被除数R(0) と、除数Dと
が入力されると、次部分剰余生成用3入力加減算回路3
7は被除数R(0) から除数Dを減算し、最初の部分剰余
R(2) を出力する。また、商ディジット決定回路23は
最初の商ディジットq0 (2進数表現における1の位の
値)として値1を出力し、正の商ディジット格納回路2
4に格納する。 (2) 部分剰余区間識別回路22は、次部分剰余生成
用3入力加減算回路37から出力された部分剰余R(2)
の符号r0 (2) と小数点以下第1位から第3位までの値
r1 (2) 〜r3 (2) を(表4)に従ってデコードし、部
分剰余R(2) の含まれる区間を識別する。
われる除算動作を説明する。 (1) まず、正規化された被除数R(0) と、除数Dと
が入力されると、次部分剰余生成用3入力加減算回路3
7は被除数R(0) から除数Dを減算し、最初の部分剰余
R(2) を出力する。また、商ディジット決定回路23は
最初の商ディジットq0 (2進数表現における1の位の
値)として値1を出力し、正の商ディジット格納回路2
4に格納する。 (2) 部分剰余区間識別回路22は、次部分剰余生成
用3入力加減算回路37から出力された部分剰余R(2)
の符号r0 (2) と小数点以下第1位から第3位までの値
r1 (2) 〜r3 (2) を(表4)に従ってデコードし、部
分剰余R(2) の含まれる区間を識別する。
【0052】ここで、次部分剰余生成用3入力加減算回
路37から出力される部分剰余R(2 ) は2の補数表現で
あるため、冗長2進数表現から2の補数表現への変換を
行う必要はない。 (3) 商ディジット決定回路23は、上記部分剰余区
間識別回路22の識別結果と、除数Dの小数点以下第2
位の値d2 とに基づき、(表6)に従って、値−3、−
2、−1、0、1、2、3のうちのいずれかを商ディジ
ットq2 として選択し、出力する。 (4) 商ディジット決定回路23は、さらに、正の商
ディジット格納回路24、および負の商ディジット格納
回路25における対応する位取りの桁に、それぞれ2ビ
ットで表わされる商ディジットq2 の絶対値、または値
0を商ディジットq2 の正負に応じて格納する。 (5) 第1の除数倍数選択回路33および第2の除数
倍数選択回路34は、それぞれ、商ディジット決定回路
23からの選択指示に応じて、(表7)に従い値0また
は除数Dの2倍数のうちの一方、もしくは値0または除
数Dのうちの一方を選択して出力する。 (6) 次部分剰余生成用3入力加減算回路37は、商
ディジット決定回路23からの加減算指示に応じて、
(表7)に従い、部分剰余4倍回路36からの出力4×
R(2) と、第1・第2の除数倍数選択回路33・34か
らの出力A、Bとの加減算を行い、次の除算ステップに
用いる部分剰余R(4) を出力する。 (7) 上記(2)〜(6)が、各添え字を2ずつイン
クリメントしつつ、n/2回(小数点以下は切り上げ
る)繰り返されることにより、各商ディジットqj が冗
長2進数表現として得られ、その正負に応じて、正の商
ディジット格納回路24または負の商ディジット格納回
路25に格納されるとともに、最終剰余R(n +2) が次部
分剰余生成用3入力加減算回路37から出力される。 (8) 商変換回路26は、正の商ディジット格納回路
24に格納されている値から負の商ディジット格納回路
25に格納されている値を減算し、2の補数表現に変換
するとともに、最終剰余R(n+2) が負であれば、最下位
のビットにおいて1を減じて商Qn を求める。また、必
要に応じて、最終剰余R(n+2) の値が負であれば、これ
に除数Dを加算する。
路37から出力される部分剰余R(2 ) は2の補数表現で
あるため、冗長2進数表現から2の補数表現への変換を
行う必要はない。 (3) 商ディジット決定回路23は、上記部分剰余区
間識別回路22の識別結果と、除数Dの小数点以下第2
位の値d2 とに基づき、(表6)に従って、値−3、−
2、−1、0、1、2、3のうちのいずれかを商ディジ
ットq2 として選択し、出力する。 (4) 商ディジット決定回路23は、さらに、正の商
ディジット格納回路24、および負の商ディジット格納
回路25における対応する位取りの桁に、それぞれ2ビ
ットで表わされる商ディジットq2 の絶対値、または値
0を商ディジットq2 の正負に応じて格納する。 (5) 第1の除数倍数選択回路33および第2の除数
倍数選択回路34は、それぞれ、商ディジット決定回路
23からの選択指示に応じて、(表7)に従い値0また
は除数Dの2倍数のうちの一方、もしくは値0または除
数Dのうちの一方を選択して出力する。 (6) 次部分剰余生成用3入力加減算回路37は、商
ディジット決定回路23からの加減算指示に応じて、
(表7)に従い、部分剰余4倍回路36からの出力4×
R(2) と、第1・第2の除数倍数選択回路33・34か
らの出力A、Bとの加減算を行い、次の除算ステップに
用いる部分剰余R(4) を出力する。 (7) 上記(2)〜(6)が、各添え字を2ずつイン
クリメントしつつ、n/2回(小数点以下は切り上げ
る)繰り返されることにより、各商ディジットqj が冗
長2進数表現として得られ、その正負に応じて、正の商
ディジット格納回路24または負の商ディジット格納回
路25に格納されるとともに、最終剰余R(n +2) が次部
分剰余生成用3入力加減算回路37から出力される。 (8) 商変換回路26は、正の商ディジット格納回路
24に格納されている値から負の商ディジット格納回路
25に格納されている値を減算し、2の補数表現に変換
するとともに、最終剰余R(n+2) が負であれば、最下位
のビットにおいて1を減じて商Qn を求める。また、必
要に応じて、最終剰余R(n+2) の値が負であれば、これ
に除数Dを加算する。
【0053】このように、基数を4とすることにより、
除算ステップの繰り返し回数は、基数2のSRT除算や
非回復型除算に比べて約1/2になる。一方、除数倍数
の生成論理は多少複雑ではあるが、次部分剰余生成用3
入力加減算回路37を備えていることにより、ハードウ
ェア規模はさほど大きくはなく、また、部分剰余の生成
に要する時間もあまり長くはかからないのに対し、商デ
ィジット選択論理は非常に簡潔であるため、除算装置全
体としては、前記テ゛ィー.イー.アトキンス゛のアルゴリズムを適用
した除算装置等に比べて同程度のハードウェア規模で1
除算ステップの実行時間を短縮することができる。
除算ステップの繰り返し回数は、基数2のSRT除算や
非回復型除算に比べて約1/2になる。一方、除数倍数
の生成論理は多少複雑ではあるが、次部分剰余生成用3
入力加減算回路37を備えていることにより、ハードウ
ェア規模はさほど大きくはなく、また、部分剰余の生成
に要する時間もあまり長くはかからないのに対し、商デ
ィジット選択論理は非常に簡潔であるため、除算装置全
体としては、前記テ゛ィー.イー.アトキンス゛のアルゴリズムを適用
した除算装置等に比べて同程度のハードウェア規模で1
除算ステップの実行時間を短縮することができる。
【0054】特に、次部分剰余生成用3入力加減算回路
37の3入力加算回路372として、例えば除算装置が
設けられる浮動小数点数演算装置等に備えられている3
入力加算器を流用する場合などには、一層ハードウェア
の規模は小さく押えることができる。しかも収束型除算
のように誤差を伴うことなく最下位ビットまで正確な商
と剰余が得られる。 (実施例2)本発明の実施例2として、基数が8で、部
分剰余R(j) は、演算過程において商ディジットqj と
同様に冗長2進数表現で表わされる除算装置の例を説明
する。
37の3入力加算回路372として、例えば除算装置が
設けられる浮動小数点数演算装置等に備えられている3
入力加算器を流用する場合などには、一層ハードウェア
の規模は小さく押えることができる。しかも収束型除算
のように誤差を伴うことなく最下位ビットまで正確な商
と剰余が得られる。 (実施例2)本発明の実施例2として、基数が8で、部
分剰余R(j) は、演算過程において商ディジットqj と
同様に冗長2進数表現で表わされる除算装置の例を説明
する。
【0055】ここで、値ri (j) は、部分剰余R(j) を
2の補数表現に変換した場合における小数点以下第i位
の値を示すものとする。この除算装置では、次のような
アルゴリズムで除算が行われる。 step1 被除数R(0) 、および除数Dを正規化する。すなわち、 2-1≦R(0) <1 2-1≦D<1 となるようにする。(既に正規化されていればこのステ
ップは不要である。);step2 q0 :=[001]2 ; Q0 :=q0 ; R(3) :=R(0) −q0 ・D;step3 for j:=3 to n+2 step 3 do begin 下記(表8・9)、(表10)、(表11・12)に従
って商ディジットqj を選択する; R(j+3) :=8R(j) −qj ・D; Qj :=Qj-3 +qj ・2-j;endstep4 if R(n+3) <0 then begin Qn :=Qn −2-n; R(n+3) :=R(n+3) +D; endstep5 商Qn を2の補数表現に変換する。また、必要に応じて
最終剰余R(n+3) を2の補数表現に変換する。;
2の補数表現に変換した場合における小数点以下第i位
の値を示すものとする。この除算装置では、次のような
アルゴリズムで除算が行われる。 step1 被除数R(0) 、および除数Dを正規化する。すなわち、 2-1≦R(0) <1 2-1≦D<1 となるようにする。(既に正規化されていればこのステ
ップは不要である。);step2 q0 :=[001]2 ; Q0 :=q0 ; R(3) :=R(0) −q0 ・D;step3 for j:=3 to n+2 step 3 do begin 下記(表8・9)、(表10)、(表11・12)に従
って商ディジットqj を選択する; R(j+3) :=8R(j) −qj ・D; Qj :=Qj-3 +qj ・2-j;endstep4 if R(n+3) <0 then begin Qn :=Qn −2-n; R(n+3) :=R(n+3) +D; endstep5 商Qn を2の補数表現に変換する。また、必要に応じて
最終剰余R(n+3) を2の補数表現に変換する。;
【0056】
【表8】
【0057】
【表9】
【0058】
【表10】
【0059】
【表11】
【0060】
【表12】
【0061】上記(表8・9)は、冗長2進数表現から
2の補数表現に変換された部分剰余R(j) について、前
記実施例1の(表4)と同様の部分剰余区間識別論理を
示すものである。(表10)および表(11・12)
は、それぞれ実施例1の(表5)、(表6)に対応し、
商ディジットqj を選択すべき除数Dの範囲、および除
数区間識別論理を示すものである。但し、(表10)に
おいて、理論的境界値Dmin およびDmax は、何れも除
数Dの範囲に含まれ、適用する境界値については、D
minは含まれる一方、Dmax は含まれないように設定さ
れている。
2の補数表現に変換された部分剰余R(j) について、前
記実施例1の(表4)と同様の部分剰余区間識別論理を
示すものである。(表10)および表(11・12)
は、それぞれ実施例1の(表5)、(表6)に対応し、
商ディジットqj を選択すべき除数Dの範囲、および除
数区間識別論理を示すものである。但し、(表10)に
おいて、理論的境界値Dmin およびDmax は、何れも除
数Dの範囲に含まれ、適用する境界値については、D
minは含まれる一方、Dmax は含まれないように設定さ
れている。
【0062】次に、上記アルゴリズムに従って除算を行
う除算装置を図4ないし図6に基づいて説明する。図4
は除算装置400の構成を示すブロック図である。なお
本実施例2において、前記実施例1と同様の機能を有す
る構成部分については対応する番号を付して説明を省略
する。
う除算装置を図4ないし図6に基づいて説明する。図4
は除算装置400の構成を示すブロック図である。なお
本実施例2において、前記実施例1と同様の機能を有す
る構成部分については対応する番号を付して説明を省略
する。
【0063】同図において、41は除数区間識別回路
で、除数Dの小数点以下第2位以下5桁の値d2 〜d6
に基づき、(表11・12)に従って、除数Dがあらか
じめ設定された値を境界とする複数の区間のうちのいず
れに属するかを識別するものである。42は部分剰余区
間識別回路で、後述する次部分剰余生成用2入力加減算
回路57から出力される冗長2進数表現の部分剰余R
(j) の上位5桁を2の補数表現に変換し、その符号r0
(j) と小数点以下第1位から第5位までの値r1 (j) 〜
r5 (j) とに基づき、(表8・9)に従って、部分剰余
R(j) があらかじめ設定された値を境界とする複数の区
間のうちのいずれに属するかを識別するものである。
で、除数Dの小数点以下第2位以下5桁の値d2 〜d6
に基づき、(表11・12)に従って、除数Dがあらか
じめ設定された値を境界とする複数の区間のうちのいず
れに属するかを識別するものである。42は部分剰余区
間識別回路で、後述する次部分剰余生成用2入力加減算
回路57から出力される冗長2進数表現の部分剰余R
(j) の上位5桁を2の補数表現に変換し、その符号r0
(j) と小数点以下第1位から第5位までの値r1 (j) 〜
r5 (j) とに基づき、(表8・9)に従って、部分剰余
R(j) があらかじめ設定された値を境界とする複数の区
間のうちのいずれに属するかを識別するものである。
【0064】43は商ディジット決定回路で、上記除数
区間識別回路41および部分剰余区間識別回路42の識
別結果に基づき、(表11・12)に従って、絶対値が
3ビットで表わされる値−7、−6、−5、−4、−
3、−2、−1、0、1、2、3、4、5、6、7のう
ちのいずれかを商ディジットqj として選択するもので
ある。なお、この商ディジット決定回路43は、除算の
開始時には、商ディジットq0 として値1を出力するよ
うになっている。商ディジット決定回路43は、また、
後述する第1・第2の除数倍数選択回路53・54、除
数倍数生成用2入力加減算回路55、および次部分剰余
生成用2入力加減算回路57に選択指示および加減算指
示を出力するようになっている。
区間識別回路41および部分剰余区間識別回路42の識
別結果に基づき、(表11・12)に従って、絶対値が
3ビットで表わされる値−7、−6、−5、−4、−
3、−2、−1、0、1、2、3、4、5、6、7のう
ちのいずれかを商ディジットqj として選択するもので
ある。なお、この商ディジット決定回路43は、除算の
開始時には、商ディジットq0 として値1を出力するよ
うになっている。商ディジット決定回路43は、また、
後述する第1・第2の除数倍数選択回路53・54、除
数倍数生成用2入力加減算回路55、および次部分剰余
生成用2入力加減算回路57に選択指示および加減算指
示を出力するようになっている。
【0065】50〜52は除数2倍回路、除数4倍回
路、および除数8倍回路で、それぞれ、除数2倍回路3
0と同様に除数Dの2倍数、4倍数、または8倍数を発
生するものである。53は第1の除数倍数選択回路で、
商ディジット決定回路43からの選択指示に応じて、下
記(表13)に従い、除数Dの8倍数、4倍数、または
値0のいずれかを選択して、値Aとして出力するもので
ある。
路、および除数8倍回路で、それぞれ、除数2倍回路3
0と同様に除数Dの2倍数、4倍数、または8倍数を発
生するものである。53は第1の除数倍数選択回路で、
商ディジット決定回路43からの選択指示に応じて、下
記(表13)に従い、除数Dの8倍数、4倍数、または
値0のいずれかを選択して、値Aとして出力するもので
ある。
【0066】54は第2の除数倍数選択回路で、商ディ
ジット決定回路43からの選択指示に応じて、下記(表
13)に従い、除数Dの2倍数、除数D、または値0の
いずれかを選択して、値Bとして出力するものである。
55は除数倍数生成用2入力加減算回路で、上記第1・
第2の除数倍数選択回路53・54の出力A、Bを、商
ディジット決定回路43からの加減算指示に応じて下記
(表13)に従い加減算することにより、商ディジット
qj の絶対値と除数Dとの積Cとして、冗長2進数表現
で表わされる除数Dの0〜7倍までの倍数を生成するも
のである。ここで、上記積Cは、1除算ステップごとに
生成するようにしてもよいし、あらかじめ各倍数につい
て生成した値を保持しておき、そのうちのいずれかを商
ディジットが決定した段階で出力するようにしてもよ
い。
ジット決定回路43からの選択指示に応じて、下記(表
13)に従い、除数Dの2倍数、除数D、または値0の
いずれかを選択して、値Bとして出力するものである。
55は除数倍数生成用2入力加減算回路で、上記第1・
第2の除数倍数選択回路53・54の出力A、Bを、商
ディジット決定回路43からの加減算指示に応じて下記
(表13)に従い加減算することにより、商ディジット
qj の絶対値と除数Dとの積Cとして、冗長2進数表現
で表わされる除数Dの0〜7倍までの倍数を生成するも
のである。ここで、上記積Cは、1除算ステップごとに
生成するようにしてもよいし、あらかじめ各倍数につい
て生成した値を保持しておき、そのうちのいずれかを商
ディジットが決定した段階で出力するようにしてもよ
い。
【0067】
【表13】
【0068】なお、同表中、記号±は加算でも減算でも
よいことを示す。上記除数倍数生成用2入力加減算回路
55は、より詳しくは例えば図5に示すような構成を成
している。同図において、551i は、第1および第2
の除数倍数選択回路53・54の出力A、Bにおける第
i桁の値ai 、bi を下記(表14)に従って加減算
し、中間桁上げと中間和とを出力する第1段加算器セル
である。
よいことを示す。上記除数倍数生成用2入力加減算回路
55は、より詳しくは例えば図5に示すような構成を成
している。同図において、551i は、第1および第2
の除数倍数選択回路53・54の出力A、Bにおける第
i桁の値ai 、bi を下記(表14)に従って加減算
し、中間桁上げと中間和とを出力する第1段加算器セル
である。
【0069】
【表14】
【0070】同表中、各欄の「,」の左右の数値は、そ
れぞれ中間桁上げと中間和とを示す。552i は、第1
段加算器セル551i から出力される中間和と、第1段
加算器セル551i-1 から出力される中間桁上げとを下
記(表15)に従って加減算し、加減算結果を冗長2進
数表現の値ci として出力する第2段加算器セルであ
る。
れぞれ中間桁上げと中間和とを示す。552i は、第1
段加算器セル551i から出力される中間和と、第1段
加算器セル551i-1 から出力される中間桁上げとを下
記(表15)に従って加減算し、加減算結果を冗長2進
数表現の値ci として出力する第2段加算器セルであ
る。
【0071】
【表15】
【0072】同表中、各欄の数値は、加減算結果ci の
値を示す。記号−はあり得ない組み合わせを示す。上記
除数倍数生成用2入力加減算回路55による演算は、冗
長2進数体系による正の2進数どうしの加減算であり、
演算規則が簡略化できるため、除数倍数生成用2入力加
減算回路55を簡潔な構成とすることができ、また、桁
上げや桁借りが1桁上位側にまでしか伝播しないので、
計算時間が除数のビット長に依存しない高速な加減算が
行われる。
値を示す。記号−はあり得ない組み合わせを示す。上記
除数倍数生成用2入力加減算回路55による演算は、冗
長2進数体系による正の2進数どうしの加減算であり、
演算規則が簡略化できるため、除数倍数生成用2入力加
減算回路55を簡潔な構成とすることができ、また、桁
上げや桁借りが1桁上位側にまでしか伝播しないので、
計算時間が除数のビット長に依存しない高速な加減算が
行われる。
【0073】56は部分剰余8倍回路で、後述する次部
分剰余生成用2入力加減算回路57から出力される部分
剰余R(j) の8倍数を発生するものである。57は次部
分剰余生成用2入力加減算回路で、除算の開始時には、
図示しない正規化回路によって正規化された被除数R
(0) から、同じく正規化された除数Dを減算し、減算結
果を最初の部分剰余R(3) とする一方、その後には、商
ディジット決定回路43からの加減算指示に応じて、前
記(表13)に従い、部分剰余8倍回路56からの出力
と、除数倍数生成用2入力加減算回路55からの出力と
を加減算するものである。すなわち、部分剰余R(j) の
8倍数に対して、商ディジットqj の絶対値と除数Dと
の積Cを、商ディジットqj が正ならば減算、負ならば
加算するようになっている。
分剰余生成用2入力加減算回路57から出力される部分
剰余R(j) の8倍数を発生するものである。57は次部
分剰余生成用2入力加減算回路で、除算の開始時には、
図示しない正規化回路によって正規化された被除数R
(0) から、同じく正規化された除数Dを減算し、減算結
果を最初の部分剰余R(3) とする一方、その後には、商
ディジット決定回路43からの加減算指示に応じて、前
記(表13)に従い、部分剰余8倍回路56からの出力
と、除数倍数生成用2入力加減算回路55からの出力と
を加減算するものである。すなわち、部分剰余R(j) の
8倍数に対して、商ディジットqj の絶対値と除数Dと
の積Cを、商ディジットqj が正ならば減算、負ならば
加算するようになっている。
【0074】上記次部分剰余生成用2入力加減算回路5
7は、より詳しくは例えば図6に示すような構成を成し
ている。同図において、571i は、除数倍数生成用2
入力加減算回路55の出力C、および部分剰余8倍回路
56の出力8×R(j) における第i桁の値ci 、ri-3
を下記(表16)に従って加減算し、中間桁上げと中間
和とを出力する第1段加算器セルである。
7は、より詳しくは例えば図6に示すような構成を成し
ている。同図において、571i は、除数倍数生成用2
入力加減算回路55の出力C、および部分剰余8倍回路
56の出力8×R(j) における第i桁の値ci 、ri-3
を下記(表16)に従って加減算し、中間桁上げと中間
和とを出力する第1段加算器セルである。
【0075】
【表16】
【0076】同表中、中間桁上げ・中間和の各欄
の「,」の左右の数値は、それぞれ中間桁上げと中間和
とを示す。572i は、第1段加算器セル571i から
出力される中間和と、第1段加算器セル571i-1から
出力される中間桁上げとを下記(表17)に従って前記
表15と同様の演算規則で加減算し、加減算結果を冗長
2進数表現の部分剰余R(J +3) として出力する第2段加
算器セルである。
の「,」の左右の数値は、それぞれ中間桁上げと中間和
とを示す。572i は、第1段加算器セル571i から
出力される中間和と、第1段加算器セル571i-1から
出力される中間桁上げとを下記(表17)に従って前記
表15と同様の演算規則で加減算し、加減算結果を冗長
2進数表現の部分剰余R(J +3) として出力する第2段加
算器セルである。
【0077】
【表17】
【0078】上記次部分剰余生成用2入力加減算回路5
7による演算は、正負の2進数どうしの加減算である
が、冗長2進数体系による演算であるため、桁上げや桁
借りの影響等が2桁上位側にまでしか伝播しないので、
やはり、計算時間が除数のビット長に依存しない高速な
加減算が行われる。上記の構成において、除算装置40
0で行われる除算動作を説明する。 (1) まず、正規化された被除数R(0) と、除数Dと
が入力されると、次部分剰余生成用2入力加減算回路5
7は被除数R(0) から除数Dを減算し、最初の部分剰余
R(3) を出力する。また、商ディジット決定回路43は
最初の商ディジットq0 (2進数表現における1の位の
値)として値1を出力し、正の商ディジット格納回路4
4に格納する。 (2) 除数区間識別回路41は、除数Dの小数点以下
第2位以下5桁の値d2 〜d6 を(表11・12)に従
ってデコードし、除数Dの含まれる区間を識別する。こ
の識別は除算の開始時に1回だけ行われ、識別結果は、
その除算処理が終了するまで保持される。 (3) 部分剰余区間識別回路42は、次部分剰余生成
用2入力加減算回路57から出力された部分剰余R(3)
の上位5桁を2の補数表現に変換し、得られた値の符号
r0 (3) と小数点以下第1位から第5位までの値r1
(3) 〜r5 (3) を(表8・9)に従ってデコードし、部
分剰余R(3) の含まれる区間を識別する。 (4) 商ディジット決定回路43は、上記除数区間識
別回路41および部分剰余区間識別回路42の識別結果
に基づき、(表11・12)に従って、値−7、−6、
−5、−4、−3、−2、−1、0、1、2、3、4、
5、6、7のうちのいずれかを商ディジットq3 として
選択し、出力する。 (5) 商ディジット決定回路43は、さらに、正の商
ディジット格納回路44、および負の商ディジット格納
回路45における対応する位取りの桁に、それぞれ3ビ
ットで表わされる商ディジットq3 の絶対値、または値
0を商ディジットq3 の正負に応じて格納する。 (6) 第1の除数倍数選択回路53および第2の除数
倍数選択回路54は、それぞれ、商ディジット決定回路
43からの選択指示に応じて、(表13)に従い除数D
の8倍数、4倍数、または値0のいずれか、もしくは除
数Dの2倍数、除数D、または値0のいずれかを選択し
て出力する。 (7) 除数倍数生成用2入力加減算回路55は、商デ
ィジット決定回路43からの加減算指示に応じて、(表
13)に従い、第1・第2の除数倍数選択回路53・5
4の出力A、Bの加減算を行い、商ディジットq3 の絶
対値と除数Dとの積Cを出力する。 (8) 次部分剰余生成用2入力加減算回路57は、商
ディジット決定回路43からの加減算指示に応じて、
(表13)に従い、部分剰余8倍回路56からの出力8
×R(3) と、除数倍数生成用2入力加減算回路55から
の出力Cとの加減算を行い、次の除算ステップに用いる
部分剰余R(6) を出力する。 (9) 上記(2)〜(8)が、各添え字を3ずつイン
クリメントしつつ、n/3回(小数点以下は切り上げ
る)繰り返されることにより、各商ディジットqj が冗
長2進数表現として得られ、その正負に応じて、正の商
ディジット格納回路44または負の商ディジット格納回
路45に格納されるとともに、最終剰余R(n +3) が次部
分剰余生成用2入力加減算回路57から出力される。 (10) 商変換回路46は、正の商ディジット格納回
路44に格納されている値から負の商ディジット格納回
路45に格納されている値を減算し、2の補数表現に変
換するとともに、最終剰余R(n+3) が負であれば、最下
位のビットにおいて1を減じて商Qn を求める。また、
必要に応じて、図示しない最終剰余補正回路により同様
に最終剰余R(n+3) を2の補数表現に変換するととも
に、その値が負であれば、これに除数Dを加算する。
7による演算は、正負の2進数どうしの加減算である
が、冗長2進数体系による演算であるため、桁上げや桁
借りの影響等が2桁上位側にまでしか伝播しないので、
やはり、計算時間が除数のビット長に依存しない高速な
加減算が行われる。上記の構成において、除算装置40
0で行われる除算動作を説明する。 (1) まず、正規化された被除数R(0) と、除数Dと
が入力されると、次部分剰余生成用2入力加減算回路5
7は被除数R(0) から除数Dを減算し、最初の部分剰余
R(3) を出力する。また、商ディジット決定回路43は
最初の商ディジットq0 (2進数表現における1の位の
値)として値1を出力し、正の商ディジット格納回路4
4に格納する。 (2) 除数区間識別回路41は、除数Dの小数点以下
第2位以下5桁の値d2 〜d6 を(表11・12)に従
ってデコードし、除数Dの含まれる区間を識別する。こ
の識別は除算の開始時に1回だけ行われ、識別結果は、
その除算処理が終了するまで保持される。 (3) 部分剰余区間識別回路42は、次部分剰余生成
用2入力加減算回路57から出力された部分剰余R(3)
の上位5桁を2の補数表現に変換し、得られた値の符号
r0 (3) と小数点以下第1位から第5位までの値r1
(3) 〜r5 (3) を(表8・9)に従ってデコードし、部
分剰余R(3) の含まれる区間を識別する。 (4) 商ディジット決定回路43は、上記除数区間識
別回路41および部分剰余区間識別回路42の識別結果
に基づき、(表11・12)に従って、値−7、−6、
−5、−4、−3、−2、−1、0、1、2、3、4、
5、6、7のうちのいずれかを商ディジットq3 として
選択し、出力する。 (5) 商ディジット決定回路43は、さらに、正の商
ディジット格納回路44、および負の商ディジット格納
回路45における対応する位取りの桁に、それぞれ3ビ
ットで表わされる商ディジットq3 の絶対値、または値
0を商ディジットq3 の正負に応じて格納する。 (6) 第1の除数倍数選択回路53および第2の除数
倍数選択回路54は、それぞれ、商ディジット決定回路
43からの選択指示に応じて、(表13)に従い除数D
の8倍数、4倍数、または値0のいずれか、もしくは除
数Dの2倍数、除数D、または値0のいずれかを選択し
て出力する。 (7) 除数倍数生成用2入力加減算回路55は、商デ
ィジット決定回路43からの加減算指示に応じて、(表
13)に従い、第1・第2の除数倍数選択回路53・5
4の出力A、Bの加減算を行い、商ディジットq3 の絶
対値と除数Dとの積Cを出力する。 (8) 次部分剰余生成用2入力加減算回路57は、商
ディジット決定回路43からの加減算指示に応じて、
(表13)に従い、部分剰余8倍回路56からの出力8
×R(3) と、除数倍数生成用2入力加減算回路55から
の出力Cとの加減算を行い、次の除算ステップに用いる
部分剰余R(6) を出力する。 (9) 上記(2)〜(8)が、各添え字を3ずつイン
クリメントしつつ、n/3回(小数点以下は切り上げ
る)繰り返されることにより、各商ディジットqj が冗
長2進数表現として得られ、その正負に応じて、正の商
ディジット格納回路44または負の商ディジット格納回
路45に格納されるとともに、最終剰余R(n +3) が次部
分剰余生成用2入力加減算回路57から出力される。 (10) 商変換回路46は、正の商ディジット格納回
路44に格納されている値から負の商ディジット格納回
路45に格納されている値を減算し、2の補数表現に変
換するとともに、最終剰余R(n+3) が負であれば、最下
位のビットにおいて1を減じて商Qn を求める。また、
必要に応じて、図示しない最終剰余補正回路により同様
に最終剰余R(n+3) を2の補数表現に変換するととも
に、その値が負であれば、これに除数Dを加算する。
【0079】このように、商ディジット選択論理が非常
に簡潔であるために、大幅なハードウェア規模の増大を
招くことなく基数が8の除算装置を構成することがで
き、除算ステップの繰り返し回数を基数2のSRT除算
や非回復型除算に比べて約1/3にすることができる。
また、除数倍数生成用2入力加減算回路55、および次
部分剰余生成用2入力加減算回路57による2段の加減
算処理によって部分剰余が求められるようになっている
が、これらの演算は冗長2進数体系によって行われるよ
うに構成されているため遅延時間はさほど大きくなく、
したがって商ディジット選択論理の簡潔化により、除算
処理の大幅な高速化が得られる。 (実施例3)本発明の実施例3として、基数は前記実施
例2と同様に8で、部分剰余R(j) が、前記実施例1と
同様に2の補数表現で表わされる除算装置の例を説明す
る。
に簡潔であるために、大幅なハードウェア規模の増大を
招くことなく基数が8の除算装置を構成することがで
き、除算ステップの繰り返し回数を基数2のSRT除算
や非回復型除算に比べて約1/3にすることができる。
また、除数倍数生成用2入力加減算回路55、および次
部分剰余生成用2入力加減算回路57による2段の加減
算処理によって部分剰余が求められるようになっている
が、これらの演算は冗長2進数体系によって行われるよ
うに構成されているため遅延時間はさほど大きくなく、
したがって商ディジット選択論理の簡潔化により、除算
処理の大幅な高速化が得られる。 (実施例3)本発明の実施例3として、基数は前記実施
例2と同様に8で、部分剰余R(j) が、前記実施例1と
同様に2の補数表現で表わされる除算装置の例を説明す
る。
【0080】図7は除算装置600の構成を示すブロッ
ク図である。なお本実施例3において、前記実施例1ま
たは実施例2と同様の機能を有する構成部分については
対応する番号を付して説明を省略する。同図において、
62は部分剰余区間識別回路で、実施例1の部分剰余区
間識別回路22と同様に、下記(表18)に従って、後
述する次部分剰余生成用3入力加減算回路77から出力
される部分剰余R(j) の属する区間を識別するものであ
る。
ク図である。なお本実施例3において、前記実施例1ま
たは実施例2と同様の機能を有する構成部分については
対応する番号を付して説明を省略する。同図において、
62は部分剰余区間識別回路で、実施例1の部分剰余区
間識別回路22と同様に、下記(表18)に従って、後
述する次部分剰余生成用3入力加減算回路77から出力
される部分剰余R(j) の属する区間を識別するものであ
る。
【0081】
【表18】
【0082】61は除数区間識別回路で、実施例2の除
数区間識別回路41と同様に、下記(表19)に示す除
数Dが属する区間を(表20)に従って識別するもので
ある。但し、(表19)において、理論的境界値Dmin
およびDmax は、何れも除数Dの範囲に含まれず、適用
する境界値については、Dmin は含まれる一方、Dma x
は含まれないように設定されている。
数区間識別回路41と同様に、下記(表19)に示す除
数Dが属する区間を(表20)に従って識別するもので
ある。但し、(表19)において、理論的境界値Dmin
およびDmax は、何れも除数Dの範囲に含まれず、適用
する境界値については、Dmin は含まれる一方、Dma x
は含まれないように設定されている。
【0083】
【表19】
【0084】
【表20】
【0085】63は商ディジット決定回路で、実施例2
の商ディジット決定回路43と同様に、上記(表20)
に従って、値−7、−6、−5、−4、−3、−2、−
1、0、1、2、3、4、5、6、7のうちのいずれか
を商ディジットqj として選択するものである。73・
74は第1・第2の除数倍数選択回路、77は次部分剰
余生成用3入力加減算回路で、それぞれ、実施例1の第
1・第2の除数倍数選択回路33・34、または次部分
剰余生成用3入力加減算回路37と同様に、下記表21
に従って除数倍数の選択や加減算を行うことにより、部
分剰余R(j) の8倍数に対して、商ディジットqj の絶
対値と除数Dとの積を加減算するようになっている。
の商ディジット決定回路43と同様に、上記(表20)
に従って、値−7、−6、−5、−4、−3、−2、−
1、0、1、2、3、4、5、6、7のうちのいずれか
を商ディジットqj として選択するものである。73・
74は第1・第2の除数倍数選択回路、77は次部分剰
余生成用3入力加減算回路で、それぞれ、実施例1の第
1・第2の除数倍数選択回路33・34、または次部分
剰余生成用3入力加減算回路37と同様に、下記表21
に従って除数倍数の選択や加減算を行うことにより、部
分剰余R(j) の8倍数に対して、商ディジットqj の絶
対値と除数Dとの積を加減算するようになっている。
【0086】
【表21】
【0087】このように構成することにより、前記実施
例2と同様のアルゴリズムにより除算処理が行われ、実
施例2と同様に基数が8であるため除算ステップの繰り
返し回数が少なくなる一方、基数が8であるにも係わら
ず商ディジットの決定に要する時間が短くなるため、1
除算ステップの実行時間も短くなり、したがって除算処
理速度は大幅に向上する。
例2と同様のアルゴリズムにより除算処理が行われ、実
施例2と同様に基数が8であるため除算ステップの繰り
返し回数が少なくなる一方、基数が8であるにも係わら
ず商ディジットの決定に要する時間が短くなるため、1
除算ステップの実行時間も短くなり、したがって除算処
理速度は大幅に向上する。
【0088】なお、上記各実施例においては、被除数、
除数の正規化の範囲を1/2以上1未満としたが、これ
に限らず任意の整数kに対して2k-1 ≦正規化数<2k
と設定することができ、例えば1以上2未満とする場合
には、正規化の範囲を1/2以上1未満とする場合にお
ける小数点の位置を下位側へ1ビットもしくは1桁シフ
トすればよい。その際、上記実施例中で説明したビット
位置もしくは桁位置は、見かけ上上位側へ1ビットもし
くは1桁シフトされることになる。
除数の正規化の範囲を1/2以上1未満としたが、これ
に限らず任意の整数kに対して2k-1 ≦正規化数<2k
と設定することができ、例えば1以上2未満とする場合
には、正規化の範囲を1/2以上1未満とする場合にお
ける小数点の位置を下位側へ1ビットもしくは1桁シフ
トすればよい。その際、上記実施例中で説明したビット
位置もしくは桁位置は、見かけ上上位側へ1ビットもし
くは1桁シフトされることになる。
【0089】すなわち、被除数と除数に任意の同じ数を
乗じてもそれらの商は変わらないから、上記除算算法に
おける小数点の位置や正規化数の範囲を表す整数kの値
は本質的な問題ではないといえる。また、上記各実施例
においては、正規化された数同士の除算を行なうものと
したが、被除数は必ずしも正規化されている必要がな
い。それゆえ、例えば除数を正規化する回路、および商
と剰余の桁合わせを行う回路を付加することにより、整
数除算を行わせることなども可能である。
乗じてもそれらの商は変わらないから、上記除算算法に
おける小数点の位置や正規化数の範囲を表す整数kの値
は本質的な問題ではないといえる。また、上記各実施例
においては、正規化された数同士の除算を行なうものと
したが、被除数は必ずしも正規化されている必要がな
い。それゆえ、例えば除数を正規化する回路、および商
と剰余の桁合わせを行う回路を付加することにより、整
数除算を行わせることなども可能である。
【0090】また、被除数の絶対値が除数より小さい場
合には、値0を最初の商ディジットとするとともに、被
除数をそのまま最初の部分剰余とするようにしてもよ
い。また、上記各実施例において示した論理式はその形
式に限定されるものではなく、種々の論理演算規則に基
づく変形が可能である。
合には、値0を最初の商ディジットとするとともに、被
除数をそのまま最初の部分剰余とするようにしてもよ
い。また、上記各実施例において示した論理式はその形
式に限定されるものではなく、種々の論理演算規則に基
づく変形が可能である。
【0091】
【発明の効果】以上説明したように、本発明によれば、
除数および2の補数表現で表わされる部分剰余における
上位の一部の桁の値、および部分剰余の符号に基づい
て、前記基数のもとにとり得るすべての商ディジットの
値のうちのいずれかを選択する商ディジット選択手段、
または除数および冗長2進数表現で表わされる部分剰余
における上位の一部の桁の値(8を基数とする場合には
部分剰余及び除数のうち合せて10ビット、4を基数と
する場合には部分剰余及び除数のうち合せて6ビット)
に基づいて、前記基数のもとにとり得るすべての商ディ
ジットの値のうちのいずれかを選択する商ディジット選
択手段と、それぞれ、値0、および除数の2の整数乗倍
の値のうちの少なくともいずれか1つを生成する複数の
除数倍数生成手段と、前記除数倍数生成手段の出力およ
び部分剰余の基数倍の値を加減算して新たな部分剰余を
生成する3入力以上の加減算手段、または前記除数倍数
生成手段の出力を加減算して商ディジットと除数との積
を冗長2進数表現数として生成する第1の加減算手段と
前記第1の加減算手段の出力と部分剰余の基数倍の値と
を加減算して新たな部分剰余を冗長2進数表現数として
生成する第2の加減算手段とが設けられていることによ
り、商ディジットが、除数および部分剰余の一部の上位
ビットに基づいて、設定されている基数のもとにとり得
るすべての値のうちから選択されるので、商ディジット
の選択論理が簡素化されてハードウェアの規模が小さく
てすむうえ、1除算ステップの実行に要する時間が短く
なり、除算処理の高速化が図られる。
除数および2の補数表現で表わされる部分剰余における
上位の一部の桁の値、および部分剰余の符号に基づい
て、前記基数のもとにとり得るすべての商ディジットの
値のうちのいずれかを選択する商ディジット選択手段、
または除数および冗長2進数表現で表わされる部分剰余
における上位の一部の桁の値(8を基数とする場合には
部分剰余及び除数のうち合せて10ビット、4を基数と
する場合には部分剰余及び除数のうち合せて6ビット)
に基づいて、前記基数のもとにとり得るすべての商ディ
ジットの値のうちのいずれかを選択する商ディジット選
択手段と、それぞれ、値0、および除数の2の整数乗倍
の値のうちの少なくともいずれか1つを生成する複数の
除数倍数生成手段と、前記除数倍数生成手段の出力およ
び部分剰余の基数倍の値を加減算して新たな部分剰余を
生成する3入力以上の加減算手段、または前記除数倍数
生成手段の出力を加減算して商ディジットと除数との積
を冗長2進数表現数として生成する第1の加減算手段と
前記第1の加減算手段の出力と部分剰余の基数倍の値と
を加減算して新たな部分剰余を冗長2進数表現数として
生成する第2の加減算手段とが設けられていることによ
り、商ディジットが、除数および部分剰余の一部の上位
ビットに基づいて、設定されている基数のもとにとり得
るすべての値のうちから選択されるので、商ディジット
の選択論理が簡素化されてハードウェアの規模が小さく
てすむうえ、1除算ステップの実行に要する時間が短く
なり、除算処理の高速化が図られる。
【0092】しかも、商ディジットの選択論理が簡素化
されることにより、従来よりもさらに基数を大きく設定
することが容易にでき、一層除算処理の高速化が容易に
なるという効果を奏する。
されることにより、従来よりもさらに基数を大きく設定
することが容易にでき、一層除算処理の高速化が容易に
なるという効果を奏する。
【図1】実施例1における除算装置の構成を示すブロッ
ク図である。
ク図である。
【図2】同、次部分剰余生成用3入力加減算回路の詳細
な構成を示すブロック図である。
な構成を示すブロック図である。
【図3】同、被減数ビット反転回路、および和ビット反
転回路の詳細な構成を示す回路図である。
転回路の詳細な構成を示す回路図である。
【図4】実施例2における除算装置の構成を示すブロッ
ク図である。
ク図である。
【図5】同、除数倍数生成用2入力加減算回路の詳細な
構成を示すブロック図である。
構成を示すブロック図である。
【図6】同、次部分剰余生成用2入力加減算回路の詳細
な構成を示すブロック図である。
な構成を示すブロック図である。
【図7】実施例3における除算装置の構成を示すブロッ
ク図である
ク図である
【図8】従来のアルゴリズムで除算を行う除算装置の構
成を示すブロック図である。
成を示すブロック図である。
41・61 除数区間識別回路 22・42・62 部分剰余区間識別回路 23・43・63 商ディジット決定回路 24・44・64 正の商ディジット格納回路 25・45・65 負の商ディジット格納回路 26・46・66 商変換回路 30・50・70 除数2倍回路 51・71 除数4倍回路 52・72 除数8倍回路 33・53・73 第1の除数倍数選択回路 34・54・74 第2の除数倍数選択回路 55 除数倍数生成用2入力加減算回路 36 部分剰余4倍回路 56・76 部分剰余8倍回路 37・77 次部分剰余生成用3入力加減算回
路 57 次部分剰余生成用2入力加減算回
路 371 被減数ビット反転回路 372 3入力加算回路 373 和ビット反転回路 374 XORゲート 551 第1段加算器セル 552 第2段加算器セル 571 第1段加算器セル 572 第2段加算器セル
路 57 次部分剰余生成用2入力加減算回
路 371 被減数ビット反転回路 372 3入力加算回路 373 和ビット反転回路 374 XORゲート 551 第1段加算器セル 552 第2段加算器セル 571 第1段加算器セル 572 第2段加算器セル
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭60−160438(JP,A) 特開 平1−274234(JP,A) 欧州特許出願公開356153(EP,A 1) Kai Hwang著,堀越彌監訳, 「コンピュータの高速演算方式」,株式 会社近代科学社,昭和55年9月1日, p.214−248 (58)調査した分野(Int.Cl.6,DB名) G06F 7/52 320 WPI(DIALOG) JICSTファイル(JOIS)
Claims (29)
- 【請求項1】 8を基数として除算を行う除算装置であ
って、 2の補数表現の部分剰余の取り得る区間を予め定められ
た定数を境界として分割し該部分剰余がどの分割された
区間に含まれるかを該部分剰余の小数点以下4ビットと
該部分剰余の符号により判定する部分剰余区間識別手段
と、 正規化された除数の取り得る区間を予め定められた定数
を境界として分割し該除数がどの分割された区間に含ま
れるかを該除数の小数第2位以下5ビットにより判定す
る除数区間識別手段と、 除算の最初においては、商ディジットとして1を生成
し、除算の最初以外においては、前記部分剰余区間識別
手段と前記除数区間識別手段で判定した部分剰余と除数
それぞれが含まれる区間の組み合わせに従い集合{−
7、−6、−5、−4、−3、−2、−1、0、1、
2、3、4、5、6、7}から唯一の商ディジットを選
択する商ディジット決定手段と、 前記商ディジットと前記除数との積を求める除数倍数生
成手段と、 除算の最初においては、正規化された被除数より前記除
数を減算し且つ該差を最初の2の補数表現の部分剰余と
し、除算の最初以外においては、8倍された2の補数表
現の部分剰余から前記除数倍数生成手段で求めた商ディ
ジットと除数との積を減算し且つ該差を次の2の補数表
現の部分剰余とする次部分剰余生成手段とを備え、 前記商ディジット決定手段は、前記部分剰余区間と除数
区間との組み合わせと、商ディジットとを対応させたテ
ーブルに従って前記唯一の商ディジットを選択し、 前記テーブルは、5ビットにより識別される各部分剰区
間ごとに、商ディジットが存在する除数区間が組み合わ
せられ、1つの部分剰余区間に対して、商ディジットが
存在する除数区間が複数存在する場合には、該除数の小
数第2位以下5ビットにより1つの除数区間が特定され
ていることを特徴とする除算装置。 - 【請求項2】 請求項1の除算装置であって、前記正規
化された除数および被除数は、1/2以上1未満の範囲
に収められた除数および被除数であることを特徴とする
除算装置。 - 【請求項3】 請求項1の除算装置であって、前記正規
化された除数および被除数は、1以上2未満の範囲に収
められた除数および被除数であることを特徴とする除算
装置。 - 【請求項4】 前記除数倍数生成手段に代えて、商ディ
ジットの絶対値と除数との積を求める除数倍数生成手段
を備えるとともに、 前記次部分剰余生成手段に代えて、除算の最初において
は、正規化された被除数より前記除数を減算し且つ該差
を最初の2の補数表現の部分剰余とし、除算の最初以外
においては、8倍された2の補数表現の部分剰余に対
し、前記除数倍数生成手段で求めた商ディジットの絶対
値と除数との積を、商ディジットが正のとき減算し、負
のとき加算し、且つ該演算結果を次の2の補数表現の部
分剰余とする次部分剰余生成手段を備えたことを特徴と
する請求項1の除算装置。 - 【請求項5】 前記除数倍数生成手段に代えて、除算の
最初において除数の2から7倍までの倍数を求める除数
倍数生成手段と、 商ディジット決定手段が選択した0から7までの商ディ
ジットの絶対値に従って、値0、除数、および前記除数
倍数生成手段の求めた除数倍数のうちのいずれかを選択
して出力する選択手段とを備えるとともに、 前記次部分剰余生成手段に代えて、除算の最初において
は、正規化された被除数より前記除数を減算し且つ該差
を最初の2の補数表現の部分剰余とし、除算の最初以外
においては、8倍された2の補数表現の部分剰余に対
し、前記選択手段の出力を前記商ディジットが正のとき
減算し、負のとき加算し、且つ該演算結果を次の2の補
数表現の部分剰余とする次部分剰余生成手段を備えたこ
とを特徴とする請求項1の除算装置。 - 【請求項6】 除数をDと表し、部分剰余をRと表すと
すると、 前記除数倍数生成手段に代えて、 除数の2倍数2Dを発生する除数2倍手段と、 除数の4倍数4Dを発生する除数4倍手段と、 除数の8倍数8Dを発生する除数8倍手段とを備えると
ともに、 前記次部分剰余生成手段に代えて、次部分剰余生成用3
入力加減算手段を有し、除算の最初においては、正規化
された被除数より前記除数を減算し且つ該差を最初の2
の補数表現の部分剰余とし、除算の最初以外において
は、商ディジットが、−7、−6、−5、−4、−3、
−2、−1、0、1、2、3、4、5、6、および7の
ときに、それぞれ、(R−D+8D)、(R+2D+4
D)、(R+D+4D)、(R+4D)、(R−D+4
D)、(R+2D)、(R+D)、R、(R−D)、
(R−2D)、(R+D−4D)、(R−4D)、(R
−D−4D)、(R−2D−4D)、または(R+D−
8D)を出力し、該出力を次の2の補数表現の部分剰余
とする次部分剰余生成手段を備えたことを特徴とする請
求項1の除算装置。 - 【請求項7】 前記次部分剰余生成手段に代えて、除算
の最初においては、被除数は絶対値が除数より小さい範
囲に収められた数である場合に、該被除数を最初の2の
補数表現の部分剰余とし、除算の最初以外においては、
8倍された2の補数表現の部分剰余から前記除数倍数生
成手段で求めた商ディジットと除数との積を減算し且つ
該差を次の2の補数表現の部分剰余とする次部分剰余生
成手段を備えたことを特徴とする請求項1の除算装置。 - 【請求項8】 請求項7の除算装置であって、前記正規
化された除数は、1/2以上1未満の範囲に収められた
除数であることを特徴とする除算装置。 - 【請求項9】 請求項7の除算装置であって、前記正規
化された除数は、1以上2未満の範囲に収められた除数
であることを特徴とする除算装置。 - 【請求項10】 前記次部分剰余生成手段に代えて、除
算の最初においては、被除数は絶対値が除数より小さい
範囲に収められた数である場合に、該被除数を最初の2
の補数表現の部分剰余とし、除算の最初以外において
は、8倍された2の補数表現の部分剰余に対し、前記除
数倍数生成手段で求めた商ディジットの絶対値と除数と
の積を、商ディジットが正のとき減算し、負のとき加算
し、且つ該演算結果を次の2の補数表現の部分剰余とす
る次部分剰余生成手段を備えたことを特徴とする請求項
4の除算装置。 - 【請求項11】 前記次部分剰余生成手段に代えて、除
算の最初においては、被除数は絶対値が除数より小さい
範囲に収められた数である場合に、該被除数を最初の2
の補数表現の部分剰余とし、除算の最初以外において
は、8倍された2の補数表現の部分剰余に対し、前記選
択手段の出力を前記商ディジットが正のとき減算し、負
のとき加算し、且つ該演算結果を次の2の補数表現の部
分剰余とする次部分剰余生成手段を備えたことを特徴と
する請求項5の除算装置。 - 【請求項12】 前記次部分剰余生成手段に代えて、次
部分剰余生成用3入力加減算手段を有し、除算の最初に
おいては、被除数は絶対値が除数より小さい範囲に収め
られた数である場合に、該被除数を最初の2の補数表現
の部分剰余とし、除算の最初以外においては、商ディジ
ットが、−7、−6、−5、−4、−3、−2、−1、
0、1、2、3、4、5、6、および7のときに、それ
ぞれ、(R−D+8D)、(R+2D+4D)、(R+
D+4D)、(R+4D)、(R−D+4D)、(R+
2D)、(R+D)、R、(R−D)、(R−2D)、
(R+D−4D)、(R−4D)、(R−D−4D)、
(R−2D−4D)、または(R+D−8D)を出力
し、該出力を次の2の補数表現の部分剰余とする次部分
剰余生成手段を備えたことを特徴とする請求項6の除算
装置。 - 【請求項13】 前記部分剰余区間識別手段に代えて、
部分剰余の取り得る区間を予め定められた定数を境界と
して分割し該部分剰余がどの分割された区間に含まれる
かを冗長2進数表現の部分剰余の1の位以下6桁により
判定する部分剰余区間識別手段を備えるとともに、 前記次部分剰余生成手段は、冗長2進数表現の部分剰余
を生成するように構成されていることを特徴とする請求
項1ないし請求項12の何れかに記載の除算装置。 - 【請求項14】 商ディジットが正ならば、3ビットで
表される商ディジットの絶対値を、さもなければ0を対
応する位取りの桁に格納する正の商ディジット格納手段
と、 商ディジットが負ならば、3ビットで表される商ディジ
ットの絶対値を、さもなければ0を対応する位取りの桁
に格納する負の商ディジット格納手段と、 前記正の商ディジット格納手段の内容から前記負の商デ
ィジット格納手段の内容を減算し該差を商とする商変換
手段とを備え、 部分剰余の区間識別から次の部分剰余生成までの一連の
処理を(n/3)回(nは求めるべき商のビット長とす
る。小数点以下は切り上げる。)繰り返し最後に前記商
変換手段により2の補数表現の商を得、かつ最終的な部
分剰余として剰余を得るように構成されていることを特
徴とする請求項1ないし請求項13の何れかに記載の除
算装置。 - 【請求項15】 除算の最初において値0を保持し、商
ディジットが求められるごとに保持した内容を上位方向
へ3ビットシフトすると共にこれに商ディジットを累算
していく商累算シフトレジスタ手段が設けられているこ
とを特徴とする請求項1ないし請求項13の何れかに記
載の除算装置。 - 【請求項16】 4を基数として除算を行う除算装置で
あって、 2の補数表現の部分剰余の取り得る区間を予め定められ
た定数を境界として分割し該部分剰余がどの分割された
区間に含まれるかを該部分剰余の小数点以下3ビットと
該部分剰余の符号により判定する部分剰余区間識別手段
と、 除算の最初においては、商ディジットとして1を生成
し、除算の最初以外においては、前記部分剰余区間識別
手段で判定した部分剰余が含まれる区間と正規化された
除数の小数第2位1ビットの組み合わせに従い集合{−
3、−2、−1、0、1、2、3}から唯一の商ディジ
ットを選択する商ディジット決定手段と、前記商ディジ
ットと前記除数との積を求める除数倍数生成手段と、 除算の最初においては、正規化された被除数より前記除
数を減算し且つ該差を最初の2の補数表現の部分剰余と
し、除算の最初以外においては、4倍された2の補数表
現の部分剰余から前記除数倍数生成手段で求めた商ディ
ジットと除数との積を減算し且つ該差を次の2の補数表
現の部分剰余とする次部分剰余生成手段とを備え、前記商ディジット決定手段は、前記部分剰余区間と除数
区間との組み合わせと、商ディジットとを対応させたテ
ーブルに従って前記唯一の商ディジットを選択し、 前記テーブルは、4ビットにより識別される各部分剰区
間ごとに、商ディジットが存在する除数区間が組み合わ
せられ、1つの部分剰余区間に対して、商ディジットが
存在する除数区間が複数存在する場合には、該除数の小
数第2位の1ビットにより1つの除数区間が特定されて
いることを特徴とする除算装置。 - 【請求項17】 請求項16の除算装置であって、前記
正規化された除数および被除数は、1/2以上1未満の
範囲に納められた除数および被除数であることを特徴と
する除算装置。 - 【請求項18】 請求項16の除算装置であって、前記
正規化された除数および被除数は、1以上2未満の範囲
に納められた除数および被除数であることを特徴とする
除算装置。 - 【請求項19】 前記除数倍数生成手段に代えて、商デ
ィジットの絶対値と除数との積を求める除数倍数生成手
段を備えるとともに、 前記次部分剰余生成手段に代えて、除算の最初において
は、正規化された被除数より前記除数を減算し且つ該差
を最初の2の補数表現の部分剰余とし、除算の最初以外
においては、4倍された2の補数表現の部分剰余に対
し、前記除数倍数生成手段で求めた商ディジットの絶対
値と除数との積を、商ディジットが正のとき減算し、負
のとき加算し、且つ該演算結果を次の2の補数表現の部
分剰余とする次部分剰余生成手段を備えたことを特徴と
する請求項16の除算装置。 - 【請求項20】 前記除数倍数生成手段に代えて、除算
の最初において除数の2から3倍までの倍数を求める除
数倍数生成手段と、 商ディジット決定手段が選択した0から3までの商ディ
ジットの絶対値に従って、値0、除数、および前記除数
倍数生成手段の求めた除数倍数のうちのいずれかを選択
して出力する選択手段とを備えるとともに、 前記次部分剰余生成手段に代えて、除算の最初において
は、正規化された被除数より前記除数を減算し且つ該差
を最初の2の補数表現の部分剰余とし、除算の最初以外
においては、4倍された2の補数表現の部分剰余に対
し、前記選択手段の出力を前記商ディジットが正のとき
減算し、負のとき加算し、且つ該演算結果を次の2の補
数表現の部分剰余とする次部分剰余生成手段を備えたこ
とを特徴とする請求項16の除算装置。 - 【請求項21】 除数をDと表し、部分剰余をRと表す
とすると、 前記除数倍数生成手段に代えて、除数の2倍数2Dを発
生する除数2倍手段を備えるとともに、 前記次部分剰余生成手段に代えて、次部分剰余生成用3
入力加減算手段を有し、除算の最初においては、正規化
された被除数より前記除数を減算し且つ該差を最初の2
の補数表現の部分剰余とし、除算の最初以外において
は、商ディジットが、−3、−2、−1、0、1、2、
および3のときに、それぞれ、(R+D+2D)、(R
+2D)、(R+D)、R、(R−D)、(R−2
D)、または(R−D−2D)を出力し、該出力を次の
2の補数表現の部分剰余とする次部分剰余生成手段を備
えたことを特徴とする請求項16の除算装置。 - 【請求項22】 前記次部分剰余生成手段に代えて、除
算の最初においては、被除数は絶対値が除数より小さい
範囲に納められた数である場合に、該被除数を最初の2
の補数表現の部分剰余とし、除算の最初以外において
は、4倍された2の補数表現の部分剰余から前記除数倍
数生成手段で求めた商ディジットと除数との積を減算し
且つ該差を次の2の補数表現の部分剰余とする次部分剰
余生成手段を備えたことを特徴とする請求項16の除算
装置。 - 【請求項23】 請求項22の除算装置であって、前記
正規化された除数は、1/2以上1未満の範囲に収めら
れた除数であることを特徴とする除算装置。 - 【請求項24】 請求項22の除算装置であって、前記
正規化された除数は、1以上2未満の範囲に収められた
除数であることを特徴とする除算装置。 - 【請求項25】 前記次部分剰余生成手段に代えて、除
算の最初においては、被除数は絶対値が除数より小さい
範囲に納められた数である場合に、該被除数を最初の2
の補数表現の部分剰余とし、除算の最初以外において
は、4倍された2の補数表現の部分剰余に対し、前記除
数倍数生成手段で求めた商ディジットの絶対値と除数と
の積を、商ディジットが正のとき減算し、負のとき加算
し、且つ該演算結果を次の2の補数表現の部分剰余とす
る次部分剰余生成手段を備えたことを特徴とする請求項
19の除算装置。 - 【請求項26】 前記次部分剰余生成手段に代えて、除
算の最初においては、被除数は絶対値が除数より小さい
範囲に納められた数である場合に、該被除数を最初の2
の補数表現の部分剰余とし、除算の最初以外において
は、4倍された2の補数表現の部分剰余に対し、前記選
択手段の出力を前記商ディジットが正のとき減算し、負
のとき加算し、且つ該演算結果を次の2の補数表現の部
分剰余とする次部分剰余生成手段を備えたことを特徴と
する請求項20の除算装置。 - 【請求項27】 前記次部分剰余生成手段に代えて、次
部分剰余生成用3入力加減算手段を有し、除算の最初に
おいては、被除数は絶対値が除数より小さい範囲に納め
られた数である場合に、該被除数を最初の2の補数表現
の部分剰余とし、除算の最初以外においては、商ディジ
ットが、−3、−2、−1、0、1、2、および3のと
きに、それぞれ、(R+D+2D)、(R+2D)、
(R+D)、R、(R−D)、(R−2D)、または
(R−D−2D)を出力し、該出力を次の2の補数表現
の部分剰余とする次部分剰余生成手段を備えたことを特
徴とする請求項21の除算装置。 - 【請求項28】 商ディジットが正ならば、2ビットで
表される商ディジットの絶対値を、さもなければ0を対
応する位取りの桁に格納する正の商ディジット格納手段
と、 商ディジットが負ならば、2ビットで表される商ディジ
ットの絶対値を、さもなければ0を対応する位取りの桁
に格納する負の商ディジット格納手段と、 前記正の商ディジット格納手段の内容から前記負の商デ
ィジット格納手段の内容を減算し該差を商とする商変換
手段とを備え、 部分剰余の区間識別から次の部分剰余生成までの一連の
処理を(n/2)回(nは求めるべき商のビット長とす
る。小数点以下は切り上げる。)繰り返し最後に前記商
変換手段により2の補数表現の商を得、かつ最終的な部
分剰余として剰余を得るように構成されていることを特
徴とする請求項16ないし請求項27の何れかに記載の
除算装置。 - 【請求項29】 除算の最初において値0を保持し、商
ディジットが求められるごとに保持した内容を上位方向
へ2ビットシフトすると共にこれに商ディジットを累算
していく商累算シフトレジスタ手段が設けられているこ
とを特徴とする請求項16ないし請求項27の何れかに
記載の除算装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3071405A JP2857505B2 (ja) | 1990-04-10 | 1991-04-04 | 除算装置 |
US07/682,902 US5206827A (en) | 1990-04-10 | 1991-04-09 | Iterative high radix divider decoding the upper bits of a divisor and dividend |
EP19910303132 EP0452099A3 (en) | 1990-04-10 | 1991-04-09 | Divider unit |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2-95759 | 1990-04-10 | ||
JP9575990 | 1990-04-10 | ||
JP3071405A JP2857505B2 (ja) | 1990-04-10 | 1991-04-04 | 除算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04218831A JPH04218831A (ja) | 1992-08-10 |
JP2857505B2 true JP2857505B2 (ja) | 1999-02-17 |
Family
ID=26412506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3071405A Expired - Fee Related JP2857505B2 (ja) | 1990-04-10 | 1991-04-04 | 除算装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5206827A (ja) |
EP (1) | EP0452099A3 (ja) |
JP (1) | JP2857505B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5696713A (en) * | 1995-08-21 | 1997-12-09 | International Business Machines Corporation | Method for faster division by known divisor while maintaining desired accuracy |
JP3604518B2 (ja) * | 1996-11-01 | 2004-12-22 | 株式会社ルネサステクノロジ | 除算装置 |
US6233593B1 (en) * | 1998-11-18 | 2001-05-15 | Tektronix, Inc. | Fir filter based upon squaring |
JP2000347836A (ja) * | 1999-06-04 | 2000-12-15 | Sony Corp | 高次基数除算器およびその方法 |
US6748411B1 (en) | 2000-11-20 | 2004-06-08 | Agere Systems Inc. | Hierarchical carry-select multiple-input split adder |
JP2004326112A (ja) * | 2003-04-25 | 2004-11-18 | Samsung Electronics Co Ltd | マルチプルモジュラス選択器、累算器、モンゴメリー掛け算器、マルチプルモジュラス発生方法、部分掛け発生方法、累算方法、掛け算方法、モジュラス選択器、およびブースレコーダ |
DE102013222842A1 (de) | 2013-11-11 | 2015-05-13 | Schaeffler Technologies Gmbh & Co. Kg | Stirnraddifferenzial mit Sinterplanetenträger |
JP7119543B2 (ja) | 2018-05-01 | 2022-08-17 | 富士通株式会社 | 加減算回路および加減算回路の制御方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3733477A (en) * | 1972-02-04 | 1973-05-15 | Control Data Corp | Iterative binary divider utilizing multiples of the divisor |
US3852581A (en) * | 1972-12-14 | 1974-12-03 | Burroughs Corp | Two bit binary divider |
FR2301869A1 (fr) * | 1975-02-19 | 1976-09-17 | Szamitastech Koord | Procede et couplage rapide pour la division des nombres binaires |
CA1231455A (en) * | 1984-04-09 | 1988-01-12 | Masayuki Ikeda | Nonrestoring divider |
JPH061437B2 (ja) * | 1986-08-19 | 1994-01-05 | 松下電器産業株式会社 | 演算処理装置 |
-
1991
- 1991-04-04 JP JP3071405A patent/JP2857505B2/ja not_active Expired - Fee Related
- 1991-04-09 EP EP19910303132 patent/EP0452099A3/en not_active Withdrawn
- 1991-04-09 US US07/682,902 patent/US5206827A/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
Kai Hwang著,堀越彌監訳,「コンピュータの高速演算方式」,株式会社近代科学社,昭和55年9月1日,p.214−248 |
Also Published As
Publication number | Publication date |
---|---|
JPH04218831A (ja) | 1992-08-10 |
EP0452099A2 (en) | 1991-10-16 |
EP0452099A3 (en) | 1993-06-09 |
US5206827A (en) | 1993-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2622896B2 (ja) | 除算装置 | |
JP2000259394A (ja) | 浮動小数点乗算器 | |
JPH04227535A (ja) | 除算を行なう装置 | |
JPH09269891A (ja) | 部分積加算方法および装置、浮動小数点乗算方法および装置、浮動小数点積和演算方法および装置 | |
JPH0612229A (ja) | 乗累算回路 | |
US5023827A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
US5132925A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
JP2972498B2 (ja) | 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器 | |
JPH07168697A (ja) | 倍精度除算回路および方法 | |
JPH04283831A (ja) | 除算器 | |
JP2857505B2 (ja) | 除算装置 | |
US7016930B2 (en) | Apparatus and method for performing operations implemented by iterative execution of a recurrence equation | |
JPH0687218B2 (ja) | 浮動小数点数演算処理装置及び除数倍数生成装置 | |
JPH1195982A (ja) | 演算処理回路及び演算処理方法並びに演算処理システム | |
JPH10111791A (ja) | 除算装置 | |
JP2003084969A (ja) | 浮動小数点剰余演算器、情報処理装置及びコンピュータプログラム | |
JP3517162B2 (ja) | 除算・開平演算装置 | |
JP3793505B2 (ja) | 演算器及びそれを用いた電子回路装置 | |
US20170199723A1 (en) | Circuitry and method for performing division | |
JP2518532B2 (ja) | 減算シフト型除算器 | |
JPH0251732A (ja) | 浮動小数点演算器 | |
JP3233432B2 (ja) | 乗算器 | |
JPH0667852A (ja) | 除算器 | |
JP3100868B2 (ja) | 浮動小数点数のための算術演算装置 | |
JP2003029960A (ja) | 浮動小数点加算器のショートパスにおける丸めステップの排除 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |