(57)【特許請求の範囲】
【請求項１】
（ａ）複数の入出力アダプタ（ＩＯＡ）と、複数のメモリ・ユニットとを割当テーブルによりオペレーティング・システム（ＯＳ）イメージごとに論理分割された論理分割データ処理システムであって、
（ｂ）前記割当テーブルに基づいて、前記ＯＳイメージが実行される複数の論理区画と、
（ｃ）前記割当テーブルに基づいて、各々が前記複数の論理区画の１つに割当てられる複数のオペレーティング・システム（ＯＳ）と、
（ｄ）前記割当テーブルに基づいて、各々が前記複数の論理区画の１つに割当てられる複数のメモリ・ユニットと、
（ｅ）Ｉ／Ｏバス（３１２）に接続されたＰＣＩホスト・ブリッジ（３１４）と、
（ｆ）前記ＰＣＩホスト・ブリッジに第１のＰＣＩバス（３１５，７０６）を介して接続された少なくとも１つの端末ブリッジと、
（ｇ）前記割当テーブルに基づいて、各々が前記複数の論理区画の異なる１つに割当てられ、前記端末ブリッジの一つに第２のＰＣＩバス（７１６）を介して接続される複数の入出力アダプタ（ＩＯＡ）と、
（ｈ）それぞれの前記ＩＯＡに対応するアクセス可能なＩＯバスＤＭＡアドレス範囲を割当てる範囲レジスタのテーブル（５００，７１２）と、前記ＩＯバスＤＭＡアドレス範囲レジスタに、アクセス可能な前記メモリ・ユニットのアドレス範囲を割当てる変換制御エントリ・テーブル（５５０）とを有し、前記テーブルに基づいて、前記複数のＩＯＡは、前記複数の論理区画の内の第１の論理区画に割当てられる第１のものと他の論理区画に割当てられる第２のものに分けられ、前記第１のＩＯＡと前記第１の論理区画に割当てられない前記メモリ・ユニットとの間のデータの伝送を阻止する手段とを備え、
（ｉ）第２のＰＣＩバスは、前記ＩＯＡが前記ＰＣＩバスにアクセス要求するアクセス要求信号線（７１０）、及び、各前記ＩＯＡ及び前記範囲レジスタに接続されるグラント信号線（７１８）を含み、
（ｊ）前記端末ブリッジは、前記ＰＣＩバスを使用する前記ＩＯＡの１つに決定するアービタ（７１４）を含み、前記アービタは、更に前記ＩＯＡからの前記ＰＣＩバスへのアクセス要求信号線（７１０）に接続され、
（ｋ）前記阻止する手段は、前記アービタが、前記ＩＯＡから前記ＰＣＩバスへのアクセス要求信号（７１０）を受けると、前記グラント信号線（７１８）を介して前記ＩＯＡに信号を送ると同時に要求バス・アドレスが前記範囲レジスタのＩＯバスＤＭＡアドレス範囲内にあるか否かを判断し前記要求されたバスＤＭＡアドレスが前記範囲外にある場合、ＩＯＡに操作を無効にする信号を送ることにより、前記第１のＩＯＡと前記第１の論理区画に割当てられない前記メモリ・ユニットとの間のデータの伝送を阻止することを特徴とする、
論理分割データ処理システム
【請求項２】
前記端末ブリッジが範囲レジスタの複数のセットを有し、各範囲レジスタがそれぞれの前記ＩＯＡに関連付けられる、請求項１記載の論理分割データ処理システム。
【請求項３】
前記範囲レジスタがプログラマブルである、請求項２記載の論理分割データ処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、コンピュータ・アーキテクチャの分野に関し、特に、論理分割データ処理システム内の複数のオペレーティング・システム・イメージの間で、資源を管理する方法及びシステムに関する。
【０００３】
【従来の技術】
データ処理システム（プラットフォーム）内における論理分割（ＬＰＡＲ）機能は、単一のオペレーティング・システム（ＯＳ）の複数のコピー、または複数の異種のオペレーティング・システムが、単一のデータ処理システム・プラットフォーム上で同時に実行されることを可能にする。オペレーティング・システム・イメージが実行される区画には、プラットフォームの資源の非オーバラップ・サブセットが割当てられる。これらのプラットフォームの割当て可能な資源には、１つ以上のアーキテクチャ的に別個のプロセッサが含まれ、これらは独自の割込み管理領域、システム・メモリの領域、及びＩ／Ｏアダプタ・バス・スロットを有する。区画の資源はプラットフォームのファームウェアにより、ＯＳイメージに表される。
【０００４】
それぞれの別個のＯＳ、またはプラットフォーム内で実行されるＯＳのイメージは、論理区画上のソフトウェア・エラーが、他の区画の適正動作に影響しないようにお互いから保護される。これは各ＯＳイメージにより直接管理されるべき、プラットフォーム資源の互いに素なセット（disjoint set）を割当て、様々なイメージが、それらにまだ割当てられていない資源を制御できないように保証する機構を提供することにより達成される。更に、ＯＳの割当て資源の制御に関するソフトウェア・エラーは、他のイメージの資源に影響しないようにされる。従って、ＯＳの各イメージ（または各異なるＯＳ）は、プラットフォーム内の割当て可能な資源の別個のセットを直接制御する。
【０００５】
【発明が解決しようとする課題】
標準のコンピュータ・システムに関する１つの問題は、入出力（Ｉ／Ｏ）サブシステムが、単一のＩ／Ｏバスを共用する幾つかのＩ／Ｏアダプタ（ＩＯＡ）により設計されることである。ＯＳイメージは、それらのＩＯＡを直接制御するコマンドを発行するデバイス・ドライバを含む。これらのコマンドの１つは、直接メモリ・アクセス（ＤＭＡ）アドレス、及びプログラムされるＩ／Ｏ操作の長さを含む。アドレスまたは長さパラメータのエラーは、別のイメージに割当てられたメモリにデータを送信したり、そうしたメモリからデータをフェッチしたりする。こうしたエラーの結果は、データ処理システム内の別のＯＳイメージのデータを破壊したり盗難につながる。これらの発生は、論理分割データ処理システムの要件に違反する。従って、論理分割システム内の１つのＯＳイメージにより使用されるＩ／Ｏが、システム内の別のＯＳイメージに属するデータを破壊またはフェッチすることを防止する方法、システム及び装置が必要とされる。
【０００６】
前述の問題は、システム内の大きい数のＩ／Ｏアダプタの存在により悪化し得、どのＩ／ＯアダプタがどのＬＰＡＲ区画に属するか、或いはアダプタが異なる区画内に存在する場合、どのアドレス範囲が各Ｉ／Ｏアダプタにとって正当であるかを判断することをより困難にする。従って、非常に数多くのＩ／Ｏアダプタの使用を受け入れ、多額の費用の追加を伴わずに、既存のハードウェアを用いて、この機能を提供する方法、システム及び装置を考案することが所望される。
【０００７】
【課題を解決するための手段】
前記の目的は、論理分割データ処理システムにおいて、あるオペレーティング・システム（ＯＳ）により使用される入出力（Ｉ／Ｏ）アダプタが、別のＯＳイメージに割当てられたメモリ・ロケーションからデータをフェッチまたは破壊することを防止する方法、システム及び装置において達成される。１実施例では、データ処理システムは複数の論理区画、複数のオペレーティング・システム（ＯＳ）、複数のメモリ・ロケーション、複数のＩ／Ｏアダプタ（ＩＯＡ）、及びハイパバイザを含む。オペレーティング・システム・イメージの各々は、論理区画の異なる１つに割当てられる。メモリ・ロケーションの各々、及び入出力アダプタの各々が論理区画の１つに割当てられる。ハイパバイザは、入出力アダプタの各々にＩ／ＯバスＤＭＡアドレス範囲を割当てることにより、直接メモリ・アクセス（ＤＭＡ）操作の間に、１論理区画内の入出力アダプタと、他の論理区画に割当てられたメモリ・ロケーションとの間のデータの伝送を防止する。ＯＳイメージから、そのメモリの一部をＤＭＡ操作のためにマップする要求が受信されると、ハイパバイザは、メモリ・アドレス範囲及びＩ／Ｏアダプタが要求ＯＳイメージに割当てられており、Ｉ／ＯバスＤＭＡ範囲がＩ／Ｏアダプタに割当てられた範囲内にあることをチェックする。これらのチェックが合格すると、ハイパバイザは要求されたマッピングを実行するが、それ以外では要求が拒否される。
【０００８】
本発明は更に、複数のＩＯＡをサポートする端末ブリッジの使用を考慮する。この実施例では、あらゆる端末ブリッジが範囲レジスタの複数のセットを有し、各々のセットがそれぞれのＩＯＡに関連付けられ、それに接続される。更にアービタが提供され、ＰＣＩバスを使用する入出力アダプタの１つを選択する。端末ブリッジがアービタからＩＯＡへのグラント（grant）信号を調査し、使用される範囲レジスタのセットを決定する。
【０００９】
本発明の前記の及び追加の目的、特徴及び利点が、以下で述べる詳細な説明から明らかとなろう。
【００１０】
【発明の実施の形態】
図１を参照すると、本発明が実施される分散データ処理システムが示される。分散データ処理システム１００は、本発明が実施されるコンピュータのネットワークである。分散データ処理システム１００はネットワーク１０２を含み、これは分散データ処理システム１００内で接続される様々な装置及びコンピュータの間の、通信リンクを提供するために使用される媒体である。ネットワーク１０２はワイヤまたは光ファイバ・ケーブルなどの永久接続、或いは電話接続により形成される一時接続を含む。
【００１１】
図示の例では、サーバ１０４がハードウェア・システム・コンソール１５０に接続される。サーバ１０４はまた記憶ユニット１０６と共に、ネットワーク１０２にも接続される。更に、クライアント１０８、１１０及び１１２がネットワーク１０２に接続される。これらのクライアント１０８、１１０及び１１２は、例えばパーソナル・コンピュータまたはネットワーク・コンピュータである。本願の目的上、ネットワーク・コンピュータは、ネットワークに接続される任意のコンピュータであり、ネットワークに接続される別のコンピュータからプログラムまたは他のアプリケーションを受信する。図示の例では、サーバ１０４は論理分割プラットフォームであり、ブート・ファイル、オペレーティング・システム・イメージ、及びアプリケーションなどのデータをクライアント１０８乃至１１２に提供する。ハードウェア・システム・コンソール１５０はラップトップ・コンピュータであり、サーバ１０４上で実行される各オペレーティング・システム・イメージからメッセージをオペレータに表示するために、及びオペレータから受信される入力情報をサーバ１０４に送信するために使用される。クライアント１０８、１１０及び１１２は、サーバ１０４のクライアントである。分散データ処理システム１００は、図示されない追加のサーバ、クライアント、及び他の装置を含み得る。分散データ処理システム１００はまた、プリンタ１１４、１１６及び１１８を含む。クライアント１１０などのクライアントは、プリンタ１１４に直接印刷する。クライアント１０８及びクライアント１１２は、直接接続されたプリンタを有さないので、これらのクライアントは、サーバ１０４に接続されるプリンタ１１６に印刷したり、或いはネットワーク・プリンタであり、コンピュータへの接続を要求せずに文書印刷を可能にするプリンタ１１８に印刷する。更にまた、クライアント１１０はプリンタ・タイプ及び文書要求に応じて、プリンタ１１６またはプリンタ１１８に印刷することもできる。
【００１２】
図示の例では、分散データ処理システム１００はインターネットであり、ネットワーク１０２は、ＴＣＰ／ＩＰプロトコルを用いて互いに通信する、ネットワーク及びゲートウェイの世界的収集を表す。インターネットの中心部は、高速データ通信回線の中枢であり、これは数千の商業用、行政用、教育用、及びその他のコンピュータ・システムから成る、主要ノードまたはホスト・コンピュータ間でデータやメッセージを経路指定する。もちろん、分散データ処理システム１００は、イントラネットやローカル・エリア・ネットワークなどの、多数の異なるタイプのネットワークとしても実現される。
【００１３】
図１は、本発明の１例に過ぎず、そのプロセスのアーキテクチャ的な制限を意味するものではない。
【００１４】
図２を参照すると、本発明に従うデータ処理システムのブロック図が示される。データ処理システム２００は、図１に示されるハードウェア・システム・コンソール１５０などの、ハードウェア・システム・コンソールの１例である。データ処理システム２００は、周辺コンポーネント相互接続（ＰＣＩ）ローカル・バス・アーキテクチャを採用する。図示の例はＰＣＩバスを使用するが、マイクロ・チャネルやＩＳＡなどの他のバス・アーキテクチャも使用可能である。プロセッサ２０２及びメイン・メモリ２０４は、ＰＣＩブリッジ２０８を介して、ＰＣＩローカル・バス２０６に接続される。ＰＣＩブリッジ２０８は、プロセッサ２０２のための統合メモリ制御装置及びキャッシュ・メモリを含む。ＰＣＩローカル・バス２０６への追加の接続が、直接コンポーネント相互接続または増設ボードを通じて行われる。図示の例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１０、ＳＣＳＩホスト・バス・アダプタ２１２、及び拡張バス・インタフェース２１４が、直接コンポーネント接続により、ＰＣＩローカル・バス２０６に接続される。それに対してオーディオ・アダプタ２１６、グラフィックス・アダプタ２１８、及びオーディオ／ビデオ・アダプタ（Ａ／Ｖ）２１９が、拡張スロットに挿入される増設ボードにより、ＰＣＩローカル・バス２０６に接続される。拡張バス・インタフェース２１４は、キーボード、マウス・アダプタ２２０及びモデム２２２との接続を提供する。図示の例では、ＳＣＳＩホスト・バス・アダプタ２１２がハード・ディスク・ドライブ２２６、テープ・ドライブ２２８、ＣＤ−ＲＯＭドライブ２３０、及びデジタル・ビデオ・ディスク読出し専用メモリ・ドライブ（ＤＶＤ−ＲＯＭ）２３２との接続を提供する。典型的なＰＣＩローカル・バス・インプリメンテーションは、３つ乃至４つのＰＣＩ拡張スロットまたは増設コネクタをサポートする。
【００１５】
オペレーティング・システムはプロセッサ２０２上で実行され、図２に示されるデータ処理システム２００内の様々なコンポーネントの制御を調整及び提供するために使用される。オペレーティング・システムは、例えばＩＢＭから提供されるＯＳ／２などの、市販のオペレーティング・システムでよい。"ＯＳ／２"はＩＢＭの商標である。Ｊａｖａ（Ｒ）などのオブジェクト指向プログラミング・システムが、オペレーティング・システムと共に実行され、Ｊａｖａ（Ｒ）プログラムから、またはデータ処理システム２００上で実行されるアプリケーションから、オペレーティング・システムへの呼び出しを提供する。オペレーティング・システムのための命令、オブジェクト指向オペレーティング・システム、及びアプリケーションまたはプログラムが、ハード・ディスク・ドライブ２２６などの記憶装置上に配置され、メイン・メモリ２０４内にロードされて、プロセッサ２０２により実行される。
【００１６】
当業者であれば、図２のハードウェアがインプリメンテーションに応じて変化し得ることが理解できよう。例えば、光ディスク・ドライブなどの他の周辺装置が、図２に示されるハードウェアに加えて、またはその代わりに使用されてもよい。図示の例は、本発明に関するアーキテクチャ的な制限を意味するものではない。例えば、本発明のプロセスはマルチプロセッサ・データ処理システムにも適用され得る。
【００１７】
図３を参照すると、本発明に従い、図１のサーバ１０４などの、論理分割サーバとして実現されるデータ処理システムのブロック図が示される。データ処理システム３００は対称マルチプロセッサ（ＳＭＰ）システムであり、システム・バス３０６に接続される複数のプロセッサ３０１、３０２、３０３及び３０４を含む。例えば、データ処理システム３００は、ＩＢＭの製品であるIBM RS/6000である。或いは、単一プロセッサ・システムが使用されてもよい。システム・バス３０６にはメモリ制御装置／キャッシュ３０８が接続され、これは複数のローカル・メモリ３６０乃至３６３へのインタフェースを提供する。Ｉ／Ｏバス・ブリッジ３１０がシステム・バス３０６に接続され、Ｉ／Ｏバス３１２とのインタフェースを提供する。メモリ制御装置／キャッシュ３０８及びＩ／Ｏバス・ブリッジ３１０は、図示のように統合される。
【００１８】
データ処理システム３００は、論理分割データ処理システムである。従って、データ処理システム３００は、同時に実行される複数の異種のオペレーティング・システム（単一オペレーティング・システムの複数のインスタンス）を有する。これらの複数のオペレーティング・システムの各々内では、任意の数のソフトウェア・プログラムが実行される。データ処理システム３００は論理的に区画化され、異なるＩ／Ｏアダプタ３２０乃至３２１、３２８乃至３２９、３３６乃至３３７、及び３４６乃至３４７が、異なる論理区画に割当てられる。
【００１９】
従って、例えば、データ処理システム３００が３つの論理区画Ｐ１、Ｐ２、Ｐ３に分割されると仮定する。Ｉ／Ｏアダプタ３２０乃至３２１、３２８乃至３２９、３３６乃至３３７の各々、プロセッサ３０１乃至３０４の各々、及びローカル・メモリ３６０乃至３６３の各々が、３つの区画の１つに割当てられる。例えば、プロセッサ３０１、メモリ３６０、及びＩ／Ｏアダプタ３２０、３２８及び３２９が論理区画Ｐ１に割当てられ、プロセッサ３０２乃至３０３、メモリ３６１、及びＩ／Ｏアダプタ３２１及び３３７が、論理区画Ｐ２に割当てられ、プロセッサ３０４、メモリ３６２乃至３６３、及びＩ／Ｏアダプタ３３６及び３４６乃至３４７が、論理区画Ｐ３に割当てられる。
【００２０】
データ処理システム３００内で実行される各オペレーティング・システムは、異なる論理区画に割当てられる。従って、データ処理システム３００内で実行される各オペレーティング・システムは、その論理区画内に存在するＩ／Ｏユニットだけをアクセスする。例えば、拡張対話式エグゼクティブ（ＡＩＸ）オペレーティング・システムの１インスタンスが、区画Ｐ１内で実行され、ＡＩＸオペレーティング・システムの第２のインスタンス（イメージ）が、区画Ｐ２内で実行され、ウィンドウズ（Ｒ）２０００オペレーティング・システムが、区画Ｐ３内で実行される。ウィンドウズ（Ｒ）２０００は、マイクロソフト社の製品及び商標である。
【００２１】
Ｉ／Ｏバス３１２に接続される周辺コンポーネント相互接続（ＰＣＩ）ホスト・ブリッジ３１４は、ＰＣＩローカル・バス３１５とのインタフェースを提供する。多数の端末ブリッジ３１６乃至３１７が、ＰＣＩバス３１５に接続される。典型的なＰＣＩバス・インプリメンテーションは、拡張スロットまたは増設コネクタを提供するための４個乃至１０個の端末ブリッジをサポートする。端末ブリッジ３１６乃至３１７の各々は、ＰＣＩバス３１８乃至３１９を介して、ＰＣＩＩ／Ｏアダプタ３２０乃至３２１に接続される。各Ｉ／Ｏアダプタ３２０乃至３２１は、データ処理システム３００と入出力装置との間のインタフェースを提供する。こうした入出力装置には、例えばサーバ３００のクライアントである、他のネットワーク・コンピュータなどが含まれる。１実施例では、単一のＩ／Ｏアダプタ３２０乃至３２１だけが、各端末ブリッジ３１６乃至３１７に接続される。端末ブリッジ３１６乃至３１７の各々は、ＰＣＩホスト・ブリッジ３１４への、及びデータ処理システム３００のより高いレベルへの、エラーの伝搬を防止するように構成される。これにより、端末ブリッジ３１６乃至３１７により受信されるエラーは、異なる区画内に存在する他のＩ／Ｏアダプタ３２８乃至３２９、３３６乃至３３７、及び３４６乃至３４７の共用バス３１５及び３１２から分離される。従って、ある区画内のＩ／Ｏ装置内で発生するエラーは、別の区画のオペレーティング・システムによっては認識されない。これにより、１区画内のオペレーティング・システムの保全性が、別の論理区画内で発生するエラーにより影響を受けない。こうしたエラーの分離がないと、ある区画のＩ／Ｏ装置内で発生するエラーが、別の区画のオペレーティング・システムまたはアプリケーション・プログラムの動作を停止させたり、正しい動作を阻害したりする。
【００２２】
追加のＰＣＩホスト・ブリッジ３２２、３３０及び３４０が、追加のＰＣＩバス３２３、３３１及び３４１のためのインタフェースを提供する。追加のＰＣＩバス３２３、３３１及び３４１の各々は、複数の端末ブリッジ３２４乃至３２５、３３２乃至３３３、及び３４２乃至３４３に接続され、これらはそれぞれＰＣＩバス３２６乃至３２７、３３４乃至３３５、及び３４４乃至３４５により、ＰＣＩ  Ｉ／Ｏアダプタ３２８乃至３２９、３３６乃至３３７、及び３４６乃至３４７に接続される。従って、追加のＩ／Ｏ装置である例えばモデムやネットワーク・アダプタなどがＰＣＩ  Ｉ／Ｏアダプタ３２８乃至３２９、３３６乃至３３７、及び３４６乃至３４７を介してサポートされる。このように、サーバ３００は複数のネットワーク・コンピュータとの接続を可能にする。更に、図示のように、メモリ・マップド・グラフィックス・アダプタ３４８及びハード・ディスク３５０が、直接的にまたは間接的にＩ／Ｏバス３１２に接続される。ハード・ディスク３５０は追加のハード・ディスクの必要無しに、様々な区画の間で論理的に区画化される。しかしながら、追加のハード・ディスクは必要に応じて使用される。
【００２３】
当業者であれば、図３に示されるハードウェアが変化し得ることが理解できよう。例えば、光ディスク・ドライブなどの他の周辺装置が、図示のハードウェアに加えて、またはその代わりに使用されてもよい。従って、図示の例は、本発明に関するアーキテクチャ的な制限を意味するものではない。
【００２４】
図４を参照すると、本発明が実施される論理分割プラットフォーム（論理分割データ処理システム）のブロック図が示される。論理分割プラットフォーム４００内のハードウェアは、例えば図３のサーバ３００として実現される。論理分割プラットフォーム４００は分割ハードウェア４３０と、ハイパバイザ４１０と、オペレーティング・システム４０２乃至４０８とを含む。オペレーティング・システム４０２乃至４０８は、単一のオペレーティング・システムの複数のコピーか、またはプラットフォーム４００上で同時に実行される複数の異種のオペレーティング・システムである。
【００２５】
分割ハードウェア４３０は複数のプロセッサ４３２乃至４３８と、複数のシステム・メモリ・ユニット４４０乃至４４６と、複数の入出力（Ｉ／Ｏ）アダプタ４４８乃至４６２と、記憶ユニット４７０とを含む。プロセッサ４３２乃至４３８、メモリ・ユニット４４０乃至４４６、及びＩ／Ｏアダプタ４４８乃至４６２の各々は、論理分割プラットフォーム４００内の複数の区画の１つに割当てられ、これらの区画の各々はオペレーティング・システム４０２乃至４０８の１つに対応する。
【００２６】
ハイパバイザ４１０はファームウェアとして実現され、論理分割プラットフォーム４００の区画化を生成し、実施する。ファームウェアは、電力を必要とせずにその内容を保持するメモリ・チップ内に記憶される"ハード・ソフトウェア"である。こうしたメモリには、読出し専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、及び不揮発性ランダム・アクセス・メモリ（不揮発性ＲＡＭ）が含まれる。
【００２７】
ハイパバイザ４１０は、図３のＩ／Ｏバス３１２などの共用Ｉ／Ｏバス上において、図３のＩＯＡ３２８などのＩＯＡごとに、図４のＯＳイメージ４０２などの、その関連ＯＳイメージに割当てられるメモリ資源に対して、安全な直接メモリ・アクセス（ＤＭＡ）ウィンドウを提供する。安全なＤＭＡウィンドウは、ＩＯＡから、そのＩＯＡと同じ区画に割当てられるメモリへのアクセスを提供する一方、ＩＯＡが異なる区画に割当てられたメモリへのアクセスを獲得することを防止する。
【００２８】
１実施例では、RS/6000プラットフォーム・アーキテクチャにおいて実現されるように、ハイパバイザが２つの既存のハードウェア機構を利用する。これらのハードウェア機構は、変換制御エントリ（ＴＣＥ）機構及びＤＭＡ範囲レジスタ機構と呼ばれる。１実施例では、ＴＣＥ機構は、図３のＰＣＩホスト・ブリッジ３１４、３２２、３３０及び３４０などのＰＣＩホスト・ブリッジ内で実現され、ＤＭＡ範囲レジスタ機構は、端末ブリッジ３１６乃至３１７、３２４乃至３２５、３３２乃至３３３、及び３４２乃至３４３などの、端末ブリッジ内で実現される。
【００２９】
ＴＣＥ機構（図示せず）は、Ｉ／Ｏの機構であり、今日のほとんどのプロセッサにより提供される仮想メモリ・アドレス変換機構と類似である。すなわち、ＴＣＥ機構はＩ／Ｏバス上の連続アドレス空間をメモリ内の異なる、ことによると非連続のアドレス空間に変換する機構を提供する。ＴＣＥ機構はこれをプロセッサの変換機構と同様に行い、すなわち、メモリのアドレス空間及びＩ／Ｏバスのアドレス空間をページと呼ばれる小さなチャンクに分割する。ＩＢＭのPowerPCプロセッサにもとづくプラットフォームでは、このサイズは一般に、１ページ当たり４Ｋバイトである。各ページには変換及び制御エントリが関連付けられる。この変換及び制御エントリは、このＩ／Ｏ変換機構ではＴＣＥと呼ばれ、ときに対応するプロセッサ仮想変換機構のページ・テーブル・エントリと呼ばれる。これらの変換エントリは、プロセッサ及びＩ／Ｏのための異なるテーブル内に存在する。
【００３０】
Ｉ／Ｏ操作がバス上で開始すると、ＴＣＥ機構はＴＣＥテーブル内のそのページのエントリをアクセスし、そのエントリ内のデータを、メモリをアクセスするためのアドレスの最上位ビットとして使用する。ちなみに最下位ビットは、バス上のＩ／Ｏアドレスから取得される。バスから使用されるビットの数は、ページのサイズに依存し、ページ内のバイト・レベルをアドレス指定するために必要なビット数である（例えば４Ｋバイトのページ・サイズの例では、バスから取得されるビットの数は１２であり、これは４Ｋバイトのページ内のバイト・レベルをアドレス指定するために必要なビット数に相当する）。従って、ＴＣＥはメモリ内のどのページがアドレス指定されるかを決定するためのビットを提供し、Ｉ／Ｏバスから取得されるアドレス・ビットがページ内のアドレスを決定する。
【００３１】
ＩＯＡがＩ／Ｏバス上に設定することを許可されるバス・アドレス範囲は、範囲レジスタ機構により制限される。範囲レジスタ機構は、ＩＯＡがアクセスしようとしている場所と比較されるアドレスを保持する多数のレジスタを含む。ＩＯＡが、ファームウェアにより範囲レジスタ内にプログラムされたアドレスの範囲外をアクセスしようとしている場合、ブリッジはＩＯＡに応答せず、それによりＩＯＡが自身がアクセスを許可されないアドレスをアクセスすることを効果的に防止する。この実施例では、これらの２つのハードウェア機構が、ハイパバイザにより制御される。
【００３２】
プラットフォーム４００が初期化されるとき、ＩＯＡ４４８乃至４６２のそれぞれの排他的使用のために、ハイパバイザ４１０により、Ｉ／ＯバスＤＭＡアドレスの互いに素な範囲（disjoint range）が、ＩＯＡ４４８乃至４６２の各々に割当てられる。次に、ハイパバイザ４１０は、この排他的使用を実施するために、端末ブリッジ範囲レジスタ（図示せず）機構を構成する。ハイパバイザ４１０は次に、この割当てをＯＳイメージ４２０乃至４０８の該当所有者に伝達する。ハイパバイザはまた、ＴＣＥテーブルの特定のＩＯＡ関連セクション内の全てのエントリを初期化し、そのＩＯＡを割当てられたＯＳイメージにより所有される、１イメージ当たりの予約ページを指し示すようにする。これにより、ＩＯＡによるメモリの無許可のアクセスが、他のＯＳイメージ４０２乃至４０８の１つに影響するエラーを発生しないようになる。
【００３３】
ＯＳイメージ４０２乃至４０８の該当所有者が、ＤＭＡ操作のためにそのメモリの一部をマップすることを要求するとき、そのＯＳイメージはハイパバイザ４１０に、ＩＯＡ、メモリ・アドレス範囲、及びマップされる関連Ｉ／ＯバスＤＭＡアドレス範囲を示すパラメータを含む呼び出しを送る。ハイパバイザ４１０は、ＩＯＡ及びメモリ・アドレス範囲がＯＳイメージ４０２乃至４０８の該当所有者に割当てられていることをチェックする。ハイパバイザ４１０はまた、Ｉ／ＯバスＤＭＡ範囲が、そのＩＯＡに割当てられた範囲内にあることをチェックする。これらのチェックが合格すると、ハイパバイザ４１０は要求されたＴＣＥマッピングを実行する。これらのチェックが合格しない場合には、ハイパバイザは要求を拒否する。
【００３４】
ハイパバイザ４１０はまた、複数の論理区画内で実行されるＯＳイメージ４０２乃至４０８の各々に、コンソール及びオペレータ・パネルの仮想コピーを提供する。コンソールとのインタフェースは、非同期テレタイプ・ポート・デバイス・ドライバから、従来技術同様、ポート・デバイス・ドライバをエミュレートするハイパバイザ・ファームウェア呼び出しのセットに変更される。ハイパバイザ４１０は、様々なＯＳイメージからのデータを、ハードウェア・システム・コンソールとして知られるコンピュータ４８０に転送されるメッセージ・ストリーム上にカプセル化する。
【００３５】
ハードウェア・システム・コンソール４８０は、図４に示されるように、論理分割プラットフォーム４００に直接接続されるか、論理分割プラットフォーム４００に、例えば図１のネットワーク１０２などのネットワークを通じて接続される。ハードウェア・システム・コンソール４８０はメッセージ・ストリームをデコードし、様々なＯＳイメージ４０２乃至４０８からの情報を、別々のウィンドウに表示する。詳細には、１つのＯＳイメージにつき、少なくとも１つのウィンドウが用意される。同様に、オペレータからのキーボード入力情報が、ハードウェア・システム・コンソールによりパッケージ化され、論理分割プラットフォーム４００に送信され、そこでデコードされて、適切なＯＳイメージにハイパバイザ４１０によりエミュレートされたポート・デバイス・ドライバを介して送達される。尚、ポート・デバイス・ドライバは、ハードウェア・システム・コンソール４８０上のアクティブ・ウィンドウに関連付けられる。
【００３６】
当業者であればわかるように、図４に示されるハードウェア及びソフトウェアは変化し得る。例えば、図４に示されるよりも多くのまたは少ない数のプロセッサ、或いはより多くのまたはより少ないオペレーティング・システム・イメージが使用されてもよい。従って、図示の例は、本発明に関するアーキテクチャ的な制限を意味するものではない。
【００３７】
図５乃至図７を参照すると、本発明に従う典型的な割当てテーブル、Ｉ／ＯバスＤＭＡアドレス範囲テーブル、及び変換制御エントリ・テーブルが示される。図５では、Ｉ／ＯバスＤＭＡアドレス範囲テーブル５００の例が示される。この例では、第１の入出力アダプタＩＯＡ１が、Ｉ／ＯバスＤＭＡアドレス１乃至４のＩ／ＯバスＤＭＡアドレス範囲を割当てられ、第２の入出力アダプタＩＯＡ２が、Ｉ／ＯバスＤＭＡアドレス５乃至８のＩ／ＯバスＤＭＡアドレス範囲を割当てられ、第３の入出力アダプタＩＯＡ３が、Ｉ／ＯバスＤＭＡアドレス９乃至１２のＩ／ＯバスＤＭＡアドレス範囲を割当てられる。図６の割当てテーブル５２０では、第１のオペレーティング・システム・イメージＯＳ１が、ＩＯＡ１、ＩＯＡ３、及びメモリ・ロケーション１乃至２０を割当てられている。第２のオペレーティング・システム・イメージＯＳ２は、ＩＯＡ２及びメモリ・ロケーション２１乃至４０を割当てられている。
【００３８】
図７に示される変換制御エントリ（ＴＣＥ）テーブル５５０において、メモリ・ロケーション５乃至８はＩ／ＯバスＤＭＡアドレス１乃至４にマップされ、メモリ・ロケーション１１乃至１３はＩ／ＯバスＤＭＡアドレス９乃至１１にマップされ、メモリ・ロケーション２５乃至２６はＩ／ＯバスＤＭＡアドレス５乃至６にマップされる。例えば、第１のオペレーティング・システムＯＳ１が、メモリ・ロケーション２１乃至２４が、第１の入出力アダプタＩＯＡ１に対応して、Ｉ／ＯバスＤＭＡアドレス１乃至４にマップされることを要求するか、メモリ・ロケーション１乃至５が、第２の入出力アダプタＩＯＡ２に対応して、Ｉ／ＯバスＤＭＡアドレス５乃至８にマップされることを要求する場合、図４のハイパバイザ４１０などのハイパバイザがいずれの要求も拒否する。第１のケースでは、Ｉ／ＯバスＤＭＡアドレスは、第１の入出力アダプタＩＯＡ１に割当てられる範囲内にあり、第１の入出力アダプタＩＯＡ１は第１のオペレーティング・システムＯＳ１に割当てられるが、メモリ・ロケーションは第２のオペレーティング・システムＯＳ２に割当てられるので、要求は拒否される。第２のケースでは、第２の入出力アダプタＩＯＡ２は第１のオペレーティング・システムＯＳ１に割当てられない。従って、第１のオペレーティング・システムは、第２のオペレーティング・システムＯＳ２に属するデータを変更または影響することを阻止される。
【００３９】
しかしながら、例えば第１のオペレーティング・システムが、メモリ・ロケーション１８を、第３の入出力アダプタＩＯＡ３に対応して、Ｉ／ＯバスＤＭＡアドレス１２にマップすることを要求する場合、ハイパバイザはこうした要求を実行し、ＴＣＥテーブル５５０を変更し得る。なぜなら、こうした要求は、第２のオペレーティング・システムＯＳ２に割当てられたメモリ空間、または入出力アダプタに干渉しないからである。
【００４０】
図８を参照すると、本発明に従い、直接メモリ・アクセス（ＤＭＡ）の間に、あるＯＳイメージが別のＯＳイメージに割当てられたメモリから、データを送信またはフェッチすることを防止する典型的なプロセスを示すフローチャートが示される。図５のプラットフォーム５００などの論理分割プラットフォームが初期化されるとき、ハイパバイザはＩ／ＯバスＤＭＡアドレスの互いに素な範囲を、各ＩＯＡにその排他的使用のために割当てる（ステップ６０２）。RS/6000プラットフォーム内で実現される実施例では、ハイパバイザがこの排他的使用を実現するように、端末ブリッジのＤＭＡ範囲レジスタ機構を構成する。ハイパバイザは次にこの割当てを、所有ＯＳイメージに伝達する（ステップ６０４）。ハイパバイザはまた、転換制御エントリ（ＴＣＥ）機構テーブルのＩＯＡ関連セクション内の全てのエントリを初期化し、そのＩＯＡを割当てられたＯＳイメージにより所有される、１イメージ当たりの予約ページを指し示すようにする。これにより、無許可のアクセスが、別のＯＳイメージに影響するエラーを発生しないようになる（ステップ６０６）。
【００４１】
ハイパバイザは次に、あるＯＳイメージから、そのそれぞれのＯＳイメージに属するメモリの一部をＤＭＡ操作に割当てる要求が受信されるか否かを判断する（ステップ６０８）。ＯＳイメージはハイパバイザへの呼び出しにより、要求を発する。こうした呼び出しには、ＩＯＡ、メモリ・アドレス範囲、及びマップされる関連Ｉ／ＯバスＤＭＡアドレス範囲を示すパラメータが含まれる。こうした要求が受信されない場合には、ハイパバイザは要求を待機し続ける。こうした要求が受信されると、ハイパバイザはその要求内のＩＯＡ及びメモリ・アドレス範囲が、要求側ＯＳイメージに割当てられているか否かを判断する（ステップ６１０）。ＯＳイメージから受信される要求内のＩＯＡ及びメモリ・アドレス範囲が、要求側ＯＳイメージに割当てられていない場合、その要求は拒否され（ステップ６１６）、プロセスはステップ６０８に継続する。
【００４２】
ＩＯＡメモリ及びアドレス範囲が要求側ＯＳイメージに割当てられると、ハイパバイザは、Ｉ／ＯバスＤＭＡ範囲が、そのＩＯＡに割当てられる範囲内にあるか否かを判断する（ステップ６１２）。Ｉ／ＯバスＤＭＡ範囲がそのＩＯＡに割当てられる範囲内にない場合、要求は拒否され（ステップ６１６）、プロセスはステップ６０８に継続する。Ｉ／ＯバスＤＭＡ範囲がそのＩＯＡに割当てられる範囲内にある場合には、要求されたＴＣＥマッピングが実行され、プロセスがステップ６０８に継続する。
【００４３】
前述の実施例では、各ＩＯＡに対して１つの端末ブリッジが提供され、所与のＩＯＡがＤＭＡ操作を実行するために、バスの制御を獲得するとき、端末ブリッジは要求されるアドレスを、端末ブリッジ内の範囲レジスタ機構内のレジスタのセットと比較する。このアプローチは、ＩＯＡと端末ブリッジとの間に、１対１の対応関係がある場合には十分であるが、ユーザがシステム・コストを削減するために、複数のＩＯＡを同一の端末ブリッジの下に配置したい場合には、問題がある。
【００４４】
複数のＩＯＡを１つの端末ブリッジの下に配置すると、範囲レジスタが各ＩＯＡに対して許可されるバス・アドレスを割当てない場合（段落３１の内容）、端末ブリッジは、どのＩＯＡがどのＬＰＡＲ区画に属するかがわからなくなり、更にそれらが異なるＬＰＡＲ区画内に存在する場合、各ＩＯＡにとって正当なバス・アドレス範囲を決定する方法がわからないといった問題がある。本発明はこの制限を回避し、複数のＩＯＡの間で端末ブリッジを共用することにより、廉価なコストのＬＰＡＲシステムを実現する。
【００４５】
図９に示されるように、更に本発明の別の実施例では、１つのＩＯＡにつき、範囲レジスタのセットを設け、ＩＯＡへのアービタからのグラント信号ラインを用いて、トランザクション時にバスの制御を有するＩＯＡを決定することによりこの問題を解決する。この実施例では、複数のＩＯＡ７００が単一の端末ブリッジ７０２に接続され、これがＰＣＩバス７０６を介して、ＰＣＩホスト・ブリッジ７０４に接続される。図９では１つの端末ブリッジだけが示されるが、図３の構成のように、２つ以上の端末ブリッジ７０２がＰＣＩホスト・ブリッジ７０４に接続されてもよい。ＰＣＩホスト・ブリッジ７０４は、メインＩ／Ｏバスに接続される。
【００４６】
端末ブリッジ７０２の制御論理は、ＰＣＩバス７１６へのアクセスを制御するアービタ７１４を含む。ＩＯＡ７００からのバス要求信号７１０がアービタ７１４に供給される。端末ブリッジはバス要求信号に応じて要求バス・アドレスが範囲レジスタのバス・アドレス範囲内か否かを調査し、アービタ７１４がバスを使用する権利を有するＩＯＡかどうかを決定する。ＩＯＡが範囲レジスタ内のバス・アドレスを要求している場合、アービタはグラント（grant）信号７１８を介して、そのＩＯＡに信号を送る。図５の範囲レジスタの典型的なテーブル５００を参照すると、これらの範囲レジスタを調査することにより、端末ブリッジ７０２は、グラント信号によりその特定のＩＯＡに割当てられるバス・アドレスの適切な範囲を使用できる。ＩＯＡがアービタからグラント信号を受信したが、ＩＯＡが使用しようとしているバス・アドレスが、選択された範囲レジスタにより示されるバス・アドレス範囲外にある場合、端末ブリッジはＩＯＡに信号を発しＩＯＡの操作を無効にし、ＩＯＡがアクセスを許可されないメモリをアクセスすることを防止する。
【００４７】
アービタが端末ブリッジの外部にあってもよく、この場合、ＩＯＡへのグラント・ラインが端末ブリッジに入力信号として持ち込まれなければならない。また、端末ブリッジがホスト・ブリッジの一部として実現されてもよい。
【００４８】
本発明は特定の実施例に関連して述べられてきたが、前述の説明は限定的なものとして捉えられるべきではない。当業者であれば、前述の説明から、ここで開示された実施例の様々な変更、並びに本発明の代替実施例が明らかとなろう。従って、こうした変更についても、本発明の趣旨及び範囲から逸れることなく、本発明に含まれるものとみなされる。また、本発明は完全機能型のデータ処理システムの状況において述べられてきたが、当業者であれば、本発明のプロセスが命令を保持するコンピュータ可読媒体の形態、及び様々な形態で配布され得ること、また本発明が、配布を実施するために使用される特定タイプの信号担持媒体に関わらず当てはまることが理解できよう。コンピュータ可読媒体の例には、フロッピー（Ｒ）ディスク、ハード・ディスク・ドライブ、ＲＡＭ及びＣＤ−ＲＯＭなどの記録型媒体、及びデジタル及びアナログ通信リンクなどの伝送型媒体が含まれる。
【００４９】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００５０】
（１）
（ａ）複数の入出力アダプタ（ＩＯＡ）と、複数のメモリ・ユニットとを割当テーブルによりオペレーティング・システム（ＯＳ）イメージごとに論理分割された論理分割データ処理システムであって、
（ｂ）前記割当テーブルに基づいて、前記ＯＳイメージが実行される複数の論理区画と、
（ｃ）前記割当テーブルに基づいて、各々が前記複数の論理区画の１つに割当てられる複数のオペレーティング・システム（ＯＳ）と、
（ｄ）前記割当テーブルに基づいて、各々が前記複数の論理区画の１つに割当てられる複数のメモリ・ユニットと、
（ｅ）Ｉ／Ｏバス（３１２）に接続されたＰＣＩホスト・ブリッジ（３１４）と、
（ｆ）前記ＰＣＩホスト・ブリッジに第１のＰＣＩバス（３１５，７０６）を介して接続された少なくとも１つの端末ブリッジと、
（ｇ）前記割当テーブルに基づいて、各々が前記複数の論理区画の異なる１つに割当てられ、前記端末ブリッジの一つに第２のＰＣＩバス（７１６）を介して接続される複数の入出力アダプタ（ＩＯＡ）と、
（ｈ）それぞれの前記ＩＯＡに対応するアクセス可能なＩＯバスＤＭＡアドレス範囲を割当てる範囲レジスタのテーブル（５００，７１２）と、前記ＩＯバスＤＭＡアドレス範囲レジスタに、アクセス可能な前記メモリ・ユニットのアドレス範囲を割当てる変換制御エントリ・テーブル（５５０）とを有し、前記テーブルに基づいて、前記複数のＩＯＡは、前記複数の論理区画の内の第１の論理区画に割当てられる第１のものと他の論理区画に割当てられる第２のものに分けられ、前記第１のＩＯＡと前記第１の論理区画に割当てられない前記メモリ・ユニットとの間のデータの伝送を阻止する手段とを備え、
（ｉ）第２のＰＣＩバスは、前記ＩＯＡが前記ＰＣＩバスにアクセス要求するアクセス要求信号線（７１０）、及び、各前記ＩＯＡ及び前記範囲レジスタに接続されるグラント信号線（７１８）を含み、
（ｊ）前記端末ブリッジは、前記ＰＣＩバスを使用する前記ＩＯＡの１つに決定するアービタ（７１４）を含み、前記アービタは、更に前記ＩＯＡからの前記ＰＣＩバスへのアクセス要求信号線（７１０）に接続され、
（ｋ）前記阻止する手段は、前記アービタが、前記ＩＯＡから前記ＰＣＩバスへのアクセス要求信号（７１０）を受けると、前記グラント信号線（７１８）を介して前記ＩＯＡに信号を送ると同時に要求バス・アドレスが前記範囲レジスタのＩＯバスＤＭＡアドレス範囲内にあるか否かを判断し前記要求されたバスＤＭＡアドレスが前記範囲外にある場合、ＩＯＡに操作を無効にする信号を送ることにより、前記第１のＩＯＡと前記第１の論理区画に割当てられない前記メモリ・ユニットとの間のデータの伝送を阻止することを特徴とする、
論理分割データ処理システム
（２）
前記端末ブリッジが範囲レジスタの複数のセットを有し、各範囲レジスタがそれぞれの前記ＩＯＡに関連付けられる、（１）記載の論理分割データ処理システム。
（３）
前記範囲レジスタがプログラマブルである、（２）記載の論理分割データ処理システム。
【図面の簡単な説明】
【図１】本発明が実施される分散データ処理システムを示す図である。
【図２】本発明に従うデータ処理システムのブロック図である。
【図３】本発明に従い、論理分割サーバとして実現されるデータ処理システムのブロック図である。
【図４】本発明が実施される論理分割プラットフォームのブロック図である。
【図５】本発明に従うＩ／ＯバスＤＭＡアドレス範囲テーブルを示す図である。
【図６】本発明に従う割当てテーブルを示す図である。
【図７】本発明に従うＴＣＥテーブルを示す図である。
【図８】本発明に従い、直接メモリ・アクセス（ＤＭＡ）の間に、あるＯＳイメージが別のＯＳイメージに割当てられたメモリから、データを送信またはフェッチすることを防止する典型的なプロセスを示すフローチャートである。
【図９】複数の入出力アダプタが、複数の範囲レジスタ・セットを有する単一の端末ブリッジによりサポートされる、本発明の別の実施例を示すブロック図である。
【符号の説明】
１００、２００  分散データ処理システム
１０２  ネットワーク
１０４  サーバ
１０８、１１０、１１２  クライアント
１０６  記憶ユニット
１１４、１１６、１１８  プリンタ
１５０、４８０  ハードウェア・システム・コンソール
２０２、３０１、３０２、３０３、３０４、４３２、４３４、４３６、４３８  プロセッサ
２０４  メイン・メモリ
２０６、３１５、３１８、３１９  ＰＣＩローカル・バス
２０８  ＰＣＩブリッジ
２１０  ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ
２１２  ＳＣＳＩホスト・バス・アダプタ
２１４  拡張バス・インタフェース
２１６  オーディオ・アダプタ
２１８  グラフィックス・アダプタ
２１９  オーディオ／ビデオ・アダプタ（Ａ／Ｖ）
２２０  マウス・アダプタ
２２２  モデム
２２６  ハード・ディスク・ドライブ
２２８  テープ・ドライブ
２３０  ＣＤ−ＲＯＭドライブ
２３２  デジタル・ビデオ・ディスク読出し専用メモリ・ドライブ（ＤＶＤ−ＲＯＭ）
３０６  システム・バス
３０８  メモリ制御装置／キャッシュ
３１０  Ｉ／Ｏバス・ブリッジ
３１４、３２２、３３０、３４０、７０４  周辺コンポーネント相互接続（ＰＣＩ）ホスト・ブリッジ
３１６、３１７、３２４、３２５、３３２、３３３、３４２、３４３、７０２  端末ブリッジ
３２０、３２１、３２８、３２９、３３６、３３７、３４６、３４７、４４８、４５０、４５２、４５４、４５６、４５８、４６０、４６２  Ｉ／Ｏアダプタ
３２３、３３１、３４１、７０６  ＰＣＩバス
３４８  メモリ・マップド・グラフィックス・アダプタ
３５０  ハード・ディスク
３６０、３６１、３６２、３６３  ローカル・メモリ
４００  論理分割プラットフォーム
４０２、４０４、４０６、４０８  オペレーティング・システム
４１０  ハイパバイザ
４３０  分割ハードウェア
４４０、４４２、４４４、４４６  システム・メモリ・ユニット
４７０  記憶ユニット
５００  Ｉ／ＯバスＤＭＡアドレス範囲テーブル
５５０  変換制御エントリ（ＴＣＥ）テーブル
７１０  バス要求信号
７１２  範囲レジスタ
７１４  アービタ
７１８  グラント（grant）信号
【図１】
0004346850.tif 000002
【図２】
0004346850.tif 000003
【図３】
0004346850.tif 000004
【図４】
0004346850.tif 000005
【図５】
0004346850.tif 000006
【図６】
0004346850.tif 000007
【図７】
0004346850.tif 000008
【図８】
0004346850.tif 000009
【図９】
0004346850.tif 000010