JP2002287987A - タスクの並行処理を実行させるためのプログラム及び並行処理する組込み制御装置及び並行処理方法並びにプログラムが記録されている記録媒体 - Google Patents

タスクの並行処理を実行させるためのプログラム及び並行処理する組込み制御装置及び並行処理方法並びにプログラムが記録されている記録媒体

Info

Publication number
JP2002287987A
JP2002287987A JP2001092624A JP2001092624A JP2002287987A JP 2002287987 A JP2002287987 A JP 2002287987A JP 2001092624 A JP2001092624 A JP 2001092624A JP 2001092624 A JP2001092624 A JP 2001092624A JP 2002287987 A JP2002287987 A JP 2002287987A
Authority
JP
Japan
Prior art keywords
task
type
processing
tasks
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2001092624A
Other languages
English (en)
Inventor
Kazutoshi Hirai
和年 平井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namiki Precision Jewel Co Ltd
Original Assignee
Namiki Precision Jewel Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namiki Precision Jewel Co Ltd filed Critical Namiki Precision Jewel Co Ltd
Priority to JP2001092624A priority Critical patent/JP2002287987A/ja
Publication of JP2002287987A publication Critical patent/JP2002287987A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 多数のタイマを使用してもメモリ消費を抑え
ると共に、ハード資源を有効活用する。 【解決手段】 タスクT1〜T5は、個々にカウンタと
判定値を備えて、基準時間毎の割込みステップCの回数
をカウントし、基準時間を単位としたカウントタイマと
して機能させる。また、タスクT1〜T5は、並行処理
ステップMの総実行所要時間が前記基準時間内に納まる
ように予めプログラミングされているので、基準時間サ
イクルS毎に必ず一回CPU1の使用割り当てを得るこ
とになる。従って、タスクT1〜T5は基準時間のほぼ
整数倍のタイマを備えると共に、ほぼ基準時間毎に並行
処理されることと同義となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、工作機械・家電機
器などを電子電気制御するためのプログラムを細かいタ
スクに分割し、分割された複数のタスクを時分割方法に
よってタスクの並行処理を実行させるためのプログラム
及び並行処理する組込み制御装置及び並行処理方法並び
にプログラムが記録されている記録媒体に関する。
【0002】
【従来の技術】従来から工作機械・家電機器などの機器
に組み込まれる組込み制御装置は、一般的なパソコン等
に用いられる制御装置にくらべて、制御能力としてのリ
アルタイム性と、搭載スペースの観点からコンパクト性
が求められてきた。
【0003】制御能力としてのリアルタイム性とは、処
理結果の正しさが、結果値の正しさに加えて結果を出す
時間にも依存することである。いうならば、工作機械・
家電機器などは制御装置で処理している間にも機器の状
態は刻一刻変化するので、搭載される機器の状態を計測
後直ぐに処理して、機器の状態が計測から大きく変化し
ないうちに制御命令を出力する、実時間処理が求められ
るということである。
【0004】昨今の傾向としては、組込み対象機器の多
機能化に伴って、多機能化とリアルタイム性を高い次元
で両立させるために、プログラムをより小さな実行単位
としてのタスクに分割し、複数のタスクを時分割による
並行処理をする場合が多い。具体的には、タスクの実行
順番の制御方法いわゆるスケジューリングや優先順位処
理について工夫がなされた、特開平10−78878号
公報、特開平08−328881号公報などがあげられ
る。
【0005】
【発明が解決しようとする課題】しかしながら、前述の
ような工夫の一方で、搭載するハード資源をより少なく
するコンパクト化の要求や組込み対象機器の操作性向上
の要求から、例えばオンオフ時間の組み合わせで一つの
スイッチで複数の機能を割り当てる多機能スイッチなど
が多用されている。
【0006】多機能スイッチの場合、スイッチオンの時
間をカウントするタイマと、オフ時間をカウントするタ
イマ、及びオンオフ時間の組み合わせに対応するタスク
の関係を記述するマトリクスが、一つのスイッチに対し
て多重に必要となる。通常こうしたタイマは、メモリ上
にソフトタイマを形成するために、前述のように多数の
タイマを用意する場合、多くの搭載メモリが必要とな
る。
【0007】また、多数のタイマを必要とする場合、従
来のタスク実行の優先順位処理では処理手順も複雑とな
り、処理に要する管理プログラムや、タスク間の優先順
番を規定する条件マトリクス、並びにタスクの状態やタ
スク起動のアドレスなどを記述するタスクステータスな
どが大型化する。そのため、前述の公報などの従来の方
法では、搭載メモリの増加や高速処理可能なCPUへの
切替えなどが必要とされ、搭載スペースの観点及びコス
トの観点から問題があった。
【0008】本発明の課題は、多数のタイマを必要とす
る場合でも、タイマによるメモリ占有量を抑えるととも
に、タスクの並行処理を実行させるためのプログラム及
び並行処理する組込み制御装置及び並行処理方法並びに
プログラムが記録されている記録媒体を提示し、ハード
資源を有効に活用することである。
【0009】
【課題を解決するための手段】以上の課題を解決するた
め、請求項1記載の発明は、演算処理ユニット(以下、
CPUと記す)及びメモリ等を備え、各種機器類に搭載さ
れてこれらの機器類の動作を電子電気制御する組込み制
御装置におけるタスクの並行処理を実行させるためのプ
ログラムであって、所定の基準時間毎に割込みをかける
処理を行なう割込みステップと、予め設定され、かつ、
短時間で処理可能な複数の第一種タスクにそれぞれ対応
して設定されたカウンタのカウント値を上げるか若しく
は下げるカウントステップと、前期複数の第一種タスク
の一つずつについて、各前記第一種タスク毎に設定され
た前記カウントステップにおけるカウント値が予め設定
された判定値か否かに基づいて前記第一種タスクを実行
するか否かの判断を行なうと共に、実行すると判断され
た前記第一種タスクを実行させるタスク並行処理を、全
ての前記第一種タスクに対して順次行なう並行処理ステ
ップと、を含み、これらのステップを前記割込みステッ
プが行なわれてから次ぎの前記割込みステップが行なわ
れるまでの一回の基準時間内のサイクル毎に繰り返し行
なうことを特徴とする。
【0010】請求項1記載の発明は、組込み制御装置に
おけるタスクにおいて、タイマ処理と並行処理の少なく
ともいずれか一つを必要とするタスクを、第一種タスク
として区分する。そして、第一種タスクにおいて必要と
されるタイマ処理を、従来のように各タスクがそれぞれ
メモリ領域にソフトタイマを所有するのではなく、第一
種タスクの個々にカウンタを備えて、割込みステップの
実施回数をカウントして基準時間(割込みの時間間隔)
を単位としたカウントタイマとして機能させる。即ち、
第一種タスクが、従来のようにそれぞれメモリ上にソフ
トタイマを生成するステップ及び該タイマをそれぞれカ
ウントするステップを経ず、代わりに、並行処理ステッ
プの中で基準時間毎に周期的に訪れる割込みステップの
回数をカウントするカウントステップ及びカウント値を
判定値と比較して実行可否判断する判定ステップを経る
ことで、タイマ効果を持たせることができる。
【0011】例えば、基準時間25ms毎に割込みステ
ップが実行されて、第一種タスクの並行処理ステップに
移行する。第一種タスクのあるタスクCがカウンタ(初
期値)「0」と判定値「2」を備えるならば、2回目の
割込みステップでカウンタは判定値に達して実行され
る。そして、終了時にカウンタを「0」にリセットし、
次の割込みステップで再びカウントステップに入る。上
記動作によれば、ほぼ50msのタイマを使用したのと
同様の効果を得られる。また、並行処理ステップにおい
て、第一種タスクが一基準時間サイクル内で予め決めら
れた順番にしたがって全ての第一種タスクについて順次
実行対象とされ実行可否判断されることで、第一種タス
クを時分割的に並列処理するのと同様の効果を奏するこ
とができる。
【0012】このように、第一種タスクは、並行処理の
総実行所要時間が基準時間内に納まるように予めプログ
ラミングされており、各第一種タスクは基準時間サイク
ル毎に必ず一回CPUの使用割り当てを得ることにな
る。従って、例えば基準時間を25msとすれば、各第
一種タスクに25msのほぼ整数倍のタイマを備えると
ともに、ほぼ25ms毎に並行処理されることと同義と
なる。
【0013】なお、第一種タスクについて、タスク並行
処理が基準時間内に収まるかどうかは、同時に並行して
行なわれる第一種タスクの処理時間と第一種タスクを行
なうか否かの判断時間とを合わせた時間が基準時間内で
ある必要がある。この場合、全ての第一種タスクを同じ
サイクル内に行なう可能性があるとは限らない。従っ
て、第一種タスクの処理時間を全て加算した時間が基準
時間以上であっても、一つのサイクル内で行なわれる第
一種タスクの数が毎回、第一種タスクの全数より少なけ
れば、並行処理を基準時間内に収めることができる。
【0014】一つの考え方として、同一サイクル内にお
いて実行処理される可能性のある第一種タスクの組み合
わせにおいて、最も実行所用時間が長いと予測される組
み合わせについて、基準時間内に終了する観点からプロ
グラムを組んでも良い。なお、タスクを記述するプログ
ラミング言語の形態は適宜選択可能である。
【0015】以上のように、タイマのカウントにかかる
処理としては、各第一種タスクが基準時間を単位にカウ
ントをするだけであり、従来のように個々にソフトタイ
マを備えるのに比べて使用されるメモリは少なく済む。
また、CPUは、割込みステップにて割込み信号を受ける
と、第一種タスクのうち判定値になっているカウンタ値
を有する第一種タスクを実行する。このため、タスクの
切り替え毎に優先順位の判断なども必要としない。従っ
て、タイマに使用するメモリを少なく抑えるとともに、
全体のプログラム規模も小さくすることで、ハード資源
を有効に活用することができる。
【0016】請求項2記載の発明は、請求項1記載のタ
スクの並行処理を実行させるためのプログラムであっ
て、前記第一種タスクには、外部等からの信号に基づい
て、該第一種タスク自身以外の他の前記第一種タスクを
実行するか否かを判断するためのフラグを立てるか若し
くは寝せる設定を行なうタスクが含まれ、前記並行処理
ステップにおいて、各前記第一種タスクを実行するか否
かを判断する際に、前記第一種タスクに対応して予め設
定されたフラグがある場合に、該フラグに基づいて前記
第一種タスクを実行するか否かを判断することを特徴と
する。
【0017】請求項2記載の発明には、フラグが第一種
タスクに内包または別途用意される。そして、第一種タ
スクには、組込み対象となる機器の各部や該機器に別途
接続される外部機器等の状態や信号を検知してフラグを
変更する機能を実現するステップまたは独立したタスク
が含まれ、各部の状態やタスク間の関係が実行可否判断
に利用できる。
【0018】例えば、基準時間サイクル毎に外部機器の
準備状態を検知するタスクAと、タスクAの実行が実行
要件となるタスクBとがあるとする。タスクAのカウン
タが判定値に達して実行され、外部機器の準備ができた
ことを知らせる信号を検知したならばタスクAのフラグ
を立てる。ここでのフラグ処理は、タスクAが内包する
一つのステップまたは別のタスクが実行する。タスクB
は、実行可否判断に際しタスクAのフラグを参照してフ
ラグが立っていれば実行要件が満たされたと判断して、
実行可否判断以降の実行に入る。
【0019】このように、請求項2記載の発明によれ
ば、第一種タスクの実行にあたってカウンタだけでなく
フラグを利用することで、請求項1と同様の効果に加え
て、より自由度の高い制御を実現することができる。
【0020】請求項3記載の発明は、請求項1又は請求
項2記載のタスクの並行処理を実行させるためのプログ
ラムであって、前記並行処理ステップが終了した後か
ら、次の前記割込みステップが行なわれるまでの一回の
サイクル内の余り時間に、処理時間が長いタスクや処理
時間が大きく変動する可能性のある前記第一種タスク以
外の第二種タスクを行なわせる第二並行処理ステップを
含み、前記第二種タスクの処理の途中で次の割込みがか
けられた場合に、前記第二種タスクの処理を中断すると
共に、中断された前記第二種タスクの処理を、次回以降
のサイクルの余り時間に行なわせることを特徴とする。
【0021】請求項3記載の発明によれば、請求項1又
は請求項2と同様の効果を奏するとともに、処理時間が
長いタスクや処理時間が大きく変動する可能性のあるタ
スクを、第一種タスクの並行処理後の基準時間サイクル
内の余り時間内で第二並行処理ステップとして別途実行
される。第二並行処理ステップにおいて、実行中に前記
割込みステップによって割込みが入ると、従来と同様に
してレジスタ値等の退避と中断処理がなされ、第一種タ
スクの並行処理ステップに移行する。並行処理ステップ
終了時に前記退避データが読込まれ、再び第二並行処理
ステップにCPUが割り当てられて中断していた処理を
再開する。このようにして複数の基準時間サイクルで実
行・中断・再開を繰り返すことで、処理の長さや処理時
間の変動性に対処できる。従って、処理時間変動の大き
なタスクであっても、第一種タスクの処理に影響を与え
ること無く利用可能となり、プログラムの自由度を高め
ることができる。
【0022】請求項4記載の発明は、請求項1乃至請求
項3のいずれか一つに記載の並行処理を実行させるため
のプログラムであって、前記第一種タスクには、処理時
間が長いタスクを複数に分割することにより処理時間を
短くされた分割タスクが含まれ、一つのタスクから分割
された各分割タスクは、異なるサイクルで実行されるこ
とを特徴とする。
【0023】請求項4記載の発明によれば、請求項1乃
至請求項3のいずれか一つと同様の効果を奏するととも
に、前記第一種タスクにおいて、処理時間が長いタスク
を処理時間が短かい分割タスクに区切ってプログラムさ
れ、複数の割込みサイクルに渡って一区切りずつ実行す
ることで対応できる。
【0024】例えば、処理時間が長いタスクがあるとし
て、該タスクを処理時間が短い複数の分割タスクに区切
り、各分割タスクに対応するカウンタを備える。各分割
タスクの先頭には前述と同様に実行可否判断が用意さ
れ、それぞれに対応したカウンタの値によって分割タス
ク部分の実行可否が判断される。したがって、処理時間
が長いタスクであっても、タイマ処理を使用し、あるい
は並列処理することができる。
【0025】請求項5記載の発明は、演算処理ユニット
(CPU)及びメモリ等を備え、各種機器類に搭載され
てこれらの機器類の動作を電子電気制御する組込み制御
装置であって、複数のタスクの時分割による並行処理を
行なうに際し、所定の基準時間毎に割込みをかける処理
を行なう割込み手段と、前記割込み手段により割込みが
かけられてから次の割込みがかけられるまでの一回の基
準時間サイクル内に、予め設定され、かつ、短時間で処
理可能な複数の第一種タスクの一つずつについて、前記
第一種タスクを実行するか否かの判断を行なうと共に、
実行すると判断された前記第一種タスクを実行させるタ
スク並行処理を、全ての前記第一種タスクに対して順次
行なうタスク実行手段と、予め、前記第一種タスク毎に
設定され、かつ、前記割込み手段により割込み処理がか
けられる度にカウント値を上げるか若しくは下げると共
に、予め設定された判定値を有するカウント手段とを備
え、前記タスク実行手段が、各前記第一種タスク毎に設
定された前記カウント手段のカウント値が予め設定され
た前記判定値か否かに基づいて、前記第一種タスクを実
行するか否かを判断し、前記タスク実行手段によるタス
ク並行処理が前記基準時間内に収まるように、各前記第
一種タスクが予めプログラミングされると共に前記基準
時間が決められていることを特徴とする。
【0026】請求項5記載の発明によれば、組込み制御
装置に備えられるタスクにおいて、タイマ処理と並行処
理の少なくともいずれか一つを必要とするタスクを、第
一種タスクとして区分する。そして、前記第一種タスク
において必要とされるタイマ処理を、従来のように各タ
スクがそれぞれメモリ領域にソフトタイマを所有するの
ではなく、第一種タスクの個々にカウンタを備えて、前
記割込み手段の実施回数をカウントして基準時間(割込
みの時間間隔)を単位としたカウントタイマとして機能
させる。
【0027】割込み手段は、例えば周知のハードタイマ
や、システムクロックのカウントなどによるソフトタイ
マによって実現され、所定の基準時間を計りCPUに対
して割込み信号を出すインターバルタイマ4である。
【0028】タスク実行手段は、例えば、組込み対象機
器を制御するように組込み制御装置を機能させるプログ
ラムである複数のタスクTと、前記タスクや各種データ
を演算処理する演算処理ユニット(CPU1)と、前記
タスク及び前記CPUによるタスクの演算に関わる各種
演算データなどを一時的に格納する記憶媒体であるRA
M3と、データの読み出しだけが可能な記憶媒体で初期
設定データや前記タスクが記憶されているROM2と、
各構成要素間の同期タイミングの取得に使用される発振
器を内蔵したシステムクロック6と、前記タスクに従っ
て組込み対象機器の各部や外部機器類と制御信号を授受
できる入出力手段5と、各構成要素を連結して信号を伝
えるシステムバス7と、を備えるソフトウェアとハード
ウェアによって実現される。そして、CPUは割込み信
号を受けると、割込み信号に対応した割込み処理が実行
される。
【0029】カウント手段は、例えばタスクそれぞれに
カウンタと、予め設定されたカウント値であって前記カ
ウンタと比較して実行可否判断に使用する判定値と、前
記割込み処理として該タスクにCPUが割り当てられる
度に前記カウンタを変更するカウントステップと、を備
えることで実現される。
【0030】即ち、割込み手段は、所定の基準時間を計
り基準時間を一サイクルにCPUに対して割込み信号を
出し、タスク実行手段であるCPUは、割込み信号が入
力されると割込み処理として第一種タスクの処理を始め
る。
【0031】各第一種タスクは、予め設定された順に切
り替わりCPUが実行する。各タスクは、切り替わり時
に前記カウンタの値をインクリメントまたはディクリメ
ントして実行可否判断される。実行可否判断では、カウ
ンタが判定値に達していれば実行要件が整ったと判断さ
れて本来該タスクで実行させたいメインステップが実行
状態になり、達していなければ前記メインステップは実
行されることなくスキップして次の順番のタスクに切り
替えられる。なお、実行可否判断は、各タスク内に一ス
テップ(判定ステップ)として記述されても良いし、一
つのタスクとして存在しても構わない。
【0032】さて、ここで第一種タスクは、並行処理の
総実行所要時間が基準時間内に納まるように予めプログ
ラミングされているので、各第一種タスクは基準時間サ
イクル毎に必ず一回CPUの使用割り当てを得ることに
なる。したがって、例えば基準時間を25msとすれ
ば、各第一種タスクに25msのほぼ整数倍のタイマを
備えるとともに、ほぼ25ms毎に並行処理されること
と同義となる。
【0033】以上の処理において、タイマのカウントに
かかる処理としては、各第一種タスクが基準時間を単位
にカウントをするだけなので、従来のように個々のタス
クがそれぞれソフトタイマ等を備えるのに比べて使用さ
れるメモリは少なくて済む。また、CPUは、割込み信号
を受けると、第一種タスクのうち判定値になっているカ
ウンタ値を有する第一種タスクを実行する。このため、
タスクの切り替え毎に優先順位の判断なども必要としな
い。従って、タイマに使用するメモリを少なく抑えると
ともに、全体のプログラム規模も小さくすることで、ハ
ード資源を有効に活用することができる。
【0034】なお、第一種タスクについて、タスク並行
処理が基準時間内に収まるかどうかは、同時に並行して
行なわれる第一種タスクの処理時間と第一種タスクを行
なうか否かの判断時間とを合わせた時間が基準時間内で
ある必要がある。この場合、全ての第一種タスクを同じ
サイクル内に行なう可能性があるとは限らない。従っ
て、第一種タスクの処理時間を全て加算した時間が基準
時間以上であっても、一つのサイクル内で行なわれる第
一種タスクの数が毎回、第一種タスクの全数より少なけ
れば、並行処理を基準時間内に収めることができる。
【0035】従って、一つの考え方として、同一サイク
ル内において実行処理される可能性のある第一種タスク
の組み合わせにおいて、最も実行所用時間が長いと予測
される組み合わせについて、前記基準時間内に終了する
観点からプログラム作成に望んでも良い。
【0036】また、タスクを記述するプログラミング言
語の形態は適宜選択可能であり、ROMに予め記憶され
ていても良いし、またはCD−ROM・FD・MO・H
Dなどの各種記憶媒体から再生機を介し、あるいは電気
通信回線や電波通信によるネットワークを介して前記入
出力手段を経由してROMやRAMにロードされてもよ
い。
【0037】また、前記各手段の実現に当たっては、各
手段の全部または任意部分をハードウェアとソフトウェ
アのどちらかで実現できればよく、担う組合わせや配分
は適宜変更可能である。
【0038】請求項6記載の発明は、請求項5記載の組
込み制御装置であって、前記第一種タスクには、外部等
からの条件に基づいて、該第一種タスク自身以外の他の
前記第一種タスクを実行するか否かを判断するためのフ
ラグを立てるか若しくは寝せる設定を行なうタスクが含
まれ、前記タスク実行手段は、各前記第一種タスクを実
行するか否かを判断する際に、前記第一種タスクに対応
して予め設定されたフラグがある場合に、該フラグに基
づいて前記第一種タスクを実行するか否かを判断するこ
とを特徴とする。
【0039】請求項6記載の発明によれば、請求項5と
同様の効果を奏するとともに、フラグが第一種タスクに
内包または別途用意される。そして、第一種タスクに
は、組込み対象となる機器の各部や該機器に別途接続さ
れる外部機器等の状態や信号を検知して前記フラグを変
更する機能を実現するステップまたは独立したタスクが
含まれ、各部の状態やタスク間の関係が実行可否判断に
利用できる。
【0040】例えば、基準時間サイクル毎に外部機器の
準備状態を検知するタスクAと、タスクAの実行が実行
要件となるタスクBとがあるとする。タスクAのカウン
タが判定値に達して実行され、外部機器の準備ができた
ことを知らせる信号を検知したならばタスクAのフラグ
を立てる。ここでのフラグ処理は、タスクAが内包する
一つのステップまたは別のタスクが実行する。タスクB
は、実行可否判断に際しタスクAのフラグを参照してフ
ラグが立っていれば実行要件が満たされたと判断して、
実行可否判断以降の実行に入る。
【0041】従って、前記第一種タスクの実行にあたっ
てカウンタだけでなくフラグを利用することで、より自
由度の高い制御を実現することができる。
【0042】請求項7記載の発明は、請求項5又は請求
項6記載の組込み制御装置であって、前記タスク実行手
段は、基準時間の一回のサイクル内において、前記並行
処理が全て終了した後から、前記割込み手段による次の
割込みが行なわれて一回のサイクルが終了するまでの余
り時間内に、処理時間が長いタスクや処理時間が大きく
変動する可能性のある前記第一種タスク以外の第二種タ
スクを行なわせると共に、前記第二種タスクの処理中
に、次の割込みがかけられた場合には、前記第二種タス
クの処理を中断すると共に、中断された前記第二種タス
クの処理を、次回以降のサイクルの余り時間に行なわせ
ることを特徴とする。
【0043】請求項7記載の発明によれば、請求項5又
は請求項6と同様の効果を奏すると共に、タスクは前記
第一種タスクとそれ以外の第二種タスクに区分される。
【0044】第二種タスクは、前記基準時間の一サイク
ルにおいて前記第一種タスクがすべて実行された後に、
基準時間までに時間が余った場合に、CPUが割り当て
られて実行される。ここで、第二種タスクの実行中に前
記割込み手段による割込み信号が入ると、CPUは従来
と同様にしてレジスタ値・アドレス値などの退避と中断
処理を行って、第一種タスクの並列処理を実行する。そ
して、第一種タスクの並列処理が終了したならば、中央
演算処理ユニットは先に退避したデータを呼び出して、
第二種タスクの実行を再開する。
【0045】従って、処理時間が長いタスクや変動の大
きなタスクであっても、第一種タスクの処理に影響を与
えること無く使用可能となり、プログラムの自由度を高
めることができる。
【0046】請求項8記載の発明は、請求項5乃至請求
項7のいずれか一つに記載の組込み制御装置であって、
前記第一種タスクには、処理時間が長いタスクを複数に
分割することにより処理時間を短くされた複数の分割タ
スクが含まれ、一つのタスクから分割された各前記分割
タスクは、異なるサイクルで実行されるように、前記分
割タスクに対応して前記カウンタ手段が設定されている
ことを特徴とする。
【0047】請求項8記載の発明によれば、請求項5乃
至請求項7のいずれか一つと同様の効果を奏すると共
に、前記第一種タスクにおいて、処理時間が長いタスク
であって、実行すると他のタスクが基準時間サイクル内
に実行できなくなる場合には、該タスクを処理時間が短
かい複数のタスクに区切って、複数の基準時間サイクル
に渡って一区切りずつ実行することで対応する。
【0048】例えば、処理時間が長いタスクがあるとし
て、処理時間が短くなるように二つの分割タスクをつく
り、各分割タスクがそれぞれ実行可否判断に利用できる
カウンタと判定値を備える。一回目の基準時間サイクル
で、一つめの分割タスク用カウンタが判定値に達して実
行され、終了時に二つめの分割タスク用カウンタをイン
クリメントする。二回目の基準時間サイクルでは、一つ
め分割タスク用カウンタはインクリメントされるので判
定値と異なりスキップされ、二つめの分割タスクが実行
される。こうした作業を分割タスクの数だけ繰り返す。
従って、比較的処理時間が長いタスクであっても、タイ
マ処理を利用し、あるいは並列処理することができる。
【0049】請求項9記載の発明は、請求項1乃至請求
項8のいずれか一つに記載の並行処理を実行させるため
のプログラム又は組込み制御装置を用いたタスクの並行
処理方法方法である。
【0050】請求項9記載の発明によれば、組み込み制
御装置のハード資源を機能させたり、並行処理を実行さ
せるためのプログラムを機能させることで、請求項1乃
至請求項8のいずれか一つと同様の効果を奏することが
できる。
【0051】ここで、一般的に組込み制御装置は、その
ハード資源として各種データを演算処理するCPUと、
CPUの演算に必要な各種データを一時的に格納可能な
ICメモリであるRAMと、データの読み出しだけが可
能なICメモリであるROMと、所定の時間をカウント
して前記CPU1に割込み信号を出すインターバルタイ
マと、組込み対象となる機器の各部や外部機器との制御
信号を授受する入出力手段と、各構成要素間の同期タイ
ミングの取得に使用される発振器を内蔵したシステムク
ロックと、各構成要素を連結して信号を伝えるシステム
バスと、を備える。
【0052】プログラムは、複数のタスクによって構成
され、前記ROMに予め記憶されているか、またはCD
−ROM・FD・MOなどの各種記憶媒体とその再生機
あるいは電気通信回線や電波通信によるネットワークを
介して外部からRAMに記憶される。CPUは、該プロ
グラムをRAM・ROMから読込み込んでその記述にし
たがって動作する。すなわち、CPUは、インターバル
タイマを前記割込みステップとして機能させるためにR
AM上に領域を確保してメモリタイマを形成する。ま
た、並行処理ステップとして、RAM上に実行対象タス
クのカウンタと判定値を格納し、カウンタの値をCPU
で演算し書きかえてカウントステップを実行する。つい
で、CPUでカウンタと判定値からタスクの実行可否判
断の演算処理をし、演算結果に基づいてタスクを切り替
えて該タスクに記述されるメインステップを演算処理
(実行)する。第2並行処理ステップについては、割込
み処理時に実行中のタスクを中断してレジスタ値などの
退避データをRAM上に格納し、再開時にRAMから退
避データを読込んでCPUで中断していた処理を再開す
る。またその他、CPUはタスクの演算処理のなかでシ
ステムバス・入手出力手段を介して組み込み対象機器の
各部に制御信号を出力する。
【0053】請求項10記載の発明は、請求項1乃至請
求項4のいずれかに記載の並行処理を実行させるための
プログラムが記録されている記録媒体である。
【0054】請求項10記載の発明によれば、請求項1
乃至請求項4のいずれか一つと同様の効果を奏するとと
もに、請求項1乃至請求項4記載のプログラムを、RO
Mを含む半導体メモリ・CD−ROM・FD・MO・H
Dなどの記憶媒体、あるいは電気通信回線や電波通信に
よるネットワークを介して他の場所に存在する前記記憶
媒体から供給する。
【0055】なお、組込み制御装置は、そのハード資源
として各種データを演算処理するCPUと、CPUの演
算に必要な各種データを一時的に格納可能な半導体メモ
リであるRAMと、組込み対象となる機器の各部や外部
機器と信号を授受する入出力手段(例えばI/O素子な
ど)と、各構成要素を連結して信号を伝えるシステムバ
スとを備え、プログラムをRAM上に格納して使用す
る。従って、前記記憶媒体から適宜記憶媒体の再生装置
等を介して、入出力手段を経由してRAM上にプログラ
ムをロードすることによって、組込み制御装置を機能さ
せることができる。
【0056】
【発明の実施の形態】次に、図1〜3を参照して、本発
明の一実施形態を詳細に説明する。
【0057】本発明を適用した組込み制御装置は、図1
に示すように、組込み対象機器を制御するように組込み
制御装置を機能させるプログラムである複数のタスクT
を備え、前記タスクTや各種データを演算処理する演算
処理ユニット(CPU1)と、データやプログラムの読
み出しだけが可能な記憶媒体で初期設定データや前記タ
スクTが記憶されているROM2と、前記CPU1によ
るタスクTの演算に関わる各種演算データを一時的に格
納する記憶媒体であるRAM3と、所定の時間をカウン
トして前記CPU1に割込み信号を出すインターバルタ
イマ4と、組込み対象機器の各部や外部機器類と制御信
号を授受できる入出力手段5と、各構成要素間の同期タ
イミングの取得に使用される発振器を内蔵したシステム
クロック6と、各構成要素を連結して信号を伝えるシス
テムバス7と、を備える。
【0058】前記CPU1は、各種プロセッサであっ
て、前記ROM2に記憶されたタスクTに従って各種の
演算処理を行う。CPU1には割込み要求端子が備えら
れており、割込み信号が入力されるとその割込みに割り
当てられた処理が実行される。
【0059】前記ROM2は、PROM・EPROMな
どのICメモリであって、後述されるタスクTや初期設
定値などのデータ類を記憶している。
【0060】前記インターバルタイマ4は、システムク
ロック6をカウントして一定の基準時間(例えば25m
s)を計る周知のハードタイマ(例えば、LSIタイ
マ)またはメモリ上に形成された周知のソフトタイマに
よる割込み手段であって、バックグランドで常にカウン
トを繰り返して基準時間25msごとに前記CPU1に
割込み信号を発して、前記基準時間サイクルSを規定す
る。
【0061】前記入手出力手段5は、いわゆるI/O素
子であって、組込み対象機器の各部の構成に合わせて適
宜数や種類が選択され、A/D変換やネットワークプロ
トコルをサポートした通信機能などが備えられる。
【0062】前記タスクTは、図2(a)に示すように、
組込み対象となる機器を制御して様々な機能を実現させ
る実行基本単位の制御プログラムであって、前記ROM
2に記録されている。タスクTは、基本的に短時間で処
理可能であってタイマ処理と並行処理の少なくともいず
れか一つを必要とする第一種タスクと、それ以外の第二
種タスクに区分されている。
【0063】前記第一種タスクは、タスクT1・T2・
T3・T4・T5が備えられ、実行順番は符号の数字順
とする。各タスクは、図2(b)に一例を示すように、カ
ウンタ(T202・T302・T303)又はフラグ
(T204)を少なくとも一つ以上と、それぞれに対応
した判定値(T203・T304)とを備える。また、
各タスクは逐次処理されることを前提とし、かつ、前記
インターバルタイマ4による基準時間サイクルS(図3
に記載)内において並行処理を終了するようにプログラ
ムされる。
【0064】タスクT1〜T5は、前記カウント手段に
あたるカウンタをインクリメントまたはディクリメント
するカウントステップ(T205・T305)と、カウ
ンタとフラグの値をそれぞれの判定値と比較して該タス
クの実行可否を判断する判定ステップ(T206・T3
06)と、カウンタやフラグを変更するカウンタ変更ス
テップ(T208・T310)と、タスクで実行したい
処理についてのメインステップ(T207・T307)
とを備え、前記の順番に構成・実行されることを基本と
する。ただし、処理時間が長く、複数の基準時間サイク
ルSに渡って分割されて実行されるのが適当なタスクに
おいては、メインステップを処理時間の短い複数の分割
タスクに分けて分割箇所毎に判定ステップを配置するな
ど、タスクの機能によって適宜に変更して良い。
【0065】本実施形態では、タスクT1とT5は、判
定値「1」を備えてほぼ基準時間25msごとに実行さ
れるように設定され、タスクT2とT3とT4は、判定
値「3」を備えてほぼ75msごとに実行されるように
設定されている。だだし、タスクT3は処理時間が長
く、メインステップまで一度に実行すると基準時間25
ms以内に後につづくタスクT4・T5を実行できなく
なる。そこで、タスクT3を処理時間がより短いタスク
T3a(T307)とタスクT3b(T309)に分割
し、それぞれに判定ステップ(T306・T308)を
備え、各判定に使用するカウンタa(T302)とカウ
ンタ判定値「3」、及びカウンタb(T303)とカウ
ンタ判定値「1」とを備える。タスクT3は、二つのカ
ウンタと判定値を備えることになる。
【0066】また、タスクT4は、実行要件としてタス
クT2の実行が必要であって、カウンタの判定とともに
タスクT2のフラグの判定をもとに実行可否が判断され
る。その為、タスクT2にはフラグ(T204)が用意
され、未実行を「0」、実行済みを「1」として記述す
る。
【0067】次に、図3を参照して動作を説明する。電
源投入後、従来と同様にして組込み対象の機器及び制御
装置各部の異常検知プログラムが実行され、前記機能プ
ログラム等が使用可能状態に有るものとする。ここまで
の流れは従来と同様であって説明を省略する。
【0068】時間t0から第二種タスクが実行されてい
るとする(L0)。バックグランドでは、前記インター
バルタイマ4がカウントされ、基準時間(例えば25m
s)が経過して時間t1にCPU1に割込み信号が出さ
れる(割込みステップC1)。CPU1の割込み信号が
入力されると、従来と同様にして第二種タスクのレジス
タ値やアドレス値等の退避と中断処理が実行され、CP
U1は第一種タスクの処理を実施し、並行処理ステップ
に入る(M1)。
【0069】第一種タスクは、タスクT1・2・3・4
・5があって、符号の数字順に実行順番が設定されてい
る。先ず、タスクT1にCPU1が割り当てられる。タ
スクT1のカウンタは、カウントステップによってイン
クリメントされ「0」から「1」に変更される。タスク
T1のカウンタの判定値は「1」に設定されているの
で、判定ステップによって実行要件を満たすと判断さ
れ、メインステップまでCPU1によって実行される。
タスクT1は、最後にカウンタ変更ステップによってカ
ウンタを「0」にリセットして実行を終了する(M1
1)。
【0070】次に、設定順にしたがってタスクT2をC
PU1は実施する。タスクT2のカウンタは、インクリ
メントされて「0」から「1」に変更されるが、判定値
は「3」なので実行要件を満たさず、判定ステップ以降
の処理は実行されること無くスキップされて実行を終了
する(M12)。同様にして、タスクT3〜5が順次実
行状態となり、実行可否が判定される(M13〜M1
5)。一回目の割込み時は、タスクT1とタスクT5の
みカウンタ判定値を満たすのでメインステップまで実行
される。各タスクのカウンタは、それぞれタスクT1が
「0」、タスクT2が「1」、タスクT3のaが「1」
でbが「0」、タスクT4が「1」、タスクT5が
「0」となっている(以下、0・1・<1・0>・1・
0と表記する)。
【0071】全ての第一種タスクに対して並行処理ステ
ップが一巡したので割込み処理は終了する。CPU1
は、先に退避していた状態値と演算結果を取り出して、
中断していた第二種タスクの処理を再開する(L1)。
【0072】基準時間が経過すると、2回目の割込みが
時間t2に発生する(C2)。2回目の並行処理ステッ
プM2では、前述と同様にしてタスクT1とタスクT5
が実行される。タスクT4は、タスクT2が実行されて
いない為にタスクT2のフラグが「0」のままなので、
フラグ判定値「1」とカウンタ判定値「3」がともに満
たされず、メインステップは実行されずに終了する(M
21〜M25)。各タスクのカウントは、それぞれ0・
2・<2・0>・2・0になっている。割込み処理は終
了し、再びCPU1は第二種タスクの処理に割り当てら
れて中断していた処理を再開する(L2)。
【0073】3回目の割込みが時間t3に発生する(C
3)。3回目の並行処理ステップM3では、まずタスク
T1が実行され、タスクT2に実行対処が移行する(M
31)。タスクT2のカウンタがインクリメントされ
「2」から「3」に変更される。タスクT2のカウンタ
判定値は「3」なので、実行要件を満たし、前回までス
キップされたメインステップも含めて実行状態になる。
そして、タスクT2はカウンタを「0」にリセットする
とともに、フラグを「0」から「1」に変更して実行処
理済であることを記述して終了する(M32)。
【0074】実行対象はタスクT3に移行する。タスク
T3も、カウンタaが「3」で判定値は「3」なので最
初の分割タスクT3aが実行状態になる。タスクT3a
は、最後にカウンタbを「0」から「1」にインクリメ
ントして終了し、実行対象がタスクT4に移行される
(M33)。タスクT4のカウンタがインクリメントさ
れ「0」から「1」になる。タスクT2が実行済みによ
りフラグ値が「1」になっているので、フラグ判定値を
満たして、メインステップが実行される。メインステッ
プの最後に、タスクT2のフラグを「0」に変更し、実
行が終了しCPU1はタスクT5に割り当てられる(M
34)。タスクT5は、タスクT1と同様に判定値
「1」を満たすのでメインステップまで実行される(M
35)。この時点では、各タスクのカウンタは、0・0
・<3・1>・0・0である。時間t3からの並行処理
ステップM3では、タスクT1〜5まですべて実行され
基準時間25msが使い切られている。従って、時刻t
4では割込み処理の終了と同時に再び割込み処理が発生
することになり、第二種タスクは実行されることなく、
タスクT1をCPU1は再び実施する(C4)。
【0075】4回目の割込みが時間t4に発生する。4
回目の並行処理ステップM4では、1回目と同様にして
タスクT1が実行され、タスクT2のメインステップが
スキップされ終了する(M41〜M42)。タスクT3
は、カウンタaが判定値「3」から「4」になるので、
タスクT3aはスキップされ、カウンタbの判定ステッ
プが実行される。カウンタbは、3回目の割込みで
「1」になっているので、判定値「1」を満たして、タ
スクT3bが実行される。タスクT3bは、最後に二つ
のカウンタを「0」にリセットして終了する(M4
3)。タスクT4は、1回目の割込みと同様にしてメイ
ンステップがスキップされて終了し、タスクT5はメイ
ンステップまで実行される(M44〜M45)。この時
点では、各タスクのカウンタは、0・1・<0・0>・
1・0である。割込み処理は終了し、再びCPU1は第
二種タスクの処理に割り当てられ中断していた処理を再
開する(L3)。以下、上記と同様にして組込み制御が
行われる。
【0076】なお、上記実施形態では、基準時間を25
msとしたがこれに限定されるものではなく、組込み対
処となる機器の機能と制御装置のスペックに合わせて適
宜設定可能である。同様に、前記タスクT1〜T5の第
一種タスクの区分や記述するプログラム言語も、組込み
対象となる機器の機能と制御装置のスペックに合わせて
処理順番を検討の上、適宜設定されるべきである。タス
クTのプログラム構造、即ち、どこまでの処理を記述す
るかという点に関しても適宜設定可能であって、例えば
カウンタ・フラグの変更を各タスクに一つのステップと
して内包するのではなく、独立した別のタスクに実行さ
せて、タスクTの小型化を図っても良い。
【0077】また、判定値の数や格納場所も適宜変更可
能であって、例えば、判定値を各タスクが個別に持つの
ではなくテーブルデータ化して別途メモリ上に格納し、
該データを読込む処理を、判定ステップまたは別タスク
として与えてもよい。
【0078】また、上記実施形態において、タスクTは
ROM2に記憶されているとしたが、CD―ROM、フ
ロッピディスク、MO、HDなどの各種記憶媒体によっ
て別途供給されて、入出力手段5を介してRAM3等に
記憶されても良い。さらには、ネットワーク上に設けら
れた他のコンピュータに設けられた記憶媒体からネット
ワーク経由で供給されても良い。
【0079】また、上記実施形態を、ソフトウェアとハ
ードウェアによって構成しているが、上記例に限定され
るものではなく、構成要素全てまたは任意部分がハード
ウェア及びソフトウェアによって実現されても良い。
【0080】
【発明の効果】請求項1記載の発明によれば、タスクT
1〜T5が、従来の如くメモリ上にソフトタイマをそれ
ぞれ生成するステップと、該タイマをそれぞれカウント
するステップを経ず、代わりに、周期的に訪れる前記割
込みステップCの回数をカウントするカウントステップ
(例えばT205)と、カウント値(例えばT202)
を判定値(例えばT203)と比較して実行可否判断す
る判定ステップ(例えばT206)を経ることで、タイ
マ効果を持たせることができる。また、タスクT1〜T
5が、基準時間サイクルS内で、予め決められた順番に
したがって全てのタスクについて順次実行される並行処
理ステップMを備えることで、タスクT1〜T5を並列
処理することができる。タスクT1〜T5は、前記基準
時間を単位にカウントをするだけなので、従来のソフト
タイマに比べてタイマ処理に使用されるメモリは少なく
済み、タスクの切り替え事に優先順位の判断なども必要
としない。従って、後述する請求項5の効果と同様に、
タイマに使用するメモリを少なく抑えるとともに、全体
のプログラム規模も小さくすることで、ハード資源を有
効に活用することができる。
【0081】請求項2記載の発明によれば、請求項1と
同様の効果を奏するとともに、後述する請求項6と同様
に、前記第一種タスクの実行にあたって、前記カウンタ
だけでなくフラグ(例えばT204)を利用して実行の
可否判断をすることが可能となり、実行要件を時間要素
とタスク間相互の関係要素を用いて、より自由度の高い
処理を実現することができる。
【0082】請求項3記載の発明によれば、請求項1又
は請求項2と同様の効果を奏するとともに、処理時間が
長いタスクや処理時間が大きく変動する可能性のあるタ
スクを、第一種タスクの並行処理後に、基準時間サイク
ルS内の余り時間内で第二並行処理ステップLとして別
途実行される。第二並行処理ステップLでは、前記割込
みに対しては従来と同様に割込みにおける退避と中断処
理がなされ、再び第二並行処理ステップLになったとき
に実行を再開し、処理の長さや処理時間の変動性に退所
する。従って、第一種タスクの処理に影響を与えること
無く、処理時間変動の大きなタスクであっても利用可能
となり、プログラムの自由度を高めることができる。
【0083】請求項4記載の発明によれば、請求項1乃
至請求項3のいずれか一つと同様の効果を奏するととも
に、前記第一種タスクにおいて、処理時間が長いタスク
T3があるとして、処理時間が短い分割タスクのタスク
T3a・T3bをつくり、各分割タスクに対応するカウ
ンタa・bを備える。各分割タスクの先頭には前述と同
様に判定ステップT306・T308が用意され、それ
ぞれに対応したカウンタa・bの値によって分割タスク
部分の実行可否が判断される。従って、処理時間が長い
タスクであっても、タイマを使い、あるいは並列処理す
ることができる。
【0084】請求項5記載の発明によれば、タイマ処理
と並行処理の少なくともいずれか一つを必要とするタス
クT1〜5は、個々にカウンタ(例えばT202)とカ
ウンタ判定値(例えばT203)を備えて、前記割込み
ステップCの実施回数をカウントして基準時間25ms
を単位としたカウントタイマとして機能させる。すなわ
ち、タスクT1〜5は、CPU1が実施する時にカウン
トステップ(例えばT205)によって前記カウンタT
202の値をインクリメントまたはディクリメントし
て、判定ステップ(例えばT206)によってカウンタ
の値を判定値T203と比較して実行可否判断される。
カウンタT202が判定値T203に達していれば、実
行可否判断以降の処理も実行状態になり、達していなけ
れば判定ステップT206以降のメインステップ(例え
ばT207)は実行されることなくスキップし、次の順
番のタスクに切り替えられる。
【0085】ここで、前記タスクT1〜5は、並行処理
の総実行所要時間が前記基準時間サイクルS内に納まる
ように予めプログラミングされているので、各タスクは
基準時間サイクルS毎に必ず一回CPU1の使用割り当
てを得ることになる。従って、例えば基準時間を25m
sとすれば、前記タスクT1〜5に25msのほぼ整数
倍のタイマを備えるとともに、ほぼ25ms毎に並行処
理されることと同義となる。以上の処理においては、前
記基準時間を単位にカウントをするだけなのでタイマ処
理に使用されるメモリは少なく、タスクの切り替え事に
優先順位の判断なども必要としない。従って、タイマに
使用するメモリを少なく抑えると共に、全体のプログラ
ム規模も小さくすることで、ハード資源を有効に活用す
ることができる。
【0086】請求項6記載の発明によれば、請求項5と
同様の効果を奏するとともに、前記フラグ(例えばT2
04)をタスク間の実行要件判断に利用できる。例え
ば、タスクT2とタスクT4において、タスクT4を実
行するにはタスクT2の実行が前提となる場合、タスク
T2のカウンタT202が判定値に達して実行されたな
らばタスクT2のフラグT204を立てる処理をする
(フラグを0から1にする)。タスクT4は、判定ステ
ップにおいて実行可否判断としてタスクT2のフラグT
204を参照する。フラグT204が「1」になって立
っていれば実行要件が満たされたと判断して、実行可否
判断以降メインステップの実行に入る。従って、前記第
一種タスクの実行にあたって、前記カウンタだけでなく
フラグを利用してタスク間相互の関係要素を実行の可否
判断材料にすることが可能となり、より自由度の高い制
御を実現することができる。
【0087】請求項7記載の発明によれば、請求項5又
は請求項6と同様の効果を奏するとともに、タスクは前
記第一種タスク(タスクT1〜T5)とそれ以外の第二
種タスクとに区分される。第二種タスクは、前記基準時
間サイクルSにおいて、前記タスクT1〜T5がすべて
実行された後に、基準時間Sの25msまでに時間が余
った場合にCPU1が実行する。第二種タスクの実行中
に、インターバルタイマ4から割込み信号がCPU1に
入ると、従来と同様にしてレジスタ値・アドレス値など
の退避・中断処理をおこなって、第一種タスクの並列処
理に移行する。そして、再び第二種タスクにCPU1が
割り当てられた時に、先に退避したデータを呼び出して
実行を再開する。従って、第一種タスクの処理に影響を
与えること無く、処理時間が長さや変動の大きなタスク
であっても使用可能となり、プログラムの自由度を高め
ることができる。
【0088】請求項8記載の発明によれば、請求項5乃
至請求項7のいずれか一つと同様の効果を奏するととも
に、処理時間が長いタスクT3を、タスクを処理時間が
短い分割タスクのタスクT3a(T307)・3b(T
309)に区切り、各分割タスクの先頭には前記判定ス
テップ(T306・T308)を備えるとともに、それ
ぞれに使用されるカウンタa(T307)・b(T30
3)と各判定値(T306)を備える。最初にタスクT
3aが、カウンタaが実行可否判断され実行されたなら
ば、カウンタbをインクリメント(0から1になる)す
る。次の基準時間サイクルSでは、タスクT3aは、カ
ウンタaがインクリメントされ判定値と異なるのでスキ
ップされ、カウンタbが判定値を満たすのでタスクT3
bが実行される。タスクT3bは、終了前にカウンタa
・bを0にリセットする。従って、異なる基準時間サイ
クルSで分割実行することで、処理時間が長いタスクで
あっても、タイマを使いあるいは並列処理することがで
きる。
【0089】請求項9記載の発明によれば、請求項1乃
至請求項8のいずれか一つと同様の効果を奏する事がで
きる。
【0090】請求項10記載の発明によれば、請求項1
乃至請求項4と同様の効果を奏する事ができる。
【図面の簡単な説明】
【図1】本発明を適用した、一実施形態の組込み制御装
置の構成を示す、概略構成図である。
【図2】図1の組込み制御装置におけるプログラムの構
成を示す、概略構成図であって、(a)タスク分類を示
す説明図(b)タスクの構造を示す概略構造図である。
【図3】図1の組込み制御装置における動作を示す説明
図であって、(a)タイミング図(b)表記の説明図で
ある。
【符号の説明】
1 ROM 2 演算処理ユニット(CPU) 3 RAM 4 インターバルタイマ 5 入出力手段(I/O) 6 システムバス T タスク S 基準時間サイクル C 割込みステップ L 第二種タスク処理ステップ M 第一種タスク処理ステップ

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】演算処理ユニット及びメモリ等を備え、各
    種機器類に搭載されてこれらの機器類の動作を電子電気
    制御する組込み制御装置におけるタスクの並行処理を実
    行させるためのプログラムであって、 所定の基準時間毎に割込みをかける処理を行なう割込み
    ステップと、 予め設定され、かつ、短時間で処理可能な複数の第一種
    タスクにそれぞれ対応して設定されたカウンタのカウン
    ト値を上げるか若しくは下げるカウントステップと、 前期複数の第一種タスクの一つずつについて、各前記第
    一種タスク毎に設定された前記カウントステップにおけ
    るカウント値が予め設定された判定値か否かに基づいて
    前記第一種タスクを実行するか否かの判断を行なうと共
    に、実行すると判断された前記第一種タスクを実行させ
    るタスク並行処理を、全ての前記第一種タスクに対して
    順次行なう並行処理ステップと、を含み、 これらのステップを前記割込みステップが行なわれてか
    ら次ぎの前記割込みステップが行なわれるまでの一回の
    基準時間内のサイクル毎に繰り返し行なうことを特徴と
    するタスクの並行処理を実行させるためのプログラム。
  2. 【請求項2】請求項1記載のタスクの並行処理を実行さ
    せるためのプログラムにおいて、 前記第一種タスクには、外部等からの信号に基づいて、
    該第一種タスク自身以外の他の前記第一種タスクを実行
    するか否かを判断するためのフラグを立てるか若しくは
    寝せる設定を行なうタスクが含まれ、 前記並行処理ステップにおいて、各前記第一種タスクを
    実行するか否かを判断する際に、前記第一種タスクに対
    応して予め設定されたフラグがある場合に、該フラグに
    基づいて前記第一種タスクを実行するか否かを判断する
    ことを特徴とするタスクの並行処理を実行させるための
    プログラム。
  3. 【請求項3】請求項1又は請求項2記載のタスクの並行
    処理を実行させるためのプログラムにおいて、 前記並行処理ステップが終了した後から、次の前記割込
    みステップが行なわれるまでの一回のサイクル内の余り
    時間に、 処理時間が長いタスクや処理時間が大きく変動する可能
    性のある前記第一種タスク以外の第二種タスクを行なわ
    せる第二並行処理ステップを含み、 前記第二種タスクの処理の途中で次の割込みがかけられ
    た場合に、前記第二種タスクの処理を中断すると共に、
    中断された前記第二種タスクの処理を、次回以降のサイ
    クルの余り時間に行なわせることを特徴とするタスクの
    並行処理を実行させるためのプログラム。
  4. 【請求項4】請求項1乃至請求項3のいずれか一つに記
    載の並行処理を実行させるためのプログラムにおいて、 前記第一種タスクには、処理時間が長いタスクを複数に
    分割することにより処理時間を短くされた分割タスクが
    含まれ、 一つのタスクから分割された各分割タスクは、異なるサ
    イクルで実行されることを特徴とするタスクの並行処理
    を実行させるためのプログラム。
  5. 【請求項5】演算処理ユニット及びメモリ等を備え、各
    種機器類に搭載されてこれらの機器類の動作を電子電気
    制御する組み込み制御装置であって、 複数のタスクの時分割による並行処理を行なうに際し、 所定の基準時間毎に割込みをかける処理を行なう割込み
    手段と、 前記割込み手段により割込みがかけられてから次の割込
    みがかけられるまでの一回の基準時間サイクル内に、予
    め設定され、かつ、短時間で処理可能な複数の第一種タ
    スクの一つずつについて、前記第一種タスクを実行する
    か否かの判断を行なうと共に、実行すると判断された前
    記第一種タスクを実行させるタスク並行処理を、全ての
    前記第一種タスクに対して順次行なうタスク実行手段
    と、 予め、前記第一種タスク毎に設定され、かつ、前記割込
    み手段により割込み処理がかけられる度にカウント値を
    上げるか若しくは下げると共に、予め設定された判定値
    を有するカウント手段とを備え、 前記タスク実行手段が、各前記第一種タスク毎に設定さ
    れた前記カウント手段のカウント値が予め設定された前
    記判定値か否かに基づいて、前記第一種タスクを実行す
    るか否かを判断し、 前記タスク実行手段によるタスク並行処理が前記基準時
    間内に収まるように、各前記第一種タスクが予めプログ
    ラミングされると共に前記基準時間が決められているこ
    とを特徴とする組込み制御装置。
  6. 【請求項6】請求項5記載の組込み制御装置において、 前記第一種タスクには、外部等からの信号に基づいて、
    該第一種タスク自身以外の他の前記第一種タスクを実行
    するか否かを判断するためのフラグを立てるか若しくは
    寝せる設定を行なうタスクが含まれ、 前記タスク実行手段は、各前記第一種タスクを実行する
    か否かを判断する際に、前記第一種タスクに対応して予
    め設定されたフラグがある場合に、該フラグに基づいて
    前記第一種タスクを実行するか否かを判断することを特
    徴とする組込み制御装置。
  7. 【請求項7】請求項5又は請求項6記載の組込み制御装
    置において、 前記タスク実行手段は、前記基準時間の一回のサイクル
    内において、前記並行処理が全て終了した後から、前記
    割込み手段による次の割込みが行なわれて一回のサイク
    ルが終了するまでの余り時間内に、処理時間が長いタス
    クや処理時間が大きく変動する可能性のある前記第一種
    タスク以外の第二種タスクを行なわせると共に、 前記第二種タスクの処理の途中で次の割込みがかけられ
    た場合に、前記第二種タスクの処理を中断すると共に、
    中断された前記第二種タスクの処理を、次回以降のサイ
    クルの余り時間に行なわせることを特徴とする組込み制
    御装置。
  8. 【請求項8】請求項5乃至請求項7のいずれか一つに記
    載の組込み制御装置において、 前記第一種タスクには、処理時間が長いタスクを複数に
    分割することにより処理時間を短くされた分割タスクが
    含まれ、 一つのタスクから分割された各分割タスクは、異なるサ
    イクルで実行されるように、前記分割タスクに対応して
    前記カウンタ手段が設定されていることを特徴とする組
    込み制御装置。
  9. 【請求項9】請求項1乃至請求項8のいずれか一つに記
    載の並行処理を実行させるためのプログラム又は組込み
    制御装置を用いたタスクの並行処理方法。
  10. 【請求項10】請求項1乃至請求項4のいずれかに記載
    の並行処理を実行させるためのプログラムが記録されて
    いる記録媒体。
JP2001092624A 2001-03-28 2001-03-28 タスクの並行処理を実行させるためのプログラム及び並行処理する組込み制御装置及び並行処理方法並びにプログラムが記録されている記録媒体 Withdrawn JP2002287987A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001092624A JP2002287987A (ja) 2001-03-28 2001-03-28 タスクの並行処理を実行させるためのプログラム及び並行処理する組込み制御装置及び並行処理方法並びにプログラムが記録されている記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001092624A JP2002287987A (ja) 2001-03-28 2001-03-28 タスクの並行処理を実行させるためのプログラム及び並行処理する組込み制御装置及び並行処理方法並びにプログラムが記録されている記録媒体

Publications (1)

Publication Number Publication Date
JP2002287987A true JP2002287987A (ja) 2002-10-04

Family

ID=18947055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001092624A Withdrawn JP2002287987A (ja) 2001-03-28 2001-03-28 タスクの並行処理を実行させるためのプログラム及び並行処理する組込み制御装置及び並行処理方法並びにプログラムが記録されている記録媒体

Country Status (1)

Country Link
JP (1) JP2002287987A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012104899A1 (ja) * 2011-01-31 2012-08-09 トヨタ自動車株式会社 安全制御装置および安全制御方法
KR101549002B1 (ko) * 2013-10-11 2015-09-01 한국과학기술원 모바일 상황 모니터링을 위한 센싱 플로우를 처리하는 모바일 장치, 이를 이용하는 센싱 플로우 처리 방법, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 시스템
CN109690585A (zh) * 2016-09-07 2019-04-26 三菱电机株式会社 信息处理装置、信息处理方法及信息处理程序
WO2023167438A1 (ko) * 2022-03-03 2023-09-07 삼성전자주식회사 시스템의 성능 병목 현상을 처리하는 전자 장치 및 그 동작 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012104899A1 (ja) * 2011-01-31 2012-08-09 トヨタ自動車株式会社 安全制御装置および安全制御方法
JP5267737B2 (ja) * 2011-01-31 2013-08-21 トヨタ自動車株式会社 安全制御装置および安全制御方法
US8756606B2 (en) 2011-01-31 2014-06-17 Toyota Jidosha Kabushiki Kaisha Safety controller and safety control method in which time partitions are scheduled according to a scheduling pattern
KR101549002B1 (ko) * 2013-10-11 2015-09-01 한국과학기술원 모바일 상황 모니터링을 위한 센싱 플로우를 처리하는 모바일 장치, 이를 이용하는 센싱 플로우 처리 방법, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 시스템
CN109690585A (zh) * 2016-09-07 2019-04-26 三菱电机株式会社 信息处理装置、信息处理方法及信息处理程序
WO2023167438A1 (ko) * 2022-03-03 2023-09-07 삼성전자주식회사 시스템의 성능 병목 현상을 처리하는 전자 장치 및 그 동작 방법

Similar Documents

Publication Publication Date Title
US20160266929A1 (en) Cpu scheduling method, terminal device and processing device
CA2456220C (en) Controlling processor clock rate based on thread priority
US6466962B2 (en) System and method for supporting real-time computing within general purpose operating systems
US6839654B2 (en) Debug interface for an event timer apparatus
US8015566B2 (en) Attributing energy consumption to individual code threads in a data processing system
EP2885707B1 (en) Latency sensitive software interrupt and thread scheduling
KR0185034B1 (ko) 단일 주변소자 모듈에서 사용하는 다중 타이밍 기능을 가진 마이크로컨트롤러
CN111444123B (zh) 基于硬件加速的spi接口的自动读取控制系统及方法
TW200844749A (en) Direct memory access controller
JP2002099432A (ja) 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
JPWO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
JP2002099433A (ja) 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
JP3614650B2 (ja) マルチプロセッサ制御方式及びこれに用いられるブート装置及びブート制御装置
JP2011044165A (ja) システムにおける要求のスケジューリング
WO2009153620A1 (en) A system, method and computer program product for scheduling a processing entity task
JPH10510078A (ja) タイママネージャ
US20030177163A1 (en) Microprocessor comprising load monitoring function
US11662948B2 (en) Norflash sharing
US20150304177A1 (en) Processor management based on application performance data
JP2007164421A (ja) 並列処理装置及び並列処理方法及び並列処理プログラム
JP2002287987A (ja) タスクの並行処理を実行させるためのプログラム及び並行処理する組込み制御装置及び並行処理方法並びにプログラムが記録されている記録媒体
JP3093928B2 (ja) 情報処理方法とその装置
Parikh et al. Performance parameters of RTOSs; comparison of open source RTOSs and benchmarking techniques
US6560715B1 (en) Sequencer of synchronous actions in a processor system, and integrated circuit including such sequencer
KR100386199B1 (ko) 프로세서이용개선장치와방법,및휴대용전자장치

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080603