(57)【要約】【課題】仮想マルチプロセッサシステムにおいて、最悪の場合の、割込み処理が完了するまでの実行時間を短縮できるようにする。【解決手段】仮想マルチプロセッサシステムにおいて、複数の論理プロセッサ１０１を設ける。また、各論理プロセッサ１０１にタイムスライスを割当てて、タイムスライスを割り当てた論理プロセッサ１０１が時分割で順番に実行を行うよう制御する論理プロセッサ制御部１０２とを設ける。そして、割込み処理の要求が発生した場合に、割込み処理が可能なタイムスライスを有し、かつ直近に実行を行う論理プロセッサ１０１が、割込み処理を実行するように、外部割込み制御部１０６で制御する。【選択図】図２
2011197869.tif 000002
【特許請求の範囲】
【請求項１】
複数の論理プロセッサと、
各論理プロセッサにタイムスライスを割当てて、前記タイムスライスを割り当てた論理プロセッサが時分割で順番に実行を行うよう制御する論理プロセッサ制御部と、
割込み処理の要求が発生した場合に、前記割込み処理が可能なタイムスライスを有し、かつ直近に実行を行う論理プロセッサに、前記割込み処理を実行させる外部割込み制御部と、
を備えたことを特徴とする仮想マルチプロセッサシステム。
【請求項２】
請求項１の仮想マルチプロセッサシステムにおいて、
前記外部割込み制御部は、現在実行中の論理プロセッサの残りタイムスライスよりも、前記割込みの処理時間が長い場合には、次にタイムスライスを割り当てられる論理プロセッサに前記割込み処理を実行させることを特徴とする仮想マルチプロセッサシステム。
【請求項３】
請求項２の仮想マルチプロセッサシステムにおいて、
前記外部割込み制御部は、前記残りタイムスライスよりも前記処理時間が長い場合には、残りタイムスライス中は、割込み通知を抑制して、次の順番の論理プロセッサが実行を行う際に、前記割込み通知を行うことを特徴とする仮想マルチプロセッサシステム。
【請求項４】
請求項１の仮想マルチプロセッサシステムにおいて、
前記外部割込み制御部は、前記残りタイムスライスよりも前記処理時間が長い場合には、前記論理プロセッサ制御部を介して、現在実行中の論理プロセッサの残りタイムスライスを変更することを特徴とする仮想マルチプロセッサシステム。
【請求項５】
請求項４の仮想マルチプロセッサシステムにおいて、
前記外部割込み制御部は、前記論理プロセッサ制御部を介して現在実行中の論理プロセッサの残りタイムスライスをゼロに変更し、次の順番の論理プロセッサに前記割込み処理を行わせることを特徴とする仮想マルチプロセッサシステム。
【請求項６】
請求項４の仮想マルチプロセッサシステムにおいて、
前記外部割込み制御部は、前記論理プロセッサ制御部を介して、現在実行中の論理プロセッサの残りタイムスライスを前記処理時間以上に変更し、現在実行中の論理プロセッサに前記割込み処理を行わせることを特徴とする仮想マルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理的なひとつのプロセッサで擬似並行的に複数の論理プロセッサを動作させる仮想マルチプロセッサシステムに関するものである。
【背景技術】
【０００２】
物理的に複数のプロセッサを用意するのではなく、ひとつのプロセッサで擬似並行的に複数の論理プロセッサを動作させる、いわゆる仮想マルチプロセッサシステムが知られている（例えば特許文献１を参照）。この特許文献１には、ある論理プロセッサに対してその論理プロセッサに固有の割込みがなされた場合に、割込み処理専用サブルーチンにおける実行時間を、割込まれた論理プロセッサの実行時間（タイムスライス）に含める仮想マルチプロセッサシステムの例が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３-２７１３９９  号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、前記の割込み処理では、例えば、割込みの処理中に、割込まれた論理プロセッサのタイムスライスが経過して他の論理プロセッサに実行が切り替わると、割込まれた論理プロセッサは、割込み処理が未完了のまま、次のタイムスライスの割り当てまで待つことになる。つまり、従来の仮想マルチプロセッサシステムでは、最悪の場合の、割込み処理が完了するまでの実行時間（最悪実行時間）は、タイムスライスが経過してからタイムスライスが再度割り当てられるまでの期間（タイムスライス周期）以上の時間になることもありえる。
【０００５】
本発明は前記の問題に着目してなされたものであり、仮想マルチプロセッサシステムにおいて、最悪の場合の、割込み処理が完了するまでの実行時間（最悪実行時間)を短縮できるようにすることを目的としている。
【課題を解決するための手段】
【０００６】
前記の課題を解決するため、本発明の一態様は、
複数の論理プロセッサと、
各論理プロセッサにタイムスライスを割当てて、前記タイムスライスを割り当てた論理プロセッサが時分割で順番に実行を行うよう制御する論理プロセッサ制御部と、
割込み処理の要求が発生した場合に、前記割込み処理が可能なタイムスライスを有し、かつ直近に実行を行う論理プロセッサに、前記割込み処理を実行させる外部割込み制御部と、
を備えたことを特徴とする。
【０００７】
この構成では、割込み処理が可能なタイムスライスを有し、かつ直近に実行を行う論理プロセッサに、割込み処理を実行させるので、割込み処理が完了するまでの実行時間をタイムスライス周期よりも小さくすることが可能になる。
【発明の効果】
【０００８】
本発明によれば、仮想マルチプロセッサシステムにおいて、割込み処理が完了するまでの実行時間を短縮することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施形態１にかかる仮想マルチプロセッサシステムの構成を示すブロック図である。
【図２】図２は、仮想マルチプロセッサシステムにおける割込み処理動作を説明するフローチャートである。
【図３】図３は、図２のフローチャートに従った、割込み処理の一例を示す図である。
【図４】図４は、実施形態２の仮想マルチプロセッサシステムにおける割込み処理動作を説明するフローチャートである。
【図５】図５は、実施形態３の仮想マルチプロセッサシステムにおける割込み処理動作を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
以下では、ひとつのプロセッサで擬似並行的に複数の論理プロセッサを動作させる仮想マルチプロセッサシステムの構成、及び割込み処理について、図面を参照しながら説明する。なお、以下の実施形態は、本質的に好ましい例示であって、本発明、その適用物、あるいはその用途の範囲を制限することを意図するものではない。また、以下の各実施形態の説明において、一度説明した構成要素と同様の機能を有する構成要素については、同一の符号を付して説明を省略する。
【００１１】
また、以下の説明において、最悪実行時間とは、割込み処理が完了するまでの、最悪の場合の実行時間をいい、タイムスライス周期とは、ある論理プロセッサ（後述）においてタイムスライスが経過してから、その論理プロセッサにタイムスライスが再度割り当てられるまでの期間をいう。
【００１２】
《発明の実施形態１》
図１は、本実施形態１にかかる仮想マルチプロセッサシステム１００の構成を示すブロック図である。この仮想マルチプロセッサシステム１００は、複数の論理プロセッサ１０１、論理プロセッサ制御部１０２、タイムスライス保持部１０３、外部割込み受信部１０４、及び割込みハンドラ処理時間テーブル１０５を備えている。なお、図１では、各論理プロセッサ１０１を区別するため、符号の末尾にゼロから始まる枝番を付してある。
【００１３】
それぞれの論理プロセッサ１０１は、通常の物理的なプロセッサ内の演算ユニットを時分割で共有して動作するプロセッサである。すなわち、各論理プロセッサ１０１は、プログラマがソフトウェアを処理する単位として論理的に認識できる単位である。
【００１４】
論理プロセッサ制御部１０２は、各論理プロセッサ１０１にタイムスライスを割当て、時分割で順番に実行を行うよう制御する。なお、この論理プロセッサ制御部１０２は、実行中の論理プロセッサ１０１の残りタイムスライスを柔軟に変更できる。具体的には、残りタイムスライスをゼロに変更して、次の論理プロセッサ１０１への切替えを促したり、残りタイムスライスを割込みハンドラの処理時間以上に延長するなどして、割込み処理を、現在実行中の論理プロセッサ１０１で実行可能にしたりする。
【００１５】
タイムスライス保持部１０３は、実行中の論理プロセッサ１０１の残りタイムスライスを保持する。本実施形態においては、各論理プロセッサ１０１毎に固有のレジスタにより実現している（図１参照）。なお、このタイムスライス保持部１０３は、各論理プロセッサ１０１毎に実現するのではなく、現在実行中の論理プロセッサ１０１の残りタイムスライスのみを保持し、論理プロセッサ制御部１０２の監視の下、各論理プロセッサ１０１の共有として実現してもよい。
【００１６】
外部割込み受信部１０４は、外部割込み通知部４０１のからの割込み信号（図１では外部割込み信号１〜３）を受信する。
【００１７】
割込みハンドラ処理時間テーブル１０５は、割込みハンドラの処理時間を格納する。この処理時間は、割込みハンドラごとに前もって決まった処理時間を保持してもよいし、過去にその割込みハンドラを実行した際の処理時間の履歴を利用して保持してもよい。
【００１８】
外部割込み制御部１０６は、時間比較部１０６ａと、処理プロセッサ選択部１０６ｂを備え、何れの論理プロセッサ１０１で割込みを処理するかを制御する。具体的には、外部割込み制御部１０６は、割込み処理の要求が発生した場合に、割込み処理が可能なタイムスライスを有し、かつ直近に実行を行う論理プロセッサ１０１に、割込み処理を実行させる。より詳しくは、外部割込み制御部１０６は、外部割込み受信部１０４が割込み信号を受信すると、割込みハンドラ処理時間テーブル１０５から、受信した割込み信号に対応する割込みハンドラの処理時間を取得する。また、タイムスライス保持部１０３から現在実行中の論理プロセッサ１０１の残りタイムスライスを取得し、時間比較部１０６ａが取得した処理時間と残りタイムスライスを比較する。そして、処理プロセッサ選択部１０６ｂは、前記結果に応じて、割込みを処理する論理プロセッサ１０１を選択してその論理プロセッサ１０１に通知する。
【００１９】
《仮想マルチプロセッサシステム１００における割込み処理の動作》
図２は、仮想マルチプロセッサシステム１００における割込み処理動作を説明するフローチャートである。以下、このフローチャートに基づいて説明する。
【００２０】
ステップＳ１０１では、外部割込み制御部１０６は、外部割込み受信部１０４が割込み信号を受信したかどうか検知する。外部割込み受信部１０４が割込み信号を受信した場合には、ステップＳ１０２へ進む。
【００２１】
ステップＳ１０２では、外部割込み制御部１０６は、割込みハンドラ処理時間テーブル１０５から、割込み信号に対応した処理時間を取得する。
【００２２】
ステップＳ１０３では、外部割込み制御部１０６は、タイムスライス保持部１０３から、現在実行中の論理プロセッサ１０１に対応する残りタイムスライスを取得する。
【００２３】
ステップＳ１０４では、外部割込み制御部１０６は、割込み信号に対応した処理時間と、残りタイムスライスの比較を行う。処理時間が残りタイムスライスより短ければステップＳ１０５へ進む。そうでなければ、ステップＳ１０６へ進む。
【００２４】
ステップＳ１０５では、外部割込み制御部１０６は、現在実行中の論理プロセッサ１０１に割込み処理を割り当てる。
【００２５】
一方、ステップＳ１０６では、外部割込み制御部１０６は、次に切り替わる論理プロセッサ１０１に割込み処理を割当てる。割込みの通知の仕方については、すぐに次の順番の論理プロセッサ１０１に割込みを通知してもよいし、割込み通知を抑制して、実行する論理プロセッサ１０１が次の順番に切り替わった際に割込みを通知してもよい。
【００２６】
図３は、図２のフローチャートに従った、割込み処理の一例を示す図である。この例では、割込みが発生した際に実行中なのは論理プロセッサ１０１−１である。そして、この例では、論理プロセッサ１０１−１の残りタイムスライスは、割込み処理が完了するまでの時間よりも短い。したがって、外部割込み制御部１０６は、論理プロセッサ１０１−１の次にタイムスライスを割り当てられる論理プロセッサ１０１−２に割込み処理を割当てる。これにより、この仮想マルチプロセッサシステム１００では、図３に示すように、遅くとも次の順番の論理プロセッサにおいて割込み処理を完了することができる。
【００２７】
《実施形態１における効果》
以上のように、本実施形態によれば、最悪実行時間をタイムスライス周期よりも小さくすることが可能になる。すなわち、割込み処理完了までの最悪実行時間を大幅に改善することが可能になり、従来の仮想マルチプロセッサシステムと比べ、最悪実行時間を短縮することが可能になる。
【００２８】
《発明の実施形態２》
発明の実施形態２の仮想マルチプロセッサシステムでは、外部割込み制御部１０６と論理プロセッサ制御部１０２が連携して残りタイムスライス時間を調整することにより、迅速な割込み処理を実現している。本実施形態の仮想マルチプロセッサシステムは、図１と同様のブロック構成により実現されている。
【００２９】
図４は、実施形態２の仮想マルチプロセッサシステムにおける割込み処理動作を説明するフローチャートである。このフローチャートでは、次の論理プロセッサ１０１への切替えを促して、割込み処理を迅速に処理している様子を示している。以下、順を追って説明する。
【００３０】
ステップＳ２０１では外部割込み制御部１０６は、外部割込み受信部１０４が割込み信号を受信したかどうか検知する。外部割込み受信部１０４が割込み信号を受信した場合には、ステップＳ２０２へ進む。
【００３１】
ステップＳ２０２では、外部割込み制御部１０６は、割込みハンドラ処理時間テーブル１０５から、割込み信号に対応した処理時間を取得する。
【００３２】
ステップＳ２０３では、外部割込み制御部１０６は、タイムスライス保持部１０３から、現在実行中の論理プロセッサ１０１に対応する残りタイムスライスを取得する。
【００３３】
ステップＳ２０４では、外部割込み制御部１０６は、割込み信号に対応した処理時間と、残りタイムスライスの比較を行う。割込み信号に対応した処理時間が残りタイムスライスより短ければステップＳ２０５へ進む。そうでなければ、ステップＳ２０６へ進む。
【００３４】
ステップＳ２０５では、外部割込み制御部１０６は、現在実行中の論理プロセッサ１０１に割込み処理を割り当てる。
【００３５】
ステップＳ２０６では、現在実行中の論理プロセッサ１０１の残りタイムスライスをゼロに変更し、ステップＳ２０７へ進む。そして、ステップＳ２０７では、次にタイムスライスを得た論理プロセッサ１０１に割込み処理を割り当てる。
【００３６】
これにより、この仮想マルチプロセッサシステムでは、直ちに割込み処理を開始することが可能になる。すなわち、本実施形態によれば、柔軟なタイムスライス配分で割込み処理時間を改善できるので、従来の仮想マルチプロセッサシステムよりも、より迅速に割込み処理を完了させることが可能になる。
【００３７】
《発明の実施形態３》
発明の実施形態３の仮想マルチプロセッサシステムでも、外部割込み制御部１０６と論理プロセッサ制御部１０２が連携することにより、迅速な割込み処理を実現している。本実施形態の仮想マルチプロセッサシステムは、図１と同様のブロック構成により実現されている。図５は、実施形態３の仮想マルチプロセッサシステムにおける割込み処理動作を説明するフローチャートである。以下、順を追って説明する。
【００３８】
ステップＳ３０１では、外部割込み制御部１０６は、外部割込み受信部１０４が割込み信号を受信したかどうか検知する。外部割込み受信部１０４が割込み信号を受信した場合には、ステップＳ３０２へ進む。
【００３９】
ステップＳ３０２では、外部割込み制御部１０６は、割込みハンドラ処理時間テーブル１０５から、割込み信号に対応した処理時間を取得する。
【００４０】
ステップＳ３０３では、外部割込み制御部１０６は、タイムスライス保持部１０３から、現在実行中の論理プロセッサ１０１に対応する残りタイムスライスを取得する。
【００４１】
ステップＳ３０４では、外部割込み制御部１０６は、割込み信号に対応した処理時間と、残りタイムスライスの比較を行う。割込み信号に対応した処理時間が残りタイムスライスより短ければステップＳ３０６へ進む。そうでなければ、ステップＳ３０５へ進む。
【００４２】
ステップＳ３０５では、現在実行中の論理プロセッサ１０１の残りタイムスライスを割込みの処理時間以上に変更して、ステップＳ３０６に進む。
【００４３】
ステップＳ３０６では、現在実行中の論理プロセッサ１０１に割込み処理を割り当てる。これにより、本実施形態では、現在の論理プロセッサ１０１で割込み処理を割り当てて、現在実行中の論理プロセッサ１０１で確実に割込み処理を完了させることが可能になる。
【００４４】
なお、上記の各実施形態では、外部割込み制御部１０６、論理プロセッサ制御部１０２等を、機能的な観点からブロック分けしているが、混在させたり、上位階層のオペレーティングシステム（Operating System：ＯＳ）等のソフトウェアで同様の処理をさせたりすることによって実現してもよい。
【産業上の利用可能性】
【００４５】
本発明は、割込み処理が完了するまでの実行時間（最悪実行時間)を短縮できるという効果を有し、物理的なひとつのプロセッサで擬似並行的に複数の論理プロセッサを動作させる仮想マルチプロセッサシステム等として有用である。
【符号の説明】
【００４６】
１００      仮想マルチプロセッサシステム
１０１      論理プロセッサ
１０２      論理プロセッサ制御部
１０６      外部割込み制御部
【図１】
2011197869.tif 000003
【図２】
2011197869.tif 000004
【図３】
2011197869.tif 000005
【図４】
2011197869.tif 000006
【図５】
2011197869.tif 000007