Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4434482B2 - 仮想モードでのシステム管理モードサービスを実行する方法及び装置 - Google Patents
[go: Go Back, main page]

JP4434482B2 - 仮想モードでのシステム管理モードサービスを実行する方法及び装置 - Google Patents

仮想モードでのシステム管理モードサービスを実行する方法及び装置 Download PDF

Info

Publication number
JP4434482B2
JP4434482B2 JP2000515232A JP2000515232A JP4434482B2 JP 4434482 B2 JP4434482 B2 JP 4434482B2 JP 2000515232 A JP2000515232 A JP 2000515232A JP 2000515232 A JP2000515232 A JP 2000515232A JP 4434482 B2 JP4434482 B2 JP 4434482B2
Authority
JP
Japan
Prior art keywords
processor
operate
mode
system management
configure
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
JP2000515232A
Other languages
English (en)
Other versions
JP2001519566A5 (ja
JP2001519566A (ja
Inventor
デイビッド エス. エドリッチ
Original Assignee
フィーニックス  テクノロジーズ  リミテッド
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25484444&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP4434482(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by フィーニックス  テクノロジーズ  リミテッド filed Critical フィーニックス  テクノロジーズ  リミテッド
Publication of JP2001519566A publication Critical patent/JP2001519566A/ja
Publication of JP2001519566A5 publication Critical patent/JP2001519566A5/ja
Application granted granted Critical
Publication of JP4434482B2 publication Critical patent/JP4434482B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【技術分野】
本発明は、マイクロコントローラベースシステムのメモリに関し、より詳しくは、仮想モードでのシステム管理モードサービスを行う装置および方法に関係する。
【0002】
【関連技術の説明】
パーソナルコンピュータアーキテクチャに基づく現代のコンピュータは、システム管理モード(SMM)として公知の、インテルx86ファミリのマイクロプロセッサのオペレーティングモードを使用することによって、パワーマネジメントや他のシステム管理機能を実行できる。SMMは、オペレーティングシステムおよびアプリケーションソフトウェアに見えないように、プロダクト・特定ハードウェア機能を制御するシステムファームウェアによって使用される。SMMは、例えば、システム構成やパワーダウン装置の構成などのシステム管理情報に対して使用され、すなわち、ゼロボルトサスペンド機能などの省電力ルーチンを呼び出す。
【0003】
SMMは、SMIによって呼び出される。SMIは、通常のコード実行速度に比較すると、多くの場合低速で実行する。これは、SMIがアンキャッシュメモリ領域の1メガバイトの境界の下で大抵操作するからである。この特徴は、オーバラッピングメモリによるキャッシュ対立を避けるために実行される。SMIの発生の間、CPUは、データアクセスのためのちょうど64キロバイトより4ギガバイトまで延在するセグメント限度を除いたリアルモードに似ているSMMモードを実行する。コード実行アドレス可能性は、1メガバイトのみに限られる。かかる方法によって、結果としてシステム性能は制限される。
【0004】
1の代替の方法は、SMZが呼び出されるときはいつでも、1メガバイトの境界より上のキャッシュ可能な領域から、1メガバイトの境界の下のキャッシュ可能な領域に向かう、SMIコードおよびデータの転送を含む。次に、SMIの実行が、標準のSMMモードで起こる。そして、SMIコードは、SMIの終了時に1メガバイトの領域より上のキャッシュ可能な領域に戻される。かかる方法は、かなりの時間を要し、故に、システム性能の低下につながる。
【0005】
したがって、上述した課題を解決する装置および方法に対する技術に需要が存在する。特に、既存のソフトウェアを書き直す必要が無い状態で、キャッシュ領域のシステム管理割り込みサービスコードを有効且つ安全に実行する装置および方法に対して需要が存在する。
【0006】
【発明の概要】
本発明は、プロセッサベースシステムのシステム管理モードにて命令を実行するための装置および方法である。この装置は、プロセスベースシステムが処理される命令シーケンスを格納するためのメモリからなる。装置は、さらに、システムアドレス空間を有するとともに格納された命令シーケンスを実行するプロセッサも含む。格納された命令シーケンスは、プロセッサに以下の動作を生ぜしむるプロセスステップを含む。このプロセスステップは、(a) プロセッサを保護モードで動作させるように構成しながらも、システム管理モードにて、プロセッサは1メガバイトより大きいアドレスで動作するステップと、(c) プロセッサのページング機能を呼び出すステップと、(d) プロセッサを仮想モードにて動作させるように構成するステップと、(e) 格納された命令シーケンスを処理するステップと、からなり、プロセスステップは、システム管理要求を処理する命令が入力されたときに行われる。
【0007】
【好ましい発明の詳細な説明】
本発明は、メモリページングが仮想モードでSMIコードを実行することによって可能となるシステム管理モード(SMM)の下で動作する仮想モニタをつくる。仮想モード動作によって、1メガバイト未満で動作しなければならなかったSMMモードに対して書かれたSMMコードが、1メガバイトの境界より上で実行できる。特に、全てのSMIハンドラは1メガバイトの境界より上に写像される。そして、パワーマネジメントコードは、SMMモード内で、ページイネーブル保護モード仮想タスクとして実行される。完全に別々のメモリ空間のSMIハンドラコードによって、SMMに入るときにキャッシュフラッシュは不必要である。その理由は、正規システムを備えたメモリ使用は重ならないからである。
【0008】
本実施例を、プロセッサシステム10に関して記載する。図1は、本発明のプロセスを実行する典型的なプロセッサシステム10を示す。プロセッサシステム10内で、バストランザクションが、システムデータバス12を介して、プロセッサ、すなわち中央処理装置(CPU)14と、システムメモリ18とシステム管理ランダムアクセスメモリ(SMRAM)20とビデオメモリ22とディスクドライブコントローラ24やネットワークコントローラ26等のさまざまなI/Oおよび周辺装置モジュールとの間で、実行される。CPU14は、システムアドレスバス30およびCPU制御信号ライン32を介してメモリコントローラ28およびバスコントローラ36に結合される。次に、メモリコントローラ34は、システムメモリ18およびSMRAM20に接続されている。
【0009】
メモリコントローラ34は、メモリアドレスをライン38を介して、メモリ制御信号をライン40を介してシステムメモリ18およびSMRAM20に供給して、システムメモリ18やSMRAM20とCPU14との間でシステムデータバス12を介したデータ転送を可能にする。CPU14も、システムアドレスバス30、システムデータバス12、およびCPU制御信号ライン32を介して、バスコントローラ36に接続されている。バスコントローラ36は、次に、バッファ付きアドレスバス42およびバッファ付きデータバス44を介して、ビデオメモリ22と、ディスクドライブコントローラ24と、ネットワークコントローラ26と、適宜の周辺装置に接続されている。プロセッサシステム10は、デスクトップコンピュータやノートパソコン、サーバとして実施される。メモリコントローラ34と他のシステム論理とは、チップセットと称するものに集積されて、パワーマネジメントBIOSサービスを提供する。かかるチップセットの例は、部品指定(part designations)SPC8210、SPC9220の下にセイコーエプソンによって製造されるフォークナ(Falconer)チップセットを含む。かかるチップセットの他の例は、インテル430TX、インテル430HX、インテル440EXチップセットを含む。
【0010】
一実施例において、CPU14は、インテル社によって販売されているインテル486マイクロプロセッサである。他の実施例において、CPU14は、AMDによって販売されているK-6マイクロプロセッサでもよい。更なる実施例において、CPU14は、サイリクス社(Cyrix Corp.)によって販売されている586マイクロプロセッサである。尚、本発明が、システム管理モード(SMM)の使用を行うマイクロプロセッサを使用するとともに、専用割り込みライン(図1のライン50)およびメモリスペースSMRAM20を使用するオペレーティングモードである、任意のプロセッサベースシステムにおいて実行されることは、当業者によって理解される。SMMは、オペレーティングシステムおよびアプリケーションソフトウェアに対して完全に透明になるように、ファームウェアのインテリジェントパワーマネジメントや他の強化システム機能を実行するために使用される。
【0011】
SMMは、CPU14へのSMI信号の表明を介してシステム管理割り込みを生成することによって呼び出される。CPU14は、反応して、SMRAM20にアクセスするライン32を介して提供されるSMIACT制御信号を表明する。SMRAM 20は、SMMのみでの仕様に対して専用化されて固定されているメモリ空間である。すなわち、オペレーティングシステムおよびアプリケーションソフトウェアは、この空間にアクセスをしない。現在のCPU14の状態(コンテキスト)は、SMIACT信号の表明後にSMRAM20に格納され、次に、CPU14は、SMRAM20での位置へジャンプして、システム管理活動を実施するためのSMIハンドラコードを実行する。システム管理活動の終了時に、SMIハンドラは、レジューム(RSM)命令を実行する。この命令は、SMRAM20からCPU14のコンテキストを回復させ、SMIACT信号の表明を止め、次に、以前に割込されたオペレーティングシステムやアプリケーションプログラムの実行に制御を戻す。
【0012】
アドレスバス30上のCPU14(図1)によって表明されたアドレスは、16進のフォーマットで参照され、接尾辞「H」によって示される。インテルのマイクロプロセッサのアドレスバス30は、32ビット長であり、4ギガバイトのシステムアドレス空間50のアドレス指定を行うことができる。SMRAM20は、このシステムアドレス空間50内の任意の場所に配置されるが、しかし、多数のチップセット(例えば、部品指定SPC8210およびSPC8220の下にセイコーエプソンによって製造されるフォークナーチップセット)によって実行されるので、CPU14は、SMRAMコードおよびデータを、物理的なメモリから、1メガバイト以下のCPU14のアドレス空間50の一部に自動的にマップするように構成される。
【0013】
図2Aは、図1のプロセッサシステム10用の典型的なシステムアドレスマップ、すなわち空間50を示す。システムアドレスの最低位の640キロバイト、すなわち0H-9FFFFが、システムメモリ18にマップする。システムアドレスA0000H−BFFFFHは、ビデオメモリ22にマップする。システムアドレスC0000H−CFFFFHは、ビデオBIOSコードにマップする。システムアドレスD0000H−DFFFFH、E0000H−EFFFFHは、しばし、別々のPCMCIA周辺機器領域にマップされたり、または、他のタイプの周辺装置にマップされる。システムアドレスF0000H−FFFFFHは、BIOSコード用に残される。システムアドレス100000H(1メガバイト)以降は、アプリケーション使用に対するシステムメモリにマップされる。
【0014】
図2Bは、SMRAM20の典型的なレイアウトを示す。プロセッサ、すなわちCPU14は、SMMに入るときにCPU14の状態(すなわち、コンテキスト)を保存するために使用されるSMRAM20内で、アドレスの範囲をあらかじめ定義する。CPU14も、SMIコードのエントリポイントを指定する。これらの位置は、SMRAM20のベースアドレスを基準としている。図2Bに示されたSMRAM20の他の領域は、定義するSMMプログラマに対して実施特化されて残されている。
【0015】
一実施例において、SMRAM20のベースアドレスは、CPU14によって、A0000hのデフォルト値に設定される。CPU14は、CPUの14のコンテキストを保存するために、AFE00hに対して下方の位置AFFFFh(SMRAMベース+FFFFh)で開始するSMRAMの512バイト領域を定義する。CPU14のコンテキストが保存されると、CPU14は、SMM位置A8000h(SMRAMベース+8000h)でSMIハンドラのエントリポイントへジャンプする。次に、SMIハンドラは、SMRAM内で次にそのルーチンを実行し、それを使用して必要に応じてデータおよびスタックを格納する。
【0016】
CPU14は、上記多数の設計を使用して実行されるが、現在の議論目的のために、インテルのプロセッサのx86ファミリに触れる。図3A乃至図3Fは、本発明の議論において使用されるx86ファミリのプロセッサのレジスタを示す。x86ファミリのプロセッサは、各々8個の32ビット汎用レジスタEAX、EBX、ECX、EDX、ESI、EDI、EBP、ESPを含む。AX、BX、CX、DXレジスタの16の下位オーダビットは、バイトアドレス指定用のAL(高)、AL(低)、BH、BL、CH、CL、DH,DLレジスタとして、8ビットの増加で、独立にアドレス指定可能である。更に、プロセッサは、6個の16ビットセグメントレジスタを含む。このレジスタは、セグメントのアドレスを判別するために、メモリ内のセグメント記述のテーブルへと指し示すセグメントセレクタを保持する。2個の32ビットレジスタと、EFLAGSと、EIP(命令ポインタ)とは、状況および制御目的のために使用される。
【0017】
各x86プロセッサも、メモリ管理のために使用される4個のレジスタを含む。グローバルディスクリプタテーブルレジスタ(GDTR)は、グローバルディスクリプタテーブルがメモリに見い出されるベースアドレスを格納する。グローバルディスクリプタテーブルは、ベースアドレスを提供するセグメントディスクリプタと、セグメントアドレス指定が行われるサイズおよび保護と、を保持する。ローカルディスクリプタテーブルレジスタ(LDTR)は、ローカルディスクリプタテーブルがメモリ内に見い出されるベースアドレスも格納する。そして、ローカルディスクリプタテーブルは、個々のプログラム用のセグメントアドレス指定が行われるセグメントディスクリプタを保持する。タスクレジスタ(TR)は、プログラム間のスイッチに使用されるグローバルディスクリプタテーブルでのタスク状態ディスクリプタ(TSS)のアドレスを含む情報を保持する。割り込みディスクリプタテーブルレジスタ(IDTR)は、割り込み動作用のアドレスが判別されるテーブルに向けられるアドレスと他情報とを保持する。
【0018】
プロセッサは、4個の制御レジスタCR0、CR1、CR2、CR3を含む。CR0レジスタは、システム制御フラグを保持する。このフラグは、動作モードを制御したり、プロセッサに適用する状態を示したりする。CR0レジスタは、ページングビット(31)を含む制御ビットを保持する。ページングビットは、発生するページングに対して設定される必要があり、また、ページングがディスエーブルになるべきときに、クリアにされなければならない。
【0019】
x86ファミリのプロセッサにおいて、プログラムは、タスクと称される。タスクは、例外、ジャンプ、割り込み、または呼び出しにより開始される。動作を転送するこれら命令のうちの1つが、宛先を参照して使用されてタスクスイッチを呼び出すときに、プログラムの間でのスイッチングが起きる。タスクスイッチは、1のプログラムから他のプログラムへの実行を移動させる。この移動が生じるとき、前のプロセスとともに使用されるほぼ全てのレジスタのコンテンツは、保存されなければならない。特に、すでに進行中の条件操作の結果を含むEFLAGSレジスタのコンテンツは、保存する必要がある。さまざまなタスクの状態は、タスク状態セグメント(TSS)(図4参照)に保存される。このタスク状態セグメントは、タスク状態セグメントディスクリプタにより定義されるデータ構造である。タスク状態セグメントディスクリプタは、タスク状態セグメントのベースアドレスと、タスクが現在動作しているかまたは動作を待っているかを示すビジービットと、を含む。タスク状態セグメントディスクリプタに加えて、タスク状態セグメントディスクリプタに間接的なインデックスを提供するタスクゲートディスクリプタが、タスク間の制御の移行のために使用される。
【0020】
マルチタスキングを行うために、タスク状態セグメントはつくられなければならない。そして、TSSディスクリプタがつくられる必要があり、グローバルディスクリプタテーブルに配置され、故に、タスク状態セグメントにアクセスでき、そして、保存された状態が回復される。更に、タスクレジスタTRは、グローバルレジスタのTSSディスクリプタのインデックスとともにロードされなければならず、故に、タスク状態セグメントにアクセスされる。
【0021】
x86ファミリのプロセッサは、I/Oビットマップの使用によるI/Oアドレス空間へのアクセスのための保護機構を提供する。図4は、タスク状態セグメント(TSS)の典型的なI/Oビットマップを示す。I/Oビットマップは、各タスクのTSSの一部である。その結果、異なるタスクが異なるI/Oビットマップを参照することができる。TSSディスクリプタのI/Oマップベースエントリは、対応するI/Oビットマップが開始するTSS内で、オフセットを提供する。有効I/Oビットマップは、I/OマップベースがTSSに含まれる場合存在する。I/Oビットマップは、電源投入セルフテスト(POST)の間、またはSMIが呼び出された後に、作成されなければならない。詳細は後述する。I/Oビットマップは、CPU14によって調べられて、必要なI/OポートまたはI/O位置に実際にアドレス指定を行うことができるかどうかを判別する。例えば、アドレスが0のポートまたは位置は、オフセットが0のマップに含まれるビットと関係し、アドレスが1のポートまたは位置は、1のオフセットを有するビットと関係する。ポートや位置に対応するマップのビットがクリアされ(0に等しい)、さらに、適用可能なポートへのアクセスが存在するとき、特定のポートやI/O位置がタスクに対して使用される。逆に、I/O位置に相当するマップにビットが設定される場合(1に等しい)、特定のI/O位置は、タスクのために使用できない。マップの長さは、I/O位置の保護ポートの追加の個数を設定する。マップに含まれないポートの全てに、自動的にセットビット(set bit)が割り当てられる。マップに含まれないポートへのアクセスは、例外を生成する。一実施例において、Pentiumプロセッサを使用するときに、合計で(64Kポート)/(バイト毎に8ビット)、すなわち、8192バイトが、64キロバイトの8-ビットポートを有するPentiumプロセッサの完全なI/Oアドレス空間を保護するのに必要になる。
【0022】
x86ファミリのプロセッサは、保護動作モードにおいて提供されるハードウェアセットアップによって、V86動作モードをサポートする。プロセッサは、仮想8086タスクとして多数の8086プログラムを実行することができる。仮想タスクは、ソフトウェアにおいて、現れて8086環境になるものを提供する。仮想8086タスクは、x86プロセッサハードウェアおよびシステムソフトを使用して、リアルモードプログラムを実行する。プロセッサハードウェアは、TSSデータ構造を使用して仮想メモリ空間を提供し、プロセッサハードウェアレジスタおよび仮想メモリを使用してそのタスク用の命令を実行する。システムソフトは、実行されるべき他のタスクに関して、任意の仮想タスクのインターフェースを制御する。このシステムソフトを、仮想8086モニタと称する。
【0023】
仮想8086モードにスイッチするために、CR0レジスタのVMビット(17)が設定されなければならない。(これは、V86 TSSへのファージャンプ(FAR JUMP)によって自動的に行われる)。仮想8086モードで動作するときに、プロセッサは、セグメントレジスタを(CS、DS、ES、FS、GSのいずれか)を標準ポインタレジスタ、すなわちオフセットと組み合わせて、リアルモードで動作する8086プロセッサと同様な方法で線形アドレスを形成する。しかし、これらの線形アドレスは、ページングユニットを通り抜けて、1メガバイトの物理メモリにマップする。このメモリは、システムの任意の場所に存在する。このように、仮想8086タスクを行うときに、プロセッサは、リアルモードとしてV86モードアドレスを形成して、仮想タスクであるアプリケーションプログラムを走らせる。プロセッサは、システム仮想マシンモニタソフトウェアを走らせるために保護モードに戻る。
【0024】
前述のように、SMMは、CPU14へのSMI信号の表明を介してシステム管理割り込みを生成することによって呼び出される。CPU14は、反応して、SMRAM20にアクセスするライン32を介して提供されるSMIACT制御信号を表明する。本発明の原理によると、物理メモリに位置するSMRAM20に格納されるデータおよびコードは、最初に、図5に示すように、システムアドレス空間50の1メガバイトを超える位置22へとマップされる。現在のCPU14の状態(コンテキスト)は、SMIACT信号の表明の後、SMRAM20に格納される。次に、CPU14は、システムアドレス空間50の1メガバイトを超えるSMRAM20の位置へジャンプして、システム管理活動を実行するためのSMIハンドラコードを実行する。
【0025】
次に、SMIハンドラは、SMMモードでCPU14によるSMIコードの実行を開始するように構成される。特に、SMIハンドラは、図6に示すように、システムアドレス空間50で1メガバイトを超える位置24に、ニアジャンプ(NEAR JMP)を実行する。そこで、CPU14のモード変化が行われる。位置24は、位置22の64キロバイト内に存在しなければならない。次に、SMIハンドラは、CPU14に次に制御信号を発して、CPU14を保護モードで動作するように構成する。一実施例において、これは、CR0レジスタのビット0を1に設定することによって成し遂げられる。
【0026】
一実施例において、次に、SMIハンドラは、CPU14のページング機能を使用するときに要求されるページテーブルをつくるように構成される。ページテーブルは、システムメモリ18(図1)の領域に配置される。各ページテーブルは、1024個の各ページスタートアドレスに向けられている1024個のエントリを含む。
【0027】
SMIハンドラは、CPU14のタスク状態セグメント(TSS)機能を使用するときに要求されるTSSおよびI/Oビットマップをつくるように構成される。I/Oビットマップを使用すると、I/Oアドレス空間にアクセスするための保護機構が提供される。前述したように、I/Oビットマップは、呼び出されたタスクのTSSに格納される。
【0028】
他の実施例において、ページテーブルおよびI/Oビットマップは、SMMの起動前に、電源投入セルフテスト(POST)の間に、作成される。この他の実施例において、ページテーブルとTSSおよびI/Oビットマップとは、一度作成されなければならないだけであり、SMM活動の終了時に削除されない。更に、適宜の実施例において、ページテーブルは、TSSおよびI/Oビットマップを同時につくらずに、作成される。逆に、TSSおよびI/Oビットマップは、ページテーブルを同時に作成せずに作成できる。
【0029】
ページテーブルとTSSおよびI/Oビットマップとがつくられると、SMTハンドラは、CPU14のページング機能を呼び出す。一実施例において、これは、インテル社によって販売されているようなx86プロセッサのCR0レジスタのビット31を設定することによって、実行される。次に、SMIハンドラは、CPU14を仮想モードに切り替える。一実施例において、これは、仮想モードへ切替えるためのTSSへのファージャンプ(FAR JMP)を実行することによって、実施される。更に、1メガバイトを越える物理メモリ領域は、タスクの線形アドレス空間の第1のメガバイトに実質的にマップされる。その結果、タスクスイッチが、呼び出されて、1メガバイトの境界より上に、プロセッサ14の動作モードを仮想モードに変化させる。
【0030】
仮想モードにおいて1回、CPU14は、リアルモードと同様な方法でアプリケーションの論理アドレスを判別する。物理アドレスは、ページテーブルを使用することによって判別される。次に、SMIハンドラは、システム管理活動を処理するために必要なタスクの実行を開始する。システム管理活動の実行中に、ソフトウェアは、特定の特別タスクの実行を容易にするために、プロセッサを時々保護モードにおいて動作するように構成している。これらの特別なタスクは、当業者には周知なように、演算論理ユニットの浮動小数点ユニットのアクセスとキャッシュフラッシュとを含む。もしそうならば、SMIハンドラは、保護モードにおいて作動するCPU14を構成する。このように一旦構成されると、CPU14は、特別なタスクを処理する。特別なタスクが終了すると、SMIハンドラは、CPU14を仮想モードにおいて作動するように構成し、故に、システム管理活動が再開できる。
【0031】
システム管理活動が終了すると、SMIハンドラは、CPU14を仮想モードから出すように構成する。そして、それは、また、CPU14を保護モードにおいて再び動作するように構成する。次に、ページングは、PGビット、ビット31(図3G参照)をクリアすることによってディスエーブルになる。次に、SMIハンドラは、SMRAM20にCPUl4のコンテキストを復元するレジューム(RSM)命令を実行し、SMIACT信号の表明を止め、以前に割込まれたオペレーティングシステムやアプリケーションプログラムの実行に制御を戻す。
【0032】
図7Aおよび図7Bは、本発明のプロセスの一実施例を示すフローチャートである。スタート状態から始まり、プロセスS100は、プロセスステップS102に進み、ここで、SMMは、SMIの発行によって呼び出される。プロセスS100は、次にプロセスステップS104へ進み、ここで、特に、物理メモリに位置するSMRAM20に格納されたデータおよびコードは、最初に、システムアドレス空間50において1メガバイトを超える位置22にマップされる。現在のCPU14の状態(コンテキスト)は、SMRAM20に格納される。次に、SMIハンドラは、1メガバイトを越えるSMIコードの実行を始めているが、一方、CPU14は、プロセスステップS106に示すように、SMMモードで未だ動作している。特に、SMIハンドラは、システムアドレス空間50にて未だ1メガバイトを超える位置へのニアジャンプ(NEAR JMP)を実行する。次に、プロセスS100は、プロセスステップS108へ進む。そこで、SMIハンドラは、CPU14に制御信号を発して、CPU14を保護モードにおいて動作するように構成する。次に、SMIハンドラは、ページテーブルおよびI/Oテーブル(プロセスステップS110)をつくる。または、ページテーブル及びI/Oテーブルを、POSTの間につくることもできる。次に、SMIハンドラは、CPU14のページング機能を呼び出す(プロセスステップS112)。次に、プロセスS100は、プロセスステップSl14へ進む。そこでは、SMIハンドラは、CPUを仮想モードで動作させるように構成する。次に、SMIハンドラは、SMIの処理に進み、プロセスステップS116に示すように、システム管理活動を実行する。
【0033】
システム管理活動の実行中に、ソフトウェアは、特定の特別タスクの実行を容易にするために(判別ステップS118)、時々プロセッサを保護モードで動作させるように変更する。これらの特別なタスクは、当業者に対して周知なように、演算論理ユニットの浮動小数点のアクセス及びキャッシュフラッシュを含む。もしそうならば、プロセスS100は、プロセスステップS120へ進む。そこで、SMIハンドラは、CPU14を保護モードで動作させるように構成する。このように、構成されると、CPU14は、特別タスクを処理する(プロセスステップS122)。特別タスクが終了すると、SMIハンドラは、CPU14を仮想モードで動作させるように構成する。次に、SMIハンドラは、判別ステップS126へ進む。判別ステップS118として、プロセスS100が、実行しなければならない特別タスクが無いと判定する場合、プロセスS100は、直接判別ステップS126に進む。
【0034】
判別ステップS126で、プロセスS100は、全てのシステム管理活動が終了したかどうかを問い合わせる。もしそうでなければ、プロセスS100は、プロセスステップS116へ進む。そこで、それは、システム管理活動の処理を続ける。全てのシステム管理活動が終了した場合、SMIハンドラが、CPU14を仮想モードから出すように構成し(プロセスステップS128)、次に、CPU14を再び保護モードにて動作させるように構成する。次に、ページングはディスエーブルになる(プロセスステップS130)。ページテーブルおよびI/Oテーブルが、SMIの呼び出しの後でPOSTの間でないときにつくられる場合、プロセスS100は、プロセスステップS132へ進み、ページテーブルおよびI/Oテーブルを削除する。次に、SMIハンドラは、CPU14のコンテキストをSMRAM20に戻すレジューム(RSM)命令を実行する(プロセスステップS134)。次に、プロセスS100は、プロセスステップS136に示すように、以前に割込まれたオペレーティングシステムプロセスやアプリケーションプログラムの実行に制御を戻す。次に、プロセスS100は終わる。
【0035】
本発明の使用を介して、システム管理モード内のコードを有効に実行する装置および方法が提供される。特に、本発明は、プログラムコードの重複や、メモリの増加使用や保守の増加の無い状態で、システム管理モード内のコードの実行を容易にする。本発明の使用は、簡単且つコンパクトで、デバッグが簡単なコードの実行を容易にする。
【0036】
本発明は、好ましい実施例に関して記載したが、当業者において明らかな他の実施例も、本発明の範囲内に含まれる。したがって、本発明の範囲は、以下の請求の範囲によってのみ定義されることを意図したものである。
【図面の簡単な説明】
【図1】 図1は、本発明のプロセスを実行する典型的なプロセッサシステムを示す。
【図2A】 図2Aは、図1のプロセッサシステム用の典型的なシステムアドレスマップ50を示す。
【図2B】 図2Bは、SMRAM20の典型的なレイアウトを示す。
【図3A】 図3Aは、CPU14の一実施例のレジスタを示す。
【図3B】 図3Bは、CPU14の一実施例のレジスタを示す。
【図3C】 図3Cは、CPU14の一実施例のレジスタを示す。
【図3D】 図3Dは、CPU14の一実施例のレジスタを示す。
【図3E】 図3Eは、CPU14の一実施例のレジスタを示す。
【図3F】 図3Fは、CPU14の一実施例のレジスタを示す。
【図3G】 図3Gは、CPU14の一実施例のレジスタを示す。
【図4】 図4は、本発明において使用されるI/Oビットマップの一実施例を示す。
【図5】 図5は、物理的なメモリからCPUアドレス空間までSRAMに格納されるデータおよびコードのマッピングを示す。
【図6】 図6は、本発明の原理に従って、ニアジャンプ動作の実行によるメモリのセグメントへの制御の移行を示す。
【図7A】 図7Aは、本発明のプロセスの一実施例を示すフローチャートである。
【図7B】 図7Bは、本発明のプロセスの一実施例を示すフローチャートである。

Claims (30)

  1. プロセッサベースシステムでのシステム管理モードの命令を実行する装置であって、
    前記プロセッサベースシステムが処理される命令シーケンスを格納するメモリと、
    システムアドレス空間を有するとともに当該格納された命令シーケンスを実行するプロセッサと、
    を有し、
    前記格納された命令シーケンスは、前記プロセッサに以下のプロセスステップを生ぜしむるためのものであり、前記プロセスステップは、
    (a) システム管理モードである間に、前記プロセッサを保護モードで動作するように構成し、かつ、前記プロセッサを1メガバイトよりも大きいアドレスにおいて動作させるステップと、
    (b) 前記プロセッサのページング機能を呼び出すステップと、
    (c) 前記プロセッサを仮想モードにて動作させるように構成するステップと、
    (d) 前記格納された命令シーケンスを処理するステップと、
    からなり、前記プロセスステップは、システム管理要求を処理する命令が入力されたときに行われることを特徴とする装置。
  2. ステップ(b)は、
    (b.1) 少なくとも1つのページテーブルを作るステップと、
    (b.2) 前記プロセッサのページング機能を呼び出すステップと、
    からなることを特徴とする請求項1記載の装置。
  3. ステップ(a)の前に、少なくとも1つのページテーブルをつくるステップをさらに有することを特徴とする請求項1記載の装置。
  4. ステップ(a)は、
    (a.l) 第2の位置へのニアジャンプを実行するステップと、
    (a.2) 前記プロセッサを保護モードにて動作するように構成するステップと、
    からなることを特徴とする請求項1記載の装置。
  5. (e) 制御が、前記プロセッサが保護モードにて動作するように構成されることを要求するタスクを実行するための命令シーケンスに移行すべきか否かを判別するステップと、
    (f) そうである場合に、前記プロセッサが前記保護モードにて動作するように構成し、前記タスクを実行するための命令シーケンスを実行するステップと、
    (g) そうでなければ、前記格納された命令シーケンスの処理を継続するステップと、
    をさらに有することを特徴とする請求項1記載の装置。
  6. (h) システム管理活動に関連する命令シーケンスの実行が終了したか否かを判別するステップと、
    (i) そうである場合に、仮想モードでの動作を行わないように前記プロセッサを構成し、前記プロセッサを保護モードにおいて動作するように構成し、前記プロセッサがページングをディスエーブルにするように構成し、
    そうでない場合は、システム管理活動に関連する命令シーケンスの実行を継続するステップと、
    をさらに有することを特徴とする請求項5記載の装置。
  7. (h) メモリの前記プロセッサのコンテキストを復元するステップと、
    (i) 呼び出し元の機能に戻るステップと、
    をさらに有することを特徴とする請求項5記載の装置。
  8. (j) 少なくとも1つのページテーブルを削除するステップと、
    (k) メモリの前記プロセッサのコンテキストを復元するステップと、
    (l) 呼び出し元の機能に戻るステップと、
    をさらに有することを特徴とする請求項5記載の装置。
  9. (e) システム管理活動に関連する命令シーケンスの実行が終了したか否かを判別するステップと、
    (f) そうである場合に、前記仮想モードでの動作を行わないように前記プロセッサを構成し、前記プロセッサを前記保護モードにおいて動作するように構成し、前記プロセッサがページングをディスエーブルにするように構成し、
    そうでない場合は、システム管理活動に関連する命令シーケンスの実行を継続するステップと、
    をさらに有することを特徴とする請求項1記載の装置。
  10. (g) メモリの前記プロセッサのコンテキストを復元するステップと、
    (h) 呼び出し元の機能に戻るステップと、
    をさらに有することを特徴とする請求項9記載の装置。
  11. プロセッサベースシステムのシステム管理モードの命令を実行する方法であって、
    (a) システム管理モードである間に、プロセッサを保護モードで動作するように構成し、かつ、前記プロセッサを1メガバイトよりも大きいアドレスにおいて動作させるステップ
    と、
    (b) 前記プロセッサのページング機能を呼び出すステップと、
    (c) 仮想モードにおいて動作するように前記プロセッサを構成するステップと、
    (d) 第1の位置に格納される命令シーケンスを処理するステップと、
    からなり、ステップ(a)、(b)、(c)、(d)は、システム管理要求を処理する命令が入力されると行われることを特徴とする方法。
  12. ステップ(b)は、
    (b.1)少なくとも1つのページテーブルを作るステップと、
    (b.2)前記プロセッサのページング機能を呼び出すステップと、
    からなることを特徴とする請求項11記載の方法。
  13. ステップ(a)の前に少なくとも1つのページテーブルをつくるステップをさらに有することを特徴とする請求項11記載の方法。
  14. ステップ(a)は、
    (a.1)第2の位置にニアジャンプを実行するステップと、
    (a.2)保護モードにおいて動作するように前記プロセッサを構成するステップと、
    からなることを特徴とする請求項11記載の方法。
  15. (e) 前記プロセッサが保護モードにて動作するように構成されることを要求するタスクを実行するための命令シーケンスに制御が移行すべきか否かを判別するステップと、
    (f) もしそうならば、保護モードにて動作するように前記プロセッサを構成し、前記タスクを実行するための命令シーケンスを実行するステップと、
    (g) そうでなければ、前記格納された命令シーケンスの処理を継続するステップと、
    をさらに有することを特徴とする請求項11記載の方法。
  16. (h) システム管理活動に関連する命令シーケンスの実行が終了したか否かを判別するステップと、
    (i) もしそうならば、前記仮想モードでの動作を行わないように前記プロセッサを構成し、前記保護モードにて動作するように前記プロセッサを構成し、ページングをディスエーブルするように前記プロセッサを構成し、
    そうでなければ、システム管理活動に関連する命令シーケンスの実行を継続することを特徴とする請求項15記載の方法。
  17. (i) メモリの前記プロセッサのコンテキストを復元するステップと、
    (i)呼び出し元の機能に戻すステップと、
    をさらに有することを特徴とする請求項15記載の方法。
  18. (j) 少なくとも1つのページテーブルを削除するステップと、
    (k) メモリの前記プロセッサのコンテキストを復元するステップと、
    (l) 呼び出し元の機能に戻すステップと、
    をさらに有することを特徴とする請求項15記載の方法。
  19. (e) システム管理活動に関連する命令シーケンスの実行が終了したか否かを判別するステップと、
    (f) もしそうならば、前記仮想モードでの動作を行わないように前記プロセッサを構成し、前記保護モードにて動作するように前記プロセッサを構成し、ページングをディスエーブルするように前記プロセッサを構成し、
    そうでなければ、システム管理活動に関連する命令シーケンスの実行を継続することを特徴とする請求項11記載の方法。
  20. (g) メモリの前記プロセッサのコンテキストを復元するステップと、
    (h) 呼び出し元の機能に戻すステップと、
    をさらに有することを特徴とする請求項19記載の方法。
  21. プロセッサベースシステムのシステム管理モードで命令を実行するコンピュータ実行可能なプロセスステップであって、
    (a)システム管理モードである間に、プロセッサを保護モードで動作するように構成し、かつ、前記プロセッサを1メガバイトよりも大きいアドレスにおいて動作させるステップと、
    (b) 前記プロセッサのページング機能を呼び出すステップと、
    (c) 仮想モードにおいて動作するように前記プロセッサを構成するステップと、
    (d) 第1の位置に格納される命令シーケンスを処理するステップと、
    からなり、ステップ(a)、(b)、(c)、(d)は、システム管理要求を処理する命令が入力されたときに行われることを特徴とするコンピュータ実行可能なプロセスステップ。
  22. ステップ(b)は、
    (b.l) 少なくとも1つのページテーブルを作成するステップと、
    (b.2) 前記プロセッサのページング機能を呼び出すステップと、
    からなることを特徴とする請求項21記載のコンピュータ実行可能なプロセスステップ。
  23. ステップ(a)の前に、少なくとも1つのページテーブルをつくるステップをさらに有することを特徴とする請求項21記載のコンピュータ実行可能なプロセスステップ。
  24. ステップ(a)は、
    (a.1) 第2の位置へのニアジャンプを実行するステップと、
    (a.2) 保護モードにおいて動作するように前記プロセッサを構成するステップと、
    からなることを特徴とする請求項21記載のコンピュータ実行可能なプロセスステップ。
  25. (e) 前記プロセッサが保護モードにおいて動作するように構成されることを要求するタスクを実行するための命令シーケンスに制御を移行すべきか否かを判別するステップと、
    (f) もしそうならば、前記保護モードにおいて動作するように前記プロセッサを構成し、前記タスクを実行するための命令シーケンスを実行するステップと、
    (g) そうでなければ、前記格納された命令シーケンスの処理を継続するステップと、
    を更に有することを特徴とする請求項21記載のコンピュータ実行可能なプロセスステップ。
  26. (h) システム管理活動に関連する命令シーケンスの実行が終了したか否かを判別するステップと、
    (i) もしそうならば、前記仮想モードでの動作を行わないように前記プロセッサを構成し、前記保護モードにおいて動作するように前記プロセッサを構成し、ページングをディスエーブルするように前記プロセッサを構成し、
    そうでなければ、システム管理活動に関連する命令シーケンスの実行を継続するステップと、
    をさらに有することを特徴とする請求項25記載のコンピュータ実行可能なプロセスステップ。
  27. (h) メモリの前記プロセッサのコンテキストを復元するステップと、
    (i) 呼び出し元の機能に戻すステップと、
    をさらに有することを特徴とする請求項25記載のコンピュータ実行可能なプロセスステップ。
  28. (j) 少なくとも1つのページテーブルを削除するステップと、
    (k) メモリの前記プロセッサのコンテキストを復元するステップと、
    (l) 呼び出し元の機能に戻すステップと、
    をさらに有することを特徴とする請求項25記載のコンピュータ実行可能なプロセスステップ。
  29. (e) システム管理活動に関連する命令シーケンスの実行が終了したか否かを判別するステップと、
    (f) もしそうならば、前記仮想モードでの動作を行わないように前記プロセッサを構成し、前記保護モードにおいて動作するように前記プロセッサを構成し、ページングをディスエーブルするように前記プロセッサを構成し、
    そうでなければ、システム管理活動に関連する命令シーケンスの実行を継続するステップと、
    をさらに有することを特徴とする請求項21記載のコンピュータ実行可能なプロセスステップ。
  30. (g) メモリの前記プロセッサのコンテキストを復元するステップと、
    (h) 呼び出し元の機能に戻すステップと、
    をさらに有することを特徴とする請求項29記載のコンピュータ実行可能なプロセスステップ。
JP2000515232A 1997-10-07 1998-10-07 仮想モードでのシステム管理モードサービスを実行する方法及び装置 Expired - Fee Related JP4434482B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/946,416 1997-10-07
US08/946,416 US5987604A (en) 1997-10-07 1997-10-07 Method and apparatus for providing execution of system management mode services in virtual mode
PCT/US1998/021088 WO1999018511A1 (en) 1997-10-07 1998-10-07 Method and apparatus for providing execution of system management mode services in virtual mode

Publications (3)

Publication Number Publication Date
JP2001519566A JP2001519566A (ja) 2001-10-23
JP2001519566A5 JP2001519566A5 (ja) 2009-04-23
JP4434482B2 true JP4434482B2 (ja) 2010-03-17

Family

ID=25484444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000515232A Expired - Fee Related JP4434482B2 (ja) 1997-10-07 1998-10-07 仮想モードでのシステム管理モードサービスを実行する方法及び装置

Country Status (6)

Country Link
US (1) US5987604A (ja)
JP (1) JP4434482B2 (ja)
AU (1) AU9788898A (ja)
GB (1) GB2345564B (ja)
TW (1) TW405097B (ja)
WO (1) WO1999018511A1 (ja)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6486883B1 (en) * 1999-06-18 2002-11-26 Phoenix Technologies, Ltd. Apparatus and method for updating images stored in non-volatile memory
US6996710B1 (en) 2000-03-31 2006-02-07 Intel Corporation Platform and method for issuing and certifying a hardware-protected attestation key
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US6934817B2 (en) 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US7111176B1 (en) 2000-03-31 2006-09-19 Intel Corporation Generating isolated bus cycles for isolated execution
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US6957332B1 (en) 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US7089418B1 (en) 2000-03-31 2006-08-08 Intel Corporation Managing accesses in a processor for isolated execution
US7082615B1 (en) 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7215781B2 (en) 2000-12-22 2007-05-08 Intel Corporation Creation and distribution of a secret value between two devices
US7225441B2 (en) 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US7035963B2 (en) 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US6907600B2 (en) 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7117376B2 (en) 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
US7272831B2 (en) 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
US7096497B2 (en) 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US6862641B1 (en) * 2001-05-10 2005-03-01 Advanced Micro Devices, Inc. Interruptable and re-enterable system management mode programming code
TW515959B (en) * 2001-05-10 2003-01-01 Via Tech Inc Method for memory data access by system management interrupt and computer system thereof
US7191440B2 (en) 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7103771B2 (en) 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US7308576B2 (en) 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US20040078681A1 (en) * 2002-01-24 2004-04-22 Nick Ramirez Architecture for high availability using system management mode driven monitoring and communications
US7480806B2 (en) 2002-02-22 2009-01-20 Intel Corporation Multi-token seal and unseal
US7124273B2 (en) 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7028149B2 (en) 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US7058807B2 (en) 2002-04-15 2006-06-06 Intel Corporation Validation of inclusion of a platform within a data center
US7076669B2 (en) 2002-04-15 2006-07-11 Intel Corporation Method and apparatus for communicating securely with a token
US7127548B2 (en) 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7082507B1 (en) 2002-04-18 2006-07-25 Advanced Micro Devices, Inc. Method of controlling access to an address translation data structure of a computer system
US7130977B1 (en) * 2002-04-18 2006-10-31 Advanced Micro Devices, Inc. Controlling access to a control register of a microprocessor
US7043616B1 (en) 2002-04-18 2006-05-09 Advanced Micro Devices, Inc. Method of controlling access to model specific registers of a microprocessor
US7401358B1 (en) 2002-04-18 2008-07-15 Advanced Micro Devices, Inc. Method of controlling access to control registers of a microprocessor
US7130951B1 (en) * 2002-04-18 2006-10-31 Advanced Micro Devices, Inc. Method for selectively disabling interrupts on a secure execution mode-capable processor
US7165135B1 (en) 2002-04-18 2007-01-16 Advanced Micro Devices, Inc. Method and apparatus for controlling interrupts in a secure execution mode-capable processor
US7603551B2 (en) * 2003-04-18 2009-10-13 Advanced Micro Devices, Inc. Initialization of a computer system including a secure execution mode-capable processor
US7139890B2 (en) 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US7142674B2 (en) 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
US7392415B2 (en) 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
US6996748B2 (en) 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7124327B2 (en) 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US7165181B2 (en) 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US7073042B2 (en) 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US7318235B2 (en) 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US7900017B2 (en) 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US7076802B2 (en) 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
US7146477B1 (en) 2003-04-18 2006-12-05 Advanced Micro Devices, Inc. Mechanism for selectively blocking peripheral device accesses to system memory
US20040268337A1 (en) * 2003-06-30 2004-12-30 Culter Bradley G. Allowing firmware to borrow a processor
US7210009B2 (en) * 2003-09-04 2007-04-24 Advanced Micro Devices, Inc. Computer system employing a trusted execution environment including a memory controller configured to clear memory
US7424709B2 (en) 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7287197B2 (en) 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US8079034B2 (en) 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
US7610611B2 (en) 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US7177967B2 (en) 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7366305B2 (en) 2003-09-30 2008-04-29 Intel Corporation Platform and method for establishing trust without revealing identity
US7237051B2 (en) 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US7636844B2 (en) 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US7356735B2 (en) 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US7917740B1 (en) * 2004-05-11 2011-03-29 Advanced Micro Devices, Inc. Virtualization assist for legacy x86 floating point exception handling
US7490070B2 (en) 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
US7305592B2 (en) 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8533777B2 (en) 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US7487222B2 (en) * 2005-03-29 2009-02-03 International Business Machines Corporation System management architecture for multi-node computer system
RU2294010C1 (ru) * 2005-09-05 2007-02-20 Павел Михайлович Шестаков Способ обработки цифровых данных
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US8959339B2 (en) 2005-12-23 2015-02-17 Texas Instruments Incorporated Method and system for preventing unauthorized processor mode switches
US8661265B1 (en) 2006-06-29 2014-02-25 David Dunn Processor modifications to increase computer system security
US7925815B1 (en) * 2006-06-29 2011-04-12 David Dunn Modifications to increase computer system security
US9280659B2 (en) * 2006-12-29 2016-03-08 Intel Corporation Methods and apparatus for remeasuring a virtual machine monitor
CN101246537B (zh) * 2008-03-28 2010-06-02 上海中标软件有限公司 一种基于可信多任务操作系统实现可信计算的方法
CN102467644B (zh) * 2010-11-17 2014-09-03 英业达股份有限公司 系统管理中断的执行方法
US10420058B2 (en) * 2015-11-05 2019-09-17 Verizon Patent And Licensing Inc. Data-driven sensor configuration and information processing
US10698713B2 (en) * 2016-11-29 2020-06-30 Red Hat Israel, Ltd. Virtual processor state switching virtual machine functions
US11138072B2 (en) * 2017-12-22 2021-10-05 Intel Corporation Protected runtime mode

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US35480A (en) * 1862-06-03 Improvement in axes
US4926322A (en) * 1987-08-03 1990-05-15 Compag Computer Corporation Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management
US5280599A (en) * 1989-01-09 1994-01-18 Kabushiki Kaisha Toshiba Computer system with memory expansion function and expansion memory setting method
US5283889A (en) * 1989-12-29 1994-02-01 Zenith Data Systems Corporation Hardware based interface for mode switching to access memory above one megabyte
US5175853A (en) * 1990-10-09 1992-12-29 Intel Corporation Transparent system interrupt
US5255379A (en) * 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
US5274834A (en) * 1991-08-30 1993-12-28 Intel Corporation Transparent system interrupts with integrated extended memory addressing
US5671422A (en) * 1994-11-14 1997-09-23 Intel Corporation Method and apparatus for switching between the modes of a processor
US5544344A (en) * 1994-12-06 1996-08-06 Digital Equipment Corporation Apparatus for caching smram in an intel processor based computer system employing system management mode
US5638532A (en) * 1994-12-06 1997-06-10 Digital Equipment Corporation Apparatus and method for accessing SMRAM in a computer based upon a processor employing system management mode
US5644755A (en) * 1995-02-24 1997-07-01 Compaq Computer Corporation Processor with virtual system mode
US5764999A (en) * 1995-10-10 1998-06-09 Cyrix Corporation Enhanced system management mode with nesting
US5784625A (en) * 1996-03-19 1998-07-21 Vlsi Technology, Inc. Method and apparatus for effecting a soft reset in a processor device without requiring a dedicated external pin

Also Published As

Publication number Publication date
GB2345564A (en) 2000-07-12
GB0008230D0 (en) 2000-05-24
WO1999018511A1 (en) 1999-04-15
TW405097B (en) 2000-09-11
GB2345564B (en) 2002-07-31
JP2001519566A (ja) 2001-10-23
US5987604A (en) 1999-11-16
AU9788898A (en) 1999-04-27
WO1999018511A9 (en) 1999-07-01

Similar Documents

Publication Publication Date Title
JP4434482B2 (ja) 仮想モードでのシステム管理モードサービスを実行する方法及び装置
US5659798A (en) Method and system for initiating and loading DMA controller registers by using user-level programs
US4779187A (en) Method and operating system for executing programs in a multi-mode microprocessor
US6219774B1 (en) Address translation with/bypassing intermediate segmentation translation to accommodate two different instruction set architecture
US7412702B1 (en) System software displacement in a virtual computer system
US4825358A (en) Method and operating system for executing programs in a multi-mode microprocessor
KR100624668B1 (ko) 가상 머신 모니터와 게스트 운영 체제 간의 주소 공간 충돌을 해결하는 방법
US5561788A (en) Method and system for executing programs using memory wrap in a multi-mode microprocessor
US6408386B1 (en) Method and apparatus for providing event handling functionality in a computer system
US5459869A (en) Method for providing protected mode services for device drivers and other resident software
US6230259B1 (en) Transparent extended state save
EP0794492A2 (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
US20020065989A1 (en) Master/slave processing system with shared translation lookaside buffer
US6694401B2 (en) Method and apparatus for executing real-mode interrupts from within extended SMRAM handler
JPH0619798A (ja) セレクタの値のロードを回避する方法とシステム
US6742103B2 (en) Processing system with shared translation lookaside buffer
JP2004342099A (ja) アドレスに基づいた処理制約のブロッキング
US6775734B2 (en) Memory access using system management interrupt and associated computer system
JP2004258840A (ja) 仮想化されたi/oデバイスをもつ計算機システム
US6564283B1 (en) Data processing system for expanded addresses
US20040122834A1 (en) Apparatus and method for switching mode in a computer system
US5555423A (en) Multi-mode microprocessor having a pin for resetting its register without purging its cache
EP0575171B1 (en) Enhanced system management method and apparatus
US20020156981A1 (en) Cacheable above one megabyte system management random access memory
CN118069403B (zh) 一种异常指令的处理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050929

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081202

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081209

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20090306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091127

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: 20091215

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091222

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: 20130108

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140108

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140108

Year of fee payment: 4

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

LAPS Cancellation because of no payment of annual fees