JPH02138620A - 数値量を計算する方法および数値データ処理装置 - Google Patents

数値量を計算する方法および数値データ処理装置

Info

Publication number
JPH02138620A
JPH02138620A JP63309761A JP30976188A JPH02138620A JP H02138620 A JPH02138620 A JP H02138620A JP 63309761 A JP63309761 A JP 63309761A JP 30976188 A JP30976188 A JP 30976188A JP H02138620 A JPH02138620 A JP H02138620A
Authority
JP
Japan
Prior art keywords
register
bit
coupled
sum
shift
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
JP63309761A
Other languages
English (en)
Inventor
John F Palmer
ジョン・エフ・パルマ
Bruce W Ravenel
ブルース・ダブリユウ・ラベネル
Rafi Nave
ラフイー・ネイヴ
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.)
Intel Corp
Original Assignee
Intel 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22393800&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH02138620(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Intel Corp filed Critical Intel Corp
Publication of JPH02138620A publication Critical patent/JPH02138620A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/012Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
    • 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
    • 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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/49942Significance control
    • G06F7/49947Rounding
    • 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/49957Implementation of IEEE-754 Standard
    • 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/49963Rounding to nearest

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔利用分野〕 本発明は数値データ処理装置の分野に関するものであり
、とくに混合された精度の計算と、混合され友モードの
算術計算と、丸め操作とを行うことができる集積回路浮
動小数点数値処理装置に関するものである。
〔従来技術〕
従来の演算処理装置とくに集積回路処理装置は浮動小数
点の計算を行っている間は確度が低く、信頼度が低く、
かつ安全性に欠けるなどの種々の欠点がある。次とえば
、典型的な従来の集積回路装置は、結果が比較的遅く得
られるばかりでなく(しばしばソフトウェアの助けのみ
で)、中間結果に多くの丸め誤差が生じて最終的な解答
が不正確になるようにしか、平方根を含めて、超越的な
数学関数の演算を行えず、処理装置には丸め誤差を検出
して、それを訂正する内部機構を有していない。また、
従来の処理装置は混合されたモードの演算数では一般に
動作できず、あるいは結果に誤りがあるという大きな危
険を承知の上でのみ混合されたモードの演算ができるだ
けでおる。
したがって、必要とされるものは、丸め誤差、または他
の演算例外すなわち零および無限大演算のような特殊な
ケースを取り扱う内部要素により、単精度と倍精度の整
数および浮動小数点量の計算を迅速、正確かつ確実に行
うのに十分な内部精度を有する処理装置である。
〔発明の概要〕
本発明は、小数部および指数部表示で表わすごとができ
る複数のデータ・フォーマントに対して計算を実行する
数値データ処理装置であって、前記複数のデータ・フォ
ーマットを小数部および指数部表示を有するファイル・
フォーマットへ変換する第1の手段を備え、そのファイ
ル・フォーマットは複数のデータ・フォーマントのどの
1つよりも大きい小数部領域と指数部領域を有する数値
処理装置に関するものである。このような数値処理装置
は、複数のデータ・フォーマットを変換スるためにこの
第1の手段には小数バスおよび指数バスが結合される。
数値情報をファイル・フォーマットで貯えるように構成
されているレジスタ・スメックが小数バスおよび指数バ
スへ結合される。
数値情報に対してファイル・フォーマットで演算動作を
行うために用いられる演算部も小数バスへ結合される。
このような組合わせにより、全てのデータ・フォーマッ
トが、数値処理装置が呼出すことができる数値量のいず
れよりも大きい有効なビット範囲と、大きな指数範囲を
有するファイル・フォーマントへと変換されるから演算
確度は大幅に向上する。したがって、一般に起りやすい
誤差は演算中に起る誤差ではなくて変換および転送で起
る誤差である。この組合わせにより、ファイル・フォー
マットは、それへの変換により全てのデータ・フォーマ
ットを包含できることになるから、混合されたモードの
演算を行うことができる。
本発明の目的は、演算動作中に数値例外すなわち数値誤
差を検出および指示し、かつそのような例外すなわち誤
差を取り扱うための手段を提供することにある。
数値例外に対する応答を選択的にマスクするための第3
の手段が数値処理装置に含まれる。識別を行うことがで
き、かつ各例外がマスクされ友時に動作する第4の手段
が各例外に特別な応答を例外的に与える。M2の手段に
より数値例外が検出および識別され、かつ第3の手段に
エフマスクされた時に応答が常に発生されるように、第
4の手段が第2と第3の手段へ結合される。このような
組合わせにより、演算中に誤差または例外が起るたびに
例外すなわち誤差の指示が発生される。そうすると、処
理を停止させるための割込みを発生するため、または演
算のその点に、起った例外すなわち誤差の精密な状況に
より決定される特別な応答を挿入することにより演算を
継続するために、マスキングによりユーザーへオプショ
ンが与エラれる。しかし、誤差が生じたという指示は失
われず、例外すなわち誤差の発生と、その誤差の性質を
知り、その例外すなわち誤差が受は容れられないほど信
頼度が低いものであるとすると適切なソフトウェアによ
る措置をとるオプションをユーザーが持つように、演算
中を通じて数値処理装置に保持されたままである。
上記のような組合わせにより、この数値処理装置は符号
付き零と符号付き無限大を取り扱うことができ、それに
より螢似閉包と射影閉包の双方において区間演算を行う
性能を含むことができる。
更に、複数の丸めモードのうちの選択された1つに従っ
て数値情報を丸めるための手段を本発明は含む。各数値
l・に3つの付加ビット、すなわち、ガード・ビットと
丸めビットおよびステイツキイ・ビットを付加させるこ
とにより丸めが行われる。
右へ桁送りされる全てのビットはガード・ビットと丸め
ビットまたはステイツキイ・ビット中に捕えられ、後者
は先に右桁送ジされたビットの関数である。
数値処理装置におけるこの丸め能力の結果として、数値
処理装置は、丸めが行われた時に正確なフラグすなわち
Pフラグにより検出と指示を行うことができることによ
り、正確な演算を行うための手段を含む。正確な演算を
行わねばならない場合には、それに応じて割込みを発生
できる。
本発明はプログラム可能な双方向桁送ジ器も含む。この
桁送り器は、左桁送りのために選択的に作動させられる
第1の双方向負荷および読取りインターフェイス回路と
、右桁送りのために選択的に作動させられる同様に構成
された第2の負荷およびインターフェイス回路とで構成
される。第1のインターフェイス回路はバイト桁送りマ
トリックスへ結合され、第2のインターフェイス回路は
ビット桁送り回路へ結合される。バイト桁送り回路は入
力量をバイトの倍数すなわち8ビットの倍数だけ桁送り
するように構成され、ビット桁送りマトリックスはその
入力量を、連続7つの場所まで、選択された数のビット
場所だけ桁送りさせるために同様に構成される。ビット
桁送りマトリックスとバイト桁送りマトリックスは、両
方のマトリックスの間で信号を双方向に流すように結合
される。それら2つのマトリックスはビット桁送り制御
回路とバイト桁送り制御回路によりそれぞれ制御される
。それらの制御回路は各マトリックスが実際に桁送りす
るバイト場所とビット場所の数を決定する。かかる組合
わせにより、1クロツク・サイクル中に、任意の数のビ
ット場所だけ、簡単な回路を用いることにより、はぼ任
意の長さの数値量を選択的に桁送りできる。
本発明は、数値処理装置における演算中に数値例外を検
出する過程を備える数値量計算方法の改良も含むもので
ある。全ての数値例外すなわち誤差が検出される。それ
から、検出された例外すなわち誤差の性質が適切な状態
レジスタにおいて指示される。採用している演算の例外
を含み、符号付きの零と無限大となる指示された例外す
なわち誤差に特有の応答が処理装置において発生される
最後に、割込みを発生して、ソフトウェアのユーザーが
どの応答を行うかを決定できるようにするのではなくて
、それらの発生された応答または指示された誤差のうち
の1つを選択的にマスクして、指示されている特定の、
かつ信頼できる応答に従って演算を継続できる。
〔実施例〕
以下、図面を参照して本発明の詳細な説明する。
本発明の方法と装置を理解する比めに、数値処理装置が
取ジ扱わねばならない数値データの基本的な表現形式に
ついてまず考えることにする。本発明に従って、データ
の構造は5つのデータ形式、すなわち、実数の長と短、
整数の長と短、BCD整数より成る。
また、例外として取り扱わねばならないある数の特殊な
数がある。プラス零とマイナス零は演算動作におけるそ
れらの数の特殊な性質の結果として特殊な類を形成する
。同様に、プラス無限大とマイナス無限大は、表現でき
る最大の数よりも大きな正の数と負の数を表わすために
用いられる。
正規化された数は小数部中における意味のある全てのビ
ットすなわちシグニフイカンドを有する実数として定義
される。非正規化の数は、表現可能な正規化された最小
の数の指数に等しい指数を有するが、リーディング零を
もつことの許されるシグニフイカンドを有する数である
。iIk後に、数値結果を表わすことができない場合、
たとえば、零を零で割る場合には、[数でないJ (N
AN)または「INDJを与え得る。し友がって、下位
桁あふれと上位桁おふれが生じた時に数値演算を打切る
のではなくて、下位桁あふれと上位桁おふれを、プラス
無限大、マイナス無限大、非正規化の数およびNANを
用いて取り扱うことができる。
以下の説明においてはPを符号ビット、Eを指数m、s
をシグニフイカンドすなわち小数部、Xを一般的な数値
変数とする。
まず、短い飴と長い語の記憶フォーマット、すなわち、
記憶に適する7オーマントでの正規化された数の特別な
定義について説明する。数の範囲は2  ≦X≦(2−
2)2   で、バイアスされた11ビット指数部E(
l≦E≦2046)により特徴づけられる。この数Eは
、有効数字中に先行の含意1ビットを有し後に明確に指
定された520ビットが続く。し次がって、長い、すな
わち倍精度正規化数の翻訳は X=(−1)2    (“1″+32  )ここに、
11パは含意1である。
同じ理由で、メモリ中の短い語すなわち単精度正規化数
の定義は P   K−11ツ X=(−1)2    (“1”+82  )であり、
それにより次の範囲を有し、 2−10≦X≦(2−2)2 8ビット・バイアスの指数l≦E≦254  により特
徴づけられる。この場合には、シグニフイカンドは明確
に指定されている23ビットが後続する含意先行1ビッ
トで始まる。
含意先行1ビットによV特徴づけられる64ビット・シ
グニフイカンドを有する、正規化された数として説明す
る。いいかえれば、ファイル・フォーマットは X=(−1)P2     (S2  )  である。
ここに、1≦E≦32766で、E=2 −1 が無限
大、無効および不定のために保留される。
プラス零とマイナス零は零値を有するバイアスされた指
数と零値を有するシダニフイカンドにより特徴づけられ
る。し次がって、ファイル・フォーマットにおいては、
プラス零とマイナス零の特徴は、最小の指数たとλ−は
零を有し、ングニフイカンドが零の数であり、又は対応
の零フラグがタグされてそれを有する数である。
同様に、メモリ内の非正規化の数(それらは零を中心と
して群を成している)は、単精度では2  (2)≦X
≦2   (]−2)  で与えられる範囲を有し、倍
精度では 一1ol! 2−10112−1lII≦X≦2(1−2>で与えら
れる範囲を有する。
メモリ中の非正規化の数は、各場合に、零に等しいバイ
アスされた指数によV特徴づけられる。
その数は、単精度では X=(−1) (2)(82) と翻訳され、倍精度で
はX=(−1) (2)(82)と翻訳される。
本発明のファイル・フォーマットすなわち延長されたフ
ォーマットにおいては、非正規化の数は範囲(2)2 
  ≦X≦2(1−2)を有し、かクシグニフイカンド
における先行零ビットにより特徴づけられ、かつ X−(−1)2   (82)として翻訳される。
後で説明するプラス無限大とマイナス無限大は、単精度
または倍精度のメモリ・フォーマット内の数が全部1の
2進指数で零小数すなわち零シグニフイカンドを有する
ものとして特徴づけられる。
ファイル・フォーマットにおいては、プラスをマイナス
の無限大は、表わすことができる最も正の指数およびシ
グニフイカンドi、ooo、、、oにより、およびその
数にタグされる対応する無効フラグを有することに特徴
づけられる。
最後に、後で説明する実施例においては、諸ポすなわち
「数でない(not a number)Jは、(単精
度上倍精度においてン全部1の指数と零でないシダニフ
イカンドを有するものとして定義される。
ファイル・フォーマットにおいては、NANは表わすこ
とができる最も正の指数と、i、ooo、、、oに等し
くない任意のシダニフイカンド、およびその数にタグさ
れた対応する無効フラグとを同様に有する。その場合に
は、実際のシダニフイカンドの使用がユーザーにまかさ
れる。したがって、記憶装置をユーザーが利用する場合
にそれらの大きなNANが演算動作を介して伝わり、誤
差が生じたことと、プログラム・ロジックが記憶装置の
利用されていない領域を不正確にアクセスしたことがユ
ーザーに示されるように、記憶装置の初期設定をするた
めにシグニフイカンドの値を使用することが可能である
。同様に、演算動作により発生されたNANと、零で除
された零のような数値データとは、そのングニフイカン
ドをコードのオフエンデイング部分へ割当てることによ
り、ポインタとして使用され得る。特別なコード化と、
 NANにおけるシグニフイカンドの使用により、他の
多くの用途を工夫できる。
倍精度および実正規化および非正規化、ならびに前記し
た特殊な場合に加えて、本発明の処!!l!装置け18
桁の符号付きBCD整数はもちろん、整数語(16ビッ
ト)、整数短表示(32ビット)および整数長表示(6
3ビット)を泡ジ扱うことができる。
■1本発明の数値処理装置のシステム・コンテギストの
概説 本発明の浮動小数点数値処理装置(以下、「処理装置」
またはl’−FPUJ と記す)は、これまでの浮動小
数点処理装置では利用できない多くの特徴を含み、標準
回路技術により集積回路で作れる高性能処理装置である
。本発明の処理装置は同時処理中央処理装fi(CPU
)をサポートする演算装置として、マルチマスク装置で
用いようとするものである。したがって、この処理装置
はCPUの延長であるがン7トウエアにとっては延長と
は見えず、それにより他の処理装置で達成可能なレベル
以上に性能を大幅に向上させるものである。処理装置は
対応するCPUと同時に共同して処理をする装置である
。本発明の処理装置が浮動小数点命令を実行している間
に、対応のCPUが命令の流れに従つて実行を続けるか
ら、重複して動作が行われる。
そのために処理装置の命令とCPUの命令の動作の東な
9合いによりプログラムのスループットが増大する。浮
動小数点命令はCPUの命令流から直接に復号される。
浮動小数点命令がFPUとCPHの命令待ち行列から復
号されると、浮動小数点ユニットが、命令流で動作を続
行しているCPUと平行してその命令を実行する。CP
Uが第2の浮動小数点命令を受けたとすると、処理装置
が最初の浮動小数点命令を完了するまでCPUは「時間
をマーク」する。
CPUに関連する処理装置の動作を簡単に説明すれば、
処理装置の2つに分れた性質を理解できる。
FPUは1本の要求許可ビンによりローカル・バスへア
クセスできる。処理装置は状態入力をモニタし、かつ対
応するCPUと並列にデータ・バスをトラッキングする
ことにより、そのCPUの命令待ち行列をトラックする
。浮動小数点命令が命令待ち行列からフェッチされると
、 CPU2Qはその命令を実行しない。非メモリ命令
の場合には、CPU20はそれを全く無視して他の動作
を続行する。メモリ参照の命令の場合には、CPU20
はそのアドレッシング・モードを用いて実効アドレスを
計算し、ダミー読摩り、すなわち、CPU20がデータ
に入らない読取りを除く正常な読取りを行う。その代り
に、本発明のFPUが最初のクロック・サイクルの間に
オペランドのアドレスと、それに続くクロック・サイク
ルの間のデータとを捕える。このようにして、 CPU
20の外部メモリに対するアドレッシング性能は向上す
る。浮動小数点命令がフェッチされた彼で、FPU22
が更に多くのデータを必要としなければ、FPU22は
実行を開始できる。
必要とする場合には、FPUは要求/付与初期手順によ
りバスに要求を出し、後続のオペランド語のアドレスの
ためにバスから得たアドレスを増大させることにより、
あたかもCPO20であるかのようにして、  FPU
はオペランドの残りをフェッチする。結果を貯えること
をFPU22が必要とする場合には、CPU20による
ダミー読取りにより得られ友アドレスを用いてFPUは
メモリ中のオペランドのスタート・アドレスを指示する
。また、 FPU22はバスに要求し、メモリに書込み
、各書込み後にアドレスを増す。FPU22がその内部
で演算中には、CPU20はバスを有し、プログラムの
指示を続行できる。これが、 FPU22 とCPU2
Gの間の共同処理の意味するところである。
CPU2G とFPU22の間の同期が時たま求められ
、次の浮動小数点命令の実行をFPUが終了するまでC
PU20は待次なければならない。適切な時刻にCPU
20 を待たせる九めに、命令中に特別なソフトウェア
命令WITが設けられる。同様に、メモリに情報を記憶
させることをFPU22が希望すると、CPU20がそ
の情報を読出そうとする前に、その情報が記憶されてい
ることを確認せねばならない。ま次、この同期は、FP
U22が求められている動作をまだ行っていない場合に
、 CPU2Gを待たせるソフトウェア命令により行わ
れる。
この共同処理を行うために、ローカル・バス上でのアク
ティビティとCPU2Qの状態をモニタおよびトラック
し、CPU20 と交信するバス・インターフェイス・
ユニット(BIU)30 (g2図)をFPU22は有
し、その間に数値処理装置の演算ユニットと浮動小数点
実行ユニツ) (FEU)32において演算が独立に続
けられる。
第1図は、本発明の処理装置である浮動小数点装fi(
FPU)22とともに、デジタル・システム内の情報を
同時に共同して処理するCPU20の簡略化したプ自ツ
ク図である。FPU22は外部状態制御ビンと管理機能
制御ビンの多くをCPU20 と共有している。たとえ
ば、CPU20 とFPU22はラッチ29とバス制御
器2Tおよびトランシーバ25にエフロ−カル・バス2
6を介してシステム・ノ(ス28へ結合され、クロック
24により制御されて動作する。CPU20とFPU2
2の間のローカル・バス内の正確な性質と整合について
詳しく説明することは本発明の範囲をこえるのでここで
は省略する。
FPU22の性能と信頼度の向上は、同時および共同の
処理の装置としてFPUを含む第1図に示されている装
置についての説明から明らかとなる。
FPU22の演算動作から省かれている例外、割込みお
よびソフトウェア取り扱いなどは必然的にCPU20に
まかされることになり、非適切なまたは誤った演算実行
により仕事を過電に与えられたり、遅延させられたりす
ることなしに、装置全体は命令の処理を自由に続行する
第2図はFPU220基本的な内部構造の簡略化したブ
ロック図である。FPU22はバス・インターフェイス
・ユニット(BIU)30と、浮動小数点実行ユニット
(FEU)32とを含む。BIU30 とFEU32は
相互に作用し、はぼ独立して、または互いに統合されて
動作する。この二重機能内部構造のFPU22により、
BIU3Gはローカル・システム・バスの状態を連続し
てトラックできるとともに、浮動小数点命令の実行はF
EU32において同時に行われる。
BIU30の機能ハローカル・システム・バスをトラッ
クし、浮動小数点命令を復号し、状態情報を維持し、F
PU22がデータを転送している時にローカル・バスを
制御することである。B!み乍Wフォーマットおよびデ
ータ・インターフェイス・ユニット34がBIU30 
とFEU32の間の指令、オペランドおよび状態の交信
を取り扱う。
CPU20 とFPU22は予めフ・エッチされている
命令の待ち行列を同時に保つ。したがって、FPU22
は浮動小数点命令をCPU20 と同時に復号する。浮
動小数点命令を検出したFPU22はシステム・バスの
制御を行い、求められたメモリのvf、mリサイクルま
念は書込みサイクルを行う。20ビット・データ・ポー
ト36がBIU30をローカル・バス26へ結合する。
データ・ポート36には6バイト命令キユー38と、2
0ビット・浮動小数点命令(FPI)アドレス・レジス
タ40ト、16ビット・制御語(CW)レジスタ42と
、16ビット・状り語<SW)レジスタ44と、16ビ
ット・タグ語(TW)レジス/46とが結合される。F
PU22とローカル・バスとFPU22の間で命令のや
p取りされる命令を復号して必要な管理処理を行うため
に、付加論理レジスタおよび復号回路47もBIU30
に含まれる。
浮動小数点命令装[32は、第2図に64ビット小数バ
ス48および16ビット指数バス49として示されてい
る、8ビット幅の内部のファイル・フォーマットにより
特徴づけられる。全ての数値量はFEU32内のこの標
準ファイル長実数、すなわち、15ビットのバイアスさ
れた指数と符号ビットおよび63ビット小数を有する数
値へ貸換される。FEU32内の小数についての全ての
計算は67ビットの確度まで行われ、それから、後で説
明するように、精度制御設定に従って丸められる。
小数バス48へは、8レジスタ深さのレジスタ・ファイ
ル50と、プログラム可能な桁送り器52と、ステイツ
キイ・ビット検出および加算器54と、ポストすなわち
和桁送p器56.と、スキップ桁送り器58と、商レジ
スタ62と、マルチプレックスされたBレジスメ64と
、超越的近似の計算に用いられる種々の定数を含む定数
ROM60  とを含むファイル・メモリ・プレイが結
合される。
また、演算と処理に必要ないくつかの一時的しジスタロ
8も含まれる。マイクロ・コード化された命令に応答し
て個別制御する念めの制御ロジック68も含まれる。制
御ロジック8Bは命令を復号するためのマイクロコード
・エンジンと、マイクロコード・プログラムを記憶する
九めのマイクロコードROMと全含む。
次に、第8m 、 8b図を参照して、メモリからFE
U32への数のロードについて説明する。データ、たと
えばBIU3Qにエフ16ビット・ブロックで転送され
た64ビット整数が1つの一時しジスタロ6の中に箇か
れ、それから和レジスタ80ヘロードされる。次の16
ビット・ブロックも一時しジスタロ6の中に置かれるが
、この時は和レジスタにロードされる前に、桁送り器5
2において]6ビットだけ左へ桁送りされる。残pの2
つの16ビット・ブロックも、64ビット整数が和レジ
スタ80において組立てられるまで、同様にロードおよ
び桁送りされる。和レジスタ80には16個の先行零が
依然として置かれている。ここで正規化を行うことがで
きる。和レジスタ80は8つの8人カッアゲートを含み
、それらの入力端子が内部の和レジスタに結合され、そ
れらのノアゲートの出力端子がコード化回路へ結合され
る。
このコード化回路はどれだけの数のバイトが全零である
かを識別する。8つのバイトの全てが全零であるとする
と、零指示器がただちに作動させられる。0〜7バイト
が全零であれば、全零バイトの数が先行零カウンタ15
4にロードされる。この先行零カウンタ154はシフト
・カウント・レジスタ146へ結合され、このレジスタ
の出力端子はマルチプレクサ148へ結合される。この
マルチプレクサの出力はプログラム可能な桁送p器52
における桁送夕の数を制j御する之めに用いられ、それ
により和レジスタ80の内容の設定を全部零のバイトの
数だけ左へ桁送りさせる。同様に、今1つのコード化回
路の入力端子はレジスタ80の最高位バイトの8ビット
場所に結合される。3ビット・フィールドが先行零カウ
ンタ154と、シフト・カウント・レジスタ146と、
マルチプレクサ148へ同様にロードされて、和レジス
タ80の内Sを左へ先行バイト中の零ビット場所の残り
の数だけ桁送シする。それから、先行零カウンタ154
に貯えられているバイト桁送りとビット桁送りの数が指
数回路142へ結合され、そこにおいて訂正された指数
が発生され血。それから、整数を表わす正規化された数
がレジスタ・ファイル50に貯えられる。
次に、ファイル・フォーマットにおける32ビット実数
の正規化について説明する。BIUからの32ビットM
は、16の下位ビットを有する語1と、16の上位ビッ
トを有する飴2とより成ることが特徴である。値40が
マイクロコードの制御に従って丸めパラメータ表158
からロードされる。
丸めパラメータ表158はシフト・カウント・レジスタ
146へ結合され、その結果として、語1の桁送りされ
次位が和レジスタ80に貯えられる。それから飴2がレ
ジスタASEの中に置かれる。このレジスタASEは左
から右へ符号ビットと、指数ビットと、7個の上位ビッ
トを含む。マ九、丸めパラメータ表158からの57場
所だけのASEの内容の左桁送9に続いて、1だけ右桁
送gが行われ、lが最上位置のビット位置に置かれる。
それから、レジスタASEの内容が加算により和レジス
タ80に加えられて正規化された実数を生ずる。80ビ
ット・ファイル・フォーマット内に含意先行lが含まれ
る。メモリ実数の指数が指数バス49を介して指数回路
142へ結合され、そこで特殊ケースの例外についてテ
ストされ、ファイル・7オーマツトの指数に変換される
。正規化され友小数とファイル・フォーマット指数が次
にレジスタ・ファイル50にロードされる。
18桁BCDは、ホーナーの法則を実施アルゴリズムと
して用いる一連の掛算(1つの左桁送りと三重桁送りの
加算)を用いて、80ビット・ファイル・フォーマット
へ翻訳される。
ファイル・フォーマットから選択されたデータ形式への
変換は次のようにして行われる。整数の場合ニは、デー
タ・フォーマットで衣わすことができる指数の最大数が
指数ROM160から指数回路142へ読込オれる。変
換すべき数の指数と最大数の間の差(d=最大指針−指
数)がマイクロコードの制御の下に発生されて、指数回
路142にょジpべられる。dが零より小さいとすると
、あふれ状態になって誤97ラグが発生される。dが零
に等しいとすると、質排すべき数が正(我々の規約によ
V)であればあぶれが指示され、ま念は変換すべき数が
負であれば小数がi、ooo、、、oでなければあぶれ
が生ずる(これは表現できる負の最大数である)。さも
なければその数は妥当であると考えられる。dが零より
大きければ、指数回路142から線144を介してシフ
ト・カウント・レジスタ146へdが転送される結果と
して、小数部がd場所分だけ右へ桁送りされる。
フォーマット実数からメモリへの変換は指数回路142
における指数の検をと丸めにより同様に行われる。和レ
ジスタ80内の80ビット数が丸めパラメータ表158
により決定されt一定の数の場所だけ左へ桁送りされる
。たとえば、23ビットのシグニフイカンドを有する単
精度の数が40場所だけ左へ桁送りされる。ガード(G
)ビットと丸め(8)ビットおよびステイツキイ(S)
ビットが和レジスタ80の残りの右端部から以下に記載
のようにして計算される。変撲すべき元の数はレジスタ
・ファイル50からコピーされ、それから23ビットだ
け右へ桁送りされ、G、R,Sビットは右端につけられ
る。ファイル・フォーマットにおける最上位の1ビット
は抑制される。そうすると小数を丸めることができ、B
IU30 を経てユーザーへ16ビット・セグメントで
転送するために、指数回路142からの調べられた指数
とともにレジスタに貯えることができる。
BCD整舷0場合にはファイル・フォーマットにされた
数は10  により除される。その商が1より小さけれ
ば、その商は商の指数に等しいビット数により非正規化
され、ループに入って、その商に10を乗じ、上位4ビ
ットを差し引いて各BCD桁を形成することにより各B
CD桁が抽出される。
外部メモリから受けたオペランドは16ビット語のバウ
ンダリへ予めフォーマットされ、 BIU/FIIJイ
ンターフェイス34を介してF’EU32ヘリアルタイ
ムで転送される。引き続く加算が小数部と指数部、およ
びオペランドのn類を識別するセット・タグを形成する
ように、16ビットIを加算器54に置くためにFEU
32はプログラム可能な桁送り器52を用いる。FEU
32 の制御はマイクロコード制御エンジンすなわち制
御ロジック68にエフ行われる。この制御ロジック68
はその命令ヲB I U/FEUインターフェイス・ユ
ニット34内のレジスタから受ける。
浮動小数点命令により求められ几動作をFEU32が実
行すると、FEU32は実行条件と誤り条件の少くとも
一方に関する情報を状態語レジスタ44とタグ・レジス
タ46へ転送し、それからそれらはユーザーへ中継され
る。前記し友ように、BIU/BFUインターフェイス
・ユニット34は指令とオペランドおよび状態を表わす
信号をBIU30とFEU 32の間でやジ取りさせる
。FPU22に入ると、オペランドの各部分はBIU3
0 を介してBIU/FEUインターフェイス・ユニッ
ト34内のプレフォーマットへ転送され、それからFE
U32へ転送される。FEU32においてオペランドは
妥当性チエツクfe1回受け、全てのオペランドの計算
に用いるファイル・フォーマットに再びバックされる。
BIU/FEUインターフェイス・ユニット34内のプ
レフォーマットは、オペランドをバック・ツー・バック
・メモリ・サイクルを用いて転送できるように、再バッ
キングを一連のmユニットの加算にできる。B I U
/F EUインターフェイス・ユニット34の主な目的
の1つは、数値処理装置に、メモリの奇数と偶数のアド
レスへ情報を与える語ユーザーとバイトユーザーとをイ
ンターフェイスすることである。この種のサービスを行
うのに適当な回路が1978年5月30日付の未決の米
国特許出願第910103号に開示されている。いずれ
のケースにおいても、情報は2バイト語としてBIU/
FEUインターフェイス・ユニット34によりFEU3
2へ一様に与えられる。
FPU 22の演算の中心部は加算器54と、それに関
連するレジスタ、桁送ジ器および制御回路より成るナノ
マシンの周囲に集中させられている。
ナノマシンは高度の算術計算をファイル・フォー1ツト
で、ハードウェアにおいて高速で直接行うことができる
性能で特徴づけられている。
ナノマシンが第7図に示されている。このナノマシンは
乗算、除算、平方根および法演算のために本発明で用い
られる動作ルーチンについて考えることにより良く理解
できる。
A9乗算 まず乗算ルーチンについて説明する。ここで説明する実
施例においては、各クロック・サイクルの間に2ビット
が並列に処理される。
乗数が周知のプログラム制御に従ってスキップ桁送り器
58ヘロードされる。このスキップ桁送り器58は通常
の双方向桁送りレジスタであって、乗算ルーチンにおい
ては、制御回路70(第7図)からの制御に応答して、
各クロック・サイクルごとにその内容を右へ2位置だけ
桁送りする。現在の乗数制御コードを指示するために最
も右側の2ビットが用いられる。スキップ桁送り器58
は、本発明に合致する周知の原理に従って構成されてイ
ルランダム・ロジックより成る制御回路70へ結合され
る。3ビット加薯を避けるためにマルチプレクサも制御
する制御回路70内の平衡フリップフロップ(FF)が
用いられる。第1表はビット対乗数の関数としての制御
回路TOの動作と、回路10内の平衡FFの平衡とをp
約して示すものである。
第1表 OB        O IB        O IB        0 2B        0 2B        O −B        1 −B        1 0B        1 被乗数は内部64ビット小数バス48からのプログラム
制御に従ってBレジスタ72ヘロードされる。このBレ
ジスタ72の出力はマルチプレクサγ4により制御され
、このマルチプレクサは制御回路TOにより制御される
。マルチプレクサT4はその出力端子を加算器54の一
方の側へ結合する。加算器54の他方の側は小数バス4
8へ結合される。加算器54の出力端子は和桁送ジ器T
6へ結合され、マシン制御回路78により選択的に制御
される。和桁送ジ器γ6の出力端子はマスク・スレーブ
・レジスタ80へ結合される。
次に、第1表を参照しながら、第7図に示す回路の動作
を説明する。制御回路70の平衡FFの旧平衡が零の場
合には、BレジスタT2の内容が零にセットされて、乗
数す。blがそれぞれoo、oiまたは10であるかに
応じて直結され、または左へ1ビット位置だけ桁送りさ
れて結合される。旧平衡が零で乗数が11の場合には、
BレジスタT2の内容の補数がとられて平衡FFがセッ
トされ、そn以外は平衡FFはMc1表に示されている
ようにリセットされたままである。平衡FFの前の値が
1である場合、すなわち、サイクルの初めにこのFFが
セットされた場合には、乗数が00,01゜10または
11のいずれであるかに応じて、Bレジスタ72の内容
は、桁送りなしで、左桁送りで、もしくは補数をとられ
て加算器54の右側へ結合され、あるいは零にセットさ
れる。Jまた、第1表に示すように、旧平衡が1で乗数
が10ま九t’illの時には、平衡FFはセットされ
たままであり、それ以外の場合にはリセットされる。第
1表に示されている方法は係数0.1ま友は2を乗する
ために零乗算すなわち簡単な左桁送りを用いている。
3の乗算が求められた時は、実際に起ることは、2ビッ
ト左桁送シによる4の乗算に、2の補数の減算を組合わ
せ友ものである。乗算中は加算器54の出力はマシン制
御回路T8からの桁送りカウント制御によシ、和桁送り
器76の中で右へ2位置だけ自動的に桁送シされる。乗
算中に最も右側のビットはGRSビットになって、後で
説明するように丸めの九めに用いられる。スレーブ・レ
ジスタ84の和が加算器54の左側への入力として用い
られる。
たとえば、数1111と1010すなわち10進法で1
5と10乗算について考えてみる。本発明における正常
な動作においては、数は通常正規化されるが、ここで例
により説明する原理は数が正規化されているか否かにか
かわらず同じである。乗数1111がスキップ桁送り器
58へ挿入される。
被乗数1010はBレジスタT2ヘロードされる。
最初の数字対がス千ツブ桁送シ器58から桁送りによシ
出されて制御回路TOへ与えられる。この制御回路は第
1表に示されているロジックに従って、BレジスタT2
の補数をマルチプレクサ74を介して加算器54の右側
へ結合させる。レジスタ72の内容の補数が求められる
理由は、和桁送シ器T6へ−1010として結合さnて
いる加算器54における減算が求められ、加算器54の
右側が、和レジスタBOのクリヤにより、零に初期設定
されているからである。桁送りレジスタT6は−101
0を右へ2位置だけ桁送υして部分移−001010を
残す。平衡FFがセットされ、スキップ桁送り器58内
の数字対が制御回路TOへ結合される。
t−e、平衡FFの旧平衡が1である時の数字11は零
をマルチプレクサ74を介して加算器54の右側へ結合
させるが、その時には平衡FFはセットされたままであ
る。和は和桁送り器T6において2桁だけ右へ再び送ら
れ、和レジスタ80に部分積−00001010を残す
。この部分積は加算器54の左側へ結合され、次の数字
対00が制御回路70へ結合される。第1表に示されて
いるように、旧平衡が1である時の乗数対00はBレジ
スタT2の内容とな)、この内容はマルチプレクサ74
を介して加算器54の右側へ加えられて最後の部分積に
加え合わされる。その結果は1010−0000101
0す々わち10010110 である。これは最終結果
であって、この2進数に等しい10進数は150である
。以上の例は符号付きの負表記法で述べたが、計算は実
際には2の補数で行われる。この例では説明を明確にす
る目的だけの次めに符号つき負を用い次。
B、除算 マシン・ハードウェアにより除算を行うために、!7図
に示す回路では非回復法(non −restorln
gmethod)が行われる。除数がプログラム制御に
従ってBレジスメア2ヘロードされ、被除数は和レジス
タ80ヘロート°される。それ力為ら、前の計算の符号
に応じて、一連の加算と減算が加算器54において行わ
れる。いいかえれば、Bレジスタ72の内容が和レジス
タ80の内容に対して加算または減算が行われて、前の
演算の符号に従ってv「シい和を生ずる。各演算におけ
る符号の値は回路86によシ反転されてから商シフトレ
ジスタ62へ与えられる。いいかえれば、和の符号が正
であれば、次の演算は減算である。、これとは逆に、和
の符号が負であれば、次の演算は加算である。したがっ
て、商シフトレジスタ62においてビットごとに商が組
立てられる。
ここで、150を15で除す例について考えることにす
る。除算は正規化され念フォーマットの両方のオペラン
ドで行われる。し九がって、和レジスタ80の内容は加
算器54の左側へ150を表わす10011 0110
として結合され、加算器54の右側へは15を表わす−
11110000が結合される。この減算の結果は−1
011110で、これは和桁送りレジスタγ6へ与えら
れ、そこで1シン制御回路7Bからの桁送シカウントに
よる制御で、左へ1ビット位置だけ桁送りさせられる。
そうすると和レジスタ80の内容は−10111100
となる。この結果は負荷であるから商シフトレジスタ6
2に零がロードされ、レジスタ72の内容が加算器54
における次のサイクルにおいて和レジスタ80の内容に
加え合わされる。桁送シレジスタT6内の内容は左へ1
だけ桁送シされた後で01111000である。結果が
正であるから、シフトレジスタT6から符号をとり、そ
れを回路86により反転させることによシ2進1が商シ
フトレジスタ62ヘロードされる。同様に、桁送りレジ
スタ76における次に桁送シされる和は−111100
00である。そのために商シフトレジスタ62へ零がロ
ードされる。次のサイクルでは正の零が桁送シレジスタ
76内での和であシ、商シフトレジスタ62で右へ1ビ
ット位置だけ桁送夛されて正の1となる。引き続く各サ
イクルにおいて0が桁送シされる。その結果として商シ
フトレジスメ62の内容は1010すなわち10進の1
0になる。10進数へは以下に説明する指数制御によシ
変換される。
C1法演算 法演算は、サイクルの回数が2つの数における指数の差
により決定されるということを除き、前記し九除算と同
じゃシ方で第7図に示す回路で行われる。剰余は和レジ
スタ80に現われる。たとえば、lOモジュa8につい
て考えてみる。、マず、1010を和レジスタ80にロ
ードし、10004−Bレジス/72ヘロードする。こ
れら2つの値は同じ指数を有するから、マシン制御に従
って1つのサイクルが行われる。前記した除算ルーチン
に従って、Bレジスメア2の内容が加算器54において
和レジスタ80の内容から差し引かれて、剰余10を和
侍送りレジスタ76に残す。その剰余10は和レジスタ
80へ与えられる。2つの数の指数は等しいから、法演
算は1つのサイクルで終シ、結果は小数バス48へ与え
られる。
0、平方根 87図に示されている回路は非復旧法に従ってハードウ
ェアにおいて平方根演算も行う。この場合には引数がス
キップ桁送り器58ヘロードされる。Bレジスメア2と
和レジスタ80は初めにクリヤされる。演算中にルート
がBレジスメア2へ与えられて、回路86から結合され
た符号ビットから、1度に1ビットだけ右から左へ桁送
りされる20)各サイクルごとに2ビットがスキップ桁
送9器5Bの左端部から取り出されて、加算器54の左
側入力端子において部分剰余の右端部へ付加される。そ
のような各桁送りの間にビット対11が、Bレジスメア
2内で形成された部分ルートの右側入力端子へ与えられ
る。それらの演算は周知のランダム・ロジックにより制
御される。そのランダム・ロジックは本発明に従って選
択的に作動させられる。それから加算または減算が加算
器54で行われる。前の剰余の符号が、現在の部分ルー
トが補数をとられるか否かを決定し、前の剰余の符号が
正の場合には現在の部分ルートは補数をとられない1ま
にされる。加薯、器54からの和出力は和桁送シレジス
メ76において、マシン制御回路78からの桁送シカウ
ント制御信号に応答して、左へ2ビット位置だけ桁送シ
される。演η、が終ると、総ルートがBレジスメア2に
含マれる。
たとえば、25の平方根について考えてみる。
引数011001がス中ツブ桁送り器58にロードされ
、Bレジスタ72と和レジスタ80がクリヤされる。加
算器54の左側入力端子がooo oooo。
01に等しくセットされる。符号ビットが加算54内の
2つまたは3つの場所に複製して与えられる。
零(0=正)の和形成の符号は正であったから、レジス
メア2の内容の補数がとられて1111111゜11が
加算器54の右側入力端子へ挿入される。
桁上げが失われておシ、かつ和の符号が再び正であるか
ら加算器54における加算の和は零である。。
回路86からの反転された符号のために、Bレジスタ7
2の内容はいまは0001である。加算器54の左側へ
の次の入力は0000000.10 である。
以前の和は桁送り器76によ#)2ビット位置だけ左へ
椿送りされたから、加算器54の右側へは111 11
10.11  が入力される。次の和は1111111
.01すなわち負である。そうするとBレジスメア2の
内容は0010となシ、桁送シされた和レジスタの内容
は−1101となる。最後に、加算器54の左側入力端
子と右側入力端子へ次に与えられる入力はそれぞれ11
1 1101.01 と0000010.11である。
結果が正確であるから新しい和は正の零でアリ、平方根
がBレジスタ72に0101すなわち5として現われる
E、丸め装置および丸め方法 第7図はFEU22の演算部、とくに本発明の丸め回路
を示すものである。本発明で採用されている丸め方法は
、和および3つの丸めビットを発生する過程と、指定さ
れた丸め操作を行う過程との2つの過程より成る。丸め
ビットはガード@)ビット、丸め(6)ビットおよびス
テイツキイ(S)ビットと名づけられる。
全ての演算は最終的には1つの点で2進加算に帰着する
。第7図で、約5MHzで動作している64ビット幅の
2進加算器54の出力端子は和桁送り器γ6に結合され
る。この和桁送シ器76の出力端子ハマスタ/スレーブ
・レジスタ80へ結合すれる。このレジスタ80はその
3つの下位ビットとしてG、R,Sビットを含む。
この方法の第1の過程における和とG、R,Sビットの
発生の細部は、実行すべき演算の形式に応じて変る。た
とえば加算と減算について考えてみる。1.0101 
X 2  と1.0O11X2  というように指数の
大きさの異なる正規化された2つのオペランドの加算を
行うものとする1、小さい方のオペランドを0.000
1.0101X2  へ非正規化する。この例では、説
明を簡単にするために、語の長さを4つの2進場所に限
定している。図示の爽織例では、標準語長は64ビット
にセットされる。非正規化され友数の「尾」はピッ) 
rololJである。次に、G、R,Sビットの値をこ
の尾の値によりセットする。尾の最上位ビットはガード
(G)ビットとなシ、尾の次のビットは丸め(8)ビッ
トとな夛、尾の残りの全てのビットのオア関数はステイ
ツキイ(8)ビットとなる。し九がって、この例におけ
る非正規化された数のG、R,Sビットはそれぞれ0,
1゜1である。それから希望の演算が行われる。第7図
には、加算器54がその左側に正規化されたオペランド
のための入力端子を有し、右側に非正規化されたオペラ
ンドのための入力端子を有する様子が示されている。し
たがって、ここで説明している加算器54への2つの入
力端子の幅は64ピツトである。G、R,Sビットと桁
上げを含む次めに、加算器54の出力端子の幅は69ビ
ットである。
この方法の第2の過程においては、次に選択した演算を
行う。上記の例では、和は1.0100011X26 
である。加算の場合には、この和は和桁送り器76によ
り直接に桁送りされ、マスタ/スレーブ・レジスタ80
へ結合される。この、レジスタは演算前にクリヤされる
のが普通である。
丸め操作においては、結果の小数部の最下位ビットに2
進の1を加えるか否かの決定が行われる。
この「1」は、状態ビットrAJを生ずる制御ロジック
信号がセットされているか否かに応じて、制御プログラ
ムに従って、演算結果の最下位ビットに加えられる。丸
め操作の前または丸め操作中に状態ビット「A」は、誤
差ビットrPJのように、状態レジスタにおいてセット
さnる。これは演算結果のG、R,Sビットのオア関数
である。状態ビット「A」は、プログラム制御の下に選
択された丸めモードに従って、周知のランダム・ロジッ
クによシ発生される。丸めモードは[RCJフィールド
に捕えられる。とのf−RCJフィールドは丸めモード
のための2ビット・コード、すなわち、ri&も近い(
nearest)J   r上昇(up)j 、  r
下降(down)J、「チョップ(chop) J  
よシ成る。チョップ・モードにおいては「A」は単にO
K上セツトれ、その結果として演算結果の最下位ビット
へは2進「1」は決して加えられない。この結果は単に
チョップすなわち先端が切り取られるだけである。簡略
化し次この数値例では結果は1.01000×2 とな
る。
「下降」丸めモードではrAJは状態ビット「P」の論
理積に等しくセットされ、符号は演算結果の符号に等し
くされる。rPJすなわち、G、R。
Sビットのオア関数は1であシ、それによりそれらのビ
ットのいずれかが1の時は丸め誤差があることが示され
る。結果が正しければrPJは零でおる。したがって、
結果が正または零でおるかに応じて、「1」が結果の最
下位ビットに加えられる。いずれの場合にも、丸め誤差
があるとした場合に、丸められた結果が負の無限大へ向
って接近する、すなわち下方へ丸められるように、1が
加えられる。
同様に、「上方」丸めモードにおいては、「A」は状態
ピッ)「PJの論理積および結果の符号の反転されたも
のに等しくセットされる。このモードでは結果は丸めら
れる。この場合にはプラス無限大へ向かう丸め誤差があ
る。
最後に、「最も近い」丸めモードにおいては、ガード・
ピッ)l’−GJの論理積に等しく「A」はセットされ
、丸めビットとステイツキイ・ビットおよび結果の最下
位ビットとのI!ii!理和がとられる。
ここで示した数値例では、正しい和は機械が表わすこと
ができる数1.0100 と1.0101の間のどこか
にある。機械で表わすことができるそれら2つの数のち
ょうど間の数は1.01001である。したがって、G
ビットが零であるとすると、@算結果は1.0100の
方に近くなければならない。し九がって、状態ピッ)l
’−AJは零にセットされ、丸められた結果は1.01
00となる。
しかし、Gビットと、SビットとSビットのいずれかと
が零でないとすると、正しい結果は1.01011よシ
大きくなければならず、状態ビットrAJは1にセット
され、結果は表わすことができる最も近い数である1、
0101 まで丸められる。Gビットが1で、RとSの
ビットがともに零である場合には、マスタ/スレーブ・
レジスタ80に貯えられている結果は正しいが、機械で
表わすことができる2つの数のちょうどまん中である。
この例では、演算結果の最下位ビットが調べられ、最も
近い奇数へ、まtは最も近い偶数へ、丸めることをユー
ザーが望んでいるか否かに応じて、プログラム制御に従
って状態ビット「和63」が調べられる。
全体の丸め演算については加算または減算についての例
で説明した。乗算と除算の演算は類似しているが、この
方法の第1の過程におけるそれらの演算の実行の細部は
異なる。たとえば、乗算においては、加算器54からの
最下位の2ビットが和桁送シ器T6によシ2ビット位置
だけ、マスタ/スレーブ・レジスタ内のガードおよび丸
めビット位置へ桁送りされる。ステイツキイ・ビットは
前のクロック・サイクル中におけるガード・ビットと丸
めビットとのオア関数である。このようにして、スレー
ブ・レジスタ84内のG、R,Sビットはオアゲート8
8において組合わされて、マスタ・レジスタ82におけ
る新しいステイツキイ(S)ビットとがる。スレーブ・
レジスタ84内のSビットも、乗算過程における以前の
全てのG。
Rビットのオア関数である。
同様に、除算においては、全体の商がシフトレジスタ6
2内で組合わされ、それに続いて、剰余に対して除算が
更に2回行われる。その剰余の商ビットはGとRのビッ
ト位置へ桁送9され、剰余の総計が零でない任意のビッ
トに対して調べられる。剰余の和が零でなければSビッ
トはセットされる。
乗算または除算の場合には、第1の過程の後に丸め操作
が行われる。この丸め操作は加算と減算について説明し
九のと全くrfjJ様のやp方で補数がとられる。
本発明に従って、丸め機能がFEU32の中に系統的に
組込まれる。小数バスは68ビット幅である、すなわち
、シグニフイカンド64ビットと、1つのあふれビット
および3つのG、R,Sビットを取シ扱うから、丸め情
報は数に常に組合わされる。桁送り器52は、データ・
フォーマットに従っである数を適当な数のビットだけ桁
送シして、丸め情報を分離および識別し、かつG、R,
Sビットを計算するランダム・ロジックを含む。このラ
ンダム・ロジックはレジスタ80に関連して説明し友も
のを含む。適切な桁送シ数を丸めパラメータ表158か
ら選択し、その数を桁送りカウント・レジスタ126の
中に保持させて、適切なG 、 R。
Sビットを発生させるように桁送シ器52を選択的に制
御するために、FEU32 にはマイクロコードが含ま
れる。前記したように、G、R,Sビットはナノマシン
に自動的に保持され、かつそこで計算される。
F、プログラム可能な桁送り器 FEU32を動作させるには、以下に詳しく説明する種
々の独特な回路を必要とする。
本発明のプログラム可能な桁送シ器52はFEU32に
含まれて、1クロツク・サイクル中にO〜63ビットの
[!囲で左または右への桁送夛を行う。
一般に、この印の桁送夛はデータ・フォーマット変換、
コーデイツク近似、非正規化操作において求められる。
左または右への桁送りは双方向バイト桁送りマトリック
ス90と、双方向ビット桁送シマトリックス92とによ
)行われる(第3図〕。求められる桁送りの数は、求め
られている桁数の総数を構成する全体のバイトと小数ビ
ットの数に復号される。
たとえば、52ビットの桁送#)Kは6バイトの桁送シ
と、4ビットの桁送シが含まれる。語はFEU /<ス
48から、要求に応じて左ラッチ94または右ラッチ9
6ヘロードされ、それから指示された桁送りの向きが左
か右かに応じて、ビットの小数の数または要求されたバ
イト数だけまず桁送る左ロード・右読出しインターフェ
イス回1394を示す。同様に、右入力回路と左桁送り
出力回路として機能する右ロード・左読出しインメーフ
エイス回路96が設けられる。バイト桁送りカウント・
レジスタ98とデコーダ100がバイト桁送りマトリッ
クス90をドライブし、同様なビット桁送シカウント・
レジスタ102とデコーダ104がビット桁送りマトリ
ックス92をドライブする。レジスタ98 、102は
3ビット幅で、同様な桁送りマトリックス92.90を
ドライブする。バイト桁送υレジスタ98はデコーダ1
00により復号されてバイト桁送り指令線0,8,16
.32・・・48゜56をドライブする。同様に、ビッ
ト・デコーダ104の出力端子には8本の線0,1,2
・・・6,7が接続される。
第4図はバイト桁送りマトリックス90とビット桁送り
マトリックス92を示す。ここではバイト桁送シマトリ
ックス90についてだけ説明するが、ビット桁送シマト
リツクス92も同様な構成である。図示のマ) IJラ
ックス双方向集積回路装置で、説明を簡単にするために
左側の節点xI  を入力点とし、右側節点Yi を出
力点とすることにする。もつとも、このマトリックスは
全く対称的であるから、入力点と出力点を逆にしても変
ることはない。図示の例では、デコーダ100から「0
」復号線を作動することにより双方向素子106が作動
させられ、そのために節点Xl上の信号を節点y、″1
で直接転送して零桁送りを表わすことができる。しかし
、復号線「8」が作動させられると、双方向素子108
が作動させられて節点町を節点yI+8 へ結合する。
同様に、復号線「16Jは節点町を節点)’l+16へ
結合させる。
同様にして、デコーダ104からの制御線0,1゜2・
・・は、p44図に示されている桁送シ器に類似する桁
送シ器に、節点Xとyを交差結合させる。
この交差結合のやり方は、制御線rlJが作動させられ
定時に節点x1を節点71+1に交差結合させ、制御線
「2」が作動させられ友時に節点XI を節点XI+1
  へ結合させる、等というものである。
