JP2000163265A - 命令発行回路 - Google Patents

命令発行回路

Info

Publication number
JP2000163265A
JP2000163265A JP10339366A JP33936698A JP2000163265A JP 2000163265 A JP2000163265 A JP 2000163265A JP 10339366 A JP10339366 A JP 10339366A JP 33936698 A JP33936698 A JP 33936698A JP 2000163265 A JP2000163265 A JP 2000163265A
Authority
JP
Japan
Prior art keywords
instruction
entry
operand
buffer
subsequent
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
JP10339366A
Other languages
English (en)
Inventor
Akihiro Sawamura
明寛 澤村
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP10339366A priority Critical patent/JP2000163265A/ja
Priority to EP99123697A priority patent/EP1006439B1/en
Priority to DE69927910T priority patent/DE69927910T2/de
Priority to US09/450,769 priority patent/US6553484B1/en
Publication of JP2000163265A publication Critical patent/JP2000163265A/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/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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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)

Abstract

(57)【要約】 【課題】 アウトオブオーダ実行に要する処理を高速化
し、パイプライン計算機のスループットを向上させる。 【解決手段】 命令追越しバッファ330の各エントリ
において、その命令の実行結果をYオペランドとして参
照する後続命令の保持されるエントリ番号に関する情報
を保持するYオペランド後続参照エントリ情報335
と、その命令の実行結果をZオペランドとして参照する
後続命令の保持されるエントリ番号に関する情報を保持
するZオペランド後続参照エントリ情報335とを有す
る。参照関係設定回路320は、後続命令の命令追越し
バッファ330への登録時に、先行命令の実行結果の参
照関係を設定する。レディフラグ設定回路340は、発
行可能となった命令のYオペランド後続参照エントリ情
報335及びZオペランド後続参照エントリ情報336
をYオペランド及びZオペランドのレディフラグ333
及び334に反映する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パイプライン計算
機における命令発行回路に関し、特に命令の追い越しを
制御する命令発行回路に関する。
【0002】
【従来の技術】パイプライン計算機を高速化するための
手法として、クロックの高速化及び1命令当たりに要す
る時間の短縮化が考えられる。近年の技術では、クロッ
クを高速化する一方、固定小数点演算器の演算時間を1
クロックに収まるように設計することが多い。このよう
に固定小数点演算器の演算時間を基準としてクロックを
定めると、それ以外の命令制御に関する部分がクリティ
カルになる場合が生じる。特に、近年ではアウトオブオ
ーダ実行という命令の追越しを許容する実行方式が主流
となり、そのための制御に多くの時間を要するようにな
っている。
【0003】例えば、演算時間が1クロックの演算命令
を発行した後、その命令結果を参照する後続命令を次の
サイクルで遅滞なく発行しようとする場合、次のような
制御をすべて1サイクルの間に完了しなくてはならな
い。 (1)命令追越しバッファ内で、オペランドが揃ってお
り(レディ)、かつ、リソースの競合を起こさない命令
の中から、何らかの優先順位付けによって発行すべき命
令を選択する。 (2)選択された命令の結果を参照する後続命令を命令
追越しバッファ中から検索し、その後続命令のオペラン
ドレディフラグをセットする。
【0004】従来、上記のようなオペランドレディの判
定は、発行すべき命令が確定した際に、その命令に付与
されたタグ番号と後続命令のオペランドに付与されたタ
グ番号との比較を行い、一致するタグ番号が付与されて
いる後続命令のオペランドをレディと判定している。
【0005】
【発明が解決しようとする課題】上述の従来技術におい
ては、アウトオブオーダ実行を実現するために、命令発
行の可否を判定した上で後続命令に対してオペランドレ
ディ状態の更新情報を伝えなければならない。しかしな
がら、従来の方式ではこれらの処理に要する論理回路の
段数にも下限があり、テクノロジの高速化以上のクロッ
クスピードの向上が困難になっている。
【0006】本発明の目的は、アウトオブオーダ実行に
要する処理を高速化し、パイプライン計算機におけるス
ループットを向上させる命令発行回路を提供することに
ある。
【0007】
【課題を解決するための手段】上記課題を解決するため
に本発明の命令発行回路は、命令発行を待つ各命令につ
いて当該命令の実行結果を参照する後続命令の識別番号
を保持し、先行する命令の発行の際に前記識別子によっ
て前記先行する命令の実行結果を参照する後続命令の発
行条件を更新する。
【0008】また、本発明の他の命令発行回路におい
て、前記識別子は、命令発行を待つ各命令が保持される
バッファのエントリ番号である。
【0009】また、本発明の他の命令発行回路は、複数
のエントリを有し、命令発行を待つ命令を前記複数のエ
ントリの何れかに保持する命令追越しバッファと、この
命令追越しバッファの前記複数のエントリのうち何れの
エントリに新たな命令を保持するかを指示するエントリ
管理回路と、前記新たな命令を保持する際に、既に前記
命令追越しバッファに保持されている先行命令の実行結
果を前記新たな命令がオペランドとして参照するか否か
を判断し、参照すると判断した場合には前記先行命令の
保持されているエントリ中に前記新たな命令の保持され
ているエントリの位置を設定する参照関係設定回路と、
前記先行命令の発行の際に、前記参照関係設定回路によ
り設定されたエントリ位置に従って前記命令追越しバッ
ファに保持された命令の発行条件を更新するレディフラ
グ設定回路とを含む。
【0010】また、本発明の他の命令発行回路におい
て、前記命令追越しバッファの前記複数のエントリの各
々は、当該命令の実行結果の書込先レジスタ番号と、当
該命令のオペランドが読出し可能な状態であるか否かを
示すレディフラグと、当該命令の実行結果をオペランド
として参照する後続命令の当該命令追越しバッファにお
けるエントリの位置を保持するオペランド後続参照エン
トリ情報とを保持する。
【0011】また、本発明の他の命令発行回路におい
て、前記オペランド後続参照エントリ情報は、前記命令
追越しバッファの各エントリに対応したビットにより表
現され、当該命令の実行結果をオペランドとして参照す
る後続命令の当該命令追越しバッファにおけるエントリ
に対応するビットがアサートされる。
【0012】また、本発明の他の命令発行回路におい
て、前記レディフラグ設定回路は、前記先行命令の発行
の際に、前記先行命令の保持されたエントリの前記オペ
ランド後続参照エントリ情報の各ビットをその対応する
エントリの前記レディフラグに入力し、対応するビット
がアサートされている場合には当該レディフラグを読出
し可能状態にするように更新する。
【0013】また、本発明の他の命令発行回路におい
て、前記オペランド後続参照エントリ情報は、自エント
リに対応するビットは設けず、前記レディフラグ設定回
路は、前記オペランド後続参照エントリ情報に対して前
記自エントリに対応するビットを補って、前記レディフ
ラグに入力する。
【0014】また、本発明の他の命令発行回路におい
て、前記命令追越しバッファの前記複数のエントリの各
々に保持される命令は、複数のオペランドを有し、前記
レディフラグ及び前記オペランド後続参照エントリ情報
は前記複数のオペランドの各々に対応して複数設けられ
る。
【0015】また、本発明の他の命令発行回路におい
て、前記参照関係設定回路は、前記新たな命令を保持す
る際に、前記命令追越しバッファの何れかのエントリの
書込先レジスタ番号と前記新たな命令のオペランドのレ
ジスタ番号とが一致する場合には、その一致するエント
リにおける前記オペランド後続参照エントリ情報の中の
前記新たな命令の保持されるエントリに対応するビット
をアサートする。
【0016】また、本発明のパイプライン計算機は、複
数段のパイプラインを有するパイプライン計算機であっ
て、複数のエントリを有し、命令発行を待つ命令を前記
複数のエントリの何れかに保持する命令追越しバッファ
と、この命令追越しバッファの前記複数のエントリのう
ち何れのエントリに新たな命令を保持するかを指示する
エントリ管理回路と、前記新たな命令を保持する際に、
既に前記命令追越しバッファに保持されている先行命令
の実行結果を前記新たな命令がオペランドとして参照す
るか否かを判断し、参照すると判断した場合には前記先
行命令の保持されているエントリ中に前記新たな命令の
保持されているエントリの位置を設定する参照関係設定
回路と、前記命令追越しバッファの何れのエントリに保
持された命令を発行すべきかを決定して前記先行命令の
発行の際に、前記参照関係設定回路により設定されたエ
ントリ位置に従って前記命令追越しバッファに保持され
た命令の発行条件を更新するレディフラグ設定回路とを
含む。
【0017】また、本発明の命令発行方法は、命令発行
を待つ命令を複数のエントリの何れかに保持する命令追
越しバッファにおける命令発行方法であって、前記複数
のエントリの各々は、当該命令のオペランドが読出し可
能な状態であるか否かを示すレディフラグと当該命令の
実行結果をオペランドとして参照する後続命令の当該命
令追越しバッファにおけるエントリの位置を保持するオ
ペランド後続参照エントリ情報とを含み、先行命令の実
行結果を参照する後続命令を前記追越しバッファに登録
する際には前記先行命令の保持されるエントリ中のオペ
ランド後続参照エントリ情報に前記後続命令のエントリ
位置を設定し、前記先行命令の発行の際には前記先行命
令の保持されるエントリ中のオペランド後続参照エント
リ情報に従って前記後続命令の保持されるエントリ中の
レディフラグを更新する。
【0018】
【発明の実施の形態】次に本発明の命令発行回路の実施
の形態について図面を参照して詳細に説明する。
【0019】図1を参照すると、本発明の実施の形態に
おけるパイプライン計算機は、フェッチ(Fetch)ステ
ージ、デコード(Decode)ステージ、発行(Issue)
ステージ、リード(Read)ステージ、実行(eXecut
e)ステージ、書戻し(Write-back)ステージの各ステ
ージからなる。フェッチステージでは、(図示しない)
メモリまたは命令バッファ100から所望の命令がフェ
ッチされ、Dステージ保持回路200に保持される。デ
コードステージでは、Dステージ保持回路200に保持
された命令がデコード(解読)されるとともに、命令発
行回路300内の命令追越しバッファに保持される。こ
の命令追越しバッファは複数のエントリを有する。発行
ステージでは、命令発行回路300内の命令追越しバッ
ファに保持された命令の中から発行可能な命令が選択さ
れてRステージ保持回路400に保持される。リードス
テージでは、Rステージに保持された命令に必要なオペ
ランドがレジスタ500から読み出されて、その読み出
されたオペランドが命令とともにXステージ保持回路6
00に保持される。実行ステージでは、発行された命令
が演算器700等で実行され、Wステージ保持回路80
0に保持される。ロード命令の場合は、キャッシュメモ
リ若しくはメモリからデータが読み出されて、Wステー
ジ保持回路800に保持される。書戻しステージでは、
Wステージ保持回路800に保持された実行結果がレジ
スタ500等に書き込まれる。
【0020】命令発行回路300内の命令追越しバッフ
ァに保持された命令は、実行条件の整ったものからその
実行が開始される。この時、実行条件の整っていない命
令は、後続命令に追い越されることもある。また、命令
発行回路300内の命令追越しバッファに保持されてい
る命令は、その命令の実行が開始されたときに削除され
る。
【0021】ここで、キャッシュの読出しデータや演算
結果は、レジスタに書き込まれるだけでなく、Xステー
ジ保持回路600や演算器700の入力に直接投入され
る。これをオペランドバイパスという。このオペランド
バイパスにより、先行命令の結果を参照する後続命令へ
のデータの受渡しに要するサイクル数が短縮される。
【0022】図2を参照すると、発行ステージの命令発
行回路300には、エントリ管理回路310と、参照関
係設定回路320と、命令追越しバッファ330と、レ
ディフラグ設定回路340とが含まれる。
【0023】命令ラッチ200に保持される命令は、命
令コードフィールド201と、Xオペランドフィールド
202と、Yオペランドフィールド203と、Zオペラ
ンドフィールド204の各フィールドからなる。命令コ
ードフィールド201は、命令の種別を表す。Xオペラ
ンドフィールド202は、一般に、書込みレジスタ番号
を表す。Yオペランドフィールド203は、一般に、第
1の読出しレジスタ番号を表す。Zオペランドフィール
ド204は、一般に、第2の読出しレジスタ番号を表
す。
【0024】命令追越しバッファ330は、複数のエン
トリを有しており、各エントリはそれぞれ、有効フラグ
331と、書込先レジスタ番号332と、Yオペランド
レディフラグ333と、Zオペランドレディフラグ33
4と、Yオペランド後続参照エントリ情報335と、Z
オペランド後続参照エントリ情報336とを含んでい
る。有効フラグ331は、当該エントリが「有効」であ
るか「無効」であるかを示す。書込先レジスタ番号33
2には、当該命令の実行結果の書込先レジスタ番号が保
持される。Yオペランドレディフラグ333及びZオペ
ランドレディフラグ334は、それぞれYオペランド及
びZオペランドが参照できる(レディ)状態になってい
るか否かを示す。これらYオペランドレディフラグ33
3及びZオペランドレディフラグ334の更新はレディ
フラグ設定回路340が行う。
【0025】Yオペランド後続参照エントリ情報335
及びZオペランド後続参照エントリ情報336はそれぞ
れ、当該命令の演算結果をYオペランド及びZオペラン
ドとして参照する後続命令が登録されているエントリの
位置、すなわちエントリ番号を表す情報である。これら
Yオペランド後続参照エントリ情報335及びZオペラ
ンド後続参照エントリ情報336はそれぞれ、(命令追
越しバッファ330のエントリ数−1)のビット幅を備
え、各ビットは自エントリを除く命令追越しバッファ3
30の各エントリに対応する。これらYオペランド後続
参照エントリ情報335及びZオペランド後続参照エン
トリ情報336への設定は、参照関係設定回路320が
行う。
【0026】エントリ管理回路310は、命令追越しバ
ッファ330の各エントリの使用状態を管理する。すな
わち、有効フラグ331の内容が「無効」であるエント
リの中で、次に新たな命令を保持すべきエントリを選択
する。この選択のためには、例えば「無効」を指すエン
トリの中で最小のエントリ番号のものを出力するような
ことが考えられるが、そのような回路の一例としてプラ
イオリティエンコーダを使用することができる。この有
効フラグ331は、新たな命令が保持される際に「有
効」状態に設定される。また、命令追越しバッファ33
0から命令が発行された際には発行済命令の保持されて
いたエントリの有効フラグ331が「無効」状態に設定
される。
【0027】図3を参照すると、参照関係設定回路32
0は、デコーダ321と、命令追越しバッファ330の
各エントリに対応して設けられた比較器322及び論理
積回路323とを含む。デコーダ321は、エントリ管
理回路310から出力された登録エントリ番号をデコー
ドして、命令追越しバッファ330の中で何れのエント
リに登録されるのかを出力する。ここでは、説明を簡単
にするため、命令追越しバッファ330は#1から#8
の8つのエントリを有するものとして説明する。但し、
このエントリ数はシステムの要求に応じて任意の値を選
択することができることはいうまでもない。この場合、
デコーダ321はエントリに対応して8本のデコード済
信号線を出力する。
【0028】デコーダ321の出力に応じて、命令追越
しバッファ330中の選択された一つのエントリに、D
ステージ保持回路200に保持された命令が登録され
る。そしてこれと同時に、他のエントリでは、、Dステ
ージ保持回路200に保持されたYオペランド203及
びZオペランド204と書込先レジスタ番号332との
比較が比較器322によって行われ、一致した比較器3
22の出力がアサートされる。論理積回路323は、比
較器322の出力とデコーダ321の出力の各ビットと
の論理積を生成する。
【0029】ここで、論理積回路323は、命令追越し
バッファ330の各エントリ毎に自エントリを除く他の
エントリ分存在する。例えば、エントリ#3における論
理積回路323−3は、自エントリを除くエントリ#
1,#2,#4〜#8の7つ設けられる。同様に、エン
トリ#8における論理積回路323−8は、自エントリ
を除くエントリ#1〜#7の7つ設けられる。これら論
理積回路323の出力は、それらの属するエントリの後
続参照エントリ情報335に保持される。
【0030】このように、参照関係設定回路320によ
れば、後続命令の命令追越しバッファへの登録時に、参
照関係にある先行命令のYオペランド後続参照エントリ
情報335及びZオペランド後続参照エントリ情報33
6に参照関係に関する情報を設定しておくことができ
る。これにより、その後、そのような後続命令の発行可
能の可否を高速に判定することができるようになる。
【0031】図4を参照すると、レディフラグ設定回路
340は、発行命令制御回路341と、選択器342と
を含んでいる。
【0032】発行命令制御回路341は、命令追越しバ
ッファ330の何れかのエントリの内、有効フラグ33
1が「有効」状態で、且つ、Yオペランドレディフラグ
333及びZオペランドレディフラグ334が「レデ
ィ」状態であるエントリに保持されている命令を、発行
可能な命令として選択する。このようにして選択された
エントリ番号は信号線349によって選択器342での
制御信号として指定される。
【0033】選択器342は、発行命令制御回路341
により指定されたエントリに含まれるYオペランド後続
参照エントリ情報335及びZオペランド後続参照エン
トリ情報336を出力する。但し、Yオペランド後続参
照エントリ情報335及びZオペランド後続参照エント
リ情報336は、それぞれ自エントリを除いた7ビット
であるが、選択器342内では自エントリを補って8ビ
ットを出力する。この場合、補われたビットはアサート
されない。このようにして選択されたYオペランド後続
参照エントリ情報335及びZオペランド後続参照エン
トリ情報336の各ビットは、それぞれYレディフラグ
333及びZレディフラグ334の対応するセット入力
に入力される。例えば、エントリ#8が選択された場合
には、Yオペランド側の出力としては、エントリ#8の
Yオペランド後続参照エントリ情報335−8の7ビッ
トの内、第1ビット目がYレディフラグ333−1に、
第2ビット目がYレディフラグ333−2に、という具
合に入力され、第7ビット目がYレディフラグ333−
7に入力される。また、論理的にローレベルの信号がY
レディフラグ333−8に入力される。Zオペランド側
についても同様である。
【0034】これにより、発行された命令の書込先レジ
スタを参照する後続命令について、Yオペランドまたは
Zオペランドのレディフラグを即座にセットすることが
できる。
【0035】次に、本発明の実施の形態における動作に
ついて図面を参照して説明する。
【0036】図5を参照すると、動作の説明のための一
例として使用する命令列は命令1と命令2とからなる。
命令1は、レジスタS2の内容とレジスタS3の内容と
を加算した結果をレジスタS7に格納する加算命令であ
る。命令2は、レジスタS7の内容からレジスタS10
の内容を減じてレジスタS5に格納する減算命令であ
る。すなわち、命令1で生成された値はレジスタS7に
格納され、その値はさらに命令2のYオペランドとして
参照される。この図5の命令列を使用して、この場合の
動作について説明する。
【0037】図1乃至4及び図6を参照すると、まず、
時刻T1で命令1が命令バッファ100から読み出され
てDステージ保持回路200に保持される。そして、時
刻T2では命令1がデコードされ、命令発行回路300
内の命令追越しバッファ330に保持される。ここで、
この命令1は命令発行回路300内の命令追越しバッフ
ァ330のエントリ#3に保持されたものとする。同じ
く時刻T2では、命令2が命令バッファ100から読み
出されてDステージ保持回路200に保持される。
【0038】時刻T3では、命令2がデコードされ、命
令追越しバッファ330に保持される。ここで、この命
令2は命令発行回路300内の命令追越しバッファ33
0のエントリ#8に保持されるものとする。このとき、
デコーダ321の出力の内、#8に相当する信号線のみ
がアサートされるため、Dステージ保持回路200内の
Xフィールド202の内容が、命令追越しバッファ33
0内のエントリ#8の書込先レジスタ番号332−8に
保持される。そして、これと同時に、命令追越しバッフ
ァ330内のエントリ#3の書込先レジスタ番号332
−3に保持されたレジスタ番号が、Dステージ保持回路
200のYフィールド203に保持されたレジスタ番号
と一致して共に「S7」となることから、比較器322
−3の値がアサートされ、論理積回路323−3の各々
における一方の入力が論理的にハイレベルとなる。ま
た、デコーダ321の出力は、#8に相当する信号線の
みがアサートされているため、Yオペランド後続参照エ
ントリ情報335−3のエントリ#8に対応するビット
が論理的なハイレベルとなる。一方、命令1は、何らか
の要因により発行条件が揃わないためにエントリ#3に
残留するものとする。さらにその後、時刻T4からT8
まで命令1の発行がされなかったものとする。その場
合、命令1の結果を待つ命令2はやはり発行できず、エ
ントリ#8に残留することになる。
【0039】時刻T8で命令1の発行条件が揃ったもの
とすると、それが発行命令制御回路341によって検出
され、エントリ#3の発行指示が選択器342にされ
る。選択器342がエントリ#3のYオペランド後続参
照エントリ情報335−3及びZオペランド後続参照エ
ントリ情報336−3を選択すると、それぞれYオペラ
ンドレディフラグ333及びZオペランドレディフラグ
334のセット入力に入力される。上述のように、Yオ
ペランド後続参照エントリ情報335−3は、エントリ
#8に対応するビットのみが論理的なハイレベルである
ため、エントリ#8に対応するYオペランドレディフラ
グ333−8がセットされる。
【0040】時刻9では、時刻8で発行された命令1の
各オペランドがリードされる。また、この時刻9では、
時刻8でエントリ#8のYオペランドレディフラグ33
3−8がセットされたことによって、命令2の発行条件
が揃い、それが発行命令制御回路341によって検出さ
れ、エントリ#8の発行指示が選択器342にされる。
【0041】時刻10では、演算器700において命令
1の実行がされ、その結果がWステージ保持回路800
に保持される。また、この時刻10では、命令2のZオ
ペランドがレジスタ500から読み出される。
【0042】時刻11では、Wステージ保持回路800
に保持された命令1の演算結果がレジスタ500に書き
込まれる。それとともに、Wステージ保持回路800に
保持された命令1の演算結果は、上述のバイパスにより
演算器700の第1の入力、すなわち命令2のYオペラ
ンドとして入力される。これにより、この時刻11で
は、演算器700において命令2の実行がされ、その結
果がWステージ保持回路800に保持される。このWス
テージ保持回路800に保持された命令2の演算結果
は、時刻12にレジスタ500に書き込まれる。
【0043】このように、本発明の実施の形態によれ
ば、命令追越しバッファ330内にYオペランドレディ
フラグ333及びZオペランドレディフラグ334を設
け、その命令の実行結果をYオペランド又はZオペラン
ドとして参照する命令の保持されているエントリ番号を
参照関係設定回路320によって予めセットしておくこ
とにより、その命令が発行された際にレディフラグ設定
回路340によって即座にYオペランド及びZオペラン
ドのレディ状態を設定することができる。
【0044】
【発明の効果】以上の説明で明らかなように、本発明に
よると、先行命令の実行結果を参照する後続命令に関す
る情報を先行命令の発行前に予め設定しておくことによ
り、先行命令発行の際に後続命令の発行可能性を即座に
判定することができる。
【図面の簡単な説明】
【図1】本発明の命令発行回路の適用されるパイプライ
ン計算機の一例を示すブロック図である。
【図2】本発明の命令発行回路の実施の形態の構成を示
すブロック図である。
【図3】本発明の実施の形態における参照関係設定回路
の構成を示すブロック図である。
【図4】本発明の実施の形態におけるレディフラグ設定
回路の構成を示すブロック図である。
【図5】本発明の実施の形態の動作を説明するための命
令列を示す図である。
【図6】本発明の実施の形態の動作を説明するためのタ
イミングチャートである。
【符号の説明】 100 命令バッファ 200 Dステージ保持回路 300 命令発行回路 310 エントリ管理回路 320 参照関係設定回路 321 デコーダ 322 比較器 323 論理積回路 330 命令追越しバッファ 331 有効フラグ 332 書込先レジスタ番号 333 Yオペランドレディフラグ 334 Zオペランドレディフラグ 335 Yオペランド後続参照エントリ情報 336 Zオペランド後続参照エントリ情報 340 レディフラグ設定回路 341 発行命令制御回路 342 選択器 400 Rステージ保持回路 500 レジスタ 600 Xステージ保持回路 700 演算器 800 Wステージ保持回路

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 命令発行を待つ各命令について当該命令
    の実行結果を参照する後続命令の識別番号を保持し、先
    行する命令の発行の際に前記識別子によって前記先行す
    る命令の実行結果を参照する後続命令の発行条件を更新
    することを特徴とする命令発行回路。
  2. 【請求項2】 前記識別子は、命令発行を待つ各命令が
    保持されるバッファのエントリ番号であることを特徴と
    する請求項1記載の命令発行回路。
  3. 【請求項3】 複数のエントリを有し、命令発行を待つ
    命令を前記複数のエントリの何れかに保持する命令追越
    しバッファと、 この命令追越しバッファの前記複数のエントリのうち何
    れのエントリに新たな命令を保持するかを指示するエン
    トリ管理回路と、 前記新たな命令を保持する際に、既に前記命令追越しバ
    ッファに保持されている先行命令の実行結果を前記新た
    な命令がオペランドとして参照するか否かを判断し、参
    照すると判断した場合には前記先行命令の保持されてい
    るエントリ中に前記新たな命令の保持されているエント
    リの位置を設定する参照関係設定回路と、 前記先行命令の発行の際に、前記参照関係設定回路によ
    り設定されたエントリ位置に従って前記命令追越しバッ
    ファに保持された命令の発行条件を更新するレディフラ
    グ設定回路とを含むことを特徴とする命令発行回路。
  4. 【請求項4】 前記命令追越しバッファの前記複数のエ
    ントリの各々は、当該命令の実行結果の書込先レジスタ
    番号と、当該命令のオペランドが読出し可能な状態であ
    るか否かを示すレディフラグと、当該命令の実行結果を
    オペランドとして参照する後続命令の当該命令追越しバ
    ッファにおけるエントリの位置を保持するオペランド後
    続参照エントリ情報とを保持することを特徴とする請求
    項3記載の命令発行回路。
  5. 【請求項5】 前記オペランド後続参照エントリ情報
    は、前記命令追越しバッファの各エントリに対応したビ
    ットにより表現され、当該命令の実行結果をオペランド
    として参照する後続命令の当該命令追越しバッファにお
    けるエントリに対応するビットがアサートされることを
    特徴とする請求項4記載の命令発行回路。
  6. 【請求項6】 前記レディフラグ設定回路は、前記先行
    命令の発行の際に、前記先行命令の保持されたエントリ
    の前記オペランド後続参照エントリ情報の各ビットをそ
    の対応するエントリの前記レディフラグに入力し、対応
    するビットがアサートされている場合には当該レディフ
    ラグを読出し可能状態にするように更新することを特徴
    とする請求項5記載の命令発行回路。
  7. 【請求項7】 前記オペランド後続参照エントリ情報
    は、自エントリに対応するビットは設けず、 前記レディフラグ設定回路は、前記オペランド後続参照
    エントリ情報に対して前記自エントリに対応するビット
    を補って、前記レディフラグに入力することを特徴とす
    る請求項6記載の命令発行回路。
  8. 【請求項8】 前記命令追越しバッファの前記複数のエ
    ントリの各々に保持される命令は、複数のオペランドを
    有し、 前記レディフラグ及び前記オペランド後続参照エントリ
    情報は前記複数のオペランドの各々に対応して複数設け
    られることを特徴とする請求項6記載の命令発行回路。
  9. 【請求項9】 前記参照関係設定回路は、前記新たな命
    令を保持する際に、前記命令追越しバッファの何れかの
    エントリの書込先レジスタ番号と前記新たな命令のオペ
    ランドのレジスタ番号とが一致する場合には、その一致
    するエントリにおける前記オペランド後続参照エントリ
    情報の中の前記新たな命令の保持されるエントリに対応
    するビットをアサートすることを特徴とする請求項5記
    載の命令発行回路。
  10. 【請求項10】 複数段のパイプラインを有するパイプ
    ライン計算機であって、 複数のエントリを有し、命令発行を待つ命令を前記複数
    のエントリの何れかに保持する命令追越しバッファと、 この命令追越しバッファの前記複数のエントリのうち何
    れのエントリに新たな命令を保持するかを指示するエン
    トリ管理回路と、 前記新たな命令を保持する際に、既に前記命令追越しバ
    ッファに保持されている先行命令の実行結果を前記新た
    な命令がオペランドとして参照するか否かを判断し、参
    照すると判断した場合には前記先行命令の保持されてい
    るエントリ中に前記新たな命令の保持されているエント
    リの位置を設定する参照関係設定回路と、 前記命令追越しバッファの何れのエントリに保持された
    命令を発行すべきかを決定して前記先行命令の発行の際
    に、前記参照関係設定回路により設定されたエントリ位
    置に従って前記命令追越しバッファに保持された命令の
    発行条件を更新するレディフラグ設定回路とを含むこと
    を特徴とするパイプライン計算機。
  11. 【請求項11】 命令発行を待つ命令を複数のエントリ
    の何れかに保持する命令追越しバッファにおける命令発
    行方法であって、 前記複数のエントリの各々は、当該命令のオペランドが
    読出し可能な状態であるか否かを示すレディフラグと当
    該命令の実行結果をオペランドとして参照する後続命令
    の当該命令追越しバッファにおけるエントリの位置を保
    持するオペランド後続参照エントリ情報とを含み、 先行命令の実行結果を参照する後続命令を前記追越しバ
    ッファに登録する際には前記先行命令の保持されるエン
    トリ中のオペランド後続参照エントリ情報に前記後続命
    令のエントリ位置を設定し、 前記先行命令の発行の際には前記先行命令の保持される
    エントリ中のオペランド後続参照エントリ情報に従って
    前記後続命令の保持されるエントリ中のレディフラグを
    更新することを特徴とする命令発行方法。
