(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
(第1の実施形態)
図1は、第1実施形態の情報処理装置100の機能ブロックの構成の一例を示す図である。本実施形態の情報処理装置100は、第1制御部10、第1デバイスコントローラ14、第1デバイス15、第2制御部20、第2デバイスコントローラ26、第2デバイス27、PMIC39、クロック制御モジュール31を備える。第1制御部10は、第1リクエスト処理部11、通知部12、アクティブ状態フラグ管理部16及び第1実行部13を備える。第2制御部20は、第2リクエスト処理部21、記憶部22、タイマ設定部23、通知受信部24、第2実行部25、を備える。
【0010】
第1デバイス15及び第2デバイス27は、情報処理装置100を構成するデバイスの一つである。第1デバイス15及び第2デバイス27は、任意のデバイスでよい。
【0011】
第1リクエスト処理部11は、第1デバイス15の処理開始の指示を含むリクエスト(以下「第1リクエスト」という)を第1制御部の外部から受信する。第1リクエストを送信するのは、例えば情報処理装置100で実行しているアプリケーションやオペレーティング・システム、デバイスドライバなどである。第1リクエスト処理部11が第1リクエストを受信すると、第1リクエスト処理部11は通知部12に通知する。通知部12は、第1リクエスト処理部11から通知を受けると、第1リクエストを受信したことを第2制御部20(通知受信部24)に通知する。また、第1リクエスト処理部11が第1リクエストを受信すると第1実行部13に第1リクエストを送る。第1実行部13は、第1リクエストを受けとり、第1デバイスコントローラ14に処理開始の指示を送り、第1デバイスコントローラ14が第1リクエストで指示された処理を第1デバイス15に開始させる。アクティブ状態フラグ管理部16は、第1デバイスがアクティブ状態であるか否かを示すフラグを管理するものであり、第1実行部13が第1デバイスコントローラ14に処理開始の指示を送る際に、第1実行部13からアクティブ状態フラグ管理部16に実行開始の通知を行い、それを受けてアクティブ状態フラグ管理部16は、フラグをONにしてアクティブ状態であることを示す。また、第1デバイス15は処理を終了したらアクティブ状態フラグ管理部16に処理終了の通知を送り、アクティブ状態フラグ管理部16は、フラグをOFFにする。
【0012】
第2リクエスト処理部21は、第2デバイス27の処理開始の指示を含むリクエスト(以下「第2リクエスト」という)を第2制御部20の外部から受信する。第2リクエストを送信するのは、例えば情報処理装置100で実行しているアプリケーションやオペレーティング・システム、デバイスドライバなどである。
【0013】
図2は第1実施形態の第2リクエスト処理部21の機能ブロックの構成の一例を示す図である。第2リクエスト処理部21は、受信部28及び判定部29を備える。受信部28は、第2リクエストを受信する。
【0014】
第2リクエスト処理部21の受信部28は、第2リクエスト処理部21の判定部29に対し、第1デバイス15がアクティブ状態であるか否かを問い合わせる。第1デバイス15がアクティブ状態であるとはデバイスが処理を実行中である場合のことであり、例えば、第1デバイス15にクロックが送られている場合、第1デバイス15もしくは第1デバイスコントローラ14のステータスレジスタがONを示している場合、PMIC39が第1デバイス15に電力を供給している場合、第1制御部10のアクティブ状態フラグ管理部16のフラグがアクティブ状態を示している場合などのことである。判定部29は受信部28から第1デバイス15がアクティブ状態であるか否かの問い合わせを受信すると、第1デバイス15がアクティブ状態であるかを判定する。判定方法は例えば、第1デバイス15にクロックが送られているかを調べるために判定部がクロック制御モジュール31内の第1デバイスにクロックを供給しているかを示すレジスタを参照する、または、第1デバイス15もしくは第1デバイスコントローラ14にあるアクティブ状態かを示すステータスレジスタを参照する、または、PMIC39内にある第1デバイス15に電力を供給しているかを示すレジスタを参照する、または、第1制御部10のアクティブ状態フラグ管理部16で管理しているアクティブ状態かを示すフラグを参照するかのいずれかの方法、もしくは、複数の方法にて第1デバイス15がアクティブ状態かどうかを判定する。
【0015】
判定部29にて第1デバイス15がアクティブ状態ではないと判定された場合は、第2リクエスト処理部21は記憶部22へ第2リクエストを送り、記憶部22は第2リクエストを第2リクエストを識別するIDと対応付けて記憶する。記憶部22は、複数の第2リクエストを時系列順に記憶できるように内部にキューを持つ。記憶部22は第2リクエストを記憶する際に、タイマ設定部23に対し、一定時間以上記憶部に第2リクエストが記憶されて実行されないことを防ぐため、記憶部22が記憶している第2リクエストを取り出して第2実行部に送る処理を実行するように第2リクエストを識別するIDとともにタイマを設定する。タイマを設定した時間が経過すると、タイマ設定部23は、第2リクエストを識別するIDを記憶部22に送り、記憶部22は、IDと対応する第2リクエストが記憶部に残っている場合は、その第2リクエストを第2実行部に送る。また、第2リクエスト処理部21の受信部28は、判定部29にて第1デバイス15がアクティブ状態と判定した場合には、第2リクエストを第2実行部25に送る。第2実行部25は、第2リクエストを受けとり、第2デバイスコントローラ26に処理開始の指示を送り、指示を受け取った第2デバイスコントローラ26が第2リクエストで指示された処理を第2デバイス27に開始させる。
【0016】
通知受信部24は、第1リクエストを受信したことを示す通知を通知部12から受信する。受信通知部24は通知を受信すると、記憶部22にそれを通知する。記憶部22は、その通知を受けると、記憶していた第2リクエストを第2実行部に送り、第2実行部25は、第2リクエストを受けとり、第2デバイスコントローラ26に処理開始の指示を送り、指示を受け取った第2デバイスコントローラ26が第2リクエストで指示された処理を第2デバイス27に開始させる。
【0017】
第1制御部10及び第2制御部20は、プログラムが実行されることによって実現される。第1制御部10と第2制御部20のプログラムは、それぞれオペレーティング・システムとデバイスドライバの一部、または、オペレーティング・システムとアプリケーションの一部、デバイスドライバとアプリケーションの一部、オペレーティング・システムとデバイスドライバとアプリケーションの一部のプログラムで実現できる。第1制御部10及び第2制御部20により、第1デバイス15がアクティブ状態である場合に、第2デバイス27の動作を開始させる制御を行うことができる。
【0018】
図3は、第1実施形態の情報処理装置100のハードウェア構成の一例を示す図である。本実施形態の情報処理装置100は、SoC30(System on a chip)、電力量計測装置38、PMIC39(Power Management Integrated Circuit)、メインメモリ40、表示デバイス41、ストレージデバイス42、ネットワークデバイス43、蓄電装置44及び電源装置45を備える。なお、
図3では図示されていないが、情報処理装置100は、更にキーボードやタッチパネル等の様々なデバイスを備えていてもよい。
【0019】
SoC30は、クロック制御モジュール31、プロセッサコア32、バス33、メモリコントローラ34、表示デバイスコントローラ35、ストレージコントローラ36及びネットワークコントローラ37を備える。なお、メモリコントローラ34、表示デバイスコントローラ35、ストレージコントローラ36及びネットワークコントローラ37は、SoC30の外部にあってもよい。
【0020】
ここで、本実施形態の情報処理装置100の第1デバイス15及び第2デバイス27の具体例について説明する。例えば、本実施形態の情報処理装置100が、ネットワークデバイス43が無線LANデバイス、ストレージデバイス42がNANDフラッシュ、表示デバイス35が液晶ディスプレイの場合は、第1デバイス14を無線LANとし、第2デバイス27を、NANDフラッシュ42とすることができる。デバイスがアクティブ状態になるタイミングを合わせるには、基準となる第1デバイス15を決めて、基準となるデバイスがアクティブ状態である期間に、他のデバイスを第2デバイス27とし、アクティブ状態になるタイミングを合わせる方法が望ましい。平均的なアクティブ状態の時間を比較すると、無線LANデバイスは、NANDフラッシュと比べてアクティブ状態になる時間が長い。また、NANDフラッシュを用いる処理のうち、NANDフラッシュの書き込み処理は、メインメモリ40上のページキャッシュの書き込み処理であるため、多少タイミングが遅れても問題になることが無い。また、メインメモリ40を不揮発性にした場合、電力が失われてもメインメモリ40上のページキャッシュを失うことが無いため、書き込みが遅れることによる問題発生の可能性は更に小さくなる。
【0021】
したがって、本実施形態の情報処理装置100において、ネットワークデバイス43が無線LAN、ストレージデバイス42がNANDフラッシュ、表示デバイス41が液晶ディスプレイで、液晶ディスプレイの表示を消しており液晶ディスプレイをオフにしている場合は、無線LANデバイスを第1デバイス15、NANDフラッシュを第2デバイス27とし、無線LANのアクティブ状態にNANDフラッシュのアクティブ状態を合わせ込むことが望ましい。ただし、基準となるデバイスは無線LANデバイスに限定するものではない。
【0022】
一方、例えば、情報処理装置100において、表示デバイス41にEPDを用いるような電子書籍端末の場合、EPDは無線LANやNANDフラッシュとくらべてアクティブ状態が長い。そのため、EPDを基準となる第1デバイス15とし、第2デバイス27に無線LANまたは、NANDフラッシュにするのが望ましい。または、EPDを第1デバイス15にし、無線LANとNANDフラッシュの両方を第2デバイス27にしてもよい。このとき、NANDフラッシュに加えて、無線LANデバイスの処理がEPDのアクティブ状態に合わせ込まれるため、処理開始が遅延されるが、元々ネットワーク処理は遅延することが前提であるため、問題になりにくい。なお、第2デバイス15が複数の場合の説明は、第4実施形態の情報処理装置100として説明する。
【0023】
また、表示デバイス41がEPDではないデバイスであり、ネットワークが近接ノードのみで構成されており、ネットワーク処理のレスポンスが非常に早いネットワークでの使用が想定される場合、無線LANデバイスとNANDフラッシュのアクティブ状態に大きな差が無い場合がある。その場合は、無線LANデバイスとNANDフラッシュの両方を第1デバイス15とし、他のデバイスを第2デバイス27にすることもできる。なお、第1デバイス15が複数の場合の説明は、第3実施形態の情報処理装置100として説明する。
【0024】
次に、本実施形態の情報処理装置100を構成するデバイスを、第1デバイス15又は第2デバイス27として動作させるための方法の一例について説明する。例えば、第1デバイス15を表示デバイス41とし、第2デバイス27を、ストレージデバイス42とする方法について説明する。表示デバイス41を基準となるデバイス(第1デバイス15)にして、表示デバイス41がアクティブ状態であるときに、ストレージデバイス42の書き込み処理のタイミングを合わせたい場合は、例えば、表示デバイス41のデバイスドライバに第1制御部10を組込む。つまり、従来の表示デバイス41のドライバは、第1リクエスト処理部11でリクエストを受信し、第1実行部13で第1リクエストにより指示される動作の実行を開始していたが、本実施形態の情報処理装置100では、第1リクエスト処理部11と第1実行部13との間に通知部12を組み込む。一方、ストレージデバイス42のデバイスドライバには、第2制御部20を組み込む。つまり、従来のストレージデバイス42のデバイスドライバの第2リクエスト処理部21と第2実行部25に加えて、新たに、記憶部22、タイマ設定部23及び通知受信部24を組み込む。また、第2リクエスト処理部21には、判定部29を組み込む。
【0025】
また、別の例として、メインメモリ40上のページキャッシュをストレージデバイス42に書き込む処理の実行を、表示デバイス41のアクティブ状態に合わせるには、例えば、第2制御部20をオペレーティングシステムに組み込むことで実現できる。つまり、オペレーティングシステム内でページキャッシュの書き込み要求を受信し、ストレージデバイス42にページキャッシュの書き込みを行なっている箇所に第2制御部20を組み込む。
【0026】
次に、本実施形態の情報処理装置100のハードウェア構成の各ハードウェアの詳細について説明する。
【0027】
クロック制御モジュール31は、プロセッサコア32、バス33、メモリコントローラ34、表示デバイスコントローラ35、ストレージコントローラ36及びネットワークコントローラ37にクロックを供給する。メインメモリ40、表示デバイス41、ストレージデバイス42及びネットワークデバイス43にもクロックを供給する場合は、各コントローラ(メモリコントローラ34、表示デバイスコントローラ35、ストレージコントローラ36及びネットワークコントローラ37)から、又はクロック制御モジュール31から直接、クロックを供給する。
【0028】
クロック制御モジュール31は、メインメモリ40、表示デバイス41、ストレージデバイス42及びネットワークデバイス43等のデバイスがアクティブ状態である場合に、アクティブ状態のデバイス、メインメモリ40及びバス33等にクロックを供給する。クロック制御モジュール31は、情報処理装置100内に動作中(アクティブ状態)のデバイスが1つでもある場合、クロックの供給を停止しない。本実施形態の情報処理装置100(又はSoC30)は、複数の省電力モードを備えていてもよいが、最も消費電力が抑えられるアイドル状態では、クロック制御モジュール31を停止できるものとする。したがって、アクティブ状態のデバイスが1つでもあると、情報処理装置100(又はSoC30)は動作状態をアイドル状態にすることができない。
【0029】
プロセッサコア32は、オペレーティングシステムやアプリケーションなどのプログラムを実行して情報処理装置100の動作を制御する。バス33は、情報処理装置100のデバイス間でデータを送受信するための伝送路である。
【0030】
PMIC39は、情報処理装置100を構成している各デバイスに電力を供給するパワーレール(電源ライン)を複数備える。PMIC39は、パワーレール(電源ライン)毎に異なる電圧を供給することができる。PMIC39は、蓄電装置44から供給される電力を、各デバイスが必要とする電圧に変換してから、それぞれのデバイスに供給する。PMIC39は、電力供給のパワーレール(電源ライン)毎に電圧を変更したり、電力供給を停止したりすることができる。デバイスの数だけのパワーレール(電源ライン)を提供できない等の場合は、1つのパワーレール(電源ライン)を複数のデバイスで共有してもよい。例えば、本実施形態の情報処理装置100では、ストレージコントローラ42及びネットワークデバイス43に電力を供給するためのパワーレール(電源ライン)が共有されている。しかしながら、パワーレール(電源ライン)を複数のデバイスで共有する場合は、アクティブ状態のデバイスのみに電力を供給すれば十分であるにも関わらず、アクティブ状態のデバイス以外のデバイスにも同時に電力を供給せざるを得ず、余計に電力消費を発生してしまうことがある。
【0031】
メインメモリ40は、揮発性のメモリでも不揮発性のメモリでもよい。例えば、メインメモリ40が揮発性である場合は、DRAM(Dynamic Random Access Memory)や、SRAM(Static Random Access Memory)である。また、メインメモリ40が不揮発性である場合は、MRAM(Magnetoresistive Random Access Memory)、PCM(Phase Change Memory)、ReRAM(Resistance Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、NOR型フラッシュメモリ等である。
【0032】
メインメモリ40は、メモリコントローラ34により制御されている。メインメモリ40の動作に必要なクロックは、メモリコントローラ34から供給する。メインメモリ40は、プロセッサコア32や、他のデバイスのコントローラがアクセスしていない間は、電力消費の少ないセルフリフレッシュモードなどの省電力モードに遷移することで消費電力を抑えることができる。メインメモリ40が不揮発性のメモリである場合は、電力が無くてもデータを保持できる。そのため、この場合は、PMIC39がメインメモリ40への電力供給を遮断することで、更に電力消費を抑えることができる。
【0033】
また、表示デバイス41、ストレージデバイス42及びネットワークデバイス43は、アクティブ状態のときに、メインメモリ40にアクセスすることが多い。そのため、本実施形態の情報処理装置100は、表示デバイス41、ストレージデバイス42及びネットワークデバイス43のうち、いずれか1つのデバイスがアクティブ状態であるときは、メインメモリ40にもアクセスできるようにしておく。メインメモリ40は、セルフリフレッシュモードなどの省電力モードを提供していたり、不揮発性メモリの場合は電力を落としたりすることで消費電力を抑えることができる。しかしながら、セルフリフレッシュモード中や、電力を落としている間は、外部からのメモリアクセスができない。そのため、メインメモリ40にアクセスが発生するアクティブ状態のデバイスがあると、メモリコントローラ34は、メインメモリ40をセルフリフレッシュモードにしたり、電力供給を停止したりするなどしてメインメモリの電力消費を抑えることができない。
【0034】
表示デバイス41は、例えば、液晶ディスプレイ、メモリ液晶ディスプレイ、EPD(Electrophoretic Display)などで実現できる。液晶ディスプレイは、表示中はデバイスとコントローラに電力とクロックを供給しなければならない。メモリ液晶ディスプレイは表示中はデバイスに電力を供給しなければならないが、表示内容を書き換えなければコントローラのクロックを止めることができる。EPDは、書き換え時にクロックや電力が必要だが、書き換え時以外は、電力を落としても描画内容を保持できる。一般に、EPDは、液晶ディスプレイなどと比べて書き換えに必要な時間が長いため、描画速度よりも消費電力削減が優先される電子リーダなどで用いられることが多い。EPDは、表示デバイスコントローラ35により制御される。EPDが描画処理を行うアクティブ状態である場合は、表示デバイスコントローラ35は、EPDにクロックを供給する。また、EPDのアクティブ状態では、メインメモリ40もアクティブ状態になる。これは、表示デバイスコントローラ35が、メインメモリ40上に展開された描画内容のデータをEPDに転送したり、描画内容のデータを元にEPDの電圧制御のためのパラメータを、メインメモリ40を使用して計算したりするためである。
【0035】
ストレージデバイス42は、2次ストレージとして使用する。ストレージデバイス42は、例えば、NANDフラッシュ、NORフラッシュ、SDカードなどの各種メモリカード、ハードディスクなどで実現できる。本実施形態の情報処理装置100では、ストレージデバイス42がNANDフラッシュであることを前提として説明する。なお、ストレージデバイス42は、NANDフラッシュに限られず、任意のストレージデバイスでよい。NANDフラッシュは、ファイルやプログラムなどのデータを記憶する。NANDフラッシュは、ストレージコントローラ36により制御される。ストレージコントローラ36は、NANDフラッシュが読み書き処理を行うアクティブ状態のときにクロックを供給する。NANDフラッシュ上のデータを読み込む場合は、ストレージコントローラ36が、当該データをメインメモリ40上にページキャッシュとして展開する。アプリケーションやOSなどがデータを書き換える場合は、メインメモリ40上のページキャッシュを変更する。当該ページキャッシュは、定期的にストレージコントローラ36によってNANDフラッシュに書き込まれる。そのため、NANDフラッシュへのデータの読み書きが発生する場合は、メインメモリ40もアクティブ状態になる。
【0036】
ネットワークデバイス43は、例えば、有線LANデバイス、802.11a/802.11b/802.11gなどの伝送規格の無線LANデバイス、Bluetooth(登録商標)などで実現できる。本実施形態の情報処理装置100では、ネットワークデバイス43が無線LANデバイスであることを前提として説明する。なお、ネットワークデバイス43は、無線LANデバイスに限られず、任意のネットワークデバイスでよい。無線LANデバイスは、ネットワークコントローラ37によって制御される。ネットワークコントローラ37は、無線LANデバイスがネットワーク処理を行うアクティブ状態のときにクロックを供給する。無線LANデバイスがアクティブ状態のときは、メインメモリ40を使用して送受信用のデータを読み書きするため、メインメモリ40もアクティブ状態になる。
【0037】
電源装置45は、例えば、ACアダプタなどのAC電源や、エナジーハーベスト装置などの各種発電装置で実現できる。エナジーハーベスト装置は、光エネルギーを利用した太陽電池や、熱エネルギーの利用などの環境発電技術を利用した装置である。本実施形態の情報処理装置100では、電源装置45をエナジーハーベスト装置として説明するが、電源装置45は、エナジーハーベスト装置に限られない。電源装置45としてエナジーハーベスト装置を使用する場合、電源装置45の発電する電力のみでは、情報処理装置100の動作のピーク時の消費電力を得ることができないので、消費電力が少ない間に余剰電力を蓄電装置44に蓄電しておき、ピーク時の電力をまかなう。蓄電装置44は、電気2重層キャパシタやリチウムイオンキャパシタなどの大容量キャパシタ、又はリチウムイオン電池などのバッテリなどである。なお、蓄電装置44は、大容量キャパシタ及びバッテリの両方を組み合わせた装置でもよい。
【0038】
電力量計測装置38は、蓄電装置44が蓄積している電力量を計測する装置である。例えば、蓄電装置44が電気二重層キャパシタやリチウムイオンキャパシタなどのキャパシタである場合は、その出力電圧を計測することで蓄積している電力量を知ることができる。そのため、ADコンバータを電力量計測装置38として用いることができる。また、蓄電装置44がリチウムイオン電池などのバッテリである場合は、クーロンカウンタを電力量計測装置38として用いることができる。つまり、バッテリの充放電量をクーロンカウンタで計測することで蓄積している電力量を知ることができる。
【0039】
次に、本実施形態の情報処理装置100の第1制御部10及び第2制御部20によるデバイス制御方法について説明する。
【0040】
図4は、第1実施形態の情報処理装置100の第1制御部10の動作の一例を説明するためのフローチャートである。第1リクエスト処理部11は、第1デバイス15の処理開始の指示を含む第1リクエストを受信する(ステップS1)。通知部12は、第1リクエストを受信したことを第2制御部20に通知する(ステップS2)。第1実行部13は、第1リクエスト(第1リクエストにより指示される動作)の実行を第1デバイスが開始できるように第1デバイスコントローラに指示し、第1デバイスコントローラは第1デバイスに処理の実行を開始させる(ステップS3)。
【0041】
図5は、第1実施形態の情報処理装置100の第2制御部20の動作の一例を説明するためのフローチャートである。第2リクエスト処理部21は、第2デバイス27の処理開始の指示を含む第2リクエストを受信する(ステップS11)。第2リクエスト処理部21(判定部29)は、第1デバイス15が動作中(アクティブ状態)であるか否かを調べる(ステップS12)。第2リクエスト処理部21(判定部29)は、第1デバイス15が動作中(アクティブ状態)であるか否かを判定する(ステップS13)。第1デバイス15がアクティブ状態でない場合(ステップS13、No)は、記憶部22が、第2リクエストを記憶する(ステップS14)。第1デバイス15がアクティブ状態である場合(ステップS13、Yes)は、第2実行部25が、第2リクエスト(第2リクエストにより指示される動作)の実行を第2デバイスが開始できるように第2デバイスコントローラに指示し、第2デバイスコントローラは第2デバイスに処理の実行を開始させる(ステップS15)。
【0042】
図6は、第1実施形態の情報処理装置100の通知受信部24が通知を受信したときの動作の一例を説明するためのフローチャートである。通知受信部24は、第1制御部10の通知部12から第1リクエストを受信したことを示す通知を受信する(ステップS21)。第2実行部25は、記憶部22に第2リクエストが記憶されているか否かを確認する(ステップS22)。第2リクエストが記憶されている場合(ステップS22、Yes)は、記憶部22に記憶されていた第2リクエストの実行を開始する(ステップS23)。第2リクエストが記憶されていない場合(ステップS22、No)は、処理を終了する。
【0043】
なお、
図6のフローチャートの処理は、第1デバイス15に第1リクエストが来なかった場合は実行されない。このため、タイマ設定部23が設定したタイマの満了を契機としても、
図6のフローチャートの処理(ステップS22及びステップS23)を行うようにする。一般に、オペレーティングシステムには、一定時間経過した後に、又は周期的に、指定された処理を実行させるタイマ機能が提供されている。そのため、オペレーティングシステムのタイマ機能を用いてもタイマ割込み処理を実現できる。例えば、タイマ設定部23が、第2リクエストを記憶する際にタイマをセットしたり、オペレーティングシステムの起動時に、一定の間隔で周期的に
図6のフローチャートの処理(ステップS22及びステップS23)を起動するようにしたりすることでタイマ割込み処理を実現できる。
【0044】
次に、本実施形態の情報処理装置100のデバイス制御方法による効果について説明する。
【0045】
図7は、第1実施形態の情報処理装置100のデバイス制御方法の一例(EPD及びNANDフラッシュ)を示す図である。本実施形態の情報処理装置100(
図7の具体例の場合)は、第1デバイス15(EPD)がアクティブ状態である場合に、第2デバイス27(NANDフラッシュ)の動作を開始させる。
図8は、第1実施形態の情報処理装置100のデバイス制御方法の一例(EPD及び無線LANデバイス)を示す図である。本実施形態の情報処理装置100(
図8の具体例の場合)は、第1デバイス15(EPD)がアクティブ状態である場合に、第2デバイス27(無線LANデバイス)の動作を開始させる。これにより、従来の情報処理装置100よりもアイドル状態を長くすることができ、情報処理装置100を省電力化することができる。すなわち、SoC30を消費電力の少ないアイドル状態にしたり、メインメモリ40を省電力モードや電源オフ状態にしたりすることができる時間を長くすることができる。また、PMIC39がデバイスに電力を供給する時間を短くすることができる。
【0046】
(第2実施形態)
次に、第2実施形態の情報処理装置100について説明する。第1実施形態の情報処理装置100は、第2デバイス27が第2リクエストを受信してから、第2リクエストで指定された処理の実行開始のタイミングをずらすことで省電力化を行っている。しかしながら、リクエストの受信と実行開始のタイミングに時間差が発生するため、電力に余裕がある場合は、時間差が無いほうが望ましい。本実施形態の情報処理装置100は、第2制御部20に電力量監視部17を備えることで、蓄積している電力量が閾値以下の場合にのみ、デバイスのアクティブ状態のタイミングを合わせる。
【0047】
図9は、第2実施形態の情報処理装置100の機能ブロックの一例を示す図である。本実施形態の情報処理装置100は、第1制御部10、第1デバイスコントローラ14、第1デバイス15、第2制御部20、第2デバイスコントローラ26第2デバイス27、PMIC39、クロック制御モジュール31、電力量計測装置38を備える。第1制御部10は、第1リクエスト処理部11、通知部12及び第1実行部13を備える。第2制御部20は、第2リクエスト処理部21、記憶部22、タイマ設定部23、第1デバイス判定部24、通知受信部24、第2実行部25及び電力量監視部17を備える。電力量監視部17以外の機能ブロックについては、第1実施形態の情報処理装置100と同じであるため説明を省略する。
【0048】
電力量監視部17は、情報処置装置100の電力量を監視する。電力量監視部17は,電力量を調べるには、電力量監視部17に電力量を問い合わせる。電力量監視部17は、電力量計測装置38から電力量を取得する。
図10は、第2実施形態の情報処理装置100の第2制御部20の動作の一例を説明するためのフローチャートである。第2リクエスト処理部21は、第2デバイス27の処理開始の指示を含む第2リクエストを受信する(ステップS31)。電力量監視部17は、情報処置装置100の電力量が閾値(所定の値)以上であるか否かを判定する(ステップS32)。電力量が閾値以上である場合(ステップS32、Yes)は、ステップS36に進む。電力量が閾値より小さい場合(ステップS32、No)は、第2リクエスト処理部21(判定部29)が、第1デバイス15が動作中(アクティブ状態)であるか否かを調べる(ステップS33)。第2リクエスト処理部21(判定部29)は、第1デバイス15が動作中(アクティブ状態)であるか否かを判定する(ステップS34)。第1デバイス15がアクティブ状態でない場合(ステップS34、No)は、記憶部22が、第2リクエストを記憶する(ステップS35)。第1デバイス15がアクティブ状態である場合(ステップS34、Yes)は、第2実行部25が、第2リクエスト(第2リクエストにより指示される動作)の実行を第2デバイスが開始できるように第2デバイスコントローラに指示し、第2デバイスコントローラは第2デバイスに処理の実行を開始させる(ステップS36)。
【0049】
本実施形態の情報処理装置100によれば、情報処置装置100に蓄積している電力量が閾値以下の場合にのみ、第2デバイス27のアクティブ状態のタイミングを、第1デバイス15のアクティブ状態に合わせる。これにより、情報処理装置100の省電力化を図りつつ、電力量に余裕がある場合は、リクエストの受信と実行開始のタイミングの差を小さくすることができる。
【0050】
(第3実施形態)
次に、第3実施形態の情報処理装置100について説明する。第1実施形態の情報処理装置100は、第1デバイス15および第1デバイスコントローラが1つだった。しかしながら、情報処理装置100は、第1デバイス15を複数(任意の個数)備えていてもよい。本実施形態の情報処理装置100は、第1デバイス15を複数備えている場合である。
【0051】
図11は、第3実施形態の情報処理装置100の機能ブロックの一例を示す図である。本実施形態の情報処理装置100は、第1制御部10、第1デバイスコントローラ14、第1デバイス15、第2制御部20、第2デバイスコントローラ26、第2デバイス27、PMIC39、クロック制御モジュール31を備える。本実施形態の情報処理装置100は、第1制御部10、第1デバイスコントローラ14、及び第1デバイス15を、それぞれ3つ備えている場合の例である。第1制御部10は、第1リクエスト処理部11、通知部12及び第1実行部13を備える。第2制御部20は、第2リクエスト処理部21、記憶部22、タイマ設定部23、第1デバイス判定部24、通知受信部24及び第2実行部25を備える。本実施形態の情報処理装置100は、第1デバイス判定部24を3つ備え、それぞれが、3つの第1デバイス15のうちの1つのアクティブ状態を判定している。
【0052】
本実施形態の情報処理装置100の具体例について説明する。例えば、EPDと無線LANデバイスを第1デバイス15(基準となるデバイス)にする場合について説明する。この場合、たとえば、第1制御部10を、基準のデバイス(EPD及び無線LANデバイス)のデバイスドライバに組み込む。また、第2制御部20を、基準となるデバイスのアクティブ状態に、動作の開始を合わせたい第2デバイス27のデバイスドライバに組み込む。これにより、第2デバイス27は、複数の第1デバイス15のうちアクティブ状態の第1デバイス15が1つでもあれば、第2リクエストにより指示される動作の実行を開始することができる。
【0053】
次に、本実施形態の情報処理装置100のデバイス制御方法による効果について説明する。第1デバイス15が2つであり、第2デバイス27が1つである場合について、具体例に基づいて説明する。
図12は、第3実施形態の情報処理装置100のデバイス制御方法の一例を示す図である。本実施形態の情報処理装置100(
図12の具体例の場合)は、第1デバイス15(NANDフラッシュ及び無線LANデバイス)のいずれか1つがアクティブ状態である場合に、第2デバイス27(処理の短いデバイス)の動作を開始させる。これにより、従来の情報処理装置100よりもアイドル状態を長くすることができ、情報処理装置100を省電力化することができる。すなわち、SoC30を消費電力の少ないアイドル状態にしたり、メインメモリ40を省電力モードや電源オフ状態にしたりすることができる時間を長くすることができる。また、PMIC39がデバイスに電力を供給する時間を短くすることができる。
【0054】
(第4実施形態)
次に、第4実施形態の情報処理装置100について説明する。情報処理装置100は、第2デバイス27を複数(任意の個数)備えていてもよい。本実施形態の情報処理装置100は、第2デバイス27を複数備えている場合である。
【0055】
本実施形態の情報処理装置100では、第1デバイス15をEPDとし、第2デバイス27を、NANDフラッシュ及び無線LANデバイスとする。この理由について説明する。デバイスがアクティブ状態になるタイミングを合わせるには、基準となるデバイスを決めて、基準となるデバイスがアクティブ状態である時間に、他のデバイスがアクティブ状態になるタイミングを合わせる方法が望ましい。デバイスの平均的なアクティブ状態の時間を比較すると、EPDは、NANDフラッシュや無線LANデバイスと比べてアクティブ状態になる時間が長い。また、NANDフラッシュを用いる処理のうち、NANDフラッシュの書き込み処理は、メインメモリ40上のページキャッシュの書き込み処理であるため、多少タイミングが遅れても問題になることが無い。また、メインメモリ40を不揮発性にした場合、電力が失われてもメインメモリ40上のページキャッシュを失うことが無いため、書き込みが遅れることによる問題発生の可能性は更に小さくなる。また、無線LANデバイスについても、元々ネットワーク処理は遅延することが前提であるため、無線LANデバイスの処理を遅延させても問題にはなりにくい。
【0056】
したがって、本実施形態の情報処理装置100では、EPDをアクティブ状態のタイミングを合わせる基準とすることが望ましい。ただし、基準となるデバイスはEPDに限定されない。例えば、表示デバイス41としてEPDではなく、液晶ディスプレイを用いるパーソナルコンピュータのような情報処理装置100では、無線LANデバイスやNANDフラッシュのアクティブ状態が、他のデバイスと比べて相対的に大きくなることが多い。このような場合は、基準となるデバイスを無線LANデバイスやNANDフラッシュにしてもよい。
【0057】
図13は、第4実施形態の情報処理装置100の機能ブロックの一例を示す図である。本実施形態の情報処理装置100は、第1制御部10、第1デバイス15、第2制御部20及び第2デバイス27を備える。本実施形態の情報処理装置100は、第2制御部20及び第2デバイス27を、それぞれ3つ備えている場合の例である。第1制御部10は、第1リクエスト処理部11、通知部12及び第1実行部13を備える。本実施形態の通知部12は、3つの第2制御部20(通知受信部24)に、第1リクエストを受信したことを通知する。
図13には、通知部12が第2制御部と一対一に対応するように図示されているが、一つの通知部12が複数の第2制御部に受信を通知するような形態でもよい。第2制御部20は、第2リクエスト処理部21、記憶部22、タイマ設定部23、第1デバイス判定部24、通知受信部24及び第2実行部25を備える。
【0058】
次に、本実施形態の情報処理装置100のデバイス制御方法による効果について、第1デバイス15が1つであり、第2デバイス27が2つである場合について、具体例に基づいて説明する。
図14は、従来の情報処理装置のデバイス制御方法の一例を示す図である。
図14では、それぞれのデバイスが、独立にアクティブ状態になっているため、アクティブ状態である時間の重なりがあまり無い。そのため、すべてのデバイスがアクティブ状態でない期間が短いため、情報処理装置100がアイドル状態になる期間が短い。
【0059】
図15は、第4実施形態の情報処理装置100のデバイス制御方法の一例を示す図である。本実施形態の情報処理装置100は、第1デバイス15(EPD)がアクティブ状態である場合に、第2デバイス27(NANDフラッシュ及び無線LANデバイス)の動作を開始させる。これにより、従来の情報処理装置100よりもアイドル状態を長くすることができ、情報処理装置100を省電力化することができる。すなわち、SoC30を消費電力の少ないアイドル状態にしたり、メインメモリ40を省電力モードや電源オフ状態にしたりすることができる時間を長くすることができる。また、PMIC39がデバイスに電力を供給する時間を短くすることができる。
【0060】
本実施形態の情報処理装置100は、第1制御部10の通知部12が、情報処理装置100を構成するそれぞれの第2デバイス27に、第1リクエストを受信したことを通知する。これにより、本実施形態の情報処理装置100は、第2デバイス27の数が任意でも、第1実施形態の情報処理装置100が奏する効果と同様の効果を奏する。
【0061】
以上のように、第1〜4実施形態の情報処理装置100によれば、情報処理装置100のデバイスのハードウェア構成を変更せずに省電力化を実現することができる。
【0062】
なお、情報処理装置100を構成するデバイスは、任意のデバイスでよい。上述の実施形態では説明しなかったデバイスの具体例として、デバイスがプロセッサである場合について説明する。
【0063】
図16は、第1実施形態の変形例(第2デバイスがプロセッサの例)の情報処理装置100の機能ブロックの構成の一例を示す図である。
図1の第2デバイスコントローラ26及び第2デバイス27が、
図16では、第2プロセッサ47となるところが
図1とは異なる。この場合は、第2プロセッサ47上で実行するプログラムの実行開始を第1デバイスがアクティブ状態であるときに合わせることになる。
【0064】
具体的なプログラムの処理の例としては、例えば、アプリケーションが実行するGC(Garbage Collection)がある。GCは、アプリケーションが確保したメモリ領域のうち、不要となったメモリ領域を解放するための処理である。GCは、処理の負荷が大きいが、開始のタイミングの制約が厳しくなく、開始タイミングが遅れても大きな問題が無いという特徴がある。そのため、アプリケーションの中でGCを呼び出す箇所に第2制御部20を組込むことで、GCの実行のタイミングを第1デバイス(基準となるデバイス)のアクティブ状態に合わせれば、情報処理装置100の省電力化を実現できる。
【0065】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。