(57)【要約】【課題】データを転送するための方法、装置、およびコンピュータ命令を提供すること。【解決手段】第１の区画内のデータは論理区画を有するデータ処理システム内の第１の区画に割り当てられたメモリ領域内で受信され、受信済みデータを形成する。受信済みデータが第２の区画用であるという決定に応答して、メモリ領域が第２の区画に割り当てられる。その後、第２の区画はメモリ領域内のデータにアクセスすることができる。【選択図】  図２
2005353070.tif 000002
【特許請求の範囲】
【請求項１】
受信済みデータを形成するために、論理区画を有するデータ処理システム内の第１の区画に割り当てられたメモリ領域内で第１の区画内のデータを受信するステップと、
前記受信済みデータが第２の区画用であるという決定に応答して、前記メモリ領域を第２の区画に割り当てるステップと
を有し、前記第２の区画は前記メモリ領域内のデータにアクセスすることができる、論理区画を有するデータ処理システムにおいてデータを転送するための方法。
【請求項２】
前記第１の区画がホスト区画である、請求項１に記載の方法。
【請求項３】
前記メモリ領域を前記第２の区画に割り当てた後に、前記第２の区画にポインタ構造を送信するステップをさらに有する、請求項１に記載の方法。
【請求項４】
前記ポインタ構造が前記メモリ領域のアドレスを含む、請求項３に記載の方法。
【請求項５】
前記ポインタ構造が前記メモリ領域の長さをさらに含む、請求項４に記載の方法。
【請求項６】
前記メモリ領域がページである、請求項１に記載の方法。
【請求項７】
前記割り当てるステップが、
前記メモリ領域を前記第２の区画に割り当てるために、プラットフォーム・ファームウェアに対する呼び出しを実行するステップを含む、請求項１に記載の方法。
【請求項８】
前記受信するステップおよび前記割り当てるステップが前記第１の区画によって実行される、請求項１に記載の方法。
【請求項９】
前記データへのアクセスが不要である場合に、前記メモリ領域を前記第２の区画により使用から解放するステップをさらに有する、請求項１に記載の方法。
【請求項１０】
前記メモリ領域が前記第２の区画によって解放されることに応答して、前記メモリ領域を前記第１の区画に再割り当てするステップをさらに有する、請求項９に記載の方法。
【請求項１１】
前記メモリ領域内の前記データが前記第１の区画に割り当てられたアダプタを介して受信される、請求項１に記載の方法。
【請求項１２】
受信済みデータを形成するために、論理区画を有するデータ処理システム内の第１の区画に割り当てられたメモリ領域内で第１の区画内のデータを受信するための受信手段と、
前記受信済みデータが第２の区画用であるという決定に応答して、前記メモリ領域を第２の区画に割り当てるための割り当て手段と、
を有し、前記第２の区画は前記メモリ領域内のデータにアクセスすることができる、データを転送するための論理区画を有するデータ処理システム。
【請求項１３】
前記第１の区画がホスト区画である、請求項１２に記載のデータ処理システム。
【請求項１４】
前記メモリ領域を前記第２の区画に割り当てた後に、前記第２の区画にポインタ構造を送信するための送信手段をさらに有する、請求項１２に記載のデータ処理システム。
【請求項１５】
前記ポインタ構造が前記メモリ領域のアドレスを含む、請求項１４に記載のデータ処理システム。
【請求項１６】
前記ポインタ構造が前記メモリ領域の長さをさらに含む、請求項１５に記載のデータ処理システム。
【請求項１７】
前記メモリ領域がページである、請求項１２に記載のデータ処理システム。
【請求項１８】
前記割り当て手段が、
前記メモリ領域を前記第２の区画に割り当てるために、プラットフォーム・ファームウェアに対する呼び出しを実行するための実行手段を含む、請求項１２に記載のデータ処理システム。
【請求項１９】
前記受信手段および前記割り当て手段が前記第１の区画内に配置される、請求項１２に記載のデータ処理システム。
【請求項２０】
前記データへのアクセスが不要である場合に、前記メモリ領域を前記第２の区画により使用から解放するための解放手段をさらに有する、請求項１２に記載のデータ処理システム。
【請求項２１】
前記メモリ領域が前記第２の区画によって解放されることに応答して、前記メモリ領域を前記第１の区画に再割り当てするための再割り当て手段をさらに有する、請求項２０に記載のデータ処理システム。
【請求項２２】
前記メモリ領域内の前記データが前記第１の区画に割り当てられたアダプタを介して受信される、請求項１２に記載のデータ処理システム。
【請求項２３】
受信済みデータを形成するために、論理区画を有するデータ処理システム内の第１の区画に割り当てられたメモリ領域内で第１の区画内のデータを受信するための第１の命令と、
前記受信済みデータが第２の区画用であるという決定に応答して、前記メモリ領域を第２の区画に割り当てるための第２の命令と、
を有し、前記第２の区画は前記メモリ領域内のデータにアクセスすることができる、データを転送するためのコンピュータ読取り可能媒体内のコンピュータ・プログラム。
【請求項２４】
前記メモリ領域を前記第２の区画に割り当てた後に、前記第２の区画にポインタ構造を送信するための第３の命令をさらに有する、請求項２３に記載のコンピュータ・プログラム。
【請求項２５】
前記ポインタ構造が前記メモリ領域のアドレスを含む、請求項２４に記載のコンピュータ・プログラム。
【請求項２６】
前記メモリ領域がページである、請求項２３に記載のコンピュータ・プログラム。
【請求項２７】
前記第２の命令が、
前記メモリ領域を前記第２の区画に割り当てるために、プラットフォーム・ファームウェアに対する呼び出しを実行するための下位命令を含む、請求項２３に記載のコンピュータ・プログラム。
【請求項２８】
前記データへのアクセスが不要である場合に、前記メモリ領域を前記第２の区画により使用から解放するための第３の命令をさらに有する、請求項２３に記載のコンピュータ・プログラム。
【請求項２９】
前記メモリ領域が前記第２の区画によって解放されることに応答して、前記メモリ領域を前記第１の区画に再割り当てするための第４の命令をさらに有する、請求項２８に記載のコンピュータ・プログラム。
【請求項３０】
バス・システムと、
前記バス・システムに接続されたメモリであって、前記メモリが命令のセットを含むものであるメモリと、
前記バス・システムに接続された処理ユニットと、
を有する論理区画を有するデータ処理システムであって、前記処理ユニットが、受信済みデータを形成するために、論理区画を有するデータ処理システム内の第１の区画に割り当てられたメモリ領域内で第１の区画内のデータを受信するため、および前記メモリ領域を第２の区画に割り当てるための、命令セットを実行し、前記受信済みデータが第２の区画用であるという決定に応答して、前記第２の区画が前記メモリ領域内のデータにアクセスすることができる、論理区画を有するデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、改良されたデータ処理システムに関し、具体的に言えば、データを転送するための改良された方法および装置に関する。さらに具体的に言えば、本発明は、論理的に区画されたデータ処理システムにおいて１つの区画から別の区画へデータを転送するための改良された方法、装置、およびコンピュータ命令に関する。
【背景技術】
【０００２】
インターナショナル・ビジネス・マシンズ・コーポレーションから入手可能なＩＢＭ  ｅＳｅｒｖｅｒ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標）Ｐ６９０、ヒューレット・パッカード社から入手可能なＤＨＰ９０００  Ｓｕｐｅｒｄｏｍｅ  Ｅｎｔｅｒｐｒｉｓｅ  Ｓｅｒｖｅｒ、およびサン・マイクロシステムズ社から入手可能なＳｕｎｆｉｒｅ  １５Ｋサーバなどの、ますます大規模化される対称型マルチプロセッサ・データ処理システムは、単一の大規模データ処理システムとしては使用されていない。その代わりに、これらのタイプのデータ処理システムは区分され、より小規模なシステムとして使用されている。これらのシステムは論理区画（ＬＰＡＲ）を有するデータ処理システムとも呼ばれる。データ処理システム内での論理区画機能により、単一のオペレーティング・システムの複数のコピーまたは複数の異機種オペレーティング・システムを、単一のデータ処理システム・プラットフォーム上で同時に実行させることができる。オペレーティング・システム・イメージが実行される区画には、プラットフォーム・リソースの重複しないサブセットが割り当てられる。これらのプラットフォーム割り振り可能リソースには、割込み管理域、システム・メモリの領域、および入力／出力（Ｉ／Ｏ）アダプタ・バス・スロットを備えた、１つまたは複数のアーキテクチャ上別個のプロセッサが含まれる。区画のリソースは、プラットフォームのファームウェアによってオペレーティング・システム・イメージに提示される。
【０００３】
１つの論理区画上でのソフトウェア・エラーが任意の他の区画の正しいオペレーションに影響を与えることがないように、プラットフォーム内で実行中の各別個のオペレーション・システムまたはオペレーティング・システムのイメージは相互に保護される。この保護は、各オペレーティング・システム・イメージによって直接管理されることになるプラットフォーム・リソースの非結合セットを割り振ること、および様々なイメージがそのイメージに割り振られていないいかなるリソースをも制御できないことを保証するための機構を提供することによって、与えられる。その上、オペレーティング・システムの割り振られたリソースを制御する際のソフトウェア・エラーによって、任意の他のイメージのリソースが影響を受けるのを防止する。
【０００４】
したがって、オペレーティング・システムの各イメージまたは異なる各オペレーティング・システムは、プラットフォーム内の割り振り可能リソースの別個のセットを直接制御する。論理区画を有するデータ処理システム内のハードウェア・リソースに関して、これらのリソースは様々な区画間で非結合的に共有される。これらのリソースは、たとえば入力／出力（Ｉ／Ｏ）アダプタ、メモリＤＩＭＭ、不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）、およびハード・ディスク・ドライブを含むことができる。ＬＰＡＲデータ処理システム内の各区画は、データ処理システム全体の電源スイッチをオン／オフさせる（ｐｏｗｅｒ−ｃｙｃｌｅ）必要なしに、ブートおよびシャットダウンを何度も繰り返すことができる。
【０００５】
論理区画環境では、典型的には１つの区画が、この区画に関連付けられたネットワーク・アダプタから受信した要求などの入力／出力（Ｉ／Ｏ）要求をホストする。データは、ネットワーク・アダプタのピン固定（ｐｉｎｎｅｄ）メモリ領域から、Ｉ／Ｏ要求をホストしている区画のローカル・メモリ領域へとコピーされる。通常、この区画はホスト区画と呼ばれる。データがホスト区画以外の区画によって要求されている場合、データはホスト区画のローカル・メモリ領域から要求側区画のローカル・メモリ領域へとコピーされる。
【０００６】
データを転送するために現在使用されているこのシステムは、非区分システムに比べると、追加のデータ・コピー・オペレーションが必要である。非区分システムでは、データはアダプタのメモリ領域から、アプリケーションが処理のためにデータを入手できるメイン・メモリにコピーされる。これに対して、論理区画を有するデータ処理システムでは、ホスト区画に関連付けられたメモリ領域からデータを要求している区画のメモリ領域へとデータを移動させるために、さらにコピー・オペレーションが必要である。
【０００７】
この追加のオペレーションは、追加のプロセッサのリソースおよび時間を必要とする。その結果、多数のデータ要求が実行されると、性能が低下する可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、要求側区画に論理区画を有するデータ処理システム内のデータへのアクセス権を与えるための、改良された方法、装置、およびコンピュータ命令を有することが有利となろう。
【課題を解決するための手段】
【０００９】
本発明は、データを転送するための方法、装置、およびコンピュータ命令を提供する。第１の区画内のデータは論理区画を有するデータ処理システム内の第１の区画に割り当てられたメモリ領域内で受信され、受信済みデータを形成する。受信済みデータが第２の区画用であるという決定に応答して、メモリ領域が第２の区画に割り当てられる。その後、第２の区画はメモリ領域内のデータにアクセスすることができる。
【００１０】
本発明の新規な機能と考えられる特徴は、添付の特許請求の範囲に記載される。しかしながら、本発明自体、ならびに好ましい使用法、さらにはその目的および利点は、添付の図面と共に例示的な実施形態の以下の詳細な説明を参照することによって、最も良く理解されるであろう。
【発明を実施するための最良の形態】
【００１１】
次に図面を参照すると、具体的には図１を参照すると、本発明が実施可能なデータ処理システムのブロック図が示されている。データ処理システム１００は、システム・バス１０６に接続された複数のプロセッサ１０１、１０２、１０３、および１０４を含む、対称型マルチプロセッサ（ＳＭＰ）システムとすることができる。たとえばデータ処理システム１００は、ニューヨーク州アーモンクにあるインターナショナル・ビジネス・マシンズ・コーポレーションの製品であり、ネットワーク内のサーバとして実施される、ＩＢＭ  ｅＳｅｒｖｅｒとすることができる。別の方法として、単一のプロセッサ・システムを採用することもできる。さらにシステム・バス１０６には、複数のローカル・メモリ１６０〜１６３へのインターフェースを提供するメモリ・コントローラ／キャッシュ１０８が接続される。Ｉ／Ｏバス・ブリッジ１１０がシステム・バス１０６に接続され、Ｉ／Ｏバス１１２へのインターフェースを提供する。図に示されるように、メモリ・コントローラ／キャッシュ１０８とＩ／Ｏバス・ブリッジ１１０とを一体化させることが可能である。
【００１２】
データ処理システム１００は論理区画（ＬＰＡＲ）を有するデータ処理システムである。したがってデータ処理システム１００は、同時に実行される複数の異機種オペレーティング・システム（または単一オペレーティング・システムの複数のインスタンス）を有することができる。これら複数のオペレーティング・システムは、それぞれその内部で実行される任意数のソフトウェア・プログラムを有することができる。データ処理システム１００は、異なるＰＣＩ  Ｉ／Ｏアダプタ１２０〜１２１、１２８〜１２９、および１３６、グラフィック・アダプタ１４８、ならびにハード・ディスク・アダプタ１４９を異なる論理区画に割り当てることができるように、論理的に区分される。この場合、グラフィック・アダプタ１４８はディスプレイ・デバイス（図示せず）向けの接続を提供し、ハード・ディスク・アダプタ１４９はハード・ディスク１５０を制御するための接続を提供する。
【００１３】
したがって、たとえばデータ処理システム１００が３つの論理区画Ｐ１、Ｐ２、およびＰ３に分割されるものと仮定する。ＰＣＩ  Ｉ／Ｏアダプタ１２０〜１２１、１２８〜１２９、および１３６、グラフィック・アダプタ１４８、ハード・ディスク・アダプタ１４９、それぞれのホスト・プロセッサ１０１〜１０４、ならびにローカル・メモリ１６０〜１６３からのメモリは、それぞれ、この３つの区画それぞれに割り当てられる。これらの例では、メモリ１６０〜１６３はデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）の形を取ることができる。一般にＤＩＭＭは、ＤＩＭＭごとに区画に割り当てられる訳ではない。代わりに区画は、プラットフォームが見るメモリ全体の一部を獲得することになる。たとえば、プロセッサ１０１、ローカル・メモリ１６０〜１６３からのメモリの何らかの部分、ならびにＩ／Ｏアダプタ１２０、１２８、および１２９を論理区画Ｐ１に割り当て、プロセッサ１０２〜１０３、ローカル・メモリ１６０〜１６３からのメモリの何らかの部分、ならびにＰＣＩ  Ｉ／Ｏアダプタ１２１および１３６を論理区画Ｐ２に割り当て、プロセッサ１０４、ローカル・メモリ１６０〜１６３からのメモリの何らかの部分、グラフィック・アダプタ１４８、ならびにハード・ディスク・アダプタ１４９を論理区画Ｐ３に割り当てることができる。
【００１４】
データ処理システム１００内で実行される各オペレーティング・システムは、異なる論理区画に割り当てられる。したがって、データ処理システム１００内で実行される各オペレーティング・システムは、その論理区画内にあるそれらのＩ／Ｏユニットにのみアクセスすることができる。したがって、たとえば拡張対話式エグゼクティブ（ＡＩＸ）オペレーティング・システムの１つのインスタンスを区画Ｐ１内で実行し、ＡＩＸオペレーティング・システムの第２のインスタンス（イメージ）を区画Ｐ２内で実行し、ＬｉｎｕｘまたはＯＳ／４００オペレーティング・システムを論理区画Ｐ３内で動作させることができる。
【００１５】
Ｉ／Ｏバス１１２に接続されたＰｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）ホスト・ブリッジ１１４は、ＰＣＩローカル・バス１１５へのインターフェースを提供する。ＰＣＩ間ブリッジ１１６、ＰＣＩバス１１８、ＰＣＩバス１１９、Ｉ／Ｏスロット１７０、およびＩ／Ｏスロット１７１を介して、いくつかのＰＣＩ入力／出力アダプタ１２０〜１２１をＰＣＩバス１１５に接続することができる。ＰＣＩ間ブリッジ１１６は、ＰＣＩバス１１８およびＰＣＩバス１１９へのインターフェースを提供する。ＰＣＩ  Ｉ／Ｏアダプタ１２０および１２１は、それぞれＩ／Ｏスロット１７０および１７１内に配置される。典型的なＰＣＩバスの実施では、４つおよび８つのＩ／Ｏアダプタ（すなわちアドイン・コネクタ用の拡張スロット）間をサポートすることになる。各ＰＣＩ  Ｉ／Ｏアダプタ１２０〜１２１は、データ処理システム１００と、たとえばデータ処理システム１００に対するクライアントである他のネットワーク・コンピュータなどの入力／出力デバイスとの間に、インターフェースを提供する。
【００１６】
追加のＰＣＩホスト・ブリッジ１２２は、追加のＰＣＩバス１２３にインターフェースを提供する。ＰＣＩバス１２３は、複数のＰＣＩ  Ｉ／Ｏアダプタ１２８〜１２９に接続される。ＰＣＩ  Ｉ／Ｏアダプタ１２８〜１２９は、ＰＣＩ間ブリッジ１２４、ＰＣＩバス１２６、ＰＣＩバス１２７、Ｉ／Ｏスロット１７２、およびＩ／Ｏスロット１７３を介して、ＰＣＩバス１２３に接続することができる。ＰＣＩ間ブリッジ１２４は、ＰＣＩバス１２６およびＰＣＩバス１２７へのインターフェースを提供する。ＰＣＩ  Ｉ／Ｏアダプタ１２８および１２９は、それぞれＩ／Ｏスロット１７２および１７３内に配置される。この方式では、ＰＣＩ  Ｉ／Ｏアダプタ１２８〜１２９それぞれを介して、たとえばモデムまたはネットワーク・アダプタなどの追加のＩ／Ｏデバイスをサポートすることができる。この方式で、データ処理システム１００は複数のネットワーク・コンピュータに接続することができる。
【００１７】
Ｉ／Ｏスロット１７４に挿入されたメモリ・マッピング済みのグラフィック・アダプタ１４８は、ＰＣＩバス１４４、ＰＣＩ間ブリッジ１４２、ＰＣＩバス１４１、およびＰＣＩホスト・ブリッジ１４０を介して、Ｉ／Ｏバス１１２に接続することができる。ハード・ディスク・アダプタ１４９は、ＰＣＩバス１４５に接続されたＩ／Ｏスロット１７５内に配置することができる。次にこのバスが、ＰＣＩバス１４１によってＰＣＩホスト・ブリッジ１４０に接続されたＰＣＩ間ブリッジ１４２に接続される。
【００１８】
ＰＣＩホスト・ブリッジ１３０は、Ｉ／Ｏバス１１２に接続するためのインターフェースをＰＣＩバス１３１に提供する。ＰＣＩ  Ｉ／Ｏアダプタ１３６は、ＰＣＩバス１３３によってＰＣＩ間ブリッジ１３２に接続されたＩ／Ｏスロット１７６に接続される。ＰＣＩ間ブリッジ１３２はＰＣＩバス１３１に接続される。このＰＣＩバスは、ＰＣＩホスト・ブリッジ１３０をサービス・プロセッサ・メールボックス・インターフェースおよびＩＳＡバス・アクセス・パススルー論理１９４と、ＰＣＩ間ブリッジ１３２にも接続する。サービス・プロセッサ・メールボックス・インターフェースおよびＩＳＡバス・アクセス・パススルー論理１９４は、ＰＣＩ／ＩＳＡブリッジ１９３に向けてＰＣＩアクセスを転送する。ＮＶＲＡＭストレージ１９２はＩＳＡバス１９６に接続される。サービス・プロセッサ１３５は、そのローカルＰＣＩバス１９５を介してサービス・プロセッサ・メールボックス・インターフェースおよびＩＳＡバス・アクセス・パススルー論理１９４に結合される。サービス・プロセッサ１３５は、複数のＪＴＡＧ／Ｉ２Ｃバス１３４を介してプロセッサ１０１〜１０４にも接続される。ＪＴＡＧ／Ｉ２Ｃバス１３４は、ＪＴＡＧ／スキャン・バス（ＩＥＥＥ  １１４９．１を参照のこと）およびＰｈｉｌｌｉｐｓ  Ｉ２Ｃバスの組合せである。しかしながら別の方法として、ＪＴＡＧ／Ｉ２Ｃバス１３４を単にＰｈｉｌｌｉｐｓ  Ｉ２Ｃバスと、または単にＪＴＡＧ／スキャン・バスと置き換えることも可能である。ホスト・プロセッサ１０１、１０２、１０３、および１０４のすべてのＳＰ−ＡＴＴＮ信号は、サービス・プロセッサの割り込み入力信号にまとめて接続される。サービス・プロセッサ１３５はそれ自体のローカル・メモリ１９１を有し、ハードウェアＯＰパネル１９０へのアクセス権を有する。
【００１９】
データ処理システム１００が最初に電源投入された場合、サービス・プロセッサ１３５はＪＴＡＧ／Ｉ２Ｃバス１３４を使用して、システム（ホスト）プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８、およびＩ／Ｏブリッジ１１０に問い合わせる。このステップが完了すると、サービス・プロセッサ１３５はデータ処理システム１００のインベントリおよびトポロジを理解する。サービス・プロセッサ１３５は、ホスト・プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８、およびＩ／Ｏブリッジ１１０への問い合わせによって見つかったすべての要素で、組み込み自己テスト（ＢＩＳＴ）、基本検証テスト（ＢＡＴ）、およびメモリ・テストをも実行する。ＢＩＳＴ、ＢＡＴ、およびメモリ・テスト時に検出された障害に関するエラー情報は、サービス・プロセッサ１３５によって収集および報告される。
【００２０】
ＢＩＳＴ、ＢＡＴ、およびメモリ・テスト時に不良であることがわかった要素を取り除いた後に、依然としてシステム・リソースの有意味／有効な構成が可能である場合、データ処理システム１００はローカル（ホスト）メモリ１６０〜１６３への実行可能コードのロードに移ることができる。その後、サービス・プロセッサ１３５は、ローカル・メモリ１６０〜１６３へコードをロードするためにホスト・プロセッサ１０１〜１０４を解放する。データ処理システム１００内でホスト・プロセッサ１０１〜１０４がそれぞれのオペレーティング・システムからのコードを実行している間、サービス・プロセッサ１３５はエラーの監視および報告モードに入る。サービス・プロセッサ１３５によって監視されるアイテムのタイプには、たとえば冷却ファンの速度および動作、熱センサ、電源調整器、ならびに、プロセッサ１０１〜１０４、ローカル・メモリ１６０〜１６３、およびＩ／Ｏブリッジ１１０によって報告される回復可能および回復不能エラーが含まれる。
【００２１】
サービス・プロセッサ１３５は、データ処理システム１００内で監視されるすべてのアイテムに関するエラー情報を保存および報告する責務を負う。サービス・プロセッサ１３５は、エラーのタイプおよび定義されたしきい値に基づいた処置も講じる。たとえばサービス・プロセッサ１３５は、プロセッサのキャッシュ・メモリ上での過度の回復可能エラーに気付き、これがハード障害の予兆であると決定する。サービス・プロセッサ１３５はこの決定に基づいて、現在実行中のセッションおよび今後の初期プログラム・ロード（ＩＰＬ）時に再構成するリソースとしてマークすることができる。ＩＰＬは、時には「ブート」または「ブートストラップ」と呼ばれることもある。
【００２２】
データ処理システム１００は、様々な市販のコンピュータ・システムを使用して実施することができる。たとえばデータ処理システム１００は、インターナショナル・ビジネス・マシンズ・コーポレーションから入手可能なＩＢＭ  ｅＳｅｒｖｅｒ  ｉＳｅｒｉｅｓ  Ｍｏｄｅｌ  ８４０システムを使用して実施することができる。こうしたシステムは、同じくインターナショナル・ビジネス・マシンズ・コーポレーションから入手可能なＯＳ／４００オペレーティング・システムを使用して論理区画をサポートすることができる。
【００２３】
当業者であれば、図１に示されたハードウェアが変更可能であることを理解されよう。たとえば、図示されたハードウェアに加えて、あるいはこれらに代わって、光ディスク・ドライブおよびその他などの他の周辺デバイスも使用することができる。図示された例は、本発明に関してアーキテクチャ上の制限を示唆することを意味するものではない。
【００２４】
次に図２を参照すると、本発明が実施可能な例示的論理区画プラットフォームを示すブロック図が示されている。論理区画プラットフォーム２００内のハードウェアは、たとえば図１のデータ処理システム１００として実施することができる。論理区画プラットフォーム２００は、区画ハードウェア２３０、オペレーティング・システム２０２、２０４、２０６、２０８、および区画管理ファームウェア２１０を含む。オペレーティング・システム２０２、２０４、２０６、および２０８は、単一のオペレーティング・システムまたは論理区画プラットフォーム２００上で同時に実行される複数の異機種オペレーティング・システムの複数のコピーとすることができる。これらのオペレーティング・システムは、ハイパーバイザなどの区画管理ファームウェアとインターフェースするように設計されたＯＳ／４００を使用して実施することができる。ＯＳ／４００は、これらの例示的実施形態において単なる一例として使用される。もちろん、特定の実施に依存して、ＡＩＸ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）およびＬｉｎｕｘ（Ｌｉｎｕｓ  Ｔｏｒｖａｌｄｓの商標）などの他のタイプのオペレーティング・システムを使用することができる。オペレーティング・システム２０２、２０４、２０６、および２０８は、区画２０３、２０５、２０７、および２０９に配置される。ハイパーバイザ・ソフトウェアは、区画管理ファームウェア２１０を実施するための使用可能なソフトウェアの一例であり、インターナショナル・ビジネス・マシンズ・コーポレーションから入手可能である。ファームウェアとは、たとえば読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去再書き込み可能ＲＯＭ（ＥＥＰＲＯＭ）、および不揮発性ランダム・アクセス・メモリ（不揮発性ＲＡＭ）などの、電力なしにコンテンツを保持するメモリ・チップ内に格納された「ソフトウェア」のことである。
【００２５】
加えて、これらの区画には区画ファームウェア２１１、２１３、２１５、および２１７も含まれる。区画ファームウェア２１１、２１３、２１５、および２１７は、初期ブート・ストラップ・コード、ＩＥＥＥ−１２７５標準Ｏｐｅｎ  Ｆｉｒｍｗａｒｅ、およびインターナショナル・ビジネス・マシンズ・コーポレーションから入手可能なランタイム抽象化ソフトウェア（ＲＴＡＳ）を使用して実施することができる。区画２０３、２０５、２０７、および２０９がインスタンス化されると、プラットフォーム・ファームウェア２１０によってブート・ストラップ・コードのコピーが区画２０３、２０５、２０７、および２０９上にロードされる。その後、コントロールがブート・ストラップ・コードに転送され、次にブート・ストラップ・コードがオープン・ファームウェアおよびＲＴＡＳにロードされる。その後区画に関連付けまたは割り当てられたプロセッサは、区画ファームウェアを実行するために区画のメモリにディスパッチされる。
【００２６】
区分ハードウェア２３０は複数のプロセッサ２３２〜２３８、複数のシステム・メモリ・ユニット２４０〜２４６、複数の入力／出力（Ｉ／Ｏ）アダプタ２４８〜２６２、およびストレージ・ユニット２７０を含む。プロセッサ２３２〜２３８、メモリ・ユニット２４０〜２４６、ＮＶＲＡＭストレージ２９８、およびＩ／Ｏアダプタ２４８〜２６２のそれぞれを、オペレーティング・システム２０２、２０４、２０６、および２０８のうちの１つにそれぞれ対応する、論理区画プラットフォーム２００内の複数の区画のうちの１つに割り当てることができる。
【００２７】
区画管理ファームウェア２１０は、区画２０３、２０５、２０７、および２０９に対していくつかの機能およびサービスを実行し、論理区画プラットフォーム２００の区分を作成および強制する。区画管理ファームウェア２１０は、基礎となるハードウェアと同一のファームウェア実施仮想マシンである。したがって区画管理ファームウェア２１０は、論理区画プラットフォーム２００のすべてのハードウェア・リソースを仮想化することによって、独立したＯＳイメージ２０２、２０４、２０６、および２０８を同時に実行することができる。
【００２８】
サービス・プロセッサ２９０を使用して、区画内でのプラットフォーム・エラーの処理などの様々なサービスを提供することができる。これらのサービスは、インターナショナル・ビジネス・マシンズ・コーポレーションなどのベンダーにエラー報告を戻すためのサービス・エージェントとして働くこともできる。異なる区画のオペレーションは、ハードウェア管理コンソール２８０などのハードウェア管理コンソールを介して制御することができる。ハードウェア管理コンソール２８０は別個のデータ処理システムであり、ここからシステム管理者は異なる区画へのリソースの再割り振りを含む様々な機能を実行することができる。
【００２９】
本発明は、論理区画を有するデータ処理システムにおいて１つの区画から他の区画へデータを転送するための改良された方法、装置、およびコンピュータ命令を提供する。他の区画向けのデータがホスト区画に到達すると、ホスト区画は、ホスト区画からのローカル・メモリ領域から要求側区画のメモリ領域へとデータがコピーされる、現在使用されているコピー・ステップまたはオペレーションを回避する。この追加のコピー・ステップの回避は、ホスト区画のメモリ領域をデータの宛先である区画に再割り当てすることによって実施される。
【００３０】
次に図３を見ると、本発明の好ましい実施形態に従って、１つの区画から他の区画へとデータを渡す際に使用されるコンポーネントを示す図が示されている。この図示された例では区画３００がホスト区画であり、Ｉ／Ｏオペレーションでデータを受信する。このデータは、たとえば区画３００に割り当てられたネットワーク・アダプタを介して受信することができる。区画３０２は、区画３００によって受信されたデータを必要とする要求側区画である。
【００３１】
これらの図示された例では、メモリ３０４は区画３００および区画３０２に割り当てることが可能なメモリ領域を含む。メモリ３０４内のデータへのアクセスは、プラットフォーム・ファームウェア３０６を介して処理される。メモリ３０４内のメモリ領域の異なる領域への割り当ては、メモリ・マップ３０８を介して追跡することができる。
【００３２】
ページ３１０は、区画３００によって受信されたデータを含むメモリ３０４内のメモリ領域である。ページ３１０は区画３００に割り当てられ、区画３０２がアクセスすることはできない。区画３０２は、ページ３１０内のデータにアクセスする必要がある。通常、本発明の機構がなければ、このページのデータは区画３０２に割り当てられたメモリ領域にコピーされる。このコピー・ステップは、本発明の機構を使用して回避される。
【００３３】
ページ３１０内のデータを他のメモリ領域にコピーする代わりに、このメモリ領域が区画３０２に再割り当てされる。これらの例では、ページ３１０などの再割り当てされるメモリ領域は、図示された例のページ・サイズの増分で再割り当てされる。もちろん、特定の実施に応じて他のサイズを使用することができる。
【００３４】
ページ３１０は、要求されたデータと共にホスト区画内にいったん読み込まれる。その後、メモリ領域すなわちページ３１０は、プラットフォーム・ファームウェア３０６の呼び出しを通じて要求側区画である区画３０２に割り当てられ、その後ポインタ構造３１２が要求側区画である区画３０２に渡される。
【００３５】
このファームウェアは、たとえばインターナショナル・ビジネス・マシンズ・コーポレーションから入手可能なハイパーバイザとすることができる。
【００３６】
図示された例のポインタ構造３１２は、メモリ領域のアドレスおよびページ内のメモリ領域の長さを含む。この図示された例では、ポインタ構造３１２は、単一のページを示すために長さ１を備えたページ３１０のアドレスを含む。要求側区画内のアプリケーションがページ３１０内のデータを処理した後、区画３０２は、プラットフォーム・ファームウェア３０６への他のファームウェア呼び出しを介してページ３１０を含むメモリ領域を解放する。この第２の呼び出しの結果として、ページ３１０はホスト区画である区画３００に戻って再度割り当てられることになる。この機構は、ポインタを渡すことによってデータのコピーを回避する。アクティビティは「隠れて」実行されるため、動的ページ再割り当てのためのファームウェア要求は要求側区画には課せられない。
【００３７】
再割り当てされるメモリ領域はホスト区画からであるため、本発明のこの機構は要求側区画の類縁性（ａｆｆｉｎｉｔｙ）ドメインに干渉しない。言い換えれば、ローカル要求側区画の類縁性ドメインは、そのローカル・メモリ領域からページを再割り当てしないことによって保持される。これらの図示された例では、ホスト区画からのページのみが再割り当ての資格を有する。
【００３８】
次に図４〜５を参照すると、本発明の好ましい実施形態に従った、１つの区画から他の区画へのページの再割り当てを示す図が示されている。図４では、論理区画を有するデータ処理システム内にホスト区画４００、区画４０２、および区画４０４が存在する。データ４０６は、ホスト区画４００内のメモリ領域に配置される。データ４０６は区画４０２向けであるか、または区画４０２によって要求されたものである。この再割り当ては、ホスト区画４００からプラットフォーム・ファームウェア４１０への呼び出し４０８を通じて実行される。四角形４１２は、区画４０２にメモリ領域が割り当てられていることを示す。ホスト区画４００内の破線の四角形４１４は、メモリ領域がホスト区画４００からホスト区画４０２へと再割り当てされたことを示す。
【００３９】
図５では、データ４０６が処理された場合、メモリ領域は回復するかまたは区画４０２からホスト区画４００へと戻って再割り当てされる。データ４０６がもはや必要でない場合、メモリ領域を解放するためにプラットフォーム・ファームウェア４１０への呼び出し４２０が実行される。この時点で、メモリ領域をホスト区画４００に戻って再割り当てするために、呼び出し４２２が実行される。区画４０２内の破線の四角形４１６およびホスト区画４００内の四角形４１８は、メモリ領域が区画４０２からホスト区画４００へと再割り当てされたことを示す。メモリ領域は異なる区画内にあるように示されているが、実際にはメモリ領域は移動またはアドレス変更しない。破線の四角形および四角形を使用してメモリ領域を図示しているのは、メモリ領域の所有権または特定領域への割り当てを示すためである。
【００４０】
次に図６〜１０を見ると、本発明の好ましい実施形態に従った動的なページの再割り当てを示す図が示されている。図６では、ホスト区画５００および区画５０２が示されている。加えてメモリ５０４が存在し、ここでメモリ５０４は区画メモリ５０６および区画メモリ５０８を含む。区画メモリ５０６は、これらの例でホスト区画５００に割り当てられるメモリの１セクションである。区画メモリ５０８は、区画５０２に割り当てられるメモリの１セクションである。これで、プラットフォーム・ファームウェア５１０を介したホスト区画５００および区画５０２によるメモリ５０４への割り当ておよびアクセスが容易になる。
【００４１】
ホスト区画５００にはＩ／Ｏデバイス５１２が割り当てられる。このＩ／Ｏデバイスは、たとえば物理ネットワーク・アダプタとすることができる。区画５０２には仮想デバイス５１４が割り当てられ、これはたとえば仮想ネットワーク・アダプタとすることができる。この例では、データ５１６がＩ／Ｏデバイス５１２を介して受信される。このデータは区画５０２向けである。区画５０２は物理Ｉ／Ｏデバイスを有していないので、この例ではデータを直接受信することはできない。
【００４２】
データ５１６は、メモリＩ／Ｏデバイス５１２に関連付けまたは割り当てられたメモリで受信される。図７では、ホスト区画５００によって開始されたコピー・オペレーション５２０を通じて、データ５１６がメモリ領域５１８にコピーされる。このコピー・オペレーションは、プラットフォーム・ファームウェア５１０への呼び出しを介して容易になる。これらの例では、メモリ領域５１８は１つまたは複数のページのサイズまたは長さを有する。加えてプラットフォーム・ファームウェア５１０には、データ５１６が呼び出し５２２を介して区画５０２宛てに送られることが通知される。
【００４３】
次に図８を見ると、プラットフォーム・ファームウェア５１０からホスト区画５００へと実行される呼び出し５２４を介して、メモリ領域５１８の再割り当てが実行される。呼出し５２４は、ホスト区画５００に、ホスト区画５００のアドレス可能スペースからメモリ領域５１８内の任意のページを除去させる。次に、プラットフォーム・ファームウェア５１０によって呼び出し５２６が実行され、メモリ領域５１８内のページが区画５０２のアドレス可能スペースに追加される。区画内のオペレーティング・システムは仮想アドレスを取り扱うが、区画ファームウェアはメモリ内のアドレス可能スペースにアクセスする際に物理アドレスを処理する。この時点で、メモリ領域５１８はホスト区画５００から区画５０２へと再割り当てされている。
【００４４】
メモリ領域５１８を再割り当てすることによって、区画５０２は図９に示されるように、メモリ領域５１８内のデータ５１６にアクセスするために、データ・アクセス５２８を実行する。データ５１６を使用してホスト区画５００が完了すると、図９に示されるように、区画５０２によって「完了」呼び出し５３０がプラットフォーム５１０に送信される。この呼び出しを使用して、メモリ領域５１８が解放される。図１０では、プラットフォーム・ファームウェア５１０が区画５０２に対して呼び出し５３２を発行し、区画５０２向けのアドレス可能スペースからメモリ領域５１８内のページを除去する。次にホスト区画５００に対して呼び出し５３４が発行され、この区画のアドレス可能スペースにメモリ領域５１８が追加される。この呼び出しによって、メモリ領域５１８がホスト区画５００に戻って再割り当てされる。
【００４５】
この方式では、１つの区画から他の区画へデータを転送するためにデータをコピーする必要はない。代わりに、データを含むメモリ領域が適切な区画に再割り当てされる。
【００４６】
次に図１１を参照すると、本発明の好ましい実施形態に従って、１つの区画から他の区画へとデータを転送するためのプロセスを示す流れ図が示されている。図１１に示されたプロセスは、図６〜１０のホスト区画５００などの区画内で実施することができる。
【００４７】
プロセスはデータを受信することによって開始される（ステップ６００）。このデータはＩ／Ｏオペレーションの一部として受信される。データは、区画に割り当てられたかまたは割り振られたＩ／Ｏデバイスで受信することができる。このＩ／Ｏデバイスは、たとえばネットワーク・アダプタとすることができる。次に、データはメモリ領域に格納される（ステップ６０２）。ステップ６０２には、Ｉ／Ｏデバイスのメモリから区画の受信側Ｉ／Ｏデバイスに割り当てられたメモリ領域への転送またはコピーが含まれる。
【００４８】
次に、データが他の区画宛てに送られるかどうかが判別される（ステップ６０４）。データが他の区画宛てに送られる場合、プラットフォーム・ファームウェアが呼び出されてターゲット区画にメモリ領域が再割り当てされ（ステップ６０６）、その後プロセスは終了する。この呼び出しに応答してプラットフォーム・ファームウェアは、データの受信側区画と、これらの図示された例ではデータを使用することになっている区画にデータを含むメモリ領域を再割り当てする方法でアドレス可能スペースを変更するためにデータを使用することになっている区画とを、呼び出す。再度ステップ６０４を参照すると、データが他の区画宛てに送られない場合、プロセスは終了する。
【００４９】
次に図１２を参照すると、本発明の好ましい実施形態に従って、データ要求側（ホスト）区画によってデータへのアクセス権を取得するためのプロセスを示す流れ図が示されている。図１２に示されたプロセスは、図６〜１０の区画５０２などの区画内で実施することができる。
【００５０】
プロセスは、ポインタ・データ構造を受信することによって開始される（ステップ７００）。これらの例では、ポインタ・データ構造を受信すると、結果として、アドレス可能スペースにページを追加することになり、これによって一時的にページ・フレーム・テーブルが変更される。ページ・フレーム・テーブルは、ポインタ・データ構造によって指示されたアドレス可能スペースによって更新される（ステップ７０２）。次に、データにアクセスする（ステップ７０４）。その後、区画が依然としてデータを必要としているかどうかが判別される（ステップ７０６）。区画内のアプリケーションは、処理のためにデータへのアクセス権を依然として必要とする場合がある。この場合、データは依然として必要とされている。これらの図示された例では、データの処理が完了するともはやデータは必要とされない。
【００５１】
データが必要でない場合、プラットフォーム・ファームウェアが呼び出されてメモリ領域を開放し（ステップ７０８）、その後プロセスは終了する。これらの例では、この呼び出しは、プラットフォーム・ファームウェアに対して実行される。再度ステップ７０６を参照すると、データが必要な場合、前述のようにプロセスはステップ７０４に戻る。
【００５２】
このようにして本発明は、１つの区画から他の区画へデータを転送するための改良された方法、装置、およびコンピュータ命令を提供する。割り振られたメモリ領域を１つの区画から他の区画へ再割り当てすることによって、コピー・ステップが削除される。この再割り振りによって、第２の区画がデータにアクセスできるようになる。
【００５３】
データ・コピーの数を削減すると、結果として仮想メモリ・マネージャの負荷が低減される。この仮想メモリ・マネージャの負荷の軽減は、システム上で実行中のすべての区画にとって、それら自体のＩ／Ｏ要求を処理するまで待機する必要がないことから重要である。加えてこの機能は、単一のＩ／Ｏ要求に関する全体の応答時間を削減する。応答時間の削減も、アプリケーションの見地から重要である。応答時間要件が厳しいアプリケーションは、データにアクセスするために必要なオペレーションの数を削減する本発明のような機構によって、より良い働きをする。
【００５４】
図示された実施形態の説明は、従来の論理区画を有するデータ処理環境の動作を対象とするものであるが、本発明の機構は共有リソース区分環境でも使用することができる。
【００５５】
共有プロセッサＬＰＡＲは、インターナショナル・ビジネス・マシンズ・コーポレーションから入手可能なＩＢＭ  ｐＳｅｒｉｅｓ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標）のＬＰＡＲマシンで実施可能な、メインフレームから発想を得た技術である。共有プロセッサの概念によって、論理区画は１つまたは複数の物理プロセッサの一部を使用することができる。
【００５６】
ファームウェアは、必要に応じて物理プロセッサ上で区画をディスパッチおよびタイムスライスすることによって、区画を管理する。この環境では、複数の共有プロセッサＬＰＡＲ区画が同じ物理プロセッサを共有する。
【００５７】
共有プロセッサＬＰＡＲをサポートすることは、物理リソースをより細密に区分できるだけでなく、より効率良く使用することができる。共有プロセッサＬＰＡＲは、具体的には複数の区間間での物理プロセッサの共有を言い表すものであるが、リソースの「仮想化」の導入により、他の共有リソース区分セットに着想させるものである。この場合、仮想化されたホスト区画を作成することによって、ネットワーク・アダプタまたはストレージ・デバイスなどの単一の物理Ｉ／Ｏデバイスを複数の区画で共有することができる。
【００５８】
共有プロセッサＬＰＡＲおよび仮想化されたホスト区画のどちらの環境も、共有リソース区分のカテゴリに入る。本発明の方法、装置、およびコンピュータ命令は、これらのタイプおよび他のタイプの論理区画を有するデータ処理システム環境に適用可能である。
【００５９】
以上、本発明について、完全に機能するデータ処理システムとの関連において説明してきたが、当業者であれば、本発明の諸プロセスが命令のコンピュータ読取り可能媒体の形および様々な形で配布可能であること、ならびに、本発明が配布を実際に実施するために使用される特定タイプの信号伝達媒体に関係なく等しく適用されることを理解するであろう、ということに留意されたい。コンピュータ読取り可能媒体の例には、フロッピィ・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの書き込み可能タイプの媒体、ならびに、デジタルおよびアナログの通信リンク、たとえば無線周波および光通信などの伝送形式を使用する有線または無線の通信リンクなどの伝送タイプ媒体が含まれる。コンピュータ読取り可能媒体は、特定のデータ処理システムで実際に使用する場合に復号される、符号化フォーマットの形を取ることができる。
【００６０】
以上、本発明については例示および説明の目的で提示してきたのであって、網羅すること、または本発明の開示された形に限定することは意図していない。当業者であれば、多くの修正および変形形態が明らかとなろう。本実施形態は、本発明の原理、実際の応用例を最も良く説明するため、ならびに他の当業者が企図された特定の使用に好適な様々な修正形態を備えた様々な実施形態について本発明を理解できるようにするために、選択および説明したものである。
【図面の簡単な説明】
【００６１】
【図１】本発明が実施可能なデータ処理システムを示すブロック図である。
【図２】本発明が実施可能な例示的論理区画プラットフォームを示すブロック図である。
【図３】本発明の好ましい実施形態に従って、１つの区画から他の区画へとデータを渡す際に使用されるコンポーネントを示す図である。
【図４】本発明の好ましい実施形態に従った、１つの区画から他の区画へのページの再割り当てを示す図である。
【図５】本発明の好ましい実施形態に従った、１つの区画から他の区画へのページの再割り当てを示す図である。
【図６】本発明の好ましい実施形態に従った、動的なページの再割り当てを示す図である。
【図７】本発明の好ましい実施形態に従った、動的なページの再割り当てを示す図である。
【図８】本発明の好ましい実施形態に従った、動的なページの再割り当てを示す図である。
【図９】本発明の好ましい実施形態に従った、動的なページの再割り当てを示す図である。
【図１０】本発明の好ましい実施形態に従った、動的なページの再割り当てを示す図である。
【図１１】本発明の好ましい実施形態に従って、１つの区画から他の区画へとデータを転送するためのプロセスを示す流れ図である。
【図１２】本発明の好ましい実施形態に従って、データへのアクセス権を取得するためのプロセスを示す流れ図である。
【符号の説明】
【００６２】
２００    論理区画プラットフォーム
２０２    ＯＳ
２０３    区画
２０４    ＯＳ
２０５    区画
２０６    ＯＳ
２０７    区画
２０８    ＯＳ
２０９    区画
２１０    プラットフォーム・ファームウェア
２１１    区画ファームウェア
２１３    区画ファームウェア
２１５    区画ファームウェア
２１７    区画ファームウェア
２３０    区分ハードウェア
２３２    プロセッサ
２３４    プロセッサ
２３６    プロセッサ
２３８    プロセッサ
２４０    メモリ
２４２    メモリ
２４４    メモリ
２４６    メモリ
２４８    Ｉ／Ｏアダプタ
２５０    Ｉ／Ｏアダプタ
２５２    Ｉ／Ｏアダプタ
２５４    Ｉ／Ｏアダプタ
２５６    Ｉ／Ｏアダプタ
２５８    Ｉ／Ｏアダプタ
２６０    Ｉ／Ｏアダプタ
２６２    Ｉ／Ｏアダプタ
２７０    ストレージ
２８０    ハードウェア管理コンソール
２９０    サービス・プロセッサ
２９８    ＮＶＲＡＭ
【図１】
2005353070.tif 000003
【図２】
2005353070.tif 000004
【図３】
2005353070.tif 000005
【図４】
2005353070.tif 000006
【図５】
2005353070.tif 000007
【図６】
2005353070.tif 000008
【図７】
2005353070.tif 000009
【図８】
2005353070.tif 000010
【図９】
2005353070.tif 000011
【図１０】
2005353070.tif 000012
【図１１】
2005353070.tif 000013
【図１２】
2005353070.tif 000014