JP10339366A 1998-11-30 1998-11-30 命令発行回路 Pending JP2000163265A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP10339366A JP2000163265A (ja) 1998-11-30 1998-11-30 命令発行回路
EP99123697A EP1006439B1 (en) 1998-11-30 1999-11-29 Instruction-issuing circuit and method for out-of-order execution that set reference dependency information in an instruction when a succeeding instruction is stored in an instruction buffer
DE69927910T DE69927910T2 (de) 1998-11-30 1999-11-29 Befehlsausgabe-Schaltkreis und Verfahren zur Out-of- order-Befehlsausführung, wodurch Referenzabhängigkeitsinformationen in einem Befehl gesetzt werden, wenn ein Nachfolgender Befehl in einem Befehlspuffer gespeichert wird d
US09/450,769 US6553484B1 (en) 1998-11-30 1999-11-30 Instruction-issuing circuit that sets reference dependency information in a preceding instruction when a succeeding instruction is stored in an instruction out-of-order buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10339366A JP2000163265A (ja) 1998-11-30 1998-11-30 命令発行回路

Publications (1)

Publication Number Publication Date
JP2000163265A true JP2000163265A (ja) 2000-06-16

Family

ID=18326797

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10339366A Pending JP2000163265A (ja) 1998-11-30 1998-11-30 命令発行回路

