(57)【要約】類似アーキテクチャを共有するパーソナル・コンピュータ及び装置に関する技法が開示される。複数の不揮発性メモリの使用を通じて達成される、ハイパーバイザ・プログラム及び関連アプリケーション・プログラムにおいて改良されたパフォーマンス及びセキュリティを可能にするための方法及び装置が特に示される。【選択図】図３
2011526714.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンをサポートするためのコンピュータ（１０）を初期化するための方法であって、
読出し−書込みメモリの第１の領域を割り当てるステップと、
ハイパーバイザ・プログラム、及び、ハイパーバイザ・プログラムを前記第１の領域にロードするために動作するプログラム、で構成されるリストから選択された第１のプログラムを第１の不揮発性メモリから前記第１の領域にロードするステップと、
前記第１の領域を除く読出し−書込みメモリのメモリ・ヒープを作成するステップと、
前記第１のプログラムに制御を渡すステップとを備えることを特徴とする、方法。
【請求項２】
前記コンピュータ内のＢＩＯＳプログラムに知られているパラメータに応答する複数の区分を作成するために前記ヒープを分割するステップと、
前記分割するステップの結果を前記第１のプログラムにとって可視にするステップとをさらに備えることを特徴とする、請求項１に記載の方法。
【請求項３】
前記割り当てるステップ及び前記ロードするステップが実質的にＣＰＵ（中央処理装置）リアル・モードで動作し、
前記ハイパーバイザ・プログラムが少なくとも部分的に保護モード又は仮想アドレス・モードで動作することを特徴とする、請求項１又は２に記載の方法。
【請求項４】
前記ハイパーバイザ・プログラムの動作に応答して、ＭＢＲ（マスタ・ブート・レコード）内に含まれる、又は前記ＭＢＲを使用して位置決めされる第の２プログラムを実行するステップであって、前記ＭＢＲが第２の不揮発性メモリにあるステップをさらに備えることを特徴とする、請求項１から３までのいずれか１項に記載の方法。
【請求項５】
前記第１のプログラムよりも後で、かつ、前記コンピュータ内で発生するさらに後のリセット状態よりは前に、前記コンピュータにロードされた少なくともいくつかのプログラムにとって、前記第１の領域を不可視にするステップをさらに備えることを特徴とする、請求項１から４までのいずれか１項に記載の方法。
【請求項６】
前記第１の領域を前記ヒープ内に位置された命令からのメモリ位置クエリにとって不可視にするステップをさらに備えることを特徴とする、請求項１から５までのいずれか１項に記載の方法。
【請求項７】
前記ハイパーバイザ・プログラムが、
第１の仮想マシンのための第１の環境を作成し、
前記複数の区分から選択された区分を前記第１の仮想マシンに割り当て、及び
前記第１の仮想マシンからの読出し−書込みメモリ可用度についての情報を求める要求を仮想化することを特徴とする、請求項２に記載の方法。
【請求項８】
前記ハイパーバイザ・プログラムが、
第１の仮想マシンのための第１の環境を作成し、
第２の仮想マシンのための第２の環境を作成し、
ＭＢＲ（マスタ・ブート・レコード）を使用して前記第１の環境にロードされた第２のプログラムを仮想化し、前記ＭＢＲは第２の不揮発性メモリにあり、及び、
前記第１の不揮発性メモリと、第３の不揮発性メモリとで構成されるリストから選択された不揮発性メモリから前記第２の環境にロードされた第３のプログラムを仮想化することを特徴とする、請求項１に記載の方法。
【請求項９】
前記ハイパーバイザ・プログラムが、
前記第２の不揮発性メモリをホストする装置の動作を停止するステップと、
前記第１の仮想マシン又は前記第の２プログラムのどちらかの動作を停止するステップとによる刺激、に応答することを特徴とする、請求項８に記載の方法。
【請求項１０】
前記第１のプログラムをロードする前に、
電磁波からの信号を復調する動作であって、前記信号が内部に符号化されたコンピュータ命令を有し、前記コンピュータによって実行されると前記命令が前記コンピュータを請求項１に記載の諸ステップによって初期化させる動作をさらに備えることを特徴とする、請求項１から９までのいずれか１項に記載の方法。
【請求項１１】
前記復調する動作の前に、
前記信号を有形媒体に刻印される前記電磁波に変調する動作をさらに備えることを特徴とする、請求項１０に記載の方法。
【請求項１２】
製造されたコンピュータ・プログラム製品であって、
内部に符号化されたコンピュータ命令を有する少なくとも１つのコンピュータ可読媒体を備え、少なくとも１つのコンピュータによって前記命令が実行されると、
読出し−書込みメモリの第１の領域を割り当てることと、
ハイパーバイザ・プログラムと、前記ハイパーバイザ・プログラムを前記第１の領域にロードするために動作するプログラムと、で構成されるリストから選択された第１のプログラムを第１の不揮発性メモリから前記第１の領域にロードすることと、
前記第１の領域を除く読出し−書込みメモリのメモリ・ヒープを作成することと、
前記第１のプログラムに制御を渡すこととを備える動作によって、仮想マシンをサポートするために前記少なくとも１つのコンピュータを初期化させることを特徴とする、製造されたコンピュータ・プログラム製品。
【請求項１３】
前記動作が、
前記コンピュータ内のＢＩＯＳプログラムに知られているパラメータに応答する複数の区分を作成するために前記ヒープを分割することと、
前記分割するステップの結果を前記第１のプログラムにとって可視にすることとをさらに備えることを特徴とする、請求項１２に記載の製造されたコンピュータ・プログラム製品。
【請求項１４】
プログラムされた命令を実行するための手段（１２）と、
コンピュータ命令を記憶するための不揮発性手段とを備える電子装置であって、前記実行するための手段によって前記命令が実行されると、
読出し−書込みメモリの第１の領域を割り当てるステップと、
ハイパーバイザ・プログラム、及び
前記ハイパーバイザ・プログラムを前記第１の領域にロードするために動作するプログラムで構成されるリストから選択された第１のプログラムを第１の不揮発性メモリから前記第１の領域にロードするステップと、
前記第１の領域を除く読出し−書込みメモリのメモリ・ヒープを作成するステップと、
前記第１のプログラムに制御を渡すステップとの動作を備える諸ステップによって仮想マシンをサポートするために前記電子装置を初期化させることを特徴とする、電子装置（１０）。
【請求項１５】
前記動作が、
前記電子装置内のＢＩＯＳプログラムに知られているパラメータに応答する複数の区分を作成するために前記ヒープを分割するステップと、
前記分割するステップの結果を前記第１のプログラムにとって可視にするステップとをさらに備えることを特徴とする、請求項１４に記載の電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に類似アーキテクチャを共有するパーソナル・コンピュータ及び装置に関する。より詳細には、本発明は、ハイパーバイザ・プログラム及び関連アプリケーション・プログラムにおいて改良されたパフォーマンス及びセキュリティを可能にするための方法、製造されたコンピュータ・プログラム製品、並びに電子装置に関する。
【背景技術】
【０００２】
現代では、ＰＣ（パーソナル・コンピュータ）の利用はすっかり当たり前になったが、依然として伸びている。過去何年にもわたって、手頃なハードウェアがより高速化し、より多くの機能及び容量を有するようになっている。新しいタスクを処理するためのアプリケーション・ソフトウェア、及び新しい装置に対応するためのシステム・ソフトウェアが出現し続けている。
【０００３】
一般的なユーザは、既に導入されている、旧バージョンと比較すると長所と短所の両方を有する新バージョンのソフトウェアに遭遇することがある。一般的なユーザは、時間の経過とともに機能がさらに多いコンピュータ、及びより多数のソフトウェアを導入すると言ってもいいだろう。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
典型的なユーザが直面している問題は、新バージョンのハードウェア又はソフトウェア（或いは完全に新しいアプリケーション）を採用することによる恩恵（及び経済的費用）と、ユーザがうまく利用できるように学習してきたより古い製品に固執することによる恩恵との比較である。このような選択に通じる要因は複雑である（及びここでは割愛する）が、統合されたソフトウェア・ソリューションは、平和的に共存するための異なるアプリケーションの（又は同じアプリケーションの異型さえの）能力を限定する傾向があるので、さらなる懸念をもたらす。このタイプの共通の問題は、例えばユーザがＭｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）ＸＰ（商標）ＯＳ（オペレーティング・システム）のみで動くように設計された特定のハードウェア、及びＭｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）Ｖｉｓｔａ  ＯＳのみで動くように設計されたアプリケーション・プログラムのためのデバイス・ドライバを有する場合に生じることがある。完全に満足できる解決策はなく、妥協を容認しなければならない。
【０００５】
典型的なユーザにとっての別の問題点は、コンピュータの起動時間である。一般的に、より多くの常駐ソフトウェアが容認されていると、それだけコンピュータが電源投入から利用可能状態になるまでの時間が長くなる。たとえ複数のソフトウェア、特に複数のＯＳが相互運用可能及び利用可能（又は少なくとも平和的に共存している）で十分なパフォーマンスを提供していても、単一ＯＳの使用と比較すると、初期化して使用可能状態になるまでに時間がかかりすぎる。コンピュータ起動時間は、ただすぐに手持ちのタスクに取り組みたいと望んでいるだけのユーザを容易にいらいらさせてしまう。
【０００６】
さらなる及び増大している問題は、悪意のあるソフトウェア（マルウェア）である。悪意のあるソフトウェアを標的とした様々な改良が提案されてきたが、特定のベンダに関係する、又はさらに悪いことには特定のベンダからのソフトウェアの特定のバージョンに関係する統合ソリューションにしばしば依存しすぎている。これにより複数の様々なソフトウェアの管理がより困難になる場合がある。さらに、このようなソリューションは「曖昧さによるセキュリティ（Security by Obscure）」の手法をしばしば使用しすぎる場合があり、これはユーザの運命支配力を減少させるものであり、また、オープン・ソース製品での使用にはあまり適していない。
【課題を解決するための手段】
【０００７】
したがって、本発明は仮想マシンをサポートするためのコンピュータを初期化するための方法を提供する。コンピュータあるいは全く異なるデジタル・コントローラを含みうる、他の電子装置を使用することもできる。
【０００８】
本発明の方法は、メモリ領域を割り当てること、及びその中に不揮発性メモリからプログラムをロードすることを含みうる。このようなプログラムは、ハイパーバイザ・プログラム、ハイパーバイザをロードするためのプログラム、及びアプライアンス・プログラムを含みうる。様々な目的のためのメモリ・ヒープも作成することができ、オペレーティング・システムのロードなどのためにディスク・ドライブなどの不揮発性メモリも処理されうる。
【０００９】
一態様によれば、
読出し−書込みメモリの第１の領域を割り当てるステップと、
ハイパーバイザ・プログラムＨＶ、及び、ハイパーバイザ・プログラムを前記第１の領域にロードするために動作するプログラムＨＳＣ、で構成されるリストから選択された第１のプログラムを第１の不揮発性メモリから第１の領域にロードするステップと、
前記第１の領域を除く読出し−書込みメモリのメモリ・ヒープを作成するステップと、
前記第１のプログラムに制御を渡すステップとを備える、仮想マシンをサポートするためのコンピュータを初期化するための方法が提供される。
【００１０】
さらなる態様によれば、製造されたコンピュータ・プログラム製品であって、内部に符号化されたコンピュータ命令を有する少なくとも１つのコンピュータ可読媒体を備え、少なくとも１つのコンピュータによって命令が実行されると、以下の諸ステップによって、仮想マシンをサポートするために前記少なくとも１つのコンピュータを初期化させる、製造されたコンピュータ・プログラム製品が提供される：
読出し−書込みメモリの第１の領域を割り当てるステップ、
ハイパーバイザ・プログラム、及び、ハイパーバイザ・プログラムを前記第１の領域にロードするために動作するプログラムで構成されるリストから選択された第１のプログラムを第１の不揮発性メモリから前記第１の領域にロードするステップ、
前記第１の領域を除く読出し−書込みメモリのメモリ・ヒープを作成するステップ、及び、
前記第１のプログラムに制御を渡すステップ。
【００１１】
さらなる態様によれば、プログラムされた命令を実行するための手段と、コンピュータ命令を記憶するための不揮発性手段とを備え、実行するための前記手段によって命令が実行されると、以下の諸活動ステップによって仮想マシンをサポートするために前記電子装置を初期化させる電子装置が提供される：
読出し−書込みメモリの第１の領域を割り当てるステップ、
ハイパーバイザ・プログラム、及び、ハイパーバイザ・プログラムを前記第１の領域にロードするために動作するプログラムで構成されるリストから選択された第１のプログラムを第１の不揮発性メモリから前記第１の領域にロードするステップ、
前記第１の領域を除く読出し−書込みメモリのメモリ・ヒープを作成するステップ、及び、
前記第１のプログラムに制御を渡すステップ。
【００１２】
ハイパーバイザ・プログラムＨＶは、メモリ・ヒープを割り当てる及び／又は分割する前又は後にロードされうる。
【００１３】
一実施形態では、前記ヒープはＨＶ専用のメモリを明確に除外してよく、これは後にロードされたプログラム、特に汎用オペレーティング・システムから見られるようなＨＶの可視性を排除する（又は実質的に減らす）ように作用する。
【００１４】
一実施形態では、ヒープ・セットアップの後、ＢＩＯＳがＨＳＣに制御を戻してよく、そうすればＨＳＣが、被保護及び／又は仮想メモリ・モードのＨＶをロードして起動する。一般的に、共働するＨＶ及び／又はＢＩＯＳは、ＢＩＯＳ構成のために使用されるメモリ（又は他の何らかのよく隠蔽された不揮発性メモリ）からパラメトリック・ステアリング情報を読むことになり、その情報はヒープを分割するために使用されうる。したがって、ステアリングを案内するための該情報がＨＳＣ又はＨＶにとって直接又はそれぞれのローダを通じて入手可能になる。
【００１５】
これらの態様のいくつかの変形も、代替例示的実施形態とともに論じられる。開示された、ファームウェア及び／又はソフトウェアのための改良された設計により、上記で概説した問題に関する優れたトレードオフ、及びその他が可能になる。
【００１６】
本発明の上記及び関連する諸利点及び諸特徴は、以下の本発明の詳細な説明を、本発明の実施形態を示す添付の図面と合わせて読めばよりよく理解及び評価されるであろう。添付の図面は本明細書に組み込まれ、及び本明細書の一部を構成し、図面において同様の番号は同様の要素を表す。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態による、コンピュータ・プログラム製品及び／又はコンピュータを初期化するための方法、を実装するように構成された電子装置の概略ブロック図である。
【図２】本発明の実施形態を実装する際に電子装置によって実行される諸ステップを示す流れ図である。
【図３】本発明の例示的実施形態においてハイパーバイザ、アプライアンス、及び主要オペレーティング・システムのローディング及び実行を実装する際に実行される諸ステップを示す流れ図である。
【図４】本発明の例示的実施形態においてＶＭ（仮想マシン）からのメモリ情報の要求を仮想化する際に実行される諸ステップを示す流れ図である。
【図５】本発明の例示的実施形態において機能縮小モードに切り替える際に実行される諸ステップを示す流れ図である。
【図６Ａ】本発明の例示的実施形態がコンピュータ媒体上にどのように符号化されうるかを示す図である。
【図６Ｂ】本発明の例示的実施形態が、電磁波を使用してどのように符号化、送信、受信、及び復号化されうるかを示す図である。
【発明を実施するための形態】
【００１８】
説明の便宜上、様々な図面において同一の構成要素には同じ参照番号が振られている。
【００１９】
以下の説明では、説明を明快且つ簡潔にするために、概略図及び／又は図面に示された多数の構成要素のうちの全てを説明するとは限らない。本発明の十分で役立つ開示を当業者に提供するために、多数の構成要素が図面において示されている。構成要素の多くの操作は当業者には明白であり理解されるであろう。
【００２０】
ここで、図１を参照して本発明の例示的実施形態を説明する。
【００２１】
図１は、本発明の実施形態によるメモリ使用機能を実装している電子装置の概略ブロック図である。例示的実施形態では、例えばデスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレットＰＣ、又は他の適したコンピュータ装置などのパーソナル・コンピュータとして電子装置１０が実装されている。
【００２２】
説明はパーソナル・コンピュータの操作を概説するが、電子装置１０はＰＤＡ、セルラー式電話などの無線通信装置、セットトップ・ボックスなどの組込みコントローラ又は装置、印刷装置、或いは他の適した装置又はそれらの組合せ、及び本発明を運用又は相互運用するために適した装置でよいことが当業者には理解されよう。
【００２３】
パーソナル・コンピュータ１０は、電子装置１０の全体的な操作を制御するように構成された、少なくとも１つのコントローラ又はプロセッサ１２を含んでよい。このようなプロセッサ又はコントローラは、しばしばＣＰＵ（中央処理装置）又はＭＰＵ（マイクロプロセッサ・ユニット）と呼ばれる。プロセッサ１２は、計算を実行するためのＡＬＵ（演算／論理装置）、データ及び命令を一時的に記憶するための１つ又は複数のレジスタ、並びにパーソナル・コンピュータ１０の操作を制御するためのシーケンサ又はコントローラを含んでよい。一実施形態では、プロセッサ１２は、Ｉｎｔｅｌ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎによって製造されたＣｅｌｅｒｏｎ（登録商標）及びＣｅｎｔｒｉｎｏ（商標）マイクロプロセッサ、又はＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ（登録商標）によって販売されたＰｏｗｅｒ−ＰＣ（登録商標）プロセッサのうちのいずれかを含んでよい。さらに、プロセッサ１２を実装するために、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ（登録商標）、ＭＩＰＳ（登録商標）、ＮＥＣ（登録商標）、Ｃｙｒｉｘ（登録商標）などからのプロセッサを含む他の様々なプロセッサのうちのいずれかを使用してよい。プロセッサ１２はマイクロプロセッサに限定されるものではなく、マイクロコントローラ、デジタル信号プロセッサ、ＡＳＩＣ（特定用途向け集積回路）などの専用ハードウェア、ステート・マシン、或いはネットワークを通じて分散された１つ又は複数のプロセッサ上で実行しているソフトウェアなどの、他の形をとる場合がある。
【００２４】
プロセッサ１２はＣＰＵバス１３を通じてバス・コントローラ１４に結合されてよい。バス・コントローラ１４は、内部に組み込まれたメモリ・コントローラ１５を含んでよい。代替実施形態では、メモリ・コントローラ１５はバス・コントローラ１４から分離されてよい。メモリ・コントローラ１５は、システム・メモリ１６、例えばＲＡＭ（ランダム・アクセス・メモリ）を読み書きするために、プロセッサ１２又は他の装置がアクセスするためのインターフェースを提供してよい。
【００２５】
バス・コントローラ１４は、システム・バス１８、例えばＰＣＩ（ペリフェラル・コンポーネント・インターコネクト  バス）に結合されてよい。システム・バス１８に結合されているのは、入力／出力コントローラとしても知られている周辺装置コントローラ２４でよい。次に、周辺装置コントローラ２４はキーボード、マウス、プリンタなどの他の様々な装置２５、２６、２７に結合されている。他のコンポーネント（図１には示さず）が存在することもあり、例えばディスプレイに結合されたディスプレイ・コントローラ、及びネットワーク通信コントローラが一般的である。
【００２６】
システム・バス１８は、いくつかの不揮発性メモリ３０、３１、３２、３３にも結合されてよい。図１では例として４つの不揮発性メモリを示しているが、実際にはより少ない、又はより多くの不揮発性メモリがあってよい。他の実施形態では、メモリは他の方法で、例えば直接バス・コントローラ１４に結合されてよい。
【００２７】
図１に示されるように、例示的な不揮発性メモリ３０、３１、３２、３３は様々な技術によるメモリでよく、またそれぞれの機能を有してよい。図１に示されるように、不揮発性メモリ３０はＲＯＭ（読出し専用メモリ）として実装されて、内部にＰＯＳＴ（パワーオン・セルフテスト）４０及びＣＳＳ（コア・システム・ソフトウェア）４１、並びにＤＤｓ（デバイス・ドライバ）などの他のコンポーネントを記録してよい。
【００２８】
引き続き図１を参照すると、さらなる不揮発性メモリ３１が内蔵ディスク・ドライブ・メカニズム３１を有するディスク・コントローラとして実装されてよい。ディスク・ベースの不揮発性メモリは、典型的には、プログラム及びデータの両方を含む、ＭＢＲ（マスタ・ブート・レコード）５１、及びＯＳ（オペレーティング・システム・ソフトウェア）５２、並びにさらに多くのものを含んでよい。
【００２９】
再び図１を参照すると、第３及び第４の不揮発性メモリ３２、３３が様々なコンポーネントを含んでよい。一般的に、不揮発性メモリのうちの１つはフラッシュ・メモリ又はＳＤＭ（セキュア・デジタル・メモリ）として実装されて、一般的にＢＩＯＳ（基本入出力システム・ファームウェア）４２内に含まれるＰＯＳＴによってまず使用されるシステム構成情報を格納するために使用されてよい。通常フラッシュ・メモリはブロック指向型のＥＥＰＲＯＭ（電気的消去可能書込み可能読出し専用メモリ）として実装される。
【００３０】
他のソフトウェア・コンポーネント、例えばＰｈｏｅｎｉｘ  Ｔｅｃｈｎｏｌｏｇｉｅｓ（登録商標）Ｌｔｄ．のＨｙｐｅｒｓｐａｃｅ（商標）が不揮発性メモリのうちのいずれかに格納されてよく、例えば第３の不揮発性メモリ３２はハイパーバイザ・プログラム６１（ＶＭＭ（仮想マシン・モニタ）としても知られている）のコピー及び／又はアプライアンス６２（又はアプレット）と呼ばれる比較的小さいアプリケーション・プログラムを含んでよい。
【００３１】
不揮発性メモリにファームウェア及びソフトウェアが格納されてよいが、当分野ではよく知られているように、一般的にブロック指向型デバイス・ドライバによる、又はシャドウ−メモリ技術による実行の前にシステム・メモリ１６に転送される。例外的に、命令、特にシャドウ−メモリ動作自体を実装するために使用される命令などの初期のコンピュータ・セットアップに使用されるＰＯＳＴ命令がＲＯＭなどから直接実行されてよい。
【００３２】
図１の不揮発性メモリは、他の図面を参照して以下に説明する諸ステップ又は諸動作を実行するための命令（ファームウェア及びソフトウェア）を、結合及び多くの置換によりで含んでよい。
【００３３】
図２は、本発明の実施形態を実装する際に電子装置によって実行される、パワーオン状態２００から開始する諸ステップを示す流れ図である。図２は単なる例示であり、本発明の一般的範囲内で多くの代替実施形態が可能である。さらに、図２は非常に高レベルなので、他の図面を参照してさらなる詳細を以下に説明する。
【００３４】
ステップ２１０で、他の機能が達成されうるようにハードウェアを呼び出す際の初期動作としてハードウェアが初期化される。次いで、図２には示されていない多くの特徴を有するＰＯＳＴ（パワーオン・セルフテスト）２２０が開始される。
【００３５】
ＰＯＳＴ処理におけるいくつかの点に、ミニＳＤＭ（ミニセキュア・デジタル・メモリ）などの不揮発性メモリ・パラメータの手動再構成ができるようにするために、人的介在２４０のための機会２３０が存在する。一般的に、これに続いてパワー・アップ初期化シーケンス２１０の開始に戻る。
【００３６】
ステップ２５０で、Ｐｈｏｅｎｉｘ  Ｔｅｃｈｎｏｌｏｇｉｅｓ（登録商標）Ｌｔｄ．Ｈｙｐｅｒｃｏｒｅ（商標）などのハイパーバイザ・サービスが要求されているかどうか検査が行われる。このような要求は、ＢＩＯＳ構成パラメータに応答しうるものなどのブート・タイム・サービスでよい。こうして決定が行われ（ステップ２６０）、ハイパーバイザ・サービスが要求されていない場合、ステップ２７０で従来のメモリ・セットアップが実行され、ステップ２８０でＯＳ（オペレーティング・システム）がブートロードされ、ステップ２９９でＢＩＯＳから制御が譲られる（この例ではＯＳに）。
【００３７】
ステップ３００で、ハイパーバイザ・サービスが要求され、それぞれのハイパーコア・セットアップ及びハイパーバイザ・ブートロードは図３を参照して以下で説明する。その後、ステップ２９９でセットアップが完了する。
【００３８】
図３は、ハイパーバイザ・ブートロードを有するハイパーコア・セットアップ、及び本発明の実施形態による関連動作を示しており、ステップ３００のハイパーコア・セットアップの開始で始まる。一般的に、実行のこの段階で、命令コードはＢＩＯＳ又は他のファームウェアの一部であり、メモリにシャドウされてよい。
【００３９】
ステップ３０３で、ＨＶ（ハイパーバイザ）セキュリティ・データのためにＳＭＭ（システム管理メモリ）区分内に領域が割り当てられる。ＳＭＭメモリは一時的なあまり使用されていないＣＰＵモード−ＣＰＵ温度監視などの低レベル・サービスのためのシステム管理モードでアクセスされる。
【００４０】
次に、ステップ３０５で、ＰＶＭＭ（Ｐｈｏｅｎｉｘ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）などのＨＶ（ハイパーバイザ）のために空きメモリから領域が割り当てられる。図示された例では、この割当てはＴＳＥＧ（Ｔｏｐ  ｏｆ  Ｍｅｍｏｒｙ  Ｓｅｇｍｅｎｔ）ＲＡＭ領域からでよい。この新たに割り当てられた領域は、ＰＶＭＭＳ（Ｐｈｏｅｎｉｘ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ  ｓｅｇｍｅｎｔ）として知られうる。
【００４１】
ステップ３１０で、フラッシュ・メモリなどの不揮発性メモリからＰＶＭＭＳにＨＳＣ（Ｈｙｐｅｒｖｉｓｏｒ  Ｓｔａｒｔｅｒ  Ｃｏｄｅ）がロードされる。調整されたベース・アドレスをオフセットすることを含むためのソフトウェア再配置技術、及びコードを絶対メモリ・アドレスから独立させるための同様の技術が、当分野ではよく知られている。一実施形態では、ＨＳＣは主にＩｎｔｅｌ（登録商標）ｘ８６におけるＢｉｇ  Ｒｅａｌ  Ｍｏｄｅ（Ｕｎｒｅａｌ又はＦｌａｔ  Ｒｅａｌ  Ｍｏｄｅとしても知られる）、及び同様のリトル・エンディアンＣＰＵアーキテクチャで実行する。
【００４２】
コードの再配置は、実装形態によっては、特にＵｎｉｘ（登録商標）符牒が好まれる環境ではローディング（Ｌｏａｄｉｎｇ）としても知られている。厳密には、ローディングは、アドレス調整が高い割合で行われるにもかかわらず必ずしもアドレス調整を含まない点で再配置よりわずかに広義である。
【００４３】
一実施形態では、ＨＳＣは次いでＨＶ（ハイパーバイザ）プログラムをロードするために作用してよい（ステップ３１５）。ＨＶは直接ロードされないことがあるが、代わりにＨＶをカスケード・ローディング配置などでロードするように作用するローダがロードされる。
【００４４】
ＨＶプログラムは当分野では一般的であり、コンピュータにおいて「裸で（ｎａｋｅｄ）」（すなわちＨＶなし）で実質的に実行できるプログラムがＨＶによってホストされるＶＭ（仮想マシン）環境を作成及びホストするために使用される。ＶＭは、ＶＭ内で実行するプログラムが、同様のピア・プログラムの間でコンピュータにおいて唯一ではないこと（という事実の可視性）の「認識（awareness）」を有することがないように、ＶＭのインスタンス間の可視性を防ぐメカニズムとしてよく知られている。
【００４５】
図３には示されていないが、制御はＨＳＣからさらなる領域ニーズ、例えばＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）のための領域にシステム・メモリ（ＲＡＭ）が割り当てられるＢＩＯＳスレッドに戻されてよい。
【００４６】
一般的に、ＢＩＯＳコードの後の動作は、「フリー・ストア」としても知られる「メモリ・ヒープ」をセットアップすることである（図３、ステップ３２０）。該ヒープは、オペレーティング・システムによって、及びオペレーティング・システムがロードするプログラムによって使用するために利用可能な、実質的に全てのフリー・ストア（通常ＲＡＭ）から構成される傾向がある。コンピュータ・サイエンスでは、動的メモリ割当ては、コンピュータ・プログラムにおいて、そのプログラムのランタイムの間に使用するためのメモリ装置の割当てである。限定されたメモリ資源の所有権を多くのデータ及びコード間で分配する方法と考えることもできる。本発明の実施形態では、該ヒープはＨＶ専用のメモリを明確に除外し、これは、後にロードされたプログラム、特にＭｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）、又はＬｉｎｕｘ（登録商標）などの汎用オペレーティング・システムから見えるＨＶの可視性を排除する（又は実質的に減らす）ように作用する。
【００４７】
一実施形態では、ヒープのセットアップ後、ＢＩＯＳがＨＳＣに制御を返し、次いでＨＳＣが、保護及び／又は仮想メモリ・モードのＨＶをロードして初期化する。一般的に、共働するＨＶ及び／又はＢＩＯＳは、ＢＩＯＳ構成のために使用されるメモリ（又は他の何らかのよく隠蔽された不揮発性メモリ）からパラメトリック・ステアリング情報を読むことになり、その情報は複数のＶＭ専用となるメモリにヒープを分割する（ステップ３２５）ために使用されてよい。したがって、ステアリングを案内するための情報がＨＳＣ又はＨＶにとって直接又はそれぞれのローダを通じて入手可能になる。
【００４８】
引き続き図３を参照すると、ステップ３３０でハイパーバイザ・プログラムがロードされる。一般的にハイパーバイザ・プログラムはＨＳＣによってロードされてよい。他の実施形態では、ハイパーバイザはメモリ・ヒープを割り当てる及び／又は分割する（ステップ３２０、３２５）前にロードされてよい。一実施形態では、ＨＳＣはＣＰＵ  Ｂｉｇ  Ｒｅａｌ  Ｍｏｄｅで実行してよいが、ＨＶは保護又は仮想メモリ・モードなどのより一般的なＣＰＵモードで主に又は完全に実行してよい。ＨＶに入る際にＲｅａｌ  Ｍｏｄｅを去るステップ３３５は主に実装時固有である。
【００４９】
したがって、ステップ３４０でＶＭのためのメモリ・ヒープ分割情報を使用できるので、ＨＶは次にＶＭをセットアップし続けてよい。ステップ３４５で、アプライアンス又はアプレットとして知られる小さいアプリケーション・プログラムが、その目的のために確保された、又は一般的にハード・ディスク・ドライブである主要不揮発性メモリから分離及び保護された不揮発性メモリからロードされてよい。
【００５０】
当然のことながら、ＨＶによってロードされたプログラムは一般的に、必要に応じて自分のメモリ割当てを自分のヒープとして取り扱って、様々なアプリケーション、デバイス・ドライバ等の間でさらに分割してよい。
【００５１】
この時点で、ＨＶは非ＨＶ  ＣＰＵブートロード手順のパスをたどってよく、例えばステップ３５０で１９ｈインタラプトを発行してよい。１９ｈインタラプトは、主要不揮発性メモリ（一般的にはハード・ディスク）からＭＢＲをロードして（ステップ３５５）、ＭＢＲを使用して見つかったプログラムに制御を渡してよい（ステップ３６０）コードによって「とられたもの」である（及び、例えばＭＢＲ内に含まれるブート・ローダでも、ＭＢＲが何らかの形式の間接情報を含むプログラム（例えば「ディスク・ポインタ」）でもよい）。ステップ３９９で、ＨＳＣ及びＨＶ、並びにＨＶによってホストされたアプライアンス及び／又はＯＳプログラム，をロード及び実行するための領域を割り当てる動作が完了する。
【００５２】
当分野ではよく知られているように、当然のことながら大部分のＨＶはＩ−Ｏ（入力−出力）要求（ハードウェア宛てであろうと、デバイス・ドライバ宛てであろうと）の仮想化、及び他のシステム要求の準仮想化を含む、ここで述べたことよりさらに多くのことを行う。例えば、ｘ８６アーキテクチャにおいて、ＯＳがヒープの自分の分割への可視性を有してヒープ全体の可視性を有しないように、よく知られている「Ｉｎｔ．１５ｈ／ＥＡＸ＝Ｅ８２０ｈ」メモリ要求を仮想化できるように、ＨＶはインタラプト１５ｈをフックしてよい。ＢＩＯＳは一般的にヒープ全体の可視性を提供するものであり、ＨＶはこの可視性を防ぐために動作してよい（ＨＶ自身において生じる要求、又は少なくともＨＶによってロードされたコード又はヒープ内にあるコード内からのものを除いて）。
【００５３】
したがって、いったん制御を有すると、ＨＶは，しばしばＳＭＭ（システム管理モード）制御（一般的にオーバーヒーティング検出又は初期のシステム・シャットダウンなどの主なイベントのために使用される）による介入に応答しての次のシステム・リセットまで、コンピュータの制御を保持する。
【００５４】
図４は、本発明を使用するＨＶによって実行される仮想化の例を示している。ステップ４００で、メモリ要求に応じてサービス機能へのエントリが行われ、その要求はＨＶによって仮想化されることになる。このようなメモリ要求は一般的にＩｎｔ  １５ｈソフトウェア・インタラプトのためのＩＳＲ（インタラプト・サービス・ルーチン）として実装される（ステップ４１０）。
【００５５】
ステップ４２０で、その要求がフォーマットの多くが当分野でよく知られている、サポートされている特定のフォーマット（Ｉｎｔ＝１５ｈ／ＥＡＸ＝Ｅ８２０ｈ）のメモリ情報かどうか検査が行われる。インタラプト要求が他の何らかの種類の要求の場合、ステップ４２５で制御は連鎖内の次のＩＳＲに抜け出る。
【００５６】
次いで、要求がサービスされるべきものと仮定すると、ステップ４３０でどのＶＭがメモリ情報を要求しているかについて決定がなされる。要求が全くＶＭからのものではない場合（ステップ４４０）、要求は仮想化されないが、ステップ４４５で単に連鎖内の別のＩＳＲ（もしあれば）による動作に伝えられる。
【００５７】
ステップ４５０で、応答がＩｎｔ＝１５ｈ／ＥＡＸ＝Ｅ８２０ｈ要求にコンパイルされるが、特定のＶＭのために仮想化される。実際にはＶＭのメモリ分割はまるで仮想化された応答をメモリ要求にコンパイルするためのヒープ全体のように取り扱われる。ステップ４９９で、仮想マシン・メモリ要求をサービスするためのＩＳＲが終了する。
【００５８】
次に図５を参照すると、減少された機能で、合理化された形式の動作へのランタイム遷移に関連付けられるハイパーコア・サービスを実行する際のＨＶの動作を説明している。この機能は、他の図面を参照して上述した機能と相補的であり、その機能によって主に可能となる。
【００５９】
本発明の例示的実施形態は、ＭＢＲを介してロードされた一次ＯＳが中断／無効にされる減少された機能モードを使用でき、関連する（エネルギー不足の）ハード・ディスクがパワーダウン状態に置かれるが、アプライアンス・プログラムは半導体不揮発性メモリを使用して実行する。しかし、低電力操作での減少された機能状態の使用は例示でしかなく、２つの態様は場合によっては互いに全く分離可能である。
【００６０】
図５のステップ５００で、低電力状態操作に切り替えるための処理へのエントリが行われる。ステップ５１０で、コンピュータ・ユーザは、おそらくそうするよう要求する刺激に答えて、コンピュータがアプライアンス・モードに入ろうとしていることを通知される。
【００６１】
ステップ５２０で、ＶＭ内にロードされた一つあるいは複数のＯＳには、仕掛のＩ−Ｏ（入力−出力）操作の完了を含みうる操作を終了するよう警告する信号が送信される。一般的にＯＳは、ハードウェア及び／又はソフトウェア実装時選択による「スリープ状態」又は同様の状態に入りつつあるマシンに関連して、その目的のためのフックを有する。
【００６２】
ステップ５３０で、ハード・ディスクの電源を切るための、及びおそらくＣＰＵクロッキング速度又はマルチプロセッサＣＰＵアクティブの数を減らすための、或いは他の適当なエネルギー節約型の変更のための要求がなされる。一般的にこのような制御はＳＭＭ内で実行しているソフトウェアによって処理され、その場合必要なサービスのために適切な要求ブロックとともにＳＭＩを発行することが必要な場合がある。
【００６３】
ステップ５４０で、中断されるべきＶＭは利用可能なＣＰＵ時間（並びにスワップ・インされた仮想メモリページ及び／又はその他）の取り分を有しない、又はほとんど有しないとしてマークされる。
【００６４】
ステップ５９９で、アプライアンス実行が適切な終了／戻りコードによって再開される。
【００６５】
図６Ａに関して、電子装置１０内のコンピュータ命令が、記憶レコーダ６２０を使用して記憶された命令を有する様々な可能な媒体６３０を使用して、製造されたファームウェア及び／又はソフトウェア・コンピュータ製品６１０として流通させてもよい。本発明を導入するものと同じくらい複雑な製品においては、しばしば関連製品の流通及び製造において複数の媒体が使用されてよい。明確にするために図６Ａには１つの媒体だけが示されているが、複数の媒体が使用されてよく、単一のコンピュータ製品が複数の媒体間で分割されてよい。
【００６６】
図６Ｂに関しては、さらに、特にインターネット利用が増加しているので、コンピュータ製品６１０を変調された信号に符号化することによって電波として流通せてよい。結果として得られる波形は送信機６４０によって転送され、変調された電磁搬送波６５０として伝搬され、受信機６６０によって受信されてよい。受信すると、波形は復調されてよく、信号はメモリ又は記憶装置１１内でコンピュータ製品のさらなるバージョン又はコピー６１１に復号される。
【００６７】
本発明の代替実施形態を構築するために他のトポロジや装置が使用されうる。
【図１】
2011526714.tif 000003
【図２】
2011526714.tif 000004
【図３】
2011526714.tif 000005
【図４】
2011526714.tif 000006
【図５】
2011526714.tif 000007
【図６Ａ】
2011526714.tif 000008
【図６Ｂ】
2011526714.tif 000009
【国際調査報告】
2011526714.tif 000010
2011526714.tif 000011
2011526714.tif 000012