(57)【要約】【課題】　保護メモリ領域への無許可アクセスを禁止するためのシステム、方法、およびコンピュータ・プログラムを提供する。【解決手段】　保護メモリ領域と信頼メモリ領域の両方を指定する。保護メモリ領域内のある位置にアクセスするための呼出しを受け取る。次に、その呼出しの発信位置を決定する。発信位置が信頼領域内にあるという決定に応答して、その呼出しは保護メモリ領域にアクセスすることが許可される。発信位置が信頼領域外にあるという決定に応答して、その呼出しは保護メモリ領域にアクセスすることが禁止される。【選択図】　図６
2004103009.tif 000002
【特許請求の範囲】
【請求項１】
　保護メモリ領域への無許可アクセスを禁止するための方法であって、
　保護メモリ領域を指定するステップと、
　信頼メモリ領域を指定するステップと、
　前記保護メモリ領域にアクセスするための呼出しを受け取るステップと、
　前記呼出しの発信位置を決定するステップと、
　前記発信位置が前記信頼領域内にあるという決定に応答して、前記呼出しが前記保護メモリ領域にアクセスすることを許可するステップと、
　を含む方法。
【請求項２】
　前記発信位置が前記信頼領域外にあることに応答して、前記呼出しが前記保護メモリ領域にアクセスすることを禁止するステップをさらに含む、請求項１に記載の方法。
【請求項３】
　ソフトウェア・ルーチンを作成するステップと、
　前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されているかどうかを判定するステップと、
　前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されているという決定に応答して、前記ソフトウェア・ルーチンを前記信頼メモリ領域内に記憶するステップと、
　をさらに含む、請求項１に記載の方法。
【請求項４】
　前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されていないという決定に応答して、前記ソフトウェア・ルーチンを前記信頼メモリ領域外に記憶するステップをさらに含む、請求項３に記載の方法。
【請求項５】
　ソフトウェア・ルーチンを作成するステップと、
　前記ソフトウェア・ルーチンがローグ呼出しによるアクセスから保護すべきかどうかを判定するステップであって、前記ローグ呼出しが前記信頼領域外にあるメモリ位置からの呼出しであるステップと、
　前記ソフトウェア・ルーチンがローグ呼出しによるアクセスから保護すべきであるという決定に応答して、前記ソフトウェア・ルーチンを前記保護領域内に記憶するステップと、
　をさらに含む、請求項１に記載の方法。
【請求項６】
　テスト・ルーチンを確立するステップと、
　前記保護領域内の任意の位置にアクセスしようと試みるすべての呼出しを前記テスト・ルーチンによりインターセプトするステップと、
　前記呼出しのそれぞれの発信位置を前記テスト・ルーチンにより決定するステップと、
　前記保護領域内の第１の位置にアクセスしようと試みる第１の呼出しの発信位置が前記信頼領域内にあるという前記テスト・ルーチンによる決定に応答して、前記保護メモリ領域内の前記第１の位置に前記第１の呼出しを前記テスト・ルーチンにより転送するステップと、
　をさらに含む、請求項１に記載の方法。
【請求項７】
　前記保護領域内の第１の位置にアクセスしようと試みる第１の呼出しの発信位置が前記信頼領域外にあるという前記テスト・ルーチンによる決定に応答して、前記保護メモリ領域内の前記第１の位置にアクセスせずに、前記テスト・ルーチンにより前記第１の呼出しを前記発信位置に返すステップをさらに含む、請求項６に記載の方法。
【請求項８】
　ハイパーバイザ機能を実行するためのハイパーバイザ・コードを作成するステップと、
　前記ハイパーバイザ・コードを前記保護領域内に記憶するステップと、
　をさらに含む、請求項１に記載の方法。
【請求項９】
　リンク・レジスタの現行値を決定することにより前記呼出しの発信位置を決定するステップであって、前記リンク・レジスタの前記現行値が前記呼出しが発信されたメモリ位置であるステップをさらに含む、請求項１に記載の方法。
【請求項１０】
　開始メモリ位置と終了メモリ位置を指定することにより信頼メモリ領域を指定するステップであって、前記信頼領域が前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含むステップをさらに含む、請求項１に記載の方法。
【請求項１１】
　開始メモリ位置と終了メモリ位置を指定することにより保護メモリ領域を指定するステップであって、前記保護領域が前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含むステップをさらに含む、請求項１に記載の方法。
【請求項１２】
　開始メモリ位置と終了メモリ位置を指定することにより信頼メモリ領域を指定するステップであって、前記信頼領域が前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含むステップと、
　リンク・レジスタの現行値を決定することにより前記呼出しの発信位置を決定するステップであって、前記リンク・レジスタの前記現行値が前記呼出しが発信されたメモリ位置であるステップと、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にあるかどうかを判定するステップと、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にあるという決定に応答して、前記呼出しが発信された前記メモリ位置が前記信頼メモリ領域内にあると決定し、前記呼出しが前記保護メモリ領域にアクセスすることを許可するステップと、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にないという決定に応答して、前記呼出しが発信された前記メモリ位置が前記信頼メモリ領域外にあると決定し、前記呼出しが前記保護メモリ領域にアクセスすることを禁止するステップと、
　をさらに含む、請求項１に記載の方法。
【請求項１３】
　保護メモリ領域への無許可アクセスを禁止するためのデータ処理システムであって、
　保護メモリ領域と、
　信頼メモリ領域と、
　前記保護メモリ領域にアクセスするために受け取る呼出しと、
　前記システムが、前記呼出しの発信位置を決定するためのＣＰＵ実行コードを含むことと、
　前記発信位置が前記信頼領域内にあるという決定に応答して、前記ＣＰＵ実行コードが、前記呼出しが前記保護メモリ領域にアクセスすることを許可すること、
　を具備するデータ処理システム。
【請求項１４】
　前記発信位置が前記信頼領域外にあることに応答して、前記ＣＰＵ実行コードが、前記呼出しが前記保護メモリ領域にアクセスすることを禁止することをさらに具備する、請求項１３に記載のシステム。
【請求項１５】
　ソフトウェア・ルーチンと、
　前記ＣＰＵ実行コードが、前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されているかどうかを判定することと、
　前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されているという決定に応答して、前記ソフトウェア・ルーチンが前記信頼メモリ領域内に記憶されることをさらに具備する、請求項１３に記載のシステム。
【請求項１６】
　前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されていないという決定に応答して、前記ソフトウェア・ルーチンが前記信頼メモリ領域外に記憶されることをさらに具備する、請求項１５に記載のシステム。
【請求項１７】
　ソフトウェア・ルーチンと、
　前記ＣＰＵ実行コードが、前記ソフトウェア・ルーチンがローグ呼出しによるアクセスから保護すべきかどうかを判定し、前記ローグ呼出しが前記信頼領域外にあるメモリ位置からの呼出しであることと、
　前記ソフトウェア・ルーチンがローグ呼出しによるアクセスから保護すべきであるという決定に応答して、前記ソフトウェア・ルーチンが前記保護領域内に記憶されることをさらに具備する、請求項１３に記載のシステム。
【請求項１８】
　テスト・ルーチンと、
　前記テスト・ルーチンが、前記保護領域内の任意の位置にアクセスしようと試みるすべての呼出しをインターセプトすることと、
　前記テスト・ルーチンが、前記呼出しのそれぞれの発信位置を決定することと、
　前記保護領域内の第１の位置にアクセスしようと試みる第１の呼出しの発信位置が前記信頼領域内にあるという前記テスト・ルーチンによる決定に応答して、前記テスト・ルーチンが、前記保護メモリ領域内の前記第１の位置に前記第１の呼出しを転送することをさらに具備する、請求項１３に記載のシステム。
【請求項１９】
　前記保護領域内の第１の位置にアクセスしようと試みる第１の呼出しの発信位置が前記信頼領域外にあるという前記テスト・ルーチンによる決定に応答して、前記保護メモリ領域内の前記第１の位置にアクセスせずに、前記テスト・ルーチンが、前記第１の呼出しを前記発信位置に返すことをさらに具備する、請求項１８に記載のシステム。
【請求項２０】
　ハイパーバイザ機能を実行するためのハイパーバイザ・コードと、
　前記ハイパーバイザ・コードが前記保護領域内に記憶されることをさらに具備する、請求項１３に記載のシステム。
【請求項２１】
　リンク・レジスタの現行値を決定することにより前記呼出しの発信位置を決定し、前記リンク・レジスタの前記現行値が前記呼出しが発信されたメモリ位置であることをさらに具備する、請求項１３に記載のシステム。
【請求項２２】
　信頼メモリ領域であって、開始メモリ位置と終了メモリ位置を指定することにより指定され、前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含む信頼メモリ領域をさらに具備する、請求項１３に記載のシステム。
【請求項２３】
　保護メモリ領域であって、開始メモリ位置と終了メモリ位置を指定することにより指定され、前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含む保護メモリ領域をさらに具備する、請求項１３に記載のシステム。
【請求項２４】
　信頼メモリ領域であって、開始メモリ位置と終了メモリ位置を指定することにより指定され、前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含む信頼メモリ領域と、
　前記ＣＰＵ実行コードが、リンク・レジスタの現行値を決定することにより前記呼出しの発信位置を決定し、前記リンク・レジスタの前記現行値が前記呼出しが発信されたメモリ位置であることと、
　前記ＣＰＵ実行コードが、前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にあるかどうかを判定することと、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にあるという決定に応答して、前記ＣＰＵ実行コードが、前記呼出しが発信された前記メモリ位置が前記信頼メモリ領域内にあると決定し、前記呼出しが前記保護メモリ領域にアクセスすることを許可することと、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にないという決定に応答して、前記ＣＰＵ実行コードが、前記呼出しが発信された前記メモリ位置が前記信頼メモリ領域外にあると決定し、前記呼出しが前記保護メモリ領域にアクセスすることを禁止することをさらに具備する、請求項１３に記載のシステム。
【請求項２５】
　保護メモリ領域への無許可アクセスを禁止するためのプログラムであって、データ処理システムを、
　保護メモリ領域を指定するための手段、
　信頼メモリ領域を指定するための手段、
　前記保護メモリ領域にアクセスするための呼出しを受け取るための手段、
　前記呼出しの発信位置を決定するための手段、
　前記発信位置が前記信頼領域内にあるという決定に応答して、前記呼出しが前記保護メモリ領域にアクセスすることを許可するための手段、
　として機能させるプログラム。
【請求項２６】
　データ処理システムを、前記発信位置が前記信頼領域外にあることに応答して、前記呼出しが前記保護メモリ領域にアクセスすることを禁止するための手段として機能させる請求項２５に記載のプログラム。
【請求項２７】
　データ処理システムを、
　ソフトウェア・ルーチンを作成するための手段、
　前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されているかどうかを判定するための手段、
　前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されているという決定に応答して、前記ソフトウェア・ルーチンを前記信頼メモリ領域内に記憶するための手段、
　として機能させる請求項２５に記載のプログラム。
【請求項２８】
　データ処理システムを、前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されていないという決定に応答して、前記ソフトウェア・ルーチンを前記信頼メモリ領域外に記憶するための手段として機能させる請求項２７に記載のプログラム。
【請求項２９】
　データ処理システムを、
　ソフトウェア・ルーチンを作成するための手段、
　前記ソフトウェア・ルーチンがローグ呼出しによるアクセスから保護すべきかどうかを判定するための手段であって、前記ローグ呼出しが前記信頼領域外にあるメモリ位置からの呼出しである手段、
　前記ソフトウェア・ルーチンがローグ呼出しによるアクセスから保護すべきであるという決定に応答して、前記ソフトウェア・ルーチンを前記保護領域内に記憶するための手段、
　として機能させる請求項２５に記載のプログラム。
【請求項３０】
　データ処理システムを、
　テスト・ルーチンを確立するための手段、
　前記保護領域内の任意の位置にアクセスしようと試みるすべての呼出しを前記テスト・ルーチンによりインターセプトするための手段、
　前記呼出しのそれぞれの発信位置を前記テスト・ルーチンにより決定するための手段、
　前記保護領域内の第１の位置にアクセスしようと試みる第１の呼出しの発信位置が前記信頼領域内にあるという前記テスト・ルーチンによる決定に応答して、前記保護メモリ領域内の前記第１の位置に前記第１の呼出しを前記テスト・ルーチンにより転送するための手段、
　として機能させる請求項２５に記載のプログラム。
【請求項３１】
　データ処理システムを、前記保護領域内の第１の位置にアクセスしようと試みる第１の呼出しの発信位置が前記信頼領域外にあるという前記テスト・ルーチンによる決定に応答して、前記保護メモリ領域内の前記第１の位置にアクセスせずに、前記テスト・ルーチンにより前記第１の呼出しを前記発信位置に返すための手段として機能させる請求項３０に記載のプログラム。
【請求項３２】
　データ処理システムを、
　ハイパーバイザ機能を実行するためのハイパーバイザ・コードを作成するための手段、
　前記ハイパーバイザ・コードを前記保護領域内に記憶するための手段、
　として機能させる請求項２５に記載のプログラム。
【請求項３３】
　データ処理システムを、リンク・レジスタの現行値を決定することにより前記呼出しの発信位置を決定するための手段であって、前記リンク・レジスタの前記現行値が前記呼出しが発信されたメモリ位置である手段として機能させる請求項２５に記載のプログラム。
【請求項３４】
　データ処理システムを、開始メモリ位置と終了メモリ位置を指定することにより信頼メモリ領域を指定するための手段であって、前記信頼領域が前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含む手段として機能させる請求項２５に記載のプログラム。
【請求項３５】
　データ処理システムを、開始メモリ位置と終了メモリ位置を指定することにより保護メモリ領域を指定するための手段であって、前記保護領域が前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含む手段として機能させる請求項２５に記載のプログラム。
【請求項３６】
　データ処理システムを、
　開始メモリ位置と終了メモリ位置を指定することにより信頼メモリ領域を指定するための手段であって、前記信頼領域が前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含む手段、
　リンク・レジスタの現行値を決定することにより前記呼出しの発信位置を決定するための手段であって、前記リンク・レジスタの前記現行値が前記呼出しが発信されたメモリ位置である手段、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にあるかどうかを判定するための手段と、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にあるという決定に応答して、前記呼出しが発信された前記メモリ位置が前記信頼メモリ領域内にあると決定し、前記呼出しが前記保護メモリ領域にアクセスすることを許可するための手段、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にないという決定に応答して、前記呼出しが発信された前記メモリ位置が前記信頼メモリ領域外にあると決定し、前記呼出しが前記保護メモリ領域にアクセスすることを禁止するための手段、
　として機能させる請求項２５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、一般に、コンピュータ・システムの分野に関し、より具体的には、本発明は、保護メモリ領域への無許可（ｕｎａｕｔｈｏｒｉｚｅｄ）アクセスを禁止するためのシステム、方法、およびプログラムに関する。
【背景技術】
【０００２】
　データ処理システム（プラットフォーム）内のロジカル・パーティショニング・オプション（ＬＰＡＲ）によれば、シングル・オペレーティング・システム（ＯＳ）の複数のコピーまたは複数の異種オペレーティング・システムを単一のデータ処理システム・ハードウェア・プラットフォーム上で同時に稼働することができる。オペレーティング・システム・イメージが稼働するパーティションには、プラットフォームのハードウェア・リソースのオーバラップしていないサブセットを割り当てることができる。ある実装においては、システム・リソースが本質的にパーティション間にタイム・スライスされるように、システム・リソースの何パーセントかが割り当てられる。このようなプラットフォーム割当て可能リソースには、それぞれの割込み管理領域、システム・メモリ領域、入出力（Ｉ／Ｏ）アダプタ・バス・スロットを備えた１または複数のアーキテクチャ上の個別のプロセッサが含まれる。このパーティションのリソースは、一般にシステムの基礎となる（ｕｎｄｅｒｌｙｉｎｇ）ファームウェアによって作成され、維持され、ＯＳイメージにとって使用可能なそれ自体のリソース・リストによって表現される。
【０００３】
　１のロジカル・パーティション上でのソフトウェア・エラーが他のいずれかのパーティションの正しい動作に影響しないように、そのプラットフォーム内で稼働中の各個別ＯＳまたはＯＳのイメージは互いに保護されている。これは、任意の時点で、各ＯＳイメージが直接管理すべきフラットフォーム・リソースの独立セットを割り当て、それに割り当てられていないリソースを様々なイメージが管理できないようにするためのメカニズムを提供することによって実現される。さらに、オペレーティング・システムの割当てリソースを制御する際のソフトウェア・エラーが他のイメージのリソースに影響することが防止される。従って、そのＯＳの各イメージまたはそれぞれの各ＯＳは、任意の時点で、そのプラットフォーム内の割当て可能リソースの独立セットを直接制御する。
【０００４】
　多くのロジカル・パーティション化されたシステムはハイパーバイザを利用する。ハイパーバイザとは、ハードウェアとロジカル・パーティションとの間の特権ソフトウェアのレイヤー（ｌａｙｅｒ、層）であり、パーティション保護境界（ｐａｒｔｉｔｉｏｎ　ｐｒｏｔｅｃｔｉｏｎ　ｂｏｕｎｄａｒｙ）を管理し、実施するものである。ハイパーバイザは、パーティション管理ファームウェアとも言う。ハイパーバイザは、同じ物理ハードウェア上の複数の論理システムの構成、保守、稼働を担当する。ハイパーバイザは、通常、あるパーティションへの複数リソースの割当て、あるパーティションでのオペレーティング・システムのインストール、あるパーティションでのオペレーティング・システムの始動および停止、あるパーティションの主記憶域のダンプ、パーティション間の通信、その他の機能の提供を担当する。これらの機能を実現するために、ハイパーバイザは、主記憶域管理、同期プリミティブ、Ｉ／Ｏ機構、ヒープ管理、その他の機能など、自分自身の低レベル動作も実現しなければならない。
【０００５】
　ハイパーバイザ・コードに含まれるハイパーバイザ機能にアクセスすることで、ハイパーバイザ・コードの機能性（ｆｕｎｃｔｉｏｎａｌｉｔｙ）が変更される可能性がある。その結果、ハイパーバイザの機能性の変更は、ハイパーバイザはすべてのパーティションをサポートするので、システム全体の安定性に影響することになる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
　したがって、保護領域に記憶されたソフトウェア・ルーチンを保護するために、ハイパーバイザが記憶されている領域などの保護メモリ領域への無許可アクセスを禁止するための方法、システム、およびコンピュータ・プログラムが必要になっている。
【課題を解決するための手段】
【０００７】
　保護メモリ領域への無許可アクセスを禁止するためのシステム、方法、およびコンピュータ・プログラムが開示される。保護メモリ領域（ｐｒｏｔｅｃｔｅｄ　ｒｅｇｉｏｎ　ｏｆ　ｍｅｍｏｒｙ）と信頼メモリ領域（ｔｒｕｓｔｅｄ　ｒｅｇｉｏｎ　ｏｆ　ｍｅｍｏｒｙ）の両方を指定する。保護メモリ領域内のある位置にアクセスするための呼出しを受け取る。次に、その呼出しの発信位置を決定する。発信位置が信頼領域内にあるという決定に応答して、その呼出しは保護メモリ領域にアクセスすることが許可される。発信位置が信頼領域外にあるという決定に応答して、その呼出しは保護メモリ領域にアクセスすることが禁止される。
【０００８】
　本発明の上記ならびに追加の目的、特徴、および利点は、以下に示す詳細な説明で明らかになるだろう。
【０００９】
　本発明に特有と思われる新規の特徴は特許請求の範囲に示されている。しかし、本発明そのものならびにその好ましい使用形態、追加の目的および利点は、添付図面に関連して読んだときに以下に示す例証となる実施形態の詳細な説明を参照することにより、最もよく理解できるだろう。
【発明を実施するための最良の形態】
【００１０】
　本発明の好ましい実施形態およびその利点は、添付図面を参照することにより、より十分に理解される。添付図面の同様の部分および対応する部分については同様の番号を使用する。
【００１１】
　本発明は、保護メモリ領域への無許可アクセスを禁止するための方法、システム、およびプログラムである。保護メモリ領域と信頼メモリ領域の両方を指定する。信頼領域から保護領域に対して行われる呼出しを許可し、実行することになる。ローグ呼出し（ｒｏｇｕｅ　ｃａｌｌ）、すなわち、信頼領域以外の領域から保護領域への呼出しは実行されない。このような呼出しは、保護領域にアクセスすることが許可されずに返されることになる。
【００１２】
　保護領域に対して行われた呼出しの発信アドレスを決定するために、リンク・レジスタの現行値（ｃｕｒｒｅｎｔ　ｖａｌｕｅ）を決定することになる。リンク・レジスタの現行値が信頼領域内にある場合、その呼出しは実行され、保護領域にアクセスすることが許可されることになる。しかし、リンク・レジスタの現行値が信頼領域内にない場合、その呼出しは実行されず、保護領域にアクセスすることが許可されないことになる。
【００１３】
　ローグ呼出しから保護する必要があるソフトウェアは、保護領域に記憶することができる。保護ソフトウェアにアクセスすることが許可される可能性のあるソフトウェア・ルーチンは、保護ソフトウェアにアクセスするために信頼領域に記憶しておかなければならない。例えば、ハイパーバイザ・コードは保護領域に記憶することができる。信頼領域に記憶されたソフトウェア・コードのみが、ハイパーバイザ・コードにアクセスすることができる。このようにして、ハイパーバイザ・コードが保護されることになる。
【００１４】
　図１は、本発明を実現可能なデータ処理システムのネットワークの図示したものである。ネットワーク・データ処理システム１０は、本発明を実現可能なコンピュータのネットワークである。ネットワーク・データ処理システム１０は、ネットワーク・データ処理システム１０内でまとめて接続される様々な装置およびコンピュータ間の通信リンクを提供するために使用する媒体であるネットワーク１２を含む。ネットワーク１２は、ワイヤ、ワイヤレス通信リンク、または光ファイバ・ケーブルなどの接続を含むこともできる。
【００１５】
　図示の例のサーバ１４は、記憶装置１６とともにネットワーク１２に接続されている。加えて、クライアント１８、２０、２２もネットワーク１２に接続されている。ネットワーク１２は、ワイヤまたは光ファイバ・ケーブルなどの常時接続あるいは電話接続によって行われる一時接続を含み得る。また、通信ネットワーク１２は、他の公衆および／または専用広域ネットワーク、ローカル・エリア・ネットワーク、ワイヤレス・ネットワーク、データ通信ネットワークまたは接続、イントラネット、ルータ、衛星リンク、マイクロ波中継装置、セルラーまたは電話網、無線リンク、光ファイバ伝送回線、ＩＳＤＮ回線、Ｔ１回線、ＤＳＬなどを含み得る。ある実施形態では、本発明の範囲を逸脱することなく、ユーザ装置をサーバ１４に直接接続することができる。その上、本明細書で使用するように、通信は、有線または無線技術によって可能になるものも含まれる。
【００１６】
　クライアント１８、２０、２２は、たとえば、パーソナル・コンピュータ、ポータブル・コンピュータ、移動または固定ユーザ・ステーション、ワークステーション、ネットワーク端末またはサーバ、セルラー電話、キオスク、ダム端末、携帯情報端末、双方向ページャ、スマート・ホン、情報家電、あるいはネットワーク・コンピュータにすることができる。本出願では、ネットワーク・コンピュータは、ネットワークに結合され、そのネットワークに結合された他のコンピュータからプログラムまたは他のアプリケーションを受信する任意のコンピュータである。
【００１７】
　図示の例のサーバ１４は、ブート・ファイル、オペレーティング・システム・イメージ、アプリケーションなどのデータをクライアント１８〜２２に提供する。クライアント１８、２０、２２はサーバ１４に対するクライアントである。ネットワーク・データ処理システム１０は、図示していない追加のサーバ、クライアント、その他の装置を含むこともできる。図示の例のネットワーク・データ処理システム１０は、互いに通信するためにＴＣＰ／ＩＰプロトコル・セットを使用するネットワークおよびゲートウェイの世界的集合を表すネットワーク１２を備えたインターネットである。インターネットの中心には、データおよびメッセージを経路指定する数千台の商用、行政用、教育用、その他のコンピュータ・システムから構成される、大ノード間またはホスト・コンピュータ間の高速データ通信回線のバックボーンがある。当然のことながら、ネットワーク・データ処理システム１０は、たとえば、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、または広域ネットワーク（ＷＡＮ）など、いくつかの異なるタイプのネットワークとして実現することもできる。図１は、一例として示すものであり、本発明のアーキテクチャ上の制限として示すものではない。
【００１８】
　図２は、本発明を実現可能なデータ処理システムのより詳細なブロック図である。データ処理システム１００はロジカル・パーティション化システムである。データ処理システム１００は、ロジカル・パーティション化ハードウェアを含む中央電子複合体１０１を含む。ＣＥＣ１０１は、システム・バス１０６に接続された複数のプロセッサ１０１、１０２、１０３、１０４を含む。また、システム・バス１０６には、複数のローカル・メモリ１６０〜１６３へのインタフェースを提供するメモリ・コントローラ／キャッシュ１０８も接続されている。リモート入出力（ＲＩＯ）ハブ１１０は、システム・バス１０６に接続され、ＲＩＯバス１１２へのインタフェースを提供する。メモリ・コントローラ／キャッシュ１０８とＲＩＯハブ１１０は、図示の通り、一体化することもできる。
【００１９】
　データ処理システム１００はロジカル・パーティション化されたデータ処理システムである。したがって、データ処理システム１００は、同時に稼働する複数の異種オペレーティング・システム（または単一オペレーティング・システムの複数のインスタンス）を有することができる。このような複数のオペレーティング・システムのそれぞれは、その内部で実行される任意の数のソフトウェア・プログラムを有することができる。データ処理システム１００は、異なるＩ／Ｏアダプタ１２０〜１２１、１２８〜１２９、１３６、１４８〜１４９を異なるロジカル・パーティションに割り当てることができるように、ロジカル・パーティション化されている。
【００２０】
　その結果、例えば、データ処理システム１００が３つのロジカル・パーティションＰ１、Ｐ２、Ｐ３に分割されていると想定する。Ｉ／Ｏアダプタ１２０〜１２１、１２８〜１２９、１３６、１４８〜１４９のそれぞれと、プロセッサ１０１〜１０４のそれぞれと、ローカル・メモリ１６０〜１６３のそれぞれが３つのパーティションの１つに割り当てられる。たとえば、プロセッサ１０１とメモリ１６０とＩ／Ｏアダプタ１２０、１２８、１２９はロジカル・パーティションＰ１に割り当てることができ、プロセッサ１０２〜１０３とメモリ１６１とＩ／Ｏアダプタ１２１および１３６はパーティションＰ２に割り当てることができ、プロセッサ１０４とメモリ１６２〜１６３とＩ／Ｏアダプタ１４８〜１４９はロジカル・パーティションＰ３に割り当てることができる。
【００２１】
　データ処理システム１００内で実行される各オペレーティング・システムは異なるロジカル・パーティションに割り当てられる。従って、データ処理システム１００内で実行される各オペレーティング・システムは、そのロジカル・パーティション内にあるＩ／Ｏユニットのみにアクセスすることができる。
【００２２】
　ＲＩＯバス１１２に接続されたＲＩＯ−周辺装置相互接続（ＰＣＩ）ホスト・ブリッジ１１４は、ＰＣＩローカル・バス１１５へのインタフェースを提供する。ＰＣＩ−ＰＣＩブリッジ１１６の使用により、いくつかの入出力アダプタ１２０〜１２１をＰＣＩバス１１５に接続することができる。典型的なＰＣＩ−ＰＣＩブリッジ実現例は、４〜８個のＩ／Ｏアダプタ間をサポートすることになる（すなわち、アドイン・コネクタ用の拡張スロット）。それぞれのＩ／Ｏアダプタ１２０〜１２１はデータ処理システム１００と入出力装置とのインタフェースを提供する。Ｉ／Ｏ装置１２０ａはＩ／Ｏアダプタ１２０に結合され、Ｉ／Ｏ装置１２１ａはＩ／Ｏアダプタ１２１に結合される。
【００２３】
　追加のＲＩＯ−ＰＣＩホスト・ブリッジ１２２は、追加のＰＣＩバス１２３用のインタフェースを提供する。ＰＣＩ−ＰＣＩブリッジ１２４の使用によるＰＣＩバス１２３は、ＰＣＩバス１２６〜１２７によって複数のＰＣＩ　Ｉ／Ｏアダプタ１２８〜１２９に接続される。Ｉ／Ｏ装置１２８ａはＩ／Ｏアダプタ１２８に結合され、Ｉ／Ｏ装置１２９ａはＩ／Ｏアダプタ１２９に結合される。
【００２４】
　メモリ・マップ・グラフィック・アダプタ１４８は、図示の通り、ＰＣＩバス１４４および１４５を介してＲＩＯ−ＰＣＩホスト・ブリッジ１４０とＰＣＩ−ＰＣＩブリッジ１４２によりＲＩＯバス１１２に接続することができる。また、ハード・ディスク１５０も、図示の通り、ＰＣＩバス１４１および１４５を介してＲＩＯ−ＰＣＩホスト・ブリッジ１４０とＰＣＩ−ＰＣＩブリッジ１４２によりＲＩＯバス１１２に接続することができる。
【００２５】
　ＲＩＯ−ＰＣＩホスト・ブリッジ１３０は、ＲＩＯバス１１２に接続するためにＰＣＩバス１３１用のインタフェースを提供する。ＰＣＩバス１３１は、ＲＩＯ−ＰＣＩホスト・ブリッジ１３０をサービス・プロセッサ・メールボックス・インタフェースおよびＩＳＡバス・アクセス・パススルー論理回路１９４とＰＣＩ−ＰＣＩブリッジ１３２に接続する。ＩＳＡバス・アクセス・パススルー論理回路１９４は、ＰＣＩ／ＩＳＡブリッジ１９３向けのＰＣＩアクセスを転送する。ＮＶＲＡＭ記憶域はＩＳＡバス１９６に接続される。サービス・プロセッサ１３５は、そのローカルＰＣＩバス１９５によりサービス・プロセッサ・メールボックス・インタフェース１９４に結合される。また、サービス・プロセッサ１３５は、複数のＪＴＡＧ／Ｉ２Ｃバス１３４を介してプロセッサ１０１〜１０４にも接続される。ＪＴＡＧ／Ｉ２Ｃバス１３４は、ＪＴＡＧ／スキャン・バス（ＩＥＥＥ１１４９．１を参照）とフィリップスＩ２Ｃバスの組合せである。しかし、別法として、ＪＴＡＧ／Ｉ２Ｃバス１３４は、フィリップスＩ２ＣバスのみまたはＪＴＡＧ／スキャン・バスのみによって置き換えることもできる。ホスト・プロセッサ１０１、１０２、１０３、１０４のすべてのＳＰ−ＡＴＴＮ信号は、サービス・プロセッサの割込み入力信号にまとめて接続される。サービス・プロセッサ１３５はそれ自体のローカル・メモリ１９１を有し、ハードウェアの操作パネル１９０にアクセスすることができる。
【００２６】
　データ処理システム１００に最初に電源を投入すると、サービス・プロセッサ１３５はＪＴＡＧ／Ｉ２Ｃバス１３４を使用してシステム（ホスト）プロセッサ１０１〜１０４、メモリ・コントローラ１０８、ＲＩＯハブ１１０に問い合わせる。このステップの完了時に、サービス・プロセッサ１３５は、データ処理システム１００のインベントリおよびトポロジを理解している。また、サービス・プロセッサ１３５は、システム・プロセッサ１０１〜１０４、メモリ・コントローラ１０８、ＲＩＯハブ１１０に問い合わせることによって検出したすべての要素について組込み型自己診断（ＢＩＳＴ）、基本確認テスト（ＢＡＴ）、メモリ・テストも実行する。ＢＩＳＴ、ＢＡＴ、メモリ・テスト中に検出した障害に関するエラー情報は、サービス・プロセッサ１３５によって収集され、報告される。
【００２７】
　ＢＩＳＴ、ＢＡＴ、メモリ・テスト中に欠陥があると分かった要素を取り出した後でもシステム・リソースの意味のある／有効な構成が可能である場合、データ処理システム１００は、ローカル（ホスト）メモリ１６０〜１６３への実行可能コードのロードに移行することができる。次にサービス・プロセッサ１３５は、ホスト・メモリ１６０〜１６３にロードしたコードの実行のためにホスト・プロセッサ１０１〜１０４を解放する。ホスト・プロセッサ１０１〜１０４がデータ処理システム１００内のそれぞれのオペレーティング・システムからコードを実行している間に、サービス・プロセッサ１３５はエラーをモニターし報告するモードに入る。サービス・プロセッサがモニターする項目のタイプとしては、たとえば、冷却ファンの速度と動作、温度センサ、電源レギュレータ、プロセッサ１０１〜１０４が報告する回復可能エラーと回復不能エラー、メモリ１６０〜１６３、ＲＩＯハブ１１０を含む。
【００２８】
　サービス・プロセッサ１３５は、データ処理システム１００内のすべてのモニター項目に関連するエラー情報の保管と報告を担当する。また、サービス・プロセッサ１３５は、エラーのタイプおよび定義したしきい値に基づくアクションを講ずる。たとえば、サービス・プロセッサ１３５は、プロセッサのキャッシュ・メモリ上の過剰な回復可能エラーに注目し、これが困難な障害の前兆であると決定することができる。この決定に基づいて、サービス・プロセッサ１３５は、現行の実行セッションおよび今後の初期プログラム・ロード（ＩＰＬ）中に再構成するためにそのリソースにマークを付けることができる。
【００２９】
　当業者であれば、図２に示すハードウェアが変化しうることが分かるだろう。たとえば、図示のハードウェアに加えまたはその代わりに、光学ディスク・ドライブなどの他の周辺装置も使用することができる。図示の例は、本発明に関連するアーキテクチャ上の制限を意図するものではないことに留意されたい。
【００３０】
　図３は、本発明を実現可能な例示的なロジカル・パーティション化プラットフォームのブロック図である。ロジカル・パーティション化プラットフォーム２００は、パーティション化ハードウェア２３０と、ハイパーバイザとも呼ばれるパーティション管理ファームウェア２１０と、パーティション２０１〜２０４とを含む。オペレーティング・システム２０１ａ〜２０４ａはパーティション２０１〜２０４内に存在する。オペレーティング・システム２０１ａ〜２０４ａは、プラットフォーム２００上で同時に稼働する単一オペレーティング・システムの複数コピーまたは複数の異種オペレーティング・システムにすることができる。
【００３１】
　パーティション化ハードウェア２３０は、複数のプロセッサ２３２〜２３８と、複数のシステム・メモリ・ユニット２４０〜２４６と、複数の入出力（Ｉ／Ｏ）アダプタ２４８〜２６２と、記憶装置２７０とを含む。プロセッサ２４２〜２４８、メモリ・ユニット２４０〜２４６、ＮＶＲＡＭ記憶域２９８、Ｉ／Ｏアダプタ２４８〜２６２のそれぞれは、複数のパーティション２０１〜２０４の１つに割り当てることができる。
【００３２】
　パーティション管理ファームウェア（ハイパーバイザ）２１０は、ロジカル・パーティション化プラットフォーム２００のパーティション化を作成し、実現するためにパーティション２０１〜２０４に関するいくつかの機能およびサービスを実行する。ハイパーバイザ２１０は、基礎ハードウェアと同一のファームウェア実現仮想計算機である。ファームウェアは、たとえば、読取専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、不揮発性ランダム・アクセス・メモリ（不揮発性ＲＡＭ）など、電力なしでその内容を保持するメモリ・チップに記憶された「ソフトウェア」である。したがって、ハイパーバイザ２１０は、ハードウェア・リソースの仮想化によるかまたはロジカル・パーティション化プラットフォーム２００の共用システム・リソースのアトミック・アクセスを可能にすることにより、独立したＯＳイメージ２０１ａ〜２０４ａの同時実行を可能にするものである。ハイパーバイザ２１０は、ＯＳイメージ２０１ａ〜２０４ａの１つによって使用するためにＩ／Ｏアダプタ２４８〜２６２を介して排他モードの単一仮想計算機にＩ／Ｏ装置を接続することができる。
【００３３】
　図４は、メモリのマップのブロック図であり、本発明により信頼領域外にある領域からメモリの保護領域内のアドレスへの呼出しを示している。マップ４００は、メモリ２４０、２４２、２４４、または２４６などのメモリで描写されている。メモリの一領域は信頼領域４０２として指定されている。信頼領域はリンク時に定義され、変更することができない。信頼領域は、その信頼領域用の開始メモリ位置と終了メモリ位置とを定義することによって定義される。
【００３４】
　加えて、メモリの一領域は保護され、保護領域４０４として指定される。保護領域４０４内にあるアドレスに対して呼出しが行われると、テスト位置４０６に記憶されているテスト・ルーチンがその呼出しをインターセプトし、その呼出しの発信アドレスを決定することになる。テスト位置４０６は保護領域４０４内に位置する。その呼出しが領域４０８からなどのように信頼領域４０２外にある位置から発信された場合、その呼出しは、実行されずにテスト・ルーチンによって返されることになる。
【００３５】
　無許可アクセスから保護すべきソフトウェア・ルーチンは、保護領域４０４などの保護領域内に記憶される。このため、保護されたソフトウェア・ルーチンに対する許可呼出しだけが実行される。例えば、ハイパーバイザ・コードは、許可コード以外のものによってアクセスまたは変更できてはならない。従って、ハイパーバイザ・コードが保護メモリ領域に記憶されている場合、ハイパーバイザ・コードは、信頼メモリ領域外からローグ呼出しによってアクセスまたは変更できなくなる。ローグ呼出しは、本出願では、信頼領域外にある位置から発信された呼出しと定義される。
【００３６】
　図５は、メモリ・マップのブロック図であり、本発明により信頼領域内から保護領域内にあるアドレスへの呼出しを示している。メモリ・マップ５００は信頼領域５０２と保護領域５０４とを含む。テスト・ルーチンはテスト領域５０６に記憶されている。テスト領域５０６は保護領域５０４内に含まれている。保護領域５０４内に含まれるアドレスに対して呼出しが行われると、テスト・ルーチンはその呼出しをインターセプトし、その呼出しの発信アドレスを決定することになる。その呼出しが信頼領域５０２内にある位置から発信された場合、その呼出しは、テスト・ルーチンによって実行され、保護領域５０４内のアドレスに転送されることになる。
【００３７】
　図６は、本発明によりソフトウェア・ルーチンがメモリ内の保護領域にアクセスすることが許可されたときに信頼領域にソフトウェア・ルーチンを記憶することを示す高レベル流れ図を示している。このプロセスは、ブロック６００によって示されるように開始され、その後、メモリの特定の領域を信頼領域として指定することを示すブロック６０２に移行する。信頼領域は、その信頼領域用の開始メモリ位置と終了メモリ位置を指定することによって指定される。したがって、信頼領域は、開始メモリ位置と終了メモリ位置とを含む両者の間にあるすべてのメモリ位置を含む。次に、ブロック６０４は、そのメモリの特定の領域を保護領域として指定することを示す。保護領域は、その保護領域用の開始メモリ位置と終了メモリ位置を指定することによって指定される。したがって、保護領域は、開始メモリ位置と終了メモリ位置とを含む両者の間にあるすべてのメモリ位置を含む。次にプロセスは、ソフトウェア・ルーチンの作成を示すブロック６０６に移行する。その後、ブロック６０８は、ソフトウェア・ルーチンを信頼領域に記憶しようという試みを示す。
【００３８】
　ブロック６１０は、ソフトウェア・ルーチンがメモリの保護領域のアドレスにアクセスすることが許可されているかどうかの判定を示す。ソフトウェア・ルーチンが保護領域内のアドレスにアクセスすることが許可されていると判定された場合、ブロック６１２は、ソフトウェア・ルーチンが信頼領域内に記憶されることを示す。その後、プロセスはブロック６１４が示すように終了する。
【００３９】
　もう一度、ブロック６１０を参照すると、ソフトウェア・ルーチンが保護領域内のどのアドレスにアクセスすることも許可されていないと判定された場合、ソフトウェア・ルーチンは信頼領域内に記憶することが禁止される。その後、プロセスはブロック６１４が示すように終了する。
【００４０】
　図７は、本発明により信頼領域から呼出しが発信された場合のみ保護領域への呼出しを実行することを示す高レベル流れ図を示している。このプロセスは、ブロック７００によって示されるように開始され、その後、保護領域内のアドレスに対して行われた呼出しをテスト・ルーチンがインターセプトすることを示すブロック７０２に移行する。次に、ブロック７０４は、リンク・レジスタの現行値をテスト・ルーチンがチェックすることを示す。リンク・レジスタは、最後の命令を発生したアドレスを記憶するために使用する。したがって、リンク・レジスタは、その呼出しを発生したアドレスを含むことになる。テスト・ルーチンは、リンク・レジスタの現行値を使用して、呼出しを行った発信メモリ・アドレスを決定する。
【００４１】
　次にプロセスは、その発信アドレスが信頼領域内に位置するかどうかの判定を示すブロック７０６に移行する。この判定はテスト・ルーチンによって行われる。テスト・ルーチンはリンク・レジスタの現行値を決定する。リンク・レジスタの現行値が信頼領域の開始メモリ位置と終了メモリ位置との間にあるかまたはそれらを含む場合、発信アドレスが信頼領域内に位置するという判定がテスト・ルーチンによって行われる。
【００４２】
　もう一度、ブロック７０６を参照すると、発信アドレスが信頼領域内に位置するという判定が行われた場合、プロセスは、その呼出しを保護領域内のアドレスに転送することによってその呼出しが実行されることを示すブロック７０８に移行する。次にプロセスはブロック７０２に戻る。もう一度、ブロック７０６を参照すると、発信アドレスが信頼領域内に位置していないという判定が行われた場合、プロセスは、その呼出しを実行せずに発信メモリ・アドレスに制御を返すことを示すブロック７１０に移行する。次にプロセスはブロック７０２に戻る。
【００４３】
　完全に機能するデータ処理システムに関連して本発明を説明してきたが、当業者であれば、本発明のプロセスが複数命令からなるプログラムとして実現され、コンピュータ可読媒体の形式その他の様々な形式で配布可能であり、その配布を実施するために実際に使用される特定タイプの信号伝達媒体にかかわらず、本発明が同様に適用されることを容易に理解し得ることは、留意すべき重要なことである。コンピュータ可読媒体の例としては、フレキシブル・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録可能タイプの媒体と、ディジタルおよびアナログ通信リンク、例えば、無線周波伝送および光波伝送などの伝送形式を使用する有線または無線通信リンクなどの伝送タイプの媒体が含まれる。コンピュータ可読媒体は、特定のデータ処理システムで実際に使用するためにデコードされるコード化フォーマットの形式を取ることができる。
【００４４】
　本発明の説明は、例証および説明のために提示したものであり、網羅的にするかまたは開示した形式の本発明に限定するためのものではない。多くの変更形態および変形形態は当業者にとって明らかであろう。本発明の原理、実際の応用例を最もよく説明し、企図した特定の使用に適した様々な変更形態とともに様々な実施形態に関し、当業者が本発明を理解できるようにするために、実施形態を選択し、説明した。
【００４５】
　まとめとして、本発明の構成に関して以下の事項を開示する。
【００４６】
（１）保護メモリ領域への無許可アクセスを禁止するための方法であって、
　保護メモリ領域を指定するステップと、
　信頼メモリ領域を指定するステップと、
　前記保護メモリ領域にアクセスするための呼出しを受け取るステップと、
　前記呼出しの発信位置を決定するステップと、
　前記発信位置が前記信頼領域内にあるという決定に応答して、前記呼出しが前記保護メモリ領域にアクセスすることを許可するステップと、
　を含む方法。
（２）前記発信位置が前記信頼領域外にあることに応答して、前記呼出しが前記保護メモリ領域にアクセスすることを禁止するステップをさらに含む、上記（１）に記載の方法。
（３）ソフトウェア・ルーチンを作成するステップと、
　前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されているかどうかを判定するステップと、
　前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されているという決定に応答して、前記ソフトウェア・ルーチンを前記信頼メモリ領域内に記憶するステップと、
　をさらに含む、上記（１）に記載の方法。
（４）前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されていないという決定に応答して、前記ソフトウェア・ルーチンを前記信頼メモリ領域外に記憶するステップをさらに含む、上記（３）に記載の方法。
（５）ソフトウェア・ルーチンを作成するステップと、
　前記ソフトウェア・ルーチンがローグ呼出しによるアクセスから保護すべきかどうかを判定するステップであって、前記ローグ呼出しが前記信頼領域外にあるメモリ位置からの呼出しであるステップと、
　前記ソフトウェア・ルーチンがローグ呼出しによるアクセスから保護すべきであるという決定に応答して、前記ソフトウェア・ルーチンを前記保護領域内に記憶するステップと、
　をさらに含む、上記（１）に記載の方法。
（６）テスト・ルーチンを確立するステップと、
　前記保護領域内の任意の位置にアクセスしようと試みるすべての呼出しを前記テスト・ルーチンによりインターセプトするステップと、
　前記呼出しのそれぞれの発信位置を前記テスト・ルーチンにより決定するステップと、
　前記保護領域内の第１の位置にアクセスしようと試みる第１の呼出しの発信位置が前記信頼領域内にあるという前記テスト・ルーチンによる決定に応答して、前記保護メモリ領域内の前記第１の位置に前記第１の呼出しを前記テスト・ルーチンにより転送するステップと、
　をさらに含む、上記（１）に記載の方法。
（７）前記保護領域内の第１の位置にアクセスしようと試みる第１の呼出しの発信位置が前記信頼領域外にあるという前記テスト・ルーチンによる決定に応答して、前記保護メモリ領域内の前記第１の位置にアクセスせずに、前記テスト・ルーチンにより前記第１の呼出しを前記発信位置に返すステップをさらに含む、上記（６）に記載の方法。
（８）ハイパーバイザ機能を実行するためのハイパーバイザ・コードを作成するステップと、
　前記ハイパーバイザ・コードを前記保護領域内に記憶するステップと、
　をさらに含む、上記（１）に記載の方法。
（９）リンク・レジスタの現行値を決定することにより前記呼出しの発信位置を決定するステップであって、前記リンク・レジスタの前記現行値が前記呼出しが発信されたメモリ位置であるステップをさらに含む、上記（１）に記載の方法。
（１０）開始メモリ位置と終了メモリ位置を指定することにより信頼メモリ領域を指定するステップであって、前記信頼領域が前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含むステップをさらに含む、上記（１）に記載の方法。
（１１）開始メモリ位置と終了メモリ位置を指定することにより保護メモリ領域を指定するステップであって、前記保護領域が前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含むステップをさらに含む、上記（１）に記載の方法。
（１２）開始メモリ位置と終了メモリ位置を指定することにより信頼メモリ領域を指定するステップであって、前記信頼領域が前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含むステップと、
　リンク・レジスタの現行値を決定することにより前記呼出しの発信位置を決定するステップであって、前記リンク・レジスタの前記現行値が前記呼出しが発信されたメモリ位置であるステップと、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にあるかどうかを判定するステップと、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にあるという決定に応答して、前記呼出しが発信された前記メモリ位置が前記信頼メモリ領域内にあると決定し、前記呼出しが前記保護メモリ領域にアクセスすることを許可するステップと、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にないという決定に応答して、前記呼出しが発信された前記メモリ位置が前記信頼メモリ領域外にあると決定し、前記呼出しが前記保護メモリ領域にアクセスすることを禁止するステップと、
　をさらに含む、上記（１）に記載の方法。
（１３）保護メモリ領域への無許可アクセスを禁止するためのデータ処理システムであって、
　保護メモリ領域と、
　信頼メモリ領域と、
　前記保護メモリ領域にアクセスするために受け取る呼出しと、
　前記システムが、前記呼出しの発信位置を決定するためのＣＰＵ実行コードを含むことと、
　前記発信位置が前記信頼領域内にあるという決定に応答して、前記ＣＰＵ実行コードが、前記呼出しが前記保護メモリ領域にアクセスすることを許可すること、
　を具備するデータ処理システム。
（１４）前記発信位置が前記信頼領域外にあることに応答して、前記ＣＰＵ実行コードが、前記呼出しが前記保護メモリ領域にアクセスすることを禁止することをさらに具備する、上記（１３）に記載のシステム。
（１５）ソフトウェア・ルーチンと、
　前記ＣＰＵ実行コードが、前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されているかどうかを判定することと、
　前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されているという決定に応答して、前記ソフトウェア・ルーチンが前記信頼メモリ領域内に記憶されることをさらに具備する、上記（１３）に記載のシステム。
（１６）前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されていないという決定に応答して、前記ソフトウェア・ルーチンが前記信頼メモリ領域外に記憶されることをさらに具備する、上記（１５）に記載のシステム。
（１７）ソフトウェア・ルーチンと、
　前記ＣＰＵ実行コードが、前記ソフトウェア・ルーチンがローグ呼出しによるアクセスから保護すべきかどうかを判定し、前記ローグ呼出しが前記信頼領域外にあるメモリ位置からの呼出しであることと、
　前記ソフトウェア・ルーチンがローグ呼出しによるアクセスから保護すべきであるという決定に応答して、前記ソフトウェア・ルーチンが前記保護領域内に記憶されることをさらに具備する、上記（１３）に記載のシステム。
（１８）テスト・ルーチンと、
　前記テスト・ルーチンが、前記保護領域内の任意の位置にアクセスしようと試みるすべての呼出しをインターセプトすることと、
　前記テスト・ルーチンが、前記呼出しのそれぞれの発信位置を決定することと、
　前記保護領域内の第１の位置にアクセスしようと試みる第１の呼出しの発信位置が前記信頼領域内にあるという前記テスト・ルーチンによる決定に応答して、前記テスト・ルーチンが、前記保護メモリ領域内の前記第１の位置に前記第１の呼出しを転送することをさらに具備する、上記（１３）に記載のシステム。
（１９）前記保護領域内の第１の位置にアクセスしようと試みる第１の呼出しの発信位置が前記信頼領域外にあるという前記テスト・ルーチンによる決定に応答して、前記保護メモリ領域内の前記第１の位置にアクセスせずに、前記テスト・ルーチンが、前記第１の呼出しを前記発信位置に返すことをさらに具備する、上記（１８）に記載のシステム。
（２０）ハイパーバイザ機能を実行するためのハイパーバイザ・コードと、
　前記ハイパーバイザ・コードが前記保護領域内に記憶されることをさらに具備する、上記（１３）に記載のシステム。
（２１）リンク・レジスタの現行値を決定することにより前記呼出しの発信位置を決定し、前記リンク・レジスタの前記現行値が前記呼出しが発信されたメモリ位置であることをさらに具備する、上記（１３）に記載のシステム。
（２２）信頼メモリ領域であって、開始メモリ位置と終了メモリ位置を指定することにより指定され、前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含む信頼メモリ領域をさらに具備する、上記（１３）に記載のシステム。
（２３）保護メモリ領域であって、開始メモリ位置と終了メモリ位置を指定することにより指定され、前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含む保護メモリ領域をさらに具備する、上記（１３）に記載のシステム。
（２４）信頼メモリ領域であって、開始メモリ位置と終了メモリ位置を指定することにより指定され、前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含む信頼メモリ領域と、
　前記ＣＰＵ実行コードが、リンク・レジスタの現行値を決定することにより前記呼出しの発信位置を決定し、前記リンク・レジスタの前記現行値が前記呼出しが発信されたメモリ位置であることと、
　前記ＣＰＵ実行コードが、前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にあるかどうかを判定することと、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にあるという決定に応答して、前記ＣＰＵ実行コードが、前記呼出しが発信された前記メモリ位置が前記信頼メモリ領域内にあると決定し、前記呼出しが前記保護メモリ領域にアクセスすることを許可することと、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にないという決定に応答して、前記ＣＰＵ実行コードが、前記呼出しが発信された前記メモリ位置が前記信頼メモリ領域外にあると決定し、前記呼出しが前記保護メモリ領域にアクセスすることを禁止することをさらに具備する、上記（１３）に記載のシステム。
（２５）保護メモリ領域への無許可アクセスを禁止するためのプログラムであって、データ処理システムを、
　保護メモリ領域を指定するための手段、
　信頼メモリ領域を指定するための手段、
　前記保護メモリ領域にアクセスするための呼出しを受け取るための手段、
　前記呼出しの発信位置を決定するための手段、
　前記発信位置が前記信頼領域内にあるという決定に応答して、前記呼出しが前記保護メモリ領域にアクセスすることを許可するための手段、
　として機能させるプログラム。
（２６）データ処理システムを、前記発信位置が前記信頼領域外にあることに応答して、前記呼出しが前記保護メモリ領域にアクセスすることを禁止するための手段として機能させる上記（２５）に記載のプログラム。
（２７）データ処理システムを、
　ソフトウェア・ルーチンを作成するための手段、
　前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されているかどうかを判定するための手段、
　前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されているという決定に応答して、前記ソフトウェア・ルーチンを前記信頼メモリ領域内に記憶するための手段、
　として機能させる上記（２５）に記載のプログラム。
（２８）データ処理システムを、前記ソフトウェア・ルーチンが前記保護メモリ領域にアクセスすることを許可されていないという決定に応答して、前記ソフトウェア・ルーチンを前記信頼メモリ領域外に記憶するための手段として機能させる上記（２７）に記載のプログラム。
（２９）データ処理システムを、
　ソフトウェア・ルーチンを作成するための手段、
　前記ソフトウェア・ルーチンがローグ呼出しによるアクセスから保護すべきかどうかを判定するための手段であって、前記ローグ呼出しが前記信頼領域外にあるメモリ位置からの呼出しである手段、
　前記ソフトウェア・ルーチンがローグ呼出しによるアクセスから保護すべきであるという決定に応答して、前記ソフトウェア・ルーチンを前記保護領域内に記憶するための手段、
　として機能させる上記（２５）に記載のプログラム。
（３０）データ処理システムを、
　テスト・ルーチンを確立するための手段、
　前記保護領域内の任意の位置にアクセスしようと試みるすべての呼出しを前記テスト・ルーチンによりインターセプトするための手段、
　前記呼出しのそれぞれの発信位置を前記テスト・ルーチンにより決定するための手段、
　前記保護領域内の第１の位置にアクセスしようと試みる第１の呼出しの発信位置が前記信頼領域内にあるという前記テスト・ルーチンによる決定に応答して、前記保護メモリ領域内の前記第１の位置に前記第１の呼出しを前記テスト・ルーチンにより転送するための手段、
　として機能させる上記（２５）に記載のプログラム。
（３１）データ処理システムを、前記保護領域内の第１の位置にアクセスしようと試みる第１の呼出しの発信位置が前記信頼領域外にあるという前記テスト・ルーチンによる決定に応答して、前記保護メモリ領域内の前記第１の位置にアクセスせずに、前記テスト・ルーチンにより前記第１の呼出しを前記発信位置に返すための手段として機能させる上記（３０）に記載のプログラム。
（３２）データ処理システムを、
　ハイパーバイザ機能を実行するためのハイパーバイザ・コードを作成するための手段、
　前記ハイパーバイザ・コードを前記保護領域内に記憶するための手段、
　として機能させる上記（２５）に記載のプログラム。
（３３）データ処理システムを、リンク・レジスタの現行値を決定することにより前記呼出しの発信位置を決定するための手段であって、前記リンク・レジスタの前記現行値が前記呼出しが発信されたメモリ位置である手段として機能させる上記（２５）に記載のプログラム。
（３４）データ処理システムを、開始メモリ位置と終了メモリ位置を指定することにより信頼メモリ領域を指定するための手段であって、前記信頼領域が前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含む手段として機能させる上記（２５）に記載のプログラム。
（３５）データ処理システムを、開始メモリ位置と終了メモリ位置を指定することにより保護メモリ領域を指定するための手段であって、前記保護領域が前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含む手段として機能させる上記（２５）に記載のプログラム。
（３６）データ処理システムを、
　開始メモリ位置と終了メモリ位置を指定することにより信頼メモリ領域を指定するための手段であって、前記信頼領域が前記開始メモリ位置を含む前記開始メモリ位置から前記終了メモリ位置を含む前記終了メモリ位置までのすべてのメモリ位置を含む手段、
　リンク・レジスタの現行値を決定することにより前記呼出しの発信位置を決定するための手段であって、前記リンク・レジスタの前記現行値が前記呼出しが発信されたメモリ位置である手段、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にあるかどうかを判定するための手段と、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にあるという決定に応答して、前記呼出しが発信された前記メモリ位置が前記信頼メモリ領域内にあると決定し、前記呼出しが前記保護メモリ領域にアクセスすることを許可するための手段、
　前記呼出しが発信された前記メモリ位置が前記開始メモリ位置と前記終了メモリ位置とを含む両者の間にないという決定に応答して、前記呼出しが発信された前記メモリ位置が前記信頼メモリ領域外にあると決定し、前記呼出しが前記保護メモリ領域にアクセスすることを禁止するための手段、
　として機能させる上記（２５）に記載のプログラム。
【図面の簡単な説明】
【００４７】
【図１】本発明の好ましい実施形態により本発明を実現可能なデータ処理システムを描写する絵画表現である。
【図２】本発明により本発明を実現可能なデータ処理システムのより詳細なブロック図である。
【図３】本発明を実現可能な例示的なロジカル・パーティション化プラットフォームのブロック図である。
【図４】メモリ・マップのブロック図であり、本発明による信頼領域外にある領域からメモリ内の保護領域内にあるアドレスへの呼出しを示す図である。
【図５】メモリ・マップのブロック図であり、本発明による信頼領域内から保護領域内にあるアドレスへの呼出しを示す図である。
【図６】本発明によりソフトウェア・ルーチンがメモリ内の保護領域にアクセスすることが許可されたときに信頼領域にソフトウェア・ルーチンを記憶することを示す高レベル流れ図である。
【図７】本発明により信頼領域から呼出しが発信された場合のみ保護領域への呼出しを実行することを示す高レベル流れ図である。
【符号の説明】
【００４８】
１０　ネットワーク・データ処理システム
１２　ネットワーク
１４　サーバ
１６　記憶装置
１８　クライアント
２０　クライアント
２２　クライアント
１００　データ処理システム
１０１　プロセッサ
１０２　プロセッサ
１０３　プロセッサ
１０４　プロセッサ
１０６　システム・バス
１０８　メモリ・コントローラ／キャッシュ
１１０　ＲＩＯハブ
１１２　ＲＩＯバス
１１４　ＲＩＯ−ＰＣＩブリッジ
１１５　ＰＣＩバス
１１８　ＰＣＩバス
１１９　ＰＣＩバス
１２０　ＰＣＩ　Ｉ／Ｏアダプタ
１２０ａ　Ｉ／Ｏ装置
１２１　ＰＣＩ　Ｉ／Ｏアダプタ
１２１ａ　Ｉ／Ｏ装置
１２２　ＲＩＯ−ＰＣＩブリッジ
１２３　ＰＣＩバス
１２６　ＰＣＩバス
１２７　ＰＣＩバス
１２８　ＰＣＩ　Ｉ／Ｏアダプタ
１２８ａ　Ｉ／Ｏ装置
１２９　ＰＣＩ　Ｉ／Ｏアダプタ
１２９ａ　Ｉ／Ｏ装置
１３０　ＲＩＯ−ＰＣＩブリッジ
１３１　ＰＣＩバス
１３３　ＰＣＩバス
１３４　ＪＴＡＧ／Ｉ２Ｃバス
１３５　サービス・プロセッサ
１３６　ＰＣＩ　Ｉ／Ｏアダプタ
１４０　ＲＩＯ−ＰＣＩブリッジ
１４１　ＰＣＩバス
１４４　ＰＣＩバス
１４５　ＰＣＩバス
１４８　グラフィック・アダプタ
１４９　ハード・ディスク・アダプタ
１５０　ハード・ディスク
１６０　ローカル・メモリ
１６１　ローカル・メモリ
１６２　ローカル・メモリ
１６３　ローカル・メモリ
１９０　操作パネル
１９１　メモリ
１９３　ＰＣＩ／ＩＳＡブリッジ
１９４　サービス・プロセッサ・メールボックス・インタフェースおよびＩＳＡバス・アクセス・パススルー
１９５　ＰＣＩバス
１９６　ＩＳＡバス
２００　ロジカル・パーティション化プラットフォーム
２０１　パーティション
２０２　パーティション
２０３　パーティション
２０４　パーティション
２１０　パーティション管理ファームウェア（ハイパーバイザ）
２３０　パーティション化ハードウェア
２３２　プロセッサ
２３４　プロセッサ
２３６　プロセッサ
２３８　プロセッサ
２４０　メモリ
２４２　メモリ
２４４　メモリ
２４６　メモリ
２４８　Ｉ／Ｏアダプタ
２５０　Ｉ／Ｏアダプタ
２５２　Ｉ／Ｏアダプタ
２５４　Ｉ／Ｏアダプタ
２５６　Ｉ／Ｏアダプタ
２５８　Ｉ／Ｏアダプタ
２６０　Ｉ／Ｏアダプタ
２６２　Ｉ／Ｏアダプタ
２７０　記憶装置
２９０　サービス・プロセッサ
４００　メモリ・マップ
４０２　信頼領域
４０４　保護領域
４０６　テスト
５００　メモリ・マップ
５０２　信頼領域
５０４　保護領域
５０６　テスト
【図１】
2004103009.tif 000003
【図２】
2004103009.tif 000004
【図３】
2004103009.tif 000005
【図４】
2004103009.tif 000006
【図５】
2004103009.tif 000007
【図６】
2004103009.tif 000008
【図７】
2004103009.tif 000009