JP2009025939A - タスク制御方法及び半導体集積回路 - Google Patents

タスク制御方法及び半導体集積回路 Download PDF

Info

Publication number
JP2009025939A
JP2009025939A JP2007186709A JP2007186709A JP2009025939A JP 2009025939 A JP2009025939 A JP 2009025939A JP 2007186709 A JP2007186709 A JP 2007186709A JP 2007186709 A JP2007186709 A JP 2007186709A JP 2009025939 A JP2009025939 A JP 2009025939A
Authority
JP
Japan
Prior art keywords
task
elapsed time
checkpoint
progress
processor
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.)
Pending
Application number
JP2007186709A
Other languages
English (en)
Inventor
Tetsuro Motomura
哲朗 本村
Satoshi Mitsusaka
智 三坂
Hiroyuki Ono
裕幸 小野
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2007186709A priority Critical patent/JP2009025939A/ja
Priority to US12/174,711 priority patent/US20090024985A1/en
Publication of JP2009025939A publication Critical patent/JP2009025939A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

【課題】タスク制御の対象とされるアプリケーションソフトウェアの適用範囲の制約を軽減する。
【解決手段】プロセッサ(100,101)によってアプリケーションソフトウェアタスクが実行される場合において、アプリケーションソフトウェアタスクには予めチェックポイントが埋め込まれる。上記アプリケーションソフトウェアタスクの実行中に、上記チェックポイントを用いて、上記アプリケーションソフトウェアタスクの経過ポイントを問い合わせる。問合せた結果の現在の経過ポイントと経過ポイントに対応する経過予算から上記タスクの進捗状況を判断し、その判断結果に基づいて、タスクが利用する共有リソースを制御するとともに、新たな経過予算を設定する。これにより、タスク制御の対象とされるアプリケーションソフトウェアの適用範囲の制約が軽減される。
【選択図】図1

Description

