JPS62196767A - パイプライン構成の浮動小数点数アキユムレ−タ回路 - Google Patents

パイプライン構成の浮動小数点数アキユムレ−タ回路

Info

Publication number
JPS62196767A
JPS62196767A JP62004235A JP423587A JPS62196767A JP S62196767 A JPS62196767 A JP S62196767A JP 62004235 A JP62004235 A JP 62004235A JP 423587 A JP423587 A JP 423587A JP S62196767 A JPS62196767 A JP S62196767A
Authority
JP
Japan
Prior art keywords
exponent
circuit
input
output
accumulator
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
JP62004235A
Other languages
English (en)
Inventor
ポール・アンドリュー・シモンシック
ウォルター・ロバート・ステイナー
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.)
General Electric Co
Original Assignee
General Electric Co
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 General Electric Co filed Critical General Electric Co
Publication of JPS62196767A publication Critical patent/JPS62196767A/ja
Pending 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • G06F7/5095Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators word-serial, i.e. with an accumulator-register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3832Less usual number representations
    • G06F2207/3836One's complement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining
    • 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/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49915Mantissa overflow or underflow in handling floating-point numbers
    • 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/49936Normalisation mentioned as feature only

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 発明の分野 この発明は電子式アキュムレータ回路、更に具体的に云
えば、浮動小数点アキュムレータ集積回路に関する。
発明の背景 従来、電子式アキュムレータは回路板レベルの製品とし
て設計されるのが典型的であり、第1図に示すのと同様
な全体的な構成を持つのが典型的である。こういう装置
では、2つの浮動小数点数の指数を比較し、両方の数に
対する2進小数点を整合させ、2つの数を加算し、その
結果を浮動小数点数に正規化し、その結果を出力するこ
とによって、浮動小数点数を累算していた。結果は、次
の入力数を回路に加算する為に入力にも帰還される。
極めて高速の計算機システムでは、システムのマスク・
クロックの1クロツク・サイクル以内の内に、浮動小数
点数を加算出来ることが望ましい。
上に述べた様な従来技術では、この様な特性を持つアキ
ュムレータ回路を設計することは、極めて費用がか\る
か、或いは事実上不可能である。
技術の進歩により、回路板レベルの製品の回路を現在で
は1個の集積回路チップに縮めることが可能になった。
回路の寸法を縮小したことにより、本質的に処理速度が
一層速くなる。然し、特殊用高速グラフィックス処理計
算機の様な成る場合には、更に高い速度が望ましい。従
って、この発明はパイプライン構成を用い、正規化が行
なわれる前に、加算回路の出力をアキュムレータ回路の
入力に帰還することにより、非常に高速動作が得られる
新規な回路の設計を提供する。この結果、精度が成る程
度失われるが、累算過程が目立って加速され、この為ク
ロック周波数を一層速くすることが出来ると共に、1ク
ロツク・サイクルで累算が出来る。多くの場合、精度の
低下は無視し得るか許容し得るものであり、一層高い速
度での動作という利点がこういう低下を補って余りある
従って、この発明の目的は、正規化されていない帰還ル
ープを持つ高速の単一クロック・サイクルのパイプライ
ン形浮動小数点アキュムレータを提供することである。
発明の要約 この発明は全般的にパイプライン構成を持つ浮動小数点
アキュムレータ集積回路と云うことが出来、(好ましい
実施例で32ビツトの浮動小数点数を用いる時)パイプ
ラインの待ち時間は400ナノ秒であり、10M1lz
のクロックに対しスルーブツトが100ナノ秒である。
一般的に云うと、この発明のパイプライン構成は互いに
関係を持つ5つの部分として説明することが出来る。即
ち、入力部分、指数比較及び2の補数部分、累算部分、
正規化部分及び出力部分である。
入力部分はラッチ、多重化器及び入力レジスタで構成さ
れる。時間多重化形式でデータがチップに入る時だけ、
ラッチが使われる。次の部分で使う為に、データ及び制
御信号が入力レジスタに貯蔵される。指数比較及び2の
補数部分を使って、累算部分に於ける加算を行なうこと
が出来る様に、2進小数点を整合させる為に、入力浮動
小数点数の仮数又は累算されている数の仮数のどちらを
シフトしなければならないかを決定する。この部分の2
の補数部分が、仮数を符号つきの大きさを持つ数から2
の補数の数に変換し、累算部分に於ける加算を簡単にす
る。この部分の終りにあるレジスタが2の補数の仮数、
シフト争コード、どの仮数の方が小さいか(従って、シ
フトさせなければならないか)を示す成る制御信号、及
び一番大きい指数(これは次の指数の比較の為にこの部
分に帰還される)を貯蔵する。
累積部分が指数比較及び2の補数部分からの入力及びア
キュムレータ・レジスタからの帰還を受取る。(前の部
分で決定された)小さい方の指数に対応する仮数を右シ
フト装置に供給し、計算されたシフト・コードによって
決定された通りにシフトさせる。その後、シフト済みの
仮数及びシフトしていない仮数を加算する。加算される
2つの数のオーバフローを正しく考慮に入れて、出力が
アキュムレータ・レジスタに貯蔵される。指数比較部分
で決定された一番大きい指数を変更せずに累算部分に通
過させると共に、レジスタに貯蔵する。
正規化部分が累算部分の2の補数の仮数を符号つき大き
さの形式に変換する。アキュムレータ・レジスタにオー
バフローの表示が出た場合、一番大きい指数を1だけ増
加する。符号、指数及び仮数を組合せて浮動小数点数と
する。指数のオーバフロー又はアンダーフローが起った
場合、この部分がその状態を検出し、この部分の出力を
負又は正の無限大(オーバフローの場合)又はO(アン
ダーフローの場合)に設定する。この部分から出て来る
数が出力レジスタに貯蔵される。
出力部分が前の正規化部分の結果を貯蔵し、出力信号線
を駆動する。
この発明は、23ビツトの仮数、8ビツトの指数及び符
号ビットで構成されたI EEEが提案する標準浮動小
数点数形式を用いる。この形式では、2進小数点はビッ
ト位置22及び23の間にあるという了解になっている
。浮動小数点数は次の内の1つの方法で表わされる。
1、指数がゼロ以外であれば 数−[(−1)(符号)   (指数−127)×2 ×(1,データ)] 2)指数がゼロであるが、データがゼロでない(正規化
解除された数であることを示す)場合、数−[(−1)
  (符号)    (−127>×2 ×(O,データ)コ 3、指数及びデータの両方がゼロである場合数−0,0 4、指数がFF16であり、仮数がゼロであれば、数は
(+又は−)無限大とみなされる。
5、数がF F ieであり、係数がゼロ以外であれば
、数は数ではないとみなされる。
この発明の回路を簡単にする為に、正規化解除された数
を強制的にゼロにし、F F teの指数を持つ任意の
数を符号ビットに応じて、(+又は−)無限大とする。
この発明のアキュムレータ回路は、結果が浮動小数点数
系の何れかの境界を越えなれば、誤差なしにn個の正の
数を加算する。累算された合計に負の数が加算される時
、回路の速度を高める為に行なわれる次の近似の為に、
成る程度の誤差が生ずる。
1、数は、チップを出る前にだけ正規化され゛る。
累算の間は、数を正規化しない。
26設計には丸め回路が含まれていない。
3、負の数は、2の補数動作ではなく、1の補数動作に
より、符号つきの大きさの形式に逆に変換する。
内部では、仮数は25ビツト(23ビツトの入力データ
、見えないビット及び必要な時のガード・ビット)まで
通す。指数は正規化部分まで9ビツトの精度で通す。正
規化部分でアンダーフローの検出の為に別のビットが追
加される。
圧旦と星舅 第2a図及び第2b図はこの発明の回路の詳しいブロッ
ク図である。この発明の好ましい実施例の回路では、最
終的な利用者の便宜の為に、余分の回路が付は加えであ
る。こういう回路があることを、この発明の制約と解し
てはならない。
この発明の集積回路形式では、49個の入力と34個の
出力がある。49個の出力の内、32個の入力はデータ
用である。32個の出力の内、希望によって、16個は
無視することが出来、32ビツトのデータを残りの16
個の入力から時間多重化形式で入力することが出来る。
残りの17個の入力は制御信号、クロック信号、ストロ
ーブ信号及び試験データに対する出力レジスタへの直列
入力の為のものである。34個の出力が32ビツトのデ
ータ出力(即ち、浮動小数点数)、試験用の走査レジス
タからの直列出力、及び1つの制御信号を含む。
回路の入力部分に対する制御信号の中には、次に述べる
ものがある。
第1項フラグ(FTO)・・・これは累算の第1項であ
ることを示す。論理1がアキュムレータ回路を初期設定
する。
BYPASSO・・・これを第1項フラグと共に使う時
、回路に対するデータ入力は変更されずに回路を通過し
、クロック入力してから3クロツク・サイクル後に、回
路の出力に現われる。
符号変更(CH3L ng)・・・これは累算されてい
る数から入力数を減算する為に使われ、回路に入力の仮
数の符号を変更させる。
動作なしくN0OPO)・・・これは回路に対するデー
タ入力が無効であり、累算してはならないことを示す。
HOLD IN・・・これは次の動作用のデータとして
、入力データを入力レジスタに保持させる。
HOLDOUT・・・これは出力レジスタに出力データ
を保持する。回路はデータの累算を続けるが、回路から
の出力信号は変化しない。
多重化選択(MULTPX)・・・これは時間多重化入
力モードを選ぶ為に使われる。
アキュムレータ回路の入力部分が、ラッチ1、多重化器
2)入力レジスタ3及び入力アンド・ゲート4で構成さ
れる。入力部分に対する入力信号線が、第1組のデータ
線5に対する入力データの最上位の16ビツト(即ち、
浮動小数点数)と、第2組のデータ線6に対する最下位
の16ビツトで構成される。多重化制御線(MULTP
X)7を用いて、1個のクロック・サイクルの間、デー
タ入力を16ビツトの時間多重化形式で受取るか、或い
は32個の入力信号として受取るかを決定する。多重化
信号線7が作動された場合、ストローブ信号の立下りで
、最下位の16データ・ビットがラッチ1にラッチされ
る。クロック及びストローブ信号は、普通の多重化形式
で同じ信号に外部で結合することが出来るから、これは
使い方を簡単にする。一旦最下位の16ビツトがラッチ
されると、最上位の16データ・ビットが第2組の信号
線6から入力レジスタ3に直接的に入り、この間ラッチ
1の出力が、多重化器2を介して入力レジスタ3に同時
に入力される。非多重化装置では、最上位の16ビツト
が第1組の信号線5を介して多重化器2から入力レジス
タ3に入力されると同時に、最下位の16ビツトが第2
組の信号線6から入力レジスタ3に入力される。後に述
べた場合、ラッチ1を使わない。
ラッチ1及び多重化器2の目的は、累算すべき浮動小数
点数を構成する32個のデータ・ビット全部を単に入力
レジスタ3に貯蔵することである。
入力レジスタ3のクロック入力の前にある入力アンド・
ゲート4が、このレジスタのクロック動作を左右する。
動作なし信号(NOOPO)線8及びHOLDINI信
号線9の論理状態が、入力レジスタ3に対するクロック
信号の伝達を制御する。HOLDINI信号はHOLD
INO信号と同一であるが、パイプライン1段分だけ遅
延している。
回路に対する残りの入力信号が、動作なし信号線8及び
HOLDINI信号線9が作動されて、入力アンド・ゲ
ート4を介してクロック信号を伝達することが出来る様
にした場合、後で回路で使う為に、入力レジスタ3にラ
ッチされる。
回路の2番目の部分が指数比較及び2の補数回路である
。この部分に対する入力が入力レジスタ3からのデータ
及び制御信号を含む。入力レジスタ3からの現在の入力
数が累算の第1項でない限り、この部分に対する追加の
入力は、最大の指数項(LGECP2)及びオーバフロ
ー信号(OFLW2)であり、これが次の部分、即ち累
算部分から帰還される。第2の部分の出力が新しい最大
の指数、計算されたシフト・コード、クリア可能な多重
化器制御信号及び2の補数の仮数である。
累算部分がシフト・コードを用いて、新しい仮数及び累
算されているデータの彼加数の2進小数点を揃える。(
勿論、現在の入力数が累算の第1項でなければである。
) 指数の比較は、計算中の最大の指数と、入力レジスタ3
からの現在の入力浮動小数点数の指数の間の差である。
実質的に、回路は、一連の累算の中の最初の入力数以降
に出合う最大の指数を追跡しておく必要がある。
第1項フラグ制御信号FTOが作用している場合、入力
浮動小数点数の扱いが若干具なる。入力浮動小数点数が
一連の累算の第1項である場合、これは自動的に最大の
指数を持つとみなされ、その指数が指数比較回路を変更
なしに次の部分へ通過する。この場合、シフト・コード
がゼロに設定され、累算信号に使われる制御信号がセッ
トされて、それまでに累算されていた値をクリアする。
入力数が一連の累算の第1項であるかどうかに関係なく
、この部分は最初に、入力数がゼロに相当するかどうか
を、試験ノア・ゲート20によって調べる様に計算する
。アキュムレータ回路が正規化解除された数を強制的に
ゼロにするから、ゼロ試験の計算は、入力数の指数の8
ピツ)・だけを検査すればよい。指数ビットが全部ゼロ
であれば、ZEROI信号が発生され、BYPASS信
号が作用していなければ、入力がゼロであることを知ら
せる。ZEROI信号の目的は、入力数の全てのビット
(符号、指数及び仮数)をゼロに設定することである。
ZEROI信号がBYPASS信号と共に、出力指数の
符号の計算を制御する為に使われる。回路全体を側路す
る場合、入力数の符号はどんな状況の下でも変更するこ
とが出来ない。符号アンド・ゲート22の出力(SIG
NI)が、ZERO1信号によって強制的にゼロにされ
ていなければ、指数の符号を示し、回路を側路する場合
は、BYPASS信号によって示された通りに示す。符
号変更信号(CH3i gn)も、正の数又は負の数を
表示する為に、SIGNI信号をセットするかどうかを
制御する。
入力浮動小数点数の仮数が符号つきの大きさを表わし、
累算部分の加算器が2の補数の形で表わされた数に作用
するから、SIGNI信号は、2の補数回路素子23に
よって、仮数に負の符号をつけて1だけ増数する(即ち
2の補数の形に変換する)べきであるかどうかをも決定
する。入力の仮数が負である場合、仮数は補数回路素子
23によって、2の補数の形に変換しなければならない
入力レジスタ3に一時的に貯蔵されている入力数の仮数
は、2の補数回路素子23に入る前に、最上位ビット位
置に論理1を入れて、I EEEが提唱する32ビット
浮動小数点数の基準に固有の含意「1」を置き換える。
入力の指数とそれまでの最大の指数との比較が比較器2
4で行なわれる。比較器24の出力がそれまでの最大の
指数と現在の入力数の指数の間の差である。比較器24
の出力が(差の符号ビットDIFF (9)で判断して
)負であるか、又は入力数が一連の累算の第1項である
場合、第1の9ビット多重化器25及び第2の9ビット
多重化器26が直ちにセットされて、入力数の指数を最
大の指数として通過させる。こういう2つの場合、入力
数の指数は常に和の最大の指数である。
入力数が第1項でなく、指数比較器24の出力が負でな
い場合、それまでの最大の指数(LGEXP2)が第1
の多重化器25の出力として選ばれる。第2の多重化器
26の出力が、オーバフロー信号(OFLW2)27の
値に基づいて、可能性のある2つの入力から選択される
。オーバフロー信号が作動されている(前のクロック・
サイクルに於ける仮数の和がオーバフロー信号を生じた
ことを示す)場合、最大の指数を1だけ増加しなければ
ならない。これが加算回路28によって行なわれる。こ
の場合、第2の多重化器26の出力が加算回路2Bから
選ばれる。そうでなければ、第1の多重化器25の直接
出力選択される。第2の多重化器26の出力は新しい「
最大の指数」(LGEXPl)で構成され、これが中間
レジスタ29に貯蔵される。
次の最大の指数の決定と平行して、2つの彼加数の2進
小数点を整合させる為に累算部分で使われるシフト・コ
ードが計算される。指数比較器24の出力は、次の部分
にあるアキュムレータ・レジスタに貯蔵されている数の
2進小数点から、入力数の2進小数点が(ビット位置で
数えて)どれだけ右にあるかを表わす。この差は、その
2進小数点を一層大きい数の2進小数点と整合させる為
に、小さい方の数の仮数を何回シフトしなければならな
いかを表わす。今説明している実施例では、右シフト回
路だけを用い、こうして全体的な回路を簡単にしている
。右シフト回路だけを使っているから、指数比較器24
の出力が負である場合、入力数の仮数をシフトする代り
に、累算されている数の仮数をシフトして、その2進小
数点が入力数の2進小数点と整合する様にする。
シフト・コードは、指数比較器24で比較される指数の
間の差の大きさに基づいている。今の実施例では、動作
を一層速くする為、指数比較器24の出力を2つの別々
の回路に送り、平行した計算を行なうことが出来る様に
する。第1の回路は基本的には加算器30であり、これ
が指数比較器24の出力に1を加算する。比較器24に
対する指数入力の間の差が正であれば、加算器30の出
力は単に差に1を加えたものである。差が負であれば、
1を加算することにより、実質的に加算器30からは差
の1の補数が出力される。
加算器30の出力がCLRB信号であり、加算器30の
出力が24より大きい場合、この信号が作動される。数
24の意味は、比較される2つの指数の間の差が24よ
り大きい場合、その2進小数点を大きい方の数の2進小
数点と整合させる為に小さい方の仮数(これは好ましい
実施例では24ビツトで構成される)をシフトすると、
小さい方の数が完全にバーレル・シフト装置から外ヘシ
フトしてしまい、この為小さい方の数が大体ゼロに等し
くなるからである。これは、大きい方の数が小さい方の
数より2進桁数で24桁大きいことを意味するから、こ
の近似は許容し得る。従って、回路は、CLRB信号を
作動することにより、小さい方の数をゼロにクリアする
指数比較器24の出力が条件つき補数回路31にも送ら
れる。この回路は、差が正であれば、差を変更なしに通
過させるが、差が負であれば、差の2の補数を出力する
。加算器30と同じく、条件つき補数回路31がCLR
A信号を持ち、その出力が24より大きい場合に、この
信号が作動される。
加算器30及び条件つき補数回路31の両方の出力が、
6ビツトのクリア可能な多重化回路32に送られる。多
重化器32から出力する為に選択される入力は、オーバ
フロー信号0FLW2に基づいて選ばれる。オーバフロ
ーが起らなければ、条件つき補数回路31の出力が、ク
リア可能な多重化器32によって選択される。この場合
、指数の差が正であれば、差がシフト・コードになる。
指数の差が負であれば、シフト・コードは差の2の補数
である。(右シフト装置だけを用いているから、負の差
の補数を求めて、それを正の数に変換する。) 前のクロック・サイクルの間に加算された仮数のオーバ
フローが起った場合、加算器30の出力がクリア可能な
多重化器32によって選択される。
この場合、指数の差が正であれば、指数に“1”が加算
されて、シフト・コードとし、これが右シフト装置に仮
数の和の更に1つのビット位置(オーバフロー・ビット
位置)を勘定に入れる様にする。差が負であれば、シフ
ト・コードは差の1の補数である。
クリア可能な多重化器32の出力のシフト・コードが次
の部分に対する中間レジスタ29に貯蔵される。クリア
可能な多重化器32のシフト・コード出力は、第1項信
号FTIが作用していれば、ゼロにクリアすることが出
来る。
CLRA又はCL、RB倍信号、加算器30及び条件つ
き補数回路31からの5ビツト入力の選択と同時にも、
クリア可能な多重化回路32によって選択され、今度は
“CLRC”と記す出力信号を形成する。クリア可能な
多重化器32のCLRC出力は、ZEROI信号が作用
していれば、ゼロに設定される。CLRC信号が2つの
アンド・ゲート33.34を介して、差符号信号(D 
I FF(9))及び第1項フラグ信号(FTI)と組
合され、MUXCLRI信号を形成する。MUXCLR
I信号は、累算部分にあって、指数が小さい方の仮数(
並びに第1項入力データに関連する仮数)を選択して、
これらの信号をシフト回路へ通過させる多重化器をクリ
アする為に使われる。
MUXCLRI信号は、CLRC信号が作用していて、
指数の差が正であるか、或いは入力レジスタ3に入力さ
れる数が一連の累算の第1項である場合にだけ、作動さ
れる。最初の場合、指数の差が正であってCLRC信号
が作用していれば、これはそれまでの最大の指数が入力
数の指数より十分大きく、シフト回路が新しい数を完全
にシフトして出してしまうことを意味し、従って新しい
数がゼロにクリアされる。2番目の場合、第1項フラグ
信号FTIが作用してCLRC信号が作用している時、
アキュムレータ・レジスタ40にある項はゼロとみなさ
れ、クリアしなければならない。指数比較器24の差符
号信号(DIFF(9))と第1項フラグ信号FTIの
組合せ(アンド・ゲート33によって形成される)によ
って形成された信号を使って、累算部分の多重化器を制
御する。このMUXSELI信号は、第1項信号FT1
が作動されている場合は常に不作動にされ、そうでない
時は指数の差の符号ビットと同じである。
このことによって、累算部分で、第1項の入力数又は他
の全ての場合は指数が小さい方の数が常にバーレル・シ
フト装置に行くことが保証される。
中間レジスタ29に貯蔵されるこの他の信号は、BiP
ASS信号、第1 項(W号FT1、入力符号信号lN
5IGNI及び動作なし信号N0OPIである。
回路の次の部分は累算部分である。この部分に対する入
力は、指数比較及び2の補数部分から中間レジスタ29
に貯蔵された信号である。更に、この部分に対する1つ
の入力が、アキュムレータ・レジスタ40から帰還され
たそれより前の入力数の累算和である。この部分の出力
が正規化解除した累算仮数、累算数の新しい符号(NS
IGN2)、累算の最大指数(LGEXP2)及びオー
バフロー信号(OFLW2)である。アキュムレータ・
レジスタ40にはBYPASS信号及び入力符号信号(
INS IGN2)も貯蔵される。
第1の25ビット多重化器41及び第2の25ビット多
重化器42を使って、2つの被加数(前の部分からの仮
数及びアキュムレータ争レジスタ40からの累算仮数)
がたどる通路を選択することである。前の部分からのM
UXSEL2信号を多重化器41.42の両方に対する
選択信号として使う。MUXSEL2信号が作用してい
なければ、新しい数の仮数が第1の多重化器41を通過
し、累算数の仮数が第2の多重化器42を通過する。第
1項信号FT2が作用している場合、又は新しい数の指
数が累算されている最大の指数より小さい場合、何時で
もこうなる。他の全ての場合、2つの多重化器41.4
2を通るデータの流れは逆になる。
第1項信号FT2が作動されると、第2の多重化器42
にある全ての累算データがクリアされ、この為この多重
化器からの出力は全部ゼロになる。
この結果、新しい入力数がゼロに加算される。同様に、
第1の多重化器41の出力は、MUXCLR2信号が作
用している場合はクリアされ、累算データがゼロに加算
される。
第1の多重化器41の出力が25ビット右シフト回路4
3に結合される。前の部分からのシフト・コードが、右
シフト回路43に対する入力数をシフトする回数を制御
する。入力数が右シフトする時、最上位ビット(符号ビ
ット)の値を使って、シフトした数の高い方のビット位
置を埋め、その2の補数というデータ表示を保存する。
シフI・回路43及び第2の多重化器42の両方の出力
が、26ビツト加算回路44に対する入力として結合さ
れる。この加算回路の内部で、2つの入力数が、各々の
数の符号ビットを繰返すことによって、25ビツトから
26ビツトに長くされ、結果の符号が考えられるあらゆ
る被加数に対して有効となる様に保証する。ビット26
は常に和に対する正しい符号になる。26ビツト加算器
44の出力は、2つの入力数の和、ビット25がビット
26と異なる場合に発生されるオーバフロー信号0FL
W2)及び新しい符号信号(NSIGN2)で構成され
る。26ビツト加算器44の25ビツト出力が24ビッ
ト多重化器45に結合され、多重化器45の“A”入力
が和のビット0乃至23で構成され、多重化器45の“
B#大入力ビット1乃至24で構成される様にする。オ
ーバフローが起らなければ、24ビット多重化器45の
“A“入力が累算和として出力される。オーバフロー信
号が出ている場合、この信号が多重化器44の“B”入
力を選んで出力する。(最下位ビットは無視する。) 前の部分から得られる最大の指数の値、26ビツト加算
器44からの新しい符号信号N5IGN2)オーバフロ
ー信号0FLW2)及び累算仮数が全て次のパイプライ
ン段に対するアキュムレータ・レジスタ40に貯蔵され
る。オーバフロー信号0FLW2は前のパイプライン部
分(指数比較及び2の補数部分)にも直ちに帰還される
アキュムレーターレジスタ40に対するクロックが動作
なし信号N0OP2によってアンド・ゲート46を通じ
て制御され、この信号が作用する時、アキュムレータ・
レジスタ40の変化を防止する。
この発明の回路の次の部分は正規化部分である。
この部分に対する入力は、アキュムレータ・レジスタ4
0の出力である。正規化部分の目的は、累算和を浮動小
数点形式に変換することである。
アキュムレータ・レジスタ40に貯蔵された仮数の25
ビツトの内の24個が条件つき1の補数回路50(符号
ビットは使わない)に結合される。
更に、(符号ビットを含めた)仮数の25ビット全部が
、第1の多重化器41及び第2の多重化器42に対する
入力として、前の累算部分に帰還される。
アキュムレータ40からの新しい符号信号N5IGN3
が、条件つき1の補数回路50にある仮数が変更されず
に通過するか(正の数の場合)又は仮数のことごとくの
ビットを反転して1の補数の表示を形成するか(仮数が
負の場合)を決定する。(理想的には、仮数の2の補数
を求めるべきであるが、現在の技術に於ける時間の拘束
の為、1の補数回路を使っている。) 条件つき1の補数回路50の出力が優先順位符号化器5
1及び左シフト装置52に結合される。
左シフト装置52が優先順位符号化器51によって作動
される。優先順位符号化器51は、条件つき1の補数回
路50の出力にある先頭のゼロに数に等しいシフト−コ
ードを決定する。優先順位符号化器52に対する入力の
全てのビットがゼロであって、ゼロの結果を表わす場合
、特別の信号ZERO3が作動される。優先順位符号化
器51によって決定されたシフト・コードが左シフト装
置52に結合され、これが1の補数回路50の出力をシ
フト・コード分だけ左にシフトさせる。0が最下位ビッ
ト位置にシフトして入る。この為、左シフト装置52の
出力は、初めにアキュムレーターレジスタ40に貯蔵さ
れていた仮数を正規化した形になる。左シフト装置52
に対する入力の先頭の全部のゼロがシフトして出てしま
うので、左シフト装置52の出力の最上位ビットは、「
1」になる筈であるが、これが浮動小数点数表示の含意
の「1」として扱われ、捨てられる。然し、符号ビット
が左シフト装置52の出力と併合されて、累算和に対す
る最終的な正規化した仮数を形成する。この符号ビット
が、回路が側路モードにない場合は、累算部分で計算さ
れた新しい符号信号N5IGN3であり、その他の場合
は、側路モードが作用している場合、回路の初めの入力
数の入力符号lN5IGN3である。後に述べた場合、
本質的に符号は回路の全てのレジスタ遅延装置を通過し
た元の入力の符号と同じである。2つの符号のどちらが
選択されるかは、1ビット多重化器53の動作を制御す
るBYPASS信号によって決定される。この多重化器
の2つの入力が累算部分で発生された新しい符号信号と
初めの入力の符号である。
優先順位符号化器51によって発生されたシフト・コー
ドは出力の指数を計算する為にも使われる。最初に、ア
キュムレータ・レジスタ40に貯蔵されている一番大き
い指数LGEXP3が加算回路54に結合され、オーバ
フロー信号0FLW3と加算される。オーバフロー信号
が作用している場合、実効的にこれによって最大の指数
が1だけ増加する。次に、加算器54の出力を減算回路
55の入力に結合する。この減算回路が新しい最大の指
数から、優先順位符号化器51によって発生されたシフ
ト・コードを減算し、こうして正規化後の仮数の2進小
数点のシフトを勘定に入れて、指数を調節する。その後
、減算回路55の出力が左シフト装置52及び1ビット
多重化器53の出力と併合され、回路が累算した完全な
浮動小数点数を形成する。この完全な数が、32ビット
多重化器56の入力に結合される。この多重化器に対す
る他方の入力は、装置の限界を表わす予定の信号で構成
される。32ビット多重化器56の出力を累算浮動小数
点数として、又はプラス或いはマイナス無限大の表示と
して又はゼロとして選択する「クランプ」信号が発生さ
れる。クランプ信号は、オア・ゲート59によって発生
されるが、優先順位符号化器51からのZERO3信号
が作用している場合、又は計算された指数が許容し得る
最大の指数より大きい場合、又は指数が負である場合、
又は指数ビットが全部0又は全部1であるが、回路は側
路モードにない場合に、作用する。
全ての場合に、32ビット多重化器56のrBJ入力に
対する仮数は常に0に設定される。クランプ信号の値を
持つ指数は、累算数の指数が負である場合、優先順位符
号化器51からのZERO3信号が作用している場合、
又は指数ビットが全部0である場合は、0である。クラ
ンプ信号の他の全ての場合、クランプ信号の値に対する
指数ビットは1に設定される。クランプ信号の符号は、
指数ビットが全部0であれば0であり、そうでなければ
符号はアキュムレータ・レジスタ40からの新しい符号
信号N5IGN3の値に等しい。
32ビット多重化器56の出力が出力レジスタ60に結
合される。これが全体的な回路の出力になっている。出
力レジスタ60に対するクロックか、動作なし信号N0
OP3及びHOLDOUT信号により、アンド・ゲート
61を通じて制御される。この何れかの信号が作動され
ている場合、出力レジスタ60に対する入力が不作動に
なり、回路全体の出力は変わらない。
この発明を好ましい実施例について説明したが、以上の
説明がこの発明を制約するものであると解してはならな
い。これまでの説明から、当業者には、この発明の好ま
しい実施例の種々の変更並びにその他の実施例が容易に
考えられよう。例えば、この発明の基本回路は非パイプ
ライン形の構成に容易に改造することが出来る。従って
、特許請求の範囲は、この発明の範囲内に属するこの様
な全ての変更を包括するものであることを承知されたい
【図面の簡単な説明】
第1図は従来のアキュムレータの構成を示すブロック図
、 第2a図及び第2b図はこの発明のアキュムレータ回路
の詳しいブロック図である。 主な符号の説明 3:入力レジスタ 24:比較器 29:中間レジスタ 32:クリア可能な多重化器 40:アキュムレータ・レジスタ 51:優先順位符号化器 52:左シフト装置 60:出力レジスタ

