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
Application number
JP2000054742A
Other languages
English (en)
Inventor
Yasuhiro Yamazaki
恭啓 山崎
Yoshimasa Takebe
好正 竹部
Taizo Sato
泰造 佐藤
Shinichiro Tako
真一郎 多湖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2000054742A priority Critical patent/JP2001243051A/ja
Priority to US09/768,630 priority patent/US20010049781A1/en
Priority to EP07101868A priority patent/EP1785862A3/en
Priority to EP01300675A priority patent/EP1132813A3/en
Priority to EP07101869A priority patent/EP1785863A3/en
Priority to KR1020010006093A priority patent/KR100732426B1/ko
Publication of JP2001243051A publication Critical patent/JP2001243051A/ja
Priority to US12/073,042 priority patent/US20080215859A1/en
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】本発明は、基数が4の回復型除算器において、
高速な除算演算を可能にすることを目的とする。 【解決手段】除算器は、キャリーセーブアダ−と、該キ
ャリーセーブアダ−と直列に接続された全加算器を含
み、該キャリーセーブアダーと該全加算器とによって除
算演算に必要な加算演算を実行することを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に除算器に関
し、詳しくは回復型の除算器に関する。
【0002】
【従来の技術】除算を行う回路である除算回路には、回
復型と非回復型とがある。回復型除算器は、通常の筆算
のように部分ごとの商及び部分剰余を繰り返し求めてい
くことで、最終的な商及び剰余を求める回路である。回
復型除算器には基数の異なるものがあり、基数に応じ
て、まとめて除算を行うビット数が異なる。
【0003】例えば、3ビットまとめて除算を行うのは
基数8の除算器であり、2ビットまとめて除算を行うの
は基数4の除算器である。また1ビットづつ除算を行う
基数1の除算器も用いられる。基数が多いと回路構成が
複雑になるが、一度に計算できるビット数が多いために
高速な演算が可能となる。何れの基数の除算器を用いる
かは、一般に、ケースバイケースである。
【0004】
【発明が解決しようとする課題】回復型除算器において
は、部分除算演算が繰り返し行われるために、各サイク
ルでの除算演算が高速でないと、全体の除算演算に時間
がかかることになる。
【0005】本発明は、基数が4の回復型除算器におい
て、高速な除算演算を可能にすることを目的とする。
【0006】
【課題を解決するための手段】請求項1記載の発明にお
ける除算器は、キャリーセーブアダ−と、該キャリーセ
ーブアダ−と直列に接続された全加算器を含み、該キャ
リーセーブアダーと該全加算器とによって除算演算に必
要な加算演算を実行することを特徴とする。
【0007】請求項2記載の発明において、請求項1記
載の除算器は、回復型の除算器であることを特徴とす
る。
【0008】請求項3記載の発明において、請求項2記
載の除算器は、前記キャリーセーブアダーと前記全加算
器とによって被除数の一部分と、除数と、除数の2倍と
を加算する演算を実行することを特徴とする。
【0009】請求項4記載の発明において、請求項3記
載の除算器は、基数4の回復型の除算器であることを特
徴とする。
【0010】上記除算器によれば、除算計算を行う際に
なる必要になる加算演算を、キャリーセーブアダーと全
加算器との直列接続によって実行する。キャリーセーブ
アダーにおいては、各段のキャリービット出力を上段に
繰り上げることなく、対応するビット毎にそのまま出力
する。従って通常の全加算器のように、最下位ビットか
ら最上位ビットまでキャリーを伝播させる必要がなく、
高速に加算演算を行うことが出来る。これによって、回
復型除算器において、繰り返し実行される各除算サイク
ルの演算時間を短縮することが出来る。
【0011】
【発明の実施の形態】以下に、本発明の実施例を添付の
図面を用いて説明する。
【0012】図1は、本発明の実施例による除算器の回
路構成を示す図である。
【0013】図1の除算器10は、基数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を求める除算器である。
【0014】レジスタ20は、4つのレジスタ20−1
乃至20−4を含み、全体で64ビットのレジスタであ
る。レジスタ20には、被除数Aを2ビットずつ除算す
る際に得られる部分剰余Rが格納されると共に、2ビッ
トずつ得られる結果(商)が下位ビットから順に格納さ
れていく。図1において、例えば、レジスタ20−1は
R[61,32]と表記されているが、これはレジスタ20の下
位から数えて33ビット目から62ビット目までを意味
する。
【0015】図1の除算器10においては、キャリーセ
ーブアダー14が用いられている。このキャリーセーブ
アダー14の使用によって、高速な除算演算を実行する
ことが出来る。
【0016】まず除算器10の動作の概略を説明する。
【0017】被除数Aが、レジスタ20の下位32ビッ
トに、セレクタ23乃至25を介して設定される。この
ときレジスタ20−1には、全てゼロが格納されてい
る。また除数Dが、ビット毎のインバータ27及びセレ
クタ21を介して、レジスタ19にビット反転値として
格納される。レジスタ19に格納されたビット反転値
は、その後全加算器11によって、セレクタ26が選択
した値“1”と加算されて、レジスタ19に再び格納さ
れる。これによって、レジスタ19には、除数Dの符号
反転値−Dが格納されることになる。
【0018】その後、全加算器11乃至13、キャリー
セーブアダー14、ビットシフト器15及び16、及び
結果選択論理回路17からなる除算ブロックによって、
最初に、被除数Aの上位2ビットの値を除数Dで除算し
て、商と余りを求める。即ち、まずR[61:30]をレジスタ
20から取ってくることで、R[31:0]に格納された非除
数Aの上位2ビット(ビット31及びビット30)が、
除算ブロックに入力される。この入力値を、Yとして表
す。
【0019】結果選択論理回路17は、Y、Y−D、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]
に格納する。
【0020】このときレジスタ20の下位30ビットは
各々左に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で除算した後の部分剰余が格
納されることになる。
【0021】説明の簡略化のために、馴染みのある十進
数で対応させて説明する。例えば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で割った剰余に等しい。
【0022】十進数演算の基数は10であるので、十進
数の演算例での一桁ごとの除算が、上記の基数4の演算
例での2ビットごとの除算に対応する。なお十進数で
は、Y−D乃至Y−9Dを計算する必要があるが、図1
の構成は基数4であるので、Y−D乃至Y−3Dを計算
すればよい。
【0023】図1の説明に戻ると、結果選択論理回路1
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ビットずつ左にシフ
トされていく。
【0024】この後は繰り返し演算である。即ち今度
は、レジスタ20に格納された部分剰余の上位4ビット
が、全加算器11乃至13、キャリーセーブアダー1
4、ビットシフト器15及び16、及び結果選択論理回
路17からなる除算ブロックに入力される。この入力値
をYとして、上記と同様の演算制御が行われる。
【0025】この際、上位4ビットとは言っても、その
うちの上位2ビットは前回の除算の剰余であるので、こ
の4ビットに対して3以上の商がたつことは有り得な
い。上記十進数の例に対応させれば、部分剰余264の
上位2桁26のうち、上位一桁2は前回の除算の剰余で
あるので、26を除数3で割ったときに、9以上の商が
立つことは有り得ない。
【0026】このようにレジスタ20に格納される部分
剰余のうちで、それまで除算対象となっていない部分の
上位2ビットを新たな除算対象として、最上位ビットか
らこの2ビット迄を含む上位ビットを除算ブロック(全
加算器11乃至13、キャリーセーブアダー14、ビッ
トシフト器15及び16、及び結果選択論理回路17)
に供給し、商と剰余とを求める。求めた商と剰余とは、
レジスタ20に格納され、このうちの部分剰余部分が更
に次の除算演算に用いられる。最終的に被除数Aの全て
のビットに対する処理が終了した時点で、レジスタ20
のR[31:0]には、最終的な商Xが格納されていることに
なる。
【0027】上記動作を実現するために、全加算器11
は、レジスタ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に供給する。
【0028】またレジスタ20−3の出力とレジスタ2
0−4の出力は、セレクタ23及び24を介して、レジ
スタ20−2及びレジスタ20−3への入力として供給
される。これによって、各2ビットに対する除算が行わ
れる度に、レジスタの内容を左に2ビットずつシフトさ
せる。
【0029】図3は、キャリーセーブアダー14の回路
構成を全加算器13の回路構成と共に示す。図3のキャ
リーセーブアダー14は、説明及び図面を簡略化するた
めに、4ビット演算に対する構成を示している。
【0030】図3のキャリーセーブアダー14は、1ビ
ット加算用の全加算回路14−0乃至14−3を含み、
全加算回路14−0乃至14−3は対応するビット毎に
並べられる。通常の全加算器では、ビット毎の全加算回
路のキャリー出力は次段の全加算回路の入力に供給さ
れ、各全加算回路は、前段からのキャリーと2つの入力
との和を求める。このような通常の全加算器と異なり、
キャリーセーブアダーにおいては、各全加算回路の出力
のキャリービットは、次段に入力されることなくビット
毎にそのまま出力される。
【0031】図1で説明したように、キャリーセーブア
ダー14は、レジスタ19からの−D、ビットシフト器
16からの−2D、及びレジスタ20からのYを受け取
る。図3においては、便宜上、これら3つの入力の各ビ
ットをAn、Bn、Cn(n=0〜3)として示してい
る。また各全加算回路14−nの出力は、Sn及びCO
n(n=0〜3)として示している。
【0032】全加算回路14−0乃至14−3の各々
は、通常の加算動作どおりに、3つの1ビット入力の和
を求め、2ビット出力として出力する。即ち、Snを下
位ビットとしCOnを上位ビットとする出力COnSn
が、3つの1ビット入力An、Bn、及びCnの和を表
すことになる。
【0033】全加算器13は、ビット毎の全加算回路1
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つの入力を正しく加算した結果と
なる。
【0034】このようにして、キャリーセーブアダー1
4と全加算器13との組み合わせによって、3つの入力
の加算結果を正しく求めることが出来る。
【0035】3つの数A、B、及びCの和を求める場
合、A+Bを第1の全加算器で求め、第1の全加算器の
出力とCとの和を第2の全加算器で求めるのが通常の方
法である。従来の回復型除算器では、全加算器を2段直
列に接続して、これによってY−3Dの計算をしてい
た。全加算器は、各ビットに対応する全加算回路間でキ
ャリー伝播をさせる必要があるため、計算するビット数
が大きい程、最下位ビットから最上位ビットまでキャリ
ーが順次伝播するのに時間がかかり、計算結果が得られ
るまでに長い時間を要することになる。
【0036】それに対してキャリーセーブアダーを用い
ると、キャリーセーブアダー内ではキャリー伝播をさせ
ないために、キャリーセーブアダーと全加算器とを直列
接続することで、高速に加算演算を実行することが出来
る。
【0037】図1の構成で説明すると、仮にキャリーセ
ーブアダー14の代わりに全加算器を使用したのでは、
全加算器を2段直列接続することになり、Y−3Dの計
算が、Y−D及びY−2Dの計算と比較して遅くなって
しまう。それに対して図1に示す構成では、キャリーセ
ーブアダー14を使用することで、第1段でキャリー伝
播にかかる時間を無くし、高速にY−3Dの計算を実行
することが可能になる。結果として、Y−3Dの計算
を、Y−D及びY−2Dの計算と略同時に終了させるこ
とが出来る。
【0038】このようにして本発明による基数4の回復
型除算器においては、キャリーセーブアダーを加算演算
の一部に用いることで、各サイクルの除算演算を高速に
行うことが可能となる。
【0039】以上、本発明を実施例に基づいて説明した
が、本発明は上記実施例に限定されるものではなく、特
許請求の範囲に記載の範囲内で様々な変形が可能であ
る。
【0040】
【発明の効果】上記除算器によれば、除算計算を行う際
になる必要になる加算演算を、キャリーセーブアダーと
全加算器との直列接続によって実行する。キャリーセー
ブアダーにおいては、各段のキャリービット出力を上段
に繰り上げることなく、対応するビット毎にそのまま出
力する。従って通常の全加算器のように、最下位ビット
から最上位ビットまでキャリーを伝播させる必要がな
く、高速に加算演算を行うことが出来る。これによっ
て、回復型除算器において、繰り返し実行される各除算
サイクルの演算時間を短縮することが出来る。
【図面の簡単な説明】
【図1】本発明の実施例による除算器の回路構成を示す
図である。
【図2】結果選択論理回路の入出力関係を示す図であ
る。
【図3】キャリーセーブアダーの回路構成を全加算器の
回路構成と共に示す図である。
【図4】キャリーセーブアダーのビット毎の出力を全加
算器で加算する際の処理を説明する図である。
【符号の説明】
11、12、13 全加算器 14 キャリーセーブアダー 15、16 ビットシフト 17 結果選択論理回路 18 セレクタ 18、20 レジスタ 21、22、23、24、25、26 セレクタ 27 インバータ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 泰造 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 多湖 真一郎 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B016 AA01 BA07 CA10 CB01 EA12 FA05

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】キャリーセーブアダ−と、該キャリーセー
    ブアダ−と直列に接続された全加算器を含み、該キャリ
    ーセーブアダーと該全加算器とによって除算演算に必要
    な加算演算を実行することを特徴とする除算器。
  2. 【請求項2】前記除算器は、回復型の除算器であること
    を特徴とする請求項1記載の除算器。
  3. 【請求項3】前記除算器は、前記キャリーセーブアダー
    と前記全加算器とによって被除数の一部分と、除数と、
    除数の2倍とを加算する演算を実行することを特徴とす
    る請求項2記載の除算器。
  4. 【請求項4】前記除算器は、基数4の回復型の除算器で
    あることを特徴とする請求項3記載の除算器。
JP2000054742A 2000-02-29 2000-02-29 除算器 Pending JP2001243051A (ja)

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)

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