バイト・マトリックスとビット・マトリックスは予めチ
ャージされ、かつそれらのマトリックスは、ここで説明
している実櫂例では能動低論理状態にあるものと考えら
れる。したがって、ある数が左へ桁送シされると、9い
た右側のビット位置はデータ・ソースへ結合されない。
したがって、バイト・マトリックスまたはビット・マト
リックスの予めチャージされている状態は「0」とじて
読取られる。同様に、右桁送シの場合には最上位のビッ
ト位置に「0」が入れられる。
双方向性右読取ジインターフェイス94と、双方向性の
左読取ジインl−フェイス96の回路を詳しく考えるこ
とにニジ読取りおよびロード回路を理解できる。その構
成の単位となる回路が第5図に示されている。データ・
ビットb、が双方向素子120への入力として結合され
る。この素子120のゲートは左ま念は右への桁送シ指
令信号とタイミング・クロック−1の論理積によ多制御
される。桁送多が求められたとすると、素子120はク
ロック−1によシ作動させられて節点Ni  (これは
素子122のゲートである)を、データ・ピッ)blが
「1」か「0」かに応じて「0」または「1」にチャー
ジする。これから僅かに遅れて、素子124のゲートに
結合されている遅延された右ま次は左の桁送シ信号が低
レベルとなって、節点N、がrOJの時には節点A、を
高レベルにでき、または節点N1が「1」の時に節点A
l を低レベルにする。トランジスタ126のゲートは
節点A。
の状態により制御され、素子128とともにAl に関
して反転された出力Xi を与える。いいかえれば、b
l が低レベルの時にXlは但レベルへ引き下げられ、
またはbIが「1」の時は素子128にニジプリチャー
ジされたままとなる。
!6図は典型的なユニット読取りインターフェイス回路
を示す。ビット・マトリックス90またはバイト・マト
リックス92からの21はトランジスタ130の入力端
子へ与えられる。このトランジスタ130のゲートは遅
延された左桁送υ信号または右桁送り信号によ多制御さ
れる。回路点り。
K存在する信号はインバータ132の入力端子へ与えら
れ、このインバータの出力端子はインバータ134の入
力端子に結合される。このインバータ134の出力はイ
ンバータ132の入力端子へ、帰還素子133を介して
の左または右への桁送り信号の反転された信号に応じて
帰還され、帰還ループを形成する。第1のインバータ段
132の出力端子はFET136のゲートへ結合され、
このFET138の入力端子は接地され、出力端子はバ
ス節点b1へFET138を介して結合される。FET
138のゲートは左桁送り読取9信号または右桁送り胱
増す信号によシ制御される。バスは予めチャージされる
から、ziニオける信号r IJar o J (!:
 LテFET136のゲートに結合され、それにより節
点b1をプリチャージされている高レベル状態に保つ。
他の場合には、ziが0であると、FET136はオン
状態となって節点す、をアース電位まで引き下げる。z
iはインバータ132と134の組合わせによシ保持さ
れる。
■、浮動小数点装置のアーキテクチャと構成A、概論 本発明は、零および無限大演算、ll!4シの検出と取
り扱い、指数の非正規化および正規化に関していくつか
の独特なプロトコールを採用する。それらのプロトコー
ルを詳しく説明する前に、 FEU32の内部ファイル
の構成を理解せねばならない。第2.8図に示されてい
る内部レジスタ・ファイル50はスタックおよび一般的
なレジスタ・ファイルとして増シ扱われる。ファイル5
0中の現在のスタックの1番上は、BIUaQ内の状態
語(SW)レジスタ44における[トップ、」フィール
ドにより識別される。タグ語(TW)レジス/46の「
タグ」フィールド内の2ビット・フィールドが、各レジ
スタが空であるか、オペランドを含んでいるかを識別す
る。レジスタ・ファイル50は、指定されているトップ
・レジスタ(TO8)に対応のアドレスツシング・プロ
トコールにより、通常のレジスタとしてアドレスできる
。レジスタ・アドレスは各浮動小数点命令の開始時に計
算され、かつスタック・レジスタのトップのアドレスを
浮動小数点命令内のレジスタ・ディスプレースメント・
フィールドに加えることによシ計算される。したがって
、「トップ」プラス零はスタックのトップでtb#)、
「トップ」プラス1はスタックのトップから2番目であ
り、「トップ」プラス7はスタックの1番下である。
まず初めに、タグ詰レジスタ46の構成について説明す
る。レジスタ46は16ビット幅で、2ビットのフィー
ルドを4つづつもつ上側バイトと下側バイトで構成され
る。ここで説明する実施例では、タグ・コードは妥当に
対してはOO1零に対しては01、無効または無限に対
しては10、空に対しては11である。それらのタグは
、FEU32で用いられているマイクロコードの中での
飛越しくブランチング)と検査(インスペクシ1ン)を
周知の設計原理に従って容易にするために主として用い
られる。
状態語レジスタ44もチップ全体の現在の状態を保持す
る16ビット・レジスタである。上(111バイトは条
件付き飛越しのために用いられ、下側バイトは誤差情報
を保持し、かつ誤差回復の九めに用いられる。上側バイ
トはスタック・レジスタのトップの之めの3ビット・ポ
インタを含む8個の状態ビットで構成される。]りのビ
ット、ビジー・ビットはFEU32がビジーであること
を示すために用いられ、残りの4個の状態ビットは、褌
々の浮動小数点命令のために考えられたコーディングに
従う種々の意味をとる。状!14mレジスタ44の下側
バイトは、割込み7ラグN1精密誤クビットP、下位あ
ふれ誤pビットU、あふれ誤9ビット0、零で割る誤り
ビットQ、非正規化誤シビットD1無効誤りビットIの
ようないくつかの誤シフラグおよび例外フラグを含む。
割込みピッ)Nは割込みルートのための要求を意味する
最後に、制御語(CW)レジスタ42も2つの上側バイ
トと2つの下側バイトで構成される。各ビット場所はフ
ィールドまたはビット・フラグを表わし、そのフラグは
プログラム制御に従ってセットでき、かつ動作中に利用
されて制御機能を行う。
たとえば、上伸バイトには制御語レジスタ42は無限大
演算のためのアフィン閉鎖フラグト、丸メモードを制御
するために用いられる丸め制御2ビット・フィールド(
Re)とを含む。上側バイトの2ピツ)5度フィールド
(PRE)は結果に対して求められる精度、したがって
結果を丸めるために用いられるフォーマットを指定する
。た七えば、コードOOは24ビットの精度を示す。こ
の24ビット精度は実数単精度表示に類似する。ま九、
コード1aは実数倍精度表示に類似する53ビットの精
度を示し、コード11は整数の長い表現に類似する64
ビットの精度を表わす。制御語レジスタ42の下側バイ
トは共通マスク・ビットMのような複数のiスフビット
を含む。このマスク・ビットは状態語レジスタ44の中
のNビットをマスクして割込みルーチンの開始を阻止す
る。残シのマスク・ビット場所は関連する誤差ビットを
マスクする次めに用いられ、かつ状態語レジスタ44の
下側バイトの中で表わされている誤差に対応する。精密
誤りフラグPに対応する精密vAシビットMPと、下位
あふれ誤動フラグUK対応する下位らふれvAシマスク
MUと、あふれ誤シ0に対応するあふれ誤シマスクMO
と、零で割る誤りフラグQに対応する零で割る誤シマス
クMQと、非正規化誤りDに対応する非正規化誤りマス
クMDと、無効誤りフラグ■に対応する無効xbマスク
MIとが存在する。
次に、本発明においてデータを取り扱うやり方と精度を
制御するやシ方について要約して説明する。チップ内の
全ての動作は80ビットの実際の表現でろるファイル浮
動小数点フォーマットを用いて行われる。しかし、2つ
の整数オペランドが含まれている場合のような、演算の
結果が正確である場合には、その結果は実効的に整数で
ある。
本発明のファイル・フォーマットは80ビット数であっ
て、そのうちの64ビットが小数に割当てられ、残シの
16ビットは符号と指数に割当てられる。演算を行うた
めにオペランドを非正規化せねばならないような演算に
おいては、本発明は正常な64ビット小数を拡大させる
G(ガード)ビットとR(丸め)ビットを含む。67個
の作業ビットをこえるいずれか1つのビットがあるもの
とすると、第3のビット、すなわち、前記ステイツキイ
・ビットが、加算器に結合されているステイッキイ・ビ
ット・レジスタにセットされる。通常は、I@すのない
丸めモードにおいては結果は最も近くの表現可能な浮小
数点数に丸められ、結果が表現できる2つの値のちょう
どまん中の場合には、その結果は最も近い偶数に丸めら
れる。しかし、前記したように、制m語レジスタ42中
のRCビット・フィールドはチョップおよび指向性丸め
、すなわち上昇まtは下降の丸め、をプログラム制御に
従って行うことを許す。n変制御フィールドPREは演
算MPが丸められる対象である精度を決定する。す彦わ
ち、 PRIEは24ビット符号および小数に対してO
Oで3p、53ビット符号および小数に対して10であ
り、64ビット整数すなわちファイル・フォーマット小
数に対して11である。
あふれ誤差と下位あふれ誤差は、マスクされるならば、
指向性丸めの間に抑制される。命令中にいずれかの種類
の誤差が生じたとすると、適切にマスクされた応答が行
われ念後でのみfAD指示が抑制される。状態語レジス
タ44の適切なビットをセットすることにより誤差は報
告されず、適切に取シ扱われるだけである。
本発明によシ、未正規化の数の発生と取シ扱いを行うこ
とができる。未正規化の数というのは、小数が正規化さ
れていない、すなわち、先行ビット″!念は隠されてい
るビットが1でないような有効な数と定義される。未正
規化の数は、非常に小さいために正規化され定形では表
わすことができないような結果のために、内部で発生で
きる。たとえば、指数を大きくすれば表わすことができ
るような数、すなわち小さ々指数の数も存在する。
指数を大きくする見返りとして、指数を大きくするため
のビット位置分だけ、小数を右へ桁送りできる。そうす
ると、結果は全部零の小数(「擬似零」と定義される)
となることがある。未正規化の数は数をメモリに記憶さ
せる動作中にも作ることができる。
ファイル50の中には2種類の未正規化の数を存在させ
ることができる。そのうちの1つは、小数が正規化され
ていない場合の有効数であり、他の1つは、指数が零に
等しく、小数が零でないような無効数である。小数が正
規化されていない妥当数の場合には、指数ではなくて小
数の方は全部が零で構成され(M似零)ても良い。後者
の無効数の方の未正規化の数は、演算の結果としてiス
フされた下位あふれで発生され得る。未正規化の数が検
出される場合はどんな場合でもフラグはセットされる。
一般に、未正規化の数は、有効係数を有する限りは、そ
れら自身の領域に限定される。
たとえば、大きい方の数が非正規化される加算の場合に
は、結果は非正規化されたフォーマットの1.ま放置さ
れる。これ鉱、0フラグと飛越しをマイクロコードによ
υセットして、正規化ルーチンをオミットすることによ
シ行われる。減算の場合には、大きい方の数が非正規化
されたとすると、正規化を行うべきかということについ
ての演算の状況に依存して、特別な応答を行わねばなら
ない。
演算が加算又は減算の一方であるかに拘らず、大きい方
の数を非正規化するのであれば、結果も非正規化となる
。そうでなければ、結果は正規化される。乗−の場合に
は、結果は非正規化されたフォーマットに常に置かれる
。除算の場合には、非正規化された数が除数中にあるも
のとすると誤差がフラグされ、被除舷中に非正規化され
た数がめれば、結果は非正規化され次形に置かれる。最
後に、平方根の場合に、引数が非正規化されているとす
ると、いずれの演算も、正規化されていないオペランド
では、ナノマシンを正しい結果へ戻すことができないか
ら、除算におけるのと同様に娯りフラグが発生される。
非正規化された数の演算も、ある種の状況中では特殊な
増り扱いを要することがある。
C0符号付きの零と無限大の発生およびIj?!シ扱い 符号付きの零と無限大は例外すなわち誤りとして検出お
よび取り扱われ、本発明に従って、例外すなわち誤シが
マスクされ几とすると、特別な応答が返されるような各
場合に符号付きの零と無限大はタグづけされる。
プラス零とマイナス零は、本発明においては、メモリ・
フォーマットとファイル・フォーマットを含めて、実数
単精度および倍精度の表現で表わされる。同様に、正の
零は整数表示と、BCD表現における符号付き零で表わ
される。
演算中および種々の転送動作中は、真の零、擬似零およ
び無限大は、各場合において、マスクされなければ割込
みを生ずるタグ付き誤りすなわちタグ付きの量として取
シ扱われる。その場合には最も論理的な結果すなわち最
も予測される結果が戻される。動作が行われる前にオペ
ランドのタグがタグ論理回路140で調べられたとし、
かつ、オペランドの一方ま次は双方が妥当でないすなわ
ち、非零とすると、特殊なルーチンが、従来のマイクロ
コード制御に従って呼び出される。もし、プラス無限大
がスタックのトップにア)、他のオペランドがマイナス
無限大であるとすると、両者の和は非数、不定、!殿で
ある。同様に、スタックのトップが正の無限大を有し、
オペランド・スタックが正の無限大を有する場合には、
結果が不定(IND)となり、誤差フラグ(I誤差)が
セットされる。TOPがマイナス無限大で、プラス無限
大がオペランドとして差し引かれるものとすると、得ら
れた差はマイナスの不定である。更に、スタックのトッ
プが正の有効数を含み、オペランドが負の無限大である
場合には、得られた結果が負の無限大で、誤差フラグが
セットされていることになる。除算の場合に、零で除す
ことの誤差フラグ、Q誤差がセットされる。たとえば、
正の無限大がマイナス零により除されると結果としてマ
イナス無限大を生じ、誤差フラグとQ[I5を差のセッ
トが示される。
こnらの各側に関して、得られた結果の符号は選択され
た丸めモードに従って変えることができる。上記におい
ては、デイフォールト丸め七−ドが選択されている、す
なわち、表わすことができる2つの数の間で最も近い偶
数に丸められる。前記し交信の丸めモードにおいては、
選択された丸めモードに従って適切な符号が生じる。
演@誤差に加えて、誤差フラグをセットでき、転送と数
の取シ扱いに応じて、メモリとやり取りされる浮動小数
点命令により、スタック内で修正が施される。一般に、
応答の性質は示された誤差の種類と、それが起し次命令
とにより決定される。
各場合に、割り込みに適切な誤差フラグとインデイケー
タが設けられ、あるいは割シ込みをマスクできる。その
場合には、デザイン・ブロック内に最も信頼できる応答
すなわち解答がとくに含まれる。
(の原理を示すいくつかの例について説明する前に、本
発明の言語構造をまず全体的に理解せねばならない。命
令セットは極めて対称的で直角である。このことはその
パワーを強め、ユーザーへ融通性を与えるものである。
対称性と直角性ということは命令のフォーマットすなわ
ち構文が、任意のS類のデータ・フォーマットとともに
用いられ几場合に−様であり1行わnる演算すなわち、
加算、減算、乗算等にかかわらず−様な内部構文を有す
ることを意味するものである。
命令セットは3つの種類、すなわち、コア命令セット、
拡張セット、命令の転送セットに分けられる。コア命令
セットは基本的な数学演算を行う。
各コア命令は6FJaのオペランドに対して68Mの形
式を有する。七nらの形式の5つのうち4つはメモリ参
照形式で、1つはレジスタ形式である。
4つのメモリ参照形式は異なる蓄積表現、すなわち、短
い、せ友は長い精度および実数ま九は整数である。
拡張セットはスタック・オペランドだけに用いることが
できるより難しい数学関数を支持する。
命令の転送セットは処理装置の揮発状態の郡々の部分を
保持するというような特殊な演算を支持する。一般に、
それらの命令はソースまたは行先のためにメモリを参照
する。無数の例が考えられるが、各作用は浮動小数点命
令と、その命令によシ増シ扱われる数値量と、ソースお
よび行先とに特有のものであるから、誤差指示とその応
答との全てに適用される例について述べることはできな
い。
したがって、ここでは1つの特定の例についてだけ述べ
ることにする。まず、コア命令のフェッチ段階について
説明することにする。オペランドをあるレジスタに入れ
ることが指定されたとすると、そのレジスタの内容は一
時的な記憶装置にコピーして入れられる。そのコピーは
結果を計算するためのオペランドとして用いられる。そ
のレジスタのアドレスは、法演算を用いて命令のレジス
タ・フィールドをスタック・ポインタのトップに加える
ことにより計算される。そのアドレスはフェッチ段階が
始まった時に1回計算され、浮動小数点命令が終る捷で
、スタックのトップとは独立にそのまま保たnる。■誤
差は2つの場合にひき起こされる。レジスタが空であジ
得るし、レジスタ内の数が無効であり得るのである。と
くに命令LOADについて考えることにする。誤差がマ
スクされていないとすると、本発明の回路はストップし
て割シ込みを発生する。誤差がマスクされ友とすると、
「不定」のための非数がロードされる。
それらの誤差状態が第8b図のタグ論理回路140によ
り!出される。周知のマイクロコード設計原理を用いて
命令が復号さnる。零、無効、9および非正規化数をそ
れぞれ示す誤差I、D、Qが、指数パス49に結合され
ている指数論理回路142を用いてタグを調べることに
より識別される。
各数がファイル50にロードされると、指数回路142
はランダム・ロジックを用いて指数をテストし、前記誤
り条件のどれが存在するかを確かめる。
タグはマイクロコードの制御の下にタグ論理回路140
へほぼロードされ、そこからレジスタ・ファイル50ヘ
ロードされてそこに貯えられる。ある数がFEU32の
中にロードされ念後で誤差0.Uま九はPが生ずること
があシ、それらの誤差は選択されているデータの出力の
種類に従って指数論理回路142によシ再び検出される
オペランドは全て80ビット長にフォーマットされるか
ら、計算結果の精度はオペランドの精度とは独立である
。そうすると、結果は外部の行先に応じて実数、長い実
数またはその他のデータ・フォーマットにされる。全て
の例外(I、O,U。
D+Q、P)(状態フラグ)は検出され、その例外がマ
スクされなければ割り込みが発生される。割シ込みが発
生されないとすると、本発明の数値データ処理装置にお
いて例外の取シ扱いが行われ、メモリがアドレスされた
とすると例外データと、割り込みを行わせる命令へのポ
インタと、データへのポインタとの保持または読出しが
行われる。
オフインとグロジエクテイブ無限大を含めて、内部例外
の取り扱いの一部として、零および無限大の演算がとく
に行われる。
この数値データ処理装置により、丸め、精密ま次は無限
大演算と例外の取シ扱い、または全体の環境および例外
フラグの蓄積の場合に制御語をロードおよび蓄積する命
令を認める。
本発明の数値データ処理装置の性能はその信頼度と同様
に拡大される。前記し次ように、ファイル・フォーマッ
トだけでなく加えて6つのタイプのアークを、それぞれ
のフォーマットを一般化されたファイル・フォーマット
へ変換することにより、このデータ処理装置は受は入れ
ることができる。
正確な演算は、不正確な例外rPJとそのマスクとを含
ませることによシ行われる。丸め誤差が除かれたとする
と、正しく丸められ九結果が得られ、rPJフラグがセ
ットされる。マスク「PM、Jが零であると、割シ込み
が発生される。そうでなければ実行が単に続行されるだ
けである。これにより会計機能を行わせることができ、
かつ会計機能を丸め誤差から保護できる。
丸めモードを用いることにより、符号つき零と符号つき
無限大と、区間(インターバル)演算とをこの数値処理
装置で行うことができる。零と無限大につけられている
符号により、七の零または無限大が区間の端の点である
場合に開かれ九区間または閉じられた区間を認める。そ
して、符号はその区間が開で為れでいるか閉じられてい
るかを示れる開平、乗算、除算、法減少などのような特
殊な命令もいくつか含む。
本発明は、種々変形して実施できる。スタック・ポイン
タは減少(デクリメント)させられ、スタックの元来の
トップのシダニフイカンドの値は1と2との間ま九は一
1七−2との間に桁ずらしされ、スタックの新しいトッ
プにロードされる。
「剰余(リメインダー)」命令は引数と周期関数を主レ
ンジに戻す。この命令により、スタックのトップの、2
つの要素の丸め誤差のない正確な剰余の計算、すなわち
、スタックのトップの次(TO8I)の内容を法とする
スタックのトップ(TO8)の内容に等しく剰余をセッ
トすることが許される。その剰余はスタックのトップに
戻され、スタックのトップの次はそのままにされる。
超越関数のコーデイツク(Card i e )近似も
本発明の数値処理装置においてハードウェアで処理でき
る。デコンポーズ命令と剰余命令を含むことにより、超
越関数の計算に要する引数減少化を可能とする。コーデ
イツク近似はFEU32により計算でき、指数、対数、
タンジェント、アークタンジェントのような超越関数を
ハードウェアで得られる。デコンボーズ命令は、スタッ
クのトップの内容をファイル・フォーマットにおいて表
されるスタックのトップの指数の積分値とする。
■0本発明の要約と利点 以上説明し友ように、本発明によって集積回路数値処理
装置が大幅に改良された。本発明の数値処理装置は多く
の科学計算および統計計算に対して十分に高速であp、
事務および商業用の計算に用いて十分に正確でアシ、イ
ンメーパル演算のような新規な応用に十分精密であり、
性能、安全性、信頼の面でこれまで実現されなかっ交は
どの高いレベルが達成され、しかも価格が安い。本発明
の数値処理装置は長い実数、短い実数、長い整数、短い
整数、コンバク)BC’D、および整数語なトノ全ての
種類のデータが80ビット長の内部ファイルすなわち一
時的な実数フォーマットへ変換される。数値プロセッサ
内の内部スタック、指数バス、小数パス、演算装置およ
び全ての桁送り器と全てのレジスタは、3つの付加丸め
ピッ) (GR8)  と、適切な場合にはタグ・ビッ
トを含めて、80ビットmで動作するように構成されて
いる。ファイル・フォーマットはシグニフィヵンドに明
確な先行ビットを有し、それにより正規化されない演算
と正規化された演算を行うことができる。
多項式近似、マクロ−リン級数、逐次除算およびバブ(
Padeh approxinatlon)のよう々関
数を近似するために知られている各種の数学的表現が指
定され之誤差程度以下の誤差とするために、級む中のど
れだけのエレメント’を必要とするかを決定する目的で
調べられる。級砂内のエレメントの数を妥当な範囲内に
保つことができる唯一のやり方は、近似級数中の引数の
領域を制限することであることを容易に示すことができ
る。結果が計算され定接は、数値処理装置が取り扱うよ
うに設計されている数の元の領域を囲むことをバックア
ップする領域を構成する何らかの方法がなければならな
い。コーデイツク(Cardle) 近似が知られてい
る。この近似の一般的なやり方は、擬似除算を用いて引
7vを非常に小さな剰余まで小さくして、−連の擬似商
を作ることである。次にそれらの剰余の関数の近似値が
計算され、それから擬似商との擬似乗算を用いて正しい
引数により関数を再構成する。コーデイツク近似のアル
ゴリズムは周知である。多少複雑なものであるが、ここ
ではくり返えす必要はない。引数を小さくする正確な目
標点は希望する確度と、用いる数学的な近似法と、計算
しようとする関数とに依存する。(21!l富の設計考
察に従って)加えられるマイクロコード制御が、それら
の引数減少計算と近似計算を行う九めに用いられる。擬
似除算と擬似乗算は、ROM63からの数学的定数とオ
ペランドま之は剰余の関数を採用する加算と減算を用い
るループとして実現さCる。ループカウントにより制御
される桁送りがコーデイツク・アルゴリズムにおいて求
められる。
この目的の次めにループ・カウンタ162が設けられ、
このループ・カウンタ162ハマルチプレクサ148 
<!: ROMポインタ・ロジック164に結合される
このポインタ・ロジック164はROM63からの読出
しを制御する。コーデイツク近似に用いるハードウェア
を構成するのに重要なことは、多くのソースからプログ
ラム可能な桁送り器へデータをロードするのに融通性を
持たせることである。たとえば、桁送り器52はマルチ
プレクサ148を介して、ループカウンタ1ε2により
、先行零カウンタ154のビット部分またはバイト部分
と、にょシ可変制御でき、ま九、桁送りカウント・レジ
スタ146を介して小数バス48へ結合される任意のノ
ースかも、レジスタ146を介して丸めパラメータ表1
58から、さらに、カウンタ146からの桁送りカウン
トまたはその補数により可変制御できる。
ループカウンタ162へはマイクロコード直接フィール
ドからロードされる。このような組合わせがないと、コ
ーデイツク近似は実用的な寸法のICチップで十分な速
度でかつ正確に行うことはできない。
【図面の簡単な説明】
M1図は本発明の数値データ処理装置が用いられるシス
テムと環境、すなわち周辺装置と外部メモリへのアクセ
スを有する中央処理装置とともに示されている本発明の
数値データ処理装置の概略ブロック図、82図はバス・
インターフェイス・ユニットと浮動小数点実行ユニット
に分割して示す本発明の装置の簡略化したブロック図、
M3図は任意の長さの左右の桁送シが1クロツクサイク
ル中に行われるようになっている、本発明中のプログラ
ム可能な桁送シ器のブロック図、第4図は第3図に示さ
れているプログラム可能な桁送り器のバイト・マトリッ
クス桁送シ部の略図、第5図はプログラム可能な桁送り
器で用いられるロード・インターフェイス・ユニットの
略図、第6図はプログラム可能な桁送り器で用いられる
読取りインターフェイス・ユニットの略図、第7図は乗
算、除算、法減少および開平がハードウェアで直接行わ
れるようになっている浮動小数点実行ユニットのナノマ
シン部の簡略化し次ブロツク図、第8a。 8b図は本発明の浮動小数点、実行ユニットの全体を示
す詳細なブロック図である。 22・・・・浮動小数点処理装置、3o・・・・バス・
インターフェイス・ユニット、32・・・・浮動小数点
実行ユニツ)、40・・・・浮動小数点命令アドレス・
レジスタ、42・・・・制御語レジスタ、44・・・・
状態語レジスタ、46・e・・タグ語レジスタ、50・
―−・レジスタ・ファイル、56・・・・和桁送り器、
62・・−・商レジスタ、80・・骨・和レジスタ、9
0・・・・バイト桁送ジマトリックス、92・・・・ビ
ット桁送りマトリックス。 屑弘、2゜ カ七、4゜ 。+:zgm           、/ IJJカも
、6゜

