JPH0749770A - 演算装置 - Google Patents

演算装置

Info

Publication number
JPH0749770A
JPH0749770A JP3068412A JP6841291A JPH0749770A JP H0749770 A JPH0749770 A JP H0749770A JP 3068412 A JP3068412 A JP 3068412A JP 6841291 A JP6841291 A JP 6841291A JP H0749770 A JPH0749770 A JP H0749770A
Authority
JP
Japan
Prior art keywords
stages
accumulator
calculation
floating point
accumulators
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.)
Withdrawn
Application number
JP3068412A
Other languages
English (en)
Inventor
Glenn A Tamura
グレン・タムラ
Prem Sobel
プレム・ソーベル
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPH0749770A publication Critical patent/JPH0749770A/ja
Withdrawn 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Saccharide Compounds (AREA)
  • Photoreceptors In Electrophotography (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 独立した、並列な、または関連したパイプラ
イン化計算を実行しうる浮動小数点演算装置を得るこ
と。 【構成】 演算論理装置は、少なくとも2つ段において
計算するための手段を含み、この手段は、少なくともも
2つの段の各々を、少なくとも部分的に同時に計算する
ための手段と、少なくとも2つの段の各々を計算するた
めの手段が、一度に1つの計算しかを行なわないことを
確実にするための手段とを含む。この発明の実施例にお
いて、浮動小数点装置のパイプ段とともに働くアキュム
レータは、計算手段を含む。この発明はまた、計算を少
なくとも2つの段に分けるステップと、少なくとも2つ
のアキュムレータ、前記少なくとも2つの段の各々にお
ける計算につき1つのアキュムレータを用いて、段の結
果を別々に類算するステップとを含む計算を行なう方法
を含む。

Description

【発明の詳細な説明】
【0001】
【関連の出願への相互参照】この出願は次の米国特許出
願に関するものである。
【0002】 連続番号 名称 発明者 (06940/0002) パイプライン化された浮動小数点処理装置 パールマン (Pipelined Floating Point Processing (Perlman )、 Unit) 他 (06940/0003) 正規化パイプライン化された浮動小数点 グプタ 処理装置 (Gupta )、他 (Normalizing Pipelined Floating Point Processing Unit ) (16940/0005) 多重演算のブール条件を収集するための装 ミックミン 置および方法 (McMinn)、他 (Apparatus and Method For Collecting Boolean Conditions of Multiple Operations ) (06940/0007) 高速繰反復除算のための特殊キャリ保存加 シャー 算器 (Shah)、他 (A Special Carry Save Adder For High Speed Iterative Division) (06940/0009) 高速混合基数加算器 リンチ (High Speed Mixed Radix Adder) (Lynch )、他 (06940/0010) 基数4キャリ先見ツリーおよびその冗長セル (06940/0014) 平方根オプションを有する高速除算器 リンチ (High Speed Divider With Square Root (Lynch )、他 Option) すべての相互参照された出願はこれとともに同じ日付に
出願され、かつこの発明の譲受人に譲渡される。すべて
の相互参照された出願は、すべてここで参照することに
より援用される。
【0003】
【発明の背景】
【0004】
【発明の分野】この発明は、コンピューティングシステ
ムのための演算装置に関するものであり、より詳述すれ
ば、浮動小数点演算装置に関するものである。
【0005】
【関連技術の説明】多くのコンピュータプログラムは、
多数の浮動小数点算術演算を必要とする。したがって、
そのようなプログラムが行なわれるコンピュータによっ
て実行される多数の命令は、浮動少数点命令である。そ
のようなプログラムについては、サイクルごとに実行さ
れ得る浮動小数点算術命令の数が大きいほど、オペレー
ションの機械速度はより速い。
【0006】先行技術は、浮動小数点処理時間の速度を
上げるための努力の例を十分に備えている。デグルート
(DeGroot)の米国特許4,683,547は、
たとえば、各サイクルに生じられるべき、2つの浮動小
数点結果を許容する浮動小数点演算装置を開示する。そ
の同じ特許は、すぐに実行されるべき多重算術演算を許
容する演算装置の、先行技術の教示を論ずる。さらに別
のアプローチは、オーレアリ(O’Leary)の米国
特許4,075,704に示され、そのアプローチは、
2つの段パイプライン化された浮動小数点加算器を構成
することに関係する。
【0007】上で説明された特許および類似の特許の教
示にもかかわらず、どこにもここで説明され、かつ特許
請求されるような知られるべき装置および方法は、先行
技術において開示されまたは提案されておらず、その装
置および方法は、システム速度に関して非常に望ましい
特徴を有する。
【0008】
【発明の概要】演算装置は少なくとも2つの段で計算す
るための手段を含み、この手段は少なくとも2つの段の
各々を、少なくとも部分的に同時に計算するための手段
と、少なくとも2つの段の各々を計算するための手段
が、一度に1つの計算しかを行なわないことを確実にす
るための手段とを含む。この発明の実施例において、浮
動小数点装置のパイプ段とともに働くアキュムレータ
は、計算手段の一部分を形成する。この発明はまた、計
算を少なくとも2つの段に分けるステップと、少なくと
も2つのアキュムレータ、前記少なくとも2つの段の各
々について1つのアキュムレータ、を用いて、段の結果
を別々に累算するステップとを含む。この発明の好まし
い実施例において、4つのアキュムレータがある。
【0009】この発明の実施例において、演算装置はパ
イプライン化されたコンピュータ演算装置であってもよ
い。確かに、このパイプライン化されたコンピュータ演
算装置は、浮動小数点計算を行なうように構成されても
よい。
【0010】この発明の教示に従って、少なくとも2つ
の段の各々を、少なくとも部分的に同時に計算するため
の手段は、少なくとも2つのアキュムレータを含んでも
よい。少なくとも2つのアキュムレータの各々は、別個
の段と作動的に関連付けられてもよい。さらに、少なく
とも2つの段の各々を計算するための手段が、一度に1
つの計算しか行なわないことを確実にするための手段
は、アキュムレータにつき1つの制御トークンが作動的
に関連付けられる、少なくとも2つの制御トークンを含
んでも良い。
【0011】この発明の実施例はまた、計算エラー検出
手段を含み、その計算エラー検出手段は、論理和を取ら
れた状態レジスタを含むであろう。
【0012】この発明はまた、少なくとも2つのパイプ
段で計算するためのパイプライン化されたコンピュータ
演算装置を含み、このパイプライン化されたコンピュー
タ演算論理装置は、各々が別のパイプ段と作動的に関連
づけられる少なくとも2つのアキュムレータと、少なく
とも2つのアキュムレータの各々のオペレーションのた
めの利用可能性または利用不可能性を示すための手段と
を含む。この発明のこれらの実施例のいくつかは、浮動
小数点計算を行なってもよい。
【0013】上で説明されたこの発明の方法は、論理和
を取られた状態レジスタでエラーを検出するステップを
含んでもよい。この発明の方法はまた、段の結果がいつ
得られたのかを示すステップを含む。段の結果がいつ得
られたかを示すステップは、各対のアキュムレータにつ
き少なくとも1つの制御ビットを伴なう。
【0014】したがって、この発明の目的は、独立した
並列な、または関連されたパイプライン化計算を実行し
得る演算論理装置を提供することである。
【0015】この発明の別の目的は、パイプラインアー
キテクチュアの速度を最大にすることである。
【0016】さらにこの発明の別の目的は、すべてのハ
ードウェアを同時に用いて、それによって性能を最大に
する演算論理装置を提供することである。
【0017】
【発明の好ましい実施例】今、図1を参照して、プロセ
ッサ2を含む計算機システムの簡略化されたシステム図
が示される。いくつかの後続の図と同様にこの図の目的
は、この発明の教示に従う多数のインタリーブされたア
キュムレータが有効に組入れられてもよい環境を示すこ
とである。
【0018】プロセッサ2は3つの非多重化バスを用い
て外部命令およびデータにアクセスする。これらのバス
は集合的にチャネルとして参照されてもよい。チャネル
は、命令転送のための32ビットバス4と、データ転送
のための第2の32ビットバス6と、命令およびデータ
アクセス間で共用される第3のアドレスバス8とを含
む。アドレスバス8はパイプライン化されるので、命令
またはデータ転送が完了する前に解放され得る。このこ
とは最初のアクセスが完了する前に次のアクセスが始ま
ることを許容し、かつプロセッサ2が同時進行の2つの
アクセスを有することを許容する。
【0019】図1に示されるシステム全体は命令ROM
10および命令メモリ12を含むように理解されてもよ
く、両方ともアドレスバス8および命令バス4の間で作
動的に接続される。さらに、データメモリ14およびデ
ータ転送コントローラ16がアドレスバス8およびデー
タバス6の間で作動的に接続されるように示される。さ
らに、データ転送コントローラ16はまた、システムバ
ス18に信号を送り、かつシステムバス18から信号を
受取るように作動的に接続される。
【0020】今、図2を参照して、プロセッサ2のより
よい理解が得られるようにプロセッサ2のデータフロー
図が示される。
【0021】プロセッサ2は命令実行に対して4段階の
パイプラインを実現し、4段階は“取出し”、“デコー
ド”、“実行”および“書き戻し”である。プロセッサ
2の命令取出し装置20は命令を取出し、かつ命令をほ
かの機能装置に与える。装置20は命令先取りバッフ
ァ、分岐目標キャッシュおよびプロセッサカウンタ装置
を組入れる。これらのサブユニットは以下で図3を参照
してさらに論じられるであろう。命令取出し装置20の
すべてのコンポーネントはプログラムパイプラインの取
出し段階の間に動作する。
【0022】プロセッサ2はまた実行装置22を含む。
実行装置22は、レジスタファイル、アドレス装置、演
算/論理装置、フィールドシフト装置、優先付け装置
(prioritizer)および浮動小数点処理装置
を含む。これらのサブユニットは、命令取出し装置20
のサブユニットと同様に、また以下で図3を参照してさ
らに論じられる。レジスタファイルおよびアドレス装置
はパイプラインのレコード段階の間に動作する。演算/
論理装置、フィールドシフト装置および優先付け装置は
パイプラインの実行段階の間に動作する。レジスタファ
イルはまた書き戻し段階の間に動作する。
【0023】またさらに図2を参照して、プロセッサ2
はメモリ管理装置24を含むように理解されてもよい。
メモリ管理装置24は、すべての分岐、ロードおよびス
トアに対してアドレス変換およびメモリ保護機能を行な
う。装置24はパイプラインの実行段階の間で動作する
ので、それが発生する物理的アドレスは書き戻し段階の
始めに利用できる。
【0024】プロセッサ2における装置20、22およ
び24の相互接続は、それらのシステムバスとのインタ
フェースと同様にまた図2に示される。
【0025】今、図3を参照して、プロセッサ2のサブ
コンポーネントに注目するさらなる詳細が図で示され
る。このプロセッサは、命令取出し装置20とメモリ管
理装置24と実行装置22とを含む。さらに、命令取出
し装置20は命令先取りバッファ26、分岐目標キャシ
ュ28およびプログラムカウンタ装置30を含むと理解
してもよい。また先に述べられたように、メモリ管理装
置24はすべての分岐、ロードおよびストアに対してア
ドレス変換およびメモリ保護機能を行なうための手段3
2を含むと理解してもよい。最後に、実行装置22はレ
ジスタファイル34、アドレス装置36、演算/論理装
置38、フィールドシフト装置(参照番号38でもまた
示される)、優先付け装置(参照番号38でもまた示さ
れる)および浮遊小数点処理装置40を含むと理解して
もよい。様々なほかのエレメント(たとえば、特殊目的
レジスタ42)および相互接続の詳細が図9に示される
が、それらはただ周辺的にこの発明に関連するだけなの
で、かつプロセッサ2をよく理解するために図だけで当
業者には十分通じるので、浮動小数点装置40およびそ
れが作動的に接続するほかのエレメント以外のすべて装
置に注目するさらなる詳細はここでは明らかにされな
い。
【0026】浮動小数点装置40のいくつかの注目に値
する局面が図3を参照して見られるかもしれない。浮動
小数点装置40がAおよびBオペランドを処理すること
を認識して、これらのAおよびBオペランドはそれぞれ
Aバス44、Bバス46を経てレジスタファイル34か
らくる。またAおよびBバス44,46が両方向バスで
あり、そのためオペランドは浮動小数点装置40からレ
ジスタファイル34へ読出されてもよいということが注
目されるであろう。処理の結果、たとえば、浮動小数点
装置40による計算、の結果は結果バス48を経てレジ
スタファイルに書込まれる。また、浮動小数点装置40
の演算に対する命令はプロセッサ命令バス50を経てそ
こに伝送される。
【0027】今、図4を参照して、この発明の教示に従
って構成されたパイプライン化された浮動小数点処理装
置の様々なサブコンポーネントが今見られる。
【0028】図3を参照して先に論じられた様々なイン
タフェース点はこの図において同様に示されかつ表示さ
れ、すなわち、レジスタファイルからのオペランドはA
バス44およびBバス46を経て浮動小数点装置に送り
込まれ、結果が結果バス48を経て浮動小数点装置を出
発し、かつ命令は命令またはIバス50を経て浮動小数
点装置に伝送される。図4を特に参照して、このタイプ
の接続は、この発明のある実施例の必要な部分ではない
ということが特に注目されるであろうにもかかわらず浮
動小数点装置内でAバス、Bバスおよび結果バスはイン
タフェース装置52に作動的に接続するように見られて
もよいが、Iバスはそこにおいてコントローラ54に作
動的に接続される。
【0029】処理に対する番号、すなわちAおよびBオ
ペランドが浮動小数点装置40のような浮動小数点装置
に入力されるとき、浮動小数点装置が所望の(または命
令された)算術演算を行ない、かつバス48のような結
果バス上に結果を出力することは周知である。浮動小数
点装置40のような浮動小数点装置は浮動小数点および
整数の両方を処理し、各々のため、32ビット(単精
度)および64ビット(倍精度)の両方のフォーマット
をサポートしてもよい。さらに、浮動小数点装置40は
整数から浮動小数点への変換を処理してもよく、かつI
EEE,DECおよびIBMフォーマットをサポートす
ると同様に、その逆を処理してもよい。浮動小数点装置
40の先の局面の各々は先に参照された関連事件におい
てさらに論じられ、かつここで参照することにより援用
される。
【0030】さらに図4を参照して、当業者はここに示
される様々な浮動小数点装置サブコンポーネントのほと
んどの機能および動作を認識するべきである。一般的に
従来の個々の態様で動作し、かつこのようなここでは詳
細に論じられないこれらのサブコンポーネントは、予検
出器(プリディテクタ)56、デノーマライザ(den
ormalizer)58、多機能装置60、リノーマ
ライザ(renormalizer)62、乗算器6
4、部分積総和器66、分周器68、丸め装置70を含
む。これらのサブコンポーネントおよびその相互動作の
いくつかの非常に重要な局面は存在するが、しかしなが
ら、それらは読者が参照するよう促されるであろう関連
事件において詳細に論じられる。
【0031】この点で、この発明が特に乗算累算(mu
litply−accumulate)演算の発行速度
を増加するための装置および方法を、特に教えるという
ことが注目され得る。一般に、乗算累算演算は3つのオ
ペランドから結果を得ることを伴なう。この結果は予備
結果を得るために、オペランドのうちの2つを掛け、か
つそれから最終結果を得るために、その予備結果に第3
のオペランドを加えることにより得られる。乗算累算演
算は、コンピュータシステムにおいて頻繁に行なわれ、
なぜなら、それらは3−D図形演算に共通の乗算マトリ
ックスに役立つからである。
【0032】より特定的には、1つの4×4のマトリッ
クス掛けるもう1つの4×1マトリックスの乗算におい
て、第1のマトリックスの第1の行における第1のエン
トリは、第2のマトリックスの第1の列における第1の
エントリ倍乗算され、かつ第1のマトリックスの第1の
行の第2のエレメントは、第2のマトリックスの第1の
列における第2のエントリ倍乗算され、等々である。種
々の乗算結果はアキュムレータ、たとえば図4における
アキュムレータ72においてストアされ、かつ各後続の
結果は、アキュムレータ72における前の乗算の結果に
加えられる。前述に基づいて、従来の4×4マトリック
ス掛ける4×4マトリックス乗算は、4つの異なる結果
を処理することを伴ない、それらの4つの異なる結果
は、すべてのオペレーションを完了するように行なわれ
なければならない4つの異なる計算から生じる。4つの
異なる結果を処理することは、この発明の実施例に何ら
かの影響を与え、アキュムレータ72の説明を特に参照
して次にさらに説明される。
【0033】前に説明されたように、浮動小数点装置4
0はパイプライン化される。この局面がさらにこの発明
の実施例に何らかの影響を与えるので、パイプライン化
に関するさらなる説明はこの後に続く。
【0034】パイプライン化のため、多重乗算演算は同
時に、異なる段で行なわれ得るということが理解される
はずである。たとえば、乗算は乗算器64および部分積
総和器66の両方のオペレーションを伴なう。どのよう
な1回の乗算演算も、同時にではないがそれらの段の両
方を通るであろう。このように、パイプライン化のた
め、1つの乗算演算は部分積総和器66段にあり、他
方、別のは同じ装置40の乗算器64段にある。
【0035】個々の乗算累算演算は次のように行なわれ
る。まず、AおよびBオペランドは乗算器64へ読取ら
れる。その結果は部分積総和器66に送られ、かつそれ
からデノーマライザ58に送られる。同時に、アキュム
レータ72におけるオペランドは、デノーマライザ58
に、そこへの第2の入力として送られる。そこから、オ
ペレーションは加算器60、リノーマライザ62、丸め
装置70へ進み、かつそれからアキュムレータ72に戻
る。
【0036】この発明の多数の実施例において重要な役
割を果たす浮動小数点装置のエレメントは、制御装置5
4であり、その種々のサブエレメントは、図6において
示される(それらのすべては相互接続されるが、それら
の相互接続の詳細は図6において示されていない)。制
御装置54は多数の機能を行ない、I−バス50から
(命令デコード手段74を介して)の命令をデコードす
ることと、他の浮動小数点ブロックに情報(たとえば、
整数または浮動小数点数が処理されているかどうか、か
つ単精度または倍精度が用いられているかどうか)を与
えることと、制御信号を浮動小数点装置機能ブロック
(たとえば、加算器60、乗算器64および除算器6
8)に与えることとを含む。制御装置54はまた、フロ
ー制御ブロック76、およびまた、この発明の実施例に
おいて重要な役割を果たす別のブロック78(“FPI
BE”)とを含む。図4を参照すると、このFPIPE
ブロックは、デノーマライザ58、加算器60、リノー
マライザ62、乗算器64、部分積総和器66、除算器
68、丸め装置70に対応するラッチの構成として予見
されてもよく、それらのラッチは、浮動小数点装置の前
述のサブエレメントと同様に接続されている。これらの
ラッチの目的は、次にさらに説明されるであろう。ま
た、制御装置54のFPIPE部分の一部は、レジスタ
ポインタコンパレータ80である。この発明の譲受人に
より現実に構成されたこの発明の実施例において、これ
らのレジスタポインタコンパレータは、浮動小数点装置
の行き先レジスタのすべてのオペレーションに対してデ
コード中のレジスタポインタオペレーションを比較す
る。この目的は、ファイルへの書込みが、正確さを維持
するために、適正な時間で行なわれるということを確実
にするためである。同様に、制御装置54は、アキュム
レータ番号コンパレータ(また図6における参照番号8
0によって指定される)を含み、それらアキュムレータ
番号コンパレータはアキュムレータ番号コンパレータが
アキュムレータ72について動作することを除いて、レ
ジスタポインタコンパレータがするのと実質的に同じ動
作を行なう。
【0037】この発明に関する一般の原理は、いま完全
に理解されるであろう。前に説明されたように、浮動小
数点乗算および加算(減算)は、ハードウェアにおいて
長時間かかる。このように、それらのオペレーションの
結果の、発行速度を増加するための手段を有することは
望ましい。この発明の教示に従って、この手段は、種々
の必要とされた計算を部分に、または段に分け、かつそ
れから、それらの異なる計算の段を浮動少数点装置40
を介してパイプライン化することを伴なう。図4を参照
すると、この手段のコンポーネント、アキュムレータセ
クションは、ブロック図形状で示され、かつ参照番号7
2により指定される。エレメント72に関するさらなる
詳細は、図5において示される。その図を参照すると、
エレメント72は複数個のアキュムレータ84、86、
88、90を含むと理解されてもよい。この発明の好ま
しい実施例の教示に従って、エレメント72は、パイプ
ラインの各段が、異なるアキュムレータを用いて計算が
できるように、装置40によって行なわれている計算の
パイプ段につき1つのアキュムレータを含む。そのよう
な構成を有して、図4に示されるハードウェアは、種々
のパイプ段が、すべての計算の4つの異なる段にまで同
時に働く状態で、多重アキュムレータ84、86、8
8、90を用いて乗算累算し得る。
【0038】アキュムレータ84、86、88、90オ
ペレーションを制御することにおける重要な部分は、所
与のアキュムレータを用いる後続のオペレーションが、
そのアキュムレータに書込む先行のオペレーションが完
了されるときのみ始まるということを確実にすることで
ある。これを達成するために、この発明はハードウェア
インターロックを与え、または必要であれば、後続のオ
ペレーションを防止し、または避けるのを待つ。図4お
よび図6に戻って参照すると、この手段は制御装置54
のFPIPEセクションにラッチを含むことが理解され
るはずである。これらのラッチは、各アキュムレータル
ープにおいて独特なトークン(つまり、ビットの値、つ
まり、“1”または“0”)を含むことを許容し、その
トークンの目的は、アキュムレータに、後続のオペレー
ションの利用可能性または利用不可能性を知らせる手段
を提供することである。たとえば、もし命令が利用不可
能性、つまり、まだ完了されていないアキュムレータ計
算を必要とすれば、制御トークンが計算パイプラインの
出力に見られるまで待つように強制し得る。より特定的
には、アキュムレータ数が、乗算累算演算が現実の浮動
少数点装置においてあるところで続く、または“遮蔽す
る”ということが理解されるはずである。このように、
初めに乗算累算演算が始まるとき、アキュムレータ数
は、乗算器64を表わすラッチまたは複数のラッチに保
持される。乗算累算演算が第2に、または部分総和器6
6段に進めば、FPIPEにおけるアキュムレータ数は
部分総和器段を表わして、ラッチまたは複数のラッチに
進む。乗算累算演算が加算器に達するとき、部分総和器
がその中で行なわれている乗算累算演算を有するという
ことが知られるため、かつそれが参照しているアキュム
レータ数が知られるため、アキュムレータはそのとき読
出され、かつデノーマライザに送られ得る。加算器は、
アキュムレータにおける乗算結果および値を取るように
制御されることができ、かつFPIPEにおけるアキュ
ムレータ数はデノーマライザラッチへ入れられ得る。こ
のように、効率的に、現実のオペレーションおよび制御
トークンフローは並行に行なわれ、かつしたがって、正
確さは保証されることができ、かつハードウェアインタ
ーロック(または待機)は、制御ビット機構によって与
えられ得る。
【0039】この発明の実施例において、トラップは行
なわれない、なぜならば、オペレーションがトラップす
るかどうかを決定するために、多重累算演算の開始で得
られる情報が十分ではないからである。通常は、もしオ
ペレーションがトラップすれば、チップ全体における命
令のフローは、そのオペレーションが完成するまで止め
られる。この発明の譲受人により現実に構成されたこの
発明の実施例において、1つ以上のトラップは同時に生
じることが許容されない。このように、この発明の枠組
み内で、もしパイプが、もしトラップが起きる機会があ
れば保たれると、再び不明であるであろうが、各多重累
算は6サイクルかかり、同時に他に何もなされ得ないで
あろう。そのため、トラップが起きないことにより、ま
たはオペレーションがトラップしないということを開始
時に知ることにより、パイプは保持される必要がない。
このように、多重累算演算は、浮動小数点装置を介し
て、次々にパイプライン化されてもよい。
【0040】しかしながら、この発明の実施例における
トラップの置換として、動きの悪い(スティッキ:st
icky)(ORをとられた)状態レジスタ82は、制
御装置54内に含まれる(図6を参照)。より広範囲に
は、動きの悪い状態レジスタは特殊レジスタサブコンポ
ーネントの一部分である。このサブコンポーネントは、
トラップマスクビットをストアする浮動小数点環境レジ
スタと、トラップを取り、かつ動きの悪いビット(ステ
ィッキービット)をセットするためのランダム論理とを
含む。ここで説明された多重累算演算において、適用で
きる動きの悪いビットは、オーバーフロー、アンダーフ
ロー、不正確(inexact)、数でない(not
a number)、および不当なオペレーションを含
む。当業者が認識するべきであろうように、動きの悪い
状態レジスタは、いかなるエラーも遭遇されなかったと
いうことを確かめるために、任意の時間で、たとえば、
長い計算の終了で、確かめられ得る。また、当業者は、
動きの悪い状態ビットが一度セットされれば、使用者に
よって取り除かれるまでセットされたままであるという
ことを知るべきである。
【0041】前述に基づいて、この発明が、浮動小数点
ハードウェアにおいて乗算および加算を行なうための効
率的な手段を提供するということが明らかにされるはず
である。この発明は、計算の段をパイプライン化するこ
と、およびそれから多重累算セクションにおいて、それ
らの段の結果を累算することを伴なう。制御ブロック
(待機を含む)および(エラーを検出するための)状態
レジスタはまた、この発明の実施例において含むことが
可能なセクションとして教示される。
【0042】特に述べられたものを除いて、修正および
変更が、この発明の内容から逸脱することなく、ここで
説明された構造および技術においてなされるということ
を当業者は理解するであろう。したがって、添付の特許
請求の範囲の範囲内でこの発明が実施され、ここで特に
説明されたものとはべつな方法で実施されてもよいとい
うことが理解されるはずである。
【図面の簡単な説明】
【図1】プロセッサのその部分に組入れるこの発明の教
示に従う浮動小数点演算装置を含むコンピュータシステ
ムのブロック図である。
【図2】図1に示されるプロセッサのサブシステムのブ
ロック図である。
【図3】図2を参照して説明されるサブシステムのさら
に詳細なブロック図である。
【図4】この発明の教示に従う浮動小数点装置のブロッ
ク図である。
【図5】この発明の教示に従う浮動小数点におけるアキ
ュムレータの部分のブロック図である。
【図6】この発明の教示に従う浮動小数点演算装置の制
御装置の主サブコンポーネントを描く。
【符号の説明】
(30) プログラム計算装置 (38) 演算論理装置 (50) 浮動小数点装置 (72) アキュムレータ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 プレム・ソーベル インド、605002 ポンディチェリ、スリ・ アウロビンド・アシュラム

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも2つの段で計算するための手
    段を含み、少なくとも2つの段で計算するための前記手
    段は、 前記少なくとも2つの段の各々を、少なくとも部分的に
    同時に計算するための手段と、 前記少なくとも2つの段の各々を計算するための前記手
    段が、一度に1つの計算しか行なわないことを確実にす
    るための手段とを含む、演算装置。
  2. 【請求項2】 前記演算論理装置は、パイプライン化さ
    れたコンピュータ演算装置である、請求項1記載の演算
    装置。
  3. 【請求項3】 前記パイプライン化されたコンピュータ
    演算装置は、浮動小数点計算を行なうように構成され
    る、請求項2記載のパイプライン化されたコンピュータ
    演算装置。
  4. 【請求項4】 前記少なくとも2つの段の各々を、少な
    くとも部分的に同時に計算するための前記手段は、少な
    くとも2つのアキュムレータを含む、請求項1記載のパ
    イプライン化されたコンピュータ演算装置。
  5. 【請求項5】 各アキュムレータは、各パイプ段でオペ
    レーションと関連される、請求項4記載のパイプライン
    化されたコンピュータ演算装置。
  6. 【請求項6】 前記少なくとも2つの段の各々を計算す
    るための前記手段が、一度に1つの計算しかを行なわな
    いことを確実にするための前記手段は、各アキュムレー
    タと働く少なくとも1つの制御トークンを含む、請求項
    5記載のパイプライン化されたコンピュータ演算装置。
  7. 【請求項7】 計算エラー検出手段をさらに含む、請求
    項6記載のパイプライン化されたコンピュータ演算装
    置。
  8. 【請求項8】 前記計算エラー検出手段は、論理和を取
    られた状態レジスタを含む、請求項7記載のパイプライ
    ン化されたコンピュータ演算装置。
  9. 【請求項9】 少なくとも2つのパイプ段で計算するた
    めのパイプライン化されたコンピュータ演算装置が、前
    記パイプライン化されたコンピュータ演算論理装置は、 少なくとも2つのアキュムレータと、 前記少なくとも2つのアキュムレータの各々のオペレー
    ションのため、利用可能性または利用不可能性を示すた
    めの手段とを含む、パイプライン化されたコンピュータ
    演算装置。
  10. 【請求項10】 前記パイプライン化されたコンピュー
    タ演算装置は、浮動少数点計算を行なうように動作す
    る、請求項9記載のパイプライン化されたコンピュータ
    演算装置。
  11. 【請求項11】 計算を少なくとも2つの段に分けるス
    テップと、 少なくとも2つのアキュムレータ、前記少なくとも2つ
    の段の各々につき1つのアキュムレータを用いて、前記
    段の結果を別々に累算するステップとを含む、計算を行
    なう方法。
  12. 【請求項12】 論理和を取られた状態レジスタでエラ
    ーを検出するステップをさらに含む、請求項11記載の
    方法。
  13. 【請求項13】 前記段の結果がいつ得られたかを示す
    ステップをさらに含む、請求項11記載の方法。
  14. 【請求項14】 前記段の結果がいつ得られたのかを示
    す前記ステップは、各アキュムレータと関連付けられる
    少なくとも1つの制御トークンを含む、請求項13記載
    の方法。
  15. 【請求項15】 複数個の浮動少数点数を処理するため
    の演算処理装置と関連し可能なパイプライン化されたア
    ーキテクチュアの浮動小数点数アキュムレータ回路であ
    って、 少なくとも2つのアキュムレータを含み、前記少なくと
    も2つのアキュムレータの各々は、前記演算処理装置と
    ともにオペレーショナルループにあり、 前記少なくとも2つのアキュムレータの各々の計算のた
    めの、利用可能性または利用不可能性を示すための制御
    手段と、 前記ループにおいて計算の結果におけるエラーを検出す
    るためのエラー検出手段とをさらに含む、回路。
  16. 【請求項16】 前記演算処理装置はパイプ段で計算を
    行ない、各アキュムレータは各パイプ段でオペレーショ
    ンと関連される、請求項15記載の回路。
  17. 【請求項17】 前記制御手段は制御ループにおいて動
    作し、かつ前記制御手段は前記少なくとも2つのアキュ
    ムレータの各々のための、少なくとも1つの制御トーク
    ンを含み、少なくとも1つの制御トークンは前記制御ル
    ープにおいて進行する、請求項15記載の回路。
  18. 【請求項18】 前記エラー検出手段は前記ループにお
    いて、エラーの検出を許容するように作動的に接続され
    る、動きの悪い論理和を取られた状態レジスタを含む、
    請求項15記載の回路。
  19. 【請求項19】 演算処理装置を含み、前記演算処理装
    置は、 少なくとも2つの段で計算するための手段を含み、少な
    くとも2つの段で計算するための前記手段は、 前記少なくとも2つの段の各々を、少なくとも部分的に
    同時に計算するための手段と、 前記少なくとも2つの段の各々を計算するための前記手
    段が、一度に1つの計算のみを行なうことを確実にする
    ための手段とを含む、プロセッサ。
  20. 【請求項20】 前記演算処理装置は、浮動小数点計算
    を行なうためのパイプライン化された装置である、請求
    項19記載のプロセッサ。
JP3068412A 1990-04-02 1991-04-01 演算装置 Withdrawn JPH0749770A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US504127 1990-04-02
US07/504,127 US5128888A (en) 1990-04-02 1990-04-02 Arithmetic unit having multiple accumulators

Publications (1)

Publication Number Publication Date
JPH0749770A true JPH0749770A (ja) 1995-02-21

Family

ID=24004957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3068412A Withdrawn JPH0749770A (ja) 1990-04-02 1991-04-01 演算装置

Country Status (5)

Country Link
US (1) US5128888A (ja)
EP (1) EP0450802B1 (ja)
JP (1) JPH0749770A (ja)
AT (1) ATE183833T1 (ja)
DE (1) DE69131544T2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5245562A (en) * 1991-09-17 1993-09-14 The Johns Hopkins University Accumulating arithmetic memory integrated circuit
JPH07502358A (ja) * 1991-12-23 1995-03-09 インテル・コーポレーション マイクロプロセッサーのクロックに依るマルチプル・アクセスのためのインターリーブ・キャッシュ
US5669010A (en) * 1992-05-18 1997-09-16 Silicon Engines Cascaded two-stage computational SIMD engine having multi-port memory and multiple arithmetic units
US5574928A (en) * 1993-10-29 1996-11-12 Advanced Micro Devices, Inc. Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments
DE69429061T2 (de) * 1993-10-29 2002-07-18 Advanced Micro Devices, Inc. Superskalarmikroprozessoren
EP0651320B1 (en) * 1993-10-29 2001-05-23 Advanced Micro Devices, Inc. Superscalar instruction decoder
US5630082A (en) * 1993-10-29 1997-05-13 Advanced Micro Devices, Inc. Apparatus and method for instruction queue scanning
US5632023A (en) * 1994-06-01 1997-05-20 Advanced Micro Devices, Inc. Superscalar microprocessor including flag operand renaming and forwarding apparatus
EP0685794A1 (en) * 1994-06-01 1995-12-06 Advanced Micro Devices, Inc. System for generating floating point test vectors
US5696955A (en) * 1994-06-01 1997-12-09 Advanced Micro Devices, Inc. Floating point stack and exchange instruction
US5574670A (en) * 1994-08-24 1996-11-12 Advanced Micro Devices, Inc. Apparatus and method for determining a number of digits leading a particular digit
EP0720087A1 (en) * 1994-12-27 1996-07-03 Motorola, Inc. Apparatus and method for a memory extension stack in a data processing system
US5761105A (en) * 1995-09-26 1998-06-02 Advanced Micro Devices, Inc. Reservation station including addressable constant store for a floating point processing unit
US5878266A (en) * 1995-09-26 1999-03-02 Advanced Micro Devices, Inc. Reservation station for a floating point processing unit
US5748516A (en) * 1995-09-26 1998-05-05 Advanced Micro Devices, Inc. Floating point processing unit with forced arithmetic results
US5796974A (en) * 1995-11-07 1998-08-18 Advanced Micro Devices, Inc. Microcode patching apparatus and method
US5844830A (en) * 1996-08-07 1998-12-01 Sun Microsystems, Inc. Executing computer instrucrions by circuits having different latencies
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6552723B1 (en) 1998-08-20 2003-04-22 Apple Computer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
CN100357885C (zh) * 2002-05-06 2007-12-26 鸿富锦精密工业(深圳)有限公司 一种自动扫描量测数据分析处理系统和方法
US7599044B2 (en) 2005-06-23 2009-10-06 Apple Inc. Method and apparatus for remotely detecting presence
US7242169B2 (en) * 2005-03-01 2007-07-10 Apple Inc. Method and apparatus for voltage compensation for parasitic impedance
US7577930B2 (en) 2005-06-23 2009-08-18 Apple Inc. Method and apparatus for analyzing integrated circuit operations
US9298311B2 (en) * 2005-06-23 2016-03-29 Apple Inc. Trackpad sensitivity compensation
US7433191B2 (en) * 2005-09-30 2008-10-07 Apple Inc. Thermal contact arrangement
US7598711B2 (en) * 2005-11-23 2009-10-06 Apple Inc. Power source switchover apparatus and method
US8103858B2 (en) 2008-06-30 2012-01-24 Intel Corporation Efficient parallel floating point exception handling in a processor

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4075704A (en) * 1976-07-02 1978-02-21 Floating Point Systems, Inc. Floating point data processor for high speech operation
US4766564A (en) * 1984-08-13 1988-08-23 International Business Machines Corporation Dual putaway/bypass busses for multiple arithmetic units
US4683547A (en) * 1984-10-25 1987-07-28 International Business Machines Corporation Special accumulate instruction for multiple floating point arithmetic units which use a putaway bus to enhance performance
US4766416A (en) * 1987-07-16 1988-08-23 General Electric Company Circuit for generating the square of a function without multipliers
US4958312A (en) * 1987-11-09 1990-09-18 Lsi Logic Corporation Digital multiplier circuit and a digital multiplier-accumulator circuit which preloads and accumulates subresults
US4916651A (en) * 1988-01-29 1990-04-10 Texas Instruments Incorporated Floating point processor architecture
US4901267A (en) * 1988-03-14 1990-02-13 Weitek Corporation Floating point circuit with configurable number of multiplier cycles and variable divide cycle ratio
JP2690932B2 (ja) * 1988-03-18 1997-12-17 株式会社日立製作所 ディジタル信号処理プロセッサおよびディシタル信号処理プロセッサシステム
US4996661A (en) * 1988-10-05 1991-02-26 United Technologies Corporation Single chip complex floating point numeric processor
US5010509A (en) * 1988-10-05 1991-04-23 United Technologies Corporation Accumulator for complex numbers
US4961162A (en) * 1989-01-13 1990-10-02 International Business Machines Corporation Multiprocessing system for performing floating point arithmetic operations

Also Published As

Publication number Publication date
DE69131544D1 (de) 1999-09-30
EP0450802A2 (en) 1991-10-09
US5128888A (en) 1992-07-07
ATE183833T1 (de) 1999-09-15
EP0450802A3 (en) 1993-02-10
DE69131544T2 (de) 2000-04-27
EP0450802B1 (en) 1999-08-25

Similar Documents

Publication Publication Date Title
JPH0749770A (ja) 演算装置
TWI847670B (zh) 使用矩陣乘法指令的設備
US10445098B2 (en) Processors and methods for privileged configuration in a spatial array
US10445234B2 (en) Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
US10469397B2 (en) Processors and methods with configurable network-based dataflow operator circuits
US10515049B1 (en) Memory circuits and methods for distributed memory hazard detection and error recovery
US4879676A (en) Method and apparatus for precise floating point exceptions
US10891240B2 (en) Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US5416912A (en) System for handling exceptions occurring during parallel execution of microinstructions
JP5647859B2 (ja) 乗累算演算を実行するための装置および方法
JPS63193230A (ja) 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法
US9389871B2 (en) Combined floating point multiplier adder with intermediate rounding logic
JP4219507B2 (ja) コンピュータ動作方法
US20080172551A1 (en) Operation verification method for verifying operations of a processor
JP2000122850A (ja) 浮動小数点計算実施方法
JP3122420B2 (ja) プロセッサおよび条件コード・ビット計算方法
US4956767A (en) Data processing system with model for status accumulating operation by simulating sequence of arithmetic steps performed by arithmetic processor
US5742755A (en) Error-handling circuit and method for memory address alignment double fault
Islam et al. Design of High-Speed-Pipelined Execution Unit of 32-bit RISC Processor
Del Barrio et al. Improving circuit performance with multispeculative additive trees in high-level synthesis
US11416261B2 (en) Group load register of a graph streaming processor
CN117057403B (zh) 一种运算模块、基于脉冲神经网络的加速器及方法
JP2824484B2 (ja) パイプライン処理計算機
JPS6153754B2 (ja)
Islam et al. 32-bit RISC Processor

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19980711