Claims (1)

  1. 【特許請求の範囲】 1)夫々符号、指数及び仮数で構成された多数の浮動小
    数点数を合算するパイプライン構成の浮動小数点数アキ
    ュムレータ回路に於て、 入力の浮動小数点数を受取って一時的に貯蔵する入力部
    分と、 該入力部分並びに中間レジスタの出力に結合されていて
    、入力数の指数並びに回路に前に累算された数値結果の
    指数の内の大きい方を表わすシフト・コードを決定する
    と共に、大きい方の指数及びシフト・コードを中間レジ
    スタに一時的に貯蔵する指数比較部分と、 該指数比較部分及びアキュムレータ・レジスタの出力に
    結合されていて、入力数並びに前に累算されている正規
    化されていない数値結果の内の小さい方の仮数をシフト
    ・コード分だけシフトして、両方の数の2進小数点を整
    合させると共に、整合させた2つの数を加算し、正規化
    されていない数値結果をアキュムレータ・レジスタに累
    算する累算部分と、 前記アキュムレータ・レジスタに結合されていて、累算
    部分の数値結果を正規化された浮動小数点数の形に変換
    する正規化部分と、 該正規化部分の出力に結合されていて、正規化された結
    果を出力レジスタに一時的に貯蔵すると共に、正規化さ
    れた結果を回路から出力する出力部分とを有するパイプ
    ライン構成の浮動小数点数アキュムレータ回路。 2)特許請求の範囲1)に記載したパイプライン構成の
    浮動小数点数アキュムレータ回路に於て、前記指数比較
    部分が、入力数が負である場合、入力の仮数の2の補数
    を計算する条件つき2の補数回路を含んでいるパイプラ
    イン構成の浮動小数点数アキュムレータ回路。 3)特許請求の範囲2)に記載したパイプライン構成の
    浮動小数点数アキュムレータ回路に於て、前記正規化部
    分が正規化されていない数値結果を正規化された形に変
    換する手段を含み、該手段は、結果が負である場合、数
    値結果の仮数の補数を計算する条件つきの補数回路と、 先頭の全てのゼロ・ビットがなくなるまで、結果の仮数
    をシフトする回路手段と、 ゼロを除くシフト回数だけ、数値結果の指数を調節する
    指数調節手段とで構成されているパイプライン構成の浮
    動小数点数アキュムレータ回路。 4)特許請求の範囲1)に記載したパイプライン構成の
    浮動小数点数アキュムレータ回路に於て、前記正規化部
    分が正規化されていない数値結果を正規形に変換する手
    段を含み、該手段は、 先頭の全てのゼロ・ビットがなくなるまで、結果の仮数
    をシフトする回路手段と、 ゼロを除くシフト回数だけ、数値結果の指数を調節する
    指数調節手段とで構成されているパイプライン構成の浮
    動小数点数アキュムレータ回路。 5)特許請求の範囲1)に記載したパイプライン構成の
    浮動小数点数アキュムレータ回路に於て、前記入力部分
    が時間多重化した順序で入力数の部分を受取る回路手段
    を含んでいるパイプライン構成の浮動小数点数アキュム
    レータ回路。 6)特許請求の範囲1)に記載したパイプライン構成の
    浮動小数点数アキュムレータ回路に於て、前記指数比較
    部分が累算部分からの和がオーバフローした場合、シフ
    ト・コードを調節する回路手段を含んでいるパイプライ
    ン構成の浮動小数点数アキュムレータ回路。 7)夫々符号、指数及び仮数で構成された多数の浮動小
    数点数を合算するパイプライン構成の浮動小数点数アキ
    ュムレータ回路に於て、 入力の浮動小数点数を受取って一時的に貯蔵する入力部
    分と、 該入力部分並びに中間レジスタの出力に結合されていて
    、前記入力数及び回路にそれまでに累算されている数値
    結果の指数の内の大きい方を表わすシフト・コードを決
    定し、入力数が負である場合、入力数の仮数の2の補数
    を計算し、その結果得られた仮数、大きい方の指数、及
    びシフト・コードを中間レジスタに一時的に貯蔵する指
    数比較及び2の補数部分と、 該指数比較部分及びアキュムレータ・レジスタの出力に
    結合されていて、前記入力数及びそれまでに累算されて
    いる正規化されていない数値結果の内の小さい方の仮数
    をシフト・コード分だけシフトして、両方の数の2進小
    数点を整合させると共に、整合させた2つの数を加算し
    て、正規化されていない数値結果をアキュムレータ・レ
    ジスタに累算する累算部分と、 前記アキュムレータ・レジスタに結合されていて、累算
    部分の数値結果を正規化された浮動小数点数の形に変換
    し、この為に、結果が負である場合、数値結果の仮数の
    補数を計算する条件つき補数回路、先頭の全てのゼロ・
    ビットがなくなるまで、結果の仮数をシフトする回路手
    段、及びゼロを除くシフト回数だけ、数値結果の指数を
    調節する指数調節手段で構成されている正規化部分と、
    該正規化部分の出力に結合されていて、正規化された結
    果を出力レジスタに一時的に貯蔵すると共に、正規化さ
    れた結果を回路から出力する出力部分とを有するパイプ
    ライン構成の浮動小数点数アキュムレータ回路。 8)特許請求の範囲7)に記載したパイプライン構成の
    浮動小数点数アキュムレータ回路に於て、前記入力部分
    が時間多重化された順序で入力数の各部分を受取る回路
    手段を含んでいるパイプライン構成の浮動小数点数アキ
    ュムレータ回路。 9)特許請求の範囲7)に記載したパイプライン構成の
    浮動小数点数アキュムレータ回路に於て、前記指数比較
    部分が前記累算部分からの和がオーバフローした場合、
    シフト・コードを調節する回路手段を含んでいる浮動小
    数点数アキュムレータ回路。 10)夫々符号、指数及び仮数で構成された多数の浮動
    小数点数を合算する浮動小数点数アキュムレータ回路に
    於て、 入力浮動小数点数を受取る入力部分と、 該入力部分の出力並びに次に続く累算部分に結合されて
    いて、前記入力数の指数及びそれまでに回路に累算され
    ている数値結果の指数の内の大きい方を表わすシフト・
    コードを決定する指数比較部分と、 該指数比較部分及びアキュムレータ・レジスタの出力に
    結合されていて、前記入力数及びそれまでに累算されて
    いる正規化されていない数値結果の内の小さい方の仮数
    をシフト・コード分だけシフトして、両方の数の2進小
    数点を整合させ、整合させた2つの数を加算して正規化
    されていない数値結果をアキュムレータ・レジスタに累
    算する累算部分と、 前記アキュムレータ・レジスタに結合されていて、前記
    累算部分の数値結果を正規化された浮動小数点数の形に
    変換する正規化部分と、 該正規化部分の出力に結合されていて、正規化された結
    果を回路から出力する出力部分とを有する浮動小数点数
    アキュムレータ回路。
