(57)【要約】【課題】仮想プロセッサの管理を容易に行うことができるマルチオペレーティングシステム制御方法を提供する。【解決手段】本発明に係るマルチオペレーティングシステム制御方法は、第１ＯＳ１２１と第２ＯＳ１２２とを、実プロセッサにより論理的に実現される複数の仮想プロセッサ１１３上で並列に実行するマルチオペレーティングシステム制御方法であって、第１ＯＳ１２１が使用す仮想プロセッサ１１３を静的に生成し、第２ＯＳが使用する仮想プロセッサ１１３を動的に生成する。【選択図】図１
2010277177.tif 000002
【特許請求の範囲】
【請求項１】
第１オペレーティングシステムと第２オペレーティングシステムとを、実プロセッサにより論理的に実現される複数の仮想プロセッサ上で並列に実行するマルチオペレーティングシステム制御方法であって、
前記第１オペレーティングシステムが使用する前記仮想プロセッサを静的に生成し、
前記第２オペレーティングシステムが使用する前記仮想プロセッサを動的に生成する
マルチオペレーティングシステム制御方法。
【請求項２】
前記第１オペレーティングシステムが使用する前記仮想プロセッサを前記第１オペレーティングシステムの起動時にのみ生成し、
前記第２オペレーティングシステムが使用する前記仮想プロセッサを前記第２オペレーティングシステムの起動後に生成及び削除する
請求項１記載のマルチオペレーティングシステム制御方法。
【請求項３】
前記第２オペレーティングシステムが使用する前記仮想プロセッサを前記第２オペレーティングシステムの起動時に生成するとともに、前記第２オペレーティングシステムの起動後に生成及び削除し、
前記第１オペレーティングシステム及び前記第２オペレーティングシステムの起動時に、前記第１オペレーティングシステムが使用する前記仮想プロセッサを生成した後、前記第２オペレーティングシステムが使用する前記仮想プロセッサを生成する
請求項２記載のマルチオペレーティングシステム制御方法。
【請求項４】
前記複数の仮想プロセッサに、当該仮想プロセッサが前記第１オペレーティングシステムに使用されるか、前記第２オペレーティングシステムに使用されるかを示す第１識別子を付与し、
同一の前記第１識別子を有する複数の仮想プロセッサに当該複数の仮想プロセッサの生成順に連番となり、かつ前記第１識別子間で独立した第２識別子を付与する
請求項３記載のマルチオペレーティングシステム制御方法。
【請求項５】
前記第２オペレーティングシステムがタスクの実行を開始する時に、当該タスクを実行する前記仮想プロセッサを新たに生成する
請求項２〜４のいずれか１項に記載のマルチオペレーティングシステム制御方法。
【請求項６】
前記第２オペレーティングシステムがタスクの実行を終了した時に、当該タスクを実行していた前記仮想プロセッサを削除する
請求項２〜５のいずれか１項に記載のマルチオペレーティングシステム制御方法。
【請求項７】
異なる前記第１識別子を有する前記仮想プロセッサに異なる割込みベクタを対応付けるとともに、同一の前記第１識別子を有する複数の仮想プロセッサに同一の割込みベクタを対応付ける
請求項４記載のマルチオペレーティングシステム制御方法。
【請求項８】
前記第１識別子と前記第２識別子との組に対して、それぞれ割込み要因を対応付け、
割込み要求が発生した時に、当該割込みの割込み要因に対応付けられた前記組で指定される仮想プロセッサに割込みを発行する
請求項４又は７記載のマルチオペレーティングシステム制御方法。
【請求項９】
前記割込み要求が発生した時に、当該割込みの割込み要因に対応付けられた前記組で指定される仮想プロセッサが動作中の場合にのみ、当該割込みを受理する
請求項８記載のマルチオペレーティングシステム制御方法。
【請求項１０】
前記割込み要求が発生した時に、当該割込みの割込み要因に対応付けられた前記組で指定される仮想プロセッサが動作中でない場合、当該仮想プロセッサの動作開始後に当該割込み要求に基づく割込み処理を開始する
請求項９記載のマルチオペレーティングシステム制御方法。
【請求項１１】
前記割込み要求に基づく割込み処理の実行中に、当該仮想プロセッサの動作割当期間が終了した場合、当該割込み処理を中断する
請求項９又は１０記載のマルチオペレーティングシステム制御方法。
【請求項１２】
第１オペレーティングシステムと第２オペレーティングシステムとを複数の仮想プロセッサ上で並列に実行するプロセッサシステムであって、
前記第１オペレーティングシステムが使用する前記仮想プロセッサを静的に生成し、
前記第２オペレーティングシステムが使用する前記仮想プロセッサを動的に生成する
プロセッサシステム。
【請求項１３】
請求項１記載の前記マルチオペレーティングシステム制御方法をコンピュータに実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチオペレーティングシステム制御方法及びプロセッサシステムに関し、特に、第１オペレーティングシステムと第２オペレーティングシステムとを複数の仮想プロセッサ上で並列に実行するマルチオペレーティングシステム制御方法に関する。
【背景技術】
【０００２】
近年、一つのプロセッサで、複数のオペレーティングシステム（以下、ＯＳ）を切り替えながら動作させるプロセッサシステムが実現されている（例えば、特許文献１及び特許文献２参照）。
【０００３】
一方で、高性能化を実現するプロセッサとしてマルチスレッドプロセッサが知られている。このマルチスレッドプロセッサは、複数の仮想プロセッサで複数のスレッドを同時に実行することにより、処理効率を向上できる。また、マルチスレッドプロセッサは、複数のスレッドの実行において、資源の共有が可能となるので、複数のプロセッサを独立に設ける場合に比べて、プロセッサの面積効率を向上できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３５４６６７８号公報
【特許文献２】特開２０００−７６０８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、上述したマルチスレッドプロセッサで複数のＯＳを実行しようとした場合、ＯＳごとに、仮想プロセッサを管理する必要が生じる。しかしながら、特許文献１及び特許文献２に記載のマルチオペレーティングシステムは、マルチスレッドプロセッサを用いたものではなく、このような仮想プロセッサの管理についてはなんら考慮されていない。
【０００６】
そこで、本発明は、仮想プロセッサの管理を容易に行うことができるマルチオペレーティングシステム制御方法及びプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明に係るマルチオペレーティングシステム制御方法は、第１オペレーティングシステムと第２オペレーティングシステムとを、実プロセッサにより論理的に実現される複数の仮想プロセッサ上で並列に実行するマルチオペレーティングシステム制御方法であって、前記第１オペレーティングシステムが使用する前記仮想プロセッサを静的に生成し、前記第２オペレーティングシステムが使用する前記仮想プロセッサを動的に生成する。
【０００８】
これによれば、第１オペレーティングシステムが使用する仮想プロセッサを固定的に使用できる。これにより、例えば、第１オペレーティングシステムが使用する仮想プロセッサの識別子を、マルチオペレーティングシステム上と、第１オペレーティングシステム上とで一致させることができる。よって、第１オペレーティングシステム上の仮想プロセッサの識別子と、マルチオペレーティングシステム上の仮想プロセッサの識別子とを変換する処理が必要なくなる。これにより、本発明に係るマルチオペレーティングシステム制御方法は、第１オペレーティングシステムのオーバーヘッドを削減できる。
【０００９】
なお、第１オペレーティングシステム上の仮想プロセッサの識別子と、マルチオペレーティングシステム上の仮想プロセッサの識別子とを変換する処理を行う場合であっても、例えば、第１オペレーティングシステム上の仮想プロセッサの識別子にオペレーティングシステムを識別する識別子を付与するというような単純な処理で識別子の変換を行うことができる。
【００１０】
このように、本発明の実施の形態に係るマルチオペレーティングシステム制御方法は、第１オペレーティングシステムが使用する仮想プロセッサの管理を容易に行うことができる。
【００１１】
また、前記第１オペレーティングシステムが使用する前記仮想プロセッサを前記第１オペレーティングシステムの起動時にのみ生成し、前記第２オペレーティングシステムが使用する前記仮想プロセッサを前記第２オペレーティングシステムの起動後に生成及び削除してもよい。
【００１２】
これによれば、第１オペレーティングシステムが使用する仮想プロセッサを起動時にのみ生成することにより、当該仮想プロセッサを固定的に使用できる。
【００１３】
また、前記第２オペレーティングシステムが使用する前記仮想プロセッサを前記第２オペレーティングシステムの起動時に生成するとともに、前記第２オペレーティングシステムの起動後に生成及び削除し、前記第１オペレーティングシステム及び前記第２オペレーティングシステムの起動時に、前記第１オペレーティングシステムが使用する前記仮想プロセッサを生成した後、前記第２オペレーティングシステムが使用する前記仮想プロセッサを生成してもよい。
【００１４】
これによれば、第１オペレーティングシステムが使用する仮想プロセッサの識別子を、マルチオペレーティングシステム上と、第１オペレーティングシステム上とで一致させることができる。
【００１５】
また、前記複数の仮想プロセッサに、当該仮想プロセッサが前記第１オペレーティングシステムに使用されるか、前記第２オペレーティングシステムに使用されるかを示す第１識別子を付与し、同一の前記第１識別子を有する複数の仮想プロセッサに当該複数の仮想プロセッサの生成順に連番となり、かつ前記第１識別子間で独立した第２識別子を付与してもよい。
【００１６】
これによれば、第１オペレーティングシステムが使用する仮想プロセッサの当該第１オペレーティングシステム上の識別子を、第２識別子と一致させることができる。
【００１７】
また、前記第２オペレーティングシステムがタスクの実行を開始する時に、当該タスクを実行する前記仮想プロセッサを新たに生成してもよい。
【００１８】
また、前記第２オペレーティングシステムがタスクの実行を終了した時に、当該タスクを実行していた前記仮想プロセッサを削除してもよい。
【００１９】
また、異なる前記第１識別子を有する前記仮想プロセッサに異なる割込みベクタを対応付けるとともに、同一の前記第１識別子を有する複数の仮想プロセッサに同一の割込みベクタを対応付けてもよい。
【００２０】
これによれば、第１オペレーティングシステムと第２オペレーティングシステムとの割込み処理の独立性を維持できる。
【００２１】
また、前記第１識別子と前記第２識別子との組に対して、それぞれ割込み要因を対応付け、割込み要求が発生した時に、当該割込みの割込み要因に対応付けられた前記組で指定される仮想プロセッサに割込みを発行してもよい。
【００２２】
これによれば、各仮想プロセッサと割込み要因とを対応付けることができる。
【００２３】
また、前記割込み要求が発生した時に、当該割込みの割込み要因に対応付けられた前記組で指定される仮想プロセッサが動作中の場合にのみ、当該割込みを受理してもよい。
【００２４】
これによれば、動作中の仮想プロセッサに対する割込み処理のみを実行することができる。
【００２５】
また、前記割込み要求が発生した時に、当該割込みの割込み要因に対応付けられた前記組で指定される仮想プロセッサが動作中でない場合、当該仮想プロセッサの動作開始後に当該割込み要求に基づく割込み処理を開始してもよい。
【００２６】
これによれば、動作中の仮想プロセッサに対する割込み処理のみを実行することができる。
【００２７】
また、前記割込み要求に基づく割込み処理の実行中に、当該仮想プロセッサの動作割当期間が終了した場合、当該割込み処理を中断してもよい。
【００２８】
これによれば、動作中の仮想プロセッサに対する割込み処理のみを実行することができる。
【００２９】
なお、本発明は、このようなマルチオペレーティングシステム制御方法として実現できるだけでなく、マルチオペレーティングシステム制御方法に含まれる特徴的なステップを手段とするプロセッサシステムとして実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【発明の効果】
【００３０】
以上より、本発明は、仮想プロセッサの管理を容易に行うことができるマルチオペレーティングシステム制御方法及びプロセッサシステムを提供できる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施の形態に係るプロセッサシステムの構成を示す図である。
【図２】本発明の実施の形態に係るプロセッサシステムにおける各ＯＳを実行する機能を模式的に示す図である。
【図３】本発明の実施の形態に係る仮想プロセッサの構成を示す図である。
【図４】本発明の実施の形態に係る仮想プロセッサ管理部の構成を示す図である。
【図５】本発明の実施の形態に係る仮想プロセッサ情報及びコンテキストの構成を示す図である。
【図６】本発明の実施の形態に係るプロセッサシステムにおける、ドメイン番号及び仮想プロセッサ番号の一例を示す図である。
【図７】本発明の実施の形態に係る割込み要因テーブルの構成を示す図である。
【図８】本発明の実施の形態に係るＴＬＢの構成を示す図である。
【図９】本発明の実施の形態に係るプロセッサシステムの起動直後の初期化処理の流れを示すフローチャートである。
【図１０】本発明の実施の形態に係るプロセッサシステムにおける、仮想プロセッサ切替処理を示す図である。
【図１１】本発明の実施の形態に係るプロセッサシステムにおける、タイムスロット切替処理の流れを示すフローチャートである。
【図１２】本発明の実施の形態に係るプロセッサシステムにおける、割込み処理の流れを示すフローチャートである。
【図１３】本発明の実施の形態に係るプロセッサシステムにおける、割込み処理の一例を示す図である。
【図１４】本発明の実施の形態に係るプロセッサシステムにおける、仮想プロセッサの生成処理の流れを示すフローチャートである。
【図１５】本発明の実施の形態に係るプロセッサシステムにおける、仮想プロセッサの休止処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００３２】
以下、本発明に係るマルチオペレーティングシステム制御方法を実現するプロセッサシステム１００の実施の形態について、図面を参照しながら詳細に説明する。
【００３３】
本発明の実施の形態に係るプロセッサシステム１００は、第１ＯＳ１２１が使用する仮想プロセッサ１１３を当該第１ＯＳ１２１の起動時にのみ静的に生成し、第２ＯＳ１２２が使用する仮想プロセッサ１１３を動的に生成する。これにより、プロセッサシステム１００は、第１ＯＳ１２１上の仮想プロセッサ１１３の識別子と、マルチＯＳ上の仮想プロセッサ１１３の識別子とを一致させることができるので、仮想プロセッサ１１３の管理を容易に行うことができる。
【００３４】
まず、本発明の実施の形態に係るプロセッサシステム１００の構成を説明する。
【００３５】
図１は、本発明の実施の形態に係るプロセッサシステム１００の全体構成を模式的に示す図である。
【００３６】
図１に示すプロセッサシステム１００は、第１ＯＳ１２１と第２ＯＳ１２２とを複数の仮想プロセッサ１１３上で並列に実行するマルチＯＳを実現するマルチスレッドプロセッサシステムである。なお、ここで並列とは、見かけ上並列（同時）に第１ＯＳ１２１と第２ＯＳ１２２とを実行することであり、実際には、後述するように複数の仮想プロセッサ１１３を時分割に切り換えながら実行する。また、仮想プロセッサ１１３とは、実プロセッサにより論理的に実現されるプロセッサである。言い換えると、仮想プロセッサ１１３とは、実プロセッサの数に依存しない論理的に定義されたプロセッサである。
【００３７】
このプロセッサシステム１００は、プロセッサブロック１０１と、外部デバイス１０２と、外部メモリ１０３とを備える。また、プロセッサブロック１０１は、ＣＰＵ１１０と、割込みコントローラ１１４と、タイマ１１５と、Ｉ／Ｏ部１１６と、仮想プロセッサ管理部１２０とを備える。また、ＣＰＵ１１０は、キャッシュメモリ１１１と、ＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）１１２と、仮想プロセッサ１１３とを備える。
【００３８】
また、ＣＰＵ１１０がプログラムを実行することにより、第１ＯＳ１２１及び第２ＯＳ１２２の機能を実現する。また、第１ＯＳ１２１上で複数の第１プログラム１２３が動作し、第２ＯＳ１２２上で複数の第２プログラム１２４が動作する。
【００３９】
例えば、第１ＯＳ１２１はパーソナルコンピュータで普及している汎用ＯＳである。また、第２ＯＳ１２２はリアルタイム性を確保するメディア制御プログラムに適したＯＳである。
【００４０】
図２は、プロセッサシステム１００における各ＯＳを実行する機能を模式的に示す図である。また、図３は、仮想プロセッサ１１３の構成を示す図である。
【００４１】
図３に示すように、一つの仮想プロセッサ１１３は、それぞれ独立した、一つの論理プロセッサ（ＬＰ）１３３と、一つのタイムスロット（ＴＳ）１３４とを含む。
【００４２】
また、複数の仮想プロセッサ１１３（ＴＳ１３４）が時分割に切り替りながら動作することにより、複数の仮想プロセッサ１１３が並列に動作しているように見える。
【００４３】
ここで、図２に示すように、複数の仮想プロセッサ１１３（この例では２個の仮想プロセッサ１１３）が同時に動作してもよいし、一つの仮想プロセッサ１１３のみが動作してもよい。
【００４４】
また、図２に示すように各ＯＳが動作する仮想プロセッサ１１３のグループをドメインと呼ぶ。具体的には、第１ドメイン１３１は、第１ＯＳ１２１を実行する１以上の仮想プロセッサ１１３を含み、第２ドメイン１３２は、第２ＯＳ１２２を実行する１以上の仮想プロセッサ１１３を含む。このドメインは、複数の仮想プロセッサ１１３をＯＳのリソースとして識別するための識別子である。
【００４５】
図４は、仮想プロセッサ管理部１２０の構成を示す図である。
【００４６】
図４に示すように仮想プロセッサ管理部１２０は、仮想プロセッサ制御部１４１と、タイマ制御部１４２と、実行制御部１４３と、仮想プロセッサ情報記憶部１４４と、コンテキスト保持部１４５と、割込み制御部１４８と、ＴＬＢ制御部１５２とを備える。また、プロセッサシステム１００は、ＭＭＵ１１２に含まれるＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）１４０を備える。
【００４７】
仮想プロセッサ情報記憶部１４４は、複数の仮想プロセッサ１１３にそれぞれ一対一で対応する複数の仮想プロセッサ情報１６０を記憶する。この仮想プロセッサ情報１６０は、対応する仮想プロセッサ１１３の情報である。
【００４８】
コンテキスト保持部１４５は、複数の仮想プロセッサ１１３にそれぞれ一対一で対応する複数のコンテキスト１７１を保持する。仮想プロセッサ１１３上で実行している処理を中断し別の仮想プロセッサ１１３の処理の実行を再開する際に、中断する処理のコンテキスト１７１がコンテキスト保持部１４５に退避される。また、開始する処理のコンテキスト１７１がコンテキスト保持部１４５から復帰される。
【００４９】
図５は、仮想プロセッサ情報１６０及びコンテキスト１７１の構成を示す図である。
【００５０】
図５に示すように各仮想プロセッサ情報１６０は、ＴＳ情報１６１と、ＬＰ情報１６２とを含む。
【００５１】
ＴＳ情報１６１は、対応する仮想プロセッサ１１３に含まれるＴＳ１３４の情報であり、仮想プロセッサ状態１６３と、割当時間１６４とを含む。
【００５２】
ＬＰ情報１６２は、対応する仮想プロセッサ１１３に含まれるＬＰ１３３の情報であり、ドメイン番号１６５と、仮想プロセッサ番号１６６と、割込みベクタ１６７とを含む。
【００５３】
仮想プロセッサ状態１６３は、対応する仮想プロセッサ１１３がどのような状態であるかを示す。具体的には、仮想プロセッサ状態１６３は、有効状態、無効状態、及び休止状態の３つの状態のうちいずれかを示す。
【００５４】
有効状態は、対応する仮想プロセッサ１１３が切替部１４７の切替対象となる状態である。また、仮想プロセッサ情報１６０の生成時には、仮想プロセッサ状態１６３は有効状態に設定される。
【００５５】
無効状態は、対応する仮想プロセッサ１１３が切替部１４７の切替対象とならない状態である。
【００５６】
休止状態は、対応する仮想プロセッサ１１３に対して割込みが入るのを待っている状態を示し、割込みが入ると仮想プロセッサ状態１６３は有効状態に遷移する。
【００５７】
割当時間１６４は、対応する仮想プロセッサ１１３が処理を実行することができる時間を示す。対応する仮想プロセッサ１１３が実際に処理を実行した時間が割当時間１６４に達すると、実行される仮想プロセッサ１１３が次の仮想プロセッサ１１３に切り替えられる。また、この割当時間１６４は、仮想プロセッサ情報１６０の生成と同時に設定される。
【００５８】
ドメイン番号１６５は、対応する仮想プロセッサ１１３がどのドメインに属しているかを示す。すなわち、ドメイン番号１６５は、対応する仮想プロセッサ１１３が、第１ＯＳ１２１に使用されるか、第２ＯＳ１２２に使用されるかを示す識別子である。
【００５９】
仮想プロセッサ番号１６６は、ドメイン内での連番であり、例えば、１、２、３…の順で振られる。また、仮想プロセッサ番号１６６は、異なるドメイン間で独立した番号である。仮想プロセッサ管理部１２０が第１ＯＳ１２１及び第２ＯＳ１２２に通知する仮想プロセッサ１１３の番号にはこの仮想プロセッサ番号１６６が用いられる。よって、ＯＳ内部での仮想プロセッサ１１３の番号は実際の仮想プロセッサ１１３の位置に依存しない。
【００６０】
図６は、ドメイン番号１６５及び仮想プロセッサ番号１６６の一例を示す図である。図６に示すように、第１ＯＳ１２１に属する仮想プロセッサ１１３（ＬＰ１３３）のドメイン番号１６５は「１」に設定され、第２ＯＳ１２２に属する仮想プロセッサ１１３（ＬＰ１３３）のドメイン番号１６５は「２」に設定される。また、各ドメイン内において、仮想プロセッサ番号１６６は、連番となる。
【００６１】
ここで、各仮想プロセッサ１１３は、ハードウェアの位置により決定される番号（以下、ハードウェア番号）を有している。複数の仮想プロセッサ情報１６０は、このハードウェア番号の順に、例えば左から並べられる。例えば、図６に示すＬＰ１３３の番号がこのハードウェア番号に相当する。
【００６２】
また、単一のＯＳのみが動作するマルチスレッドプロセッサでは、このハードウェア番号を用いて各仮想プロセッサ１１３が識別される。しかしながら、各ＯＳの機能変更を行うことなく、複数のＯＳを実行する場合には、各ＯＳが認識する仮想プロセッサ１１３の番号が重複することになる。これに対して、仮想プロセッサ管理部１２０は、各仮想プロセッサ１１３に、ドメイン番号１６５と仮想プロセッサ番号１６６とを対応付けることにより、複数の仮想プロセッサ１１３を一意に識別することができる。
【００６３】
また、仮想プロセッサ管理部１２０は、このドメイン番号１６５と仮想プロセッサ番号１６６との組と、仮想プロセッサ情報１６０の位置とに基づき、各ＯＳ又はプログラムから通知された仮想プロセッサ番号１６６と、ハードウェア番号とを相互に変換することができる。具体的には、第２ＯＳ１２２から仮想プロセッサ番号１６６が「２」の仮想プロセッサ１１３が指定された場合、図６に示す例では、ドメイン番号１６５が「２」であり、かつ仮想プロセッサ番号１６６が「２」である仮想プロセッサ１１３（ＬＰ１３３）のハードウェア番号は「４」であると判定できる。
【００６４】
このように、本発明の実施の形態に係るプロセッサシステム１００では、ドメイン番号１６５と仮想プロセッサ番号１６６とを用いることにより、各ＯＳの機能を従来から変更することなく、複数の仮想プロセッサ１１３を一意に識別することができる。
【００６５】
再び、図５を参照して説明を行う。
【００６６】
割込みベクタ１６７は、割込みの種別ごとのハンドラへのアドレスが並べられたテーブルの先頭を示すアドレスである。異なるドメインに属する仮想プロセッサ１１３には、異なる割込みベクタ１６７が対応付けられるとともに、同一のドメインに属する複数の仮想プロセッサ１１３には同一の割込みベクタ１６７が対応付けられる。
【００６７】
また、コンテキスト１７１は、対応する仮想プロセッサ１１３のレジスタ情報１７２及びキャッシュ割当情報１７３などを含む。
【００６８】
また、仮想プロセッサ情報１６０の順序は、対応する仮想プロセッサ１１３の生成順を表す。
【００６９】
仮想プロセッサ制御部１４１は、状態変更部１４６と、切替部１４７とを含む。
【００７０】
仮想プロセッサ制御部１４１は、プロセッサシステム１００の起動後に行われる初期化処理において、この複数のドメインを定義し、各ドメインに、各ドメインが必要な数の仮想プロセッサ１１３を割り付ける。
【００７１】
状態変更部１４６は、プロセッサシステム１００の起動時に行われる初期化処理において、ドメインを定義し、必要な数の仮想プロセッサ１１３を各ドメインに割り付ける。具体的には、状態変更部１４６は、仮想プロセッサ情報１６０を生成することにより、各ドメインに属する仮想プロセッサ１１３を生成する。ここで、第１ＯＳ１２１に属する複数の仮想プロセッサ１１３は、プロセッサシステム１００の起動時に生成された後、新たに生成及び削除されることはない。一方、第２ＯＳ１２２に属する複数の仮想プロセッサ１１３は、プロセッサシステム１００の起動時に生成された後、第２ＯＳ１２２からの要求により新たに生成及び削除される。
【００７２】
ここで、仮想プロセッサ１１３を生成するとは、切替部１４７により順時切り替えられるＴＳ１３４を新たに追加することである。具体的には、状態変更部１４６は、生成する仮想プロセッサ１１３に対応する仮想プロセッサ情報１６０に含まれる仮想プロセッサ状態１６３を有効状態にする。これにより、当該仮想プロセッサ１１３が、切替部１４７の切り替え対象となる。
【００７３】
また、仮想プロセッサ１１３を削除するとは、当該仮想プロセッサ１１３を、切替部１４７の切り替え対象から外すことである。具体的には、状態変更部１４６は、仮想プロセッサ１１３に対応する仮想プロセッサ情報１６０に含まれる仮想プロセッサ状態１６３を無効状態に変更することにより、当該仮想プロセッサを削除する。
【００７４】
また、状態変更部１４６は、第１ＯＳ１２１、第２ＯＳ１２２、第１プログラム１２３又は第２プログラム１２４からの通知に応じて、仮想プロセッサ情報１６０を変更する。また、状態変更部１４６は、仮想プロセッサ情報１６０を変更する際には、情報の矛盾が起こらないようにするため、全ての割込み要求及びタイマ制御部１４２による切り替え要求を禁止する。
【００７５】
切替部１４７は、予め定められた周期内において、各仮想プロセッサ１１３を少なくとも１回選択するラウンドロビンスケジューリングを行う。具体的には、切替部１４７は、現在実行中の仮想プロセッサ１１３の実行時間が割当時間１６４に達したときに、仮想プロセッサ１１３の切替を行う。
【００７６】
タイマ制御部１４２は、仮想プロセッサ制御部１４１から割当時間１６４が設定される毎に、タイマ１１５を用いた時間のカウントを開始する。また、タイマ制御部１４２は、カウントしている時間が割当時間１６４に達したときにタイムアウト信号を出力する。このタイムアウト信号は、タイムスロット１３４の切替タイミングを示し、仮想プロセッサ制御部１４１に通知される。
【００７７】
切替部１４７は、タイマ制御部１４２により出力されるタイムアウト信号によって、実行時間が割当時間１６４に達したかどうかを判定する。実行時間が割当時間１６４に達しした場合、切替部１４７は、並び順で次の仮想プロセッサ情報１６０を選択する。また、切替部１４７は、新たに選択した仮想プロセッサ情報１６０から割当時間１６４を取得してタイマ制御部１４２に設定する。これにより、タイマ制御部１４２は、次の仮想プロセッサ１１３の割当時間１６４のカウントを開始する。
【００７８】
また、切替部１４７は、仮想プロセッサ１１３上で動作する処理を再開する前に、コンテキスト１７１の退避及び復帰を行う。また、切替部１４７は、状態変更部１４６が処理を行う際には、切替処理を中断する。
【００７９】
実行制御部１４３は、切替部１４７により選択されたスレッドを実行する。この実行制御部１４３は、スレッドを実行するＣＰＵ１１０等のハードウェアに相当する。
【００８０】
割込み制御部１４８は、割込み要因１８１と仮想プロセッサ１１３とを対応付ける。
【００８１】
また、割込みコントローラ１１４は、割込み要求が発生したとき、当該割込みの割込み要因１８１に対応付けられた仮想プロセッサ１１３に対して割込みを発行する。
【００８２】
この割込み制御部１４８は、設定部１４９と、割込み受付部１５０と、割込み要因テーブル記憶部１５１とを備える。
【００８３】
割込み要因テーブル記憶部１５１は、割込み要因１８１と仮想プロセッサ１１３との対応関係を示す割込み要因テーブル１８０を記憶する。
【００８４】
図７は、割込み要因テーブル１８０の構成を示す図である。
【００８５】
図７に示すように、割込み要因テーブル１８０は、複数の仮想プロセッサ１１３のそれぞれに対応付けられた割込み要因１８１を示す。具体的には、ドメイン番号１６５と仮想プロセッサ番号１６６との組に対して、一つの割込み要因１８１が対応付けられる。
【００８６】
設定部１４９は、第１ＯＳ１２１、第２ＯＳ１２２、第１プログラム１２３及び第２プログラム１２４からの通知に応じて、割込み要因テーブル１８０にドメイン番号１６５及び仮想プロセッサ番号１６６を登録する。
【００８７】
割込み受付部１５０は、外部デバイス１０２、又はソフトウェア要因により要求された割込み要求を受付ける。割込み受付部１５０により割込み要求が受付けられると、割込みコントローラ１１４は、割込み要因テーブル１８０に従って対応する仮想プロセッサ１１３上で動作するＯＳの割込みハンドラを起動する。
【００８８】
ＴＬＢ制御部１５２は、ＴＬＢ１４０の制御を行う。
【００８９】
図８は、ＴＬＢ１４０の構成を示す図である。
【００９０】
ＴＬＢ１４０は、一種のキャッシュメモリであり、論理アドレスと物理アドレスとの対応関係を示すページテーブルの一部を保持する。このＴＬＢ１４０は、保持するページテーブルを用いて、論理アドレスと物理アドレス間の変換を行う。
【００９１】
図８に示すように、ＴＬＢ１４０は、複数のエントリ１９０を含む。各エントリ１９０は、論理アドレスを識別するためのタグ１９１と、ドメイン番号１６５と、ＰＩＤ１９２と、データ１９３とを含む。
【００９２】
ＰＩＤ１９２は、当該データを用いるプロセスを識別するためのＩＤである。データ１９３は、タグ１９１に対応付けられた物理アドレスである。
【００９３】
ＴＬＢ制御部１５２は、ＴＬＢ１４０の更新が行われる際に、更新元となる仮想プロセッサ１１３が属するドメイン番号１６５をタグ１９１に対して設定する。また、ＴＬＢ制御部１５２は、ＴＬＢ１４０が検索される際には、対象となる仮想プロセッサ１１３が属するドメイン番号１６５を保持するエントリ１９０のみを検索する。
【００９４】
また、本発明の実施の形態に係るプロセッサシステム１００では、外部デバイス１０２との接続に用いられるＩ／Ｏ部１１６の複数のＩ／Ｏアドレスは、ドメインごとに、それぞれ独立に割り当てられる。また、上述したようにドメインごとに独立した割込み制御が行われる。これにより、第１ＯＳ１２１及び第２ＯＳ１２２は互いにアクセスを行わないので、プロセッサシステム１００は、ハードウェア制御に対するＯＳ間の独立性を確保できる。
【００９５】
このように、プロセッサシステム１００では、ハードウェアに対するアクセスはそれぞれのＯＳが直接実行するため、ＯＳを管理するソフトウェアが各ＯＳからのアクセスをエミュレーションする必要はない。これにより、ハードウェアに対する直接アクセスを前提として構築されたＯＳカーネル及びデバイスドライバを変更する必要がない。また、ＯＳがハードウェアをアクセスする際のオーバーヘッドを防ぐことができる。
【００９６】
また、プロセッサシステム１００では、第１ＯＳ１２１及び第２ＯＳ１２２は、共通で用いられる物理メモリである外部メモリ１０３の領域を分割し、それぞれのＯＳが分割された領域を使用する。また、上述したようにドメイン番号１６５によりＴＬＢ１４０のエントリ１９０が識別される。これにより、ドメインごとに論理空間を分割できる。
【００９７】
また、外部メモリ１０３内には、ＭＭＵ変換を行わない領域を配置する。この領域は、高い保護レベルを有し、ＯＳからのみアクセスが可能である。
【００９８】
以上より、本発明の実施の形態に係るプロセッサシステム１００は、ＯＳ間の独立性を確保できる。
【００９９】
次に、プロセッサシステム１００の動作を説明する。
【０１００】
まず、プロセッサシステム１００の起動（マルチＯＳの起動）直後の初期化処理について説明する。このプロセッサシステム１００の起動時に、第１ＯＳ１２１及び第２ＯＳ１２２が起動される。
【０１０１】
図９は、プロセッサシステム１００の起動直後の初期化処理の流れを示すフローチャートである。
【０１０２】
プロセッサシステム１００が起動すると、まず、仮想プロセッサ管理部１２０は、レジスタ及び割込みの初期化を行う（Ｓ１０１）。
【０１０３】
次に、状態変更部１４６は、第１ＯＳ１２１に対応する第１ドメイン１３１を定義する（Ｓ１０２）。
【０１０４】
次に、状態変更部１４６は、第１ドメイン１３１に属する複数の仮想プロセッサ１１３を生成する（Ｓ１０３）。具体的には、状態変更部１４６は、仮想プロセッサ情報１６０を生成し、仮想プロセッサ情報記憶部１４４に記憶する。また、生成される仮想プロセッサ１１３の数は、第１ＯＳ１２１が必要とする予め定められた固定数である。また、第１ドメイン１３１に属する複数の仮想プロセッサ１１３の数はこの処理の後で変更されない。つまり、第１ドメイン１３１に属する複数の仮想プロセッサ１１３は、この処理の後において生成又は削除されない。
【０１０５】
次に、状態変更部１４６は、第２ＯＳ１２２に対応する第２ドメイン１３２を定義する（Ｓ１０４）。
【０１０６】
次に、状態変更部１４６は、第２ドメイン１３２に属する複数の仮想プロセッサ１１３を生成する（Ｓ１０５）。具体的には、状態変更部１４６は、仮想プロセッサ情報１６０を生成し、仮想プロセッサ情報記憶部１４４に記憶する。例えば、状態変更部１４６は、一つの仮想プロセッサ１１３のみを生成する。また、第２ドメイン１３２に属する仮想プロセッサ１１３は、この処理の後に、必要に応じて新たに生成又は削除される。
【０１０７】
次に、状態変更部１４６は、仮想プロセッサ１１３の生成処理が完了した段階で、タイマ制御部１４２を有効にし、仮想プロセッサ１１３の切り替え動作を開始する（Ｓ１０６）。
【０１０８】
このように本発明の実施の形態に係るプロセッサシステム１００は、第１ＯＳ１２１が使用する仮想プロセッサ１１３を静的に生成し、第２ＯＳ１２２が使用する仮想プロセッサ１１３を動的に生成する。具体的には、プロセッサシステム１００は、第１ＯＳ１２１が使用する仮想プロセッサ１１３を第１ＯＳ１２１の起動時にのみ生成する。また、プロセッサシステム１００は、第２ＯＳが使用する仮想プロセッサ１１３を第２ＯＳ１２２の起動時に生成するとともに、第２ＯＳ１２２の起動後に生成及び削除する。
【０１０９】
また、プロセッサシステム１００は、起動後に生成及び削除が行われない第１ＯＳ１２１の仮想プロセッサ１１３を生成した後に、起動後に生成及び削除が行われる第２ＯＳ１２２の仮想プロセッサ１１３を生成する。ここで、上述したように、仮想プロセッサ情報１６０の順序は、対応する仮想プロセッサ１１３の生成順を表している。また、仮想プロセッサ情報１６０の順序は、仮想プロセッサ１１３のハードウェア番号に対応している。つまり、仮想プロセッサ１１３の生成順と、ハードウェア番号とは等しくなる。
【０１１０】
例えば、図６に示すように、第１ＯＳ１２１に対する２個の仮想プロセッサ１１３を生成した場合、この２個の仮想プロセッサ１１３のハードウェア番号はそれぞれ「１」及び「２」となり、この２個の仮想プロセッサ１１３の仮想プロセッサ番号１６６と等しくなる。さらに、第１ＯＳ１２１の仮想プロセッサ１１３は、以降の処理において、生成及び削除されないので、以降の処理においても、第１ＯＳ１２１の仮想プロセッサ番号１６６とハードウェア番号とは常に一致する。
【０１１１】
これにより、本発明の実施の形態に係るプロセッサシステム１００では、第１ＯＳ１２１は、単一のＯＳが動作している場合と同様に、仮想プロセッサ管理部１２０を介さず、仮想プロセッサ１１３を認識することができる。これにより、プロセッサシステム１００は、第１ＯＳ１２１のオーバーヘッドを削減できる。
【０１１２】
また、仮想プロセッサ管理部１２０は、第１ＯＳ１２１に仮想プロセッサ１１３の番号を通知する場合において、ハードウェア番号を変換することなくそのまま通知できる。これにより、プロセッサシステム１００は、仮想プロセッサ管理部１２０の処理量を低減できるので処理速度を向上できる。
【０１１３】
このように、本発明の実施の形態に係るプロセッサシステム１００は、起動後に仮想プロセッサ１１３の生成及び削除が行われない第１ＯＳ１２１の仮想プロセッサ１１３の仮想プロセッサ番号１６６と、ハードウェア番号とを一致させることにより、仮想プロセッサ１１３の制御を容易に行うことができる。
【０１１４】
なお、第１ＯＳ１２１は、仮想プロセッサ管理部１２０を介して、仮想プロセッサ１１３を認識してもよい。この場合であっても、仮想プロセッサ管理部１２０は、ハードウェア番号を変換することなくそのまま仮想プロセッサ番号１６６として用いることができるので、仮想プロセッサ管理部１２０の処理量を低減できる。
【０１１５】
次に、仮想プロセッサ１１３の切替処理について説明する。
【０１１６】
図１０は、プロセッサシステム１００における、仮想プロセッサ１１３の切替処理を示す図である。
【０１１７】
図１０に示すように、ＴＳ１の割当時間１６４の間、ＬＰ１のコンテキスト１７１が有効となる。また、ＬＰ１上で第１ＯＳ１２１のタスクＡが動作する。
【０１１８】
また、ＴＳ１の割当時間１６４が経過すると、タスクＡの動作が中断され、動作するＴＳ１３４がＴＳ２（ＬＰ２）に切替えられる。また、ＴＳ２の割当時間１６４の間、ＬＰ２のコンテキスト１７１が有効となり、ＬＰ２上で第１ＯＳ１２１のタスクＢが動作する。
【０１１９】
同様に、ＴＳ２の割当時間１６４が経過すると、タスクＢの動作が中断され、動作するＴＳ１３４がＴＳ３（ＬＰ３）に切替えられる。また、ＴＳ３の割当時間１６４の間、ＬＰ３のコンテキスト１７１が有効となり、ＬＰ３上で第２ＯＳ１２２のタスクＣが動作する。
【０１２０】
図１１は、切替部１４７によるタイムスロット切替処理の流れを示すフローチャートである。
【０１２１】
まず、タイマ制御部１４２よりタイムアウト通知が切替部１４７に行われる。これにより、切替部１４７は割込みを禁止するとともに（Ｓ１１１）、現在実行中の仮想プロセッサ１１３のコンテキスト１７１をコンテキスト保持部１４５に退避する（Ｓ１１２）。
【０１２２】
次に、切替部１４７は、仮想プロセッサ情報記憶部１４４に記憶される仮想プロセッサ情報１６０の配列順に従って、次に仮想プロセッサ状態１６３が有効状態の仮想プロセッサ１１３を選択する（Ｓ１１３）。
【０１２３】
次に、切替部１４７は、使用する割込みベクタを、選択した仮想プロセッサ１１３の割込みベクタ１６７に切り替える（Ｓ１１４）。
【０１２４】
次に、切替部１４７は、選択した仮想プロセッサ１１３の割当時間１６４を仮想プロセッサ情報１６０から取り出し、取り出した割当時間１６４をタイマ制御部１４２に設定する（Ｓ１１５）。
【０１２５】
次に、切替部１４７は、選択した仮想プロセッサ１１３のコンテキスト１７１をコンテキスト保持部１４５から復帰するとともに（Ｓ１１６）、割込みを許可する（Ｓ１１７）。
【０１２６】
次に、切替部１４７は、選択された仮想プロセッサ１１３を指定する割込みが発生しているか否かを判定する（Ｓ１１８）。割込みが発生している場合（Ｓ１１８でＹｅｓ）、切替部１４７は、割込み処理を開始する（Ｓ１１９）。
【０１２７】
次に、割込み処理について説明する。
【０１２８】
プロセッサシステム１００は、割込み要求が発生した時に、当該割込みの割込み要因に対応付けられた仮想プロセッサ１１３が動作中の場合にのみ、当該割込みを受理する。また、プロセッサシステム１００は、割込み要求が発生した時に、当該割込みの割込み要因に対応付けられた仮想プロセッサが動作中でない場合、当該仮想プロセッサ１１３の動作開始後に当該割込み要求に基づく割込み処理を開始する。また、プロセッサシステム１００は、割込み要求に基づく割込み処理の実行中に、当該仮想プロセッサ１１３の動作割当期間が終了した場合、当該割込み処理を中断する。
【０１２９】
図１２は、プロセッサシステム１００における、割込み処理の流れを示すフローチャートである。
【０１３０】
まず、割込み受付部１５０が割込み要求を受付けると、割込みコントローラ１１４は、割込み要因テーブル１８０に従って、受付けた割込みの割込み要因１８１に対応する仮想プロセッサ１１３に対して割込みを発行する（Ｓ１２１）。
【０１３１】
ここで、現在動作中の仮想プロセッサ１１３への割込みの場合（Ｓ１２２でＹｅｓ）、切替部１４７は当該割込みを受理する（Ｓ１２３）。具体的には、切替部１４７は、割込み先の仮想プロセッサ１１３の割込みベクタ１６７を参照し、割込みベクタ１６７で指定される割込みハンドラのアドレスをプログラムカウンタに設定する。これにより、割込み処理が開始される。
【０１３２】
一方、動作していない仮想プロセッサ１１３への割込みの場合（Ｓ１２２でＮｏ）、かつ、割込み先の仮想プロセッサ１１３の仮想プロセッサ状態１６３が休止状態の場合（Ｓ１２４でＹｅｓ）、切替部１４７は当該仮想プロセッサ状態１６３を有効状態に変更する（Ｓ１２５）。
【０１３３】
以下、具体例を示す。図１３は、プロセッサシステム１００における、割込み処理の一例を示す図である。
【０１３４】
図１３に示すように、ＴＳ１を含む仮想プロセッサ１１３の動作中に、当該仮想プロセッサ１１３宛の割込み要求２０１が発生した場合、当該仮想プロセッサ１１３の割込みベクタ１６７に従って割込みハンドラが起動されることにより、割込み処理が開始される。
【０１３５】
また、当該割込み処理が、ＴＳ１の割当時間１６４中に終了しなかった場合、当該割込み処理は、一時中断される。その後、再度、ＴＳ１に切替えられた際に、当該割込み処理が引き続き行われる。
【０１３６】
また、図１３に示すように、ＴＳ２を含む仮想プロセッサ１１３の動作中に、現在動作していないＴＳ１を含む仮想プロセッサ１１３宛の割込み要求２０２が発生した場合、動作中のＴＳ２を含む仮想プロセッサ１１３は、当該割込み要求２０２を受理しない。また、次に、ＴＳ１に切替えられた際に、この割込み要求２０２に対する割込み処理が開始される。
【０１３７】
以上により、プロセッサシステム１００は、動作中の仮想プロセッサ１１３宛の割込みのみを受理できる。
【０１３８】
次に、仮想プロセッサ１１３の生成処理について説明する。
【０１３９】
図１４は、仮想プロセッサ１１３の生成処理の流れを示すフローチャートである。
【０１４０】
まず、第２ＯＳ１２２は、仮想プロセッサ制御部１４１に対して仮想プロセッサ生成指示を発行する。これにより、状態変更部１４６は、仮想プロセッサ情報記憶部１４４の空き領域を確保することにより、初期化を行う（Ｓ１３１）。具体的には、状態変更部１４６は、設定されていない仮想プロセッサ情報１６０、又は、仮想プロセッサ状態１６３が無効状態の仮想プロセッサ状態１６３を確保する。
【０１４１】
次に、状態変更部１４６は、第２ＯＳ１２２から与えられたドメイン番号１６５、及び割当時間１６４を設定する（Ｓ１３２）。また、状態変更部１４６は、ドメイン番号１６５内で連番になるように仮想プロセッサ番号１６６を設定する（Ｓ１３３）。また、状態変更部１４６は、ドメイン番号１６５に対応する割込みベクタ１６７を設定する（Ｓ１３４）。
【０１４２】
また、状態変更部１４６は、与えられた実行開始アドレス及びスタックアドレスをコンテキスト１７１に設定する（Ｓ１３５）。さらに、状態変更部１４６は、仮想プロセッサ状態１６３を有効状態に設定する（Ｓ１３６）。
【０１４３】
以上により、仮想プロセッサ１１３が新たに生成される。
【０１４４】
次に、仮想プロセッサ１１３の解放処理（削除処理）について説明する。
【０１４５】
まず、第２ＯＳ１２２は、仮想プロセッサ制御部１４１に対して仮想プロセッサ解放指示を発行する。これにより、状態変更部１４６は、当該仮想プロセッサ解放指示により指定された仮想プロセッサ１１３の仮想プロセッサ状態１６３を無効状態に変更することにより、仮想プロセッサ情報記憶部１４４の割り当てられた領域を解放する。
【０１４６】
次に、第２ＯＳ１２２のスケジューラに従った仮想プロセッサ操作について説明する。
【０１４７】
プロセッサシステム１００は、第２ＯＳ１２２がタスクの実行を開始する時に、当該タスクを実行する仮想プロセッサ１１３を新たに生成する。
【０１４８】
具体的には、第２ＯＳ１２２上でタスクが起動された場合、スケジューラによりタスクが実行可能状態となる。このとき第２ＯＳ１２２は、仮想プロセッサ制御部１４１に対して仮想プロセッサ生成指示を発行する。
【０１４９】
仮想プロセッサ１１３が生成されると、第２ＯＳ１２２は、タスクの開始アドレスをコンテキスト１７１に設定することにより、タスクの実行を開始する。実際には、仮想プロセッサ１１３のＴＳ１３４が有効になった時に命令実行が開始される。
【０１５０】
また、プロセッサシステム１００は、第２ＯＳ１２２がタスクの実行を終了した時に、当該タスクを実行していた仮想プロセッサ１１３を削除する。
【０１５１】
具体的には、第２ＯＳ１２２上でタスクが終了された場合、スケジューラによりタスクが無効状態となる。このとき、第２ＯＳ１２２は、仮想プロセッサ制御部１４１に対して仮想プロセッサ解放指示を発行する。
【０１５２】
解放処理が行われると仮想プロセッサ１１３は割当対象外となる。
【０１５３】
なお、一つの仮想プロセッサ１１３上で一つのタスクが実行されてもよいし、複数のタスクが実行されてもよい。複数のタスクが一つの仮想プロセッサ１１３上で実行される場合には、第２ＯＳ１２２が当該仮想プロセッサ１１３上で実行される全てのタスクの実行を終了した時点で、当該仮想プロセッサ１１３を削除する。
【０１５４】
次に、ＯＳが実行しないときの動作について説明する。
【０１５５】
図１５は、仮想プロセッサ１１３の休止処理の流れを示すフローチャートである。
【０１５６】
第１ＯＳ１２１及び第２ＯＳ１２２は実行可能なタスクがないアイドル状態の場合、「ｗａｉｔ命令」により実行権を放棄する。これにより、他の実行可能な仮想プロセッサ１１３が実行される。
【０１５７】
まず、第１ＯＳ１２１又は第２ＯＳ１２２は、仮想プロセッサ制御部１４１に対して「ｗａｉｔ命令」を発行する。これにより、状態変更部１４６は、ｗａｉｔ命令で指定された仮想プロセッサ１１３の仮想プロセッサ状態１６３を休止状態に変更する（Ｓ１４１）。
【０１５８】
これにより、当該仮想プロセッサ１１３に対する割込みが発行されるまで、当該仮想プロセッサ１１３は動作せず、ＴＳ１３４の割当時間１６４も消費されない。
【０１５９】
ステップＳ１４１の仮想プロセッサ状態１６３の変更により、第１ＯＳ１２１及び第２ＯＳ１２２の全ての仮想プロセッサ１１３の仮想プロセッサ状態１６３が休止状態になった場合（Ｓ１４２でＹｅｓ）、ＴＳ１３４の割当時間１６４が消費されないため、ＣＰＵ１１０は省電力モードに移行する（Ｓ１４３）。
【０１６０】
一方、仮想プロセッサ状態１６３が状態有効の仮想プロセッサ１１３が存在する場合（Ｓ１４２でＮｏ）、ＣＰＵ１１０は通常モードで動作する（Ｓ１４４）。
【０１６１】
以上、本発明の実施の形態に係るプロセッサシステムについて説明したが、本発明は、この実施の形態に限定されるものではない。
【０１６２】
例えば、上記説明では、プロセッサシステム１００の起動時に、第１ＯＳ１２１及び第２ＯＳ１２２を同時に起動しているが、第１ＯＳ１２１と第２ＯＳ１２２とを起動するタイミングは異なってもよい。例えば、プロセッサシステム１００の起動時に第１ＯＳ１２１のみを起動し、その後、第１ＯＳ１２１が第２ＯＳ１２２を起動してもよい。
【０１６３】
また、プロセッサシステム１００の起動時とは、プロセッサシステム１００の電源が投入された際でもよいし、プロセッサシステム１００が、例えば、シングルスレッドプロセッサモードとマルチスレッドプロセッサモード（仮想プロセッサモード）とを有する場合には、シングルスレッドプロセッサモードからマルチスレッドプロセッサモードに移行した際でもよい。
【０１６４】
また、上記説明では、第１ＯＳ１２１の仮想プロセッサ１１３を静的に生成し、第２ＯＳ１２２の仮想プロセッサ１１３を動的に生成するとしたが、第１ＯＳ１２１及び第２ＯＳ１２２の仮想プロセッサ１１３を共に静的に生成してもよい。
【０１６５】
また、上記実施の形態に係るプロセッサシステム１００に含まれる各処理部は典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されてもよいし、一部又はすべてを含むように１チップ化されてもよい。
【０１６６】
また、本発明の実施の形態に係るプロセッサシステム１００の機能の一部又は全てを、ＣＰＵ等のプロセッサがプログラムを実行することにより実現してもよい。
【０１６７】
さらに、本発明は上記プログラムであってもよいし、上記プログラムが記録された記録媒体であってもよい。
【産業上の利用可能性】
【０１６８】
本発明は、マルチオペレーティングシステム制御方法及びプロセッサシステムに適用でき、特に、汎用ＯＳと、メディア制御プログラム等に適したＯＳとを実行するプロセッサシステムに適用できる。
【符号の説明】
【０１６９】
１００  プロセッサシステム
１０１  プロセッサブロック
１０２  外部デバイス
１０３  外部メモリ
１１０  ＣＰＵ
１１１  キャッシュメモリ
１１２  ＭＭＵ
１１３  仮想プロセッサ
１１４  割込みコントローラ
１１５  タイマ
１１６  Ｉ／Ｏ部
１２０  仮想プロセッサ管理部
１２１  第１ＯＳ
１２２  第２ＯＳ
１２３  第１プログラム
１２４  第２プログラム
１３１  第１ドメイン
１３２  第２ドメイン
１３３  論理プロセッサ（ＬＰ）
１３４  タイムスロット（ＴＳ）
１４０  ＴＬＢ
１４１  仮想プロセッサ制御部
１４２  タイマ制御部
１４３  実行制御部
１４４  仮想プロセッサ情報記憶部
１４５  コンテキスト保持部
１４６  状態変更部
１４７  切替部
１４８  割込み制御部
１４９  設定部
１５０  割込み受付部
１５１  割込み要因テーブル記憶部
１５２  ＴＬＢ制御部
１６０  仮想プロセッサ情報
１６１  ＴＳ情報
１６２  ＬＰ情報
１６３  仮想プロセッサ状態
１６４  割当時間
１６５  ドメイン番号
１６６  仮想プロセッサ番号
１６７  割込みベクタ
１７１  コンテキスト
１７２  レジスタ情報
１７３  キャッシュ割当情報
１８０  割込み要因テーブル
１８１  割込み要因
１９０  エントリ
１９１  タグ
１９２  ＰＩＤ
１９３  データ
２０１、２０２  割込み要求
【図１】
2010277177.tif 000003
【図２】
2010277177.tif 000004
【図３】
2010277177.tif 000005
【図４】
2010277177.tif 000006
【図５】
2010277177.tif 000007
【図６】
2010277177.tif 000008
【図７】
2010277177.tif 000009
【図８】
2010277177.tif 000010
【図９】
2010277177.tif 000011
【図１０】
2010277177.tif 000012
【図１１】
2010277177.tif 000013
【図１２】
2010277177.tif 000014
【図１３】
2010277177.tif 000015
【図１４】
2010277177.tif 000016
【図１５】
2010277177.tif 000017