(58)【調査した分野】(Int.Cl.,DB名)
前記コントローラは、前記プロセッサが複数存在し、複数のプロセッサが前記レディキューを共有する際、前記レディキューに前記実行可能タスクが登録された場合に前記複数のプロセッサを前記第1の起動状態に遷移させることを特徴とする請求項1〜4のいずれか一つに記載のプロセッサシステム。
前記コントローラは、前記プロセッサが複数存在し、複数のプロセッサがそれぞれ対応する前記レディキューを有する際、前記レディキューに前記実行可能タスクが登録された場合に前記実行可能タスクが登録された前記レディキューに対応するプロセッサを前記第1の起動状態に遷移させることを特徴とする請求項1〜4のいずれか一つに記載のプロセッサシステム。
【発明を実施するための形態】
【0011】
以下に図面を参照して、本発明にかかるプロセッサシステムおよび半導体集積回路の実施の形態を詳細に説明する。
【0012】
(実施の形態1)
(プロセッサシステム100の一実施例)
図1は、実施の形態1にかかるプロセッサシステム100の一実施例を示す説明図である。プロセッサシステム100は、コンピュータにおいて、OS(Operating System)およびアプリケーションの処理を実行するハードウェアである。
図1において、プロセッサシステム100は、プロセッサ101と、コントローラ102と、レディキュー103と、クロック信号制御回路104とを有する。
【0013】
プロセッサ101は、アプリケーションのタスク等の負荷の高い処理を実行するプロセッサである。例えば、プロセッサ101は、コントローラ102に比べて処理能力が高く、タスクを実行しないコントローラ102に比べて消費電力量が多いプロセッサである。プロセッサ101は、実行するタスクが存在しない場合、タスクを実行する第1の起動状態(以下、単に「起動状態」と称する)より消費電力が少ない第1の省電力状態(以下、単に「省電力状態」と称する)に遷移することが可能である。例えば、プロセッサ101は、供給される電圧を低下させること、またはプロセッサ101が動作する周波数を落とすことで、省電力状態に遷移する。プロセッサ101は、タスクを実行するための回路へのクロック信号の供給を止めること、またはタスクを実行するための回路への電源を遮断することで、省電力状態に遷移することもできる。なお、クロック信号とは、周期的に電圧が高い状態と低い状態をとる信号であり、デジタル回路が動作する時に、複数の回路のタイミングを合わせるために供給される。
【0014】
コントローラ102は、OSの割り込み応答等の負荷の低い処理を実行するプロセッサである。なお、割り込みとは、プロセッサに現在実行中の処理を中断させて、強制的に指定された処理を実行させることであり、割り込み応答とは、強制的に指定された処理のことである。また、コントローラ102は、プロセッサ101と通信することが可能であり、プロセッサ間で割り込みを起こす機構を有する。この機構を使用して、コントローラ102は、プロセッサ101を省電力状態から起動状態に遷移させるプロセッサ起動割り込みをプロセッサ101に送信することができる。
【0015】
レディキュー103は、プロセッサ101で実行を開始することができる状態にある実行可能タスク110を優先度の順に並べて登録するOSのデータである。優先度とは、プロセッサ101が実行可能タスク110を選択するための指標であり、プロセッサ101は優先度の高い実行可能タスク110から実行する。プロセッサ101がレディキュー103を参照することで、次に実行するタスクの有無を確認することができる。レディキュー103に実行可能タスク110が登録されている場合、プロセッサ101は、レディキュー103から実行可能タスク110を取り出して、取り出したタスクを実行するディスパッチ処理を行う。
【0016】
クロック信号制御回路104は、プロセッサ101とコントローラ102にクロック信号を供給する装置である。また、クロック信号制御回路104は、コントローラ102に、所定周期でタイマ割り込みを送信する装置でもある。
【0017】
本実施例では、プロセッサ101は、レディキュー103に登録された実行可能タスク110を実行する。プロセッサ101は、レディキュー103に実行可能タスク110が登録されていない場合、省電力状態に遷移する。一方、コントローラ102は、所定周期でタイマ割り込みを受信し、レディキュー103を更新する。コントローラ102は、実行可能タスク110がレディキュー103に登録された場合、プロセッサ起動割り込みをプロセッサ101に送信する。プロセッサ起動割り込みを受信したプロセッサ101は、起動状態に遷移し、レディキュー103に登録された実行可能タスク110を実行する。以下、プロセッサシステム100のタスク処理手順について詳細に説明する。
【0018】
(1)プロセッサ101は、レディキュー103に登録された実行可能タスク110を実行する。
図1の例では、プロセッサ101は、レディキュー103に登録された実行可能タスク110を取り出して、実行可能タスク110を実行する。
【0019】
(2)プロセッサ101は、レディキュー103に実行可能タスク110が登録されていない場合、省電力状態に遷移する。プロセッサ101は、実行の処理を終了した後、レディキュー103に実行可能タスク110が登録されているか確認する。
図1の例では、実行可能タスク110が登録されていなく、プロセッサ101は、起動状態から省電力状態に遷移する。
【0020】
(3)コントローラ102は、所定周期でタイマ割り込みを受信し、レディキュー103を更新する。コントローラ102は、クロック信号制御回路104から所定周期でタイマ割り込みを受信する。タイマ割り込みを受信したコントローラ102は、実行可能タスク110が存在するか確認する。存在しない場合、コントローラ102は、次のタイマ割り込みを待つ。
【0021】
(4)コントローラ102は、実行可能タスク110がレディキュー103に登録された場合、プロセッサ起動割り込みをプロセッサ101に送信する。タイマ割り込みを受信したコントローラ102は、実行可能タスク110が存在する場合、レディキュー103に実行可能タスク110を登録する。次に、コントローラ102は、プロセッサ起動割り込みをプロセッサ101に送信し、次のタイマ割り込みを待つ。
【0022】
(5)プロセッサ起動割り込みを受信したプロセッサ101は、起動状態に遷移し、レディキュー103に登録された実行可能タスク110を実行する。
図1の例では、プロセッサ101は、省電力状態から起動状態に遷移し、レディキュー103に登録された実行可能タスク110を取り出して、実行可能タスク110を実行する。
【0023】
以上説明したように、プロセッサシステム100は、実行を開始することができる状態にある実行可能タスク110を登録するレディキュー103を有する。プロセッサ101は、レディキュー103に実行可能タスク110が登録されていない場合に、実行可能タスク110を実行する起動状態より消費電力が少ない省電力状態に遷移する。コントローラ102は、タイマ割り込みを受け付けた場合にレディキュー103を更新する。ここで、レディキュー103に実行可能タスク110が登録された場合、コントローラ102は、プロセッサ101を起動状態に遷移させる。クロック信号制御回路104は、コントローラ102に所定周期でタイマ割り込みを出力する。
【0024】
これにより、コントローラ102は、レディキュー103の更新を行い、プロセッサ101はレディキュー103の更新を行わない。従って、プロセッサシステム100は、実行待ちタスクが存在する場合でも、実行可能タスク110が存在しない時に省電力状態に遷移して、システム全体の消費電力を抑えることができる。
【0025】
また、クロック信号制御回路104がプロセッサ101にタイマ割り込みを出力しないため、プロセッサ101はタイマ割り込みを処理するために所定周期で省電力状態から起動状態に遷移することはない。従って、プロセッサ101は、長時間継続的に省電力状態を維持しシステム全体の消費電力を抑えることができる。
【0026】
(プロセッサシステム100のハードウェア構成例)
図2は、プロセッサシステム100のハードウェア構成例を示すブロック図である。
図2において、プロセッサシステム100は、プロセッサ101と、コントローラ102と、クロック信号制御回路104と、クロック信号発生回路201と、メモリ202と、I/O(Input/Output)インターフェース203とを有する。また、各構成部は、バス200によってそれぞれ接続される。
【0027】
ここで、プロセッサ101とコントローラ102はプロセッサシステム100の全体の制御を司る。メモリ202は、レディキュー103を記憶することができる。また、メモリ202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがプロセッサ101とコントローラ102のワークエリアとして使用される。メモリ202に記憶されるプログラムは、プロセッサ101とコントローラ102にロードされることで、コーディングされている処理をプロセッサ101とコントローラ102に実行させる。
【0028】
クロック信号発生回路201は、所定周期のクロック信号をクロック信号制御回路104に供給する。クロック信号制御回路104は、プロセッサ101とコントローラ102にクロック信号を供給する装置である。クロック信号制御回路104は、設定値を変更することで、プロセッサ101とコントローラ102に供給するクロック信号の周波数を落とし、プロセッサ101とコントローラ102を省電力化することが可能である。また、クロック信号制御回路104は、コントローラ102に、所定周期でタイマ割り込みを送信する装置でもある。
【0029】
メモリ202は、プロセッサ101とコントローラ102の両方からアクセスできる共有メモリであることもできる。また、メモリ202は、プロセッサ101からアクセスできる部分と、コントローラ102からアクセスできる部分に分けられる分散メモリであることもできる。この場合、プロセッサシステム100は、プロセッサ101とコントローラ102を介すことなくデータ転送を行う、図示しないDMAC(Direct Memory Access Controller)を有する。DMACは、レディキュー103等のプロセッサ101とコントローラ102の両方で使用するデータを転送する。
【0030】
I/Oインターフェース203は、磁気ディスクドライブ等の入出力機器に接続される。磁気ディスクドライブは、プロセッサ101とコントローラ102の制御にしたがって磁気ディスクに対するデータのリード/ライトを制御する。磁気ディスクは、磁気ディスクドライブの制御で書き込まれたデータを記憶する。
【0031】
プロセッサシステム100は、上述した構成部のほか、例えば、SSD(Solid State Drive)などを有することにしてもよい。
【0032】
(レディキュー103の一例)
図3は、レディキュー103の一例を示す説明図である。レディキュー103は、複数の優先度のキューを有することができる。
図3の例では、レディキュー103は、優先度1キュー301、優先度2キュー302、および優先度3キュー303の3つのキューを有する。優先度は、優先度1キュー301が最も高く、次に、優先度2キュー302が高く、優先度3キュー303が最も低い。優先度1キュー301には、実行可能タスク311が登録され、優先度2キュー302には、実行可能タスクが登録されず、優先度3キュー303には、実行可能タスク321、322、323が登録される。プロセッサ101は、優先度にしたがって、実行可能タスク311を最初に実行する。
【0033】
(コントローラ102の機能的構成例)
図4は、コントローラ102の機能的構成例を示すブロック図である。
図4において、コントローラ102は、受付部401と、更新部402と、判断部403と、出力部404とを含む構成である。各機能部は、具体的には、例えば、
図2に示したメモリ202などの記憶装置に記憶されたプログラムをコントローラ102に実行させることにより、その機能を実現する。各機能部の処理結果は、例えば、
図2に示したメモリ202などの記憶装置に記憶される。また、各機能部は、例えば、ハードウェアにより実現されてもよい。具体的には、例えば、各機能部は、論理積回路であるAND、否定論理回路であるINVERTER、論理和回路であるOR、論理和否定回路であるNORや、ラッチ回路であるFF(Flip Flop)などの素子によって形成されてもよい。
【0034】
受付部401は、クロック信号制御回路104が送信したタイマ割り込みを受け付ける機能を有する。タイマ割り込みを受け付けた後、受付部401は更新部402に更新処理を実行させる。
【0035】
更新部402は、レディキュー103を更新する機能を有する。更新部402は、実行可能タスク110が存在する場合はレディキュー103に実行可能タスク110を登録する。この後、更新部402は判断部403に判断処理を実行させる。
【0036】
判断部403は、レディキュー103に実行可能タスク110が登録されているか否か判断する機能を有する。レディキュー103に実行可能タスク110が登録されている場合、判断部403は出力部404に出力処理を実行させる。登録されていない場合、判断部403は、受付部401に次のタイマ割り込みの受け付け処理を実行させる。
【0037】
出力部404は、プロセッサ起動割り込みをプロセッサ101に出力する機能を有する。プロセッサ起動割り込み出力後、出力部404は受付部401に次のタイマ割り込みの受け付け処理を実行させる。
【0038】
図5は、実施の形態1にかかるプロセッサシステム100のタスク処理手順の一例を示すフローチャートである。左側のフローチャートは、プロセッサ101によって実行され、右側のフローチャートは、コントローラ102によって実行される。
【0039】
図5のフローチャートにおいて、まず、プロセッサ101は、レディキュー103に実行可能タスク110が登録されているかを確認する(ステップS501)。実行可能タスク110が登録されていない場合(ステップS502:No)、プロセッサ101は、省電力状態に遷移する(ステップS503)。
【0040】
次に、コントローラ102は、クロック信号制御回路104から所定周期でタイマ割り込みを受信し、実行可能タスク110が存在するか確認する。コントローラ102は、実行可能タスク110が存在する場合にレディキュー103に実行可能タスク110を登録する(ステップS511)。次に、コントローラ102は、レディキュー103に実行可能タスク110が登録されているか確認する(ステップS512)。レディキュー103に実行可能タスク110が登録されていない場合(ステップS512:No)、コントローラ102は、次のタイマ割り込みの受け付けを待つ。
【0041】
レディキュー103に実行可能タスク110が登録されている場合(ステップS512:Yes)、コントローラ102は、プロセッサ起動割り込みをプロセッサ101に送信する(ステップS513)。プロセッサ起動割り込み送信後、コントローラ102は、次のタイマ割り込みの受け付けを待つ。
【0042】
コントローラ102からプロセッサ起動割り込みを受信した場合、プロセッサ101は、起動状態に遷移する(ステップS504)。この後、プロセッサ101は、ステップS501に移行する。
【0043】
また、レディキュー103に実行可能タスク110が存在する場合(ステップS502:Yes)、プロセッサ101は、レディキュー103から実行可能タスク110を取り出して、取り出したタスクを実行するディスパッチ処理を行う(ステップS505)。これにより、本フローチャートによる一連の処理は終了する。本フローチャートを実行することにより、プロセッサ101は、レディキュー103に実行可能タスク110が存在する場合、実行可能タスク110を実行し、実行可能タスク110が存在しない場合、省電力状態となる。
【0044】
以上説明したように、実施の形態1にかかるプロセッサシステム100では、プロセッサ101は、レディキュー103に実行可能タスク110が登録されていない場合に省電力状態に遷移する。また、コントローラ102は、タイマ割り込みを受け付けた場合にレディキュー103の更新を行い、レディキュー103に実行可能タスクが登録された場合にプロセッサ101を起動状態に遷移させる。これにより、実行待ちタスクが存在する場合でも、実行可能タスク110が存在しない時にプロセッサ101を省電力状態に遷移させて、システム全体の消費電力を抑えることができる。
【0045】
また、クロック信号制御回路104がプロセッサ101にタイマ割り込みを出力しないため、プロセッサ101はタイマ割り込みを処理するために所定周期で省電力状態から起動状態に遷移することはない。従って、プロセッサ101は、長時間継続的に省電力状態を維持しシステム全体の消費電力を抑えることができる。
【0046】
また、コントローラ102が、レディキュー103に実行可能タスクが登録された場合にプロセッサ101にプロセッサ起動割り込みを送信することにより、プロセッサ101を省電力状態から起動状態に遷移させることができる。
【0047】
すなわち、実施の形態1にかかるプロセッサシステム100は、プロセッサ101を長時間省電力状態にすることができ、レディキュー103の管理を消費電力量の少ないコントローラ102で行うため、システム全体の消費電力を効率的に抑えることができる。
【0048】
(実施の形態2)
図6は、実施の形態2にかかるプロセッサシステム100の一実施例を示す説明図である。
図6において、プロセッサシステム100は、タイマキュー601をさらに有する。なお、実施の形態1で説明した箇所と同一箇所については、図示および説明を省略する。
【0049】
プロセッサ101は、省電力状態で入出力割り込みの受信が可能である。入出力割り込みとは、磁気ディスクドライブ等の入出力装置が入出力処理を終了したときに、プロセッサ101に送信される割り込みである。入出力割り込みにより、入出力処理の終了を待っている実行待ちタスク111は、実行可能タスク110になることができる。
【0050】
コントローラ102は、実行する処理が存在しない場合、処理実行中の第2の起動状態(以下、単に「起動状態」と称する)よりも消費電力が少ない第2の省電力状態(以下、単に「省電力状態」と称する)に遷移することが可能である。なお、コントローラ102が実行する処理は、例えば、タイマ割り込みを受信したときに実行するレディキュー103およびタイマキュー601を更新する処理、プロセッサ101を省電力状態から起動状態に遷移させる処理である。コントローラ102は、例えば、プロセッサ101と同じ方法で省電力状態に遷移することが可能である。
【0051】
クロック信号制御回路104は、コントローラ102が省電力状態でも、起動状態と同じ所定周期で、コントローラ102にタイマ割り込みを送信する。
【0052】
タイマキュー601は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスク111を登録するOSのデータである。タイマキュー601は、メモリ202に記憶することができる。タイマキュー601は、実行待ちタスク111を所定の時間が少ない順に並べて管理する。実行待ちタスク111は、所定の時間経過後、実行可能タスク110となり、タイマキュー601から削除され、レディキュー103に登録される。また、プロセッサ101で実行中のタスクが、所定の時間待つAPI(Application Program Interface)を発行することで、実行中のタスクは、実行待ちタスク111になり、タイマキュー601に登録される。ここで、APIとは、OSが提供する機能をアプリケーションが利用するための手続きである。
【0053】
本実施例では、プロセッサ101は、レディキュー103に登録された実行可能タスク110を実行する。プロセッサ101は、レディキュー103に実行可能タスク110が登録されていない場合、省電力状態に遷移する。一方、コントローラ102は所定周期でタイマ割り込みを受信し、タイマキュー601とレディキュー103を更新する。コントローラ102は、実行可能タスク110がレディキュー103に登録された場合、プロセッサ起動割り込みをプロセッサ101に送信する。プロセッサ起動割り込みを受信したプロセッサ101は、起動状態に遷移し、レディキュー103に登録された実行可能タスク110を実行する。以下、プロセッサシステム100のタスク処理手順について詳細に説明する。
【0054】
(1)プロセッサ101は、レディキュー103に登録された実行可能タスク110を実行する。
図6の例では、プロセッサ101は、レディキュー103に登録された実行可能タスク110を取り出して、実行可能タスク110を実行する。
【0055】
(2)プロセッサ101は、レディキュー103に実行可能タスク110が登録されていない場合、省電力状態に遷移する。
図6の例では、プロセッサ101で実行中のタスクは所定の時間(10msec)待つAPIを実行する。これにより、該タスクは、タイマキュー601に実行待ちタスク111として登録される。この後、プロセッサ101は、レディキュー103に実行可能タスク110が登録されているか確認する。
図6の例では、実行可能タスク110が登録されていなく、プロセッサ101は、起動状態から省電力状態に遷移する。
【0056】
(3)コントローラ102は、所定周期でタイマ割り込みを受信し、タイマキュー601とレディキュー103を更新する。コントローラ102は、所定周期でタイマ割り込みを受信し、起動状態に遷移する。コントローラ102は、タイマキュー601に登録された実行待ちタスク111の所定の時間から所定周期を減算する。
図6の例では、コントローラ102は、1msecの所定周期でタイマ割り込みを受信する。この場合、実行待ちタスク111の所定の時間は、減算により9msecになる。コントローラ102は、実行可能タスク110が存在するか確認する。存在しない場合、コントローラ102は、省電力状態に遷移し、次のタイマ割り込みを待つ。
【0057】
(4)コントローラ102は、実行可能タスク110がレディキュー103に登録された場合、プロセッサ起動割り込みをプロセッサ101に送信する。
図6の例では、コントローラ102がタイマ割り込みを10回受信すると実行待ちタスク111の所定の時間は、残り0msecとなる。実行待ちタスク111の所定の時間が経過したため、コントローラ102は、実行待ちタスク111をタイマキュー601から削除し、実行可能タスク110として、レディキュー103に登録する。次に、コントローラ102は、プロセッサ起動割り込みをプロセッサ101に送信する。コントローラ102は、省電力状態に遷移し、次のタイマ割り込みを待つ。
【0058】
(5)プロセッサ起動割り込みを受信したプロセッサ101は、起動状態に遷移し、レディキュー103に登録された実行可能タスク110を実行する。プロセッサ101は、省電力状態から起動状態に遷移し、レディキュー103に登録された実行可能タスク110を取り出して、実行可能タスク110を実行する。
【0059】
以上説明したように、プロセッサシステム100は、実行を開始することができる状態にある実行可能タスク110を登録するレディキュー103を有する。さらに、プロセッサシステム100は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスク111を登録するタイマキュー601を有する。プロセッサ101は、レディキュー103に実行可能タスク110が登録されていない場合に、実行可能タスク110を実行する起動状態より消費電力が少ない省電力状態に遷移する。コントローラ102は、タイマ割り込みを受け付けた場合にレディキュー103とタイマキュー601を更新する。コントローラ102は、所定の時間が経過し、実行を開始することができる状態になった実行待ちタスク111を実行可能タスク110として、レディキュー103に登録する。ここで、レディキュー103に実行可能タスク110が登録された場合、コントローラ102は、プロセッサ101を起動状態に遷移させる。クロック信号制御回路104は、コントローラ102に所定周期で発生するタイマ割り込みを出力させる。
【0060】
これにより、コントローラ102はタイマキュー601の更新を行い、プロセッサ101はタイマキュー601の更新を行わない。従って、プロセッサシステム100は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスク111が存在する場合でも、実行可能タスク110が存在しない時に省電力状態に遷移して、システム全体の消費電力を抑えることができる。
【0061】
また、クロック信号制御回路104は、コントローラ102が省電力状態でも、起動状態と同じ所定周期で、コントローラ102にタイマ割り込みを送信する。このため、コントローラ102は、省電力状態でも、タイマキュー601に登録された実行待ちタスク111を所定の時間後に起動できる。従って、プロセッサシステム100は、リアルタイム性を保つことができる。
【0062】
また、コントローラ102は、レディキュー103とタイマキュー601の更新処理、およびプロセッサ101の遷移処理の後、次のタイマ割り込み受信まで省電力状態に遷移することが可能である。従って、プロセッサシステム100は、さらに省電力化することが可能となる。
【0063】
(タイマキュー601の一例)
図7は、タイマキュー601の一例を示す説明図である。タイマキュー601は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスク111を登録する。実行待ちタスク111は、所定の時間を記憶する。
図7の例では、タイマキュー601は、実行待ちタスク711,712,713を登録する。例えば、実行待ちタスク711は、所定の時間として、5msecを記憶する。実行待ちタスク711は、5msec後に実行可能タスク110となり、レディキュー103に登録される。
【0064】
図8は、実施の形態2にかかるプロセッサシステム100のタスク処理手順の一例を示すフローチャートである。左側のフローチャートは、プロセッサ101によって実行され、右側のフローチャートは、コントローラ102によって実行される。
【0065】
図8のフローチャートにおいて、まず、プロセッサ101は、レディキュー103に実行可能タスク110が登録されているかを確認する(ステップS801)。実行可能タスク110が登録されていない場合(ステップS802:No)、プロセッサ101は、省電力状態に遷移する(ステップS803)。
【0066】
次に、コントローラ102は、クロック信号制御回路104から所定周期でタイマ割り込みを受信し、起動状態に遷移する(ステップS811)。次に、コントローラ102は、タイマキュー601とレディキュー103を更新する(ステップS812)。なお、タイマキュー601とレディキュー103の更新処理手順は、
図9で詳細に説明される。次に、コントローラ102は、レディキュー103に実行可能タスク110が登録されているかを確認する(ステップS813)。レディキュー103に実行可能タスク110が登録されていない場合(ステップS813:No)、コントローラ102は、ステップS815に移行する。
【0067】
レディキュー103に実行可能タスク110が登録されている場合(ステップS813:Yes)、コントローラ102は、プロセッサ起動割り込みをプロセッサ101に送信する(ステップS814)。プロセッサ起動割り込み送信後、コントローラ102は、省電力状態に遷移し(ステップS815)、次のタイマ割り込みの受け付けを待つ。
【0068】
コントローラ102からプロセッサ起動割り込みを受信した場合、または、入出力割り込みを受信した場合、プロセッサ101は、起動状態に遷移する(ステップS804)。この後、プロセッサ101は、ステップS801に移行する。
【0069】
また、レディキュー103に実行可能タスク110が存在する場合(ステップS802:Yes)、プロセッサ101は、レディキュー103から実行可能タスク110を取り出して、取り出したタスクを実行するディスパッチ処理を行う(ステップS805)。これにより、本フローチャートによる一連の処理は終了する。本フローチャートを実行することにより、プロセッサ101は、レディキュー103に実行可能タスク110が存在する場合、実行可能タスク110を実行し、実行可能タスク110が存在しない場合、省電力状態となる。
【0070】
図9は、タイマキュー601、レディキュー103の更新処理手順の一例を示すフローチャートである。
【0071】
図9のフローチャートにおいて、まず、コントローラ102はタイマキュー601に実行待ちタスク111が登録されているか確認する(ステップS901)。登録されていない場合(ステップS901:No)、コントローラ102はタイマキュー601、レディキュー103の更新処理を終了する。登録されている場合(ステップS901:Yes)、コントローラ102は、タイマキュー601に登録された実行待ちタスク111の所定の時間から、タイマ割り込みの周期を減算する(ステップS902)。
【0072】
次に、コントローラ102は、実行待ちタスク111の所定の時間が0になったかどうか確認する(ステップS903)。0になった場合(ステップS903:Yes)、実行待ちタスク111の所定の時間は経過したことになる。このため、コントローラ102は、実行待ちタスク111をタイマキュー601から削除し、実行可能タスク110として、レディキュー103に登録する(ステップS904)。0でない場合(ステップS903:No)、コントローラ102は、ステップS905に移行する。
【0073】
コントローラ102は、タイマキュー601に次のタスクが登録されているか確認する(ステップS905)。登録されている場合(ステップS905:Yes)、コントローラ102は、ステップS902に戻り、次のタスクの所定の時間を減算する。登録されていない場合(ステップS905:No)、コントローラ102はタイマキュー601、レディキュー103の更新処理を終了する。これにより、本フローチャートによる一連の処理は終了する。本フローチャートを実行することにより、コントローラ102が、タイマキュー601、レディキュー103を更新し、実行可能タスク110をレディキュー103に登録する。
【0074】
なお、タイマキュー601の更新は、以下の手順で行うことも可能である。コントローラ102が、実行待ちタスク111がタイマキュー601に登録された後のタイマ割り込みの回数を記憶する。タイマ割り込み受信後、コントローラ102は、タイマ割り込みの回数とタイマ割り込みの周期との積と、所定の時間との比較を行う。積が大きい場合、実行待ちタスク111の所定の時間は経過したため、コントローラ102は、実行待ちタスク111をタイマキュー601から削除し、実行可能タスク110として、レディキュー103に登録する。
【0075】
以上説明したように、実施の形態2にかかるプロセッサシステム100では、コントローラ102は、タイマキュー601の更新を行い、プロセッサ101はタイマキュー601の更新を行わない。従って、プロセッサシステム100は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスク111が存在する場合でも、実行可能タスク110が存在しない時に省電力状態に遷移して、システム全体の消費電力を抑えることができる。
【0076】
また、クロック信号制御回路104は、コントローラ102が省電力状態でも、起動状態と同じ所定周期で、コントローラ102にタイマ割り込みを送信する。このため、コントローラ102は、省電力状態でも、タイマキュー601に登録された実行待ちタスク111を所定の時間後に起動できる。従って、プロセッサシステム100は、リアルタイム性を保つことができる。
【0077】
また、コントローラ102は、レディキュー103とタイマキュー601の更新処理、およびプロセッサ101の遷移処理の後、次のタイマ割り込み受信まで省電力状態に遷移することが可能である。従って、プロセッサシステム100は、さらに省電力化することが可能となる。
【0078】
また、プロセッサ101は、省電力状態で入出力割り込みの受信が可能である。これにより、プロセッサ101は、入出力処理の終了により、レディキュー103に登録された実行可能タスク110を、コントローラ102を介すことなく実行可能になる。
【0079】
すなわち、本実施例のプロセッサシステム100は、プロセッサ101を長時間省電力状態にしておくことができる。また、本実施例のプロセッサシステム100は、タイマキュー601、レディキュー103の管理を消費電力量の少ないコントローラ102で行うため、システム全体として省電力化することが可能となる。また、タイマキュー601の管理をコントローラ102で行うため、プロセッサシステム100は、リアルタイム性を保つことができる。
【0080】
これらのことから、実施の形態2にかかるプロセッサシステム100によれば、リアルタイム性を保証しながら、システム全体の省電力化を図ることができる。
【0081】
(実施の形態3)
実施の形態1および2では、プロセッサシステム100にプロセッサ101が1つ存在する場合について説明したが、実施の形態3では、プロセッサシステム100に複数のプロセッサ101が存在する場合について説明する。
【0082】
ここで、複数のプロセッサ101を有するプロセッサシステム100の形態として、プロセッサシステム100が1つのOSを実行する形態がある。本形態では、OSのレディキュー103は1つで、複数のプロセッサ101が共有する。また、レディキュー103に実行可能タスク110が登録された場合に、コントローラ102は、複数のプロセッサ101を起動状態に遷移させる。これにより、1つのプロセッサ101が実行可能タスク110を実行し、残りのプロセッサ101は、省電力状態に遷移する。
【0083】
また、複数のプロセッサ101を有するプロセッサシステム100の形態として、プロセッサシステム100が複数のOSを実行する形態がある。本形態では、OSのレディキュー103は複数で、複数のプロセッサ101がそれぞれ対応するレディキュー103を有する。また、1つのレディキュー103に実行可能タスク110が登録された場合に、コントローラ102は、実行可能タスク110が登録されたレディキュー103に対応するプロセッサ101を起動状態に遷移させる。これにより、1つのプロセッサ101が実行可能タスク110を実行し、残りのプロセッサ101は、省電力状態のままである。
【0084】
なお、複数のプロセッサ101を有するプロセッサシステム100が、複数のOSを実行する形態で、コントローラ102は、1つであることも、プロセッサ101の数に対応した複数であることもできる。コントローラ102が1つである場合、コントローラ102は、複数のレディキュー103を更新する。コントローラ102が複数である場合、コントローラ102は、対応するレディキュー103を更新する。
【0085】
以上説明したように、実施の形態3にかかるプロセッサシステム100によれば、プロセッサ101が複数存在する場合でも、リアルタイム性を保証しながら、システム全体の省電力化を図ることができる。
【0086】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0087】
(付記1)実行を開始することができる状態にある実行可能タスクを登録するレディキューを有する記憶装置と、
前記レディキューに前記実行可能タスクが登録されていない場合に、前記実行可能タスクを実行する第1の起動状態より消費電力が少ない第1の省電力状態に遷移するプロセッサと、
タイマ割り込みを受け付けた場合に前記レディキューを更新する更新処理と、前記レディキューに前記実行可能タスクが登録された場合に前記プロセッサを前記第1の起動状態に遷移させる遷移処理を実行するコントローラと、
前記コントローラに所定周期で前記タイマ割り込みを出力するクロック信号制御回路と、
を有することを特徴とするプロセッサシステム。
【0088】
(付記2)前記記憶装置は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスクを登録するタイマキューをさらに有し、
前記コントローラは、前記タイマ割り込みを受け付けた場合さらに、前記所定の時間を経過し、実行を開始することができる状態になった前記実行待ちタスクを前記実行可能タスクとして、前記レディキューに登録することを特徴とする付記1に記載のプロセッサシステム。
【0089】
(付記3)前記コントローラは、前記更新処理と前記遷移処理を実行した場合に前記更新処理と前記遷移処理を実行する第2の起動状態より消費電力が少ない第2の省電力状態に遷移し、前記タイマ割り込みを受け付けた場合に前記第2の起動状態に遷移することを特徴とする付記1または2に記載のプロセッサシステム。
【0090】
(付記4)前記コントローラは、前記プロセッサにプロセッサ間割り込みを出力することにより、前記プロセッサを前記第1の起動状態に遷移させることを特徴とする付記1〜3のいずれか一つに記載のプロセッサシステム。
【0091】
(付記5)前記プロセッサは、入出力割り込みを受け付けた場合に、前記第1の起動状態に遷移することを特徴とする付記1〜4のいずれか一つに記載のプロセッサシステム。
【0092】
(付記6)前記コントローラは、前記プロセッサが複数存在し、複数のプロセッサが前記レディキューを共有する際、前記レディキューに前記実行可能タスクが登録された場合に前記複数のプロセッサを前記第1の起動状態に遷移させることを特徴とする付記1〜5のいずれか一つに記載のプロセッサシステム。
【0093】
(付記7)前記コントローラは、前記プロセッサが複数存在し、複数のプロセッサがそれぞれ対応する前記レディキューを有する際、前記レディキューに前記実行可能タスクが登録された場合に前記実行可能タスクが登録された前記レディキューに対応するプロセッサを前記第1の起動状態に遷移させることを特徴とする付記1〜5のいずれか一つに記載のプロセッサシステム。
【0094】
(付記8)実行を開始することができる状態にある実行可能タスクを登録するレディキューを有する記憶部と、
前記レディキューに前記実行可能タスクが登録されていない場合に、前記実行可能タスクを実行する第1の起動状態より消費電力が少ない第1の省電力状態に遷移する第1の制御部と、
タイマ割り込みを受け付けた場合に前記レディキューを更新する更新処理と、前記レディキューに前記実行可能タスクが登録された場合、前記第1の制御部を前記第1の起動状態に遷移させる遷移処理を実行する第2の制御部と、
前記第2の制御部に所定周期で前記タイマ割り込みを出力するクロック信号制御部と、
を有することを特徴とする半導体集積回路。
【0095】
(付記9)前記記憶部は、所定の時間経過後に実行を開始することができる状態になる実行待ちタスクを登録するタイマキューをさらに有し、
前記第2の制御部は、前記タイマ割り込みを受け付けた場合さらに、前記所定の時間を経過し、実行を開始することができる状態になった前記実行待ちタスクを前記実行可能タスクとして、前記レディキューに登録することを特徴とする付記8に記載の半導体集積回路。
【0096】
(付記10)前記第2の制御部は、前記更新処理と前記遷移処理を実行した場合に前記更新処理と前記遷移処理を実行する第2の起動状態より消費電力が少ない第2の省電力状態に遷移し、前記タイマ割り込みを受け付けた場合に前記第2の起動状態に遷移することを特徴とする付記8または9に記載の半導体集積回路。
【0097】
(付記11)前記第2の制御部は、前記第1の制御部に割り込みを出力することにより、前記第1の制御部を前記第1の起動状態に遷移させることを特徴とする付記8〜10のいずれか一つに記載の半導体集積回路。