Country Status (4)

Country Link
US (1) US6553484B1 (ja)
EP (1) EP1006439B1 (ja)
JP (1) JP2000163265A (ja)
DE (1) DE69927910T2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6954848B2 (en) * 2002-01-02 2005-10-11 Intel Corporation Marking in history table instructions slowable/delayable for subsequent executions when result is not used immediately
US6981166B2 (en) * 2002-01-07 2005-12-27 International Business Machines Corporation Method, apparatus, and computer program product for pacing clocked operations
US20080168260A1 (en) * 2007-01-08 2008-07-10 Victor Zyuban Symbolic Execution of Instructions on In-Order Processors
US9110656B2 (en) * 2011-08-16 2015-08-18 Freescale Semiconductor, Inc. Systems and methods for handling instructions of in-order and out-of-order execution queues
US9971600B2 (en) * 2015-06-26 2018-05-15 International Business Machines Corporation Techniques to wake-up dependent instructions for back-to-back issue in a microprocessor
JP7020304B2 (ja) * 2018-06-07 2022-02-16 富士通株式会社 演算処理装置及び演算処理装置の制御方法
CN114816526B (zh) * 2022-04-19 2022-11-11 北京微核芯科技有限公司 基于操作数域复用的多操作数指令的处理方法及其装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471591A (en) * 1990-06-29 1995-11-28 Digital Equipment Corporation Combined write-operand queue and read-after-write dependency scoreboard
JP3730252B2 (ja) * 1992-03-31 2005-12-21 トランスメタ コーポレイション レジスタ名称変更方法及び名称変更システム
EP0682789B1 (en) * 1992-12-31 1998-09-09 Seiko Epson Corporation System and method for register renaming
US5761105A (en) * 1995-09-26 1998-06-02 Advanced Micro Devices, Inc. Reservation station including addressable constant store for a floating point processing unit
US5812812A (en) * 1996-11-04 1998-09-22 International Business Machines Corporation Method and system of implementing an early data dependency resolution mechanism in a high-performance data processing system utilizing out-of-order instruction issue
JP2894438B2 (ja) 1996-11-25 1999-05-24 日本電気株式会社 パイプライン処理装置
US5941983A (en) * 1997-06-24 1999-08-24 Hewlett-Packard Company Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues

Also Published As

Publication number Publication date
DE69927910D1 (de) 2005-12-01
EP1006439B1 (en) 2005-10-26
DE69927910T2 (de) 2006-07-20
EP1006439A1 (en) 2000-06-07
US6553484B1 (en) 2003-04-22

Similar Documents

Publication Publication Date Title
US5954815A (en) Invalidating instructions in fetched instruction blocks upon predicted two-step branch operations with second operation relative target address
US7793079B2 (en) Method and system for expanding a conditional instruction into a unconditional instruction and a select instruction
JPH04367936A (ja) スーパースカラープロセッサ
US6463524B1 (en) Superscalar processor and method for incrementally issuing store instructions
US6338134B1 (en) Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data
US6003126A (en) Special instruction register including allocation field utilized for temporary designation of physical registers as general registers
US6539471B2 (en) Method and apparatus for pre-processing instructions for a processor
US7844799B2 (en) Method and system for pipeline reduction
JP2000163265A (ja) 命令発行回路
US6829699B2 (en) Rename finish conflict detection and recovery
US5878242A (en) Method and system for forwarding instructions in a processor with increased forwarding probability
US6016541A (en) Instruction controlling system and method thereof
US5151993A (en) Data processor performing operation on data having length shorter than one-word length
US8250346B2 (en) Register renaming of a partially updated data granule
KR100241970B1 (ko) 파이프라인 처리를 수행하는 데이터 처리 장치
US6260136B1 (en) Substitute register for use in a high speed data processor
US6484251B1 (en) Updating condition status register based on instruction specific modification information in set/clear pair upon instruction commit in out-of-order processor
US7590827B2 (en) Processor and instruction control method having a storage of latest register for updating data of source operands, and instruction control
US6032249A (en) Method and system for executing a serializing instruction while bypassing a floating point unit pipeline
US20040128484A1 (en) Method and apparatus for transparent delayed write-back
US6922760B2 (en) Distributed result system for high-performance wide-issue superscalar processor
JP2894438B2 (ja) パイプライン処理装置
US20070050610A1 (en) Centralized resolution of conditional instructions
JP3473506B2 (ja) パイプライン処理装置
US7937562B2 (en) Processing apparatus

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010313