Claims (20)

    【特許請求の範囲】
  1. (1)数値処理器における演算動作の間に全ての数値例
    外を検出する過程と、検出された前記例外の性質を状態
    レジスタ内に指示する過程と、符号付き零と無限大とな
    る動作の例外を含む指示された例外に特定の応答を前記
    数値処理器内で発生する過程と、発生された前記応答を
    選択的にマスクする過程とを備えることを特徴とする数
    値量を計算する方法。
  2. (2)被乗数をマルチプレックスされたレジスタにロー
    ドする過程と、乗数をスキップ桁送り器にロードする過
    程と、第1のクロック・サイクルにおいて前記乗数を前
    記スキップ桁送り器において2ビット場所だけ桁送りす
    る過程と、前記スキップ桁送り器からの桁送りビット対
    を制御回路へ結合する過程と、前記被乗数の選択された
    関数を加算器の第1の入力端子へ結合する過程と、前記
    第1の入力端子へ与えられる第1の入力を前記加算器の
    第2の入力端子へ与えられる第2の入力へ加える過程と
    、前記加算器からの和を和レジスタにおいて2ビット位
    置だけ右へ桁送りする過程と、桁送りされた前記和を前
    記加算器の前記第2の入力端子へ結合する過程とを備え
    、前記関数は前記制御回路に結合された前記桁送りされ
    たビットに応答して前記制御回路により決定されること
    を特徴とする数値処理装置において数値を掛算する方法
  3. (3)除数をマルチプレックスされているレジスタへロ
    ードする過程と、被除数を和レジスタへロードする過程
    と、この和レジスタの内容を加算器の第1の入力端子へ
    結合させ、前記マルチプレックスされているレジスタの
    符号付き内容を加算器の第2の入力端子へ結合させる過
    程と、前記第1と第2の入力端子へ与えられた入力を加
    え合わせる過程と、前記和レジスタ内の新しい和を左へ
    1ビット位置だけ桁送りしてから貯える過程と、前記和
    レジスタからの新しい和の反転された符号を右から始ま
    つて左へ直列の商桁送り器にロードする過程とを備え、
    前記マルチプレックスされているレジスタの前記符号付
    き内容の符号は前のクロック・サイクルの後の和レジス
    タの内容の符号により決定され、かつ前記マルチプレッ
    クスされているレジスタの前記符号付き内容の符号は前
    記前のクロック・サイクルの間における前記和の符号の
    反対であることを特徴とする数値処理装置において数値
    量を割算する方法。
  4. (4)特許請求の範囲の第3項に記載の方法であつて、
    前記過程は除数と被除数の指数の差に等しい数のサイク
    ルだけ順次繰り返えし、それにより法演算を行うことを
    特徴とする方法。
  5. (5)引数をスキップ桁送り器にロードする過程と、マ
    ルチプレックスされているレジスタと和レジスタをクリ
    ヤする過程と、前記スキップ桁送り器からの最上位のビ
    ット対を加算器への第1の入力端子における最下位と、
    それより1つ上位との2つのビット位置へロードし、前
    記和レジスタの内容を前記第1の入力端子の残りのビッ
    ト場所へロードする過程と、前記加算器の第2の入力端
    子の前記2つの下位位置に11をロードし、かつ前記第
    2の入力端子の残りのビット場所へ、前記和レジスタの
    内容の符号とは逆の符号を有する、前記マルチプレック
    スされたレジスタの符号付き内容をロードする過程と、
    前記加算器の前記第1と第2の入力端子に加えられた入
    力を加え合わせる過程と、前記加算器により発生された
    和を前記和レジスタ内で2ビット場所だけ左へ桁送りす
    る過程と、前記和レジスタの内容の反転された符号を前
    記マルチプレックスされたレジスタの最下位ビット場所
    へロードする過程とを備えることを特徴とする数値処理
    装置において数値量の平方根を得る方法。
  6. (6)より小さな指数を有するオペランドを指数比較手
    段で選択する過程と、選択された前記オペランドの指数
    を非正規化要素において非正規化する過程と、非正規化
    された前記オペランドのガード・ビットと丸めビットお
    よびステイツキイ・ビットを計算し、それに前記ガード
    ・ビットと丸めビットおよびステイツキイ・ビットを添
    える過程と、ガード・ビットと丸めビットおよびステイ
    ツキイ・ビットを添えられた前記非正規化されたオペラ
    ンド数を前記第2のオペランドに加える過程と、制御ロ
    ジックおよび制御フラグの設定による決定に従つて前記
    和の最下位ビットに1を選択的に加えることにより前記
    和を丸めることを特徴とする小数と指数を有する数値量
    を数値処理装置において丸める方法。
  7. (7)演算動作と情報の取り扱いの間に、符号付き零と
    無限大を含む数値例外を検出および指示するための第1
    の手段と、前記数値例外に対する応答を選択的にマスク
    するための第2の手段と、前記第1と第2の手段へ結合
    され、前記例外がマスクされた時に前記各例外へ特殊な
    応答を選択的に与える第3の手段とを備え、それにより
    、数値の処理中に全ての例外が検出および指示され、か
    つ、マスクされると、計算を確実なやり方で続行できる
    ように、全ての例外に応答が与えられることを特徴とす
    る数値量を計算する数値データ処理装置。
  8. (8)特許請求の範囲の第7項に記載の装置であつて、
    複数のモードのうちの選択した1つのモードにおいて、
    前記数値量を丸める丸め手段を含むことを特徴とする装
    置。
  9. (9)特許請求の範囲の第8項に記載の装置であつて、
    前記丸め手段は前記数値量に対応するガード・ビットと
    丸めビットおよびステイツキイ・ビットを記録するため
    の3ビット・レジスタを含み、ステイツキイ・ビットは
    前記数値量の1つから右へ桁送りされた全てのビットの
    排他的オア関数であることを特徴とする装置。
  10. (10)特許請求の範囲の第8項に記載の装置であつて
    、Pフラグ・レジスタとPMマスク・レジスタを含み、
    正確な演算を行う手段を含み、前記丸め手段において丸
    めが行われ、かつ割込み手段により割込みが発生された
    時に前記Pフラグ・レジスタがセットされ、前記PMマ
    スク・レジスタがセットされると、割込み発生なしに実
    行が継続され、丸められた結果が前記丸め手段により発
    生されることを特徴とする装置。
  11. (11)小数バスを含み、算術計算を行う数値プロセッ
    サであつて、第1の入力端子が前記小数バスへ結合され
    る加算器と、数値量を貯えてそれを桁送りするための和
    要素と、マルチプレックスされたレジスタと、双方向ス
    キップ桁送り器と、前記和要素と前記マルチプレックス
    されたレジスタとに結合され、求められた算術計算の性
    質に応答して、前記和要素と前記マルチプレックスされ
    たレジスタを選択的に制御する制御器とを備え、前記和
    要素の入力端子は前記加算器の出力端子へ結合され、前
    記和要素の出力端子は前記小数バスへ結合され、前記マ
    ルチプレックスされたレジスタの入力端子は前記小数バ
    スへ結合され、前記スキップ桁送り器の第1の出力端子
    は前記加算器の前記第1の入力の選択された1つの下位
    ビットへ結合され、前記スキップ桁送り器の第2の出力
    端子は前記制御器へ結合されてそれへ制御情報を与え、
    それによりハードウェアにおいて掛算動作を選択的に行
    うことができることを特徴とする数値処理装置。
  12. (12)特許請求の範囲の第11項に記載の装置であつ
    て、前記和要素の符号ビット場所へ結合されるインバー
    タを備え、このインバータは前記マルチプレックスされ
    たレジスタへ結合され、それにより平方根計算と法計算
    をハードウェアにおいて選択的に行うことができること
    を特徴とする装置。
  13. (13)特許請求の範囲の第12項に記載の装置であつ
    て、直列商シフトレジスタを備え、このシフトレジスタ
    の入力端子は前記インバータへ結合され、それにより除
    算をハードウェアにおいて選択的に行うことができるこ
    とを特徴とする装置。
  14. (14)左桁送りのために選択的に作動させられる双方
    向のロードおよび読取サの第1のインターフェイス回路
    と、この第1のインターフェイス回路に結合されるバイ
    ト桁送りマトリックスと、このバイト桁送りマトリック
    スに結合されるビット桁送りマトリックスと、このビッ
    ト桁送りマトリックスへ結合されて右桁送りのために選
    択的に作動させられる双方向のロードおよび読取サの第
    2のインターフェイス回路と、左および右へのバイト桁
    送りの数を制御するために前記バイト桁送りマトリック
    スへ結合されるバイト桁送り制御回路と、左および右へ
    のビット桁送りの数を制御するために前記ビット桁送り
    マトリックスへ結合されるビット桁送り制御回路とを備
    え、それにより1回のクロック・サイクルの間に任意の
    数のビットにより左または右への桁送りを行うことがで
    きることを特徴とするプログラム可能な双方向桁送り器
  15. (15)特許請求の範囲の第14項に記載の双方向桁送
    り器であつて、前記ビットおよびバイト桁送りマトリッ
    クスは複数の入力ポートと複数の出力ポートを有し、前
    記入力ポートは対応する複数の双方向素子により前記出
    力ポートへ選択的に結合され、前記バイト桁送りマトリ
    ックス中の前記複数の双方向素子は、各入力ポートが前
    記複数の双方向素子のうちの1つを介して8番目ごとの
    出力ポートへ結合されるように8桁の桁送りで前記入力
    ポートと出力ポートへ選択的に結合されるように組にな
    つて構成され、前記ビット桁送りマトリツクス中の複数
    の前記双方向素子は、前記入力ポートの1つを前記双方
    向素子の1つを介して連続する8つの出力ポートのうち
    の1つへ選択的に接続するように、構成され、前記双方
    向素子は前記ピット桁送り制御回路と前記バイト桁送り
    回路へ結合されてそれらの回路に応答することを特徴と
    する双方向桁送り器。
  16. (16)小数バスと、この小数バスに結合されるプログ
    ラム可能な桁送り器と、このプログラム可能な桁送り器
    に出力端子が結合される桁送りカウント・レジスタと、
    この桁送りカウント・レジスタに出力端子が結合される
    先行零カウンタと、このカウンタと前記小数バスに結合
    される和レジスタとを備えることを特徴とするコーデイ
    ツク近似を計算するための数値処理装置。
  17. (17)特許請求の範囲の第16項に記載の装置であつ
    て、前記桁送りカウント・レジスタの入力端子へ結合さ
    れる丸めパラメータ表を備え、前記桁送りカウント・レ
    ジスタの別の入力端子は前記小数バスへ結合されること
    を特徴とする装置。
  18. (18)特許請求の範囲の第16項に記載の装置であつ
    て、前記プログラム可能な桁送り器はマルチプレクサに
    より制御され、このマルチプレクサの1つの入力端子は
    ループカウンタへ結合され、別の入力端子は前記桁送り
    カウント・レジスタへ結合されることを特徴とする装置
  19. (19)特許請求の範囲の第18項に記載の装置であつ
    て、前記桁送りカウント・レジスタは、その桁送りカウ
    ント・レジスタの内容またはその論理的な補数を選択的
    に結合できる桁送りカウント選択回路を介して前記マル
    チプレクサへ結合されることを特徴とする装置。
  20. (20)特許請求の範囲の第16項に記載の装置であつ
    て、前記プログラム可能なシフトレジスタは、左桁送り
    のために選択的に作動させられる双方向性のロードおよ
    び読取りの第1のインターフェイス回路と、この第1の
    インターフエイス回路に結合されるバイト桁送りマトリ
    ックスと、このバイト桁送りマトリックスに結合される
    ビット桁送りマトリックスと、このビット桁送りマトリ
    ックスに結合され、右桁送りのための選択的に作動させ
    られる双方向性のロードおよび読取りの第2のインター
    フェイス回路と、左と右へのバイト桁送りの数を制御す
    るために前記バイト桁送りマトリツクスへ結合されるバ
    イト桁送り制御回路と、左と右へのビット桁送りの数を
    制御するために前記ビット桁送りマトリックスに結合さ
    れるビット桁送り制御回路とを備えることを特徴とする
    装置。
