JP3234815B2 - ブランチ・ヒストリ・テーブル・ディセーブルによるミリモード制御方法 - Google Patents

ブランチ・ヒストリ・テーブル・ディセーブルによるミリモード制御方法

Info

Publication number
JP3234815B2
JP3234815B2 JP11053699A JP11053699A JP3234815B2 JP 3234815 B2 JP3234815 B2 JP 3234815B2 JP 11053699 A JP11053699 A JP 11053699A JP 11053699 A JP11053699 A JP 11053699A JP 3234815 B2 JP3234815 B2 JP 3234815B2
Authority
JP
Japan
Prior art keywords
millicode
history table
instruction
branch history
control
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
JP11053699A
Other languages
English (en)
Other versions
JP2000112753A (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 JP2000112753A publication Critical patent/JP2000112753A/ja
Application granted granted Critical
Publication of JP3234815B2 publication Critical patent/JP3234815B2/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
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/3017Runtime instruction translation, e.g. macros

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

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、BHTディセーブ
ルを処理し得るブランチ・ヒストリ・テーブル(BH
T)を持ったコンピュータ・システムに関するものであ
る。
【0002】
【従来の技術】1997年5月27日発行の「別個にな
ったミリコード・ブランチ・ヒストリ・テーブルを使用
するコンピュータ処理ユニット(Computer processing
unit employing a separate millicode branch history
table)」と題した米国特許第5,634,119号に
は、少なくとも第1及び第2領域にマップされたメモリ
を有するコンピュータ処理システムが開示されている。
第1領域はそのコンピュータ処理システムの第1命令セ
ット・アーキテクチャに属する命令を記憶し、第2領域
はそのコンピュータ処理システムの第2命令セット・ア
ーキテクチャに属する命令を記憶する。そのようなシス
テムでは、コンピュータ処理システムは、第1命令セッ
トに属する命令を記憶する第1メモリ及び第2命令セッ
トに属する命令を記憶する第2メモリを含んでいる。第
1及び第2メモリには、プロセッサ・ユニットによって
実行される命令を記憶するための命令バッファが結合さ
れる。そのシステムは2つのモードのうちの一方で動作
する。第1モードでは、命令は、第1テーブルに記憶さ
れたデータに従って第1メモリから命令バッファにフェ
ッチされる。第2モードでは、命令は、第2テーブルに
記憶されたデータに従って第2メモリから命令バッファ
にフェッチされる。
【0003】一般に、第1命令セット及び第2命令セッ
トは少なくとも1つのブランチ型の命令を含んでいる。
例示的な実施例では、各命令セットはそれ自身のブラン
チ・ヒストリ・テーブル(BHT)を有する。第1テー
ブルは第1命令セットに関連したブランチ・ヒストリ・
テーブルであり、第2テーブルは第2命令セットに関連
したブランチ・ヒストリ・テーブルである。第1命令セ
ットはシステム・レベル命令であってもよく、第2命令
セットは、例えば、複合システム・レベル命令を定義す
るミリコード命令及び(又は)第2命令セット・アーキ
テクチャをエミュレートするミリコード命令であっても
よい。
【0004】IBM S/390(IBM及びS/39
0の両方ともインターナショナル・ビジネス・マシーン
ズ・コーポレーションの商標)は、IBMのESA/3
90G4マシンにおいて使用されるフィーチャを含む。
そのマシンはミリコードを階層キャッシュ構造で使用
し、ミリモード動作モード及びSMP環境においてミリ
コードのための読取専用記憶装置構造を使用したシステ
ム・モードを使用する。その後の世代では、すべての動
作モードに対するブランチ情報を保持するために単一の
ブランチ・ヒストリ・テーブルを使用するプロセッサが
存在する。ブランチ・ヒストリ・テーブルのオペレーシ
ョンは、プロセッサにおける命令フェッチ・オペレーシ
ョンが、命令を解読され又は命令を実行することの結果
として最初に指示を与えられることなく、目標の命令ス
トリームに進むことを可能にする。命令をフェッチする
オペレーション及びアクションにわたって制御を必要と
する、ミリコードが遂行する幾つかのアクションがあ
る。これらは、機能的な理由でキャッシュに送られるリ
クエストのタイプ及びアドレスを含んでもよい。
【0005】多くのプロセッサ設計は、ハードウエア障
害又はBHTによる機能的問題があった場合、BHTの
オペレーションを停止させるために利用可能なグローバ
ル・ディセーブル機能を有するということは注目され
る。当業者はこの存在及び使用を知っているであろう。
【0006】
【発明が解決しようとする課題】本発明は、中央プロセ
ッサ(CPU)と正規モードのオペレーション及びミリ
モードのオペレーションとを有するシステムのためのミ
リモード機能のあるコンピュータ操作方法を提供する。
【0007】
【課題を解決するための手段】このコンピュータ・シス
テムはブランチ・ヒストリ・テーブルを含む。ブランチ
・ヒストリ・テーブルは、S/390モードにおけるオ
ペレーション及びミリコード・モードとして知られた高
度の特権モードを含むすべてのライセンスされた内部コ
ード・モードにおけるオペレーションの両方からのブラ
ンチ・エントリを含み、ブランチ・ヒストリ・テーブル
・エントリからのターゲット・データの命令フェッチを
選択的にイネーブル及びディセーブルするためにミリコ
ードに対する制御を伴う。これらの制御は多くの理由で
2つの異なる手段によって与えられる。それらは、プロ
セッサが初期設定される時にブランチ・ヒストリ・テー
ブルが機能的に設定されることを可能にすると共に、ブ
ランチ・ヒストリ・テーブルが適正に機能するか否かに
基づいてそれに対する値が決定されるグローバル制御と
も異なる。
【0008】命令フェッチが生じ得る時をミリコードが
制御することを必要とする1つの理由は、生じ得るキャ
ッシュ機能のタイプの制御を必要とするセンシティブな
システム・オペレーションをそのミリコードが行おうと
している時間である。ブランチ・ヒストリ・テーブルの
アクションを制御するために使用可能な2つの機構があ
る。どちらが使用されるべきかは、呼び出される特定の
ミリコード・シーケンスによって決定される。ミリコー
ド・ルーチンへのエントリの時間に、或るミリコード制
御レジスタが所望の値に初期設定される。1の値に初期
設定された時のこれらのレジスタの1つにおける1つの
ビットは、ブランチ・ヒストリ・テーブルのマッチング
機構がディセーブルされるという結果を生じるであろう
し、これらのエントリのターゲットの更なる命令フェッ
チは遂行されないであろう。その後、そのルーチンのセ
ンシティブな部分をコードが通過した後、ミリコードは
この制御ビットをオフにし、ブランチ・ヒストリ・テー
ブルをリイネーブルしてもよい。第2の機構に対して、
ブランチ・ヒストリ・テーブルはミリコード・ルーチン
へのエントリ時にはアクティブである。従って、センシ
ティブな機能のエリアが近づくにつれて、ミリコード
は、プロセッサ・ディセーブル制御レジスタにおけるビ
ットを、マッチング機構もディセーブルする1の値に書
き込む。その後、センシティブな・エリアが通過した
時、コードはブランチ・ヒストリ・テーブルをリイネー
ブルすることができる。
【0009】ミリコード制御がブランチ・ヒストリ・テ
ーブル機能をディセーブルするための第2の用法は、ブ
ランチ・ヒストリ・テーブル機能がパフォーマンスを援
助せずにそれを隠蔽するというブランチ・ループの非常
に特殊なシーケンスが実行される時である。ブランチ・
ヒストリ・テーブルは、一般に、命令ストリームにおけ
るブランチのターゲットを予測し、それをフェッチする
ように設計される。しかし、或るブランチ・ディレクシ
ョン・シーケンスを持ったタイトなブランチ・ループの
場合、ブランチ・ヒストリ・テーブルは所望の結果を与
えないであろうし、その代わりに、それが間違ったスポ
ットにプロセッサを送るか又は所望のブランチをミスし
た時に遅れる。そのようなシーケンスの直前に、ミリコ
ードはブランチ・ヒストリ・テーブルをディセーブルす
るようにプロセッサ・ディセーブル制御レジスタにおけ
るビットを書込み、その後、命令ループ及び(又は)ブ
ランチの特別のシーケンスが通過した後、ブランチ・ヒ
ストリ・テーブル機能をリイネーブルする。
【0010】これらの2つの機構は、プロセッサがミリ
コード・モードにある時のブランチ・ヒストリ・テーブ
ルのオペレーションを生じさせるだけである。両方の機
構ともブランチ・マッチング機構の結果を生じさせるけ
れども、それらは1つの重要な相違点を有する。ミリコ
ード・エントリ時に書かれたビットは、入ろうとしてい
るルーチンに基づくすべてのエントリに対して書かれ
る。従って、ディセーブル・ビットの前の値は意味を持
たず、ブランチ・ヒストリ・テーブルをその初期設定さ
れた状態からディセーブルされたルーチンを出るミリコ
ードはその機能をリイネーブルする必要がない。ミリコ
ードがプロセッサ制御レジスタ・ビットを使用する時、
ルーチンはその機能をリイネーブルしなければならない
けれども、そうでない場合、次のミリコード・ルーチン
も、ミリコードがブランチ・ヒストリ・テーブルの機能
性を明確にリイネーブルするまで、その機能をディセー
ブルされるであろう。
【0011】以下の詳細な説明において、これらの及び
他の改良点を述べることにする。多くの利点及び特徴を
持った本発明をよりよく理解するために、説明及び図面
を参照してほしい。
【0012】
【発明の実施の形態】S/390マシンは、大型のバイ
ポーラ・メインフレームから、メインフレーム機能を持
った強力なサーバに発展したが、CMOS環境に基礎を
置くものである。最近のシリーズに付けられた用語G4
は、第4世代、即ち、G4と呼ばれている。G4シリー
ズに関する設計の当初は、プロセッサにより実行可能な
より簡単な命令のシーケンスで複雑な又は難しいアクシ
ョンを遂行するための手段を提供するために、ミリコー
ドと呼ばれるオペレーションのモードが使用された。ミ
リコード(millicode)は、S/390マシン
に適したコードで表された高度に特権を与えられたサブ
ルーチンのためのコードである。
【0013】新しいプロセッサ設計では、ブランチ(分
岐)予測機能を与えてパフォーマンスを強化させるため
に、ブランチ・ヒストリ・テーブル(分岐履歴表,BH
T)が加えられている。この単一のBHTは、ESA/
390及びミリコード・ブランチ(及び、遂行可能な他
の内部コード・ブランチ)の両方に関するブランチ情報
を保持するために使用される。S/390及びミリコー
ド・ブランチの両方に対する部分的アドレスをそのブラ
ンチの部分的ターゲット・アドレスと共に含んだBHT
を使用するS/390マシンは、ブランチ・ターゲット
の期待されるロケーションへの命令フェッチを行うため
にその情報を使用する。ESAモードのシステムの命令
セット及びミリモード・セットが同じブランチ・ヒスト
リ・テーブル(BHT)を使用する時に複雑な事態が生
じる。
【0014】進行中は、或るタイム・インターバルの
間、キャッシュへの新たな論理的リクエストを行わせる
ことを許されないミリコード・オペレーションがある。
それらを生じさせることはエラーというケースを発生す
ることがある。BHTはフリー・ランニングのものであ
り、新たなIフェッチ(命令フェッチ)を始めるための
資源が利用可能である場合、それがそのような新たなI
フェッチ・ストリームを開始する必要性を見出す如何な
る時でもリクエストを行うことができる。これは、論理
的Iフェッチを開始させることによって行われる。1つ
の解決方法は、プロセッサがミリコードモードで稼働し
ている時間中、BHTオペレーションを阻止することで
あろう。しかし、BHTはパフォーマンス上の大きな有
益性を持つものであり、ミリコード・オペレーションの
間動作していなければならない。望ましくない論理的リ
クエストが特定のタイム・ウインドウにおいて生じない
ようにするために、ミリコードはフリー・ランニングB
HTのサーチ及びフェッチ制御のアクションを制御する
ための方法を持たなければならない。本発明の機構は、
命令フェッチ・オペレーションの制御を必要とするこれ
らの特定の状況が生じる時を除いて、BHTオペレーシ
ョンが継続することを可能にするための制御をミリコー
ドに与える。
【0015】更に別のケースでは、BHTが或るコード
実行のセクションの間オフにされ得るが、すべてのセク
ションの間ディセーブルされ得ない場合、それがより良
いパフォーマンスであることをBHTのアクションによ
り実際にタイトなループ内に隠蔽される特定のミリコー
ド命令シーケンスが存在することがある。
【0016】図1に示されるような、命令フェッチ手段
(2)に指示を与える情報を供給するブランチ・ヒスト
リ・テーブル、即ち、BHT(5)を持ったプロセッサ
において、そのBHTは、ターゲット命令ストリームが
命令デコード(3)にとって使用可能であること及び命
令テキストが実行エレメント(4)へ命令を供給させる
ことを予測するためには、ほぼ非同期的態様で機能す
る。ブランチ・ヒストリ・テーブル(5)は、それがB
HTアレイ(8)をアクセスするために使用する開始ア
ドレスをサーチ手段(6)に供給される。それは、可能
なブランチ命令をサーチするためにBHTの設計におい
て選択された量だけインクリメント手段(7)において
インクリメントするであろう。
【0017】BHT(5)では、その設計は、BHTア
レイ(8)における各エントリによって処理される命令
テキストをバイト数で表した長さ、及び1セットからY
セットまでのそのアレイのセット・アソシアティビティ
によって保持されるそのサイズにおける可能なブランチ
数を決定するように選択された。各エントリは、ブラン
チの命令アドレスに関する情報、ブランチのターゲッ
ト、及びエントリに関する状態情報を含むであろう。こ
れらのアドレスは、チップ上の利用可能なエリア及びア
ーキテクチャのアドレス範囲次第で全体的又は部分的に
なり得る。ターゲット情報はレジスタ(10)において
ラッチされ、命令アドレス情報はコンパレータ(9)に
よってサーチ・アドレスと比較される。これらの命令ア
ドレス・コンパレータ(9)及びグローバル・ディセー
ブル・ラッチ(13)の結果は、ヒットが生じたかどう
か及びヒット検出ロジック(12)におけるどのセット
が望ましいかを決定するために使用される。そのセット
の選択は、マルチプレクサ(11)を制御して正しいブ
ランチ・ターゲット情報を命令フェッチ手段(2)にゲ
ートさせるために使用される。
【0018】図2には、更に2つのミリコード・ディセ
ーブル・ラッチ、即ち、初期設定制御ビット及びプロセ
ッサ制御ビット(14、15)並びにプロセッサの現モ
ードの情報がヒット検出ロジック(12)に付加され
る。これらは、それらが一部分である更に大きなレジス
タにおける値のビット・コピーである。
【0019】図3には、ヒット検出ロジック(12)が
機能する方法の詳細が示される。サーチされたBHTア
レイ(8)における各セットからの可能なブランチに関
する命令アドレス情報がサーチ手段(6)からの命令ア
ドレスと比較される。コンパレータ(9)は、セット命
令アドレスがサーチ手段(6)のアドレスと一致するか
どうか及び、そのセットにおいて複数の一致が生じる場
合、どのセットが論理的には最初になるかを知るための
チェックを行うであろう。2つの新たなミリコード・デ
ィセーブル値、すなわち、ミリコード・ルーチン始動時
に設定された初期設定制御ビット(14)及びプロセッ
サ制御ビット(15)が論理的にORされ(16)、し
かる後、プロセッサがミリコード・モードで実行してい
る時にはこれらのディセーブルは単に有効であるだけな
ので、ミリコード・モード・ビットとANDされる(1
7)。しかる後、これはグローバルBHTディセーブル
(13)とNORされる(18)。そのグローバルBH
Tディセーブル(13)は、BHTが回路障害を持って
いるか又は必要な特に機能的に動作しない場合、BHT
をオフにするために使用される。しかる後、これはセッ
ト・ヒット及びセット・オーダリング情報とANDされ
(20)、ターゲット情報マルチプレクサ(11)にセ
ット・ヒット選択ラインを供給する。又、それらのセッ
ト・ヒット選択ラインは共にORされ(21)、しかる
後、ディセーブル機能とANDされて(22)、BHT
ヒット検出ラインの値を決定する。キャッシュ(1)か
らのこのデータをリクエストするために命令フェッチ手
段(2)に指示を与えるのは、ターゲット・データを伴
うこの信号である。
【0020】ターゲット・データがアレイからラッチさ
れること、及びサイクル・タイムがヒット検出ロジック
におけるどこかのラッチ・ポイントを必要としそうであ
るということに注意すべきである。これは、各設計に対
して、それが異なる場所にあるので図示されていない。
しかし、ターゲット情報はマルチプレクサ(11)の前
にラッチ(10)に入れられ、命令フェッチ手段(2)
へ返送されるので、そのパスのどこかに、BHTヒット
情報を検出するラッチ(図1及び図2のいずれにも示さ
れてない)が必要であろう。
【0021】本発明の望ましい実施例を説明したけれど
も、現在及び将来とも、当業者が本発明の技術的範囲内
での種々の改良及び向上を行い得ることは明らかであろ
う。
【0022】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0023】(1)正規モードのオペレーション及びミ
リモードのオペレーションで動作し得る中央プロセッサ
と、キャッシュ、正規モード及びミリモードで命令処理
を制御するためにブランチ・ヒストリ・テーブル(BH
T)に結合された命令フェッチ・ユニット、命令デコー
ド・ユニット、及び命令実行ユニットとを有するシステ
ムのためのミリモード機能のあるコンピュータの操作方
法にして、命令フェッチ・オペレーションの制御を必要
とする特別な状況が生じた時を除いてBHTオペレーシ
ョンが継続することを可能にするためにミリコードに制
御を与え、グローバルBHTディセーブル及び別々にな
ったミリコード・ディセーブルの両方に対して命令フェ
ッチを指示するためのステップであって、前記BHTオ
ペレーションはコード実行の或るセクションに対してオ
フにされるが、すべてのセクションに対してディセーブ
ルされない、ステップと、生じ得るキャッシュ機能のタ
イプの制御を必要とするシステム・オペレーションにミ
リモード・オペレーションを与え、命令フェッチがミリ
モード制御の下で生じ得る時、ブランチ・ヒストリ・テ
ーブルのアクションを制御するために使用される2つの
プロセスを含むステップと、特定のミリコード・シーケ
ンスが呼び出されることによって前記2つのプロセスの
うちのどちらが使用されるかを決定するステップと、特
定のミリコード・シーケンスへのエントリ時に、ミリコ
ード制御レジスタの1つにおける1つのビットは、それ
が1の値に初期設定された時、前記ブランチ・ヒストリ
・テーブルのマッチング機構がディセーブルされるとい
う結果を生じさせ、これらのエントリのターゲットのそ
れ以上の命令フェッチが行われない場合に所望の値に前
記ミリコード制御レジスタを初期設定するステップと、
を含み、その後、前記ミリコード・シーケンスが前記ミ
リコード・シーケンスのルーチンのセンシティブな部分
を通過した後、ミリコードがこの制御ビットをオフに
し、ブランチ・ヒストリ・テーブル機能をリイネーブル
する、方法。 (2)前記コンピュータのブランチ・ヒストリ・テーブ
ルが前記ミリコード・シーケンスのルーチンへのエント
リ時にアクティブである時、センシティブ機能のエリア
が近づくにつれてミリコードがプロセッサ・ディセーブ
ル制御レジスタにおけるビットを、前記マッチング機構
をディセーブルする値に書き、しかる後、前記ミリコー
ド・ルーチンにおいて、前記センシティブ機能のエリア
が通過した時、ミリコード・ルーチンが前記プロセッサ
のブランチ・ヒストリ・テーブルをリイネーブルするス
テップを更に含む上記(1)に記載の方法。 (3)前記ブランチ・ヒストリ・テーブルは、前記ブラ
ンチ・ヒストリ・テーブルのエントリからのターゲット
・データの命令フェッチを前記ミリコードが選択的にイ
ネーブル及びディセーブルするための制御手段と共に、
S/390モード及びライセンスされた内部コード・ミ
リコード・モードの両方のオペレーションからのブラン
チ・エントリを含むステップを更に含む、上記(2)に
記載の方法。 (4)前記のプロセスにおいて、単一のフリー・ランニ
ング・ブランチ・ヒストリ・テーブルが前記中央プロセ
ッサのための正規モード及びミリモードの両方に対して
機能し、ブランチ・ヒストリ・テーブル・ロジックがグ
ローバルBHTディセーブル及びミリコード・ディセー
ブルの両方の制御の下に命令フェッチを指示する、上記
(2)に記載の方法。 (5)前記のプロセスにおいて、グローバルBHTディ
セーブル機能及び2つのミリコード・ディセーブル機能
の両方が存在する、上記(2)に記載の方法。 (6)前記のプロセスにおいて、グローバルBHTディ
セーブルから並びに初期設定された制御レジスタ・ビッ
ト及びプロセッサ制御レジスタ・ビットから入力を受け
るヒット検出ロジックが正しいセット・ターゲット情報
を選択し、「ブランチ・ヒストリ・テーブル・ヒット検
出」制御信号を発生する、上記(5)に記載の方法。 (7)前記のプロセスにおいて、前記プロセッサは命令
フェッチを指示する情報を与えるブランチ・ヒストリ・
テーブルを有し、該ブランチ・ヒストリ・テーブルはタ
ーゲット命令ストリームが命令デコードにとって使用可
能であることを予測するためにほぼ非同期的態様で機能
し、命令テキストがプロセッサの実行エレメントに命令
を供給し、前記ブランチ・ヒストリ・テーブルは、ブラ
ンチ・ヒストリ・テーブル・アレイのサーチ手段に開始
アドレスを供給し、可能なブランチ命令をサーチするた
めにブランチ・ヒストリ・テーブルの設計によって選択
された量だけインクリメントする、上記(6)に記載の
方法。 (8)命令がフェッチされるべき時を制御するためにブ
ランチ・ヒストリ・テーブル並びに正規モードのオペレ
ーション及びミリモードのオペレーションを有するコン
ピュータにおいて使用するための方法にして、生じ得る
キャッシュ機能のタイプの制御を必要とするシステム・
オペレーションにミリモード・オペレーションを提供
し、命令フェッチがミリモード制御の下に生じ得る時、
ブランチ・ヒストリ・テーブル・アクションを制御する
ために使用される2つのプロセスを含むステップと、特
定のミリコード・シーケンスが呼び出されることによっ
て前記2つのプロセスのうちのどちらが使用されるかを
決定するステップと、特定のミリコード・シーケンスへ
のエントリ時に、前記ミリコード制御レジスタの1つに
おける1つのビットは、それが1の値に初期設定された
時、前記ブランチ・ヒストリ・テーブルのマッチング機
構がディセーブルされるという結果を生じさせ、これら
のエントリのターゲットのそれ以上の命令フェッチが行
われない場合に所望の値に前記ミリコード制御レジスタ
を初期設定するステップと、を含み、その後、前記ミリ
コード・シーケンスが前記ミリコード・シーケンスのル
ーチンのセンシティブな部分を通過した後、ミリコード
がこの制御ビットをオフにし、ブランチ・ヒストリ・テ
ーブル機能をリイネーブルする、方法。 (9)命令がフェッチされるべき時を制御するためにブ
ランチ・ヒストリ・テーブル並びに正規モードのオペレ
ーション及びミリモードのオペレーションを有するコン
ピュータにおいて使用するための方法にして、前記ブラ
ンチ・ヒストリ・テーブルがミリコード・ルーチンへの
エントリ時にアクティブである場合、センシティブな機
能のエリアが近づくにつれて、ミリコードがプロセッサ
・ディセーブル制御レジスタにおけるビットを、マッチ
ング機構をディセーブルする値に書き、しかる後、前記
ミリコード・ルーチンにおいて、センシティブ機能のエ
リアが通過した時、ミリコード・ルーチンは前記プロセ
ッサのブランチ・ヒストリ・テーブルをリイネーブルす
るステップを含む、方法。
【図面の簡単な説明】
【図1】命令フェッチを指示し、グローバルBHTディ
セーブルしか存在しないブランチ・ヒストリ・テーブル
を持った中央プロセッサのブロック図を示す。
【図2】1つのグローバルBHTディセーブル及び2つ
のミリコード・ディセーブルの両方が存在し、命令フェ
ッチを指示するブランチ・ヒストリ・テーブルを有する
中央プロセッサがミリモードで動作し得る本発明の望ま
しい実施例のブロック図を示す。
【図3】正しいセット・ターゲット情報を選択するため
に及び「ヒット検出」制御信号を発生するために、ヒッ
ト検出ロジック12においてディセーブルがどのように
使用されるかを示す本発明の望ましい実施例のブロック
12、13、14、及び15の相互作用の詳細を示す。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・エス・リップタイ アメリカ合衆国12572、ニューヨーク州 ラインベック、トロイ・ドライブ 1 (72)発明者 ティモシー・ジェイ・スリーゲル アメリカ合衆国12580、ニューヨーク州 スタッツバーグ、コネリィ・ドライブ 19 (72)発明者 チャールズ・エフ・ウェブ アメリカ合衆国12603、ニューヨーク州 プキープシー、メイネッティ・ドライブ 4 (72)発明者 マーク・エス・ファーレル アメリカ合衆国12569、ニューヨーク州 プレザント・ヴァレイ、アール・ディ・ 4、ボックス・411 (56)参考文献 特開 平11−259298(JP,A) 特開 平4−233632(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/26 320 G06F 9/22 350 G06F 9/38 310 G06F 9/38 330

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】正規モードのオペレーション及びミリモー
    ドのオペレーションで動作し得る中央プロセッサと、 キャッシュ、正規モード及びミリモードで命令処理を制
    御するためにブランチ・ヒストリ・テーブル(BHT)
    に結合された命令フェッチ・ユニット、命令デコード・
    ユニット、及び命令実行ユニットとを有するシステムの
    ためのミリモード機能のあるコンピュータの操作方法に
    して、 命令フェッチ・オペレーションの制御を必要とする特別
    な状況が生じた時を除いてBHTオペレーションが継続
    することを可能にするためにミリコードに制御を与え、
    グローバルBHTディセーブル及び別々になったミリコ
    ード・ディセーブルの両方に対して命令フェッチを指示
    するためのステップであって、前記BHTオペレーショ
    ンはコード実行の或るセクションに対してオフにされる
    が、すべてのセクションに対してディセーブルされな
    い、ステップと、 生じ得るキャッシュ機能のタイプの制御を必要とするシ
    ステム・オペレーションをミリモードで実行し、命令フ
    ェッチがミリモード制御の下で生じ得る時、ブランチ・
    ヒストリ・テーブルのアクションを制御するために使用
    される2つのプロセスを含むステップと、 特定のミリコード・シーケンスが呼び出されることによ
    って前記2つのプロセスのうちのどちらが使用されるか
    を決定するステップと、 特定のミリコード・シーケンスへのエントリ時に、ミリ
    コード制御レジスタの1つにおける1つのビットは、そ
    れが1の値に初期設定された時、前記ブランチ・ヒスト
    リ・テーブルのマッチング機構がディセーブルされると
    いう結果を生じさせ、これらのエントリのターゲットの
    それ以上の命令フェッチが行われない場合に所望の値に
    前記ミリコード制御レジスタを初期設定するステップ
    と、 を含み、 その後、前記ミリコード・シーケンスが前記ミリコード
    ・シーケンスのルーチンのセンシティブな部分を通過し
    た後、ミリコードがこの制御ビットをオフにし、ブラン
    チ・ヒストリ・テーブル機能をリイネーブルする、方
    法。
  2. 【請求項2】前記コンピュータのブランチ・ヒストリ・
    テーブルが前記ミリコード・シーケンスのルーチンへの
    エントリ時にアクティブである時、センシティブ機能の
    エリアが近づくにつれてミリコードがプロセッサ・ディ
    セーブル制御レジスタにおけるビットを、前記マッチン
    グ機構をディセーブルする値に書き、しかる後、前記ミ
    リコード・ルーチンにおいて、前記センシティブ機能の
    エリアが通過した時、ミリコード・ルーチンが前記プロ
    セッサのブランチ・ヒストリ・テーブルをリイネーブル
    するステップを更に含む請求項1に記載の方法。
  3. 【請求項3】前記のプロセスにおいて、 単一のフリー・ランニング・ブランチ・ヒストリ・テー
    ブルが前記中央プロセッサのための正規モード及びミリ
    モードの両方に対して機能し、 ブランチ・ヒストリ・テーブル・ロジックがグローバル
    BHTディセーブル及びミリコード・ディセーブルの両
    方の制御の下に命令フェッチを指示する、請求項2に記
    載の方法。
  4. 【請求項4】前記のプロセスにおいて、グローバルBH
    Tディセーブル機能及び2つのミリコード・ディセーブ
    ル機能の両方が存在する、請求項2に記載の方法。
  5. 【請求項5】前記のプロセスにおいて、グローバルBH
    Tディセーブルから並びに初期設定された制御レジスタ
    ・ビット及びプロセッサ制御レジスタ・ビットから入力
    を受けるヒット検出ロジックが正しいセット・ターゲッ
    ト情報を選択し、「ブランチ・ヒストリ・テーブル・ヒ
    ット検出」制御信号を発生する、請求項4に記載の方
    法。
  6. 【請求項6】前記のプロセスにおいて、前記プロセッサ
    は命令フェッチを指示する情報を与えるブランチ・ヒス
    トリ・テーブルを有し、 該ブランチ・ヒストリ・テーブルはターゲット命令スト
    リームが命令デコードにとって使用可能であることを予
    測するために非同期的態様で機能し、 命令テキストがプロセッサの実行エレメントに命令を供
    給し、 前記ブランチ・ヒストリ・テーブルは、ブランチ・ヒス
    トリ・テーブル・アレイのサーチ手段に開始アドレスを
    供給し、可能なブランチ命令をサーチするためにブラン
    チ・ヒストリ・テーブルの設計によって選択された量だ
    けインクリメントする、 請求項5に記載の方法。
  7. 【請求項7】命令がフェッチされるべき時を制御するた
    めにブランチ・ヒストリ・テーブル並びに正規モードの
    オペレーション及びミリモードのオペレーションを有す
    るコンピュータにおいて使用するための方法にして、 生じ得るキャッシュ機能のタイプの制御を必要とするシ
    ステム・オペレーションをミリモードで実行し、命令フ
    ェッチがミリモード制御の下に生じ得る時、ブランチ・
    ヒストリ・テーブル・アクションを制御するために使用
    される2つのプロセスを含むステップと、 特定のミリコード・シーケンスが呼び出されることによ
    って前記2つのプロセスのうちのどちらが使用されるか
    を決定するステップと、 特定のミリコード・シーケンスへのエントリ時に、前記
    ミリコード制御レジスタの1つにおける1つのビット
    は、それが1の値に初期設定された時、前記ブランチ・
    ヒストリ・テーブルのマッチング機構がディセーブルさ
    れるという結果を生じさせ、これらのエントリのターゲ
    ットのそれ以上の命令フェッチが行われない場合に所望
    の値に前記ミリコード制御レジスタを初期設定するステ
    ップと、 を含み、その後、前記ミリコード・シーケンスが前記ミ
    リコード・シーケンスのルーチンのセンシティブな部分
    を通過した後、ミリコードがこの制御ビットをオフに
    し、ブランチ・ヒストリ・テーブル機能をリイネーブル
    する、方法。
  8. 【請求項8】命令がフェッチされるべき時を制御するた
    めにブランチ・ヒストリ・テーブル並びに正規モードの
    オペレーション及びミリモードのオペレーションを有す
    るコンピュータにおいて使用するための方法にして、 前記ブランチ・ヒストリ・テーブルがミリコード・ルー
    チンへのエントリ時にアクティブである場合、センシテ
    ィブな機能のエリアが近づくにつれて、ミリコードがプ
    ロセッサ・ディセーブル制御レジスタにおけるビット
    を、マッチング機構をディセーブルする値に書き、しか
    る後、前記ミリコード・ルーチンにおいて、センシティ
    ブ機能のエリアが通過した時、ミリコード・ルーチンは
    前記プロセッサのブランチ・ヒストリ・テーブルをリイ
    ネーブルするステップを含む、方法。
JP11053699A 1998-04-30 1999-04-19 ブランチ・ヒストリ・テーブル・ディセーブルによるミリモード制御方法 Expired - Fee Related JP3234815B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/070,362 US6108776A (en) 1998-04-30 1998-04-30 Globally or selectively disabling branch history table operations during sensitive portion of millicode routine in millimode supporting computer
US09/070362 1998-04-30

Publications (2)

Publication Number Publication Date
JP2000112753A JP2000112753A (ja) 2000-04-21
JP3234815B2 true JP3234815B2 (ja) 2001-12-04

Family

ID=22094842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11053699A Expired - Fee Related JP3234815B2 (ja) 1998-04-30 1999-04-19 ブランチ・ヒストリ・テーブル・ディセーブルによるミリモード制御方法

Country Status (2)

Country Link
US (1) US6108776A (ja)
JP (1) JP3234815B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3961619B2 (ja) * 1997-06-03 2007-08-22 株式会社東芝 コンピュータシステムおよびその処理速度制御方法
US6745323B1 (en) * 2000-08-03 2004-06-01 International Business Machines Corporation Global history vector recovery circuits and methods and systems using the same
US7140003B2 (en) * 2003-02-14 2006-11-21 International Business Machines Corporation Method and system for specifying sets of instructions for selection by an instruction generator
US20040181654A1 (en) * 2003-03-11 2004-09-16 Chung-Hui Chen Low power branch prediction target buffer
US7093111B2 (en) * 2003-07-31 2006-08-15 International Business Machines Corporation Recovery of global history vector in the event of a non-branch flush
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
US7793078B2 (en) * 2005-04-01 2010-09-07 Arm Limited Multiple instruction set data processing system with conditional branch instructions of a first instruction set and a second instruction set sharing a same instruction encoding
US9009452B2 (en) * 2007-05-14 2015-04-14 International Business Machines Corporation Computing system with transactional memory using millicode assists
US8433855B2 (en) * 2008-02-15 2013-04-30 International Business Machines Corporation Serializing translation lookaside buffer access around address translation parameter modification
US7873818B2 (en) * 2008-02-22 2011-01-18 International Business Machines Corporation System and method for search area confined branch prediction
US9032191B2 (en) 2012-01-23 2015-05-12 International Business Machines Corporation Virtualization support for branch prediction logic enable / disable at hypervisor and guest operating system levels
US8935694B2 (en) 2012-01-23 2015-01-13 International Business Machines Corporation System and method for selectively saving and restoring state of branch prediction logic through separate hypervisor-mode and guest-mode and/or user-mode instructions
US9996351B2 (en) 2016-05-26 2018-06-12 International Business Machines Corporation Power management of branch predictors in a computer processor

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5228131A (en) * 1988-02-24 1993-07-13 Mitsubishi Denki Kabushiki Kaisha Data processor with selectively enabled and disabled branch prediction operation
US5276882A (en) * 1990-07-27 1994-01-04 International Business Machines Corp. Subroutine return through branch history table
US5345567A (en) * 1991-06-10 1994-09-06 International Business Machines Corporation System and method for modifying program status word system mask, system access key, and address space code with overlap enabled
US5634119A (en) * 1995-01-06 1997-05-27 International Business Machines Corporation Computer processing unit employing a separate millicode branch history table
US5694617A (en) * 1995-03-31 1997-12-02 International Business Machines Corporation System for prioritizing quiesce requests and recovering from a quiescent state in a multiprocessing system with a milli-mode operation

Also Published As

Publication number Publication date
JP2000112753A (ja) 2000-04-21
US6108776A (en) 2000-08-22

Similar Documents

Publication Publication Date Title
JP2810211B2 (ja) データプロセッサの命令処理システム
US6049672A (en) Microprocessor with circuits, systems, and methods for operating with patch micro-operation codes and patch microinstruction codes stored in multi-purpose memory structure
US8171260B2 (en) Fetching all or portion of instructions in memory line up to branch instruction based on branch prediction and size indicator stored in branch target buffer indexed by fetch address
US5950012A (en) Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
EP0495165B1 (en) Overlapped serialization
US5142634A (en) Branch prediction
US5826074A (en) Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
JP2846406B2 (ja) 分岐処理方法及び分岐処理装置
US6581151B2 (en) Apparatus and method for speculatively forwarding storehit data based on physical page index compare
US5640503A (en) Method and apparatus for verifying a target instruction before execution of the target instruction using a test operation instruction which identifies the target instruction
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
JP3234815B2 (ja) ブランチ・ヒストリ・テーブル・ディセーブルによるミリモード制御方法
US6081887A (en) System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction
JPH10198563A (ja) マイクロプロセッサ内の動的にロード可能なパターン履歴表
CN108780397B (zh) 程序循环控制
US11429392B2 (en) Secure predictors for speculative execution
US20070118696A1 (en) Register tracking for speculative prefetching
JP3234816B2 (ja) ブランチ・ヒストリ・テーブル・ディセーブルを有するミリモード・システム
JP2000172507A (ja) 命令フェッチ制御装置
US6742112B1 (en) Lookahead register value tracking
US20110179255A1 (en) Data processing reset operations
EP0550289A2 (en) A mechanism to detect stores into the instruction stream
US5625808A (en) Read only store as part of cache store for storing frequently used millicode instructions
US6088792A (en) Avoiding processor serialization after an S/390 SPKA instruction
EP0550287A2 (en) Computer system having high performance processing for program status word (PSW) key-setting instructions

Legal Events

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