本発明は、プロセッサによってアプリケーションソフトウェアタスクが実行される際のタスク制御技術に関する。
半導体集積回路は、微細化に伴うクロック周波数向上の限界や、電力増大により、処理の高速化と低電力化は、ますます困難となってきている。そこで、これまで実行前に静的に決定したハードやタスクの実行方法のみならず、動的に決まる要因まで考慮したより繊細なタスクやハードリソースの制御が注目されている。
その代表例として、特許文献1は、同一プログラムを繰り返し実行するタスクに対して、タスクの進捗状況を、プログラムの実行回数で判断する。すなわち、プログラムは予算時間Tを持ち、全部でN回繰り返されるとすると、T×M時間でM回実行されるはずである。この時、実際には、M回以下なら遅れており、M回以上なら進んでいると判断できる。遅れが顕著な時には、クロック周波数を上げ、進んでいるときにはクロック周波数を下げることができる。
特許文献1は、低電力化のための制御であるため、クロック周波数を下げる場合を想定して執筆されているが、遅れている場合に周波数をあげる方法も、本質的な差異はない。このように、従来の方法は、所定のプログラムを繰り返し実行する回数により、進捗状況を判断し、その判断結果により、クロック周波数や電圧を制御することにより、性能や電力を改善する。
特開2002−202893号公報
上記の従来技術は、ある特定のプログラムが何回実行されたかで、進捗状況を判断するため、アプリケーションソフトウェアの適用範囲に制約がある。例えば実行時間が異なる複数のプログラムの組合せでタスクが構成されているときに、各プログラムごとに周波数を変更するような要望には対応できない。
画像圧縮プログラムは、離散コサイン変換、可変長符号化、量子化などのサブプログラムから成り、各々のサブプログラムは異なる実行時間を持つため、画像圧縮プログラム全体がN回繰り返される場合において、より素早い制御を行うためには、プログラム単位に進捗を監視して制御することが望ましい。
また、従来技術は、マルチプロセッサ上でのタスクを扱っていないため、プロセッサの共有リソースに対する制御は開示されていない。
さらに、制御の効率化という観点では、シングルプロセッサ上で行うべき制御と、共有リソースに対する制御を区分した方が、プロセッサの通信量を減らすことができ、オーバヘッドを削減することができるが、マルチプロセッサを対象としない従来技術では、この方法も提示されていない。
本発明の目的は、タスク制御の対象とされるアプリケーションソフトウェアの適用範囲の制約を軽減するための技術を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
すなわち、プロセッサによってアプリケーションソフトウェアタスクが実行される場合において、アプリケーションソフトウェアタスクには予めチェックポイントが埋め込まれる。上記アプリケーションソフトウェアタスクの実行中に、上記チェックポイントを用いて、上記アプリケーションソフトウェアタスクの経過ポイントを問い合わせる。そして問合せた結果の現在の経過ポイントと経過ポイントに対応する経過予算から上記タスクの進捗状況を判断し、その判断結果に基づいて、タスクが利用する共有リソースを制御するとともに、新たな経過予算を設定する。これにより、アプリケーションソフトウェアの適用範囲に制約がなくなる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、タスク制御の対象とされるアプリケーションソフトウェアの適用範囲の制約を軽減することができる。
1.代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係るタスク制御方法は、プロセッサ(100,101)によってアプリケーションソフトウェアタスクが実行される場合において、アプリケーションソフトウェアタスクには予めチェックポイントが埋め込まれる。そして、上記アプリケーションソフトウェアタスクの実行中に、上記チェックポイントを用いて、上記アプリケーションソフトウェアタスクの経過ポイントを問い合わせる。問合せた結果の現在の経過ポイントと経過ポイントに対応する経過予算から上記タスクの進捗状況を判断し、その判断結果に基づいて、タスクが利用する共有リソースを制御するとともに、新たな経過予算を設定する。
〔2〕このとき、上記アプリケーションソフトウェアタスクへの問合せは、あるチェックポイントの経過予定時間が過ぎた時に行われ、上記問合の結果通知される情報には、現在経過しているチェックポイントと当該チェックポイントを経過した時間が含まれる。
〔3〕遅れの度合いが大きいタスクを制御するとき、所定プロセッサのみで利用するパラメータを制御する部分と、複数のプロセッサで利用する共有リソースを制御する部分とに分け、前者に対しては上記所定のプロセッサでタスク制御を行い、後者に対しては上記複数のプロセッサとは独立したモジュールで制御する。
〔4〕進捗状況の判断は、タスクが終了するまでの経過時間の予算値(7104)、現在経過したチェックポイントの経過時間の予算値(7106)、現在経過したチェックポイントの実際の経過時間(7105)を利用する。
〔5〕上記〔3〕において、上記所定プロセッサで行われるタスク制御は、タスクが終了するまでの経過時間の予算値、現在経過したチェックポイントの経過時間の予算値、現在経過したチェックポイントの実際の経過時間を、プロセッサ識別子とローカルリソースを制御した結果の新たなリソース情報と共に、共有リソースを制御するモジュールに転送することができる。
〔6〕上記〔3〕において、共有リソースのタスクまたはタスクを搭載するプロセッサの優先度を変更し、当該優先度は遅れの挽回がより困難なタスクまたはプロセッサの優先度を高くすることができる。
〔7〕上記〔3〕において、タスクが終了するまでの経過時間の予算値をAとし、現在経過したチェックポイントの経過時間の予算値をBとし、現在経過したチェックポイントの実際の経過時間をCとするとき、遅れの挽回がより困難なタスクまたはプロセッサの優先度を高くする手段として、BのAに対する割合が高く、CのBに対する割合が高いタスクまたは当該タスクを搭載するプロセッサの優先度を高くすることができる。
〔8〕上記タスク制御方法を実現するタスク制御プログラムが格納されたメモリ(106)と、このメモリに格納されているタスク制御プログラムを実行可能なCPU(100,101)とを含んで半導体集積回路を構成することができる。
2.実施の形態の説明
次に、実施の形態について更に詳述する。
<マルチプロセッサシステムの構成>
図1には、本発明にかかる半導体集積回路の一例とされるマルチプロセッサシステムが示される。図1に示されるマルチプロセッサシステムは、特に制限されないが、公知の半導体集積回路製造技術により単結晶シリコン基板などの一つの半導体基板に形成される。図1において、四角はハードウェア要素を示し、角が丸い四角はOS(オペレーティングシステム)やタスクなどのソフトウェアを示す。
上記マルチプロセッサシステムには、特に制限されないが、二つの汎用プロセッサ(CPU)100,101、クロック生成回路(CKGEN)102、共有リソース管理モジュール(CRM)103、バスとその調停を行うバス調停回路(BUS_ARB)104、プロセッサ間の共有メモリ(CM)105、ブート時にプロセッサにロードする各種ソフトウェアを格納するフラッシュメモリ(FLSH)106、リアルタイムオペレーティングシステム(RTOS)111,116の各種サービスコールの実行に用いる割り込みコントローラ(IntC)107とタイマ(Timer)108が含まれる。尚、FLSH106には、本例におけるタスク制御方法を実現するタスク制御プログラムも格納される。
CPU100は、ローカルメモリ(LM)109及び優先度レジスタ(PReg)110を内蔵する。上記LM109は、CPU100での処理の中間結果の格納に用いられる。上記PReg110は、BUS_ARB104へのアクセスの優先順位の格納に用いられる。
CPU100に搭載するソフトウェアは、RTOS111、CPU100にのみ関連するクロック周波数などのパラメータを制御するLRCL112、及びアプリケーションタスク(APPL)113から構成する。同様にして、CPU101に搭載するソフトウェアは、RTOS116、LRCL117、及びAPPL118である。
CKGEN102は、マルチプロセッサ共通の基本クロックを水晶発信器から生成する基本クロック生成回路(BCKGEN)120と、基本クロックを元にクロックを分周して、各CPUごとのクロックを生成する分周波回路(CKDIV)119を含んで成る。BCKGEN120は、CRM103によりBUS_ARB104を通して制御される。CKDIV119は、CPU100とCPU102により、各CPUの制御信号とクロック分配信号である、114と115を通して、またはCRM103によりBUS_ARB104を通して制御され、クロックを分配する。
CRM103は、共有リソースコントローラ専用のCPUであるSCPU121、SCPU121上に搭載するRTOS122と共有リソースコントローラ(CRCL)123から構成される。BUS_ARB104は、後で述べるバスを利用する優先順位の設定がCRM103を通して実施できる。
<マルチプロセッサシステムにおける制御の流れ>
次に、図2及び図3を参照しながら、上記マルチプロセッサシステムにおける制御の流れを説明する。
図2の一番上のCPU100の欄には、ローカルリソースコントローラLRCLの流れが示され、上から三番目のCRM103の欄には、共有リソースコントローラCRCL123の流れが示される。
まず、LRCL112は、APPL113のあるチェックポイントの予定経過時間に、実行状況を問い合わせ(200)、現在経過したチェックポイントの通知を受ける(201)。
チェックポイント(CP)は、APPL113に予め埋め込んであり、図3の303に示されるように、各CPに対して、事前に予算、すなわち予定経過時間が定められている。ここで、SはStart、EはEndを表し、CPの特殊な形である。例えば、図3において、CP2の予定経過時間は、301からΔt1+Δt23であることがわかる。この時間に実行状況を問い合わせると(200)、CP1しか経過していないことが判明する(201)。すなわち、300が現在の経過状況となる。この結果を受取り、LRCL112は、遅れの深刻さや、終了までの残り時間と残った処理量との対比から進捗状況を把握する(202)。
次に、上記進捗状況を受けて遅れを挽回するため、CPU100専用のローカルリソースを制御する(203)。例えば203ではCPU100用のクロックを変更する。具体的には、図1の信号114を介して、CKGEN102内のCKDIV119の分周比を変更して、CPU100用のクロック周波数を変更する。
一方、共有リソースを制御するために、進捗状況をCRM103に通知する(204)。
CPU101での動作もCPU100と同様である。CRM103のCRCL123は、CPU100とCPU101から進捗状況の通知を受けて(204,205)、共有リソースの制御を行う。基本クロックを変更する必要があるなら、206により、CKGEN102を制御する。また、CPU100とCPU101の進捗状況を比較して、207により、遅れがより顕著なプロセッサの共有リソースの優先度を上げる。図1のブロック図では、共有リソースとして、BUS_ARB104が該当するため、104に対して優先度変更の制御を行う。
図3の302は、LRCL112とCRCL123の結果、設定された新たな経過時間の予算である。事前予算303を改訂して保持する。
<アプリケーションのチェックポイント>
次に、図4、図5、及び図6を参照しながら、アプリケーションに内蔵するチェックポイントの例と、303を登録する予算時間の登録テーブル、及びチェックポイント経過時の経過登録処理について説明する。経過登録処理は、200と201を実施するために、アプリケーション側で行っておく必要がある。
図4において400に示されるように、CPの経過登録処理がチェックポイントである。この例では、CP0からCP4までの五つのチェックポイントを設定している。CP0はスタートS、CP4はエンドEを示す。
これらのチェックポイントに対しては、図5に示されるように、事前に予定経過時間を予定経過時間登録テーブル(ElapsedTime−BT500)に登録しておく。図5において領域501には、CPの数-1のNを登録し、503にCP0からCPNまでの予定経過時間を登録しておく。502は、LRCL112で、実際に経過したCPにマーキングしておく領域である。最初は全ビット0であるが、経過したビットにフラグ“1”を立てる。図5では、5021がnビットだとすると、CPnまで経過したことが示される。
次に、CPnの経過登録処理について説明する。
図6(a)には、経過登録テーブル(ElapsedTime−RT600)が示される。図6(b)には、CPnの経過登録処理流れが示される。
図6(a)における各領域の意味は、図5に示されるのとほぼ同一であり、603に登録するデータが、実際にCPnを経過した時間である点のみが異なる。601は501と同じ意味、602は502と同じ意味である。図6(b)の経過登録処理では、605で、602のnビットである6021のビットにフラグ”1”をたて、603の領域のn番目の領域である6031に、経過時間を登録する。尚、経過時間はTimer108から時間の初期地点で0リセットしたあと、得ることができる。通常、Timer用APIがRTOSで定めらており、このAPIを通して時間を得る。
<ローカルリソースコントローラ(LRCL)>
ここでは、図7と図8に従い、LRCL112における処理の流れについて説明する。
LRCL112は、CPUが動作中は常時動作するタスクである。図7のフローは、管理するアプリケーションタスクが一つしかない想定であり、アプリケーションが複数存在するときには、この処理が複数回繰り返される。
まず、ステップ700で経過時間を管理するテーブルと経過時間を初期化する。テーブルとしては、ElapsedTime−BT500、及びElapsedTime−RT600があり、事前に登録してある初期の予算テーブルElapsedTime−IBTが、上記の二つのテーブルにコピーされる。
次に、ステップ701でAPPL113が起動される。
ステップ702以降が主要処理である。
ステップ702はループカウンタの判定で、ステップ703から707までが、あるチェックポイントCPnにおける処理である。ステップ707でnを1進めて、次のチェックポイントにおける処理を行い、n=0からNまで繰り返す。尚、このループは、処理の経過の進みを示すが、これを同一処理の繰り返し回数とすると、ほぼ同様にして従来技術も実現できる。
ステップ703と704は、実行状況を問い合わせる準備処理である。ステップ703で、ElapsedTime−BT500から、現在のCPn-1からCPnまでの予定経過時間を取得し、ステップ704でこの経過時間の間スリープする。
ステップ705では、予定経過時刻になったため、ElapsedTime−RT600から、現在APPLが実際に経過しているチェックポイントを取得する。この処理は、図2の200と201に相当する。本例では、APPLが事前にチェックポイントを登録しているため、200の問合せは600の読み込みに相当し、201の通知は、600からのデータ、経過したチェックポイントの取得に相当する。もちろん、200と201を、OSのサービスコールを使い、タスク間のメッセージ通信で、そのままの言葉通りに実現することもできる。
ステップ202では、現在経過したチェックポイントの予算経過時間、全ての処理が終了する予算時間から、遅れの度合いを判定する。本例では、図8の実際の経過時間7104の当初の予算時間7106に対する割合を遅れの度合いを判定する指標とする。
ステップ706では、202で判定した遅れの度合いが、所定のしきい値を超えると、新たな予算を設定し、203で、この新たな予算を実現するために、必要なローカルリソースの制御を実施する。本例では、ローカルリソースとして、CPUごとに設定できるローカルクロックのみを挙げており、上記のように、CKDIV119でクロックの分周比を変更する。
CPU100からCRM103に、進捗状況とローカルクロックを、Progressing−ST(Situation Table)710を通して通知する(204)。
ここで、Progressing−ST710について詳述する。
図8(a)において、7101から7103はローカルクロックに関する情報である。CPU−id7100の古い分周比O_CDIV7101と新しい分周比N_CDIV7102により、ローカルクロックの周波数を示す。基本クロックBCKは、CRM103が保持していることを前提にしているため、この二つのパラメータにより、以前の周波数と新たな周波数は計算できる。In Time1703は、N_CDIV7102に変更して、図8(b)に示される新たな予算302により、タスク終了のデッドラインが達成できるか否かを示す。フラグ”1”は達成できる。フラグ”0”は達成不可を示す。達成不可の場合には、CRM103は基本クロックの変更も検討する。7104から7106は、CPU−id上のタスクの進捗状況を判断するための情報である。それについて、図8(b)を参照しながら説明する。
本例ではタスクは各CPUに一個しかない想定であるが、複数のタスクがあってもこの部分をタスクの数だけ準備すれば対応できる。Total Budget Time7104は、図8(b)に示されるように、タスクが終了する予定時間を示す。すなわち、経過時間のデッドラインである。Elapsed Time7105は、現在の状態300によって示される、CP1の経過時間である。Intial Budget Time7106は、300のチェックポイントが、CP1が当初経過するはずであった予算時間を示す。後述するように、7106を7104と比較することにより、処理量から見た進捗の程度が判定できる。
尚、進捗が判定できる情報としては、実時間ではなくサイクル数を使う方法もある。この方法は、コンパイラとの親和性が高いというメリットがある。しかしながら、OSとの親和性が低く、複数のクロックを扱う場合には、統一クロックを準備するなど何らかの工夫が必要となる。
<共有リソースコントローラ(CRCL)>
次に、上記CRCL123の処理流れについて、図9を参照しながら説明する。
CRCL123には、二つの機能がある。一つは、LRCL112で行ったローカルリソースの制御だけでは、タスク予算の達成が困難であるとき、共有リソースを制御して、タスク予算の達成を実現することである。もう一つは、マルチプロセッサにおけるプロセッサ間の共有リソースに対して、異なるプロセッサに搭載されるタスクが同時にアクセスするとき、その優先順位を、タスクの進捗状況の度合いに基づき変更する。遅れの回避がより困難なタスク、またはそのタスクが搭載されるプロセッサの優先順位を上げる。前者の機能をステップ206で実現し、後者の機能をステップ207で実現する。ステップ206は、タスクがローカルクロックを変更しても予算達成が困難であるとき、すなわち、図8のInTime7103がオフのとき、本例における共有リソースである基本クロックの周波数を上げ、予算達成を可能とする。基本クロックの周波数の変更は、図1のBUS_ARB104を通してBCKGEN120を制御することにより実施する。
基本クロックの周波数を上げるに伴い、他のCPUに対するローカルクロックの周波数も上がるため、電力の不必要な消費を抑えるためには、他のCPUのローカルクロックに対しては、分周比を上げて周波数を必要以上に上げない制御も行う。この制御は、図1のCKDIV119に対して、104を通して行う。
ステップ207は、複数のプロセッサから送付されてきたタスクの進捗状況から、共有リソースの優先度を変更する処理である。本例では、共有リソースとして、図1のBUS_ARB104の中のバスを取り上げている。
まず、ステップ2071で、遅れ回避がより困難と思われるタスク、またはタスクが搭載されるプロセッサに対して、バス優先度をより高くするという決定を行う。遅れの挽回が困難であるという判断を行う尺度として、二つの指標を取り上げる。(1)の条件で同等の優先度になれば、(2)を適用する。
(1)処理の進行比率が大きい。進行した処理量の全体に対する比率が大きければ大きいほど、遅れを挽回する機会が少なく、挽回が困難と考える。早く終わらせた方がスケジューリングの課題がより少なくなるという理由もある。
(2)遅れの程度が大きいタスク、またはそのタスクを保持するプロセッサの順に、優先度を決定する。遅れの程度が大きいタスクを放置しておくと挽回が困難になるという理由による。
上記(1)を実現するには、Progressing−ST710の値を用いて、次の式(i)を利用する。このとき、「Progress Ratio」が大きければ大きいほど、処理の進行比率が大きいため、そのタスクまたはタスクの搭載するプロセッサの優先度を高める。
Progress Ratio = Initial Budget Time7106/Total Budget Time7104 ……(i)
上記(2)を実現するには、次の式(ii)を利用する。このとき、「Degree of Delay」が大きければ大きいほど、予算に対して遅れが顕著であるため、そのタスクまたはタスクの搭載するプロセッサの優先度を高める。
Degree of Delay = Elapsed Time7105/Initial Budget Time7106 ……(ii)
次に、決定された優先度を、ステップ2071で、BUS_ARB104への信号として出力できるように、プロセッサの優先度設定用のレジスタに優先度の値をセットする。例えばCPU100では、図1のPReg110が、優先度設定用のレジスタである。本レジスタの各ビットは、BUS_ARB104の入力制御信号として利用される。
上記例によれば、以下の作用効果を得ることができる。
(1)アプリケーションタスクのプログラム中に、進捗度を判定する複数のチェックポイントを保持し、ある事象が起こった時に、アプリケーションタスクの経過ポイントと経過時間を問合せ、その結果から、制御タスクが進捗度を判定する。判定結果に従い、タスクの実行を制御する。プロセッサで動作するタスクの制御を行うときには、ある事象として、タスクの定められたチェックポイントの予定完了時間が経過したときとし、タスクの実際の経過ポイントを取得し、事前に設定したそのポイントの予定経過時間と比較することにより進捗状況を判断する。タスクの実行制御は、クロック周波数や電圧の変更を行う。マルチプロセッサ上でのタスクを制御する場合には、複数のプロセッサの共有リソースを制御する共有リソースコントローラモジュールを設け、各プロセッサからのタスクの進捗状況の通知を受け、より進捗度の遅れが大きいプロセッサの共有リソースの優先度を上げる制御を行う。
(2)上記(1)により、アプリケーションソフトウェアの適用範囲に制約がなくなる。どんなプログラムでも適用可能となるため、高性能化や低電力化の効果は大となる。従来技術で、適用対象としていた画像圧縮プログラムにおいても、より細かいサブプログラム単位で進捗状況の把握が可能となる。このため、実行経過の早い段階での制御が可能となり、手遅れとなる事態を回避でき、高性能、低電力化の実現可能性が増す。
次に、マルチプロセッサ上で動作するタスクのシミュレータへの適用例について述べる。
本シミュレータは、タスクの経過に応じてタスクが搭載されるプロセッサの時間を進めることにより、機能だけでなく時間も模擬するが、二つ以上のプロセッサ間に通信がおこったときにプロセッサ間の時間の違いが、リアルタイムにタスクの進行状況を正確にモニターできなくなり、タスクの動作に矛盾を起こすケースがある。このため、時間の違いを認識して、時間を一致させるためのタスク制御を行う。
<シミュレータの主要構成>
図10には、シミュレータの構成例が示される。
本シミュレータは、ハードウェアシミュレータを利用することなく、事前に設定した実行に要する時間を参照して、この時間を利用して、機能だけでなく経過時間のシミュレーションも行う。
まず、全体の概観を述べる。シミュレータは、プラットフォームOS1000の上で稼動する。
1010,1020は各々、並列動作するプロセッサCPU100、CPU101の上で稼動するタスク群である。CPU100と101上で動作するタスク同士は並列に独立に動作する必要があるため、1010と1020は、少なくとも一個以上のプラットフォームOS1000のタスクで構成する。CPU100とCPU101の間の通信を行う媒体は、これらのタスクと並列に独立に動作する必要があるため、この媒体を模擬するタスクとしてCRC(Communication Resource Control)Tsk1007を装備する。CRCTsk1007は、実際のハードウェアとしては、BUS_ARB104とこれに繋がるCM105、IntC107、Timer108などに相当する。CRCTsk1007は、複数のプロセッサからの通信を受取るため、データが矛盾なく受け渡されるためにデータの受け取りの同期を取る機能も必要となる。
上記タスク群1010,1020は互いに同一構成とされるため、タスク群1010の内部構成についてのみ説明する。
1010におけるタスクは、RTOS111のエミュレータRTOSEmu1001と、1001上で動作する三種類のタスクからなる。三種類のタスクとは、アプリケーションタスAPPL113、1020からのデータを1007を経由して受信する専用タスクCOM1002、及びシミュレータ用タスクコントローラSimCL1004である。ここで、Com1002は図1での実プロセッサ上にも搭載することはできるが、本シミュレータの実施では必須であるため、ここでは特に構成要素として設定している。
尚、RTOSEmu1001の上に、アプリケーションタスクAPPL113やCOM1002が搭載される構成になっているが、RTOSEmuのサービスコールを、プラットフォームOS1000のサービスコールに変換して実行するタイプのエミュレータでは、RTOSEmu1001は存在せず、APPL113やCOM1002の中に、変換テーブルを保持する構成となる。
<プロセッサの時間管理とタスク制御>
図11において、ステップ1100では、図6で説明したタスク経過登録処理400が起ったか否かを、判定する。更新がなければ、この処理は繰り替えし行う。図6(b)のフローチャートは、シミュレータでもそのままであるが、経過時間は、シミュレータ上で取得するため、前回のチェックポイントから、今回のチェックポイントまでの処理時間をあらかじめテーブルとして保持しておき、これを前回のチェックポイントの経過時間に加算して得る。少し注意を要する点は、図4でのタスク登録処理の埋め込み、すなわちチェックポイントの埋め込みは、処理2と処理3のように、分岐で処理が異なるときには、分岐ごとの処理の終了時点にも設定する。何故なら、経過時間は事前の処理の予算時間の加算で決めるため、処理が決まらないと、経過時間が決まらないためである。本例では、経過時間の取得は、別のテーブル参照としているが、アプリケーションの中に処理時間を埋め込み、その中で計算することも可能である。
ステップ1101では、更新を行ったタスクがAPPL113かCOM1002かを、更新されたテーブルにより判定する。APPLであれば、1102と1103でプロセッサの時間を進める。COMであれば、1104へ進む。時間を進めるには、まず、1102で、現在経過したチェックポイントでの経過時間を、ElapsedTime-RT600から取得する。この経過時間を、プロセッサの経過時間、すなわちシミュレータの時刻として、PR−ElapsedTime1110に登録する。このテーブルは、プロセッサの時間のみを登録するのみであり、詳細は割愛する。
次に、COMが経過時間の更新を行った時には、異なるプロセッサ101の経過時間を受けて更新を行っている。ステップ1104で、当該プロセッサの経過時間をPR_ElapsedTime1110から取得し、COMの経過時間をCOM_ElapsedTime1111から取得する。COM_ElapsedTimeも、プロセッサの時間のみを登録するのみであり、詳細は割愛する。ステップ1105では、両者の経過時間に差異があるため、この時間あわせをする必要があるため、タスクの実行を制御する。
<タスク制御の詳細>
図12から図14は、COM1002がCPU101のプロセッサ経過時間をCOM_ElapsedTime1111に登録したときに、CPU100とCPU101のプロセッサ経過時間の関係と、APPL113の状態で区分して、APPL113とCOM1002に対して行う制御を示した図である。
まず、図12から図14に共通のシンタックスを述べておく。最上段は、現在のプロセッサCPU100とCPU101の経過時間を示す。t1はCPU100の経過時間で、t2はCPU101の経過時間である。上から2番目の段は、CPU100で動作するタスク、APPL113とCOM1002の現在の状態と、今後SIMCL1004が行う制御を矢印1201などで示す。点線1200は、現在のタスクの状態を示している。例えば図12で、APPL113は、CPU100の経過時間t1であり、COM1002はCPU101の経過時間t2である。最下段は、CPU101のプロセッサのCOM1003がデータ転送を行った状態示している。プロセッサ時刻t2でwaitしている状態である。COM1003からCOM1002に、1202に従いデータをバス経由で転送する。バス経由の転送には、実際には時間を要するが、本特許の内容とは関連ないため、バス転送の時間は無視している。もちろん、バス転送の時間を考慮しても良い。
次に各ケースの区分とタスク制御を述べる。
図12と図13は、CPU100の経過時間t1が、CPU101の経過時間t2より小さい、すなわち、CPU100は時刻として遅れている。図12は、APPL113が実行状態かReady状態にある。図13は、APPL113がWait(ウェイト)状態またはSleep(スリープ)状態で停止している。
図14は、t1がt2より以上、すなわちCPU100は時刻として進んでいる状態にある。
以下で各ケースのタスク制御を詳細に述べる。
(1)ケース1:t1<t2 かつ APPL113がReadyか実行状態
このケースは、COMをsleep状態に移行させ、1201に示すように、t1がt2に等しくなるまでAPPL113を実行させる。APPL113がReady状態であるときには、COMがsleep状態になることにより実行が開始される。t1とt2が等しくなれば、COMを元の状態に戻す。
(2)ケース2:t1<t2 かつ APPL113が停止状態
このケースは、時刻t2になるまでの1301の期間、APPL113は停止していることになるため、COMをsleep状態に移行させ、CPU100の経過時間PR_ElapsedTime1110をt2まで強制的に進める。本特許の内容と関連ないため、詳細は割愛するが、シミュレータの状態監視の機能のため、1301の期間、APPL113が停止状態であることも、どこかに記録する。その後、COMを元の状態に戻す。
(3)ケース3:t1>=t2
このケースは、COMの受信データはt1になるまでAPPL113は必要ないため、COMの処理との関連は少ない。1400に示すとおり、COMはt2の時刻のままで、処理を進める。APPL113もこれまで通り実行する。
時刻の一致が得られるのは、APPL113がCPU101にデータを送信して、t1とt2の時刻が一致を取れたケースで、このときに、COMに時刻データを送信する。
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマルチプロセッサシステムに適用した場合について説明したが、本発明はそれに限定されるものではなく、半導体集積回路に広く適用することができる。
本発明に係るタスク制御方法が実施されるマルチプロセッサの構成例ブロック図である。 上記マルチプロセッサでのタスクの進捗状況の把握とタスクの実行制御の動作シーケンスである。 上記マルチプロセッサでの実行予算とその更新の説明図である。 上記マルチプロセッサでのアプリケーション内へのチェックポイント設定例のフローチャートである。 上記マルチプロセッサにおけるLRCLが利用するチェックポイントの予算時間登録表の説明図である。 上記マルチプロセッサにおけるアプリケーション内のn番目のチェックポイントの経過登録結果の説明図である。 上記マルチプロセッサにおけるLRCLの動作フローチャートである。 上記マルチプロセッサにおけるLRCLがCRMに通知する情報を示す表の説明図である。 上記マルチプロセッサにおけるCRCLの動作フローチャートである。 シミュレータの構成例ブロック図である。 上記シミュレータの動作フローチャートである。 二つのプロセッサの時刻が異なるときのタスク制御についての説明図である。 二つのプロセッサの時刻が異なるときの別のタスク制御についての説明図である。 二つのプロセッサの時刻が異なるときの別のタスク制御についての説明図である。
符号の説明
100,101 CPU
102 クロック生成モジュール(CKGEN)
103 共用リソースマネージャモジュール(CRM)
109 ローカルメモリ(LM)
110 BUS_ARB104へのアクセス優先度設定用のレジスタ(PReg)
111 リアルタイムOS(RTOS)
112 ローカルリソースコントローラタスク(LRCL)
113 アプリケーションタスク(APPL)
301 CP2とその予定経過時間
302 タスクのチェックポイントの経過時間の新たな予算
303 タスクのチェックポイントの経過時間の事前の予算
500 経過時間の事前の予算を登録するテーブル(lapsedTime−BT)
501 チェックポイントの数−1を登録する領域
502 経過したチェックポイント(CP)を登録する領域
503 チェックポイントの経過時間の予算を登録する領域
600 実際の経過時間を登録するテーブル(lapsedTime−RT)
603 チェックポイントの実際の経過時間を登録する領域
710 タスクの進捗状況を通知するためのテーブル(rogressing−ST)

Claims (8)

  1. プロセッサによってアプリケーションソフトウェアタスクが実行される際のタスク制御方法であって、
    上記アプリケーションソフトウェアタスクには予めチェックポイントが埋め込まれ、
    上記アプリケーションソフトウェアタスクの実行中に、上記チェックポイントを用いて、上記アプリケーションソフトウェアタスクの経過ポイントを問い合わせ、問合せた結果の現在の経過ポイントと経過ポイントに対応する経過予算から上記タスクの進捗状況を判断し、その判断結果に基づいて、タスクが利用する共有リソースを制御するとともに、新たな経過予算を設定することを特徴とするタスク制御方法。
  2. 上記アプリケーションソフトウェアタスクへの問合せは、あるチェックポイントの経過予定時間が過ぎた時に行われ、上記問合の結果通知される情報には、現在経過しているチェックポイントと当該チェックポイントを経過した時間が含まれる請求項1記載のタスク制御方法。
  3. 遅れの度合いが大きいタスクを制御するとき、所定プロセッサのみで利用するパラメータを制御する部分と、複数のプロセッサで利用する共有リソースを制御する部分とに分け、前者に対しては上記所定のプロセッサでタスク制御を行い、後者に対しては上記複数のプロセッサとは独立したモジュールで制御する請求項1記載のタスク制御方法。
  4. 進捗状況の判断は、タスクが終了するまでの経過時間の予算値、現在経過したチェックポイントの経過時間の予算値、現在経過したチェックポイントの実際の経過時間を利用する請求項1記載のタスク制御方法。
  5. 上記所定プロセッサで行われるタスク制御は、タスクが終了するまでの経過時間の予算値、現在経過したチェックポイントの経過時間の予算値、現在経過したチェックポイントの実際の経過時間を、プロセッサ識別子とローカルリソースを制御した結果の新たなリソース情報と共に、共有リソースを制御するモジュールに転送する請求項3記載のタスク制御方法。
  6. 共有リソースのタスクまたはタスクを搭載するプロセッサの優先度を変更し、当該優先度は遅れの挽回がより困難なタスクまたはプロセッサの優先度を高くする請求項3記載のタスク制御方法。
  7. タスクが終了するまでの経過時間の予算値をAとし、現在経過したチェックポイントの経過時間の予算値をBとし、現在経過したチェックポイントの実際の経過時間をCとするとき、遅れの挽回がより困難なタスクまたはプロセッサの優先度を高くする手段として、BのAに対する割合が高く、CのBに対する割合が高いタスクまたは当該タスクを搭載するプロセッサの優先度を高くする請求項3記載のタスク制御方法。
  8. 請求項1乃至7の何れか1項記載のタスク制御方法を実現するタスク制御プログラムが格納されたメモリと、
    上記メモリに格納されているタスク制御プログラムを実行可能なCPUと、を含んで成る半導体集積回路。
JP2007186709A 2007-07-18 2007-07-18 タスク制御方法及び半導体集積回路 Pending JP2009025939A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007186709A JP2009025939A (ja) 2007-07-18 2007-07-18 タスク制御方法及び半導体集積回路
US12/174,711 US20090024985A1 (en) 2007-07-18 2008-07-17 Task control method and semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007186709A JP2009025939A (ja) 2007-07-18 2007-07-18 タスク制御方法及び半導体集積回路

Publications (1)

Publication Number Publication Date
JP2009025939A true JP2009025939A (ja) 2009-02-05

Family

ID=40265901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007186709A Pending JP2009025939A (ja) 2007-07-18 2007-07-18 タスク制御方法及び半導体集積回路

Country Status (2)

Country Link
US (1) US20090024985A1 (ja)
JP (1) JP2009025939A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277589A (ja) * 2009-05-28 2010-12-09 Palo Alto Research Center Inc データ・センタのバッチ・ジョブのサービスの質コントロール
WO2011142031A1 (ja) * 2010-05-14 2011-11-17 株式会社日立製作所 リソース管理方法、リソース管理装置およびプログラム
JP2014021774A (ja) * 2012-07-19 2014-02-03 Fujitsu Ltd 演算処理装置及び演算処理方法
JP2016099663A (ja) * 2014-11-18 2016-05-30 キヤノン株式会社 画像処理装置及び画像処理方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9323306B2 (en) * 2008-12-03 2016-04-26 Telefonaktiebolaget Lm Ericsson (Publ) Energy based time scheduler for parallel computing system
US20120082240A1 (en) * 2009-06-09 2012-04-05 Thomson Licensing Decoding apparatus, decoding method, and editing apparatus
WO2011034017A1 (ja) * 2009-09-18 2011-03-24 日本電気株式会社 データセンタシステム、再構成可能ノード、再構成可能ノード制御方法、再構成可能ノード制御プログラム
JP5482052B2 (ja) * 2009-09-24 2014-04-23 富士通株式会社 観測分析装置および観測分析方法
JP5625710B2 (ja) * 2010-10-05 2014-11-19 富士通セミコンダクター株式会社 シミュレーション装置、方法、及びプログラム
US9401869B1 (en) * 2012-06-04 2016-07-26 Google Inc. System and methods for sharing memory subsystem resources among datacenter applications
JP6223224B2 (ja) * 2014-02-21 2017-11-01 ルネサスエレクトロニクス株式会社 画像処理装置、及びその制御方法
CN104317584B (zh) * 2014-10-13 2017-09-22 中国电子科技集团公司第四十一研究所 一种提高微波仪器控制效率的方法
JP2020024636A (ja) * 2018-08-08 2020-02-13 株式会社Preferred Networks スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271614A (ja) * 1994-04-01 1995-10-20 Hitachi Ltd 実行時間に制約のあるタスクの優先制御方式
JP2005100264A (ja) * 2003-09-26 2005-04-14 Toshiba Corp スケジューリング方法および情報処理システム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809168A (en) * 1986-10-17 1989-02-28 International Business Machines Corporation Passive serialization in a multitasking environment
US6385637B1 (en) * 1997-08-21 2002-05-07 Rockwell Science Center, Inc. Periodic process timer
US7055151B1 (en) * 1998-04-03 2006-05-30 Applied Micro Circuits Corporation Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US7174194B2 (en) * 2000-10-24 2007-02-06 Texas Instruments Incorporated Temperature field controlled scheduling for processing systems
JP4170227B2 (ja) * 2002-01-24 2008-10-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 多重処理環境における処理の実行
JP2004272844A (ja) * 2003-03-12 2004-09-30 Renesas Technology Corp 割り込み制御方法
JP2007133723A (ja) * 2005-11-11 2007-05-31 Hitachi Ltd マルチプロセッサ、タスクスケジューリング方法、及びコンパイラ
JP2008026948A (ja) * 2006-07-18 2008-02-07 Renesas Technology Corp 半導体集積回路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271614A (ja) * 1994-04-01 1995-10-20 Hitachi Ltd 実行時間に制約のあるタスクの優先制御方式
JP2005100264A (ja) * 2003-09-26 2005-04-14 Toshiba Corp スケジューリング方法および情報処理システム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277589A (ja) * 2009-05-28 2010-12-09 Palo Alto Research Center Inc データ・センタのバッチ・ジョブのサービスの質コントロール
WO2011142031A1 (ja) * 2010-05-14 2011-11-17 株式会社日立製作所 リソース管理方法、リソース管理装置およびプログラム
JP5815512B2 (ja) * 2010-05-14 2015-11-17 株式会社日立製作所 リソース管理方法、計算機システムおよびプログラム
US9319281B2 (en) 2010-05-14 2016-04-19 Hitachi, Ltd. Resource management method, resource management device, and program product
JP2014021774A (ja) * 2012-07-19 2014-02-03 Fujitsu Ltd 演算処理装置及び演算処理方法
JP2016099663A (ja) * 2014-11-18 2016-05-30 キヤノン株式会社 画像処理装置及び画像処理方法

