JP3499135B2 - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JP3499135B2 JP3499135B2 JP18200198A JP18200198A JP3499135B2 JP 3499135 B2 JP3499135 B2 JP 3499135B2 JP 18200198 A JP18200198 A JP 18200198A JP 18200198 A JP18200198 A JP 18200198A JP 3499135 B2 JP3499135 B2 JP 3499135B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- operand
- operand address
- fetch
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 25
- 238000012545 processing Methods 0.000 claims description 26
- 238000010586 diagram Methods 0.000 description 19
- 238000000034 method Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 102100025071 Potassium voltage-gated channel subfamily H member 5 Human genes 0.000 description 1
- 108050000076 Potassium voltage-gated channel subfamily H member 5 Proteins 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
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)
Description
し、更に詳しくはパイプライン処理やアウトオブオーダ
処理などを取り入れて、命令の並列実行処理によって高
性能を実現しようとする情報処理装置に関する。
の干渉関係、すなわち先行する命令によって更新される
資源の内容が後続の命令で参照される関係がある場合に
は、先行する命令の処理が終了するまで後続の命令を実
行できないというように、先行命令が後続命令の実行に
影響を与える状態が発生する。命令のプログラムによっ
て指示される実行順序に従って逐次実行された時と同じ
結果を保証する必要がある場合には、命令の並列実行処
理が不可能となり、高性能を実現するためのハードウェ
アの性能を十分に発揮することができず、情報処理装置
全体としての性能低下の原因となる。
で、先行する命令によって更新されるレジスタの内容を
後続の命令が参照し、例えば主記憶オペランドアドレス
の生成に使用する場合に生じるレジスタ干渉状態がエク
セキュートジェネレートインターロック(EGI)であ
り、情報処理装置の性能を低下させる大きな要因となっ
ている。
一般的に先行の命令によってレジスタの内容更新が行わ
れる時期は命令処理の完了時であり、一方後続の命令に
おいてオペランドアドレスの生成が行われるのは命令処
理の比較的早い段階であることによる。
おいてもレジスタ格納前のデータを直接オペランドアド
レス生成のための加算器、すなわちエフェクティブアド
レスジェネレータ(EAG)にバイパスする方法が実施
されている。図10はこのような場合のパイプライン動
作の説明図である。
すなわちEGIが起こらずに命令処理が行われる場合の
実行動作を示す。このパイプライン動作は、命令のデコ
ードサイクルD、アドレス生成サイクルA、トランスレ
ーションルックアサイドバッファとタグへのアクセスに
よるアドレス変換サイクルT、バッファからのオペラン
ド読出しサイクルB、例えば演算実行とレジスタアップ
デートバッファ(RUB)の更新サイクルU、および演
算結果の汎用レジスタGRへの書込みサイクルWから成
っている。そして演算用のオペランドは、サイクルBに
おいてローカルバッファストレージ(LBS)からロー
ドデータレジスタ(LR)に格納され、サイクルUにお
ける演算実行に使用される。
合のパイプライン動作の説明図である。命令デコードの
結果に対応して、図示しないEGI検出回路によってレ
ジスタ干渉状態としてのEGIが検出され、アドレス計
算は基本的に主記憶オペランドのアドレス計算に必要な
レジスタとしてのベースレジスタ(BR)、インデック
スレジスタ(XR)、およびディスプレイスメントレジ
スタ(DR)の内容が確定する(サイクルA)まで延期
される。そしてアドレス計算のプライオリティサイクル
Paにおいて、BRおよびXRに格納すべきデータがロ
ーカルバッファストレージLBSから、BRおよびXR
をバイパスして、EA1,EA2として与えられ、また
ディスプレイスメントレジスタ(DR)の値がEA3と
して与えられて、アドレス生成サイクルAにおいてEA
Gによってオペランドアドレスの生成が行われる。な
お、ここでは演算実行のサイクルXは更新サイクルUと
は独立してサイクルUの前におかれ、演算結果は一旦リ
ザルトレジスタ(RR)に格納される。
に、アドレス計算に使用されるべきレジスタの内容がレ
ジスタに格納される前にバイパスされてアドレス計算に
用いられるとしても、先行する命令によって更新される
べきレジスタ内容の確定を待つ必要があり、高性能のキ
ャッシュを備える情報処理装置においても、複数サイク
ルの損失が発生し、命令実行の並列度が著しく阻害され
るという問題点があった。高性能を実現しようとして命
令実行の並列度が高められた情報処理装置である程、ま
すますこの損失は顕著となり、設計目的の高性能は発揮
できないという問題点があった。
令によって生成されたオペランドアドレスを過去の実行
結果として記憶しておき、その過去の実行結果に基づい
てオペランドアドレスを予測して、実際のオペランドア
ドレス生成の前に命令実行を開始することによって、性
能の低下を防止することができる情報処理装置を提供す
ることを目的とする。
ブロック図である。同図は、先行の命令によってその内
容が書き替えられるレジスタが、後続の命令によってオ
ペランドアドレスの生成に使用されるレジスタ干渉状態
(EGI)を検出する回路を備える情報処理装置1の原
理構成ブロック図である。
トリー記憶手段2は、レジスタ干渉状態が検出された
時、後続命令の実行時に生成されたオペランドアドレス
をその後続命令のアドレスと関連づけて記憶するもので
あり、例えばオペランド・アドレス・ヒストリー(OA
HIS)である。
ド・アドレス・ヒストリー記憶手段2の記憶内容を用い
て、オペランドアドレスの予測が行われる。例えば主記
憶装置からの命令のフェッチ時に、そのフェッチ命令の
アドレスによってオペランド・アドレス・ヒストリー記
憶手段2からオペランドアドレスが検索された時、その
オペランドアドレスを予測オペランドアドレスとして、
フェッチ命令と共に命令実行ステージにおいて提示する
命令フェッチ手段を更に備えることができる。
ば命令フェッチ手段によって予測オペランドアドレスが
提示された時、そのフェッチ命令に対応するオペランド
アドレスが生成される以前に、その予測オペランドアド
レスを用いて主記憶オペランドのフェッチを含む命令実
行を開始する命令実行手段を更に備えることもできる。
ば予測オペランドアドレスを用いて命令実行が開始され
た時、その予測オペランドアドレスを保持して、フェッ
チ命令によってオペランドアドレスの生成に使用される
レジスタが使用可能になった時点で生成されたオペラン
ドアドレスと比較するオペランドアドレス比較手段を更
に備え、2つのオペランドアドレスが一致した時には、
そのフェッチ命令に対応する処理の実行を継続すること
もできる。
のオペランドアドレスが一致しないことが検出された時
には、予測オペランドアドレスを用いた命令の実行結果
を無効化して、生成されるオペランドアドレスを用いて
再度命令実行を行うこともできる。
の命令フェッチ手段によって提示されたオペランドアド
レスを、命令の実行待ち合わせのスタック処理のため
に、フェッチ命令のアドレスと共に格納するリザベーシ
ョンステーション手段を更に備えることもできる。
憶手段2の記憶領域として、前述の後続命令のアドレス
に関連してオペランドアドレスを記憶する領域以外に、
分岐命令の実行時に得られた分岐先アドレスをその分岐
命令のアドレスに関連させて記憶すると共に、領域区別
用のフラグを記憶する領域を更に備えることもできる。
結果としてのオペランドアドレスの予測値を用いて、実
際のオペランドアドレスの生成以前に後続の命令の実行
を開始することが可能となる。
ド・アドレス・ヒストリーを活用した、予測オペランド
アドレスに基づく命令実行が行われる情報処理装置にお
いて、命令制御ユニット(Iユニット)を中心とする構
成ブロック図である。同図において、本発明と関連のあ
る部分を中心に説明する。
ス・レジスタ(IAR)10、インストラクション・フ
ェッチ・エフェクティブ・アドレス・ジェネレータ(I
FEAG)11、インストラクション・エフェクティブ
・アドレス・レジスタ(IEAR)12、インストラク
ション・フェッチ・トランスレーション・ルックアサイ
ド・バッファ(IFTLB)13、インストラクション
・フェッチ・タグ(IFTAG)14、およびインスト
ラクション・フェッチ・ローカル・バッファ・ストレー
ジ(IFLBS)15は、部分的なパイプラインとして
の命令フェッチのパイプライン動作を行うものである。
ェッチのリクエスト発行サイクルI、タグとTLBへの
アクセスサイクルIT、バッファアクセスサイクルI
B、およびフェッチ完了サイクルIRからなり、主記憶
からフェッチされた命令は命令バッファ16に与えられ
る。
令デコード・演算実行パイプラインの最初の命令プレゼ
ンテーションサイクルE、デコードサイクルDにおい
て、インストラクション・ワード・レジスタ(IWR)
17、デコーダ18によってデコードされる。
記憶オペランドのアドレス計算が行われる。このアドレ
ス計算のためにレジスタアップデートバッファ(RU
B)36、または汎用レジスタ(GR)37などから、
オペランドアドレスレジスタ(OP ADRS RE
G)25を介してアドレス生成用のデータ、例えばベー
ス、インデックス、およびディスプレイスメントの値な
どが、エフェクティブ・アドレス・ジェネレータ(EA
G)26に与えられ、オペランドアドレスの生成が行わ
れる。生成されたオペランドアドレスは、オペランド・
エフェクティブ・アドレス・レジスタ(OEAR)27
に格納される。オペランドアドレス生成後の図2の各ブ
ロックの動作は本発明の動作と直接には関係がないた
め、その説明を省略する。
は、オペランド・アドレス・ヒストリー(OAHIS)
19、EGIチェッカ22、およびリザベーション・ス
テーション・フォー・ジェネレート・バイパス(RSG
B)23である。
て、その結果はEGIチェッカ22によって、例えば先
行命令のタグ情報の一部としての先行命令における命令
結果の書き込み先となるレジスタ番号などと比較され
る。現在の命令のデコード結果において、アドレス生成
に使用されるレジスタの番号が先行命令の実行結果が書
き込まれるレジスタの番号と一致すれば、レジスタ干渉
状態としてのエクセキュート・ジェネレート・インター
ロック(EGI)が検出される。このEGI検出回路に
ついては、汎用レジスタに対する干渉チェック回路とし
て、発明者の次の先願に説明されている。
アクセスレジスタのインタロック制御方式 EGIが検出されると、RSGB23に現在の命令のア
ドレスを格納するエントリが作成される。そしてこの場
合には、図10で説明したようにオペランドアドレスの
生成は使用すべきレジスタが使用可能となってから行わ
れるが、その結果EAG26によって生成されたアドレ
スは、RSGB23の同じエントリに現在の命令のアド
レスに対応させて格納される。
ス、および生成されたオペランドアドレスをペアとし
て、命令処理の終了時にオペランド・アドレス・ヒスト
リー(OAHIS)19に生成されるエントリに同様に
格納される。そして、例えば次の命令のフェッチ時に、
その命令のアドレスが格納されたIEAR12の内容を
用いてOAHIS19の記憶内容が検索され、命令アド
レスが一致するか否か、すなわちOAHISにヒットし
たか否かと、ヒットした場合の対応するオペランドアド
レス、その他の情報が命令フェッチのIBサイクルで、
IBタグ20から命令バッファタグ21にセットされ
る。セットされた情報は、インストラクションワードレ
ジスタ17を介して、命令実行のDサイクルでデコーダ
18にDタグとして与えられる。
よって、前述と同様にEGIの検出が行われ、EGIが
検出された場合には、Dサイクルを抜ける時点でRSG
B23にエントリが作成される。そのエントリには有効
性フラグ、OAHISミスかヒットのどちらであるか、
その他の制御フラグ、および自命令の命令アドレス(I
AR)の登録が行われる。OAHISヒットの場合に
は、OAHIS19に格納されていたオペランドアドレ
ス、すなわち予測オペランドアドレス(OAR)も合わ
せて格納される。
命令に対してOAHISミスとヒットの場合、更にその
予測アドレスが正しい場合と誤っていた場合によって処
理が異なるので、その動作については後述する。
(OAHIS)の構成、およびその動作の説明図であ
る。同図においてOAHIS19は、図2のRSGB2
3から命令のアドレスIAR、その命令に対応するオペ
ランドアドレスOARが格納される領域と、有効性フラ
グを示すVが格納される領域と、制御情報CTLが格納
される領域から構成されている。ここで制御情報CTL
としては、後述するように、予測オペランドアドレスが
誤っていた場合に、その誤りを示すフラグなどが格納さ
れる。
・フェッチ・エフェクティブ・アドレス・ジェネレータ
(IFEAG)11から送られる命令フェッチアドレス
が格納されたインストラクション・エフェクティブ・ア
ドレス・レジスタ(IEAR)12の内容によってIA
Rが検索され、一致したIARがあると判定され、かつ
そのエントリの有効性フラグが有効である場合には、対
応するオペランドアドレスOAR、制御情報CTL、お
よび有効性フラグVがIBタグ20に格納される。
けるデータ格納形式の説明図である。同図に示すよう
に、各エントリには有効性フラグV、制御情報CTL、
命令アドレスIARおよびその命令に対応するオペラン
ドアドレスOARが格納される。IARのビット17〜
27は本発明の実施形態では、例えばRAMの深さ方向
のアドレスとして使用され、またビット28はイーブン
/オッドのバンクの選択に使用される。これはRAMが
2ウェイ・4バンク構成で、各バンク2Kエントリ、合
計8Kエントリとなっており、RAMがセットアソシア
ティブなエントリで構成されているためである。しかし
ながら、このようなRAMの構成は本発明とは直接の関
係はない。
タ格納形式の説明図である。同図において各エントリに
は有効性フラグV、例えばエントリの作成時に命令実行
順序に対応して格納される命令識別子IID、OAHI
Sにヒットしたか否かなどの制御情報が格納されるCT
L、命令のアドレスIAR、対応するオペランドアドレ
スOARが格納される。
レスOARには、OAHISにヒットした場合には初め
に予測アドレスがセットされ、その後アドレス生成に使
用すべきレジスタが実際に使用可能となった時点で生成
されたアドレスと比較され、その比較の結果が不一致で
あれば生成アドレスがセットされ、その正しいアドレス
が、命令の完了時にOAHISのOARの書き替えに使
用される。
ド・アドレス・ヒストリーを用いた動作について、図6
〜図8のタイムチャートを用いて説明する。図6は命令
フェッチパイプラインにおける動作の説明図である。サ
イクルIにおいて、IFEAG11によって出力された
フェッチ命令のアドレスによってキャッシュの検索が行
われると共に、OAHIS19の検索も行われる。サイ
クルIRにおいて、ローカルバッファストレージ(LB
S)15の内容が命令バッファ16に、またOAHIS
19からの出力、すなわちIBタグ20の内容が命令バ
ッファタグ21に与えられる。
ゼンテーションのサイクルEを経て、デコードサイクル
DにおいてDタグとして用いられる。図7は、先行命令
と後続命令との関係の違いによる、オペランド・アドレ
ス・ヒストリーを用いた処理の違いを説明するタイムチ
ャートである。同図において先行命令がロード命令Lで
あるものとして、タイムチャートを説明する。この先行
命令に対応して、バッファサイクルBでローカルバッフ
ァストレージ(LBS)の内容がレジスタアップデート
バッファ(RUB)に格納され、また演算結果としての
書き込みデータが、書き込みサイクルWにおいて汎用レ
ジスタ(GR)に格納される。
がOAHISにヒットした場合とミスした場合とで、処
理が基本的に異なる。まずミスした場合、すなわち後続
の命令のアドレスがOAHISの内部のIARとして登
録されていない場合には、デコードサイクルDにおいて
EGIチェッカ22によってEGIが検出された時点
で、RSGB23に有効性フラグVとその後続命令のア
ドレスIARが格納される。
ちロード命令Lに対応して主記憶オペランドのフェッチ
が完了し、そのデータが用意されるまで、後続命令にお
けるオペランドアドレスの生成は遅らされる。ロード命
令に対応するバッファサイクルBにおいてそのデータが
確定されると、そのデータはインデックスレジスタX
R、ベースレジスタBRに直接入力され、それらのデー
タがアドレス生成用のデータEA1,EA2として使用
され、EAG26によって必要な加算が行われ、オペラ
ンドアドレスEAG0/1が生成され、そのオペランド
アドレスはRSGBのエントリにIARに対応してOA
Rとして格納される。
あるが、その後続命令の完了に際してRSGB23内の
情報、すなわち命令のアドレスIAR、対応するオペラ
ンドアドレスOAR、および有効性フラグVがOAHI
S19に送られ、新しいエントリが作成されて、命令実
行結果として記憶される。
ち後続命令のアドレスがOAHISに格納されているI
ARの値と一致した場合には、対応するオペランドアド
レスがEAG26にEAG0/1として送られ、またR
SGB23内に新しいエントリが作成されて有効性フラ
グV、命令のアドレスIAR、オペランドアドレスOA
Rが格納される。EAG26に送られたオペランドアド
レスは予測オペランドアドレスとして用いられ、後続命
令の実行、すなわち主記憶オペランドのフェッチを含ん
だ後続命令に対応する処理が開始される。
令における主記憶オペランドのフェッチが完了し、その
データが用意された時点でOAHISミスの場合と同様
に、EAG26によってオペランドアドレスの生成が行
われる。生成されたアドレスEAG2は命令実行順序に
従った正しいアドレスであって、このアドレスはRSG
B23に送られ、そこに登録されているオペランドアド
レス、すなわち予測オペランドアドレスとの比較が行わ
れる。そして比較結果が一致であればOARマッチとし
て、この後続命令に対応する処理はそのまま継続実行さ
れる。
ドアドレスの比較結果が不一致であれば、予測アドレス
は誤りであり、予測アドレスを使用して行われた処理の
結果は正しくないことになる。この場合のタイムチャー
トが図7の最下部のタイムチャートである。正しいオペ
ランドアドレスと予測オペランドアドレスとの不一致、
すなわちOARのミスマッチが判定されると、すでに実
行された予測オペランドアドレスを用いた命令実行処理
は中止され、処理のやり直しが必要となる。すなわち命
令実行パイプラインの最終サイクルとしての書き込みサ
イクルWにおいて処理結果が汎用レジスタ(GR)に書
き込まれることはなく、GRの更新は行われない。そし
てOAHIS内で誤った予測アドレスが格納されていた
エントリに、予測オペランドアドレスが誤りであること
を示すGIDDYフラグが書き込まれる。更に再度命令
実行を行うために図8に示すRS1ステートへの状態遷
移が行われる。
イプライン動作の説明図である。同図において図7から
の状態遷移によるRS1ステートの次に、RS1Dのス
テートの処理が行われる。このステートはR1のディレ
ーサイクルであり、R1ステート+1サイクルで次のス
テートへの遷移が引き起こされる。次のスタートのステ
ートは、命令実行のためのプロセスステートに入ること
を指示するステートである。そして命令フェッチパイプ
ラインの最初のサイクルIにおいて、プログラム・ステ
ータス・ワード・インストラクション・アドレス・レジ
スタ(PSWIAR)の内容がIFEAG11に与えら
れ、その内容を用いてキャッシュが検索される。以下の
動作は図6におけると同様であるが、OAHISの内容
は使用されない。
る命令のアドレスIARを使用して再実行のための命令
フェッチを行えば、命令再実行に伴う処理の遅延をある
程度小さくすることは可能である。
チの場合の命令再実行動作のパイプライン処理の更に詳
細な説明図である。同図において、EAG26によって
生成された正しいオペランドアドレスと、RSGB23
に格納された予測オペランドアドレスは比較回路41に
よって比較され、オペランドアドレスのミスマッチが判
定されると、その結果は図2の汎用レジスタGR、また
は浮動小数点レジスタFR37へのデータの書き込み禁
止信号、およびプログラムステータスワードのイントス
トラクション・アドレス・レジスタ、すなわち次のフェ
ッチ命令のアドレスを与えるレジスタに対する更新禁止
信号として用いられる。これらの信号として“L”を与
えることによって、レジスタGR、FR37への命令実
行結果の書き込みと、PSWIARの更新とが禁止され
る。そして図8において説明したようにPSWIARの
値、すなわち実行処理が中止された命令のアドレスの値
が命令パイプラインに与えられ、図示しないが、最終的
に命令実行結果の書き込みサイクルWにおいて命令実行
結果がGR,FR37に格納されると共に、PSWIA
Rの更新も行われる。
アドレスと予測オペランドアドレスとの比較の結果が不
一致の場合には、OAHIS19内の対応するエントリ
の予測アドレスの書き替えも行われる。これは同じシー
ケンス、すなわち同じアドレスの命令が再び実行された
場合に、再度予測アドレスの誤りを引き起こすことを防
止するためである。
たエントリを単純にOAHISから消去することもでき
る。しかしそれよりも優れた方法として、本実施形態に
おては、そのエントリに予測アドレスの誤りを示すGI
DDYフラグを制御情報の一部として書き込んで、予測
誤りを記録する方法を採用することもできる。このGI
DDYフラグがオンのエントリが検索された場合には、
命令のアドレスがヒットの場合でもOAHISに格納さ
れているオペランドアドレスを使用することなく、OA
HISミスの場合と同様に、EAG26によってオペラ
ンドアドレスが生成された後に命令処理を行うことがで
きる。
ト値を用いて順次インクリメントされるような場合に
は、このことを示すフラグとそのオフセット値を制御情
報としてOAHISのエントリに格納し、命令アドレス
の一致によってそのエントリが読出された時、そのフラ
グに従ってそのエントリに格納されているOARの値に
オフセット値を加算して、予測オペランドアドレスの修
正値として使用することもできる。また1回おきに別の
アドレスを命令アドレスとして生成する場合には、その
ことをフラグとして制御情報の中に記録し、そのエント
リが検索された時にはその別のアドレスに対応して予測
オペランドアドレスを生成して使用する方法も考えられ
る。このような方法としては各種の方法が考えられるの
で、本実施形態ではこのような情報を制御情報CTLと
して一括して示してある。
レス・ヒストリーOAHISはRAMを用いて構成され
ている。発明の実施形態としては、類似の機構として分
岐命令における分岐先アドレス、すなわち分岐が成立し
た場合のターゲットアドレスを予測する機構としてのブ
ランチヒストリーを備えることもできる。このブランチ
ヒストリーについては、発明者の次の先願に詳細に説明
されている。
・ヒストリーを持つ命令実行処理装置 ブランチヒストリーのエントリには命令が分岐命令であ
る場合の命令のアドレスと、分岐先としてのターゲット
アドレス、および有効性を示すフラグなどが格納されて
いる。そこでOAHISを構成するRAMを、ブランチ
ヒストリーを構成するRAMと共通にして使用すること
ができる。ブランチヒストリーのエントリとして使用す
る場合には、分岐命令の実行時にEAGによって生成さ
れた分岐先のターゲットアドレスをオペランドアドレス
OARに代わって格納し、そのエントリの用途がブラン
チヒストリーであることをフラグとして登録することに
より、オペランド・アドレス・ヒストリーのエントリと
区別することが可能となる。
用いてこのようなRAM内の命令アドレスにアクセスが
行われる。但し検索されたエントリがブランチヒストリ
ーに対応するものである場合には、読出されて命令バッ
ファタグ21にセットされるターゲットアドレスの値は
命令フェッチパイプラインに供給され、分岐先の命令を
分岐命令の実行に先立ってフェッチするために使用され
る。
れば過去の実行結果に基づいて、例えば主記憶オペラン
ドのアドレスを予測して、後続命令の実行を開始するこ
とによって、レジスタ干渉としてのEGIが起こっても
命令の並列処理の性能を低下させることを防止すること
ができ、情報処理装置の性能向上に寄与するところが大
きい。
用いた動作が実行される情報処理装置の命令制御ユニッ
トを中心とする構成を示すブロック図である。
の動作を説明する図である。
リにおけるデータ格納方式を説明する図である。
ネレート・バイパスの各エントリにおけるデータ格納方
式を説明する図である。
施形態としての処理を説明する図である。
態における処理を説明するタイムチャートである。
命令フェッチパイプライン処理のタイムチャートであ
る。
ドレスとが一致しない場合のパイプライン動作の詳細な
説明図である。
れを説明するタイムチャートである。
ス・ジェネレータ(IEAR) 18 デコーダ 19 オペランド・アドレス・ヒストリー(OAHI
S) 21 命令バッファタグ 22 EGIチェッカ 23 リザベーション・ステーション・フォー・ジェネ
レート・バイパス(RSGB) 26 エフェクティブ・アドレス・ジェネレータ(EA
G)
Claims (10)
- 【請求項1】 先行の命令によって内容が書き替えられ
るレジスタが後続の命令によってオペランドアドレスの
生成に使用されるレジスタ干渉の状態を検出する回路を
備える情報処理装置において、 該レジスタ干渉状態が検出された時、前記後続命令の実
行時に生成されたオペランドアドレスを該後続命令のア
ドレスと関連づけて記憶するオペランド・アドレス・ヒ
ストリー記憶手段を備えることを特徴とする情報処理装
置。 - 【請求項2】 前記オペランド・アドレス・ヒストリー
記憶手段が、分岐命令の実行時に得られた分岐先アドレ
スを該分岐命令のアドレスと関連させて記憶すると共
に、前記後続命令のアドレスに関連してオペランドアド
レスを記憶する領域と区別するためのフラグを記憶する
領域を更に備えることを特徴とする請求項1記載の情報
処理装置。 - 【請求項3】 主記憶装置からの命令のフェッチ時に、
該フェッチ命令のアドレスによって前記オペランド・ア
ドレス・ヒストリー手段の記憶内容からオペランドアド
レスが検索された時、該オペランドアドレスを該フェッ
チ命令と共に命令実行ステージにおいて提示する命令フ
ェッチ手段を更に備えることを特徴とする請求項1記載
の情報処理装置。 - 【請求項4】 前記命令フェッチ手段によって前記オペ
ランド・アドレス・ヒストリー記憶手段から検索された
オペランドアドレスが提示された時、該フェッチ命令に
対応するオペランドアドレスが生成される以前に、該提
示されたオペランドアドレスを予測オペランドアドレス
として主記憶オペランドのフェッチを含む命令実行を開
始する命令実行手段を更に備えることを特徴とする請求
項3記載の情報処理装置。 - 【請求項5】 前記提示されたオペランドアドレスを予
測オペランドアドレスとして命令実行が開始された時、
該予測オペランドアドレスを保持し、前記フェッチ命令
によってオペランドアドレスの生成に使用されるレジス
タが使用可能になった時点で生成されたオペランドアド
レスと比較するオペランドアドレス比較手段を更に備
え、2つのオペランドアドレスが一致した時、該フェッ
チ命令に対応する処理をそのまま実行継続することを特
徴とする請求項4記載の情報処理装置。 - 【請求項6】 前記オペランドアドレス比較手段によっ
て2つのオペランドアドレスが一致しないことが検出さ
れた時、前記予測オペランドアドレスを用いた命令実行
の結果を無効化し、前記生成されたオペランドアドレス
を用いて再度命令実行を行う命令再実行手段を更に備え
ることを特徴とする請求項5記載の情報処理装置。 - 【請求項7】 前記オペランドアドレス比較手段によっ
て2つのオペランドアドレスが一致しないことが検出さ
れた時、前記オペランド・アドレス・ヒストリー記憶手
段が前記後続命令のアドレスと関連づけて該予測オペラ
ンドアドレスの誤りの原因となった事象に関する情報を
更に記憶することを特徴とする請求項5記載の情報処理
装置。 - 【請求項8】 前記フェッチ命令より後の命令の主記憶
装置からのフェッチ時に、該後のフェッチ命令のアドレ
スによって前記オペランド・アドレス・ヒストリー記憶
手段の記憶内容から前記予測オペランドアドレスの誤り
の原因となった事象に関する情報が検索された時、該事
象に関する情報に基づいて記憶されている予測アドレス
を修正し、該修正値を新しい予測アドレスとして該後の
フェッチ命令と共に命令ステージにおいて提示する第2
の命令フェッチ手段を備えることを特徴とする請求項7
記載の情報処理装置。 - 【請求項9】 前記オペランドアドレス比較手段によっ
て2つのオペランドアドレスが一致しないことが検出さ
れた時、前記オペランド・アドレス・ヒストリー記憶手
段が前記後続命令のアドレスと関連づけて該予測オペラ
ンドアドレスが誤りであることを更に記憶すると共に、 前記フェッチ命令より後の命令の主記憶装置からのフェ
ッチ時に、該後のフェッチ命令のアドレスによって前記
オペランド・アドレス・ヒストリー記憶手段の記憶内容
から前記予測オペランドアドレスが検索されても、該後
のフェッチ命令によってオペランドアドレスの生成に使
用されるレジスタが使用可能になってオペランドアドレ
スが生成されるまで該後のフェッチ命令の実行を延期す
る第2の命令実行手段を備えることを特徴とする請求項
5記載の情報処理装置。 - 【請求項10】 前記命令フェッチ手段によって提示さ
れたオペランドアドレスを、命令の実行待ち合わせのス
タック処理のために、前記フェッチ命令のアドレスと共
に格納するリザベーションステーション手段を更に備え
ることを特徴とする請求項3,4、または5記載の情報
処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18200198A JP3499135B2 (ja) | 1998-06-29 | 1998-06-29 | 情報処理装置 |
US09/268,998 US6421771B1 (en) | 1998-06-29 | 1999-03-16 | Processor performing parallel operations subject to operand register interference using operand history storage |
EP99302565A EP0969358A3 (en) | 1998-06-29 | 1999-03-31 | Information processing device and method for performing parallel processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18200198A JP3499135B2 (ja) | 1998-06-29 | 1998-06-29 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000020311A JP2000020311A (ja) | 2000-01-21 |
JP3499135B2 true JP3499135B2 (ja) | 2004-02-23 |
Family
ID=16110595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18200198A Expired - Fee Related JP3499135B2 (ja) | 1998-06-29 | 1998-06-29 | 情報処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6421771B1 (ja) |
EP (1) | EP0969358A3 (ja) |
JP (1) | JP3499135B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6629234B1 (en) * | 2000-03-30 | 2003-09-30 | Ip. First, L.L.C. | Speculative generation at address generation stage of previous instruction result stored in forward cache for use by succeeding address dependent instruction |
US7185182B2 (en) | 2003-02-04 | 2007-02-27 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for generating early instruction results |
US7107438B2 (en) * | 2003-02-04 | 2006-09-12 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for performing early correction of conditional branch instruction mispredictions |
US7100024B2 (en) | 2003-02-04 | 2006-08-29 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for generating early status flags |
US20050216713A1 (en) * | 2004-03-25 | 2005-09-29 | International Business Machines Corporation | Instruction text controlled selectively stated branches for prediction via a branch target buffer |
US7694286B2 (en) * | 2005-02-10 | 2010-04-06 | International Business Machines Corporation | Apparatus and method for detecting base-register usage conflicts in computer code |
US8966230B2 (en) * | 2009-09-30 | 2015-02-24 | Intel Corporation | Dynamic selection of execution stage |
US9292292B2 (en) * | 2013-06-20 | 2016-03-22 | Advanced Micro Devices, Inc. | Stack access tracking |
JP6189266B2 (ja) * | 2014-08-20 | 2017-08-30 | 東芝メモリ株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
CN111049894B (zh) * | 2019-12-07 | 2023-08-29 | 深圳市万佳安物联科技股份有限公司 | 云端物联网数据处理方法、装置以及电子设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60129839A (ja) | 1983-12-19 | 1985-07-11 | Hitachi Ltd | 情報処理装置 |
JPH0760384B2 (ja) | 1985-05-07 | 1995-06-28 | 株式会社日立製作所 | 命令実行方法およびデータ処理装置 |
JPH07103985B2 (ja) * | 1987-12-22 | 1995-11-08 | 大阪瓦斯株式会社 | ターボ式熱風発生装置付ボイラの運転方法 |
JP2667849B2 (ja) * | 1988-01-06 | 1997-10-27 | 株式会社日立製作所 | 情報処理装置 |
JP2667851B2 (ja) | 1988-01-22 | 1997-10-27 | 株式会社日立製作所 | 情報処理装置 |
JPH03212737A (ja) | 1990-01-18 | 1991-09-18 | Fujitsu Ltd | アクセスレジスタのインタロック制御方式 |
JP3335379B2 (ja) | 1992-09-09 | 2002-10-15 | 富士通株式会社 | ブランチ・ヒストリーを持つ命令実行処理装置 |
JP2621763B2 (ja) * | 1993-07-15 | 1997-06-18 | 日本電気株式会社 | 情報処理装置 |
US5790823A (en) * | 1995-07-13 | 1998-08-04 | International Business Machines Corporation | Operand prefetch table |
JP3435267B2 (ja) * | 1995-11-07 | 2003-08-11 | 株式会社東芝 | マイクロプロセッサ及びそのロードアドレス予想方法 |
US5813045A (en) * | 1996-07-24 | 1998-09-22 | Advanced Micro Devices, Inc. | Conditional early data address generation mechanism for a microprocessor |
-
1998
- 1998-06-29 JP JP18200198A patent/JP3499135B2/ja not_active Expired - Fee Related
-
1999
- 1999-03-16 US US09/268,998 patent/US6421771B1/en not_active Expired - Fee Related
- 1999-03-31 EP EP99302565A patent/EP0969358A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP0969358A2 (en) | 2000-01-05 |
US6421771B1 (en) | 2002-07-16 |
US20020049895A1 (en) | 2002-04-25 |
JP2000020311A (ja) | 2000-01-21 |
EP0969358A3 (en) | 2003-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0381447B1 (en) | Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system | |
US9131899B2 (en) | Efficient handling of misaligned loads and stores | |
JPH11212788A (ja) | プロセッサのデータ供給装置 | |
JPS61243536A (ja) | デ−タ処理装置における先行制御装置 | |
JPH02260033A (ja) | ブランチ予測 | |
JPH0820950B2 (ja) | マルチ予測型分岐予測機構 | |
JPH07281895A (ja) | 分岐キャッシュ | |
JP2003519832A (ja) | アントレーニングを備えるストア−ロード転送プレディクタ | |
JP3499135B2 (ja) | 情報処理装置 | |
US20040215934A1 (en) | Register value tracker | |
US20030149860A1 (en) | Stalling Instructions in a pipelined microprocessor | |
JP2596712B2 (ja) | 近接した分岐命令を含む命令の実行を管理するシステム及び方法 | |
JPH08320788A (ja) | パイプライン方式プロセッサ | |
WO2001042927A1 (fr) | Dispositif d'acces memoire et methode utilisant une table d'historique des traductions d'adresses | |
JPS59231652A (ja) | メモリアクセス・オ−バラツプ検出方式 | |
JPH02287626A (ja) | パイプライン方式の分岐命令制御装置 | |
JPH03129432A (ja) | 分岐制御回路 | |
JP2570859B2 (ja) | データ処理装置 | |
JP3522135B2 (ja) | 複数のウェイを持つブランチヒストリを備える情報処理装置 | |
JPS5991551A (ja) | 分岐先アドレス予測を行なう命令先取り装置 | |
JP3497087B2 (ja) | 命令制御装置及びその方法 | |
JP3156773B2 (ja) | 命令処理装置 | |
JP2894438B2 (ja) | パイプライン処理装置 | |
JP3394854B2 (ja) | 無条件ジャンプ命令処理方法並びにそのための無条件ジャンプ命令処理装置及び汎用レジスタ | |
JPH09311787A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20031125 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071205 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081205 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091205 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091205 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101205 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111205 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111205 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121205 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121205 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131205 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |