(57)【要約】【課題】  改良されたコンテキスト保存構成によりデータ処理効率を向上させた装置および方法を提供する。【解決手段】  複数の論理プロセッサをタイムシェアリングによって物理プロセッサに対応付けてデータ処理を実行する構成において、物理プロセッサの非適用状態にある論理プロセッサ対応のコンテキストテーブルを、論理プロセッサの適用主体としての論理パーティションに対応する論理パーティションアドレス空間にマップして保存する処理を実行する。本構成により、論理プロセッサが物理プロセッサに割り当てられていない状況において、論理プロセッサのコンテキストの取得が可能となり、論理プロセッサに対するアクセス、プログラムロードなどの処理を物理プロセッサ割り当てタイミングを待機することなく実行可能となりデータ処理効率が向上する。【選択図】  図９
2006099332.tif 000002
【特許請求の範囲】
【請求項１】
複数の論理プロセッサをタイムシェアリングによって物理プロセッサに対応付けてデータ処理を実行する情報処理装置であり、
物理プロセッサが割り当てられない状態にある論理プロセッサ対応のコンテキストを、該論理プロセッサの適用主体としての論理パーティションに対応する論理パーティションアドレス空間にマップして保存する処理を実行するコンテキスト管理部を有することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、
複数の論理プロセッサをタイムシェアリングによって物理プロセッサに対応付ける処理を実行する制御ＯＳと、
論理プロセッサの適用主体としての論理パーティションを対応付けられたゲストＯＳとを有し、
前記制御ＯＳは、
ゲストＯＳから制御ＯＳに対するシステムコールに基づいて、該ゲストＯＳ対応の論理パーティションが適用する論理プロセッサに対応するコンテキストを、前記ゲストＯＳ対応の論理パーティションアドレス空間にマップして保存する処理を実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御ＯＳは、
ゲストＯＳから制御ＯＳに対するシステムコールに基づいて、前記ゲストＯＳ対応の論理パーティションが適用する論理プロセッサを物理プロセッサへの対応付け処理対象としてのタイムシェアリング処理対象から除外し、前記論理プロセッサ対応のコンテキストを、前記論理パーティションアドレス空間にマップして保存する処理を実行する構成であることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記制御ＯＳは、
論理プロセッサを物理プロセッサの割り付け対象とする活動状態と、
論理プロセッサを物理プロセッサの割り付け対象としない非活動状態と、
の２状態の切り替え処理を実行する構成であり、
ゲストＯＳから制御ＯＳに対するシステムコールに基づいて、該ゲストＯＳ対応の論理プロセッサを非活動状態に設定して、該論理プロセッサ対応のコンテキストを前記論理パーティションアドレス空間にマップして保存する処理を実行する構成であることを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記制御ＯＳは、
ゲストＯＳから制御ＯＳに対するシステムコールに基づいて、非活動状態に設定された前記ゲストＯＳ対応の論理プロセッサを活動状態に再設定して、該論理プロセッサを物理プロセッサの割り付け対象に戻す処理を実行する構成であることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記コンテキスト管理部は、
論理プロセッサ対応のコンテキストとして、論理プロセッサのレジスタ、Ｉ／Ｏポート、ローカルストレージを含むコンテキストの保存処理を実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
複数の論理プロセッサをタイムシェアリングによって物理プロセッサに対応付けてデータ処理を実行する情報処理装置におけるプロセス制御方法であり、
論理プロセッサを物理プロセッサの割り付け対象から除外する論理プロセッサスケジューリングステップと、
物理プロセッサの割り付け対象から除外した物理プロセッサ対応のコンテキストを、該論理プロセッサの適用主体としての論理パーティションに対応する論理パーティションアドレス空間にマップして保存する処理を実行するコンテキスト保存ステップと、
を有することを特徴とするプロセス制御方法。
【請求項８】
前記プロセス制御方法は、さらに、
ゲストＯＳから制御ＯＳに対するシステムコール出力ステップを有し、
前記論理プロセッサスケジューリングステップは、
前記システムコールに基づいて、論理プロセッサを物理プロセッサの割り付け対象から除外する処理を実行し、
前記コンテキスト保存ステップは、
前記システムコールに基づいて、ゲストＯＳ対応の論理パーティションが適用する論理プロセッサに対応するコンテキストを、前記ゲストＯＳ対応の論理パーティションアドレス空間にマップして保存する処理を実行することを特徴とする請求項７に記載のプロセス制御方法。
【請求項９】
前記制御ＯＳは、
論理プロセッサを物理プロセッサの割り付け対象とする活動状態と、
論理プロセッサを物理プロセッサの割り付け対象としない非活動状態と、
の２状態の切り替え処理を実行し、
ゲストＯＳから制御ＯＳに対するシステムコールに基づいて、該ゲストＯＳ対応の論理プロセッサを非活動状態に設定して、該論理プロセッサ対応のコンテキストを前記論理パーティションアドレス空間にマップして保存する処理を実行することを特徴とする請求項８に記載のプロセス制御方法。
【請求項１０】
前記制御ＯＳは、さらに、
ゲストＯＳから制御ＯＳに対するシステムコールに基づいて、非活動状態に設定された前記ゲストＯＳ対応の論理プロセッサを活動状態に再設定して、該論理プロセッサを物理プロセッサの割り付け対象に戻す処理を実行することを特徴とする請求項９に記載のプロセス制御方法。
【請求項１１】
複数の論理プロセッサをタイムシェアリングによって物理プロセッサに対応付けてデータ処理を行なう構成においてプロセス制御処理を実行するコンピュータ・プログラムであり、
論理プロセッサを物理プロセッサの割り付け対象から除外する論理プロセッサスケジューリングステップと、
物理プロセッサの割り付け対象から除外した物理プロセッサ対応のコンテキストを、該論理プロセッサの適用主体としての論理パーティションに対応する論理パーティションアドレス空間にマップして保存する処理を実行するコンテキスト保存ステップと、
を有することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プロセス制御方法、並びにコンピュータ・プログラムに関する。さらに詳細には、複数の論理プロセッサが情報処理装置中のリソースを共有して各種のデータ処理を実行する構成において、論理プロセッサ対応のリソースに対するアクセス性を向上させ、効率的なデータ処理を実現する情報処理装置、プロセス制御方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
１つのシステム内に複数のオペレーティングシステム（ＯＳ）を搭載したマルチＯＳシステムにおいては、各ＯＳはそれぞれ異なるプロセスが実行可能であり、システムで共通のハードウェア、すなわちＣＰＵやメモリ等を時系列に順次切り替えて利用した処理が行なわれる。
【０００３】
複数ＯＳの各々の実行プロセス（タスク）のスケジューリングは、例えばパーティション管理ソフトウェアによって実行される。１つのシステムにＯＳ（α）とＯＳ（β）の２つのオペレーティングシステムが並存する場合、ＯＳ（α）の処理をパーティションＡとし、ＯＳ（β）の処理をパーティションＢとすると、パーティション管理ソフトウェアは、パーティションＡとパーティションＢの実行スケジュールを決定し、決定したスケジュールに基づいて、ハードウェア資源を割り当てて各ＯＳにおける処理を実行する。
【０００４】
マルチＯＳ型のシステムにおけるタスク管理を開示した従来技術として、例えば、特許文献１がある。特許文献１には、複数のＯＳの各々において実行されるタスク管理において、緊急性の高い処理を優先的に処理させるためのタスクスケジューリング手法を開示している。
【０００５】
前述したように、各種のデータ処理の実行主体はパーティションとして設定される。具体的には、システム内の資源分配を受ける主体としての論理パーティションが設定され、論理パーティションに対して、物理プロセッサユニットの使用時間や、仮想アドレス空間、さらにメモリ空間などの様々なリソースが配分され、配分されたリソースを適用した処理が実行される。論理パーティションには、いずれかの物理プロセッサに対応する論理的なプロセッサが設定され、論理プロセッサに基づくデータ処理が実行される。論理プロセッサと物理プロセッサは必ずしも１対１の関係にはなく、１つの論理プロセッサに複数の物理プロセッサが対応付けられる場合もあり、複数の論理プロセッサに１つの物理プロセッサが対応付けられる場合もある。
【０００６】
論理プロセッサを適用した複数の処理が並列に実行される場合、物理プロセッサは、複数の論理プロセッサによってスケジューリングされて使用されることになる。すなわち、複数の論理プロセッサは、タイムシェアリングによる物理プロセッサの使用を行なうことになる。
【０００７】
例えば図１に示すように、１つの物理プロセッサに対して１つの論理プロセッサが割り当てられている場合、すなわち、論理プロセッサ（ア）が物理プロセッサ（１）を占有して利用し、論理プロセッサ（イ）が物理プロセッサ（２）を占有して利用している場合の論理プロセッサ（ア）に対するアクセス処理について考察する。
【０００８】
例えば論理プロセッサ（ア）を設定された論理パーティションに対応するＯＳが、論理プロセッサ（ア）に対してアクセスしようとする。論理プロセッサ（ア）の占有している物理プロセッサ（１）が保持するローカルストレージ領域などは、占有して利用されている物理プロセッサ（１）に対応する領域として論理プロセッサ（ア）に対応する論理パーティションのアドレス空間にマップされているため、論理パーティションに対応するＯＳは、常に論理プロセッサ（ア）に対してアクセスすることが可能である。論理プロセッサ（ア）に対するアクセスにより、論理プロセッサ（ア）に対応するローカルストレージ情報などの各種の情報を取得することができる。
【０００９】
しかし、例えば図２に示すように、１つの物理プロセッサに対して複数の論理プロセッサが割り当てられ、タイムシェアリングによる処理を実行している場合は、図２に示すアクセスＡのように、論理プロセッサ（ア）が物理プロセッサ（１）を適用しているタイミングでは、上述の処理と同様、論理パーティションに対応するＯＳは、論理プロセッサ（ア）に対してアクセスすることが可能であるが、図２に示すアクセスＢのように、論理プロセッサ（ア）が物理プロセッサ（１）を適用していないタイミングでは、論理プロセッサ（ア）はいずれの物理プロセッサも適用しておらず、物理プロセッサに対するローカルストレージ領域などの情報は、論理プロセッサ（ア）に対応する論理パーティションのアドレス空間にマップされておらず、論理プロセッサ（ア）のアクセスは実行不可能となる。この場合、論理プロセッサ（ア）がタイムシェアリングによって物理プロセッサを利用する時間まで待機することが必要となり、データ処理の遅延の発生などの問題が生ずることになる。
【特許文献１】特開２００３−３４５６１２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、上述の問題点に鑑みてなされたものであり、複数の論理プロセッが情報処理装置中のリソースを共有して各種のデータ処理を実行する構成において、論理プロセッサ対応のリソースに対するアクセス性を向上させ、効率的なデータ処理を実現する情報処理装置、プロセス制御方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の第１の側面は、
複数の論理プロセッサをタイムシェアリングによって物理プロセッサに対応付けてデータ処理を実行する情報処理装置であり、
物理プロセッサが割り当てられない状態にある論理プロセッサ対応のコンテキストを、該論理プロセッサの適用主体としての論理パーティションに対応する論理パーティションアドレス空間にマップして保存する処理を実行するコンテキスト管理部を有することを特徴とする情報処理装置にある。
【００１２】
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、複数の論理プロセッサをタイムシェアリングによって物理プロセッサに対応付ける処理を実行する制御ＯＳと、論理プロセッサの適用主体としての論理パーティションを対応付けられたゲストＯＳとを有し、前記制御ＯＳは、ゲストＯＳから制御ＯＳに対するシステムコールに基づいて、該ゲストＯＳ対応の論理パーティションが適用する論理プロセッサに対応するコンテキストを、前記ゲストＯＳ対応の論理パーティションアドレス空間にマップして保存する処理を実行する構成であることを特徴とする。
【００１３】
さらに、本発明の情報処理装置の一実施態様において、前記制御ＯＳは、ゲストＯＳから制御ＯＳに対するシステムコールに基づいて、前記ゲストＯＳ対応の論理パーティションが適用する論理プロセッサを物理プロセッサへの対応付け処理対象としてのタイムシェアリング処理対象から除外し、前記論理プロセッサ対応のコンテキストを、前記論理パーティションアドレス空間にマップして保存する処理を実行する構成であることを特徴とする。
【００１４】
さらに、本発明の情報処理装置の一実施態様において、前記制御ＯＳは、論理プロセッサを物理プロセッサの割り付け対象とする活動状態と、論理プロセッサを物理プロセッサの割り付け対象としない非活動状態と、の２状態の切り替え処理を実行する構成であり、
ゲストＯＳから制御ＯＳに対するシステムコールに基づいて、該ゲストＯＳ対応の論理プロセッサを非活動状態に設定して、該論理プロセッサ対応のコンテキストを前記論理パーティションアドレス空間にマップして保存する処理を実行する構成であることを特徴とする。
【００１５】
さらに、本発明の情報処理装置の一実施態様において、前記制御ＯＳは、ゲストＯＳから制御ＯＳに対するシステムコールに基づいて、非活動状態に設定された前記ゲストＯＳ対応の論理プロセッサを活動状態に再設定して、該論理プロセッサを物理プロセッサの割り付け対象に戻す処理を実行する構成であることを特徴とする。
【００１６】
さらに、本発明の情報処理装置の一実施態様において、前記コンテキスト管理部は、論理プロセッサ対応のコンテキストとして、論理プロセッサのレジスタ、Ｉ／Ｏポート、ローカルストレージを含むコンテキストの保存処理を実行する構成であることを特徴とする。
【００１７】
さらに、本発明の第２の側面は、
複数の論理プロセッサをタイムシェアリングによって物理プロセッサに対応付けてデータ処理を実行する情報処理装置におけるプロセス制御方法であり、
論理プロセッサを物理プロセッサの割り付け対象から除外する論理プロセッサスケジューリングステップと、
物理プロセッサの割り付け対象から除外した物理プロセッサ対応のコンテキストを、該論理プロセッサの適用主体としての論理パーティションに対応する論理パーティションアドレス空間にマップして保存する処理を実行するコンテキスト保存ステップと、
を有することを特徴とするプロセス制御方法にある。
【００１８】
さらに、本発明のプロセス制御方法の一実施態様において、前記プロセス制御方法は、さらに、ゲストＯＳから制御ＯＳに対するシステムコール出力ステップを有し、前記論理プロセッサスケジューリングステップは、前記システムコールに基づいて、論理プロセッサを物理プロセッサの割り付け対象から除外する処理を実行し、前記コンテキスト保存ステップは、前記システムコールに基づいて、ゲストＯＳ対応の論理パーティションが適用する論理プロセッサに対応するコンテキストを、前記ゲストＯＳ対応の論理パーティションアドレス空間にマップして保存する処理を実行することを特徴とする。
【００１９】
さらに、本発明のプロセス制御方法の一実施態様において、前記制御ＯＳは、論理プロセッサを物理プロセッサの割り付け対象とする活動状態と、論理プロセッサを物理プロセッサの割り付け対象としない非活動状態と、の２状態の切り替え処理を実行し、ゲストＯＳから制御ＯＳに対するシステムコールに基づいて、該ゲストＯＳ対応の論理プロセッサを非活動状態に設定して、該論理プロセッサ対応のコンテキストを前記論理パーティションアドレス空間にマップして保存する処理を実行することを特徴とする。
【００２０】
さらに、本発明のプロセス制御方法の一実施態様において、前記制御ＯＳは、さらに、ゲストＯＳから制御ＯＳに対するシステムコールに基づいて、非活動状態に設定された前記ゲストＯＳ対応の論理プロセッサを活動状態に再設定して、該論理プロセッサを物理プロセッサの割り付け対象に戻す処理を実行することを特徴とする。
【００２１】
さらに、本発明の第３の側面は、
複数の論理プロセッサをタイムシェアリングによって物理プロセッサに対応付けてデータ処理を行なう構成においてプロセス制御処理を実行するコンピュータ・プログラムであり、
論理プロセッサを物理プロセッサの割り付け対象から除外する論理プロセッサスケジューリングステップと、
物理プロセッサの割り付け対象から除外した物理プロセッサ対応のコンテキストを、該論理プロセッサの適用主体としての論理パーティションに対応する論理パーティションアドレス空間にマップして保存する処理を実行するコンテキスト保存ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００２２】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００２３】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づく、より詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００２４】
本発明の構成によれば、複数の論理サブプロセッサをタイムシェアリングによって物理サブプロセッサに対応付けてデータ処理を実行する構成において、物理サブプロセッサの割り当て対象になっていない論理サブプロセッサのコンテキストを、論理サブプロセッサの適用主体としての論理パーティションに対応する論理パーティションアドレス空間にマップして保存する処理を実行する構成としたので、論理サブプロセッサが物理サブプロセッサに割り当てられていない状況において、該論理サブプロセッサのコンテキストの取得が可能となり、論理サブプロセッサに対するアクセス、プログラムロードなどの処理を、論理サブプロセッサが物理サブプロセッサへ割り当てられるタイミングを待機することなく実行することが可能となり、データ処理効率を飛躍的に向上させることが可能となる。
【００２５】
さらに、本発明の構成によれば、コンテキストテーブルには、レジスタの内容の他に、従来のコンテキストテーブルには含まれない、例えばローカルストレージ領域、Ｉ／Ｏポートの内容なども併せて格納する構成としたので、ゲストＯＳは、物理サブプロセッサの使用状態にない非活動状態に設定されている論理サブプロセッサに対応する各種の状態情報として、レジスタの内容、ローカルストレージの内容、Ｉ／Ｏポートの内容を参照し、これらの情報に従ったリソースアクセスによるデータ処理を実行することが可能となり、データ処理効率が向上する。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照しながら、本発明の情報処理装置、プロセス制御方法、並びにコンピュータ・プログラムの詳細について説明する。
【００２７】
まず、図３を参照して、本発明の情報処理装置のハードウェア構成例について説明する。プロセッサモジュール１０１は、複数のプロセッサ（Processing Unit)から構成されたモジュールであり、ＲＯＭ(Read Only Memory)１０４、ＨＤＤ１２３等に記憶されているプログラムに従って、オペレーティングシステム（ＯＳ：Operating System)、ＯＳ対応のアプリケーション・プログラムなど、各種プログラムに従ったデータ処理を実行する。プロセッサモジュール１０１の詳細については、さらに、後段で、図４を参照して説明する。
【００２８】
グラフィックエンジン１０２は、プロセッサモジュール１０１から入力される指示に従って、出力部１２２を構成する表示デバイスに画面出力するためのデータ生成、例えば３Ｄグラフィック描画処理を実行する。メインメモリ（ＤＲＡＭ）１０３には、プロセッサモジュール１０１において実行するプログラムやその実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス１１１により相互に接続されている。
【００２９】
ホストバス１１１は、ブリッジ１０５を介して、ＰＣＩ(Peripheral Component Interconnect/Interface)バスなどの外部バス１１２に接続されている。ブリッジ１０５は、ホストバス１１１、外部バス１１２間、およびコントローラ１０６、メモリカード１０７、その他のデバイスとのデータ入出力制御を実行する。
【００３０】
入力部１２１は、キーボード、ポインティングデバイスなどのユーザにより操作される入力デバイスからの入力情報を入力する。出力部１２２は、液晶表示装置やＣＲＴ（Cathode Ray Tube）などの画像出力部とスピーカ等からなる音声出力部から構成される。
【００３１】
ＨＤＤ（Hard Disk Drive）１２３は、ハードディスクを内蔵し、ハードディスクを駆動し、プロセッサモジュール１０１によって実行するプログラムや情報を記録または再生させる。
【００３２】
ドライブ１２４は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体１２７に記録されているデータまたはプログラムを読み出して、そのデータまたはプログラムを、インタフェース１１３、外部バス１１２、ブリッジ１０５、およびホストバス１１１を介して接続されているメインメモリ（ＤＲＡＭ）１０３に供給する。
【００３３】
接続ポート１２５は、外部接続機器１２８を接続するポートであり、ＵＳＢ，ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１２５は、インタフェース１３、外部バス１１２、ブリッジ１０５、およびホストバス１１１を介してプロセッサモジュール１０１等に接続されている。通信部１２６は、ネットワークに接続され、プロセッサモジュール１０１や、ＨＤＤ１２３等から提供されるデータの送信、外部からのデータ受信を実行する。
【００３４】
次に、プロセッサモジュールの構成例について、図４を参照して説明する。図４に示すように、プロセッサモジュール２００は、複数のメインプロセッサからなるメインプロセッサグループ２０１、複数のサブプロセッサからなる複数のサブプロセッサグループ２０２〜２０ｎによって構成されている。それぞれにメモリコントローラ、２次キャッシュが設けられている。各プロセッサグループ２０１〜２０ｎの各々は例えば８つのプロセッサユニットを有し、クロスバスアーキテクチャ、あるいはパケット交換式ネットワークなどによって接続されている。メインプロセッサグループ２０１のメインプロセッサの指示のもとに、複数のサブプロセッサグループ２０２〜２０ｎの１以上のサブプロセッサが選択され、所定のプログラムが実行される。
【００３５】
なお、本発明の装置は複数の物理サブプロセッサを持ち、ソフトウェアが物理サブプロセッサをタイムシェアリングで多重化し、論理プロセッサをＯＳに提供する。サブプロセッサを制御する制御ＯＳはメインプロセッサ上で動作する。なお、本発明の方式はメイン-サブプロセッサのように主従関係がある装置でなくても応用でき、メイン-サブプロセッサのように主従関係にないマルチプロセッサマシンにおいても適用可能である。
【００３６】
各プロセッサグループに設置されたメモリフローコントローラは、図３に示すメインメモリ１０３とのデータ入出力制御を実行し、２次キャッシュは、各プロセッサグループにおける処理用データの記憶領域として利用される。
【００３７】
次に、図５を参照して、本発明の情報処理装置におけるオペレーティングシステム（ＯＳ）構成を説明する。本発明の情報処理装置は複数のオペレーティングシステム（ＯＳ）が共存するマルチＯＳ構成を持つ。図５に示すように、論理的な階層構成を持つ複数のオペレーティングシステム（ＯＳ）を持つ。
【００３８】
図５に示すように、下位レイヤに制御ＯＳ３０１を有し、上位レイヤに複数のゲストＯＳ３０２，３０３、およびシステム制御ＯＳ３０４が設定される。制御ＯＳ３０１は、システム制御ＯＳ３０４とともに図３、図４を参照して説明したプロセッサモジュールにおいて実行する各プロセスの１つの実行単位としての論理パーティションを実現し、システム内のハードウェア資源（計算機資源としてのメインプロセッサ、サブプロセッサ、メモリ、デバイス等）を各論理パーティションに割り振る処理を実行する。
【００３９】
ゲストＯＳ３０２，３０３は、例えばゲームＯＳやＷｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）などの各種のＯＳであり、制御ＯＳ３０１の制御の下に動作するＯＳである。なお、図５には、ゲストＯＳ３０２，３０３の２つのゲストＯＳのみを示してあるが、ゲストＯＳは任意の数に設定することが可能である。
【００４０】
ゲストＯＳ３０２，３０３は、制御ＯＳ３０１およびシステム制御ＯＳ３０４によって設定された論理パーティション内で動作し、その論理パーティションに割り当てられたメインプロセッサ、サブプロセッサ、メモリ、デバイス等のハードウェア資源を適用して各種のデータ処理を実行する。
【００４１】
例えば、ゲストＯＳ（ａ）３０２は、制御ＯＳ３０１およびシステム制御ＯＳ３０４によって設定された論理パーティション２に割り当てられたメインプロセッサ、サブプロセッサ、メモリ、デバイス等のハードウェア資源を適用して、ゲストＯＳ（ａ）３０２対応のアプリケーション・プログラム３０５を実行する。また、ゲストＯＳ（ｂ）３０３は、論理パーティションｎに割り当てられたメインプロセッサ、サブプロセッサ、メモリ、デバイス等のハードウェア資源を適用して、ゲストＯＳ（ｂ）３０３対応のアプリケーション・プログラム３０６を実行する。制御ＯＳ３０１は、ゲストＯＳの実行に必要なインタフェースとしてゲストＯＳプログラミングインタフェースを提供する。
【００４２】
システム制御ＯＳ３０４は、論理パーティション管理情報を含むシステム制御プログラム３０７を生成し、システム制御プログラム３０７に基づくシステムの動作制御を制御ＯＳ３０１とともに実行する。システム制御プログラム３０７は、システム制御プログラム・プログラミングインタフェースを用いてシステムのポリシを制御するプログラムである。システム制御プログラム・プログラミングインタフェースは、制御ＯＳ３０１からシステム制御ＯＳ３０４に提供される。例えばリソース配分の上限値を設定するなど、プログラムによる柔軟なカスタマイズのための手段を提供するのがシステム制御プログラム３０７の役割である。
【００４３】
システム制御プログラム３０７はシステム制御プログラム・プログラミングインタフェースを用いてシステムの振る舞いを制御することができる。例えば、新しく論理パーティションを作成し、その論理パーティションで新しいゲストＯＳを起動することができる。複数のゲストＯＳが動作するシステムでは、それらのゲストＯＳはシステム制御プログラムにあらかじめプログラムされた順序で起動されることになる。また、ゲストＯＳから提出された資源割り当て要求を制御ＯＳ３０１が受理する前に検査し、システムのポリシに従って修正したり、要求そのものを拒否したりすることができる。これにより、特定のゲストＯＳだけが資源を独占することがないようにすることができる。このように、システムのポリシをプログラムとして実現したものがシステム制御プログラムである。
【００４４】
制御ＯＳ３０１はシステム制御ＯＳ３０４のために特別な論理パーティション（図では論理パーティション１）を割り当てる。制御ＯＳ３０１は、ハイパバイザモードで動作する。ゲストＯＳはスーパバイザモードで動作する。システム制御ＯＳ、アプリケーション・プログラムはプロブレムモード（ユーザモード）で動作する。
【００４５】
論理パーティションはシステム内の資源分配を受ける主体である。たとえばメインメモリ１０３（図３参照）はいくつかの領域へ分割され、それぞれの領域の使用権が論理パーティションに対して与えられる。論理パーティションに分配される資源の種別には以下のものがある。
ａ）物理プロセッサユニット使用時間
ｂ）仮想アドレス空間
ｃ）論理パーティション内で動作するプログラムがアクセスできるメモリ
ｄ）制御ＯＳが論理パーティションの管理のために用いるメモリ
ｅ）イベントポート
ｆ）デバイスの使用権
ｇ）キャッシュパーティション
ｈ）バス使用権
【００４６】
前述したように、ゲストＯＳは論理パーティションの中で動作する。ゲストＯＳは論理パーティションに割り当てられた資源を独占して各種のデータ処理を実行する。多くの場合、システム上で動作する個々のゲストＯＳ毎に１つの論理パーティションが作成される。各論理パーティションにはユニークな識別子が与えられる。システム制御ＯＳ３０４は、論理パーティション管理情報として生成するシステム制御プログラムに識別子を対応づけて管理する。
【００４７】
論理パーティションは、制御ＯＳ３０１およびシステム制御ＯＳ３０４によって生成される。生成直後の論理パーティションは何も資源を持たず、使用資源の制限も設定されていない。論理パーティションには活動状態と終了状態という２つの状態がある。生成直後の論理パーティションは活動状態にある。論理パーティション内で動作するゲストＯＳの要求に基づいて論理パーティションは終了状態に遷移し、論理パーティションに割り当てられている全ての論理プロセッサが停止する。
【００４８】
なお、論理プロセッサは、論理パーティションに割り当てられる論理的なプロセッサであり、いずれかの物理プロセッサ、すなわち、図４に示すプロセッサグループ内のプロセッサに対応する。ただし、論理プロセッサと物理プロセッサは必ずしも１対１の関係にはなく、１つの論理プロセッサに複数の物理プロセッサが対応付けられる場合もあり、複数の論理プロセッサに１つの物理プロセッサが対応付けられる場合もある。論理プロセッサと物理プロセッサの対応付けは、制御ＯＳ３０１が決定する。
【００４９】
制御ＯＳ３０１は、各論理パーティションが使用する資源の量を制限する機能を備えている。ゲストＯＳ３０２，３０３がシステム制御ＯＳ３０４との通信を行うことなく割り当て／解放が行える資源については使用量の制限が可能となっている。
【００５０】
各論理パーティションは制御シグナルポートを備えている。このポートには論理パーティション間のデータ交換／共有に必要な様々な制御シグナルが到着する。制御シグナルの例を以下に挙げる。
ａ）論理パーティション間イベントポートの接続依頼
ｂ）論理パーティション間メッセージチャネルの接続依頼
ｃ）共有メモリ領域への接続依頼
【００５１】
各論理パーティションに到着した制御シグナルは制御シグナルポートでキューイングされる。キューの深さは、メモリ資源が許す範囲であれば、制限は無い。キューイングに必要なメモリ資源は制御シグナルを送った論理パーティションから確保される。このポートから制御シグナルを取り出すためには、ゲストＯＳプログラミングインタフェースを呼び出す。空の制御シグナルポートに制御シグナルが到着したときに、任意のイベントポートにイベントを送信することが可能である。イベントポートの指定はゲストＯＳプログラミングインタフェースを呼び出すことによって行える。
【００５２】
制御ＯＳは論理パーティションに対し、物理サブプロセッサを抽象化した論理サブプロセッサをリソース（計算機資源）として与える。前述したように物理サブプロセッサと論理サブプロセッサは一対一に対応付けされていない上、数が同じである必要もない。これを実現するために、制御ＯＳは必要に応じて一つの物理サブプロセッサを複数の論理サブプロセッサに対応付けることができるようになっている。
【００５３】
論理サブプロセッサの数が物理サブプロセッサの数より多い場合、制御ＯＳは物理サブプロセッサをタイムシェアリングして処理する。このため論理サブプロセッサは、時間の経過をともなって動作停止や動作再開を繰り返す可能性がある。ゲストＯＳはこれらの状態の変化を観測することができる。
【００５４】
図６を参照して、物理プロセッサと論理プロセッサとの対応について説明する。図６には１つのメインプロセッサ４０１と、物理サブプロセッサ４１１〜４１４の物理プロセッサ構成を示し、さらに、２つの物理サブプロセッサ、すなわち物理サブプロセッサ（２）と、物理サブプロセッサ（４）のタイムシェアリング処理によって動作する論理ザププロセッサのタイムシーケンスを示している。
【００５５】
図６の例では、物理サブプロセッサ（２）は、
時間ｔａ０〜ｔａ１：論理サブプロセッサ（ア）
時間ｔａ１〜ｔａ２：論理サブプロセッサ（イ）
時間ｔａ２〜ｔａ３：論理サブプロセッサ（ウ）
時間ｔａ３〜      ：論理サブプロセッサ（ア）
のタイムシェアリングによって各論理サブプロセッサが割り当てられ、それぞれの割り当て時間において、各論理サブプロセッサは物理サブプロセッサ（２）を適用した処理を実行している。
【００５６】
また、物理サブプロセッサ（４）は、
時間ｔｂ０〜ｔｂ１：論理サブプロセッサ（イ）
時間ｔｂ１〜ｔｂ２：論理サブプロセッサ（ウ）
時間ｔｂ２〜ｔｂ３：論理サブプロセッサ（ア）
時間ｔｂ３〜      ：論理サブプロセッサ（イ）
のタイムシェアリングによって各論理サブプロセッサが割り当てられ、それぞれの割り当て時間において、各論理サブプロセッサは物理サブプロセッサ（４）を適用した処理を実行している。
【００５７】
各論理サブプロセッサがタイムシェアリングによって物理サブプロセッサを利用した処理を実行し、さらに次の割り当て期間において物理サブプロセッサを適用したデータ処理を再開するために、データ処理中断時のハードウェア状態等の状態情報を保持しておくことが必要となる。この状態情報には、図に示す各物理サブプロセッサに対応するローカルストレージの内容、Ｉ／Ｏポートの内容、レジスタの内容が含まれる。
【００５８】
論理サブプロセッサが物理サブプロセッサに割り当てられている期間は、その論理サブプロセッサに対応する論理パーティションアドレス空間内の領域に、論理サブプロセッサの状態を反映した物理サブプロセッサのＩ／Ｏポートの領域の一部とローカルストレージ領域がマップされることになり、他のプロセッサを介したアクセスができる。例えば論理サブプロセッサの対応付けられた論理パーティションの設定されたゲストＯＳが他のプロセッサを介してアクセスすることができる。
【００５９】
しかし、論理サブプロセッサが物理サブプロセッサに割り当てられていない期間は、その論理サブプロセッサに対応する論理パーティションアドレス空間内の領域に、論理サブプロセッサの状態を反映した物理サブプロセッサのＩ／Ｏポートの領域とローカルストレージ領域がマップされていないため、先に図２を参照して説明したように一般的には論理サブプロセッサへのアクセスができなくなる。しかし、本発明では、論理プロセッサが物理プロセッサを利用していない期間において論理プロセッサへのアクセスを実現するため、Ｉ／Ｏポートの領域とローカルストレージ領域情報を含むコンテキストテーブルを他プロセッサからの参照可能な状態に保持する構成としている。
【００６０】
以下、このコンテキスト保存構成の詳細について説明する。以下の説明において、論理サブプロセッサを利用したデータ処理を実行するのは、図５を参照して説明したゲストＯＳに割り当てられる論理パーティションである。論理パーティションに対応する論理サブプロセッサに対して、タイムシェアリングによる物理プロセッサの割り当ては制御ＯＳによって実行される。
【００６１】
論理サブプロセッサにはゲストＯＳによって制御される活動状態／非活動状態と、制御ＯＳによって制御される実行状態／実行可能状態がある。これらの組み合わせで、論理サブプロセッサには以下の３つの状態が存在することになる。
（ａ）活動状態＆実行可能状態
（ｂ）活動状態＆実行状態
（ｃ）非活動状態
【００６２】
活動状態と非活動状態の違いは、論理サブプロセッサが制御ＯＳによるタイムシェアリングの対象、すなわち物理サブプロセッサの割り当て対象になるかどうかの違いである。活動状態は、論理サブプロセッサがタイムシェアリングの対象になっている状態、すなわち物理プロセッサの割り当て対象になっている状態である。論理サブプロセッサが活動状態にある場合、制御ＯＳはタイムシェアリングした物理サブプロセッサを適宜その論理サブプロセッサに割り付ける。
【００６３】
非活動状態は論理サブプロセッサがタイムシェアリングの対象になっていない状態である。論理サブプロセッサがこの非活動状態にある場合、制御ＯＳは時分割した物理サブプロセッサをその論理サブプロセッサに割り付けない。しかし、この場合において、論理サブプロセッサのコンテキストはコンテキストテーブルに保持される。制御ＯＳがこのコンテキストを論理パーティションアドレス空間にマップすることで、他プロセッサからの非活動状態にある論理プロセッサに対するアクセスが可能となる。なお、ゲストＯＳは論理サブプロセッサの活動状態／非活動状態を制御することができる。
【００６４】
実行状態と実行可能状態の違いは、活動状態の論理サブプロセッサが物理サブプロセッサで実際に実行されているかどうかの違いである。論理サブプロセッサが物理サブプロセッサより多い場合、先に図２を参照して説明したように、論理サブプロセッサはタイムシェアリングされた物理サブプロセッサで実現されるので、論理サブプロセッサは常に物理サブプロセッサで実行されているわけではない。実行状態は、論理サブプロセッサが物理サブプロセッサで実際に実行されている瞬間の状態を指す。
【００６５】
一方、実行可能状態は、論理サブプロセッサが物理プロセッサの割り当て対象となっている（活動状態）が、実際に物理サブプロセッサで実行されていない瞬間の状態である。
【００６６】
これらの状態間の遷移、すなわち、実行状態と実行可能状態との遷移は、制御ＯＳが起こす論理サブプロセッサのコンテキストスイッチによって発生する。なお、ゲストＯＳは、論理サブプロセッサの実行状態／実行可能状態を知ることができる。
【００６７】
論理サブプロセッサが活動状態で実行状態であれば、論理パーティションアドレス空間内の領域に、論理サブプロセッサの状態を反映した物理サブプロセッサのＩ／Ｏポートの領域とローカルストレージ領域がマップされる。従って、論理サブプロセッサに対するアクセスが可能な状態である。
【００６８】
さらに、本発明の情報処理装置においては、論理サブプロセッサが非活動状態に移行する際に、制御ＯＳが論理サブプロセッサの状態情報としての論理サブプロセッサのコンテキストを保存し、コンテキストテーブルを論理サブプロセッサに対応するゲストＯＳの論理パーティションアドレス空間内の領域にマップする。この処理によって、ゲストＯＳは、自己の論理パーティションアドレス空間から非活動状態にある論理サブプロセッサのコンテキストテーブルのリソース情報を参照することが可能となり、リソース情報の読み取り、書き込み、更新などの処理を行なうことができる。
【００６９】
さらに、コンテキストテーブルには、レジスタの内容の他に、従来のコンテキストテーブルには含まれない、例えばローカルストレージの内容やＩ／Ｏポートの内容なども併せて格納する構成としている。この結果、ゲストＯＳは、物理プロセッサの使用状態にない非活動状態に設定されている論理プロセッサに対応するこれらの各種の状態情報に従ったリソースアクセスによるデータ処理を実行することが可能となり、データ処理効率が向上する。
【００７０】
図７を参照して、ゲストＯＳによる論理サブプロセッサ対応のリソースアクセス態様について説明する。ゲストＯＳは論理パーティションが設定され、論理パーティションには論理サブプロセッサが対応付けられている。リソースは、ゲストＯＳアクセス不可能リソース５０１と、ゲストＯＳアクセス可能リソース５０２に区分される。
【００７１】
ゲストＯＳ対応の論理パーティションに対応付けられた論理サブプロセッサが活動状態でありかつ実行状態である場合は、物理サブプロセッサ５１０によるデータ処理実行状態にあり、この状態では、ゲストＯＳアクセス不可能リソース５０１に含まれる汎用レジスタ５２１、Ｉ／Ｏポートの一部５２２、さらに、ゲストＯＳアクセス可能リソース５０２に含まれるＩ／Ｏポートの一部５２３、ローカルストレージ５２４、メインメモリ５２５を適用したデータ処理が実行される。
【００７２】
物理サブプロセッサによるデータ処理実行状態にある場合は、ゲストＯＳの論理パーティションアドレス空間には、Ｉ／Ｏポートの一部５２３領域やローカルストレージ５２４領域等がマップされており、ゲストＯＳは、これらのリソースに対してアクセスすることができる。
【００７３】
次に、論理サブプロセッサが非活動状態、すなわち、物理サブプロセッサの割り当て対象からはずれた状態に移行すると、論理サブプロセッサのメインメモリ５２５にあるコンテキストテーブル５３１に当該コンテキストが保存される。
【００７４】
メインメモリ５２５に保存される論理サブプロセッサのコンテキストテーブル５３１は、論理サブプロセッサに対応するゲストＯＳの論理パーティションアドレス空間内の領域にマップされるので、ゲストＯＳによってアクセス可能となる。
【００７５】
図８を参照して、論理サブプロセッサに対応するゲストＯＳの論理パーティションアドレス空間と、物理アドレス空間との対応について説明する。
【００７６】
図８には、論理サブプロセッサに対応するゲストＯＳの論理パーティションアドレス空間５６０と、物理アドレス空間５７０を示してある。物理アドレス空間５７０はメインメモリに相当する物理空間である。ゲストＯＳは、ゲストＯＳの論理パーティションアドレス空間領域にマップされた物理アドレス空間のみをアクセスできる。
【００７７】
ゲストＯＳの論理パーティション対応の論理サブプロセッサが、活動状態でありかつ実行状態ある場合、すなわち物理サブプロセッサによるデータ処理実行状態にある場合は、ゲストＯＳの論理パーティションアドレス空間５６０には、Ｉ／Ｏポートの一部の領域とローカルストレージ領域５６１がマップされており、ゲストＯＳは、これらのリソースに対してアクセスすることができる。
【００７８】
さらに、ゲストＯＳの論理パーティション対応の論理サブプロセッサが、非活動状態にある場合、すなわち物理サブプロセッサの割り当て対象から除外された状態にある場合は、ゲストＯＳの論理パーティションアドレス空間５６０には、前記Ｉ／Ｏポートの一部の領域とローカルストレージ領域に、さらに、前記Ｉ／Ｏポートに含まれない関連Ｉ／Ｏポートの領域とレジスタを加えたコンテキストテーブル５６２がマップされ、ゲストＯＳは、これらのリソースに対してアクセスすることができることになる。
【００７９】
図９を参照して、コンテキスト保存処理の詳細について説明する。図９には、コンテキスト保存処理を実行する制御ＯＳ６１０と、保存対象のコンテキスト対応の論理プロセッサによるデータ処理を実行する論理パーティションの設定されたゲストＯＳ６２０を示してある。
【００８０】
先に図８を参照して説明したように、コンテキストがゲストＯＳから参照可能な状態に保存されるのは、論理サブプロセッサが非活動状態に設定される場合である。すなわち論理サブプロセッサが物理サブプロセッサの割り当て対象から除外される場合である。
【００８１】
図９において、ゲストＯＳ６２０は、制御ＯＳ６１０のシステムコール処理部６１１に対して、コンテキストをゲストＯＳから参照可能な位置への保存処理を要求するシステムコールを出力する。制御ＯＳ６１０のシステムコール処理部６１１は、ゲストＯＳ６２０からのシステムコールを受領すると、論理プロセッサスケジューリング処理部６１２に対して、論理サブプロセッサのスケジューリング変更要求を出力し、さらにコンテキスト管理部に論理プロセッサに対応するコンテキスト保存を依頼する。
【００８２】
システムコール処理部６１１は、要求に応じて、論理サブプロセッサを活動状態から非活動状態に遷移させる。すなわち、ゲストＯＳ６２０に設定された論理パーティションに対応する論理サブプロセッサを物理サブプロセッサの割り当て対象から除外する処理を行なう。この処理によって、論理サブプロセッサは非活動状態に設定される。
【００８３】
さらに、論理プロセッサスケジューリング処理部６１２は、コンテキスト管理部６１３に非活動状態に遷移した論理サブプロセッサに対応するコンテキストの保存処理を依頼する。コンテキスト管理部６１３は、論理プロセッサスケジューリング処理部６１２によって論理サブプロセッサのコンテキストの保存/復元が依頼されると、コンテキストの保存/復元を実行する。また、この論理サブプロセッサが非活動状態に設定されたことを確認すると、コンテキストを保存したコンテキストテーブルを論理パーティションアドレス空間へマップするようにメインメモリ管理部６１４へ依頼を出す。保存するコンテキストには、論理プロセッサのローカルストレージの内容、Ｉ／Ｏポートの内容、レジスタの内容が含まれる。
【００８４】
メインメモリ管理部６１４は、物理アドレス空間としてのメインメモリに保存するコンテキストをゲストＯＳ６２０の論理パーティションアドレス空間領域にマップし、ゲストＯＳ６２０から参照可能な状態に設定する。メモリ管理部６１４は、ゲストＯＳ６２０に対して、ゲストＯＳ６２０の論理パーティションアドレス空間におけるコンテキストアクセス用アドレスを通知する。
【００８５】
ゲストＯＳは、通知されたアドレスに従って、コンテキストを参照することが可能となり、コンテキストに基づくリソース、すなわち先に説明したようにメインプロセッサから直接アクセスできるＩ／Ｏポートの領域とローカルストレージ領域に、さらに、レジスタの内容、メインプロセッサから直接アクセスできないＩ／Ｏポートの内容を取得することができ、これらのリソース情報の読み取り、書き込み処理が可能となる。
【００８６】
図１０を参照して、コンテキストの保存処理、および保存されたコンテキストを利用したリソースアクセス処理について説明する。
【００８７】
図１０に示す処理は、ゲストＯＳが自己の論理パーティションの活動状態にある論理プロセッサを、非活動状態に設定して論理パーティションアドレス空間領域にマップされたコンテキストに基づいてリソースアクセスを実行し、さらに、その後、論理サブプロセッサを活動状態に戻す処理シーケンスを示している。各ステップについて説明する。
【００８８】
ステップＳ１１０は、ゲストＯＳによる論理サブプロセッサのリソースアクセスの開始処理である。なお、このゲストＯＳには、論理パーティションが設定され、設定された論理パーティションに対応する論理サブプロセッサのリソースへのアクセスを行うものである。
【００８９】
ステップＳ１１０の処理は、図１０の右側に示すステップＳ１１１〜Ｓ１１３の処理によって構成される。まず、ステップＳ１１１において、ゲストＯＳは制御ＯＳに対してシステムコールを実行する。このシステムコールは、論理サブプロセッサを特定し、その論理サブプロセッサ対応のコンテキストをゲストＯＳから参照可能な位置へ保存する処理を要求するシステムコールである。
【００９０】
制御ＯＳは、ゲストＯＳからのシステムコール受領に応じて、ステップＳ１１２、Ｓ１１３の処理を実行する。なお、図１０において、太線枠で示すステップＳ１１２、Ｓ１１３、Ｓ１３２は制御ＯＳの処理に相当する。
【００９１】
制御ＯＳは、ステップＳ１１２において、ゲストＯＳから要求のあった論理サブプロセッサをタイムシェアリングの対象から除外する。すなわち物理サブプロセッサの割り当て対象から除外し、非活動状態に設定する。さらに、ステップＳ１１３において、論理サブプロセッサ対応のコンテキストの保存を実行する。保存されるコンテキストは、ゲストＯＳの論理パーティションアドレス空間領域にマップされ、ゲストＯＳから参照可能な状態に設定される。なお、保存するコンテキストには、Ｉ／Ｏポートの内容、ローカルストレージの内容、レジスタの内容が含まれる。
【００９２】
ステップＳ１２０において、ゲストＯＳは、自己の論理パーティションアドレス空間領域からコンテキストにアクセスし、コンテキスト情報の取得、書き換え処理などリソースアクセス処理を実行する。
【００９３】
ゲストＯＳによるリソースアクセスが終了すると、ゲストＯＳは、次に、ステップＳ１３０において、論理サブプロセッサのリソースアクセス完了処理を実行する。
【００９４】
ステップＳ１３０の処理は、図１０の右側に示すステップＳ１３１〜Ｓ１３２の処理によって構成される。まず、ステップＳ１３１において、ゲストＯＳは制御ＯＳに対してシステムコールを実行する。このシステムコールは、論理プロセッサを特定し、その論理プロセッサをタイムシェアリングの候補に設定する要求処理、すなわち非活動時様態から活動状態への状態遷移を要求するシステムコールである。
【００９５】
制御ＯＳは、ゲストＯＳからのシステムコールの受信に応じて、ステップＳ１３２において、ゲストＯＳから要求のあった論理サブプロセッサをタイムシェアリングの対象に戻す処理を実行する。すなわち物理サブプロセッサの割り当て対象に再設定し活動状態に設定する。
【００９６】
これらの処理によって、論理サブプロセッサは、再度、活動状態に設定されて物理プロセッサの割り当て対象となり、タイムシェアリングに対応するスケジュールに応じて物理サブプロセッサを利用したデータ処理が実行される。
【００９７】
このように、本発明においては、物理サブプロセッサを適用したデータ処理を実行していない論理サブプロセッサについて、そのコンテキストの参照を可能な構成としたので、論理サブプロセッサ対応のリソースアクセスを効率的に実行することができ、物理サブプロセッサの割り当てまでリソースアクセスを待機する必要がなく、効率的なデータ処理が実現される。
【００９８】
図１１、図１２を参照して、本発明を適用した場合の非活動状態にある論理サブプロセッサ対応のコンテキストを利用した処理例について説明する。
【００９９】
論理サブプロセッサを適用した複数の処理が並列に実行される場合、物理サブプロセッサは、複数の論理サブプロセッサによってスケジューリングされて使用される。すなわち、複数の論理サブプロセッサは、タイムシェアリングによる物理サブプロセッサの使用を行なうことになる。
【０１００】
図１１は、２つの物理サブプロセッサ（１）、物理サブプロセッサ（２）に対して複数の論理サブプロセッサ（ア）〜（エ）が割り当てられ、タイムシェアリングによる処理を実行している処理例を示している。ここで、あるゲストＯＳ対応の論理サブプロセッサ（ア）に対するアクセスを実行する場合、タイムシェアリングによって論理プロセッサ（ア）がいずれかの物理サブプロセッサ（１）または物理サブプロセッサ（２）に割り当てられ、データ処理が実行されている場合には、前述したように、Ｉ／Ｏポートの領域の一部やローカルストレージ領域が、ゲストＯＳ対応の論理パーティションアドレス空間にマップされた状態にあるので、論理サブプロセッサ（ア）およびそのリソースに対するアクセスが可能となる。しかし、タイムシェアリングによって論理サブプロセッサ（ア）がいずれの物理サブプロセッサ（１）、（２）にも割り当てられておらず、データ処理が実行されていない場合には、Ｉ／Ｏポートの領域の一部やローカルストレージ領域が、ゲストＯＳ対応の論理パーティションアドレス空間にマップされていない状態となる。
【０１０１】
ここで、本発明の構成では、ゲストＯＳから制御ＯＳに対するシステムコールによって、論理サブプロセッサ（ア）を非活動状態、すなわちタイムシェアリング対象から除外して、コンテキストを保存し、コンテキストテーブルをゲストＯＳ対応の論理パーティションアドレス空間にマップする構成とした。すなわち、図１１に示す論理サブプロセッサ（ア）７０１がゲストＯＳの参照可能なコンテキストを保持する状態となる。
【０１０２】
図１１では、時刻ｔ１〜ｔ２の間において、論理サブプロセッサ（ア）を非活動状態に設定され、論理サブプロセッサ（ア）のコンテキストがゲストＯＳ対応の論理パーティションアドレス空間にマップされ、ゲストＯＳから参照可能な状態に設定されていることを示している。時刻ｔ１において、ゲストＯＳから制御ＯＳに対するシステムコールが出力されて論理サブプロセッサ（ア）が活動状態から非活動状態に設定されるとともに、コンテキストがゲストＯＳ対応の論理パーティションアドレス空間にマップされる。また、時刻ｔ２において、ゲストＯＳから制御ＯＳに対するシステムコールが出力されて論理プロセッサ（ア）が非活動状態から活動状態に設定される。
【０１０３】
従来は、論理サブプロセッサが物理サブプロセッサに割り当てられていない期間は、論理サブプロセッサのコンテキストは参照可能ではなく、従って、ＯＳから論理サブプロセッサに対するアクセスはエラーとなってしまっていた。すなわち、論理サブプロセッサ（ア）が物理サブプロセッサ（１）または２に割り当てられる次のタイミングまで待機することが必要となっていた。本発明の構成では、論理サブプロセッサの物理サブプロセッサの割り当てタイミングを待機することなく、論理サブプロセッサに対するアクセスが可能となる。
【０１０４】
図１２は、論理サブプロセッサを非活動状態に設定し、コンテキスト参照可能な期間に、論理サブプロセッサに対してプログラムの転送、およびプログラム起動指示を与えて、次の物理サブプロセッサの割り当て時に物理サブプロセッサを適用したプログラムの実行を即座に行い得る構成例を示している。
【０１０５】
時刻ｔ１において、ゲストＯＳから制御ＯＳに対するシステムコールによって、論理サブプロセッサ（ア）を非活動状態、すなわちタイムシェアリング対象から除外して、コンテキストを保存し、コンテキストをゲストＯＳ対応の論理パーティションアドレス空間にマップする。図１２に示す時刻ｔ１〜ｔ２において、ゲストＯＳは、ゲストＯＳ対応の論理パーティションアドレス空間からコンテキストを参照、すなわち論理サブプロセッサ（ア）７０１にアクセスすることができる。
【０１０６】
ゲストＯＳは、時刻ｔ１〜ｔ２の間において、論理サブプロセッサ（ア）に対するデータ処理プログラムの転送処理を実行し、さらに、起動指示を出力する。具体的には、コンテキストテーブルに記録された論理サブプロセッサ（ア）のローカルストレージ領域に対するプログラムデータのロード処理などを実行することになる。これらの処理の終了後に時刻ｔ２において、ゲストＯＳは制御ＯＳに対して、システムコールを出力し、論理サブプロセッサ（ア）が非活動状態から活動状態に設定される。論理サブプロセッサ（ア）は次のタイムシェアリングによる物理サブプロセッサの使用時に、論理サブプロセッサ（ア）のローカルストレージ領域にロードされたプログラムを即座に実行することが可能となる。
【０１０７】
従来は、このような処理を実行しようとする場合、論理サブプロセッサが物理サブプロセッサに割り当てられていない期間は、論理サブプロセッサのコンテキストは参照可能ではなく、従って、論理サブプロセッサのローカルストレージ領域に対するアクセスはエラーとなってしまっていた。すなわち、論理サブプロセッサ（ア）が物理サブプロセッサ（１）または物理サブプロセッサ（２）に割り当てられる次のタイミングまでプログラムロード処理などは実行することできず、プログラムの実行タイミングが遅延してしまい、データ処理の効率性が落ちてしまうという欠点があったが、本発明の構成を適用することにより、データ処理効率を向上させることができる。
【０１０８】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【０１０９】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１１０】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
【０１１１】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１１２】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１１３】
以上、説明したように、本発明の構成によれば、複数の論理サブプロセッサをタイムシェアリングによって物理サブプロセッサに対応付けてデータ処理を実行する構成において、物理サブプロセッサの非適用状態にある論理サブプロセッサ対応のコンテキストを、論理サブプロセッサの適用主体としての論理パーティションに対応する論理パーティションアドレス空間にマップして保存する処理を実行する構成としたので、論理サブプロセッサが物理サブプロセッサに割り当てられていない状況において、該論理サブプロセッサのコンテキストの取得が可能となり、論理サブプロセッサに対するアクセス、プログラムロードなどの処理を、論理サブプロセッサが物理サブプロセッサへ割り当てられるタイミングを待機することなく実行することが可能となり、データ処理効率を飛躍的に向上させることが可能となる。
【０１１４】
さらに、本発明の構成によれば、コンテキストテーブルには、レジスタの内容の他に、従来のコンテキストテーブルには含まれない、例えばローカルストレージの内容やＩ／Ｏポートの内容なども併せて格納する構成としたので、ゲストＯＳは、物理サブプロセッサが割り当てられていない非活動状態に設定されている論理サブプロセッサに対応する各種の状態情報として、Ｉ／Ｏポートの内容、ローカルストレージの内容、レジスタの内容を参照し、これらの情報に従ったリソースアクセスによるデータ処理を実行することが可能となり、データ処理効率が向上する。
【図面の簡単な説明】
【０１１５】
【図１】タイムシェアリングによる論理プロセッサと物理プロセッサとの対応付け処理について説明する図である。
【図２】タイムシェアリングによる論理プロセッサと物理プロセッサとの対応付け処理について説明する図である。
【図３】本発明の情報処理装置の構成例を示す図である。
【図４】プロセッサモジュールの構成例を示す図である。
【図５】本発明の情報処理装置のオペレーションシステム構成を説明する図である。
【図６】論理プロセッサと物理プロセッサとの対応付け処理について説明する図である。
【図７】ゲストＯＳによって参照可能な領域、および本発明におけるコンテキストテーブルの設定例について説明する図である。
【図８】ゲストＯＳ対応の論理パーティションアドレス空間と、ゲストＯＳによって参照可能な情報について説明する図である。
【図９】本発明におけるゲストＯＳと制御ＯＳとにおいて実行する処理について説明する図である。
【図１０】本発明におけるゲストＯＳと制御ＯＳとにおいて実行する処理シーケンスについて説明するフロー図である。
【図１１】本発明を適用したタイムシェアリングによる論理プロセッサと物理プロセッサとの対応付けおよびコンテキスト設定処理について説明する図である。
【図１２】本発明を適用したタイムシェアリングによる論理プロセッサと物理プロセッサとの対応付けおよびコンテキスト設定処理、プログラムロード処理について説明する図である。
【符号の説明】
【０１１６】
１０１  プロセッサモジュール
１０２  グラフィックエンジン
１０３  メインメモリ（ＤＲＡＭ）
１０４  ＲＯＭ
１０５  ブリッジ
１０６  コントローラ
１０７  メモリカード
１１１  ホストバス
１１２  外部バス
１１３  インタフェース
１２１  入力部
１２２  出力部
１２３  ＨＤＤ
１２４  ドライブ
１２５  接続ポート
１２６  通信部
１２７  リムーバブル記録媒体
１２８  外部接続機器
２００  プロセッサモジュール
２０１  メインプロセッサグループ
２０２〜２０ｎ  サブプロセッサグループ
３０１  制御ＯＳ
３０２，３０３  ゲストＯＳ
３０４  システム制御ＯＳ
３０５，３０６  ゲストＯＳアプリケーション
３０７  システム制御プログラム
４０１  メインプロセッサ
４１１〜４１４  物理サブプロセッサ
５０１  ゲストＯＳアクセス不可能リソース
５０２  ゲストＯＳアクセス可能リソース
５１０  物理サブプロセッサ
５２１  レジスタ
５２２  メインプロセッサから直接アクセスできないＩ／Ｏポート
５２３  メインプロセッサから直接アクセスでるＩ／Ｏポート
５２４  ローカルストレージ
５２５  メインメモリ
５３１  コンテキストテーブル
５６０  ゲストＯＳ論理パーティションアドレス空間
５６１  ＭＭＩＯ＋ローカルストレージ領域
５６２  コンテキストテーブル
５７０  物理アドレス空間
６１０  制御ＯＳ
６１１  システムコール処理部
６１２  論理サブプロセッサスケジューリング処理部
６１３  コンテキスト管理部
６１４  メモリ管理部
６２０  ゲストＯＳ
７０１  論理サブプロセッサ（ア）
【図１】
2006099332.tif 000003
【図２】
2006099332.tif 000004
【図３】
2006099332.tif 000005
【図４】
2006099332.tif 000006
【図５】
2006099332.tif 000007
【図６】
2006099332.tif 000008
【図７】
2006099332.tif 000009
【図８】
2006099332.tif 000010
【図９】
2006099332.tif 000011
【図１０】
2006099332.tif 000012
【図１１】
2006099332.tif 000013
【図１２】
2006099332.tif 000014