(57)【特許請求の範囲】
【請求項１】
論理分割されたデータ処理システム内で入出力スロットの論理分割を実施するシステムであって、
プロセッサ、メモリ、及び入出力スロットを含む論理分割されたプラットフォームのハードウエアを論理分割して、複数の独立したオペレーティング・システムの同時実行を可能とし、非直接メモリ・アクセス要求を処理するハイパーバイザであって、
直接メモリ・アクセスのためのアドレスを生成し、入出力スロットへの前記非直接メモリ・アクセス要求を受け取り、要求元デバイスの区画ＩＤを判定し、要求されたアドレスに基づいて、所定の論理区画内のデバイスが異なる論理区画に割り当てられた入出力スロットにアクセスすることを禁止する、ハイパーバイザと、
入出力スロットへのアクセス要求を受け取り、前記アクセス要求が直接メモリ・アクセス要求であるかどうか判定し、直接メモリ・アクセス要求の場合であって前記要求元デバイスと同一の論理区画内にないアドレスへのアクセスを禁止し、直接メモリ・アクセス要求の場合であって前記同一の論理区画内の直接メモリ・アクセスのために割り当てられたアドレスである場合、前記直接メモリ・アクセス要求を許可し、前記アクセス要求が非直接メモリ・アクセス要求の場合は拒否する、前記直接メモリ・アクセス要求を処理する少なくとも１つのＤＭＡアドレス検査コンポーネントと
を含む、システム。
【請求項２】
前記ハイパーバイザが、ファームウェアとして実施される、請求項１に記載のシステム。
【請求項３】
前記ＤＭＡアドレス検査コンポーネントが、ハードウェアとして実施される、請求項１に記載のシステム。
【請求項４】
前記ＤＭＡアドレス検査コンポーネントが、前記要求元デバイスと同一の論理区画に属するアドレスを有する直接メモリ・アクセス要求を、システム・メモリへの送達のためにプライマリ・バスに転送する、請求項１に記載のシステム。
【請求項５】
前記入出力スロットが、ＰＣＩ（peripheral component interconnect）入出力スロットである、請求項１に記載のシステム。
【請求項６】
前記プライマリ・バスが、プライマリＰＣＩ（peripheral component interconnect）バスである、請求項４に記載のシステム。
【請求項７】
プロセッサ、メモリ、及び入出力スロットを含む論理分割されたプラットフォームのハードウエアを論理分割して、複数の独立したオペレーティング・システムの同時実行を可能とし、非直接メモリ・アクセス要求を処理し、かつ直接メモリ・アクセスのためのアドレスを生成するハイパーバイザを含む論理分割されたデータ処理システム内で入出力スロットの論理分割を実施する方法であって、
前記ハイパーバイザが要求元デバイスから入出力スロット・アドレスにアクセスする要求を受け取るステップと、
前記ハイパーバイザにより前記要求元デバイスの区画ＩＤを判定するステップと、
前記ハイパーバイザが要求されたアドレスに基づいて、所定の論理区画内のデバイスが異なる論理区画に割り当てられた入出力スロットにアクセスすることを禁止するステップと、
前記要求が直接メモリ・アクセス要求であるとの判定に応答して、直接メモリ・アクセス要求を処理するＤＭＡアドレス検査コンポーネントが、前記アドレスが前記要求元デバイスと同一の区画に割り当てられているかどうかを判定し、直接メモリ・アクセス要求の場合であって前記同一の区画内の直接メモリ・アクセスのために割り当てられたアドレスである場合、前記直接メモリ・アクセス要求を許可するステップと、
直接メモリ・アクセス要求の場合であって、前記アドレスが前記要求元デバイスと異なる区画に割り当てられているとの判定に応答して、ＤＭＡアドレス検査コンポーネントが、前記アドレスへのアクセスを拒否するステップと
を含む方法。
【請求項８】
前記アドレスが前記要求元デバイスと同一の区画に属するとの判定に応答して、前記要求をシステム・メモリに転送するステップ
をさらに含む、請求項７に記載の方法。
【請求項９】
前記要求が直接メモリ・アクセス要求でないとの判定に応答して、前記要求を拒否するステップ
をさらに含む、請求項７に記載の方法。
【請求項１０】
前記要求元デバイスが、ＰＣＩ（peripheral component interconnect）マスタ・エージェントである、請求項７に記載の方法。
【請求項１１】
前記アドレスが、前記要求元デバイスが割り当てられている区画と異なる区画に割り当てられていると前記ハイパーバイザによる判定に応答して、前記要求を拒否するステップ
をさらに含む、請求項９に記載の方法。
【請求項１２】
前記アドレスが、前記要求元デバイスが割り当てられている区画と同一の区画に割り当てられているとの前記ハイパーバイザによる判定に応答して、前記要求の進行を許可するステップ
をさらに含む、請求項９に記載の方法。
【請求項１３】
プロセッサ、メモリ、及び入出力スロットを含む論理分割されたプラットフォームのハードウエアを論理分割して、複数の独立したオペレーティング・システムの同時実行を可能とし、非直接メモリ・アクセス要求を処理し、かつ直接メモリ・アクセスのためのアドレスを生成するハイパーバイザを含む論理分割されたデータ処理システム内で使用されるコンピュータ可読媒体内のコンピュータ・プログラムであって、コンピュータを、
前記ハイパーバイザが要求元デバイスから入出力スロット・アドレスにアクセスする要求を受け取る手段と、
前記ハイパーバイザにより前記要求元デバイスの区画ＩＤを判定する手段と、
前記ハイパーバイザが要求されたアドレスに基づいて、所定の論理区画内のデバイスが
異なる論理区画に割り当てられた入出力スロットにアクセスすることを禁止する手段と、
して機能させ、
前記要求が直接メモリ・アクセス要求であるとの判定に応答して、直接メモリ・アクセス要求を処理するＤＭＡアドレス検査コンポーネントが、前記アドレスが前記要求元デバイスと同一の区画に割り当てられているかどうかを判定し、直接メモリ・アクセス要求の場合であって前記同一の区画内の直接メモリ・アクセスのために割り当てられたアドレスである場合、前記直接メモリ・アクセス要求を許可し、
直接メモリ・アクセス要求の場合であって、前記アドレスが前記要求元デバイスと異なる区画に割り当てられているとの判定に応答して、ＤＭＡアドレス検査コンポーネントが、前記アドレスへのアクセスを拒否する
コンピュータ・プログラム。
【請求項１４】
さらに前記コンピュータを、前記アドレスが前記要求元デバイスと同一の区画に属するとの判定に応答して、前記要求をシステム・メモリに転送する手段
として機能させる、請求項１３に記載のコンピュータ・プログラム。
【請求項１５】
さらに前記要求が直接メモリ・アクセス要求でないとの判定に応答して、前記要求を拒否する、請求項１３に記載のコンピュータ・プログラム。
【請求項１６】
さらに前記コンピュータを、前記アドレスが、前記要求元デバイスが割り当てられている区画と異なる区画に割り当てられているとのハイパーバイザによる判定に応答して、前記要求を拒否する手段
として機能させる、請求項１３に記載のコンピュータ・プログラム。
【請求項１７】
さらに前記コンピュータを、前記アドレスが、前記要求元デバイスが割り当てられている区画と同一の区画に割り当てられているとのハイパーバイザによる判定に応答して、前記要求の進行を許可する手段
として機能させる、請求項１３に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に改良されたデータ処理システムに関し、具体的には、改良された論理分割されたデータ処理システムに関する。さらに具体的には、本発明は、ＰＣＩ入出力スロットの論理分割に関する。
【０００２】
【従来の技術】
データ処理システム（プラットフォーム）内で論理分割（ＬＰＡＲ）機能を用いると、単一のオペレーティング・システム（ＯＳ）の複数のコピーまたは複数の異種オペレーティング・システムを、単一のデータ処理システム・プラットフォーム上で同時に実行できるようになる。その中でオペレーティング・システム・イメージが稼動する区画には、プラットフォームのリソースのオーバーラップしないサブセットが割り当てられる。これらのプラットフォーム割当可能リソースには、割込み管理区域、システム・メモリの領域、および入出力アダプタ・バス・スロットを有する１つまたは複数のアーキテクチャ上別個のプロセッサが含まれる。区画のリソースは、ＯＳイメージに対して、プラットフォームのファームウェアによって表現される。
【０００３】
プラットフォーム内で稼動する別個のＯＳまたはＯＳのイメージのそれぞれは、互いから保護され、ある論理区画のソフトウェア・エラーが他のどの区画の正しい動作にも影響しないようになっている。これは、各ＯＳイメージによって直接に管理される、プラットフォーム・リソースの互いに素な集合を割り振ることと、さまざまなイメージがそれに割り振られていないリソースを制御できないことを保証するための機構を設けることによって実現される。さらに、ＯＳの割り振られたリソースの制御におけるソフトウェア・エラーが、他のイメージのリソースに影響しないようにされる。したがって、ＯＳの各イメージ（または各異なるＯＳ）が、プラットフォーム内で割振り可能なリソースの互いに素な集合を直接に制御する。
【０００４】
現在、直接メモリ・アクセス（ＤＭＡ）アドレスならびにＰＣＩ入出力スロットを用いる他のアクセスの論理分割を実施する機構はない。したがって、ＤＭＡアドレス範囲の実施を含むＰＣＩ入出力スロット間の論理分割を実施する改良された方法および装置を有することが有利である。
【０００５】
【発明が解決しようとする課題】
【課題を解決するための手段】
本発明は、データ処理システム内の入出力スロットの論理分割を実施する方法、システム、およびコンピュータ・プログラム製品を提供する。一実施形態では、このシステムに、ハイパーバイザ（hypervisor）と、少なくとも１つのＤＭＡアドレス検査コンポーネントが含まれる。ハイパーバイザは、入出力スロットへのアクセスに関する非直接メモリ・アクセス要求を受け取り、ある論理区画内のデバイスが異なる論理区画に割り当てられた入出力スロットにアクセスすることを禁止する。ＤＭＡアドレス検査コンポーネントは、直接メモリ・アクセス要求を受け取り、要求元デバイスと同一の論理区画内にないアドレスに関する要求が完了されることを禁止する。要求元デバイスと同一の論理区画に対応するアドレスに関する要求は、システム・メモリへの送達のために、ＤＭＡアドレス検査コンポーネントによってプライマリＰＣＩバスに置かれる。
【０００６】
本発明に特有と思われる新規の特徴を、添付の請求項に示す。しかし、本発明自体、ならびに本発明の好ましい形態、さらなる目的、および長所は、以下の例示的実施形態の詳細な説明を添付図面と共に併せ読めば最もよく理解されよう。
【０００７】
【発明の実施の形態】
ここで図面、具体的には図１を参照すると、本発明を実施することができるデータ処理システムのブロック図が示されている。データ処理システム１００は、システム・バス１０６に接続された複数のプロセッサ１０１、１０２、１０３、および１０４を含む対称マルチプロセッサ（ＳＭＰ）システムとすることができる。たとえば、データ処理システム１００は、ネットワーク内のサーバとして実施された、米国ニューヨーク州アーモンクのInternational Business Machines Corporation社の製品であるＩＢＭ  ＲＳ／６０００とすることができる。その代わりに、単一プロセッサ・システムを使用することができる。システム・バス１０６には、メモリ・コントローラ／キャッシュ１０８も接続され、このメモリ・コントローラ／キャッシュ１０８が、複数のローカル・メモリ１６０ないし１６３へのインターフェースを提供する。入出力バス・ブリッジ１１０が、システム・バス１０６に接続され、入出力バス１１２へのインターフェースを提供する。メモリ・コントローラ／キャッシュ１０８および入出力バス・ブリッジ１１０を、図示のように統合することができる。
【０００８】
データ処理システム１００は、論理分割されたデータ処理システムである。したがって、データ処理システム１００は、複数の異種オペレーティング・システム（または単一のオペレーティング・システムの複数のインスタンス）を同時に稼動させることができる。これらの複数のオペレーティング・システムのそれぞれが、任意の個数のソフトウェア・プログラムをその中で実行させることができる。データ処理システム１００は、異なる入出力アダプタ１２８、１２９、１３６、１４８、および１４９を異なる論理区画に割り当てることができるように論理分割される。
【０００９】
したがって、たとえば、データ処理システム１００が、３つの論理区画Ｐ１、Ｐ２、およびＰ３に分割されると想定されたい。入出力アダプタ１２８、１２９、１３６、１４８、および１４９のそれぞれと、プロセッサ１０１ないし１０４のそれぞれと、ローカル・メモリ１６０ないし１６３のそれぞれが、３つの区画の１つに割り当てられる。たとえば、プロセッサ１０１と、ローカル・メモリ１６０と、入出力アダプタ１２８および１２９を、論理区画Ｐ１に割り当てることができ、プロセッサ１０２および１０３と、ローカル・メモリ１６１と、入出力アダプタ１３６を、区画Ｐ２に割り当てることができ、プロセッサ１０４と、ローカル・メモリ１６２および１６３と、入出力アダプタ１４８および１４９を、論理区画Ｐ３に割り当てることができる。
【００１０】
データ処理システム１００内で実行される各オペレーティング・システムは、異なる論理区画に割り当てられる。したがって、データ処理システム１００内で実行される各オペレーティング・システムは、その論理区画内にある入出力ユニットだけにアクセスすることができる。したがって、たとえば、拡張対話式エグゼクティブ（ＡＩＸ）オペレーティング・システムの１つのインスタンスを、区画Ｐ１内で実行されているものとすることができ、ＡＩＸオペレーティング・システムの第２のインスタンス（イメージ）を、区画Ｐ２内で実行されているものとすることができ、Windows（登録商標） 2000オペレーティング・システムを、論理区画Ｐ３内で動作しているものとすることができる。Windows（登録商標） 2000は、米国ワシントン州レッドモンドのMicrosoft Corporation社の製品であり、商標である。
【００１１】
入出力バス１１２に接続されたＰＣＩ（peripheral component interconnect）ホスト・ブリッジ１１４が、ＰＣＩローカル・バス１１８および１１９へのインターフェースを提供する。イーサネット（登録商標）・コントローラ１２０が、ＰＣＩローカル・バス１１８を介して接続され、ＳＣＳＩ  ３コントローラ１２１が、ＰＣＩローカル・バス１１９を介して接続される。
【００１２】
追加のＰＣＩホスト・ブリッジ１２２が、追加のＰＣＩバス１２３のインターフェースを提供する。ＰＣＩバス１２３は、ＰＣＩバス１２６および１２７によって複数の入出力アダプタ１２８および１２９に接続される。したがって、たとえばモデムまたはネットワーク・アダプタなどの追加の入出力デバイスを、入出力アダプタ１２８および１２９のそれぞれを介してサポートすることができる。通常のＰＣＩバス実施形態では、４つと８つの間の入出力アダプタ（すなわち、アドイン・コネクタ用の拡張スロット）がサポートされる。各入出力アダプタ１２８および１２９は、データ処理システム１００と、たとえば、データ処理システム１００に対するクライアントである他のネットワーク・コンピュータなどの入出力デバイスの間のインターフェースを提供する。この形で、データ処理システム１００によって、複数のネットワーク・コンピュータへの接続が可能になる。
【００１３】
メモリ・マップ・グラフィックス・アダプタである入出力アダプタ１４８を、図示のように、ＰＣＩホスト・ブリッジ１４０およびブリッジ・チップ１４２（ＰＣＩ−ＰＣＩブリッジ）を介し、ＰＣＩバス１４１および１４４を介して、入出力バス１１２に接続することができる。また、ハード・ディスク１５０も、図示のように、ＰＣＩホスト・ブリッジ１４０およびブリッジ・チップ１４２を介し、ＰＣＩバス１４１および１４５を介して、入出力バス１１２に接続することができる。
【００１４】
ＰＣＩホスト・ブリッジ１３０は、ＰＣＩバス１３１を入出力バス１１２に接続するインターフェースを提供する。ＰＣＩバス１３１は、ＰＣＩホスト・ブリッジ１３０を、サービス・プロセッサ・メールボックス・インターフェースおよびＩＳＡバス・アクセス・パススルー論理１９４およびブリッジ・チップ１３２に接続する。サービス・プロセッサ・メールボックス・インターフェースおよびＩＳＡバス・アクセス・パススルー論理１９４は、ＰＣＩ／ＩＳＡブリッジ１９３に宛てられたＰＣＩアクセスを転送する。ＮＶ−ＲＡＭストレージが、ＩＳＡバス１９６に接続される。サービス・プロセッサ１３５は、そのローカルＰＣＩバス１９５を介してサービス・プロセッサ・メールボックス・インターフェースおよびＩＳＡバス・アクセス・パススルー論理１９４に結合される。サービス・プロセッサ１３５は、複数のＪＴＡＧ／Ｉ2Ｃバス１３４を介してプロセッサ１０１ないし１０４にも接続される。ＪＴＡＧ／Ｉ2Ｃバス１３４は、ＪＴＡＧ／ｓｃａｎバス（ＩＥＥＥ  １１４９．１を参照されたい）とＰｈｉｌｌｉｐｓ  Ｉ2Ｃバスの組合せである。しかし、その代わりに、ＪＴＡＧ／Ｉ2Ｃバス１３４を、Ｐｈｉｌｌｉｐｓ  Ｉ2ＣバスのみまたはＪＴＡＧ／ｓｃａｎバスのみによって置換することができる。プロセッサ１０１、１０２、１０３、および１０４のすべてのＳＰ−ＡＴＴＮ信号が、一緒に、サービス・プロセッサの割込み入力信号に接続される。サービス・プロセッサ１３５は、それ自体のローカル・メモリ１９１を有し、ハードウェア・オペレータ・パネル１９０へのアクセスを有する。
【００１５】
データ処理システム１００が、最初に電源投入される時に、サービス・プロセッサ１３５が、ＪＴＡＧ／Ｉ2Ｃバス１３４を使用して、システム（ホスト）プロセッサであるプロセッサ１０１ないし１０４、メモリ・コントローラ／キャッシュ１０８、および入出力バス・ブリッジ１１０に問い合わせる。このステップの完了時に、サービス・プロセッサ１３５が、データ処理システム１００のインベントリおよびトポロジの理解を有する。サービス・プロセッサ１３５は、プロセッサ１０１ないし１０４、メモリ・コントローラ／キャッシュ１０８、および入出力バス・ブリッジ１１０に問い合わせることによって見つかったすべての要素に対して、組込み自己試験（ＢＩＳＴ）、基本検証テスト（ＢＡＴ）、およびメモリ・テストも実行する。ＢＩＳＴ、ＢＡＴ、およびメモリ・テスト中に検出された障害に関するエラー情報のすべてが、サービス・プロセッサ１３５によって集められ、報告される。
【００１６】
ＢＩＳＴ、ＢＡＴ、およびメモリ・テスト中に故障していることがわかった要素を除外した後に、システム・リソースの意味のある／有効な構成がまだ可能である場合には、データ処理システム１００が、ローカル・メモリ１６０ないし１６３への実行可能コードのロードに移ることが許可される。サービス・プロセッサ１３５は、その後、ローカル・メモリ１６０ないし１６３にロードされたコードの実行のためにプロセッサ１０１ないし１０４を解放する。プロセッサ１０１ないし１０４が、データ処理システム１００内のそれぞれのオペレーティング・システムからのコードを実行している間に、サービス・プロセッサ１３５は、エラーの監視および報告のモードに入る。サービス・プロセッサによって監視されるタイプの項目には、たとえば、冷却ファンの速度および動作と、温度センサと、電源レギュレータと、プロセッサ１０１ないし１０４、ローカル・メモリ１６０ないし１６３、および入出力バス・ブリッジ１１０によって報告される回復可能エラーおよび回復不能エラーが含まれる。
【００１７】
サービス・プロセッサ１３５は、データ処理システム１００内の監視されるすべての項目に関するエラー情報を保管し、報告する責任を負う。サービス・プロセッサ１３５は、エラーのタイプおよび定義された閾値に基づいて処置も講じる。たとえば、サービス・プロセッサ１３５は、プロセッサのキャッシュ・メモリでの過剰な回復可能エラーに注目し、これがハード障害の前兆であると判断することができる。この判定に基づいて、サービス・プロセッサ１３５は、現在稼働中のセッションおよび将来の初期プログラム・ロード（ＩＰＬ）中の構成解除に関してそのリソースをマークすることができる。ＩＰＬは、「ブート」、または「ブートストラップ」と呼ばれる場合もある。
【００１８】
当業者は、図１に示されたハードウェアを変更できることを理解するであろう。たとえば、光ディスク・ドライブおよび類似物などの他の周辺デバイスも、図示のハードウェアに加えてまたはその代わりに使用することができる。図示の例は、本発明に関するアーキテクチャ上の制限を暗示するものではない。
【００１９】
ここで図２を参照すると、本発明を実施することができる例示的な論理分割されたプラットフォームのブロック図が示されている。論理分割されたプラットフォーム２００のハードウェアは、たとえば、図１のデータ処理システム１００として実施することができる。論理分割されたプラットフォーム２００には、分割されたハードウェア２３０、オープン・ファームウェア（ＯＦ）２１０、およびオペレーティング・システム２０２ないし２０８が含まれる。オペレーティング・システム２０２ないし２０８は、論理分割されたプラットフォーム２００上で同時に稼動する、単一のオペレーティング・システムの複数のコピーまたは複数の異種オペレーティング・システムとすることができる。
【００２０】
分割されたハードウェア２３０には、複数のプロセッサ２３２ないし２３８、複数のシステム・メモリ・ユニット２４０ないし２４６、複数の入出力アダプタ２４８ないし２６２、および記憶装置２７０が含まれる。プロセッサ２３２ないし２３８、システム・メモリ・ユニット２４０ないし２４６、ＮＶＲＡＭ２９８、および入出力アダプタ２４８ないし２６２のそれぞれを、論理分割されたプラットフォーム２００内の、それぞれがオペレーティング・システム２０２ないし２０８の１つに対応する複数の区画の１つに割り当てることができる。
【００２１】
ＯＦ２１０は、オペレーティング・システム２０２ないし２０８の複数の機能およびサービスを実行して、論理分割されたプラットフォーム２００の分割を作成し、実施する。ファームウェアとは、たとえば読取専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去・プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、および不揮発性ランダム・アクセス・メモリ（不揮発性ＲＡＭ）などの、電力なしで内容を保持するメモリ・チップに保管された「ソフトウェア」である。
【００２２】
ＯＦ２１０は、基礎となるハードウェアと同一の、ファームウェアによって実施される仮想計算機である。したがって、ＯＦ２１０を用いると、論理分割されたプラットフォーム２００のすべてのハードウェア・リソースを仮想化することによって、オペレーティング・システム２０２ないし２０８の独立のイメージの同時実行が可能になる。ＯＦ２１０は、オペレーティング・システム２０２ないし２０８の１つによる使用のために、排他モードで、入出力アダプタ２４８ないし２６２を介して単一の仮想計算機に入出力デバイスを接続することができる。
【００２３】
通常の入出力発見および構成の後に、たとえば図１のＰＣＩホスト・ブリッジ１１４、１２２、または１４０などのＰＣＩホスト・ブリッジのそれぞれに、システム・メモリ・マップに基づいて、ＰＣＩメモリ・アドレス範囲およびＰＣＩ入出力アドレス範囲が割り当てられる。システム２００が、図２に示されたＬＰＡＲモードになるようにセット・アップされる場合には、ＯＦ２１０が、各ＰＣＩホスト・ブリッジに、追加のＰＣＩメモリ・アドレス範囲を割り当てた。この追加のＰＣＩメモリ・アドレス範囲は、セカンダリＰＣＩバス上のマスタ・エージェントによって、システム・メモリにアクセスするのに使用される。この範囲を、伝統的に、直接メモリ・アクセス（ＤＭＡ）アドレスと称する。たとえば図１のブリッジ・チップ１２４、１３２、または１４２の１つなどのブリッジ・チップの高機能ルーティング・テーブルが、このＰＣＩメモリ・アドレス範囲だけをプライマリＰＣＩバスにルーティングするようにセットされる。
【００２４】
ＯＦ２１０が、アドレス検査方法を提供する状態で、論理区画は、下記のいずれかだけを実行することができる。
ａ．それに割り当てられたＰＣＩスロットに関するＰＣＩ構成アドレスのアクセスか、
ｂ．それに割り当てられたＰＣＩスロットに関するＰＣＩメモリ・アドレス範囲およびＰＣＩ入出力アドレス範囲のアクセスか、
ｃ．割り当てられたＰＣＩスロットが所有するＤＭＡアドレスの生成。これは、ＰＣＩホスト・ブリッジの変換制御エントリ（ＴＣＥ）（Translation Control Entry）テーブルを介してシステム・メモリ・アドレスにマッピングされる。
【００２５】
ＴＣＥ機構は、ほとんどのプロセッサが現在備えている仮想メモリ・アドレス変換機構に類似する、ＰＣＩホスト・ブリッジ（ＰＨＢ）用の機構である。すなわち、ＴＣＥ機構は、ＰＣＩ入出力バス上の連続するアドレス・スペースを、異なる、おそらくは不連続な、システム・メモリ内のアドレス・スペースに変換する機構を提供する。ＴＣＥ機構は、これを、プロセッサの変換機構に類似する形で行い、したがって、システム・メモリのアドレス・スペースおよび入出力バスのアドレス・スペースを、ページと称する小さいチャンクに分解する。IBM PowerPCプロセッサ・ベースのプラットフォームの場合、このサイズが、一般に４Ｋバイト毎ページである。各ページには、変換制御エントリが関連する。この変換制御エントリは、この入出力変換機構に関してＴＣＥと呼ばれ、時には、対応するプロセッサ仮想変換機構のページ・テーブル・エントリと呼ばれる。この変換エントリは、プロセッサと入出力について異なるテーブル内にある。
【００２６】
ＰＣＩメモリ・サイクル入出力動作が、ＰＨＢのＰＣＩバス上のマスタ・エージェントによって開始される時に、ＴＣＥ機構が、バス上のＰＣＩサイクルのアドレスに対応するＴＣＥテーブル内のページのエントリにアクセスし、そのエントリ内のデータを、システム・メモリにアクセスするためのアドレスの上位ビットとして使用し、下位ビットは、バス上の入出力アドレスからとる。バスから使用されるビットの数は、ページのサイズに依存し、ページ内のバイト・レベルまでアドレッシングするのに必要なビット数である（たとえば、４Ｋバイト・ページ・サイズの例では、バスからとられるビット数が１２になる。というのは、これが、４Ｋバイト・ページ内でバイト・レベルまでアドレッシングするのに必要なビット数であるからである）。したがって、ＴＣＥは、システム・メモリ内のどのページがアドレッシングされるかを決定するビットを提供し、入出力バスからとられるアドレス・ビットによって、ページ内のアドレスが決定される。
【００２７】
論理区画から生成される不正なＰＣＩ構成アドレス、ＰＣＩメモリ・アドレス、およびＰＣＩ入出力アドレスのすべてが、区画がそれに割り当てられていない入出力リソースにアクセスできなくするために、ＯＦ２１０のコードによって拒否され、禁止される。同様に、ブリッジ・チップ・ハードウェアは、スロットに割り当てられていないＰＣＩマスタ・エージェントによって生成されるＤＭＡアドレスを拒否し、禁止する。したがって、これらのファームウェアおよびハードウェアを組み合わせた方法によって、プラグインＰＣＩ入出力スロットの論理分割が達成される。
【００２８】
図３を参照すると、本発明による、データ処理システムでＰＣＩ入出力スロットの論理分割を実施するシステムを示すブロック図が示されている。たとえば図２のＯＦ２１０として実施することができる、オープン・ファームウェア（ＯＦ）３０２が、ＤＭＡ要求を除くすべての要求されたアクセスに関してＰＣＩ入出力スロットの論理分割を実施する。したがって、プロセッサ３０４ないし３０６が、ＰＣＩ入出力アダプタ３０８ないし３１２の１つのＰＣＩ構成アドレス、ＰＣＩメモリ・アドレス、またはＰＣＩ入出力アドレスへのアクセスを望む場合に、その要求は、ＯＦ３０２によって処理されて、要求されたアドレスが、要求元のプロセッサ３０４ないし３０６と同一の区画に割り当てられているかどうかが判定される。論理区画から生成された不正なＰＣＩ構成アドレス要求、ＰＣＩメモリ・アドレス要求、またはＰＣＩ入出力アドレス要求は、区画がそれに割り当てられていない入出力リソースにアクセスできないようにするために、ＯＦ３０２によって拒否され、禁止される。ＯＦ３０２は、ＰＣＩ入出力アダプタ３０８ないし３１２のいずれかによって所有されるＤＭＡアドレスも生成し、このＤＭＡアドレスをシステム・メモリ３２０にマッピングする。
【００２９】
たとえばＰＣＩ入出力アダプタ３０８ないし３１２の１つを介して、ＤＭＡアクセスを開始する、ＰＣＩマスタ・エージェントによる試みのすべてが、ブリッジ・チップ３１４ないし３１８を介して処理される。要求元のＰＣＩマスタ・エージェントが属する論理区画に割り当てられたアドレス範囲内のＤＭＡアドレスだけが、プライマリＰＣＩバス３２２上でブリッジ・チップ３１４ないし３１８によってシステム・メモリ３２０にルーティングされる。他のすべてのＤＭＡ要求は、ブリッジ・チップ３１４ないし３１８によって拒否される。
【００３０】
追加のまたは異なるコンポーネントを、本発明の範囲および趣旨から逸脱せずに、図３に示されたコンポーネントの代わりに使用することができることに留意されたい。たとえば、このシステムに、複数のプロセッサを含めることができる。さらに、図をわかりやすくするために、ＰＣＩホスト・ブリッジなどのいくつかのコンポーネントが図示されていないことに留意されたい。
【００３１】
図４を参照すると、本発明による、非ＤＭＡ要求についてデータ処理システム内で論理分割を実施する例示的な方法を示す流れ図が示されている。図示の論理分割実施方法は、たとえば、図３のＯＦ３０２内で実施することができる。まず、ファームウェアが、ＰＣＩスロットに関する、ＰＣＩ構成アドレス、ＰＣＩメモリ・アドレス、またはＰＣＩ入出力アドレスにアクセスする要求を受け取る（ステップ４０２）。ファームウェアが、要求元デバイスの区画ＩＤを判定し（ステップ４０４）、要求されたアドレスが、要求元デバイスがアクセスを許可されるアドレスの範囲内であるかどうかを判定する（ステップ４０６）。アドレスが許容可能な範囲内でない場合には、ＰＣＩスロットの要求されたアクセスを拒否する（ステップ４１０）。アドレスが許容可能な範囲内にある場合には、要求されたアクセスの進行を許可する（ステップ４０８）。
【００３２】
図５を参照すると、本発明による、ＤＭＡ処理について論理分割を実施するブリッジ・チップ内の例示的な方法を示す流れ図が示されている。まず、たとえば図３のブリッジ・チップ３１４ないし３１８の１つなどの、ブリッジ・チップが、ＰＣＩマスタ・エージェントからＰＣＩ入出力スロットにアクセスする要求を受け取る（ステップ５０２）。ブリッジ・チップが、その要求がＤＭＡ動作であるかどうかを判定する（ステップ５０４）。要求がＤＭＡ動作でない場合には、ＰＣＩ非ＤＭＡ動作すなわちＰＣＩ入出力サイクルに関する高機能ルーティング・テーブルが使用不可にされているので、要求はプライマリＰＣＩバスに転送されず、ブリッジ・チップは、そのバス範囲の外部のすべての構成サイクルをプライマリ・バスに転送しない。これらの非ＤＭＡ要求は、ホスト・プロセッサからＰＣＩエージェントのデバイス・ドライバによって開始されなければならず、たとえば図３のＯＦ３０２などのハイパーバイザが、その時にアドレス検査および論理区分の実施を実行する。
【００３３】
要求がＤＭＡ動作である場合には、ブリッジ・チップは、要求されたアドレスが要求元ＰＣＩマスタ・エージェントの属する区画に割り当てられているかどうかを判定する（ステップ５０８）。アドレスが、ＰＣＩマスタ・エージェントと同一の区画に割り当てられていない場合には、要求を拒否し、プライマリＰＣＩバスに達することを禁止する（ステップ５１２）。アドレスが、要求を行っているＰＣＩマスタ・エージェントと同一の区画に割り当てられている場合には、ＤＭＡ要求の進行を許可し、プライマリＰＣＩバスにルーティングする（ステップ５１０）。
【００３４】
完全に機能するデータ処理システムに関して本発明を説明してきたが、本発明の処理を、命令のコンピュータ可読媒体の形およびさまざまな形で配布することができること、および本発明が、配布の実行に実際に使用される信号担持媒体の特定の種類に無関係に同等にあてはまることを、当業者なら理解するであろうことに留意することが重要である。コンピュータ可読媒体の例には、フロッピ（登録商標）・ディスク、ハード・ディスク、ＲＡＭ、およびＣＤ−ＲＯＭなどの記録可能型媒体と、ディジタル通信リンクおよびアナログ通信リンクなどの伝送型媒体が含まれる。
【００３５】
本発明の説明は、例示および説明のために提示されたものであって、網羅的であることまたは開示された形態だけに本発明を制限するものではない。多数の修正形態および変形形態が、当業者には明らかであろう。この実施形態は、本発明の原理および実用的応用例を最もよく説明し、企図される特定の用途に適するさまざまな修正を有するさまざまな実施形態のために当業者が本発明を理解できるようにするために、選択して述べた。
【００３６】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３７】
（１）データ処理システム内で入出力スロットの論理分割を実施するシステムであって、
入出力スロットへのアクセスに関する非直接メモリ・アクセス要求を受け取り、ある論理区画内のデバイスが異なる論理区画に割り当てられた入出力スロットにアクセスすることを禁止する、ハイパーバイザと、
直接メモリ・アクセス要求を受け取り、要求元デバイスと同一の論理区画内でないアドレスに関する要求が完了することを禁止する、少なくとも１つのＤＭＡアドレス検査コンポーネントと
を含むシステム。
（２）前記ハイパーバイザが、ファームウェアとして実施される、上記（１）に記載のシステム。
（３）前記ＤＭＡアドレス検査コンポーネントが、ハードウェアとして実施される、上記（１）に記載のシステム。
（４）前記ＤＭＡアドレス検査コンポーネントによって受け取られる非直接メモリ・アクセス要求が拒否される、上記（１）に記載のシステム。
（５）前記ＤＭＡアドレス検査コンポーネントが、前記要求元デバイスと同一の論理区画に属するアドレスを有する直接メモリ・アクセス要求を、システム・メモリへの送達のためにプライマリ・バスに転送する、上記（１）に記載のシステム。
（６）前記入出力スロットが、ＰＣＩ（peripheral component interconnect）入出力スロットである、上記（１）に記載のシステム。
（７）前記プライマリ・バスが、プライマリＰＣＩ（peripheral component interconnect）バスである、上記（５）に記載のシステム。
（８）データ処理システム内で直接メモリ・アクセス・アドレスの論理分割を実施する方法であって、
要求元デバイスからアドレスにアクセスする要求を受け取るステップと、
前記要求が直接メモリ・アクセス動作であるとの判定に応答して、前記アドレスが前記要求元デバイスと同一の区画に割り当てられているかどうかを判定するステップと、
前記アドレスが前記要求元デバイスと異なる区画に割り当てられているとの判定に応答して、前記アドレスへのアクセスを拒否するステップと
を含む方法。
（９）前記アドレスが前記要求元デバイスと同一の区画に属するとの判定に応答して、前記要求をシステム・メモリに転送するステップ
をさらに含む、上記（８）に記載の方法。
（１０）前記要求が直接メモリ・アクセス動作でないとの判定に応答して、前記動作を拒否するステップ
をさらに含む、上記（８）に記載の方法。
（１１）前記要求元デバイスが、ＰＣＩ（peripheral component interconnect）マスタ・エージェントである、上記（８）に記載の方法。
（１２）前記アドレスが、前記要求元デバイスが割り当てられている区画と異なる区画に割り当てられているとの前記ハイパーバイザによる判定に応答して、前記要求を拒否するステップ
をさらに含む、上記（１０）に記載の方法。
（１３）前記アドレスが、前記要求元デバイスが割り当てられている区画と同一の区画に割り当てられているとの前記ハイパーバイザによる判定に応答して、前記要求の進行を許可するステップ
をさらに含む、上記（１０）に記載の方法。
（１４）データ処理システム内で直接メモリ・アクセス・アドレスの論理分割を実施する、データ処理システム内で使用されるコンピュータ可読媒体内のコンピュータ・プログラム製品であって、
要求元デバイスからアドレスにアクセスする要求を受け取る第１命令と、
前記要求が直接メモリ・アクセス動作であるとの判定に応答して、前記アドレスが前記要求元デバイスと同一の区画に割り当てられているかどうかを判定する第２命令と、
前記アドレスが前記要求元デバイスと異なる区画に割り当てられているとの判定に応答して、前記アドレスへのアクセスを拒否する第３命令と
を含むコンピュータ・プログラム製品。
（１５）前記アドレスが前記要求元デバイスと同一の区画に属するとの判定に応答して、前記要求をシステム・メモリに転送する第４命令
をさらに含む、上記（１４）に記載のコンピュータ・プログラム製品。
（１６）前記要求が直接メモリ・アクセス動作でないとの判定に応答して、前記要求を拒否する第４命令
をさらに含む、上記（１４）に記載のコンピュータ・プログラム製品。
（１７）前記要求元デバイスが、ＰＣＩ（peripheral component interconnect）マスタ・エージェントである、上記（１４）に記載のコンピュータ・プログラム製品。
（１８）前記アドレスが、前記要求元デバイスが割り当てられている区画と異なる区画に割り当てられているとのハイパーバイザによる判定に応答して、前記要求を拒否する第５命令
をさらに含む、上記（１６）に記載のコンピュータ・プログラム製品。
（１９）前記アドレスが、前記要求元デバイスが割り当てられている区画と同一の区画に割り当てられているとのハイパーバイザによる判定に応答して、前記要求の進行を許可する第５命令
をさらに含む、上記（１６）に記載のコンピュータ・プログラム製品。
【図面の簡単な説明】
【図１】本発明を実施することができるデータ処理システムのブロック図である。
【図２】本発明を実施することができる、例示的な論理分割されたプラットフォームのブロック図である。
【図３】本発明による、データ処理システム内のＰＣＩ入出力スロットの論理分割を実施するシステムを示すブロック図である。
【図４】本発明による、非ＤＭＡ要求についてデータ処理システム内で論理分割を実施する例示的な方法を示す流れ図である。
【図５】本発明による、ＤＭＡ処理について論理分割を実施するブリッジ・チップ内の例示的な方法を示す流れ図である。
【符号の説明】
４０２  ＰＣＩスロットに関する、ＰＣＩ構成アドレス、ＰＣＩメモリ・アドレス、またはＰＣＩ入出力アドレスにアクセスする要求を受け取るステップ
４０４  要求元デバイスの区画ＩＤを判定するステップ
４０６  アドレスが、要求元デバイスがアクセスを許可されるアドレスの範囲内であるかどうかを判定するステップ
４０８  要求されたアクセスの進行を許可するステップ
４１０  要求を拒否するステップ
５０２  ＰＣＩ入出力スロットにアクセスする要求を受け取るステップ
５０４  要求がＤＭＡ動作であるかどうかを判定するステップ
５０８  ＤＭＡアドレスが、要求元ＰＣＩマスタ・エージェントが属する区画に割り当てられているかどうかを判定するステップ
５１２  要求がＰＣＩバスに達することを禁止するステップ
５１０  ＤＭＡ要求をプライマリＰＣＩバスにルーティングするステップ
【図１】
0004157710.tif 000002
【図２】
0004157710.tif 000003
【図３】
0004157710.tif 000004
【図４】
0004157710.tif 000005
【図５】
0004157710.tif 000006