JP63309761A 1980-02-13 1988-12-07 数値量を計算する方法および数値データ処理装置 Pending JPH02138620A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/120,995 US4338675A (en) 1980-02-13 1980-02-13 Numeric data processor
US120995 1993-09-13

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2081981A Division JPS56129946A (en) 1980-02-13 1981-02-13 Method for computing numerical value and numerical data processor

Publications (1)

Publication Number Publication Date
JPH02138620A true JPH02138620A (ja) 1990-05-28

Family

ID=22393800

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2081981A Granted JPS56129946A (en) 1980-02-13 1981-02-13 Method for computing numerical value and numerical data processor
JP63309761A Pending JPH02138620A (ja) 1980-02-13 1988-12-07 数値量を計算する方法および数値データ処理装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2081981A Granted JPS56129946A (en) 1980-02-13 1981-02-13 Method for computing numerical value and numerical data processor

Country Status (2)

Country Link
US (1) US4338675A (ja)
JP (2) JPS56129946A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04283831A (ja) * 1991-03-13 1992-10-08 Fujitsu Ltd 除算器
US6942412B2 (en) 2000-11-07 2005-09-13 L'oréal Product application device including a dip tube
US7066674B2 (en) 2000-11-07 2006-06-27 L'oreal, S.A. Application device, system, and method
JP2019535075A (ja) * 2016-09-30 2019-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 10進乗算およびシフト命令

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4484276A (en) * 1981-02-19 1984-11-20 Sperry Corporation Shift matrix preselector control circuit
US4442498A (en) * 1981-04-23 1984-04-10 Josh Rosen Arithmetic unit for use in data processing systems
US4464716A (en) * 1981-05-22 1984-08-07 Data General Corporation Digital data processing system using unique formatting techniques for performing arithmetic ALU operations
DE3144015A1 (de) * 1981-11-05 1983-05-26 Ulrich Prof. Dr. 7500 Karlsruhe Kulisch "schaltungsanordnung und verfahren zur bildung von skalarprodukten und summen von gleitkommazahlen mit maximaler genauigkeit"
US4577282A (en) 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
US4608634A (en) * 1982-02-22 1986-08-26 Texas Instruments Incorporated Microcomputer with offset in store-accumulator operations
US4488252A (en) * 1982-02-22 1984-12-11 Raytheon Company Floating point addition architecture
US5854907A (en) * 1982-02-22 1998-12-29 Texas Instruments Incorporated Microcomputer for digital signal processing having on-chip memory and external memory access
US4491910A (en) * 1982-02-22 1985-01-01 Texas Instruments Incorporated Microcomputer having data shift within memory
US4509116A (en) * 1982-04-21 1985-04-02 Digital Equipment Corporation Special instruction processing unit for data processing system
JPS592143A (ja) * 1982-06-29 1984-01-07 Hitachi Ltd 情報処理装置
EP0108664A3 (en) * 1982-10-04 1987-10-28 Fairchild Semiconductor Corporation Floating point microprocessor
US4928223A (en) * 1982-10-06 1990-05-22 Fairchild Semiconductor Corporation Floating point microprocessor with directable two level microinstructions
JPS5979350A (ja) * 1982-10-29 1984-05-08 Toshiba Corp 浮動小数点演算装置
JPS59154564A (ja) * 1983-02-24 1984-09-03 Hitachi Ltd プログラマブルコントロ−ラ
US4758978A (en) * 1983-04-18 1988-07-19 Motorola, Inc. Method and apparatus for selectively evaluating an effective address for a coprocessor
DE3486465D1 (de) * 1983-04-18 1998-04-02 Motorola Inc Verfahren und Vorrichtung zum Koordinieren einer Instruktionsausführung durch eine Zusatzdatenverarbeitungseinheit
US4589084A (en) * 1983-05-16 1986-05-13 Rca Corporation Apparatus for symmetrically truncating two's complement binary signals as for use with interleaved quadrature signals
JPS59216245A (ja) * 1983-05-25 1984-12-06 Nec Corp 正規化回路
US4594679A (en) * 1983-07-21 1986-06-10 International Business Machines Corporation High speed hardware multiplier for fixed floating point operands
JPS6043751A (ja) * 1983-08-18 1985-03-08 Hitachi Ltd 情報処理装置
JPS6054070A (ja) * 1983-09-02 1985-03-28 Nec Corp 演算装置
US5093775A (en) * 1983-11-07 1992-03-03 Digital Equipment Corporation Microcode control system for digital data processing system
JPS60136872A (ja) * 1983-12-26 1985-07-20 Hitachi Ltd ベクトル処理装置
US4947316A (en) * 1983-12-29 1990-08-07 International Business Machines Corporation Internal bus architecture employing a simplified rapidly executable instruction set
US4562553A (en) * 1984-03-19 1985-12-31 Analogic Corporation Floating point arithmetic system and method with rounding anticipation
JPS6125245A (ja) * 1984-07-12 1986-02-04 Nec Corp 丸め処理回路
JPS6132139A (ja) * 1984-07-24 1986-02-14 Nec Corp 双方向バレルシフト回路
JPS61213927A (ja) * 1985-03-18 1986-09-22 Hitachi Ltd 浮動小数点演算処理装置
JPS6238937A (ja) * 1985-08-13 1987-02-19 Panafacom Ltd 浮動小数点演算における保護桁処理方式
US4763294A (en) * 1985-12-19 1988-08-09 Wang Laboratories, Inc. Method and apparatus for floating point operations
US4991080A (en) * 1986-03-13 1991-02-05 International Business Machines Corporation Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
US4827441A (en) * 1986-03-27 1989-05-02 Motorola, Inc. Barrel shifter
US4847802A (en) * 1986-06-12 1989-07-11 Advanced Micro Devices, Inc. Method and apparatus for identifying the precision of an operand in a multiprecision floating-point processor
US4845659A (en) * 1986-08-15 1989-07-04 International Business Machines Corporation Accelerated validity response permitting early issue of instructions dependent upon outcome of floating point operations
US4888721A (en) * 1986-09-09 1989-12-19 Hitachi, Ltd. Elementary function arithmetic unit
US5193159A (en) * 1986-09-24 1993-03-09 Hitachi, Ltd. Microprocessor system
JPH079643B2 (ja) * 1986-09-24 1995-02-01 株式会社日立マイコンシステム コプロセツサデ−タ転送制御方式
US4811211A (en) * 1986-09-26 1989-03-07 Performance Semiconductor Corporation On-line overflow response system and ALU branching structure
JPS63157233A (ja) * 1986-12-20 1988-06-30 Fujitsu Ltd 浮動小数点演算装置
US5341482A (en) * 1987-03-20 1994-08-23 Digital Equipment Corporation Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
JPS648438A (en) * 1987-06-30 1989-01-12 Mitsubishi Electric Corp Data processor
US4864527A (en) * 1987-08-24 1989-09-05 Victor Peng Apparatus and method for using a single carry chain for leading one detection and for "sticky" bit calculation
US4858101A (en) * 1987-08-26 1989-08-15 Allen-Bradley Company, Inc. Programmable controller with parallel processors
US4876664A (en) * 1987-08-26 1989-10-24 Allen-Bradley Company, Inc. Programmable controller with a dual intermodule message system
US5193189A (en) * 1987-10-07 1993-03-09 Allen-Bradley Company, Inc. Programmable controller with multiple priority level task processing
US4937777A (en) * 1987-10-07 1990-06-26 Allen-Bradley Company, Inc. Programmable controller with multiple task processors
JPH0769783B2 (ja) * 1987-11-16 1995-07-31 日本電気株式会社 例外処理方式
US5101344A (en) * 1988-01-28 1992-03-31 Motorola, Inc. Data processor having split level control store
US5367649A (en) * 1988-05-20 1994-11-22 Waferscale Integration, Inc. Programmable controller
US5153848A (en) * 1988-06-17 1992-10-06 Bipolar Integrated Technology, Inc. Floating point processor with internal free-running clock
DE58909182D1 (de) * 1988-07-05 1995-05-24 Siemens Ag Netzwerk -Baustein und Architektur für die programmierbare Emulation künstlicher neuronaler Netze mit digitaler Arbeitsweise.
JPH0261723A (ja) * 1988-08-29 1990-03-01 Matsushita Electric Ind Co Ltd ステートマシン
US4928259A (en) * 1988-09-23 1990-05-22 Intel Corporation Sticky bit predictor for floating-point multiplication
US4901270A (en) * 1988-09-23 1990-02-13 Intel Corporation Four-to-two adder cell for parallel multiplication
US4931970A (en) * 1989-01-13 1990-06-05 International Business Machines Corporation Apparatus for determining if there is a loss of data during a shift operation
US5027308A (en) * 1989-02-14 1991-06-25 Intel Corporation Circuit for adding/subtracting two floating point operands
US5010508A (en) * 1989-02-14 1991-04-23 Intel Corporation Prenormalization for a floating-point adder
US5170475A (en) * 1989-03-06 1992-12-08 Motorola, Inc. Data processor having instructions for interpolating between memory-resident data values respectively
US5475631A (en) * 1989-03-09 1995-12-12 Micron Technology, Inc. Multiport RAM based multiprocessor
US5307303A (en) * 1989-07-07 1994-04-26 Cyrix Corporation Method and apparatus for performing division using a rectangular aspect ratio multiplier
US5046038A (en) * 1989-07-07 1991-09-03 Cyrix Corporation Method and apparatus for performing division using a rectangular aspect ratio multiplier
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
US5159566A (en) * 1989-09-05 1992-10-27 Cyrix Corporation Method and apparatus for performing the square root function using a rectangular aspect ratio multiplier
US5060182A (en) * 1989-09-05 1991-10-22 Cyrix Corporation Method and apparatus for performing the square root function using a rectangular aspect ratio multiplier
US5144576A (en) * 1989-09-05 1992-09-01 Cyrix Corporation Signed digit multiplier
US5042001A (en) * 1989-10-02 1991-08-20 Cyrix Corporation Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier
EP0449408A3 (en) * 1990-03-28 1993-07-21 Advanced Micro Devices, Inc. System adaptable for managing data
US5412785A (en) * 1990-04-09 1995-05-02 Motorola, Inc. Microprogrammed data processor which includes a microsequencer in which a next microaddress output of a microROM is connected to the or-plane of an entry PLA
JP2556612B2 (ja) * 1990-08-29 1996-11-20 日本電気アイシーマイコンシステム株式会社 バレルシフタ回路
US5966528A (en) * 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
US5765015A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
EP0485690B1 (en) * 1990-11-13 1999-05-26 International Business Machines Corporation Parallel associative processor system
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5963746A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
US5765012A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
US5630162A (en) * 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5708836A (en) * 1990-11-13 1998-01-13 International Business Machines Corporation SIMD/MIMD inter-processor communication
US5588152A (en) * 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US5794059A (en) * 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5963745A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
US5809292A (en) * 1990-11-13 1998-09-15 International Business Machines Corporation Floating point for simid array machine
US5617577A (en) * 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5828894A (en) * 1990-11-13 1998-10-27 International Business Machines Corporation Array processor having grouping of SIMD pickets
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5594918A (en) * 1991-05-13 1997-01-14 International Business Machines Corporation Parallel computer system providing multi-ported intelligent memory
US5278782A (en) * 1991-06-03 1994-01-11 Matsushita Electric Industrial Co., Ltd. Square root operation device
DE69231051T2 (de) * 1991-09-05 2001-01-18 Cyrix Corp Verfahren und Anordnung zur vorteilierten Division
WO1993008525A2 (en) * 1991-10-24 1993-04-29 Intel Corporation Data processing system
US5361370A (en) * 1991-10-24 1994-11-01 Intel Corporation Single-instruction multiple-data processor having dual-ported local memory architecture for simultaneous data transmission on local memory ports and global port
US5594927A (en) * 1992-01-09 1997-01-14 Digital Equipment Corporation Apparatus and method for aligning data transferred via DMA using a barrel shifter and a buffer comprising of byte-wide, individually addressabe FIFO circuits
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
US5600584A (en) * 1992-09-15 1997-02-04 Schlafly; Roger Interactive formula compiler and range estimator
US5347481A (en) * 1993-02-01 1994-09-13 Hal Computer Systems, Inc. Method and apparatus for multiplying denormalized binary floating point numbers without additional delay
US5305248A (en) * 1993-04-23 1994-04-19 International Business Machines Corporation Fast IEEE double precision reciprocals and square roots
US5548544A (en) * 1994-10-14 1996-08-20 Ibm Corporation Method and apparatus for rounding the result of an arithmetic operation
US5511016A (en) * 1994-11-30 1996-04-23 International Business Machines Corporation Method for store rounding and circuit therefor
US5867722A (en) * 1995-04-25 1999-02-02 United Microelectronics Corporation Sticky bit detector for a floating-point processor
US5752071A (en) * 1995-07-17 1998-05-12 Intel Corporation Function coprocessor
US5768169A (en) * 1995-10-02 1998-06-16 Intel Corporation Method and apparatus for improved processing of numeric applications in the presence of subnormal numbers in a computer system
ATE241170T1 (de) * 1995-10-06 2003-06-15 Patriot Scient Corp Architektur für einen risc-mikroprozessor
US5812439A (en) * 1995-10-10 1998-09-22 Microunity Systems Engineering, Inc. Technique of incorporating floating point information into processor instructions
KR19980082906A (ko) * 1997-05-09 1998-12-05 김영환 부동 소수점 숫자의 정수형으로의 변환 방법
JP3029812B2 (ja) * 1997-06-03 2000-04-10 株式会社ジャストシステム 演算エラー復旧方法およびその装置,並びにその方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US6961846B1 (en) * 1997-09-12 2005-11-01 Infineon Technologies North America Corp. Data processing unit, microprocessor, and method for performing an instruction
US6578059B1 (en) * 1998-10-10 2003-06-10 Institute For The Development Of Emerging Architectures, L.L.C. Methods and apparatus for controlling exponent range in floating-point calculations
US6791564B1 (en) 2000-05-05 2004-09-14 Ipfirst, Llc Mechanism for clipping RGB value during integer transfer
EP1320934A4 (en) * 2000-08-09 2004-04-07 Skybitz Inc FREQUENCY TRANSPOSER USING CORDIC PHASE ROTATION DEVICE
US7039906B1 (en) * 2000-09-29 2006-05-02 International Business Machines Corporation Compiler for enabling multiple signed independent data elements per register
US7139900B2 (en) * 2003-06-23 2006-11-21 Intel Corporation Data packet arithmetic logic devices and methods
US7437593B2 (en) * 2003-07-14 2008-10-14 International Business Machines Corporation Apparatus, system, and method for managing errors in prefetched data
FR2867289A1 (fr) * 2004-03-02 2005-09-09 France Telecom Procede et dispositif pour accomplir une operation cryptographique
CN101359284B (zh) * 2006-02-06 2011-05-11 威盛电子股份有限公司 处理数个不同数据格式的乘法累加单元及其方法
US8151160B1 (en) 2008-05-09 2012-04-03 Lsi Corporation Configurable low-density parity-check decoder for LDPC codes of arbitrary block size and method of configuring the same
US11675599B2 (en) * 2020-08-04 2023-06-13 Dell Products L.P. Systems and methods for managing system rollup of accelerator health
WO2022271163A1 (en) * 2021-06-23 2022-12-29 Pqsecure Technologies, Llc Computer processing architecture and method for supporting multiple public-key cryptosystems based on exponentiation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5278332A (en) * 1975-12-25 1977-07-01 Agency Of Ind Science & Technol Batch digit shifter
JPS5386539A (en) * 1977-01-10 1978-07-31 Hitachi Ltd Arithmetic unit

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3434114A (en) * 1966-09-23 1969-03-18 Ibm Variable floating point precision
US3594565A (en) * 1968-05-31 1971-07-20 Singer Co Round off apparatus for electronic calculators
US3603934A (en) * 1968-07-15 1971-09-07 Ibm Data processing system capable of operation despite a malfunction
GB1397438A (en) * 1971-10-27 1975-06-11 Ibm Data processing system
US3871578A (en) * 1972-10-10 1975-03-18 Digital Equipment Corp Data processing system for multiplying and intergerizing floating point numbers
JPS5098253A (ja) * 1973-12-26 1975-08-05
US4021655A (en) * 1976-03-30 1977-05-03 International Business Machines Corporation Oversized data detection hardware for data processors which store data at variable length destinations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5278332A (en) * 1975-12-25 1977-07-01 Agency Of Ind Science & Technol Batch digit shifter
JPS5386539A (en) * 1977-01-10 1978-07-31 Hitachi Ltd Arithmetic unit

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04283831A (ja) * 1991-03-13 1992-10-08 Fujitsu Ltd 除算器
US6942412B2 (en) 2000-11-07 2005-09-13 L'oréal Product application device including a dip tube
US7066674B2 (en) 2000-11-07 2006-06-27 L'oreal, S.A. Application device, system, and method
JP2019535075A (ja) * 2016-09-30 2019-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 10進乗算およびシフト命令

