(57)【要約】【課題】システムの消費電力を効率的に抑えること。【解決手段】プロセッサ１０１は、レディキュー１０３に登録された実行可能タスク１１０を実行する。プロセッサ１０１は、レディキュー１０３に実行可能タスク１１０が登録されていない場合、第１の省電力状態に遷移する。一方、コントローラ１０２は、所定周期でタイマ割り込みを受信し、レディキュー１０３を更新する。コントローラ１０２は、実行可能タスク１１０がレディキュー１０３に登録された場合、プロセッサ起動割り込みをプロセッサ１０１に送信する。プロセッサ起動割り込みを受信したプロセッサ１０１は、第１の起動状態に遷移し、レディキュー１０３に登録された実行可能タスク１１０を実行する。【選択図】図１
2015022556.tif 000002
【特許請求の範囲】
【請求項１】
実行を開始することができる状態にある実行可能タスクを登録するレディキューを有する記憶装置と、
前記レディキューに前記実行可能タスクが登録されていない場合に、前記実行可能タスクを実行する第１の起動状態より消費電力が少ない第１の省電力状態に遷移するプロセッサと、
タイマ割り込みを受け付けた場合に前記レディキューを更新する更新処理と、前記レディキューに前記実行可能タスクが登録された場合に前記プロセッサを前記第１の起動状態に遷移させる遷移処理を実行するコントローラと、
前記コントローラに所定周期で前記タイマ割り込みを出力するクロック信号制御回路と、
を有することを特徴とするプロセッサシステム。
【請求項２】
前記記憶装置は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスクを登録するタイマキューをさらに有し、
前記コントローラは、前記タイマ割り込みを受け付けた場合さらに、前記所定の時間を経過し、実行を開始することができる状態になった前記実行待ちタスクを前記実行可能タスクとして、前記レディキューに登録することを特徴とする請求項１に記載のプロセッサシステム。
【請求項３】
前記コントローラは、前記更新処理と前記遷移処理を実行した場合に前記更新処理と前記遷移処理を実行する第２の起動状態より消費電力が少ない第２の省電力状態に遷移し、前記タイマ割り込みを受け付けた場合に前記第２の起動状態に遷移することを特徴とする請求項１または２に記載のプロセッサシステム。
【請求項４】
前記コントローラは、前記プロセッサにプロセッサ間割り込みを出力することにより、前記プロセッサを前記第１の起動状態に遷移させることを特徴とする請求項１〜３のいずれか一つに記載のプロセッサシステム。
【請求項５】
前記プロセッサは、入出力割り込みを受け付けた場合に、前記第１の起動状態に遷移することを特徴とする請求項１〜４のいずれか一つに記載のプロセッサシステム。
【請求項６】
前記コントローラは、前記プロセッサが複数存在し、複数のプロセッサが前記レディキューを共有する際、前記レディキューに前記実行可能タスクが登録された場合に前記複数のプロセッサを前記第１の起動状態に遷移させることを特徴とする請求項１〜５のいずれか一つに記載のプロセッサシステム。
【請求項７】
前記コントローラは、前記プロセッサが複数存在し、複数のプロセッサがそれぞれ対応する前記レディキューを有する際、前記レディキューに前記実行可能タスクが登録された場合に前記実行可能タスクが登録された前記レディキューに対応するプロセッサを前記第１の起動状態に遷移させることを特徴とする請求項１〜５のいずれか一つに記載のプロセッサシステム。
【請求項８】
実行を開始することができる状態にある実行可能タスクを登録するレディキューを有する記憶部と、
前記レディキューに前記実行可能タスクが登録されていない場合に、前記実行可能タスクを実行する第１の起動状態より消費電力が少ない第１の省電力状態に遷移する第１の制御部と、
タイマ割り込みを受け付けた場合に前記レディキューを更新する更新処理と、前記レディキューに前記実行可能タスクが登録された場合、前記第１の制御部を前記第１の起動状態に遷移させる遷移処理を実行する第２の制御部と、
前記第２の制御部に所定周期で前記タイマ割り込みを出力するクロック信号制御部と、
を有することを特徴とする半導体集積回路。
【請求項９】
前記記憶部は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスクを登録するタイマキューをさらに有し、
前記第２の制御部は、前記タイマ割り込みを受け付けた場合さらに、前記所定の時間を経過し、実行を開始することができる状態になった前記実行待ちタスクを前記実行可能タスクとして、前記レディキューに登録することを特徴とする請求項８に記載の半導体集積回路。
【請求項１０】
前記第２の制御部は、前記更新処理と前記遷移処理を実行した場合に前記更新処理と前記遷移処理を実行する第２の起動状態より消費電力が少ない第２の省電力状態に遷移し、前記タイマ割り込みを受け付けた場合に前記第２の起動状態に遷移することを特徴とする請求項８または９に記載の半導体集積回路。
【請求項１１】
前記第２の制御部は、前記第１の制御部に割り込みを出力することにより、前記第１の制御部を前記第１の起動状態に遷移させることを特徴とする請求項８〜１０のいずれか一つに記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサシステムおよび半導体集積回路に関する。
【背景技術】
【０００２】
スマートフォン、携帯電話機、タブレット型ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などのバッテリに充電された電力により動作する携帯型情報端末では、駆動時間を長くするために、待機時間中の消費電力を抑えることが重要である。待機時間中の消費電力を抑える技術として、例えば、実行する処理が存在しない場合に、消費電力がより少ない省電力状態に遷移させるものがある。
【０００３】
関連する先行技術として、例えば、マルチタスク・オペレーティング・システムの下で最下位の優先度で走るプログラムによって、プロセッサへのクロック信号の供給を停止させる、または周波数を低下させるものがある。また、クロックの供給を停止するスタンバイタスクを、最も優先順位が低いタスクとして用意しておき、他のタスク処理が終了した後に、スタンバイタスクを実行させる技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−２７８６１２号公報
【特許文献２】特開平１１−２１２６６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術によれば、システムの十分な省電力化を図ることが難しい。例えば、システムの消費電力を抑えるために、実行するタスクが存在しない場合にプロセッサに供給するクロック信号の周波数を低下させても、周期的にプロセッサにタイマ割り込みが入る。このため、タイマ割り込みが入るたびにプロセッサが起動されて省電力状態が中断することになり、十分な省電力化を図ることが難しい。
【０００６】
また、一定時間後に実行する実行待ちタスクがあるときに、プロセッサに供給するクロック信号の周波数を低下させると、指定した時間にプロセッサにタイマ割り込みを出力することができない場合がある。この場合、一定時間後に実行待ちタスクが実行されず、システムのリアルタイム性を保証できなくなる。
【０００７】
一つの側面では、本発明は、システムの消費電力を効率的に抑えることができるプロセッサシステムおよび半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、実行を開始することができる状態にある実行可能タスクを登録するレディキューを有する記憶装置と、前記レディキューに前記実行可能タスクが登録されていない場合に、前記実行可能タスクを実行する第１の起動状態より消費電力が少ない第１の省電力状態に遷移するプロセッサと、タイマ割り込みを受け付けた場合に前記レディキューを更新する更新処理と、前記レディキューに前記実行可能タスクが登録された場合に前記プロセッサを前記第１の起動状態に遷移させる遷移処理を実行するコントローラと、前記コントローラに所定周期で前記タイマ割り込みを出力するクロック信号制御回路とを有するプロセッサシステムおよび半導体集積回路が提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、システムの消費電力を効率的に抑えることができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態１にかかるプロセッサシステム１００の一実施例を示す説明図である。
【図２】図２は、プロセッサシステム１００のハードウェア構成例を示すブロック図である。
【図３】図３は、レディキュー１０３の一例を示す説明図である。
【図４】図４は、コントローラ１０２の機能的構成例を示すブロック図である。
【図５】図５は、実施の形態１にかかるプロセッサシステム１００のタスク処理手順の一例を示すフローチャートである。
【図６】図６は、実施の形態２にかかるプロセッサシステム１００の一実施例を示す説明図である。
【図７】図７は、タイマキュー６０１の一例を示す説明図である。
【図８】図８は、実施の形態２にかかるプロセッサシステム１００のタスク処理手順の一例を示すフローチャートである。
【図９】図９は、タイマキュー６０１、レディキュー１０３の更新処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に図面を参照して、本発明にかかるプロセッサシステムおよび半導体集積回路の実施の形態を詳細に説明する。
【００１２】
（実施の形態１）
（プロセッサシステム１００の一実施例）
図１は、実施の形態１にかかるプロセッサシステム１００の一実施例を示す説明図である。プロセッサシステム１００は、コンピュータにおいて、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）およびアプリケーションの処理を実行するハードウェアである。図１において、プロセッサシステム１００は、プロセッサ１０１と、コントローラ１０２と、レディキュー１０３と、クロック信号制御回路１０４とを有する。
【００１３】
プロセッサ１０１は、アプリケーションのタスク等の負荷の高い処理を実行するプロセッサである。例えば、プロセッサ１０１は、コントローラ１０２に比べて処理能力が高く、タスクを実行しないコントローラ１０２に比べて消費電力量が多いプロセッサである。プロセッサ１０１は、実行するタスクが存在しない場合、タスクを実行する第１の起動状態（以下、単に「起動状態」と称する）より消費電力が少ない第１の省電力状態（以下、単に「省電力状態」と称する）に遷移することが可能である。例えば、プロセッサ１０１は、供給される電圧を低下させること、またはプロセッサ１０１が動作する周波数を落とすことで、省電力状態に遷移する。プロセッサ１０１は、タスクを実行するための回路へのクロック信号の供給を止めること、またはタスクを実行するための回路への電源を遮断することで、省電力状態に遷移することもできる。なお、クロック信号とは、周期的に電圧が高い状態と低い状態をとる信号であり、デジタル回路が動作する時に、複数の回路のタイミングを合わせるために供給される。
【００１４】
コントローラ１０２は、ＯＳの割り込み応答等の負荷の低い処理を実行するプロセッサである。なお、割り込みとは、プロセッサに現在実行中の処理を中断させて、強制的に指定された処理を実行させることであり、割り込み応答とは、強制的に指定された処理のことである。また、コントローラ１０２は、プロセッサ１０１と通信することが可能であり、プロセッサ間で割り込みを起こす機構を有する。この機構を使用して、コントローラ１０２は、プロセッサ１０１を省電力状態から起動状態に遷移させるプロセッサ起動割り込みをプロセッサ１０１に送信することができる。
【００１５】
レディキュー１０３は、プロセッサ１０１で実行を開始することができる状態にある実行可能タスク１１０を優先度の順に並べて登録するＯＳのデータである。優先度とは、プロセッサ１０１が実行可能タスク１１０を選択するための指標であり、プロセッサ１０１は優先度の高い実行可能タスク１１０から実行する。プロセッサ１０１がレディキュー１０３を参照することで、次に実行するタスクの有無を確認することができる。レディキュー１０３に実行可能タスク１１０が登録されている場合、プロセッサ１０１は、レディキュー１０３から実行可能タスク１１０を取り出して、取り出したタスクを実行するディスパッチ処理を行う。
【００１６】
クロック信号制御回路１０４は、プロセッサ１０１とコントローラ１０２にクロック信号を供給する装置である。また、クロック信号制御回路１０４は、コントローラ１０２に、所定周期でタイマ割り込みを送信する装置でもある。
【００１７】
本実施例では、プロセッサ１０１は、レディキュー１０３に登録された実行可能タスク１１０を実行する。プロセッサ１０１は、レディキュー１０３に実行可能タスク１１０が登録されていない場合、省電力状態に遷移する。一方、コントローラ１０２は、所定周期でタイマ割り込みを受信し、レディキュー１０３を更新する。コントローラ１０２は、実行可能タスク１１０がレディキュー１０３に登録された場合、プロセッサ起動割り込みをプロセッサ１０１に送信する。プロセッサ起動割り込みを受信したプロセッサ１０１は、起動状態に遷移し、レディキュー１０３に登録された実行可能タスク１１０を実行する。以下、プロセッサシステム１００のタスク処理手順について詳細に説明する。
【００１８】
（１）プロセッサ１０１は、レディキュー１０３に登録された実行可能タスク１１０を実行する。図１の例では、プロセッサ１０１は、レディキュー１０３に登録された実行可能タスク１１０を取り出して、実行可能タスク１１０を実行する。
【００１９】
（２）プロセッサ１０１は、レディキュー１０３に実行可能タスク１１０が登録されていない場合、省電力状態に遷移する。プロセッサ１０１は、実行の処理を終了した後、レディキュー１０３に実行可能タスク１１０が登録されているか確認する。図１の例では、実行可能タスク１１０が登録されていなく、プロセッサ１０１は、起動状態から省電力状態に遷移する。
【００２０】
（３）コントローラ１０２は、所定周期でタイマ割り込みを受信し、レディキュー１０３を更新する。コントローラ１０２は、クロック信号制御回路１０４から所定周期でタイマ割り込みを受信する。タイマ割り込みを受信したコントローラ１０２は、実行可能タスク１１０が存在するか確認する。存在しない場合、コントローラ１０２は、次のタイマ割り込みを待つ。
【００２１】
（４）コントローラ１０２は、実行可能タスク１１０がレディキュー１０３に登録された場合、プロセッサ起動割り込みをプロセッサ１０１に送信する。タイマ割り込みを受信したコントローラ１０２は、実行可能タスク１１０が存在する場合、レディキュー１０３に実行可能タスク１１０を登録する。次に、コントローラ１０２は、プロセッサ起動割り込みをプロセッサ１０１に送信し、次のタイマ割り込みを待つ。
【００２２】
（５）プロセッサ起動割り込みを受信したプロセッサ１０１は、起動状態に遷移し、レディキュー１０３に登録された実行可能タスク１１０を実行する。図１の例では、プロセッサ１０１は、省電力状態から起動状態に遷移し、レディキュー１０３に登録された実行可能タスク１１０を取り出して、実行可能タスク１１０を実行する。
【００２３】
以上説明したように、プロセッサシステム１００は、実行を開始することができる状態にある実行可能タスク１１０を登録するレディキュー１０３を有する。プロセッサ１０１は、レディキュー１０３に実行可能タスク１１０が登録されていない場合に、実行可能タスク１１０を実行する起動状態より消費電力が少ない省電力状態に遷移する。コントローラ１０２は、タイマ割り込みを受け付けた場合にレディキュー１０３を更新する。ここで、レディキュー１０３に実行可能タスク１１０が登録された場合、コントローラ１０２は、プロセッサ１０１を起動状態に遷移させる。クロック信号制御回路１０４は、コントローラ１０２に所定周期でタイマ割り込みを出力する。
【００２４】
これにより、コントローラ１０２は、レディキュー１０３の更新を行い、プロセッサ１０１はレディキュー１０３の更新を行わない。従って、プロセッサシステム１００は、実行待ちタスクが存在する場合でも、実行可能タスク１１０が存在しない時に省電力状態に遷移して、システム全体の消費電力を抑えることができる。
【００２５】
また、クロック信号制御回路１０４がプロセッサ１０１にタイマ割り込みを出力しないため、プロセッサ１０１はタイマ割り込みを処理するために所定周期で省電力状態から起動状態に遷移することはない。従って、プロセッサ１０１は、長時間継続的に省電力状態を維持しシステム全体の消費電力を抑えることができる。
【００２６】
（プロセッサシステム１００のハードウェア構成例）
図２は、プロセッサシステム１００のハードウェア構成例を示すブロック図である。図２において、プロセッサシステム１００は、プロセッサ１０１と、コントローラ１０２と、クロック信号制御回路１０４と、クロック信号発生回路２０１と、メモリ２０２と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インターフェース２０３とを有する。また、各構成部は、バス２００によってそれぞれ接続される。
【００２７】
ここで、プロセッサ１０１とコントローラ１０２はプロセッサシステム１００の全体の制御を司る。メモリ２０２は、レディキュー１０３を記憶することができる。また、メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがプロセッサ１０１とコントローラ１０２のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、プロセッサ１０１とコントローラ１０２にロードされることで、コーディングされている処理をプロセッサ１０１とコントローラ１０２に実行させる。
【００２８】
クロック信号発生回路２０１は、所定周期のクロック信号をクロック信号制御回路１０４に供給する。クロック信号制御回路１０４は、プロセッサ１０１とコントローラ１０２にクロック信号を供給する装置である。クロック信号制御回路１０４は、設定値を変更することで、プロセッサ１０１とコントローラ１０２に供給するクロック信号の周波数を落とし、プロセッサ１０１とコントローラ１０２を省電力化することが可能である。また、クロック信号制御回路１０４は、コントローラ１０２に、所定周期でタイマ割り込みを送信する装置でもある。
【００２９】
メモリ２０２は、プロセッサ１０１とコントローラ１０２の両方からアクセスできる共有メモリであることもできる。また、メモリ２０２は、プロセッサ１０１からアクセスできる部分と、コントローラ１０２からアクセスできる部分に分けられる分散メモリであることもできる。この場合、プロセッサシステム１００は、プロセッサ１０１とコントローラ１０２を介すことなくデータ転送を行う、図示しないＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）を有する。ＤＭＡＣは、レディキュー１０３等のプロセッサ１０１とコントローラ１０２の両方で使用するデータを転送する。
【００３０】
Ｉ／Ｏインターフェース２０３は、磁気ディスクドライブ等の入出力機器に接続される。磁気ディスクドライブは、プロセッサ１０１とコントローラ１０２の制御にしたがって磁気ディスクに対するデータのリード／ライトを制御する。磁気ディスクは、磁気ディスクドライブの制御で書き込まれたデータを記憶する。
【００３１】
プロセッサシステム１００は、上述した構成部のほか、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などを有することにしてもよい。
【００３２】
（レディキュー１０３の一例）
図３は、レディキュー１０３の一例を示す説明図である。レディキュー１０３は、複数の優先度のキューを有することができる。図３の例では、レディキュー１０３は、優先度１キュー３０１、優先度２キュー３０２、および優先度３キュー３０３の３つのキューを有する。優先度は、優先度１キュー３０１が最も高く、次に、優先度２キュー３０２が高く、優先度３キュー３０３が最も低い。優先度１キュー３０１には、実行可能タスク３１１が登録され、優先度２キュー３０２には、実行可能タスクが登録されず、優先度３キュー３０３には、実行可能タスク３２１、３２２、３２３が登録される。プロセッサ１０１は、優先度にしたがって、実行可能タスク３１１を最初に実行する。
【００３３】
（コントローラ１０２の機能的構成例）
図４は、コントローラ１０２の機能的構成例を示すブロック図である。図４において、コントローラ１０２は、受付部４０１と、更新部４０２と、判断部４０３と、出力部４０４とを含む構成である。各機能部は、具体的には、例えば、図２に示したメモリ２０２などの記憶装置に記憶されたプログラムをコントローラ１０２に実行させることにより、その機能を実現する。各機能部の処理結果は、例えば、図２に示したメモリ２０２などの記憶装置に記憶される。また、各機能部は、例えば、ハードウェアにより実現されてもよい。具体的には、例えば、各機能部は、論理積回路であるＡＮＤ、否定論理回路であるＩＮＶＥＲＴＥＲ、論理和回路であるＯＲ、論理和否定回路であるＮＯＲや、ラッチ回路であるＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）などの素子によって形成されてもよい。
【００３４】
受付部４０１は、クロック信号制御回路１０４が送信したタイマ割り込みを受け付ける機能を有する。タイマ割り込みを受け付けた後、受付部４０１は更新部４０２に更新処理を実行させる。
【００３５】
更新部４０２は、レディキュー１０３を更新する機能を有する。更新部４０２は、実行可能タスク１１０が存在する場合はレディキュー１０３に実行可能タスク１１０を登録する。この後、更新部４０２は判断部４０３に判断処理を実行させる。
【００３６】
判断部４０３は、レディキュー１０３に実行可能タスク１１０が登録されているか否か判断する機能を有する。レディキュー１０３に実行可能タスク１１０が登録されている場合、判断部４０３は出力部４０４に出力処理を実行させる。登録されていない場合、判断部４０３は、受付部４０１に次のタイマ割り込みの受け付け処理を実行させる。
【００３７】
出力部４０４は、プロセッサ起動割り込みをプロセッサ１０１に出力する機能を有する。プロセッサ起動割り込み出力後、出力部４０４は受付部４０１に次のタイマ割り込みの受け付け処理を実行させる。
【００３８】
図５は、実施の形態１にかかるプロセッサシステム１００のタスク処理手順の一例を示すフローチャートである。左側のフローチャートは、プロセッサ１０１によって実行され、右側のフローチャートは、コントローラ１０２によって実行される。
【００３９】
図５のフローチャートにおいて、まず、プロセッサ１０１は、レディキュー１０３に実行可能タスク１１０が登録されているかを確認する（ステップＳ５０１）。実行可能タスク１１０が登録されていない場合（ステップＳ５０２：Ｎｏ）、プロセッサ１０１は、省電力状態に遷移する（ステップＳ５０３）。
【００４０】
次に、コントローラ１０２は、クロック信号制御回路１０４から所定周期でタイマ割り込みを受信し、実行可能タスク１１０が存在するか確認する。コントローラ１０２は、実行可能タスク１１０が存在する場合にレディキュー１０３に実行可能タスク１１０を登録する（ステップＳ５１１）。次に、コントローラ１０２は、レディキュー１０３に実行可能タスク１１０が登録されているか確認する（ステップＳ５１２）。レディキュー１０３に実行可能タスク１１０が登録されていない場合（ステップＳ５１２：Ｎｏ）、コントローラ１０２は、次のタイマ割り込みの受け付けを待つ。
【００４１】
レディキュー１０３に実行可能タスク１１０が登録されている場合（ステップＳ５１２：Ｙｅｓ）、コントローラ１０２は、プロセッサ起動割り込みをプロセッサ１０１に送信する（ステップＳ５１３）。プロセッサ起動割り込み送信後、コントローラ１０２は、次のタイマ割り込みの受け付けを待つ。
【００４２】
コントローラ１０２からプロセッサ起動割り込みを受信した場合、プロセッサ１０１は、起動状態に遷移する（ステップＳ５０４）。この後、プロセッサ１０１は、ステップＳ５０１に移行する。
【００４３】
また、レディキュー１０３に実行可能タスク１１０が存在する場合（ステップＳ５０２：Ｙｅｓ）、プロセッサ１０１は、レディキュー１０３から実行可能タスク１１０を取り出して、取り出したタスクを実行するディスパッチ処理を行う（ステップＳ５０５）。これにより、本フローチャートによる一連の処理は終了する。本フローチャートを実行することにより、プロセッサ１０１は、レディキュー１０３に実行可能タスク１１０が存在する場合、実行可能タスク１１０を実行し、実行可能タスク１１０が存在しない場合、省電力状態となる。
【００４４】
以上説明したように、実施の形態１にかかるプロセッサシステム１００では、プロセッサ１０１は、レディキュー１０３に実行可能タスク１１０が登録されていない場合に省電力状態に遷移する。また、コントローラ１０２は、タイマ割り込みを受け付けた場合にレディキュー１０３の更新を行い、レディキュー１０３に実行可能タスクが登録された場合にプロセッサ１０１を起動状態に遷移させる。これにより、実行待ちタスクが存在する場合でも、実行可能タスク１１０が存在しない時にプロセッサ１０１を省電力状態に遷移させて、システム全体の消費電力を抑えることができる。
【００４５】
また、クロック信号制御回路１０４がプロセッサ１０１にタイマ割り込みを出力しないため、プロセッサ１０１はタイマ割り込みを処理するために所定周期で省電力状態から起動状態に遷移することはない。従って、プロセッサ１０１は、長時間継続的に省電力状態を維持しシステム全体の消費電力を抑えることができる。
【００４６】
また、コントローラ１０２が、レディキュー１０３に実行可能タスクが登録された場合にプロセッサ１０１にプロセッサ起動割り込みを送信することにより、プロセッサ１０１を省電力状態から起動状態に遷移させることができる。
【００４７】
すなわち、実施の形態１にかかるプロセッサシステム１００は、プロセッサ１０１を長時間省電力状態にすることができ、レディキュー１０３の管理を消費電力量の少ないコントローラ１０２で行うため、システム全体の消費電力を効率的に抑えることができる。
【００４８】
（実施の形態２）
図６は、実施の形態２にかかるプロセッサシステム１００の一実施例を示す説明図である。図６において、プロセッサシステム１００は、タイマキュー６０１をさらに有する。なお、実施の形態１で説明した箇所と同一箇所については、図示および説明を省略する。
【００４９】
プロセッサ１０１は、省電力状態で入出力割り込みの受信が可能である。入出力割り込みとは、磁気ディスクドライブ等の入出力装置が入出力処理を終了したときに、プロセッサ１０１に送信される割り込みである。入出力割り込みにより、入出力処理の終了を待っている実行待ちタスク１１１は、実行可能タスク１１０になることができる。
【００５０】
コントローラ１０２は、実行する処理が存在しない場合、処理実行中の第２の起動状態（以下、単に「起動状態」と称する）よりも消費電力が少ない第２の省電力状態（以下、単に「省電力状態」と称する）に遷移することが可能である。なお、コントローラ１０２が実行する処理は、例えば、タイマ割り込みを受信したときに実行するレディキュー１０３およびタイマキュー６０１を更新する処理、プロセッサ１０１を省電力状態から起動状態に遷移させる処理である。コントローラ１０２は、例えば、プロセッサ１０１と同じ方法で省電力状態に遷移することが可能である。
【００５１】
クロック信号制御回路１０４は、コントローラ１０２が省電力状態でも、起動状態と同じ所定周期で、コントローラ１０２にタイマ割り込みを送信する。
【００５２】
タイマキュー６０１は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスク１１１を登録するＯＳのデータである。タイマキュー６０１は、メモリ２０２に記憶することができる。タイマキュー６０１は、実行待ちタスク１１１を所定の時間が少ない順に並べて管理する。実行待ちタスク１１１は、所定の時間経過後、実行可能タスク１１０となり、タイマキュー６０１から削除され、レディキュー１０３に登録される。また、プロセッサ１０１で実行中のタスクが、所定の時間待つＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を発行することで、実行中のタスクは、実行待ちタスク１１１になり、タイマキュー６０１に登録される。ここで、ＡＰＩとは、ＯＳが提供する機能をアプリケーションが利用するための手続きである。
【００５３】
本実施例では、プロセッサ１０１は、レディキュー１０３に登録された実行可能タスク１１０を実行する。プロセッサ１０１は、レディキュー１０３に実行可能タスク１１０が登録されていない場合、省電力状態に遷移する。一方、コントローラ１０２は所定周期でタイマ割り込みを受信し、タイマキュー６０１とレディキュー１０３を更新する。コントローラ１０２は、実行可能タスク１１０がレディキュー１０３に登録された場合、プロセッサ起動割り込みをプロセッサ１０１に送信する。プロセッサ起動割り込みを受信したプロセッサ１０１は、起動状態に遷移し、レディキュー１０３に登録された実行可能タスク１１０を実行する。以下、プロセッサシステム１００のタスク処理手順について詳細に説明する。
【００５４】
（１）プロセッサ１０１は、レディキュー１０３に登録された実行可能タスク１１０を実行する。図６の例では、プロセッサ１０１は、レディキュー１０３に登録された実行可能タスク１１０を取り出して、実行可能タスク１１０を実行する。
【００５５】
（２）プロセッサ１０１は、レディキュー１０３に実行可能タスク１１０が登録されていない場合、省電力状態に遷移する。図６の例では、プロセッサ１０１で実行中のタスクは所定の時間（１０ｍｓｅｃ）待つＡＰＩを実行する。これにより、該タスクは、タイマキュー６０１に実行待ちタスク１１１として登録される。この後、プロセッサ１０１は、レディキュー１０３に実行可能タスク１１０が登録されているか確認する。図６の例では、実行可能タスク１１０が登録されていなく、プロセッサ１０１は、起動状態から省電力状態に遷移する。
【００５６】
（３）コントローラ１０２は、所定周期でタイマ割り込みを受信し、タイマキュー６０１とレディキュー１０３を更新する。コントローラ１０２は、所定周期でタイマ割り込みを受信し、起動状態に遷移する。コントローラ１０２は、タイマキュー６０１に登録された実行待ちタスク１１１の所定の時間から所定周期を減算する。図６の例では、コントローラ１０２は、１ｍｓｅｃの所定周期でタイマ割り込みを受信する。この場合、実行待ちタスク１１１の所定の時間は、減算により９ｍｓｅｃになる。コントローラ１０２は、実行可能タスク１１０が存在するか確認する。存在しない場合、コントローラ１０２は、省電力状態に遷移し、次のタイマ割り込みを待つ。
【００５７】
（４）コントローラ１０２は、実行可能タスク１１０がレディキュー１０３に登録された場合、プロセッサ起動割り込みをプロセッサ１０１に送信する。図６の例では、コントローラ１０２がタイマ割り込みを１０回受信すると実行待ちタスク１１１の所定の時間は、残り０ｍｓｅｃとなる。実行待ちタスク１１１の所定の時間が経過したため、コントローラ１０２は、実行待ちタスク１１１をタイマキュー６０１から削除し、実行可能タスク１１０として、レディキュー１０３に登録する。次に、コントローラ１０２は、プロセッサ起動割り込みをプロセッサ１０１に送信する。コントローラ１０２は、省電力状態に遷移し、次のタイマ割り込みを待つ。
【００５８】
（５）プロセッサ起動割り込みを受信したプロセッサ１０１は、起動状態に遷移し、レディキュー１０３に登録された実行可能タスク１１０を実行する。プロセッサ１０１は、省電力状態から起動状態に遷移し、レディキュー１０３に登録された実行可能タスク１１０を取り出して、実行可能タスク１１０を実行する。
【００５９】
以上説明したように、プロセッサシステム１００は、実行を開始することができる状態にある実行可能タスク１１０を登録するレディキュー１０３を有する。さらに、プロセッサシステム１００は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスク１１１を登録するタイマキュー６０１を有する。プロセッサ１０１は、レディキュー１０３に実行可能タスク１１０が登録されていない場合に、実行可能タスク１１０を実行する起動状態より消費電力が少ない省電力状態に遷移する。コントローラ１０２は、タイマ割り込みを受け付けた場合にレディキュー１０３とタイマキュー６０１を更新する。コントローラ１０２は、所定の時間が経過し、実行を開始することができる状態になった実行待ちタスク１１１を実行可能タスク１１０として、レディキュー１０３に登録する。ここで、レディキュー１０３に実行可能タスク１１０が登録された場合、コントローラ１０２は、プロセッサ１０１を起動状態に遷移させる。クロック信号制御回路１０４は、コントローラ１０２に所定周期で発生するタイマ割り込みを出力させる。
【００６０】
これにより、コントローラ１０２はタイマキュー６０１の更新を行い、プロセッサ１０１はタイマキュー６０１の更新を行わない。従って、プロセッサシステム１００は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスク１１１が存在する場合でも、実行可能タスク１１０が存在しない時に省電力状態に遷移して、システム全体の消費電力を抑えることができる。
【００６１】
また、クロック信号制御回路１０４は、コントローラ１０２が省電力状態でも、起動状態と同じ所定周期で、コントローラ１０２にタイマ割り込みを送信する。このため、コントローラ１０２は、省電力状態でも、タイマキュー６０１に登録された実行待ちタスク１１１を所定の時間後に起動できる。従って、プロセッサシステム１００は、リアルタイム性を保つことができる。
【００６２】
また、コントローラ１０２は、レディキュー１０３とタイマキュー６０１の更新処理、およびプロセッサ１０１の遷移処理の後、次のタイマ割り込み受信まで省電力状態に遷移することが可能である。従って、プロセッサシステム１００は、さらに省電力化することが可能となる。
【００６３】
（タイマキュー６０１の一例）
図７は、タイマキュー６０１の一例を示す説明図である。タイマキュー６０１は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスク１１１を登録する。実行待ちタスク１１１は、所定の時間を記憶する。図７の例では、タイマキュー６０１は、実行待ちタスク７１１，７１２，７１３を登録する。例えば、実行待ちタスク７１１は、所定の時間として、５ｍｓｅｃを記憶する。実行待ちタスク７１１は、５ｍｓｅｃ後に実行可能タスク１１０となり、レディキュー１０３に登録される。
【００６４】
図８は、実施の形態２にかかるプロセッサシステム１００のタスク処理手順の一例を示すフローチャートである。左側のフローチャートは、プロセッサ１０１によって実行され、右側のフローチャートは、コントローラ１０２によって実行される。
【００６５】
図８のフローチャートにおいて、まず、プロセッサ１０１は、レディキュー１０３に実行可能タスク１１０が登録されているかを確認する（ステップＳ８０１）。実行可能タスク１１０が登録されていない場合（ステップＳ８０２：Ｎｏ）、プロセッサ１０１は、省電力状態に遷移する（ステップＳ８０３）。
【００６６】
次に、コントローラ１０２は、クロック信号制御回路１０４から所定周期でタイマ割り込みを受信し、起動状態に遷移する（ステップＳ８１１）。次に、コントローラ１０２は、タイマキュー６０１とレディキュー１０３を更新する（ステップＳ８１２）。なお、タイマキュー６０１とレディキュー１０３の更新処理手順は、図９で詳細に説明される。次に、コントローラ１０２は、レディキュー１０３に実行可能タスク１１０が登録されているかを確認する（ステップＳ８１３）。レディキュー１０３に実行可能タスク１１０が登録されていない場合（ステップＳ８１３：Ｎｏ）、コントローラ１０２は、ステップＳ８１５に移行する。
【００６７】
レディキュー１０３に実行可能タスク１１０が登録されている場合（ステップＳ８１３：Ｙｅｓ）、コントローラ１０２は、プロセッサ起動割り込みをプロセッサ１０１に送信する（ステップＳ８１４）。プロセッサ起動割り込み送信後、コントローラ１０２は、省電力状態に遷移し（ステップＳ８１５）、次のタイマ割り込みの受け付けを待つ。
【００６８】
コントローラ１０２からプロセッサ起動割り込みを受信した場合、または、入出力割り込みを受信した場合、プロセッサ１０１は、起動状態に遷移する（ステップＳ８０４）。この後、プロセッサ１０１は、ステップＳ８０１に移行する。
【００６９】
また、レディキュー１０３に実行可能タスク１１０が存在する場合（ステップＳ８０２：Ｙｅｓ）、プロセッサ１０１は、レディキュー１０３から実行可能タスク１１０を取り出して、取り出したタスクを実行するディスパッチ処理を行う（ステップＳ８０５）。これにより、本フローチャートによる一連の処理は終了する。本フローチャートを実行することにより、プロセッサ１０１は、レディキュー１０３に実行可能タスク１１０が存在する場合、実行可能タスク１１０を実行し、実行可能タスク１１０が存在しない場合、省電力状態となる。
【００７０】
図９は、タイマキュー６０１、レディキュー１０３の更新処理手順の一例を示すフローチャートである。
【００７１】
図９のフローチャートにおいて、まず、コントローラ１０２はタイマキュー６０１に実行待ちタスク１１１が登録されているか確認する（ステップＳ９０１）。登録されていない場合（ステップＳ９０１：Ｎｏ）、コントローラ１０２はタイマキュー６０１、レディキュー１０３の更新処理を終了する。登録されている場合（ステップＳ９０１：Ｙｅｓ）、コントローラ１０２は、タイマキュー６０１に登録された実行待ちタスク１１１の所定の時間から、タイマ割り込みの周期を減算する（ステップＳ９０２）。
【００７２】
次に、コントローラ１０２は、実行待ちタスク１１１の所定の時間が０になったかどうか確認する（ステップＳ９０３）。０になった場合（ステップＳ９０３：Ｙｅｓ）、実行待ちタスク１１１の所定の時間は経過したことになる。このため、コントローラ１０２は、実行待ちタスク１１１をタイマキュー６０１から削除し、実行可能タスク１１０として、レディキュー１０３に登録する（ステップＳ９０４）。０でない場合（ステップＳ９０３：Ｎｏ）、コントローラ１０２は、ステップＳ９０５に移行する。
【００７３】
コントローラ１０２は、タイマキュー６０１に次のタスクが登録されているか確認する（ステップＳ９０５）。登録されている場合（ステップＳ９０５：Ｙｅｓ）、コントローラ１０２は、ステップＳ９０２に戻り、次のタスクの所定の時間を減算する。登録されていない場合（ステップＳ９０５：Ｎｏ）、コントローラ１０２はタイマキュー６０１、レディキュー１０３の更新処理を終了する。これにより、本フローチャートによる一連の処理は終了する。本フローチャートを実行することにより、コントローラ１０２が、タイマキュー６０１、レディキュー１０３を更新し、実行可能タスク１１０をレディキュー１０３に登録する。
【００７４】
なお、タイマキュー６０１の更新は、以下の手順で行うことも可能である。コントローラ１０２が、実行待ちタスク１１１がタイマキュー６０１に登録された後のタイマ割り込みの回数を記憶する。タイマ割り込み受信後、コントローラ１０２は、タイマ割り込みの回数とタイマ割り込みの周期との積と、所定の時間との比較を行う。積が大きい場合、実行待ちタスク１１１の所定の時間は経過したため、コントローラ１０２は、実行待ちタスク１１１をタイマキュー６０１から削除し、実行可能タスク１１０として、レディキュー１０３に登録する。
【００７５】
以上説明したように、実施の形態２にかかるプロセッサシステム１００では、コントローラ１０２は、タイマキュー６０１の更新を行い、プロセッサ１０１はタイマキュー６０１の更新を行わない。従って、プロセッサシステム１００は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスク１１１が存在する場合でも、実行可能タスク１１０が存在しない時に省電力状態に遷移して、システム全体の消費電力を抑えることができる。
【００７６】
また、クロック信号制御回路１０４は、コントローラ１０２が省電力状態でも、起動状態と同じ所定周期で、コントローラ１０２にタイマ割り込みを送信する。このため、コントローラ１０２は、省電力状態でも、タイマキュー６０１に登録された実行待ちタスク１１１を所定の時間後に起動できる。従って、プロセッサシステム１００は、リアルタイム性を保つことができる。
【００７７】
また、コントローラ１０２は、レディキュー１０３とタイマキュー６０１の更新処理、およびプロセッサ１０１の遷移処理の後、次のタイマ割り込み受信まで省電力状態に遷移することが可能である。従って、プロセッサシステム１００は、さらに省電力化することが可能となる。
【００７８】
また、プロセッサ１０１は、省電力状態で入出力割り込みの受信が可能である。これにより、プロセッサ１０１は、入出力処理の終了により、レディキュー１０３に登録された実行可能タスク１１０を、コントローラ１０２を介すことなく実行可能になる。
【００７９】
すなわち、本実施例のプロセッサシステム１００は、プロセッサ１０１を長時間省電力状態にしておくことができる。また、本実施例のプロセッサシステム１００は、タイマキュー６０１、レディキュー１０３の管理を消費電力量の少ないコントローラ１０２で行うため、システム全体として省電力化することが可能となる。また、タイマキュー６０１の管理をコントローラ１０２で行うため、プロセッサシステム１００は、リアルタイム性を保つことができる。
【００８０】
これらのことから、実施の形態２にかかるプロセッサシステム１００によれば、リアルタイム性を保証しながら、システム全体の省電力化を図ることができる。
【００８１】
（実施の形態３）
実施の形態１および２では、プロセッサシステム１００にプロセッサ１０１が１つ存在する場合について説明したが、実施の形態３では、プロセッサシステム１００に複数のプロセッサ１０１が存在する場合について説明する。
【００８２】
ここで、複数のプロセッサ１０１を有するプロセッサシステム１００の形態として、プロセッサシステム１００が１つのＯＳを実行する形態がある。本形態では、ＯＳのレディキュー１０３は１つで、複数のプロセッサ１０１が共有する。また、レディキュー１０３に実行可能タスク１１０が登録された場合に、コントローラ１０２は、複数のプロセッサ１０１を起動状態に遷移させる。これにより、１つのプロセッサ１０１が実行可能タスク１１０を実行し、残りのプロセッサ１０１は、省電力状態に遷移する。
【００８３】
また、複数のプロセッサ１０１を有するプロセッサシステム１００の形態として、プロセッサシステム１００が複数のＯＳを実行する形態がある。本形態では、ＯＳのレディキュー１０３は複数で、複数のプロセッサ１０１がそれぞれ対応するレディキュー１０３を有する。また、１つのレディキュー１０３に実行可能タスク１１０が登録された場合に、コントローラ１０２は、実行可能タスク１１０が登録されたレディキュー１０３に対応するプロセッサ１０１を起動状態に遷移させる。これにより、１つのプロセッサ１０１が実行可能タスク１１０を実行し、残りのプロセッサ１０１は、省電力状態のままである。
【００８４】
なお、複数のプロセッサ１０１を有するプロセッサシステム１００が、複数のＯＳを実行する形態で、コントローラ１０２は、１つであることも、プロセッサ１０１の数に対応した複数であることもできる。コントローラ１０２が１つである場合、コントローラ１０２は、複数のレディキュー１０３を更新する。コントローラ１０２が複数である場合、コントローラ１０２は、対応するレディキュー１０３を更新する。
【００８５】
以上説明したように、実施の形態３にかかるプロセッサシステム１００によれば、プロセッサ１０１が複数存在する場合でも、リアルタイム性を保証しながら、システム全体の省電力化を図ることができる。
【００８６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００８７】
（付記１）実行を開始することができる状態にある実行可能タスクを登録するレディキューを有する記憶装置と、
前記レディキューに前記実行可能タスクが登録されていない場合に、前記実行可能タスクを実行する第１の起動状態より消費電力が少ない第１の省電力状態に遷移するプロセッサと、
タイマ割り込みを受け付けた場合に前記レディキューを更新する更新処理と、前記レディキューに前記実行可能タスクが登録された場合に前記プロセッサを前記第１の起動状態に遷移させる遷移処理を実行するコントローラと、
前記コントローラに所定周期で前記タイマ割り込みを出力するクロック信号制御回路と、
を有することを特徴とするプロセッサシステム。
【００８８】
（付記２）前記記憶装置は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスクを登録するタイマキューをさらに有し、
前記コントローラは、前記タイマ割り込みを受け付けた場合さらに、前記所定の時間を経過し、実行を開始することができる状態になった前記実行待ちタスクを前記実行可能タスクとして、前記レディキューに登録することを特徴とする付記１に記載のプロセッサシステム。
【００８９】
（付記３）前記コントローラは、前記更新処理と前記遷移処理を実行した場合に前記更新処理と前記遷移処理を実行する第２の起動状態より消費電力が少ない第２の省電力状態に遷移し、前記タイマ割り込みを受け付けた場合に前記第２の起動状態に遷移することを特徴とする付記１または２に記載のプロセッサシステム。
【００９０】
（付記４）前記コントローラは、前記プロセッサにプロセッサ間割り込みを出力することにより、前記プロセッサを前記第１の起動状態に遷移させることを特徴とする付記１〜３のいずれか一つに記載のプロセッサシステム。
【００９１】
（付記５）前記プロセッサは、入出力割り込みを受け付けた場合に、前記第１の起動状態に遷移することを特徴とする付記１〜４のいずれか一つに記載のプロセッサシステム。
【００９２】
（付記６）前記コントローラは、前記プロセッサが複数存在し、複数のプロセッサが前記レディキューを共有する際、前記レディキューに前記実行可能タスクが登録された場合に前記複数のプロセッサを前記第１の起動状態に遷移させることを特徴とする付記１〜５のいずれか一つに記載のプロセッサシステム。
【００９３】
（付記７）前記コントローラは、前記プロセッサが複数存在し、複数のプロセッサがそれぞれ対応する前記レディキューを有する際、前記レディキューに前記実行可能タスクが登録された場合に前記実行可能タスクが登録された前記レディキューに対応するプロセッサを前記第１の起動状態に遷移させることを特徴とする付記１〜５のいずれか一つに記載のプロセッサシステム。
【００９４】
（付記８）実行を開始することができる状態にある実行可能タスクを登録するレディキューを有する記憶部と、
前記レディキューに前記実行可能タスクが登録されていない場合に、前記実行可能タスクを実行する第１の起動状態より消費電力が少ない第１の省電力状態に遷移する第１の制御部と、
タイマ割り込みを受け付けた場合に前記レディキューを更新する更新処理と、前記レディキューに前記実行可能タスクが登録された場合、前記第１の制御部を前記第１の起動状態に遷移させる遷移処理を実行する第２の制御部と、
前記第２の制御部に所定周期で前記タイマ割り込みを出力するクロック信号制御部と、
を有することを特徴とする半導体集積回路。
【００９５】
（付記９）前記記憶部は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスクを登録するタイマキューをさらに有し、
前記第２の制御部は、前記タイマ割り込みを受け付けた場合さらに、前記所定の時間を経過し、実行を開始することができる状態になった前記実行待ちタスクを前記実行可能タスクとして、前記レディキューに登録することを特徴とする付記８に記載の半導体集積回路。
【００９６】
（付記１０）前記第２の制御部は、前記更新処理と前記遷移処理を実行した場合に前記更新処理と前記遷移処理を実行する第２の起動状態より消費電力が少ない第２の省電力状態に遷移し、前記タイマ割り込みを受け付けた場合に前記第２の起動状態に遷移することを特徴とする付記８または９に記載の半導体集積回路。
【００９７】
（付記１１）前記第２の制御部は、前記第１の制御部に割り込みを出力することにより、前記第１の制御部を前記第１の起動状態に遷移させることを特徴とする付記８〜１０のいずれか一つに記載の半導体集積回路。
【符号の説明】
【００９８】
１００  プロセッサシステム
１０１  プロセッサ
１０２  コントローラ
１０３  レディキュー
１０４  クロック信号制御回路
２０１  クロック信号発生回路
２０２  メモリ
２０３  Ｉ／Ｏインターフェース
４０１  受付部
４０２  更新部
４０３  判断部
４０４  出力部
６０１  タイマキュー
【図１】
2015022556.tif 000003
【図２】
2015022556.tif 000004
【図３】
2015022556.tif 000005
【図４】
2015022556.tif 000006
【図５】
2015022556.tif 000007
【図６】
2015022556.tif 000008
【図７】
2015022556.tif 000009
【図８】
2015022556.tif 000010
【図９】
2015022556.tif 000011