JPH0934691A - 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算 - Google Patents

正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算

Info

Publication number
JPH0934691A
JPH0934691A JP8167508A JP16750896A JPH0934691A JP H0934691 A JPH0934691 A JP H0934691A JP 8167508 A JP8167508 A JP 8167508A JP 16750896 A JP16750896 A JP 16750896A JP H0934691 A JPH0934691 A JP H0934691A
Authority
JP
Japan
Prior art keywords
bit
carry
partial remainder
sum
zero
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.)
Granted
Application number
JP8167508A
Other languages
English (en)
Other versions
JP3689183B2 (ja
Inventor
Arjun Prab J
プラブ ジェイ.アージュン
B Zeiner Grezegols
ビー.ザイナー グレゼゴルズ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH0934691A publication Critical patent/JPH0934691A/ja
Application granted granted Critical
Publication of JP3689183B2 publication Critical patent/JP3689183B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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 for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • G06F7/5525Roots or inverse roots of single operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4873Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49952Sticky bit

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】最終部分剰余が負の場合にスティッキー・ビッ
トを正確、かつ効果的に計算する能力を提供する一方、
商選択規則を実行する際の待ち時間を短縮し、かつ最小
限のサイズを有する商選択回路及び同商選択回路を含む
除算回路を提供すること。 【解決手段】商デジット選択回路は第1〜4和ビット及
び第1〜4桁上げビットを入力され、そして第1〜4予
測部分剰余ビットを出力する4ビット桁上げ伝搬加算器
500と、第1〜4予測部分剰余ビットを入力され、そし
てオール・ゼロ信号を形成する4ビット・ゼロ検出器50
1と、第1〜4予測部分剰余ビットを入力され、そして
オール・ワン信号を形成する4ビット1検出器502と、
第5和ビット及び第5桁上げビットを入力され、そして
第5ビット・ゼロ信号を形成する否定論理和ゲート503
と、オール・ワン信号、第5ビット・ゼロ信号及びオー
ル・ゼロ信号を入力され、そしてゼロ出力を形成するゼ
ロ回路504とを有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマイクロプロセッサ
内の浮動小数点除算器(Floating point dividers)の
分野、より詳細には、SRT除算/平方根演算のインプ
リメンテーション(SRT division/square root impleme
ntation)における商デジット選択規則(Quotient digi
t selection rules)に関し、同規則は結果が正確な場
合、負の最終部分剰余(Negative final partial remai
nders)の形成を防止する。
【0002】
【従来の技術及び発明が解決しようとする課題】SRT
アルゴリズムは引き放し法除算(Non-restoring divisi
on)を実行する1つの方法を提供する。この詳細につい
ては、1958年9月に発行された米国電気電子学会コ
ンピュータ部会会報(IEEE Trans. Comput.)第C−7
巻218〜222頁に記載されているジェイ.イー.ロ
バートソンによる“デジタル除算法の新たなクラス”
と、1958年に発行されたメカニカル応用数学誌(Qu
art.J. Mech. Appl. Math.)第11刊第3部364〜3
84頁に記載されているケー.ディー.トーチャーによ
る“自動2進コンピュータのための乗算及び除算技術”
を参照のこと。デジタル除算では、オペランドとして除
数及び被除数が使用され、かつ出力として商が形成され
る。複数の商デジットは反復計算され、同商デジットの
うちの最上位商デジットが最初に形成される。SRT除
算は他の除算アルゴリズムとは異なる。SRT除算で
は、連続する各商デジットは上位の僅かな部分剰余デジ
ットのみに基づいて公式化され、非常に多くのデジット
を含み得る部分剰余全体に基づいて公式化されることは
ない。全ての反復において、正確な商デジットの選択は
部分剰余全体を考慮せずには保証できない。このため、
SRTアルゴリズムは不正確な商デジットを時々形成す
る。しかし、SRTアルゴリズムは正、ゼロ及び負の各
商デジットの可能性を提供する。商デジットを1つの反
復において過大予測した場合、誤りは負の商デジットを
選択することにより、次の反復において補正される。S
RT除算では、商デジットを過小予測してはならない。
即ち、商デジットは常に過大予測するか、または正確に
予測する必要がある。全ての商デジットを過小予測しな
かった場合、部分剰余は所定の上下限内に維持され、正
確な最終商の計算が可能になる。SRTアルゴリズムは
負の商デジットの形成を可能にする。このため、一般的
に最終商出力は通常の除算のように全商デジットを単に
連結するのではなく、寧ろ商デジットの重み付け加算及
び減算を介して行われる。
【0003】基数が更に大きい場合、1つの反復におい
て形成される商デジットの数が更に多くなる。これは複
雑さを増大させる。基数2のインプリメンテーションは
1つのデジットを1つの反復において形成する。基数4
のインプリメンテーションは2つのデジットを1つの反
復において形成する。図1はSRTに基づく基数2を使
用する簡単な浮動小数点インプリメンテーション(Simp
le SRT radix-2 floating point implementation)を示
す。同インプリメンテーションは、除数及び被除数の両
方が正であって、かつ正規化されていることを要する。
従って、1/2≦D、被除数<1となる。シフトされた
最初の部分剰余(Initial shifted partial remainde
r)、即ち2PR[0]は被除数である。第1商デジッ
トの計算の反復(First quotient digit calculation i
teration)開始前に、被除数は部分剰余レジスタ100
に対してロードされる。この結果、最初の部分剰余は被
除数となる。その後、反復によって形成される部分剰余
は以下の数式1に基づいて形成される。
【0004】
【数1】 数式1において、qi+1は商デジットであって、−1,
0または+1の値を有し得る。商デジットqi+1は直前
の部分剰余の値に基づいて単独で決定され、かつ除数か
ら独立している。商選択ロジック102は部分剰余のう
ちの上位4ビットのみを入力され、そして商デジットを
形成する。除算では、全ての反復において除数は一定に
維持される。しかし、平方根演算は各反復後に除数レジ
スタ101内に格納された除数に対する調整を一般的に
含む。従って、商デジットが除数から独立していること
は平方根演算における魅力的な特徴である。
【0005】部分剰余は一般的に冗長桁上げ保留の形態
に維持される。この結果、次の部分剰余の計算では、更
に処理速度が遅く、かつ大きい桁上げ伝搬加算器に代え
て桁上げ保留加算器の使用が可能である。部分剰余は全
ての反復が実施され、かつ所望の精度に達した後で、非
冗長形態(Non-redundant form)へ変換される。SRT
アルゴリズムは商デジットの過大予測を可能にする。商
デジットの過大予測により、負の部分剰余が続いて形成
される。このため、最終部分剰余を負にすべく最後の商
デジットを過大予測し得る。この場合、過大予測に対す
る補正が不可能なため、Q及びQ−1の維持が必要であ
る。この結果、最終部分剰余が負である場合、Q−1が
Qに代えて選択される。商デジットは常には冗長形態に
維持され、さらには最後の反復において非冗長形態へ変
換される。これに代えて、商(即ちQ)と、商−1(即
ちQ−1)とを1992年12月に発行された米国電気
電子学会コンピュータ部会会報(IEEE Trans. Compu
t.)第41巻第12号の1497〜1503頁に記載さ
れているエム.ディ.エルセゴバック及びティ.ラング
による“オン・ザ・フライ・ラウンディング(On-the-f
ly rounding)”に開示されている規則に基づいてフラ
イ(Fly)上に形成し得る。
【0006】SRTアルゴリズムは平方根演算にも適用
される。これにより、従来の除算ハードウェアの使用が
可能である。簡略化された平方根の式は除算の式に類似
している。これについては、1990年8月に発行され
た米国電気電子学会コンピュータ部会会報(IEEE Tran
s. Comput.)の第39巻第8号の1016〜1024頁
に記載されているエム.ディ.エルセゴバック及びテ
ィ.ラングによる“初期PLAを伴わない基数4を使用
した平方根演算(Radix-4 square root withoutinitial
PLA)”を参照のこと。平方根演算の反復方程式を以下
の数式2に示す。
【0007】
【数2】 数式2において、括弧内の項は有効除数である。平方根
演算において、除数はQ iの関数であり、同Qiは直前の
全ルート・デジット(Previous root digits)q1〜qi
の関数である。用語の一貫性を維持すべく、ルート・デ
ジットを商デジットと称する。従って、除算で使用する
ハードウェアと同一のハードウェアを使用する平方根演
算を実現すべく、オン・ザ・フライ商形成(On-the-fly
quotient generation)は各反復後の除数の更新に必要
である。
【0008】2進法の除算アルゴリズムはグラマー・ス
クールで教授されている標準的な十進法の除算に類似し
ている。R/D=Qにおいて、Qに対する各商デジット
が予測される。第1商デジットを決定すべく、商デジッ
トの適切な予測値に対して除数が掛けられる。次いで、
その積は剰余を形成すべく被除数から引かれる。剰余が
除数より更に大きい場合、商デジットの予測値は過小で
ある。更に、剰余が負である場合、商デジットの予測値
は過大である。いづれにしても、商デジットの予測値が
誤っている場合、予測値の変更が必要である。この結
果、正確な商デジットは次のデジットへ進む前に導き出
される。次の関係、即ち0≦PR<Dが正しい場合、商
デジットは正しい。ここで、PRは除数を掛けた商デジ
ットを引いた後の部分剰余を示す。
【0009】SRT除算アルゴリズムの鍵としては、負
の商デジットを使用し得る点が挙げられる。例えば、基
数10において、商デジットは標準デジット0〜9に加
えて、−1〜−9の値を有し得る。600÷40の除算
演算を以下に例示する。各反復において、正しい商デジ
ットを選択した場合、正しい結果は15になる。しか
し、正しいデジットである1に代えて、商デジットとし
て2が第1の反復中に選択されたと仮定する。第1の商
デジットとして2を選択した後の部分剰余は600−
(2*40*101)=−200である。SRT除算で
は、このエラーを補正すべくバックアップを行い、かつ
第1の反復を繰り返すことはない。寧ろ、エラーは次の
反復において補正可能である。SRT除算に基づき、第
2の商デジットとして−5を正しく予測したと仮定す
る。反復後、部分剰余は−200−(−5*40*10
0)=0となる。反復後の部分剰余がゼロの場合、残り
の全てのデジットの正しい値はゼロになる。従って、計
算結果は(2*101)+(−5*100)=15とな
り、同計算結果は正しい。従って、SRTアルゴリズム
は、後から1つ以上の負の商デジットを選択することに
より、任意の商デジットの過大予測の補正を可能にす
る。その後の部分剰余を実質的にゼロまで削減すべく、
予測された商デジットから正しい商デジットを引いた値
が1を上回ってはならない。商デジットの予測における
誤りが+1を上回ることを許容した場合、−9を下回る
商デジット(例:−10、−11等)が底10において
必要とされる。同様に、商デジットの範囲はSRTアル
ゴリズムに基づいて正の方向へ拡大されることはない。
このため、正しい商デジットの過小予測は致命的であ
る。これは部分剰余が基数を掛けた除数より更に大き
く、かつその後、底10において9を上回る商デジット
(例:10、11等)を必要とすることに起因する。従
って、部分剰余を所定の上下限内に維持するために、商
デジット選択において、正しい商デジットを過小予測し
てはならない。更に、商デジット選択において商デジッ
トが過大予測された場合、予測された商デジットから正
しい商デジットを引いた値は1を上回ってはならない。
【0010】部分剰余を所定の上下限内に維持するため
の前記の基準を全ての部分剰余デジットを使用すること
なく満足させ得る点が保証される。正しい演算結果の算
出を可能にする商デジットを選択するためには、部分剰
余のうちの上位の僅かなデジットのみを使用すればよ
い。
【0011】SRT除算は冗長商表示を負以外のデジッ
トのみを有する標準的な非冗長形態まで削減するため
に、全ての商デジットの選択後に最終加算を要する。最
近の電子計算回路に用いられる2進法(底2)では、S
RT除算は+1、0または−1の商デジットを提供す
る。商選択デジットを形成するロジック102はSRT
除算インプリメンテーションの中心エレメントである。
初期のリサーチは冗長部分剰余のうちの上位3ビットの
みが基数2を使用する商デジット選択関数(Radix-2 qu
otient digit selection function)に必要な入力であ
ることを示している(1983年に発行された米国電気
電子学会第6回コンピュータ計算シンポジウムの予稿集
(Proc. Sixth IEEE Symp. Comput. Arithmetic.)の9
9〜102頁に記載されているエス.マジェルスキーに
よる“高速デジタル回路のための平方根アルゴリズム”
と、1986年10月に発行された米国電気電子学会の
固体回路ジャーナル(IEEE J. Solid-State Circuit
s.)第SC−21巻第5番の814〜819頁に記載さ
れているディー.ズラス及びダブリュ.マックアリスタ
ーによるVLSIにおける平衡遅延ツリー及び組合せ除
算を参照)。しかし、更に最近の研究結果は、商デジッ
ト選択デジットを正しく形成し、かつ部分剰余を所定の
上下限内に維持するために4ビットを要する点を指摘し
ている(1994年にクルワー・アカデミック出版社
(Kluwer Academic Publishers)から発行されたエム.
ディー.エルセゴバック及びティー.ラングによる除算
及び平方根演算:デジット漸化アルゴリズム及びインプ
リメンテーション(Divisionand Square Root: Digit-r
ecurrence Algorithms and Implementations)ch.3
と、1985年8月に発行された米国電気電子学会コン
ピュータ部会会報第C−34巻第8号の724〜733
頁に記載のエス.マジェルスキーによる“高速デジタル
回路のための平方根アルゴリズム”と、1991年に発
行された米国電気電子学会第10回コンピュータ計算シ
ンポジウムの予稿集の202〜209頁に記載のピー.
モンツシ及びエル.シミニエラによる“幾つかの加算工
程の省略をともなう基数2を使用する簡単な除算及び平
方根演算”と、1987年に発行された米国電気電子学
会第8回コンピュータ計算シンポジウムの予稿集の95
〜101頁に記載のブイ.ペング、エス.サムドララ及
びエム.ガブリエロフによる“浮動小数点ユニットにお
けるシフター、乗算器及び除算器のインプリメンテーシ
ョン”とを参照)。従来の商デジット選択規則は以下の
数式3によって表すことができる。ここで、PRは実際
の部分剰余のうちの上位4ビットを示し、10進小数点
は上位の第3デジット及び第4デジットの間に位置す
る。部分剰余は2の補数であり、第1ビットは符合ビッ
トとなる。
【0012】
【数3】 部分剰余はレジスタ100内に桁上げ保留の形態で格納
されている。このため、実際の上位4ビットは部分剰余
の桁上げ部分及び和部分の桁上げ伝搬全加算(Full car
ry propagate addition of the carry and sum portion
s of the partial remainder)を行わずには得られな
い。部分剰余のうちの上位4ビットを計算すべく各反復
中に桁上げ伝搬全加算の実施を回避することが望まし
い。このため、商デジット選択規則は予測部分剰余を使
用して形成できる。
【0013】予測部分剰余(PRest)は4ビット桁上
げ伝搬加算器のみを用いて計算できる。4ビット桁上げ
伝搬加算器は実際の部分剰余のうちの桁上げ部分及び和
部分の上位4ビットを加算する。実際の部分剰余のうち
の上位4ビットの計算には、59ビット桁上げ伝搬全加
算を要する。従って、この簡略化は待ち時間の大きな節
約を意味する。予測部分剰余PRestは59ビット桁上
げ伝搬全加算を実施した場合に、予測部分剰余のうちの
最下位ビット位置に一致するビット位置へ桁上げが伝搬
される可能性を示していない。表1は基数2を使用する
従来の商選択の真理値表である。予測部分剰余の上位4
ビットは正しい商デジットを選択すべく使用される。従
って、以下の真理値表は真の部分剰余の上位4ビットが
予測部分剰余の上位4ビットとは異なり得るという事実
を考慮している。
【0014】
【表1】 表1の真理値表において、2PRestを示す4ビットは
部分剰余の上位4つの桁上げビット及び和ビット(Carr
y and sum bits)の非冗長表示である。第4ビットは少
数部である。従って、部分剰余の上位4ビットの導出演
繹は1/2である。
【0015】商選択ロジックは0に代えて1、または−
1に代えて0を予測する等、真の商結果を正しく予測す
るか、または過大予測すべく設計されている。SRTア
ルゴリズムは誤った商デジットを選択した場合、後から
自身を補正する。
【0016】部分剰余は−5/2≦2PR[i]≦3/
2に制限される。このため、SRTに基づく基数2を使
用する商選択ロジック(SRT radix-2 quotient selecti
on logic)に関する従来の真理値表は幾つかのドントケ
ア・インプット(Don't careinputs)を有する。下位ビ
ットが無視されるため、予測部分剰余は常に真の部分剰
余の最も重要な上位ビットより少ないか、または同上位
ビットに等しい。従って、予測部分剰余が上下限外に位
置する1つのケース(上記の真理値表において、星印で
示す)が存在する。インプリメントされたSRTアルゴ
リズムは上下限外の部分剰余を形成しない。このため、
実際の部分剰余は負の限界内に位置する。従って、−1
は選択すべき適切な商デジットである。予測部分剰余に
基づいて選択された商デジットが実際の部分剰余に基づ
いて選択された商デジットと異なる他の2つのケース
(表1の111.0及び111.1に対するエントリに
対応するケース)が存在する。しかし、ここに示す商デ
ジットの誤った選択例では、商デジットは過小予測され
ないうえ、部分剰余は所定の上下限内に維持される。従
って、最終結果は依然正確に形成される。
【0017】以下の表2は表1に示す従来の商選択ロジ
ックを簡単に表した真理値表である。以下の表におい
て、“X”はドントケア論理変数("Don't care" logic
variable)を表す。1xx.xが−1の商デジットを
形成する第3のケースは、予測部分剰余が111.1で
ある場合には適用されない。この場合、第2のエントリ
が使用され、正しい商デジットは0になる。
【0018】
【表2】 浮動小数点演算は結果が正確であるか否かを表示するた
めに、同結果とともにスティッキー・ビット(Sticky b
it)を形成する。結果が不正確である場合、スティッキ
ー・ビットがアサート(Assert)される。また、結果が
正確である場合、スティッキー・ビットがデアサート
(Deassert)される。実質的に、スティッキー・ビット
は任意の下位ビットがゼロでないか否かを示す。スティ
ッキー・ビットは米国電気電子学会754規格(IEEE S
tandard 754)に基づく丸めのためのガード・ビット及
び丸めビットとともに使用される。これについては、1
985年にニューヨークに所在する米国電気電子学会か
ら発行された米国規格協会/米国電気電子学会標準規格
(ANSI/IEEE Standard)754規格に記載されている2
進浮動小数点演算のための米国電気電子学会規格を参照
のこと。
【0019】除算及び平方根演算において、スティッキ
ー・ビットは最終部分剰余がゼロであるか否かを確認す
ることによって決定される。所望の数の商ビットを計算
した後、最終部分剰余は部分剰余として定義される。部
分剰余は冗長形態であるため、桁上げ伝搬加算はゼロ検
出前に実施される。図2はスティッキー・ビットを計算
するための回路を示す。図2において、最終部分剰余の
桁上げ部分201及び和部分202は桁上げ伝搬加算器
200によって合計される。加算器200から出力され
る最上位ビット(Most significant bit;略してmsb)は
最終部分剰余の符号ビット203である。図1に示すよ
うに、除算ハードウェアは商(即ちQ)及び商−1(即
ちQ−1)を累算する。最終部分剰余が負の場合、Q−
1は適切な商である。また、最終部分剰余がゼロまたは
正の場合、Qは正しい商である。従って、符合ビット2
03は正しい商を選択すべく使用される。図2におい
て、ゼロ検出器204は非冗長最終部分剰余205の全
てのビットがゼロであるか否かを決定し、かつスティッ
キー・ビット206を出力する。ゼロ検出器204は5
9入力論理和ゲート(59-input OR gate)と論理的に等
しい。
【0020】一見して、前記の解決策は正または負の最
終部分剰余の全ての可能性について適切に見える。しか
し、結果が正確である希なケースでは、最終部分剰余は
負の除数に等しい。表3は自身によって除される数のた
めの除算反復を示す。ここで、PR[i]はi番目の商
デジットが選択された後における部分剰余を示す。
【0021】
【表3】 被除数は常に正であり、かつ正規化されている。このた
め、第1の反復から得られる商デジットは1になる。こ
れは正の正規化数がゼロの符合ビットと、1の最上位デ
ジットとを有するという事実に基づく。1ビットだけ位
置を右へシフトすることにより、正の正規化数を2で割
った際に、最上位ビットは必ずゼロになる。(最上位ビ
ットは正しい2の補数を形成する符合ビットに対して整
合すべく拡大されている。このため、負の数を2で割っ
た場合、最上位ビットは1になる。)最上位ビットがゼ
ロである場合、表2は1の商デジットを選択すべきこと
を命ずる。
【0022】表3に示す第2の反復において、部分剰余
PR[1]はゼロである。このため、第2の商デジット
は1になる。その後の全ての反復において、部分剰余は
負の除数に等しく、−1の商デジットが選択される。最
後の反復後、最終部分剰余PR[n]における符合検出
は、最終部分剰余が負であることを決定し、かつQ−1
を選択すべきことを表示する。事実、これは正しい結果
である。しかし、この最終部分剰余はゼロではない。こ
れは不正確な結果を誤って示すとともに、スティッキー
・ビットをアサートすべきことを誤って示す。
【0023】この問題は正確な結果を要する全ての除算
演算に波及する。表2に示すように、商選択ロジックは
実際にはゼロである部分剰余に対して正の値を予測し、
そして同予測を後から補正すべく定義されている。基本
的に、前記の問題はこの商選択ロジックの定義に起因し
て生じる。従来の除算器はスティッキー・ビットの計算
前に負の最終部分剰余を復元するために1つのプロセッ
サ・サイクルを要する。正確なスティッキー・ビット計
算の実現が望まれる。負の最終部分剰余を復元すること
なく正確なスティッキー・ビットの計算を保証する除算
器の開発は効果的である。
【0024】本発明は前述した事情に鑑みてなされたも
のであって、その目的は、浮動小数点除算及び平方根演
算中、最終部分剰余が負の場合にスティッキー・ビット
を正確、かつ効果的に計算する能力を提供することにあ
る。本発明の別の目的は商選択規則を実行する際の待ち
時間を短縮するとともに、最小限のサイズを有する最適
な商選択回路及び同商選択回路を含む除算回路を提供す
ることにある。
【0025】
【課題を解決するための手段】本発明の課題を解決すべ
く、2進除算及び平方根演算における商デジットを冗長
部分剰余入力に基づいて決定する商デジット選択回路で
あって、冗長部分剰余入力は第1和ビット、第2和ビッ
ト、第3和ビット、第4和ビット及び第5和ビット並び
に第1桁上げビット、第2桁上げビット、第3桁上げビ
ット、第4桁上げビット及び第5桁上げビットを含み、
選択された商デジットは−1商デジットに該当するマイ
ナス出力(Minus output)と、ゼロ商デジットに該当す
るゼロ出力(Zero output)と、+1商デジットに該当
するプラス出力(Plus output)とのうちのいづれか1
つをアサートすることによって出力される商デジット選
択回路において、第1和ビット、第2和ビット、第3和
ビット及び第4和ビット並びに第1桁上げビット、第2
桁上げビット、第3桁上げビット及び第4桁上げビット
を入力され、そして第1予測部分剰余ビット、第2予測
部分剰余ビット、第3予測部分剰余ビット及び第4予測
部分剰余ビットを出力として形成する4ビット桁上げ伝
搬加算器と、第1予測部分剰余ビット、第2予測部分剰
余ビット、第3予測部分剰余ビット及び第4予測部分剰
余ビットを入力され、そしてオール・ゼロ信号を形成
し、オール・ゼロ信号は第1予測部分剰余ビット、第2
予測部分剰余ビット、第3予測部分剰余ビット及び第4
予測部分剰余ビットが全てゼロの場合にのみアサートさ
れる4ビット・ゼロ検出器と、第1予測部分剰余ビッ
ト、第2予測部分剰余ビット、第3予測部分剰余ビット
及び第4予測部分剰余ビットを入力され、そしてオール
・ワン信号を形成し、オール・ワン信号は第1予測部分
剰余ビット、第2予測部分剰余ビット、第3予測部分剰
余ビット及び第4予測部分剰余ビットが全て1の場合に
のみアサートされる4ビット1検出器(Four-bit one d
etector)と、第5和ビット及び第5桁上げビットを入
力され、そして第5ビット・ゼロ信号を形成する否定論
理和ゲートと、オール・ワン信号、第5ビット・ゼロ信
号及びオール・ゼロ信号を入力され、そしてゼロ出力を
形成し、ゼロ出力はオール・ワン信号がアサートされる
か、または第5ビット・ゼロ信号及びオール・ゼロ信号
の両方がアサートされた場合にのみアサートされるゼロ
回路(Zero circuit)とを含む商デジット選択回路が提
供される。
【0026】更に、前記の商デジット選択回路は第1予
測部分剰余ビット、オール・ゼロ信号及び第5ビット・
ゼロ信号を入力され、そしてプラス出力を形成し、前記
プラス出力は第1予測部分剰余ビットがデアサートさ
れ、かつオール・ゼロ信号または第5ビット・ゼロ信号
がデアサートされた場合にのみアサートされるプラス回
路(Plus circuit)を含み得る。同商デジット選択回路
は第1予測部分剰余ビット及びオール・ワン信号を入力
され、そしてマイナス出力を形成し、前記マイナス出力
は第1予測部分剰余ビットがアサートされ、かつオール
・ワン信号がデアサートされた場合にのみアサートされ
るマイナス回路(Minus circuit)を含み得る。4ビッ
ト・ゼロ検出器として4入力論理和ゲート(Four input
OR gate)を使用可能である。また、4ビット1検出器
は4入力論理積ゲート(Four inputAND gate)であり得
る。
【0027】更に本発明では、第1桁上げビット、第2
桁上げビット、第3桁上げビット、第4桁上げビット及
び第5桁上げビット並びに第1和ビット、第2和ビッ
ト、第3和ビット、第4和ビット及び第5和ビットを入
力され、そして商デジットを計算する商デジット選択回
路であって、第1桁上げビット、第2桁上げビット、第
3桁上げビット、第4桁上げビット及び第5桁上げビッ
ト並びに第1和ビット、第2和ビット、第3和ビット、
第4和ビット及び第5和ビットを入力され、そしてゼロ
出力を形成する商ゼロ回路(Quotient zero circuit)
と、第1桁上げビット、第2桁上げビット、第3桁上げ
ビット、第4桁上げビット及び第5桁上げビット並びに
第1和ビット、第2和ビット、第3和ビット、第4和ビ
ット及び第5和ビットを入力され、そしてプラス出力を
形成する商ポジティブ回路(Quotient positive circui
t)とを含む商デジット選択回路を提供する。
【0028】前記の商デジット選択回路は第1桁上げビ
ット、第2桁上げビット、第3桁上げビット及び第4桁
上げビット並びに第1和ビット、第2和ビット、第3和
ビット及び第4和ビットを入力され、そしてマイナス出
力を形成する商ネガティブ回路(Quotient negative ci
rcuit)を含み得る。更に商デジット選択回路は、第1
桁上げビット、第2桁上げビット、第3桁上げビット、
第4桁上げビット及び第5桁上げビット並びに第1和ビ
ット、第2和ビット、第3和ビット、第4和ビット及び
第5和ビットを入力され、そして反転されたゼロ出力を
形成する反転商ゼロ回路(Inverted quotient zero cir
cuit)と、第1桁上げビット、第2桁上げビット、第3
桁上げビット、第4桁上げビット及び第5桁上げビット
並びに第1和ビット、第2和ビット、第3和ビット、第
4和ビット及び第5和ビットを入力され、そして反転さ
れたプラス出力を形成する反転商ポジティブ回路(Inve
rted quotient positive circuit)と、第1桁上げビッ
ト、第2桁上げビット、第3桁上げビット及び第4桁上
げビット並びに第1和ビット、第2和ビット、第3和ビ
ット及び第4和ビットを入力され、そして反転されたマ
イナス出力を形成する反転商ネガティブ回路(Inverted
quotient negative circuit)とを含み得る。
【0029】更に本発明では、被除数を第1の反復中に
入力され、次いで左シフトされた部分剰余をその後の複
数の反復中に入力され、そして出力として部分剰余を形
成する部分剰余レジスタと、オペランド除数を第1の反
復中に入力され、そして出力として除数を形成する除数
レジスタと、本発明の商デジット選択回路と、部分剰余
と、商デジット及び除数の否定論理積とを入力され、そ
して左シフトされた部分剰余を形成する加算器とを含む
浮動小数点正規形仮数除算回路(Floating point norma
lized mantissa division circuit)を提供する。同除
算回路は商デジットを累算する商レジスタを含み得る。
前記の部分剰余は桁上げ部分及び和部分を有する桁上げ
保留の形態で表示し得る。また、前記の加算器は桁上げ
保留加算器であり得る。
【0030】更に、2進除算及び平方根演算において商
デジットを冗長部分剰余から選択する方法であって、冗
長部分剰余は第1和ビット、第2和ビット、第3和ビッ
ト、第4和ビット及び第5和ビット並びに第1桁上げビ
ット、第2桁上げビット、第3桁上げビット、第4桁上
げビット及び第5桁上げビットを含む方法において、第
1予測部分剰余ビット、第2予測部分剰余ビット、第3
予測部分剰余ビット及び第4予測部分剰余ビットを形成
すべく第1和ビット、第2和ビット、第3和ビット及び
第4和ビットを第1桁上げビット、第2桁上げビット、
第3桁上げビット及び第4桁上げビットに対して加算す
る工程と、第1予測部分剰余ビット、第2予測部分剰余
ビット、第3予測部分剰余ビット及び第4予測部分剰余
ビットが全て1である場合、または前記第1予測部分剰
余ビット、第2予測部分剰余ビット、第3予測部分剰余
ビット及び第4予測部分剰余ビットが全てゼロであっ
て、かつ第5和ビット及び第5桁上げビットの両方がゼ
ロに等しい場合にのみ商デジットとしてゼロを選択する
工程とを含む方法を提供する。
【0031】更に、前記の商デジットを選択する方法は
第1予測部分剰余ビット、第2予測部分剰余ビット、第
3予測部分剰余ビット及び第4予測部分剰余ビットが全
てゼロにならない状態と、第5和ビット及び第5桁上げ
ビットが全てゼロにならない状態とのうちのいづれかに
おいて、第1予測部分剰余ビットがゼロである場合にの
み商デジットとして+1を選択する工程を含み得る。ま
た、同商デジットを選択する方法は第1予測部分剰余ビ
ットがアサートされ、さらには第1予測部分剰余ビッ
ト、第2予測部分剰余ビット、第3予測部分剰余ビット
及び第4予測部分剰余ビットが全てゼロにならない場合
にのみ商デジットとして−1を選択する工程を含み得
る。
【0032】更に本発明では、2進除算及び平方根演算
における商デジットを冗長部分剰余入力に基づいて決定
する商デジット選択回路を形成する方法であって、冗長
部分剰余入力は第1和ビット、第2和ビット、第3和ビ
ット、第4和ビット及び第5和ビット並びに第1桁上げ
ビット、第2桁上げビット、第3桁上げビット、第4桁
上げビット及び第5桁上げビットを含み、選択された商
デジットは−1商デジットに該当するマイナス出力と、
ゼロ商デジットに該当するゼロ出力と、+1商デジット
に該当するプラス出力とのうちのいづれか1つをアサー
トすることによって出力される方法において、第1和ビ
ット、第2和ビット、第3和ビット及び第4和ビット並
びに第1桁上げビット、第2桁上げビット、第3桁上げ
ビット及び第4桁上げビットを入力され、そして第1予
測部分剰余ビット、第2予測部分剰余ビット、第3予測
部分剰余ビット及び第4予測部分剰余ビットを出力とし
て形成する4ビット桁上げ伝搬加算器を形成する工程
と、第1予測部分剰余ビット、第2予測部分剰余ビッ
ト、第3予測部分剰余ビット及び第4予測部分剰余ビッ
トを入力され、そしてオール・ゼロ信号を形成し、オー
ル・ゼロ信号は第1予測部分剰余ビット、第2予測部分
剰余ビット、第3予測部分剰余ビット及び第4予測部分
剰余ビットが全てゼロの場合にのみアサートされる4ビ
ット・ゼロ検出器を形成する工程と、第1予測部分剰余
ビット、第2予測部分剰余ビット、第3予測部分剰余ビ
ット及び第4予測部分剰余ビットを入力され、そしてオ
ール・ワン信号を形成し、オール・ワン信号は第1予測
部分剰余ビット、第2予測部分剰余ビット、第3予測部
分剰余ビット及び第4予測部分剰余ビットが全て1の場
合にのみアサートされる4ビット1検出器を形成する工
程と、第5和ビット及び第5桁上げビットを入力され、
そして第5ビット・ゼロ信号を形成する否定論理和ゲー
トを形成する工程と、オール・ワン信号、第5ビット・
ゼロ信号及びオール・ゼロ信号を入力され、そしてゼロ
出力を形成し、前記ゼロ出力はオール・ワン信号がアサ
ートされるか、または第5ビット・ゼロ信号及びオール
・ゼロ信号の両方がアサートされた場合にのみアサート
されるゼロ回路を形成する工程とを含む方法を提供す
る。
【0033】前記の商デジット選択回路を形成する方法
は第1予測部分剰余ビット、オール・ゼロ信号及び第5
ビット・ゼロ信号を入力され、そしてプラス出力を形成
し、プラス出力は第1予測部分剰余ビットがデアサート
され、かつオール・ゼロ信号または第5ビット・ゼロ信
号がデアサートされた場合にのみアサートされるプラス
回路を形成する工程を含み得る。商デジット選択回路は
第1予測部分剰余ビット及びオール・ワン信号を入力さ
れ、そしてマイナス出力を形成し、マイナス出力は第1
予測部分剰余ビットがアサートされ、かつオール・ワン
信号がデアサートされた場合にのみアサートされるマイ
ナス回路を形成する工程を含み得る。4ビット・ゼロ検
出器として4入力論理和ゲートを使用可能である。ま
た、4ビット1検出器は4入力論理積ゲートであり得
る。
【0034】更に本発明では、第1桁上げビット、第2
桁上げビット、第3桁上げビット、第4桁上げビット及
び第5桁上げビット並びに第1和ビット、第2和ビッ
ト、第3和ビット、第4和ビット及び第5和ビットを入
力され、そして商デジットを計算する商デジット選択回
路を形成する方法であって、第1桁上げビット、第2桁
上げビット、第3桁上げビット、第4桁上げビット及び
第5桁上げビット並びに第1和ビット、第2和ビット、
第3和ビット、第4和ビット及び第5和ビットを入力さ
れ、そしてゼロ出力を形成する商ゼロ回路を形成する工
程と、第1桁上げビット、第2桁上げビット、第3桁上
げビット、第4桁上げビット及び第5桁上げビット並び
に第1和ビット、第2和ビット、第3和ビット、第4和
ビット及び第5和ビットを入力され、そしてプラス出力
を形成する商ポジティブ回路を形成する工程とを含む方
法を提供する。
【0035】前記の商ポジティブ回路を形成する工程は
第1桁上げビット、第2桁上げビット、第3桁上げビッ
ト及び第4桁上げビット並びに第1和ビット、第2和ビ
ット、第3和ビット及び第4和ビットを入力され、そし
てマイナス出力を形成する商ネガティブ回路を形成する
工程を含み得る。
【0036】更に、前記の商ネガティブ回路を形成する
工程は第1桁上げビット、第2桁上げビット、第3桁上
げビット、第4桁上げビット及び第5桁上げビット並び
に第1和ビット、第2和ビット、第3和ビット、第4和
ビット及び第5和ビットを入力され、そして反転された
ゼロ出力を形成する反転商ゼロ回路を形成する工程と、
第1桁上げビット、第2桁上げビット、第3桁上げビッ
ト、第4桁上げビット及び第5桁上げビット並びに第1
和ビット、第2和ビット、第3和ビット、第4和ビット
及び第5和ビットを入力され、そして反転されたプラス
出力を形成する反転商ポジティブ回路を形成する工程
と、第1桁上げビット、第2桁上げビット、第3桁上げ
ビット及び第4桁上げビット並びに第1和ビット、第2
和ビット、第3和ビット及び第4和ビットを入力され、
そして反転されたマイナス出力を形成する反転商ネガテ
ィブ回路を形成する工程とを含み得る。
【0037】また本発明では、被除数を第1の反復中に
入力され、次いで左シフトされた部分剰余をその後の複
数の反復中に入力され、そして出力として部分剰余を形
成する部分剰余レジスタを形成する工程と、オペランド
除数を第1の反復中に入力され、そして出力として除数
を形成する除数レジスタを形成する工程と、本発明の商
デジット選択回路を形成する工程と、部分剰余と、商デ
ジット及び除数の否定論理積とを入力され、そして左シ
フトされた部分剰余を形成する加算器を形成する工程と
を含む浮動小数点正規形仮数除算回路を形成する方法を
提供する。同方法は商デジットを累算する商レジスタを
形成する工程を含み得る。また、部分剰余は桁上げ部分
及び和部分を有する桁上げ保留の形態で表示し得る。更
に、加算器は桁上げ保留加算器であり得る。
【0038】本発明は浮動小数点除算及び平方根演算
中、最終部分剰余が負の場合にスティッキー・ビットを
正確、かつ効果的に計算する能力を提供する。本発明は
本発明に基づく商選択規則を最小限の待ち時間で実行す
るとともに、最小限のサイズを有する最適な商選択回路
を提供する。
【0039】本発明は正確な結果が得られた際に、作業
中の部分剰余が負になることを防止する更に効果的な商
デジット選択関数を提供する。負の部分剰余はスティッ
キー・ビットの計算前に復元する必要がないため、1サ
イクルが削減される。
【0040】本発明に基づき、商デジット選択ロジック
は負の除数に等しい部分剰余の形成を防止すべく変更さ
れる。正確な除算結果を実現する正確、かつ効果的なス
ティッキー・ビットの計算を行うために、負の除数に等
しい負の部分剰余の形成を防止する必要がある。これを
実現すべく商デジット選択関数を強化して、ハードウェ
アのコストの削減及び待ち時間の短縮を行い得る。この
ため、商デジット選択関数の強化は理想的な解決策であ
る。予備最終部分剰余(Preliminary final partial re
mainder)を復元するための余分なメカニズムを提供す
る必要がないため、余分なハードウェアが排除される。
負の予備部分剰余を復元する別のサイクル時間を必要と
しないため、待ち時間が短縮される。
【0041】本発明に基づき、実際の部分剰余がゼロの
際に、1の商デジットに変えてゼロの商デジットを選択
すべく商デジット選択ロジックが変更される。上位4ビ
ットがゼロである5ビットからなる予測部分剰余を使用
することにより、第4の上位ビットへの可能な桁上げ伝
搬が検出される。これは冗長部分剰余のうちの第5の最
上位和ビット及び桁上げビットの確認により実現可能で
ある。これら両方がゼロである場合、同ビット位置から
予測部分剰余の最下位ビット位置への桁上げ伝搬は不可
能であり、ゼロの商デジットが選択される。冗長部分剰
余の第5の最上位桁上げビット及び和ビットのうちの少
なくともいづれか一方が1である別のケースでは、1の
商デジットが選択される。
【0042】
【発明の実施の形態】浮動小数点演算において、負の最
終部分剰余が生じた際にスティッキー・ビットを正確に
計算すべく幾つかのオプションを検討する必要がある。
最も簡単な解決策はゼロ検出を行う前に除数を加算する
ことにより、負の最終部分剰余を復元することが挙げら
れる。別の桁上げ伝搬加算器を設置するために要する空
間を考慮した場合、解決策は従来のハードウェアを利用
する必要がある。これを実現する2つの方法を図3及び
図4に示す。
【0043】図3に示す解決策は基本的な反復工程をイ
ンプリメントする従来の桁上げ保留加算器300を利用
している。通常の演算中、最終サイクル信号301はロ
ー(Low)である。この結果、マルチプレクサ302,
303は図1に関連して詳述した標準的反復工程をイン
プリメントすべく形成されている。しかし、最終サイク
ル中、最終サイクル信号301はハイ(High)であり、
マルチプレクサ303はレジスタ305内に格納された
部分剰余の桁上げ部分及び和部分に対して除数D304
を加算すべく同除数D304を加算器300へ出力す
る。予備部分剰余の符号が負の場合、マルチプレクサ3
06は加算器300の結果を最終部分剰余フリップ・フ
ロップ307に対して出力する。
【0044】図4に示す解決策では、図2に示すスティ
ッキー・ビット計算を行う従来の桁上げ伝搬加算器40
0を再び使用している。図1に示す反復データパス等の
データパスが所望の精度の商デジットを形成した後、冗
長部分剰余の桁上げ部分PR C及び和部分PRSは最終サ
イクル信号がローの間にマルチプレクサ403,402
へそれぞれ入力される。次いで、桁上げ伝搬加算器40
0は冗長部分剰余を予備非冗長最終部分剰余(Prelimin
ary non-redundant final partial remainder)へと削
減する。桁上げ伝搬加算器400の最上位出力ビット4
04は予備最終部分剰余の符号を示す。非冗長予備最終
部分剰余はフリップ・フロップ406内へラッチされ
る。次いで、最終サイクル信号401がアサートされ
る。予備最終部分剰余が負であることを符号ビット40
4が示した場合、マルチプレクサ405は加算器400
に対して除数を出力するマルチプレクサ402に対して
同除数を出力する。その一方、マルチプレクサ403は
加算器400に対する別の入力として予備非冗長部分剰
余を出力する。次いで、ゼロ検出器407は復元された
部分剰余を使用してスティッキー・ビットを形成する。
符号ビットが負以外の部分剰余を示す場合、マルチプレ
クサ405は除数Dに代えてゼロを部分剰余に対して加
算させる。
【0045】図3及び図4に示す前記の2つの解決策
は、予備最終部分剰余が負の際にスティッキー・ビット
を計算すべく別のマルチプレクサ・ハードウェアと、別
のサイクルとを要する。マルチプレクサ302は部分剰
余形成クリティカル・パス(Partial remainder format
ion critical path)上に配置されている。このため、
図3に示す解決策は基本的反復のためのサイクル時間に
影響を及ぼす。更に、パイプライン・スーパースカラ・
プロセッサ内の待ち時間可変命令(Variable latency i
nstructions)は命令スケジューリング及びバイパス制
御ロジックを更に複雑にするため望ましくない。従っ
て、スティッキー・ビットを正確に計算するために除算
演算の全分布のうちの僅かな部分のみが余分なサイクル
を必要とする場合にも、負の予備最終部分剰余を形成し
ない除算命令のための余分なサイクルを削除すべくプロ
セッサのデザインは更に複雑になる。従って、負の部分
剰余を復元する正味の効果は、全ての除算及び平方根演
算を行う別の待ち時間サイクルを必要とする。
【0046】本発明に基づき、商デジット選択ロジック
は負の除数に等しい部分剰余の形成を防止するために変
更される。正確な除算結果を実現するスティッキー・ビ
ットを正確、かつ効果的に計算すべく、負の除数に等し
い負の部分剰余の形成を防止する必要がある。これを実
現すべく商デジット選択関数を強化することにより、ハ
ードウェアが削減され、かつ待ち時間が短縮される。こ
のため、同選択関数の強化は理想的な解決策である。予
備最終部分剰余を復元するための余分なメカニズムを提
供する必要がないため、余分なハードウェアを排除し得
る。また、負の予備部分剰余を復元する別のサイクル時
間を必要としないため待ち時間が短縮される。
【0047】本発明に基づく、商デジット選択ロジック
は、実際の部分剰余がゼロの際に1の商デジットに代え
てゼロの商デジットを選択すべく変更される。これは2
PR[i]est=000.0に対してq[i+1]=0
を選択することを示唆している。しかし、商デジット選
択関数は実際の部分剰余より寧ろ予測部分剰余に対して
作用するため、商選択ロジックの注意深いデザインが必
要である。実際には予測部分剰余は1/2未満であり得
るため、更に下位の冗長部分剰余ビットの加算は実際の
部分剰余の上位4ビットのうちの最下位ビット位置へ1
を伝搬させる。従って、実際の部分剰余は1/2以上に
なる。
【0048】実際の部分剰余が1/2(または1/2以
上)である場合、除数は1/2≦D<1に限定されるた
め、q=1を常に選択する必要がある。実際の部分剰余
が1/2より更に大きく、かつq=0が選択された場
合、次の部分剰余は除数を最初に加算または減算するこ
となく、実際の部分剰余を左側へ1ビットだけシフトす
ることによって得られる。この左シフトは正確な商への
収束に必要な3/2の上限を越える次の実際の部分剰余
を形成する。
【0049】正確な商デジットがゼロの際に、除数が実
際の部分剰余より更に大きく、さらに商デジットとして
+1の値が選択された場合、このエラーは後の反復にお
いて補正可能である。しかし、予測部分剰余が000.
0であって、かつ正確な商デジットが1である際に商デ
ジットとしてゼロが選択された場合、このエラーを補正
する方法はない。q=1が正しい商デジットである際に
q=0が選択された場合、過小予測を補正する方法はな
い。結果は回復不能な誤りであり、次の部分剰余は正確
な結果への収束に必要な所定の上下限の外に位置する。
【0050】全ての部分剰余に対する2進加算の実施は
予測の問題を排除する。しかし、これはSRT除算のタ
イミング及び空間に関する効果を無効にする。ゼロの商
デジットは全ての部分剰余がゼロである際にのみ選択可
能である。しかし、全ての部分剰余に対するゼロの検出
は同一の理由により逆効果となる。
【0051】前記の解決策に対する簡単な代替策として
は、実際の部分剰余の上位4ビットのうちの最下位ビッ
トへの可能な桁上げ伝搬を検出することが挙げられる。
これは冗長部分剰余のうちの第5の最上位和ビット及び
桁上げビット、即ちPRS,ms b-4及びPRC,msb-4を確認
することによって実現し得る。PRS,msb-4及びPR
C,msb-4がそれぞれゼロである場合、そのビット位置か
ら予測部分剰余の最下位ビット位置への桁上げ伝搬は不
可能であり、さらにはゼロの商デジットを選択する必要
がある。冗長部分剰余の第5の最上位桁上げビット及び
和ビットのうちの少なくともいづれか一方が1である別
のケースでは、1の商デジットを選択する必要がある。
部分剰余のうちの複数の下位ビットがゼロでない場合に
も、同部分剰余は所定の上下限(−5/2≦2PR≦3
/2)内に存在し、かつ正しい結果が依然算出されるこ
とになる。
【0052】予測部分剰余の計算に必要な桁上げ伝搬加
算は実際の冗長部分剰余の上位4つの伝搬ビット及び和
ビットに対してのみ行われる。このため、本発明に基づ
く計算の待ち時間に対する影響は最低限に抑制される。
表4は本発明に基づく正確な商選択ロジックのための真
理値表を示す。
【0053】
【表4】 図5は強化された商デジット選択関数の論理図を示す。
図5において、4ビット桁上げ伝搬加算器500は実際
の冗長部分剰余の桁上げ部分(2PRC[msb:ms
b−3])及び和部分(2PRS[msb:msb−
3])の上位4ビットを入力され、そして予測非冗長部
分剰余x[3:0]を形成する。オール・ゼロ検出器
(All-zero detector)501は予測部分剰余x[3:
0]の4ビット全てがゼロであるか否かを決定する。x
[3:0]の全ビットがゼロである場合、中間信号n0
がアサートされる。オール・ゼロ検出器501は4入力
否定論理和ゲート(Four input NOR gate)と機能的に
同じである。x[3:0]の全ビットが1である場合、
中間信号n1がアサートされる。オール・ワン検出器
(All-one detector)502は4入力論理積ゲートと機
能的に同じである。否定論理和ゲート503は冗長部分
剰余のうちの最上位の第5桁上げビット(2PRC[m
sb−4])及び第5和ビット(2PRS[msb−
4])を入力され、そして中間信号i0を形成する。中
間信号i0は2PRC[msb−4]及び2PRS[m
sb−4]がゼロである際にのみアサートされる。
【0054】ランダム・ロジック504のブロックはS
RT除算に基づく可能な商デジット値のうちの1つにそ
れぞれ該当する3つの信号(M、Z及びP)を形成す
る。Mは−1の商デジットに該当する。Zはゼロの商デ
ジットに該当する。Pは+1の商デジットに該当する。
Mはx[3]がデアサートされ、かつn1がデアサート
された場合にのみアサートされる。Zはn1がアサート
されるか、またはi0及びn0がアサートされた場合に
のみアサートされる。PはX[3]がアサートされ、n
0またはi0がデアサートされた場合にのみアサートさ
れる。各論理関係を仮定した場合、商デジット信号M、
Z及びPのうちの任意の2つを同時にアサートすること
は不可能である。
【0055】図5に示すインプリメンテーションは論理
的に正しい。しかし実際には、4ビット2進加算器及び
その後のロジックは統合され、さらには最適化されたロ
ジック・インプリメンテーションへの併合が可能であ
る。図6に示すように、5段階ロジック・インプリメン
テーション(Five-stage logic implementation)は空
間を更に効果的に使用するとともに、出力を更に短い遅
延時間を伴って形成する。
【0056】図6に示すインプリメンテーションでは、
M、Z及びPが計算されるとともに、論理反転/M、/
Z及び/Pも計算される。これはデコードされた選択入
力を有するCMOSマルチプレクサ内等において伝達ゲ
ートをイネーブルするために商信号を使用する際に効果
的である。M及び/Mは冗長部分剰余ビットの上位4ビ
ット(2PRC[msb:msb−3]及び2PRS
[msb:msb−3])にのみ依存する。その一方、
Z、P、/Z及び/Pは全て冗長部分剰余の上位5ビッ
ト(2PRC[msb:msb−4]及び2PRS[m
sb:msb−4])に依存する。図6のセルは回路が
占める空間の削減を第2の課題とする一方で、主に遅延
を最小限に抑制すべく最適化されている。図6に示す殆
どの論理は空間を削減すべく幾つかの出力計算の間にお
いて共有されている。
【0057】本発明に基づく基数2を使用する新たな商
デジット選択論理(Radix-2 quotient digit selection
logic)をインプリメントするために必要な別のゲート
の総数は比較的少ない。好ましい実施の形態のインプリ
メンテーションに関するスパイス・シミュレーション分
析(Spice simulation analysis)において、商選択論
理クリティカル・タイミング・パス(Quotient selecti
on logic critical timing path)が5%未満であるこ
とが示されている。
【0058】更に遅い商選択ロジックと、最後に行われ
る部分剰余復元サイクルの排除との間には、インプリメ
ンテーションに依存するタイミング・トレードオフが存
在する。僅かにより複雑な商選択論理に起因する遅延の
増加がプロセッサ・サイクル時間(Processor cycle ti
me)を制限しない場合、性能の増加は負の最終部分剰余
の復元に必要とされる待ち時間サイクルの削減により常
には実現される。本発明のハードウェア除算器等を含む
最近のマイクロプロセッサでは、プロセッサ・サイクル
時間は他のクリティカル・パスによって決定されるか、
またはプロセッサを設計する前に任意で適合させ得る。
商選択ロジックのうちの増大した遅延が最長パスでない
ケースにおいて、各除算演算あたり1サイクルの正味節
約は新たな出費を伴うことなく実現し得る。
【0059】図6に示す実施の形態において、変更され
た商選択ロジック・アルゴリズムは内部浮動小数点除算
器クリティカル・パス(Internal floating point divi
dercritical path)の速度を従来の商選択規則を使用し
て最適化された同等のクリティカル・パスより約100
ps遅くする。これは2パーセント未満の速度低下に相
当する。プロセッサの限界タイミング・パス(Limiting
timing path)は更に長い。従って、改善された商選択
ロジックはプロセッサ・サイクル時間に悪影響を及ぼさ
ない。スティッキー検出(Sticky detection)前に部分
剰余を復元するサイクルを排除する効果が実現される。
【0060】本発明の商選択ロジックを使用しても負の
最終部分剰余は依然形成され得る。しかし、負の最終部
分剰余が形成された際、本発明に基づく商選択ロジック
は負の部分剰余が負の除数より更に大きいことを保証す
る。従って、本発明に基づく負の最終部分剰余が形成さ
れた場合、Q−1が選択され、結果は必ず不正確にな
る。この結果、負の最終部分剰余が負の除数に等しくな
る恐れを伴うことなくスティッキー・ビットを安全にア
サートし得る。
【0061】符号検出及びスティッキー・ビット計算を
平行して実施する一方で、ハードウェアの節約が可能で
ある。59ビット全加算器を使用する代わりに、59ビ
ット符号検出加算器(59-bit sign detect adder)を使
用し得る。これはタイミングを僅かに改善する一方で、
主に空間の節約を実現する。ゼロ検出は冗長部分剰余を
2進数へ変換する明確な加算を伴うことなく行える。
【0062】
【数4】 数式4の式において、Si及びCiはそれぞれ最終部分
剰余の和の値及び桁上げ値である。次いで、スティッキ
ー・ビットは以下の数式5に基づいて計算される。
【0063】
【数5】 この方法は59ビット桁上げ伝搬加算器の遅延に代えて
3入力排他的論理和遅延(3-input XOR delay )を伴う
ゼロ検出器に対する入力を形成し、大きな正味節約を可
能にする。
【0064】以上、本発明を好ましい実施の形態に基づ
いて詳述したが、同実施の形態は例示を目的とするもの
であって、本発明を限定するものではない。当業者は必
要に応じて本発明の実施の形態を変更することが可能で
あり、同変更は請求項に開示する本発明の範囲及び精神
を逸脱しないものとする。例えば、図6に示す商選択ロ
ジックの最適化された論理インプリメンテーションは各
種の同等の方法を用いて設計し得る。また、図6に示す
回路は標準的なCMOS伝達ゲート・マルチプレクサ
(CMOS transmission gate multiplexor)に代えて、n
−チャネル・パス・トランジスタ・マルチプレクサ(n-
channel pass transistor multiplexor)を制御すべく
商デジットの正の極性のみを計算し、論理反転の計算を
削除できる。最適化された異なるインプリメンテーショ
ンは異なる技術(例:NMOS、ECL等)におけるイ
ンプリメンテーション、または同一技術に属する異なる
設計規則及び設計ツールを用いたインプリメンテーショ
ンの結果である。請求項は表4に示す真理値表の全ての
回路インプリメンテーションを網羅することを目的とす
る。従って、本発明の技術分野の当業者にとって自明な
各種の変更及び修正は、本発明の精神及び範囲に属す
る。
【0065】
【発明の効果】以上詳述したように、本発明によれば、
浮動小数点除算及び平方根演算中、最終部分剰余が負の
場合にスティッキー・ビットを正確、かつ効果的に計算
し得る。更に、本発明は商選択規則を実行する際の待ち
時間を短縮するとともに、最小限のサイズを有する最適
な商選択回路及び同商選択回路を含む除算回路を実現す
るという優れた効果を発揮する。
【図面の簡単な説明】
【図1】反復SRT除算アルゴリズムをインプリメント
する従来のハードウェア除算モジュールの簡単な論理
図。
【図2】従来のスティッキー・ビット演算回路の簡単な
論理図。
【図3】反復SRT除算アルゴリズムをインプリメント
するか、または負の最終部分剰余を復元する1つのハー
ドウェア除算モジュールの簡単な論理図。
【図4】反復SRT除算アルゴリズムをインプリメント
するか、または負の最終部分剰余を復元する別のハード
ウェア除算モジュールの簡単な論理図。
【図5】本発明の商選択規則をインプリメントする回路
の簡単な論理図。
【図6】商デジット信号及びその論理反転を形成する商
選択規則をインプリメントする回路の詳細な論理図。
【符号の説明】
300…桁上げ保留加算器、301,401…最終サイ
クル信号、302,303,306,403,402,
405…マルチプレクサ、304…除数、305…レジ
スタ、307,406…フリップ・フロップ、400…
桁上げ伝搬加算器、404…最上位出力ビット、404
…符号ビット、407…ゼロ検出器、500…4ビット
桁上げ伝搬加算器、501…オール・ゼロ検出器、50
2…オール・ワン検出器、503…否定論理和ゲート、
504…ランダム・ロジック。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェイ.アージュン プラブ アメリカ合衆国 94303 カリフォルニア 州 パロアルト コロラド アベニュー 1003 (72)発明者 グレゼゴルズ ビー.ザイナー アメリカ合衆国 95129 カリフォルニア 州 サンノゼ ダートムーア ウェイ 6608

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】 2進除算及び平方根演算における商デジ
    ットを冗長部分剰余入力に基づいて決定する商デジット
    選択回路であって、前記冗長部分剰余入力は第1和ビッ
    ト、第2和ビット、第3和ビット、第4和ビット及び第
    5和ビット並びに第1桁上げビット、第2桁上げビッ
    ト、第3桁上げビット、第4桁上げビット及び第5桁上
    げビットを含み、前記選択された商デジットは−1商デ
    ジットに該当するマイナス出力と、ゼロ商デジットに該
    当するゼロ出力と、+1商デジットに該当するプラス出
    力とのうちのいづれか1つをアサートすることによって
    出力される商デジット選択回路において、 前記第1和ビット、第2和ビット、第3和ビット及び第
    4和ビット並びに第1桁上げビット、第2桁上げビッ
    ト、第3桁上げビット及び第4桁上げビットを入力さ
    れ、そして第1予測部分剰余ビット、第2予測部分剰余
    ビット、第3予測部分剰余ビット及び第4予測部分剰余
    ビットを出力として形成する4ビット桁上げ伝搬加算器
    と、 前記第1予測部分剰余ビット、第2予測部分剰余ビッ
    ト、第3予測部分剰余ビット及び第4予測部分剰余ビッ
    トを入力され、そしてオール・ゼロ信号を形成し、前記
    オール・ゼロ信号は第1予測部分剰余ビット、第2予測
    部分剰余ビット、第3予測部分剰余ビット及び第4予測
    部分剰余ビットが全てゼロの場合にのみアサートされる
    4ビット・ゼロ検出器と、 前記第1予測部分剰余ビット、第2予測部分剰余ビッ
    ト、第3予測部分剰余ビット及び第4予測部分剰余ビッ
    トを入力され、そしてオール・ワン信号を形成し、前記
    オール・ワン信号は第1予測部分剰余ビット、第2予測
    部分剰余ビット、第3予測部分剰余ビット及び第4予測
    部分剰余ビットが全て1の場合にのみアサートされる4
    ビット1検出器と、 前記第5和ビット及び第5桁上げビットを入力され、そ
    して第5ビット・ゼロ信号を形成する否定論理和ゲート
    と、 前記オール・ワン信号、第5ビット・ゼロ信号及びオー
    ル・ゼロ信号を入力され、そしてゼロ出力を形成し、前
    記ゼロ出力はオール・ワン信号がアサートされるか、ま
    たは第5ビット・ゼロ信号及びオール・ゼロ信号の両方
    がアサートされた場合にのみアサートされるゼロ回路と
    を含む商デジット選択回路。
  2. 【請求項2】 前記第1予測部分剰余ビット、オール・
    ゼロ信号及び第5ビット・ゼロ信号を入力され、そして
    プラス出力を形成し、前記プラス出力は第1予測部分剰
    余ビットがデアサートされ、かつオール・ゼロ信号また
    は第5ビット・ゼロ信号がデアサートされた場合にのみ
    アサートされるプラス回路を含む請求項1に記載の商デ
    ジット選択回路。
  3. 【請求項3】 前記第1予測部分剰余ビット及びオール
    ・ワン信号を入力され、そしてマイナス出力を形成し、
    前記マイナス出力は第1予測部分剰余ビットがアサート
    され、かつオール・ワン信号がデアサートされた場合に
    のみアサートされるマイナス回路を含む請求項2に記載
    の商デジット選択回路。
  4. 【請求項4】 前記4ビット・ゼロ検出器は4入力論理
    和ゲートである請求項1に記載の商デジット選択回路。
  5. 【請求項5】 前記4ビット1検出器は4入力論理積ゲ
    ートである請求項1に記載の商デジット選択回路。
  6. 【請求項6】 第1桁上げビット、第2桁上げビット、
    第3桁上げビット、第4桁上げビット及び第5桁上げビ
    ット並びに第1和ビット、第2和ビット、第3和ビッ
    ト、第4和ビット及び第5和ビットを入力され、そして
    商デジットを計算する商デジット選択回路であって、 前記第1桁上げビット、第2桁上げビット、第3桁上げ
    ビット、第4桁上げビット及び第5桁上げビット並びに
    第1和ビット、第2和ビット、第3和ビット、第4和ビ
    ット及び第5和ビットを入力され、そしてゼロ出力を形
    成する商ゼロ回路と、 前記第1桁上げビット、第2桁上げビット、第3桁上げ
    ビット、第4桁上げビット及び第5桁上げビット並びに
    第1和ビット、第2和ビット、第3和ビット、第4和ビ
    ット及び第5和ビットを入力され、そしてプラス出力を
    形成する商ポジティブ回路とを含む商デジット選択回
    路。
  7. 【請求項7】 前記第1桁上げビット、第2桁上げビッ
    ト、第3桁上げビット及び第4桁上げビット並びに第1
    和ビット、第2和ビット、第3和ビット及び第4和ビッ
    トを入力され、そしてマイナス出力を形成する商ネガテ
    ィブ回路を含む請求項6に記載の商デジット選択回路。
  8. 【請求項8】 前記第1桁上げビット、第2桁上げビッ
    ト、第3桁上げビット、第4桁上げビット及び第5桁上
    げビット並びに第1和ビット、第2和ビット、第3和ビ
    ット、第4和ビット及び第5和ビットを入力され、そし
    て反転されたゼロ出力を形成する反転商ゼロ回路と、 前記第1桁上げビット、第2桁上げビット、第3桁上げ
    ビット、第4桁上げビット及び第5桁上げビット並びに
    第1和ビット、第2和ビット、第3和ビット、第4和ビ
    ット及び第5和ビットを入力され、そして反転されたプ
    ラス出力を形成する反転商ポジティブ回路と、 前記第1桁上げビット、第2桁上げビット、第3桁上げ
    ビット及び第4桁上げビット並びに第1和ビット、第2
    和ビット、第3和ビット及び第4和ビットを入力され、
    そして反転されたマイナス出力を形成する反転商ネガテ
    ィブ回路とを含む請求項7に記載の商デジット選択回
    路。
  9. 【請求項9】 被除数を第1の反復中に入力され、次い
    で左シフトされた部分剰余をその後の複数の反復中に入
    力され、そして出力として部分剰余を形成する部分剰余
    レジスタと、 オペランド除数を第1の反復中に入力され、そして出力
    として除数を形成する除数レジスタと、 請求項7に記載の商デジット選択回路と、 前記部分剰余と、商デジット及び除数の否定論理積とを
    入力され、そして左シフトされた部分剰余を形成する加
    算器とを含む浮動小数点正規形仮数除算回路。
  10. 【請求項10】 商デジットを累算する商レジスタを含
    む請求項9に記載の浮動小数点正規形仮数除算回路。
  11. 【請求項11】 前記部分剰余は桁上げ部分及び和部分
    を有する桁上げ保留の形態で表示される請求項10に記
    載の浮動小数点正規形仮数除算回路。
  12. 【請求項12】 前記加算器は桁上げ保留加算器である
    請求項11に記載の浮動小数点正規形仮数除算回路。
  13. 【請求項13】 2進除算及び平方根演算において商デ
    ジットを冗長部分剰余から選択する方法であって、前記
    冗長部分剰余は第1和ビット、第2和ビット、第3和ビ
    ット、第4和ビット及び第5和ビット並びに第1桁上げ
    ビット、第2桁上げビット、第3桁上げビット、第4桁
    上げビット及び第5桁上げビットを含む方法において、 第1予測部分剰余ビット、第2予測部分剰余ビット、第
    3予測部分剰余ビット及び第4予測部分剰余ビットを形
    成すべく第1和ビット、第2和ビット、第3和ビット及
    び第4和ビットを第1桁上げビット、第2桁上げビッ
    ト、第3桁上げビット及び第4桁上げビットに対して加
    算する工程と、 前記第1予測部分剰余ビット、第2予測部分剰余ビッ
    ト、第3予測部分剰余ビット及び第4予測部分剰余ビッ
    トが全て1である場合、または前記第1予測部分剰余ビ
    ット、第2予測部分剰余ビット、第3予測部分剰余ビッ
    ト及び第4予測部分剰余ビットが全てゼロであって、か
    つ第5和ビット及び第5桁上げビットの両方がゼロに等
    しい場合にのみ商デジットとしてゼロを選択する工程と
    を含む方法。
  14. 【請求項14】 前記第1予測部分剰余ビット、第2予
    測部分剰余ビット、第3予測部分剰余ビット及び第4予
    測部分剰余ビットが全てゼロにならない状態と、第5和
    ビット及び第5桁上げビットが全てゼロにならない状態
    とのうちのいづれかにおいて、前記第1予測部分剰余ビ
    ットがゼロである場合にのみ商デジットとして+1を選
    択する工程を含む請求項13に記載の商デジットを選択
    する方法。
  15. 【請求項15】 前記第1予測部分剰余ビットがアサー
    トされ、さらには第1予測部分剰余ビット、第2予測部
    分剰余ビット、第3予測部分剰余ビット及び第4予測部
    分剰余ビットが全てゼロにならない場合にのみ商デジッ
    トとして−1を選択する工程を含む請求項13に記載の
    商デジットを選択する方法。
  16. 【請求項16】 2進除算及び平方根演算における商デ
    ジットを冗長部分剰余入力に基づいて決定する商デジッ
    ト選択回路を形成する方法であって、前記冗長部分剰余
    入力は第1和ビット、第2和ビット、第3和ビット、第
    4和ビット及び第5和ビット並びに第1桁上げビット、
    第2桁上げビット、第3桁上げビット、第4桁上げビッ
    ト及び第5桁上げビットを含み、前記選択された商デジ
    ットは−1商デジットに該当するマイナス出力と、ゼロ
    商デジットに該当するゼロ出力と、+1商デジットに該
    当するプラス出力とのうちのいづれか1つをアサートす
    ることによって出力される方法において、 前記第1和ビット、第2和ビット、第3和ビット及び第
    4和ビット並びに第1桁上げビット、第2桁上げビッ
    ト、第3桁上げビット及び第4桁上げビットを入力さ
    れ、そして第1予測部分剰余ビット、第2予測部分剰余
    ビット、第3予測部分剰余ビット及び第4予測部分剰余
    ビットを出力として形成する4ビット桁上げ伝搬加算器
    を形成する工程と、 前記第1予測部分剰余ビット、第2予測部分剰余ビッ
    ト、第3予測部分剰余ビット及び第4予測部分剰余ビッ
    トを入力され、そしてオール・ゼロ信号を形成し、前記
    オール・ゼロ信号は第1予測部分剰余ビット、第2予測
    部分剰余ビット、第3予測部分剰余ビット及び第4予測
    部分剰余ビットが全てゼロの場合にのみアサートされる
    4ビット・ゼロ検出器を形成する工程と、 前記第1予測部分剰余ビット、第2予測部分剰余ビッ
    ト、第3予測部分剰余ビット及び第4予測部分剰余ビッ
    トを入力され、そしてオール・ワン信号を形成し、前記
    オール・ワン信号は第1予測部分剰余ビット、第2予測
    部分剰余ビット、第3予測部分剰余ビット及び第4予測
    部分剰余ビットが全て1の場合にのみアサートされる4
    ビット1検出器を形成する工程と、 前記第5和ビット及び第5桁上げビットを入力され、そ
    して第5ビット・ゼロ信号を形成する否定論理和ゲート
    を形成する工程と、 前記オール・ワン信号、第5ビット・ゼロ信号及びオー
    ル・ゼロ信号を入力され、そしてゼロ出力を形成し、前
    記ゼロ出力はオール・ワン信号がアサートされるか、ま
    たは第5ビット・ゼロ信号及びオール・ゼロ信号の両方
    がアサートされた場合にのみアサートされるゼロ回路を
    形成する工程とを含む方法。
  17. 【請求項17】 前記第1予測部分剰余ビット、オール
    ・ゼロ信号及び第5ビット・ゼロ信号を入力され、そし
    てプラス出力を形成し、前記プラス出力は第1予測部分
    剰余ビットがデアサートされ、かつオール・ゼロ信号ま
    たは第5ビット・ゼロ信号がデアサートされた場合にの
    みアサートされるプラス回路を形成する工程を含む請求
    項16に記載の方法。
  18. 【請求項18】 前記第1予測部分剰余ビット及びオー
    ル・ワン信号を入力され、そしてマイナス出力を形成
    し、前記マイナス出力は第1予測部分剰余ビットがアサ
    ートされ、かつオール・ワン信号がデアサートされた場
    合にのみアサートされるマイナス回路を形成する工程を
    含む請求項17に記載の方法。
  19. 【請求項19】 前記4ビット・ゼロ検出器は4入力論
    理和ゲートである請求項16に記載の方法。
  20. 【請求項20】 前記4ビット1検出器は4入力論理積
    ゲートである請求項16に記載の方法。
  21. 【請求項21】 第1桁上げビット、第2桁上げビッ
    ト、第3桁上げビット、第4桁上げビット及び第5桁上
    げビット並びに第1和ビット、第2和ビット、第3和ビ
    ット、第4和ビット及び第5和ビットを入力され、そし
    て商デジットを計算する商デジット選択回路を形成する
    方法であって、 前記第1桁上げビット、第2桁上げビット、第3桁上げ
    ビット、第4桁上げビット及び第5桁上げビット並びに
    第1和ビット、第2和ビット、第3和ビット、第4和ビ
    ット及び第5和ビットを入力され、そしてゼロ出力を形
    成する商ゼロ回路を形成する工程と、 前記第1桁上げビット、第2桁上げビット、第3桁上げ
    ビット、第4桁上げビット及び第5桁上げビット並びに
    第1和ビット、第2和ビット、第3和ビット、第4和ビ
    ット及び第5和ビットを入力され、そしてプラス出力を
    形成する商ポジティブ回路を形成する工程とを含む方
    法。
  22. 【請求項22】 前記第1桁上げビット、第2桁上げビ
    ット、第3桁上げビット及び第4桁上げビット並びに第
    1和ビット、第2和ビット、第3和ビット及び第4和ビ
    ットを入力され、そしてマイナス出力を形成する商ネガ
    ティブ回路を形成する工程を含む請求項21に記載の方
    法。
  23. 【請求項23】 前記第1桁上げビット、第2桁上げビ
    ット、第3桁上げビット、第4桁上げビット及び第5桁
    上げビット並びに第1和ビット、第2和ビット、第3和
    ビット、第4和ビット及び第5和ビットを入力され、そ
    して反転されたゼロ出力を形成する反転商ゼロ回路を形
    成する工程と、 前記第1桁上げビット、第2桁上げビット、第3桁上げ
    ビット、第4桁上げビット及び第5桁上げビット並びに
    第1和ビット、第2和ビット、第3和ビット、第4和ビ
    ット及び第5和ビットを入力され、そして反転されたプ
    ラス出力を形成する反転商ポジティブ回路を形成する工
    程と、 前記第1桁上げビット、第2桁上げビット、第3桁上げ
    ビット及び第4桁上げビット並びに第1和ビット、第2
    和ビット、第3和ビット及び第4和ビットを入力され、
    そして反転されたマイナス出力を形成する反転商ネガテ
    ィブ回路を形成する工程とを含む請求項22に記載の方
    法。
  24. 【請求項24】 被除数を第1の反復中に入力され、次
    いで左シフトされた部分剰余をその後の複数の反復中に
    入力され、そして出力として部分剰余を形成する部分剰
    余レジスタを形成する工程と、 オペランド除数を第1の反復中に入力され、そして出力
    として除数を形成する除数レジスタを形成する工程と、 請求項22に記載の商デジット選択回路を形成する工程
    と、 前記部分剰余と、商デジット及び除数の否定論理積とを
    入力され、そして左シフトされた部分剰余を形成する加
    算器を形成する工程とを含む浮動小数点正規形仮数除算
    回路を形成する方法。
  25. 【請求項25】 商デジットを累算する商レジスタを形
    成する工程を含む請求項24に記載の方法。
  26. 【請求項26】 前記部分剰余は桁上げ部分及び和部分
    を有する桁上げ保留の形態で表示される請求項25に記
    載の方法。
  27. 【請求項27】 前記加算器は桁上げ保留加算器である
    請求項26に記載の方法。
JP16750896A 1995-07-05 1996-06-27 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算 Expired - Fee Related JP3689183B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/498397 1995-07-05
US08/498,397 US5787030A (en) 1995-07-05 1995-07-05 Correct and efficient sticky bit calculation for exact floating point divide/square root results

Publications (2)

Publication Number Publication Date
JPH0934691A true JPH0934691A (ja) 1997-02-07
JP3689183B2 JP3689183B2 (ja) 2005-08-31

Family

ID=23980922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16750896A Expired - Fee Related JP3689183B2 (ja) 1995-07-05 1996-06-27 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算

Country Status (3)

Country Link
US (2) US5787030A (ja)
JP (1) JP3689183B2 (ja)
KR (1) KR100323338B1 (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5995992A (en) * 1997-11-17 1999-11-30 Bull Hn Information Systems Inc. Conditional truncation indicator control for a decimal numeric processor employing result truncation
US6594681B1 (en) * 1998-11-04 2003-07-15 Sun Microsystems, Inc. Quotient digit selection logic for floating point division/square root
US6360241B1 (en) 1999-02-01 2002-03-19 Compaq Information Technologies Goup, L.P. Computer method and apparatus for division and square root operations using signed digit
US6732135B1 (en) * 1999-02-01 2004-05-04 Hewlett-Packard Development Company, L.P. Method and apparatus for accumulating partial quotients in a digital processor
JP2002063025A (ja) * 2000-08-18 2002-02-28 Fujitsu Ltd 可変長データ処理用プロセッサ
US7243119B1 (en) * 2000-09-26 2007-07-10 Hitachi, Ltd. Floating point computing unit
US7031996B2 (en) * 2000-11-02 2006-04-18 Seagate Technology Llc Calculating square root of binary numbers with fixed-point microprocessor
US6792443B2 (en) * 2001-06-29 2004-09-14 Intel Corporation Economical on-the-fly rounding for digit-recurrence algorithms
EP1315081B1 (en) * 2001-11-22 2008-05-07 STMicroelectronics Limited Circuitry for carrying out at least one of a square root operation and a division operation
EP1315079A1 (en) * 2001-11-22 2003-05-28 STMicroelectronics Limited Circuit for calculation of division and square root with floating point numbers
EP1315080A1 (en) * 2001-11-22 2003-05-28 STMicroelectronics Limited Circuitry for carrying out square root and division operations
EP1315082A1 (en) 2001-11-22 2003-05-28 STMicroelectronics Limited Iteration circuitry for carrying out square root operation on floating point numbers
EP1315077A1 (en) * 2001-11-23 2003-05-28 STMicroelectronics Limited Circuitry and method for performing floating point compare operations
US7127483B2 (en) * 2001-12-26 2006-10-24 Hewlett-Packard Development Company, L.P. Method and system of a microprocessor subtraction-division floating point divider
JP4348457B2 (ja) * 2002-03-13 2009-10-21 ドルビー ラボラトリーズ ライセンシング コーポレイション 高ダイナミックレンジのディスプレイ、ディスプレイコントローラ及び画像表示方法
US7016930B2 (en) * 2002-10-25 2006-03-21 Arm Limited Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
US7139786B2 (en) 2003-05-12 2006-11-21 Sun Microsystems, Inc. Method and apparatus for efficiently performing a square root operation
US7660842B2 (en) * 2003-05-12 2010-02-09 Sun Microsystems, Inc. Method and apparatus for performing a carry-save division operation
US7676655B2 (en) * 2004-06-30 2010-03-09 Sun Microsystems, Inc. Single bit control of threads in a multithreaded multicore processor
US7861063B1 (en) 2004-06-30 2010-12-28 Oracle America, Inc. Delay slot handling in a processor
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US7533248B1 (en) 2004-06-30 2009-05-12 Sun Microsystems, Inc. Multithreaded processor including a functional unit shared between multiple requestors and arbitration therefor
US7370243B1 (en) 2004-06-30 2008-05-06 Sun Microsystems, Inc. Precise error handling in a fine grain multithreaded multicore processor
US7401206B2 (en) * 2004-06-30 2008-07-15 Sun Microsystems, Inc. Apparatus and method for fine-grained multithreading in a multipipelined processor core
US7941642B1 (en) 2004-06-30 2011-05-10 Oracle America, Inc. Method for selecting between divide instructions associated with respective threads in a multi-threaded processor
US7478225B1 (en) 2004-06-30 2009-01-13 Sun Microsystems, Inc. Apparatus and method to support pipelining of differing-latency instructions in a multithreaded processor
US7747771B1 (en) 2004-06-30 2010-06-29 Oracle America, Inc. Register access protocol in a multihreaded multi-core processor
US7178005B1 (en) 2004-06-30 2007-02-13 Sun Microsystems, Inc. Efficient implementation of timers in a multithreaded processor
US7185178B1 (en) 2004-06-30 2007-02-27 Sun Microsystems, Inc. Fetch speculation in a multithreaded processor
US8095778B1 (en) 2004-06-30 2012-01-10 Open Computing Trust I & II Method and system for sharing functional units of a multithreaded processor
US7216216B1 (en) 2004-06-30 2007-05-08 Sun Microsystems, Inc. Register window management using first pipeline to change current window and second pipeline to read operand from old window and write operand to new window
US7373489B1 (en) 2004-06-30 2008-05-13 Sun Microsystems, Inc. Apparatus and method for floating-point exception prediction and recovery
US7343474B1 (en) 2004-06-30 2008-03-11 Sun Microsystems, Inc. Minimal address state in a fine grain multithreaded processor
US7383403B1 (en) 2004-06-30 2008-06-03 Sun Microsystems, Inc. Concurrent bypass to instruction buffers in a fine grain multithreaded processor
US7437538B1 (en) 2004-06-30 2008-10-14 Sun Microsystems, Inc. Apparatus and method for reducing execution latency of floating point operations having special case operands
US7890734B2 (en) * 2004-06-30 2011-02-15 Open Computing Trust I & II Mechanism for selecting instructions for execution in a multithreaded processor
US7523330B2 (en) * 2004-06-30 2009-04-21 Sun Microsystems, Inc. Thread-based clock enabling in a multi-threaded processor
US7434000B1 (en) 2004-06-30 2008-10-07 Sun Microsystems, Inc. Handling duplicate cache misses in a multithreaded/multi-core processor
US8225034B1 (en) 2004-06-30 2012-07-17 Oracle America, Inc. Hybrid instruction buffer
US7353364B1 (en) 2004-06-30 2008-04-01 Sun Microsystems, Inc. Apparatus and method for sharing a functional unit execution resource among a plurality of functional units
US7702887B1 (en) 2004-06-30 2010-04-20 Sun Microsystems, Inc. Performance instrumentation in a fine grain multithreaded multicore processor
US7774393B1 (en) 2004-06-30 2010-08-10 Oracle America, Inc. Apparatus and method for integer to floating-point format conversion
US7426630B1 (en) 2004-06-30 2008-09-16 Sun Microsystems, Inc. Arbitration of window swap operations
US8037250B1 (en) 2004-12-09 2011-10-11 Oracle America, Inc. Arbitrating cache misses in a multithreaded/multi-core processor
US7539720B2 (en) * 2004-12-15 2009-05-26 Sun Microsystems, Inc. Low latency integer divider and integration with floating point divider and method
JP4273071B2 (ja) * 2004-12-15 2009-06-03 エヌイーシーコンピュータテクノ株式会社 除算・開平演算器
US7752250B2 (en) * 2006-01-12 2010-07-06 International Business Machines Corporation Rounding floating point division results
WO2008092276A1 (en) * 2007-02-01 2008-08-07 Dolby Laboratories Licensing Corporation Calibration of displays having spatially-variable backlight
US8024719B2 (en) 2008-11-03 2011-09-20 Advanced Micro Devices, Inc. Bounded hash table sorting in a dynamic program profiling system
US20100115494A1 (en) * 2008-11-03 2010-05-06 Gorton Jr Richard C System for dynamic program profiling
US8478948B2 (en) * 2008-12-04 2013-07-02 Oracle America, Inc. Method and system for efficient tracing and profiling of memory accesses during program execution
US20100214282A1 (en) * 2009-02-24 2010-08-26 Dolby Laboratories Licensing Corporation Apparatus for providing light source modulation in dual modulator displays
US8452831B2 (en) * 2009-03-31 2013-05-28 Oracle America, Inc. Apparatus and method for implementing hardware support for denormalized operands for floating-point divide operations
US8817875B2 (en) * 2009-08-13 2014-08-26 The Johns Hopkins University Methods and systems to encode and decode sequences of images
US9086890B2 (en) 2012-01-06 2015-07-21 Oracle International Corporation Division unit with normalization circuit and plural divide engines for receiving instructions when divide engine availability is indicated
US10706101B2 (en) 2016-04-14 2020-07-07 Advanced Micro Devices, Inc. Bucketized hash tables with remap entries
US10209959B2 (en) * 2016-11-03 2019-02-19 Samsung Electronics Co., Ltd. High radix 16 square root estimate

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023827A (en) * 1988-08-18 1991-06-11 Digital Equipment Corporation Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5272660A (en) * 1992-06-01 1993-12-21 Motorola, Inc. Method and apparatus for performing integer and floating point division using a single SRT divider in a data processor
US5386376A (en) * 1992-08-31 1995-01-31 Intel Corporation Method and apparatus for overriding quotient prediction in floating point divider information processing systems
US5258944A (en) * 1992-09-01 1993-11-02 Cray Research, Inc. High performance mantissa divider
US5357455A (en) * 1992-10-09 1994-10-18 Intel Corporation Floating point remainder generator for a math processor

Also Published As

Publication number Publication date
KR970008882A (ko) 1997-02-24
JP3689183B2 (ja) 2005-08-31
US5954789A (en) 1999-09-21
US5787030A (en) 1998-07-28
KR100323338B1 (ko) 2002-06-22

Similar Documents

Publication Publication Date Title
JPH0934691A (ja) 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算
US6594681B1 (en) Quotient digit selection logic for floating point division/square root
Obermann et al. Division algorithms and implementations
US7346643B1 (en) Processor with improved accuracy for multiply-add operations
US5870323A (en) Three overlapped stages of radix-2 square root/division with speculative execution
Lang et al. A radix-10 digit-recurrence division unit: algorithm and architecture
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
US9904512B1 (en) Methods and apparatus for performing floating point operations
US8019805B1 (en) Apparatus and method for multiple pass extended precision floating point multiplication
Bayrakci et al. Reduced delay BCD adder
US5790444A (en) Fast alignment unit for multiply-add floating point unit
JP4273071B2 (ja) 除算・開平演算器
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
US8533246B2 (en) Carry bucket-aware multiplication having bits with most significant bits set to zero
Nannarelli Radix-16 combined division and square root unit
Ushasree et al. VLSI implementation of a high speed single precision floating point unit using verilog
JPH0687218B2 (ja) 浮動小数点数演算処理装置及び除数倍数生成装置
Srinivas et al. Radix 2 division with over-redundant quotient selection
Isseven et al. A dual-mode quadruple precision floating-point divider
Sutter et al. Comparative study of SRT-dividers in FPGA
Takagi et al. A VLSI algorithm for computing the Euclidean norm of a 3D vector
US6109777A (en) Division with limited carry-propagation in quotient accumulation
US5351207A (en) Methods and apparatus for subtraction with 3:2 carry-save adders
Baesler et al. FPGA implementation of a decimal floating-point accurate scalar product unit with a parallel fixed-point multiplier

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050610

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees