JP4108530B2 - タスクコントローラ - Google Patents
タスクコントローラ Download PDFInfo
- 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
Links
Images
Description
【発明の属する技術分野】
この発明は、複数の周期タスクを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】
以下の説明において、TDは表示タスクの周期、CDは表示タスクの処理時間、RDは表示タスクのCPU使用率を示す。また、TCは制御タスクの周期、CCは制御タスクの処理時問、RCは制御タスクのCPU使用率である。
【0015】
次に、タスク管理の基本について図2を参照して説明する。処理時間CD、CCは、処理時間計時手段7でそれらの一周期処理完了毎に求められる。周期TD、TCは、周期設定手段8でマニュアルまたは自動的に設定される。
【0016】
図2の実線の部分は、各タスクがCPUを使用している期間を表し、点線の部分はそのタスク以外のタスクがCPUを占有している期間を表している。また、斜線の部分は、各タスクの1周期分の処理が終了したことを表している。
【0017】
図2から分かるように、表示タスクのCPU使用率RDと、制御タスクのCPU使用率RCはそれぞれ式1、式2で表される。
【0018】
RD=CC÷TD ・・・(1)
RC=CC÷TC ・・・(2)
【0019】
タスクコントローラ1では、表示タスクと制御タスクのみを処理するので、制御タスクのCPU使用率RCは式3で表される。
【0020】
RC=1−RD ・・・(3)
【0021】
ゆえに、制御タスクの周期TCは、式1、式2、式3から式4で求められる。
【0022】
TC=CC÷(1−RD)=CC÷(1−CD÷TD) ・・・(4)
【0023】
この式4の中で、処理時間CCとCDは、事前に求められているので、一方のタスク、例えば表示タスクの周期TDを設定することで制御タスクの周期TCを求めることができる。
【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を参照して説明する。表示タスクの周期TDを設定し、基本周期と制限時間2とを算出するアルゴリズムである。なお、処理時間CCとCDは、上述したようにS110で最新の値が求められており、これらの値を用いる。各タスクの処理時間には、他のタスクによってプリエンプトされている時間は加えず、純粋にそのタスクが走行している時間を計時する。
【0026】
S201で、周期設定手段8は、表示タスクの周期TDを設定する。S202で、制限時間算出手段9は、表示タスクの周期TDと表示タスクの処理時聞CDとを比較し、TDがCDより大きければS204へ進む。TDがCDと同じか小さい場合は、S203へ進む。S203で、制限時間算出手段9は、TDの値として制御タスクの処理時間CCとCDとの和を用いる。S204で、制限時間算出手段9は、表示タスクのCPU使用率RDを表示タスクの処理時間CDをTDで割って求める。S205で、制限時間算出手段9は、制御タスクの処理時間CCと表示タスクのCPU使用率RDから制御タスクTCを求める。S206で、制限時間算出手段9は、表示タスクの周期TDと制御タスクの周期TCを比較し、TDが大きければ、S207へ進み、TDが同じか小さければ、S209へ進む。S207で、制限時間算出手段9は、基本周期に制御タスクの周期TCを用いる。S208で、制限時間算出手段9は、制限時間2に表示タスクの処理時間CDを表示タスクの周期TDで割った値に制御タスクの周期TCを乗じた値を設定する。S209で、制限時間算出手段9は、表示を優先させるかを判断する。表示を優先する場合は、S210へ進み、表示を優先しない場合はS212へ進む。S210で、制限時間算出手段9は、基本周期に制御タスクの周期TCを設定し、S211へ進む。S211で、制限時間算出手段9は、制限時間2に表示タスクの処理時間CDを用いる。S212で、制限時間算出手段9は、基本周期に制御タスクの処理時間CCと表示タスクの処理時間CDとの和を用いる。除算で小数点以下の余りが出た場合は、商の値を1つ繰り上げる。
【0027】
次に、図6は、表示タスクの周期TDを108msec、表示タスクの処理時間CDを36msec、制御タスクの処理時問CCを24msecとしたときの、表示タスクと制御タスクのスケジューリングの結果である。
【0028】
さらに、図7は、表示タスクの処理時間CDが50msec、制御タスクの処理時問CCが24msecになったとき、表示タスクの周期TDを108msecに設定を据え置いた場合のタスクスケジューリングの結果である。
【0029】
このように、表示タスクの処理内容が増加したときでも、制御タスクの周期が長くなり、設定した周期で表示タスクが完了する。
【0030】
割り当てられた基本周期内に処理が終了する場合は、表示タスク、制御タスク共に、次の周期の処理を前倒しで行うか、処理が終了した時点で次の周期までアイドル状態として待機する方法がある。
【0031】
このようなタスクコントローラは、表示タスクの処理時問が変化した場合でも、あらかじめ設定した表示タスクの周期で処理を完了するので、タイムリーに表示され、また緊急に異常事態を表示しなければならなくなったとき、表示できる。
【0032】
なお、図3のフローチャートに示された2つのタスク(表示および制御タスク)を管理するタスク管理タスクをCPUに割り当てて実行しても同様である。この際のタスク管理タスクのフローチャートを図26に示す。さらに、図10、図14で示されたタスクの管理を同様にタスク管理タスクとしてタスクコントローラに実装しておいてもよい。
【0033】
実施の形態2.
この発明の実施の形態2のタスクコントローラは、表示タスク、制御タスク、追加タスクからなる3つのタスクの処理を行う。タスクコントローラ1は、図1と同様である。
【0034】
タスク管理の基本について説明する。図8は追加タスクと制御タスクだけを考慮したタイムチャートである。図9は、表示タスク、制御タスク、追加タスクとを1つのCPUで実行するタイムチャートである。
【0035】
まず、追加タスクと制御タスクに着目し、処理時間CA、CCは事前に求まっており、追加タスクの周期TAを設定する。追加タスクのCPU使用率RAと、制御タスクのCPU使用率RCはそれぞれ式5、式6で表される。
【0036】
RA=CA÷TA ・・・(5)
RC=CC÷TC ・・・(6)
【0037】
タスクコントローラでは、まず追加タスクと制御タスクのみを処理するので、制御タスクのCPU使用率RCは式7で表される。
【0038】
RC=1−RA ・・・(7)
【0039】
また、制御タスクの周期TCは、式5、式6、式7から式8で求めることができる。
【0040】
TC=CC÷(1−RA)=CC÷(1−CA÷TA) ・・・(8)
【0041】
この式8の中で、処理時間CCとCAは、事前に求められているので、一方のタスク、例えば追加タスクの周期TAを設定することで制御タスクの周期TCを求めることができる。
【0042】
ここで求めた制御タスクの周期TCを、制御タスクの処理時間と追加タスクのうち制御タスクの1周期TC分の処理時間の合わせた結合タスクの処理時間CPと置く。
【0043】
このようにすると、3つのタスクを2つのタスクのタスク管理に変換することができる。
【0044】
そこで、処理時間CP、CDは事前に求まっており、表示タスクの周期TDを設定する。結合タスクのCPU使用率RPと、表示タスクのCPU使用率RDはそれぞれ式9、式10で表される。
【0045】
RP=CP÷TP ・・・(9)
RD=CD÷TD ・・・(10)
【0046】
タスクコントローラでは、結合タスクと表示タスクのみを処理するので、結合タスクのCPU使用率RPは式11で表される。
【0047】
RP=1−RD ・・・(11)
【0048】
また、結合タスクの周期TPは、式9、式10、式11から式12で求めることができる。
【0049】
TP=CP÷(1−RD)=CP÷(1−CD÷TD) ・・・(12)
【0050】
この式12の中で、処理時間CPとCDは、事前に求められているので、一方のタスク、例えば表示タスクの周期TPを設定することで結合タスクの周期TPを求めることができる。
【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は、追加タスクの周期TAを設定する。S402で、追加タスクの周期TAと追加タスクの処理時聞CAとを比較し、TAがCAより大きければS404へ進む。TAがCAと同じか小さい場合は、S403へ進む。S403で、TAの値として制御タスクの処理時間CCと追加タスクの処理時間CAとの和を用いる。S404で、追加タスクのCPU使用率RAを追加タスクの処理時間CAを追加タスクの周期TAで割って求める。S405で、制御タスクの処理時間CCと追加タスクのCPU使用率RAから制御タスクの周期TCを求める。この制御タスクの周期TCは見掛け上として結合タスクの処理時間CPとする。また、制限時間3を追加タスクの処理時間CPを追加タスクの周期TPで除算し、その値に制御タスクの周期TCを掛けて求める。S406で、周期設定手段8は、表示タスクの周期TDを設定する。S407で、表示タスクの周期TDと表示タスクの処理時聞CDとを比較し、TDがCDより大きければS409へ進む。TDがCDと同じか小さい場合は、S408へ進む。S408で、TDの値として制御タスクの周期TCと表示タスクの処理時間CDとの和を用いる。S409で、表示タスクのCPU使用率RDを表示タスクの処理時間CDを表示タスクの周期TDで割って求める。S410で、結合タスクの処理時間CPと表示タスクのCPU使用率RDから結合タスクの周期TPを求める。S411で、表示タスクの周期TDと結合タスクの周期TPを比較し、TDが大きければ、S412へ進み、TDが同じか小さければ、S414へ進む。S412で、基本周期に結合タスクの周期TPを用いる。S413で、制限時間2に表示タスクの処理時間CDを表示タスクの周期TDで割った値に結合タスクの周期TPを乗じた値を設定する。S414で、表示を優先させるかを判断する。表示を優先する場合は、S415へ進み、表示を優先しない場合はS417へ進む。S415で、基本周期に結合タスクの周期TPを設定し、S416へ進む。S416で、制限時間2に表示タスクの処理時間CDを用いる。S417で、基本周期に結合タスクの処理時間CPと表示タスクの処理時間CDとの和を用いる。
【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)とに着目し、処理時間CN、CN−1は事前に求まっているので、タスク(N−1)の周期TN−1を設定する。一方、タスクNの周期は、2つだけのタスクに着目しているので、TN;N−1と表現する。タスク(N−1)のCPU使用率RN−1と、タスクNのCPU使用率RNはそれぞれ式13、式14で表される。
【0056】
RN−1=CN−1÷TN−1 ・・・(13)
RN=CN÷TN;N ・・・(14)
【0057】
タスクコントローラでは、まずタスクNとタスク(N−1)のみを処理するので、タスクNのCPU使用率RNは式15で表される。
【0058】
RN=1−RN−1 ・・・(15)
【0059】
また、タスクNの周期TN;Nは、式13、式14、式15から数1となる。
【0060】
【数1】
【0061】
この数1の中で、処理時間CNとCN−1は、事前に求められているので、一方のタスク、例えばタスク(N−1)の周期TN−1を設定することでタスクNの周期TN;Nを求めることができる。
【0062】
ここで求めたタスクNの周期TN;Nを、タスクNの処理時間CNとタスク(N−1)のうちタスクNの1周期TN;N分の処理時間とを合わせた結合タスク(N−1)の処理時間CN;N−1に代入すると数2で表される。
【0063】
【数2】
【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】
RN;N−1=CN;N−1÷TN;N−1 ・・・(16)
RN−2=CN−2÷TN−2 ・・・(17)
【0067】
タスクコントローラでは、結合タスク(N−1)とタスク(N−2)のみを処理するので、結合タスク(N−1)のCPU使用率RN;N−1は式18で表される。
【0068】
RN;N−1=1−RN−2 ・・・(18)
【0069】
また、結合タスク(N−1)の周期TN;N−1は、式16、式17、式18から数3となる。
【0070】
【数3】
【0071】
この数3の中で、処理時間CN−1とCN−2とCNと周期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】
【0073】
さらに、これらを繰り返し、最後に、結合タスク2の処理時間CN;2は数5で表される。
【0074】
【数5】
【0075】
結合タスク2のCPU使用率RN;2と、タスク1のCPU使用率R1はそれぞれ式19、式20で表される。
【0076】
RN;2=CN;2÷TN;2 ・・・(19)
R1=C1÷T1 ・・・(20)
【0077】
タスクコントローラでは、まず結合タスク2とタスク1のみを処理するので、結合タスク2のCPU使用率RN;2は式21で表される。
【0078】
RN;2=1−R1 ・・・(21)
【0079】
また、結合タスク2の周期TN;2は、式19、式20、式21から数6となる。
【0080】
【数6】
【0081】
一方、タスク1の結合タスク2の周期内での処理時間CN;1は数7になる。
【0082】
【数7】
【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の処理時間CNを代入する。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)の制限時間を求めるときは、CNであり、それ以降は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】
【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】
【0089】
S608で、nにn+1を代入する。S609で、nとN−1を比較する。nがN−1より等しいか大きいとS609へ進む。nがN−1より小さいとS603へ戻る。S610で、タスク1の処理時間C1および周期T1からタスク1のCPU使用率R1を求める。S611で、結合タスク2の処理時間CN;2とタスク1のCPU使用率R1から数10に基づいて結合タスク2の周期TN;2を求める。
【0090】
【数10】
【0091】
S612で、タスク1の周期T1と結合タスク2の周期TN;2を比較し、T1が大きければ、S613へ進み、T1が同じか小さければ、S615へ進む。S613で、基本周期L1に結合タスクの周期TN;2を用いる。S614で、制限時間L2にタスク1の処理時間C1をタスク1の周期T1で割った値に結合タスクの周期TN;2を乗じた値を設定する。S615で、表示を優先させるかを判断する。表示を優先する場合は、S616へ進み、表示を優先しない場合はS618へ進む。S616で、基本周期L1に結合タスクの周期TN;2を設定し、S617へ進む。S617で、制限時間L2にタスク1の処理時間C1を用いる。S618で、基本周期L1に結合タスク2の処理時間CN;2とタスク1の処理時間C1との和を用いる。
【0092】
このようなタスクコントローラは、N個のタスクについて、タスク毎に所望の周期を割り当て、システム全体の処理を進めることができる。
【0093】
実施の形態4.
図17は、この発明の実施の形態4のタスクコントローラのブロック図である。図18、図19は、画面とその表示部品のデータの関係を示す説明図である。図17は図1に画面データ量算出手段12を備えていることが異なっていて、その他は同様であり、同様な部分の説明は省略する。
【0094】
表示機器3に表示される画面は、複数の表示部品で構成されており、それぞれの表示部品は画素数、色彩など表示処理時間に直接関連するデータを有している。これらの画面データは、コンピュータの画像用メモリに一旦取り込まれ、タスク処理手段4によって処理されて、表示機器3へ送出される。画面データ算出手段12は、表示部品のそれぞれの描画処理に必要な時間を加算して、一画面に関する処理時間を求める。この処理時間CDを実施の形態1の表示タスクの処理時間CDとして用いて、タクス管理を行う。
【0095】
画面データは、一つの画面に表示する表示部品のデータを並べたものであり、表示する画面毎に画面データがある。
【0096】
タスク処理手段4は、表示する画面に対応した画面データを参照し、画面データに含まれている表示部品のデータを読み出して、画面上に表示部品を描画する。
【0097】
画面データに含まれている表示部品のデータを読むと、表示部品の種類と表示するサイズから描画処理に必要な時間がわかるので、画面切換え時に、切り換えた後の画面の表示に必要な描画処理時間を計算で求めることができる。
【0098】
画面切換え後、一度画面を描画すると、その一画面の描画にかかった時間を表示処理時間として、従来どおりにCPUリソースの配分を決める。
【0099】
このようなタスクコントローラは、画面切換え時に、以前の画面の処理時間からもとめたCPUリソースの配分を用いて、新たな画面を描画すると、新旧の画面上に配置されている表示部品の違いから、適切なCPUリソースの配分とはならない。表示部品が増える場合、表示に割当てられた時間内に画面上の全ての表示部品を表示することができず、次の表示の割当て周期に繰り越されるため、表示の周期が所望の値に比べ、長くなってしまう。
【0100】
画面切換え時に、事前に次に表示する画面の描画時間を把握することで、表示処理に適切なCPUリソースを配分し、画面切換え直後に表示の周期が長くなることを防ぐことができる。
【0101】
実施の形態5.
この発明の実施の形態5の画面データのデータ配置図である。画面データ算出手段12は、表示処理時間CDに画面更新処理時間CDRを追加する。
【0102】
図20は、図面データの配置図である。一つの画面に表示する表示部品のデータを並べた画面データの先頭に、その画面を表示する際の画面更新処理時間を配置している。
【0103】
タスク処理手段4は、表示する画面に対応した画面データを参照し、画面データに含まれている表示部品を画面上に表示する際に、その画面を表示する際の画面更新処理時間を読出し、その値を用いてタスク管理を実施の形態1と同様に行う。
【0104】
このように、画面の更新時に処理時間に画面更新処理時間を追加できるので、画面切換え時に、画面毎に必要な更新処理時間を含んでいるので、確実に画面更新を行うことができる。
【0105】
実施の形態6.
この発明の実施の形態6のタスクコントローラの周期設定手段8は、表示タスクの周期TDを最短30msecと設定する。
【0106】
このようなタスクコントローラは、人の認識能力を超える周期で描画を更新しても、リソースの無駄遣いになる。表示周期を適切な値に抑えることで、他のタスクへリソースを配分し、リソースを効果的に活用できる。
【0107】
実施の形態7.
この発明の実施の形態7のタスクコントローラの周期設定手段8は、画面に表示している表示の重要性に係わる値が、時間と共に増減し、その値が設定した閾値に近くなると、表示タスクの周期を短くして、値の変化を短い間隔で表示するようにする。表示している値が、閾値から離れると、画面の更新周期をもとの周期に戻す。
【0108】
例えば、表示タスクの周期を200msecに設定し、200msec周期で画面を更新しながら、複数のタスクの処理を実行しているとき、表示画面に棒グラフとして表示している変数の値が、例えば80に設定している閾値80に近づき、75になった時点で、表示タスクの周期を100msecに自動的に設定し直し、100msecで表示タスクを処理し、画面を更新する。さらに、棒グラフとして表示している変数の値が、78になった段階で、表示タスクの周期を50msecにする。
【0109】
その変数の値が、再び75まで減少したとき、表示タスクの周期を100msecに戻し、さらに変数の値が減少したとき、もとの周期である200msecに表示タスクの周期を戻す。
【0110】
このようなタスクコントローラは、あらかじめ設定した閾値に近づいた値を、閾値から離れている時より短い周期で表示することで、閾値に近づいたときの値の変化を的確に捉えることができる。
【0111】
実施の形態8.
この発明の実施の形態8のタスクコントローラは、表示タスクの処理時間CD、制御タスクの処理時間CC、表示タスクの周期TDをそれぞれ分割し、その分割した幅の代表値を用いて、実施の形態1に示す手順で演算した基本周期と制限時間2を示すテーブルを備えている。
【0112】
表示タスクと制御タスクのそれぞれの処理時間から、テーブル上の適切な表示タスクの周期を選択し、タスク管理を行う。
【0113】
このようなタスクコントローラは、各タスクの係わる制限時間を細かく計算する必要がないので、計算量を抑えることができ、リソース配分の処理に必要なオーバーヘッドを抑えることができる。
【0114】
実施の形態9.
図21は、この発明の実施の形態9のタスクコントローラの制限時間を求めるフローチャートである。複数のタスクのうち、一番処理周期を短くする必要のあるタスクの処理周期を設定することである。
【0115】
制限時間を求める手順について説明する。S701で、最も起動周期を短くする必要のある制御タスクの起動周期TCを基本周期に設定する。S702で、次に周期を短くする必要な追加タスクの周期TAを設定する。S703で、追加タスクの周期TAと制御タスクの周期TCの比率mを求める。S704で、基本周期の一周期内で処理される追加タスクの処理時間CA/mを求め、制限時間3とする。S705で、制限時間2を式22から求める。
【0116】
制限時間2=基本周期−CC−CA/m ・・・(22)
【0117】
このようにして求められた基本周期、2、3を用いて図10の手順でタスク管理を行う。
【0118】
このようなタスクコントローラは、周期を一番短くする必要なタスクの周期を設定するので、設定した周期内で処理が行われる。
【0119】
実施の形態10.
図22は、この発明の実施の形態10のタスクコントローラのブロック図である。図22のタスクコントローラは、図1の周期設定手段の替わりに使用率設定手段13を備え、制限時間算出手段9で使用率を設定することで基本周期および制限時間2を算出することが異なり、その他は同様であるので、同様な部分の説明は省略する。タスクの管理は図3と同様である。
【0120】
制限時間を求める手順について図23を参照して説明する。S801で、使用率設定手段13は、表示タスクの周期RDを設定する。S802で、制限時間算出手段9は、表示タスクの周期TDを表示タスクの処理時間CDをRDで割って求める。S803で、制限時間算出手段9は、制御タスクの処理時間CCと表示タスクのCPU使用率RDから制御タスクTCを求める。S804で、制限時間算出手段9は、表示タスクの周期TDと制御タスクの周期TCを比較し、TDが大きければ、S805へ進み、TDが同じか小さければ、S807へ進む。S805で、制限時間算出手段9は、基本周期に制御タスクの周期TCを用いる。S806で、制限時間算出手段9は、制限時間2に制御タスクの周期TCを表示タスクの使用率RDで割った値を設定する。S807で、制限時間算出手段9は、表示を優先させるかを判断する。表示を優先する場合は、S808へ進み、表示を優先しない場合はS810へ進む。S808で、制限時間算出手段9は、基本周期に制御タスクの周期TCを設定し、S809へ進む。S809で、制限時間算出手段9は、制限時間2に表示タスクの処理時間CDを用いる。S810で、制限時間算出手段9は、基本周期に制御タスクの処理時間CCと表示タスクの処理時間CDとの和を用いる。除算で小数点以下の余りが出た場合は、商の値を1つ繰り上げる。
【0121】
割り当てられた制限時問内に処理が終了する場合は、表示タスク、制御タスク共に、次の周期の処理を前倒しで行うか、処理が終了した時点で次の周期までアイドル状態として待機する方法がある。
【0122】
このようなタスクコントローラは、設定した表示タスクのCPU使用率に基づいて、基本周期と制限時間2を算出し、表示タスクと制御タスクに割り当てるCPU時間変更するため、設定した表示タスクのCPU使用率でCPUリソースを配分することができる。
【0123】
実施の形態11.
図24は、この発明の実施の形態11の画面データのデータ配置図である。画面データ算出手段12は、表示処理時間CDに画面更新処理時間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)
- N(Nは2以上の正の整数)個の周期タスクを処理するタスクコントローラにおいて、
上記タスクの中でいずれか1つのタスクを特定タスクとし、上記タスクの中の上記特定タスクを除く(N−1)個の上記タスク毎の周期を設定する周期設定手段と、
全ての上記タスク毎の処理時間を計時する処理計時手段と、
上記設定された周期と上記計時された処理時間とから上記特定タスクの起動周期となる1個の基本周期及び上記タスク毎の処理に対して基本周期内で割り当てられた時間である(N−1)個の制限時間を求める制限時間算出手段と、
上記基本周期内に(N−1)個のタスクの処理をそれぞれに対応する制限時間に従って割り振るタスク管理手段とを備えたことを特徴とするタスクコントローラ。 - 第一タスクは、最も高速周期で動くことが求められるタスクであることを特徴とする請求項1に記載のタスクコントローラ。
- 上記制限時間算出手段は、
特定タスクの処理時間と周期の設定した(N−1)個のタスクから1個選択したタスクの周期及び処理時間とから上記特定タスクの周期を求め、
この求めた周期を結合タスクの処理時間と見なし、結合タスクの処理時間と残ったタスクから選択した1個のタスクの周期及び処理時間とからこの結合タスクの周期を求め、
さらにこの結合タスクの周期を新たな結合タスクの処理時間と見なし、この新たな結合タスクの処理時間と残ったタスクから選択した1個のタスクの周期及び処理時間とから新たな結合タスクの周期を求めるようにしてすべてのタスクに関する結合タスクの周期を順次求め、
上記特定タスクに関する周期および結合タスクの周期からそれぞれのタスクに係わる制限時間を求め、
最後に求めた結合タスクの周期を基本周期とすることを特徴とする請求項1または2に記載のタスクコントローラ。 - タスクは、表示タスクを含み、
画面に表示する表示部品のデータから表示タスクの処理時間を算出する画面データ算出手段を備え、
上記制限時間算出手段は、上記設定された周期と上記画面算出手段で算出された処理時間とから基本周期と(N−1)個の制限時間とを求めることを特徴とする請求項1乃至3のいずれか1項に記載のタスクコントローラ。 - タスクは、表示タスクを含み、
上記画面データ算出手段は、画面の更新に必要な画面更新処理時間を表示タスクの処理時間に追加することを特徴とする請求項4に記載のタスクコントローラ。 - 上記周期設定手段は、表示の重要性を示す値とあらかじめ決められた閾値との差に従って表示タスクの周期を変化させて設定することを特徴とする請求項4または5に記載のタスクコントローラ。
- 表示処理を担当する表示タスクと制御処理を担当する制御タスクとから構成される機器上でタスクを制御するタスクコントローラにおいて、
表示タスクの周期を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が求められることを特徴とするタスクコントローラ。 - (N−1)個のタスクのCPU使用率を設定する使用率設定手段を備え、
上記制限時間算出手段は、上記使用率設定手段で設定された使用率と上記計時された処理時間とから1個の基本周期と(N−1)個の制限時間とを求めることを特徴とする請求項1または2に記載のタスクコントローラ。 - 画面データ算出手段は、画面に表示する表示部品のデータから表示タスクのCPU使用率を算出することを特徴とする請求項8に記載のタスクコントローラ。
- 上記タスク管理手段は、少なくとも1つの制限時間内に複数のタスクをラウンドロビンスケジューリングで割り振ることを特徴とする請求項1または2に記載のタスクコントローラ。
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)
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 | 株式会社ジェイテクト | 解析装置および解析システム |
-
2003
- 2003-04-28 JP JP2003123988A patent/JP4108530B2/ja not_active Expired - Lifetime
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 |