JPH02294730A - 浮動小数点数演算処理装置 - Google Patents

浮動小数点数演算処理装置

Info

Publication number
JPH02294730A
JPH02294730A JP2087638A JP8763890A JPH02294730A JP H02294730 A JPH02294730 A JP H02294730A JP 2087638 A JP2087638 A JP 2087638A JP 8763890 A JP8763890 A JP 8763890A JP H02294730 A JPH02294730 A JP H02294730A
Authority
JP
Japan
Prior art keywords
exponent
bias
operand
register
line
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
JP2087638A
Other languages
English (en)
Other versions
JPH07104778B2 (ja
Inventor
Donald L Freerksen
ドナルド・リイ・フリークセン
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 JPH02294730A publication Critical patent/JPH02294730A/ja
Publication of JPH07104778B2 publication Critical patent/JPH07104778B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • G06F7/537Reduction of the number of iteration steps or stages, e.g. using the Sweeny-Robertson-Tocher [SRT] algorithm
    • G06F7/5375Non restoring calculation, where each digit is either negative, zero or positive, e.g. SRT
    • 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/49905Exception handling
    • G06F7/4991Overflow or underflow
    • 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
    • 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

Abstract

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

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、電子データ処理に関し、具体的には、そのオ
ペランドが、固定バイアスによりその真の値からずれた
指数部分を存する、浮動小数点プロセッサに関する。
B.従来の技術及びその課題 浮動小数点数は、仮数(または小数部)部分と指数部分
としてコンピュータに記憶されている。
小数部はしばしば小数部が正か負かを示す関連する符号
ピットを存する。一方、実際の指数値が正にも負にもな
り得る場合でも、指数は、通常正数のみとして表される
。これは、バイアス値を真の指数値に加算することによ
って実現される。たとえば、8ビットの指数フィールド
は、−126ないし+127の実際の指数値を表すこと
ができ、127のバイアスを加算することにより+2な
いし+253の記憶値をもたらす。(記憶値0、1、2
54、255は、エラー状態を意味する。)しかし、バ
イアスされた指数は、乗算及び除算には不利である。乗
算の際にオペランド指数を互いに加算しなければならな
いので、結果の指数は2倍のバイアスを含み、余分のバ
イアス量を引いて除去するのにもう1回演算が必要であ
る。除算では、オペランド指数が減算されて、結果の指
数はバイアスをもたず、バイアスを再度加えるためにも
う1回演算が必要となる。
これまで、乗算及び除算の際のバイアス調整は、オペラ
ンド指数を加算または減算するために使用されるのと同
じ演算機構を用いて別のトリップで実行されてきた。た
とえば、乗算では第1のクロツク・サイクルで2つのレ
ジスタからのオペランド指数を加算し、その和をレジス
タの1つに記憶する。第2のクロック・サイクルでは、
その和と定数のバイアス値を、同じ加算器に入力して、
レジスタの1つに再び記憶する。もう1つの技術は、2
つのカスケード式演算機構をこえるものであるが、より
長いデータ経路に対応するためにより遅いサイクル時間
が必要である。
こうした技術の最もはっきりした欠点は、こうした技術
では余分の時間、バイアスされない指数に必要な時間の
ほぼ2倍の時間を要することである。この余分の時間は
、オペランド中のゼロをスキップし、したがって早期に
終了できる浮動小数点プロセッサでは特に重要である。
これは、他のプロセッサが次に進むことが可能になる前
に、結果の指数における例外条件を知らなければならな
いという、マルチプロセッサ設定においても重要である
。たとえば、本発明の出願人に譲渡されたT.J.ビー
コム(BeacolI+)他の米国特許出願「複数プロ
セッサにおける共通ストリームからの順次命令のオーバ
ラップ式実行(Over lappedExecuti
on of Sequential Instruct
ions from aCommon Stream 
in }(ultiple Processors) 
Jを参照されたい。
もう1つの欠点は、データ経路、レジスタ、加算器など
が、可能な最大の「真」バイアス和の他に余分のバイア
ス量をも処理するために余分のビット位置を持たなけれ
ばならないことである。複数の加算器を使用する場合、
丸め及びオペランドのローディングなど、それが必要で
ない他の演算のためのデータ経路にそのまま残ることが
あり、したがってこれらの演箕も遅くなる。余分の加算
器を交互にオフにするには、より多くのゲーティング論
理回路、制御信号、及び時間量が必要になる。
C.発明の概要及び解決課題 本発明は、この指数表示を用いて乗算及び除算中に生じ
る時間またはハードウェア上の不利を実質的に除去する
ことにより、バイアス指数浮動小数点プロセッサの利点
を保持するものである。
本発明は、極めて小さい追加ハードウェアによりバイア
ス値の指数を調節することができる。極めて少量の追加
遅延が、バイアス調節経路のミニ現れ、他の演算には影
響を及ぼさない。結果の指数は、プロセッサの単一サイ
クルで利用できる。
乗算または除算中にバイアス値を加算または減算するた
めに、加算は不要である。最大データ幅は増加せず、こ
れまでにオペランド指数及び従来のオーバフロー・ビッ
ト及びアンダフロー・ビッ1・に必要だった幅を上回ら
ない。
広く言えば、本発明は、オペランド指数レジスタの1つ
と指数加算器の間のデータ経路にバイアス調節論理回路
を含む、浮動小数点プロセッサ用の指数機構である。こ
の論理回路は、個別に、または従来の指数加算器と紐み
合わせて、1つのオペランドの高位ビットに対してのみ
作用して、バイアス量の加算または減算と等価な演算を
実行する、単純な組合せ論理回路である。同じ組合せ論
理回路を含む同じ指数機構が、様々な精度レベルまたは
オペランドの書式を処理できる。
本発明のその他の目的と利点、並びに当業者には自明の
修正は、好ましい実施例に関する以下の説明から明らか
になる。
D.実施例 第1図は、本発明の環境として使用できるデータ処理シ
ステム100の一部分を示す。プロセッサ・バス110
は、主プロセッサ120、浮動小数点コブロセッサ13
0、及び主記憶装置140を相互接続する。通常のバス
110は、並列な制御線111、アドレス線112、デ
ータ線113を有する。この実施態様では、コブロセッ
サ130は、アドレス線112を駆動する。主プロセッ
サ120は、データ線113を介して主記憶装置140
からの必要なオペランドの取出し、及びその結果の記憶
を制御する。
通常のマイクロコード制J装置150が、プロセッサ1
20と130の両方を制御する。装置150は、水平マ
イクロコード・ワードを記憶する。
各マイクロコード・ワードは、データ経路のゲーティン
グ、演算の指定などのためのフィールドを有する。これ
らのフィールドは、線151を介して両方のプロセッサ
に送られる。(本発明では不必要であるが、フィールド
のいくつかは、主プロセッサ120に対してある動作を
指定し、コブロセッサ130に対して別の動作を指定で
きる。ワード内の他のピットまたはフィールドは、どの
動作を実行するかを決定する。)各ワードはまた、実行
される次のマイクロフード・ワードのアドレスも含む。
このアドレスは、プロセッサ内で発生するある種の条件
によって修正でき、これらの条件は線152及び153
を介して装置150に送られる。クロツク160は装置
150を駆動して、サイクル毎に新しいマイクロコード
・ワードを取り出す。
したがって上記のブロックは、ワークステーション・ア
ダプタ、大容量記憶ドライブや他の入出力装置(図示せ
ず)などに接続されて、完全なデータ処理システムを形
成する。これらの接続は、バス110を介して、あるい
は主プロセッサ120に接続された他のバスまたはチャ
ンネル(図示せず)によって行なわれる。
第2図は、第1図の130などのコブロセッサ用の従来
技術による指数サブユニット200の簡略化した例を示
す。レジスタ210は、データ線113からセレクタ(
またはゲートまたはマルチブレクサ)211を介して直
接または間接に第1のオペランド○P1を受け取る。レ
ジスタ220は、セレクタ221を介して第2のオペラ
ンドOP2を受け取る。指数加算器230は、セレクタ
231によって制御される1つの入力とセレクタ232
によって制御される他の入力を有する。マイクロワード
制御線151は、オペランドが単精度かそれとも倍精度
か(S/D) 、及び現命令が要求する演算が乗算かそ
れとも除算か(M/D)に応じて、セレクタ231の5
つの入力の1つを加算器にゲートする。M/Dビットは
また、加算器230がその2つの入力の加算と減算のど
ちらを行なうのかも決定する。セレクタ232は、出力
222とこの説明には重要でない他のソースとの間の選
択を行なう。線222もデータ線113に接続されてい
る。出力233はセレクタ221にフィードバックされ
る。
指数サブユニット200は、オペランドがロードされた
後に、結果を生成するのに2つのマイクロコード・サイ
クルを必要とする。バイアスされた指数の加算が必要な
、2つの単精度数の浮動小数点乗算の例を考えてみると
、第1サイクルで、セレクタ231と232は、レジス
タ210の内容であるOP1+BIAS,及びレジスタ
220内のOP2+BIASを加算器230に送り、加
算器230はそれらを加算する。セレクタ221は加算
器の出力233をレジスタ220にゲートして戻す。(
これらのレジスタは、従来のマスタ/スレーブ段から構
築される。それらの段は、単一サイクルにわたって2段
で動作するので、同じクロック・サイクルで出力を生成
し入力を受け取ることができる。)第1サイクルの終り
に、レジスタ220は、中間結果OPI+○P2+2*
BIASを保持する。この数が可能などの最終結果より
も大きいことが、従来の技術の他の欠点である。レジス
タと加算器がより多くの段を必要とする。第2サイクル
で、線151がセレクタ231に単精度バイアスの負(
−BS)を第1加算器入力にゲートさせ、セレクタ23
2は、中間結果を加算器にゲートする。これらの2つの
量の和OP1+OP2+B IASが、レジスタ220
にゲートして戻され、出力線222上に現れる。セレク
タ231における他の3つの定数は、単精度除算(+B
S)及び倍精度の乗算(−BD)と除算(+BD)に使
用される。
第3図は、本発明による浮動tJz数点コブロセッサ1
30を示す。様々なサブユニットは、それらが乗算中に
担当する役割によって特徴付けられる。
一部のブロックは、他の演算で異なる機能を果たす。コ
ブロセッサ130は、2進浮動小数点数演算のIEEE
タスクP754基準案10.1に従って様々な書式の数
に対して作用する。この基準の4バイト単精度書式は、
符号ビット、それに続く127だけ上方にバイアスされ
た8ビット指数、及び1と2(10進)の間の値に正規
化された23ビットの仮数または小数部を必要とする。
脊効な非バイアス指数は−125から+1 2 6の範
囲にある(バイアスされるとエないし254)。
126と+127の値(バイアスされるとOと255)
は、それぞれアンダフロー及びオーバフ口一条件を表す
。8バイト倍精度書式は、符号ビット、1023だけ上
方にバイアスされた11ビット指数及び52ビットの正
規化小数部を有する。どちらの書式でも、非正規化数は
、2進1のバイアスされた指数と、小数部の少なくとも
1つの先行ゼロを有する。
コブロセッサ130は、オペランドを移動し記憶する転
送機構300、望ましい演算に応じてオペランド指数を
操作する指数機構310、及び選択した演算に応じてオ
ペランドの小数部を操作する小数部機構350を有する
。コブロセッサ130の様々な経路を介するデータの経
路設定は、通常のシーケンサ380によって制御される
。シーケンサ380は、線151を介して第1図のマイ
クロコード制御装i150から命令当り1つの制御ワー
ドを受け取る。シーケンサ380は、複数のサイクル中
に線381を介してコブロセッサの他の要素に制の信号
を送る。
転送機構300は、第1図のデータ線113との間でオ
ペランドを送受する。メモリ・オペランドを指定する命
令は、データ線113からオペランドを読み取り、結果
を線113を介して主記憶装置に直接戻すことができる
。浮動小数点オペランドのサイズが大きいため、一部の
命令は、オペランドまたは結果あるいはその両方を記憶
する1組の局所8バイト幅浮動小数点レジスタ301を
使用する。内部バス302は、それらのソースから機構
310と350にオペランドを送り、これらの機構から
宛先、すなわちレジスタ301または線113に結果を
送る。レジスタ303と304は線113上のデータを
保持する。一部のコブロセッサ命令は、演算を全く実行
せず、主記憶装置とレジスタ301の間で数を転送する
だけである。
指数機構310は、線311を介してバス302から第
1オペランドの指数フィールドを受け取る。セレクタま
たはマルチブレクサ312は、このフィールドのビット
をFBEXPレジスタ313にゲートする。乗算の例で
は、レジスタ313が、乗数のバイアス指数フィールド
OP1+BIASを受け取る。線314は,第2オペラ
ンド(この例では、被乗数)のバイアス指数フィールド
OP2+B IASをFAEXPレジスタ316に記憶
するためセレクタ315に移送する。セレクタ312と
315は、コブロセッサ130のセレクタすべてと同様
に、第1図の制御装置150から発するマイクロコード
・ワードのビットによって制御される。図をわかりやす
くするため、これらの線は第3図には一般に示されてい
ない。レジスタ313と316は、コブロセッサの他の
すべてのレジスタと同様に、通常のマスタ/スレーブ・
レジスタであり、それらのレジスタは、あらゆるマイク
ロコード・サイクルで2位相クロック信号(図示せず)
を使用する。第1位相中、出力線は、レジスタの内容で
ラッチされたままであるが、入力線は新しいデータをレ
ジスタに受け取る。第2位相の始めに、入力線上のデー
タがラ・7チされる。
第2位相の終りに、ラッチされた入力データが出力線に
現れる。
指数加算器317は、オペランドの指数フィールドを組
み合わせて線318上に結果を生成するための通常の2
の補数桁上げ伝播加算器である。
加算器は乗算命令では2つの入力を加算するが、除算で
はそれらを減算する。加算が行なわれるのは、線319
が線151のM/Dビットの制御下でセレクタ321を
介してゲートされるときである。レジスタ316はまた
線321上に反転出力を生成する。減算が行なわれるの
は、セレクタ321がこうした1の補数線をゲートシ、
低位桁上げビットCinがM/Dビットによって活動化
されるときである。結果318は、セレクタ315を介
してレジスタ316にロードされる。通常のオーバフ口
ー/アンダフロー検出W322も、その結果を受け取り
、条件線153上に第1図の制御装置150に影響を及
ぼす信号を生成する。線319はまた、局所オペランド
・レジスタまたは主記憶装置に転送するため、レジスタ
316の内容を内部バス302に搬送する。セレクタ3
22は、正規化/丸み機構から、通常のようにして結果
指数を正規化する出力323を受け取ることができる。
(好ましい正規化/丸み機構は、米国特許出願第339
348号に示されている。)セレクタ322はまた、バ
イアス調節論理回路324による変形の後、線325を
介してレジスタ313の内容をゲートすることができる
バイアス調節論理回路324は、2つの固定バイアス量
(10進127または1023)の1つを線326上の
レジスタ313の内容と加算または減算を行なう。バイ
アス量は、SZD線151によって搬送されるオペラン
ドの精度に依存する。
論理回路324は、M/D制御線151で指定されるよ
うに、除算ではバイアスを加え、乗算ではそれを差し引
く。すなわち、乗算では、指数機構310は、単一サイ
クルテ、演算(OPIEXP+B IAS)+ (OP
2EXP+B IAS)−BIAS→(RESEXP+
B IAS)を実行する。
除算では、機構310は、単一マイクロワード・サイク
ルで線318上に(OP I EXP+B I AS)
− (OP2EXP+BIAS)+BIAS→(RES
EXP+B IAS)を生成する。減算は、上記のよう
に、桁上げビットとの1の補数加算により実施される。
論理回路324は、通常の桁上げ伝播または他の力0算
回路でもよい。しかし、この実施例の特定のバイアス量
の特性によっては、かなり簡単でより迅速な回路が使用
できる。論理回路324の目的は、指数機構が上記の式
の全体結果を生成するようにレジスタ13に記憶された
量(○PIEXP+BIAS)を修正することである。
下記の表は、バイアス調節論理回路で演算を行なうこと
なく、これが4つの組合せ論理機能によってどのように
実施できるかを示す。線326上の上位3ビットの2つ
の3人力機能は、倍精度の乗算及び除算に使用され、こ
れらの線上の上位6ビットの2つの6人力機能は単精度
を扱う。記号″X″は、どうでもよいビットを示す。記
号“1−″は、入力の組合せが不可能であることを示す
。ffic i nは、加算器317への通常の低位桁
上げビットである。
2の補数演算では、A−B==A+no t (B)+
1であることに注意されたい。
倍精度演算では、有効な指数の範囲は、11ビットの2
進数を必要とする。しかし、機構130は、指数用に1
3ビット・オペランドを使用する。高位ビットBit(
0)はアンダフロー・ビットである。すなわち、結果が
Bit(0)=1のときは、結果が負であることを示す
が、指数は正の和のみを生成するようにバイアスされる
ので、結果は実際には11ビット数として表すには小さ
すぎる。次の高位ビッ}Bit(1)はオーバフロー・
ビットである。結果がBit(0:1)=01をもつと
き、その結果は11ビット量として表すには大きすぎる
。第3の高位ビッ}Bit(2)は、11ビットの結果
の実際の高位ビットである。これら3つのビットのある
種の組合せは論理的に不可能なことに注意されたい。単
精度演算では、有効な指数の範囲は、8ビット数を必要
とする。指数機構130はこれらにも13ビッ{・を使
用する。
高位ビットは依然としてアンダフロー・ビットであるが
、オーバフロー・ビットはこのときBit(4)である
。実際の結果の高位ビットはこのときBit(5)であ
る。
倍精度オペランド 里夏方捉式: (RESEXP+BIAS)= (OP
IEXP+BIAS) +(OP2EXP+BIAS)
 − 8’0001111111111’= (OPI
EXP+BIAS) + (OP2EXP+BIAS)
 − B’0010000000000’+B’OO=
(OPIEXP+BIAS) ” (OP2EXP+B
IAS) − B’OOi0000000000’十〇
in途ア方程式: (RESEXP+BIAS)= (
OPIEXP+BIAS) − (OP2EXP+BI
AS) 十B’OO01111111111゛ = (OPIEXP+BIAS)  + (not(O
P2EXP+BIAS)+Cin)  十 B’000
11111111=(OPIEXP+BIAS) ” 
(not(OP2EχP+BIAS)+Cin) ÷B
’OO10000000000’− 8’000000
0000001′= (OPIEXP+BTAS)  
+ (not(OP2EXP+BIAS)+Cin) 
 + B’OO100000000QO’− Cin = (OPIEXP+BIAS)  + not(OP
2EXP+BIAS)  十        B’00
100000000U方稈式: (RESEXP+BI
AS)=  (OPIEXP+BIAS)  + (O
P2EχP+BIAS)  −  B’0000001
111111= (OPIEXP+BIAS) +(O
P2EXP+BIAS) − B’000001000
0000’+B’OO00000000001 ’ = (OPIEXP+BIAS) +(OP2EXP+
BIAS) − B’OOOOO10000000゜+
 Cin検算方程式: (RESEXP+BIAS)=
 (OPIEXP+BIAS) − (P02EXP+
BIAS)÷B’0000001111111=(OP
IEXP”BIAS) +(not(OP2EXP+B
IAS)+Cin) 十B’OOOO0011111】
1′ =(OPIEXP+BIAS) ” (not(OP2
EXP+BIAS)+Cin) +B’OOOOO10
000000’− B’OO00000000001’
=(OPIEXP+BTAS) +(not(OP2E
XP+BIAS)<in) +B’OOOOO1000
0000’− Cin =(OPIEXP+BIAS) +not(OP2EX
P+BIAS)     +B’0000010000
0上記の関数は、読取り専用メモリ・アレイ、プログラ
ム式論理アレイまたは、高位6ビット用の入力とと乗算
除算及び単/倍精度用のセレクタ線と高位6ビット用の
出力をもつ他の通常の手段により容易に実現できる。
小数部機構350は、現命令によって選択された演算に
応じて浮動小数点数演算の仮数または小数部を操作する
。この機構は本発明の一部ではなく、任意の好都合な方
式で機能できる。機構350の構成要素については、例
として乗算を使用して説明する。機構350は、各マイ
クロコード・サイクル中に乗数の4ビットを再試行する
記録アルゴリズムを利用する。
FBFRACレジスタ351は、乗算の中間部分積と最
終積を保持する。マイクロコード制御線は4つの入力の
1つをセレクタ352を介してレジスタ351にゲート
する。線353は各クロツク・サイクルの終りに部分積
を搬送する。
線354はバス302から直接に被乗数オペランドを受
け取ることができる。線355は、最終の丸めて正規化
した積を受け取る。最後に、セレクタがオフになって、
すべてゼロの入力がレジスタに到達することができる。
レジスタ出力線356はこの結果をバス302に戻し、
また部分積を小数部加算器357の1人力に送る。シフ
タ358は加算器の出力ビットを線353に接続して、
左への4ビット・シフトを実施する。シック358は、
単に4つのビット位置の配線接続の変位とすることが好
ましい。
FAFRACレジスタ361は、マイクロコード・ワー
ドがセレクタ363を活動化するときに線362を介し
てバス302からロードされる被乗数オペランドを保持
する。このレジスタの出力は、常に倍数生成機構384
に送られる。生成機構364は、レジスタ361の内容
の4つの倍数を同時に生成する、通常の組合せ回路であ
る。これらの倍数は、−4、−2、0, +2、及び+
4であり、加算器357の他の入力ヘ線367を介して
転送するため、セレクタ365の出力端で得られる。こ
れらの倍数はまた、小数部加算器の第3人力に線368
を介して転送するため、他のセレクタ366でも2ビッ
ト左にシフトされて(すなわち、−16、−4、0、+
4、及び+16)得られる。
FCFRACレジスタ371は、線373から、最終的
にはバス302からセレクタ372を介してゲートされ
る乗数オペランドを保持する。このレジスタの出力は、
線374を介して、桁合せ機構375と通信する。桁合
せ機構375は、各マイクロコード・サイクルの後に乗
数を4ビット右にシフトして、線376上の7フトされ
た乗数をセレクタ372を介してレジスタ371にゲー
トする。(論理ゲートはここではシフトを実施するため
に使用される。というのは、それらのゲートは、他の演
算に必要だからである。)線376はまた検出器377
にも接続している。検出器377は、ゼロの大きなグル
ープの存在を検出し、線153を活動化して、位置合せ
機構375に次のサイクルでグループ全体をシフトさせ
る。
再コード化論理回路378はレジスタ371の低位3ビ
ットに接続し、セレクタ365を制御して生成機措から
どの非シフト倍数が加算器357に送られるかを決定す
るための2ビット出力を生成する。同じ再コード化論理
回路379が、レジスタ371の第3、第4、及び第5
の低位ビットに接続し、生成機構からどのシフト済み倍
数が加算器357に送られるかを決定するための2ビッ
ト出力を生成する。図で示すと、これらの再コード化論
理回路は、シーケンサ380の最初の2サイクル中に(
Xで表される)乗数の次のビットを見る。
XXXXXXXXXXXXXXXXXXXXXXXAA A,A.      サイクル1、 tレクタ365サ
イクル1、 セレクク366 サイクル2、 tレクタ365 iイクル2、 tレクタ366 両方の再コード化論理回路は同一であり、きわめて小さ
い読取り専用記憶機構または論理アレイの形にすること
ができる。2ビット左にシフトしてセレクタ366に入
るため、線3θ8上の倍数は線367上の対応する倍数
の4倍である。再コード化論理回路のマッピングは以下
の通りである。
この再コード化は、それ自体、乗数の最下位ビットが1
である場合、すなわち、乗数が奇数である場合を規定し
ていない。この場合、被乗数は最初に線354を介して
レジスタ351にゲートされ、同時に、線373を介し
てレジスタ371にゲートされる。これは、1と被乗数
の初期部分積を生成する。偶数の被乗数では、レジスタ
372が最初に被乗数をロードして、初期部分積がゼロ
となるとき、セレクタ352がオフになる。
各クロック・サイクル中に、各再コード化論理回路は乗
数の3ビットを見、両方の論理回路が、5つの乗数ビッ
トを一緒に見て、部分積を4つの乗数ビットで表される
量だけ増分させる。後続サイクルで調査される低位ビッ
トは、前のサイクルからの高位ビットと同じである。
小数部加算器357は、同時に3つのオペランドを加算
して単一出力を生成し、次にこの出力が左にシフトされ
て、線353を介して部分積レジスタ351に戻される
。これはすべて単一クロック・サイクルで行なわれる。
これを実施するために、加算器357は、3つの入力(
線357、367、368)を受け取り、2つの中間出
力を生成する、通常の桁上げセーブ加算器(図示せず)
を含んでいる。通常の桁上げ伝播加算器(図示せず)が
、この2つの中間出力を組み合わせて最終結果にし、そ
れが左に4桁シフトされて線353上に現れる。
以下に、完全な乗算を実行するための演算シーケンスを
示す。
制御ワードの取出し バス302→FCFRACレジスタ(乗数小数部) バス302→FAFRACレジスタ(被乗数小数部) FAFRAC [5 1] =Oの場合、0→FBFR
ACレジスタ(低ビットを検査する) FAFRAC [5 1] = 1の場合、OP2→F
BFRACレジスタ バス302→FBEXPレジスタ→BIASADJ論理 M/Dビット−SEL321、Cin(バイアスの減算
) バス302→FAEXPレジスタ 演 シーケンサ・サイクル#1ないし#Nサイクルが#
1である場合、 BIASADJ論理→EXPADDER左入力 FAEXPレジスタ→EXPADDER右入力 M/Dビット→SEL321 (指数の加’X)M/D
ビット+EXPADDER  Cin(加算;バイアス
調整) EXPADDER和→OVERUNDERFLOW検出
器 EXPADDER和→FAEXPレジスタFBFRAC
レジスタ→FRACADDERFCFRAC [0−2
コ→RECODEI論理→M S E L 3 7 8
ゲート FCFRAC [2−4]→RECODER2論理→M
SEL379ゲート FBFRAC+MGEN論理→FRACADDER [
MSEL378コ FBFRAC−+MGEN論理→FRACADDER 
[MSEL379] FRACADDER和→SHIFT4L→FBFRAC
レジスタ ZEROTESTの場合、 AL I GHER=Nに設定 ZEROTESTでない場合 AL I GNER=4に設定 FCFRACレジスタ→AL I GNER→FCFR
ACレジスタ サイクルが#Nの場合、 FBFRACレジスタ→NORM/ROUND論理 NORM/ROUND論理→EXPADDER(正規化
) FAEXPレジスタ→EXPADDEREXPADDE
R和→FAEXPレジスタ制御ワードの記憶 FAFRAC→バス302 FAEXP→バス302 まず、制御装置150からの1つまたは複数の従来のF
ETCH制御ワードが、バス302を介して主記憶装置
またはFPレジスタからオペランドを得る。次に、OP
ERATION制御ワードが乗算に適した時点でシーケ
ンサ380を起動させる。次にシーケンサ380が複数
の演算サイクルを実行する。乗算では、各演算サイクル
で乗算の4ビットを処理するので、単精度乗算では6サ
イクルを必要とするが、倍精度乗算では13サイクルを
必要とする。(連続するゼロの大きなグループは桁合せ
機構375により単一サイクルでスキップすることが好
ましい。その詳細は本発明によって重要ではない。)指
数和は最初の命令演算サイクル中に完了するので、指数
例外の早期検出及び小さい乗数の早期終了が可能なこと
を特に注意されたい。シーケンサ380の機能に関する
他の詳細は、オーバラップ式実行に関する上記のビーコ
ム他の特許出願に出ている。
E.発明の効果 上述のごとく本発明によれば指数表示を用いることによ
ってバイアス指数浮動少数点数演算を効率よく実行する
ことを可能とした。
【図面の簡単な説明】
第1図は、本発明の環境として使用されるデータ処理シ
ステムの高レベル構成図である。 第2図は、従来技術による浮動小数点乗数/除数指数サ
ブユニットを示す簡略化した構成図である。 第3図は、本発明による完全な浮動小数点コブロセッサ
の構成図である。 100・・・・データ処理システム、110・・・・プ
ロセッサ・バス、120・・・・主プロセッサ、130
・・・・浮動小数点コブロセッサ、140・・・・主記
憶装置、150,..マイクロコード制cfB装置、1
60・・・・クロツク、300・・・・転送機構、30
1、303、304・・・・レジスタ、310・・・・
指数機構、312、315・・・・マルチブレクサ(セ
レクタ)、360・・・・小数部機構、380・・・・
シーケンサ。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーシaン 代理人  弁理士  頓  宮  孝 (外1名) 纂1図 M2図

Claims (1)

    【特許請求の範囲】
  1. (1)それぞれ小数部部分と指数部分を有する第1及び
    第2オペランドについて乗算及び除算を実行し、各オペ
    ランドの前記指数部分がバイアス・オフセットを有する
    浮動小数点数演算装置において、前記演算の1つを選択
    する乗算または除算信号生成手段、 前記小数部部分について前記乗算及び除算を実行して、
    結果の小数部部分を生成する小数部機構、前記第1オペ
    ランドの指数部分を保持する第1指数レジスタ、 前記第2オペランドの指数部分を保持する第2指数レジ
    スタ、 前記第2指数レジスタに結合され、前記乗算または除算
    信号に応答して、前記第2オペランド中の前記バイアス
    ・オフセットを選択的に除去し含有して、調節済みオペ
    ランド指数を生成するためのバイアス調節手段、 前記バイアス調節手段及び第1レジスタに結合され、前
    記乗算または除算信号に応答して前記調節済みオペラン
    ドを選択的に加算及び減算して、前記第1及び第2オペ
    ランドの指数部分と同じバイアス・オフセットを有する
    結果指数を生成する指数加算器、及び 前記結果指数を記憶する手段 を含む浮動少数点数演算処理装置。
JP2087638A 1989-04-17 1990-04-03 浮動小数点数演算処理装置 Expired - Lifetime JPH07104778B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/339,279 US4975868A (en) 1989-04-17 1989-04-17 Floating-point processor having pre-adjusted exponent bias for multiplication and division
US339279 1999-06-23

Publications (2)

Publication Number Publication Date
JPH02294730A true JPH02294730A (ja) 1990-12-05
JPH07104778B2 JPH07104778B2 (ja) 1995-11-13

Family

ID=23328284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2087638A Expired - Lifetime JPH07104778B2 (ja) 1989-04-17 1990-04-03 浮動小数点数演算処理装置

Country Status (3)

Country Link
US (1) US4975868A (ja)
EP (1) EP0394171A3 (ja)
JP (1) JPH07104778B2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5153848A (en) * 1988-06-17 1992-10-06 Bipolar Integrated Technology, Inc. Floating point processor with internal free-running clock
EP0378415A3 (en) * 1989-01-13 1991-09-25 International Business Machines Corporation Multiple instruction dispatch mechanism
US5093908A (en) * 1989-04-17 1992-03-03 International Business Machines Corporation Method and apparatus for executing instructions in a single sequential instruction stream in a main processor and a coprocessor
TW199927B (ja) * 1990-08-24 1993-02-11 Matsushita Electric Ind Co Ltd
JPH04165530A (ja) * 1990-10-30 1992-06-11 Nec Corp 浮動小数点乗算装置
JPH06103599B2 (ja) * 1990-11-16 1994-12-14 三菱電機株式会社 半導体集積回路装置
US5408670A (en) * 1992-12-18 1995-04-18 Xerox Corporation Performing arithmetic in parallel on composite operands with packed multi-bit components
US5539684A (en) * 1993-12-10 1996-07-23 Motorola, Inc. Method and apparatus for calculating floating point exponent values
US5689592A (en) * 1993-12-22 1997-11-18 Vivo Software, Inc. Parallel processing of digital signals in a single arithmetic/logic unit
US5550768A (en) * 1995-01-31 1996-08-27 International Business Machines Corporation Rounding normalizer for floating point arithmetic operations
US5602769A (en) * 1995-07-05 1997-02-11 Sun Microsystems, Inc. Method and apparatus for partially supporting subnormal operands in floating point multiplication
US5619439A (en) * 1995-07-05 1997-04-08 Sun Microsystems, Inc. Shared hardware for multiply, divide, and square root exponent calculation
US5953241A (en) * 1995-08-16 1999-09-14 Microunity Engeering Systems, Inc. Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction
US6295599B1 (en) * 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US7301541B2 (en) 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US6006318A (en) * 1995-08-16 1999-12-21 Microunity Systems Engineering, Inc. General purpose, dynamic partitioning, programmable media processor
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
KR100425674B1 (ko) * 1996-10-11 2004-06-11 엘지전자 주식회사 디지탈신호처리기의부동소숫점형식곱셈방법
KR100431707B1 (ko) * 1996-11-12 2004-09-04 주식회사 하이닉스반도체 부동소수점연산에서의지수처리방법
USH1993H1 (en) * 1997-06-25 2001-09-04 Sun Microsystems, Inc. Floating-point division and squareroot circuit with early determination of resultant exponent
US6131106A (en) * 1998-01-30 2000-10-10 Sun Microsystems Inc System and method for floating-point computation for numbers in delimited floating point representation
US20050289208A1 (en) * 2004-06-23 2005-12-29 Harrison John R Methods and apparatus for determining quotients
US7949695B2 (en) * 2004-10-27 2011-05-24 Via Technologies Inc. Two's complement circuit
US8364734B2 (en) * 2005-09-15 2013-01-29 International Business Machines Corporation Converting from decimal floating point into scaled binary coded decimal
US7698352B2 (en) * 2005-09-15 2010-04-13 International Business Machines Corporation System and method for converting from scaled binary coded decimal into decimal floating point
US8190664B2 (en) * 2007-04-26 2012-05-29 International Business Machines Corporation Employing a mask field of an instruction to encode a sign of a result of the instruction
US8051118B2 (en) * 2007-04-26 2011-11-01 International Business Machines Corporation Composition of decimal floating point data
US8051117B2 (en) * 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand of decimal floating point data
US20080270495A1 (en) * 2007-04-26 2008-10-30 International Business Machines Corporation Insert/extract biased exponent of decimal floating point data
US9996320B2 (en) * 2015-12-23 2018-06-12 Intel Corporation Fused multiply-add (FMA) low functional unit
US9996319B2 (en) * 2015-12-23 2018-06-12 Intel Corporation Floating point (FP) add low instructions functional unit

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5330241A (en) * 1976-09-01 1978-03-22 Hitachi Ltd Arithmetic unit
JPS5968058A (ja) * 1982-10-13 1984-04-17 Hitachi Ltd フロ−テイング乗算器
JPS59103148A (ja) * 1982-12-03 1984-06-14 Hitachi Ltd 乗算回路
JPS6319894A (ja) * 1986-07-14 1988-01-27 山崎 忠義 プリント基板写真焼付方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4366548A (en) * 1981-01-02 1982-12-28 Sperry Corporation Adder for exponent arithmetic
US4528640A (en) * 1982-07-13 1985-07-09 Sperry Corporation Method and a means for checking normalizing operations in a computer device
JPS59117637A (ja) * 1982-12-24 1984-07-07 Toshiba Corp 浮動小数点乗算装置
US4823260A (en) * 1987-11-12 1989-04-18 Intel Corporation Mixed-precision floating point operations from a single instruction opcode

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5330241A (en) * 1976-09-01 1978-03-22 Hitachi Ltd Arithmetic unit
JPS5968058A (ja) * 1982-10-13 1984-04-17 Hitachi Ltd フロ−テイング乗算器
JPS59103148A (ja) * 1982-12-03 1984-06-14 Hitachi Ltd 乗算回路
JPS6319894A (ja) * 1986-07-14 1988-01-27 山崎 忠義 プリント基板写真焼付方法

Also Published As

Publication number Publication date
JPH07104778B2 (ja) 1995-11-13
EP0394171A3 (en) 1992-07-01
US4975868A (en) 1990-12-04
EP0394171A2 (en) 1990-10-24

Similar Documents

Publication Publication Date Title
JPH02294730A (ja) 浮動小数点数演算処理装置
Lu Arithmetic and logic in computer systems
JP3152954B2 (ja) 浮動小数点プロセッサ
US6647404B2 (en) Double precision floating point multiplier having a 32-bit booth-encoded array multiplier
JP3689183B2 (ja) 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算
US5272660A (en) Method and apparatus for performing integer and floating point division using a single SRT divider in a data processor
EP0132646A2 (en) High speed multiplier for fixed and floating point operands
US4208722A (en) Floating point data processing system
EP0040279B1 (en) Binary divider
US5206828A (en) Special carry save adder for high speed iterative division
US5136536A (en) Floating-point ALU with parallel paths
US3814925A (en) Dual output adder and method of addition for concurrently forming the differences a{31 b and b{31 a
JPH0542013B2 (ja)
US5301139A (en) Shifter circuit for multiple precision division
JPH02115928A (ja) ステイツキ‐ビツト値を予測する回路およびその方法
US5790444A (en) Fast alignment unit for multiply-add floating point unit
GB2196453A (en) Treatment of floating point numbers
JPH05250146A (ja) 整数累乗処理を行なうための回路及び方法
US5615113A (en) Early signaling of no-overflow for nonrestoring twos complement division
JPH0250492B2 (ja)
US4979142A (en) Two-bit floating point divide circuit with single carry-save adder
US4817048A (en) Divider with quotient digit prediction
US5237525A (en) In a data processor an SRT divider having a negative divisor sticky detection circuit
JPH0687218B2 (ja) 浮動小数点数演算処理装置及び除数倍数生成装置
JPS63123125A (ja) 浮動小数点数の加算装置