(57)【特許請求の範囲】
【請求項１】
１または複数の処理を実行可能な処理装置が前記処理を実行していないアイドル状態を検出する状態検出部と、
割り込み処理の種別を示す割り込み種別と、当該割り込み種別の割り込み待ちが発生した時刻とを記憶する第４記憶部と、
前記割り込み種別と、当該割り込み種別に対応する割り込み待ち時間とを記憶する第５記憶部と、
前記状態検出部で前記アイドル状態が検出されたとき、前記第４記憶部に記憶された情報と、前記第５記憶部に記憶された情報に基づいて、現在時刻から、次の前記割り込み処理が開始されるまでの時間長を示す待ち時間を算出する算出部と、
前記算出部で算出された前記待ち時間に応じて、前記処理装置の動作モードを決定する決定部と、を備える、
ことを特徴とする動作切替装置。
【請求項２】
前記決定部は、前記算出部で算出された前記待ち時間が所定の時間長を超える場合は、前記動作モードを、前記処理装置の動作が一時的に停止して節電状態となる第１モードに決定する一方、前記待ち時間が前記所定の時間長以下の場合は、前記動作モードを、前記処理装置が前記アイドル状態を維持する第２モードに決定する、
ことを特徴とする請求項１に記載の動作切替装置。
【請求項３】
前記決定部が、前記動作モードを前記第１モードに決定したときに、前記処理装置の動作を一時的に停止して節電状態にする一時停止部と、
前記割り込み処理が開始されるときに、前記一時停止部により節電状態にされた前記処理装置の動作を再開させて前記第１モードを解除する再開部と、
割り込み待ちが発生したときに、当該割り込み待ちになった前記割り込み種別と、当該割り込み待ちが発生した時刻とを前記第４記憶部に登録する一方、割り込み処理が開始されるときに、割り込み待ちが解除される前記割り込み種別と、当該割り込み種別の割り込み待ちが発生した時刻とを、前記第４記憶部から削除する登録削除部と、を備える、
ことを特徴とする請求項１または２に記載の動作切替装置。
【請求項４】
前記割り込み種別で特定される割り込み処理が開始される時刻と、当該割り込み処理の割り込み待ちが発生した時刻とから、割り込み待ち時間を求め、その求めた割り込み待ち時間を用いて、前記第５記憶部に記憶された前記割り込み待ち時間を更新する更新部をさらに備える、
ことを特徴とする請求項１乃至３のうちの何れか１項に記載の動作切替装置。
【請求項５】
前記決定部が、前記動作モードを前記第２モードに決定したときに、前記処理装置の前記アイドル状態を維持する維持部をさらに備える、
ことを特徴とする請求項１に記載の動作切替装置。
【請求項６】
前記処理装置の動作が一時的に停止して節電状態になったときから動作を再開するまでの間における前記処理装置の特性を示す特性情報に応じて、前記所定の時間長を変更する変更部をさらに備える、
ことを特徴とする請求項２に記載の動作切替装置。
【請求項７】
前記特性情報は前記処理装置の消費電力である、
ことを特徴とする請求項６に記載の動作切替装置。
【請求項８】
１または複数の処理を実行可能な処理装置が前記処理を実行していないアイドル状態を検出する手順と、
前記アイドル状態検出部で前記アイドル状態が検出されたとき、割り込み処理の種別を示す割り込み種別と、当該割り込み種別の割り込み待ちが発生した時刻とを記憶する第４記憶部に記憶された情報と、前記割り込み種別と、当該割り込み種別に対応する割り込み待ち時間とを記憶する第５記憶部に記憶された情報に基づいて、次の前記割り込み処理が開始されるまでの時間長を示す待ち時間を算出する手順と、
前記算出部で算出された前記待ち時間に応じて、前記処理装置の動作モードを決定する手順と、をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、動作切替装置およびプログラムに関する。
【背景技術】
【０００２】
従来、１または複数の処理を実行可能な処理装置（例えばマイクロプロセッサ）の消費電力を低減する技術が知られている。例えば、電源電圧や周波数を下げて消費電力を低減するＤＶＦＳ（Dynamic Voltage Frequency Scalling）と呼ばれる技術や、電力を必要としている部分にだけ電力を供給するパワーゲーティング技術などが挙げられる。
【０００３】
パワーゲーティング技術の例として、プロセッサ内を複数のクロックドメインに分割し、各クロックドメイン内で電力を供給するか否かを決定する技術がある。また、プロセッサ内の演算器単位で電力を供給するか否かを決定する細粒度パワーゲーティング技術がある。
【０００４】
また、マイクロプロセッサの消費電力を低減する別の手法として、プロセッサ全体を一時的に停止させて節電状態（スリープ状態）にする技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−６４４５６号公報
【非特許文献】
【０００６】
【非特許文献１】砂田  徹也ら著“細粒度パワーゲーティングを制御するＯＳの資源管理方式”、情報処理学会研究報告、Vol.2010-OS-114 No.8, 2010
【非特許文献２】Intel: Intel Core2 Duo Processors and Intel Core2 Extreme Processors for Platforms Based on Mobile Intel 965 Express Chipset Family Datasheet,  In  Proceedings  of  the  40th  Annual  IEEE/ACM  International  Symposium  on  Microarchitecture  Pages:  183-196  Year  of  Publication:2007
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の技術では、マイクロプロセッサなどの処理装置の消費電力を効率的に低減することは困難であるという問題がある。本発明が解決しようとする課題は、処理装置の消費電力を効率的に低減可能な動作切替装置およびプログラムを提供することである。
【課題を解決するための手段】
【０００８】
実施形態の動作切替装置は、１または複数の処理を実行可能な処理装置が前記処理を実行していないアイドル状態を検出する状態検出部と、割り込み処理の種別を示す割り込み種別と、当該割り込み種別の割り込み待ちが発生した時刻とを記憶する第４記憶部と、前記割り込み種別と、当該割り込み種別に対応する割り込み待ち時間とを記憶する第５記憶部と、前記状態検出部で前記アイドル状態が検出されたとき、前記第４記憶部に記憶された情報と、前記第５記憶部に記憶された情報に基づいて、現在時刻から、次の前記割り込み処理が開始されるまでの時間長を示す待ち時間を算出する算出部と、前記算出部で算出された前記待ち時間に応じて、前記処理装置の動作モードを決定する決定部と、を備えることを特徴とする。
【０００９】
また、実施形態のプログラムは、１または複数の処理を実行可能な処理装置が前記処理を実行していないアイドル状態を検出する手順と、前記アイドル状態検出部で前記アイドル状態が検出されたとき、割り込み処理の種別を示す割り込み種別と、当該割り込み種別の割り込み待ちが発生した時刻とを記憶する第４記憶部に記憶された情報と、前記割り込み種別と、当該割り込み種別に対応する割り込み待ち時間とを記憶する第５記憶部に記憶された情報に基づいて、次の前記割り込み処理が開始されるまでの時間長を示す待ち時間を算出する手順と、前記算出部で算出された前記待ち時間に応じて、前記処理装置の動作モードを決定する手順と、をコンピュータに実行させるためのプログラムである。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態のターゲットシステムのブロック図。
【図２】第１実施形態のプロセッサのブロック図。
【図３】動作モード記憶部に記憶される情報の一例を示す図。
【図４】第１実施形態のターゲットシステムの動作手順を示すシーケンス図。
【図５】第１実施形態のターゲットシステムの動作手順を示すシーケンス図。
【図６】第１実施形態のターゲットシステムの動作手順を示すシーケンス図。
【図７】第２実施形態のターゲットシステムのブロック図。
【図８】第２実施形態のプロセッサのブロック図。
【図９】第４記憶部に記憶される情報の一例を示す図。
【図１０】第５記憶部に記憶される情報の一例を示す図。
【図１１】第２実施形態のターゲットシステムの動作手順を示すシーケンス図。
【図１２】第２実施形態のターゲットシステムの動作手順を示すシーケンス図。
【図１３】第２実施形態のターゲットシステムの動作手順を示すシーケンス図。
【図１４】第２実施形態のターゲットシステムの動作手順を示すシーケンス図。
【図１５】第２実施形態のターゲットシステムの動作手順を示すシーケンス図。
【図１６】第３実施形態のターゲットシステムのブロック図。
【図１７】第３実施形態のターゲットシステムの動作手順を示すシーケンス図。
【図１８】第４実施形態のターゲットシステムのブロック図。
【図１９】第４実施形態のターゲットシステムの動作手順を示すシーケンス図。
【図２０】第５実施形態のターゲットシステムのブロック図。
【図２１】第４実施形態のターゲットシステムの動作手順を示すシーケンス図。
【図２２】動作モード記憶部に記憶される情報の変形例を示す図。
【図２３】変形例のターゲットシステムのブロック図。
【図２４】変形例のターゲットシステムのブロック図。
【発明を実施するための形態】
【００１１】
（第１実施形態）
図１は、本実施形態のターゲットシステムの概略構成の一例を示すブロック図である。図１に示すように、ターゲットシステムは、プロセッサ１００と、再開制御部７００と、記憶領域９００と、を備え、それぞれがバス９５０で相互に接続されている。プロセッサ１００は、１または複数の処理を実行可能な処理装置である。図１に示すように、プロセッサ１００は、ＣＰＵ２０と第３記憶部１１０とを有する。より具体的には、第３記憶部１１０は、各種のデータが記憶されるレジスタ１２０と、使用頻度の高いデータなどが記憶されるキャッシュメモリ１４０とを含む。本実施形態では、レジスタ１２０およびキャッシュメモリ１４０の各々は揮発性のメモリで構成される。
【００１２】
再開制御部７００は、後述の節電状態（スリープ状態）にされたプロセッサ１００の動作を再開させるための手段である。図１に示すように、再開制御部７００は、第２記憶部７１０と、再開時間設定部７２０と、再開部７３０とを有する。第２記憶部７１０は、後述の待ち時間を記憶する。再開時間設定部７２０は、プロセッサ１００から通知された待ち時間を第２記憶部７１０に設定する。再開部７３０は、第２記憶部７１０に記憶された待ち時間に到達したことを検出すると、プロセッサ１００の動作を再開させる。これらの詳細な動作については後述する。
【００１３】
記憶領域９００は、電源Ｏｆｆした後で再度電源ＯＮした場合に、その内部データを復元できる。これを実現する記憶領域として、例えば不揮発性メモリと呼ばれるものがあり、ＭＲＡＭ（Magnetic Random Access Memory）やＦｅＲＡＭ（Ferroelectric Random Access Memory）で構成することができる。また、不揮発性メモリに限らず、通常のＤＲＡＭ（Dynamic Random Access Memory）であっても電源ＯＮ時に内部データを復元させる機構を持つものもこれに該当する。
【００１４】
図２は、プロセッサ１００に搭載されたＣＰＵ２０が、基本ソフトウェアであるＯＳ（operating system）２００を実行することにより実現される機能の構成と、プロセッサ１００が備えるハードウェアとを示すブロック図である。ここでは、プロセッサ１００上で単一のＯＳ２００が動作し、ＯＳ２００上で１または複数のプロセス（５００−１〜５００−ｎ）が動作すると捉えることができる。また、図２においては、プロセッサ１００が備えるハードウェアとプロセッサ１００上で動作するＯＳ２００、ＯＳ２００上で動作する１または複数のプロセスをプロセッサ１００が含む表現としている。
【００１５】
図２に示すように、プロセッサ１００が備えるハードウェアには、ＣＰＵ２０と、第１記憶部２１０と、動作モード記憶部２２０とが含まれる。第１記憶部２１０は、タイマー情報を記憶する。タイマー情報には、設定時刻と、当該設定時刻に実行する処理とが含まれる。動作モード記憶部２２０は、後述の待ち時間と、設定すべき動作モードとの関係を記憶する。この詳細な内容については後述する。
【００１６】
図２に示すように、ＯＳ２００は、状態検出部２３０と、算出部２４０と、決定部２５０と、維持部２６０と、一時停止部２７０と、復帰部２８０とを有する。状態検出部２３０は、アイドル状態を検出可能である。アイドル状態とは、プロセッサ１００が何れの処理も実行していない状態を指す。
【００１７】
算出部２４０は、状態検出部２３０によってアイドル状態が検出されたとき、第１記憶部２１０に記憶されたタイマー情報を用いて、次の処理が開始されるまでの時間長を示す待ち時間を求める。より具体的には、算出部２４０は、第１記憶部２１０に記憶されたタイマー情報から、次の処理が開始される時刻を求め、その求めた時刻と現在時刻との差分の時間長を、待ち時間として求める。
【００１８】
決定部２５０は、算出部２４０から上述の待ち時間を取得し、その取得した待ち時間に応じて、プロセッサ１００の動作モードを決定する。より具体的には、決定部２５０は、算出部２４０から取得した待ち時間と、動作モード記憶部２２０に記憶されたデータとから、プロセッサ１００の動作モードを決定する。さらに詳述すると以下のとおりである。図３は、動作モード記憶部２２０に記憶される情報の一例を示す図である。図３に示すように、動作モード記憶部２２０は、待ち時間と、設定すべき動作モードとの関係を記憶する。決定部２５０は、待ち時間がｔ１を越える場合は、プロセッサ１００の動作モードを、プロセッサの動作が一時的に停止して節電状態（スリープ状態）となる第１モードに決定する。一方、待ち時間がｔ１以下の場合は、決定部２５０は、プロセッサ１００がアイドル状態を維持する第２モードに決定する。
【００１９】
維持部２６０は、プロセッサ１００の動作モードが第２モードのときに、アイドル状態を維持するためのタスク（アイドルタスクと呼ぶ）を実行する。一時停止部２７０は、決定部２５０によって、プロセッサ１００の動作モードが第１モードに決定されたときに、レジスタ１２０およびキャッシュメモリ１４０に記憶されたデータを記憶領域９００に退避させ、プロセッサ１００の動作を一時的に停止して節電状態（スリープ状態）にする。復帰部２８０は、スリープ状態にされていたプロセッサ１００が動作を再開するときに、記憶領域９００に退避されていたデータを、レジスタ１２０へ復帰させる。詳細な内容については後述する。
【００２０】
図４は、プロセッサ１００のアイドル状態が検出されてから、プロセッサ１００の動作モードが決定されるまでの手順の一例を示すシーケンス図である。図４に示すように、まず状態検出部２３０が、プロセッサ１００のアイドル状態を検出し（Ｓ４００）、決定部２５０に対して動作モードの決定を要求する（Ｓ４０１）。次に、決定部２５０は、算出部２４０に対して、待ち時間の算出を要求する（Ｓ４０２）。
【００２１】
次に、算出部２４０は、第１記憶部２１０に記憶されたタイマー情報を読み出す（ステップＳ４０３）。次に、算出部２４０は、読み出したタイマー情報から、次の処理が実行される時刻を抽出し、その抽出した時刻と現在時刻との差分の時間長を待ち時間として算出する（Ｓ４０４）。そして、算出部２４０は、その算出した待ち時間を決定部２５０へ通知する（Ｓ４０５）。
【００２２】
次に、決定部２５０は、算出部２４０から取得した待ち時間と、動作モード記憶部２２０に記憶されたデータとから、動作モードを決定する（Ｓ４０６）。
【００２３】
図５は、プロセッサ１００の動作モードが第１モードに決定されてから、プロセッサ１００がスリープ状態にされるまでの手順の一例を示すシーケンス図である。図５に示すように、決定部２５０は、プロセッサ１００の動作モードを第１モードに決定したとき（Ｓ５００）、一時停止部２７０に対して、プロセッサ１００の動作の一時停止を要求する（Ｓ５０１）。本実施形態では、決定部２５０は、プロセッサ１００の一時停止の要求と併せて、算出部２４０から取得した待ち時間を、一時停止部２７０へ通知する。
【００２４】
次に、一時停止部２７０は、決定部２５０から通知された待ち時間を再開時間設定部７２０へ通知する（Ｓ５０２）。次に、再開時間設定部７２０は、一時停止部２７０から通知された待ち時間を第２記憶部７１０に登録する（Ｓ５０３）。次に、再開時間設定部７２０は、待ち時間の登録が完了したことを一時停止部２７０へ通知する（Ｓ５０４）。
【００２５】
次に、一時停止部２７０は、キャッシュメモリ１４０に格納されたデータを記憶領域９００へフラッシュする（Ｓ５０５）。フラッシュされた（送り出された）データは記憶領域９００に書き込まれる。次に、一時停止部２７０は、レジスタ１２０に格納されたデータを記憶領域９００へ退避する（Ｓ５０６）。次に、一時停止部２７０は、プロセッサ１００の動作を一時的に停止して節電状態（スリープ状態）に移行させる（Ｓ５０７）。
【００２６】
図６は、再開時間に到達してプロセッサ１００の動作が再開されるまでの手順の一例を示すシーケンス図である。図６に示すように、再開部７３０は、再開時間に到達したことを検出したときに（Ｓ６００）、プロセッサ１００の動作を再開させて第1モードを解除する（Ｓ６０１）。
【００２７】
次に、復帰部２８０は、一時停止部２７０によって記憶領域９００に退避されていたデータを、レジスタ１２０へ復帰させる（スップＳ６０２）。そして、再開時間において実行すべき処理に移行する（Ｓ６０３）。
【００２８】
以上に説明したように、本実施形態では、タイマー情報から求められた待ち時間に応じて、プロセッサ１００の動作モードを決定する。より具体的には、待ち時間が所定の時間長（ｔ１）を超える場合は、プロセッサ１００をスリープ状態にする一方、待ち時間が所定の時間長以下の場合は、アイドル状態を維持するので、プロセッサ１００の消費電力を効率的に低減できる。
【００２９】
ここで、プロセッサ１００をスリープ状態に移行させて消費電力を低減する方法は、プロセッサ１００の消費電力を低減できる一方で、プロセッサ１００を一時的に停止させるための処理等によるオーバーヘッドが大きいうえ、当該処理（例えばレジスタの退避および復帰やキャッシュメモリのフラッシュなどの処理）やそれによる影響（キャッシュメモリのフラッシュによるメモリアクセス増加等）で発生する消費電力も無視できない。このため、プロセッサ１００がアイドル状態に移行してから、次の処理が実行されるまでの時間長（待ち時間）の値によっては、プロセッサ１００をスリープ状態に移行させるときに発生する消費電力の方が、プロセッサ１００をスリープ状態に移行させることによって低減できる消費電力よりも大きい場合がある。
【００３０】
本実施形態では、上述の待ち時間が所定の時間長を超えるときのみに、プロセッサ１００をスリープ状態に移行させるので、効率的に消費電力を低減できるという利点がある。なお、本実施形態では、プロセッサ１００のみを、プロセッサ１００の動作モードを切り替え可能な動作切替装置として捉えることができるし、プロセッサ１００と再開制御部７００とを動作切替装置として捉えることもできる。
【００３１】
（第２実施形態）
本実施形態では、プロセッサ１００がアイドル状態になってから、最も早い割り込み処理が開始されるまでの時間長を待ち時間として算出する点で第１実施形態と異なる。以下、具体的な内容を説明する。なお、第１実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【００３２】
図７は、本実施形態のターゲットシステムの概略構成の一例を示すブロック図である。図７に示すように、ターゲットシステムは、プロセッサ１００と、割り込み管理部８００と、記憶領域９００と、を備え、それぞれがバス９５０で相互に接続されている。割り込み管理部８００は、プロセッサ１００が節電状態（スリープ状態）になっている場合に、プロセッサ１００の代わりに割り込みを管理する手段である。図７に示すように、割り込み管理部８００は、割り込み管理設定部８１０と、割り込み検出部８２０と、再開部８３０とを有する。
【００３３】
割り込み管理設定部８１０は、決定部２５０によってプロセッサ１００の動作モードが第１モードに決定されたときに、割り込み検出部８２０に対して、プロセッサ１００がスリープ状態に移行することを通知する。割り込み検出部８２０は、割り込み処理の発生を検出する。再開部８３０は、割り込み検出部８２０で割り込み処理の発生が検出されたときに、スリープ状態のプロセッサ１００の動作を再開させる。割り込み検出部８２０は、割り込みを検出すると、プロセッサ１００がスリープ状態のときには、再開部８３０に対して後述の再開要求を通知する。再開部８３０は、割り込み検出部８２０から再開要求が通知されたときに、スリープ状態のプロセッサ１００の動作を再開させる。
【００３４】
図８は、プロセッサ１００に搭載されたＣＰＵ２０が、ＯＳ３００を実行することにより実現される機能の構成と、プロセッサ１００が備えるハードウェアとを示すブロック図である。図８に示すように、プロセッサ１００が備えるハードウェアには、ＣＰＵ２０と、第４記憶部３１０と、第５記憶部３２０と、動作モード記憶部２２０とが含まれる。また、図８においては、プロセッサ１００が備えるハードウェアとプロセッサ１００上で動作するＯＳ３００、ＯＳ３００上で動作する１または複数のプロセスをプロセッサ１００が含む表現としている。
【００３５】
第４記憶部３１０は、割り込み待ち情報を記憶する。割り込み待ち情報には、割り込み処理の種別を示す割り込み種別と、当該割り込み種別の割り込み待ちが発生した時刻とが含まれる。図９は、第４記憶部３１０に記憶された割り込み待ち情報の一例を示す図である。図９の例では、割り込み種別は、デバイス読み出しとキーボード入力の２種類である。また、デバイス読み出しの割り込み待ちが発生した時刻はＴ＿ａであり、キーボード入力の割り込み待ちが発生した時刻はＴ＿ｂである。
【００３６】
図８に示す第５記憶部３２０は、割り込み種別と、当該割り込み種別に対応する割り込み待ち時間とを記憶する。各割り込み種別に対応する割り込み待ち時間は、予め計算等によって求められた予測値である。図１０は、第５記憶部３２０に記憶された情報の一例を示す図である。図１０の例では、デバイス読み出しに対応する割り込み待ち時間はＴ３に設定される。また、キーボード入力に対応する割り込み待ち時間はＴ４に設定される。さらに、マウス入力に対応する割り込み待ち時間はＴ５に設定される。
【００３７】
再び図８に戻って説明を続ける。図８に示すように、ＯＳ３００は、割り込み待ち通知部３１１と、登録削除部３１３と、算出部３２５と、決定部２５０と、維持部２６０と、状態検出部２３０と、一時停止部３６５と、復帰部３７０と、割り込み処理部３８０と、割り込み待ち解除部３９０とを有する。割り込み待ち通知部３１１は、割り込み待ちが発生したときに、当該割り込み待ちとなった割り込み種別を、登録削除部３１３へ通知する。登録削除部３１３は、割り込み待ち通知部３１１から通知された割り込み種別と、当該割り込み種別の割り込み待ちが発生した時刻とを第４記憶部３１０に登録する。一方、登録削除部３１３は、割り込み処理が開始されるときに、割り込み待ちが解除された割り込み種別と、当該割り込み種別の割り込み待ちが発生した時刻とを第４記憶部３１０から削除する。詳細な内容については後述する。
【００３８】
算出部３２５は、状態検出部２３０によってアイドル状態が検出されたとき、第４記憶部３１０に記憶された割り込み待ち情報と、第５記憶部３２０に記憶された情報とに基づいて、現在時刻から、次の割り込み処理が開始されるまでの時間長を待ち時間として算出する。詳細な内容については後述する。
【００３９】
一時停止部３６５は、決定部２５０によって、プロセッサ１００の動作モードが第１モードに決定されたときに、レジスタ１２０およびキャッシュメモリ１４０に記憶されたデータを記憶領域９００に退避させ、プロセッサ１００の動作を一時的に停止して節電状態（スリープ状態）にする。復帰部３７０は、スリープ状態にされていたプロセッサ１００が動作を再開するときに、記憶領域９００に退避されていたデータを、レジスタ１２０へ復帰させる。
【００４０】
割り込み処理部３８０は、割り込み管理部８００から、割り込み処理の発生を通知する割り込み通知を受信したときに、割り込み処理を開始する。また、割り込み処理部３８０は、割り込み管理部８００からの割り込み通知を受信したときに、当該割り込み通知で特定される割り込み種別を、割り込み待ち解除部３９０へ通知する。割り込み待ち解除部３９０は、割り込み処理部３８０から通知された割り込み種別の割り込み待ちを解除する要求を、登録削除部３１３へ通知する。
【００４１】
図１１は、割り込み待ちが発生したときのプロセッサ１００の動作手順の一例を示すシーケンス図である。本実施形態では、デバイスが割り込み待ちの状態になると、当該デバイスの割り込み待ちが発生したことを示す情報が、デバイスドライバ等から割り込み待ち通知部３１１へ通知される。図１１に示すように、割り込み待ちが発生すると、割り込み待ち通知部３１１は、当該割り込み待ちとなった割り込み種別を登録削除部３１３へ通知する（ステップＳ１２００）。登録削除部３１３は、割り込み待ち通知部３１１から通知された割り込み種別を受信したときに（Ｓ１２０１）、その受信した割り込み種別と、当該割り込み種別の割り込み待ちが発生した時刻とを第４記憶部３１０に登録する（Ｓ１２０２）。
【００４２】
図１２は、割り込み処理が発生したときのプロセッサ１００の動作手順の一例を示すシーケンス図である。図１２に示すように、割り込み処理部３８０は、割り込み管理部８００からの割り込み通知を受信したときに（Ｓ１３００）、当該割り込み通知で特定される割り込み種別を、割り込み待ち解除部３９０へ送信する（Ｓ１３０１）とともに、当該割り込み通知で特定される割り込み処理を開始する（Ｓ１３０４）。
【００４３】
割り込み待ち解除部３９０は、割り込み処理部３８０から通知された割り込み種別の割り込み待ちを解除することを要求する割り込み待ち解除要求を、登録削除部３１３へ通知する（Ｓ１３０２）。登録削除部３１３は、割り込み待ち解除部３９０から割り込み待ちの解除を要求された割り込み種別と、当該割り込み種別の割り込み待ちが発生した時刻とを、第４記憶部３１０から削除する（Ｓ１３０３）。このように、第４記憶部３１０には、割り込み待ちが発生したときには、当該割り込み待ちとなった割り込み種別と、当該割り込み待ちが発生した時刻とが登録される一方、割り込み待ちが解除されたときには、割り込み待ちが解除される割り込み種別と、当該割り込み待ちが発生した時刻とが削除される。これにより、現在の割り込み待ちの状況を適切に管理することができる。
【００４４】
図１３は、プロセッサ１００のアイドル状態が検出されてから、プロセッサ１００の動作モードが決定されるまでの手順の一例を示すシーケンス図である。図１３に示すように、まず状態検出部２３０が、プロセッサ１００のアイドル状態を検出し（ステップＳ１４００）、決定部２５０に対して、動作モードの決定を要求する（Ｓ１４０１）。次に、決定部２５０は、算出部３２５に対して、次の割り込み処理が発生するまでの時間長を示す待ち時間の算出を要求する（Ｓ１４０２）。
【００４５】
次に、算出部３２５は、第４記憶部３１０に記憶された割り込み待ち情報を取得する（Ｓ１４０３）。次に、算出部３２５は、現在割り込み待ちになっている割り込み種別に対応する割り込み待ち時間を第５記憶部３２０から取得する（Ｓ１４０４）。次に、算出部３２５は、第４記憶部３１０から取得した割り込み待ち情報と、第５記憶部３２０から取得した割り込み待ち時間とから、待ち時間を算出する（Ｓ１４０５）。
【００４６】
ここで、算出部３２５による待ち時間の算出方法の具体例を説明する。例えば、現在、デバイス読み出しとキーボード入力の割り込み待ちであって、キーボード入力の割り込み待ちの発生時刻Ｔ＿ｂの方が、デバイス読み出しの割り込み待ちの発生時刻Ｔ＿ａよりも先であり、かつ、キーボード入力に対応する割り込み待ち時間Ｔ４の方が、デバイス読み出しに対応する割り込み待ち時間Ｔ３よりも短い場合を想定する。この場合、キーボード入力の方がデバイス読み出しよりも先に実行されるので、次の割り込み処理は、キーボード入力となり、上述の時刻Ｔ＿ｂから時間長Ｔ４が経過した時点で、当該キーボード入力が実行される。このようにして、次の割り込み処理であるキーボード入力が開始される時刻を特定することができるので、算出部３２５は、現在時刻から、キーボード入力が開始される時刻までの時間長を待ち時間として算出する。そして、算出部３２５は、算出した待ち時間を決定部２５０へ通知する（Ｓ１４０６）。
【００４７】
次に、決定部２５０は、算出部３２５から取得した待ち時間と、動作モード記憶部２２０に記憶されたデータとから、動作モードを決定する（Ｓ１４０７）。動作モードの決定方法は、上述の第１実施形態と同じである。
【００４８】
図１４は、プロセッサ１００の動作モードが第１モードに決定されてから、プロセッサ１００がスリープ状態にされるまでの手順の一例を示すシーケンス図である。図１４に示すように、決定部２５０は、プロセッサ１００の動作モードを第１モードに決定したとき（ステップＳ１５００）、一時停止部３６５に対して、プロセッサ１００の動作の一時停止を要求する（Ｓ１５０１）。
【００４９】
次に、一時停止部３６５は、割り込み管理設定部８１０に対して、割り込み管理を要求する（Ｓ１５０２）。割り込み管理を要求された割り込み管理設定部８１０は、割り込み検出部８２０に対して、プロセッサ１００がスリープ状態に移行することを通知する（Ｓ１５０３）。次に、割り込み管理設定部８１０は、一時停止部３６５に対して、設定完了を通知する（Ｓ１５０４）。
【００５０】
次に、一時停止部３６５は、キャッシュメモリ１４０に格納されたデータを記憶領域９００へフラッシュする（Ｓ１５０５）。フラッシュされたデータは記憶領域９００に書き込まれる。次に、一時停止部３６５は、レジスタ１２０に格納されたデータを記憶領域９００へ退避する（ステップＳ１５０６）。次に、一時停止部３６５は、プロセッサ１００をスリープ状態に移行させる（Ｓ１５０７）。
【００５１】
図１５は、割り込みが検出されてから、当該割り込み処理が開始されるまでの手順の一例を示すシーケンス図である。図１５に示すように、割り込み検出部８２０は、割り込みを検出したときに（Ｓ１６００）、プロセッサ１００がスリープ状態であるか否かを判断する（Ｓ１６０１）。例えば割り込み管理設定部８１０からプロセッサ１００がスリープ状態に移行することを通知されていた場合は、割り込み検出部８２０は、プロセッサ１００がスリープ状態であると判断し、プロセッサ１００の動作の再開を要求する再開要求を再開部８３０に対して通知する（Ｓ１６０２）。一方、割り込み検出部８２０は、プロセッサ１００がスリープ状態でないと判断した場合は、割り込み処理部３８０に対して割り込み通知を送信する（Ｓ１６０８）。
【００５２】
図１５に示すように、再開部８３０は、割り込み検出部８２０から、プロセッサ１００の再開要求が通知されたときに、プロセッサ１００の動作を再開させて第1モードを解除する（Ｓ１６０３）。そして、再開部８３０は、割り込み検出部８２０に対して、プロセッサ１００の動作を再開させたことを通知する（Ｓ１６０４）。当該通知を受けた割り込み検出部８２０は、割り込み処理部３８０に対して割り込み通知を送信する（Ｓ１６０８）。
【００５３】
プロセッサ１００の動作が再開されると、復帰部３７０は、一時停止部３６５によって記憶領域９００に退避されていたデータを、レジスタ１２０へ復帰させる（ステップＳ１６０５）。そして、復帰部３７０は、割り込み処理部３８０に対して、割り込みの実行を要求する割り込み要求を通知する（Ｓ１６０６）。当該割り込み要求が通知された割り込み処理部３８０は、割り込み検出部８２０から割り込み通知を受信したときに、当該割り込み通知で特定される割り込み処理を開始する（Ｓ１６０７）。
【００５４】
以上に説明したように、本実施形態では、プロセッサ１００がアイドル状態になってから、最も早い割り込み処理（次の割り込み処理）が開始されるまでの時間長を待ち時間として算出し、その算出した待ち時間に応じて、プロセッサ１００の動作モードを決定する。この構成であっても、上述の第１実施形態と同様に、プロセッサ１００の消費電力を効率的に低減できる。なお、上述の実施形態では、プロセッサ１００のみを動作切替装置として捉えることができるし、プロセッサ１００と割り込み管理部８００とを動作切替装置として捉えることもできる。
【００５５】
（第３実施形態）
上述の第２実施形態では、第５記憶部３２０に記憶された割り込み待ち時間の値は固定値であったが、第３実施形態では、第５記憶部３２０に記憶された割り込み待ち時間の値が可変に設定される。以下、具体的な内容を説明する。なお、第２実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【００５６】
図１６は、プロセッサ１００に搭載されたＣＰＵ２０が、ＯＳ４００を実行することにより実現される機能の構成と、プロセッサ１００が備えるハードウェアとを示すブロック図である。図１６に示すように、ＯＳ４００は、割り込み待ち通知部３１１と、更新部４１７と、登録削除部４１５と、算出部３２５と、決定部２５０と、維持部２６０と、状態検出部２３０と、一時停止部３６５と、復帰部３７０と、割り込み処理部３８０と、割り込み待ち解除部３９０とを有する。また、図１６においては、プロセッサ１００が備えるハードウェアとプロセッサ１００上で動作するＯＳ４００、ＯＳ４００上で動作する１または複数のプロセスをプロセッサ１００が含む表現としている。
【００５７】
登録削除部４１５は、上述の第２実施形態で説明した機能に加えて、割り込み待ち解除部３９０から割り込み待ち解除要求が通知されたときに、割り込み待ち解除が要求された割り込み種別の割り込み待ちが発生した時刻を、第４記憶部３１０から読み出す。そして、登録削除部４１５は、その読み出した時刻と、割り込み待ち解除が要求された割り込み種別とを更新部４１７へ通知する。
【００５８】
更新部４１７は、登録削除部４１５から通知された時刻（登録削除部４１５から通知された割り込み種別で特定される割り込みの割り込み待ちが発生した時刻）と、現在時刻（割り込み処理が開始される時刻に相当）とから、割り込み待ちが継続した時間（割り込み待ち時間）を算出する。より具体的には、更新部４１７は、登録削除部４１５から通知された時刻と、現在時刻との差分の時間長を割り込み待ち時間として算出する。そして、更新部４１７は、算出した割り込み待ち時間を用いて第５記憶部３２０に記憶された割り込み待ち時間を更新する。より具体的には、更新部４１７は、第５記憶部３２０に記憶された割り込み待ち時間のうち、登録削除部４１５から通知された割り込み種別に対応する割り込み待ち時間の値を、算出した割り込み待ち時間の値に更新する。
【００５９】
図１７は、割り込み処理部３８０が上述の割り込み通知を受信してから、更新部４１７による更新が行われるまでの手順の一例を示すシーケンス図である。図１７に示すように、割り込み処理部３８０は、割り込み管理部８００からの割り込み通知を受信したときに（Ｓ１９００）、割り込み待ちが解除される割り込み種別を、割り込み待ち解除部３９０へ通知する（Ｓ１９０１）とともに、当該割り込み通知で特定される割り込み処理を開始する（Ｓ１９０４）。
【００６０】
割り込み待ち解除部３９０は、割り込み処理部３８０から通知された割り込み種別の割り込み待ちの解除を要求する割り込み待ち解除要求を、登録削除部４１５へ通知する（Ｓ１９０２）。次に、登録削除部４１５は、割り込み待ち解除部３９０から割り込み待ちの解除を要求された割り込み種別と、当該割り込み種別の割り込み待ちが発生した時刻とを、第４記憶部３１０から削除する（Ｓ１９０３）とともに、割り込み待ちの解除が要求された割り込み種別と、当該割り込み種別の割り込み待ちが発生した時刻とを、割り込み待ち時間の算出に用いられる割り込み待ち時間算出情報として更新部４１７へ通知する（Ｓ１９０４）。
【００６１】
更新部４１７は、登録削除部４１５から通知された割り込み待ち時間情報に基づいて、割り込み待ち時間を算出する（Ｓ１９０５）。割り込み待ち時間の算出方法については上述したとおりであるので、詳細な説明は省略する。次に、更新部４１７は、算出した割り込み待ち時間を用いて、第５記憶部３２０に記憶された割り込み待ち時間を更新する（Ｓ１９０６）。更新方法は、上述したとおりであるので、詳細な説明は省略する。
【００６２】
以上に説明したように、本実施形態では、更新部４１７によって最新の割り込み待ち時間が算出されるたびに、第５記憶部３２０に記憶された割り込み待ち時間の値が更新されるので、第５記憶部３２０に記憶された割り込み待ち時間の値を、現在のターゲットシステムにとって最適な値に近づけることができる。
【００６３】
（第４実施形態）
上述の第１実施形態では、動作モード記憶部２２０に記憶された、動作モードの移行条件を示す待ち時間の値は固定値であったが、第４実施形態では、動作モード記憶部２２０に記憶された待ち時間の値が可変に設定される。以下、具体的な内容を説明する。なお、第１実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【００６４】
図１８は、プロセッサ１００に搭載されたＣＰＵ２０が、ＯＳ５００を実行することにより実現される機能の構成と、プロセッサ１００が備えるハードウェアとを示すブロック図である。図１８に示すように、ＯＳ５００は、変更部５８０と、状態検出部２３０と、算出部２４０と、決定部２５０と、維持部２６０と、一時停止部５６５と、復帰部５７０とを有する。また、図１８においては、プロセッサ１００が備えるハードウェアとプロセッサ１００上で動作するＯＳ５００、ＯＳ５００上で動作する１または複数のプロセスをプロセッサ１００が含む表現としている。
【００６５】
一時停止部５６５は、上述の第１実施形態で説明した機能に加えて、決定部２５０から、プロセッサ１００の動作の一時停止を要求されたときに、プロセッサ１００がスリープ状態に移行することを変更部５８０に通知する。復帰部５７０は、上述の第１実施形態で説明した機能に加えて、一時停止部５６５によって記憶領域９００に退避されていたデータを、レジスタ１２０へ復帰させたときに、プロセッサ１００の動作の再開を変更部５８０へ通知する。
【００６６】
変更部５８０は、プロセッサ１００がスリープ状態になったときから動作を再開するまでの間におけるプロセッサ１００の特性を示す特性情報に応じて、動作モード記憶部２２０に記憶された待ち時間の値を変更する。ここでは、特性情報としてプロセッサ１００の消費電力が採用されている。ただし、これに限らず、特性情報の種類は任意である。例えばプロセッサ１００の温度情報やキャッシュのヒット率などを特性情報として採用することもできる。要するに、特性情報は、動作モード記憶部２２０に記憶された待ち時間の変更に必要な情報であればよい。
【００６７】
図１９は、プロセッサ１００の一時停止が要求されてから、動作モード記憶部２２０に記憶された待ち時間が変更されるまでの手順の一例を示すシーケンス図である。図１９に示すように、一時停止部５６５は、決定部２５０から、プロセッサ１００の動作の一時停止要求を受信したときに（Ｓ２０００）、プロセッサ１００がスリープ状態に移行することを変更部５８０へ通知する（Ｓ２００１）。
【００６８】
次に、変更部５８０は、動作モード記憶部２２０に記憶された待ち時間の変更に必要な各種設定や特性情報の収集を行う（Ｓ２００２）。例えば変更部５８０は、特定期間におけるプロセッサ１００の消費電力を計測可能な計測装置をリセットし、その計測装置に対して、プロセッサ１００がスリープ状態に移行した時点からの消費電力を計算させる。そして、変更部５８０は、一時停止部５６５に対して、各種設定および特性情報の収集の実行が完了したことを通知する（Ｓ２００３）。一時停止部５６５は、変更部５８０からの完了通知を受けたときに、プロセッサ１００の動作を一時的に停止して節電状態（スリープ状態）に移行させる（Ｓ２００４）。
【００６９】
その後、上述したように、再開時間に到達して、再開部７３０がプロセッサ１００の動作を再開させたとき、復帰部５７０は、一時停止部５６５によって記憶領域９００に退避されていたデータを、レジスタ１２０へ復帰させる（ステップＳ２０１０）。次に、復帰部５７０は、変更部５８０に対して、プロセッサ１００の動作が再開されたことを通知する(Ｓ２０１１)。
【００７０】
変更部５８０は、復帰部５７０から、プロセッサ１００の動作の再開を通知されたときに、特性情報の収集を実行する（Ｓ２０１２）。例えば変更部５８０は、上述の計測装置から、プロセッサ１００がスリープ状態に移行した時点から現在に至るまでの消費電力を取得することができる。
【００７１】
次に、変更部５８０は、これまでに収集した特性情報に基づいて、動作モード記憶部２２０に記憶された待ち時間を変更する（Ｓ２０１３）。例えば待ち時間がｔｙ（＞ｔ１）の場合に、当該ｔｙにわたってプロセッサ１００がスリープ状態に維持されたときの消費電力Ｗ２が、待ち時間ｔ１にわたってプロセッサ１００がアイドル状態に維持されていたときの消費電力Ｗ１を大きく下回った場合には、動作モードの移行条件を示す待ち時間の値をｔ１より小さくすることが好ましい。
【００７２】
動作モード記憶部２２０に記憶された待ち時間の変更が完了すると、変更部５８０は、待ち時間の変更が完了したことを復帰部５７０へ通知する（Ｓ２０１４）。復帰部５７０は、変更部５８０から当該完了通知を受けたときに、再開時間において実行すべき処理に移行する（Ｓ２０１５）。
【００７３】
以上に説明したように、本実施形態では、プロセッサ１００がスリープ状態になったときから動作を再開するまでの間におけるプロセッサ１００の消費電力（特性情報の一例）に応じて、動作モード記憶部２２０に記憶された待ち時間の値が可変に設定されるので、動作モード記憶部２２０に記憶された待ち時間の値を、現在のターゲットシステムにとって最適な値に近づけることができる。
【００７４】
（第５実施形態）
上述の第２実施形態では、動作モード記憶部２２０に記憶された、動作モードの移行条件を示す待ち時間の値は固定値であったが、第５実施形態では、第４実施形態と同様に、動作モード記憶部２２０に記憶された待ち時間の値が可変に設定される。以下、具体的な内容を説明する。なお、第２実施形態および第４実施形態と共通する部分については、同一の符号を付して適宜に説明を省略する。
【００７５】
図２０は、プロセッサ１００に搭載されたＣＰＵ２０が、ＯＳ６００を実行することにより実現される機能の構成と、プロセッサ１００が備えるハードウェアとを示すブロック図である。図２０に示すように、ＯＳ６００は、変更部６８０と、割り込み待ち通知部３１１と、登録削除部３１３と、算出部３２５と、決定部２５０と、維持部２６０と、状態検出部２３０と、一時停止部６６５と、復帰部６７０と、割り込み処理部３８０と、割り込み待ち解除部３９０とを有する。また、図２０においては、プロセッサ１００が備えるハードウェアとプロセッサ１００上で動作するＯＳ６００、ＯＳ６００上で動作する１または複数のプロセスをプロセッサ１００が含む表現としている。
【００７６】
一時停止部６６５は、上述の第２実施形態で説明した機能に加えて、決定部２５０から、プロセッサ１００の動作の一時停止を要求されたときに、プロセッサ１００がスリープ状態に移行することを変更部６８０に通知する。復帰部６７０は、上述の第２実施形態で説明した機能に加えて、一時停止部６６５によって記憶領域９００に退避されていたデータを、レジスタ１２０へ復帰させたときに、プロセッサ１００の動作の再開を変更部６８０へ通知する。
【００７７】
変更部６８０は、プロセッサ１００がスリープ状態になったときから動作を再開するまでの間におけるプロセッサ１００の特性を示す特性情報に応じて、動作モード記憶部２２０に記憶された待ち時間の値を変更する。ここでは、第４実施形態と同様、特性情報としてプロセッサ１００の消費電力が採用されている。
【００７８】
図２１は、プロセッサ１００の一時停止が要求されてから、動作モード記憶部２２０に記憶された待ち時間が変更されるまでの手順の一例を示すシーケンス図である。図２１に示すように、一時停止部６６５は、決定部２５０から、プロセッサ１００の動作の一時停止要求を受信したときに（Ｓ２１００）、プロセッサ１００がスリープ状態に移行することを変更部６８０へ通知する（Ｓ２１０１）。
【００７９】
次に、変更部６８０は、動作モード記憶部２２０に記憶された待ち時間の変更に必要な各種設定や特性情報の収集を行う（Ｓ２１０２）。この内容は上述の第４実施形態と同じである。次に、変更部５８０は、一時停止部６６５に対して、各種設定および特性情報の収集の実行が完了したことを通知する（Ｓ２１０３）。一時停止部６６５は、変更部６８０からの完了通知を受けたときに、プロセッサ１００の動作を一時的に停止して節電状態（スリープ状態）に移行させる（Ｓ２１０４）。
【００８０】
その後、上述したように、割り込み検出部８２０が割り込みを検出して、再開部８３０がプロセッサ１００の動作を再開させたとき、復帰部６７０は、一時停止部６６５によって記憶領域９００に退避されていたデータを、レジスタ１２０へ復帰させる（ステップＳ２１１０）。次に、復帰部６７０は、変更部６８０に対して、プロセッサ１００の動作が再開されたことを通知する(Ｓ２１１１)。
【００８１】
変更部６８０は、復帰部６７０から、プロセッサ１００の動作の再開を通知されたときに、特性情報の収集を実行する（Ｓ２１１２）。この内容は上述の第４実施形態と同じである。
【００８２】
次に、変更部６８０は、これまでに収集した特性情報に基づいて、動作モード記憶部２２０に記憶された待ち時間を変更する（Ｓ２１１３）。この内容は上述の第４実施形態と同じである。動作モード記憶部２２０に記憶された待ち時間の変更が完了すると、変更部６８０は、待ち時間の変更が完了したことを復帰部６７０へ通知する（Ｓ２１１４）。復帰部６７０は、変更部６８０から当該通知を受けたときに、割り込み処理部３８０に対して割り込み要求を通知する（Ｓ２１１５）。
【００８３】
本実施形態においても、上述の第４実施形態と同様に、プロセッサ１００がスリープ状態になったときから動作を再開するまでの間におけるプロセッサ１００の消費電力に応じて、動作モード記憶部２２０に記憶された待ち時間の値が可変に設定されるので、動作モード記憶部２２０に記憶された待ち時間の値を、現在のターゲットシステムにとって最適な値に近づけることができる。
【００８４】
（変形例）
以上、本発明の実施形態を説明したが、上述の各実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。例えば上述の各実施形態では、タイマー情報や割り込み予測から待ち時間を算出しているが、本発明はこれに限定されるものではない。要するに、本発明は、プロセッサ１００のアイドル状態が検出されたとき、次の処理が開始されるまでの時間長を示す待ち時間を算出し、その算出した待ち時間に応じて動作モードを決定するものであればよい。
【００８５】
また、例えば上述の動作モード記憶部２２０に記憶される動作モードの移行条件は任意である。例えば図２２に示すように、決定部２５０は、待ち時間がｔ２以下の場合は、プロセッサ１００の動作モードを上述の第２モードに決定し、待ち時間がｔ２を超えてｔ３未満の場合は、プロセッサ１００の動作モードを、ＤＶＦＳによる周波数制御が行われる第３モードに決定し、待ち時間がｔ３以上の場合は、プロセッサ１００の動作モードを上述の第１モードに決定することもできる。図２２の例も、決定部２５０は、待ち時間が所定の時間長（ここではｔ２）を越える場合は、プロセッサ１００の動作モードを第１モードに決定する一方、待ち時間が所定の時間長以下の場合は、プロセッサ１００の動作モードを第２モードに決定するという概念に含まれる。
【００８６】
また、上述の各実施形態では、プロセッサ１００は、それぞれが揮発性のメモリで構成されるレジスタ１２０およびキャッシュメモリ１４０を有しているが、これに限らず、例えばプロセッサ１００が、キャッシュメモリ１４０を有しない構成であってもよい。この構成であれば、キャッシュメモリ１４０に記憶されたデータのフラッシュ処理を省略できる。また、レジスタ１２０やキャッシュメモリ１４０が不揮発性のメモリで構成されてもよい。この構成であれば、レジスタ１２０やキャッシュメモリ１４０に記憶されたデータの退避処理および復帰処理を省略できる。
【００８７】
さらに、上述したＯＳ（２００，３００，４００，５００，６００）の機能の少なくとも一部が、プロセッサ１００以外のハードウェアで実現される構成であってもよい。例えば図２３に示すように、第１実施形態のＯＳ２００の機能が、プロセッサ１００とは別のハードウェアであるタイマー管理部２０１で実現することもできる。
【００８８】
図２４は、タイマー管理部２０１のＣＰＵ３０が、プログラムを実行することにより実現される機能の構成と、タイマー管理部２０１が備えるハードウェアとを示すブロック図である。図２４に示すように、タイマー管理部２０１が備えるハードウェアには、ＣＰＵ３０と、第１記憶部２１０と、動作モード記憶部２２０とが含まれる。また、図２４に示すように、ＣＰＵ３０がプログラムを実行することにより実現される機能は、状態検出部２３０、算出部２４０、決定部２５０、維持部２６０、一時停止部２７０および復帰部２８０である。図２３および図２４の例では、タイマー管理部２０１を動作切替装置として捉えることができる。また、図２４においては、タイマー管理部２０１が備えるハードウェアとタイマー管理部２０１上で動作するＯＳ、ＯＳ上で動作する１または複数のプロセスをタイマー管理部２０１が含む表現としている。
【００８９】
なお、図２３および図２４の例に限らず、例えばＯＳ２００の一部の機能のみがプロセッサ１００とは別のハードウェアで実現され、他の機能はＯＳ２００上で実現されてもよい。他の実施形態（第２実施形態〜第５実施形態）についても同様である。
【符号の説明】
【００９０】
１００  プロセッサ
１１０  第３記憶部
１２０  レジスタ
１４０  キャッシュメモリ
２０１  タイマー管理部
２１０  第１記憶部
２２０  動作モード記憶部
２３０  状態検出部
２４０  算出部
２５０  決定部
２６０  維持部
２７０  一時停止部
２８０  復帰部
３１０  第４記憶部
３１１  割り込み待ち通知部
３１３  登録削除部
３２０  第５記憶部
３２５  算出部
３６５  一時停止部
３７０  復帰部
３８０  割り込み処理部
３９０  割り込み待ち解除部
４１５  登録削除部
４１７  更新部
５００  バス
５６５  一時停止部
５７０  復帰部
５８０  変更部
６６５  一時停止部
６７０  復帰部
６８０  変更部
７００  再開制御部
７１０  第２記憶部
７２０  再開時間設定部
７３０  再開部
８００  割り込み管理部
８１０  割り込み管理設定部
８２０  割り込み検出部
８３０  再開部
９００  記憶領域
【図１】
0005284401.tif 000002
【図２】
0005284401.tif 000003
【図３】
0005284401.tif 000004
【図４】
0005284401.tif 000005
【図５】
0005284401.tif 000006
【図６】
0005284401.tif 000007
【図７】
0005284401.tif 000008
【図８】
0005284401.tif 000009
【図９】
0005284401.tif 000010
【図１０】
0005284401.tif 000011
【図１１】
0005284401.tif 000012
【図１２】
0005284401.tif 000013
【図１３】
0005284401.tif 000014
【図１４】
0005284401.tif 000015
【図１５】
0005284401.tif 000016
【図１６】
0005284401.tif 000017
【図１７】
0005284401.tif 000018
【図１８】
0005284401.tif 000019
【図１９】
0005284401.tif 000020
【図２０】
0005284401.tif 000021
【図２１】
0005284401.tif 000022
【図２２】
0005284401.tif 000023
【図２３】
0005284401.tif 000024
【図２４】
0005284401.tif 000025