JP3104569B2 - 除算回路 - Google Patents
除算回路Info
- Publication number
- JP3104569B2 JP3104569B2 JP07094857A JP9485795A JP3104569B2 JP 3104569 B2 JP3104569 B2 JP 3104569B2 JP 07094857 A JP07094857 A JP 07094857A JP 9485795 A JP9485795 A JP 9485795A JP 3104569 B2 JP3104569 B2 JP 3104569B2
- Authority
- JP
- Japan
- Prior art keywords
- quotient
- partial
- partial remainder
- remainder
- redundant
- 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
Description
演算の一つである除算を実行する除算回路に関するもの
である。
て、例えば従来例1:”冗長2進数を利用したVLSI向き
高速除算器”(高木他、電子通信学会論文誌 vol. J67-
D No.4, Apr 1984)および従来例2:”Balanced Delay
Trees and Combinational Division in VLSI”(Zuras
他、IEEE J. Solid-State Circuits, vol. SC-21, No.
5, Oct. 1986)が知られている。これらの論文では、部
分商の表現を冗長2進数とし、部分剰余も冗長2進数あ
るいは桁上げ保存形式で表現し、部分商および部分剰余
に冗長性を持たせることにより、商決定および部分剰余
の生成の高速化を図った除算器について述べられてい
る。この冗長2進数表現は、SD数(signed digit num
ber、符号付き数)の1種で、基数2の拡張SD表現で
あり、各桁は{1,0,−1}の要素であり、1つの数
を何通りかに表すことができる。
桁、すなわち冗長2進数あるいは桁上げ保存形式で表現
された部分剰余の上位3桁の値を検査して、部分剰余全
体の値域を判断し、{1,0,−1}から部分商を選択
決定する。すなわち、除数Dを1≦D<2とし、部分剰
余をPRとすれば、従来例1では冗長2進数で表現され
た部分剰余の上位3桁の値から、部分剰余全体が−2D
<PR<0と判断される場合に部分商を−1、−1<P
R<1と判断される場合に部分商を0、0<PR<2D
と判断される場合に部分商を1と決定する。また、従来
例2においては同様に部分剰余の上位3桁の値から値域
が判断されるが、部分剰余の表現が桁上げ保存表現であ
るため判断の値域が従来例1とは異なり、−2D<PR
<0と判断される場合に部分商を−1、−1≦PR<1
と判断される場合に部分商を0、0≦PR<2Dと判断
される場合に部分商を1と決定する。
分剰余に除数Dを加算あるいは減算等の処理を行ったの
ち2倍して次段の部分剰余を生成する。すなわち、部分
商が−1の場合に部分剰余PRに除数Dを加算し、部分
商が1の場合には部分剰余PRから除数Dを減算し、部
分商が0の場合に部分剰余PRをそのままとし、2倍す
なわち桁を1桁シフトして次段の部分剰余を生成する。
ここでの加算はあるいは減算は、従来例1の場合冗長2
進数体系で行うため桁上げの伝搬が1桁なので、桁数に
関わらず一定時間で行えるため高速な生成が可能であ
る。また、従来例2の場合には、桁上げ保存形式で行う
ため桁上げの伝搬が同様に1桁なので、桁数に関わらず
一定時間で行えるため高速な生成が可能である。
剰余生成のための回路を対として、必要桁数分配列し
て、桁に{1,0,−1}を含む冗長2進数の商を決定
し、最後にこれを通常の2進数に変換して除算を完了す
る。
うに、商決定のための回路と、部分剰余生成のための回
路を対として必要桁数分配列する構成では、商の桁数が
大きくなれば、回路規模が非常に大きくなり、レイアウ
トに必要な面積が増大するという問題点を有していた。
また、桁数が大きくなれば、加算、減算や乗算などの演
算に比較して演算に時間がかかり、演算装置の1マシン
サイクル中に除算の処理が完了せず、複数のサイクルに
またがることになる。そのような場合、演算装置として
演算毎に異なるサイクル時間で処理することは、制御を
複雑にするという問題点を有していた。
あり、1サイクル毎に数桁ずつの冗長2進数の商を決定
して通常の2進数に変換し、レイアウト面積の小さい除
算器を提供するものである。
のであり、1サイクル毎に数桁ずつの冗長2進数の商を
決定して通常の2進数に変換し、さらに通常の2進数の
剰余を得ることのできる、レイアウト面積の小さい除算
器を提供するものである。
めに本発明の第1の除算器は、複数桁の基数nのSD数
(signed digit number)表現の第1の商を求める手段
と、求めた前記第1の商に対して冗長表現の部分剰余を
生成し出力する手段と、前記冗長表現の部分剰余の正負
の符号を求める手段と、前記部分剰余の正負の符号によ
り、前記複数桁の第1の商を2進数に変換したデータ
と、それより1小さいデータとから選択して第2の商を
出力する商変換手段とを設けた構成である。
基数nのSD数(signed digit number)表現の第1の
商を求める手段と、求めた前記第1の商に対して冗長表
現の第1の部分剰余を生成し出力する手段と、前記冗長
表現の第1の部分剰余を2進数の第2の部分剰余に変換
し出力する剰余変換手段と、前記第2の部分剰余の正負
の符号により、前記複数桁の第1の商を2進数に変換し
たデータと、それより1小さいデータとから選択して第
2の商を出力する商変換手段とを設けた構成である。
ル毎に数桁ずつの2進数の商と冗長表現の部分剰余を求
め、サイクルを繰り返して処理を行うことにより、必要
な桁数の商が求められる。また、求めた基数nのSD数
(signed digit number)表現の商に対して求めた冗長
表現の部分剰余の正負の符号を求める手段と、前記部分
剰余の正負の符号により、SD数表現の商を2進数に変
換したデータと、それより1小さいデータとから選択し
て2進数の商を出力する商変換手段とを設けたので、求
められた桁より下位の商が負になった場合にも、求めら
れた2進数の商を補正する必要がない。
様に、サイクル毎に数桁ずつの2進数の商と2進数の部
分剰余を求め、サイクルを繰り返して処理を行うことに
より、必要な桁数の商が求められる。また、剰余変換手
段を設けたので、冗長表現の部分剰余を2進数に変換し
て出力することができる。さらに、変換された2進数の
部分剰余の符号ビットにより、SD数表現の商を2進数
に変換したデータと、それより1小さいデータとから選
択して2進数の商を出力する商変換手段とを設けたの
で、求められた桁より下位の商が負になった場合にも、
求められた2進数の商を補正する必要がない。
図面を参照しながら説明する。
における除算回路の構成を示すブロック図である。この
回路は、1サイクルに4桁の商を求める除算器の構成を
示している。
保存する除数レジスタ、102は入力される被除数また
は除算実行途中の各サイクル終了後の剰余を保存する被
除数/剰余レジスタ、103a〜103dは剰余からス
テージ毎に冗長2進数の商を決定する部分商決定回路、
104a〜104dは決定された商に対して前段の剰余
と除数とから次段の剰余を冗長2進あるいは桁上げ保存
形式で求める部分剰余生成回路、105はサイクルの最
終の冗長2進あるいは桁上げ保存形式で表現された部分
剰余が負であるかどうかを判断する符号を生成する符号
生成回路、106はサイクル毎に求められた冗長2進数
の商を通常の2進数に変換する商変換回路、107は生
成された商を保存する商レジスタである。
明する。ここでは、簡単のため正規化された正の除数お
よび被除数が与えられるものとする。すなわち、除数D
および被除数Nを1≦D,N<2とする。まず、除算の
開始時に除数レジスタ101に除数D、被除数/剰余レ
ジスタ102に被除数Nが入力される。次に、被除数/
剰余レジスタ102から被除数Nの上位3桁が部分商決
定回路103aに入力され、これら上位3桁の値を検査
して、被除数の値域を判断し、第1桁目の部分商を
{1,0,−1}から選択決定する。この場合には、被
除数Nを1≦N<2としているので商q=1となる。こ
の商は、部分剰余生成回路104aおよび商変換回路1
06に入力される。次に、部分剰余生成回路104a
は、決定された商と被除数/剰余レジスタ102から入
力された被除数Nおよび除数レジスタ101から入力さ
れた除数Dから次段の部分剰余を冗長2進あるいは桁上
げ保存形式で求める。部分剰余を求める演算は、冗長2
進表現を内部に用いる場合には冗長2進加減算器を、ま
た、桁上げ保存形式を内部に用いる場合には桁上げ保存
加減算器を用いて行うことができる。この場合、部分商
q1=1となるので、被除数Nから除数Dを減算し、1
桁左シフトを行うことにより2倍して、次段の部分剰余
PR1を求める。ここでの、加算は冗長2進数あるいは
桁上げ保存形式で行うため桁上げの伝搬が高々1桁なの
で、桁数に関わらず一定時間で行えるため高速な部分剰
余の生成が可能である。
段の部分商決定回路103bに入力され、3桁の値を検
査して部分剰余の値域を判断し、第2桁目の部分商q2
を{1,0,−1}から選択決定する。この場合の可能
な部分剰余PR1の値域は、−2D<PR1<2Dであ
る。部分剰余を冗長2進数で表現している場合の商の決
定は、部分剰余の上位3桁の値から、部分剰余全体が−
2D<PR1<0と判断される場合に部分商q2=−1、
−1<PR1<1と判断される場合に部分商q2=0、0
<PR1<2Dと判断される場合に部分商q2=1として
行われる。また、部分剰余を桁上げ保存形式で表現して
いる場合の商の決定は、−2D<PR<0と判断される
場合に部分商q2=−1、−1≦PR<1と判断される
場合に部分商q2=0、0≦PR<2Dと判断される場
合に部分商q2=1と決定する。この部分商q2は、部分
剰余生成回路104bおよび商変換回路106に入力さ
れる。次に、部分剰余生成回路104bは、決定された
部分商q2と部分剰余生成回路104aから入力された
部分剰余PR1および除数レジスタ101から入力され
た除数Dから次段の部分剰余PR2を冗長2進あるいは
桁上げ保存形式で求める。この場合の部分剰余の生成
は、決定した部分商q2に対して部分剰余に除数Dを加
算あるいは減算等の処理を行ったのち2倍して次段の部
分剰余を生成する。すなわち、部分商q2が−1の場合
に部分剰余PR1に除数Dを加算し、部分商q2が1の場
合には部分剰余PR1から除数Dを減算し、部分商q2が
0の場合に部分剰余PR1をそのままとし、さらに1桁
左シフトを行うことにより2倍して、次段の部分剰余P
R2を求める。ここでの、加算あるいは減算は冗長2進
数あるいは桁上げ保存形式で行うため桁上げの伝搬が高
々1桁なので、桁数に関わらず一定時間で行えるため高
速な部分剰余の生成が可能である。
分剰余生成回路104bと同様の処理を、部分商決定回
路103c、103dおよび部分剰余生成回路104
c、104dを用いて行い、部分商q3、q4および部分
剰余PR3、PR4が求められ、部分商q3、q4は商変換
回路106に出力され、部分剰余PR4は符号生成回路
105に入力されると共に被乗数/剰余レジスタに格納
される。
q1q2q3q4を、商変換回路106により通常の2進数
に変換し、商レジスタ107に結果を出力する。冗長2
進数の2進数への変換は、例えば冗長2進数表現で1に
なっている桁だけを1とする2進数から、冗長2進数表
現で−1になっている桁だけを1とする2進数を減算す
ることにより実現することができる。しかしながら、こ
こで注意しなければならないのは、部分商として−1を
許していることである。すなわち、求められた4桁の部
分商q1q2q3q4より下位の商が負となった場合、すな
わちq5=−1の場合、あるいは連続する0の後−1の
商が現われる場合に、これを2進数に変換するとq4の
桁に対して桁借りが生じ、q1q2q3q4に対応した桁の
2進数の数値は、q1q2q3q4をそのまま2進数に変換
した場合より1だけ小さくなる。したがって、下位の部
分商を決定する前に、下位の商が負になるかどうかの判
断を行い、負でなければq1q2q3q4を2進数に変換
し、負である場合にはq1q2q3q4を2進数に変換した
値より1だけ小さい2進数を求めこのサイクルの商とす
る必要がある。これは、下位の商を考慮せず2進数の商
を求めて商レジスタ107に格納した場合には、下位の
商が負になった後、すでに格納した商の補正が必要にな
るからである。下位の商が負になるかどうかの判断は、
部分剰余の値により行うことができる。すなわち、この
サイクル中に生成された最終の冗長形式で表現された部
分剰余の値が負になるかどうかを検査すればよい。この
判断のための回路が符号生成回路105である。部分剰
余の値が負になるかどうかの判断は、冗長2進数あるい
は桁上げ保存形式で表された部分剰余を2進数に変換す
る場合と同様に桁上げの伝搬を行い、その符号ビットの
値により行われ、その信号が商変換回路106に出力さ
れる。このようにして、部分剰余が負であるかどうかが
判断されると、商変換回路106は、前述のように負で
なければq1q2q3q4を2進数にそのまま変換し、負で
ある場合にはq1q2q3q4を2進数に変換した値より1
だけ小さい2進数を求め、このサイクルの商として商レ
ジスタ107に格納する。
られるまでサイクルを繰り返して、除算を終了する。
における除算回路の構成を示すブロック図である。この
回路も、1サイクルに4桁の商を求める除算器の構成を
示しており、図1で示した除算回路の一部を替えたもの
である。
05で示した剰余変換回路であり、その他の回路は図1
で説明したものと同様の動作をする。この剰余変換回路
205はサイクルの最終の部分剰余を通常の2進数に変
換するものである。すなわち、部分剰余生成回路104
dで生成された冗長2進あるいは桁上げ保存形式の部分
剰余PR4を入力し、通常の2進数で表現される部分剰
余を生成する。この変換により、下位の商が負になるか
どうかが明らかになり、部分剰余の符号として生成され
て商変換回路106に入力される。また、通常の2進数
で表現された部分剰余は、このサイクルの最終部分剰余
として、被除数/剰余レジスタに格納される。冗長2進
数あるいは桁上げ保存形式のデータを通常の論理回路を
用いて表現するには、1桁当り2ビットの信号が必要に
なる。したがって、図1における符号生成回路105に
替えて、剰余変換回路205を用いた構成にすることに
より、サイクルの最終部分剰余を通常の2進数で格納で
きるため、レジスタや配線数の数を半分にできる。
求める商の桁数を4桁として説明したが、部分商決定回
路および部分剰余生成回路の数を変更することにより、
容易に桁数を変更できるのは明らかである。また、実施
例1,2では入力される被除数および除数が共に正であ
るとして説明したが、被除数は負であっても同様にして
除算を行うことができる。また、除数が負になった場合
には、商の符号を反転することで同様に除算器を構成で
きる。さらに、実施例1,2では被除数と剰余を同じレ
ジスタに格納する場合について述べたが、分離された除
算器も構成することができる。さらにまた、実施例の説
明では冗長2進数の商を数桁ずつ求める場合について述
べたが、さらに高基数の冗長n進数(signed digit num
ber)の商を求めるものについても、本発明の考え方に
基づき同様の効果を得ることのできる除算器を構成する
ことができる。
進形式で求められた商を通常の2進数に変換しながら、
1サイクルに数桁ずつ求め格納し、必要な桁数に達する
までサイクルを繰り返すことにより除算を行うので、サ
イクル当りに求める商の桁数を調整することにより除算
回路全体の回路規模を小さくできる。また、サイクル当
りに求める商の桁数を調整することにより、除算回路の
サイクル時間を他の演算のサイクル時間と同等に設定す
ることが可能となり、演算装置としての制御を簡単にす
ることができる。さらに、サイクルの最終の部分剰余を
通常の2進数に変換して剰余レジスタに格納する場合に
は、冗長2進数あるいは桁上げ保存形式で格納する場合
に比べて必要なレジスタ数を少なくできる。
ック図
ック図
Claims (5)
- 【請求項1】入力された2つのデータの除算を行う除算
器において、複数桁の基数nのSD数(signed digit n
umber)の第1の商を求める手段と、求めた前記第1の
商に対して冗長表現の部分剰余を生成し出力する手段
と、前記冗長表現の部分剰余の正負の符号を求める手段
と、前記部分剰余の正負の符号により、前記複数桁の第
1の商を2進数に変換したデータと、それより1小さい
データとから選択して第2の商を出力する商変換手段と
を備えたことを特徴とする除算回路。 - 【請求項2】入力された2つのデータの除算を行う除算
器において、複数桁の基数nのSD数の第1の商を求め
る手段と、求めた前記第1の商に対して冗長表現の第1
の部分剰余を生成し出力する手段と、前記冗長表現の第
1の部分剰余を2進数の第2の部分剰余に変換し出力す
る剰余変換手段と、前記第2の部分剰余の正負の符号に
より、前記複数桁の第1の商を2進数に変換したデータ
と、それより1小さいデータとから選択して第2の商を
出力する商変換手段とを備えたことを特徴とする除算回
路。 - 【請求項3】複数桁の第1の商が、冗長2進数表現によ
り求められることを特徴とする請求項1または2記載の
除算回路。 - 【請求項4】冗長表現の第1の部分剰余を生成し出力す
る手段が、冗長2進加減算器よりなることを特徴とする
請求項1または2記載の除算回路。 - 【請求項5】冗長表現の第1の部分剰余を生成し出力す
る手段が、桁上げ保存加減算器よりなることを特徴とす
る請求項1または2記載の除算回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07094857A JP3104569B2 (ja) | 1995-04-20 | 1995-04-20 | 除算回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07094857A JP3104569B2 (ja) | 1995-04-20 | 1995-04-20 | 除算回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08292877A JPH08292877A (ja) | 1996-11-05 |
JP3104569B2 true JP3104569B2 (ja) | 2000-10-30 |
Family
ID=14121711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP07094857A Expired - Fee Related JP3104569B2 (ja) | 1995-04-20 | 1995-04-20 | 除算回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3104569B2 (ja) |
-
1995
- 1995-04-20 JP JP07094857A patent/JP3104569B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08292877A (ja) | 1996-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2622896B2 (ja) | 除算装置 | |
JP2000259394A (ja) | 浮動小数点乗算器 | |
JP2835153B2 (ja) | 高基数除算器 | |
US5184318A (en) | Rectangular array signed digit multiplier | |
US5261001A (en) | Microcircuit for the implementation of RSA algorithm and ordinary and modular arithmetic, in particular exponentiation, with large operands | |
US5023827A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
EP0642093B1 (en) | Method, system and apparatus for automatically designing a multiplier circuit and multiplier circuit designed by performing said method | |
US6728744B2 (en) | Wide word multiplier using booth encoding | |
US4617641A (en) | Operation unit for floating point data having a variable length exponent part | |
JP2585649B2 (ja) | 除算回路 | |
US5144576A (en) | Signed digit multiplier | |
US5703802A (en) | Method and apparatus for automatically designing logic circuit, and multiplier | |
US4866655A (en) | Arithmetic processor and divider using redundant signed digit | |
US4979141A (en) | Technique for providing a sign/magnitude subtraction operation in a floating point computation unit | |
JP3104569B2 (ja) | 除算回路 | |
JP2579321B2 (ja) | バイナリ処理装置 | |
JP2734438B2 (ja) | 乗算装置 | |
US5381380A (en) | Divide circuit having high-speed operating capability | |
JP3793505B2 (ja) | 演算器及びそれを用いた電子回路装置 | |
JP3517162B2 (ja) | 除算・開平演算装置 | |
JP2907276B2 (ja) | 演算処理装置 | |
JP3122622B2 (ja) | 除算装置 | |
JP2605792B2 (ja) | 演算処理装置 | |
JP2002175179A (ja) | 整数除算方法および整数除算装置 | |
JP2993119B2 (ja) | 浮動小数点演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080901 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080901 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090901 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090901 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100901 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110901 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120901 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |