(57)【要約】【課題】プロセッサの利用効率の低下を抑え、かつリアルタイム処理を迅速に実行することのできる、マルチプロセッサによりリアルタイム処理を実行する情報処理装置を提供する。【解決手段】マルチプロセッサ１１、１２でリアルタイム処理を実行する情報処理装置である。第１のプロセッサ１１は、リアルタイム性の高い第１の処理と、リアルタイム性の低い処理の中で即座に他の処理へ切り換えることのできる優先順位の低い第２の処理とを受け持つ。第２のプロセッサ１２は、リアルタイム性の低い処理の中で即座に他の処理へ切り換えることのできない優先順位の高い第３の処理を実行する。そして、第１のプロセッサ１１は、第２の処理を実行中に第１の処理の要求があると、第２の処理から第１の処理に切り換える。【選択図】図１
2007193744.tif 000002
【特許請求の範囲】
【請求項１】
マルチプロセッサでリアルタイム処理を実行する情報処理装置であって、
リアルタイム性の高い第１の処理と、リアルタイム性の低い処理の中で即座に他の処理へ切り換えることのできる優先順位の低い第２の処理とを受け持っており、前記第２の処理を実行中に前記第１の処理の要求があると、前記第２の処理から前記第１の処理に切り換える第１のプロセッサと、
リアルタイム性の低い処理の中で即座に他の処理へ切り換えることのできない優先順位の高い第３の処理を実行する第２のプロセッサとを有する情報処理装置。
【請求項２】
前記第２の処理は、前記リアルタイム性の低い処理の中の、カーネルの提供する機能を使用する処理であり、
前記第３の処理は、前記リアルタイム性の低い処理の中の、前記カーネルの提供する機能を使用しない処理である、請求項１に記載の情報処理装置。
【請求項３】
前記第１のプロセッサは、前記第２の処理を実行中に前記第１の処理の要求があると、実行順序を決めるスケジューリング処理を行った直後に、前記第２の処理から前記第１の処理に切り換える、請求項１または２に記載の情報処理装置。
【請求項４】
リアルタイム処理をマルチプロセッサのコンピュータに実行させるためのプログラムであって、
リアルタイム性の高い第１の処理と、リアルタイム性の低い処理の中で即座に他の処理へ切り換えることのできる優先順位の低い第２の処理とを第１のプロセッサに割り当て、リアルタイム性の低い処理の中で即座に他の処理へ切り換えることのできない優先順位の高い第３の処理を第２のプロセッサに割り当てる手順と、
前記第１のプロセッサにおいて、前記第２の処理を実行中に前記第１の処理の要求があると、前記第２の処理から前記第１の処理に切り換える手順とを実行させるためのプログラム。
【請求項５】
前記第２の処理は、前記リアルタイム性の低い処理の中の、カーネルの提供する機能を使用する処理であり、
前記第３の処理は、前記リアルタイム性の低い処理の中の、前記カーネルの提供する機能を使用しない処理である、請求項４に記載のプログラム。
【請求項６】
前記第２の処理を実行中に前記第１の処理の要求があると、実行順序を決めるスケジューリング処理を行なった直後に前記第２の処理から前記第１の処理に切り換える、請求項４または５に記載のプログラム。
【請求項７】
マルチプロセッサでリアルタイム処理を実行する情報処理装置におけるスケジューリング方法であって、
リアルタイム性の高い第１の処理と、リアルタイム性の低い処理の中で優先順位の低い第２の処理とを第１のプロセッサに割り当て、リアルタイム性の低い処理の中で優先順位の高い第３の処理を第２のプロセッサに割り当てるステップと、
前記第１のプロセッサにて、前記第２の処理を実行中に前記第１の処理の要求があると、前記第２の処理から前記第１の処理に切り換えるステップとを有するスケジューリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイム処理を行なう情報処理装置に関する。
【背景技術】
【０００２】
リアルタイム処理ではコンピュータシステムは許容時間内に処理を完了させる必要がある。このようなリアルタイム処理を実行することを目的としたコンピュータシステムをリアルタイムシステムと呼ぶことがある。
【０００３】
リアルタイムシステムの構成には様々なものがあるが、例えば、マルチプロセッサとノンプリエンプティブＯＳで構成されたものがある。マルチプロセッサでリアルタイム処理を実行するシステムが特許文献１に開示されている。ノンプリエンプティブＯＳは、カーネル実行中にプロセスの切り替えを行なわないため、プリエンプティブＯＳに比べて処理が単純である。
【０００４】
マルチプロセッサとノンプリエンプティブＯＳによるリアルタイムシステムは、一例としてハードウェア割り込みでリアルタイム処理を起動する。図６は、マルチプロセッサとノンプリエンプティブＯＳで構成された従来のリアルタイムシステムによる処理の切り替わりの様子を示すタイミング図である。図６に示す例は、マルチプロセッサの中の特定のプロセッサのみでリアルタイム処理を実行する構成である。ここではリアルタイム性の高い処理をリアルタイム処理といい、リアルタイム性の低い処理を非リアルタイム処理ということにする。図中において、カーネル実行中を黒いバーで示し、アプリケーション実行中を白いバーで示し、スケジュール待ちをハッチングされたバーで示している。また、ハードウェア割り込みの発生を矢印で示している。
【０００５】
図６を参照すると、非リアルタイム処理によりカーネルを実行している状態で、時刻Ｔ１にハードウェア割り込みが発生している。ノンプリエンプティブＯＳはカーネル実行中にプロセスの切り替えを行なわないので、プリエンプションによりリアルタイム処理を直ちに起動することができない。そのため、リアルタイム処理は、スケジュール待ちの状態となり、非リアルタイム処理がカーネルの実行を終了するか、プロセッサの使用権を手放すまで起動を待たされることとなる。図６では、時刻Ｔ２に非リアルタイム処理によるカーネルの実行が終了してからリアルタイム処理が起動されている。
【０００６】
その結果、リアルタイムシステムの動作状況によっては、リアルタイム処理の実行が許容時間を超えてしまう場合があった。
【０００７】
リアルタイム処理の実行を早めるスケジューリング方法として、マルチプロセッサの複数のプロセッサでリアルタイム処理を実行可能とする方法が考えられる。
【０００８】
図７は、マルチプロセッサとノンプリエンプティブＯＳで構成された従来の他のリアルタイムシステムによる処理の切り替わりの様子を示すタイミング図である。ここではプロセッサａとプロセッサｂの２つがあるものとする。
【０００９】
図７を参照すると、非リアルタイム処理によりプロセッサａがカーネルを実行している状態で、時刻Ｔ１にハードウェア割り込みが発生している。このときプロセッサｂは空いているとすると、リアルタイム処理はプロセッサｂに割り当てられる。その結果、リアルタイム処理はプロセッサｂで実行され、リアルタイム性が確保される。
【００１０】
リアルタイム処理の実行を早める他のスケジューリング方法として、マルチプロセッサのいずれかのプロセッサをリアルタイム処理の専用とする方法が考えられる。
【００１１】
図８は、マルチプロセッサとノンプリエンプティブＯＳで構成された従来の更に他のリアルタイムシステムによる処理の様子を示すタイミング図である。図８を参照すると、リアルタイム処理に専用のプロセッサがあるので、ハードウェア割り込みが発生すると即座に実行することができる。
【特許文献１】特開２００５−４３９５９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
図７に示した従来のリアルタイムシステムでは、リアルタイム処理が起動毎に異なるプロセッサで実行されることがある。図７の例では、時刻Ｔ１のリアルタイム処理はプロセッサｂで、時刻Ｔ２のリアルタイム処理はプロセッサａで実行されている。
【００１３】
ところで、マルチプロセッサでは各ＣＰＵがキャッシュメモリを備える構成が考えられる。キャッシュメモリがある場合、過去に使用した命令コードやデータがキャッシュメモリに残っていれば、キャッシュメモリ上のものを使用することで処理を高速化できる。
【００１４】
しかし、複数のプロセッサがリアルタイム処理を実行できる構成では、リアルタイム処理が複数のプロセッサに分散されることになるので、キャッシュヒットの確率が低下してしまう。その結果、キャッシュメモリによる高速化の効果が十分に発揮できず十分な処理速度が得られない可能性があった。
【００１５】
一方、図８に示した従来のリアルタイムシステムでは、リアルタイム処理が無い間はリアルタイム処理のために確保されているプロセッサが利用されず、プロセッサの利用効率が低下してしまう。図８の例では、時刻Ｔ１から時刻Ｔ２の間は、リアルタイム処理のために確保されているプロセッサが利用されていない。
【００１６】
本発明の目的は、プロセッサの利用効率の低下を抑え、かつリアルタイム処理を迅速に実行することのできる、マルチプロセッサによりリアルタイム処理を実行する情報処理装置を提供することである。
【課題を解決するための手段】
【００１７】
上記目的を達成するために、本発明の情報処理装置は、
マルチプロセッサでリアルタイム処理を実行する情報処理装置であって、
リアルタイム性の高い第１の処理と、リアルタイム性の低い処理の中で即座に他の処理へ切り換えることのできる優先順位の低い第２の処理とを受け持っており、前記第２の処理を実行中に前記第１の処理の要求があると、前記第２の処理から前記第１の処理に切り換える第１のプロセッサと、
リアルタイム性の低い処理の中で即座に他の処理へ切り換えることのできない優先順位の高い第３の処理を実行する第２のプロセッサとを有している。
【００１８】
本発明によれば、第１のプロセッサは、リアルタイム処理を行っていないときにはリアルタイムが要求されず優先順位の低い処理を実行することができるので、プロセッサの利用効率の低下を抑えることができる。また、第１のプロセッサにてリアルタイム性の低い処理を実行中にリアルタイム性の高い処理の要求があると迅速にリアルタイム処理を起動することができるので、要求されるリアルタイム性を確保することができる。
【００１９】
また、前記第２の処理は、前記リアルタイム性の低い処理の中の、カーネルの提供する機能を使用する処理であり、
前記第３の処理は、前記リアルタイム性の低い処理の中の、前記カーネルの提供する機能を使用しない処理であるとしてもよい。
【００２０】
また、前記第１のプロセッサは、前記第２の処理を実行中に前記第１の処理の要求があると、実行順序を決めるスケジューリング処理を行った直後に、前記第２の処理から前記第１の処理に切り換えるとしてもよい。
【発明の効果】
【００２１】
本発明によれば、プロセッサの利用効率の低下を抑え、要求されるリアルタイム性を確保することができる。
【発明を実施するための最良の形態】
【００２２】
本発明を実施するための形態について図面を参照して詳細に説明する。
【００２３】
図１は、本発明の実施形態による情報処理装置の構成を示すブロック図である。図１を参照すると、本実施形態の情報処理装置１０は、マルチプロセッサによりリアルタイム処理を実行するリアルタイムシステムであり、第１のプロセッサ１１と第２のプロセッサ１２を有している。ここでは２つのプロセッサから構成されるマルチプロセッサの例を示すが、プロセッサは複数であればよく、３つ以上であってもよい。
【００２４】
情報処理装置１０の実行すべき処理には、リアルタイム性の観点から、リアルタイム性が要求されるリアルタイム処理と、そうでない非リアルタイム処理とがある。また、情報処理装置１０の実行すべき処理には、優先順位の観点から、優先度の高い高優先処理と、そうでない低優先処理とがある。本実施形態では、リアルタイム処理は高優先処理とする。また、非リアルタイム処理の中で、ＯＳのカーネルを実行する処理は高優先処理とし、カーネルを実行しない処理は低優先処理とする。
【００２５】
本実施形態の情報処理装置１０では、スケジュール処理において、各プロセッサ１１、１２にて実行する処理が予め定められている。第１のプロセッサ１１は、リアルタイム処理である高優先処理と、非リアルタイム処理の中の低優先処理とを実行する。第２のプロセッサ１２は、非リアルタイム処理の中の高優先処理を実行する。
【００２６】
本実施形態によれば、第１のプロセッサ１１は、リアルタイム処理を行っていないときには非リアルタイム処理の中の低優先処理を行うことができるので、プロセッサの利用効率の低下を抑えることができる。また、第１のプロセッサ１１にて非リアルタイム処理を実行中にリアルタイム処理の要求があると迅速にリアルタイム処理を起動することができるので、要求されるリアルタイム性を確保することができる。
【００２７】
次に、本実施形態における具体的な実施例について説明する。
【００２８】
図２は、本実施例の情報処理装置が実行する処理の構成を示す図である。図２を参照すると、情報処理装置１０は、測定装置群２１で測定された測定データを入力され、その測定データに基づいて表示データを生成し、生成した表示データを表示装置２２に表示する機能を備えている。
【００２９】
そのために情報処理装置１０の処理には、測定データ入力処理３１、表示処理３２、スケジューリング処理３５、およびその他の処理３６がある。表示処理３２は、さらに表示データ作成処理３３と表示データ出力処理３４に分けることができる。図示しないが、情報処理装置１０はハードウェア等の割り込みが入ると、割り込み処理を実行する。
【００３０】
測定データ入力処理３１は測定装置群２１からの測定データを入力する処理である。
【００３１】
表示処理３２は、測定データから表示データを作成し、表示装置２２に出力する処理である。その中で、測定データから表示データを作成する処理が表示データ作成処理３３であり、表示データを表示装置２２に出力する処理が表示データ出力処理３４である。
【００３２】
表示データ作成処理３３は、数値計算が主であり、ＯＳのカーネルが提供する機能を殆ど使用しない。一方、表示データ出力処理３４は、表示装置２２に表示データを送る処理が主であり、カーネルが提供する機能を多用する。
【００３３】
スケジューリング処理３５は、各プロセッサ１１、１２において実行する処理をスケジューリングする処理である。
【００３４】
その他の処理３６は、システムの状態監視など、測定データの表示に関係しない処理である。
【００３５】
リアルタイム性の観点からは、複数の測定装置からの測定データを入力する測定データ入力処理３１は実行頻度が高く、高いリアルタイム性が要求されるものとし、リアルタイム処理であるとする。
【００３６】
一方、表示処理３３は、測定データ入力処理３１と比べて実行頻度が低いものとし、高いリアルタイム性は要求されないものとし、非リアルタイム処理であるとする。
【００３７】
優先順位の観点からは、各プロセッサ１１、１２の実行する処理をスケジューリングするスケジューリング処理３５が最も優先度が高いものとし、これを最高優先処理ということとする。
【００３８】
また、測定データ入力処理３１と、表示処理３２の中でカーネルを実行する表示データ出力処理３４とは、優先順位の高い高優先処理であるとする。
【００３９】
また、表示処理３２の中でカーネルを実行しない表示データ作成処理３３と、その他の処理３６とは優先順位の低い低優先処理であるとする。
【００４０】
図２において、測定装置群２１の各測定装置は、測定対象（不図示）の状態を常に監視し、その状態を示す情報を測定データとして情報処理装置１０に定期的に送る。
【００４１】
情報処理装置１０は、測定データ入力処理３１によって、各測定装置からの測定データを受け取り、表示データ作成処理３３によって、測定データから表示データを作成し、表示データ出力処理３４によって、表示処理２２に送る。
【００４２】
これらの処理は、情報処理装置１０内のプロセッサ１１、１２にて時分割で実行される。各プロセッサ１１、１２で次に実行すべき処理を決めるのがスケジューリング処理３５である。各プロセッサ１１、１２のスケジューリング処理３５において、各プロセッサ１１、１２で実行する処理は予め定められている。本実施例では、測定データ入力処理３１と表示データ作成処理３３は第１のプロセッサ１１で実行し、表示データ出力処理３４とその他の処理３６は第２のプロセッサ１２で実行するものと定められているものとする。
【００４３】
図３は、本実施例における第１のプロセッサの動作を説明するためのタイミング図である。図４は、本実施例における第２のプロセッサの動作を説明するためのタイミング図である。
【００４４】
図３に示すように、測定装置群２１の測定装置からの測定データが情報処理装置１０に届くと、第１のプロセッサ１１に割り込みが発生する（図２の時刻Ｔ１）。割り込み処理が実行され、測定データ入力処理３１の状態が「実行すべき処理」に変更される（図２の時刻Ｔ２）。
【００４５】
割り込み処理が完了するとスケジュール処理が起動される（図２の時刻Ｔ３）。
【００４６】
図５は、本実施例におけるスケジューリング処理を示すフローチャートである。図５を参照すると、まず、スケジューリング対象のプロセッサをＣＰＵpとする（ステップ１０１）。次に、そのＣＰＵｐにて実行すべき高優先処理があるか否か判定する（ステップ１０２）。高優先処理があれば、それを次に実行すべき処理とする（ステップ１０３）。
【００４７】
一方、高優先処理がなければ、次に、そのＣＰＵｐにて実行すべき低優先処理があるか否か判定する（ステップ１０４）。低優先処理があれば、それを次に実行すべき処理とする（ステップ１０５）。低優先処理もなければ、次に実行すべき処理は無しとする（ステップ１０６）。
【００４８】
図３の例では、スケジューリングの対象は第１のプロセッサ１１なので、高優先処理は測定データ入力処理３１、低優先処理は表示データ作成処理３３である。
【００４９】
測定データ入力処理３１の状態が「実行すべき処理」となるため、スケジュール処理３５により、第１のプロセッサ１１で次に実行すべき処理として測定データ入力処理３１が選択される。
【００５０】
このスケジュール処理が終了すると、割り込みが発生した時点で実行していた処理を中断し（プリエンプション）、スケジュール処理によって選択された処理の実行を開始する（図３の時刻Ｔ４）。図３の例では、表示データ作成処理３３が中断され、測定データ入力処理３１が開始されている。
【００５１】
上述したように、ノンプリエンプティブＯＳを使用したシステムでは、割り込みが発生した時点で実行していた処理が、カーネルの提供する機能を使っていた場合、その処理がカーネルの実行を終了するか、またはプロセッサの使用権を手放すまで、スケジュール処理３１によって選ばれた処理の実行は延期される。しかし、本実施形態における非リアルタイム処理の中の低優先処理（本実施例の表示データ作成処理３３）はカーネルの機能を殆ど使用しないので、スケジュール処理３５により選択されたリアルタイム処理（本実施例の測定データ入力処理３１）は少ない遅延で実行される。これにより測定データ入力処理３１のリアルタイム性が保障される。
【００５２】
測定データ入力処理３１は完了するとプロセッサの使用権を自ら手放すので、測定データ入力処理３１の状態は「実行不要の処理」に変更され、スケジュール処理３５が起動される（図３の時刻Ｔ５）。ここでは、高優先処理である測定データ入力処理３１の状態が「実行不要の処理」となっているため、スケジューリング処理３５の結果、次に実行すべき処理として表示データ作成処理３３が選択される。
【００５３】
このスケジュール処理３５が終了すると、そのスケジュール処理３５により選択された表示データ作成処理３３が再び実行される（図３の時刻Ｔ６）。
【００５４】
一方、図４に示すように、第２のプロセッサ１２への周期的な割り込みによって起動されるタイマ割り込み処理（図４の時刻Ｔ１〜Ｔ３）によって、表示データ出力処理３４の状態が「実行すべき処理」に変更される（図３の時刻Ｔ２）。
【００５５】
その後、タイマ割り込み処理が終了すると、スケジュール処理３５が起動され（図３の時刻Ｔ３）、図５に示したスケジューリング処理３５が実行される。
【００５６】
ここでは第２のプロセッサ１２がスケジュール対象なので、高優先処理は表示データ出力処理３４であり、低優先処理はその他の処理３６である。
【００５７】
表示データ出力処理３４の状態は「実行すべき処理」となるので、スケジュール処理３５の結果、次に実行すべき処理として表示データ出力処理３４が選択される。このスケジュール処理３５が終了すると、割り込みが発生した時点で実行していた、その他の処理３６に代えて、スケジュール処理３５によって選択された表示データ出力処理３４を実行しようとする（図４の時刻Ｔ４）。
【００５８】
割り込みが発生した時点（図４の時刻Ｔ８）で第２のプロセッサ１２が実行していたその他の処理３６がカーネルを実行していなければ、スケジュール処理３５の直後（図４の時刻Ｔ９）に表示データ出力処理３４の実行が始まる。
一方、割り込みが発生した時点（図４の時刻Ｔ１）で第２のプロセッサ１２が実行していたその他の処理３６がカーネルの機能を使用していれば、スケジューリング処理３５が終了したとき（図４の時刻Ｔ４）に直ちに表示データ出力処理３４に切り換えることはできない。その場合、その他の処理３６がカーネル機能を使い終わるか、または自らプロセッサの使用権を手放すまで、スケジュール処理３５によって選択された表示データ出力処理３４の実行は延期される。
【００５９】
そして、その他の処理３６がカーネルの機能を使用し終えるか、または自らプロセッサの使用権を手放すと、表示データ出力処理３４の実行が始まる。表示データ出力処理３４は高いリアルタイム性を要求されないので、この遅延は問題とならない。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施形態による情報処理装置の構成を示すブロック図である。
【図２】本実施例の情報処理装置が実行する処理の構成を示す図である。
【図３】本実施例における第１のプロセッサの動作を説明するためのタイミング図である。
【図４】本実施例における第２のプロセッサの動作を説明するためのタイミング図である。
【図５】本実施例におけるスケジューリング処理を示すフローチャートである。
【図６】マルチプロセッサとノンプリエンプティブＯＳで構成された従来のリアルタイムシステムによる処理の切り替わりの様子を示すタイミング図である。
【図７】マルチプロセッサとノンプリエンプティブＯＳで構成された従来の他のリアルタイムシステムによる処理の切り替わりの様子を示すタイミング図である。
【図８】マルチプロセッサとノンプリエンプティブＯＳで構成された従来の更に他のリアルタイムシステムによる処理の様子を示すタイミング図である。
【符号の説明】
【００６１】
１０    情報処理装置
１１    第１のプロセッサ
１２    第２のプロセッサ
２１    測定装置群
２２    表示装置
３１    測定データ入力処理
３２    表示処理
３３    表示データ作成処理
３４    表示データ出力処理
３５    スケジューリング処理
３６    その他の処理
１０１〜１０６    ステップ
【図１】
2007193744.tif 000003
【図２】
2007193744.tif 000004
【図３】
2007193744.tif 000005
【図４】
2007193744.tif 000006
【図５】
2007193744.tif 000007
【図６】
2007193744.tif 000008
【図７】
2007193744.tif 000009
【図８】
2007193744.tif 000010