JP3158107B2 - 浮動小数点状態および制御レジスタ(fpscr)命令を直接実行するための方法および装置 - Google Patents

浮動小数点状態および制御レジスタ(fpscr)命令を直接実行するための方法および装置

Info

Publication number
JP3158107B2
JP3158107B2 JP00896499A JP896499A JP3158107B2 JP 3158107 B2 JP3158107 B2 JP 3158107B2 JP 00896499 A JP00896499 A JP 00896499A JP 896499 A JP896499 A JP 896499A JP 3158107 B2 JP3158107 B2 JP 3158107B2
Authority
JP
Japan
Prior art keywords
fpscr
instruction
floating point
logic
execution logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP00896499A
Other languages
English (en)
Other versions
JPH11259296A (ja
Inventor
クリストファー・ハンス・オルソン
ジェフリー・スコット・ブロックス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH11259296A publication Critical patent/JPH11259296A/ja
Application granted granted Critical
Publication of JP3158107B2 publication Critical patent/JP3158107B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/30094Condition code generation, e.g. Carry, Zero flag
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、シリアル化命令、
特に浮動小数点状態および制御レジスタ(FPSCR)
命令を実行する方法および装置に関するもので、特によ
り少ない遅延でFPSCR命令を実行して、対称浮動小
数点実行パイプラインを可能とする、FPSCR命令を
直接実行する方法および装置に関する。
【0002】
【従来の技術】従来の浮動小数点規格、例えば米国規格
協会(ANSI)/米国電気電子学会(IEEE)規格
754、すなわち浮動小数点2進演算の1985年IE
EE規格(以下、単にIEEE規格ともいう)は、起こ
りうる例外の各種類に対して状態フラグが与えられるこ
とを要求する。例えば、状態フラグはデータ・オーバフ
ローに対して与えられなければならない。状態フラグが
たてられると、この状態フラグによって特定の例外が生
じたことが示される。
【0003】ある従来規格、例えばIEEE規格は、ユ
ーザが状態フラグを個々に試験および変更することが可
能なものとすることも規定する。さらに、IEEE規格
はユーザが一度にすべての状態フラグを格納および復元
すべきであることを規定する。
【0004】いくつかの従来装置では、状態フラグを格
納するのに浮動小数点状態および制御レジスタ(FPS
CR)を利用する。FPSCRはFPSCR命令により
制御される。FPSCR読取り命令は装置によるFPS
CRからのデータの読取りまたは移動を可能にする。同
様に、FPSCR書込み命令は装置によるFPSCRへ
のデータの移動を可能にする。例えば、FPSCRは、
6つのFPSCR命令からなる組によって制御され得
る。これらの命令のうちの4つがFPSCRにデータを
書込み、または移動させる。残りの2つのFPSCR命
令はFPSCRからデータを読取り、または移動させ
る。
【0005】従来の浮動小数点装置は、FPSCR命令
を完全に浮動小数点実行ユニット・パイプラインに置
く。しかし、FPSCR命令は一般にパイプラインと直
列に置かれたFPSCR実行論理によって実行される。
すなわち、FPSCR実行論理は一般に浮動小数点実行
論理の後に置かれる。それにかかわらず、FPSCR命
令がパイプラインを通るように追加の専用FPSCR論
理をパイプラインに置かなければならない。
【0006】もし従来装置のパイプラインが対称形をな
しているならば、FPSCR命令をパイプラインに通す
専用FPSCR論理は両方のパイプラインに与えられ
る。対称パイプラインを持つ装置はパイプラインを単純
に複製すればよいので設計が簡単である。しかし、FP
SCR命令は浮動小数点命令よりもまれに生ずるもので
あることから、パイプライン内の専用FPSCR論理は
めったに使用されない。また、FPSCR命令はそれで
もなおシリアル化を必要とすることから、追加の専用F
PSCR論理による性能向上はほとんど見込めない。
【0007】対称パイプラインが使用される場合、各対
称パイプラインはパイプラインの浮動小数点実行論理の
後に自身のFPSCR実行論理を持つものであってもよ
い。しかし、パイプラインはまた両方の浮動小数点実行
ユニットの後に置かれたFPSCR実行論理を共有する
ものであってもよい。対称浮動小数点実行ユニットが両
方のパイプラインと直列になったFPSCR実行論理を
一つだけ持つことには欠点がある。すなわち、いずれか
のパイプラインからもFPSCR命令をFPSCR実行
論理に入力することができることから、FPSCR実行
倫理は一般により複雑である。したがって、FPSCR
実行論理は、どのパイプラインがFPSCR命令を提供
するかを決定し、またいかなるタイミングの差にも対処
できるものでなければならない。
【0008】別の従来装置は、非対称浮動小数点パイプ
ラインを用いる。そのような装置では、FPSCR命令
は一定のパイプラインのみに発行される。したがって、
それらのパイプラインのみがFPSCR命令をパイプラ
インに通すための専用FPSCR論理を含む。すべての
FPSCR命令が単一のパイプラインを通過するので、
パイプラインにある専用FPSCR論理は対称パイプラ
インの各々にある専用FPSCRよりも頻繁に使用され
る。更に、制限された数、例えば単一のパイプラインだ
けがFPSCR命令をFPSCR実行論理へ供給するの
で、FPSCR実行論理はそれほど複雑ではない。しか
し、既に述べたように、非対称パイプラインは設計を複
雑なものにしてしまう。なぜなら、装置は単一の実行パ
イプラインを複製することによって簡単に提供されるも
のではないからである。
【0009】FPSCR命令実行は、装置内の浮動小数
点実行ユニット・パイプラインが対称的かどうかにかか
わらず、多サイクル遅延を引き起こす可能性がある。そ
の理由は、FPSCR命令がシリアル化命令であるから
である。シリアル化命令は、正しく実行されるためにパ
イプラインの少なくとも一部を解放しなければならない
命令である。FPSCR命令の後に一般に一連の浮動小
数点命令が続く。FPSCR命令は、後に続く浮動小数
点命令が依存するFPSCRにおける設定を変更するか
もしれないのでシリアル化されている。その結果、FP
SCR命令は実行中、該FPSCR命令の後ろのパイプ
ライン部分が自由であることを必要する。もしこのパイ
プライン部分が自由でなければ、後に続く命令はFPS
CRの正しくない設定にアクセスするかもしれない。
【0010】パイプラインのステージはFPSCR命令
の実行中開かれた状態に保たれなければならず、また浮
動小数点パイプラインは一般に深いので、各々のFPS
CR命令によって多サイクル遅延が誘導される。したが
って、FPSCR実行論理によってFPSCR命令を比
較的素早く実行することができるが、FPSCR命令が
パイプラインを通過するときに遅延が誘導される。多く
のステージを持つ従来の浮動小数点パイプラインにとっ
て、この遅延はより一層大きくなる。
【0011】
【発明が解決しようとする課題】したがって、本発明は
短い遅延でFPSCR命令を実行する装置および方法を
提供することを目的とする。また、対称浮動小数点実行
パイプラインを可能とさせることで、パイプラインの設
計を簡素化させる方法を提供することを目的とする。
【0012】
【課題を解決するための手段】本発明は、プロセッサで
シリアル化命令を直接実行する方法および装置を提供す
る。プロセッサは、シリアル化命令と非シリアル化命令
とを有する。プロセッサは、非シリアル化命令を実行す
るためのパイプラインを持つ実行論理を有する。また、
プロセッサは実行論理とは別にシリアル化命令を実行す
るための論理も有する。本発明は、シリアル化命令を認
識すること、非シリアル化命令を認識すること、非シリ
アル化命令を実行論理に与えること、さらにシリアル化
命令を別の論理に与えることを含む。シリアル化命令
は、シリアル化命令をパイプラインに与えることなしに
実行される。
【0013】ここに開示される方法および装置にもとづ
いて、本発明はFPSCR命令を直接的に、かつよりい
っそう速く実行させる。FPSCR命令による遅延が減
少するので、それによって全体的な装置性能が高まる。
さらに、対称浮動小数点パイプラインが可能であること
から、装置の設計がよりいっそう簡単になる。
【0014】
【発明の実施の形態】本発明は、浮動小数点状態および
制御レジスタ(FPSCR)命令の実行を改善すること
に関係する。以下の記述は、当業者が容易に本発明を実
施し、かつ利用できるようにする。好ましい実施形態例
に対する種々の変更は、当業者に容易に明らかになるだ
ろう。また、ここでの一般原則は他の実施形態例にも適
用できよう。したがって、本発明は示された実施形態例
に限定することを意図したものではなく、ここに記述さ
れた原則および特徴と一貫性のあるもっとも幅広い範囲
にもとづいている。
【0015】図1は、本発明にもとづく情報処理のため
のプロセッサ装置1を構成する関連構成要素のブロック
図である。好ましい実施形態例では、プロセッサ1は単
一の集積回路スーパスカラ・マイクロプロセッサであ
る。したがって、以下でさらに説明するように、プロセ
ッサ1は種々のユニット、レジスタ、バッファ、メモ
リ、および他のセクションを有し、それらのすべては集
積回路によって形成される。図1に示すように、プロセ
ッサ1は命令ユニット10、浮動小数点ユニット14、
整数ユニット16、タグ付きのキャッシュ20、メモリ
管理ユニット22およびメモリ・ユニット24を有す
る。命令ユニット10は、キャッシュ20から取り出し
た命令を保持する命令待ち行列12、命令を命令待ち行
列12から浮動小数点ユニット14または整数ユニット
16へ発行する発行論理19、および分岐処理を実行す
る分岐処理ユニット18を含む。
【0016】図2は、浮動小数点ユニット14をより詳
細に描いた図である。浮動小数点ユニット14は、2種
類の浮動小数点実行ユニット、すなわちFPUA38お
よびFPUB40を有し、各々が浮動小数点実行パイプ
ラインを持つ。さらに、浮動小数点ユニット14は状態
フラグを持つFPSCR37を有する。
【0017】実行される命令は、発行論理19に含まれ
る。命令フェッチ/ディスパッチ・ユニット30を介し
て浮動小数点ユニット14に与えられる。命令フェッチ
/ディスパッチ・ユニット30は、浮動小数点待ち行列
(FPQ)34に命令を置く。好ましい実施形態例で
は、FPQ34は投機的out−of−order待ち
行列である。浮動小数点演算命令および浮動小数点状態
および制御レジスタ(FPSCR)命令の両方がFPQ
34に置かれる。FPSCR命令はFPSCR37を制
御する。
【0018】FPQ34にあるFPSCR命令は、対応
するFPUA38またはFPUB40の浮動小数点実行
ユニット・パイプラインによる処理のために、FPUA
38およびFPUB40にディスパッチされる。FPS
CR命令が通過する浮動小数点実行ユニットパイプライ
ンは、FPSCR命令をパイプラインに通すための専用
論理を持たなければならない。例えば、もし専用FPS
CR命令論理がFPUA38およびFPUB40の両方
に置かれた場合、各パイプラインがFPSCR命令を通
すような対称パイプラインが構成される。もし、FPU
A38およびFPUB40のうちの一つだけに専用論理
が提供される場合、パイプラインは非対称的であり、一
つのパイプラインのみがFPSCR命令を通す。
【0019】ひとたびFPSCR命令が専用論理によっ
てFPUA38またはFPUB40を通過すると、FP
UA38またはFPUB40と直列に置かれたFPSC
R実行論理によってFPSCR命令を実行することがで
きる。もし、FPUA38およびFPUB40のパイプ
ラインが対称的であるならば、FPUA38およびFP
UB40はそれぞれの後にFPSCR実行論理をそれぞ
れが持つことができ、あるいは単一のFPSCR実行論
理を共有することができる。もしFPUA38およびF
PUB40のパイプラインが非対称的であるならば、F
PSCR実行論理はFPUA38およびFPUB40の
うちの一方のみの後に与えられる。
【0020】FPSCR命令はシリアル化命令であり、
FPSCR命令の後の浮動小数点実行ユニット・パイプ
ライン部分が実行すべきFPSCR命令のために開放さ
れなければならない。さらに、FPSCR命令は一般に
一連の命令の最初の命令である。しばしば、パイプライ
ンのステージはそのような一連の命令に先立って開放さ
れる。その結果、パイプラインはFPSCR命令に先立
って開放される。
【0021】FPSCR命令を浮動小数点実行ユニット
・パイプラインに通すことによってFPSCR命令が実
行されるが、当業者はこのようなやり方で行われるFP
SCR命令の実行が多サイクル遅延を引き起こすことを
認識するであろう。FPSCR命令はシリアル化命令の
ため、FPSCR命令の後のパイプライン部分はFPS
CR命令の実行中、開放された状態になければならな
い。後続の浮動小数点命令はFPSCR命令が完了する
まで実行を開始することはできず、それによって遅延が
生ずる。一般に、浮動小数点実行ユニット・パイプライ
ンは比較的深く、数サイクルに及ぶ遅延を引き起こす。
【0022】対称パイプラインが与えられるならば、F
PSCR命令はどちらか一方のパイプラインを通過し、
さらにFPSCR命令を通過させるための専用FPSC
R論理はまれに使用されるだけである。すなわち、パイ
プラインにFPSR命令を通すための専用FPSCR論
理は、発行されたFPSCR命令の一部分のみのために
使用される。なぜなら、各パイプラインはFPSCR命
令の総数の一部のみを受け取るからである。また、FP
SCR実行論理は、どのパイプラインがFPSCR命令
を提供するかを決定しなければならないことがあるか
ら、より複雑になる。もし非対称パイプラインが提供さ
れるならば、専用FPSCR論理の利用率は高くなる
が、パイプラインの設計はより複雑になる。対称および
非対称パイプラインの両方がFPSCR命令によって生
じた遅延の影響を受ける。
【0023】本発明は、プロセッサでFPSCR命令を
直接実行するための方法および装置を提供する。プロセ
ッサは、シリアル化命令と非シリアル化命令とを有す
る。プロセッサは非シリアル化命令を実行するためのパ
イプライン式実行論理を有する。また、プロセッサは実
行論理とは別にシリアル化命令を実行するための論理も
有する。方法および装置は、シリアル化命令を認識する
こと、非シリアル化命令を認識すること、実行論理に非
シリアル化命令を与えること、シリアル化命令を別の論
理に与えることを含む。シリアル化命令は、シリアル化
命令をパイプラインに提供することなしに実行される。
【0024】本発明を、2つの実行パイプラインを持つ
浮動小数点ユニットの面から説明する。しかし、当業者
に容易に理解されるように、この方法および装置はパイ
プライン数が異なる浮動小数点ユニット、およびシリア
ル化命令の他の種類のものに対しても効果的に作用す
る。また、好ましい実施形態例では、デュアル実行ユニ
ットと2つのパイプラインとが含まれ、各パイプライン
の深さは2ステージである。しかし、異なる数の実行ユ
ニットまたはパイプライン、あるいは異なる深さのパイ
プラインの使用を妨げるものは何もない。
【0025】本発明の方法および装置をより詳細に説明
するために、そのような装置の一実施態様が符号100
で示された図3を参照する。装置100の構成要素の多
くはすでに図2に示されている。これらの構成要素は、
図2の対応する構成要素と同一の符号が付されている。
例えば、FPQは図2および図3ともに符号34が付さ
れている。
【0026】FPQ34は、FPSCR命令および浮動
小数点命令の両方を含んでいる。従来の装置と比較する
と、FPQ34はFPUA38またはFPUB40のい
ずれのパイプラインにもFPSCR命令を与えない。F
PUA38およびFPUB40はいずれも、パイプライ
ンにFPSCR命令を通すための専用FPSCRを含ん
でいない。その結果、少なくともパイプラインにFPS
CR命令を通すための専用FPSCRを含まないという
点において、FPUA38およびFPUB40用のパイ
プラインは対称的である。
【0027】FPSCR命令を浮動小数点パイプライン
のひとつに通すかわりに、FPQ34はFPSCR命令
を直接的に別のFPSCR実行論理110に与える。そ
の結果、装置100はFPSCR命令を直接実行する。
また、既に述べたように、FPSCR実行論理110
は、パイプラインにFPSCR命令を通すための専用論
理をFPUA38またはFPUB40に必要としない。
【0028】FPSCR実行論理110はFPSCR命
令を実行し、FPSCR命令に応じて、FPSCR3
7、浮動小数点レジスタ(FPR)アレイ44、または
制御レジスタ120のいずれかを更新する。FPSCR
実行論理110は、FPSCR命令の後のパイプライン
部分を開放することなく、単一サイクルでFPSCR命
令を実行する能力を持つ。したがって、浮動小数点実行
パイプラインにFPSCR命令を通すことによって誘導
される遅延が減少する。
【0029】すべての命令が正確に実行されることを確
かなものとするために、FPQ34はFPSCR命令を
シリアル化命令として扱う。別の言い方をすれば、FP
SCR命令は、事前にディスパッチされた浮動小数点命
令が使用するかも知れないFPSCR37の設定を変更
すべきではない。したがって、好ましい実施形態例にお
いては、FPQ34は事前にディスパッチされた浮動小
数点命令が実行を終了し、アーキテクチャ的にコミット
されるまで、FPSCR命令を発行しない。もしFPQ
34がFPSCR命令をシリアル化命令として扱わなけ
れば、FPSCR命令は事前の浮動小数点命令が依存す
る設定を変更し得る。すなわち、もしFPSCR命令が
発行される前に事前の浮動小数点命令がアーキテクチャ
的にコミットされていなければ、その浮動小数点命令は
不正確なデータを使用したかもしれない。したがって、
好ましい実施形態例は、事前にディスパッチされた浮動
小数点命令が実行され、かつアーキテクチャ的にコミッ
トされた後のみに、FPSCR命令を発行する。一般に
浮動小数点命令がFPSCR命令に先行することはな
く、FPSCR命令の後に一連の浮動小数点命令が続く
ので、好ましい実施形態例のこの特徴は装置100の性
能に対して一般に影響を及ぼさない。
【0030】FPSCR命令は、FPSCR実行論理1
10内の浮動小数点状態および制御レジスタ移動(MT
FPSCR)論理114へ与えられる。FPSCR命令
のソース・データは、FPRアレイ44によって与えら
れる。MTFPSCR論理114は、ユーザによって与
えられたソース・データ(即値データ)を、適当なFP
SCR値とマージする。
【0031】MTFPSCR論理114は、マージされ
た結果をセレクタ116へ送る。好ましい実施形態例で
は、セレクタ116はマルチプレクサである。MTFP
SCR論理114が有効なFPSCR命令に基づくマー
ジされた結果を与える場合、セレクタ116はFPSC
R37に書込むためにMTFPSCR論理114からの
出力を選択する。もしシステムが有効な浮動小数点演算
命令のためにEPSCR37にアクセスするならば、セ
レクタ116は実行ユニット状態フラグ・マージ論理1
12からの出力を選択する。このFPQ34とEPSC
R実行論理110との間の協同は、一サイクルでのEP
SCR命令の実行を可能とする。
【0032】好ましい実施形態例では、FPSCR実行
論理110はまた、データをFPSCR37から、例え
ば制御レジスタ120またはFPRアレイ44に移動さ
せるFPSCR命令を実行する。データがFPSCR3
7から制御レジスタ120に移動される場合、FPSC
R実行論理110はFPSCR37からデータを読取
り、データを制御レジスタ120に移動し、さらにデー
タをFPSCR37に再書込みする。MTFPSCR論
理114はFPSCR37をリセットし、FPSCR3
7からの適当なデータが制御レジスタ120に与えられ
る。その結果、浮動小数点実行ユニット・パイプライン
をFPSCR命令が通ることによる遅延なしに、FPS
CR実行論理110はすべてのFPSCR命令を単一サ
イクルで実行するために使用することができる。
【0033】FPSCR命令を直接実行するための方法
および装置を開示した。本発明は別の独立したFPSC
R実行論理110を用いてFPSCR命令を実行するの
で、FPSCR命令が単一サイクルで実行される。実行
ユニット・パイプラインをバイパスすることで、本発明
はFPSCR命令を実行するのに必要なサイクルの数で
著しい改善を与える。例えば、深さが2ステージのデュ
アル浮動小数点実行パイプラインを持つ好ましい実施形
態例では、従来のアプローチではFPSCR命令のため
の実行待ち時間は2サイクルとなる。これに対して、本
発明は一サイクルの実行待ち時間を達成する。もし本発
明がより深いパイプラインを持つプロセッサで使用され
るならば、遅延をよりいっそう大きく減少させることが
できる。また、本発明はFPSCR命令をパイプライン
に通過させるための専用FPSCR論理なしで対称パイ
プラインをプロセッサが持つことを可能とする。したが
って、複数の浮動小数点実行パイプラインの設計は単純
化される。
【0034】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)非シリアル化命令を実行するためのパイプライン
を持つ実行論理を有するプロセッサでシリアル化命令を
直接実行する装置であって、前記実行論理とは別に設け
られ、前記シリアル化命令を実行するための論理手段
と、前記シリアル化命令および前記非シリアル化命令を
格納し、前記パイプラインに与えられることなく前記シ
リアル化命令が実行されるように、前記実行論理に前記
非シリアル化命令を与え、前記論理手段に前記シリアル
化命令を与える、前記論理手段および前記実行論理に接
続された命令待ち行列と、を備える装置。 (2)前記命令待ち行列は、前記非シリアル化命令の実
行を前記実行論理が終了させた後に、前記論理手段にシ
リアル化命令を与える、上記(1)に記載の装置。 (3)さらに、浮動小数点状態および制御レジスタ(F
RSCR)を備え、前記シリアル化命令はFPSCR命
令であり、前記非シリアル化命令は浮動小数点命令であ
る、上記(2)に記載の装置。 (4)前記論理手段は、もしシリアル化命令がFPSC
Rへ書込みするならば、第1の結果をFPSCRに与え
るための移動論理を有する、上記(3)に記載の装置。 (5)前記FPSCRは、複数の状態フラグを含み、前
記論理手段は、例外が生じた場合に第2の結果を与える
ために前記実行論理に結合した状態フラグ論理と、前記
移動論理、前記状態フラグ論理、および前記FPSCR
と結合したセレクタ手段とを有し、前記セレクタ手段
は、前記シリアル化命令が前記FPSCRへの書込みを
行ない、かつそれが有効である場合に前記第一の結果を
与え、前記シリアル化命令が無効である場合に前記第2
の結果を与える、上記(4)に記載の装置。 (6)非シリアル化命令を実行するためのパイプライン
を持つ実行論理と、前記実行論理とは別に設けられ、シ
リアル化命令を実行するための論理手段とを有するプロ
セッサで前記シリアル化命令を直接実行するための方法
であって、 a)前記シリアル化命令を認識するステップと、 b)前記非シリアル化命令を認識するステップと、 c)前記非シリアル化命令を前記実行論理に与えるステ
ツプと、 d)前記シリアル化命令を前記論理手段に与えるステッ
プと、を有し、前記シリアル化命令を前記パイプライン
に与えられることなく実行する方法。 (7)前記ステップ(d)は、前記非シリアル化命令の
実行が終了するまで待ってから、前記シリアル化命令を
前記分離論理に与える、上記(6)に記載の方法。 (8)前記プロセッサは、さらに浮動小数点状態および
制御レジスタ(FPSCR)を有し、前記シリアル化命
令はFPSCR命令であり、前記非シリアル化命令は浮
動小数点命令である、上記(7)の方法。
【図面の簡単な説明】
【図1】浮動小数点ユニットを有するプロセッサの高水
準のブロック図である。
【図2】本発明の方法および装置にもとづく浮動小数点
ユニットの高水準のブロック図である。
【図3】本発明の方法および装置にもとづいてFRSC
R命令を実行するための装置の一実施形態例を示すブロ
ック図である。
【符号の説明】
1 プロセッサ 14 浮動小数点ユニット 16 整数ユニット 30 命令フェッチ/ディスパッチ・ユニット 34 浮動小数点待ち行列(FPQ) 37 FPSCR 38 FPUA 40 FPUB 110 FPSCR実行論理 114 浮動小数点状態および制御レジスタ移動(M
TFPSCR)論理 116 セレクタ 120 制御レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェフリー・スコット・ブロックス アメリカ合衆国78681 テキサス州、 ラウンド・ロック、 スワロウ・ドライ ブ 2403 (56)参考文献 特開 平2−69826(JP,A) 特開 昭53−66136(JP,A) 特開 平6−309165(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/42

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】浮動小数点命令を実行するためのパイプラ
    イン、および浮動小数点実行ユニットを持つ浮動小数点
    実行論理を有するプロセッサで、浮動小数点状態および
    制御レジスタ(FPSCR)命令を直接実行する装置で
    あって、 前記浮動小数点実行論理とは別に設けられ、浮動小数点
    状態および制御レジスタ(FPSCR)命令を実行する
    ためのFPSCR実行論理と、 前記FPSCR実行論理および前記浮動小数点実行論理
    に直接接続され、前記FPSCR命令および前記浮動小
    数点命令の両方を格納し、前記FPSCR命令および前
    記浮動小数点命令を認識し、前記FPSCR命令が前記
    浮動小数点実行論理のパイプラインに与えられることな
    く実行されるように、前記浮動小数点実行論理に前記浮
    動小数点命令を与え、前記FPSCR実行論理に前記F
    PSCR命令を与える、命令待ち行列と、 を備える装置。
  2. 【請求項2】前記命令待ち行列は、前記浮動小数点命令
    の実行を前記浮動小数点実行論理が終了させた後に、前
    記FPSCR実行論理にFPSCR命令を与える、請求
    項1に記載の装置。
  3. 【請求項3】前記FPSCR実行論理は、 もしFPSCR命令がFPSCRへ書込みするならば、
    第1の結果をFPSCRに与えるための移動論理を有す
    る、請求項2に記載の装置。
  4. 【請求項4】前記FPSCRは、複数の状態フラグを含
    み、 前記FPSCR実行論理は、 例外が生じた場合に第2の結果を与えるために前記浮動
    小数点実行論理に結合した状態フラグ論理と、 前記移動論理、前記状態フラグ論理、および前記FPS
    CRと結合したセレクタ手段とを有し、 前記セレクタ手段は、前記FPSCR命令が前記FPS
    CRへの書込みを行ない、かつそれが有効である場合に
    前記第1の結果を与え、前記FPSCR命令が無効であ
    る場合に前記第2の結果を与える、請求項3に記載の装
    置。
  5. 【請求項5】浮動小数点命令を実行するためのパイプラ
    インおよび浮動小数点実行ユニットを持つ浮動小数点実
    行論理、浮動小数点状態および制御レジスタ(FPSC
    R)命令を実行するための前記浮動小数点実行論理とは
    別に設けられたFPSCR実行論理、並びに前記浮動小
    数点実行論理および前記FPSCR実行論理に接続され
    FPSCR命令および浮動小数点命令を格納し得る命令
    待ち行列、を備えたプロセッサにおいて、FPSCR命
    令の直接的実行を行うための方法であって、 (a)前記FPSCR命令を認識するステップと、 (b)前記浮動小数点命令を認識するステップと、 (c)前記命令待ち行列から前記浮動小数点命令を前記
    浮動小数点実行論理に与えるステツプと、 (d)前記命令待ち行列から直接に前記FPSCR命令
    を前記FPSCR実行論理に与えて前記FPSCR命令
    を前記パイプラインに与えられることなく実行させるス
    テップと、 を有する方法。
  6. 【請求項6】前記ステップ(d)は、 前記浮動小数点命令の実行が終了するまで待ってから、
    前記FPSCR命令を前記FPSCR実行論理に与え
    る、請求項5に記載の方法。
JP00896499A 1998-02-02 1999-01-18 浮動小数点状態および制御レジスタ(fpscr)命令を直接実行するための方法および装置 Expired - Fee Related JP3158107B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/016,981 US6032249A (en) 1998-02-02 1998-02-02 Method and system for executing a serializing instruction while bypassing a floating point unit pipeline
US09/016981 1998-02-02

Publications (2)

Publication Number Publication Date
JPH11259296A JPH11259296A (ja) 1999-09-24
JP3158107B2 true JP3158107B2 (ja) 2001-04-23

Family

ID=21780070

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00896499A Expired - Fee Related JP3158107B2 (ja) 1998-02-02 1999-01-18 浮動小数点状態および制御レジスタ(fpscr)命令を直接実行するための方法および装置

Country Status (7)

Country Link
US (1) US6032249A (ja)
EP (1) EP0933696A2 (ja)
JP (1) JP3158107B2 (ja)
KR (1) KR100322150B1 (ja)
CN (1) CN1153132C (ja)
SG (1) SG72921A1 (ja)
TW (1) TW388818B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223278B1 (en) * 1998-11-05 2001-04-24 Intel Corporation Method and apparatus for floating point (FP) status word handling in an out-of-order (000) Processor Pipeline
US7725690B2 (en) * 2007-02-13 2010-05-25 Advanced Micro Devices, Inc. Distributed dispatch with concurrent, out-of-order dispatch
US7913067B2 (en) * 2008-02-20 2011-03-22 International Business Machines Corporation Method and system for overlapping execution of instructions through non-uniform execution pipelines in an in-order processor
US10360036B2 (en) * 2017-07-12 2019-07-23 International Business Machines Corporation Cracked execution of move-to-FPSCR instructions

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4800516A (en) * 1986-10-31 1989-01-24 Amdahl Corporation High speed floating-point unit
JPH0269826A (ja) * 1988-09-06 1990-03-08 Fujitsu Ltd 条件付命令制御方式
US5555384A (en) * 1989-12-01 1996-09-10 Silicon Graphics, Inc. Rescheduling conflicting issued instructions by delaying one conflicting instruction into the same pipeline stage as a third non-conflicting instruction
US5150470A (en) * 1989-12-20 1992-09-22 International Business Machines Corporation Data processing system with instruction queue having tags indicating outstanding data status
US5524255A (en) * 1989-12-29 1996-06-04 Cray Research, Inc. Method and apparatus for accessing global registers in a multiprocessor system
US5185872A (en) * 1990-02-28 1993-02-09 Intel Corporation System for executing different cycle instructions by selectively bypassing scoreboard register and canceling the execution of conditionally issued instruction if needed resources are busy
US5488729A (en) * 1991-05-15 1996-01-30 Ross Technology, Inc. Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution
JP3544214B2 (ja) * 1992-04-29 2004-07-21 サン・マイクロシステムズ・インコーポレイテッド プロセッサの状態を監視する方法及び監視システム
US5257216A (en) * 1992-06-10 1993-10-26 Intel Corporation Floating point safe instruction recognition apparatus
US5717908A (en) * 1993-02-25 1998-02-10 Intel Corporation Pattern recognition system using a four address arithmetic logic unit
JPH06309165A (ja) * 1993-04-26 1994-11-04 Matsushita Electric Ind Co Ltd 情報処理装置
US5546597A (en) * 1994-02-28 1996-08-13 Intel Corporation Ready selection of data dependent instructions using multi-cycle cams in a processor performing out-of-order instruction execution
US5537629A (en) * 1994-03-01 1996-07-16 Intel Corporation Decoder for single cycle decoding of single prefixes in variable length instructions
US5594913A (en) * 1994-09-16 1997-01-14 Philips Electronics North America Corporation High speed memory access system for a microcontroller with directly driven low order address bits
TW295646B (ja) * 1995-01-25 1997-01-11 Ibm
US5752263A (en) * 1995-06-05 1998-05-12 Advanced Micro Devices, Inc. Apparatus and method for reducing read miss latency by predicting sequential instruction read-aheads
US5726921A (en) * 1995-12-22 1998-03-10 Intel Corporation Floating point power conservation
US5784603A (en) * 1996-06-19 1998-07-21 Sun Microsystems, Inc. Fast handling of branch delay slots on mispredicted branches
US5826070A (en) * 1996-08-30 1998-10-20 International Business Machines Corporation Apparatus and method for maintaining status flags and condition codes using a renaming technique in an out of order floating point execution unit

Also Published As

Publication number Publication date
CN1153132C (zh) 2004-06-09
US6032249A (en) 2000-02-29
TW388818B (en) 2000-05-01
CN1225470A (zh) 1999-08-11
KR100322150B1 (ko) 2002-02-04
JPH11259296A (ja) 1999-09-24
EP0933696A2 (en) 1999-08-04
KR19990072267A (ko) 1999-09-27
SG72921A1 (en) 2000-05-23

Similar Documents

Publication Publication Date Title
US20070022277A1 (en) Method and system for an enhanced microprocessor
JP2000330790A (ja) コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
JP3773769B2 (ja) 命令のインオーダ処理を効率的に実行するスーパースケーラ処理システム及び方法
JP2620511B2 (ja) データ・プロセッサ
US5226166A (en) Parallel operation processor with second command unit
JP3756410B2 (ja) 述語データを提供するシステム
US20070260857A1 (en) Electronic Circuit
US20030154364A1 (en) Mechanism for instruction data forwarding in a pipeline processor
CA2657168C (en) Efficient interrupt return address save mechanism
US7302553B2 (en) Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue
JP3158107B2 (ja) 浮動小数点状態および制御レジスタ(fpscr)命令を直接実行するための方法および装置
JP2001142701A (ja) プロセッサにおけるパイプライン制御用メカニズムおよび方法
JP3146058B2 (ja) 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法
JP2000353091A (ja) コンピュータシステムにおける命令実行方法およびコンピュータシステム
JP2798121B2 (ja) データ処理装置
US20010054139A1 (en) Mechanism for power efficient processing in a pipeline processor
JPH09138748A (ja) 浮動小数点命令の早期完了方法および装置
JPH01140330A (ja) 高性能cpu−fpuクラスタ用パイプライン型スレーブプロトコル
JP3199035B2 (ja) プロセッサ及びその実行制御方法
JP2504263B2 (ja) デ―タ処理装置
JP2003536132A (ja) Vliwプロセッサでの部分的パイプライン式命令の同期
JP3743155B2 (ja) パイプライン制御型計算機
WO2005033873A2 (en) Method and system for processing a sequence of instructions
US20020108022A1 (en) System and method for allowing back to back write operations in a processing system utilizing a single port cache

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees