JP4108530B2 - タスクコントローラ - Google Patents

タスクコントローラ Download PDF

Info

Publication number
JP4108530B2
JP4108530B2 JP2003123988A JP2003123988A JP4108530B2 JP 4108530 B2 JP4108530 B2 JP 4108530B2 JP 2003123988 A JP2003123988 A JP 2003123988A JP 2003123988 A JP2003123988 A JP 2003123988A JP 4108530 B2 JP4108530 B2 JP 4108530B2
Authority
JP
Japan
Prior art keywords
task
cycle
display
time
processing 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.)
Expired - Lifetime
Application number
JP2003123988A
Other languages
English (en)
Other versions
JP2004326679A (ja
Inventor
英明 南出
裕三 岩井
英之 山田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2003123988A priority Critical patent/JP4108530B2/ja
Publication of JP2004326679A publication Critical patent/JP2004326679A/ja
Application granted granted Critical
Publication of JP4108530B2 publication Critical patent/JP4108530B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、複数の周期タスクを1つのCPU上で実行するタスクコントローラに関し、特に表示タスクを含む複数の周期タスクを1つのCPU上で実行するタスクコントローラに関する。
【0002】
【従来の技術】
従来のタスクコントローラにおいては、複数の周期性タスクを1つのCPU上で実行するスケジューリングは、動作中のタスクの実際の周期及び処理時問を計測し、そのタスクの実行に用いる周期、要求処理時間及び許容遅延時間を算出する。その結果、最適な周期、要求処理時問及び許容遅延時間が変化したタスクあるいは不明なタスクであっても、それぞれのタスクの実行に用いる最適な周期、要求処理時問および許容遅延時間を自動的に算出するようにしている(例えば、特許文献1参照。)。
【0003】
また、周期処理が複数存在するリアルタイム処理装置において、制御上要求される最も高速の処理の周期を基本周期とし、基本周期内における時間的資源を時限タイマを使用することによりいくつかのタイムスロットに分割して割り当て、リアルタイム処理を実現する。各タイムスロットに割り当てる時間は、時限タイマを調節することにより変更可能である(例えば、特許文献2参照。)。
【0004】
【特許文献1】
特開2000−56989号公報
【特許文献2】
特開2001−202258号公報
【0005】
【発明が解決しようとする課題】
しかし従来のタスクコントローラのタスクスケジューリング方法にあっては、最適な周期、要求処理及び許容遅延時間が得られるが、あるタスクの周期を動的に所望の値に設定もしくは変更することはできないという問題点があった。
【0006】
また、周期処理が制御タスクおよび表示タスクからなる制御装置では、制御上要求される最も高速の処理は制御タスクであり、その制御タスクの周期を基本周期としている。表示タスクのように処理時間が数msecから数百msecまで表示内容で大幅に変動するタクスを基本周期内で割り振られたタイムスロットでの処理では、タイムリーに表示されていないという問題があった。
【0007】
また、表示タスクの処理が大幅に遅れたときに、緊急に異常事態を表示しなければならなくなったときでも、表示できないといった問題があった。
【0008】
この発明の目的は、表示タスクの表示内容の大幅な変動があったときでも、所望する周期で処理を周期で実行するタスクスケジューリングの可能なタスクコントローラを提供することである。
【0009】
【課題を解決するための手段】
この発明に係るタスクコントローラは、N(Nは2以上の正の整数)個の周期タスクを処理するタスクコントローラにおいて、タスクの中でいずれか1つのタスクを特定タスクとし、タスクの中の特定タスクを除く(N−1)個のタスク毎の周期を設定する周期設定手段と、すべてのタスク毎の処理時間を計時する処理計時手段と、設定された周期と計時された処理時間とから特定タスクの起動周期となる1個の基本周期及びタスク毎の処理に対して基本周期内で割り当てられた時間である(N−1)個の制限時間を求める制限時間算出手段と、基本周期内に(N−1)個のタスクの処理をそれぞれに対応する制限時間に従って割り振るタスク管理手段とを備えた。
【0010】
【発明の実施の形態】
実施の形態1.
図1は、この発明の実施の形態1のタスクコントローラのブロック図である。図2は、表示タスクと制御タスクとを1つのCPUで実行するタイムチャートである。図3は、図1のタスクコントローラのタスク管理のフローチャートである。図4は、タスクの割り振られたタイムチャートである。図5は、図1のタスクコントローラの制限時間などの算出のフローチャートである。図6は2つのタスクの割り振られたタイムチャートである。図7は表示タスクの処理時間が増加したときのタイムチャートである。
【0011】
このタスクコントローラ1は、プラントなど制御対象機器2を制御する制御機能、その制御結果を表示機器3に表示する表示機能を備えている。これらの機能は、CPU、RAM、ROMおよびI/Oなどからなるコンピュータによって処理される。機能を実現するためにコンピュータで処理される演算処理をタスクと称し、制御機能、表示機能それぞれに対応するタスクを制御タスク、表示タスクと称す。タスクは、処理周期、処理周期内で処理に要する処理時間によって特性付けされる。コンピュータでの演算処理は主にCPUで行われるので、あるタスクが処理されている割合をそのタスクのCPU使用率として表すことができる。
【0012】
さらに、実施の形態1では、周期的に処理される複数のタスクがCPUに割り当てられるマルチタスク処理に関し、制御対象機器2を常に制御しており、また表示機器3へその結果を表示することも周期的に発生している。リアルタイムに制御を行わなければならない制御タスクと、制御対象機器の制御結果などを表示機器に表示する表示タスクとを有している。制御タスクの処理時間はおおよそ一定であり、処理周期は出来る限り短くすることが必要である。一方、表示タスクの処理時間は表示画面の切換など表示内容の変化に伴い大きく変化する。
【0013】
タスクコントローラ1は、タスクを処理するタスク処理手段4、複数のタスクの処理をCPUに割り振るタスク管理手段5、計時して処理時間などを算出するタイマ手段6、タスクの処理に要した処理時間を計時する処理時間計時手段7、各タスクの周期を設定する周期設定手段8、制限時間を算出する制限時間算出手段9を備えている。タイマ手段6は、周期を計時する第一のタイマ手段10、各タスクの処理時間を計時する第二のタイマ手段11を備えている。
【0014】
以下の説明において、Tは表示タスクの周期、Cは表示タスクの処理時間、Rは表示タスクのCPU使用率を示す。また、Tは制御タスクの周期、Cは制御タスクの処理時問、Rは制御タスクのCPU使用率である。
【0015】
次に、タスク管理の基本について図2を参照して説明する。処理時間C、Cは、処理時間計時手段7でそれらの一周期処理完了毎に求められる。周期T、Tは、周期設定手段8でマニュアルまたは自動的に設定される。
【0016】
図2の実線の部分は、各タスクがCPUを使用している期間を表し、点線の部分はそのタスク以外のタスクがCPUを占有している期間を表している。また、斜線の部分は、各タスクの1周期分の処理が終了したことを表している。
【0017】
図2から分かるように、表示タスクのCPU使用率Rと、制御タスクのCPU使用率Rはそれぞれ式1、式2で表される。
【0018】
=C÷T ・・・(1)
=C÷T ・・・(2)
【0019】
タスクコントローラ1では、表示タスクと制御タスクのみを処理するので、制御タスクのCPU使用率Rは式3で表される。
【0020】
=1−R ・・・(3)
【0021】
ゆえに、制御タスクの周期Tは、式1、式2、式3から式4で求められる。
【0022】
=C÷(1−R)=C÷(1−C÷T) ・・・(4)
【0023】
この式4の中で、処理時間CとCは、事前に求められているので、一方のタスク、例えば表示タスクの周期Tを設定することで制御タスクの周期Tを求めることができる。
【0024】
次に、タスク管理処理を図3、図4を参照しながら説明する。タスク管理手段5は、一番最近完了した表示タスクの処理の完了を検知し、新たにS(以下、Sと略称する。)101で、後述する制限時間算出手段9は、基本周期と制限時間2とを算出する。S102では、第一のタイマ手段10は、計時を開始する。S103で、第二のタイマ手段11は、計時を開始する。S104で、タスク処理手段4は、表示タスクの処理を行う。S105で、第二のタイマ手段11は、計時した時間が制限時間2に達したか判断し、達していないときはS104へ戻り、達したときは、S106へ進む。S106で、タスク処理手段4は、表示タスクの処理を一時停止する。S107で、タスク処理手段4は、制御タスクの処理を行う。S109で、第一のタイマ手段10は、計時した時間が基本周期に達したか判断し、達していないときはS107へ戻り、達したときは、S109へ進む。S109で、タスク処理手段4は、制御タスクの処理を一時停止する。S110で、タスク管理手段5は、表示タスクの1周期分の処理が完了したか判断する。処理が完了していないときはS102へ戻り、完了したときはS101へ戻る。S110ではさらに、処理時間計時手段7は、それぞれ完了した表示タスクおよび制御タスクの処理時間を求める。
【0025】
次に、基本周期と制限時間を求める処理について図5を参照して説明する。表示タスクの周期Tを設定し、基本周期と制限時間2とを算出するアルゴリズムである。なお、処理時間CとCは、上述したようにS110で最新の値が求められており、これらの値を用いる。各タスクの処理時間には、他のタスクによってプリエンプトされている時間は加えず、純粋にそのタスクが走行している時間を計時する。
【0026】
S201で、周期設定手段8は、表示タスクの周期Tを設定する。S202で、制限時間算出手段9は、表示タスクの周期Tと表示タスクの処理時聞Cとを比較し、TがCより大きければS204へ進む。TがCと同じか小さい場合は、S203へ進む。S203で、制限時間算出手段9は、Tの値として制御タスクの処理時間CとCとの和を用いる。S204で、制限時間算出手段9は、表示タスクのCPU使用率Rを表示タスクの処理時間CをTで割って求める。S205で、制限時間算出手段9は、制御タスクの処理時間Cと表示タスクのCPU使用率Rから制御タスクTを求める。S206で、制限時間算出手段9は、表示タスクの周期Tと制御タスクの周期Tを比較し、Tが大きければ、S207へ進み、Tが同じか小さければ、S209へ進む。S207で、制限時間算出手段9は、基本周期に制御タスクの周期Tを用いる。S208で、制限時間算出手段9は、制限時間2に表示タスクの処理時間Cを表示タスクの周期Tで割った値に制御タスクの周期Tを乗じた値を設定する。S209で、制限時間算出手段9は、表示を優先させるかを判断する。表示を優先する場合は、S210へ進み、表示を優先しない場合はS212へ進む。S210で、制限時間算出手段9は、基本周期に制御タスクの周期Tを設定し、S211へ進む。S211で、制限時間算出手段9は、制限時間2に表示タスクの処理時間Cを用いる。S212で、制限時間算出手段9は、基本周期に制御タスクの処理時間Cと表示タスクの処理時間Cとの和を用いる。除算で小数点以下の余りが出た場合は、商の値を1つ繰り上げる。
【0027】
次に、図6は、表示タスクの周期Tを108msec、表示タスクの処理時間Cを36msec、制御タスクの処理時問Cを24msecとしたときの、表示タスクと制御タスクのスケジューリングの結果である。
【0028】
さらに、図7は、表示タスクの処理時間Cが50msec、制御タスクの処理時問Cが24msecになったとき、表示タスクの周期Tを108msecに設定を据え置いた場合のタスクスケジューリングの結果である。
【0029】
このように、表示タスクの処理内容が増加したときでも、制御タスクの周期が長くなり、設定した周期で表示タスクが完了する。
【0030】
割り当てられた基本周期内に処理が終了する場合は、表示タスク、制御タスク共に、次の周期の処理を前倒しで行うか、処理が終了した時点で次の周期までアイドル状態として待機する方法がある。
【0031】
このようなタスクコントローラは、表示タスクの処理時問が変化した場合でも、あらかじめ設定した表示タスクの周期で処理を完了するので、タイムリーに表示され、また緊急に異常事態を表示しなければならなくなったとき、表示できる。
【0032】
なお、図3のフローチャートに示された2つのタスク(表示および制御タスク)を管理するタスク管理タスクをCPUに割り当てて実行しても同様である。この際のタスク管理タスクのフローチャートを図26に示す。さらに、図10、図14で示されたタスクの管理を同様にタスク管理タスクとしてタスクコントローラに実装しておいてもよい。
【0033】
実施の形態2.
この発明の実施の形態2のタスクコントローラは、表示タスク、制御タスク、追加タスクからなる3つのタスクの処理を行う。タスクコントローラ1は、図1と同様である。
【0034】
タスク管理の基本について説明する。図8は追加タスクと制御タスクだけを考慮したタイムチャートである。図9は、表示タスク、制御タスク、追加タスクとを1つのCPUで実行するタイムチャートである。
【0035】
まず、追加タスクと制御タスクに着目し、処理時間C、Cは事前に求まっており、追加タスクの周期Tを設定する。追加タスクのCPU使用率Rと、制御タスクのCPU使用率Rはそれぞれ式5、式6で表される。
【0036】
=C÷T ・・・(5)
=C÷T ・・・(6)
【0037】
タスクコントローラでは、まず追加タスクと制御タスクのみを処理するので、制御タスクのCPU使用率Rは式7で表される。
【0038】
=1−R ・・・(7)
【0039】
また、制御タスクの周期Tは、式5、式6、式7から式8で求めることができる。
【0040】
=C÷(1−R)=C÷(1−C÷T) ・・・(8)
【0041】
この式8の中で、処理時間CとCは、事前に求められているので、一方のタスク、例えば追加タスクの周期Tを設定することで制御タスクの周期Tを求めることができる。
【0042】
ここで求めた制御タスクの周期Tを、制御タスクの処理時間と追加タスクのうち制御タスクの1周期TC分の処理時間の合わせた結合タスクの処理時間Cと置く。
【0043】
このようにすると、3つのタスクを2つのタスクのタスク管理に変換することができる。
【0044】
そこで、処理時間C、Cは事前に求まっており、表示タスクの周期Tを設定する。結合タスクのCPU使用率Rと、表示タスクのCPU使用率Rはそれぞれ式9、式10で表される。
【0045】
=C÷T ・・・(9)
=C÷T ・・・(10)
【0046】
タスクコントローラでは、結合タスクと表示タスクのみを処理するので、結合タスクのCPU使用率Rは式11で表される。
【0047】
=1−R ・・・(11)
【0048】
また、結合タスクの周期Tは、式9、式10、式11から式12で求めることができる。
【0049】
=C÷(1−R)=C÷(1−C÷T) ・・・(12)
【0050】
この式12の中で、処理時間CとCは、事前に求められているので、一方のタスク、例えば表示タスクの周期Tを設定することで結合タスクの周期Tを求めることができる。
【0051】
次に、タスク管理処理の手順に関し図10を参照して説明する。タスク管理手段5は、最新の表示タスクの処理の完了を検知し、新たにS(以下、Sと略称する。)301で、後述するようにして制限時間算出手段9は、基本周期と制限時間2と制限時間3を算出する。S302で、第一のタイマ手段10は、計時を開始する。S303で、第二のタイマ手段11は計時を開始する。S304で、タスク処理手段4は、表示タスクの処理を行う。S305で、第二のタイマ手段11は、計時した時間が制限時間2に達したか判断し、達していないときはS304へ戻り、達したときは、S306へ進む。S306で、タスク処理手段4は、表示タスクの処理を一時停止する。S307で、第二のタイマ手段11は、計時を開始する。S308で、タスク処理手段4は、追加タスクの処理を開始する。S309で、第二のタイマ手段11は、計時した時間が制限時間3に達したか判断し、達していないときはS308へ戻り、達したときは、S310へ進む。S310で、タスク処理手段4は、追加タスクの処理を一時停止する。S311で、タスク処理手段4は、制御タスクの処理を行う。S312で、第一のタイマ手段10は、計時した時間が基本周期に達したか判断し、達していないときはS311へ戻り、達したときは、S313へ進む。S313で、タスク処理手段4は、制御タスクの処理を一時停止する。S314で、タスク管理手段5は、表示タスクの1周期分の処理が完了したか判断する。処理が完了していないときはS302へ戻り、完了したときはS301へ戻る。S314ではさらに、処理時間計時手段7は、完了した表示タスク、制御タスク、追加タスクの処理時間を求める。
【0052】
次に、基本周期、制限時間2、制限時間3を求める手順について図11を参照して説明する。S401で、周期設定手段8は、追加タスクの周期Tを設定する。S402で、追加タスクの周期Tと追加タスクの処理時聞Cとを比較し、TがCより大きければS404へ進む。TがCと同じか小さい場合は、S403へ進む。S403で、Tの値として制御タスクの処理時間Cと追加タスクの処理時間Cとの和を用いる。S404で、追加タスクのCPU使用率Rを追加タスクの処理時間Cを追加タスクの周期Tで割って求める。S405で、制御タスクの処理時間Cと追加タスクのCPU使用率Rから制御タスクの周期Tを求める。この制御タスクの周期Tは見掛け上として結合タスクの処理時間Cとする。また、制限時間3を追加タスクの処理時間Cを追加タスクの周期Tで除算し、その値に制御タスクの周期Tを掛けて求める。S406で、周期設定手段8は、表示タスクの周期Tを設定する。S407で、表示タスクの周期Tと表示タスクの処理時聞Cとを比較し、TがCより大きければS409へ進む。TがCと同じか小さい場合は、S408へ進む。S408で、Tの値として制御タスクの周期Tと表示タスクの処理時間Cとの和を用いる。S409で、表示タスクのCPU使用率Rを表示タスクの処理時間Cを表示タスクの周期Tで割って求める。S410で、結合タスクの処理時間Cと表示タスクのCPU使用率Rから結合タスクの周期Tを求める。S411で、表示タスクの周期Tと結合タスクの周期Tを比較し、Tが大きければ、S412へ進み、Tが同じか小さければ、S414へ進む。S412で、基本周期に結合タスクの周期Tを用いる。S413で、制限時間2に表示タスクの処理時間Cを表示タスクの周期Tで割った値に結合タスクの周期Tを乗じた値を設定する。S414で、表示を優先させるかを判断する。表示を優先する場合は、S415へ進み、表示を優先しない場合はS417へ進む。S415で、基本周期に結合タスクの周期Tを設定し、S416へ進む。S416で、制限時間2に表示タスクの処理時間Cを用いる。S417で、基本周期に結合タスクの処理時間Cと表示タスクの処理時間Cとの和を用いる。
【0053】
このようなタスクコントローラは、表示タスクの処理時問が変化とともに、新たなタスクの処理が必要になっても、あらかじめ設定した表示タスクの周期で処理が完了するので、タイムリーに表示され、また緊急に異常事態を表示しなければならなくなったとき、表示できる。
【0054】
実施の形態3.
タスクがN(Nは2以上の正の整数)個存在する場合は、前の表示タスク(ここではタスク1とする。)の周期完了時での周期の長いタスクから周期の短いタスクに並べる。一番短い周期のタスクNは制御タスクである。それぞれタスクn(n=1〜N)の処理時間Cn(n=1〜N)、周期Tn(n=1〜N)、CPU使用率Rn(n=1〜N)とする。また、制限時間Ln(n=N〜2)は、タスク(n−1)に係わった値である。
【0055】
タスク管理の基本に関し、図13を参照して説明する。なお、結合タスク(N−n)(n=1〜N−1)は、タスクNからタスク(N−n)までのタスクを考慮したタスクである。まず、タスクNとタスク(N−1)とに着目し、処理時間C、CN−1は事前に求まっているので、タスク(N−1)の周期TN−1を設定する。一方、タスクNの周期は、2つだけのタスクに着目しているので、TN;N−1と表現する。タスク(N−1)のCPU使用率RN−1と、タスクNのCPU使用率Rはそれぞれ式13、式14で表される。
【0056】
N−1=CN−1÷TN−1 ・・・(13)
=C÷TN;N ・・・(14)
【0057】
タスクコントローラでは、まずタスクNとタスク(N−1)のみを処理するので、タスクNのCPU使用率Rは式15で表される。
【0058】
=1−RN−1 ・・・(15)
【0059】
また、タスクNの周期TN;Nは、式13、式14、式15から数1となる。
【0060】
【数1】
Figure 0004108530
【0061】
この数1の中で、処理時間CとCN−1は、事前に求められているので、一方のタスク、例えばタスク(N−1)の周期TN−1を設定することでタスクNの周期TN;Nを求めることができる。
【0062】
ここで求めたタスクNの周期TN;Nを、タスクNの処理時間Cとタスク(N−1)のうちタスクNの1周期TN;N分の処理時間とを合わせた結合タスク(N−1)の処理時間CN;N−1に代入すると数2で表される。
【0063】
【数2】
Figure 0004108530
【0064】
このようにすると、3つのタスクを2つのタスクのタスク管理に変換することができる。
【0065】
そこで、処理時間CN;N−1、CN−2は事前に求まっており、タスク(N−2)の周期TN−2を設定する。結合タスク(N−1)のCPU使用率RN;N−1と、タスク(N−2)のCPU使用率RN−2はそれぞれ式16、式17で表される。
【0066】
N;N−1=CN;N−1÷TN;N−1 ・・・(16)
N−2=CN−2÷TN−2 ・・・(17)
【0067】
タスクコントローラでは、結合タスク(N−1)とタスク(N−2)のみを処理するので、結合タスク(N−1)のCPU使用率RN;N−1は式18で表される。
【0068】
N;N−1=1−RN−2 ・・・(18)
【0069】
また、結合タスク(N−1)の周期TN;N−1は、式16、式17、式18から数3となる。
【0070】
【数3】
Figure 0004108530
【0071】
この数3の中で、処理時間CN−1とCN−2とCと周期TN−1は、事前に求められているので、タスク(N−2)の周期TN−2を設定することで結合タスク(N−1)の周期TN;N−1を求めることができる。
ここで求めた結合タスク(N−1)の周期TN;N−1を、結合タスク(N−1)の処理時間CN;N−1とタスク(N−2)のうち結合タスク(N−1)の1周期TN;N−1分の処理時間とを合わせた結合タスク(N−2)の処理時間CN;N−2に代入すると数4になる。
【0072】
【数4】
Figure 0004108530
【0073】
さらに、これらを繰り返し、最後に、結合タスク2の処理時間CN;2は数5で表される。
【0074】
【数5】
Figure 0004108530
【0075】
結合タスク2のCPU使用率RN;2と、タスク1のCPU使用率Rはそれぞれ式19、式20で表される。
【0076】
N;2=CN;2÷TN;2 ・・・(19)
=C÷T ・・・(20)
【0077】
タスクコントローラでは、まず結合タスク2とタスク1のみを処理するので、結合タスク2のCPU使用率RN;2は式21で表される。
【0078】
N;2=1−R ・・・(21)
【0079】
また、結合タスク2の周期TN;2は、式19、式20、式21から数6となる。
【0080】
【数6】
Figure 0004108530
【0081】
一方、タスク1の結合タスク2の周期内での処理時間CN;1は数7になる。
【0082】
【数7】
Figure 0004108530
【0083】
このような原理によりタスクがN個ある場合に、(N−1)個のタスクの周期を設定することにより、残りのタスクの周期を求めることができる。
【0084】
次に、タスク管理処理に関して図14を参照して説明する。タスク管理手段5は、最新の表示タスクであるタスク1の処理の完了を検知し、新たにS(以下、Sと略称する。)501で、後述する制限時間算出手段9は、1個の基本周期と(N−1)個の制限時間、すなわち制限時間2から制限時間Nを算出する。S502では、第一のタイマ手段10は、計時を開始する。S503で、nに1を代入する。S504で、第二のタイマ手段11は、計時を開始する。S505で、タスク処理手段4は、タスクnの処理を行う。S506で、第二のタイマ手段11は、計時された時間が制限時間(n+1)に達したか判断し、達していないときはS505へ戻り、達したときは、S507へ進む。S507で、タスク処理手段4は、タスクnの処理を一時停止する。S508で、nに(n+1)を代入する。S509で、nがNかどうか判断する。NでないときはS504へ戻り、nがNのときはS510へ進む。S511で、タスク処理手段4は、制御タスクの処理を行う。S512で、第一のタイマ手段10は、計時された時間が基本周期に達したか判断し、達していないときはS511へ戻り、達したときは、S513へ進む。S513で、タスク管理手段5は、タスク1の1周期分の処理が完了したか判断する。処理が完了していないときはS502へ戻り、完了したときはS501へ戻る。S513で、さらに、タスク管理手段5は、完了したタスク1からタスクNの処理時間を求める。
【0085】
次に、基本周期と制限時間を求める処理について図16を参照して説明する。S601で、nに1を代入する。S602で、結合タスクの処理時間CN;NにタスクNの処理時間Cを代入する。S603で、周期設定手段8は、タスク(N−n)の周期TN−nを設定する。S604で、タスク(N−n)の周期TN−nとタスク(N−n)の処理時聞CN−nとを比較し、TN−nがCN−nより大きければS605へ進む。TN−nがCN−nと同じか小さい場合は、S606へ進む。S606で、TN−nの値としてタスク(N−n)の処理時間CN−nとCN;N−(n−1)との和を用いる。CN;N−(n−1)は、タスクNとタスク(N−1)の制限時間を求めるときは、Cであり、それ以降はS607で求められる。S605で、タスク(N−n)のCPU使用率RN−nをタスク(N−n)の処理時間CN−nをTN−nで割って求める。S607で、結合タスク(N−n+1)の処理時間CN;N−(n−1)とタスク(N−n)のCPU使用率RN−nから結合タスク(N−n)の周期TN;N−(n−1)を数8で求める。
【0086】
【数8】
Figure 0004108530
【0087】
さらに、結合タスク(N−n)の周期CN;N−nとしてTN;N−(n−1)を代入する。制限時間LN−(n−1)は、タスク(N−n)の処理時間CN−n、その周期TN−n、結合タスク(N−n)の周期TN;N−nとから数9に基づいて求める。
【0088】
【数9】
Figure 0004108530
【0089】
S608で、nにn+1を代入する。S609で、nとN−1を比較する。nがN−1より等しいか大きいとS609へ進む。nがN−1より小さいとS603へ戻る。S610で、タスク1の処理時間Cおよび周期Tからタスク1のCPU使用率Rを求める。S611で、結合タスク2の処理時間CN;2とタスク1のCPU使用率Rから数10に基づいて結合タスク2の周期TN;2を求める。
【0090】
【数10】
Figure 0004108530
【0091】
S612で、タスク1の周期Tと結合タスク2の周期TN;2を比較し、Tが大きければ、S613へ進み、Tが同じか小さければ、S615へ進む。S613で、基本周期Lに結合タスクの周期TN;2を用いる。S614で、制限時間Lにタスク1の処理時間Cをタスク1の周期Tで割った値に結合タスクの周期TN;2を乗じた値を設定する。S615で、表示を優先させるかを判断する。表示を優先する場合は、S616へ進み、表示を優先しない場合はS618へ進む。S616で、基本周期Lに結合タスクの周期TN;2を設定し、S617へ進む。S617で、制限時間Lにタスク1の処理時間Cを用いる。S618で、基本周期Lに結合タスク2の処理時間CN;2とタスク1の処理時間Cとの和を用いる。
【0092】
このようなタスクコントローラは、N個のタスクについて、タスク毎に所望の周期を割り当て、システム全体の処理を進めることができる。
【0093】
実施の形態4.
図17は、この発明の実施の形態4のタスクコントローラのブロック図である。図18、図19は、画面とその表示部品のデータの関係を示す説明図である。図17は図1に画面データ量算出手段12を備えていることが異なっていて、その他は同様であり、同様な部分の説明は省略する。
【0094】
表示機器3に表示される画面は、複数の表示部品で構成されており、それぞれの表示部品は画素数、色彩など表示処理時間に直接関連するデータを有している。これらの画面データは、コンピュータの画像用メモリに一旦取り込まれ、タスク処理手段4によって処理されて、表示機器3へ送出される。画面データ算出手段12は、表示部品のそれぞれの描画処理に必要な時間を加算して、一画面に関する処理時間を求める。この処理時間Cを実施の形態1の表示タスクの処理時間Cとして用いて、タクス管理を行う。
【0095】
画面データは、一つの画面に表示する表示部品のデータを並べたものであり、表示する画面毎に画面データがある。
【0096】
タスク処理手段4は、表示する画面に対応した画面データを参照し、画面データに含まれている表示部品のデータを読み出して、画面上に表示部品を描画する。
【0097】
画面データに含まれている表示部品のデータを読むと、表示部品の種類と表示するサイズから描画処理に必要な時間がわかるので、画面切換え時に、切り換えた後の画面の表示に必要な描画処理時間を計算で求めることができる。
【0098】
画面切換え後、一度画面を描画すると、その一画面の描画にかかった時間を表示処理時間として、従来どおりにCPUリソースの配分を決める。
【0099】
このようなタスクコントローラは、画面切換え時に、以前の画面の処理時間からもとめたCPUリソースの配分を用いて、新たな画面を描画すると、新旧の画面上に配置されている表示部品の違いから、適切なCPUリソースの配分とはならない。表示部品が増える場合、表示に割当てられた時間内に画面上の全ての表示部品を表示することができず、次の表示の割当て周期に繰り越されるため、表示の周期が所望の値に比べ、長くなってしまう。
【0100】
画面切換え時に、事前に次に表示する画面の描画時間を把握することで、表示処理に適切なCPUリソースを配分し、画面切換え直後に表示の周期が長くなることを防ぐことができる。
【0101】
実施の形態5.
この発明の実施の形態5の画面データのデータ配置図である。画面データ算出手段12は、表示処理時間Cに画面更新処理時間CDRを追加する。
【0102】
図20は、図面データの配置図である。一つの画面に表示する表示部品のデータを並べた画面データの先頭に、その画面を表示する際の画面更新処理時間を配置している。
【0103】
タスク処理手段4は、表示する画面に対応した画面データを参照し、画面データに含まれている表示部品を画面上に表示する際に、その画面を表示する際の画面更新処理時間を読出し、その値を用いてタスク管理を実施の形態1と同様に行う。
【0104】
このように、画面の更新時に処理時間に画面更新処理時間を追加できるので、画面切換え時に、画面毎に必要な更新処理時間を含んでいるので、確実に画面更新を行うことができる。
【0105】
実施の形態6.
この発明の実施の形態6のタスクコントローラの周期設定手段8は、表示タスクの周期Tを最短30msecと設定する。
【0106】
このようなタスクコントローラは、人の認識能力を超える周期で描画を更新しても、リソースの無駄遣いになる。表示周期を適切な値に抑えることで、他のタスクへリソースを配分し、リソースを効果的に活用できる。
【0107】
実施の形態7.
この発明の実施の形態7のタスクコントローラの周期設定手段8は、画面に表示している表示の重要性に係わる値が、時間と共に増減し、その値が設定した閾値に近くなると、表示タスクの周期を短くして、値の変化を短い間隔で表示するようにする。表示している値が、閾値から離れると、画面の更新周期をもとの周期に戻す。
【0108】
例えば、表示タスクの周期を200msecに設定し、200msec周期で画面を更新しながら、複数のタスクの処理を実行しているとき、表示画面に棒グラフとして表示している変数の値が、例えば80に設定している閾値80に近づき、75になった時点で、表示タスクの周期を100msecに自動的に設定し直し、100msecで表示タスクを処理し、画面を更新する。さらに、棒グラフとして表示している変数の値が、78になった段階で、表示タスクの周期を50msecにする。
【0109】
その変数の値が、再び75まで減少したとき、表示タスクの周期を100msecに戻し、さらに変数の値が減少したとき、もとの周期である200msecに表示タスクの周期を戻す。
【0110】
このようなタスクコントローラは、あらかじめ設定した閾値に近づいた値を、閾値から離れている時より短い周期で表示することで、閾値に近づいたときの値の変化を的確に捉えることができる。
【0111】
実施の形態8.
この発明の実施の形態8のタスクコントローラは、表示タスクの処理時間C、制御タスクの処理時間C、表示タスクの周期Tをそれぞれ分割し、その分割した幅の代表値を用いて、実施の形態1に示す手順で演算した基本周期と制限時間2を示すテーブルを備えている。
【0112】
表示タスクと制御タスクのそれぞれの処理時間から、テーブル上の適切な表示タスクの周期を選択し、タスク管理を行う。
【0113】
このようなタスクコントローラは、各タスクの係わる制限時間を細かく計算する必要がないので、計算量を抑えることができ、リソース配分の処理に必要なオーバーヘッドを抑えることができる。
【0114】
実施の形態9.
図21は、この発明の実施の形態9のタスクコントローラの制限時間を求めるフローチャートである。複数のタスクのうち、一番処理周期を短くする必要のあるタスクの処理周期を設定することである。
【0115】
制限時間を求める手順について説明する。S701で、最も起動周期を短くする必要のある制御タスクの起動周期Tを基本周期に設定する。S702で、次に周期を短くする必要な追加タスクの周期Tを設定する。S703で、追加タスクの周期Tと制御タスクの周期Tの比率mを求める。S704で、基本周期の一周期内で処理される追加タスクの処理時間C/mを求め、制限時間3とする。S705で、制限時間2を式22から求める。
【0116】
制限時間2=基本周期−C−C/m ・・・(22)
【0117】
このようにして求められた基本周期、2、3を用いて図10の手順でタスク管理を行う。
【0118】
このようなタスクコントローラは、周期を一番短くする必要なタスクの周期を設定するので、設定した周期内で処理が行われる。
【0119】
実施の形態10.
図22は、この発明の実施の形態10のタスクコントローラのブロック図である。図22のタスクコントローラは、図1の周期設定手段の替わりに使用率設定手段13を備え、制限時間算出手段9で使用率を設定することで基本周期および制限時間2を算出することが異なり、その他は同様であるので、同様な部分の説明は省略する。タスクの管理は図3と同様である。
【0120】
制限時間を求める手順について図23を参照して説明する。S801で、使用率設定手段13は、表示タスクの周期Rを設定する。S802で、制限時間算出手段9は、表示タスクの周期Tを表示タスクの処理時間CをRで割って求める。S803で、制限時間算出手段9は、制御タスクの処理時間Cと表示タスクのCPU使用率Rから制御タスクTを求める。S804で、制限時間算出手段9は、表示タスクの周期Tと制御タスクの周期Tを比較し、Tが大きければ、S805へ進み、Tが同じか小さければ、S807へ進む。S805で、制限時間算出手段9は、基本周期に制御タスクの周期Tを用いる。S806で、制限時間算出手段9は、制限時間2に制御タスクの周期Tを表示タスクの使用率Rで割った値を設定する。S807で、制限時間算出手段9は、表示を優先させるかを判断する。表示を優先する場合は、S808へ進み、表示を優先しない場合はS810へ進む。S808で、制限時間算出手段9は、基本周期に制御タスクの周期Tを設定し、S809へ進む。S809で、制限時間算出手段9は、制限時間2に表示タスクの処理時間Cを用いる。S810で、制限時間算出手段9は、基本周期に制御タスクの処理時間Cと表示タスクの処理時間Cとの和を用いる。除算で小数点以下の余りが出た場合は、商の値を1つ繰り上げる。
【0121】
割り当てられた制限時問内に処理が終了する場合は、表示タスク、制御タスク共に、次の周期の処理を前倒しで行うか、処理が終了した時点で次の周期までアイドル状態として待機する方法がある。
【0122】
このようなタスクコントローラは、設定した表示タスクのCPU使用率に基づいて、基本周期と制限時間2を算出し、表示タスクと制御タスクに割り当てるCPU時間変更するため、設定した表示タスクのCPU使用率でCPUリソースを配分することができる。
【0123】
実施の形態11.
図24は、この発明の実施の形態11の画面データのデータ配置図である。画面データ算出手段12は、表示処理時間Cに画面更新処理時間CDRを追加する。
【0124】
一つの画面に表示する表示部品のデータを並べた画面データの先頭に、その画面を表示する際の画面更新処理時間を配置している。一つの画面に表示する表示部品のデータを並べた画面データの先頭に、その画面を表示する際の表示タスクのCPU使用率を追加する。タスク処理手段4は、表示する画面に対応した画面データを参照し、画面データに含まれている表示部品を画面上に表示する際に、画面データに記述されているCPU使用率を表示タスクに割当てる。
【0125】
このようなタスクコントローラは、画面毎にCPU使用率を設定できるので、CPUリソースを多く割当てることにより短い周期で表示を更新したい画面と、CPUリソースの割当てを少なくし、長い周期で表示した画面を設定することができる。
【0126】
実施の形態12.
図25は、表示タスクと制御タスクの他に追加タスクとして複数のタスクを追加し、追加した複数のタスクを追加タスクに割り当てられた制限時間内で、ラウンドロビンスケジューリングによって実行している様子を示す図である。
【0127】
基本周期、制限時間2、制限時間3は、実施の形態2に示す方法によって設定される時間である。
【0128】
図25では、追加タスクとしてタスクA、タスクB、タスクCの3つのタスクを実行している様子を示している。これらのタスクはバックグランド処理を行うタスクであり、指定されたタイムスライスが経過すると次のタスクヘ処理を移す。追加タスクに割り当てられた制限時間3が経過すると、制御タスクへ切り換る。
【0129】
このようなタスクコントローラは、バックグランド処理を行うタスクにも、均等にCPU時問が割り当てられるため、確実に処理を進めることができる。
【0130】
【発明の効果】
この発明に係わるタスクコントローラの効果は、N(Nは2以上の正の整数)個の周期タスクを処理するタスクコントローラにおいて、タスクの中でいずれか1つのタスクを特定タスクとし、タスクの中の特定タスクを除く(N−1)個のタスク毎の周期を設定する周期設定手段と、すべてのタスク毎の処理時間を計時する処理計時手段と、設定された周期と計時された処理時間とから特定タスクの起動周期となる1個の基本周期及びタスク毎の処理に対して基本周期内で割り当てられた時間である(N−1)個の制限時間を求める制限時間算出手段と、基本周期内に(N−1)個のタスクの処理をそれぞれに対応する制限時間に従って割り振るタスク管理手段とを備えたので、表示タスクの処理時問が変化した場合でも、あらかじめ設定した表示タスクの周期で処理を完了するので、タイムリーに表示され、また緊急に異常事態を表示しなければならなくなったとき、表示できる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1のタスクコントローラのブロック図である。
【図2】 表示タスクと制御タスクとを1つのCPUで実行するタイムチャートである。
【図3】 図1のタスクコントローラのタスク管理のフローチャートである。
【図4】 タスクの割り振られたタイムチャートである。
【図5】 図1のタスクコントローラの制限時間などの算出のフローチャートである。
【図6】 2つのタスクの割り振られたタイムチャートである。
【図7】 表示タスクの処理時間が増加したときのタイムチャートである。
【図8】 追加タスクと制御タスクだけを考慮したタイムチャートである。
【図9】 表示タスク、制御タスク、追加タスクを1つのCPUで実行するタイムチャートである。
【図10】 この発明の実施の形態2のタスクコントローラのタスク管理のフローチャートである。
【図11】 この発明の実施の形態2のタスクコントローラの制限時間などの算出のフローチャートである。
【図12】 3つのタスクの割り振られたタイムチャートである。
【図13】 N個のタスクを1つのCPUで実行するタイムチャートである。
【図14】 この発明の実施の形態3のタスクコントローラのタスク管理のフローチャートである。
【図15】 N個のタスクの割り振られたタイムチャートである。
【図16】 この発明の実施の形態3のタスクコントローラの制限時間などの算出のフローチャートである。
【図17】 この発明の実施の形態4のタスクコントローラのブロック図である。
【図18】 画面とその表示部品のデータの関係を示す説明図である。
【図19】 図18とは異なった表示部品のデータを示す説明図である。
【図20】 この発明の実施の形態5の表示部品のデータを示す説明図である。
【図21】 この発明の実施の形態9のタスクコントローラの制限時間などの算出のフローチャートである。
【図22】 この発明の実施の形態10のタスクコントローラのブロック図である。
【図23】 図22のタスクコントローラの制限時間などの算出のフローチャートである。
【図24】 この発明の実施の形態11の表示部品のデータを示す説明図である。
【図25】 この発明の実施の形態12のタスクコントローラでタスクを割り振ったタイムチャートである。
【図26】 図3のタスク管理の処理であるタスク管理タスクのフローチャートである。
【符号の説明】
1 タスクコントローラ、2 制御対象機器、3 表示機器、4 タスク処理手段、5 タスク管理手段、6 タイマ手段、7 処理時間計時手段、8 周期設定手段、9 制限時間算出手段、10 第一のタイマ手段、11 第二のタイマ手段、12 画面データ算出手段、13 使用率設定手段。

Claims (10)

  1. N(Nは2以上の正の整数)個の周期タスクを処理するタスクコントローラにおいて、
    上記タスクの中でいずれか1つのタスクを特定タスクとし、上記タスクの中の上記特定タスクを除く(N−1)個の上記タスク毎の周期を設定する周期設定手段と、
    全ての上記タスクの処理時間を計時する処理計時手段と、
    上記設定された周期と上記計時された処理時間とから上記特定タスクの起動周期となる1個の基本周期及び上記タスク毎の処理に対して基本周期内で割り当てられた時間である(N−1)個の制限時間を求める制限時間算出手段と、
    上記基本周期内に(N−1)個のタスクの処理をそれぞれに対応する制限時間に従って割り振るタスク管理手段とを備えたことを特徴とするタスクコントローラ。
  2. 第一タスクは、最も高速周期で動くことが求められるタスクであることを特徴とする請求項1に記載のタスクコントローラ。
  3. 上記制限時間算出手段は、
    特定タスクの処理時間と周期の設定した(N−1)個のタスクから1個選択したタスクの周期及び処理時間とから上記特定タスクの周期を求め、
    この求めた周期を結合タスクの処理時間と見なし、結合タスクの処理時間と残ったタスクから選択した1個のタスクの周期及び処理時間とからこの結合タスクの周期を求め、
    さらにこの結合タスクの周期を新たな結合タスクの処理時間と見なし、この新たな結合タスクの処理時間と残ったタスクから選択した1個のタスクの周期及び処理時間とから新たな結合タスクの周期を求めるようにしてすべてのタスクに関する結合タスクの周期を順次求め、
    上記特定タスクに関する周期および結合タスクの周期からそれぞれのタスクに係わる制限時間を求め、
    最後に求めた結合タスクの周期を基本周期とすることを特徴とする請求項1または2に記載のタスクコントローラ。
  4. タスクは、表示タスクを含み、
    画面に表示する表示部品のデータから表示タスクの処理時間を算出する画面データ算出手段を備え、
    上記制限時間算出手段は、上記設定された周期と上記画面算出手段で算出された処理時間とから基本周期と(N−1)個の制限時間とを求めることを特徴とする請求項1乃至3のいずれか1項に記載のタスクコントローラ。
  5. タスクは、表示タスクを含み、
    上記画面データ算出手段は、画面の更新に必要な画面更新処理時間を表示タスクの処理時間に追加することを特徴とする請求項4に記載のタスクコントローラ。
  6. 上記周期設定手段は、表示の重要性を示す値とあらかじめ決められた閾値との差に従って表示タスクの周期を変化させて設定することを特徴とする請求項4または5に記載のタスクコントローラ。
  7. 表示処理を担当する表示タスクと制御処理を担当する制御タスクとから構成される機器上でタスクを制御するタスクコントローラにおいて、
    表示タスクの周期をTD、表示タスクの処理時間をCD、表示タスクのCPU使用率をRD、制御タスクの周期をTC、制御タスクの処理時間をCC、制御タスクのCPU使用率をRCとするとき、RD=CD÷TDおよびRC=CC÷TCの関係式が成り立ち、
    上記2つのタスクのみ存在するとき、制御タスクのCPU使用率がRC=1−RDで表されることによりTC=CC÷(1−RD)=CC÷(1−CD÷TD)の関係式が成り立ち、
    上記表示タスクの処理時間CDと上記制御タスクの処理時間CCが計時手段によって得られ、
    上記表示タスクの周期CDが周期設定手段によって設定されることにより上記制御タスクの周期TCが求められることを特徴とするタスクコントローラ。
  8. (N−1)個のタスクのCPU使用率を設定する使用率設定手段を備え、
    上記制限時間算出手段は、上記使用率設定手段で設定された使用率と上記計時された処理時間とから1個の基本周期と(N−1)個の制限時間とを求めることを特徴とする請求項1または2に記載のタスクコントローラ。
  9. 画面データ算出手段は、画面に表示する表示部品のデータから表示タスクのCPU使用率を算出することを特徴とする請求項8に記載のタスクコントローラ。
  10. 上記タスク管理手段は、少なくとも1つの制限時間内に複数のタスクをラウンドロビンスケジューリングで割り振ることを特徴とする請求項1または2に記載のタスクコントローラ。
JP2003123988A 2003-04-28 2003-04-28 タスクコントローラ Expired - Lifetime JP4108530B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003123988A JP4108530B2 (ja) 2003-04-28 2003-04-28 タスクコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003123988A JP4108530B2 (ja) 2003-04-28 2003-04-28 タスクコントローラ

Publications (2)

Publication Number Publication Date
JP2004326679A JP2004326679A (ja) 2004-11-18
JP4108530B2 true JP4108530B2 (ja) 2008-06-25

Family

ID=33501722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003123988A Expired - Lifetime JP4108530B2 (ja) 2003-04-28 2003-04-28 タスクコントローラ

Country Status (1)

Country Link
JP (1) JP4108530B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5069325B2 (ja) 2010-03-11 2012-11-07 株式会社豊田中央研究所 タスク実行制御装置及びプログラム
CN103136037B (zh) * 2011-12-02 2016-06-08 纬创资通股份有限公司 任务管理系统及方法
KR101429168B1 (ko) * 2012-05-30 2014-08-13 한국과학기술정보연구원 화면갱신 제어방법, 화면갱신 제어장치 및 그 저장매체
JP6295193B2 (ja) * 2014-12-16 2018-03-14 日本電信電話株式会社 情報処理装置、情報処置装置のリソース制御方法及びそのプログラム
JP6926472B2 (ja) * 2016-12-27 2021-08-25 株式会社ジェイテクト 解析装置および解析システム

Also Published As

Publication number Publication date
JP2004326679A (ja) 2004-11-18

Similar Documents

Publication Publication Date Title
EP2562644A1 (en) Systems and methods for bounding processing times on multiple processing units
CN105934928A (zh) 在分布式资源系统中用户请求的调度方法和装置
JP4108530B2 (ja) タスクコントローラ
JP2008234285A (ja) ジョブスケジューラ、ジョブスケジュール方法、及び、ジョブ制御プログラム
Albers et al. On multi-processor speed scaling with migration
WO2015052501A1 (en) Scheduling function calls
JP4829177B2 (ja) ディスパッチ装置
US7380027B2 (en) DMA controller and DMA transfer method
US9195515B1 (en) Method and system for process load balancing
JP4292705B2 (ja) タスクスケジューリング装置
CN110447013A (zh) 定时器实现方法和装置
JP2005018560A (ja) 命令プロセッサ割り当てスケジューリング方法、該命令プロセッサ割り当てスケジューリング方法を実現する計算機システムおよびそのためのプログラム
US20110153894A1 (en) Interrupt-handling-mode determining method of embedded operating system kernel
Fung Online scheduling with preemption or non-completion penalties
JP5780331B1 (ja) 情報処理装置及び情報処理プログラム
JPH06149599A (ja) 計算機システム
JP2014225137A (ja) タスクスケジューラ,マイクロプロセッサ及びタスクスケジューリング方法
JP6724631B2 (ja) 情報処理装置及びプログラム
JP2006251875A (ja) バス調停装置及びバス調停方法
CN113778656A (zh) 线程池的线程配置方法、装置、服务器和存储介质
JP2007072598A (ja) バス調停方法及びバス調停プログラム
JP2015210752A (ja) プログラマブルコントローラ及び制御プログラム
JP2004246552A (ja) 計算機システム及びメモリ割り当て量保証値動的変更方法並びにプログラム
JPH10187469A (ja) マルチプロセッサのプロセスディスパッチ方法
JP2009151487A (ja) Dma転送制御装置及びデータ転送装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070807

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080213

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080402

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110411

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120411

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120411

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130411

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130411

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140411

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250