(57)【要約】  【課題】  各状態の実時間処理の必要性によって状態の優先度が相対的に記述することができ、詳細な実行時刻が判明する前の上流設計工程において実時間性を考慮した状態遷移とタスク優先度の設計を行うことができる実時間処理ソフトウェアの制御装置および制御方法を提供する。  【解決手段】  制御対象機器の取り得る状態〔１〕３１１〜状態〔６〕３１６のそれぞれに対して、その状態中での処理が実時間処理を必要としているか否かを示すリアルタイム性フラグＦ１〜Ｆ６と、直前の状態と現在の状態とで決まる優先度レベルＰ１〜Ｐ６とを設定し、タスク優先度管理部１０４が、制御対象機器の状態遷移に伴って、リアルタイム性フラグと優先度レベルに基づいて、タスクの優先度を変化させる。  【選択図】  図１
2006059340.tif 000002
【特許請求の範囲】
【請求項１】
複数の動作状態を有する機器のそれぞれの状態に対応するタスクの実行制御を、各タスク毎に設定されている優先度に基づいて行なう実時間処理ソフトウェア制御方法であって、
前記機器の状態が遷移するごとに、前記機器の遷移後の動作状態に対応するタスクの優先度を更新する優先度更新ステップを含む、
ことを特徴とする実時間処理ソフトウェア制御方法。
【請求項２】
請求項１に記載の実時間処理ソフトウェア制御方法において、
前記優先度更新ステップは、前記機器の複数の動作状態ごとに設定された優先度レベル値に基づいて前記優先度を更新するステップである、
ことを特徴とする実時間処理ソフトウェア制御方法。
【請求項３】
請求項２に記載の実時間処理ソフトウェア制御方法において、
前記優先度レベル値は、前記機器の遷移直前の状態と遷移後の状態とにより決まる値である、
ことを特徴とする実時間処理ソフトウェア制御方法。
【請求項４】
請求項１に記載の実時間処理ソフトウェア制御方法において、
前記優先度更新ステップは、前記機器の状態が遷移する毎に、前記機器の遷移後の動作状態に対応するタスクの実時間処理の必要性を判断する判定ステップを含み、
前記判定ステップにて実時間処理が必要と判断されたときのみ、前記機器の遷移後の動作状態に対応するタスクの優先度を更新する、
ことを特徴とする実時間処理ソフトウェア制御方法。
【請求項５】
請求項４に記載の実時間処理ソフトウェア制御方法において、
前記判定ステップは、前記機器の複数の動作状態ごとに設定された、実時間処理の必要性を示すリアルタイム性フラグに基づいて、前記機器の遷移後の状態に対応するタスクの実時間処理の必要性を判断する、
ことを特徴とする実時間処理ソフトウェア制御方法。
【請求項６】
複数の動作状態を有する機器のそれぞれの状態に対応するタスクの実行制御を、各タスク毎に設定されている優先度に基づいて行なう実時間処理ソフトウェア制御装置であって、
前記機器の状態が遷移するごとに、前記機器の遷移後の動作状態に対応するタスクの優先度を変更するタスク優先度管理部を備える、
ことを特徴とする実時間処理ソフトウェア制御装置。
【請求項７】
請求項６に記載の実時間処理ソフトウェア制御装置において、
前記機器の複数の動作状態ごとに設定される、前記機器の遷移直前の状態と前記優先度の変更パラメータ値とを対応させた優先度レベルテーブルを格納する優先度レベルテーブル格納部を備え、
前記タスク優先度管理部は、前記機器の状態が遷移する毎に、前記優先度レベルテーブル格納部を参照して、遷移後の状態に対して設定された前記優先度レベルテーブルから前記機器の遷移直前の状態に対応する前記変更パラメータ値を読み出し、該読み出した変更パラメータ値に基づき、前記機器の遷移後の動作状態に対応するタスクの優先度を変更する、
ことを特徴とする実時間処理ソフトウェア制御装置。
【請求項８】
請求項６又は請求項７に記載の実時間処理ソフトウェア制御装置において、
前記機器の複数の動作状態のそれぞれに対応するタスクの実時間処理の必要性を示すリアルタイム性フラグを格納するリアルタイム性フラグ保持部を備え、
前記タスク優先度管理部は、前記機器の状態が遷移する毎に、前記リアルタイム性フラグ保持部から前記機器の遷移後の状態に対応するリアルタイム性フラグを読み出して、当該状態に対応するタスクの実時間処理の必要性を判断し、実時間処理が必要と判断されたときのみ、前記機器の遷移後の状態に対応するタスクの優先度を更新する、
ことを特徴とする実時間処理ソフトウェア制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は機器組み込み向けの実時間処理ソフトウェア制御装置、及び制御方法に関するものである。
【背景技術】
【０００２】
従来の機器組み込み向けの実時間処理ソフトウェアによる制御方法としては、例えば特許文献１に記載のタスク実行制御方法のように、予め決定されているタスクの実行時刻に基づきタスクの優先度を変更させてタスクスケジューリングを行う方法がある。
【０００３】
以下、従来のタスク実行制御方法について説明する。
図５は、従来のタスク実行制御方法を説明するための図である。
図５において、Ａはタスクの実行環境を表す。実行環境Ａは、ハードウェア層Ａ１と、オペレーションシステム（ＯＳ）層Ａ２と、ＯＳ層Ａ２上で動作するアプリケーション層Ａ３とから成る。
【０００４】
ハードウェア層Ａ１は、中央演算装置（ＣＰＵ）５０６、メモリ５０７、グラフィックデバイス５０８などのハードウェア資源を有する。
【０００５】
アプリケーション層Ａ３内には、アプリケーション群の実行に伴って実行されるタスクが複数含まれている。図５には、アプリケーション層Ａ３内のタスクとして、タスクＡ５０９、タスクＢ５１０、及びタスクＣ５１１を例示している。ここで、タスクＡは、所定の周期で繰り返し実行される性質を有するものであり、タスクＡ〜Ｃのうち優先度が最も高いものである。タスクＢは、タスクＡとタスクＢの共有資源（以下「セマフォ」とする。）を使用して実行されるものであり、タスク処理を実行するために要する前記共有資源の占有時間長が固定されている性質を有する。タスクＢはその優先度がタスクＡ〜Ｃのうち最も低いものである。タスクＣは、タスクＡ、Ｂと資源を共有するものではなく、その優先度がタスクＡ〜Ｃのうち２番目のものである。
【０００６】
また、タスク実行制御装置５００は、ＯＳ層Ａ２に含まれるカーネルの一部として、タスクのスケジューリングに関する処理を行なうものである。つまり、このタスク実行制御装置５００は、タスクＡ５０９、タスクＢ５１０、及びタスクＣ５１１の実行順序を制御するスケジューリング部５０１と、タスク共有資源の排他制御やタスク割り込みに伴う優先度の逆転を回避するための処理を行なう管理部５０２と、スケジューリング部５０１がタスク実行順序制御を行なうために参照するための時間情報である余裕時間を算出する余裕時間算出部５０３とを有している。ここで、余裕時間とは、タスクＣ５１１が共有資源を解放してからタスクＡ５０９が実行開始されるまでの時間的な余裕を示すものであり、以下の計算式（１）により算出される。
【０００７】
余裕時間＝タスクＡの実行開始予定時刻−タスクＢの共有資源解放時刻・・・（１）
また、前記管理部５０２は、タスク共有資源の排他制御に関する処理を行なうセマフォ管理部５０４と、タスクの割り込みに関連してタスクの優先度を調整する優先度管理部５０５とを有する。
【０００８】
次に動作について説明する。
タスクＢ５１０が、セマフォ獲得要求をセマフォ管理部５０４に対して発行すると、余裕時間算出部５０３は、セマフォ管理部５０４からの指示に従って、余裕時間を算出する。
【０００９】
セマフォ管理部５０４は、上記余裕時間が負の値である場合は、タスクＢ５１０による前記共有資源の占有を認めず、その旨をスケジューリング部５０１に通知する。スケジューリング部５０１は、タスクＢ５１０を待機状態とし、タスクＡ５０９の処理終了をまってからタスクＢ５１０の処理を行なわせる。一方、セマフォ管理部５０４は、上記余裕時間が正の値である場合は、タスクＢ５１０に共有資源の占有を認め、その旨をスケジューリング部５０１に通知する。スケジューリング部５０１は、かかる通知を受けて、タスクＢ５１０を動作状態とする。
【００１０】
次に、タスクＢ５１０の動作中に、スケジューリング部５０１がタスクＣ５１１からの実行開始要求を受けると、優先度管理部５０５は、セマフォ管理部５０４から前記余裕時間に関する情報を得る。そして、この余裕時間を初期値とする許容時間を設定し、該許容時間を付加した優先度切替指示をスケジューリング部５０１に送る。
【００１１】
スケジューリング部５０１は、前記優先度切替指示を受けると、タスクＣ５１１の実行開始からの経過時間を割込処理時間として計測し、前記割込処理時間が前記許容時間を超えないようにチェックしながらタスクＣ５１１の終了を待つ。スケジューリング部５０１は、タスクＣ５１１が前記許容時間の範囲内でその処理を終えた場合、タスクＢ５１０を動作状態にする。一方、スケジューリング部５０１は、タスクＣ５１１の処理が前記許容時間となるまで続いた場合は、前記優先度切替指示に従って、タスクＢ５１０の優先度を、タスクＡ５０９と同じレベルまで引き上げる。これにより、タスクＣ５１１による割り込み処理が生じた場合、その割込処理時間が余裕時間長に達した時点でタスクＢ５１０の優先度がタスクＡ５０９と同じ優先度に上げられるため、タスクＢ５１０の処理がタスクＣ５１１の割込みの影響で遅らされる「優先度逆転現象」を回避することが可能となる。
【特許文献１】特開２００３−１３１８９２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
以上のように、従来の実時間処理ソフトウェアによる制御方法では、予め決定されているタスクの実行時刻に基づきタスクの優先度を変更させて、タスクスケジューリングを行なっているので、実時間処理ソフトウェアを設計する際には、各タスクの実行時刻を制御対象機器の設計段階において予め決定しておく必要がある。
【００１３】
ところが、タスクの実行時刻は、設計の細部が決定する設計最終段階までは、その詳細な値を決定することが非常に困難であり、また、機器仕様を基にした上流工程の設計段階においては、そもそも設計内容にタスクの実行時刻を含めることは行なわない。このため、従来の実時間処理ソフトウェア制御方法は、実時間処理を行なうためのソフトウェアの十分な設計を行っておくことが非常に困難なものであった。
【００１４】
本発明は上記課題を解決するためになされたものであり、機器仕様を基にした機器の状態遷移に実時間処理が必要か否かの情報を対応付け、機器の状態遷移に伴ってタスクの優先度を自動的に変更することにより、事前の設計段階から実時間性を考慮したソフトウェア設計を可能とし、プログラム実行時のタスク優先度を柔軟に変更することが可能な実時間処理ソフトウェア制御装置、及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本願の請求項１に係る発明は、複数の動作状態を有する機器のそれぞれの状態に対応するタスクの実行制御を、各タスク毎に設定されている優先度に基づいて行なう実時間処理ソフトウェア制御方法であって、前記機器の状態が遷移するごとに、前記機器の遷移後の動作状態に対応するタスクの優先度を更新する優先度更新ステップを含むものである。
【００１６】
本願の請求項２に係る発明は、請求項１に記載の実時間処理ソフトウェア制御方法において、前記優先度更新ステップは、前記機器の複数の動作状態ごとに設定された優先度レベル値に基づいて前記優先度を更新するステップとしたものである。
【００１７】
本願の請求項３に係る発明は、請求項２に記載の実時間処理ソフトウェア制御方法において、前記優先度レベル値は、前記機器の遷移直前の状態と遷移後の状態とにより決まる値であることとしたものである。
【００１８】
本願の請求項４に係る発明は、請求項１に記載の実時間処理ソフトウェア制御方法において、前記優先度更新ステップは、前記機器の状態が遷移する毎に、前記機器の遷移後の動作状態に対応するタスクの実時間処理の必要性を判断する判定ステップを含み、前記判定ステップにて実時間処理が必要と判断されたときのみ、前記機器の遷移後の動作状態に対応するタスクの優先度を更新することを特徴とするものである。
【００１９】
本願の請求項５に係る発明は、請求項４に記載の実時間処理ソフトウェア制御方法において、前記判定ステップは、前記機器の複数の動作状態ごとに設定された、実時間処理の必要性を示すリアルタイム性フラグに基づいて、前記機器の遷移後の状態に対応するタスクの実時間処理の必要性を判断するステップとしたものである。
【００２０】
本願の請求項６に係る発明は、複数の動作状態を有する機器のそれぞれの状態に対応するタスクの実行制御を、各タスク毎に設定されている優先度に基づいて行なう実時間処理ソフトウェア制御装置であって、前記機器の状態が遷移するごとに、前記機器の遷移後の動作状態に対応するタスクの優先度を更新するタスク優先度管理部を備えることとしたものである。
【００２１】
本願の請求項７に係る発明は、請求項６に記載の実時間処理ソフトウェア制御装置において、前記機器の複数の動作状態ごとに設定される、前記機器の遷移直前の状態と前記優先度の変更パラメータ値とを対応させた優先度レベルテーブルを格納する優先度レベルテーブル格納部を備え、前記タスク優先度管理部は、前記機器の状態が遷移する毎に、前記優先度レベルテーブル格納部を参照して、遷移後の状態に対して設定された前記優先度レベルテーブルから前記機器の遷移直前の状態に対応する前記変更パラメータ値を読み出し、該読み出した変更パラメータ値に基づき、前記機器の遷移後の動作状態に対応するタスクの優先度を変更することとしたものである。
【００２２】
本願の請求項８に係る発明は、請求項６又は請求項７に記載の実時間処理ソフトウェア制御装置において、前記機器の複数の動作状態のそれぞれに対応するタスクの実時間処理の必要性を示すリアルタイム性フラグを格納するリアルタイム性フラグ保持部を備え、前記タスク優先度管理部は、前記機器の状態が遷移する毎に、前記リアルタイム性フラグ保持部から前記機器の遷移後の状態に対応するリアルタイム性フラグを読み出して、当該状態に対応するタスクの実時間処理の必要性を判断し、実時間処理が必要と判断されたときのみ、前記機器の遷移後の状態に対応するタスクの優先度を更新することとしたものである。
【発明の効果】
【００２３】
本願請求項１の発明によれば、複数の動作状態を有する機器のそれぞれの状態に対応するタスクの実行制御を、各タスク毎に設定されている優先度に基づいて行なう実時間処理ソフトウェア制御方法であって、前記機器の状態が遷移するごとに、前記機器の遷移後の動作状態に対応するタスクの優先度を更新するので、事前の設計段階から実時間性を考慮したソフトウェア設計を可能とし、プログラム実行時のタスク優先度を柔軟に変更することが可能となる。
【００２４】
本願請求項２の発明によれば、請求項１に記載の実時間処理ソフトウェア制御方法において、前記優先度更新ステップは、前記機器の複数の動作状態ごとに設定された優先度レベル値に基づいて前記優先度を更新するので、状態遷移に伴ってタスクの優先度を動的かつ自動的に変化させることができ、これにより、複数の動作状態を有する機器の上流設計段階から、タスク実行時の優先度設計を状態遷移設計に同調させ、且つ実際の動作状態に基づいて行なうことが可能となる。また、予め状態遷移毎の優先度記述を行うこととしたので、機器設計の後工程でのタスク優先度設計を行う必要がなくなる。
【００２５】
本願請求項３の発明によれば、請求項２に記載の実時間処理ソフトウェア制御方法において、前記優先度レベル値を、前記機器の遷移直前の状態と遷移後の状態とにより決定するので、状態毎の優先度を相対的に記述することができ、これにより、被制御機器のタスク実行時刻の詳細が判明する前の上流設計工程において、実時間性を考慮した状態遷移とタスク優先度の設計を行うことができる。
【００２６】
本願請求項４の発明によれば、請求項１に記載の実時間処理ソフトウェア制御方法において、前記優先度更新ステップは、前記機器の状態が遷移する毎に、前記機器の遷移後の動作状態に対応するタスクの実時間処理の必要性を判断する判定ステップを含み、前記判定ステップにて実時間処理が必要と判断されたときのみ、前記機器の遷移後の動作状態に対応するタスクの優先度を更新するので、実時間処理の必要性のないタスクに対する優先度の更新を回避できる。
【００２７】
本願請求項５の発明によれば、請求項４に記載の実時間処理ソフトウェア制御方法において、前記判定ステップは、前記機器の複数の動作状態ごとに設定された、実時間処理の必要性を示すリアルタイム性フラグに基づいて、前記機器の遷移後の状態に対応するタスクの実時間処理の必要性を判断するので、タスクの実時間処理の必要性の判断は簡単なものとなる。
【００２８】
本願請求項６の発明によれば、複数の動作状態を有する機器のそれぞれの状態に対応するタスクの実行制御を、各タスク毎に設定されている優先度に基づいて行なう実時間処理ソフトウェア制御装置であって、前記機器の状態が遷移するごとに、前記機器の遷移後の動作状態に対応するタスクの優先度を更新するタスク優先度管理部を備えることとしたので、事前の設計段階から実時間性を考慮したソフトウェア設計を可能とし、プログラム実行時のタスク優先度を柔軟に変更することが可能となる。
【００２９】
本願請求項７の発明によれば、請求項６に記載の実時間処理ソフトウェア制御装置において、前記機器の複数の動作状態ごとに設定される、前記機器の遷移直前の状態と前記優先度の変更パラメータ値とを対応させた優先度レベルテーブルを格納する優先度レベルテーブル格納部を備え、前記タスク優先度管理部は、前記機器の状態が遷移する毎に、前記優先度レベルテーブル格納部を参照して、遷移後の状態に対して設定された前記優先度レベルテーブルから前記機器の遷移直前の状態に対応する前記変更パラメータ値を読み出し、該読み出した変更パラメータ値に基づき、前記機器の遷移後の動作状態に対応するタスクの優先度を変更することとしたので、状態遷移に伴ってタスクの優先度を動的かつ自動的に変化させることができ、これにより、複数の動作状態を有する機器の上流設計段階から、タスク実行時の優先度設計を状態遷移設計に同調させ、且つ実際の動作状態に基づいて行なうことが可能となる。また、予め状態遷移毎の優先度記述を行うこととしたので、機器設計の後工程でのタスク優先度設計を行う必要がなくなる。
【００３０】
本願請求項８の発明によれば、請求項６又は請求項７に記載の実時間処理ソフトウェア制御装置において、前記機器の複数の動作状態のそれぞれに対応するタスクの実時間処理の必要性を示すリアルタイム性フラグを格納するリアルタイム性フラグ保持部を備え、前記タスク優先度管理部は、前記機器の状態が遷移する毎に、前記リアルタイム性フラグ保持部から前記機器の遷移後の状態に対応するリアルタイム性フラグを読み出して、当該状態に対応するタスクの実時間処理の必要性を判断し、実時間処理が必要と判断されたときのみ、前記機器の遷移後の状態に対応するタスクの優先度を更新することとしたので、簡単な判断により、実時間処理の必要性のないタスクに対する優先度の更新を回避できる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態について説明する。
（実施の形態１）
この実施の形態１のソフトウェア制御装置は、複数の動作状態を有する機器の各状態に対応するタスクの実行制御を、各タスク毎に設定される優先度に基づいて行なうものであり、本発明に係るソフトウェア制御装置では、被制御対象機器の状態遷移毎に、遷移後の動作状態に対応するタスクに対して設定される優先度が更新される。
【００３２】
図１は、本発明の実施の形態１による実時間処理ソフトウェア制御装置の構成を表す概略図である。
図１において、実時間処理ソフトウェア制御装置１００は、状態遷移実行部１０１と、リアルタイム性フラグ保持部１０２と、優先度レベルテーブル格納部１０３と、タスク優先度管理部１０４とを有している。
【００３３】
状態遷移実行部１０１は、複数の動作状態を有する機器の各状態に対応するタスクＴｓ（１）〜Ｔｓ（ｎ）を実行するものである。ここで、複数の動作状態を有する機器は、例えば、ビデオテープレコーダやＤＶＤプレイヤーなどのＡＶ機器であり、当該機器の複数の動作状態は、停止状態、再生状態、録画状態、早送り状態などである。なお、以下、被制御機器の状態を、状態〔１〕，状態〔２〕，・・・，状態〔ｎ〕（ｎは整数）と表す。機器の状態〔１〕〜状態〔ｎ〕に対応するタスクＴｓ（１）〜Ｔｓ（ｎ）には、それぞれのタスクが他のタスクに比べてどの程度優先して動作する必要があるかを示すタスク優先度Ｔｐ（１）〜Ｔｐ（ｎ）が割り当てられている。
【００３４】
リアルタイム性フラグ保持部１０２は、被制御機器が状態〔ｉ〕（ｉ＝１〜ｎ）にあるときリアルタイム処理を行う必要性があるかどうかを示すリアルタイム性フラグＦ（ｉ）を格納するものである。リアルタイム性フラグＦ（ｉ）は、各状態〔１〕〜状態〔ｎ〕毎に設定されており、リアルタイム性フラグ保持部１０２には、機器の状態〔１〕〜状態〔ｎ〕に対応するリアルタイム性フラグＦ（１）〜Ｆ（ｎ）が格納されている。
【００３５】
優先度レベルテーブル格納部１０３は、機器の機器の状態〔１〕〜状態〔ｎ〕毎に設定される対応テーブルであって、状態機器の遷移直前の状態と、タスクＴｓ（１）〜Ｔｓ（ｎ）のタスク優先度Ｔｐ（１）〜Ｔｐ（ｎ）を変更するためのパラメータ値である優先度レベル値とを対応させた優先度レベルテーブルＴ（１）〜Ｔ（ｎ）を格納するものである。つまり、優先度レベルテーブル格納部１０３には、機器の状態〔１〕〜状態〔ｎ〕のそれぞれに対応する優先度レベルテーブルＴ（１）〜Ｔ（ｎ）が格納されている。
【００３６】
ここで、優先度レベルテーブルＴ（ｉ）の詳細について説明する。
図２は、優先度レベルテーブルＴ（ｉ）の内部の詳細な構造を示す。
優先度レベルテーブルＴ（ｉ）は、直前状態インデックス部２０１と、直前状態に対応した優先度レベル値保持部２０２とからなり、機器の動作状態〔ｉ〕に応じて設定されている。
【００３７】
優先度レベルテーブルＴ（ｉ）の直前状態インデックス部２０１に表されている値は、被制御機器の現状態〔ｋ〕に遷移する直前にあった動作状態〔１〕，〔２〕，・・・，〔ｎ〕を示すインデックス値Ｘ（１），Ｘ（２），・・・，Ｘ（ｎ）である。また、優先度レベルテーブルＴ（ｉ）の優先度レベル値保持部２０２の値は、直前にあった状態〔１〕，〔２〕，・・・，〔ｎ〕から現状態〔ｋ〕に遷移した際のそれぞれ個別の優先度レベル値Ｐｋ（１），Ｐｋ（２），・・・，Ｐｋ（ｎ）であり、これら直前状態インデックス部２０１の直前状態インデックス値Ｘ（ｎ）と、優先度レベル値保持部２０２の優先度レベル値Ｐｋ（ｎ）は、一組として扱われる。
【００３８】
次に、図１における、タスク優先度管理部１０４は、機器の動作状態が遷移する毎に、現在の状態〔ｋ〕に対応するタスクＴｓ（ｋ）のタスク優先度Ｔｐ（ｋ）を更新するものである。タスク優先度管理部１０４は、図１に示すように状態遷移管理部１０５と、タスク優先度更新部１０６とを有しており、状態遷移管理部１０５は、被制御機器の現在の状態〔ｋ〕、及び直前の動作状態を監視し、リアルタイム性フラグ格納部１０２から、現在の状態〔ｋ〕に対応付けられているリアルタイム性フラグＦ（ｋ）を読み出して、実時間処理の必要性を判断するものである。また、状態遷移管理部１０５は、優先度レベルテーブル格納部１０３にアクセスし、現在の状態〔ｋ〕に対応する優先度レベルテーブルＴ（ｋ）から、現在の状態と、直前の状態とに対応する優先度レベル値Ｐｋ（ｋ）を読み出す。
【００３９】
タスク優先度更新部１０６は、状態遷移管理部１０５から出力される優先度レベル値Ｐｋ（ｋ）に基づいて、現在の状態〔ｋ〕に対応するタスクＴｓ（ｋ）のタスク優先度Ｔｐ（ｋ）を更新するものである。
【００４０】
以上のように構成される実時間処理ソフトウェア制御装置１００は、ＣＰＵやメモリ等からなるハードウェア層と、リアルタイムＯＳ層と、リアルタイムＯＳ層上で動作するアプリケーション層とからなる階層構造により実現することができ、状態遷移実行部１０１は、アプリケーション層の一部として、タスク優先度管理部１０４は、リアルタイムＯＳ層の一部として、また、優先度レベルテーブル格納部１０３、及びリアルタイム性フラグ保持部１０２は、ハードウェア層のメモリの一部を割り当てることにより、それぞれ実現することができる。
【００４１】
図３（ａ）は、被制御機器がＤＶＤプレイヤーである場合の動作状態の遷移の例を示す図であり、タスク優先度管理部１０４が、ＤＶＤプレイヤーの停止状態〔１〕３１１、再生状態〔２〕３１２、早送り状態〔３〕３１３、一時停止状態〔４〕３１４、逆再生状態〔５〕３１５、及びスロー再生状態〔６〕３１６の動作遷移を管理する様子を模式的に表した図である。
【００４２】
また、図３（ｂ）は、ＤＶＤプレイヤーが再生状態である場合における優先度レベルテーブルの具体的な内部構成の一例を示す図である。
【００４３】
図４は、機器の動作状態がある状態から次の状態に遷移した際に、タスク優先度Ｔｐ（ｎ）が更新される処理を示す。
【００４４】
次に本実施の形態１の動作について図１ないし図４を用いて説明する。
今、被制御機器がＤＶＤプレイヤーであるとすると、その動作状態は、使用者のボタン操作等による各種のコマンド入力をきっかけとして遷移する。例えば図示しないコントローラに設けられた再生キー（ボタン）の押下により、図３（ａ）に示すように、停止状態〔１〕から再生状態〔２〕に遷移する。この際に、遷移条件として、例えばペアレンタルロックが掛けられているような場合は、当該ロックが解除された場合のみ、再生状態に遷移することができる。同様に、再生状態〔２〕からは早送りキーの押下により高速再生を行う早送り状態〔３〕に、一時停止キーの押下により同じコマの再生を繰り返す一時停止状態〔４〕に、逆再生キーの押下により通常再生とは逆方向再生を行う逆再生状態〔５〕に、スロー再生キーの押下により通常再生よりも遅い速度で再生を行うスロー再生状態〔６〕に、それぞれ遷移する。また、これら早送り状態〔３〕、一時停止状態〔４〕、逆再生状態〔５〕、スロー再生状態〔６〕から再生キーの押下により、再生状態〔２〕に遷移する。また、再生状態〔２〕、早送り状態〔３〕、一時停止状態〔４〕、逆再生状態〔５〕、スロー再生状態〔６〕では停止キーを押下することにより、停止状態〔１〕にそれぞれ遷移する。
【００４５】
ここで、ＤＶＤプレイヤーの状態遷移の各状態とそのリアルタイム処理の要否、各状態における優先度レベル値は、ベクトル的に、
（状態，リアルタイム処理の要否，優先度レベル値）
と表わすことができる。
【００４６】
この表記法によれば、図３（ｂ）に示す、現在の状態を再生状態とした場合にその直前の状態が停止，再生，早送り，一時停止，逆再生，スロー再生のいずれかの状態である場合は、それぞれ以下のように記すことができる。
【００４７】
（停止，否，＋１０）
（再生，要，０）
（早送り，要，＋５）
（一時停止，否，＋８）
（逆再生，要，＋４）
（スロー再生，要，＋５）
【００４８】
機器の状態が遷移すると、まず、状態遷移管理部１０５は、遷移後の状態を判断し、リアルタイム性フラグ保持部１０２から現在の状態〔ｋ〕に対応するリアルタイム性フラグＦ（ｋ）を取得する（ステップＳ４０１）。続いて、状態遷移管理部１０５は、取得したリアルタイム性フラグＦ（ｋ）を用いて現在の状態〔ｋ〕が実時間処理を必要とする状態であるかどうかを判定する（ステップＳ４０２）。
【００４９】
この判定の結果、実時間処理が必要な状態であると判断されると、状態遷移管理部１０５は、優先度レベルテーブル格納部１０３から現在の状態〔ｋ〕に対応する優先度レベルテーブルＴ（ｋ）における優先度レベル値Ｐｋ（ｉ）を取得する（ステップＳ４０３）。この優先度レベルテーブルＴ（ｋ）の優先度レベル値Ｐｋ（ｉ）は、遷移前の状態が状態〔１〕〜〔ｎ〕のうちのどの状態にあったかによって異なる値であり、遷移前の機器の状態によって、取得される優先度レベル値Ｐｋ（ｉ）は異なる値となる。
【００５０】
そして、状態遷移管理部１０５は、ステップＳ４０３で取得した優先度レベル値Ｐｋ（ｉ）を、タスク優先度更新部１０６に出力する。
【００５１】
タスク優先度更新部１０６は、現在の状態〔ｋ〕に対応するタスクＴｓ（ｋ）が保持しているタスク優先度Ｔｐ（ｋ）に、状態遷移管理部１０５から出力される優先度レベル値Ｐｋ（ｉ）を加えて新たなタスク優先度に更新する（ステップＳ４０４）。さらに、タスク優先度更新部１０６は、ステップＳ４０４で求められた新たなタスク優先度を現在のタスクのタスク優先度Ｔｐ（ｋ）として設定する（ステップＳ４０５）。
【００５２】
ここで、優先度レベルテーブルＴ（ｋ）に保持される優先度レベル値Ｐｋ（ｉ）は、現在の状態になる直前の状態と比較して現在の状態がより実時間処理を優先して必要である場合には正の値をもち、実時間処理は必要であるが直前の状態に比較して実時間処理の優先度が低い場合には負の値を持つ。また、現在の状態で直前の状態と比較してより強く実時間処理が求められる場合には、優先度レベル値Ｐｋ（ｉ）は絶対値の大きな正の値を持つ。逆に現在の状態で直前の状態に比較してより弱い実時間処理しか必要とされない場合には、優先度レベル値Ｐｋ（ｉ）は、絶対値の大きな負の値を持つ。
【００５３】
上記のようにステップＳ４０１〜Ｓ４０５までの処理によって新たな状態に適応したタスクの優先度が設定されると、その後は、ＣＰＵなどの演算部（図示せず）は、実際に現在の状態〔ｋ〕で必要とされる処理を行う（ステップＳ４０６）。
【００５４】
以後、機器の状態が遷移する毎に上記ステップＳ４０１〜Ｓ４０６と同様の処理が行われ、状態遷移に伴ってタスクの優先度が動的かつ自動的に変化される。
【００５５】
以下では、本実施の形態１に係る実時間処理ソフトウェア制御装置１００の具体的な動作として、ＤＶＤプレイヤーが停止状態から再生状態に遷移する場合を例にとって説明する。
【００５６】
上述したように、停止状態〔１〕３１１〜スロー再生状態〔６〕３１６のそれぞれには、各状態に対応するリアルタイム性フラグＦ（１）〜Ｆ（６）、及び優先度レベルテーブルＴ（１）〜Ｔ（６）がそれぞれ対応付けられている。また、図示しないが、停止状態〔１〕３１１〜逆再生状態〔６〕３１６のそれぞれは、各状態で行われるべき機器制御プログラム、状態変化のきっかけとなる信号入力によって次にどの状態へ遷移するべきかを示す遷移先情報や遷移条件などの情報を保持している。
【００５７】
状態遷移管理部１０５は、このような動作状態の状態遷移を監視しており、現在の状態に対応するリアルタイム性フラグを取得する。
【００５８】
今、停止状態から再生キーが操作されて、ＤＶＤプレイヤーの動作状態が、停止状態〔１〕３１１から再生状態〔２〕３１２に遷移した場合に、タスク優先度管理部１０４内の状態遷移管理部１０５は、現在の状態である再生状態〔２〕３１２に対応するリアルタイム性フラグＦ（２）を、リアルタイム性フラグ保持部１０２から読み出し、現在の状態である再生状態（状態〔２〕）に対応するリアルタイム性フラグＦ（２）として「要（リアルタイム処理）」を得る（ステップＳ４０１）。
【００５９】
状態遷移管理部１０５は、再生状態〔２〕３１２の実時間処理の必要性を判断する（ステップＳ４０２）。状態遷移管理部１０５は、リアルタイム性フラグＦ（２）として「要（リアルタイム処理）」を得たため、再生状態〔２〕３１２に対して設定されているフラグが、実時間処理の必要性を示すものであると判断し、優先度レベルテーブル格納部１０３にアクセスし、優先度レベルテーブル格納部１０３に格納されている複数の優先度レベルテーブルの中から、再生状態〔２〕３１２に対応する優先度レベルテーブルＴ（２）にアクセスする。
【００６０】
状態遷移管理部１０５は、優先度レベルテーブルＴ（２）から、直前の状態である停止状態〔１〕３１１からの遷移Ｘ（１）に対応する優先度レベル値Ｐｋ（２）として「＋１０」を読み出し（ステップＳ４０３）、該読み出した優先度レベル値を、タスク優先度更新部１０６に出力する。
【００６１】
タスク優先度更新部１０６は、現在の状態に対応するタスクのタスク優先度を更新する。例えば、再生状態〔２〕３１２に対応するタスクＴｓ（２）のタスク優先度Ｔｐ（２）に、状態遷移管理部１０５から出力される優先度レベル値「＋１０」を加算し、タスクＴｓ（２）のタスク優先度Ｔｐ（２）の値をタスク優先度更新部１０６に渡す。タスク優先度更新部１０６はこの優先度レベル値Ｐｋ（２）の値「＋１０」を増分値としてタスクＴｓ（２）のタスク優先度Ｔｐ（２）に加算することでタスク優先度を更新する（ステップＳ４０４，Ｓ４０５）。その結果、タスクＴｓ（２）はタスク優先度が上昇し、状態遷移前の状態に比して優先して実行されやすくなる。
【００６２】
これにより、ＤＶＤプレイヤーの状態遷移に伴って、再生状態〔２〕３１２に対応するタスクＴｓ（２）のタスク優先度Ｔｐ（２）が動的かつ自動的に更新される。状態遷移実行部１０１は、この動的かつ自動的に変更されたタスク優先度に応じてタスクに対応する動作状態内のプログラムの動作を開始する（ステップＳ４０６）。
【００６３】
このように、本実施の形態１では、制御対象機器の取り得る状態のそれぞれに対して、その状態中での処理が実時間処理を必要としているか否かを示すリアルタイム性フラグＦ（ｉ）と、直前の状態と現在の状態とで決まる優先度レベル値Ｐｋ（ｉ）とを設定し、制御対象機器の状態遷移に伴って、リアルタイム性フラグＦ（ｉ）と優先度レベル値Ｐｋ（ｉ）とに基づいてタスクの優先度を変化させるようにしたので、各状態の実時間処理の必要性によって状態の優先度を相対的に記述できることとなり、この結果、詳細な実行時刻が判明する前の上流設計工程において実時間性を考慮した状態遷移、及びタスク優先度の設計を行うことができるという効果が得られる。
【００６４】
なお、上記実施の形態１では、優先度レベル値Ｐｋ（ｉ）を、直前の動作状態と現在の状態〔ｋ〕とにより決定される相対的な値としたが、優先度レベル値Ｐｋ（ｉ）は、現在の動作状態のみにより決定される絶対的な値としてもよい。
【００６５】
また、上記実施の形態１では、タスク優先度を変化させるタスクは、状態遷移が発生した自タスクとしたが、タスク優先度を変化させるタスクは、状態遷移が発生した自タスク以外の１つまたは複数の他タスクであってもよい。
【産業上の利用可能性】
【００６６】
本発明は、例えばビデオテープレコーダ、ＤＶＤプレイヤーなどのように、複数の動作状態を有し、各状態毎にタスクの優先度を変化させなければならない機器の組み込みソフトウェア制御方法として有用である。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態１による実時間処理ソフトウェア制御装置の構成を表す図である。
【図２】実施の形態１の優先度レベルテーブルを説明するための図であり、優先度レベルテーブルの内部構成を表す図である。
【図３（ａ）】本発明の実施の形態１による実時間処理ソフトウェア制御装置の概略動作を説明する模式図である。
【図３（ｂ）】実施の形態１の優先度レベルテーブルを説明するための図であり、優先度レベルテーブルの具体的な内部構成を表す図である。
【図４】実施の形態１の実時間処理ソフトウェア制御装置の動作を説明するためのフローチャートである。
【図５】従来のタスク実行制御方法を説明する模式図である。
【符号の説明】
【００６８】
１０１  状態遷移実行部
１０２  リアルタイム性フラグ保持部
１０３  優先度レベルテーブル格納部
１０４  タスク優先度管理部
１０５  状態遷移管理部
１０６  タスク優先度更新部
２０１    直前状態インデックス部
２０２    優先度レベル値保持部
Ｆ（１）〜Ｆ（５）  リアルタイム性フラグ
Ｐｋ（１），Ｐｋ（２），Ｐｋ（ｎ）  優先度レベル値
Ｔ（ｋ）  優先度レベルテーブル
Ｔｐ（ｎ）  タスク優先度
Ｔｓ（ｎ）  タスク
Ｘ（１）〜Ｘ（ｎ）  直前状態インデックス値
【図１】
2006059340.tif 000003
【図２】
2006059340.tif 000004
【図３（ａ）】
2006059340.tif 000005
【図３（ｂ）】
2006059340.tif 000006
【図４】
2006059340.tif 000007
【図５】
2006059340.tif 000008