(57)【特許請求の範囲】
【請求項１】
ピアモニタにて信頼性・可用性・保守性（ＲＡＳ）フローをサポートする方法であって、
処理装置により、システムマネジメント割込み（ＳＭＩ）イベントを受け取ることと、
前記ＳＭＩイベントに応答して前記処理装置により、読み出し専用メモリ（ＲＯＭ）エントリーポイントから実行して前記ＳＭＩイベントに対処するよう特権マネジャを呼び出すことであり、前記特権マネジャは、メモリホットプラグ機能及びプロセッサホットプラグ機能のサポートを提供するホットプラグサービスモジュールを有する、呼び出すことと、
を有する方法。
【請求項２】
前記特権マネジャは、システムマネジメント割込み（ＳＭＩ）トランスファモニタ（ＳＴＭ）である、請求項１に記載の方法。
【請求項３】
前記特権マネジャは、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）のシステムマネジメントモード（ＳＭＭ）コードを前記特権マネジャのゲストとして実行するハイパーバイザを有する、請求項１に記載の方法。
【請求項４】
前記特権マネジャは、呼び出し後にランダムアクセスメモリ（ＲＡＭ）上でエラー検査を実行する、請求項１に記載の方法。
【請求項５】
前記特権マネジャは、前記エラー検査のために移行データ構造にアクセスして前記ＲＡＭの完全性を確認する、請求項４に記載の方法。
【請求項６】
前記移行データ構造は、前記ＲＯＭにおける前記特権マネジャのサイズ、前記ＲＡＭにおける前記特権マネジャのサイズ、周期的冗長検査（ＣＲＣ）値、チェック値、ハッシュ、又は暗号マーカーのうちのに少なくとも１つを有するデータを維持管理する、請求項５に記載の方法。
【請求項７】
前記エラー検査が前記ＲＡＭにおけるエラーを指し示すとき、前記特権マネジャは、ＢＩＯＳ  ＳＭＭハンドラを呼び出して前記ＲＡＭにおける前記エラーを解消する、請求項４に記載の方法。
【請求項８】
前記エラー検査が前記ＲＡＭにおけるエラーを指し示さないとき、前記特権マネジャは、前記ＲＡＭにおいて実行を行う前記特権マネジャの別バージョンに制御を渡す、請求項４に記載の方法。
【請求項９】
前記ホットプラグサービスモジュールは、メモリに関するホットプラグ機能をサポートするための、アプリケーションプログラミングインタフェース（ＡＰＩ）への一組のエクステンションを有し、前記ＡＰＩへの前記エクステンションは、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）と前記特権マネジャとの間で通信されるアドＢＩＯＳリソースＶＭＣＡＬＬ及びリムーブＢＩＯＳリソースＶＭＣＡＬＬを有する、請求項１に記載の方法。
【請求項１０】
前記ホットプラグサービスモジュールは、プロセッサに関するホットプラグ機能をサポートするための、アプリケーションプログラミングインタフェース（ＡＰＩ）への一組のエクステンションを有し、前記ＡＰＩへの前記エクステンションは、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）と前記特権マネジャとの間で通信されるアドプロセッサＶＭＣＡＬＬ及びリムーブプロセッサＶＭＣＡＬＬを有する、請求項１に記載の方法。
【請求項１１】
ピアモニタにて信頼性・可用性・保守性（ＲＡＳ）フローをサポートする装置であって、
特権実行環境及び低特権実行環境を有するメモリモジュールと、
前記メモリモジュールに通信可能に結合された処理装置であり、
システムマネジメント割込み（ＳＭＩ）イベントを受け取り、
前記ＳＭＩイベントに応答して、読み出し専用メモリ（ＲＯＭ）エントリーポイントから実行して前記ＳＭＩイベントに対処するようＳＭＩトランスファモニタ（ＳＴＭ）を呼び出し、且つ
前記ＳＴＭにより、前記ＳＴＭのホットプラグサービスモジュールを介して、メモリホットプラグ機能及びプロセッサホットプラグ機能のサポートを提供する
処理装置と、
を有する装置。
【請求項１２】
前記ＳＴＭは、ハイパーバイザとして実行を行い、且つ当該装置のベーシックインプット／アウトプットシステム（ＢＩＯＳ）のシステムマネジメントモード（ＳＭＭ）コードを前記ＳＴＭのゲストとして仮想化する、請求項１１に記載の装置。
【請求項１３】
前記ＳＴＭは、呼び出し後にランダムアクセスメモリ（ＲＡＭ）上でエラー検査を実行する、請求項１１に記載の装置。
【請求項１４】
前記エラー検査が前記ＲＡＭにおけるエラーを指し示すとき、前記ＳＴＭは、ＢＩＯＳ  ＳＭＭハンドラを呼び出して前記ＲＡＭにおける前記エラーを解消する、請求項１３に記載の装置。
【請求項１５】
前記エラー検査が前記ＲＡＭにおけるエラーを指し示さないとき、前記ＳＴＭは、前記ＲＡＭにおいて実行を行う別バージョンの特権マネジャに制御を渡す、請求項１３に記載の装置。
【請求項１６】
前記ホットプラグサービスモジュールは、メモリに関するホットプラグ機能をサポートするための、アプリケーションプログラミングインタフェース（ＡＰＩ）への一組のエクステンションを有し、前記ＡＰＩへの前記エクステンションは、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）と前記ＳＴＭとの間で通信されるアドＢＩＯＳリソースＶＭＣＡＬＬ及びリムーブＢＩＯＳリソースＶＭＣＡＬＬを有する、請求項１１に記載の装置。
【請求項１７】
前記ホットプラグサービスモジュールは、プロセッサに関するホットプラグ機能をサポートするための、アプリケーションプログラミングインタフェース（ＡＰＩ）への一組のエクステンションを有し、前記ＡＰＩへの前記エクステンションは、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）と前記ＳＴＭとの間で通信されるアドプロセッサＶＭＣＡＬＬ及びリムーブプロセッサＶＭＣＡＬＬを有する、請求項１１に記載の装置。
【請求項１８】
データを含む非一時的な機械読み取り可能記憶媒体であって、前記データは、処理装置によってアクセスされるときに、前記処理装置に、
前記処理装置がシステムマネジメント割込み（ＳＭＩ）イベントを受け取ることに応答して、読み出し専用メモリ（ＲＯＭ）エントリーポイントから前記処理装置によって実行される特権マネジャにより、ランダムアクセスメモリ（ＲＡＭ）の完全性を追跡する移行データ構造にアクセスすることと、
前記移行データ構造に基づいて前記特権マネジャにより、前記ＲＡＭ上でエラー検査を実行することと、
前記エラー検査が前記ＲＡＭにおけるエラーを指し示さないとき、前記特権マネジャにより、前記ＲＡＭにおいて実行を行う前記特権マネジャの別バージョンに制御を渡して前記ＳＭＩイベントに対処することであり、前記特権マネジャは、メモリホットプラグ機能及びプロセッサホットプラグ機能のサポートを提供するホットプラグサービスモジュールを有する、対処することと、
を有する処理を実行させる、非一時的なコンピュータ読み取り可能記憶媒体。
【請求項１９】
前記特権マネジャは、ハイパーバイザとして実行を行うシステムマネジメント割込み（ＳＭＩ）トランスファモニタ（ＳＴＭ）であり、前記ＳＴＭは、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）のシステムマネジメントモード（ＳＭＭ）コードを前記ＳＴＭのゲストとして仮想化する、請求項１８に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項２０】
前記処理は更に、前記エラー検査が前記ＲＡＭにおけるエラーを指し示すときに、前記特権マネジャにより、ＢＩＯＳ  ＳＭＭハンドラを呼び出して前記ＲＡＭにおける前記エラーを解消することを有する、請求項１８に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項２１】
前記ホットプラグサービスモジュールは、メモリに関するホットプラグ機能をサポートするための、アプリケーションプログラミングインタフェース（ＡＰＩ）への一組のエクステンションを有し、前記ＡＰＩへの前記エクステンションは、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）と前記特権マネジャとの間で通信されるアドＢＩＯＳリソースＶＭＣＡＬＬ及びリムーブＢＩＯＳリソースＶＭＣＡＬＬを有する、請求項１８に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項２２】
前記ホットプラグサービスモジュールは、プロセッサに関するホットプラグ機能をサポートするための、アプリケーションプログラミングインタフェース（ＡＰＩ）への一組のエクステンションを有し、前記ＡＰＩへの前記エクステンションは、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）と前記特権マネジャとの間で通信されるアドプロセッサＶＭＣＡＬＬ及びリムーブプロセッサＶＭＣＡＬＬを有する、請求項１８に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項２３】
システムマネジメント割込み（ＳＭＩ）イベントを受け取ることに応答して、読み出し専用メモリ（ＲＯＭ）エントリーポイントを介して、ランダムアクセスメモリ（ＲＡＭ）の完全性を追跡する移行データ構造にアクセスする手段と、
前記移行データ構造に基づいて、前記ＲＡＭ上でエラー検査を実行する手段と、
前記エラー検査が前記ＲＡＭにおけるエラーを指し示さないときに、前記ＲＡＭにおいて実行を行う特権マネジャのバージョンに制御を渡して前記ＳＭＩイベントに対処する手段と
を有し、
前記アクセスする手段は、メモリホットプラグ機能及びプロセッサホットプラグ機能のサポートを提供するホットプラグサービスモジュールを有する、
装置。
【請求項２４】
請求項２乃至１０の何れか一項に記載の方法を実行するように更に構成された請求項２３に記載の装置。
【請求項２５】
複数の命令を有する少なくとも１つの機械読み取り可能媒体であって、前記複数の命令は、コンピューティング装置上で実行されることに応答して、前記コンピューティング装置に、請求項１乃至１０の何れか一項に記載の方法を実行させる、機械読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実施形態は、概してコンピュータセキュリティに関し、より具体的には、ピアモニタにて信頼性・可用性・保守性（ＲＡＳ）フローをサポートする機構に関する。
【背景技術】
【０００２】
ＳＭＭは、全ての通常実行（ＯＳを含む）が一時停止されて、特別な別個のソフトウェア（通例では、ファームウェア又はハードウェア支援のデバッガ）が高特権モードで実行される動作モードである。ＳＭＭは、隔絶されたメモリ及び実行環境を提供し、ホスト物理メモリへの完全なアクセス及び周辺ハードウェアの完全な制御を保持しながら、ＯＳにはＳＭＭコードは見えない。ＳＭＭが開始されるとき、プロセッサの現在状態が保存され、全てのその他のプロセスが停止される。例えばデバッギング、ハードウェア管理、セキュリティ機能、エミュレーションなどの高特権化された処理がＳＭＭモードで実行されることができ、それに続いて、コンピューティング装置がプロセッサの保存状態に基づいて動作を再開する。ＳＭＩの発生を受けて、コンピューティング装置はＳＭＭに入り得る。
【０００３】
ＳＭＭコード実装における脆弱性が、装置動作に非常に重要なソフトウェアが隔離を通じて保護されるという幾つかの現行のセキュリティスキームの、コンピューティング装置への導入につながってきた。例えば、一部の処理装置に組み込まれているバーチャライゼーションテクノロジー（ＶＴ）機能などの仮想マシン（ＶＭ）環境において、１つ以上のマシンマネジャが、異なる動作環境で動作するＶＭを制御することがある。例えば、ＶＴは、仮想マシンマネジャ（ＶＭＭ）（ハイパーバイザとしても知られている）がゲストオペレーティングシステム（ＯＳ）の特権を解除することができる主モニタモードを規定する。同様に、ＶＴはまた、システムマネジメント割込み（ＳＭＩ）ハンドラの特権を解除し得るＳＭＭトランスファモニタ（ＳＴＭ）を提供し、それにより、システムマネジメントモード（ＳＭＭ）においてＳＭＩハンドラがＳＴＭのゲストとして実行されるようにし得る。
【０００４】
しかしながら、ＳＴＭの現行実装は、信頼性、可用性及び保守性（ＲＡＳ）のサポートを欠いている。ＲＡＳとは、データ完全性を保護するとともにコンピュータシステムが故障なく長期間にわたって可用のままであることを可能にする多数の特徴を記述するために使用される一組の関係し合う特性である。ＲＡＳ特性は、コンピュータ製品又はコンポーネントを設計、製造、購入あるいは使用するときに考慮され得る。現行ＳＴＭ実装は、ホットプラグ（活線挿抜）、読み出し専用メモリ（ＲＯＭ）ＳＭＩハンドラ機構、及びその他のＲＡＳアクションをサポートするときのＲＡＳ要件を満足しない。
【０００５】
例えば、ホットプラグサポートの場合、現行ＳＴＭ実装は、ＣＰＵ又はメモリにホットプラグサポートを提供しない。ＲＯＭ  ＳＭＩハンドラ機構サポートの場合、現行ＳＴＭ実装は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）上でのＳＴＭをサポートするのみである。
【図面の簡単な説明】
【０００６】
本開示は、以下に与えられる詳細な説明から、及び本開示の様々な実施形態の添付図面から、より十分に理解されることになる。図面は、しかしながら、単に説明及び理解のためのものであり、本開示を特定の実施形態に限定するように解されるべきでない。
【図１】本開示の一実施形態に従った、ピアモニタにて信頼性・可用性・保守性（ＲＡＳ）フローをサポートする装置のブロック図である。
【図２】本開示の一実施形態に従った、ピアモニタのＲＯＭベース実行を実装するメモリモジュールを例示するブロック図である。
【図３】本開示の一実施形態に従った、ＲＡＳをサポートするピアモニタの読み出し専用メモリ（ＲＯＭ）ベース実行の方法のフロー図である。
【図４】本開示の一実施形態に従った、ピアモニタによるホットプラグサポートを例示するブロック図である。
【図５Ａ】本開示の一実施形態に従った、メモリを追加するときのＳＴＭによるホットプラグサポートの方法を例示するフロー図である。
【図５Ｂ】本開示の一実施形態に従った、メモリを除去するときのＳＴＭによるホットプラグサポートの方法を例示するフロー図である。
【図６Ａ】本開示の一実施形態に従った、プロセッサを追加するときのＳＴＭによるホットプラグサポートの方法を例示するフロー図である。
【図６Ｂ】本開示の一実施形態に従った、プロセッサを除去するときのＳＴＭによるホットプラグサポートの方法を例示するフロー図である。
【図７】コンピュータシステムの一実施形態を例示するブロック図である。
【発明を実施するための形態】
【０００７】
本開示の実施形態は、ピアモニタにて信頼性・可用性・保守性（ＲＡＳ）フローをサポートする機構を提供する。一実施形態において、ＲＡＳに対応した高特権（high  privilege；ＨＰ）マネジャが、例えばシステムマネジメント割込み（ＳＭＩ）トランスファモニタ（ＳＴＭ）などのピアモニタとして作用する。ＳＴＭは、ＳＭＩハンドラの特権を解除して、ＳＭＩハンドラがシステムマネジメントモード（ＳＭＭ）においてＳＴＭのゲストとして実行させるようにし得る。ＳＴＭの現行実装はＲＡＳフローのサポートを欠いているので、本開示の実施形態は、ＲＡＳの機構をサポートするように構成されたＲＡＳ対応ＨＰマネジャを実現する。特に、例えばＳＴＭなどのＲＡＳ対応ＨＰマネジャは、ＲＯＭベースの実行及びホットプラグ機能のサポートを実現し得る。
【０００８】
一実施形態において、本開示の方法は、処理装置により、システムマネジメント割込み（ＳＭＩ）イベントを受け取ることを含む。当該方法は更に、ＳＭＩイベントに応答して、読み出し専用メモリ（ＲＯＭ）エントリーポイントから実行してＳＭＩイベントを取り扱うように特権マネジャを呼び出すことを含み、特権マネジャは、メモリホットプラグ機能及びプロセッサホットプラグ機能のサポートを提供するホットプラグサービスモジュールを有する。
【０００９】
図１は、本開示の一実施形態に従った、ピアモニタにてＲＡＳフローをサポートする装置１００のブロック図である。装置１００の幾つかの例は、以下に限られないが、例えば携帯電話若しくはスマートフォンなどのモバイル通信装置、例えばタブレットコンピュータなどのモバイルコンピューティング装置、ネットブック、ノートブックコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、及びサーバコンピュータなどを含み得る。
【００１０】
装置１００は、例えば、装置１００の基本動作を取り扱うホスト１０２を含み得る。ホスト１０２は、例えば、処理モジュール１０４、ブリッジングモジュール１０６、メモリモジュール１０８、及びその他のモジュール１１０を含み得る。処理モジュール１０４は、別々のコンポーネント内に位置する１つ以上のプロセッサ（処理装置としても知られる）、又はそれに代えて、例えばシステム・オン・チップ（ＳＯＣ）構成で配置された、単一の集積回路（ＩＣ）に内蔵された１つ以上の処理コアを有し得る。
【００１１】
ブリッジングモジュール１０６は、処理モジュール１０４を支援するように構成された回路を含み得る。回路例は、装置１００内の様々なバスを用いた通信を取り扱うように構成され得るインタフェース／ブリッジング回路（例えば、一群の集積回路（ＩＣ））を含み得る。例えば、ブリッジングモジュール１０６は、１つの種類／速さの通信を別のものへと変換することによって様々なモジュール間での信号伝達を取り扱い得ることができ、また、異なるシステム実装、アップグレードなどを可能にするように多様な異なる装置と互換性を有し得る。ブリッジングモジュール１０６の機能の一部はまた、処理モジュール１０４、メモリモジュール１０８、又はその他のモジュール１１０に組み込まれてもよい。
【００１２】
処理モジュール１０４は命令を実行し得る。命令は、以下に限られないが例えばデータを読み出すこと、データを書き込むこと、データを処理すること、データを定式化すること、データを変換すること、データを変形することなどの活動を処理モジュール１０４に実行させるプログラムコードを含み得る。命令やデータなどを含む情報は、メモリモジュール１０８に格納され得る。
【００１３】
メモリモジュール１０８は、固定形態又は取外し可能形態のランダムアクセスメモリ（ＲＡＭ）又は読み出し専用メモリ（ＲＯＭ）を含み得る。ＲＡＭは、例えばスタティックＲＡＭ（ＳＲＡＭ）又はダイナミックＲＡＭ（ＤＲＡＭ）など、装置１００の動作中に情報を保持するメモリを含み得る。ＲＯＭは、例えば、装置１００が起動するときの命令を提供するコンピューティング装置ＢＩＯＳメモリ、電子的プログラム可能ＲＯＭ（ＥＰＲＯＭ）やＦｌａｓｈ（フラッシュ）などのプログラム可能メモリ、等々のメモリを含み得る。他の固定式メモリ及び／又は取外し可能メモリは、例えばフロッピー（登録商標）ディスクやハードドライブなどの磁気メモリ、例えばソリッドステートＦｌａｓｈメモリ（例えば、ｅＭＭＣなど）などの電子メモリ、取外し可能なメモリカード若しくはメモリスティック（例えば、ＵＳＢ、マイクロＳＤなど）、例えばコンパクトディスクに基づくＲＯＭ（ＣＤ−ＲＯＭ）やホログラフィなどの光メモリ、等々を含み得る。
【００１４】
その他のモジュール１１０は、装置１００内のその他の機能を支援することに向けられたモジュールを含み得る。その他のモジュール１１０は、例えば、装置１００に電力を供給するモジュール、装置１００における有線通信及び／又は無線通信を支援するモジュール、装置１００におけるユーザインタフェース（ＵＩ）機能を提供するモジュール、及び専用化された機能を支援するモジュールなどを含み得る。その他のモジュール１１０の構成は、例えば、フォームファクタや、装置１００がそれに合わせて構成されている使用法などに応じて様々となり得る。
【００１５】
本開示の一実施形態に従ったメモリモジュール１０８の一実施形態が、１０８’の拡大図に示されている。メモリモジュール１０８’は、高特権実行環境１１２及び低特権実行環境１２０を含み得る。高特権実行環境１１２で実行されるソフトウェアは、装置１００内のその他のソフトウェアの動作に影響を及ぼすことができる（例えば、低特権実行環境１２０内のソフトウェアを読み出し、書き込み、且つ／或いは実行することができ得る）が、低特権実行環境１２０で実行されるソフトウェアは、高特権実行環境１１２で実行される如何なるソフトウェアにも影響を及ぼすことができない。高特権実行環境１１２は、ＢＩＯＳゲスト１１６及びその他のゲスト１１８の動作を管理する信頼性・可用性・保守性（ＲＡＳ）に対応した高特権（ＨＰ）マネジャ１１４を含み得る。低特権実行環境１２０は、ＯＳゲスト１（１２４）及びＯＳゲスト２（１２６）の動作を管理する低特権（low  privilege；ＬＰ）マネジャ１２２を含み得る。２つのＯＳゲスト１２４、１２６が示されているが、本開示に相応する実施形態は２つのみのゲストに限定されない。
【００１６】
少なくとも１つの実施形態において、装置１００が特定のセキュリティモードに入るとき、高特権実行環境１１２における特定の活動が発生し得る。このセキュリティモードでは、処理モジュール１０４における全てのその他の処理活動が中断され、処理モジュールの現在コンテキストが保存され、そして、高特権実行環境１１２に関する処理が、装置１００の通常動作に戻るのに先立って実行され得る。このセキュリティモードは、ＲＡＳ対応ＨＰマネジャ１１４によって設定され得る。
【００１７】
本開示の実施形態において、ＲＡＳ対応ＨＰマネジャ１１４は、例えばシステムマネジメント割込み（ＳＭＩ）トランスファモニタ（ＳＴＭ）などのピアモニタとし得る。ＳＴＭ１１４は、システムマネジメント割込み（ＳＭＩ）ハンドラの特権を解除して、ＳＭＩハンドラがシステムマネジメントモード（ＳＭＭ）においてＳＴＭ１１４のゲストとして実行させるようにし得る。本開示の実施形態は、ＲＡＳの機構をサポートしているが故にＲＡＳに対応していると見なされるＳＴＭ１１４を提供する。特に、ＲＡＳ対応ＨＰマネジャ１１４は、ＳＴＭ１１４のＲＯＭベースの実行及びホットプラグ機能のＳＴＭ１１４サポートを実現し得る。ホットプラグ（活線挿抜）とは、システムをシャットダウン又はリブートすることなくコンピュータシステムコンポーネントを置換又は追加する機能を述べるものである。図２及び４は、本開示の実施形態においてＳＴＭ１１４によってサポートされるＲＯＭベース実行及びホットプラグのＲＡＳ機構の更なる詳細を提示するものである。
【００１８】
図２は、本開示の一実施形態に従った、ピアモニタのＲＯＭベース実行を実装するメモリモジュール２００を例示するブロック図である。一実施形態において、メモリモジュール２００は、図１に関して説明したメモリモジュール１０８と同じである。他の一実施形態において、このピアモニタは、例えば図１に関して説明したＳＴＭ１１４などのＳＴＭである。メモリモジュール２００は、ＲＯＭ２１０の領域及びＲＡＭ２２０の領域の双方を含み得る。
【００１９】
本開示の実施形態は、ＳＴＭイメージ２１１をＲＯＭ２１０内に置く。さらに、ＳＴＭページテーブル及びグローバルディスクリプタテーブル（ＧＤＴ）２１２が作成されて、ＳＴＭイメージ２１１とともにＲＯＭ２１０内に置かれる。ＳＴＭページテーブル及びＳＴＭ  ＧＤＴ２１２は、ＳＴＭイメージ２１１がロングモード（例えば、ｘ６４ビットモード）で実行されることを可能にする。一実施形態において、ＳＴＭページテーブル及びＧＤＴ２１２のアクセスビット及びダーティビットが、デフォルトによって設定される。ＲＯＭ  ＳＴＭ２１１はまた、ＲＯＭ  ＳＴＭ２１１のページテーブル及びＧＤＴ２１２を格納するＳＴＭヘッダ２１４を含み得る。
【００２０】
一実施形態において、ＲＯＭ  ＳＴＭは、コンピュータシステムのＢＩＯＳのブートアッププロセス中に初期化され得る。ＢＩＯＳ  ＳＭＭモジュール（図示せず）が、ＢＩＯＳ及びＳＴＭコードを実行するプロセッサの特別なレジスタにＲＯＭ  ＳＴＭイメージ２１１のアドレスを置き得る。このＲＯＭ  ＳＴＭイメージ２１１アドレスは、ＲＯＭ  ＳＴＭイメージ２１１に関するエントリーポイント２１５であり、ＳＴＭコードのスタック２１３がＳＴＭコードの実行のために構築される。一実施形態において、ＲＯＭ  ＳＴＭエントリーポイント２１５を格納する特別なレジスタは、ＩＡ３２＿ＳＭＭ＿ＭＯＮＩＴＯＲ  ＭＳＲである。
【００２１】
実行時、ＳＭＩが発生するとき、プロセッサは先ず（特別なレジスタにおけるアドレスを用いて）ＲＯＭ  ＳＴＭエントリーポイント２１５を呼び出す。そして、ＲＯＭ  ＳＴＭ２１１が、メモリモジュール２００のＲＡＭ２２０領域でメモリエラーが起こるかを検査し得る。ＲＡＭ２２０におけるエラーが存在しないことをメモリ検査が明らかにする場合、ＲＡＭ  ＳＴＭエントリーポイント２２５を呼び出すことによって、ＳＴＭコードの処理がＲＡＭ  ＳＴＭ２２１に移り得る。一実施形態において、ＲＡＭ  ＳＴＭエントリーポイント２２５は、ＲＯＭ  ＳＴＭ２１１に格納される。一実施形態において、ＲＡＭ  ＳＴＭ２２１は、例えばＲＡＭ２２０のトップセグメント（ＴＳＥＧ）のモニタセグメント（ＭＳＥＧ）領域内など、ＳＴＭコードが典型的に存在するＲＡＭ２２０の領域内に存在する。
【００２２】
一方、ＲＡＭエラーが存在することをＲＯＭ  ＳＴＭ２１１が検出した場合、ＲＯＭ  ＳＴＭ２１１はＲＡＭ  ＳＴＭ２２１を呼び出すことができない。代わりに、ＲＯＭ  ＳＴＭ２１１は、ＢＩＯＳ  ＲＯＭ  ＳＭＭハンドラを直接的に呼び出して、（ＢＩＯＳ  ＳＭＭハンドラの選択に従って）エラーを含むＲＡＭ２２０に対処するかその他の方法でエラーに対処するかを行うことができる。一実施形態において、ＢＩＯＳ  ＲＯＭ  ＳＭＭハンドラのエントリーポイントは、例えばＴＸＴ  ＤＥＳＣ  ＳＭＭ  ＳＡＶＥ  ＳＴＡＴＥ  ＭＳＲなど、他の特別なレジスタにて定められ得る。
【００２３】
本開示の実施形態において、ＲＯＭ  ＳＴＭ２１１とＲＡＭ  ＳＴＭ２２１との間での移行（トランジション）のために、ＳＴＭ移行状態データ構造２２２が使用される。一実施形態において、ＳＴＭ移行状態データ構造２２２は、ＲＡＭ２２０のＭＳＥＧ部分の先頭に含められる。メモリモジュール２００を有するシステムの初期化中に、ＢＩＯＳ  ＳＭＭが、ＲＯＭ  ＳＴＭ２１１の状態とＲＡＭ  ＳＴＭ２２１の状態とを決定し得る。この移行データ構造は、以下に限られないが、ＲＯＭ  ＳＴＭのサイズ、ＲＡＭ  ＳＴＭのサイズ、ＣＲＣ、チェック、ハッシュ、又はその他の暗号マーカーを含み得る。移行データ構造は、制御を渡すことに先立ってＲＡＭ  ＳＴＭの完全性を確認するために、ＲＯＭ  ＳＴＭ２１１によって利用され得る。
【００２４】
上述のＲＯＭベースＳＴＭ実行は、ＲＡＳ機構である実行時のメモリエラーへの対処を可能にする。これは、ＲＡＭ  ＳＴＭ又はＲＡＭのその他の部分がエラーを含む状況に対処するために、ＳＴＭの初期フローをＲＯＭに押し付けることを可能にする。
【００２５】
図３は、本開示の一実施形態に従った、ＲＡＳをサポートするピアモニタのＲＯＭベース実行の方法３００のフロー図である。方法３００は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（例えば、処理装置上で実行される命令など）、ファームウェア、又はこれらの組み合わせを有し得る処理ロジックによって実行され得る。一実施形態において、方法３００は、図１に関して説明した装置１００によって実行される。
【００２６】
方法３００はブロック３１０で開始し、そこで、ＳＭＩイベントを検出したことを受けて、ＲＯＭ領域内のＳＴＭコードが呼び出される。一実施形態において、プロセッサが、ＳＭＩイベントを検出し、当該プロセッサのレジスタに格納されたＲＯＭ  ＳＴＭのエントリーポイントのアドレスに基づいてＲＯＭ  ＳＴＭコードを呼び出す。そして、ブロック３２０にて、ＲＯＭ  ＳＴＭコードが、ＲＡＭメモリ上でエラー検査を実行する。決定ブロック３３０にて、ＲＡＭメモリにエラーが存在したかが決定される。
【００２７】
決定ブロック３３０でＲＡＭエラーが存在し、且つエラーのあるメモリがＯＥＭ  ＳＭＭコードの領域に含まれない場合、方法３００はブロック３４０に進み、そこで、ＢＩＯＳ  ＳＭＭハンドラがＲＯＭ  ＳＴＭコードから直接的に呼び出される。一実施形態において、ＢＩＯＳ  ＳＭＭハンドラのエントリーポイントアドレスが、プロセッサのレジスタに格納され且つＲＯＭ  ＳＴＭによって使用されて、ＢＩＯＳ  ＳＭＭハンドラが呼び出され得る。ブロック３５０にて、ＢＩＯＳ  ＳＭＭハンドラがＲＡＭにおけるメモリエラーを解決するために、実行制御がＲＯＭ  ＳＴＭコードからＢＩＯＳ  ＳＭＭハンドラに渡される。
【００２８】
決定ブロック３３０でＲＡＭメモリエラーが存在し、且つメモリがＯＥＭ  ＳＭＲＡＭと重なり合う場合、ＳＴＭは、メモリロケーションの情報を用いてマシン検査ログを構築することができる。そして、マシン検査停止（アボート）を投入すること及び／又はマシンをリセットすることによってファームウェアがホスト環境に戻り得る。何れの場合も、ＯＳエージェントがマシン検査ログからエラー情報を突き止めることができる。
【００２９】
決定ブロック３３０でＲＡＭエラーが検出されない場合、方法３００はブロック３６０に進み、そこで、ＲＡＭ  ＳＴＭコードがＲＯＭ  ＳＴＭコードから呼び出される。一実施形態において、ＲＯＭ  ＳＴＭからＲＡＭ  ＳＴＭに移行するためにＳＴＭ移行データ構造が使用される。ＲＯＭ  ＳＴＭは、移行構造を用いて制御を渡すとともに、メモリエラーが報告されたメモリ範囲にＲＯＭ  ＳＴＭが重なり合うかを突き止め得る。そして、ブロック３７０にて、ＲＡＭ  ＳＴＭが通常のＳＴＭアクションを取って、ＳＭＭゲストを呼び出し、ＳＭＩイベントからの例外に対処し、システムマネジメントモードからレジューム（Resume  from  System  Management  Mode；ＲＳＭ）し、そして元々の実行環境に戻るために、実行制御がＲＯＭ  ＳＴＭからＲＡＭ  ＳＴＭに渡される。
【００３０】
図４は、本開示の実施形態に従った、ピアモニタによるＲＡＳのためのホットプラグサポートを例示するブロック図である。ここに説明される実施形態の一部は、多くのマイクロプロセッサで現在利用可能なバーチャライゼーションテクノロジー（ＶＴ）に関連する専門用語を用いて記述され得る。ＶＴは、２つ以上の仮想マシン（ＶＭ）が同時に、安全且つ効率的な手法で、物理的な処理リソースへのアクセスを共有することを可能にする機能である。しかしながら、これらの用語の使用は、ここでの説明のためであり、本開示に相応する実装は、このような専門用語を用いることに限定されるものではない。例えば、同様の機能を提供するその他のハードウェア（例えば、マイクロプロセッサ）及び／又はソフトウェアも、ここに開示される様々な実施形態に相応する手法で使用され得る。
【００３１】
図４の実装例において、高特権実行環境メモリ１１２、ＳＴＭ１１４、ＢＩＯＳゲスト１１６、及び低特権実行環境メモリ１２０は、同じ参照符号が付された図１からの対応する部分と同じである。ＳＴＭは、ＢＩＯＳ  ＳＭＭゲスト１１６の動作を管理するように構成される。一実施形態において、図１からのＬＰマネジャ１２２が、低特権実行環境メモリ１２０のＭＬＥ（Measured  Launch  Environment）１２２として例示される。ＳＴＭ１１４が、多様な異なるＶＭＣＡＬＬコマンドを用いてＢＩＯＳ  ＳＭＭ１１６及びＭＬＥ１２２と通信し、この逆もまた然りである。ＶＭＣＡＬＬコマンドは、ハイパーバイザとゲストとの間又は２つの異なるハイパーバイザの間の命令を含み得る。一部の実施形態において、ＶＭＣａｌｌは、例えばＭＬＥ又はＢＩＯＳ  ＳＭＭなどの仮想マシンゲストが例えばＳＴＭなどのハイパーバイザと通信するために使用することが可能な機構である。
【００３２】
一実施形態において、ＲＡＳ対応ＳＴＭのホットプラグ機能をサポートするためのアプリケーションプログラミングインタフェース（ＡＰＩ）への一組のエクステンション（拡張）を規定するために、ＳＴＭ１１４にホットプラグサービスモジュール４２０が付加される。ホットプラグサービスモジュール４２０は、ＢＩＯＳ  ＳＭＭ１１６及びＭＬＥ１２２の中の対応するホットプラグモジュール４１０、４３０と通信し得る。
【００３３】
一実施形態において、ホットプラグサービスモジュール４２０は、メモリホットプラグ処理及びプロセッサホットプラグ処理のサポートを提供する。メモリホットプラグに関し、アド（追加）ＢＩＯＳリソースＶＭＣＡＬＬ及びリムーブ（除去）ＢＩＯＳリソースＶＭＣＡＬＬという２つの新たなＢＩＯＳ・ツー・ＳＴＭ  ＶＭＣＡＬＬコマンドが導入される。ここでの説明は具体的にアドＢＩＯＳリソースＶＭＣＡＬＬ及びリムーブＢＩＯＳリソースＶＭＣＡＬＬと称しているが、このような命令のその他の識別が用いられてもよく、本開示の実施形態は、ここで使用される特定の名称に限定されるものではない。以下の図５Ａ及び５Ｂは、本開示の一実施形態に従った、ＳＴＭによるホットプラグサポートを用いてメモリを追加及び除去するためのフロー例を記述するものである。
【００３４】
プロセッサホットプラグに関し、アド（追加）プロセッサＶＭＣＡＬＬ及びリムーブ（除去）プロセッサＶＭＣＡＬＬという２つの新たなＢＩＯＳ・ツー・ＳＴＭ  ＶＭＣＡＬＬコマンドが導入される。ここでの説明は具体的にアドプロセッサＶＭＣＡＬＬ及びリムーブプロセッサＶＭＣＡＬＬと称しているが、このような命令のその他の識別が用いられてもよく、本開示の実施形態は、ここで使用される特定の名称に限定されるものではない。以下の図６Ａ及び６Ｂは、本開示の一実施形態に従った、ＳＴＭによるホットプラグサポートを用いてプロセッサを追加及び除去するためのフロー例を記述するものである。
【００３５】
図５Ａは、本開示の一実施形態に従った、コンピュータシステムに対してメモリを追加するときのＳＴＭによるホットプラグサポートの方法５００のフロー図である。方法５００は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（例えば、処理装置上で実行される命令など）、ファームウェア、又はこれらの組み合わせを有し得る処理ロジックによって実行され得る。一実施形態において、方法５００は、図４に関して説明したＳＴＭ１１４によって実行される。
【００３６】
方法５００はブロック５０５で開始し、そこで、ＳＴＭにて、ＢＩＯＳから、アドＢＩＯＳリソースＶＭＣＡＬＬが受け取られる。一実施形態において、アドＢＩＯＳリソースＶＭＣＡＬＬは、ＳＭＩイベントによって新たなメモリが追加されることの通知をＢＩＯＳが受信した後に受け取られる。決定ブロック５１０にて、ＳＴＭは、メモリのＭＬＥ保護領域と新たなメモリが関連付けられることになるメモリの領域との間に重なりが存在するかを決定する。一実施形態において、ＳＴＭは、ＢＩＯＳによって及びＭＬＥによって要求されるリソースのリストを維持管理し、決定ブロック５１０での重なり決定のためにこのリストを照合することができる。決定ブロック５１０で重なりが検出された場合、ＳＴＭは、ブロック５４５にて、例外を生成して、新たなメモリの追加を拒否する。
【００３７】
一方、決定ブロック５１０で重なりが検出されない場合、方法５００はブロック５１５に進み、そこで、ＳＴＭがＢＩＯＳに承認を送信し、新たなメモリを追加する。その後、ブロック５２０にて、ＳＴＭは、ＢＩＯＳからリムーブＢＩＯＳリソースＶＭＣＡＬＬを受け取る。これは、重なりがないことの確認をＳＴＭがＢＩＯＳに対して行った後にＢＩＯＳが上記新たなメモリに一時的にアクセスすることに応答するものであり得る。
【００３８】
ブロック５２５にて、リムーブＢＩＯＳリソースＶＭＣＡＬＬに応答して、ＳＴＭは、ＭＬＥに対して上記新たなメモリのメモリ保護を解き放つ。一実施形態において、新たなメモリのメモリ保護がＭＬＥに対して解き放たれると、ＭＬＥは、システムコントロール割込み（ＳＣＩ）イベントによって追加された新たなメモリを受け取り得る。ブロック５３０にて、ＳＴＭは、ＭＬＥからプロテクト（保護）リソースＶＭＣＡＬＬを受け取る。応答して、ＳＴＭは、決定ブロック５３５にて、ＢＩＯＳが宣言したリソース領域と上記新たなメモリに関連付けられた領域のメモリとの間に重なりが存在するかを決定する。
【００３９】
重なりが検出された場合、方法５００はブロック５４５に進み、そこで、ＳＴＭによって例外が生成されて、新たなメモリの追加が拒否される。一方、重なりが検出されない場合、ブロック５４０にて、ＳＴＭによって新たなメモリ領域がＭＬＥのために保護される。一実施形態において、新たなメモリリソースは、ＳＴＭによって維持管理されるＭＬＥリソースのリストに追加される。そして、ＭＬＥは、この新たなメモリを追加するゲストに対して仮想ＳＣＩを投入して、このゲストがこの新たなメモリを使用し得るようにすることができる。
【００４０】
図５Ｂは、本開示の一実施形態に従った、コンピュータシステムに対してメモリを除去するときのＳＴＭによるホットプラグサポートの方法５５０のフロー図である。方法５５０は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（例えば、処理装置上で実行される命令など）、ファームウェア、又はこれらの組み合わせを有し得る処理ロジックによって実行され得る。一実施形態において、方法５５０は、図４に関して説明したＳＴＭ１１４によって実行される。
【００４１】
方法５５０はブロック５６０で開始し、そこで、ＳＴＭが、ＭＬＥからアンプロテクト（保護解除）リソースＶＭＣＡＬＬを受け取る。一実施形態において、アンプロテクトリソースＶＭＣＡＬＬは、ＭＬＥのゲストのうちの１つに関連付けられたメモリをＭＬＥが除去することに応答して、ＭＬＥによってＳＴＭに送信される。ゲストがメモリを除去し、それにより、ＳＭＩを介してＢＩＯＳへのメモリ除去要求が生成されてもよい。同様に、ＢＩＯＳがＳＣＩをトリガーしてＭＬＥに通知し、ゲストがメモリを除去するようにＭＬＥが仮想ＳＣＩをゲストに対して投入してもよい。メモリが除去された後に、ブロック５６０でＭＬＥがＳＴＭへのアンプロテクトリソースＶＭＣＡＬＬを引き起こしてもよい。
【００４２】
その後、ブロック５７０にて、ＳＴＭが、ＳＴＭによって維持管理される１つのリスト（又は複数のリスト）において、そのメモリのＭＬＥ保護を除去する。そして、ＢＩＯＳがそのメモリを除去してリムーブＢＩＯＳリソースＶＭＣＡＬＬを呼び出し、それがブロック５８０でＳＴＭによって受け取られる。リムーブＢＩＯＳリソースＶＭＣＡＬＬに応答して、ブロック５９０にて、ＳＴＭが、ＳＴＭによって維持管理されるＢＩＯＳリソースリストからそのメモリを除去する。
【００４３】
図６Ａは、本開示の一実施形態に従った、コンピュータシステムに対してプロセッサを追加するときのＳＴＭによるホットプラグサポートの方法６００のフロー図である。方法６００は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（例えば、処理装置上で実行される命令など）、ファームウェア、又はこれらの組み合わせを有し得る処理ロジックによって実行され得る。一実施形態において、方法６００は、図４に関して説明したＳＴＭ１１４によって実行される。
【００４４】
方法６００はブロック６１０で開始し、そこで、コンピューティングシステム上で既に動作している元々のプロセッサを介して、ＢＩＯＳから、アドプロセッサＶＭＣＡＬＬが受け取られる。一実施形態において、アドプロセッサＶＭＣＡＬＬは、新たなプロセッサが追加されることを指し示したＳＭＩイベントをＢＩＯＳが受信することに応答して受け取られる。ブロック６２０にて、ＳＴＭは、当該ＳＴＭによって維持管理されるＢＩＯＳリソースのリストに新たなプロセッサを追加する。一実施形態において、ＢＩＯＳリソースのリストは、コンピューティングシステムのプロセッサを詳述する例えばリンク付けられたリストなどのデータ構造を含む。
【００４５】
ブロック６３０にて、ＳＴＭにより、この新たなプロセッサを介してＭＬＥから、イニシャライズプロテクションＶＭＣＡＬＬが受け取られる。一実施形態において、イニシャライズプロテクションＶＭＣＡＬＬは、ＳＣＩイベントを介して追加されるこの新たなプロセッサをＭＬＥが受け取ることに応答して受信される。ブロック６４０にて、ＳＴＭによってこの新たなプロセッサ上でＳＴＭが有効にされる。この新たなプロセッサに対してＳＴＭが有効にされると、ＭＬＥは、この新たなプロセッサを追加するゲストに対して仮想ＳＣＩを投入して、ゲストがプロセッサを使用することができるようにし得る。
【００４６】
図６Ｂは、本開示の一実施形態に従った、コンピュータシステムに対してプロセッサを除去するときのＳＴＭによるホットプラグサポートの方法６５０のフロー図である。方法６５０は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（例えば、処理装置上で実行される命令など）、ファームウェア、又はこれらの組み合わせを有し得る処理ロジックによって実行され得る。一実施形態において、方法６５０は、図４に関して説明したＳＴＭ１１４によって実行される。
【００４７】
方法６５０はブロック６６０で開始し、そこで、ＳＴＭがＭＬＥからストップＳＴＭ  ＶＭＣＡＬＬを受け取る。一実施形態において、ストップＳＴＭ  ＶＭＣＡＬＬは、ＭＬＥのゲストのうちの１つに関連付けられたプロセッサをＭＬＥが除去することに応答して、ＭＬＥによってＳＴＭに送信される。ゲストがプロセッサを除去し、それにより、ＳＭＩを介してＢＩＯＳへのプロセッサ除去要求が生成されてもよい。同様に、ＢＩＯＳがＳＣＩをトリガーしてＭＬＥに通知し、ゲストがプロセッサを除去するようにＭＬＥが仮想ＳＣＩをゲストに対して投入してもよい。プロセッサが除去された後に、ブロック６６０でＭＬＥがＳＴＭへのストップＳＴＭ  ＶＭＣＡＬＬを引き起こしてもよい。
【００４８】
その後、ブロック６７０にて、ＳＴＭが、ストップＳＴＭ  ＶＭＣＡＬＬに応答して、除去されるプロセッサに対するＳＴＭサービスを停止する。そして、ＢＩＯＳがそのプロセッサを除去してリムーブプロセッサＶＭＣＡＬＬを呼び出し、それがブロック６８０でＳＴＭによって受け取られる。リムーブプロセッサＶＭＣＡＬＬに応答して、ブロック６９０にて、ＳＴＭが、ＳＴＭによって維持管理されるそのプロセッサに関連付けられたデータ構造を破壊することにより、そのプロセッサを除去する。
【００４９】
図７は、ここで説明された方法のうちの何れか１つ以上をマシンに実行させる命令のセットがその中で実行され得る、コンピュータシステム７００の形態の例での、マシンの図形描写を示している。代わりの実施形態において、このマシンは、ＬＡＮ、イントラネット、エクストラネット、又はインターネットにて、その他のマシンに接続（例えば、ネットワーク化）されてもよい。このマシンは、クライアント−サーバネットワーク環境においてサーバ又はクライアントの能力内で動作し、あるいは、ピア・ツー・ピア（若しくは分散）ネットワーク環境においてピアマシンとして動作し得る。このマシンは、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、携帯情報端末（ＰＤＡ）、携帯電話、ウェブ電化製品、サーバ、ネットワークルータ、交換機若しくはブリッジ回路、又は、マシンによって行われるべきアクションを規定する命令のセット（シーケンシャル若しくはその他）を実行可能な何らかのマシンとし得る。また、単一のマシンのみが図示されるが、用語“マシン”はまた、ここに説明された方法のうちの何れか１つ以上を実行すべく、命令のセット（又は複数のセット）を個別にあるいは連帯して実行する複数のマシンの集合を含むように解されるべきである。
【００５０】
コンピュータシステム７００は、処理装置７０２と、メインメモリ７０４（例えば、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリ、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）（例えば、同期式ＤＲＡＭ（ＳＤＲＡＭ）若しくはＤＲＡＭ（ＲＤＲＡＭ）など））と、スタティックメモリ７０６（例えば、フラッシュメモリ、スタティックランダムアクセスメモリ（ＳＲＡＭ）など）と、データストレージ装置７１８とを含んでおり、これらはバス７３０を介して互いに通信する。
【００５１】
処理装置７０２は、例えばマイクロプロセッサ、中央演算処理ユニット、又はこれらに類するものなどの１つ以上の汎用処理装置を表す。より具体的には、処理装置は、複数命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、若しくはその他の命令セットを実装するプロセッサ、又は複数の命令セットの組み合わせを実装する複数のプロセッサであり得る。処理装置７０２はまた、例えば特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、又はこれらに類するものなどの、１つ以上の専用処理装置であってもよい。一実施形態において、処理装置７０２は、１つ以上の処理コアを含み得る。処理装置７０２は、ここに説明された処理及びステップを実行するための処理ロジック７２６を実行するように構成される。一実施形態において、処理装置７０２は、例えばＳＴＭなどのＲＡＳ対応ＨＰマネジャを実装する図１に関して説明された処理装置１００と同じである。例えば、処理装置７０２は、例えば図１のＳＴＭ１１４などのＲＡＳ対応ＨＰマネジャを含み得る。
【００５２】
コンピュータシステム７００は更に、ネットワーク７２０に通信可能に結合されたネットワークインタフェース装置７０８を含み得る。コンピュータシステム７００はまた、ビデオディスプレイユニット７１０（例えば、液晶ディスプレイ（ＬＣＤ）若しくは陰極線管（ＣＲＴ））、英数字入力装置７１２（例えば、キーボード）、カーソル制御装置７１４（例えば、マウス）、及び信号生成装置７１６（例えば、スピーカ）を含み得る。さらに、コンピュータシステム７００は、グラフィックス処理ユニット７２２、ビデオ処理ユニット７２８、及びオーディオ処理ユニット７３２を含み得る。
【００５３】
データストレージ装置７１８は、例えば上述のように限られたエントリーでＲＡＳを実装するなど、ここに説明された機能の方法のうちの何れか１つ以上を実装するソフトウェア７２６が格納される機械アクセス可能記憶媒体７２４を含み得る。ソフトウェア７２６はまた、完全に又は少なくとも部分的に、命令７２６としてメインメモリ７０４の中にあってもよく、且つ／或いは、コンピュータシステム７００による実行中に処理ロジック７２６として処理装置７０２の中にあってもよい（メインメモリ７０４及び処理装置７０２も、機械アクセス可能記憶媒体を構成する）。
【００５４】
機械読み取り可能記憶媒体７２４はまた、例えば図１の装置１００に関して説明されたものなどのＲＡＳ対応ＨＰマネジャを実装する命令７２６、及び／又は、上述のアプリケーションを呼び出すメソッドを含むソフトウェアライブラリを格納するために使用され得る。機械アクセス可能記憶媒体７２４は一実施形態例において単一の媒体であるように示されるが、用語“機械アクセス可能記憶媒体”は、１つ以上の命令セットを格納する単一の媒体又は複数の媒体（例えば、集中型若しくは分散型のデータベース、及び／又は関連付けられたキャッシュ及びサーバ）を含むように解されるべきである。用語“機械アクセス可能記憶媒体”はまた、機械による実行のために命令セットを格納、エンコードあるいは搬送することが可能であり且つ本開示の方法のうちの何れか１つ以上を機械に実行させる如何なる媒体をも含むように解されるべきである。従って、用語“機械アクセス可能記憶媒体”は、以下に限られないが、半導体メモリ、光学媒体、及び磁気媒体を含むように解されるべきである。
【００５５】
以下の例は更なる実施形態に関する。例１は、ピアモニタにて信頼性・可用性・保守性（ＲＡＳ）フローをサポートする方法であって、処理装置により、システムマネジメント割込み（ＳＭＩ）イベントを受け取ることと、前記ＳＭＩイベントに応答して前記処理装置により、読み出し専用メモリ（ＲＯＭ）エントリーポイントから実行して前記ＳＭＩイベントに対処するよう特権マネジャを呼び出すことであり、前記特権マネジャは、メモリホットプラグ機能及びプロセッサホットプラグ機能のサポートを提供するホットプラグサービスモジュールを有する、呼び出すことと、を有する方法である。例２において、例１に係る事項は必要に応じて、前記特権マネジャがシステムマネジメント割込み（ＳＭＩ）トランスファモニタ（ＳＴＭ）を有することを含むことができる。例３において、例１−２の何れか一に係る事項は必要に応じて、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）のシステムマネジメントモード（ＳＭＭ）コードを前記特権マネジャのゲストとして実行するハイパーバイザを前記特権マネジャが有することを含むことができる。
【００５６】
例４において、例１−３の何れか一に係る事項は必要に応じて、前記特権マネジャが呼び出し後にランダムアクセスメモリ（ＲＡＭ）上でエラー検査を実行することを含むことができる。例５において、例１−４の何れか一に係る事項は必要に応じて、前記特権マネジャが前記エラー検査のために移行データ構造にアクセスして前記ＲＡＭの完全性を確認することを含むことができる。例６において、例１−５の何れか一に係る事項は必要に応じて、前記移行データ構造が、前記ＲＯＭにおける前記特権マネジャのサイズ、前記ＲＡＭにおける前記特権マネジャのサイズ、周期的冗長検査（ＣＲＣ）値、チェック値、ハッシュ、又は暗号マーカーのうちのに少なくとも１つを有するデータを維持管理することを含むことができる。
【００５７】
例７において、例１−６の何れか一に係る事項は必要に応じて、前記エラー検査が前記ＲＡＭにおけるエラーを指し示すときに前記特権マネジャがＢＩＯＳ  ＳＭＭハンドラを呼び出して前記ＲＡＭにおける前記エラーを解消することを含むことができる。例８において、例１−６の何れか一に係る事項は必要に応じて、前記エラー検査が前記ＲＡＭにおけるエラーを指し示さないときに、前記特権マネジャが、前記ＲＡＭにおいて実行を行う前記特権マネジャの別バージョンに制御を渡すことを含むことができる。
【００５８】
例９において、例１−８の何れか一に係る事項は必要に応じて、前記ホットプラグサービスモジュールが、メモリに関するホットプラグ機能をサポートするための、アプリケーションプログラミングインタフェース（ＡＰＩ）への一組のエクステンションを有し、前記ＡＰＩへの前記エクステンションが、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）と前記特権マネジャとの間で通信されるアドＢＩＯＳリソースＶＭＣＡＬＬ及びリムーブＢＩＯＳリソースＶＭＣＡＬＬを有することを含むことができる。例１０において、例１−９の何れか一に係る事項は必要に応じて、前記ホットプラグサービスモジュールが、プロセッサに関するホットプラグ機能をサポートするための、アプリケーションプログラミングインタフェース（ＡＰＩ）への一組のエクステンションを有し、前記ＡＰＩへの前記エクステンションが、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）と前記特権マネジャとの間で通信されるアドプロセッサＶＭＣＡＬＬ及びリムーブプロセッサＶＭＣＡＬＬを有することを含むことができる。
【００５９】
例１１は、ピアモニタにて信頼性・可用性・保守性（ＲＡＳ）フローをサポートする装置であって、特権実行環境及び低特権実行環境を有するメモリモジュールと、前記メモリモジュールに通信可能に結合された処理装置であり、システムマネジメント割込み（ＳＭＩ）イベントを受け取り、前記ＳＭＩイベントに応答して、読み出し専用メモリ（ＲＯＭ）エントリーポイントから実行して前記ＳＭＩイベントに対処するようＳＭＩトランスファモニタ（ＳＴＭ）を呼び出し、且つ前記ＳＴＭにより、前記ＳＴＭのホットプラグサービスモジュールを介して、メモリホットプラグ機能及びプロセッサホットプラグ機能のサポートを提供する処理装置と、を有する装置である。例１２において、例１１に係る事項は必要に応じて、前記ＳＴＭが、ハイパーバイザとして実行を行い、且つ当該装置のベーシックインプット／アウトプットシステム（ＢＩＯＳ）のシステムマネジメントモード（ＳＭＭ）コードを前記ＳＴＭのゲストとして仮想化することを含むことができる。
【００６０】
例１３において、例１１−１２の何れか一に係る事項は必要に応じて、前記ＳＴＭが呼び出し後にランダムアクセスメモリ（ＲＡＭ）上でエラー検査を実行することを含むことができる。例１４において、例１１−１３の何れか一に係る事項は必要に応じて、前記エラー検査が前記ＲＡＭにおけるエラーを指し示すときに前記ＳＴＭがＢＩＯＳ  ＳＭＭハンドラを呼び出して前記ＲＡＭにおける前記エラーを解消することを含むことができる。例１５において、例１１−１４の何れか一に係る事項は必要に応じて、前記エラー検査が前記ＲＡＭにおけるエラーを指し示さないときに、前記ＳＴＭが、前記ＲＡＭにおいて実行を行う別バージョンの特権マネジャに制御を渡すことを含むことができる。
【００６１】
例１６において、例１１−１５の何れか一に係る事項は必要に応じて、前記ホットプラグサービスモジュールが、メモリに関するホットプラグ機能をサポートするための、アプリケーションプログラミングインタフェース（ＡＰＩ）への一組のエクステンションを有し、前記ＡＰＩへの前記エクステンションが、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）と前記ＳＴＭとの間で通信されるアドＢＩＯＳリソースＶＭＣＡＬＬ及びリムーブＢＩＯＳリソースＶＭＣＡＬＬを有することを含むことができる。
【００６２】
例１７において、例１１−１６の何れか一に係る事項は必要に応じて、前記ホットプラグサービスモジュールが、プロセッサに関するホットプラグ機能をサポートするための、アプリケーションプログラミングインタフェース（ＡＰＩ）への一組のエクステンションを有し、前記ＡＰＩへの前記エクステンションが、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）と前記ＳＴＭとの間で通信されるアドプロセッサＶＭＣＡＬＬ及びリムーブプロセッサＶＭＣＡＬＬを有することを含むことができる。上述の装置のオプション機構は全て、ここに記載される方法又はプロセスに関しても実装され得る。
【００６３】
例１８は、ピアモニタにて信頼性・可用性・保守性（ＲＡＳ）フローをサポートするための非一時的な機械読み取り可能記憶媒体である。例１８において、非一時的な機械読み取り可能記憶媒体は、処理装置によってアクセスされるときに、前記処理装置に、前記処理装置がシステムマネジメント割込み（ＳＭＩ）イベントを受け取ることに応答して、読み出し専用メモリ（ＲＯＭ）エントリーポイントから前記処理装置によって実行される特権マネジャにより、ランダムアクセスメモリ（ＲＡＭ）の完全性を追跡する移行データ構造にアクセスすることと、前記移行データ構造に基づいて前記特権マネジャにより、前記ＲＡＭ上でエラー検査を実行することと、前記エラー検査が前記ＲＡＭにおけるエラーを指し示さないとき、前記特権マネジャにより、前記ＲＡＭにおいて実行を行う前記特権マネジャの別バージョンに制御を渡して前記ＳＭＩイベントに対処することであり、前記特権マネジャは、メモリホットプラグ機能及びプロセッサホットプラグ機能のサポートを提供するホットプラグサービスモジュールを有する、対処することと、を有する処理を実行させるデータを含む。
【００６４】
例１９において、例１８に係る事項は必要に応じて、前記特権マネジャがハイパーバイザとして実行を行うシステムマネジメント割込み（ＳＭＩ）トランスファモニタ（ＳＴＭ）であり、前記ＳＴＭがベーシックインプット／アウトプットシステム（ＢＩＯＳ）のシステムマネジメントモード（ＳＭＭ）コードを前記ＳＴＭのゲストとして仮想化することを含むことができる。例２０において、例１８−１９の何れか一に係る事項は必要に応じて、前記エラー検査が前記ＲＡＭにおけるエラーを指し示すときに、前記特権マネジャにより、ＢＩＯＳ  ＳＭＭハンドラを呼び出して前記ＲＡＭにおける前記エラーを解消することを含むことができる。
【００６５】
例２１において、例１８−２０の何れか一に係る事項は必要に応じて、前記ホットプラグサービスモジュールが、メモリに関するホットプラグ機能をサポートするための、アプリケーションプログラミングインタフェース（ＡＰＩ）への一組のエクステンションを有し、前記ＡＰＩへの前記エクステンションが、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）と前記特権マネジャとの間で通信されるアドＢＩＯＳリソースＶＭＣＡＬＬ及びリムーブＢＩＯＳリソースＶＭＣＡＬＬを有することを含むことができる。例２２において、例１８−２１の何れか一に係る事項は必要に応じて、前記ホットプラグサービスモジュールが、プロセッサに関するホットプラグ機能をサポートするための、アプリケーションプログラミングインタフェース（ＡＰＩ）への一組のエクステンションを有し、前記ＡＰＩへの前記エクステンションが、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）と前記特権マネジャとの間で通信されるアドプロセッサＶＭＣＡＬＬ及びリムーブプロセッサＶＭＣＡＬＬを有することを含むことができる。
【００６６】
例２３は、ピアモニタにて信頼性・可用性・保守性（ＲＡＳ）フローをサポートする装置であり、当該装置は、システムマネジメント割込み（ＳＭＩ）イベントを受け取ることに応答して、読み出し専用メモリ（ＲＯＭ）エントリーポイントを介して、ランダムアクセスメモリ（ＲＡＭ）の完全性を追跡する移行データ構造にアクセスする手段を有する。例２３の装置は更に、前記移行データ構造に基づいて、前記ＲＡＭ上でエラー検査を実行する手段と、前記エラー検査が前記ＲＡＭにおけるエラーを指し示さないときに、前記ＲＡＭにおいて実行を行う特権マネジャのバージョンに制御を渡して前記ＳＭＩイベントに対処する手段とを有し、前記アクセスする手段は、メモリホットプラグ機能及びプロセッサホットプラグ機能のサポートを提供するホットプラグサービスモジュールを有する。例２４において、例２３に係る事項は必要に応じて、当該装置が更に、例２乃至１０の何れか一に係る方法を実行するように構成されることを含むことができる。
【００６７】
例２５は、複数の命令を有する少なくとも１つの機械読み取り可能媒体であり、前記複数の命令は、コンピューティング装置上で実行されることに応答して、前記コンピューティング装置に、例１乃至１０の何れか一に係る方法を実行させる。例２６は、ピアモニタにて信頼性・可用性・保守性（ＲＡＳ）フローをサポートする装置であり、当該装置は、例１乃至１０の何れか一に係る方法を実行するように構成される。例２７は、例１乃至１０の何れか一に係る方法を実行する手段を有する装置である。これらの例における細目は、１つ以上の実施形態のどこかで使用され得る。
【００６８】
限られた数の実施形態に関して本開示を説明したが、当業者は、これらからの数多くの変更及び改変を理解するであろう。意図されることには、添付の請求項は、この開示の真の精神及び範囲に入るそのような全ての変更及び改変に及ぶものである。
【００６９】
設計は、創作からシミュレーション、製造まで、様々な段階を経る。設計を表現するデータは、多数の手法でその設計を表現し得る。第１に、シミュレーションで有用なように、ハードウェアは、ハードウェア記述語又は別の機能記述語を用いて表現され得る。また、設計プロセスの何らかの段階で、ロジック及び／又はトランジスタゲートを用いる回路レベルモデルが作成され得る。さらに、大抵の設計は、何らかの段階で、ハードウェアモデル内の様々なデバイスの物理配置を表現するデータのレベルに至る。従来からの半導体製造技術が使用される場合、ハードウェアモデルを表現するデータは、集積回路を製造するのに使用されるマスクの異なるマスクレイヤにおける様々な造形の存在又は不存在を規定するデータであり得る。何れの設計表現においても、データは、何らかの形態の機械読み取り可能媒体に格納され得る。メモリ、又は例えばディスクなどの磁気的若しくは光学的なストレージは、そのような情報を伝送するために変調あるいはその他の方法で生成される光学的若しくは電気的な波を介して伝えられる情報を格納する機械読み取り可能媒体であり得る。コード又は設計を指し示すか担持するかの電気的な搬送波が送信されるとき、この電気信号の複製、バッファリング、又は再送信が実行される限りにおいて、新たなコピーが作成される。故に、通信プロバイダ又はネットワークプロバイダは、有形の機械読み取り可能媒体上に、少なくとも一時的に、本開示の実施形態の技術を具現化する項目（例えば、搬送波にエンコードされる情報など）を格納し得る。
【００７０】
モジュールは、ここで使用されるとき、ハードウェア、ソフトウェア、及び／又はファームウェアの如何なる組み合わせをも意味する。一例として、モジュールは、例えばマイクロコントローラなどのハードウェアを、該マイクロコントローラによって実行されるように適応されたコードを格納する非一時的な媒体と結合して含む。故に、モジュールへの言及は、一実施形態において、非一時的な媒体上に保持されるコードの認識及び／又は実行を行うように具体的に構成されるハードウェアに言及するものである。また、他の一実施形態において、モジュールの使用は、所定の処理を行うようにマイクロコントローラによって実行されるように具体的に適応されたコードを含む非一時的な媒体を意味する。そして、推測され得るように、更なる他の一実施形態において、モジュールなる用語は（この例において）、マイクロコントローラと非一時的な媒体との組み合わせを意味することがある。しばしば、別々であるとして図示されるモジュール境界は、一般に様々であるとともに潜在的に重なり合う。例えば、第１及び第２のモジュールが、何らかの独立したハードウェア、ソフトウェア、又はファームウェアを潜在的に保持しながら、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせを共有してもよい。一実施形態において、ロジックなる用語の使用は、例えばトランジスタやレジスタなどのハードウェア、又は例えばプログラム可能な論理装置などのその他のハードウェアを含む。
【００７１】
‘ように構成され’という言い回しの使用は、一実施形態において、指定あるいは決定されたタスクを実行するように、装置、ハードウェア、ロジック、又は要素を、配置すること、組み立てること、製造すること、販売を申し出ること、輸入すること、及び／又は設計することを意味する。この例において、動作していない装置又はその要素はなおも、それがその指定タスクを実行するように設計、結合、且つ／或いは相互接続される場合に指定されたタスクを実行する‘ように構成され’ている。純粋に例示的な一例として、論理ゲートは動作中に０又は１を提供し得る。しかし、クロックにイネーブル信号を提供する‘ように構成され’る論理ゲートは、１又は０を提供し得る全ての可能性ある論理ゲートを含むものではない。その代わりに、この論理ゲートは、動作中に１又は０の出力がクロックをイネーブルするように結合されるものである。もう一度断っておくに、用語‘ように構成され’の使用は、動作を必要としないが、その代わりに、装置、ハードウェア、及び／又は要素の潜在状態に注目するものであり、潜在状態において、装置、ハードウェア、及び／又は要素は、装置、ハードウェア、及び／又は要素が動作するときに特定のタスクを実行するように設計される。
【００７２】
また、‘ために’、‘することが可能な’、及び／又は‘するように動作可能な’という言い回しの使用は、一実施形態において、特定の手法でのその装置、ロジック、ハードウェア、及び／又は要素の使用を可能にするように設計された何らかの装置、ロジック、ハードウェア、及び／又は要素を意味する。なお、上述のように、‘ために’、‘することが可能な’、又は‘するように動作可能な’の使用は、一実施形態において、装置、ロジック、ハードウェア、及び／又は要素が動作していないが、特定の手法での装置の使用を可能にするように設計されるという、装置、ロジック、ハードウェア、及び／又は要素の潜在状態を意味する。
【００７３】
値は、ここで使用されるとき、数、状態、論理状態、又はバイナリ論理状態の既知の表現を含む。しばしば、論理レベル、論理値、又は論理的な値の使用はまた、単純にバイナリ論理状態を表現するものである１又は０として参照される。例えば、１はハイ（高）論理レベルを表し、０はロー（低）論理レベルを表す。一実施形態において、例えばトランジスタセル又はフラッシュセルなどの記憶セルは、単一の論理値又は複数の論理値を保持することが可能であり得る。しかしながら、コンピュータシステムにおける値のその他の表現も使用されている。例えば、１０進数での１０はまた、２進値の１０１０及び１６進文字Ａとしても表され得る。故に、値は、コンピュータシステムにおいて保持されることが可能な情報の如何なる表現をも含む。
【００７４】
また、状態は、値又はその部分によって表され得る。一例として、例えば論理１などの第１の値が初期設定状態又は初期状態を表す一方で、例えば論理０などの第２の値が非初期設定状態を表してもよい。加えて、リセット及びセットという用語は、一実施形態において、それぞれ、初期設定の値若しくは状態、及び更新された値若しくは状態を意味する。例えば、初期設定値は可能性としてハイ論理値すなわちリセットを含み、更新値は可能性としてロー論理値すなわちセットを含む。なお、任意数の状態を表すために、任意の組み合わせの値が利用され得る。
【００７５】
上述の方法、ハードウェア、ソフトウェア、ファームウェア又はコードの実施形態は、機械アクセス可能、機械読み取り可能、コンピュータアクセス可能、又はコンピュータ読み取り可能な媒体に格納された、処理要素によって実行可能な命令又はコードによって実装され得る。非一時的な機械アクセス可能／読み取り可能媒体は、例えばコンピュータ又は電子システムなどの機械によって読み取り可能な形態で情報を提供する（すなわち、格納及び／又は伝送する）何らかの機構を含む。例えば、非一時的な機械アクセス可能媒体は、例えばスタティックＲＡＭ（ＳＲＡＭ）若しくはダイナミックＲＡＭ（ＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、ＲＯＭ、磁気式若しくは光学式の記憶装置、フラッシュメモリ装置、一時的（伝播）信号（例えば、搬送波、赤外線信号、デジタル信号）（これらは、これらから情報を受け取り得る非一時的な媒体から区別される）から受け取った情報を保持するその他の形態の記憶装置などを含む。
【００７６】
本開示の実施形態を実行するようにロジックをプログラムするために使用される命令は、例えばＤＲＡＭ、キャッシュ、フラッシュメモリ、又はその他のストレージなどの、システム内のメモリの中に格納され得る。また、これらの命令は、ネットワークを介して、あるいは他のコンピュータ読み取り可能媒体によって配給されることができる。故に、機械読み取り可能媒体は、機械（例えば、コンピュータ）によって読み取り可能な形態で情報を格納あるいは伝送する如何なる機構をも含むことができ、以下に限られないが、フロッピー（登録商標）ディスク、光ディスク、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、磁気光ディスク、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去・プログラム可能読み出し専用メモリ（ＥＰＲＯＭ）、電気的消去・プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）、磁気カード若しくは光カード、フラッシュメモリ、又は、電気、光、音響若しくはその他の形態の伝播信号（例えば、搬送波、赤外線信号、デジタル信号など）によるインターネット上での情報の伝送に使用される有形の機械読み取り可能媒体などである。従って、コンピュータ読み取り可能媒体は、機械（例えば、コンピュータ）によって読み取り可能な形態で電子的な命令若しくは情報を格納あるいは伝送するのに好適な、如何なる種類の有形な機械読み取り可能媒体をも含む。
【００７７】
本明細書の至る箇所での“一実施形態”又は“或る実施形態”への言及は、その実施形態に関連して説明される特定の機構、構造、又は特性が、本開示の少なくとも１つの実施形態に含まれることを意味する。故に、本明細書全体を通して様々な箇所に“一実施形態において”又は“或る実施形態において”という言い回しが現れることは、必ずしも全てが同一の実施形態について言及しているわけではない。また、特定の複数の機構、構造又は特性が、１つ以上の実施形態において好適に組み合わされ得る。
【００７８】
以上の明細書にて、特定の例示実施形態を参照して詳細な説明が与えられている。しかしながら、明らかなように、これらには、添付の請求項に記載される本開示のいっそう広い精神及び範囲を逸脱することなく、様々な変更及び変形が為され得る。従って、本明細書及び図面は、限定的な意味ではなく、例示的な意味で考慮されるべきである。また、実施形態及びその他の説明語の以上での使用は、必ずしも、同一の実施形態又は同一の例について言及するものではなく、潜在的に同じ実施形態と同様に、異なる別個の実施形態を参照していることがある。
【図１】
0006017706.tif 000002
【図２】
0006017706.tif 000003
【図３】
0006017706.tif 000004
【図４】
0006017706.tif 000005
【図５Ａ】
0006017706.tif 000006
【図５Ｂ】
0006017706.tif 000007
【図６Ａ】
0006017706.tif 000008
【図６Ｂ】
0006017706.tif 000009
【図７】
0006017706.tif 000010