(57)【要約】【課題】ＰＣ等の機器に使用される省電力装置において、電力をさらに削減することを目的とする。【解決手段】アプリケーションとデバイスに関する情報である動作予測情報を用いてデバイスを制御するタイミングを示した制御指示情報を作成し、この制御指示情報に基づいてデバイスを制御することにより、デバイスが使用できる状態になってから実際に使用されるまでの電力をさらに削減することができるという効果が得られるものである。【選択図】図２
2009140123.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションとデバイスに関する情報である動作予測情報を記憶する動作予測情報記憶部と、
前記動作予測情報を参照して、アプリケーションが使用するデバイスの動作を予測することが可能かどうかを判断する動作予測判断部と、
前記動作予測判断部で前記アプリケーションが前記デバイスの予測をすることが可能であると判断された場合には、前記動作予測情報を用いて前記デバイスを制御するタイミングを示した制御指示情報を作成する制御指示情報作成部と、
前記制御指示情報に基づいて、前記デバイスに制御指示を通知するタイミング制御部と、
を備える省電力装置。
【請求項２】
前記動作予測情報は、アプリケーションを識別する識別子情報と、前記アプリケーションが使用するデバイスの時間に関する情報である時間情報とを含み、
前記動作予測判断部は、前記識別子情報を参照して、アプリケーションが使用するデバイスの動作を予測することが可能かどうかを判断し、
前記制御指示情報作成部は、前記動作予測判断部で前記アプリケーションが前記デバイスの予測をすることが可能であると判断された場合には、前記動作予測記憶部から前記デバイスの時間情報を取得し、前記デバイスの時間情報を用いて前記デバイスを制御するタイミングを示した制御指示情報を作成することを特徴とする請求項１記載の省電力装置。
【請求項３】
前記タイミング制御部は、さらに、前記制御指示情報を参照して前記デバイスが周期的だと判断した場合には、前記制御指示情報を用いて前記デバイスに周期的な制御指示を通知することを特徴とする請求項２記載の省電力装置。
【請求項４】
前記省電力装置は、さらに、状態監視部を備え、
前記状態監視部は、アプリケーションとデバイスを監視し、前記時間情報を作成することを特徴とする請求項３記載の省電力装置。
【請求項５】
前記状態監視部は、前記状態監視部が前記時間情報を作成した場合には、前記時間情報に含まれるフラグをオンにし、
前記制御指示情報作成部は、前記時間情報に含まれる前記フラグがオンであると判断した場合には、前記時間情報の一部の情報をそのまま用いて、前記制御指示情報を作成することを特徴とする請求項４記載の省電力装置。
【請求項６】
アプリケーションとデバイスに関する情報である動作予測情報を記憶する動作予測情報記憶ステップと、
前記動作予測情報を参照して、アプリケーションが使用するデバイスの動作を予測することが可能かどうかを判断する動作予測判断ステップと、
前記動作予測判断ステップで前記アプリケーションが前記デバイスの予測をすることが可能であると判断された場合には、前記動作予測情報を用いて前記デバイスを制御するタイミングを示した制御指示情報を作成する制御指示情報作成ステップと、
前記制御指示情報に基づいて、前記デバイスに制御指示を通知するタイミング制御ステップと、
を備える省電力方法。
【請求項７】
コンピュータを制御するためのコンピュータプログラムであって、
アプリケーションとデバイスに関する情報である動作予測情報を記憶する動作予測情報記憶ステップと、
前記動作予測情報を参照して、アプリケーションが使用するデバイスの動作を予測することが可能かどうかを判断する動作予測判断ステップと、
前記動作予測判断ステップで前記アプリケーションが前記デバイスの予測をすることが可能であると判断された場合には、前記動作予測情報を用いて前記デバイスを制御するタイミングを示した制御指示情報を作成する制御指示情報作成ステップと、
前記制御指示情報に基づいて、前記デバイスに制御指示を通知するタイミング制御ステップと、
を備えるコンピュータプログラム。
【請求項８】
コンピュータを制御するためのコンピュータプログラムを記録した記録媒体であって、
アプリケーションとデバイスに関する情報である動作予測情報を記憶する動作予測情報記憶ステップと、
前記動作予測情報を参照して、アプリケーションが使用するデバイスの動作を予測することが可能かどうかを判断する動作予測判断ステップと、
前記動作予測判断ステップで前記アプリケーションが前記デバイスの予測をすることが可能であると判断された場合には、前記動作予測情報を用いて前記デバイスを制御するタイミングを示した制御指示情報を作成する制御指示情報作成ステップと、
前記制御指示情報に基づいて、前記デバイスに制御指示を通知するタイミング制御ステップと、
を備えるコンピュータプログラムを記録した記録媒体。
【請求項９】
アプリケーションとデバイスに関する情報である動作予測情報を記憶する動作予測情報記憶部と、
前記動作予測情報を参照して、アプリケーションが使用するデバイスの動作を予測することが可能かどうかを判断する動作予測判断部と、
前記動作予測判断部で前記アプリケーションが前記デバイスの予測をすることが可能であると判断された場合には、前記動作予測情報を用いて前記デバイスを制御するタイミングを示した制御指示情報を作成する制御指示情報作成部と、
前記制御指示情報に基づいて、前記デバイスに制御指示を通知するタイミング制御部と、
を備える省電力集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションが使用するデバイスの省電力を実現するために用いられる省電力装置、省電力方法、省電力方法を用いたコンピュータプログラム及びそのコンピュータプログラムを記録した記録媒体、省電力集積回路に関するものである。
【背景技術】
【０００２】
従来の省電力装置は、アプリケーションがあるデバイスの使用を終了した場合に、直ちにそのデバイスを低消費電力モードに状態遷移させていた。こうすることによって、アプリケーションがデバイスを使用していないときに発生する電力を抑え、無駄な消費電力を削減していた。
【０００３】
また、低消費電力モードに状態遷移させる場合も電力を消費してしまう。もし、アプリケーションがデバイスの使用を終了してから、次にデバイスにアクセスするまでの時間間隔が短ければ、低消費電力モードに状態遷移させる方が電力を無駄に消費してしまう場合もある。
【０００４】
この場合に、従来の省電力装置は、過去にアプリケーションがデバイスにアクセスした時間情報を記録しておき、この時間情報を用いて、アプリケーションがあるデバイスの使用を終了した場合に、デバイスを低消費電力モードで作動させるか否かを決定していた。こうすることによって、低消費電力モードに状態遷移させる方が電力を無駄に消費してしまうと判断した場合には、低消費電力モードに状態遷移させないので、さらに無駄な消費電力を削減していた。
【０００５】
このような従来の技術としては、例えば特許文献１に記載されたものが知られている。
【特許文献１】特表平７−３０２１３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の省電力装置は、アプリケーションから起動指示を受けたデバイスを、直ちに使用できる状態に遷移させていた。この場合、デバイスが使用できる状態になってから、実際に使用されるまで時間がかかる場合には、その間の電力が無駄になってしまうという課題が生じる。
【０００７】
本発明は上記従来技術の課題を解決するものであり、デバイスが使用できる状態になってから、実際に使用されるまで時間がある場合でも、その間の電力を無駄にしない省電力装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明である省電力装置は、アプリケーションとデバイスに関する情報である動作予測情報を記憶する動作予測情報記憶部と、前記動作予測情報を参照して、アプリケーションが使用するデバイスの動作を予測することが可能かどうかを判断する動作予測判断部と、前記動作予測判断部で前記アプリケーションが前記デバイスの予測をすることが可能であると判断された場合には、前記動作予測情報を用いて前記デバイスを制御するタイミングを示した制御指示情報を作成する制御指示情報作成部と、前記制御指示情報に基づいて、前記デバイスに制御指示を通知するタイミング制御部と、を備えることを特徴とした。
【０００９】
本構成によって、デバイスが使用できる状態になってから実際に使用されるまで時間がある場合でも、その間の電力の消費を削減することができる。
【発明の効果】
【００１０】
本発明の省電力装置によれば、デバイスが使用できる状態になってから実際に使用されるまでの電力をさらに削減することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態における省電力装置について、図面を参照しながら説明する。
【００１２】
（実施の形態１）
図１は、本発明の実施の形態１における省電力装置を備えた計算機装置の構成を示すハードウェア構成図である。この計算機装置１００００は、それ自体としてユーザの使用に供することもできるが、様々な電気機器に組み込まれてもよい。計算機装置１００００の一例は、代表的にはＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ；パーソナルコンピュータ或いはパソコン）等の汎用のコンピュータやＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）、携帯電話機等の携帯通信端末、デジタルカメラ、携帯オーディオプレイヤーなどである。
【００１３】
計算機装置１００００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、メモリ装置１０２、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）装置１０４、読取装置１０５、表示装置１０６、入力装置１０７を備えている。これらの各構成要素は、バスライン１０３を通じて互いに接続されている。
【００１４】
省電力装置１００は、ＣＰＵ１０１とメモリ装置１０２とを備えている。なお、省電力装置１００は、ＨＤＤ１０４を備えるようにしてもよい。
【００１５】
ＣＰＵ１０１は、メモリ１０４に格納されているプログラムを読み出し実行する。なお、単一のＣＰＵで構成されても良く、複数のＣＰＵで構成されても良い。
【００１６】
メモリ装置１０２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２ａ及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２ｂを備えている。ＲＯＭ１０２ａは、ＣＰＵ１０１で実行するコンピュータプログラムを記憶している。コンピュータプログラムは、ＨＤＤ装置１０４に記憶させることもできる。ＣＰＵ１０１は、ＲＯＭ１０２ａ又はＨＤＤ装置１０４が格納するコンピュータプログラムを、必要に応じてＲＡＭ１０２ｂに書き込み、コンピュータプログラムが規定する処理を実行する。
【００１７】
ＲＡＭ１０２ｂは、ＣＰＵ１０１が処理を実行するのに伴って発生するデータを一時的に記憶する媒体としても機能する。ＲＯＭ１０２ａには、フラッシュＲＯＭのように書き込みが可能で、電源を切っても記憶内容を保持できる不揮発性のメモリや記憶媒体も含まれる。ＲＡＭ１０２ｂには、電源を切ると記憶内容が保持されない揮発性のメモリや記憶媒体が含まれる。
【００１８】
ＨＤＤ装置１０４は、内蔵するハードディスクに対して、コンピュータプログラム、或いはデータを書き込み及び読み出す装置である。
【００１９】
読取装置１０５は、記録媒体（例えばＣＤやＤＶＤやメモリカードなど）に記録されたコンピュータプログラム、或いはデータを読み取る装置である。
【００２０】
表示装置１０６は、データ、画像等を画面に表示したり、データ等を音声で表示したりする装置であり、例えばＬＣＤ（Ｌｉｇｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ；液晶表示器）、ブラウン管、スピーカである。
【００２１】
入力装置１０７は、ユーザの操作によりデータ等を入力する装置であり、例えば、ＰＤＡに配列されたキーボード、携帯電話機に配列された入力ボタン、或いは着脱自在のマウス、キーボードである。また、マイクなどの音声入力機器などであってもよい。
【００２２】
以上のように計算機装置１００００は、コンピュータとして構成されている。
【００２３】
次に、省電力装置１００の構成を説明する。
【００２４】
図２は、実施の形態１における省電力装置１００の構成を示す図である。
【００２５】
アプリケーション２００は、デバイス２０７に対する起動指示または終了指示を動作予測判断部２０２に通知するとともに、アプリケーション２００を識別できる識別子と指示対象のデバイス２０７を識別できる識別子とを動作予測判断部２０２に通知する。
【００２６】
動作予測情報記憶部２０１は、動作予測情報を記憶している。動作予測情報の一例を図５に示す。動作予測情報は、アプリケーション識別子情報と時間情報を含む。アプリケーション識別子情報とは、デバイス２０７の動作予測ができるアプリケーション２００を一意に識別できる情報である。図５のアプリケーション識別子情報５０１は、デバイス２０７の動作予測ができるアプリケーション２００が、アプリケーションαとアプリケーションβであることを示している。時間情報とは、デバイス２０７の識別子、遅延時間、周期フラグ、周期時間、起動時間を含む情報である。デバイス２０７の識別子とは、デバイス２０７を一意に特定できる情報である。遅延時間とは、デバイス２０７が、アプリケーション２００から起動指示を受けてから実際に使用されるまでの時間差を示したものである。例えば、デバイスドライバ２０６がＯｐｅｎされてから実際にReadもしくはＷｒｉｔｅされる間に多くに時間を費やしていることが予め分かっているのであれば、それまでの時間分は実際にデバイス２０７を使用していないと判断して、この時間を遅延時間とする。周期フラグとは、デバイス２０７が周期的な動作をするか否かを示すフラグである。周期時間とは、起動から終了まで周期的な動作をするデバイス２０７が、起動してから再び起動するまでの時間をいう。起動時間とは、デバイス２０７の周期的な動作のうち、起動してから終了するまでの時間をいう。
【００２７】
図５の時間情報５０２は、アプリケーションαに関する情報である。この時間情報５０２は、アプリケーションαがデバイスＡ、デバイスＢ、デバイスＣを使用することを示している。また、デバイスＡの遅延時間は１（ｍｓｅｃ）であることを示している。さらに、周期フラグがオフになっているので周期的な動作をしないことを示している。デバイスＢの場合、遅延時間は３（ｍｓｅｃ）であることを示している。そして、周期フラグがオンになっているので、周期的な動作をすることを示している。さらに、周期時間が５（ｍｓｅｃ）、起動時間が２（ｍｓｅｃ）であることも示している。デバイスＣの場合、遅延時間が２（ｍｓｅｃ）で、周期フラグがオフになっているので周期的な動作をしないことを示している。図５の時間情報５０３は、アプリケーションβに関する情報である。この時間情報５０３は、アプリケーションβがデバイスＡ、デバイスＢ、デバイスＥを使用することを示している。遅延時間や周期時間等は時間情報５０２と同様である。なお、図５では、単位を秒の単位にしているが、単位としてサイクル数としてもよい。
【００２８】
動作予測判断部２０２は、アプリケーション２００から通知を受ける際にアプリケーション２００の識別子と起動させるデバイス２０７の識別子を受け取り、受け取ったアプリケーション２００の識別子と起動させるデバイス２０７の識別子と、動作予測情報記憶部２０１に記憶されている動作予測情報とを用いて、アプリケーション２００がデバイス２０７の動作予測を行うことができるか否かを判断する。具体的には、受け取ったアプリケーション２００の識別子が動作予測情報のアプリケーション識別子情報にあるか否かを確認する。受け取ったアプリケーション２００の識別子がアプリケーション識別子情報になければ、動作予測できないと判断する。受け取ったアプリケーション２００の識別子がアプリケーション識別子情報にあれば、さらに、受け取ったデバイス２０７の識別子が時間情報にあるか否かを確認する。受け取ったデバイス２０７の識別子が時間情報にあれば、動作予測できると判断する。また、受け取ったデバイス２０７の識別子が時間情報になければ、動作予測できないと判断する。動作予測を行うことができると判断した場合には、制御指示情報作成部２０３に制御指示情報を作成する旨の指示を通知する。動作予測を行うことができないと判断した場合には、デバイス制御部２０５にデバイス２０７を制御する旨の指示を通知する。また、動作予測判断部２０２は、アプリケーション２００から終了指示を受け取った場合には、タイミング制御部２０４に対して、アプリケーション２００が使用しているデバイス２０７の終了指示を通知する。
【００２９】
制御指示情報作成部２０３は、動作予測判断部２０２から通知を受けた場合には、動作予測情報記憶部２０１に記憶されているデバイス２０７の時間情報を用いて、起動指示を受けたデバイス２０７の制御指示情報を作成する。そして、制御指示情報を作成した旨の通知をタイミング制御部２０４にする。制御指示情報は、実遅延時間を含む情報であり、その他に実周期フラグ、実周期時間、実起動時間を含めても良い。実遅延時間とは、デバイス２０７の動作周波数など実際の動作状態を考慮して、遅延時間を計算し直したものである。実周期時間、実起動時間についても同様で、デバイス２０７の実際の動作状態を考慮して、周期時間、起動時間を計算し直したものである。この計算方法については、例えば、動作予測情報記憶部２０１に記憶されている時間情報を作成したときの動作周波数と、現在の動作周波数とを用いたものが考えられる。この場合、作成したときの動作周波数が時間情報に記憶されている。また、制御指示情報作成部２０３は、現在の動作周波数を把握しておく。そして、制御指示情報作成部２０３は、時間情報を作成したときの動作周波数のもとでの遅延時間を、現在の動作周波数に合わせて計算し直す。次に、制御指示情報の一例を図６に示す。図６は、制御指示情報作成部２０３が作成したものであり、アプリケーションαが使用するデバイスＡの制御指示情報６００とアプリケーションαが使用するデバイスＢの制御指示情報６０１である。制御指示情報６００は、図５のアプリケーションαが使用するデバイスＡの時間情報５０２を用いて作成したものである。デバイスＡの遅延時間は１（ｍｓｅｃ）であるが、実遅延時間は、デバイスＡの実際の動作状態を考慮して１．２（ｍｓｅｃ）と計算し直されている。また、アプリケーションαが使用するデバイスＡは周期的ではないので、実周期時間などは計算されていない。一方、制御指示情報６０１は、図５のアプリケーションαが使用するデバイスＢの時間情報５０２を用いて作成したものである。実周期時間は３．２（ｍｓｅｃ）と計算し直されている。また、アプリケーションαが使用するデバイスＢは周期的であるので、実周期時間なども周期時間などをもとに計算し直されている。
【００３０】
タイミング制御部２０４は、制御指示情報作成部２０３から制御指示情報を受け取った場合に、その制御指示情報を用いて、デバイス制御指示をデバイス制御部２０５に通知するタイミングを制御する。また、動作予測判断部２０２からアプリケーション２００の終了指示を受け取った場合には、アプリケーション２００が使用しているデバイス２０７を終了させる終了指示をデバイス制御部２０５に対して通知する。なお、アプリケーション２００が使用しているデバイス２０７が周期的である場合に終了指示を受け取ったときは、アプリケーション２００が使用しているデバイス２０７を終了させる終了指示をデバイス制御部２０５に通知し、さらに、デバイス制御部２０５に対して周期的な起動指示を通知しないようにする。
【００３１】
デバイス制御部２０５は、動作予測判断部２０２またはタイミング制御部２０４から通知を受けた場合には、デバイスドライバ２０６を介してデバイス２０７の制御を行う。
【００３２】
デバイスドライバ２０６は、デバイスドライバ２０６ａ、２０６ｂ、２０６ｃと複数のデバイスドライバで構成されているが、単数でもよい。デバイスドライバ２０６は、デバイス制御部２０５から通知を受けると、デバイス２０７の制御をする。
【００３３】
デバイス２０７は、デバイス２０７ａ、２０７ｂ、２０７ｃと複数のデバイスで構成されているが、単数でもよい。デバイス２０７は、デバイスドライバ２０６から制御される。
【００３４】
図３、４を用いて、省電力装置１００の処理の流れを説明する。
【００３５】
図３は、省電力装置１００の処理を示したフローチャートである。
【００３６】
図４は、図３のＳ３１３の周期処理について詳細に示したフローチャートである。
【００３７】
最初に、動作予測判断部２０２は、アプリケーション２００から起動指示または終了指示を受ける（Ｓ３００）。次に、動作予測判断部２０２は、アプリケーション２００からの指示が起動指示か終了指示かを判断する（Ｓ３０１）。アプリケーション２００からの指示が起動指示だと判断した場合（Ｓ３０１：起動指示）、動作予測判断部２０２は、上述したように、指示をしたアプリケーション２００がデバイス動作予測可能か否かを判断する（Ｓ３０２）。
【００３８】
例えば、アプリケーションαからデバイスＡの起動指示があった場合（Ｓ３０１：起動指示）、動作予測判断部２０２は、指示をしたアプリケーションαがデバイスＡの動作予測をすることが可能か否かを判断する（Ｓ３０２）。具体的には、動作予測判断部２０２は、アプリケーションαから、アプリケーションαの識別子と起動させるデバイスＡの識別子を受け取る。そして、アプリケーションαの識別子は、動作予測情報記憶部２０１のアプリケーション識別子情報に記載されており、さらに、デバイスＡの識別子は時間情報に記載されているので、動作予測判断部２０２は、アプリケーションαがデバイスＡの動作予測をすることが可能であると判断する（Ｓ３０２：Ｙｅｓ）。
【００３９】
指示をしたアプリケーション２００がデバイス動作予測できると判断された場合（Ｓ３０２：Ｙｅｓ）、動作予測判断部２０２は制御指示情報作成部２０３に制御指示情報を作成する旨の指示を通知し、通知を受けた制御指示情報作成部２０３は、動作予測情報記憶部２０１に記憶されている動作予測情報の中から、アプリケーション２００から起動指示を受けたデバイス２０７の時間情報を取得する（Ｓ３０７）。
【００４０】
例えば、アプリケーションαがデバイスＢに起動指示をする場合には、制御指示情報作成部２０３は、動作予測情報記憶部２０１の動作予測情報５００の中から、デバイスＢに該当する時間情報５０２を取得することになる（Ｓ３０７）。
【００４１】
そして、制御指示情報作成部２０３は、取得したデバイス２０７の時間情報を用いて制御指示情報を作成する（Ｓ３０８）。
【００４２】
例えば、アプリケーションαがデバイスＢに起動指示をする場合には、デバイスＢの動作周波数などを考慮して、遅延時間が３（ｍｓｅｃ）であるのを、実遅延時間３．２（ｍｓｅｃ）と計算し直す。同様に、周期時間が５（ｍｓｅｃ）であるのを、実周期時間４．８（ｍｓｅｃ）と計算し直し、起動時間２（ｍｓｅｃ）であるのを、実起動時間２．３（ｍｓｅｃ）と計算し直す。
【００４３】
制御指示情報作成部２０３は制御指示情報を作成（Ｓ３０８）した後、タイミング制御部２０４に制御指示情報を作成した旨の通知をする。通知を受けたタイミング制御部２０４は、制御指示情報作成部２０３から制御指示情報を取得する（Ｓ３０９）。その後、タイミング制御部２０４は、制御指示情報の周期フラグがオンかオフかを確認する（Ｓ３１０）。
【００４４】
タイミング制御部２０４は、取得した制御指示情報の周期フラグがオフであることを確認した場合（Ｓ３１０：Ｎｏ）には、デバイス２０７の実遅延時間が経過しているか否かを判断する（Ｓ３１１）。デバイス２０７の実遅延時間が経過していないと判断した場合（Ｓ３１１：Ｎｏ）、実遅延時間が経過するまでループ処理を繰り返し、実遅延時間が経過していると判断すれば（Ｓ３１１：Ｙｅｓ）、デバイス制御部２０５にタイミング指示の通知をする（Ｓ３１２）。通知を受けたデバイス制御部２０５は、デバイスドライバ２０６に対してデバイス制御指示を行う（Ｓ３１３）。その後、デバイス制御指示（Ｓ３１３）を受けたデバイスドライバ２０６は、デバイス２０７のデバイス制御を行い（Ｓ３０５）、処理が終了する（Ｓ３０６）。
【００４５】
例えば、アプリケーションαがデバイスＡに起動指示をする場合には、図６のデバイスＡの制御指示情報６００の中の周期フラグはオフであるので、デバイスＡは周期的でないと判断される（Ｓ３１０：Ｎｏ）。そして、タイミング制御部２０４は、１．２（ｍｓｅｃ）経過後（Ｓ３１１：Ｙｅｓ）、デバイス制御部２０５にタイミング指示の通知をする（Ｓ３１２）。通知を受けたデバイス制御部２０５がデバイスドライバ２０６にデバイス制御指示を行い、デバイスドライバ２０６がデバイスＡの制御を行うことになる（Ｓ３１３）。
【００４６】
タイミング制御部２０４は、取得した制御指示情報の周期フラグがオンであることを確認した場合（Ｓ３１０：Ｙｅｓ）には、周期処理を行う（Ｓ３１４）。
【００４７】
図４は周期処理の流れを示したフローチャートである。タイミング制御部２０４が、取得した制御指示情報の周期フラグがオンであることを確認した場合（Ｓ３１０：Ｙｅｓ）に、周期処理が開始される（Ｓ４００）。タイミング制御部２０４は、制御指示情報の中から実遅延時間を取り出し、実遅延時間が経過したか否かを判断する（Ｓ４０１）。実遅延時間はまだ経過していないと判断すれば（Ｓ４０１：Ｎｏ）、ループ処理を繰り返す。実遅延時間が経過したと判断すれば（Ｓ４０１：Ｙｅｓ）、タイミング制御部２０４は、デバイス制御部２０５にタイミング指示の通知をする（Ｓ４０２）。最初のタイミング指示の内容は、起動指示である。通知を受けたデバイス制御部２０５は、デバイスドライバ２０６に対してデバイス制御指示を行う（Ｓ４０３）。その後、デバイス制御指示（Ｓ４０３）を受けたデバイスドライバ２０６は、デバイス２０７のデバイス制御を行う（Ｓ４０４）。
【００４８】
タイミング制御部２０４は、Ｓ４０２のタイミング指示の内容が起動指示か否かを判断する（Ｓ４０５）。Ｓ４０２のタイミング指示の内容が起動指示であると判断した場合（Ｓ４０５：Ｙｅｓ）、実周期時間から実起動時間を引いた値を実遅延時間に再設定する（Ｓ４０６）。そして、次のデバイス制御を終了指示に再設定する（Ｓ４０７）。その後、最初の処理に戻る。
【００４９】
また、タイミング制御部２０４がＳ４０２のタイミング指示の内容が起動指示でないと判断した場合（Ｓ４０５：Ｎｏ）、実起動時間を実遅延時間に再設定する（Ｓ４０８）。さらに、次のデバイス制御を起動指示に再設定する（Ｓ４０９）。その後、最初の処理に戻る。
【００５０】
例えば、最初に、アプリケーションαがデバイスＢを起動する場合には、周期処理が開始され（Ｓ４００）、次に、実遅延時間３．２（ｍｓｅｃ）が経過したか否かが判断される（Ｓ４０１）。３．２（ｍｓｅｃ）経過したと判断されれば（Ｓ４０１：Ｙｅｓ）、タイミング制御部２０４がデバイス制御部２０５に、デバイスＢを起動させるためのタイミング指示を通知する（Ｓ４０２）。通知を受けたデバイス制御部２０５はデバイスドライバ２０６にデバイス制御指示をする（Ｓ４０３）。デバイス制御指示を受けたデバイスドライバ２０６はデバイスＢを起動させる起動制御を行う（Ｓ４０４）。次に、タイミング制御部２０４は、Ｓ４０２のタイミング指示の内容が起動指示か否かを判断する（Ｓ４０５）。最初のタイミング指示の内容は起動指示であるので、Ｓ４０２のタイミング指示の内容は起動指示であると判断される（Ｓ４０５：Ｙｅｓ）。したがって、実周期時間４．８（ｍｓｅｃ）から実起動時間２．３（ｍｓｅｃ）を引いた値２．５（ｍｓｅｃ）が実遅延時間として再設定される（Ｓ４０６）。そして、次のデバイス制御が終了指示に再設定される（Ｓ４０７）。その後、最初の処理に戻る。そして、再び実遅延時間２．５（ｍｓｅｃ）経過したか判断される（Ｓ４０１）。２．５（ｍｓｅｃ）経過したと判断されれば（Ｓ４０１：Ｙｅｓ）、タイミング制御部２０４がデバイス制御部２０５に、デバイスＢを終了させるためのタイミング指示を通知する（Ｓ４０２）。通知を受けたデバイス制御部２０５はデバイスドライバ２０６にデバイス制御指示をする（Ｓ４０３）。デバイス制御指示の内容は終了指示として再設定されているので（Ｓ４０７）、デバイス制御指示を受けたデバイスドライバ２０６はデバイスＢを終了させる起動制御を行う（Ｓ４０４）。次に、タイミング制御部２０４は、Ｓ４０２のタイミング指示の内容が起動指示か否かを判断する（Ｓ４０５）。Ｓ４０２のタイミング指示の内容は終了指示であるので、Ｓ４０２のタイミング指示の内容は終了指示であると判断される（Ｓ４０５：Ｙｅｓ）。したがって、実起動時間２．３（ｍｓｅｃ）が実遅延時間として再設定される（Ｓ４０８）。さらに、次のデバイス制御が起動指示に再設定される（Ｓ４０９）。その後、最初の処理に戻る。
【００５１】
このような処理をすることにより、デバイス２０７が周期的な動作をする場合でも適切な処理を行うことが出来るようになる。
【００５２】
また、指示をしたアプリケーション２００がデバイス動作予測できないと判断された場合（Ｓ３０２：Ｎｏ）、動作予測判断部２０２はデバイス制御部２０５にデバイス制御指示を通知し、通知を受けたデバイス制御部２０５は、デバイスドライバ２０６に対してデバイス２０７のデバイス制御指示を行う（Ｓ３０４）。その後、デバイス制御指示（Ｓ３０４）を受けたデバイスドライバ２０６は、デバイス２０７のデバイス制御を行い（Ｓ３０５）、処理が終了する（Ｓ３０６）。
【００５３】
一方、動作予測判断部２０２がアプリケーション２００からの指示を終了指示だと判断した場合（Ｓ３０１：終了指示）、動作予測判断部２０２はタイミング制御部２０４に終了指示を通知する。通知を受けたタイミング制御部２０４はデバイス制御部２０５にデバイス終了指示を通知する（Ｓ３０３）。なお、上述したように、タイミング制御部２０４がデバイス制御部２０５に対して終了指示を通知する際に、タイミング制御部２０４が該当するデバイス２０７を周期的であると判断した場合には、デバイス制御部２０５に対して、該当するデバイス２０７を周期的に起動させる起動指示を通知しないようにする。
【００５４】
例えば、タイミング制御部２０４が動作予測判断部２０２から終了指示を受け取った場合には、制御情報の周期フラグをオフにする処理を行ってもよい。
【００５５】
タイミング制御部２０４からデバイス終了指示（Ｓ３０３）を受けたデバイス制御部２０５は、デバイスドライバ２０６に対してデバイス制御指示を行う（Ｓ３０４）。その後、デバイス制御指示（Ｓ３０４）を受けたデバイスドライバ２０６は、デバイス２０７のデバイス制御を行い（Ｓ３０５）、処理が終了する（Ｓ３０６）。
【００５６】
なお、本実施の形態によれば、動作予測判断部２０２は、アプリケーション２００から起動指示を受けたデバイス２０７毎にデバイス動作予測ができるか否かを判断しているが（Ｓ３０２）、アプリケーション２００単位でデバイス動作予測ができるか否かを判断するようにしてもよい。この場合、動作予測判断部２０２は、アプリケーション２００から通知を受ける際にアプリケーション２００の識別子を受け取り、その識別子と、動作予測情報記憶部２０１に記憶されているアプリケーション２００のアプリケーション識別子情報とを用いて、アプリケーション２００がデバイス２０７の動作予測を行うことができるか否かを判断する（Ｓ３０２）。具体的には、まず、受け取った識別子がアプリケーション識別子情報にあるか否かを確認する。そして、受け取った識別子がアプリケーション識別子情報にあれば、動作予測できると判断し、受け取った識別子がアプリケーション識別子情報になければ、動作予測できないと判断する。動作予測を行うことができないと判断した場合（Ｓ３０２：Ｎｏ）には、デバイス制御部２０５にデバイス制御指示を通知する。動作予測を行うことができると判断した場合（Ｓ３０２：Ｙｅｓ）には、制御指示情報作成部２０３に制御指示情報を作成する旨の指示を通知する。アプリケーション２００がデバイス２０７の動作予測を行うことができると判断した場合（Ｓ３０２：Ｙｅｓ）、制御指示情報作成部２０３は、アプリケーション２００が使用する複数のデバイス２０７の制御指示情報をまとめて取得し（Ｓ３０７）、作成する（Ｓ３０８）。また、図６では、単位を秒の単位にしているが、単位としてサイクル数としてもよい。
【００５７】
本実施の形態によれば、上記の構成により、デバイス２０７が使用できる状態になってから実際に使用されるまでの電力をさらに削減することができるという効果を奏する。また、遅延時間等を、デバイス２０７の実際の動作状態を考慮して計算し直した実遅延時間を用いることによって、実際の動作環境に合わせた処理が可能となるので、さらに電力を削減することができるという効果を奏する。
【００５８】
さらに、本実施の形態によれば、上記の構成により、周期的な動作をするデバイス２０７が予めわかっている場合に、そのデバイス２０７に対して周期的な処理を行うことによって、デバイス２０７が常に起動している状態を回避することができる。こうすることによって、さらに電力を削減できるという効果を奏する。また、周期時間等を、デバイス２０７の実際の動作状態を考慮して計算し直した実周期時間等を用いることによって、実際の動作環境に合わせた処理が可能となるので、さらに電力を削減することができるという効果を奏する。
【００５９】
（実施の形態２）
以下、本発明の実施の形態２における省電力装置１００について、図面を参照しながら説明する。
【００６０】
図７は、実施の形態２における省電力装置１００の構成を示す図である。
【００６１】
実施の形態２において、実施の形態１と同様の部分については同一符号を付し、その詳細な説明は省略する。実施の形態２と実施の形態１との相違点は、状態監視部７００、動作予測情報記憶部７０１、制御指示情報作成部７０２である。
【００６２】
状態監視部７００は、アプリケーション２００から起動指示があれば、アプリケーション２００とデバイス２０７を監視する。そして、監視した結果を動作予測情報のアプリケーション識別子情報と時間情報に追加していく。追加項目は、主に実遅延時間や実周期時間などである。状態監視部７００が動作予測情報の時間情報に実遅延時間や実周期時間などを追加した場合には、追加したか否かを示す追加フラグをオンにする。追加していない場合は、追加フラグはオフになっている。また、そもそもデバイス２０７の時間情報が存在しない場合には、監視したデバイス２０７の時間情報を追加する。さらに、アプリケーション２００がデバイス２０７の動作予測をすることが可能であり、監視したアプリケーションの識別子がアプリケーション識別子情報にない場合には、監視したアプリケーションの識別子を追加する。
【００６３】
動作予測情報記憶部７０１は、アプリケーション識別子情報と時間情報を含む動作予測情報を記憶している。なお、状態監視部７００が動作予測情報を追加作成した場合には、追加作成された動作予測情報を記憶している。
【００６４】
制御指示情報作成部７０２は、動作予測判断部２０２から通知を受けた場合には、動作予測情報記憶部７０１にある時間情報を取得する。そして、時間情報の中の該当するデバイス２０７の追加フラグの状態を考慮して、制御指示情報を作成する。具体的な作成方法については後述する。そして、制御指示情報作成部７０２は、制御指示情報を作成した後、タイミング制御部２０４に制御指示情報を作成した旨の通知をする。
【００６５】
図８、図９を用いて、実施の形態１と異なる部分についての省電力装置１００の処理を説明する。
【００６６】
図８は、実施の形態２における省電力装置１００の処理を示したフローチャートである。
【００６７】
図９は、図８のＳ８００のデバイス状態監視処理について詳細に示したフローチャートである。
【００６８】
まず、図９のデバイス状態監視処理について説明する。
【００６９】
アプリケーション２００が起動されると、状態監視部７００が起動され、状態監視部７００による状態監視処理が開始される（Ｓ９００）。次に、状態監視部７００はアプリケーション２００とデバイス２０７を監視し、アプリケーション２００がデバイス２０７の起動指示をしてから実際にデバイス２０７が使用されるまでの実遅延時間やデバイス２０７の実際の周波数時間である実周期時間を含む時間情報の計測をする（Ｓ９０１）。その後、この計測結果をもとに時間情報を追加作成する（Ｓ９０２）。追加作成する際に、アプリケーション識別子情報に監視していたアプリケーション２００の識別子があるか否か、時間情報にデバイス２０７の識別子があるか否かも判断する。アプリケーション識別子情報に監視していたアプリケーション２００の識別子がないと判断した場合には、アプリケーション識別子情報に監視していたアプリケーション２００の識別子を追加する。また、時間情報に監視していたデバイス２０７の識別子がないと判断した場合には、時間情報に監視していたデバイス２０７の時間情報を新たに作成し、監視した実遅延時間や実周期時間を追加する。そして、追加作成した時間情報を動作予測情報記憶部７０１に記憶する（Ｓ９０３）。そしてこの処理を繰り返す（Ｓ９００）。
【００７０】
次に図８の省電力装置１００の処理の流れについて説明する。
【００７１】
図８のＳ８００は図３のＳ３００に該当し、Ｓ８０１はＳ３０１に、Ｓ８０２はＳ３０２に、Ｓ８０３はＳ３０３に、Ｓ８０４はＳ３０４に、Ｓ８０５はＳ３０５に、Ｓ８０６はＳ３０６に、Ｓ８０７はＳ３０７に、Ｓ８０８はＳ３０８に、Ｓ８１０はＳ３１０に、Ｓ８１１はＳ３１１に、Ｓ８１２はＳ３１２に、Ｓ８１３はＳ３１３に、Ｓ８１４はＳ３１４に該当する。したがって、この部分に関する説明は省略する。
【００７２】
図８と図３とで異なる箇所はＳ８０９であるので、この箇所に関する説明を以下にする。
【００７３】
起動するデバイス２０７の時間情報を取得（Ｓ８０８）した制御指示情報作成部７０２は、取得した時間情報の中の該当するデバイス２０７の追加フラグをチェックする。追加フラグがオンの場合、動作予測情報記憶部７０１の時間情報には既に実遅延時間や実周期時間などが存在しているので、これをそのまま用いて制御指示情報を作成する（Ｓ８０９）。したがって、制御指示情報作成部７０２は実遅延時間や実周期時間などを計算し直す必要がない。また、状態監視部７００が制御指示情報の一部しか監視できなかった場合には、制御指示情報作成部７０２は、状態監視部７００が監視した一部の情報を用いて、制御指示情報を作成する（Ｓ８０９）。追加フラグがオフの場合は、動作周波数などを考慮して制御指示情報を作成する（Ｓ８０９）。
【００７４】
かかる構成によれば、アプリケーション２００とデバイス２０７を監視できるようになるので、動作周波数などを考慮して遅延時間を計算し直す必要がなくなり、さらに電力を削減することができるという効果を有する。さらに、使用するデバイス２０７の動作が予測できないアプリケーション２００が新たに追加された場合であっても、状態監視部７００によって、アプリケーション２００とアプリケーション２００が使用するデバイス２０７の動作するタイミングがわかるようになるので、動作が予測できるようになり、電力を削減することが可能となる。
【００７５】
（実施の形態３）
以下、本発明の実施の形態３における省電力装置１００について、図面を参照しながら説明する。
【００７６】
図１０は、実施の形態３における省電力装置１００の構成を示す図である。
【００７７】
実施の形態３において、実施の形態１と同様の部分については同一符号を付し、その詳細な説明は省略する。実施の形態３と実施の形態１との相違点は、動作予測情報記憶部１０００と制御指示情報作成部１００１である。
【００７８】
動作予測情報記憶部１０００は、アプリケーション識別子情報と時間情報を含む動作予測情報に加えて、使用頻度情報を記憶している。図１１は使用頻度情報の一例を示している。使用頻度情報１１００はアプリケーション２００毎にデバイス２０７の使用頻度を示した情報である。複数のアプリケーション２００が同じデバイス２０７を使用した場合には、そのデバイス２０７の使用頻度によってそれぞれのデバイス２０７の周波数を変更させる。例えば、使用頻度の割合に応じてデバイス２０７の周波数を割り振るような構成にしてもよい。
【００７９】
制御指示情報作成部１００１は、動作予測情報記憶部１０００から時間情報と同時に使用頻度情報も取得する。そして、この使用頻度情報を用いて、制御指示情報を作成する。
【００８０】
かかる構成によれば、複数のアプリケーション２００が動作した場合でも、デバイス２０７の周波数をアプリケーション２００の使用頻度に合わせることにより、効率的に処理できるので、さらに、電力を削減することができる。
【００８１】
なお、この使用頻度情報は、予め動作予測情報記憶部１０００に記憶されていてもよいし、状態監視部７００によって、動的に生成されるようにしてもよい。
【００８２】
また、本実施の形態における省電力装置は、ＣＰＵ１０１及びメモリ装置１０２を単一の半導体基板に作り込んだＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）等の集積回路として構成されてもよい。
【産業上の利用可能性】
【００８３】
本発明の省電力装置、省電力方法、省電力方法を用いたコンピュータプログラム及びそのコンピュータプログラムを記録した記録媒体、省電力集積回路は、アプリケーションの動作開始時から実際にデバイスが使用されるまでの電力をさらに削減することができるという効果を有し、ＰＣ等の汎用のコンピュータやＰＤＡ、携帯電話機等の携帯通信端末、デジタルカメラ、携帯オーディオプレイヤー等に用いられるものとして有用である。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施の形態１における計算機装置の図
【図２】本発明の実施の形態１における省電力装置の図
【図３】本発明の実施の形態１における省電力処理のフローチャート
【図４】本発明の実施の形態１における周期処理のフローチャート
【図５】本発明の実施の形態１における動作予測情報を示した図
【図６】本発明の実施の形態１における制御指示情報を示した図
【図７】本発明の実施の形態２における省電力装置の図
【図８】本発明の実施の形態２における省電力処理のフローチャート
【図９】本発明の実施の形態２における状態監視処理のフローチャート
【図１０】本発明の実施の形態３における省電力装置の図
【図１１】本発明の実施の形態３における使用頻度情報を示した図
【符号の説明】
【００８５】
１００    省電力装置
１０１    ＣＰＵ
１０２    メモリ装置
１０２ａ    ＲＯＭ
１０２ｂ    ＲＡＭ
１０３    バス
１０４    ＨＤＤ
１０５    読取装置
１０６    表示装置
１０７    入力装置
２００    アプリケーション
２０１    動作予測情報記憶部
２０２    動作予測判断部
２０３    制御指示情報作成部
２０４    タイミング制御部
２０５    デバイス制御部
２０６    デバイスドライバ
２０７    デバイス
５００    動作予測情報
５０１    アプリケーション識別子情報
５０２，５０３    時間情報
６００，６０１    制御指示情報
７００    状態監視部
７０１    動作予測情報記憶部
７０２    制御指示情報作成部
１０００    動作予測情報記憶部
１００１    制御指示情報作成部
１１００    使用頻度情報
１００００    計算機装置
【図１】
2009140123.tif 000003
【図２】
2009140123.tif 000004
【図３】
2009140123.tif 000005
【図４】
2009140123.tif 000006
【図５】
2009140123.tif 000007
【図６】
2009140123.tif 000008
【図７】
2009140123.tif 000009
【図８】
2009140123.tif 000010
【図９】
2009140123.tif 000011
【図１０】
2009140123.tif 000012
【図１１】
2009140123.tif 000013