JP62004235A 1986-01-13 1987-01-13 パイプライン構成の浮動小数点数アキユムレ−タ回路 Pending JPS62196767A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/818,284 US4825400A (en) 1986-01-13 1986-01-13 Floating point accumulator circuit
US818284 1986-01-13

Publications (1)

Publication Number Publication Date
JPS62196767A true JPS62196767A (ja) 1987-08-31

Family

ID=25225150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62004235A Pending JPS62196767A (ja) 1986-01-13 1987-01-13 パイプライン構成の浮動小数点数アキユムレ−タ回路

Country Status (4)

Country Link
US (1) US4825400A (ja)
JP (1) JPS62196767A (ja)
DE (1) DE3700323A1 (ja)
GB (1) GB2185338B (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4999802A (en) * 1989-01-13 1991-03-12 International Business Machines Corporation Floating point arithmetic two cycle data flow
US5212662A (en) * 1989-01-13 1993-05-18 International Business Machines Corporation Floating point arithmetic two cycle data flow
JPH03136166A (ja) * 1989-10-23 1991-06-10 Nec Corp 演算回路
US5590365A (en) * 1990-03-30 1996-12-31 Kabushiki Kaisha Toshiba Pipeline information processing circuit for floating point operations
US5058048A (en) * 1990-04-02 1991-10-15 Advanced Micro Devices, Inc. Normalizing pipelined floating point processing unit
US5481488A (en) * 1994-10-21 1996-01-02 United Microelectronics Corporation Block floating point mechanism for fast Fourier transform processor
US5940312A (en) * 1995-10-10 1999-08-17 Microunity Systems Engineering, Inc. Signed binary logarithm system
US5835389A (en) * 1996-04-22 1998-11-10 Samsung Electronics Company, Ltd. Calculating the absolute difference of two integer numbers in a single instruction cycle
US6243731B1 (en) * 1998-03-20 2001-06-05 Texas Instruments Incorporated Apparatus and method for extending register dynamic range
JP3600026B2 (ja) * 1998-08-12 2004-12-08 株式会社東芝 浮動小数点演算器
GB2396708B (en) 2002-12-05 2006-06-21 Micron Technology Inc Hybrid arithmetic logic unit
US7912887B2 (en) 2006-05-10 2011-03-22 Qualcomm Incorporated Mode-based multiply-add recoding for denormal operands
US8432403B2 (en) * 2008-12-15 2013-04-30 Leonovus Usa Inc. Media action script acceleration apparatus
US8487941B2 (en) * 2008-12-15 2013-07-16 Leonovus Usa Inc. Media action script acceleration apparatus
US20100149215A1 (en) * 2008-12-15 2010-06-17 Personal Web Systems, Inc. Media Action Script Acceleration Apparatus, System and Method
US8487942B2 (en) * 2008-12-15 2013-07-16 Leonovus Usa Inc. Media action script acceleration system
US9021000B2 (en) 2012-06-29 2015-04-28 International Business Machines Corporation High speed and low power circuit structure for barrel shifter
US9575725B1 (en) * 2014-03-18 2017-02-21 Altera Corporation Specialized processing block with embedded pipelined accumulator circuitry
US10175944B2 (en) 2017-04-12 2019-01-08 Intel Corporation Mixed-precision floating-point arithmetic circuitry in specialized processing blocks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5947643A (ja) * 1982-09-13 1984-03-17 Hitachi Ltd 演算処理方式

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3551665A (en) * 1966-09-13 1970-12-29 Ibm Floating point binary adder utilizing completely sequential hardware
US4054787A (en) * 1975-06-06 1977-10-18 The United States Of America As Represented By The Secretary Of The Navy Apparatus for computing an arithmetically accumulated sequence of numbers
JPS6022371B2 (ja) * 1980-08-18 1985-06-01 株式会社日立製作所 ディジタル微分解析機
JPS5776634A (en) * 1980-10-31 1982-05-13 Hitachi Ltd Digital signal processor
JPS59188740A (ja) * 1983-04-11 1984-10-26 Hitachi Ltd フロ−テイング加算器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5947643A (ja) * 1982-09-13 1984-03-17 Hitachi Ltd 演算処理方式

Also Published As

Publication number Publication date
US4825400A (en) 1989-04-25
DE3700323A1 (de) 1987-07-16
GB2185338A (en) 1987-07-15
GB8700365D0 (en) 1987-02-11
DE3700323C2 (ja) 1992-05-07
GB2185338B (en) 1989-10-18

Similar Documents

Publication Publication Date Title
JPS62196767A (ja) パイプライン構成の浮動小数点数アキユムレ−タ回路
JP2662196B2 (ja) 演算結果正規化方法及び装置
JP3076046B2 (ja) 例外検出回路
EP0483864B1 (en) Hardware arrangement for floating-point addition and subtraction
US6529928B1 (en) Floating-point adder performing floating-point and integer operations
US5272660A (en) Method and apparatus for performing integer and floating point division using a single SRT divider in a data processor
US8166092B2 (en) Arithmetic device for performing division or square root operation of floating point number and arithmetic method therefor
GB2228117A (en) Rounding logic for a floating-point adder
US5111421A (en) System for performing addition and subtraction of signed magnitude floating point binary numbers
EP0381403A2 (en) Pipelined floating point adder for digital computer
US20070050434A1 (en) Data processing apparatus and method for normalizing a data value
US7437400B2 (en) Data processing apparatus and method for performing floating point addition
US6889241B2 (en) Floating point adder
US6947962B2 (en) Overflow prediction algorithm and logic for high speed arithmetic units
US4999800A (en) Floating point adder with pre-shifter
US8180815B2 (en) Redundancy-free circuits for zero counters
Eldon et al. A floating point format for signal processing
US6571264B1 (en) Floating-point arithmetic device
US5408427A (en) Detection of exponent underflow and overflow in a floating point adder
KR920003493B1 (ko) 부동 소숫점 표기를 기초로 하는 연산회로
US20030140074A1 (en) Leading Zero Anticipatory (LZA) algorithm and logic for high speed arithmetic units
US6615228B1 (en) Selection based rounding system and method for floating point operations
US5754458A (en) Trailing bit anticipator
KR100223997B1 (ko) 부동소수점연산장치의 정규화회로장치
EP0831396A2 (en) Sticky bit determination in floating point arithmetic system