JPH09128249A - プロセッサが拡張したシステム管理モードを実現するコンピュータシステム - Google Patents
プロセッサが拡張したシステム管理モードを実現するコンピュータシステムInfo
- Publication number
- JPH09128249A JPH09128249A JP8268505A JP26850596A JPH09128249A JP H09128249 A JPH09128249 A JP H09128249A JP 8268505 A JP8268505 A JP 8268505A JP 26850596 A JP26850596 A JP 26850596A JP H09128249 A JPH09128249 A JP H09128249A
- Authority
- JP
- Japan
- Prior art keywords
- smi
- smm
- processor
- routine
- vsa
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
ポートする拡張システム管理モード(SMM)を用いる
コンピュータシステム。 【解決手段】SMMはシステム管理割り込み(SMI)
イベントを扱うためのSMIのネスティングを含む。拡
張SMMは、例えばグラフィックス及び/又はオーディ
オ機能のための周辺ハードウェアが仮想化される(SM
Iルーチンによってシミュレートされる)仮想システム
アーキテクチャ(VSA)をサポートするために、コン
ピュータシステムにおいて実現される。仮想化をサポー
トする特徴は、(a)SMIネスティング、(b)メモ
リ(I/Oと同様)アクセスのためのSMIトラッピン
グ、(c)VSA/SMIヘッダーおよびVSA/SM
Mソフトウェアの双方をキャッシングすること、および
(d)プログラム可能な位置で多重SMIヘッダーをス
トアするためのSMM領域を形成することを有する。
Description
タシステム、特に、プロセッサがSMIイベントのネス
ティングを伴う拡張されたシステム管理モードを実現す
るコンピュータシステムに関する。典型的な実施の形態
において、本発明は、ハードウェアの周辺機器機能(例
えばVGA及び音声カード機能)の(ソフトウェアにお
いて)仮想化をサポートする拡張されたシステム管理モ
ードを用いるx86プロセッサにおいて具現化される。
互接続バス(例えば、PCIやISA)に結合された周
辺機器のインターフェース論理回路(例えば、周辺機器
の声誉装置或いはインターフェースカード)と共に、プ
ロセッサのバスに相互結合された、プロセッサおよびメ
モリサブシステムを含む。プロセッサと周辺機器の相互
接続バス間のシステム制御およびデータパスの相互接続
機能はシステム(チップセット)論理回路によって達成
される。x86プロセッサアーキテクチャに基づいたコ
ンピュータシステムは、オペレーティング・システムお
よびアプリケーション・ソフトウェアに透明な(transpa
rent) 方法で呼びだされるシステム管理モード(SM
M)を代表的にサポートする。SMMは、システムロジ
ックによって表明され得る、高い優先順位のシステム割
り込みを提供し、プロセッサによる幾つかの具現化にお
いて、応答では、マシン状態の少なくとも一部が保存さ
れ、SMMハンドラーは割り込みをサービスするために
用いられる。SMMの使用例は、周辺機器の透明な停止
およぼ再開の様な、電力管理用である。
背景情報は、発明がアプリケーション:プロセッサによ
って実行されるソフトウェアにいて、ある周辺機器のイ
ンターフェース機能を仮想化することによって、コンピ
ュータシステムハードウェアの複雑性およびコストを減
少する、を有する特定の問題のコンテキストにおいて与
えられる。関連したアプリケーション(1)と(2)
は、システムの母板上の周辺機器のインターフェースロ
ジックによって通常達成される、プロセッサの選択され
た周辺機器のインターフェース機能において、仮想化す
る(同化する)ことによってコンピュータシステムの複
雑性およびコストを減少するために、仮想システム(或
いはサブシステム)アーキテクチャ(VSA)を含むプ
ロセッサおよびコンピュータシステムに向けられる。関
連アプリケーンションにおいて述べられた典型的な実施
の形態はグラフィックスおよび音声の周辺のハードウェ
ア機能のためのVSA仮想化である。
要な統合的特徴は、VSAハードウェーアの仮想化ソフ
トウェアをもたらすために、通常のプロセッサの実行を
透明的に横取りするメカニズム(preemptive mechnism)
である。おそらく、このような横取りするメカニズム
は、通常のプログラムの実行を、透明的に割り込むため
の高い優先度システムのトラッピング/割り込みメカニ
ズムとして実現される。アクセス・トラッピングは通常
のプロセッサの実行と同期している。VSAの仮想化さ
れたハードウェア機能(例えば、グラフィックス又はオ
ーディオ)へのアクセスはトラップされ、VSAソフト
ウェアが関連したVSAルーチンを処理するために呼び
出される。対照的に、割り込みは、通常のプロセッサの
実行と同期的していない。周辺のハードウェアは、(オ
ーディオデータが連続的に引き取られるオーディオFI
FOバッファのような)サービスを要求する。周辺ハー
ドウェアは、割り込みが発生されるようにし、VSAソ
フトウェアは、先ず割り込みのソースを決定し、適切な
VSAルーチンを呼び出す。
仮想化されるなら、一般にVSAソフトウェア、および
特に横取りのメカニズムは、平行のトラピング/割り込
みイベント間で優先化する必要があるであろう。例え
ば、VSAグラフッィクス仮想化ルーチンの間に、オー
ディオハードウェア(例えば、FIFOバッファ)はV
SAオーディオ仮想ルーチンからの高度の優先サービス
を要求することができる。更に、それは、VSA仮想化
中に、低い優先度の割り込み機能(例えば、タイマー)
をサービスすることを可能にするために要求することが
できる。通常の割り込みメカニズムはVSA横取りメカ
ニズムに対して有利ではない。例えば、マスクすること
ができない割り込み(nonmaskable interrupts: NMI)は
高い優先度であるという利点があるが、同期するトラッ
ピングを容易にサポートしない。
プロセッサの何れかによって表明される高い優先度のシ
ステム割り込みを提供し、トラッピングに適応できる。
例えば、SMMの電力管理アプリケーションにおいて、
周辺機器に割当られたI/Oアドレスへのアクセスがト
ラップされ、SMMハンドラーが周辺機器がパワーダウ
ンされたかどうかをテストするために呼び出される--も
し、そうなら、周辺機器はパワーアップされ、プロセッ
サ状態はI/O命令の開始に対して変更される。従っ
て、SMMは、システム機能を扱う目的のために、通常
のプログラム実行の透明な横取りに対して設計される。
SMMを伴う問題は、今実行されると、それはSMIイ
ベントのネスティングをサポートしないことである。1
つのSMMの実行において、もし第2のSMIイベント
が第1のSMIイベントの処理中に発生すると、第2の
SMIイベントはラッチされ、通常の処理が第1のSM
Iイベントから回復した後に処理される−第1SMIの
ハンドリングルーチンは、2つのイベントの相対的な優
先度に関係なく第2のSMIイベントを扱うために割り
込まれない。
れらがI/Oトラッピングをサポートしている間、それ
らはメモリマップされたアクセスに対してトラッピング
をサポートしない。グラフッィクスの周辺カードはビデ
オフレームバッファ(また、時には制御レジスタ)のた
めにメモリマッピングを用いる−両立性の理由のため
に、I/Oマッピングは、ビデオ制御レジスタのために
まだ一般的に用いられる(例えば、ビデオタイミング、
カーソル制御、カラーパレット、およびグラフッィクス
モードのために)。現在のSMMの実行に伴う他の問題
は、それらがハードウェアの仮想化をサポートするには
あまりにも遅すぎることである。SMIハンドリング
は、プロセッサ状態をセーブし、SMIハンドリングル
ーチンを呼出し、SMIルーチンを処理し、且つ通常の
処理を再開する前にプロセッサ状態を復元することを要
求する。周辺のインターフェースハードウェアによって
実行される代表的な周辺のインターフェース機能が約1
−2マイクロセカンドかかるけれども、現在のSMMの
実行において、このプロセスは約6−10マイクロセカ
ンドかかる。
リング動作によって必然的に変更されるプロセッサ状態
のその部分のみをセーブすることによってSMM動作を
早くする拡張されたSMMの実行を開示している。−も
し、特別のSMIハンドリングルーチンがプロセッサ状
態の他の部分を変更するならば、SMIハンドリングル
ーチンはプロセッサ状態の他の部分をセーブする(特定
のSMM命令がその目的のために与えられる)。この技
術は、セーブされ、復元されなければならないプロセッ
サ状態の情報を最小にし、それによりSMMモードへの
入口およびSMMモードからの出口に関連したオーバー
ヘッド/待ち時間を減らす。SMM性能を増大するため
に用いられている他の技術は、キャッシュすることがで
きるSMMスペースの一部を作ることである。特に、1
つのSMM実行において、SMMハンドラーは、SMM
ハンドラー情報(プロセッサ状態を含む)をストアする
ために、(キャッシュすることができない)SMMスペ
ースを用い、キャッシュすることができるメモリの他の
領域へジャンプする。従って、SMMのオーバーヘッド
が減少されないけれど(即ち、復元されなければならな
いプロセッサ状態情報はキャッシュされない)、SMM
ハンドラーの性能はキャッシィングによって増大され
る。
フェース機能が、仮想システムアーキテクチャをサポー
トするために拡張されたシステム管理モードを備えるこ
とによって、プロセッサにおいて仮想化されるコンピュ
ータシステムの設計を容易にすることである。本発明の
この、および他の目的は、SMIネスティングを含む拡
張されたシステム管理モード(system management mod
e: SMM)によって達成される。拡張されたSMMはプロ
セッサおよびメモリを含むコンピュータシステムにおい
て実現される。ここで、プロセッサは、システム管理割
り込み(system management interrupt: SMI)イベントを
信号化するSMIメカニズムを含む処理のシステム管理
モードをサポートする。
SMMは、複数のSMIイベントの各々、対応するSM
Iルーチンを有する再入可能なSMMソフトウェアハン
ドウラーを有する。SMM領域はシステムメモリにおい
て定義され、SMIコンテクストのセグメントとSMM
ハンドラーのためのセグメントを含む。SMMロジック
は、SMI割り込みを認識し、対応するSMIルーチン
を処理するためにSMMハンドラーを選択的に呼び出
す。第1のSMIイベントに対して、SMMロジック
は、第1の選択されたプロセッサの状態情報をSMIコ
ンテクストセグメントにストアし、対応する第1のSM
Iルーチンを処理するためにSMMハンドラーを呼び出
す。第1のSMIルーチンの処理中に生じる第2のSM
Iイベントに対して、SMMロジックは、第1の選択さ
れたプロセッサの状態情報を維持し続けている間、第2
の選択されたプロセッサ状態情報をSMIコンテクスト
セグメントにストアし、且つ対応する第2のSMIルー
チンを処理するために、SMMハンドラーを再入する。
を完了すると、SMMロジックは、第2の選択されたプ
ロセッサの状態情報を再ストアし、横取りされた第1の
SMIルーチンを再開する。本発明の他の特徴におい
て、SMIセグメントは、各SMIイベントが対応する
選択されたプロセッサ状態情報をストアするための対応
ロケーションに割付けられる準スタック(quasi-stack)
として実行される。従って、第1の選択されたプロセッ
サの状態情報が第1のロケーションにストアされ、そし
て第1のロケーションに維持されている第1の選択され
たプロセッサの状態情報と一緒に、第2の選択されたプ
ロセッサの状態情報が第2のロケーションにストアされ
る。本発明の他の特徴において、SMIロジックは、次
のSMIイベントに応答して選択されたプロセッサの状
態情報をストアするための、次のロケーションのための
アドレスポインターをストアするレジスタを含む。
ラーはキャッシュ可能である。典型的な実施の形態で
は、SMIヘッダーとSMIハンドラーの双方がキャッ
シュ可能である。本発明の他の特徴において、SMIイ
ベントはプロセッサ内或いは外の何れかで発生される。
本発明の他の特徴において、メモリのメモリマップされ
た領域へのアクセスに応答して発生される。本発明の実
施の形態は、以下の技術的利点の1つ以上を実現するた
めに具現化される。拡張されたシステム管理モードは、
例えば、周辺のインターフェース機能の仮想化をサポー
トするために、SMIネスティングを実行する。SMI
ネスティングを含む、SMMモードは、例えば、グラフ
ィックス機能の仮想化をサポートするために、メモリマ
ップされたアクセスに応答して、信号されたSMIによ
って呼び出すことができる。SMIヘッダー/コンテク
スト情報および再入可能なVSAソフトウェアを含むS
MM領域は、性能を増大(即ち、スループットの増大及
びオーバーヘッド/待ち時間の減少)するためにキャッ
シュ可能なシステムメモリにマップされる。SMIヘッ
ダーのロケーション/ポインターおよびSMMメモリ領
域の上部と下部(top and bottom) はSMIヘッダーを
セーブするとことに関連した待ち時間を減少するため
に、それにより、SMIイベントをサービスするための
VSAソフトウェアへのエントリーを早くするために、
マイクロコードによって予め計算され、SMHRレジス
タは、マイクロコードおよびVSAソフトウェア間のイ
ンターフェースを与えるために用いられる−ネスティン
グがイネーブルさると、VSAソフトウェアは、次のS
MIイベントのために用いられるべきSMIヘッダーの
ロケーションのアドレスを与えるためにSMHRレジス
タを更新し、このアドレスは、ネストされたSMIイベ
ントに応答してSMIヘッダーをセーブすることに、マ
イクロコードによって用いられる。
た更なる特徴および利点のために、添付された図面と共
に、本発明の典型的な実施の形態の詳細な説明がなさ
れ、本発明は、請求項の範囲内にあるあらゆる変更或い
は代替物を包含することが理解されるであろう。
ステム管理モード(SMM)の典型的な実施の形態の詳
細な記載は以下のように行われる。 1.コンピュータシステム 2.仮想システムアーキテクチャ 2.1.VSAグラフィックスの仮想化 2.2.VSAオーディオの仮想化 3.拡張されたSMM 3.1.SMMの構成 3.1.1.SMMヘッダー 3.1.2.SMHRレジスタ 3.2.SMMネスティング 3.2.1.コンテクスト・スタック 3.2.2.コンテクスト・スタック管理 3.2.3.ネスト/モード・ビット 3.3.SMMキャッシング 4.むすび
グは参照の便宜のためのみに、この詳細な説明において
用いられる。典型的な拡張SMMは、x86命令セット
アーキテクチャに基づいた統合された処理装置を用い、
メモリ制御装置、ディスプレイ制御装置、L2キャッシ
ュ制御装置、及びPCI周辺バス制御装置を内蔵するコ
ンピュータシステムに関して記載されている。プロセッ
サは、同時の仮想化されたグラフッィクス及び/又はオ
ーディオ機能に関連したネストされたSMIイベントを
サポートするために拡張SMMを用いて、グラフッィク
スおよびオーディオ周辺インターフェース機能を仮想化
するために仮想システムアーキテクチャを実現する。プ
ロセッサおよびプロセッサシステムの従来、および既知
の特徴の詳細な説明は、本発明の記載を不明瞭にしない
ように省略される。特に、この分野における従事者は、
(a)一般にx86命令セットのアーキテクチャに特有
の用語および特に、従来のシステム管理モード(例え
ば、レジスタ名、信号の命名法(signal nomenclature)
、アドレスモード、ピンアウトの定義(pinout definit
ion) 等)及び(b)このプロセッサと関連したコンピ
ュータシステムの基本的な設計及び動作に熟知してい
る。
号の補集合を示すのに対し、#シンボルはアクティブロ
ー(active low)の信号を示す。用語“仮想化する(virtu
alize)" は、ハードウェア装置或いはサブシステムを除
くようにアプリケーションプログラムの通常処理の間に
生じるハードウェア或いはサブシステムの特性或いは機
能をシミュレートすることを意味している。 1.コンピュータシステム 図1は、本発明の原理に従って実施される、典型的なシ
ステム(しかしこれに限らない)を示す。システム回路
板11(別名、母板(motherboard))は、好ましくはCP
U10、システムメモリ36、RAMDAC/ 薄膜トランジス
タ・ディスプレイ・パネル・インターフェース40、L
2キャッシュ44、およびチップセット倫理回路49を
一緒に結合するバスを有する。マイクロソフト・ウイン
ドウズ(登録商標)のようなマルチタスク・オペレーテ
ィングシステム・プログラムは、好ましくは一次動作を
管理するためにCPU上で実行する。
ニット:内部バス制御装置12、CPUコア14、L1
(レベル1)キャッシュ18−その部分はスクラッチパ
ッド・メモリ、メモリ制御装置28、浮動小数点装置
(FPU)16、ディスプレイ制御装置20、内部SM
I発生器21、グラフィックス・パイプライン(別名、
グラフィックス・アクセレレータ(graphics accelerato
r)) 22、L2(レベル2)キャッシュ制御装置24、
およびPCI−バス制御装置26として区別できる。バ
ス制御装置12、CPUコア14、FPU16、L1キ
ャッシュ18、およびグラフィックス・パイプライン2
2は、(CPU10に関して)内部のC−バス30を介
して一緒に結合されるが、その正確な構成は本発明の理
解のためには必要ない。バス制御装置12、ディスプレ
イ制御装置20、グラフッィクスパイプライン22、L
2キャッシュ制御装置24、PCI−バス制御装置2
6、およびメモリ制御装置28は(CPU10に関し
て)内部のX−バス32を介して一緒に結合される。
は、本発明の理解のためには必要でない。独立したCお
よびXバス30と32は、例えば、CPUコア14、F
PU16、およびL1キャッシュ18はCPU10のリ
マインダーから実質的に自律して動作することができる
ので、また他のアクティビティ(activities)(例えば、
PCI−バス転送、L2キャッシュ転送、およびグラフ
ィックス更新)は独立して行われるので、CPU10内
のこれらの機能的装置を減結合する。更に詳細には、C
−バス30は充分なバンド幅を有しており、CPUコア
14が関係のない動作を行っている間、グラフィックス
・パイプライン22がスラッチパッド・メモリにアクセ
スすることを可能にする。好適な実施の形態におけるC
PUコア14は6ステージの実行パイプラインである。
典型的な実行パイプラインは、以下のステージを含む。
ァへフェッチされる、 ID命令デコード--デコードおよびスコアボードチェッ
ク、 AC1アドレス計算--メモリ参照のためのリニアアドレ
ス計算、 AC2オペランドアクセス--キャッシュおよびレジスタ
ファイルアクセスと同様、物理的なアドレス翻訳、 EX 実行--命令実行、および WB ライトバック--レジスタファイルおよび書き込み
バッファに書かれた実行結果。
識を有するものは、本発明の範囲から逸脱することな
く、パイプライン用の他の数のステージおよびCPUの
ための他の構成を認識するであろう。L1キャッシュ1
8は、好ましくは、しかしこれに限らないが、ライトス
ルー(write-through) 或いはライトバック(write-back)
モードの何れかにおいて動作する16kバイトの統一さ
れたデータ/命令キャッシュである。L1キャッシュ1
8のエリアは、CPUコア14の構成制御レジスタ(図
示せず)を介してスクラッチパッドメモリとして、プロ
グラム可能に区分される。L1キャッシュ18における
スクラッチパッド制御回路は、スクラッチパッドメモリ
のデータにアクセスするために、CPUコア14或いは
グラフィックスパイプライン22の何れかによって用い
られるデータポインターを含む。このスクラッチパッド
メモリもCPUコア14によって直接アドレスされる。
典型的な、しかしこれに限らないが、スクラッチパッド
メモリのための使用はグラフィックスパイプライン22
による使用のためのビットバッファとしてである。特
に、データがディスプレイ42上に移動されると、デー
タの、ラスタライン(走査ライン)或いはその一部が、
直接マップされたフレームバッファ35(好ましくは、
システムメモリ36における)から読み取られ、L1キ
ャッシュ18から区分されたブリットバッファ(blit bu
ffer) へ書き込まれ、且つ直接マップされたフレームバ
ッファ35の他の領域から読みだしたり、他の領域へ書
き込んだりされる。CPUコア14によって実行される
プログラムはブリットバッファへデータを直接入れるこ
ともでき、グラフッィクスパイプライン22に直接マッ
プされたフレームバッファ35において、自律的に読み
出したり、入れたりさせる。
的なアプリケーションと共に、好適なL1キャッシュ1
8は、本発明の出願人に譲渡され、1995年6月5日
に出願された“Partionable Cache"(米国特許出願番号
08/464,921) に記載されている。しかし、L1キャッシ
ュ18は、本発明の範囲から逸脱することなく、サイズ
を大きくしたり、小さくしたりしてもよく、或いはハー
ワード "スプリット(split)"アーキテクチャを有しても
よいことが理解されるべきである。また、スクラッチパ
ッドメモリは、本発明の範囲から逸脱することなく、L
1キャッシュ18に対して別のメモリでもよい。グラフ
ィックスパイプライン22は、スクラッチパッドメモリ
(ブリットバッファ)からVGAフレームバッファ3
3、及び好適な実施の形態においてシステムメモリ36
の一部として存する直接マップされたフレームバッファ
メモリ35へデータのブロック移動を早くする専用のバ
ス34を介してメモリ制御装置に結合される。この直接
マップされたフレームバッファメモリ35は、通常アド
レス発生に関連する保護及び特別のチェックを避けて、
ベースアドレスを生成するメモリ制御装置28、および
オフセットを生成するグラフッィクスパイプライン22
を介してアドレスされる。
は、i)要求されるソースデータの形式、もし、あるなら
フレームバッファ、或いはブリットバッファ; ii)要求
される宛て先データの形式、もし、あるならフレームバ
ッファ、或いはブリットバッファ;iii)グラフッィクス
パイプライン22がデータを書き込む場合、直接マップ
されたフレームバッファ、或いはシステムメモリ;及び
iv)ソース拡張フラッグを特定する、CPUコア14に
おける制御レジスタ(図示せず)に書き込むことによっ
て開始される。ソースがシステムメモリ36にあるイメ
ージであると、データは、BitBlt動作を開始する前に、
システムメモリ36からブリットバッファへロードされ
る。グラフィックスパイプライン22がシステムメモリ
36に渡すと、宛て先データもブリットバッファヘロー
ドされる。
びX−バス32のそれぞれの間での転送を調整し、優先
度を決める。メモリ制御装置28は、主システムメモリ
36を制御し、且つ内部バス制御装置と協同して、キャ
ッシュ能力を決定し、全てのDMAサイクルがL1キャ
ッシュ18及びL2キャッシュ44を自動的にスヌープ
(snoop) することを許す。FPU16は浮動少数点動作
を行う。速いリンク38を介してメモリ制御装置28へ
結合されるディスプレイ制御装置20は、直接マップさ
れたフレームバッファメモリ35からのイメージを取戻
し、もし必要なら、カラールックアップを行い、カーソ
ル及びアイコンのオーバレイをビクセル・データ・スト
リームに挿入し、タイミングを発生し、且つ順次ディス
プレイ42を駆動する RAMDAC/薄膜トランジスタ(TF
T)インターフェース40へ出力のためのピクセルデー
タを構成する。
制御装置26は、(CPU10に関して)“オフチップ
(off-chip)”L2キャッシュ44に対して、中でも、高
速度インターフェースを集合的に与える。好適な、しか
しこれに限らない、L2キャッシュインターフェースが
本発明の出願人に譲渡され:1995年8月31日に出
願された“L2キャッシュインターフェース”(米国特
許出願番号08/522,219) に記載されている。L2キャッ
シュインターフェースのための他の形状は本発明の範囲
から逸脱することなく実施されることが理解されるべき
である。また、L2キャッシュ44が、性能上の理由か
ら同じ物理的データ、アドレス、及び制御ラインを共有
する間、クロック速度および通信プロトコルはPCIプ
ロトコルに必ずしも関係ない。L2キャッシュ44への
データアクセスは他の"PCIのような" PCI−バス48
のアクセスと共に相互に排他的であるが、PCI−バス
への書き込みはキャッシュタグおよび制御論理回路46
へアクセスし、ヒット上のタグを無効にする。
(hit/miss)が発生したどうかを決定するキャッシュ・タ
グおよび制御論理回路46は、外部のチップセット論理
回路49におけるデータ・キャッシュ44から分離して
設けられている。この分野の通常の知識を有するもの
は、本発明の範囲を逸脱することなく、例えば、しかし
これに限定されない、CPU10上の集積回路のよう
な、キャッシュ・タグおよび制御論理回路46に対する
他の形状および配列を認識するであろう。SMI発生器
21はCPUコア14から第1の入力、内部バス制御装
置12から第2の入力、および好ましくは、チップセッ
ト論理回路49からCPU10の外部にあるソースから
第3の入力(XSMI)を受取る。チップセット論理回
路49はPCI−バス46に結合され、好ましくは、入
来するデータおよび出ていくデータを受信するためのF
IFOバッファ及び所与のバッファの一杯を表示するイ
ンジケータ(しかしこれに限定されない、)を含むイン
ターフェースロジックを有している。チップセット論理
回路49も、好ましくはCPU10外の所定のイベント
の発生を検出及び表示するために、比較器及び他のトラ
ップ回路を含む。 2.仮想システムアーキテクチャ(VSA) 図1を参照すると、典型的なコンピュータシステム11
は、周辺のハードウエア機能が、VSAソフトウェアを
用いて仮想化される仮想システムアーキテクチャを実現
している。VSA仮想化は、周辺アプリケーションをサ
ポートするために必要な周辺のインターフェース・ハー
ドウェアを減少して、グラフッィクスおよびオーディオ
機能にために用いられる。
ィクスの仮想化のためのVSAの典型的な実施の形態を
記載している。関連アプリケーション(2)は、オーデ
ィオの仮想化のためのVSAの典型的な実施の形態を記
載している。仮想システムアーキテクチャは、ネストさ
れたSMI動作をサポートする拡張されたシステム管理
モードを実現している。VSAソフトウェアは、電力管
理およびシステム割り込みのような、非仮想SMIイベ
ントをサービスするためのたのSMIルーチンばかりで
なく、グラフィックス及びオーディオの仮想ルーチンを
含むSMMハンドラーを有する。VSAソフトウェア
は、プロセッサ10へ内部的に、或いは外部的に信号さ
れたSMI割り込みに応答して呼び出される。内部のS
MIイベントは、外部のSMIイベントがチップセット
49によって信号される間にSMI発生器によって信号
される。典型的なVSAの実施に対して、内部的に信号
されたSMIs は、外部的に信号されたSMIs がI/
Oトラップ或いは割り込みの何れかである限り、全てメ
モリマップされた、或いはI/Oトラップである。
SMIが発生される時間にプロセッサ10(CPUコア
14)に利用可能な情報の量にある。内部的に信号され
たSMIs に対して、プロセッサは、処理の透明な再開
を可能にするために関連SMMハンドラールーチンを処
理する前にセーブされなければならないプロセッサの状
態情報に特有のコンテクストばかりでなく、SMIのソ
ース及び/又は特定の原因を利用可能にさせる。外部的
に信号されたSMIs に対して、チップセット49は、
SMIのソースを決定するために、プロセッサによって
読み取られなければならないSMI制御レジスタを含
む。 2.1.VSAグラフッィクスの仮想化 VSAグラフッィクスの仮想化は関連出願(1)に記載
さている。一般に、典型的な実現化に対して、VSAグ
ラフッィクスの仮想化は内部的に信号された、メモリマ
ップされた、およびI/Oアクセストラップによって一
次的に呼び出される。特に、典型的な実施において、S
MIイベントは、(a)メモリマップのグラフィックス
領域へのメモリ書き込みのため、及び(b)I/Oマッ
プされたグラフィックス制御レジスタへのI/Oの読み
取り/書き込みアクセスのために信号される。
ピングが(実行パイプラインのアドレス計算ステージの
間)CPUコア14によって行われ、一方I/Oの読み
取り/書き込みトラッピングはバス制御装置12におい
て実施される--タイミングの考慮のため、メモリマップ
されたアクセスは実行パイプラインにおいて早くトラッ
プされ、外部バス上に出ていくことを許さない。メモリ
マップされた、或いはI/Oトラップに応答して、CP
Uコア或いはバス制御装置は、順次SMI割り込みをC
PUコア14へ信号するSMI発生器21へ、SMIイ
ベントを信号する--SMIに応答して、VSAソフトウ
ェアが呼び出され、それはSMIをサービスするために
適切なVSAグラフッィクス仮想ルーチンを呼ぶ。SM
Mヘッダー情報は、SMIが内部的に信号されたグラフ
ッィクスアクセスであり、メモリマップされた、或いは
I/Oアクセスから生じたSMIであるかどうかを示す
(セクション3.1.1.参照)。
及びI/OトラップのSMIs に加えて、典型的なVS
Aグラフッィクス仮想化が外部的に信号されたSMIs
(例えば、ビデオのタイミングあるいは位置決めするデ
ィスプレイの更新に対して)によって呼び出される。 2.2.VSAオーディオの仮想化 VSAオーディオの仮想化は関連出願(2)に記載され
ている。一般に、典型的なVSAの実現のために、VA
Sオーディオの仮想化は、オーディオインターフェース
ロジックによって発生された外部的に信号されたI/O
アクセストラップおよび割り込みによって呼び出され
る。特に、SMIイベントは、(a)I/Oマップされ
たオーディオ機能或いはハードウェア(例えば、オーデ
ィオレジスタ)へのI/Oアクセス、及び(b)オーデ
ィオFIFOバッファ管理のようなハードウェアインタ
ーフェース機能のために信号される。
ッファのような)オーディオインターフェースも含むチ
ップセット49においてトラップされる。信号された各
SMIイベントに対して、チップセットは外部のSMI
の状態レジスタに対応するSMI識別子コードをストア
する。プロセッサがSMIを取り、VSAソフトウェア
を呼び出すと、SMIの状態レジスタは外部のSMIの
ソースを決めるために読み取られる。
の仮想化をサポートするためにネストされたVSA/S
MIルーチンを可能にする拡張されたシステム管理モー
ドを実現する。従来のSMMの実施に対する他の拡張は
SMIオーバーヘッド/待ち時間を減少することにより
仮想化の性能を改善する。典型的な拡張されたシステム
管理モードに対して、メモリのSMM領域はSMM領域
のベースおよび限界を保持するSMARレジスタを用い
て、従来どうりに定義される。SMM領域は、(a)多
重にネストされたSMIヘッダーをストアするためのヘ
ッダー/コンテクストのスタックセグメント、及び
(b)典型的なVSAグラフッィクス及びVSAオーデ
ィオの仮想化ルーチンのようなVSA/SMIルーチン
を含む再入可能なVSAソフトウェアをストアするため
のVSAソフトウェアセグメントを有する。典型的な拡
張されたシステム管理モードのための特別なSMM特徴
の拡張は:・SMMモードは、I/Oマップされたアク
セスおよび非同期割り込みばかりでなくメモリマップさ
れたアクセスに対して呼び出され、グラフッィクス、オ
ーディオ、及びたの周辺ハードウェア機能における最大
の柔軟性を与える--SMIヘッダーは、メモリ又はI/
Oマップされたアクセスに対して32ビットアドレス及
び32ビットデータをストアする。
MIルーチンを含み、且つ多重ネストされたSMIs に
対して再入可能である。 .SMM領域は、多重ネストされたSMIヘッダーをス
トアするための準スタック配列を伴うヘッダー/コンテ
クストのセグメントを含む。 .新規なSMHRレジスタは、SMM領域のヘッダー/
コンテクストへアドレスポインタを与えるために定義さ
れる--ネスティングがイネーブルされている現在実行し
ているVSA/SMIルーチンに対して、SMHRは、
SMIに応答して、そのルーチンに対するSMIヘッダ
ーをストアするための位置へポインティングする物理的
アドレスをストアする。 ・SMHRレジスタはVSAソフトウェアによって管理
され、VSAソフトウェアとプロセッサのマイクロコー
ド間のハードウェアインターフェースを与える。
少するために、SMIネスティングがイネーブルされる
と、プロセッサのマイクロコードはSMHRを読み取
り、予め計算をして、次のSMIヘッダー位置にための
32ビットポインターアドレスをストアする。 ・SMIヘッダーは、SMI割り込みがグラフィックス
(VGA)アクセスのために内部的に発生されたか否か
を示す。 ・SMIヘッダーは、SMI割り込みがトラップから生
じたか否か、およびそのトラップがメモリ又はI/Oア
クセスから生じたか否かを示す。 ・SMI NESTビットは、SMI割り込みのネステ
ィングを制御するために、制御レジスタに加えられてい
る。
フトウェアを含む、SMM領域はキャッシュ可能なシス
テムメモリ(SMADS#は用いられない)に存する。
図2は従来のSMMハンドラー動作を示す。SMIイベ
ント(101)に応答て、マイクロコードはSMARレ
ジスタを読み取り(105)、SMMスペースの上部と
下部を計算する(106)。SMMヘッダーはSMMス
ペースの上部へセーブされ(107)、そしてSMIヘ
ッダー(110)の実行がSMMスペースの下部で開始
する。SMIハンドラーは、SMIがI/Oトラップ
(112)から生じたかを決定する。もし違えば、SM
Iハンドラーは、非トラップSMI(113)をサービ
スする。もし、周辺装置へのI/OアクセスがSMIを
生じたならば、SMIハンドラーはその装置は電源が落
ちている(114)か否かを決定し、もし落ちているな
ら、周辺装置の電源を入れ、トラップを生じたI/O命
令の再開を可能にするため、状態情報(116)を変更
することを含む、トラップSMIをサービス(115)
をする。トラップSMIのサービスにおいて行われる他
の機能は、周辺装置におけるライトオンリー・レジスタ
(write-only register: 書き込み専用レジスタ) をシャ
ドウイング(shadowing)することを含む。
ビスすること完了すると、それは、SMMハンドラーを
用いてプロセッサ状態をリストアし(118)、通常の
処理を再開するために、プロセッサを通知することによ
って出ていく。図3は、例えば、仮想システムアーキテ
クチャの一部として周辺ハードウェアの仮想化をサポー
トするために、SMIネスティングを含む拡張されたシ
ステム管理モードの動作を一般に示す。SMMエントリ
ーのオーバヘッドを減少することによって性能を改善す
るために、マイクロコードは(SMHRとSMARレジ
スタのコンテクストを用いて)事前計算し、(a)SM
Mメモリ領域のヘッダー/コンテクストのセグメント内
で、SMIヘッダー位置(ロケーション)/ポインタ
(121)、及び(b)SMM領域の上部及び下部をス
トアする。典型的な実施に対して、SMIヘッダーのポ
インタの事前計算はSMHRレジスタにストアされたS
MIヘッダーの位置を32ビットのdword(ダブル
ワード)整列したポインタアドレス(セクション3.
1.2.参照)へ再フォーマットすることを含む。SM
Iイベント(130)に応答して、SMIヘッダーは、
SMHRレジスタによって指示されたSMM領域のヘッ
ダー/コンテクストのセグメント内の位置にセーブされ
(131)、実行がSMM領域の下部でVSAソフトウ
ェアにおいて開始する(132)。プロセッサの状態情
報に依存するあらゆる追加的なコンテクストは、SMI
のソースに基づいて、適切なVSA/SMMルーチン
(例えば、グラフッィクス或いはオーディオの仮想ルー
チン)へ送るVSAソフトウェアによってセーブされる
(133)。VSA/SMMルーチンはSMIイベント
をサービスする(135)。もし適切であるなら、VS
A/SMMルーチンはSMIネスティングをイネーブル
することができる(136)。SMIネスティングをイ
ネーブルするために、VSA/SMIルーチンは、コン
テクストのスタックセグメント内の次のヘッダー位置を
指示するために、先ずSMHRレジスタを更新し(13
7)、次いで、ネスティングをイネーブルする(13
8)。SMIネスティングがイネーブルされると、VS
A/SMIルーチン(135)は、他のSMIイベント
によって割り込まれる。
加えて、以下のSMM構成の特徴を有する。 ・SMI割り込みがグラフィック(VGA)アクセスに
対して内部的に発生されたか否かを示すビット当たりの
SMIヘッダー ・SMIトラップがメモリ又はI/Oアクセスから生じ
るか否かを示すSMIヘッダービット ・メモリ又はI/Oアクセスのための、32ビットアド
レス及び32ビットデータ用のSMIヘッダーフィール
ド ・SMI割り込みのネスティングを制御する制御レジス
タにおけるSMI NESTビット 更に、典型的な仮想システムアーキテクチャは2つの追
加構成を有し、グラフィックスのメモリスペースにおい
てSMI割り込みをプログラム的に制御し、マスクす
る。従来のx86コンピュータシステムにおいて、64
0kから768k(128k)へのシステムメモリ領域
はグラフィックスのためにリザーブされる--この領域は
3つのアドレス範囲:A0000h−AFFFFh(6
4k)、B0000h−B7FFFh(32k)及びB
8000h−BFFFFh(32k)に代表的に分割さ
れる。制御レジスタはこれら3つの範囲においてSMI
割り込みを選択的にイネーブル/ディスエーブルするた
めに用いられる。マスクレジスタは、最初の64kアド
レス範囲A0000h−AFFFFh内の2k領域をデ
ィスエーブスするために用いられる--マスキングの目的
は、ディスプレイされないグラフィックスのメモリをア
クセスする時、SMI割り込みを防ぐることである。こ
の典型的な実施は、マスク領域が開始及び終了アドレス
によって選択的に定義されるようにすることによって完
全なプログラム化のために与えるように拡張することが
できる。 3.1.1.SMIヘッダー 典型的なSMIヘッダーの構成は以下に示される。特
に、I/Oアドレス及びデータフィールドに加えて、メ
モリのアドレスフィールドはメモリマップされた領域へ
のトラップに対して含まれる--これらのイベントは同時
に生じることができないので、メモリデータはI/Oデ
ータを重ねてストアされる。I/OアドレスはIN及び
OUTの双方の命令に対して有効であり、I/Oデータ
はOUTに対してのみ有効である。典型的な実施に対し
て、メモリアドレスは読み取り及び書き込みに対して有
効であり、メモリデータは書き込みのみに有効である。
義するために用いられた以下のビットフィールドを含
む。 C 書き込み可能なコードセグメント I イン(IN)/読み取りに対しては0、アウト(O
UT)/書き込みに対しては1 P REP命令 S SMINT命令 H CPUが停止中のSMI M I/Oに対しては0、メモリに対しては1 X 外部SMIピン V 内部のグラフィックアクセス N SMMモード中のSMI 特に、MとVのフィールドは、XフィールドはSMIが
外部的に信号されたことを示す間、VSAグラフィック
スの仮想ルーチンによってサービスされる内部的に信号
されたSMIを定義するために用いられる。Nフィール
ドは、SMIがネストされたSMIであるか、即ちそれ
はプロセッサがSMMモードにあった間に生じたか、を
示すSMM MODEビットである。プロセッサは、S
MIイベントをサービスすることからの出口でSMM
MODEを用い、SMMモードに留まるか、通常の処理
を開始するかを決定する。
制御レジスタ--SMIネスティングをサポートするため
に用いられるSMHR--を備える。特に、SMHRは、
32ビットの物理的なSMIヘッダーアドレスを特定
し、次のSMIイベントに対するSMIヘッダー位置を
定義するために用いられる。
ット構成レジスタとしてであるあることを留意された
い。各々のタイムSMHRは変更され、マイクロコード
がSMHRレジスタを読み取り、SMHRレジスタによ
って特定されたSMIヘッダー位置を指定する32ビッ
トアドレスを事前計算(リホーマット)し且つストアす
る--SMHRアドレスはdword整列されなければな
らず、下部の2ビットはマイクロコードによって無視さ
れる。図4は、SMIヘッダー/コンテクストのスタッ
クセグメント141及び再入VSAソフトウェアセグメ
ント142を含む典型的なSMM領域140のマッピン
グを示している。従来のSMARレジスタは、SMM領
域に対するコードベースおよび限界をまだ特定してい
る。
トは、VSAソフトウェア(セクション3.2)によっ
て管理される準スタック(quasi-stack) として構成され
る。一般に、SMHRレジスタはSMI Nestingの管理
においてVSAソフトウェアによって更新される--ネス
ティングがVSAソフトウェアによってイネーブルされ
ると、SMHRは次のSMIヘッダー位置を指定するた
めに更新される。SMHRレジスタはSMARの後にセ
ットアップされなければならない。何故ならば、SMA
Rが書き込まれるとき、それは計算されたSMIヘッダ
ーアドレスを重ね書き(overwrite) するからである。
ティングをサポートする。典型的なテスティングスキー
ムは、多重のSMIヘッダおよび関連したコンテクスト
依存性の情報をストアするための準スタック配列を用い
る--この配列はSMIイベントを扱うVSAソフトウェ
アのための再入可能性をサポートする。図4を参照する
と、各ネストされたSMIイベントに対して、対応する
SMIヘッダーは、SMMメモリ領域140のSMIヘ
ッダー/コンテクストセグメント141の所定の位置に
ストアされる。SMIヘッダーの位置はSMHRレジス
タを用いてVSAソフトウェアによって管理される(セ
クション3.2.2.参照)。SMIネスティングはS
MIイベントのダイナミック優先順位を可能にする。拡
張されたシステム管理モードの特徴の特別な利点は、そ
れが、例えば、プロセッサグラフッィクスおよびオーデ
ィオ機能において仮想化するための、周辺ハードウェア
の仮想化の実施において、仮想システムアーキテクチャ
に対して与えるサポートである。
られたダイナミック優先順位は、オーディオFIFOバ
ッファ制御のような、高い優先度の仮想イベントが、グ
ラフィックスの仮想化(或いは電力管理)のための低い
優先度のSMIハンドラーを中断することを可能にす
る。ネスティングは、優先順位の制御を与えるVSA/
SMIルーチン中に、選択的にイネーブル/ディスエー
ブルされる。SMIネスティングの典型的な実施に対し
て、もし内部或いは外部のSMI信号は同時に受信され
るなら、内部のSMIはイベントを失うことをさけるた
めに優先度が与えられる--ネスティングは、高い優先度
の外部的に信号されたSMIイベントが低い優先度の内
部的に信号されたSMIを中断することを可能するよう
に直ちにイネーブルされ得る。
/コンテクスト・スタック・セグメント141は、各S
MIイベントに対して、対応するSMIヘッダーをスト
アする。SMIヘッダーの位置は、イネーブ/ディスエ
ーブルするSMIネスティングに関して、SMHRを更
新することによってVSAソフトウェア142により決
定される。典型的な実施の形態に対して、各SMIイベ
ントは、以下の3つの形式のコンテクスト依存性SMI
情報によって特徴づけられる。 ・SMIヘッダー ・追加のCPU状態情報 ・他のクンテクスト依存性情報 SMIが取られると、SMIヘッダーはマイクロコード
によってアッセンブルされ、VSAソフトウェアを入れ
る前に、SMM領域にセーブされる。VSAソフトウェ
アは、関連するVSA/SMIルーチンが終了したとき
に、どんな追加のコンテクスト依存性情報が、プロセッ
サ情報をストアするためにセーブされなければならない
かを制御する。
後再開するように要求されるプロセッサの状態情報の最
小量を表す。関連出願(3)は、SMIヘッダーにプロ
セッサ状態の一部だけを含むことによって、SMIルー
チンからの早急な入りと出を記載している--特定のSM
M命令は、SMIルーチンがSMIイベントをサービス
する前に、プロセッサ状態の他の部分をSMM領域にセ
ーブすることを可能にするように与えられる。典型的な
拡張されたSMMは、VSAソフトウェアの設計におけ
る最大のフレキシビリティを与えるためにこのアプロー
チを用いる。SMIヘッダーに含まれるプロセッサの状
態情報に加えて、VSAソフトウェアは追加のプロセッ
サ状態及び他のコンテクスト依存性情報(例えば、VS
Aシステムの状態変化)もセーブすることができる。V
SAソフトウェアは、SMIイベントをサービスするた
めの適切なVSA/SMIルーチンにディスパッチする
前にこのプロセッサ状態及び他のコンテクスト依存性情
報をセーブすることによって実行を開始する。
よって実施されたSMIネスティング動作に関して、典
型的なSMIヘッダー/コンテクストセグメント141
の使用を示す。処理状態が示されている。 0 プログラム実行 1 SMIイベント1 2 SMIイベント2 通常のプログラムの実行中、SMIイベントに応答する
ための準備において、マイクロコードはSMIヘッダー
位置0、即ち通常のプログラムの実行に関連したSMI
ヘッダー0に対するSMIヘッダー/コンテクストセグ
メント141内の物理的アドレス、へのポインタを事前
計算する(151)。
ードは、SMIヘッダー0を事前計算された位置0(S
MIネスティングはディエーブルされる)にセーブす
る。VSAソフトウェアは入れられ(155)、選択さ
れた追加のCPU状態とコンテクスト依存性情報はSM
Iヘッダー0に関連したSMIヘッダー/コンテクスト
セグメントの適切な位置にセーブされる(156)。そ
れからVSAソフトウェアはSMI(1)NOソースを
デコードし、SMI(1)をサービスするための適切な
VSA/SMIルーチンへディスパッチする。VSA/
SMIルーチンへディスパッチに依存して、ネステイン
グはエネーブルされることができる(157)。イネー
ブルするネスティングは、(a)SMHRレジスタがS
MI(1)NI関連したヘッダー情報をストアするため
のSMIヘッダー/コンテクストセグメント141の位
置へのポインタに対して先ず更新され(158)、
(b)ネスティングがSMI NESTを表明すること
によってイネーブルされる2つのステップ手順である。
SMHRが更新される(書き込まれる)と、マイクロコ
ードはSMIヘッダー1の位置へのポインタを事前計算
する。
IルーチンがSMI(1)イベントのサービスを終わる
前に、第2のSMI(2)イベントが信号される(16
2)なら、ネスティングがイネーブルされている(15
7)ので、VSA/SMI(1)ルーチンは横取りされ
る。マイクロコードは、SMHRによって指定されたS
MIヘッダー/コンテクストセグメント141の位置へ
SMI(1)に関連したSMIヘッダーをセーブするこ
とによって、SMI(2)に応答する。VSAソフトウ
ェアはリエンターされ、選択された追加のCPU状態及
びコンテクスト依存性情報は、SMIヘッダー1に関連
したSMIヘッダー/コンテクストセグメント141の
適切な位置へセーブされる(166)。それからVSA
ソフトウェアはSMI(2)のソースをデコードし、S
MI(2)をサービスするための適切なVSA/SMI
ルーチンへディスパッチする。
る他のSMIのないSMI(2)のサービスを計算する
ことを仮定すると、VSA/SMI(2)ルーチンは、
もしネスティングがイネーブルされたなら、先ずネステ
ィングをディエーブルすることによって出るであろう
(171)。ネスティングをイネーブルことと同様に、
ネスティングをディスエーブルすることは、(a)ネス
ティングがSMI NESTを表明しないことによって
ディスエーブルされ(173)、(b)SMHRレジス
タが新しいSMI(2)に応答して横取りされたSMI
ヘッダーをストアするためのSMIヘッダー/コンテク
ストセグメント141の位置を指定するために更新(1
73)される2つのステップの手続きである。ネスティ
ングがディスエーブルされると、VSA/SMIルーテ
ィン165はSMIヘッダー1と共にSMIヘッダー/
コンテクストセグメント141にストアされたプロセッ
サの状態およびコンテクスト依存性情報をリストアす
る。この情報がリストアされると、VSA/SMIルー
チンは、マイクロコードへ通る制御で再開動作(17
5)を始める。
クロコードは以下の3つの機能を達成する。 (a)SMIヘッダー1はSMIヘッダー/コンテクス
トセグメントからリストアされ、(b)ネスティングは
SMI NESTを表明することによってイネーブルさ
れ、そして(c)横取りされた処理、この場合VSA/
SMI(1)ルーチン、が再開される(178)。ネス
トされたSMI(165)に対する再開動作(175)
が終わった後、プロセッサは、それがSMI(2)が取
られたときにあった状態へリストアされる--SMIヘッ
ダー1及び関連したCPU状態とコンテクスト依存性情
報はリストアされており(174、176)およびネス
ティングはイネーブルされる(177、それは159に
対応する) 典型的な拡張されたシステム管理モードは隣接するメモ
リにおいて準スタックとしてSMIヘッダー/コンテク
ストセグメントを実施する。代わって、3つの形式のコ
ンテクスト情報に対する分離したアレイ--SMIヘッダ
ー、追加のCPU状態、及びコンテクスト依存性情報--
が用いられる。 3.2.2.コンテクスト・スタック管理 典型的な拡張されたシステム管理モードは、SMIヘッ
ダー/コンテクストセグメント(図4の141)に関し
てSMIネスティングを管理するためのVSAコンテク
スト・タック管理メカニズムを用いる。VSAコンテク
スト・スタック管理はVSAソフトウェア(図4の14
2)及びSMHRレジスタとSMI NESTビットを
用いてプロセッサのマイクロコードによって共同で実施
される。
理は、一般に、実施するSMIネスティングにおいて最
大のフレキシビリティ、特にVSA周辺ハードウェアの
仮想化に対するSMIネスティングを与えるために設計
される。VSAソフトウェアとプロセッサのマイクロコ
ード間のインターフェースはSMHRレジスタによって
与えられる--このレジスタは、VSAソフトウェアによ
って更新され、マイクロコードによって用いられる(し
かし、変更されない)。図5はMSIネスティングのた
めのVSAコンテクスト・スタック管理を含む拡張され
たシステム管理モードを示す。一般に、VSAコンテク
スト・スタック管理およびマイクロコードは、ネスト化
されたSMIs に対して、ネスティングが、 ・ネスト化されたSMIを扱うために、VSAソフトウ
ェアを入れる前にマイクロコードによってディスエーブ
ルされる、 ・プロセッサ状態のリストア後、VSA/SMIルーチ
ンを出て、マイクロコードによってイネーブルされる、
ことを確実にする。
ィングは、(SMIネステイングをイネーブルすること
を少しも含まない)あらゆる時にイネーブルされ/ディ
スエーブルされる。SMIイベントが検出されると(1
80)、マイクロコードはアッセンブルし、SMIヘッ
ダーをSMIヘッダー/コンテクストセグメントにセー
ブする。(SMIイベントの表示ビットを含む)SMI
ヘッダー構成に関してはセクション3.1.1.を、ま
たSMMメモリ領域のSMIヘッダー/コンテクストセ
グンメントに関してはセクション3.2.1.を参照さ
れたい。マイクロコードはVSAソフトウェア(18
3)に入る前にネスティングをディスエーブルする(1
82)。エントリーすると、VSAソフトウェアは選択
さた追加のCPU状態/コンテクスト情報をSMIヘッ
ダー/コンテクストセグメントへセーブする。
ソースを決定するためにデコード及びディスパッチ動作
(188)を行い、そしてそれにより、SMIをサービ
スするためのディスパッチに対してどのVSA/SMI
ルーチンかをを決定する。特に、もし、SMIが内部的
に信号されるなら、SMIヘッダーはディスパッチのた
めの充分な情報を含んでおり、一方、SMIが外部的に
信号されるなら、VSAソフトウェアは、ディスパッチ
前にSMIのソースを決定するために、チップセット論
理回路(図1における49)において、SMI状態レジ
スタを読み取るであろう。典型的なSMIデコード/デ
ィスパッチ・メカニズムは内部的及び外部的に信号され
たSMIs のために分離したテーブルを用い、そして各
々は、SMIイベントフラッグマスク(SMI event flag
masks) 及び関連VSA/SMIルーチンをストアす
る。
ソフトウェアはSMIイベントをサービスするために、
適切なVSA/SMIルーチン(190)へディスパッ
チする。この点で、SMIネツティングがデスエーブル
される(182)ことに留意されたい。VSA/SMI
ルーチン(190)の処理中に、SMIネスティングは
イネーブルされる(191)。もし、特別なSMIイベ
ントが短い時間に扱われるならば、即ちそれが割り込ま
れない、VSA/SMIルーチンはSMIネスティング
をイネーブルすることがない。たとえSMIネスティン
グが初めにイネーブルされるとしても、ある点で、SM
Iネスティングは、一次的にディスエーブルされ、即ち
SMIイベントが終わることをサービスするまで、ディ
スエーブルされる。
に、VSA/SMIルーチンは、先ずSMHRレジスタ
を更新し(192)、それからネスティングをイネーブ
ルする(193)。SMHRレジスタがSMIヘッダー
の位置アドレスと共に更新されると、マイクロコード
は、現在アクティブなVSA/SMIルーチン(19
0)中にSMIイベント(195)を受け取る用意に、
SMIヘッダー/コンテクストスタックないのヘッダー
位置へポインタを事前計算する。もし、VSA/SMI
ルーチン(190)が他のSMIによって横取りされず
にSMIイベントをサービスすることを完了するなら、
それはSMIの扱い動作を終了し、制御はVSAソフト
ウェア(184)へ戻される。VSAソフトウェアは、
通常の処理或いは横取りされたVSA/SMIルーチン
の何れかを再開する用意に、プロセッサ状態を復元す
る。もし、SMIネツティングがイネーブルされる(1
96)なら、ネスティングはディスエーブルされ(19
7)、SMHRは更新される(198)。VSAソフト
ウェアは、SMIヘッダー/コンテクストセグメントか
らのCPU状態および他のコンテクスト依存性情報をリ
ストアし、パスは再開動作を行うマイクロコードへ制御
する。
クストセグメントからのSMIヘッダーをリストアし
(201)、ネツティングをイネーブルする(202)
ことによって割り込まれた処理を再開を果たす。割り込
まれた処理は再開する(203)。SMIネスティング
を管理するためのこの典型的な準スタック配列は重要な
フレキシビリティを与える。SMIネスティング管理へ
の代わりのアプローチはVSAソフトウェア或いはマイ
クロコードの何れかにおいて完全なスタック動作を実施
することを含む。 3.2.3.ネスト/モード・ビット 図6は、SMM NESTおよびSMM MODEビッ
トの状態の移行を示すことにより拡張されたシステム管
理モードの典型的なSMIネスティングの特徴を示す。
部にあると、SMM MODEはクリアし、そしてSM
I NESTはセットされる。第1レベルのSMI割り
込みがプロセッサによって受け取られる(212)と、
マイクロコードはSMI NESTをクリアし、SMM
MODEをセットする--それはSMIヘッダーのSM
M MODE(0)の前の値をセーブし、SMIヘッダ
ーをセーブする。SMI割り込みは、SMHRを更新す
るVSA/SMIルーチンによって再イネーブルされ、
SMI NESTをセットする(213)。SMI N
ESTセット(イネーブルされたネスティング)で、た
とえプロセッサがSMMモードにあっても、第2レベル
(ネストされた)SMIは取られる(214)--応答で
は、マイクロコードはSMI NESTをクリアし、S
MM MODEをセットし、そしてSMIヘッダーにお
けるSMM MODE(1)の前の値をセーブし、SM
Iヘッダーをセーブする。
ディスパッチされた第2レベルのVSA/SMIルーチ
ンSMHRを更新し、SMI NESTをセットする
(215)によってSMI割り込みを再イネーブルする
ことができる。SMIネスティングの他のレベルは、こ
の期間中に発生することができる。第2レベルのVSA
/SMIルーチンがSMIをサービスすることを完了す
ると、VSAソフトウェアはSMI割り込みをディスエ
ーブルするためにSMI NESTをクリアし(21
6)、それからSMHRを更新する。再開動作はマイク
ロコードによって達成される。マイクロコードは、ネス
ティングを再イネーブルするためにSMI NESTを
セットし(217)、SMIヘッダー(この場合、SM
M MODEはセットされる)に基づいてSMM MO
DEをリストアする。処理は第1レベルVSA/SMI
ハンドラーで再開する。
SMIをサービスすることを完了すると、それはSMI
割り込みをディエーブルためにSMI NESTをクリ
アし(218)、SMHRを更新することによって、再
開動作を始めるVSAソフトウェアに戻る。マイクロコ
ードは、SMI NESTをセットし(219)、SM
Iハンドラーに基づいてSMM MODE(0)をリス
トアする(220)プロセッサがSMMモードの外部に
あると、SMM MODEは常にクリアでありSMI
NESTはセットされる。
トウェアを出し入れする場合のオーバヘッド/待ち時間
を減少し、VSA/SMIルーチンを処理する場合のス
ループットを増大することにより、性能を増大するため
にキャッシングを用いる。従来のSMADS#(SMI
アドレスストローブ)は用いられない--代わりに、キャ
ッシュできるシステムメモリの領域がSMMメモリ領域
のために割付される。キャッシュ可能なSMM領域は、
再入可能VSAソフトウェアばかりでなく、SMIハン
ドラー、CPU状態及びたのコンテクスト依存性情報を
含む(図3)。図7はSMM領域をキャッシュ可能なシ
ステムメモリへマップするための典型的なメモリマッピ
ングスキームを示す。このメモリマッピング機能は、バ
ス制御装置12およびメモリ制御装置28(図1も参照
されたい)によって達成される。典型的な32ビットx
86プロセッサ(図1における10)は4Gバイトのア
ドレススペース230を有している。現在のコンピュー
タシステムは4−16Mバイトのシステムメモリ(図1
の36)を備える--システムメモリ(DRAM)の上部は23
1で示される。システムメモリ640K−1Mの領域
は、周辺機器およびBIOS機能のために代表的にリザ
ーブされる--640Kから768Kの128Kの領域は
グラフッィクス(セクション3.1.を参照)メモリ
(VGA)のために代表的にリザーブされ、一方、76
8Kから1Mまでの領域は他の周辺機器およびBIOS
機能のために用いられる。
Mアドレススペース)の上部以上のアドレススペースは
周辺機能をマッピングするために一般に用いられる。例
えば、グラフッィクス周辺機器は、特定のグラフッィク
スレジスタ及び/又は機能を指定するために、このアド
レススペースの一部を用いる。仮想システムアーキテク
チャは、GXメモリマップ領域232を確立するために
上述のDRAMアドレススペースの一部を用いる。典型
的な仮想システムアーキテクチャに対して、GXメモリ
マップ領域は、ビデオフレームバッファおよびSMM領
域を含む。メモリ制御装置28はGXメモリマップ領域
を物理的なメモリへ再マップする。典型的な再マップす
るアプローチはフレームバッファをシステムメモリの上
部へ再マップすることであり、SMM領域を、グラフィ
ックス機能(しかし、この機能のためのVSAによって
必要とされない)に対して通常リザーブされるシステム
メモリの640K−768Kの領域へ再マップすること
である。
与えるために、C−バス(図1の30)からアドレスを
デコードするXマッパー(Xmapper) 235を含む。1
つのこの制御信号--GX MEM--はGXメモリ232
内にあるアドレスを指示するために用いられる。GX
MEMの表明に応答して、メモリ制御装置28は、GX
メモリ領域232内にあるアドレスがフレームバッファ
或いはSMM領域内にあるか否かを決定するために、2
ビットデコードを行う。もし、アドレスがSMM領域内
にあるなら、メモリ制御装置はシステムメモリのSMM
領域233へ再マップすることを行う。図8はSMMメ
モリ領域へのアクセスに関連したキャッシュ制御動作を
示す。もし、バス制御装置がCバスからのアドレスを受
信し(240)、キャッシュミスがキャッシュ(図1の
18)によって信号されるなら、バス制御装置は、キャ
ッシュ・ライン・フィル・サイクル(cache line fill
cycle)がランされるべきであるか否かを決定するために
アドレス(242)をデコードする。
5)内としてアドレスをデコードするなら、それはGX
MEM(246)をメモリ制御装置へ表明する。バス
制御措置およびメモリ制御装置の双方は、アクセスがキ
ャッシュ可能なSMMメモリへ向けられているかを検出
するためにアドレスの2ビットデコードを行う。もしバ
ス制御装置は、アドレスがSMM領域内にあることを決
定するなら、それはキャッシュミス(cache miss)に応答
してキャッシュ可能なラインフィル(cacheable line fi
ll) を示す内部のKEN#(キャッシュイネーブル)信
号を表明する。同時に、メモリ制御装置はSMM領域内
としてアドレスをデコードし、SMM領域233内のア
ドレスへ再マップすることを行う。
述べられたけれども、代替の実施の形態ばかりでなく、
これらの実施の形態のいろいろな変更がこの分野の通常
の知識を有するものに示唆されるであろう。例えば、一
般に、仮想システムアーキテクチャに関して、また特に
グラフッックスおよびオーディオの周辺ハードウェア機
能を仮想化するする拡張されたシステム管理モードの説
明は典型的なもののみである。また、SMIネスティン
グのための特定の実施を含み、SMHRレジスタとして
のこのような構成および制御の特徴、SMIヘッダー位
置のマイクロコードの事前計算、およびSMI NES
TとSMM MODEの制御信号の使用を含む拡張され
たSMMの特定の実施は典型的なもののみである。ま
た、本発明のSMIネスティングの特徴は、あらゆるソ
ースあるいは原因からのSMI、内部的に、あるいは外
部的に信号されたトラップ(メモリあるいはI/Oアク
セス)または割り込みへ応用できる。更に、特定のレジ
スタ構造、マッピング、ビット割付け、およびたの実施
の詳細は、典型的なx86プロセッサおよびコンピュー
タシステムに関して、本発明の詳細な説明を与えるため
のみに述べられている。
uble words: dwords) 、クワッドワード(quad words: q
words)等への分割データの参照は、特許請求の範囲にお
いて用いられたとき、サイズについて限定する意図では
なく、むしろデータのブロックのための包括的用語とし
て取り扱うように意図されている。更に、ハードウェア
およびソフトウェアロジック間のトレードオフ(trade-
offs) に基づくいろいろな変更はこの分野の通常の知識
を有するものに明らかであろう。また、VSAソフトウ
ェアおよび種々のVSA/SMIルーチン間の機能の割
付けは例示的なものである。本発明は請求項の範囲内に
はいるあらゆる変更あるいは代替の実施の形態を含むも
のである。関連出願 本発明は、米国特許出願、(1) Ser. No. 08/540,351 en
tiled "Virtual Subsystem Architecture (仮想サブシ
ステムアーキテクチャ)" filed October 6, 1995, (2)
Ser. No. 08/458,326 entiled "Virtual Audio Genera
tion And Capture In A Computer(コンピュータにおけ
る仮想オーディオ発生および捕獲)" filed June 2, 19
95, and (3) Ser. No. 08/401,664 entiled "Enhanced
System Management Method and Apparatus(拡張された
システム管理方法および装置)"filed March 9, 1995
、に関連している。
込みを有する拡張されたシステム管理モードを含む、仮
想システムアーキテクチャを実施する典型的なコンピュ
ータシステムを示す。
従来のSMMハンドラーの一般的な動作を示す。
するSMIネスティングを含む拡張されたSMMの動作
を一般的に示す。
VSAソフトウェアのためのSMIヘッダー/コンテク
ストセグメントを含む、典型的なSMM領域のマッピン
グを示す。
トスタック管理を含む拡張されたSMMを示す。
STおよびSMM MODEビットの状態変化を示す。
域の典型的なマッピング、およびバス制御装置およびメ
モリ制御装置における関連したキャッシュ可能性の制御
メカニズムを示す。
域の典型的なマッピング、およびバス制御装置およびメ
モリ制御装置における関連したキャッシュ可能性の制御
メカニズムを示す。
Claims (9)
- 【請求項1】プロセッサが、SMIイベントを信号する
システム管理割り込み(SMI)メカニズムを有する、
処理のシステム管理モード(SMM)をサポートするプ
ロセッサとシステムメモリを有すコンピュータシステム
にける、SMIネスティングを含む拡張されたシステム
管理モードであって、 対応するSMIルーチンにつき、複数のSMIイベント
の各々と関連するための再入可能なSMMハンドラー手
段と、 システムメモリにおけるSMM領域を定義するためのS
MM領域手段であって、前記SMM領域はSMIコンテ
クスト及びSMIハンドラーセグメントを有しており、 SMIイベントを認識し、対応するSMIルーチンを処
理するためにSMMハンドラーを選択的に呼び出すため
のSMM手段と、 第1のSMIイベントに対して、第1の選択されたプロ
セッサの状態情報を前記SMIコンテクストにストア
し、対応する第1のSMIルーチンを処理するために、
前記SMMハンドラー手段を呼び出すSMM手段と、 前記第1のSMIルーチンの処理の間に生じる第2のS
MIイベントに対して、前記第1の選択されたプロセッ
サの状態情報を維持するために継続している間に、第2
の選択されたプロセッサの状態情報を前記SMIコンテ
クストにストアし、且つ対応する第2のSMIルーチン
を処理するために、前記SMMハンドラー手段をリエン
ターする手段と、 プロセッサが前記第2のSMIルーチンの処理を完了し
たとき、前記第2の選択されたプロセッサの状態情報を
リストアし、且つ前記第1のルーチンの処理を再開する
前記SMM手段、を有するコンピュータシステム。 - 【請求項2】前記SMIセグメントは、各SMIイベン
トが対応する選択されたプロセッサの状態情報をストア
するための対応位置を割り当てられた準スタックとして
実行され、前記第1の選択されたプロセッサの状態情報
は第1の位置にストアされ、前記第2の選択されたプロ
セッサの状態情報は第2の位置にストアされることを特
徴とする請求項1に記載のコンピュータシステム。 - 【請求項3】前記SMM手段は、次のSMIイベントに
応答して、選択されたプロセッサの状態情報をストアす
るための、次の位置に対するアドレスポインタをストア
するレジスタを含むことを特徴とする請求項2に記載の
コンピュータシステム。 - 【請求項4】プロセッサ及びシステムメモリを有するコ
ンピュータシステムにおいて使用するSMIネスティン
グを含む拡張されたシステム管理の方法であって、前記
プロセッサは、SMIイベントを信号するSMIメカニ
ズムを含む処理のSMMをサポートし、 複数のSMIイベントの各々のために、対応するSMI
ルーチンを含むSMMハンドラーを備えるステップと、 システムメモリにおいて、SMIコンテクストセグンメ
ントおよびSMMハンドラーセグメントを含む、SMM
領域を定義するステップと、 SMIイベントに応答して、対応するSMIルーチンを
処理するためにSMMハンドラーを選択的に呼び出すス
テップと、 第1のSMIイベントに対して、第1の選択されたプロ
セッサの状態情報をSMIコンテクストセグメントにス
トアし、且つ対応する第1のSMIルーチンを処理する
ために、SMMハンドラーを呼び出すステップと、 前記第1のSMIルーチンの処理中に生じる第2のSM
Iイベントに対して、前記第1の選択されたプロセッサ
の状態情報を維持し続ける間、第2の選択されたプロセ
ッサの状態情報をSMIコンテクストセグメントにスト
アし、且つ対応する第2のSMIルーチンを処理するた
めに、SMMハンドラー手段を再入するステップと、 前記プロセッサが前記第2のSMIルーチンを処理する
とき、前記再2の選択されたプロセッサの状態情報をリ
ストアし、且つ前記第1のSMIルーチンの処理を再開
するステップ、を有する方法。 - 【請求項5】前記SMIセグメントは、各SMIイベン
トが対応する選択されたプロセッサの状態情報をストア
するための、対応する位置に割付られる準スタックとし
て実施され、前記第1の選択されたプロセッサの状態情
報は第1の位置にストアされ、且つ前記第2の選択され
たプロセッサの状態情報は第2の位置にストアされるこ
とを特徴とする請求項4に記載の方法。 - 【請求項6】次のSMIイベントに応答して、選択され
たプロセッサの状態情報をストアするための、次の位置
に対してアドレスポインタをストアするステップをさら
に有することを特徴とする請求項5に記載の方法。 - 【請求項7】前記コンピュータシステムは、キャッシュ
メモリを含み、前記SMIハンドラーはキャッシュでき
ることを特徴とする請求項1乃至3のいずれか1つのコ
ンピュータシステム、および請求項4乃至6のいずれか
1つの方法。 - 【請求項8】SMIイベントはプロセッサの内部か、あ
るいは外部の何れかで発生されることを特徴とする請求
項1乃至3のいずれか1つのコンピュータシステム、お
よび請求項4乃至6のいずれか1つの方法。 - 【請求項9】SMIイベントはメモリマップされたアク
セスによって発生されることを特徴とする請求項1乃至
3のいずれか1つのコンピュータシステム、および請求
項4乃至6のいずれか1つの方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/541359 | 1995-10-10 | ||
| US08/541,359 US5764999A (en) | 1995-10-10 | 1995-10-10 | Enhanced system management mode with nesting |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09128249A true JPH09128249A (ja) | 1997-05-16 |
| JP3854668B2 JP3854668B2 (ja) | 2006-12-06 |
Family
ID=24159248
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP26850596A Expired - Lifetime JP3854668B2 (ja) | 1995-10-10 | 1996-10-09 | プロセッサが拡張したシステム管理モードを実現するコンピュータシステム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5764999A (ja) |
| EP (1) | EP0768603B1 (ja) |
| JP (1) | JP3854668B2 (ja) |
| DE (1) | DE69623222T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20130081301A (ko) * | 2009-08-31 | 2013-07-16 | 인텔 코포레이션 | 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템 |
Families Citing this family (54)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5909696A (en) * | 1996-06-04 | 1999-06-01 | Intel Corporation | Method and apparatus for caching system management mode information with other information |
| US5954812A (en) * | 1996-10-29 | 1999-09-21 | Texas Instruments Incorporated | Apparatus for caching system management memory in a computer having a system management mode employing address translation |
| US6038632A (en) * | 1997-05-07 | 2000-03-14 | Kabushiki Kaisha Toshiba | Interrupt control on SMM |
| US5987604A (en) * | 1997-10-07 | 1999-11-16 | Phoenix Technologies, Ltd. | Method and apparatus for providing execution of system management mode services in virtual mode |
| US6202090B1 (en) * | 1997-12-11 | 2001-03-13 | Cisco Technology, Inc. | Apparatus and method for downloading core file in a network device |
| US5987559A (en) * | 1998-02-02 | 1999-11-16 | Texas Instruments Incorporated | Data processor with protected non-maskable interrupt |
| US6145030A (en) | 1998-03-27 | 2000-11-07 | Intel Corporation | System for managing input/output address accesses at a bridge/memory controller |
| US6145048A (en) * | 1998-09-17 | 2000-11-07 | Micron Technology, Inc. | Method of processing system management interrupt requests |
| US6324651B2 (en) * | 1998-11-12 | 2001-11-27 | International Business Machines Corporation | Method and apparatus for saving device state while a computer system is in sleep mode |
| WO2001042874A2 (en) * | 1999-10-25 | 2001-06-14 | Phoenix Technologies Inc. | Secure dispatching of software system mangement interrupt by vali dating the caller address |
| US6571333B1 (en) * | 1999-11-05 | 2003-05-27 | Intel Corporation | Initializing a memory controller by executing software in second memory to wakeup a system |
| US6526462B1 (en) * | 1999-11-19 | 2003-02-25 | Hammam Elabd | Programmable multi-tasking memory management system |
| US6615288B1 (en) | 1999-12-27 | 2003-09-02 | Dell Products L.P. | Generating system management interrupt in response to usb controller signal and processing interrupt routine in upper most level of system memory |
| US6430655B1 (en) * | 2000-01-31 | 2002-08-06 | Mips Technologies, Inc. | Scratchpad RAM memory accessible in parallel to a primary cache |
| KR100550720B1 (ko) * | 2002-08-19 | 2006-02-08 | 엘지전자 주식회사 | 다중 입출력 통신 시스템의 신호처리 장치 및 방법 |
| US7152169B2 (en) * | 2002-11-29 | 2006-12-19 | Intel Corporation | Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state |
| US7421431B2 (en) * | 2002-12-20 | 2008-09-02 | Intel Corporation | Providing access to system management information |
| US20050198421A1 (en) * | 2004-03-08 | 2005-09-08 | Nalawadi Rajeev K. | Method to execute ACPI ASL code after trapping on an I/O or memory access |
| US7711934B2 (en) * | 2005-10-31 | 2010-05-04 | Mips Technologies, Inc. | Processor core and method for managing branch misprediction in an out-of-order processor pipeline |
| US7734901B2 (en) * | 2005-10-31 | 2010-06-08 | Mips Technologies, Inc. | Processor core and method for managing program counter redirection in an out-of-order processor pipeline |
| US7562191B2 (en) * | 2005-11-15 | 2009-07-14 | Mips Technologies, Inc. | Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme |
| US7496771B2 (en) * | 2005-11-15 | 2009-02-24 | Mips Technologies, Inc. | Processor accessing a scratch pad on-demand to reduce power consumption |
| US7873820B2 (en) * | 2005-11-15 | 2011-01-18 | Mips Technologies, Inc. | Processor utilizing a loop buffer to reduce power consumption |
| US7721071B2 (en) * | 2006-02-28 | 2010-05-18 | Mips Technologies, Inc. | System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor |
| US20070204139A1 (en) | 2006-02-28 | 2007-08-30 | Mips Technologies, Inc. | Compact linked-list-based multi-threaded instruction graduation buffer |
| US7370178B1 (en) | 2006-07-14 | 2008-05-06 | Mips Technologies, Inc. | Method for latest producer tracking in an out-of-order processor, and applications thereof |
| US20080016326A1 (en) * | 2006-07-14 | 2008-01-17 | Mips Technologies, Inc. | Latest producer tracking in an out-of-order processor, and applications thereof |
| US7657708B2 (en) * | 2006-08-18 | 2010-02-02 | Mips Technologies, Inc. | Methods for reducing data cache access power in a processor using way selection bits |
| US7650465B2 (en) | 2006-08-18 | 2010-01-19 | Mips Technologies, Inc. | Micro tag array having way selection bits for reducing data cache access power |
| US7647475B2 (en) * | 2006-09-06 | 2010-01-12 | Mips Technologies, Inc. | System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue |
| US8032734B2 (en) * | 2006-09-06 | 2011-10-04 | Mips Technologies, Inc. | Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor |
| KR20080027006A (ko) * | 2006-09-22 | 2008-03-26 | 삼성전자주식회사 | 별도의 시스템관리동작의 수행이 가능한 디바이스를 구비한컴퓨터시스템 및 그 제어방법 |
| US8078846B2 (en) | 2006-09-29 | 2011-12-13 | Mips Technologies, Inc. | Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated |
| US7594079B2 (en) | 2006-09-29 | 2009-09-22 | Mips Technologies, Inc. | Data cache virtual hint way prediction, and applications thereof |
| US9946547B2 (en) | 2006-09-29 | 2018-04-17 | Arm Finance Overseas Limited | Load/store unit for a processor, and applications thereof |
| US20080082793A1 (en) * | 2006-09-29 | 2008-04-03 | Mips Technologies, Inc. | Detection and prevention of write-after-write hazards, and applications thereof |
| US7596677B1 (en) * | 2007-02-06 | 2009-09-29 | Parallels Software International, Inc. | Paging cache optimization for virtual machine |
| US8171255B1 (en) | 2007-02-06 | 2012-05-01 | Parallels IP Holdings GmbH | Optimization of paging cache protection in virtual environment |
| US7840792B2 (en) * | 2007-04-25 | 2010-11-23 | American Megatrends, Inc. | Utilizing hand-off blocks in system management mode to allow independent initialization of SMBASE between PEI and DXE phases |
| US20090037932A1 (en) * | 2007-08-01 | 2009-02-05 | Clark Michael T | Mechanism for broadcasting system management interrupts to other processors in a computer system |
| US8151027B2 (en) * | 2009-04-08 | 2012-04-03 | Intel Corporation | System management mode inter-processor interrupt redirection |
| US8478923B2 (en) | 2010-09-25 | 2013-07-02 | International Business Machines Corporation | Interrupt suppression by processing just first interrupt of a same type |
| US9304955B2 (en) * | 2012-12-18 | 2016-04-05 | Advanced Micro Devices, Inc. | Techniques for identifying and handling processor interrupts |
| CN107015931A (zh) * | 2016-01-27 | 2017-08-04 | 三星电子株式会社 | 用于中断处理的方法和加速器单元 |
| US10101928B2 (en) | 2016-02-19 | 2018-10-16 | Dell Products L.P. | System and method for enhanced security and update of SMM to prevent malware injection |
| CN109074113B (zh) | 2016-07-19 | 2020-11-03 | 惠普发展公司,有限责任合伙企业 | 功率监控和降低 |
| US10552280B2 (en) | 2017-12-14 | 2020-02-04 | Microsoft Technology Licensing, Llc | In-band monitor in system management mode context for improved cloud platform availability |
| US11481248B2 (en) * | 2020-08-05 | 2022-10-25 | Dell Products L.P. | Completing an SMI task across multiple SMI events |
| US12430132B2 (en) | 2021-03-29 | 2025-09-30 | SiFive, Inc. | Technologies for interconnect address remapper with event recognition and register management |
| US12488410B2 (en) | 2022-03-18 | 2025-12-02 | Intel Corporation | Local memory translation table accessed and dirty flags |
| US11748283B1 (en) * | 2022-03-18 | 2023-09-05 | Intel Corporation | Scalable I/O virtualization interrupt and scheduling |
| US12613739B2 (en) | 2022-03-18 | 2026-04-28 | Intel Corporation | Hard partitioning via intra-SOC composition |
| US12499503B2 (en) | 2022-03-18 | 2025-12-16 | Intel Corporation | Multi-render partitioning |
| US12572392B2 (en) | 2022-03-18 | 2026-03-10 | Intel Corporation | Flexible partitioning of GPU resources |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5357628A (en) * | 1992-03-25 | 1994-10-18 | Intel Corporation | Computer system having integrated source level debugging functions that provide hardware information using transparent system interrupt |
| JPH06230979A (ja) * | 1992-06-17 | 1994-08-19 | Cyrix Corp | 改良されたシステム管理方法および装置 |
| US5509139A (en) * | 1993-03-22 | 1996-04-16 | Compaq Computer Corp. | Circuit for disabling an address masking control signal using OR gate when a microprocessor is in a system management mode |
| US5551044A (en) * | 1994-12-01 | 1996-08-27 | Intel Corporation | Method and apparatus for interrupt/SMI# ordering |
-
1995
- 1995-10-10 US US08/541,359 patent/US5764999A/en not_active Expired - Lifetime
-
1996
- 1996-09-19 DE DE69623222T patent/DE69623222T2/de not_active Expired - Lifetime
- 1996-09-19 EP EP96306809A patent/EP0768603B1/en not_active Expired - Lifetime
- 1996-10-09 JP JP26850596A patent/JP3854668B2/ja not_active Expired - Lifetime
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20130081301A (ko) * | 2009-08-31 | 2013-07-16 | 인텔 코포레이션 | 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0768603A2 (en) | 1997-04-16 |
| DE69623222T2 (de) | 2003-01-02 |
| EP0768603B1 (en) | 2002-08-28 |
| EP0768603A3 (en) | 1997-12-29 |
| DE69623222D1 (de) | 2002-10-02 |
| US5764999A (en) | 1998-06-09 |
| JP3854668B2 (ja) | 2006-12-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3854668B2 (ja) | プロセッサが拡張したシステム管理モードを実現するコンピュータシステム | |
| US6598136B1 (en) | Data transfer with highly granular cacheability control between memory and a scratchpad area | |
| US5801720A (en) | Data transfer from a graphics subsystem to system memory | |
| US6442635B1 (en) | Processor architecture for virtualizing selective external bus transactions | |
| US9298498B2 (en) | Building a run list for a coprocessor based on rules when the coprocessor switches from one context to another context | |
| US7020767B2 (en) | Techniques for reducing the rate of instruction issuance | |
| US7065630B1 (en) | Dynamically creating or removing a physical-to-virtual address mapping in a memory of a peripheral device | |
| US6046752A (en) | Peer-to-peer parallel processing graphics accelerator | |
| US5740464A (en) | Architecture for providing input/output operations in a computer system | |
| US5721947A (en) | Apparatus adapted to be joined between the system I/O bus and I/O devices which translates addresses furnished directly by an application program | |
| US8035648B1 (en) | Runahead execution for graphics processing units | |
| US20040187122A1 (en) | Systems and methods for enhancing performance of a coprocessor | |
| JP3289661B2 (ja) | キャッシュメモリシステム | |
| WO2013090594A2 (en) | Infrastructure support for gpu memory paging without operating system integration | |
| US11954044B2 (en) | Translation lookaside buffer prewarming | |
| JPH05150981A (ja) | データ処理装置 | |
| JP2009145932A (ja) | 画像情報の更新を検出するプログラム、方法および画像処理装置 | |
| WO1992001256A1 (en) | Application address display window mapper for a sharable ms-dos processor | |
| KR20040074622A (ko) | 그래픽 처리 장치를 위한 멀티쓰레디드 커널 | |
| WO2000000887A9 (en) | Method and apparatus for transporting information to a graphic accelerator card | |
| US20050165976A1 (en) | Dynamic address windowing on a PCI bus | |
| JP3088303B2 (ja) | キャッシュ・メモリ・バンク制御装置 | |
| JP4490585B2 (ja) | 周辺ステータスについての内部レジスタを有するプロセッサまたはコア論理演算装置 | |
| US9652560B1 (en) | Non-blocking memory management unit | |
| US5786825A (en) | Virtual display subsystem in a computer |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060123 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060424 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060427 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060720 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060904 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060911 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100915 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110915 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110915 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120915 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130915 Year of fee payment: 7 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |