(57)【要約】【課題】消費電力を低減でき、且つ、周波数切り替えを頻繁に行うシステムにおいても、オーバーヘッドや処理負荷の増大を防ぐことができるタスク処理システム及びタスク処理方法を提供する。【解決手段】メインプロセッサ１は、所定長さに区切られた複数の時間区間夫々においてサブプロセッサ２が実行するタスクを決定するとともに、ｎ番目（ｎは、ｎ≧１を満たす整数）の時間区間の終了までに、ｎ＋１番目の時間区間においてサブプロセッサ２が実行するタスクの必要サイクル数情報に基づいて、当該タスクをｎ＋１番目の時間区間内に実行するために必要なクロック周波数を決定し、クロック生成／制御回路７は、ｎ番目の時間区間においてメインプロセッサ１が決定したクロック周波数に応じたクロック信号１６を、ｎ＋１番目の時間区間においてサブプロセッサ２に供給するように構成した。【選択図】図１
2009301500.tif 000002
【特許請求の範囲】
【請求項１】
メインプロセッサと、
前記メインプロセッサにより制御されるサブプロセッサと、
前記サブプロセッサにクロック信号を供給するクロック制御部と、を備え、
前記メインプロセッサは、所定長さに区切られた複数の時間区間夫々において前記サブプロセッサが実行するタスクを決定するとともに、ｎ番目（ｎは、ｎ≧１を満たす整数）の時間区間の終了までに、ｎ＋１番目の時間区間において前記サブプロセッサが実行するタスクの必要サイクル数情報に基づいて、当該タスクを前記ｎ＋１番目の時間区間内に実行させるために必要な動作周波数を決定し、
前記クロック制御部は、前記ｎ番目の時間区間において前記メインプロセッサが決定した動作周波数に応じたクロック信号を、前記ｎ＋１番目の時間区間において前記サブプロセッサに供給するタスク処理システム。
【請求項２】
前記メインプロセッサは、前記ｎ番目の時間区間の終了までに、前記ｎ＋１番目の時間区間において前記サブプロセッサが前記タスクを実行するために必要な前記動作周波数を前記クロック制御部に入力することにより、クロック切替に必要な設定を行う請求項１に記載のタスク処理システム。
【請求項３】
前記時間区間は、サブプロセッサがタスクを実行するフレーム期間と、前記フレーム期間に後続するクロック切替期間と、から成り、
前記クロック制御部は、前記メインプロセッサが決定した動作周波数に応じたクロック信号を前記ｎ＋１番目の時間区間において前記サブプロセッサに供給するように、前記ｎ番目の時間区間の前記クロック切替期間内にクロック切替を行う請求項１又は２に記載のタスク処理システム。
【請求項４】
前記タスクの種類と前記必要サイクル数とを対応付けて記憶するタスクリスト記憶部を備える請求項１乃至３の何れか一項に記載のタスク処理システム。
【請求項５】
前記複数の時間区間毎に、前記タスクを記憶するタスク記憶部を備え、
前記メインプロセッサは、前記複数の時間区間の一に前記サブプロセッサが実行するタスクを決定した後、前記タスクを前記タスク記憶部に格納する請求項１乃至４の何れか一項に記載のタスク処理システム。
【請求項６】
メインプロセッサと、
前記メインプロセッサにより制御されるサブプロセッサと、
前記サブプロセッサにクロック信号を供給するクロック制御部と、を備えるタスク処理システムにおけるタスク処理方法であって、
前記メインプロセッサは、所定長さに区切られた複数の時間区間夫々において前記サブプロセッサが実行するタスクを決定するとともに、ｎ番目（ｎは、ｎ≧１を満たす整数）の前記時間区間の終了までに、前記ｎ＋１番目の時間区間において前記サブプロセッサが実行するタスクの必要サイクル数情報に基づいて、当該タスクを前記ｎ＋１番目の時間区間内に実行させるために必要な動作周波数を決定し、
前記クロック制御部は、前記ｎ番目の時間区間において前記メインプロセッサが決定した動作周波数に応じたクロック信号を、前記ｎ＋１番目の時間区間において前記サブプロセッサに供給するタスク処理方法。
【請求項７】
前記メインプロセッサは、前記ｎ番目の時間区間の終了までに、前記ｎ＋１番目の時間区間において前記サブプロセッサが前記タスクを実行するために必要な前記動作周波数を前記クロック制御部に入力することにより、クロック切替に必要な設定を行う請求項６に記載のタスク処理方法。
【請求項８】
前記時間区間は、サブプロセッサがタスクを実行するフレーム期間と、前記フレーム期間に後続するクロック切替期間と、から成り、
前記クロック制御部は、前記メインプロセッサが決定した動作周波数に応じたクロック信号を前記ｎ＋１番目の時間区間において前記サブプロセッサに供給するように、前記ｎ番目の時間区間の前記クロック切替期間内にクロック切替を行う請求項６又は７に記載のタスク処理方法。
【請求項９】
前記タスクの種類と前記必要サイクル数とを対応付けて記憶するタスクリスト記憶部を備える請求項６乃至８の何れか一項に記載のタスク処理システム。
【請求項１０】
前記複数の時間区間毎に、前記タスクを記憶するタスク記憶部を備え、
前記メインプロセッサは、前記複数の時間区間の一に前記サブプロセッサが実行するタスクを決定した後、前記タスクを前記タスク記憶部に格納する請求項６乃至９の何れか一項に記載のタスク処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タスク処理システム及びタスク処理方法に関し、特に、メインプロセッサと当該メインプロセッサにより制御されるサブプロセッサを有するタスク処理システム及びタスク処理方法に関する。
【背景技術】
【０００２】
携帯電話などの電子機器に搭載されるタスク処理システムには、メインプロセッサと、当該メインプロセッサにより制御されるサブプロセッサと、当該サブプロセッサにクロック信号を供給するクロック供給回路とを有するものがある。メインプロセッサは、所定長さに区切られた複数の時間区間夫々においてサブプロセッサが実行するタスクを指定している。
【０００３】
従来、設計段階において、想定され得る最大の処理を同時に実行するために必要な動作周波数を予め決定し、クロック供給回路は、この予め決定された動作周波数に基づくクロック信号をサブプロセッサに供給していた。つまり、クロック供給回路は、想定され得る最大の処理負荷がかかった場合においても、システムの動作が正常に行われるように十分に動作マージンを確保したクロック信号をサブプロセッサに供給していた。このため、ある時間区間において実際の処理負荷が小さい場合でも必要以上に高い周波数のクロック信号をサブプロセッサに供給することになり、電力を無駄に消費していた。
【０００４】
そこで、特許文献１では、直前の時間区間における処理量に基づいて動作周波数を動的に決定している。これにより、十分に動作マージンが確保された動作周波数に基づくクロック信号の供給を防止することを図っている。
【特許文献１】特開平１０−０７８８２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、直前の時間区間における処理量に基づいて動作周波数を決定しているため、次の時間区間における処理量の増加や減少に柔軟に対応できない。
また、特許文献１に記載の技術では、割り込みが発生した場合に、割り込み種別毎に分周比を決定する。そのため、携帯電話（ＴＤＭＡ方式）システムのように、短い周期（数十〜数百（μｓｅｃ））で頻繁に割り込みが発生するシステムでは、周波数切り替えを頻繁に行うこととなる。これにより、オーバーヘッドや処理負荷の増大が問題となる。
【課題を解決するための手段】
【０００６】
本発明の第１の態様にかかるタスク処理システムは、メインプロセッサと、前記メインプロセッサにより制御されるサブプロセッサと、前記サブプロセッサにクロック信号を供給するクロック制御部と、を備える。また、前記メインプロセッサは、所定長さに区切られた複数の時間区間夫々において前記サブプロセッサが実行するタスクを決定するとともに、ｎ番目（ｎは、ｎ≧１を満たす整数）の前記時間区間の終了までに、前記ｎ＋１番目の時間区間において前記サブプロセッサが実行するタスクの必要サイクル数情報に基づいて、当該タスクを前記ｎ＋１番目の時間区間内に実行するために必要な動作周波数を決定する。そして、前記クロック制御部は、前記ｎ番目の時間区間において前記メインプロセッサが決定した動作周波数に応じたクロック信号を、前記ｎ＋１番目の時間区間において前記サブプロセッサに供給する。
【０００７】
また、本発明の第２の態様にかかるタスク処理方法は、メインプロセッサと、前記メインプロセッサにより制御されるサブプロセッサと、前記サブプロセッサにクロック信号を供給するクロック制御部と、を備えるタスク処理システムにおけるタスク処理方法である。また、前記メインプロセッサは、所定長さに区切られた複数の時間区間夫々において前記サブプロセッサが実行するタスクを決定するとともに、ｎ番目（ｎは、ｎ≧１を満たす整数）の前記時間区間の終了までに、前記ｎ＋１番目の時間区間において前記サブプロセッサが実行するタスクの必要サイクル数情報に基づいて、当該タスクを前記ｎ＋１番目の時間区間内に実行するために必要な動作周波数を決定する。そして、前記クロック制御部は、前記ｎ番目の時間区間において前記メインプロセッサが決定した動作周波数に応じたクロック信号を、前記ｎ＋１番目の時間区間において前記サブプロセッサに供給する。
【０００８】
本発明の第１の態様及び第２の態様においては、メインプロセッサにより、ｎ番目の時間区間の終了までに、サブプロセッサがタスクをｎ＋１番目の時間区間内に実行するために必要な動作周波数が決定される。そして、クロック制御部は、ｎ番目の時間区間においてメインプロセッサが決定した動作周波数に応じたクロック信号を、ｎ＋１番目の時間区間においてサブプロセッサに供給する。すなわち、各時間区間において実行するタスクの処理量に応じて、動作周波数が動的に決定される。そのため、次の時間区間における処理量の増加や減少に柔軟に対応できる。また、十分に動作マージンが確保された動作周波数に基づくクロック信号の供給をより確実に防止することができる。これにより、消費電力の低減を図ることができる。
【０００９】
また、割り込み種別毎に分周比を決定するわけではないため、周波数切り替えを頻繁に行うシステムにおいても、オーバーヘッドや処理負荷の増大を防ぐことができる。
【発明の効果】
【００１０】
本発明により、消費電力を低減でき、且つ、周波数切り替えを頻繁に行うシステムにおいても、オーバーヘッドや処理負荷の増大を防ぐことができる。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明を適用可能な実施の形態を説明する。なお、本発明は、以下の実施の形態に限定されるものではない。
図１に、本発明の実施の形態にかかるタスク処理システム１００の一例を示す。タスク処理システム１００は、例えば、携帯電話等の電子機器に搭載される。
タスク処理システム１００は、図１に示すように、メインプロセッサ１、サブプロセッサ２、共有メモリ（タスク記憶部）３、タイミング制御回路（ＴＣＵ：Timing Control Unit）４、第１の割り込み制御回路５、第２の割り込み制御回路６、クロック生成／制御回路（クロック制御部）７、第１のメモリ（タスクリスト記憶部）８、第２のメモリ９等を有している。
【００１２】
メインプロセッサ１は、メインプロセッサバス１０を介して、共有メモリ３、タイミング制御回路４、クロック生成／制御回路７、第１のメモリ８と接続されている。
メインプロセッサ１は、タイミング制御回路４を制御する。そして、メインプロセッサ１は、タイミング制御回路４に、フレーム割込み信号（ＴＣＵ割込み信号１２、割込み信号１３）、イベント設定割込み信号、タスク割込み信号（ＴＣＵ割込み信号１４、割込み信号１５）、クロック切替信号１７を生成させる。
また、メインプロセッサ１は、サブプロセッサ２を制御する。
具体的には、メインプロセッサ１は、所定長さに区切られた複数の時間区間夫々においてサブプロセッサ１が実行するタスクを決定し、当該タスクのタスク情報を共有メモリ３に格納する。
また、メインプロセッサ１は、ｎ番目（ｎは、ｎ≧１を満たす整数）の時間区間の終了までに、ｎ＋１番目の時間区間においてサブプロセッサ２が実行するタスクの必要サイクル数に基づいて、サブプロセッサ２が当該タスクをｎ＋１番目の時間区間において実行するために必要なクロック周波数（動作周波数）を決定する。なお、必要サイクル数は、第１のメモリ８に格納されている。メインプロセッサ１は、必要サイクル数を第１のメモリ８を参照して取得する。また、必要サイクル数は、タスクの処理量などに基づいて予め設定されている。
また、メインプロセッサ１は、決定したクロック周波数の情報を、クロック生成／制御回路７に入力する。これにより、メインプロセッサ１は、クロック切替に必要な設定を行う。
【００１３】
サブプロセッサ２は、サブプロセッサバス１１を介して、共有メモリ３、タイミング制御回路４、クロック生成／制御回路７、第２のメモリ９と接続されている。
タイミング制御回路４からタスク割込み信号が、第２の割り込み制御回路６を介してサブプロセッサ２に入力される。また、クロック生成／制御回路７からクロック信号１６が入力される。
そして、サブプロセッサ２は、タスク割込み信号が入力されると、共有メモリ３に格納されているタスク情報を用いて、クロック信号１６に同期して、タスクを処理する。
【００１４】
共有メモリ３は、サブプロセッサ２が実行するタスクのタスク情報を格納している。
【００１５】
タイミング制御回路４は、フレーム割込み信号を生成し、第１の割り込み制御回路５を介して、メインプロセッサ１に入力する。具体的には、タイミング制御回路４は、ＴＣＵ割込み信号１２を第１の割り込み制御回路５に入力する。そして、ＴＣＵ割込み信号１２が入力されると、第１の割り込み制御回路５は、割込み信号１３をメインプロセッサ１に入力する。これにより、フレーム割込み信号がメインプロセッサ１に入力される。
【００１６】
また、タイミング制御回路４は、イベント設定割込み信号を生成し、第１の割り込み制御回路５を介して、メインプロセッサ１に入力する。具体的には、タイミング制御回路４は、ＴＣＵ割込み信号１２を第１の割り込み制御回路５に入力する。そして、ＴＣＵ割込み信号１２が入力されると、第１の割り込み制御回路５は、割込み信号１３をメインプロセッサ１に入力する。これにより、イベント設定割込み信号がメインプロセッサ１に入力される。
【００１７】
また、タイミング制御回路４は、タスク割込み信号を生成し、第２の割り込み制御回路６を介して、サブプロセッサ２に入力する。具体的には、タイミング制御回路４は、ＴＣＵ割込み信号１４を第２の割り込み制御回路６に入力する。そして、ＴＣＵ割込み信号１４が入力されると、第１の割り込み制御回路６は、割込み信号１５をサブプロセッサ２に入力する。これにより、タスク割込み信号がサブプロセッサ２に入力される。
【００１８】
また、タイミング制御回路４は、クロック切替信号１７を生成し、クロック生成／制御回路７に入力する。
なお、フレーム割込み信号、イベント設定割込み信号、タスク割込み信号、クロック切替信号１７の発生タイミングは、メインプロセッサ１により設定される。
【００１９】
第１の割り込み制御回路５は、ＴＣＵ割込み信号１２が入力された場合に、割込み信号１３をメインプロセッサ１に入力する。
【００２０】
第２の割り込み制御回路６は、ＴＣＵ割込み信号１４が入力された場合に、割込み信号１５をサブプロセッサ２に入力する。
【００２１】
クロック生成／制御回路７は、外部から入力される基準クロックを参照して、クロック信号１６の生成及び制御を行う。
また、クロック生成／制御回路７は、メインプロセッサ１から入力されたクロック周波数に応じたクロック信号１６をサブプロセッサ２に入力する。
【００２２】
第１のメモリ８は、メインプロセッサ１が各種処理を実行するために必要な、データ、プログラムなどを格納している。具体的には、第１のメモリ８は、タスクリスト情報８０を格納している。タスクリスト情報８０のデータ構造を図２に示す。タスクリスト情報８０は、サブプロセッサ２に実行されるタスクの種類と、当該タスクの必要サイクル数とが対応付けられて記憶されている。
【００２３】
第２のメモリ９は、サブプロセッサ２がタスクを実行するために必要な、データ、プログラムなどを格納している。
【００２４】
次に、本実施形態にかかるタスク処理システム１００におけるタスク処理方法について、図３に示すタイミングチャートを参照しながら説明する。
図３に示すように、フレーム割込み信号の発生から次のフレーム割込み信号の発生までが１つの時間区間となっている。また、時間区間のうち最後の部分は、クロック切替期間となっている。そして、時間区間のうち、クロック切替期間より前の部分は、フレーム期間（図３におけるＦ(０)、Ｆ(１）、Ｆ(２))となっている。当該フレーム期間において、サブプロセッサ２によりタスク処理が行われる。
【００２５】
フレーム割込み信号が発生して、１番目の時間区間（時間区間（１））が始まると、メインプロセッサ１は、２番目の時間区間（時間区間（２））においてサブプロセッサ２が実行するタスクを決定する（タスク決定期間（１））。
【００２６】
次に、イベント設定割込み信号が発生すると、メインプロセッサ１は、タスク決定期間（１）において決定したタスクのタスク情報を共有メモリ３に格納する（設定期間（１））。
また、設定期間（１）において、メインプロセッサ１は、タイミング制御回路１４が時間区間（２）においてどのタイミングでどの信号を発生するかを設定する。さらに、設定期間（１）において、メインプロセッサ１は、時間区間（２）においてサブプロセッサ２が実行するタスクの必要サイクル数に基づいて、サブプロセッサ２が当該タスクを時間区間（２）内に実行するために必要なクロック周波数を決定し、決定したクロック周波数の情報を、クロック生成／制御回路７に入力する。これにより、メインプロセッサ１は、クロック切替に必要な設定を行う。
【００２７】
設定期間（１）が終了し、クロック切替信号１７が発生すると、クロック切替期間（１）となり、設定期間（１）においてメインプロセッサ１により設定されたクロック周波数に基づくクロック信号１６がサブプロセッサ２に供給されるように、クロック生成／制御回路７においてクロック切替が行われる。
【００２８】
クロック切替期間（１）が終了し、フレーム割込み信号が発生すると、時間区間（２）となる。そして、クロック生成／制御回路７は、クロック切替期間（１）において切り替えられたクロック周波数に基づくクロック信号１６をサブプロセッサ２に供給する。また、タスク割込み信号が発生する度に、サブプロセッサ２が、クロック生成／制御回路７から供給されるクロック信号１６に同期して、共有メモリ３に格納されたタスク情報に基づき、タスクを実行する。
【００２９】
図３では、時間区間（１）のクロック周波数よりも時間区間（２）のクロック周波数が遅くなった場合を示している。図３に示すように、時間区間（１）の終了までに、時間区間（２）においてサブプロセッサ２が実行するタスクの必要サイクル数に基づくクロック周波数が決定される。そして、時間区間（２）において、当該クロック周波数に基づくクロック信号１６がサブプロセッサ２に供給される。即ち、各時間区間において実行するタスクの処理量などに応じて、クロック周波数が動的に決定される。そのため、十分に動作マージンが確保されたクロック周波数に基づくクロック信号１６の供給をより確実に防止することができる。これにより、消費電力の低減を図ることができる。
【００３０】
次に、本実施形態にかかるタスク処理システム１００におけるタスク処理方法について、図４に示すフローチャートを参照しながら説明する。
まず、メインプロセッサ１にフレーム割込み信号が入力されると（ステップＳ１）、メインプロセッサ１は、次の時間区間でサブプロセッサ２が実行するタスクを決定し、共有メモリ３に当該タスクのタスク情報を格納する（ステップＳ２）。
【００３１】
次に、メインプロセッサ１にイベント設定割込み信号が入力されると（ステップＳ３）、メインプロセッサ１は、ステップＳ２において決定したタスクのタスク情報を共有メモリ３に格納する（ステップＳ４）。
また、ステップＳ４において、メインプロセッサ１は、タイミング制御回路１４が次の時間区間においてどのタイミングでどの信号を発生するかを設定する。
さらに、ステップＳ４において、メインプロセッサ１は、次の時間区間においてサブプロセッサ２が実行するタスクの必要サイクル数に基づいて、サブプロセッサ２が当該タスクを次の時間区間内に実行するために必要なクロック周波数を決定し、決定したクロック周波数の情報を、クロック生成／制御回路７に入力する。これにより、メインプロセッサ１は、クロック切替に必要な設定を行う。
【００３２】
次に、クロック生成／制御回路７にクロック切替信号１７が入力されると（ステップＳ５）、クロック生成／制御回路７は、クロック切替を行う（ステップＳ６）。
【００３３】
次に、クロック生成／制御回路７は、ステップＳ４で決定されたクロック周波数に基づくクロック信号１６をサブプロセッサ２に供給する（ステップＳ７）。
【００３４】
次に、サブプロセッサ２にタスク割込み信号が入力されると（ステップＳ８）、サブプロセッサ２は、共有メモリ３に格納されたタスク情報を参照し、クロック生成／制御回路７から入力されるクロック信号１６に同期してタスクを実行する（ステップＳ９）。
【００３５】
以上に説明した本実施形態にかかるタスク処理システム１００及びタスク処理方法によれば、メインプロセッサ１により、ｎ番目の時間区間の終了までに、サブプロセッサ２がタスクをｎ＋１番目の時間区間内に実行するために必要なクロック周波数が決定される。そして、クロック生成／制御回路７は、ｎ番目の時間区間においてメインプロセッサ１が決定したクロック周波数に応じたクロック信号１６を、ｎ＋１番目の時間区間においてサブプロセッサ２に供給する。すなわち、各時間区間において実行するタスクの処理量に応じて、クロック周波数が動的に決定される。そのため、次の時間区間における処理量の増加や減少に柔軟に対応できる。また、十分に動作マージンが確保されたクロック周波数に基づくクロック信号の供給をより確実に防止することができる。これにより、消費電力の低減を図ることができる。
【００３６】
また、割り込み種別毎に分周比を決定するわけではないため、周波数切り替えを頻繁に行うシステムにおいても、オーバーヘッドや処理負荷の増大を防ぐことができる。
【００３７】
また、クロック切替期間において、メインプロセッサ１により設定されたクロック周波数に基づくクロック信号１６がサブプロセッサ２に供給されるように、クロック生成／制御回路７においてクロック切替が行われる。クロック切替期間では、サブプロセッサ２によるタスク処理が行われないため、タスクの処理量に関係なく、クロック生成／制御回路７のクロック切替を次の時間区間に移る前に確実に行うことができる。
また、タイミング制御回路４により発生されたクロック切替信号をトリガとしてクロック切替期間が開始し、クロック生成／制御回路７のクロック切替が行われる。そのため、クロック生成／制御回路７のクロック切替をより正確なタイミングで行うことができる。
【００３８】
なお、ｎ番目の時間区間においてメインプロセッサ１がｎ＋１番目の時間区間にサブプロセッサ２が実行するタスクを決定するタイミングや、ｎ＋１番目の時間区間にクロック生成／制御回路７が供給するクロック信号１６のクロック周波数を決定するタイミングは、上記実施例に限られるものではなく、ｎ番目の時間区間の終わりまでであればいつでもよい。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施の形態にかかるタスク処理システムの概略構成を示すブロック図である。
【図２】本発明の実施の形態にかかるタスクリスト情報のデータ構成を示す図である。
【図３】本発明の実施の形態にかかるタスク処理方法を説明するタイミングチャートである。
【図４】本発明の実施の形態にかかるタスク処理方法を説明するフローチャートである。
【符号の説明】
【００４０】
１  メインプロセッサ
２  サブプロセッサ
３  共有メモリ（タスク記憶部）
７  クロック生成／制御回路（クロック制御部）
８  第１のメモリ（タスクリスト記憶部）
１００  タスク処理システム
【図１】
2009301500.tif 000003
【図２】
2009301500.tif 000004
【図３】
2009301500.tif 000005
【図４】
2009301500.tif 000006