(57)【要約】【課題】データ処理システムおよびそのシステムの複数の入出力アダプタ・ユニットを分離する方法を開示する。【解決手段】データ処理システムは、入出力アダプタ・ユニットに加えて、プロセッサのセットと、ホスト・ブリッジと、プロセッサのセットとホスト・ブリッジを接続するシステム・バスとを有する。入出力アダプタ・ユニットの各々はそれぞれの識別子をもち、プロセッサのセットが入出力アダプタ・ユニットの一または複数の識別子を含むコマンドをホスト・ブリッジに送る。好適な実施例では、これら識別子はハイパートランスポート定義のユニットＩＤであり、プロセッサのセットが発行するコマンドは入出力アダプタの一または複数のユニットＩＤを含むユニットＩＤフィールドを含む。【選択図】図１
2008102921.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサのセットと、
ホスト・ブリッジと、
前記プロセッサのセットを前記ホスト・ブリッジに接続するシステム・バスと、
前記ホスト・ブリッジに接続される複数の入出力アダプタ・ユニットで、入出力アダプタ・ユニットの各々がそれぞれの識別子をもつ、前記入出力アダプタ・ユニットとを有するデータ処理システムで、
前記プロセッサのセットが前記ホスト・ブリッジにコマンドを送る機能を含み、前記コマンドが前記入出力アダプタ・ユニットのセットを識別する一または複数の前記識別子を含む、データ処理システム。
【請求項２】
データ処理システムの複数の入出力アダプタ・ユニットを分離する方法で、前記データ処理システムがプロセッサのセットと、ホスト・ブリッジとを有し、前記方法が、
前記入出力アダプタ・ユニットの各々にそれぞれの識別子を割り当てるステップと、
前記プロセッサのセットを使って、指定されるコマンドを前記ホスト・ブリッジに送るステップで、前記コマンドが前記入出力アダプタ・ユニットのセットを識別する一または複数の識別子を含む、前記プロセッサのセットを使用するステップと、
前記ホスト・ブリッジを使って、前記コマンド内の前記一または複数の識別子に基づいて前記一または複数の入出力アダプタ・ユニットを分離するステップとを有する、方法。
【請求項３】
データ処理システムの複数の入出力アダプタ・ユニットを分離する方法ステップを実施するマシンにより実行可能な命令のプログラムを具現する、マシンによる読取可能なプログラムを記憶するプログラム記憶デバイスであって、
前記データ処理システムがプロセッサのセットとホスト・ブリッジを有し、前記方法ステップが、
前記入出力アダプタ・ユニットの各々にそれぞれの識別子を割り当てるステップと、
前記プロセッサのセットを使って、指定されるコマンドをホスト・ブリッジに送るステップで、前記コマンドが前記入出力アダプタ・ユニットのセットを識別する一または複数の識別子を含む、前記プロセッサのセットを使用するステップと、
前記ホスト・ブリッジを使って、前記コマンド内の一または複数の識別子に基づいて一または複数の前記入出力アダプタ・ユニットを分離するステップとを有する、
プログラム記憶デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にデータ処理に関し、より具体的にはデータ処理システム内の入出力アダプタのアドレス指定領域の分離に関する。さらに具体的には、本発明はハイパートランスポート環境で動作する論理区画化したデータ処理システム内の入出力アダプタのアドレス指定領域の分離に関する。
【背景技術】
【０００２】
ＬＰＡＲ（Ｌｏｇｉｃｌ  Ｐａｒｔｉｏｎｉｎｇ）データ処理システムでは、複数のオペレーティング・システムまたは単一オペレーティング・システムの複数のコピーが単一のデータ処理システムのプラットフォーム上で稼動する。データ処理システム内で実行する各オペレーティング・システムまたはオペレーティング・システムのコピーは別々の論理区画に割り当てられ、各区画にはプラットフォームのリソースのサブセットが重複することなく割り当てられる。このように、各オペレーティング・システムまたはオペレーティング・システムのコピーはプラットフォーム内の割り当て可能なリソースの異なる別々のセットを直接制御する。
【０００３】
ＬＰＡＲデータ処理システムの様々な区画に割り当てられるプラットフォームのリソースには、プロセッサまたはプロセッサのタイム・スライス、システム・メモリの領域、ＩＯＡ（ＩＯ  Ａｄａｐｔｅｒ）またはＩＯＡの一部分が含まれる。このように、システム・メモリの様々な領域および様々なＩＯＡもしくはＩＯＡの一部分はシステムの別々の区画に割り当てることができる。このような環境においては、プラットフォームはＩＯＡもしくはＩＯＡの一部分が割り当てられた区画もしくは複数の区画を適正に機能させるのに必要なすべての物理的メモリへのアクセスを取得できるメカニズムを備えると同時に、ＩＯＡもしくはＩＯＡの一部分に対応付けられた区画に割り当てられていない物理的なメモリへのアクセスを取得させないことが重要である。
【０００４】
ＬＰＡＲデータ処理システムにおいては、システムの電子デバイスを物理的な媒体を介して繋げる、およびワイヤレスで繋げる多様な通信技術を使用する。ある通信技術は対のデバイスをインターフェースし、別の通信技術は小規模のデバイス群をインターフェースし、さらに別の通信技術は大規模なデバイス群をインターフェースする。
【０００５】
比較的小規模のデバイス群を結合する比較的新しい通信技術がハイパートランスポート（ＨＴ）技術である。ＨＴ規格は、ＡＧＰ、ＰＣＩ、ＳＰＩ、１３９４、ＵＳＢ２．０、および１ギガビット・イーサーネットなどの現在のバス、並びにＡＧＰ８ｘ、ＩｎｆｉｎｉＢａｎｄ（商標）、ＰＣＩ−Ｘ、ＰＣＩ３．０、ＰＣＩｅ、および１０ギガビット・イーサーネットを始めとする次世代のバスとインターフェースできる高速で低レイテンシのプロトコルの定義を規定する。ＨＴインターコネクトは結合したデバイス間の高速なデータ・リンクを提供する。ＨＴ対応デバイスのほとんどは、ＨＴ対応デバイスをデイジーチェーン接続ができるように少なくとも１対のＨＴポートを含む。ＨＴチェーンまたはファブリックでは、各結合デバイスは適切なアドレッシングおよび制御を使って各他の結合デバイスと通信できる。ＨＴでチェーン接続できるデバイスの例には、特に、データ・ルータ、サーバ・コンピュータ、データ記憶デバイス、および他のコンピュータ周辺デバイスが含まれる。
【特許文献１】米国特許出願公開公報番号第２００６／００１０２７６号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このように、ＨＴは多くの重要な利点を提供する。しかし、論理区画化したデータ処理システムでハイパートランスポート接続Ｉ／Ｏブリッジを使うには、Ｉ／ＯアダプタのＤＭＡ要求および割込み要求を所有するＬＰＡＲに分離する方法が必要である。
【０００７】
重要なことに、あるＬＰＡＲはＩＯＡから別のＬＰＡＲに影響を与えうる。ＬＰＡＲがあると、ＯＳは信頼性のある通信を保証できない。例えば、あるＯＳがＩＯＡにコマンドとアドレスを送ると、そのＩＯＡはこれらアドレスを使ってＤＭＡを実行するであろう。ＯＳがＩＯＡに提供するアドレスをチェックするメカニズムがない。代わりに、ＢＡＲ／リミット（および後に、ＴＶＴ構造）が、ＩＯＡがホストに提示したときにアドレスを検証する。
【課題を解決するための手段】
【０００８】
本発明の目的は、Ｉ／ＯアダプタのＬＰＡＲ分離の方法およびシステムを提供することである。
【０００９】
本発明の別の目的は、ハイパートランスポート環境におけるＩ／ＯアダプタのＬＰＡＲ分離を提供することである。
【００１０】
本発明のさらに別の目的は、個々のＩ／ＯアダプタにユニットＩＤ（ハイパートランスポート定義）を割り当て、割り当てたユニットＩＤを使ってＩ／Ｏ  アダプタを所有するＬＰＡＲに分離することである。
【００１１】
上記および他の目標を、データ処理システムおよびそのシステムの複数の入出力アダプタ・ユニットを分離する方法で達成する。データ処理システムは、複数の入出力アダプタ・ユニットに加えて、プロセッサのセットと、ホスト・ブリッジと、プロセッサのセットとホスト・ブリッジとを接続するシステム・バスとを有する。入出力アダプタ・ユニットの各々はホスト・ブリッジに接続し、それぞれの識別子をもつ。プロセッサのセットはホスト・ブリッジにコマンドを送る機能を含み、前記コマンドは入出力アダプタ・ユニットのセットを識別する一または複数の識別子を含む。
【００１２】
好適な実施例では、これら識別子はハイパートランスポート定義のユニットＩＤである。また、好ましくは、プロセッサのセットが発行するコマンドは、前記入出力アダプタのセットを識別する一または複数のユニットＩＤを含むユニットＩＤフィールドを含む。ユニットＩＤ（ハイパートランスポート定義）を個々の入出力アダプタに割り当てることによって、ＤＭＡ要求および割込み要求を検証できる。プロセッサ側では、ＰＣＩ定義のリクエスタＩＤではなく、バス、デバイスおよび機能それぞれの値を含むユニットＩＤをプロセッサで妥当性を検証する。
【００１３】
本発明の別の利益および利点は、添付の図面を参照して述べられる、本発明の好適な実施例を明記して提示する以下の詳細な説明を考慮すると明らかになるであろう。
【発明を実施するための最良の形態】
【００１４】
ここで図を参照すると、図１は本発明を実施できるデータ処理システムのブロック図を示している。データ処理システム１００は、システム・バス１０６に接続した複数のプロセッサ１０１、１０２、１０３、および１０４を含む対称型マルチプロセッサ（ＳＭＰ）システムでよい。例えば、データ処理システム１００はネットワーク内にサーバとして実装される、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーション（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ）の製品であるＩＢＭ  ｅＳｅｒｖｅｒ（ＩＢＭは、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標）でよい。代わりに、単一プロセッサ・システムを採用してもよい。システム・バス１０６にはメモリ・コントローラ／キャッシュ１０８も接続して、複数のローカル・メモリ１６０〜１６３とのインターフェースを提供する。Ｉ／Ｏバス・ブリッジ１１０をシステム・バス１０６に接続して、Ｉ／Ｏバス１１２とのインターフェースを提供する。メモリ・コントローラ／キャッシュ１０８およびＩ／Ｏバス・ブリッジ１１０は図示するように一体化してもよい。
【００１５】
データ処理システム１００は論理区画化された（ＬＰＡＲ）データ処理システムであるが、本発明はＬＰＡＲシステムだけに限定されず、他のデータ処理システムにも実装できることは理解されるであろう。ＬＰＡＲデータ処理システム１００は同時に稼動する複数の異種オペレーティング・システム（または単一オペレーティング・システムの複数のコピー）を備える。これら複数のオペレーティング・システムの各々がその内部で実行する任意の数のソフトウェア・プログラムを備えることができる。データ処理システム１００は、様々なＰＣＩ入出力アダプタ（ＩＯＡ）１２０、１２１、１２２、１２３、および１２４、グラフィックス・アダプタ１４８、およびハードディスク・アダプタ１４９、またはその一部分が様々な論理区画に割り当てられるように論理区画される。この場合、グラフィックス・アダプタ１４８がディスプレイ・デバイス（図示せず）の接続を提供し、ハードディスク・アダプタ１４９がハードディスク１５０を制御する接続を提供する。
【００１６】
複数の区画は同じ物理的なプロセッサ内で稼動できる。このため、例えば、データ処理システム１００を３つの論理区画Ｐ１、Ｐ２、およびＰ３に分割する場合を考えてみる。ＰＣＩ  ＩＯＡ１２０〜１２４、グラフィックス・アダプタ１４８、ハードディスク・アダプタ１４９、ホスト・プロセッサ１０１〜１０４の各々、ローカル・メモリ１６０〜１６３からのメモリは、３つの区画の各々に割り当てられる。この例では、メモリ１６０〜１６３はデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）の形をとってもよい。ＤＩＭＭは通常ＤＩＭＭごとに区画に割り当てられない。代わりに、区画はプラットフォームから見たメモリ全体の一部をもらう。例えば、プロセッサ１０１、ローカル・メモリ１６０〜１６３からのメモリの一部、およびＰＣＩ  ＩＯＡ１２１、１２３および１２４を論理区画Ｐ１に割り当て、プロセッサ１０２〜１０３、ローカル・メモリ１６０〜１６３からのメモリの一部、およびＰＣＩ  ＩＯＡ１２０および１２２を論理区画Ｐ２に割り当て、プロセッサ１０４、ローカル・メモリ１６０〜１６３からのメモリの一部、グラフィックス・アダプタ１４８、およびハードディスク・アダプタ１４９を論理区画Ｐ３に割り当てる。
【００１７】
論理区画化されたデータ処理システム１００内で実行する各オペレーティング・システムは別々の論理区画に割り当てられる。このため、データ処理システム１００内で実行する各オペレーティング・システムはその論理区画内にあるＩＯＡのみにアクセスできる。例えば、アドバンスト・インタラクティブ・エグゼクティブ（ＡＩＸ（商標））オペレーティング・システムのあるインスタンスは区画Ｐ１内で実行し、ＡＩＸ（商標）オペレーティング・システムの第２インスタンス（コピー）は区画Ｐ２内で実行し、Ｌｉｎｕｘ（Ｌｉｎｕｓ  Ｔｏｒｖａｌｄｓの商標）またはＯＳ／４００（商標）オペレーティング・システムは論理区画Ｐ３内で動作することになろう。
【００１８】
周辺装置相互接続（ＰＣＩ）ホスト・ブリッジ（ＰＨＢ）１３０、１３１、１３２、および１３３はＩ／Ｏバス１１２に接続して、それぞれＰＣＩローカル・バス１４０、１４１、１４２、および１４３とのインターフェースを提供する。ＰＣＩ  ＩＯＡ１２０〜１２１は、スイッチとブリッジを有するＩ／Ｏファブリック１８０からＰＣＩローカル・バス１４０に接続する。同様に、ＰＣＩ  ＩＯＡ１２２はＩ／Ｏファブリック１８１からＰＣＩローカル・バス１４１に接続し、ＰＣＩ  ＩＯＡ１２３および１２４はＩ／Ｏファブリック１８２からＰＣＩローカル・バス１４２に接続し、グラフィックス・アダプタ１４８およびハードディスク・アダプタ１４９はＩ／Ｏファブリック１８３からＰＣＩローカル・バス１４３に接続する。Ｉ／Ｏファブリック１８０〜１８３はＰＣＩバス１４０〜１４３とのインターフェースを提供する。典型的なＰＣＩホスト・ブリッジは４から８個のＩＯＡ間をサポートする（例えば、アドイン・コネクタの拡張スロット）。各ＰＣＩ  ＩＯＡ１２０〜１２４はデータ処理システム１００と、例えばデータ処理システム１００のクライアントである他のネットワーク・コンピュータなどの入出力デバイスとのインターフェースを提供する。
【００１９】
ＰＣＩホスト・ブリッジ１３０はＰＣＩバス１４０をＩ／Ｏバス１１２に接続するためのインターフェースを提供する。このＰＣＩバス１４０はＰＣＩホスト・ブリッジ１３０をサービス・プロセッサ・メールボックス・インターフェースおよびＩＳＡバス・アクセス・パススルー・ロジック１９４とＩ／Ｏファブリック１８０にも接続する。サービス・プロセッサ・メールボックス・インターフェースおよびＩＳＡバス・アクセス・パススルー・ロジック１９４は、ＰＣＩ／ＩＳＡブリッジ１９３に向けられたＰＣＩアクセスを転送する。ＮＶＲＡＭ記憶装置１９２はＩＳＡバス１９６に接続する。サービス・プロセッサ１３５はサービス・プロセッサ・メールボックス・インターフェースおよびＩＳＡバス・アクセス・パススルー・ロジック１９４にそのローカルＰＣＩバス１９５から結合する。サービス・プロセッサ１３５は複数のＪＴＡＧ／Ｉ２Ｃバス１３４を介してプロセッサ１０１〜１０４にも接続する。ＪＴＡＧ／Ｉ２Ｃバス１３４は、ＪＴＡＧ／スキャン・バス（ＩＥＥＥ  １１４９．１を参照）とフィリップスＩ２Ｃバスの組み合わせである。しかし、代わりに、ＪＴＡＧ／Ｉ２Ｃバス１３４をフィリップスＩ２Ｃバスだけ、またはＪＴＡＧ／スキャン・バスだけに代えてもよい。ホスト・プロセッサ１０１、１０２、１０３、および１０４のＳＰ−ＡＴＴＮ信号はすべてまとめてサービス・プロセッサの割込み入力信号に接続する。サービス・プロセッサ１３５は独自のローカル・メモリ１９１を備え、ハードウェアＯＰパネル１９０にアクセスできる。
【００２０】
データ処理システム１００を最初に起動すると、サービス・プロセッサ１３５はＪＴＡＧ／Ｉ２Ｃバス１３４を使って、システム（ホスト）プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８、およびＩ／Ｏブリッジ１１０に問い合わせをする。このステップが完了すると、サービス・プロセッサ１３５はデータ処理システム１００のインベントリとトポロジーを把握することになる。サービス・プロセッサ１３５はホスト・プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８、およびＩ／Ｏブリッジ１１０への問い合わせによって見つけたすべてのエレメントに組み込み自己テスト（ＢＩＳＴ）、基本保証テスト（ＢＡＴ）、およびメモリ・テストも実行する。ＢＩＳＴ、ＢＡＴ、およびメモリ・テスト中に検出した障害のエラー情報はサービス・プロセッサ１３５が収集して、報告する。
【００２１】
ＢＩＳＴ、ＢＡＴ、およびメモリ・テスト中に障害があると分かったエレメントを取り除いた後もなおシステム・リソースの有意／有効な構成が可能なら、データ処理システム１００は実行可能コードをローカル（ホスト）メモリ１６０〜１６３にロードする処理に進める。さらに、サービス・プロセッサ１３５はローカル・メモリ１６０〜１６３にロードしたコードを実行するためにホスト・プロセッサ１０１〜１０４を解放する。ホスト・プロセッサ１０１〜１０４がデータ処理システム１００内の各オペレーティング・システムからコードを実行している間、サービス・プロセッサ１３５はモニタリングおよびエラー報告モードに入る。サービス・プロセッサ１３５がモニタリングするアイテムの種類は、例えば、冷却ファンの速度と動作、温度センサー、電源レギュレータ、並びにプロセッサ１０１〜１０４、ローカル・メモリ１６０〜１６３、およびＩ／Ｏブリッジ１１０が報告する回復可能エラーおよび回復不能エラーが含まれる。
【００２２】
サービス・プロセッサ１３５はデータ処理システム１００でモニタリングするすべてのアイテムに関係するエラー情報の保存と報告を担う。サービス・プロセッサ１３５はエラーの種類と定義される閾値に基づいて対策も講じる。例えば、サービス・プロセッサ１３５はプロセッサのキャッシュ・メモリに回復可能エラーが過剰にあることに気づくと、これがハード障害の前兆であると判断する。この判断に基づいて、サービス・プロセッサ１３５は現在稼動しているセッションおよび将来の初期プログラム・ロード（ＩＰＬ）中の設定解除のためにそのリソースにマークする。ＩＰＬは「ブート」または「ブートストラップ」と呼ばれることもある。
【００２３】
データ処理システム１００は様々な市販のコンピュータ・システムを使って実装できる。例えば、データ処理システム１００はインターナショナル・ビジネス・マシーンズ・コーポレーションから入手できるＩＢＭ  ｅＳｅｒｖｅｒ  ｉＳｅｒｉｅｓモデル８４０を使って実装できる。このようなシステムはＯＳ／４００（商標）オペレーティング・システムを使って論理区画化をサポートでき、ＯＳ／４００（商標）オペレーティング・システムもインターナショナル・ビジネス・マシーンズ・コーポレーションから入手できる。
【００２４】
当業者には、図１に図示するハードウェアは変えられることは認識できるであろう。例えば、図示するハードウェアに加えて、または図示するハードウェアの代わりに、光ディスク・ドライブおよびその種の他のものなど、他の周辺デバイスも使用できる。図示する例は本発明に関してアーキテクチャ上の制限を含意するものではない。
【００２５】
ここで図２を参照すると、本発明を実装できる例示的な論理区画化されたプラットフォームのブロック図が示されている。論理区画化されたプラットフォーム２００内のハードウェアは、例えば、図１のデータ処理システム１００として実装できる。論理区画化されたプラットフォーム２００は、区画化されたハードウェア２３０、オペレーティング・システム（独立ＯＳイメージ）２０２、２０４、２０６、２０８、および区画管理ファームウェア２１０を含む。オペレーティング・システム２０２、２０４、２０６、および２０８は、論理区画化されたプラットフォーム２００上で同時に稼動する単一オペレーティング・システムの複数のコピーまたは複数の異種オペレーティング・システムでよい。これらオペレーティング・システムは、ハイパーバイザなど、区画管理ファームウェアとインターフェースするように設計されたＯＳ／４００（商標）を使って実装できる。ＯＳ／４００（商標）はこれら図示する実施例では単なる例として使用する。ＡＩＸ（商標）およびＬｉｎｕｘ（商標）など、他の種類のオペレーティング・システムも特定の実装によっては使用することもできる。オペレーティング・システム２０２、２０４、２０６、および２０８は区画２０３、２０５、２０７、および２０９に位置する。ハイパーバイザ・ソフトウェアは区画管理ファームウェア２１０を実装するのに使えるソフトウェアの一例であり、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手できる。ファームウェアとはその内容を電力なしで保持するメモリ・チップ、例えば、読取専用メモリ（ＲＯＭ）、プログラム可能ＲＯＭ（ＰＲＯＭ）、消去可能・書き換え可能ＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能・書き換え可能ＲＯＭ（ＥＥＰＲＯＭ）、および不揮発性ランダム・アクセス・メモリ（不揮発性ＲＡＭ）などに格納される「ソフトウェア」である。
【００２６】
加えて、区画２０３、２０５、２０７、および２０９は区画ファームウェア２１１、２１３、２１５、および２１７も含む。区画ファームウェア２１１、２１３、２１５、および２１７は初期ブート・ストラップ・コード、ＩＥＥＥ−１２７５標準オープン・ファームウェア、およびランタイム抽象化ソフトウェア（ＲＴＡＳ）を使って実装でき、これはインターナショナル・ビジネス・マシーンズ・コーポレーションから入手できる。区画２０３、２０５、２０７、および２０９をインスタンス生成すると、ブート・ストラップ・コードのコピーがプラットフォーム・ファームウェア２１０によって区画２０３、２０５、２０７、および２０９にロードされる。その後、制御はブート・ストラップ・コードに移り、ブート・ストラップ・コードはさらにオープン・ファームウェアおよびＲＴＡＳをロードする。その後区画に関連付けられたまたは割り当てられたプロセッサが区画のメモリにディスパッチされて、区画ファームウェアを実行する。
【００２７】
区画化されたハードウェア２３０は複数のプロセッサ２３２〜２３８と、複数のシステム・メモリ・ユニット２４０〜２４６と、複数のＩＯＡ２４８〜２６２、と記憶ユニット２７０とを含む。プロセッサ２３２〜２３８、メモリ・ユニット２４０〜２４６、ＮＶＲＡＭ記憶装置２９８、およびＩＯＡ２４８〜２６２の各々、またはその一部分は論理区画化されたプラットフォーム２００内の複数の区画のうちの１つに割り当てることができ、区画の各々がオペレーティング・システム２０２、２０４、２０６、および２０８の１つに対応する。
【００２８】
区画管理ファームウェア（プラットフォーム・ファームウェア）２１０は区画２０３、２０５、２０７、および２０９に対して多数の機能とサービスを行い、論理区画化されたプラットフォーム２００の区画化を生成、強制する。区画管理ファームウェア２１０は基礎となるハードウェアと同一のファームウェア実装仮想マシンである。このため、区画管理ファームウェア２１０は論理区画化されたプラットフォーム２００のハードウェア・リソースを仮想化することによって、独立ＯＳイメージ２０２、２０４、２０６、および２０８を同時に実行できる。
【００２９】
サービス・プロセッサ２９０を使って、区画内のプラットフォームのエラー処理など、様々なサービスを提供できる。これらサービスはインターナショナル・ビジネス・マシーンズ・コーポレーションなどのベンダーにエラー報告を返すサービス・エージェントとしての役割も果たす。様々な区画の動作は、ハードウェア管理コンソール２８０などのハードウェア管理コンソールから制御できる。ハードウェア管理コンソール２８０は、システム・アドミニストレータが様々な区画へのリソースの再割り当てを始めとする様々な機能を行える個別のデータ処理システムである。
【００３０】
ＬＰＡＲ環境においては、ある区画内のリソースまたはプログラムが別の区画の動作に影響を与えることは許されない。また、便利にするために、リソースの割り当てはきめ細かくする必要がある。例えば、ある特定のＰＨＢ制御下のすべてのＩＯＡを同じ区画に割り当てるのは認められないことが多いが、これはそのために区画間にリソースを動的に移動する能力を含めシステムの構成能力を制限することになるからである。
【００３１】
したがって、個々のＩＯＡまたはＩＯＡの一部分などのリソースを別々の区画に割り当てできるようにすると同時に、割り当てたリソースが他の区画のリソースへのアクセスを取得することによるなど他の区画に影響を与えないようにするために、ＩＯＡをＩ／Ｏバスに接続するブリッジに何らかの機能性が必要である。
【００３２】
多数の当該機能性は当分野で周知であり、例えば、特許文献１に入出力アドレッシングを分離するいくつかの手順が記述されている。しかし、当該機能性はこれまで、前述したように比較的小規模のデバイス群を結合する通信技術であるハイパートランスポート技術を利用するデータ処理システムには利用できていなかった。
【００３３】
図３はＩ／Ｏ用のＬＰＡＲの論理図を示す。特に、図３の論理図において、プロセッサとメモリは３０２で示され、Ｉ／Ｏサブシステムは３０４で示される。前述したように論理区画化がプロセッサおよびメモリのリソースを、各々が独立オペレーティング・システムを稼動できる複数の独立システム・イメージ（ＬＰＡＲ）に割り当てる。各ＬＰＡＲは他のすべてのＬＰＡＲとは論理的に分離し、あるＬＰＡＲは別のＬＰＡＲのメモリに直接アクセスできない。ＩＯＡが生成するすべてのメモリ・アドレスは、認められたメモリ・アドレスにしかアクセスしないように検証および変換もしくは検証または変換しなければならない。
【００３４】
あるＬＰＡＲは別のＬＰＡＲのＩＯＡに直接アクセスできず、ＭＭＩＯ空間へのアクセスは４Ｋページ境界でＴＬＢメカニズムを介して制御する。また、あるＬＰＡＲはＩＯＡに割込みを別のＬＰＡＲに送らせることはできず、あるＬＰＡＲが所有するＩＯＡで生じるエラーが別のＬＰＡＲに影響を与えてはならない。ＬＰＡＲ間の通信は通常のＩＰＣ方法を使うか、またはハイパーバイザを使い、ＩＯＡ間の通信（ピア・トゥ・ピア）は認められない。
【００３５】
ハイパーバイザは特殊な高信頼性イメージであり、多数の重要な機能を行う。ハイパーバイザは全リソース（プロセッサ、メモリ、およびＩＯＡ）のＬＰＡＲへのアクセスを制御する。またハイパーバイザはグローバル・ロジック、マルチプレクサー、ファンアウト、スイッチ、リアルタイム・メモリ・アドレス・レジスタ、メモリ・アドレス変換テーブル等のすべてを制御する。
【００３６】
Ｉ／Ｏ動作はＬＰＡＲの代わりにハイパーバイザが行ってもよい。このためにはハイパーバイザのオーバーヘッド（ｈＣａｌｌ、データ・コピー、割込みルーティング）を要する。例えば、図３に示すように、ハイパーバイザ・イメージはＩＯＡｇを所有する。高パフォーマンスＩ／ＯはＩＯＡをＬＰＡＲに割り当てる。さらに、例えば図３に示すように、ＬＰＡＲ０はＩＯＡａおよびＩＯＡｂを所有し、ＬＰＡＲ１はＩＯＡｃを所有する。
【００３７】
図４は現在使用されているスロット識別の配列を示す。図４では、プロセッサとメモリは４０２で示され、Ｉ／Ｏハブは４０４で示され、一連のスイッチは４０６で示され、ＩＯＡ群は４０８で示されている。この配列では、各ＰＣＩスロットとそれに接続されるＩＯＡは単一のＬＰＡＲが所有する。スイッチはアドレス範囲（ＢＡＲ／リミット）に基づく分離ロジックを含む。図４に示す配列の場合、Ｉ／ＯハブとプロセッサはＩＯアダプタを分離しない。
【００３８】
図４は物理的なスロットを示す。対して、本発明は「スロットＩＤ」を使用する。図５は、図４と比較して、分離機能をプロセッサに移した配列を図示する。特に、図５では、プロセッサとメモリは５０２で示され、Ｉ／Ｏハブは５０４で示され、ＩＯＡ群は５０６で示される。図５に示すように、ＤＭＡアドレス変換および保護５１２、割込み制御５１４、ＤＭＡアドレス変換キャッシュ５１６、およびエラー状態制御５２０は、Ｉ／Ｏハブではなく、プロセッサで行う。しかし、ここでも、各ＰＣＩスロットとそれに接続されるＩＯＡは単一のＬＰＡＲが所有する。図５の配列には、ノース／サウス・ブリッジ内に最小限の分離ロジックを要する。
【００３９】
本ＴＶＥ（ＴＣＥ“Ｔｒａｎｓｌａｔｉｏｎ  Ｃｏｎｔｒｏｌ  Ｅｎｔｒｙ”妥当性検証テーブル）設計（ＤＭＡおよび割込み）の場合、ＰＣＩアドレス範囲をまだ主要な分離方法として使用する。より上位のビットのＰＣＩアドレスはＴＶＥのインデックスとして使用する。ＴＶＥのエントリは、要求するＩＯＡ「ｂｕｓ／ｄｅｖ／ｆｕｎｃ」値と比較できる「ｂｕｓ／ｄｅｖ／ｆｕｎｃ」フィールドを含む。ｂｕｓ／ｄｅｖ／ｆｕｎｃの比較が有効な場合、ＴＶＴのＴＣＥ基準アドレス・レジスタ（ＴＡＲ）を使用して、システム・メモリ（またはＴＣＥキャッシュ）内のＴＣＥを捜す。
【００４０】
本発明の好適な実施例によると、ＩＯＡは５ビットのハイパートランスポート・ユニットＩＤフィールドで識別する。図６はＨＴ環境におけるこのアクセス制御を図示している。図６の図では、プロセッサとメモリは６０２で示され、Ｉ／Ｏブリッジは６０４で示され、ＩＯＡ群は６０６で示されている。Ｉ／Ｏブリッジ６０４内の各ＰＣＩブリッジ６１０は１つのユニットＩＤ６１２をもち、ＰＣＩブリッジ制御下のすべてのＩＯＡは単一のＬＰＡＲが「所有」する。ユニットＩＤはＨＴ要求６１４に挿入し、ＰＣＩｅパケットのＲＥＱ  ＩＤはバス（８）、デバイス（５）機能（３）、ｂｕｓ／ｄｅｖ／ｆｕｎｃの１６ビットになる。また、ＰＣＩｅ要求６２２からのＲＥＱ  ＩＤ６２０はＰＣＩブリッジに格納し、ＰＣＩｅ完了時にＩＯＡに返す。
【００４１】
動作時、ＩＯＡはＰＣＩｅ要求６２２（ＤＭＡ読み出しまたは書き込み）を生成し、ＰＣＩブリッジはＲＥＱ  ＩＤを格納して、ＰＣＩｅ要求を満たすＨＴコマンドを生成する。それから、ＰＣＩブリッジは生成するＨＴ要求内のユニットＩＤを使い、プロセッサはＨＴ要求を受信して、アドレス６２４の上位ビットの一部を使って、ＴＶＴ（変換妥当性検証テーブル）６２６へのインデックスを付ける。各ＴＶＥ（変換妥当性検証エントリ）はユニットＩＤを含み、６３０でＴＶＥとＨＴ要求６１４からのユニットＩＤを比較する。これらユニットＩＤが等しい場合、テストは合格である。次に、プロセッサからＰＣＩブリッジにＨＴ応答を送り返す。ユニットＩＤは応答を適切なＰＣＩブリッジにルーティングし、ＰＣＩブリッジはＲＥＱ  ＩＤをＰＣＩｅ応答パケットに挿入する。
【００４２】
本発明、または本発明の側面は、本明細書に記載する方法の実装を可能にする特徴を有し、またコンピュータ・システムにロードするとき、これらの方法を実施できるコンピュータ・プログラムに具現できることに留意されたい。本状況においてコンピュータ・プログラム、ソフトウェア・プログラム、プログラム、またはソフトウェアとは、直接的に、あるいは（ａ）別の言語、コード、または表記法への変換および（ｂ）異なる具体的な形態に再生の後、もしくはそのいずれかの後に、情報処理能力をもつシステムに特定の機能を行わせることを意図した命令のセットのあらゆる言語のあらゆる表現、コード、または表記法を意味する。
【００４３】
本明細書に開示した発明は上記記載の目的を果たすのに十分に叶っていることは明らかであるが、当業者には多数の変更および実施例が考えられることは認識されるであろう、また添付の請求項は本発明の真の精神および範囲内になるようなすべての変更および実施例に適用することを意図する。
【図面の簡単な説明】
【００４４】
【図１】本発明を実装できるデータ処理システムのブロック図である。
【図２】本発明を実装できる例示的な論理区画化したプラットフォームのブロック図である。
【図３】Ｉ／Ｏ用ＬＰＡＲの論理図である。
【図４】本スロット識別の配列を図示する。
【図５】分離機能をプロセッサに移した構成を示す。
【図６】ハイパートランスポート環境のＤＭＡ／ＭＳＩアクセス制御を示す。
【図１】
2008102921.tif 000003
【図２】
2008102921.tif 000004
【図３】
2008102921.tif 000005
【図４】
2008102921.tif 000006
【図５】
2008102921.tif 000007
【図６】
2008102921.tif 000008