Also Published As

Publication number Publication date
JPH0123806B2 (ja) 1989-05-09
JPS56129946A (en) 1981-10-12
US4338675A (en) 1982-07-06

Similar Documents

Publication Publication Date Title
JPH02138620A (ja) 数値量を計算する方法および数値データ処理装置
US4484259A (en) Fraction bus for use in a numeric data processor
US4941120A (en) Floating point normalization and rounding prediction circuit
US5631859A (en) Floating point arithmetic unit having logic for quad precision arithmetic
KR100239029B1 (ko) 가산기와 함께 사용하기 위한 결과 정규화기 및 결과 정규화 방법과 그를 포함하는 데이터 프로세서
US6099158A (en) Apparatus and methods for execution of computer instructions
JP2674754B2 (ja) バレル・シフタ
US3871578A (en) Data processing system for multiplying and intergerizing floating point numbers
USRE33629E (en) Numeric data processor
US5995991A (en) Floating point architecture with tagged operands
EP0540150A2 (en) Improved arithmetic logic unit
US4509144A (en) Programmable bidirectional shifter
JPH06208456A (ja) 集積化乗算/累算ユニットを有するcpu
GB2267589A (en) Performing integer and floating point division using a single SRT divider
JPH02294820A (ja) 浮動小数点数演算処理装置および演算処理方法
US3699326A (en) Rounding numbers expressed in 2{40 s complement notation
US6249798B1 (en) Method, apparatus and computer system for directly transferring and translating data between an integer processing unit and a floating point processing unit
US5247471A (en) Radix aligner for floating point addition and subtraction
US5144576A (en) Signed digit multiplier
GB2196453A (en) Treatment of floating point numbers
JPH0139131B2 (ja)
US6233595B1 (en) Fast multiplication of floating point values and integer powers of two
EP1634163B1 (en) Result partitioning within simd data processing systems
US4942547A (en) Multiprocessors on a single semiconductor chip
KR100431726B1 (ko) 부호달린나눗셈을이행하는방법