Also Published As

Publication number Publication date
US20090024985A1 (en) 2009-01-22

Similar Documents

Publication Publication Date Title
JP2009025939A (ja) タスク制御方法及び半導体集積回路
US7152169B2 (en) Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state
KR101551321B1 (ko) 휴대용 컴퓨팅 디바이스에서 요청들을 스케쥴링하기 위한 방법 및 시스템
JPWO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
US20140006666A1 (en) Task scheduling method and multi-core system
US8099731B2 (en) System having minimum latency using timed mailbox to issue signal in advance to notify processor of the availability of the shared resources
US20050262365A1 (en) P-state feedback to operating system with hardware coordination
JP2010286898A (ja) マルチスレッド実行装置、マルチスレッド実行方法
US7398378B2 (en) Allocating lower priority interrupt for processing to slave processor via master processor currently processing higher priority interrupt through special interrupt among processors
US7565659B2 (en) Light weight context switching
US7076417B2 (en) Method for modeling and processing asynchronous functional specification for system level architecture synthesis
US20090183163A1 (en) Task Processing Device
WO2012113232A1 (zh) 调整时钟中断周期的方法和装置
Simakov et al. Slurm simulator: Improving slurm scheduler performance on large hpc systems by utilization of multiple controllers and node sharing
Socci et al. Time-triggered mixed-critical scheduler on single and multi-processor platforms
WO2024119930A1 (zh) 调度方法、装置、计算机设备和存储介质
CN111158875B (zh) 基于多模块的多任务处理方法、装置及***
KR101892273B1 (ko) 스레드 프로그레스 트래킹 방법 및 장치
US20050066093A1 (en) Real-time processor system and control method
CN103810037A (zh) 一种作业调度方法和计算装置
Huang et al. Improving QoS for global dual-criticality scheduling on multiprocessors
US20160292027A1 (en) Systems and methods for managing task watchdog status register entries
KR101674324B1 (ko) 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법
US20120204184A1 (en) Simulation apparatus, method, and computer-readable recording medium
CN110018906B (zh) 调度方法、服务器及调度***

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100303

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100527

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110818

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120105