JP2001243051A - 除算器 - Google Patents
除算器Info
- Publication number
- JP2001243051A JP2001243051A JP2000054742A JP2000054742A JP2001243051A JP 2001243051 A JP2001243051 A JP 2001243051A JP 2000054742 A JP2000054742 A JP 2000054742A JP 2000054742 A JP2000054742 A JP 2000054742A JP 2001243051 A JP2001243051 A JP 2001243051A
- Authority
- JP
- Japan
- Prior art keywords
- divider
- adder
- bit
- carry save
- register
- 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
Links
Abstract
高速な除算演算を可能にすることを目的とする。 【解決手段】除算器は、キャリーセーブアダ−と、該キ
ャリーセーブアダ−と直列に接続された全加算器を含
み、該キャリーセーブアダーと該全加算器とによって除
算演算に必要な加算演算を実行することを特徴とする。
Description
し、詳しくは回復型の除算器に関する。
復型と非回復型とがある。回復型除算器は、通常の筆算
のように部分ごとの商及び部分剰余を繰り返し求めてい
くことで、最終的な商及び剰余を求める回路である。回
復型除算器には基数の異なるものがあり、基数に応じ
て、まとめて除算を行うビット数が異なる。
基数8の除算器であり、2ビットまとめて除算を行うの
は基数4の除算器である。また1ビットづつ除算を行う
基数1の除算器も用いられる。基数が多いと回路構成が
複雑になるが、一度に計算できるビット数が多いために
高速な演算が可能となる。何れの基数の除算器を用いる
かは、一般に、ケースバイケースである。
は、部分除算演算が繰り返し行われるために、各サイク
ルでの除算演算が高速でないと、全体の除算演算に時間
がかかることになる。
て、高速な除算演算を可能にすることを目的とする。
ける除算器は、キャリーセーブアダ−と、該キャリーセ
ーブアダ−と直列に接続された全加算器を含み、該キャ
リーセーブアダーと該全加算器とによって除算演算に必
要な加算演算を実行することを特徴とする。
載の除算器は、回復型の除算器であることを特徴とす
る。
載の除算器は、前記キャリーセーブアダーと前記全加算
器とによって被除数の一部分と、除数と、除数の2倍と
を加算する演算を実行することを特徴とする。
載の除算器は、基数4の回復型の除算器であることを特
徴とする。
なる必要になる加算演算を、キャリーセーブアダーと全
加算器との直列接続によって実行する。キャリーセーブ
アダーにおいては、各段のキャリービット出力を上段に
繰り上げることなく、対応するビット毎にそのまま出力
する。従って通常の全加算器のように、最下位ビットか
ら最上位ビットまでキャリーを伝播させる必要がなく、
高速に加算演算を行うことが出来る。これによって、回
復型除算器において、繰り返し実行される各除算サイク
ルの演算時間を短縮することが出来る。
図面を用いて説明する。
路構成を示す図である。
器である。除算器10は、全加算器11乃至13、キャ
リーセーブアダー(CSA:Carry Save Adder)14、ビ
ットシフト器15及び16、結果選択論理回路17、セ
レクタ18、レジスタ19及び20、セレクタ21乃至
26、及びインバータ27を含む。図1の除算器10
は、符号無し32ビット整数であるAを符号無し32ビ
ット整数であるDで除算して、符号無し32ビット整数
である商Xを求める除算器である。
乃至20−4を含み、全体で64ビットのレジスタであ
る。レジスタ20には、被除数Aを2ビットずつ除算す
る際に得られる部分剰余Rが格納されると共に、2ビッ
トずつ得られる結果(商)が下位ビットから順に格納さ
れていく。図1において、例えば、レジスタ20−1は
R[61,32]と表記されているが、これはレジスタ20の下
位から数えて33ビット目から62ビット目までを意味
する。
ーブアダー14が用いられている。このキャリーセーブ
アダー14の使用によって、高速な除算演算を実行する
ことが出来る。
トに、セレクタ23乃至25を介して設定される。この
ときレジスタ20−1には、全てゼロが格納されてい
る。また除数Dが、ビット毎のインバータ27及びセレ
クタ21を介して、レジスタ19にビット反転値として
格納される。レジスタ19に格納されたビット反転値
は、その後全加算器11によって、セレクタ26が選択
した値“1”と加算されて、レジスタ19に再び格納さ
れる。これによって、レジスタ19には、除数Dの符号
反転値−Dが格納されることになる。
セーブアダー14、ビットシフト器15及び16、及び
結果選択論理回路17からなる除算ブロックによって、
最初に、被除数Aの上位2ビットの値を除数Dで除算し
て、商と余りを求める。即ち、まずR[61:30]をレジスタ
20から取ってくることで、R[31:0]に格納された非除
数Aの上位2ビット(ビット31及びビット30)が、
除算ブロックに入力される。この入力値を、Yとして表
す。
−2D、及びY−3Dのうちで、負にならない一番右側
のものを選択する。この選択判断は、Y−D、Y−2
D、及びY−3Dの演算の最上位ビット(p、q、r:
各々結果が負なら1)に基づいてなされる。例えば、Y
がDより大きく2Dより小さければ、Y及びY−Dは正
であるが、Y−2D及びY−3Dは負になる。この場
合、結果選択論理回路17からの選択信号によって、セ
レクタ18がY−Dを選択し、被除数Aの上位2ビット
を除数Dで割った剰余として、レジスタ20のR[61:32]
に格納する。
各々左に2ビットシフトされ、最初にR[29:0]に格納さ
れていた被除数Aの下位30ビットはR[31:2]にシフト
され格納される。従って剰余Y−Dがレジスタ20のR
[61:32]に設定されると、被除数Aの上位2ビットを剰
余Y−Dで置き換えたことになり、R[33:2]で部分剰余
全体が表されることになる。即ちR[33:2]には、被除数
Aの上位2ビットを除数Dで除算した後の部分剰余が格
納されることになる。
数で対応させて説明する。例えば564÷3は、最初の
1桁の5に対して、5÷3で商1がたち、余りが2であ
る。上記説明では、この5がYに対応し、3がDに対応
する。5は3より大きく3の2倍より小さいので、剰余
として2即ちY−Dが選択され、レジスタ20に格納さ
れる。このとき、564の上位1桁が1桁分の剰余2で
書き換えられ、264が部分剰余となる。なおこの結果
は、564を300で割った剰余に等しい。
数の演算例での一桁ごとの除算が、上記の基数4の演算
例での2ビットごとの除算に対応する。なお十進数で
は、Y−D乃至Y−9Dを計算する必要があるが、図1
の構成は基数4であるので、Y−D乃至Y−3Dを計算
すればよい。
7は、Y、Y−D、Y−2D、Y−3Dの何れか一つを
選択すると共に、商に対応する値(result[1:0])を求
める。この商は、レジスタ20の下位2ビットに格納さ
れる。即ちY−Dが選択された場合には、1(2進で0
1)が結果選択論理回路17より出力され、レジスタ2
0のR[1:0]に格納される。レジスタ20に格納された結
果は、各除算が行われるたびに、2ビットずつ左にシフ
トされていく。
は、レジスタ20に格納された部分剰余の上位4ビット
が、全加算器11乃至13、キャリーセーブアダー1
4、ビットシフト器15及び16、及び結果選択論理回
路17からなる除算ブロックに入力される。この入力値
をYとして、上記と同様の演算制御が行われる。
うちの上位2ビットは前回の除算の剰余であるので、こ
の4ビットに対して3以上の商がたつことは有り得な
い。上記十進数の例に対応させれば、部分剰余264の
上位2桁26のうち、上位一桁2は前回の除算の剰余で
あるので、26を除数3で割ったときに、9以上の商が
立つことは有り得ない。
剰余のうちで、それまで除算対象となっていない部分の
上位2ビットを新たな除算対象として、最上位ビットか
らこの2ビット迄を含む上位ビットを除算ブロック(全
加算器11乃至13、キャリーセーブアダー14、ビッ
トシフト器15及び16、及び結果選択論理回路17)
に供給し、商と剰余とを求める。求めた商と剰余とは、
レジスタ20に格納され、このうちの部分剰余部分が更
に次の除算演算に用いられる。最終的に被除数Aの全て
のビットに対する処理が終了した時点で、レジスタ20
のR[31:0]には、最終的な商Xが格納されていることに
なる。
は、レジスタ19から供給される−Dとセレクタ26で
選択されたYとを加算する。全加算器12は、レジスタ
19からの−Dをビットシフト器15で1ビットシフト
して得られた−2Dと、レジスタ20から供給されるY
とを加算する。キャリーセーブアダー14及び全加算器
13は、レジスタ19からの−Dをビットシフト器15
で1ビットシフトして得られた−2Dと、レジスタ19
から直接に供給される−Dと、レジスタ20から供給さ
れるYとを加算する。結果選択論理回路17は、図2に
示すような論理演算を行うことで、適切な剰余を選択す
ると共に、商をレジスタ20に供給する。
0−4の出力は、セレクタ23及び24を介して、レジ
スタ20−2及びレジスタ20−3への入力として供給
される。これによって、各2ビットに対する除算が行わ
れる度に、レジスタの内容を左に2ビットずつシフトさ
せる。
構成を全加算器13の回路構成と共に示す。図3のキャ
リーセーブアダー14は、説明及び図面を簡略化するた
めに、4ビット演算に対する構成を示している。
ット加算用の全加算回路14−0乃至14−3を含み、
全加算回路14−0乃至14−3は対応するビット毎に
並べられる。通常の全加算器では、ビット毎の全加算回
路のキャリー出力は次段の全加算回路の入力に供給さ
れ、各全加算回路は、前段からのキャリーと2つの入力
との和を求める。このような通常の全加算器と異なり、
キャリーセーブアダーにおいては、各全加算回路の出力
のキャリービットは、次段に入力されることなくビット
毎にそのまま出力される。
ダー14は、レジスタ19からの−D、ビットシフト器
16からの−2D、及びレジスタ20からのYを受け取
る。図3においては、便宜上、これら3つの入力の各ビ
ットをAn、Bn、Cn(n=0〜3)として示してい
る。また各全加算回路14−nの出力は、Sn及びCO
n(n=0〜3)として示している。
は、通常の加算動作どおりに、3つの1ビット入力の和
を求め、2ビット出力として出力する。即ち、Snを下
位ビットとしCOnを上位ビットとする出力COnSn
が、3つの1ビット入力An、Bn、及びCnの和を表
すことになる。
3−0乃至13−4を含む。最下位ビットの全加算回路
13−0は、“0”、“0”、S0の和を求める。即ち
S0をそのまま出力する。それ以外の全加算回路13−
nは、キャリーセーブアダー14の対応する桁の和出力
Snと、キャリーセーブアダー14の一つ下の桁のキャ
リー出力COn−1と、下段の全加算回路13−n−1
からの桁上がり(キャリー出力)との和を求める。この
動作を説明のために筆算にして表すと、図4のように各
ビットの加算結果を桁合わせして総加算することにな
り、結果として得られる出力X0乃至X5は、キャリー
セーブアダー14の3つの入力を正しく加算した結果と
なる。
4と全加算器13との組み合わせによって、3つの入力
の加算結果を正しく求めることが出来る。
合、A+Bを第1の全加算器で求め、第1の全加算器の
出力とCとの和を第2の全加算器で求めるのが通常の方
法である。従来の回復型除算器では、全加算器を2段直
列に接続して、これによってY−3Dの計算をしてい
た。全加算器は、各ビットに対応する全加算回路間でキ
ャリー伝播をさせる必要があるため、計算するビット数
が大きい程、最下位ビットから最上位ビットまでキャリ
ーが順次伝播するのに時間がかかり、計算結果が得られ
るまでに長い時間を要することになる。
ると、キャリーセーブアダー内ではキャリー伝播をさせ
ないために、キャリーセーブアダーと全加算器とを直列
接続することで、高速に加算演算を実行することが出来
る。
ーブアダー14の代わりに全加算器を使用したのでは、
全加算器を2段直列接続することになり、Y−3Dの計
算が、Y−D及びY−2Dの計算と比較して遅くなって
しまう。それに対して図1に示す構成では、キャリーセ
ーブアダー14を使用することで、第1段でキャリー伝
播にかかる時間を無くし、高速にY−3Dの計算を実行
することが可能になる。結果として、Y−3Dの計算
を、Y−D及びY−2Dの計算と略同時に終了させるこ
とが出来る。
型除算器においては、キャリーセーブアダーを加算演算
の一部に用いることで、各サイクルの除算演算を高速に
行うことが可能となる。
が、本発明は上記実施例に限定されるものではなく、特
許請求の範囲に記載の範囲内で様々な変形が可能であ
る。
になる必要になる加算演算を、キャリーセーブアダーと
全加算器との直列接続によって実行する。キャリーセー
ブアダーにおいては、各段のキャリービット出力を上段
に繰り上げることなく、対応するビット毎にそのまま出
力する。従って通常の全加算器のように、最下位ビット
から最上位ビットまでキャリーを伝播させる必要がな
く、高速に加算演算を行うことが出来る。これによっ
て、回復型除算器において、繰り返し実行される各除算
サイクルの演算時間を短縮することが出来る。
図である。
る。
回路構成と共に示す図である。
算器で加算する際の処理を説明する図である。
Claims (4)
- 【請求項1】キャリーセーブアダ−と、該キャリーセー
ブアダ−と直列に接続された全加算器を含み、該キャリ
ーセーブアダーと該全加算器とによって除算演算に必要
な加算演算を実行することを特徴とする除算器。 - 【請求項2】前記除算器は、回復型の除算器であること
を特徴とする請求項1記載の除算器。 - 【請求項3】前記除算器は、前記キャリーセーブアダー
と前記全加算器とによって被除数の一部分と、除数と、
除数の2倍とを加算する演算を実行することを特徴とす
る請求項2記載の除算器。 - 【請求項4】前記除算器は、基数4の回復型の除算器で
あることを特徴とする請求項3記載の除算器。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000054742A JP2001243051A (ja) | 2000-02-29 | 2000-02-29 | 除算器 |
US09/768,630 US20010049781A1 (en) | 2000-02-29 | 2001-01-25 | Computer with high-speed context switching |
EP07101868A EP1785862A3 (en) | 2000-02-29 | 2001-01-25 | Method and apparatus for pipeline processing |
EP01300675A EP1132813A3 (en) | 2000-02-29 | 2001-01-25 | Computer with high-speed context switching |
EP07101869A EP1785863A3 (en) | 2000-02-29 | 2001-01-25 | A divider comprising a carry save adder and a full adder |
KR1020010006093A KR100732426B1 (ko) | 2000-02-29 | 2001-02-08 | 고속 컨텍스트 전환을 갖는 컴퓨터 |
US12/073,042 US20080215859A1 (en) | 2000-02-29 | 2008-02-28 | Computer with high-speed context switching |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000054742A JP2001243051A (ja) | 2000-02-29 | 2000-02-29 | 除算器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001243051A true JP2001243051A (ja) | 2001-09-07 |
Family
ID=18575956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000054742A Pending JP2001243051A (ja) | 2000-02-29 | 2000-02-29 | 除算器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001243051A (ja) |
-
2000
- 2000-02-29 JP JP2000054742A patent/JP2001243051A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6735611B2 (en) | Arithmetic processor | |
CA1231455A (en) | Nonrestoring divider | |
US4893268A (en) | Circuit and method for accumulating partial products of a single, double or mixed precision multiplication | |
US5798955A (en) | High-speed division and square root calculation unit | |
US5105378A (en) | High-radix divider | |
JP3418460B2 (ja) | 倍精度除算回路および方法 | |
US6704762B1 (en) | Multiplier and arithmetic unit for calculating sum of product | |
US5132925A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
US5023827A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
US6009450A (en) | Finite field inverse circuit | |
JPH0773227A (ja) | 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器 | |
CN110858137A (zh) | 除以整数常数的浮点除法 | |
US6519621B1 (en) | Arithmetic circuit for accumulative operation | |
US5825681A (en) | Divider/multiplier circuit having high precision mode | |
JPH0234054B2 (ja) | ||
JPH0546363A (ja) | 除算器 | |
JPH0346024A (ja) | 浮動小数点演算器 | |
US4190894A (en) | High speed parallel multiplication apparatus with single-step summand reduction | |
US5912904A (en) | Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method | |
US8219604B2 (en) | System and method for providing a double adder for decimal floating point operations | |
JP3127654B2 (ja) | 乗除算器 | |
JP2001243051A (ja) | 除算器 | |
US3757097A (en) | Ediate arithmetic results extra bit for floating decimal control and correction of false interm | |
JP2664750B2 (ja) | 演算装置及び演算処理方法 | |
JP2710412B2 (ja) | 乗除算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050811 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071127 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080610 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080728 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080807 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090217 |