(57)【要約】【課題】  柔軟なコンテキスト保存、復元を可能とし、データ処理効率を向上させた装置および方法を提供する。【解決手段】  コンテキスト保存対象となるハードウェアがバージョンアップや内部状態などによって保存復元対象の情報量が変化する場合であっても、任意のメモリ領域を副テープル上に確保して可変容量のハードウェア情報を格納する。本構成により、仕様変更によりコンテキスト保存データの増加が発生してもコンテキスト保存、復元の対象とすることができ、Ｉ／Ｏポートの内容、レジスタの内容、ローカルストレージ領域の内容などの多くのハードウェア情報をコンテキスト保存対象に設定可能であり、プロセススケジューリングの柔軟性が向上し、データ処理効率が高まる。【選択図】  図１１
2006099333.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)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１０８】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１０９】
以上、説明したように、本発明の構成によれば、コンテキストの保存、復元処理において、保存対象となるハードウェア情報がバージョンアップなどによって変更される場合であっても、ハードウェアの状態によって変化する場合であっても、任意のメモリ領域を副テープル上に確保して可変容量のハードウェア情報を格納する構成であるので、コンテキスト保存対象データの増加が想定されるハードウェア情報であっても、コンテキスト保存、復元の対象とすることができる。従って、ローカルストレージ領域の内容、Ｉ／Ｏポートの内容、レジスタの内容などの多くのハードウェア情報をコンテキスト保存対象に設定可能であり、プロセススケジューリングの柔軟性が向上し、データ処理効率を高めることが可能となる。
【図面の簡単な説明】
【０１１０】
【図１】タイムシェアリングによる論理プロセッサと物理プロセッサとの対応付け処理およびコンテキスト保存、復元処理について説明する図である。
【図２】タイムシェアリングによる論理プロセッサと物理プロセッサとの対応付け処理およびコンテキスト保存、復元処理について説明する図である。
【図３】コンテキスト保存、復元処理における問題点について説明する図である。
【図４】コンテキスト保存、復元処理における問題点について説明する図である。
【図５】コンテキスト保存、復元処理における問題点について説明する図である。
【図６】本発明の情報処理装置の構成例を示す図である。
【図７】プロセッサモジュールの構成例を示す図である。
【図８】本発明の情報処理装置のオペレーションシステム構成を説明する図である。
【図９】論理プロセッサと物理プロセッサとの対応付け処理について説明する図である。
【図１０】本発明におけるコンテキストテーブルのフォーマットおよびコンテキスト保存構成について説明する図である。
【図１１】本発明におけるコンテキストテーブルのフォーマットについて説明する図である。
【図１２】コンテキスト保存、復元を実行する制御ＯＳの機能構成を説明するプロック図である。
【図１３】コンテキスト保存処理のシーケンスを説明するフロー図である。
【図１４】コンテキスト復元処理のシーケンスを説明するフロー図である。
【符号の説明】
【０１１１】
１０  メモリ
１１  コンテキストテーブル
２０  レジスタ
３０  コンテキストテーブルフォーマット
３１〜３６  ハードウェア情報
４０  バージョンアップ前コンテキストテーブルフォーマット
４１  バージョンアップ後コンテキストテーブルフォーマット
５０  コンテキストテーブルフォーマット
１０１  プロセッサモジュール
１０２  グラフィックエンジン
１０３  メインメモリ（ＤＲＡＭ）
１０４  ＲＯＭ
１０５  ブリッジ
１０６  コントローラ
１０７  メモリカード
１１１  ホストバス
１１２  外部バス
１１３  インタフェース
１２１  入力部
１２２  出力部
１２３  ＨＤＤ
１２４  ドライブ
１２５  接続ポート
１２６  通信部
１２７  リムーバブル記録媒体
１２８  外部接続機器
２００  プロセッサモジュール
２０１  メインプロセッサグループ
２０２〜２０ｎ  サブプロセッサグループ
３０１  制御ＯＳ
３０２，３０３  ゲストＯＳ
３０４  システム制御ＯＳ
３０５，３０６  ゲストＯＳアプリケーション
３０７  システム制御プログラム
４０１  メインプロセッサ
４１１〜４１４  物理サブプロセッサ
５１０  レジスタ
５１１  オフセット
５２１〜５２６  ハードウェア情報
５３０  コンテキストテーブル
５３１  アドレス情報格納部
５３２  サイズ情報格納部
５４０  コンテキストテーブル
５４１  アドレス情報格納部
５４２  サイズ情報格納部
６１０  主テーブル
６１１  アドレス情報格納部
６１２  固定容量ハードウェア情報格納部
６２０  副テーブル
６２１  サイズ情報格納部
６２２  可変容量ハードウェア情報格納部
７００  制御ＯＳ
７０１  コンテキスト管理部
７０２  データ構造解析部
７０３  スケジューラ
７１０  メモリ
７１１  コンテキストテーブル
７１２  ハードウェアスペックシート
７２１−１〜ｎ  ハードウェア
【図１】
2006099333.tif 000003
【図２】
2006099333.tif 000004
【図３】
2006099333.tif 000005
【図４】
2006099333.tif 000006
【図５】
2006099333.tif 000007
【図６】
2006099333.tif 000008
【図７】
2006099333.tif 000009
【図８】
2006099333.tif 000010
【図９】
2006099333.tif 000011
【図１０】
2006099333.tif 000012
【図１１】
2006099333.tif 000013
【図１２】
2006099333.tif 000014
【図１３】
2006099333.tif 000015
【図１４】
2006099333.tif 000016