JP2744882B2 - キューにより命令の実行を制御する装置及び方法 - Google Patents
キューにより命令の実行を制御する装置及び方法Info
- Publication number
- JP2744882B2 JP2744882B2 JP5319419A JP31941993A JP2744882B2 JP 2744882 B2 JP2744882 B2 JP 2744882B2 JP 5319419 A JP5319419 A JP 5319419A JP 31941993 A JP31941993 A JP 31941993A JP 2744882 B2 JP2744882 B2 JP 2744882B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- queue
- cache
- execution
- branch
- 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 - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 16
- 230000004044 response Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 24
- 238000007726 management method Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002028 premature Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000008520 organization 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/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
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)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Description
【0001】
【産業上の利用分野】本発明は一般にコンピュータ・シ
ステムに関し、特にデジタル・コンピュータにおいてマ
シン命令の実行を制御する装置及び方法に関する。更に
詳しくは、本発明はキュー構造の使用により、より効率
的に命令キャッシュを管理する機構を提供する。その結
果、データが早計にまたは不要に命令キャッシュから除
去される状況が低減する。
ステムに関し、特にデジタル・コンピュータにおいてマ
シン命令の実行を制御する装置及び方法に関する。更に
詳しくは、本発明はキュー構造の使用により、より効率
的に命令キャッシュを管理する機構を提供する。その結
果、データが早計にまたは不要に命令キャッシュから除
去される状況が低減する。
【0002】
【従来の技術】コンピュータ・システムの構築における
主な設計目的の1つは、コンピュータ・スピードの増加
である。これらのスピードに対する目的を達成するため
に、従来、いくつかの機構が導入されてきた。特にコン
ピュータ・システム設計者はキャッシュ・メモリ構造を
使用してきた。キャッシュ・メモリは比較的小容量では
あるが高速であり、本質的には、主メモリ記憶レベルと
マシン・レジスタに関連する記憶レベル間のバッファと
して機能する。キャッシュ・メモリのスピード特性を利
用するために、主メモリの1部分がキャッシュ・メモリ
に転送され、そこからこれらが実行される。キャッシュ
へのアクセスは比較的高速であるため、システムの全体
のスピードが効率的に増加される。更に特定の命令がキ
ャッシュ・メモリの1部分から実行される間に、他の命
令をキャッシュ・メモリの異なる部分にロードすること
が可能である。通常、キャッシュ・メモリは "キャッシ
ュ・ライン" と称されるサブ構造により構成される。し
かしながら、主メモリ・アドレスをキャッシュ・アドレ
スにマッピングする特定の機構が必要となる。従ってこ
のために、典型的にはNエントリ・ディレクトリが提供
され、Nキャッシュ・ラインの1つの参照を可能とす
る。
主な設計目的の1つは、コンピュータ・スピードの増加
である。これらのスピードに対する目的を達成するため
に、従来、いくつかの機構が導入されてきた。特にコン
ピュータ・システム設計者はキャッシュ・メモリ構造を
使用してきた。キャッシュ・メモリは比較的小容量では
あるが高速であり、本質的には、主メモリ記憶レベルと
マシン・レジスタに関連する記憶レベル間のバッファと
して機能する。キャッシュ・メモリのスピード特性を利
用するために、主メモリの1部分がキャッシュ・メモリ
に転送され、そこからこれらが実行される。キャッシュ
へのアクセスは比較的高速であるため、システムの全体
のスピードが効率的に増加される。更に特定の命令がキ
ャッシュ・メモリの1部分から実行される間に、他の命
令をキャッシュ・メモリの異なる部分にロードすること
が可能である。通常、キャッシュ・メモリは "キャッシ
ュ・ライン" と称されるサブ構造により構成される。し
かしながら、主メモリ・アドレスをキャッシュ・アドレ
スにマッピングする特定の機構が必要となる。従ってこ
のために、典型的にはNエントリ・ディレクトリが提供
され、Nキャッシュ・ラインの1つの参照を可能とす
る。
【0003】コンピュータ・スピードの向上のためにキ
ャッシュ・メモリ構造を使用することに加え、コンピュ
ータ命令の分岐事象を認識及び予測するための機構を使
用することが望まれる。既知の分岐予測機構は分岐予測
及びアドレス情報を提供し、これがキャッシュ・メモリ
から実行される適切な命令シーケンスを決定するために
使用される。しかしながら、本発明では分岐予測及び分
岐履歴機構は、本発明のキャッシュ構造の管理に関する
間接的な役割しか演じない。
ャッシュ・メモリ構造を使用することに加え、コンピュ
ータ命令の分岐事象を認識及び予測するための機構を使
用することが望まれる。既知の分岐予測機構は分岐予測
及びアドレス情報を提供し、これがキャッシュ・メモリ
から実行される適切な命令シーケンスを決定するために
使用される。しかしながら、本発明では分岐予測及び分
岐履歴機構は、本発明のキャッシュ構造の管理に関する
間接的な役割しか演じない。
【0004】キャッシュ・メモリ構造の設計におけるト
レードオフの1つは、キャッシュ・メモリ構造が主メモ
リ構造に比較してかなり小容量である点である。それに
もかかわらず、このサイズの関係はキャッシュ・スピー
ドを増加させる機構を提供する。従って、キャッシュ・
メモリに固定数Kの将来命令キャッシュ・ラインをロー
ドする機構を提供することが望ましい。これらのキャッ
シュ・ライン・エントリはそれらがアクセスされ、処理
される時点より十分以前にロードされる。しかしなが
ら、プリロード可能なキャッシュ・ライン数は制限さ
れ、この制限はキャッシュ・ラインがまだ処理されてい
ないキャッシュ・ライン、または命令ループ条件の存在
により再処理される必要のある以前にフェッチされたキ
ャッシュ・ラインのオーバライトの危険性に依存する。
この問題に対する通常の解決は、より大容量のキャッシ
ュ構造を使用することである。しかしながら、キャッシ
ュ・ライン数の点で命令キャッシュ・サイズが大きくな
ると、付随的なキャッシュ・スピードの低下を招く。従
って、プリフェッチ・キャッシュ・ラインが早計に廃棄
されるこれらのケースを低減するために、命令キャッシ
ュ内の命令へのアクセスを管理する機構の提供が望まれ
る。
レードオフの1つは、キャッシュ・メモリ構造が主メモ
リ構造に比較してかなり小容量である点である。それに
もかかわらず、このサイズの関係はキャッシュ・スピー
ドを増加させる機構を提供する。従って、キャッシュ・
メモリに固定数Kの将来命令キャッシュ・ラインをロー
ドする機構を提供することが望ましい。これらのキャッ
シュ・ライン・エントリはそれらがアクセスされ、処理
される時点より十分以前にロードされる。しかしなが
ら、プリロード可能なキャッシュ・ライン数は制限さ
れ、この制限はキャッシュ・ラインがまだ処理されてい
ないキャッシュ・ライン、または命令ループ条件の存在
により再処理される必要のある以前にフェッチされたキ
ャッシュ・ラインのオーバライトの危険性に依存する。
この問題に対する通常の解決は、より大容量のキャッシ
ュ構造を使用することである。しかしながら、キャッシ
ュ・ライン数の点で命令キャッシュ・サイズが大きくな
ると、付随的なキャッシュ・スピードの低下を招く。従
って、プリフェッチ・キャッシュ・ラインが早計に廃棄
されるこれらのケースを低減するために、命令キャッシ
ュ内の命令へのアクセスを管理する機構の提供が望まれ
る。
【0005】理想的な状況では、可能な限り多くの命令
がコンピュータ・システムによって、命令キャッシュ自
身に含まれる命令シーケンスから実行され、キャッシュ
・ラインにより置換される遅い主メモリ構造の参照が最
小化される。従って、キャッシュ・ラインが早計に置換
される機構では、結果的にスピードのペナルティが課せ
られることが理解される。特にハッシング(hashing )
またはマッピング機能により、任意の命令アドレスを特
定のキャッシュ・ラインに関連付ける機構として、Nエ
ントリ・ディレクトリを使用すると、事実、続くキャッ
シュ・ラインが、未処理または再処理の必要のある以前
にフェッチされたキャッシュ・ラインをオーバライトす
る。従って、デジタル・コンピュータ・システムにおけ
る命令キャッシュ構造のための、異なる改良された管理
システムの提供が望まれる。
がコンピュータ・システムによって、命令キャッシュ自
身に含まれる命令シーケンスから実行され、キャッシュ
・ラインにより置換される遅い主メモリ構造の参照が最
小化される。従って、キャッシュ・ラインが早計に置換
される機構では、結果的にスピードのペナルティが課せ
られることが理解される。特にハッシング(hashing )
またはマッピング機能により、任意の命令アドレスを特
定のキャッシュ・ラインに関連付ける機構として、Nエ
ントリ・ディレクトリを使用すると、事実、続くキャッ
シュ・ラインが、未処理または再処理の必要のある以前
にフェッチされたキャッシュ・ラインをオーバライトす
る。従って、デジタル・コンピュータ・システムにおけ
る命令キャッシュ構造のための、異なる改良された管理
システムの提供が望まれる。
【0006】
【発明が解決しようとする課題】従って、本発明の目的
は、命令キャッシュ・ラインに対する再書込み要求を低
減するコンピュータ・システムにおける命令キャッシュ
の管理を提供することである。特に再書込みが早計であ
り、間もなく実行される命令のシーケンスをオーバレイ
することを防止する。
は、命令キャッシュ・ラインに対する再書込み要求を低
減するコンピュータ・システムにおける命令キャッシュ
の管理を提供することである。特に再書込みが早計であ
り、間もなく実行される命令のシーケンスをオーバレイ
することを防止する。
【0007】本発明の別の目的は、特にキャッシュ・ラ
インの再書込みによる不要な遅延を取り除き、全体的な
マシン実行スピードを向上させることである。
インの再書込みによる不要な遅延を取り除き、全体的な
マシン実行スピードを向上させることである。
【0008】更に本発明の別の目的は、ループ命令の特
定のセットを少ないマシン・サイクルで実行可能とする
ことである。
定のセットを少ないマシン・サイクルで実行可能とする
ことである。
【0009】更に本発明の別の目的は、分岐予測情報を
使用することにより、命令キャッシュから実行される命
令シーケンスを決定し、更に実際の実行より十分以前
に、キャッシュ・ラインに書込まれる必要のあるメモリ
・データを決定することである。
使用することにより、命令キャッシュから実行される命
令シーケンスを決定し、更に実際の実行より十分以前
に、キャッシュ・ラインに書込まれる必要のあるメモリ
・データを決定することである。
【0010】更に本発明の別の目的は、デジタル・コン
ピュータ処理システムの命令キャッシュ部分の複数のキ
ャッシュ・ラインから実行される命令シーケンスの制御
のために、キュー構造を使用することである。
ピュータ処理システムの命令キャッシュ部分の複数のキ
ャッシュ・ラインから実行される命令シーケンスの制御
のために、キュー構造を使用することである。
【0011】
【課題を解決するための手段】本発明の実施例によれ
ば、デジタル・コンピュータにおいて実行される命令を
提供する管理機構が、小メモリ配列内の複数の要素によ
り定義されるファーストイン・ファーストアウト(FI
FO:first-in-first-out)キューを含む。更にキュー
内の現在の要素を指示するポインタ手段が提供される。
キューにより管理される命令キャッシュは、複数の個々
にアドレス可能な命令シーケンスを記憶する。更に命令
シーケンスの1つ、及び現在指示されているFIFOキ
ュー要素の内容に応答して、命令実行を開始する選択シ
ーケンス内のポイントを選択する手段が提供されるこ
と。
ば、デジタル・コンピュータにおいて実行される命令を
提供する管理機構が、小メモリ配列内の複数の要素によ
り定義されるファーストイン・ファーストアウト(FI
FO:first-in-first-out)キューを含む。更にキュー
内の現在の要素を指示するポインタ手段が提供される。
キューにより管理される命令キャッシュは、複数の個々
にアドレス可能な命令シーケンスを記憶する。更に命令
シーケンスの1つ、及び現在指示されているFIFOキ
ュー要素の内容に応答して、命令実行を開始する選択シ
ーケンス内のポイントを選択する手段が提供されるこ
と。
【0012】上述の構造は、本発明の命令キャッシュ管
理方法を実行する本質的な機構を提供するが、本発明を
実行する好適な方法及び回路における重要な態様及び特
徴が他にも存在する。特にFIFOキューをメモリ配列
として実施する機構によれば、FIFOキュー内の最終
要素を指示する手段が提供される。更にFIFOキュー
内の要素は、好適には適切なキャッシュ・ラインに対す
る上述のポインタだけでなく、このキャッシュ・ライン
内の開始ターゲット・オフセット及び分岐オフセットに
対するポインタ、及び分岐オフセット・フィールドが許
可または所望されることを示す1ビット・フィールドを
提供する。
理方法を実行する本質的な機構を提供するが、本発明を
実行する好適な方法及び回路における重要な態様及び特
徴が他にも存在する。特にFIFOキューをメモリ配列
として実施する機構によれば、FIFOキュー内の最終
要素を指示する手段が提供される。更にFIFOキュー
内の要素は、好適には適切なキャッシュ・ラインに対す
る上述のポインタだけでなく、このキャッシュ・ライン
内の開始ターゲット・オフセット及び分岐オフセットに
対するポインタ、及び分岐オフセット・フィールドが許
可または所望されることを示す1ビット・フィールドを
提供する。
【0013】本発明では、FIFOキューは典型的には
Jエントリを含む。このキューは将来のキャッシュ・ラ
イン・データを予想される実行順序で順次的に記憶し、
ラインへ入る分岐ターゲット及びキャッシュ・ラインか
ら出る分岐の両方を指示する。これはアドレッシング衝
突と呼ばれる、早計にプリフェッチ・データをオーバラ
イトするハッシュ機能衝突の危険を緩和する。更にこの
構造及び機構は、命令解析器(instruction parser)に
おける命令データの検索を単純化する。本発明は一連の
非結合キャッシュ・ラインを通じて、予測命令パスを追
跡する。これはよりシームレス(seamless)な命令スト
リームを命令解析器に提供し、遅延状況を低減する。
Jエントリを含む。このキューは将来のキャッシュ・ラ
イン・データを予想される実行順序で順次的に記憶し、
ラインへ入る分岐ターゲット及びキャッシュ・ラインか
ら出る分岐の両方を指示する。これはアドレッシング衝
突と呼ばれる、早計にプリフェッチ・データをオーバラ
イトするハッシュ機能衝突の危険を緩和する。更にこの
構造及び機構は、命令解析器(instruction parser)に
おける命令データの検索を単純化する。本発明は一連の
非結合キャッシュ・ラインを通じて、予測命令パスを追
跡する。これはよりシームレス(seamless)な命令スト
リームを命令解析器に提供し、遅延状況を低減する。
【0014】
【実施例】図1は本発明が実施される全体的環境を示す
ブロック図である。特に本発明は、命令キャッシュ30
からコンピュータ・システムの命令実行部分への命令の
シーケンスを制御するために使用される。
ブロック図である。特に本発明は、命令キャッシュ30
からコンピュータ・システムの命令実行部分への命令の
シーケンスを制御するために使用される。
【0015】特に、分岐予測機構10が命令キャッシュ
(I−CACHE)ディレクトリ11に関連して使用さ
れ、ディレクトリ・ルックアップ機能回路13により、
命令をプリフェッチするのに好適な時期を決定する。フ
ェッチ制御ラインを介し、ディレクトリ・ルックアップ
回路13がフェッチ・コマンドをメモリ90に発行し、
更にデータのキャッシュ30内における行き場所を示す
タグを提供する。このプリフェッチ命令に関する関連情
報は、命令パス配列(IPA)20内にも記憶される。
IPAはキューとして構成され、これについては詳細に
後述される。更にレジスタ12からの新たな命令アドレ
ス情報に関連して、分岐予測回路10が使用され、以前
に予測された分岐ターゲットにおける新たなアドレス情
報にもとづき、分岐ターゲット・アドレスを生成する。
(分岐予測の特定の方法またはアルゴリズムは本発明の
1部を形成しない。しかしながら、この分野の試みには
様々な方法があり、こうしたものの中には分岐履歴テー
ブルに頼る方法が含まれる。)分岐ターゲット情報は、
命令キャッシュ・ディレクトリ11内エントリ及び命令
パス配列20内、現行フィールド・ポインタと関連して
使用され、特定の命令キャッシュ・ラインの選択が指示
されるか否かを決定する。これはIPAキュー制御98
を介する命令解析器35からの要求により、キャッシュ
・ライン選択回路25において実行される。命令パス配
列20内のターゲット・オフセット(TGOF)フィー
ルド及び分岐オフセット(BROF)フィールドは、指
示される命令の適切なセットが命令レジスタ36及びマ
シンの実行部分に提供されることを保証するように、命
令解析器35を制御する(BRPフィールド28に関す
る以降の説明を参照)。このようにして、命令解析器3
5は命令解析に対応する順序でキャッシュ・ライン・デ
ータをアセンブルする。特定の視点から着目すると、図
1の左上部分は命令プリフェッチ・オペレーションのセ
ット・アップに関し、右下部分は命令キャッシュ30か
らプリフェッチされる命令の実際の選択に関する。事
実、これら2つの部分は命令パス配列機構20がフルま
たはエンプティ状態の下でのみ、独立にインタロックす
るように動作する。実行される命令シーケンスの決定は
命令パス配列機構20の制御により実行される。
(I−CACHE)ディレクトリ11に関連して使用さ
れ、ディレクトリ・ルックアップ機能回路13により、
命令をプリフェッチするのに好適な時期を決定する。フ
ェッチ制御ラインを介し、ディレクトリ・ルックアップ
回路13がフェッチ・コマンドをメモリ90に発行し、
更にデータのキャッシュ30内における行き場所を示す
タグを提供する。このプリフェッチ命令に関する関連情
報は、命令パス配列(IPA)20内にも記憶される。
IPAはキューとして構成され、これについては詳細に
後述される。更にレジスタ12からの新たな命令アドレ
ス情報に関連して、分岐予測回路10が使用され、以前
に予測された分岐ターゲットにおける新たなアドレス情
報にもとづき、分岐ターゲット・アドレスを生成する。
(分岐予測の特定の方法またはアルゴリズムは本発明の
1部を形成しない。しかしながら、この分野の試みには
様々な方法があり、こうしたものの中には分岐履歴テー
ブルに頼る方法が含まれる。)分岐ターゲット情報は、
命令キャッシュ・ディレクトリ11内エントリ及び命令
パス配列20内、現行フィールド・ポインタと関連して
使用され、特定の命令キャッシュ・ラインの選択が指示
されるか否かを決定する。これはIPAキュー制御98
を介する命令解析器35からの要求により、キャッシュ
・ライン選択回路25において実行される。命令パス配
列20内のターゲット・オフセット(TGOF)フィー
ルド及び分岐オフセット(BROF)フィールドは、指
示される命令の適切なセットが命令レジスタ36及びマ
シンの実行部分に提供されることを保証するように、命
令解析器35を制御する(BRPフィールド28に関す
る以降の説明を参照)。このようにして、命令解析器3
5は命令解析に対応する順序でキャッシュ・ライン・デ
ータをアセンブルする。特定の視点から着目すると、図
1の左上部分は命令プリフェッチ・オペレーションのセ
ット・アップに関し、右下部分は命令キャッシュ30か
らプリフェッチされる命令の実際の選択に関する。事
実、これら2つの部分は命令パス配列機構20がフルま
たはエンプティ状態の下でのみ、独立にインタロックす
るように動作する。実行される命令シーケンスの決定は
命令パス配列機構20の制御により実行される。
【0016】図1の部分のより詳細な説明が図2に示さ
れる。本発明の本質的なオペレーションは、命令パス配
列20の存在及びその命令キャッシュ(ICACHE)
30との相互作用に向けられる。特に命令パス配列20
は複数J(図3参照)の個々のフィールド・ポインタを
含む。配列20内の各要素(ファーストイン・ファース
トアウト・キューとして動作するように制御される)
は、ICACHE30からの命令の選択を制御するため
に、いくつかの方法により動作する。特にIPA20は
命令キャッシュ・エントリ・ポインタ(ICEP)2
6、ターゲット・オフセット・フィールド(TGOF)
27、分岐予測ビット(BRP)28、及び分岐オフセ
ット・フィールド(BROF)29の4つのフィールド
(図2及び図4参照)を含む。後者2つのフィールド
は、命令キャッシュ30内のエントリにより示される命
令ストリーム処理またはサブストリーム処理を終了する
機構を提供するために使用される。図2に示されるよう
に、命令キャッシュ30は典型的には複数Nの命令キャ
ッシュ・ラインを含む。これらのキャッシュ・ラインの
各々はMバイト(または他の情報単位)の命令情報を含
む。更に図2には、命令パス配列20内のエントリが、
実行する命令キャッシュ・ラインのサブ部分を選択する
ためにも使用可能なことが示される。命令ストリームの
実行管理のために命令パス配列フィールド26乃至29
(図3参照)が使用される様子が以降で詳述される。更
に命令パス配列20に記憶される情報を決定するために
使用される方法についても、以降で述べられる。
れる。本発明の本質的なオペレーションは、命令パス配
列20の存在及びその命令キャッシュ(ICACHE)
30との相互作用に向けられる。特に命令パス配列20
は複数J(図3参照)の個々のフィールド・ポインタを
含む。配列20内の各要素(ファーストイン・ファース
トアウト・キューとして動作するように制御される)
は、ICACHE30からの命令の選択を制御するため
に、いくつかの方法により動作する。特にIPA20は
命令キャッシュ・エントリ・ポインタ(ICEP)2
6、ターゲット・オフセット・フィールド(TGOF)
27、分岐予測ビット(BRP)28、及び分岐オフセ
ット・フィールド(BROF)29の4つのフィールド
(図2及び図4参照)を含む。後者2つのフィールド
は、命令キャッシュ30内のエントリにより示される命
令ストリーム処理またはサブストリーム処理を終了する
機構を提供するために使用される。図2に示されるよう
に、命令キャッシュ30は典型的には複数Nの命令キャ
ッシュ・ラインを含む。これらのキャッシュ・ラインの
各々はMバイト(または他の情報単位)の命令情報を含
む。更に図2には、命令パス配列20内のエントリが、
実行する命令キャッシュ・ラインのサブ部分を選択する
ためにも使用可能なことが示される。命令ストリームの
実行管理のために命令パス配列フィールド26乃至29
(図3参照)が使用される様子が以降で詳述される。更
に命令パス配列20に記憶される情報を決定するために
使用される方法についても、以降で述べられる。
【0017】命令パス配列は、好適にはJ個のエントリ
を有するファーストイン・ファーストアウト(FIF
O)キューとして動作する(Jがエントリ数の指定子
(designator)として使用される様子が図4に示され
る)。キューの最初及び最後のエントリが"開始"及び "
終了" ポインタ(図2の21及び22)により識別され
る。これらのポインタは好適には2つの小さなラッチ・
レジスタを含み、これらはメモリ配列(ここではIP
A)の特定のメモリ・ロケーションを指示する。
を有するファーストイン・ファーストアウト(FIF
O)キューとして動作する(Jがエントリ数の指定子
(designator)として使用される様子が図4に示され
る)。キューの最初及び最後のエントリが"開始"及び "
終了" ポインタ(図2の21及び22)により識別され
る。これらのポインタは好適には2つの小さなラッチ・
レジスタを含み、これらはメモリ配列(ここではIP
A)の特定のメモリ・ロケーションを指示する。
【0018】命令パス配列キューは分岐予測機構10の
結果、プロセッサによりデコードされ実行される命令の
予測シーケンスを記述する情報を含む。次の将来実行ア
ドレス(NFEA:図1のレジスタ12参照)は、命令
実行における将来ポイント、すなわち新たな命令パス配
列情報が生成され、命令キャッシュ・ラインがフェッチ
される(命令キャッシュ内にまだ存在しない場合)ポイ
ントに対応する命令アドレスを含む。
結果、プロセッサによりデコードされ実行される命令の
予測シーケンスを記述する情報を含む。次の将来実行ア
ドレス(NFEA:図1のレジスタ12参照)は、命令
実行における将来ポイント、すなわち新たな命令パス配
列情報が生成され、命令キャッシュ・ラインがフェッチ
される(命令キャッシュ内にまだ存在しない場合)ポイ
ントに対応する命令アドレスを含む。
【0019】本発明では、各命令パス配列エントリは好
適には次の4つのフィールド、すなわち命令キャッシュ
・エントリ・ポインタ26(ICFP)、ターゲット・
オフセット(TGOF)27、分岐予測ビット(BR
P)28、及び分岐オフセット(BROF)29を含
む。命令キャッシュ・エントリ・ポインタ(ICEP)
26は、キュー入力を命令キャッシュ30内のNライン
の1つに関連付ける。複数の命令パス配列キュー・エン
トリが、同一の命令キャッシュ・ラインを参照する可能
性がある。例えば、これはしばしば命令ループの場合の
従来構造に相当する。ターゲット・オフセット・フィー
ルド(TGOF)27は、ICEPフィールド26によ
り参照されるキャッシュ・ライン内のオフセットを示
し、ここから最初の命令がデコードされて実行される。
TGOFフィールド27は以前の分岐のターゲットを示
すか、以前の命令キャッシュ・ラインからの順次実行を
示すために0にセットされる。この機構はマシンにより
命令キャッシュから実行される命令シーケンスの構成に
関して、かなりの柔軟性を提供する。
適には次の4つのフィールド、すなわち命令キャッシュ
・エントリ・ポインタ26(ICFP)、ターゲット・
オフセット(TGOF)27、分岐予測ビット(BR
P)28、及び分岐オフセット(BROF)29を含
む。命令キャッシュ・エントリ・ポインタ(ICEP)
26は、キュー入力を命令キャッシュ30内のNライン
の1つに関連付ける。複数の命令パス配列キュー・エン
トリが、同一の命令キャッシュ・ラインを参照する可能
性がある。例えば、これはしばしば命令ループの場合の
従来構造に相当する。ターゲット・オフセット・フィー
ルド(TGOF)27は、ICEPフィールド26によ
り参照されるキャッシュ・ライン内のオフセットを示
し、ここから最初の命令がデコードされて実行される。
TGOFフィールド27は以前の分岐のターゲットを示
すか、以前の命令キャッシュ・ラインからの順次実行を
示すために0にセットされる。この機構はマシンにより
命令キャッシュから実行される命令シーケンスの構成に
関して、かなりの柔軟性を提供する。
【0020】分岐予測フィールド(BRP)28は、分
岐予測機構により分岐が発生すると予測される時、分岐
命令の最終ハーフ・ワードが参照される命令キャッシュ
・ライン内に現れるか否かを示す。(これが最終ハーフ
・ワードか、全ワードか、または他の機能ワード長であ
るかが示されたり、本発明を使用する特定のマシンの命
令アーキテクチャ及びフォーマットに依存しないなどが
示される。)分岐オフセット・フィールド(BROF)
29は、参照命令キャッシュ・ライン内の予測分岐命令
の最終ハーフ・ワードに対するオフセット標識を提供す
る。この分岐オフセットはBRPフィールドが"1"すな
わち分岐が発生することを示す時に関連する。命令パス
配列20内の個々のフィールド間の関係が、図4に詳細
に示される。分岐オフセット・フィールド28に配置さ
れる値は、命令の最終ハーフ・ワードを指示し、命令全
体がマシン内に含まれる実行ユニットに受渡されること
を保証する。命令解析器36はTGOF27フィールド
及びBROF29フィールドを使用し、要求される命令
データ32をキャッシュ・ラインから抽出し、解析され
ず、実行されないキャッシュ・ライン部分31及び33
を廃棄する。
岐予測機構により分岐が発生すると予測される時、分岐
命令の最終ハーフ・ワードが参照される命令キャッシュ
・ライン内に現れるか否かを示す。(これが最終ハーフ
・ワードか、全ワードか、または他の機能ワード長であ
るかが示されたり、本発明を使用する特定のマシンの命
令アーキテクチャ及びフォーマットに依存しないなどが
示される。)分岐オフセット・フィールド(BROF)
29は、参照命令キャッシュ・ライン内の予測分岐命令
の最終ハーフ・ワードに対するオフセット標識を提供す
る。この分岐オフセットはBRPフィールドが"1"すな
わち分岐が発生することを示す時に関連する。命令パス
配列20内の個々のフィールド間の関係が、図4に詳細
に示される。分岐オフセット・フィールド28に配置さ
れる値は、命令の最終ハーフ・ワードを指示し、命令全
体がマシン内に含まれる実行ユニットに受渡されること
を保証する。命令解析器36はTGOF27フィールド
及びBROF29フィールドを使用し、要求される命令
データ32をキャッシュ・ラインから抽出し、解析され
ず、実行されないキャッシュ・ライン部分31及び33
を廃棄する。
【0021】本発明は図5に詳細に示されるように動作
する。以下の説明では、命令が命令キャッシュからマシ
ンの実行ユニットに供給されるのと同時に、命令パス配
列20に配置される情報に関連する別の処理が発生する
ことを認識することが重要である。従って、本発明のオ
ペレーションを理解するために、以下の説明が命令パス
配列の内容を制御し、確立する処理に関することを理解
することが重要であり、命令パス配列それ自身は、実行
ユニットに受渡される命令ストリーム情報を制御するた
めに使用される。
する。以下の説明では、命令が命令キャッシュからマシ
ンの実行ユニットに供給されるのと同時に、命令パス配
列20に配置される情報に関連する別の処理が発生する
ことを認識することが重要である。従って、本発明のオ
ペレーションを理解するために、以下の説明が命令パス
配列の内容を制御し、確立する処理に関することを理解
することが重要であり、命令パス配列それ自身は、実行
ユニットに受渡される命令ストリーム情報を制御するた
めに使用される。
【0022】初期状態では、実行を開始するための実行
アドレス及び次の将来実行アドレス(NFEA)がセッ
トされる(図5のステップ100)。これはポインタ2
1及び22(図2)が命令パス配列(IPA)20内の
隣接ロケーションを指示することにより、容易に実行さ
れる。同様にこれらのポインタを比較し、両者が同一の
IPAロケーションまたはエントリ・ポイントにセット
されているか否かを判断することにより、IPAがフル
か否かが容易に決定される。また、開始ポインタ21及
び終了ポインタ22を比較することにより、IPA20
がフルであることを示すことが可能であり、これは次の
参照ロケーション(図2の回路23により提供される)
が、開始ポインタ参照の1つ直後に一致するかを判断す
ることにより達成される。更にIPAキュー制御98内
に追加の1ビット・レジスタが好適には提供され、フル
及びエンプティ状態を判別する。
アドレス及び次の将来実行アドレス(NFEA)がセッ
トされる(図5のステップ100)。これはポインタ2
1及び22(図2)が命令パス配列(IPA)20内の
隣接ロケーションを指示することにより、容易に実行さ
れる。同様にこれらのポインタを比較し、両者が同一の
IPAロケーションまたはエントリ・ポイントにセット
されているか否かを判断することにより、IPAがフル
か否かが容易に決定される。また、開始ポインタ21及
び終了ポインタ22を比較することにより、IPA20
がフルであることを示すことが可能であり、これは次の
参照ロケーション(図2の回路23により提供される)
が、開始ポインタ参照の1つ直後に一致するかを判断す
ることにより達成される。更にIPAキュー制御98内
に追加の1ビット・レジスタが好適には提供され、フル
及びエンプティ状態を判別する。
【0023】命令キャッシュ30内に参照データが存在
しない場合、主記憶機構(典型的にはレベル2または3
の記憶装置と称される)からのフェッチが開始される。
これは図1のディレクトリ・ルックアップ機能13によ
り決定される。主記憶装置からのフェッチは、次の将来
実行アドレスの高位ビットにより識別される命令ライン
を検索し、命令キャッシュ(ICACHE30)のI番
目のエントリに配置される(ステップ110)。しかし
ながら、IPA使用チェック論理99(図1)により、
現在のICEPエントリがIに等しくないことが保証さ
れる。使用チェック論理は、任意のキャッシュ・ライン
が有効なICEPポインタ26により参照されるかを判
断する。ICEPポインタは、問題のキャッシュ・ライ
ンが新たなデータによりオーバライトされてはならない
ことを示す。次に、次の命令パス配列エントリが割当て
られる(ステップ120)。このエントリのICEPフ
ィールドは、次の将来実行アドレス(NFEA)により
識別されるデータを含む命令キャッシュ・ラインに対応
して、Iにセットされる。NFEAの下位ビットは、そ
の命令キャッシュ・ラインに対応する開始実行オフセッ
トを示す、命令パス配列のターゲット・オフセット・フ
ィールド(TGOF27)をセットするために使用され
る(ステップ130)。次に分岐予測回路10により、
分岐が発生するか否かが判断される(ステップ13
5)。分岐の最終ハーフ・ワードは、I番目のキャッシ
ュ・エントリに対応してフェッチされるキャッシュ命令
ライン内のターゲット・オフセット命令の箇所、または
その後に現れる。分岐が予測されない場合、命令パス配
列のBRPビット28が0にセットされ、次の将来実行
アドレス(NFEA)が次の順次アドレス及び対応する
キャッシュ・ラインに増分される(ステップ140)。
分岐が予測されると、命令パス配列のBRPビットが"
1"にセットされ、命令パス配列の分岐オフセット・フ
ィールド(BROF)29が、キャッシュ・ライン内で
発生する分岐の最終ハーフ・ワードのオフセットにセッ
トされる(ステップ140)。命令パス配列20がフル
かまたは命令キャッシュ30がフルの場合(ステップ1
50)、命令パスまたは命令キャッシュのいずれかがフ
ルでなくなり、処理が再開可能となるまで、待機状態が
挿入される(ステップ160)。処理の再開において、
上述のように主記憶装置から可能なフェッチが継続さ
れ、このフェッチは高位NFEAビットにもとづく。
しない場合、主記憶機構(典型的にはレベル2または3
の記憶装置と称される)からのフェッチが開始される。
これは図1のディレクトリ・ルックアップ機能13によ
り決定される。主記憶装置からのフェッチは、次の将来
実行アドレスの高位ビットにより識別される命令ライン
を検索し、命令キャッシュ(ICACHE30)のI番
目のエントリに配置される(ステップ110)。しかし
ながら、IPA使用チェック論理99(図1)により、
現在のICEPエントリがIに等しくないことが保証さ
れる。使用チェック論理は、任意のキャッシュ・ライン
が有効なICEPポインタ26により参照されるかを判
断する。ICEPポインタは、問題のキャッシュ・ライ
ンが新たなデータによりオーバライトされてはならない
ことを示す。次に、次の命令パス配列エントリが割当て
られる(ステップ120)。このエントリのICEPフ
ィールドは、次の将来実行アドレス(NFEA)により
識別されるデータを含む命令キャッシュ・ラインに対応
して、Iにセットされる。NFEAの下位ビットは、そ
の命令キャッシュ・ラインに対応する開始実行オフセッ
トを示す、命令パス配列のターゲット・オフセット・フ
ィールド(TGOF27)をセットするために使用され
る(ステップ130)。次に分岐予測回路10により、
分岐が発生するか否かが判断される(ステップ13
5)。分岐の最終ハーフ・ワードは、I番目のキャッシ
ュ・エントリに対応してフェッチされるキャッシュ命令
ライン内のターゲット・オフセット命令の箇所、または
その後に現れる。分岐が予測されない場合、命令パス配
列のBRPビット28が0にセットされ、次の将来実行
アドレス(NFEA)が次の順次アドレス及び対応する
キャッシュ・ラインに増分される(ステップ140)。
分岐が予測されると、命令パス配列のBRPビットが"
1"にセットされ、命令パス配列の分岐オフセット・フ
ィールド(BROF)29が、キャッシュ・ライン内で
発生する分岐の最終ハーフ・ワードのオフセットにセッ
トされる(ステップ140)。命令パス配列20がフル
かまたは命令キャッシュ30がフルの場合(ステップ1
50)、命令パスまたは命令キャッシュのいずれかがフ
ルでなくなり、処理が再開可能となるまで、待機状態が
挿入される(ステップ160)。処理の再開において、
上述のように主記憶装置から可能なフェッチが継続さ
れ、このフェッチは高位NFEAビットにもとづく。
【0024】図5に示された上述の活動の間、プロセッ
サ内では図6に示される実行が発生する。最も古い命令
パス配列エントリが検索される(ステップ200)。次
に解析される命令が、対応する命令パス配列のICEP
フィールド26により識別されるキャッシュ・ライン内
の、命令パス配列TGOFフィールド27により指示さ
れるオフセットに見い出される(ステップ205)。命
令パス配列のBRPビットが1にセットされ、オフセッ
トBROFフィールドによる命令が解析された後(ステ
ップ210及びステップ220)、または命令パス配列
BRPビットがオフで、ライン内の最後の命令及びデー
タが命令解析機構により使い尽くされると(ステップ2
10及びステップ230)、命令パス配列エントリが廃
棄され(ステップ225)、処理は次に最も古い命令パ
ス配列エントリを検索して、上述の処理を継続する。命
令解析は、上述の状態が命令パス配列エントリ検索の早
期のステップへの復帰を要求するまで(ステップ240
及び245)、この命令キャッシュ・ラインに対応して
継続される。この活動の間、再生利用または再書込みに
使用可能な命令キャッシュ・ラインは、ICEPポイン
タ・フィールド26を介してそれらを参照する命令パス
配列エントリを有さないものが相当する。この活動は、
例えば最低使用頻度(LRU)アルゴリズムなどの他の
置換方法に加えて使用されることを述べておく。これは
データ・ループに対応する命令が、命令キャッシュ30
内に保持されることを許可する。
サ内では図6に示される実行が発生する。最も古い命令
パス配列エントリが検索される(ステップ200)。次
に解析される命令が、対応する命令パス配列のICEP
フィールド26により識別されるキャッシュ・ライン内
の、命令パス配列TGOFフィールド27により指示さ
れるオフセットに見い出される(ステップ205)。命
令パス配列のBRPビットが1にセットされ、オフセッ
トBROFフィールドによる命令が解析された後(ステ
ップ210及びステップ220)、または命令パス配列
BRPビットがオフで、ライン内の最後の命令及びデー
タが命令解析機構により使い尽くされると(ステップ2
10及びステップ230)、命令パス配列エントリが廃
棄され(ステップ225)、処理は次に最も古い命令パ
ス配列エントリを検索して、上述の処理を継続する。命
令解析は、上述の状態が命令パス配列エントリ検索の早
期のステップへの復帰を要求するまで(ステップ240
及び245)、この命令キャッシュ・ラインに対応して
継続される。この活動の間、再生利用または再書込みに
使用可能な命令キャッシュ・ラインは、ICEPポイン
タ・フィールド26を介してそれらを参照する命令パス
配列エントリを有さないものが相当する。この活動は、
例えば最低使用頻度(LRU)アルゴリズムなどの他の
置換方法に加えて使用されることを述べておく。これは
データ・ループに対応する命令が、命令キャッシュ30
内に保持されることを許可する。
【0025】上述の説明から、本発明の方法及び装置が
上述の全ての目的を満足するシステムを提供することが
理解されよう。特にこの方法及び装置が、命令キャッシ
ュ・ラインの不要なまたは早計な再書込みを阻止するこ
とにより、システム性能を改良することが理解されよ
う。この目的は、少なくとも部分的には、命令パス配列
キューを使用する方法により提供される、命令フローの
より優れた柔軟性及び制御により達成される。更に、キ
ャッシュ構造からの命令シーケンスの管理におけるキュ
ーの使用が、ループ構成を可能とするために、特に全体
的キャッシュ・ラインだけでなく、それらのサブ部分を
適合化及び制御するために有効であることが理解されよ
う。こうした構成及び方法は、使用される回路における
コストを最低に維持した上で、システム性能を改良する
利点を有するものである。
上述の全ての目的を満足するシステムを提供することが
理解されよう。特にこの方法及び装置が、命令キャッシ
ュ・ラインの不要なまたは早計な再書込みを阻止するこ
とにより、システム性能を改良することが理解されよ
う。この目的は、少なくとも部分的には、命令パス配列
キューを使用する方法により提供される、命令フローの
より優れた柔軟性及び制御により達成される。更に、キ
ャッシュ構造からの命令シーケンスの管理におけるキュ
ーの使用が、ループ構成を可能とするために、特に全体
的キャッシュ・ラインだけでなく、それらのサブ部分を
適合化及び制御するために有効であることが理解されよ
う。こうした構成及び方法は、使用される回路における
コストを最低に維持した上で、システム性能を改良する
利点を有するものである。
【0026】
【発明の効果】以上説明したように、本発明によれば、
命令キャッシュ・ラインに対する再書込み要求を低減す
るコンピュータ・システムにおける命令キャッシュの管
理が提供される。
命令キャッシュ・ラインに対する再書込み要求を低減す
るコンピュータ・システムにおける命令キャッシュの管
理が提供される。
【図1】本発明が実施される全体的環境を示すブロック
図である。
図である。
【図2】本発明の要素間の関係を示すブロック図であ
る。
る。
【図3】命令パス配列キュー要素内に含まれるフィール
ドを示すブロック図である。
ドを示すブロック図である。
【図4】命令パス配列及び命令キャッシュ内に含まれる
命令ストリームからの対応する要素間の関係を示すブロ
ック図である。
命令ストリームからの対応する要素間の関係を示すブロ
ック図である。
【図5】キャッシュから後に処理される命令をセット・
アップするために、本発明において実行されるオペレー
ションの1部を示す流れ図である。
アップするために、本発明において実行されるオペレー
ションの1部を示す流れ図である。
【図6】命令を選択し、実行するために本発明において
実行される流れ図である。
実行される流れ図である。
10 分岐予測機構 11 命令キャッシュ(I−CACHE)ディレクトリ 12 レジスタ 13 ディレクトリ・ルックアップ機能回路 20 命令パス配列機構(IPA) 21 開始ポインタ 22 終了ポインタ 25 キャッシュ・ライン選択回路 26 命令キャッシュ・エントリ・ポインタ(ICE
P) 27 ターゲット・オフセット・フィールド(TGO
F) 28 分岐予測ビット(BRP) 29 分岐オフセット・フィールド 30 命令キャッシュ 35 命令解析器 36 命令レジスタ 90 メモリ 98 IPAキュー制御 99 IPA使用チェック論理
P) 27 ターゲット・オフセット・フィールド(TGO
F) 28 分岐予測ビット(BRP) 29 分岐オフセット・フィールド 30 命令キャッシュ 35 命令解析器 36 命令レジスタ 90 メモリ 98 IPAキュー制御 99 IPA使用チェック論理
───────────────────────────────────────────────────── フロントページの続き (72)発明者 レイモンド・ジェームズ・ペダーセン アメリカ合衆国33432、フロリダ州ボ カ・ラトン、サウス・ウエスト フィフ ス・アベニュー 1548 (56)参考文献 特開 平4−235638(JP,A) 特開 平3−18412(JP,A) 特開 平4−195630(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/38
Claims (6)
- 【請求項1】コンピュータにおいて実行のための命令を
提供する装置であって、 複数のキュー要素を有するファーストイン・ファースト
アウト・キューと、 前記キュー内の現在の1要素を指示するポインタ手段
と、 複数の個々にアドレス可能な命令シーケンスを記憶する
ための命令キャッシュと、 前記キュー内の前記現在指示されるキュー要素の内容に
応答して、命令実行を開始するための前記命令シーケン
スの1つを選択する手段と、 を含み、更に、 前記キュー内の前記要素が、前記個々にアドレス可能な
命令シーケンス内の開始アドレスの指示を提供するター
ゲット・オフセット・フィールドを含む、 前記装置。 - 【請求項2】前記キューが、前記キューの開始及び終了
ロケーションを識別するポインタ手段を含む、請求項1
記載の装置。 - 【請求項3】前記キューが、前記キューがフルまたはエ
ンプティであることを示す手段を含む、請求項1記載の
装置。 - 【請求項4】前記キューが、前記個々にアドレス可能な
命令シーケンスの1つ内の分岐命令の終了部分を指示す
るフィールド、及び分岐命令が許可されるか否かを示す
フィールドを含む、請求項2記載の装置。 - 【請求項5】将来の命令データ情報をプリフェッチ及び
検索するためのポインタ指示を提供する分岐予測手段を
含む、請求項1記載の装置。 - 【請求項6】キャッシュ・メモリ内に記憶されるコンピ
ュータ命令の実行シーケンスを制御する方法であって、 命令データをプリフェッチし、記憶のためのアドレス情
報をファーストイン・ファーストアウト・キュー内にア
センブルするステップと、 転送情報に対応する特定の前記キャッシュ・ラインを指
定するキュー要素に従い、コンピュータ・プロセッサの
実行部分へ命令転送を発生するステップと、 を含み、更に、 前記キュー要素が、前記命令キャッシュ内の命令シーケ
ンスの一部分を指定する、 前記方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US481493A | 1993-01-15 | 1993-01-15 | |
US004814 | 1993-01-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06242949A JPH06242949A (ja) | 1994-09-02 |
JP2744882B2 true JP2744882B2 (ja) | 1998-04-28 |
Family
ID=21712660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5319419A Expired - Lifetime JP2744882B2 (ja) | 1993-01-15 | 1993-12-20 | キューにより命令の実行を制御する装置及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5553254A (ja) |
JP (1) | JP2744882B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101466493B1 (ko) * | 2013-06-25 | 2014-12-02 | 광운대학교 산학협력단 | Ssd의 버퍼 제어 장치 및 방법 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604909A (en) * | 1993-12-15 | 1997-02-18 | Silicon Graphics Computer Systems, Inc. | Apparatus for processing instructions in a computing system |
US5860096A (en) * | 1994-10-17 | 1999-01-12 | Hewlett-Packard Company | Multi-level instruction cache for a computer |
US5832231A (en) * | 1995-01-13 | 1998-11-03 | U S West, Inc. | Method and system for preloading interactive multimedia applications |
JP3548616B2 (ja) * | 1995-01-20 | 2004-07-28 | 株式会社日立製作所 | 情報処理装置 |
US5734881A (en) * | 1995-12-15 | 1998-03-31 | Cyrix Corporation | Detecting short branches in a prefetch buffer using target location information in a branch target cache |
US5778435A (en) * | 1996-05-30 | 1998-07-07 | Lucent Technologies, Inc. | History-based prefetch cache including a time queue |
US5854911A (en) * | 1996-07-01 | 1998-12-29 | Sun Microsystems, Inc. | Data buffer prefetch apparatus and method |
US5954816A (en) * | 1996-11-19 | 1999-09-21 | Advanced Micro Devices, Inc. | Branch selector prediction |
US5978906A (en) * | 1996-11-19 | 1999-11-02 | Advanced Micro Devices, Inc. | Branch selectors associated with byte ranges within an instruction cache for rapidly identifying branch predictions |
US5995749A (en) * | 1996-11-19 | 1999-11-30 | Advanced Micro Devices, Inc. | Branch prediction mechanism employing branch selectors to select a branch prediction |
US6253316B1 (en) | 1996-11-19 | 2001-06-26 | Advanced Micro Devices, Inc. | Three state branch history using one bit in a branch prediction mechanism |
US5870576A (en) * | 1996-12-16 | 1999-02-09 | Hewlett-Packard Company | Method and apparatus for storing and expanding variable-length program instructions upon detection of a miss condition within an instruction cache containing pointers to compressed instructions for wide instruction word processor architectures |
US6041390A (en) * | 1996-12-23 | 2000-03-21 | International Business Machines Corporation | Token mechanism for cache-line replacement within a cache memory having redundant cache lines |
US5958068A (en) * | 1997-04-14 | 1999-09-28 | International Business Machines Corporation | Cache array defect functional bypassing using repair mask |
US6134633A (en) * | 1997-10-31 | 2000-10-17 | U.S. Philips Corporation | Prefetch management in cache memory |
US6108774A (en) * | 1997-12-19 | 2000-08-22 | Advanced Micro Devices, Inc. | Branch prediction with added selector bits to increase branch prediction capacity and flexibility with minimal added bits |
US6957327B1 (en) * | 1998-12-31 | 2005-10-18 | Stmicroelectronics, Inc. | Block-based branch target buffer |
US6502188B1 (en) | 1999-11-16 | 2002-12-31 | Advanced Micro Devices, Inc. | Dynamic classification of conditional branches in global history branch prediction |
US20080126771A1 (en) * | 2006-07-25 | 2008-05-29 | Lei Chen | Branch Target Extension for an Instruction Cache |
US8561043B2 (en) * | 2008-03-28 | 2013-10-15 | International Business Machines Corporation | Data transfer optimized software cache for irregular memory references |
US8527974B2 (en) * | 2008-03-28 | 2013-09-03 | International Business Machines Corporation | Data transfer optimized software cache for regular memory references |
US8561044B2 (en) * | 2008-10-07 | 2013-10-15 | International Business Machines Corporation | Optimized code generation targeting a high locality software cache |
JP6016689B2 (ja) * | 2013-03-28 | 2016-10-26 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4435756A (en) * | 1981-12-03 | 1984-03-06 | Burroughs Corporation | Branch predicting computer |
US4716994A (en) * | 1985-08-16 | 1988-01-05 | Akebono Brake Industry Co., Ltd. | Disc brake |
US4743908A (en) * | 1985-11-04 | 1988-05-10 | M. P. H. Industries, Inc. | Target position radar |
US4855904A (en) * | 1986-08-27 | 1989-08-08 | Amdahl Corporation | Cache storage queue |
US4881163A (en) * | 1986-09-19 | 1989-11-14 | Amdahl Corporation | Computer system architecture employing cache data line move-out queue buffer |
JPS6393038A (ja) * | 1986-10-07 | 1988-04-23 | Mitsubishi Electric Corp | 計算機 |
US5257359A (en) * | 1989-02-08 | 1993-10-26 | Hitachi Microsystems, Inc. | Instruction cache buffer with program-flow control |
JPH0318412A (ja) * | 1989-06-13 | 1991-01-28 | Toshiba Corp | 圧延材のプロフィル制御装置 |
EP0436341B1 (en) * | 1990-01-02 | 1997-05-07 | Motorola, Inc. | Sequential prefetch method for 1, 2 or 3 word instructions |
US5226130A (en) * | 1990-02-26 | 1993-07-06 | Nexgen Microsystems | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency |
US5230068A (en) * | 1990-02-26 | 1993-07-20 | Nexgen Microsystems | Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence |
JP2560889B2 (ja) * | 1990-05-22 | 1996-12-04 | 日本電気株式会社 | マイクロプロセッサ |
GB2247546B (en) * | 1990-08-31 | 1995-03-01 | Sun Microsystems Inc | Method and apparatus for predictive caching |
JPH04195630A (ja) * | 1990-11-28 | 1992-07-15 | Mitsubishi Electric Corp | データ処理装置 |
JPH04235638A (ja) * | 1991-01-10 | 1992-08-24 | Fuji Electric Co Ltd | プリフェッチ機能付マイクロプロセッサ |
US5442756A (en) * | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
-
1993
- 1993-12-20 JP JP5319419A patent/JP2744882B2/ja not_active Expired - Lifetime
-
1994
- 1994-12-20 US US08/359,718 patent/US5553254A/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101466493B1 (ko) * | 2013-06-25 | 2014-12-02 | 광운대학교 산학협력단 | Ssd의 버퍼 제어 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
US5553254A (en) | 1996-09-03 |
JPH06242949A (ja) | 1994-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2744882B2 (ja) | キューにより命令の実行を制御する装置及び方法 | |
US7386701B2 (en) | Prefetching hints | |
US5974543A (en) | Apparatus and method for performing subroutine call and return operations | |
US5758142A (en) | Trainable apparatus for predicting instruction outcomes in pipelined processors | |
EP0957428B1 (en) | Method and apparatus for fetching non-contiguous instructions in a data processing system | |
EP1116103B1 (en) | Mechanism for store-to-load forwarding | |
US6157993A (en) | Prefetching data using profile of cache misses from earlier code executions | |
US6560693B1 (en) | Branch history guided instruction/data prefetching | |
US6295594B1 (en) | Dynamic memory allocation suitable for stride-based prefetching | |
US6065103A (en) | Speculative store buffer | |
US6212603B1 (en) | Processor with apparatus for tracking prefetch and demand fetch instructions serviced by cache memory | |
US5285527A (en) | Predictive historical cache memory | |
US5790823A (en) | Operand prefetch table | |
JP2906315B2 (ja) | キャッシュメモリ中でインストラクションを保管する方法及び回路 | |
JPH0557617B2 (ja) | ||
US5774710A (en) | Cache line branch prediction scheme that shares among sets of a set associative cache | |
WO1998025196A2 (en) | Dynamic branch prediction for branch instructions with multiple targets | |
US6321328B1 (en) | Processor having data buffer for speculative loads | |
US5935238A (en) | Selection from multiple fetch addresses generated concurrently including predicted and actual target by control-flow instructions in current and previous instruction bundles | |
US5964869A (en) | Instruction fetch mechanism with simultaneous prediction of control-flow instructions | |
US5930820A (en) | Data cache and method using a stack memory for storing stack data separate from cache line storage | |
US6581138B2 (en) | Branch-prediction driven instruction prefetch | |
US5666505A (en) | Heuristic prefetch mechanism and method for computer system | |
US6446143B1 (en) | Methods and apparatus for minimizing the impact of excessive instruction retrieval | |
US5748976A (en) | Mechanism for maintaining data coherency in a branch history instruction cache |