JPH0568725B2 - - Google Patents

Info

Publication number
JPH0568725B2
JPH0568725B2 JP62232744A JP23274487A JPH0568725B2 JP H0568725 B2 JPH0568725 B2 JP H0568725B2 JP 62232744 A JP62232744 A JP 62232744A JP 23274487 A JP23274487 A JP 23274487A JP H0568725 B2 JPH0568725 B2 JP H0568725B2
Authority
JP
Japan
Prior art keywords
remainder
sum
addends
adder
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP62232744A
Other languages
English (en)
Other versions
JPS63123125A (ja
Inventor
J Hartmut Bleher
Axel T Gerlicher
Siegfried M Rump
Dieter K Unkauf
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS63123125A publication Critical patent/JPS63123125A/ja
Publication of JPH0568725B2 publication Critical patent/JPH0568725B2/ja
Granted 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

Landscapes

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

Description

【発明の詳細な説明】
以下の順序で本発明を説明する。 A 産業上の利用分野 B 従来技術 C 発明が解決しようとする問題点 D 問題点を解決するための手段 E 実施例 F 発明の効果 A 産業上の利用分野 本発明は、浮動小数点数を加算するための回路
装置に関するものである。 B 従来技術 2つの浮動小数点数を加算するためには、その
両方の数の指数が等しくなるように、小さい方の
数が右側にシフトされなくてはならない。このと
き、オペランドの小さい方の部分のうち、この加
算の間に考慮されず、予定のワード長からシフ
ト・アウトされた後に剰余(remainder)と呼ば
れるような部分は、一般的には棄却されるかまた
は最下位の和の桁を丸めることによつて考慮され
る。このことは例えばIBMテクニカル・デイス
クロジヤ・ブルテイン(以下IBM TDBと呼ぶ)
1969年10月p.683及びIBM TDB 1984年、
pp.3138−3140に記載されている。 さて、いくつかの加数が例えばベクトル演算に
より順次加えられるとき、そのように丸められ、
あるいは棄却された剰余が相当な誤差につながる
ことがある。例えば小さいオペランドであつて
も、2つのほぼ同一の大きさのオペランドの減算
の場合にはこれらのオペランドは決定的である
が、一般的には比較的小さいオペランドを削除す
るのが普通である。実際上、このようにして得ら
れた和の結果は、加算または減算の任意のシーケ
ンスに依存する。 精度を改善するために、多数ワード長を使用す
ることや、浮動小数点数の和の仮数(mantissa)
をその最下位端において1桁だけ拡張することが
知られている。 欧州特許公開第79471号によれば、浮動小数点
オペランドの正確な和を求めることを可能ならし
める装置が開示されている。この装置は、通常の
指数範囲(例えば±63)において数百の位置をも
つきわめて長い(hyperlong)アキユムレータを
使用する。この装置においては、1つのアキユム
レータ・レジスタが各指数サブエリア毎に設けら
れているので、個々の加数が固定小数点記法によ
り加算される。こうして、もし指数が一致する
と、仮数の和が関連するアキユレータ・レジスタ
中に格納される。この装置に使用されている方法
は、莫大な数のキヤリー演算を必要とするが、キ
ヤリー演算はアキユムレータが長くなる程より困
難になる。そのようなキヤリー演算は数百もの位
置がある場合きわめて時間がかかる。ここに採用
されている固定小数点記法もまた、和を個々のア
キユムレータ・レジスタに一致させるために追加
的なシフト動作を必要とする。将来の計算の基準
となるようなきわめて大きい指数の場合、既知の
装置では異常に高額な出費なくしては実現し得な
いであろう。 浮動小数点数の和が近似が可能な限り正確であ
ることを保証するアルゴリズムは、“コンピユー
テイング(Computing)”、追補1、1979、pp.21
−32中のボーレンダー(Bohlender)による“浮
動小数点数を正確な和(Genaue Summation
von Gleitkommazahlen)”と題する論文に記載
されている。このアルゴリズムによれば、個々の
加算によつて生成された剰余が記憶される。そし
てすべてのオペランドが加算されてしまうと、そ
れらの剰余はきわめて多数の連続的なサイクル中
でオペランドの和に加えられる。ここで述べられ
ているアルゴリズムは、その和についての正確に
丸められた浮動小数点数を求めることを意図して
いる。しかし、この方法は、剰余のための多くの
記憶空間と、記憶された剰余が現存する和に加え
られる際のきわめて多数の演算を必要とするとい
う欠点がある。 C 発明が解決しようとする問題点 本発明の目的は、精巧な技術手段を要すること
なく浮動小数点の和の正確な結果が得られる装置
を提供することにある。 D 問題点を解決するための手段 本発明は、小さい方のオペランドの剰余を打ち
切る(truncation)ことと、正規化された浮動小
数点記法でその出力を与えることに基づく。これ
により、2つのオペランドの仮数和を得るために
使用されるのと同じ浮動小数点加算器段中で剰余
を処理し、この目的のために採用された手段を標
準化することが可能になり、このことは大規模半
導体集積回路に有利である。さらに、剰余は、即
刻処理され、そのことは時間の節約につながる。
本発明は現存するコンピユータ構造によく適合す
る。最近のコンピユータの標準として記述されて
いる例えば約±5000のきわめて大きい桁範囲に対
してすら、本発明はわずかの手段しか必要としな
い。というのは、指数範囲全体に対応して計算及
び記憶手段をそのまま設ける必要がなく、これら
の手段の厳密な数はむしろ解くべき実際の問題に
依存するからである。そして、記憶及び計算手段
は必要に応じて接続されるので、そのことは高度
の柔軟性をもたらす。また、本発明に従つて使用
される加算器は一定長の仮数を有し、以て高速キ
ヤリー演算を可能ならしめる。 本発明の並列演算は、パイプライン形式で直列
接続されるべき加算器段を用意し、入力オペラン
ドと、中間の和と、剰余に関連して同時にきわめ
て多数の加算演算を行うことができるので、多数
のオペランドの高速処理が可能となる。 本発明に基づく逐次演算は、単一の浮動小数点
加算器段をもつ簡単な装置の使用を可能ならしめ
る。和を表現するには、複数の記憶レジスタが必
要であり、その個数は、解くべき個別の問題に応
じて変化する。このように、現存する装置の再構
成も可能である。 E 実施例 本発明の方法を、2つの簡単な例を参照して以
下説明する。尚、簡単のため、4つの仮数桁をも
つ10進浮動小数点数が使用されるものと仮定す
る。 さて、1.234E3という表現においては、1.234が
仮数の数字列であり、それは定義によつて小数点
より前にゼロ以外の数字をもつと仮定されてい
る。E3は、小数点よりも前の位置が103という値
をもつことを示し、すなわち指数は3である。 (1) 5個の浮動小数点数の和 1.000E9+2.000E7+3.000E5+4.000E3+
5.000E1 これの厳密な和は、固定小数点記法への変換
によつて容易に求められる。 1000000000 20000000 300000 4000 + 50 厳密な和=1020304050=1.02030405E9 これは、4つの仮数桁の慣用的な浮動小数点
加算では、1.020E9となる。 すなわち、3.04050E5という剰余は、その結
果及び(もしあるなら)後の計算では考慮され
ない。 (2) 削除または消滅につながる6個の浮動小数点
数の加算: 1.000E9+ 2.000E7+ 3.000E3+ 4.000E3+ 5.00
0E1− 1.020E9 これの厳密な和もやはり固定小数点記法に変
換することによつて容易に求められる。 1000000000 + 20000000 + 300000 + 4000 + 50 −1020000000 厳密な和= 304050=3.0405E5 4つの仮数桁の慣用的な浮動小数点加算では
0.000となる。 このことは、上述の削除が個々の加数の任意
の順序に依存することを示す。というのは、数
とを交換すると、結果は3.040E5となり、
これは最初の(0.000)よりははるかに正確で
ある。しかし、どちらの場合も、加数5.000E1
は考慮されない。 従つて、個々の加数の任意の順序に依存しな
い正確な和の結果を求めることが重要である。 第1図は、この実施例で使用されるデータ・フ
オーマツトを示す。この64ビツトのデータ・フオ
ーマツトは、次のように関連づけられている。 ビツト0:仮数の符号Spもしこの符号ビツトが
“0”なら、仮数は正である。 ビツト1から7まで:仮数の指標CHpこの指標
CHは、仮数の指数に10進数64(16進数40)を
加えることによつて導出される。こうして、00
から40までの指標の16進値は、−64から0まで
の進指数に対応し、16進指標値41から7Fまで
の指標値が1から63までの正の指数に対応す
る。 以下で使用される仮数は、小数点の前にゼロを
もち、その小数点の後の最初の16進数はゼロであ
つてはならない。 本発明に基づく浮動小数点加算器段が、第2A
図及び第2B図からなる第2図に示されている。
この図において、角括弧内の数は個々のビツト位
置をあらわし、丸括弧内の数は個々のバス上のビ
ツト数をあらわす。尚この数が、スラツシユと数
であらわされている箇所もある。 この回路において、2つの加数A及びBが、そ
れぞれデータ・セレクタ手段(DS)4及び6に
供給される。この2つの数の指標CH A及びCH
Bが指標減算器2に供給され、その出力は、指標
の差とその差の符号をあらわす。もしCH A≧
CH Bなら、2つのDS4及び6が符号信号によ
つて、加数AがDS4によつて渡され、DS6によ
つて加数Bが渡されるように制御される。そうで
はないなら、2つの加数がDSによつてスワツプ
され、加数Bが第2A図の上方のバスに供給さ
れ、加数Aが下方のバスに供給される。このよう
にして、大きい方の加数が必ず、上方のバスに到
達し、そこでA″と指定される。下方のバス上の
加数はB″と指定される。 2つの浮動小数点の数を加えるためには、2つ
の指数が等しくなるように小さい方の数の仮数が
最初に右側にシフトされなくてはならない。そし
て、計算のため更なる手段が講じられないなら、
コンピユータの仮数の幅(14個の16進桁)からこ
のようにしてシフト・アウトされた桁(剰余)に
失われてしまう。このシフトはシフト手段(VS)
8によつて制御され、そのシフトの大きさは指標
の差によつて制御される。シフト手段8はいわゆ
るフアンネル(funnel)シフタである。このシフ
タの入力幅は、2×56ビツトで出力幅は1×56ビ
ツトである。その右側のシフトはその左端に空白
桁をつくり出し、これは、シフト手段8に関連し
て示されるように、ゼロで満たす必要がある。そ
の後、2つの加数の仮数を仮数加算器10中で加
算することができる。その目的のために、仮数加
算器10は2つの仮数の符号をも受け取る。56ビ
ツトをもつ2つの仮数の和と、(もし存在するな
らば)キヤリーを示す信号と、その和の符号信号
が仮数加算器の出力から供給される。接続された
先端ゼロ検出器(LDZ)12において、先端16
進ゼロ桁が検出され、シフト手段14によつて、
規格化のため仮数が左にシフトされる。そしてそ
の最下位位置はゼロで充たされなくてはならな
い。 もし加算器10中で和が形成されたときにキヤ
リーが生じると、その仮数の和は、その左端に挿
入すべき16進数0001のための余地を設けるべく、
シフト手段14中で1つの位置だけ右側にシフト
されなくてはならない。その桁に3つのゼロを挿
入するために、入力がシフト手段14に挿入され
る。 もし先端のゼロもキヤリーも検出されないな
ら、その和の指標はオペランド“A”の指標に等
しい。そうではないなら、その和の指標は、指標
加算器16中で変更されなくてはならない。この
加算器段の出力では、その和に関連して次のよう
な信号が送出される。 (i) 64ビツトからなる和信号S。 (ii) 利用可能な指数範囲を越えてしまい再度スケ
ーリングしないとそれ以上の計算ができないこ
とを示す“和オーバーフロー”信号。 (iii) 負の指数範囲を越えたことを示す“和アンダ
ーフロー”信号。 (iv) 和のすべての桁がゼロであることを示す“和
ゼロ”信号。この信号によつて、不必要な演算
段階をスキツプすることができる。 本発明によれば、第2図に示す加算器段は、第
1図に類似して64ビツトからなる剰余をも出力す
ることができる。ここで、2つの加数A″及び
B″の相対的位置に関連して3つの場合を考慮す
る必要がある。 (1) 2つの加数の指標がもともと等しい。この場
合、仮数は完全に重なり、通常剰余は存在しな
い。例外的な場合は、すなわちもしキヤリーが
生じると、その和は、その和の最下位位置がワ
ード長からシフトアウトされ剰余としてさらに
処理されるように1つの位置だけ右側にシフト
されなくてはならない。 (2) 仮数が一部重なる。この場合、重なり部分、
すなわちシフトされた仮数B″の高位桁が仮数
A″に加えられ、残りの下位桁が剰余としてさ
らに処理される。 (3) 仮数が重ならない。この場合、仮数B″の全
体が剰余として打切られなくてはならない。 剰余を発生するために、本発明に従つてシフト
手段18が設けられている。これは、シフト手段
8と同様に設計され、仮数B″の個々の下位位置
を剰余として打切るものである。打切られた仮数
の残りの位置は、シフト手段18に関連して説明
するように、ゼロで充たさなくてはならない。シ
フト手段22を制御する先端ゼロ検出器(LZD)
20が、残りの仮数にも設けられている。シフト
手段22中のシフト動作は、先端ゼロの数以外に
も、2つの仮数A″及びB″の和がキヤリーを生じ
たか否かにも依存する。もしそうなら、仮数の和
は、前述のように、仮数の和の最下位位置(ビツ
ト60−63)がシフト・アウトされ、シフト手段2
2によつて残りの仮数の最上位位置に入力される
ように、1つの位置だけ右にシフトしなくてはな
らない。この場合、残りの仮数は1つの位置だけ
右にシフトしなくてはならない。和のキヤリー
は、仮数A″及びB″が部分的に重なる場合にのみ
生じるので、残りの仮数の最下位位置は常にゼロ
であり、これにより、残りの仮数を1つの位置だ
け右にシフトすることは問題を生じない。仮数の
和の最下位ビツト位置60〜63からシフト・アウト
された16進数はゲート回路24によつてシフト手
段22に供給される。ゲート回路24によつてシ
フト手段22に供給される。ゲート回路24は、
和のキヤリーが“1”であるならこの数字を通過
させる。和からシフト・アウトされた数字がゼロ
であることがあり、そのとき関連する4ビツトが
また検出器20に供給されなくてはならない。 剰余の指標は指標加算器中で計算される。それ
は CHR=CHB″+SHMT−(E−CHD) から得られる。この式で、CHRは剰余の指標、
CHB″はオペランドB″の指標、SHMTは検出器2
0によつて発生されたソフト値、Eは仮数のワー
ド長、すなわちこの例では14桁の16進数(16進
E)、CHDは、減算器2によつて発生された指標
の差である。この指標CHDの最大値は定義により
14、すなわち16進Eであると仮定されているの
で、演算器2の出力は4本の線で十分である。 SHMTの値は1から16進数−Eに亘り、CHD
は0からEに亘る。 こうして、浮動小数点記法における64ビツト長
の剰余が回路出力(ノードR)で入手できる。 和と同様に、剰余についてのアンダーフローも
検出することができるが、それには計算の再スケ
ーリングを要するであろう。 重要な信号は、後で詳しく説明する回路信号
“剰余ゼロ”である。 以下に示す表1〜3は、表として3つの加算の
例をそれぞれ示す。これにより、第2図の回路の
働きが容易に理解されよう。
【表】
【表】
【表】
【表】
【表】
【表】 第1の例(表1)においては、正の加数Bが負
の加数ABに加えられる。この表において、2つ
のオペランドは16進数としてあらわされている。
例えば、加数Aの最左端2桁はB4、すなわち
1001 0100である。このとき、最も左側のビツト
が符号をあらわす。このビツト値は“1”をもつ
ているので、加数Aは負である。残りの7ビツ
ト、011 0100すなわち34が指標をあらわす。 加数Bの最初の2桁は40、すなわち01000000で
ある。このとき、最も左側のビツトが“0”であ
るので、加数Bは正である。加数Bの指標は、16
進値40をもつ。Bの指標はAの指標よりも大きい
ので、指標減算器2の出力における符号ビツトは
“1”であり、これにより2つのデータ・セレク
タ4及び6が加数をスワツプする。こうして加数
Aが加数B″になり、加数Bが加数A″になる。そ
して、2つの加数のうちの大きい方が常に上方の
バスに供給される。2つの指標の間の差はC(10
進12)である。こうして、Bの2つの最下位桁
が、Aの2つの最上位仮数桁に重なる。Aの残り
の12桁は、剰余としてシフト手段18によつて打
切られる。 この表はまた第2図に示した残りのユニツトの
出力信号をも示す。この表の終わりに、出力S
(和)とR(剰余)において得られる信号がきわめ
て明瞭に示されている。 表2に示す第2の例では、仮数の一部が重なる
2つの負の加数が加えられる。この例は、仮数加
算器10キヤリー信号を発生し、和の最下位仮数
桁が剰余にシフトされなくてはならない場合の回
路の動作をあらわしている。 表3に示す第3の例では、正の加数Aが負の加
数Bに加えられる。これにおいては、2つのオペ
ランドの仮数が重ならない。2つの指標の間の差
は16進10(10進16)である。前述したように、指
標減算器2の出力する最大の指標の差は16進E
(10進14)である。というのは、仮数は16進E個
の位置しか持つていないからである。剰余の指標
加算器26においては、この差の値が低すぎる
と、正確な差の値までインクリメントされる。こ
うして、この例では、加数Bの全体が剰余として
出力される。 第2図の構成は、純粋に組み合わせ論理回路で
実施することができる。これはまた、バツフアを
もち、加算器、シフト手段などの重要な機能素子
を反復的に使用する順序論理回路でも実施するこ
とができる。これにより必要な技術手段が低減さ
れるが、処理速度は低下する。 第3図は、直列接続された3つの浮動小数点加
算器段FPA1〜FPA3を示す。この個数は任意
に選ばれ、そのことは、必要に応じてより多くの
加算器段FPAを使用することができ、その1つ
の段は第2図の装置に対応することを意味する。
この加算器段の入力は加数A及びBを受け取り、
その出力は和信号Sと剰余信号Rを供給する。 第3図の装置は、和と剰余の信号をそれぞれ記
憶するための一対のレジスタ対をもつている。加
算すべきオペランドは順次回路の入力に加えられ
る。第3図の装置は、例えば、複数のオペランド
が連続的に加えられるベクトル演算のために使用
することができる。新しいオペランドが加えられ
る前に、レジスタはその新しい値の受入れに備え
てクロツクされる。不安定さを回避するために、
レジスタはエツジ制御式のものか、またはマスタ
ー・スレーブ・フロツプ・フロツプから成つてい
なくてはならない。 次のクロツクで、図示されているパイプライン
装置で発生された和の信号がその同一段のA入力
に戻され、一方、発生された剰余信号は、後段の
B入力に供給される。このようにして、特定の段
で発生されそこでは処理し得ない剰余がパイプラ
イン装置中をシフトされ続け、次第に小さくな
る。それ以上のオペランドがなくなつた後は、こ
れらの剰余は、最終的にすべての剰余レジスタが
ゼロになるまで処理される。第2R図に示された
先端ゼロ検出器20“剰余ゼロ”信号は、このよ
うにして、すべての加数が加えられその厳密な結
果が和レジスタで入手可能となる時間を決定する
ことを可能ならしめる。必要とされる浮動小数点
加算器段の数は、解くべき個々の問題に依存す
る。試験によれば、実際に生じる算術的問題の大
部分を解くために比較的少ない数の段で十分であ
ることが分かつている。その必要な段の数は、仮
数の長さに依存し、仮数の長さが増加するにつれ
て減少する。52〜56ビツト(64ビツト・ワード
長)の通常の仮数の長さの場合、実際に生じるほ
とんどの問題に対して4〜5段で十分である。
【表】
【表】 上記表4は、第3図の回路をより理解しやすく
するために、表のかたちで計算の例を示すもので
ある。簡単のため、すべての加数は正であり、桁
は10進記法であると仮定する。そして、加えるべ
き4つのオペランド 1.234E12+2.345E9+3.456E6+4.567E3 があると仮定する。 この表に示されているように、最初の4つのク
ロツクにおいては、これらの4つのオペランドが
順次回路の入力に印加されてゆく。第1のクロツ
クでは、最初の加数が段1の入力Bにあらわれる
(表4では、個々のオペランド、和及び剰余の移
行は矢印で示されている)。段1の入力Aには信
号が加えられていないので、オペランドBは大き
い方のオペランドであり、従つて和レジスタS1
中に格納される。第2のクロツクでは、段1で第
1のオペランドが第2のオペランドに加えられ
る。これらのオペランドは、第1のオペランドの
最後の小数桁に関して部分的に重なつている。そ
の結果は和レジスタS1中に格納され、生じた剰
余、すなわちその最下位位置にゼロを補充され
た、オペランドBから打切られた部分が剰余レジ
スタR1中に格納される。第3のクロツクで、こ
の剰余は段2の入力Bに供給され、その段を通過
してから和レジスタS2に格納される。それと同
時に、第3のオペランドがレジスタS1の内容に
加えられ、これにより再び剰余がつくり出され
る。この剰余は剰余レジスタR1中に格納され、
クロツク4で段2の入力Bに供給される。段2中
の和レジスタS2が既にゼロ以外の値を含んでい
るので、その段で加算が行なわれ、その結果は和
レジスタS2に、剰余は剰余レジスタR2にそれ
ぞれ格納される。矢印で示されているように、各
新しいクロツクは、ある段の和レジスタ中に格納
されている値をしてその段の入力Aに印加せし
め、一方、格納された剰余は(もし存在するな
ら)次の段の入力Bに印加される。第2図に示し
た動作によれば、各段において、小さい方のオペ
ランドの重なり部分によつてインクリメントされ
た大きい方のオペランドが、和レジスタに供給さ
れる。 表4に示すように、算術演算はクロツク7で停
止する。すなわちオペランドはそれ以上加えられ
ず、すべての剰余レジスタR1〜R4がゼロであ
る。すると、各加算器段の出力信号が2進“1”
を供給し、これはAND回路によつて容易に検出
することができ、算術演算が停止する。厳密な結
果、1.236E12+3.484E8+6.056E4+7.000E0が和
レジスタS1〜S4に存在している。この計算方
法の経時的(chronological)実施は何ら問題を
生じず、従つて適当なシーケンス制御の表示が省
略される。 第4図は、単一の加算器回路(FPA)30と、
剰余レジスタ32と、複数の和レジスタSMR0
〜SMRmからなるレジスタ・スタツク34とを
もつ装置を示す。加算回路の入力Bは、切換スイ
ツチ36によつてオペランド入力または剰余レジ
スタの出力のどちらかに接続することができる。
剰余レジスタの内容は次に、最終的に剰余レジス
タがゼロのみを含むようになるまで連続的に和レ
ジスタの内容に加えられる。次にスイツチは入力
Bにおいてリセツトされ、新しいオペランドが加
えられる。そのオペランドが受け取られた後は、
スイツチがリセツトされ、剰余レジスタがゼロの
みを含むようになるまで加算が反復される。すべ
てのオペランドが加えられてしまうと、厳密な和
が和レジスタにおいて入手可能となり、一方剰余
レジスタはゼロのみを含む。以下に示す表5及び
表6の例はこのシーケンスを詳細に示すためのも
のである。
【表】
【表】
【表】 この例においては、オペランド値は表4で使用
されている値と同一である。以下、表5及び表6
の各列の意味を説明する。 その最も左の列は“主クロツク”と呼ばれる。
この時点で、スイツチ36が入力Bをオペランド
入力に接続し、すなわち新しいオペランドが加え
られる。 次の列は(もし存在するなら)主クロツクに対
するサブ・ブロツクを含む。サブ・クロツクにお
いて、剰余レジスタ32の内容が記憶レジスタ
SMRに加えられる。関連するレジスタのアドレ
スが次の列に示されている。 次の列は、オペランド入力に加えられるオペラ
ンドの加数の値を示す。 次の列は、入力Bに加えられるオペランドの値
を含む。 次の列は、入力Aに加えられるオペランドの値
を含む。この値は、その左側にあるSMRアドレ
スをもつ記憶レジスタSMRから読み取られたも
のである。 次の列は、2つのオペランドA及びBの和を示
す。 次の列は、剰余レジスタ32の内容を示す。も
しその内容がゼロであるなら、次のクロツクは主
クロツクであり、すなわち新しいオペランドがオ
ペランド入力から加えられる。 次の2つの列は、記憶レジスタSMRとその内
容を示す。 最後の列は、個々の計算ステツプを示す。 計算ステツプ1では、第1のオペランド
1.234E12が入力Bに加えられる。入力Aはゼロの
みを受け取る。こうして、その和はオペランドB
に対応し、レジスタSMR0に格納される。 剰余レジスタの値がゼロであるので、別の主ク
ロツクが存在し、すなわち次のオペランド
2.345E9がレジスタSMR0に加えられる。この加
算は剰余3.450E8を生じ、これは剰余レジスタ3
2中に格納される。この段階で、(入力Bにおけ
る)剰余レジスタの内容を、次の記憶レジスタ
SMR1に加算させるサブ・クロツクが導入され
なくてはならない。その記憶レジスタSMR1の
内容は当該加算の和を後で格納することができる
ようにゼロであり、剰余レジスタ32もゼロのみ
を格納する。このことは、剰余レジスタ中でゼロ
の内容を検出することがいかに重要かを再度強調
し、それゆえ、第4図は、加算器段の個々の出力
をもう一度示す。このレジスタ・スタツクは、数
個のレジスタのみから成つていてもよい。もしス
タツクの現在の最後のレジスタ中への記憶後に、
ゼロでない剰余が存在するなら、さらにレジスタ
を追加することができる。 次の主クロツク3では、オペランド3.456E6が
SMR0の内容に加算される。その結果はSMR0
中に格納され、先じた剰余は次のサブ・クロツク
でSMR1及びSMR2の内容に加えられなくては
ならない。 主クロツク4に対応して、最後のオペランド
4.567E3がレジスタSMR0の内容に加えられる。
結果の剰余は、後のサブ・クロツク4,5及び6
でレジスタSMR1、SMR2及びSMR3に加え
られる。 計算ステツプ10では、剰余レジスタの内容がゼ
ロであり、オペランド入力にそれ以上のオペラン
ドが存在しないので、最終の結果がレジスタ・ス
タツク34、またはより詳細にはレジスタSMR
0〜SMR3に格納されている。 要約すると、もし剰余レジスタの内容がゼロな
ら、新しいオペランドが第1の記憶レジスタ
SMR0の内容に加算される。その後のサブ・ク
ロツクで、剰余レジスタの内容がその都度、剰余
レジスタの内容がゼロになるまで更なる記憶レジ
スタに順次加算される。尚、主クロツク毎のサ
ブ・クロツクの数は可変である。 表5及び6の例では、正確な結果を得るために
10の計算ステツプを要する。 一方、表4の例では、7クロツクしか要さな
い。このことは、第3図においては、表4から明
解に見てとれるように、すべての加算器段が同時
に作動するのに対し、第4図においては、単一の
加算器段しか存在せず、必要な算術演算を順次的
に実行しなくてはならない、という事実による。
また、記憶レジスタ・スタツク34にアドレスす
るためには、個々のアドレスを1だけインクリメ
ントしなくてはならない。このアドレスは主クロ
ツクに応答して、すなわちレジスタ32中に格納
されたゼロに応答してゼロにリセツトされる。 第4図は、加算器段30の“剰余ゼロ”出力に
接続されたアドレス・リセツト入力RSTを設け
られてなるアドレス・ユニツト(AE)38を示
す。 主またはサブ・クロツクの経時的シーケンス
は、はじめに記憶レジスタ・スタツク34が読み
取られてデータが加算器段30に転送され、その
後オペランド入力または剰余レジスタが加算器段
30の入力Bに供給されて結果の和及び剰余信号
が記憶されるようになつている。 ここに述べた手法によつて決定される厳密な和
は、浮動小数点数の列によつてあらわされる。一
般的に、その段階では、このシーケンスの要素は
大きさに従つて並べられてはおらず、仮数は重な
ることがある。もしここに述べた手法が、こうし
て得られた浮動小数点数の列に適用されるなら、
その結果は、要素が順序づけられ仮数が重ならな
いような厳密な和である。 F 発明の効果 以上説明したように、この発明によれば、2つ
の浮動小数点数の厳密な和が高速で求められる。
【図面の簡単な説明】
第1図は、本発明で使用されるデータ・フオー
マツトを示す図、第2図は、第2A図及び第2B
図の結合を示す図、第2A図及び第2B図は、浮
動小数点加算器段の詳細なブロツク図、第3図
は、第2A図及び第2B図の加算器段を直列接続
した回路のブロツク図、第4図は、直列演算のた
め単一の加算器段をもつ回路のブロツク図であ
る。 A,B……入力、8……第1のシフト手段、1
0……仮数加算器、12,14,16……第1の
規格化手段、18……第2のシフト手段、S……
2つの加数のための出力、R……剰余のための出
力、20……検出器、22……第3のシフト手
段、26……加算器。

Claims (1)

  1. 【特許請求の範囲】 1 各々が符号部、指数部及び仮数部からなる固
    定ワード長の加数を、縦続接続した複数の加算器
    段で加算するため、該複数の加算器段の各々を、 第1の入力及び第2の入力に与えられた2つの
    加数の指数部を揃えてそれぞれの仮数部を加算す
    るための第1のシフト手段及び仮数計算器と、 上記加算された仮数部の和の先行ゼロを取り除
    くための第1の正規化手段と、 上記2つの加数のうち大きい方の加数に加算さ
    れなかつた、小さい方の加数の右シフトされた剰
    余を打ち切るための第2のシフト手段と、 上記打ち切られた剰余を正規化するための第2
    の正規化手段と、 上記2つの加数の和及び剰余をそれぞれ浮動小
    数点記法に従つて与えるための第1の出力及び第
    2の出力と、 上記第1の出力に与えられる上記2つの加数の
    和を当該加算器段の第1の入力に与えるための手
    段とから構成し、 上記各加算器段の第2の出力に与えられる上記
    剰余を次の後続加算段の第2の入力に接続し、上
    記複数の加算器段のうちの第1の加算器段の第2
    の入力に、加算すべき上記複数の加数を順次与え
    るとともに、 加算すべき上記複数の加数がすべて上記第1の
    加算器段に与えられた且つ上記各加算器段の第2
    の出力にそれぞれ与えられる剰余がすべてゼロと
    なるまで、上記各加算器段の加算処理を実行させ
    るようにしたことを特徴とする、 浮動小数点数の加算装置。 2 各々が符号部、指数部及び仮数部からなる固
    定ワード長の加数を、単一の加算器段で加算する
    ため、該加算器段を、 第1の入力及び第2の入力に与えられた2つの
    加数の指数部を揃えてそれぞれの仮数部を加算す
    るための第1のシフト手段及び仮数計算器と、 上記加算された仮数部の和の先行ゼロを取り除
    くための第1の正規化手段と、 上記2つの加数のうち大きい方の加数に加算さ
    れなかつた、小さい方の加数の右シフトされた剰
    余を打ち切るための第2のシフト手段と、 上記打ち切られた剰余を正規化するための第2
    の正規化手段と、 上記2つの加数の和及び剰余をそれぞれ浮動小
    数点記法に従つて与えるための第1の出力及び第
    2の出力とから構成し、 上記第1の出力に与えられる上記2つの加数の
    和を、順次にアドレス可能なレジスタ・スタツク
    の入力に接続するとともに、当該レジスタ・スタ
    ツクの出力を上記加算器段の第1の入力に接続
    し、 上記各加算器段の第2の出力に与えられる上記
    剰余を、剰余レジスタを介してスイツチの第1の
    入力に接続し、 加算すべき上記複数の加数を順次受け取るよう
    に上記スイツチの第2の入力を接続するとともに
    該スイツチの出力を上記加算器段の第2の入力に
    接続し、 加算すべき上記複数の加数がすべて上記加算器
    段に与えられ且つ上記加算器段の第2の出力に与
    えられる剰余がゼロとなるまで、上記加算器段の
    加算処理を実行させるようにしたことを特徴とす
    る、 浮動小数点数の加算装置。
JP62232744A 1986-10-31 1987-09-18 浮動小数点数の加算装置 Granted JPS63123125A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP86115152.0 1986-10-31
EP86115152A EP0265555B1 (de) 1986-10-31 1986-10-31 Verfahren und Schaltungsanordnung zur Addition von Gleitkommazahlen

Publications (2)

Publication Number Publication Date
JPS63123125A JPS63123125A (ja) 1988-05-26
JPH0568725B2 true JPH0568725B2 (ja) 1993-09-29

Family

ID=8195554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62232744A Granted JPS63123125A (ja) 1986-10-31 1987-09-18 浮動小数点数の加算装置

Country Status (9)

Country Link
US (1) US4866651A (ja)
EP (1) EP0265555B1 (ja)
JP (1) JPS63123125A (ja)
AT (1) ATE67619T1 (ja)
AU (1) AU589049B2 (ja)
BR (1) BR8705232A (ja)
CA (1) CA1270955A (ja)
DE (1) DE3681591D1 (ja)
ES (1) ES2026444T3 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5268856A (en) * 1988-06-06 1993-12-07 Applied Intelligent Systems, Inc. Bit serial floating point parallel processing system and method
JP2693800B2 (ja) * 1988-12-28 1997-12-24 甲府日本電気株式会社 浮動小数点データ総和演算回路
US5111421A (en) * 1990-02-26 1992-05-05 General Electric Company System for performing addition and subtraction of signed magnitude floating point binary numbers
US5493520A (en) * 1994-04-15 1996-02-20 International Business Machines Corporation Two state leading zero/one anticipator (LZA)
US5557734A (en) * 1994-06-17 1996-09-17 Applied Intelligent Systems, Inc. Cache burst architecture for parallel processing, such as for image processing
US5880983A (en) * 1996-03-25 1999-03-09 International Business Machines Corporation Floating point split multiply/add system which has infinite precision
US5790445A (en) * 1996-04-30 1998-08-04 International Business Machines Corporation Method and system for performing a high speed floating point add operation
US7827451B2 (en) * 2006-05-24 2010-11-02 International Business Machines Corporation Method, system and program product for establishing decimal floating point operands for facilitating testing of decimal floating point instructions
US10019227B2 (en) 2014-11-19 2018-07-10 International Business Machines Corporation Accuracy-conserving floating-point value aggregation
CN105278923B (zh) * 2015-10-22 2017-10-03 合肥工业大学 一种基于aic信息准则的信号源个数估计硬件电路及其实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59188740A (ja) * 1983-04-11 1984-10-26 Hitachi Ltd フロ−テイング加算器

Also Published As

Publication number Publication date
AU8053587A (en) 1988-05-05
JPS63123125A (ja) 1988-05-26
EP0265555A1 (de) 1988-05-04
CA1270955A (en) 1990-06-26
DE3681591D1 (de) 1991-10-24
ES2026444T3 (es) 1992-05-01
EP0265555B1 (de) 1991-09-18
BR8705232A (pt) 1988-05-24
US4866651A (en) 1989-09-12
ATE67619T1 (de) 1991-10-15
AU589049B2 (en) 1989-09-28

Similar Documents

Publication Publication Date Title
JP2662196B2 (ja) 演算結果正規化方法及び装置
KR100242274B1 (ko) 제산 및 제곱근 계산 기능을 갖고 있는 부동 소숫점/정수 프로세서
US4999803A (en) Floating point arithmetic system and method
US4975868A (en) Floating-point processor having pre-adjusted exponent bias for multiplication and division
US6138135A (en) Propagating NaNs during high precision calculations using lesser precision hardware
US4893268A (en) Circuit and method for accumulating partial products of a single, double or mixed precision multiplication
JPS58158739A (ja) 浮動小数点加算方法及び装置
JPH0635675A (ja) データプロセッサにおいて除算を行うための方法および装置
US5184318A (en) Rectangular array signed digit multiplier
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5309383A (en) Floating-point division circuit
US5144576A (en) Signed digit multiplier
JPH0568725B2 (ja)
US5247471A (en) Radix aligner for floating point addition and subtraction
JPH0544686B2 (ja)
JPH05250146A (ja) 整数累乗処理を行なうための回路及び方法
US6952710B2 (en) Apparatus, methods and computer program products for performing high speed division calculations
JPH02294731A (ja) 浮動小数点数演算処理装置及び除数倍数生成装置
US4823300A (en) Performing binary multiplication using minimal path algorithm
JPH07107664B2 (ja) 乗算回路
He et al. Multiply-add fused float point unit with on-fly denormalized number processing
JP3137131B2 (ja) 浮動小数点乗算器及び乗算方法
JP4428778B2 (ja) 演算装置及び演算方法並びに計算装置
JPS5932038A (ja) 浮動小数点加算器
JPS63254525A (ja) 除算装置