(57)【要約】【課題】メモリデバイスをセルフリフレッシュ状態にする間の情報処理装置の消費電力を低減する技術を提供する。【解決手段】情報処理装置において、コントローラ１０１は、ＤＲＡＭがセルフリフレッシュ状態に移行する前に、複数のＤＲＡＭチップに格納されたプログラム情報を、特定の１つのＤＲＡＭチップに集約し（Ｓ１０５）、ＤＲＡＭをセルフリフレッシュ状態に移行させる（Ｓ１０６）。その後、電源制御部１０６は、ＤＲＡＭがセルフリフレッシュ状態にある間、複数のＤＲＡＭチップのうち、特定の１つのチップ以外の他のチップに対する電力供給を停止する電源制御を行う（Ｓ１１４）。ＤＲＡＭにおけるセルフリフレッシュ状態が解除されると、コントローラ１０１は、電力供給が継続していた１つのチップに集約されているプログラム情報を、複数のＤＲＡＭチップに分散した状態に戻す。【選択図】図５
2016122414.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
複数のチップを含み、かつ、セルフリフレッシュを実行可能なメモリデバイスと、
前記セルフリフレッシュを実行するセルフリフレッシュ状態に前記メモリデバイスが移行する前に、前記複数のチップに格納されたプログラム情報を、前記複数のチップのうちの１つのチップに集約する集約手段と、
前記メモリデバイスが前記セルフリフレッシュ状態にある間、前記複数のチップのうちで前記１つのチップ以外の他のチップに対する電力供給が停止され、前記１つのチップに対して電力供給が行われるよう、前記情報処理装置の電源から前記メモリデバイスへの電力供給を制御する電源制御手段と、
前記メモリデバイスにおける前記セルフリフレッシュ状態が解除されると、前記１つのチップに集約されているプログラム情報を、前記複数のチップに分散した状態に戻す分散手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記メモリデバイスは、前記セルフリフレッシュ状態において、前記他のチップについて前記セルフリフレッシュを実行することなく、前記１つのチップについて前記セルフリフレッシュを実行する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置が第１の動作状態から当該第１の動作状態よりも消費電力が少ない第２の動作状態に移行する際に、前記メモリデバイスを前記セルフリフレッシュ状態に移行させ、前記情報処理装置が前記第２の動作状態から前記第１の動作状態に復帰する際に、前記メモリデバイスにおける前記セルフリフレッシュ状態を解除する制御手段
を更に備えることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記第２の動作状態では、前記電源から前記情報処理装置のＣＰＵへの電力供給が停止され、
前記集約手段は、更に、前記情報処理装置が前記第２の動作状態から前記第１の動作状態に復帰する際に前記ＣＰＵの起動に必要となるプログラム情報を、前記プログラム情報の集約を実行する前に前記メモリデバイスに格納する、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記メモリデバイスが前記セルフリフレッシュ状態にある間に、前記情報処理装置のＣＰＵから前記メモリデバイスへのアクセスを抑制する抑制手段
を更に備えることを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記抑制手段は、前記ＣＰＵをリセット状態にすることにより、前記ＣＰＵから前記メモリデバイスへのアクセスを抑制することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
メインコントローラと、前記メインコントローラと通信可能であり、かつ、前記メモリデバイスと接続されたサブコントローラと、を備え、
前記集約手段及び前記分散手段は、前記サブコントローラに含まれており、
前記メインコントローラは、前記情報処理装置が第１の動作状態から当該第１の動作状態よりも消費電力の少ない第２の動作状態に移行する際に、前記電源から前記サブコントローラへの電力供給の停止前に前記プログラム情報の集約を実行するよう、前記集約手段を制御し、
前記分散手段は、前記情報処理装置が前記第２の動作状態から前記第１の動作状態に復帰する際に、前記電源から前記サブコントローラへの電力供給が再開されると、前記プログラム情報の分散を行う、
ことを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
複数のチップを含み、かつ、セルフリフレッシュを実行可能なメモリデバイスを備える情報処理装置の制御方法であって、
前記セルフリフレッシュを実行するセルフリフレッシュ状態に前記メモリデバイスが移行する前に、前記複数のチップに格納されたプログラム情報を、前記複数のチップのうちの１つのチップに集約する集約工程と、
前記メモリデバイスが前記セルフリフレッシュ状態にある間、前記複数のチップのうちで前記１つのチップ以外の他のチップに対する電力供給が停止され、前記１つのチップに対して電力供給が行われるよう、前記情報処理装置の電源から前記メモリデバイスへの電力供給を制御する電源制御工程と、
前記メモリデバイスにおける前記セルフリフレッシュ状態が解除されると、前記１つのチップに集約されているプログラム情報を、前記複数のチップに分散した状態に戻す分散工程と、
を含むことを特徴とする情報処理装置の制御方法。
【請求項９】
請求項１から７のいずれか１項に記載の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、本発明は、複数のチップを含むメモリデバイスを備える情報処理装置及びその制御方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
プリンタ、複合機等の情報処理装置の多機能化に伴って、情報処理装置の消費電力が増加している。このような情報処理装置は、当該情報処理装置に含まれる一部のデバイスに対する電力供給を停止することで消費電力を低減する省電力状態（スリープ状態）に移行する省電力機能を有しているのが一般的である。
【０００３】
近年では、このようなスリープ状態における情報処理装置の消費電力を更に低減することが求められている。また、ユーザビリティの観点からは、情報処理装置がスリープ状態から通常の動作状態への復帰に要する復帰時間の短縮化が求められている。例えば、特許文献１には、省電力モードにおける情報処理装置の消費電力の低減と、省電力モードから非省電力モードに復帰する際の復帰時間の短縮のための技術が開示されている。具体的には、省電力モード（スリープ状態）の情報処理装置において、複数のＤＲＡＭのうちの１つのＤＲＡＭでセルフリフレッシュ機能を用いてプログラム情報及びデータを保持することで、省電力モードからの復帰時間を短縮している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２２３８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、スリープ状態にある情報処理装置においてＤＲＡＭのセルフリフレッシュ機能を用いる場合、ＤＲＡＭに対して一定の電力を定期的に供給し続ける必要がある。この場合、スリープ状態においてＤＲＡＭに対する電力供給を停止した場合と比較して、スリープ状態における情報処理装置の消費電力が増加する。このため、情報処理装置においてＤＲＡＭ（メモリデバイス）のセルフリフレッシュ機能を用いる場合に、消費電力を更に低減できることが望まれる。
【０００６】
本発明は、上述の問題に鑑みてなされたものである。本発明は、メモリデバイスをセルフリフレッシュ状態にする間の情報処理装置の消費電力を低減する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、例えば、情報処理装置として実現できる。本発明の一態様に係る情報処理装置は、複数のチップを含み、かつ、セルフリフレッシュを実行可能なメモリデバイスと、前記セルフリフレッシュを実行するセルフリフレッシュ状態に前記メモリデバイスが移行する前に、前記複数のチップに格納されたプログラム情報を、前記複数のチップのうちの１つのチップに集約する集約手段と、前記メモリデバイスが前記セルフリフレッシュ状態にある間、前記複数のチップのうちで前記１つのチップ以外の他のチップに対する電力供給が停止され、前記１つのチップに対して電力供給が行われるよう、前記情報処理装置の電源から前記メモリデバイスへの電力供給を制御する電源制御手段と、前記メモリデバイスにおける前記セルフリフレッシュ状態が解除されると、前記１つのチップに集約されているプログラム情報を、前記複数のチップに分散した状態に戻す分散手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、メモリデバイスをセルフリフレッシュ状態にする間の情報処理装置の消費電力を低減することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置の構成例を示すブロック図。
【図２】コントローラ１０１の構成例を示すブロック図。
【図３】ＤＲＡＭ１０２用の電源構成例を示すブロック図。
【図４】情報処理装置における各デバイスへの電力の供給状態の一例を示す図。
【図５】情報処理装置におけるスリープ移行手順の例を示すフローチャート。
【図６】情報処理装置におけるスリープ復帰手順の例を示すフローチャート。
【図７】プログラム情報の集約処理及び分散処理の手順の例を示すフローチャート。
【図８】プログラム情報の集約処理によるＤＲＡＭ１０２におけるプログラム情報の格納状態の変化例を示す図。
【図９】情報処理装置の構成例を示すブロック図。
【図１０】サブコントローラ１２０１の構成例を示すブロック図。
【図１１】情報処理装置におけるスリープ移行手順の例を示すフローチャート。
【図１２】情報処理装置におけるスリープ復帰手順の例を示すフローチャート。
【図１３】プログラム情報の集約処理及び分散処理の手順の例を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１１】
［第１の実施形態］
＜情報処理装置の構成＞
図１は、第１の実施形態に係る情報処理装置の構成例を示すブロック図である。情報処理装置は、例えば、コピー機能、スキャン機能、ＦＡＸ機能及び印刷機能等の各種機能を有する複合機、印刷機能を有するプリンタ（画像形成装置）、または画像読取機能を有するスキャナ（画像読取装置）である。情報処理装置は、コントローラ１０１と、コントローラ１０１と接続された、ＤＲＡＭ（Dynamic Random Access Memory）１０２、ＲＯＭ１０３、ハードディスクドライブ（ＨＤＤ）１０４、操作部１０５、電源制御部１０６及び電源部１０７とを備える。コントローラ１０１は、コントローラ１０１に接続された各デバイスの動作を制御する。
【００１２】
本実施形態では、ＤＲＡＭ１０２は、複数のチップ（図３のＤＲＡＭチップ３０１〜３０４）を含み、かつ、セルフリフレッシュを実行可能なメモリデバイスに相当する。ＤＲＡＭ１０２には、コントローラ１０１内のＣＰＵ２０１（図２）によって実行されるＯＳプログラム及び処理プログラム（プログラム情報）が展開（格納）される。コントローラ１０１は、ＤＲＡＭ１０２に展開した処理プログラムを実行することによって、情報処理装置全体の動作を制御するとともに、各種アプリケーションを実行する。ＲＯＭ１０３は、コントローラ１０１内のＣＰＵ２０１によって実行される処理プログラムが格納されている、書き換えが可能なフラッシュＲＯＭである。大容量の記憶装置であるＨＤＤ１０４には、ＯＳプログラム及び各種アプリケーションプログラム等のデータが格納されている。コントローラ１０１は、電源が投入されると、ＨＤＤ１０４内に格納されているプログラムを読み出して実行する。
【００１３】
操作部１０５は、タッチパネル等のデバイスで構成され、表示機能及び操作機能を備える。なお、操作部１０５は、液晶ディスプレイ及びハードウェアキーの組み合わせによって構成されてもよい。操作部１０５は、コントローラ１０１のユーザインタフェースとして機能し、ユーザの操作を受け付けるとともに、ユーザの操作に応じた画面表示を行う。例えば、情報処理装置が省電力状態（スリープ状態）である場合に操作部１０５によってユーザからの操作を受け付けると、コントローラ１０１は、情報処理装置をスリープ状態から通常の動作状態に復帰させる。
【００１４】
電源制御部１０６は、情報処理装置全体の電源制御を行う。電源制御部１０６は、例えばＣＰＬＤ（Complex Programmable Logic Device）で構成される。電源部１０７は、電源制御部１０６による制御下で、ＤＣ／ＤＣコンバータ等の回路で構成され、情報処理装置が備える各デバイスの動作に必要となる電圧（電力）の生成及び供給を行う。
【００１５】
電源制御部１０６は、情報処理装置の動作状態（例えば、通常の動作状態及びスリープ状態）に応じて、電源部１０７から各デバイスへの電力の供給状態の制御（オン状態とオフ状態との間の切り替え）を行う。電源制御部１０６は、情報処理装置がスリープ状態から復帰する要因に相当する復帰要因を管理している。電源制御部１０６は、復帰要因が発生すると、電源部１０７にコントローラ１０１へ電力供給を開始させる。また、電源制御部１０６は、電源部１０７からＤＲＡＭ１０２内の複数のチップ（図３のＤＲＡＭチップ３０１〜３０４）のそれぞれに対する電力の供給状態を個別に制御する。
【００１６】
＜コントローラの構成＞
図２は、本実施形態に係るコントローラ１０１の構成例を示すブロック図である。コントローラ１０１は、ＣＰＵ２０１、各種インタフェース（ＩＦ）２０２〜２０７、バッファ部２０８、ＤＭＡ（Direct Memory Access）部２０９、及びレジスタ部２１０を備える。ＤＲＡＭ ＩＦ２０２、ＲＯＭ ＩＦ２０３、ＨＤＤ ＩＦ２０４、操作部ＩＦ２０５、及び電源制御部ＩＦ２０６は、それぞれ、ＤＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤ１０４、操作部１０５、及び電源制御部１０６にアクセスするためのＩＦモジュールである。
【００１７】
ＣＰＵ２０１は、ＯＳプログラム及び各種アプリケーションプログラムを実行することで、制御対象となる各デバイスの動作を制御する。ＣＰＵ２０１は、情報処理装置の電源投入時には、ＲＯＭ１０３に格納されたブートプログラムを実行するとともに、ＤＲＡＭ１０２に展開したＯＳプログラム及びアプリケーションプログラムの実行を開始する。
【００１８】
ＤＲＡＭ ＩＦ２０２は、ＤＲＡＭ１０２のセルフリフレッシュ機能に関する設定及び制御を行うためのレジスタを備える。このレジスタの設定は、ＣＰＵ２０１またはＤＭＡ部２０９によって行われる。ＣＰＵ２０１は、ＨＤＤ１０４に格納されている、操作部１０５に表示すべき画面の画像データを、操作部ＩＦ２０５を介して操作部１０５へ送信することで、当該画像データに基づく画面を操作部１０５に表示する。また、ＣＰＵ２０１は、操作部１０５においてユーザが操作した内容を示すデータを、操作部ＩＦ２０５を介して操作部１０５から受信する。
【００１９】
電源制御部１０６は、電源制御部ＩＦ２０６を介して、ＣＰＵ２０１等の、コントローラ１０１内のデバイスと通信できる。例えば、電源制御部１０６は、コントローラ１０１の動作状態を監視でき、また、ＣＰＵ２０１またはＤＭＡ部２０９からの通知を受信できる。
【００２０】
ネットワークＩＦ２０７は、例えばＬＡＮカードで構成され、ＬＡＮ等のネットワーク（図示せず）を介して外部装置との通信を行う。ＣＰＵ２０１は、ネットワークＩＦ２０７を介して外部装置と通信することで、ネットワークを介して外部装置との間でデバイス情報、画像データ等の各種データのやりとりを行う。
【００２１】
バッファ部２０８は、ＳＲＡＭ、ＦＦロジック回路等で構成され、ＤＲＡＭ１０２に格納されているプログラム情報及びデータの読み出し、並びにＤＲＡＭ１０２へのプログラム情報及びデータの書き込みの際のバッファとして用いられる。ＤＭＡ部２０９は、ＣＰＵ２０１によって設定される（後述する）予約動作を実行可能である。本実施形態では、ＤＭＡ部２０９の予約動作においてバッファ部２０８が使用されうる。
【００２２】
レジスタ部２１０は、コントローラ１０１の設定及び制御のためのレジスタである。レジスタ部２１０に対する設定によって、ＣＰＵ２０１のリセットを行うことが可能である。ＣＰＵ２０１をリセット状態にすることにより、ＣＰＵ２０１からＤＲＡＭ１０２へのアクセスを抑制することが可能である。
【００２３】
＜ＤＲＡＭ用の電源構成＞
図３は、電源部１０７からＤＲＡＭ１０２への電力供給を制御するための、ＤＲＡＭ１０２用の電源構成例を示すブロック図である。図３に示すように、ＤＲＡＭ１０２は、複数のチップ（ＤＲＡＭチップ３０１〜３０４）で構成されている。電源部１０７は、ＤＲＡＭチップ３０１〜３０４に対して、スイッチ（ＳＷ）３１１〜３１４を介して個別に電力を供給する。電源制御部１０６は、制御信号３０５を用いてスイッチ３１１〜３１４のそれぞれについてオン状態とオフ状態との間で切り替えることによって、電源部１０７からＤＲＡＭチップ３０１〜３０４のそれぞれに対する電力の供給状態を制御できる。
【００２４】
＜情報処理装置の動作状態＞
本実施形態に係る情報処理装置は、当該情報処理装置が備える複数のデバイスの電力が供給される通常の動作状態（通常状態）、または当該複数のデバイスの一部に電力が供給されるスリープ状態で動作するものとする。スリープ状態は、一部のデバイスに対する電力供給が停止されるため、通常状態（第１の動作状態）よりも消費電力が少ない状態（第２の動作状態）である。
【００２５】
ここで、図４は、情報処理装置が通常状態またはスリープ状態で動作している場合の、各デバイスへの電力の供給状態の一例を示す図である。図４では、一例として、コントローラ１０１、ＤＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤ１０４、及び電源制御部１０６への電力の供給状態について示している。通常状態の情報処理装置では、図４に示す全デバイスに対して電源部１０７から電力が供給される（オン状態）。一方、スリープ状態の情報処理装置では、電源制御部１０６に対する電力供給は継続される（オン状態）一方で、コントローラ１０１、ＲＯＭ１０３、及びＨＤＤ１０４に対する電力供給は停止される（オフ状態）。スリープ状態において、ＤＲＡＭ１０２は、セルフリフレッシュを実行するセルフリフレッシュ状態となるように制御され、セルフリフレッシュを実行するために電源部１０７から電力の供給を受ける。
【００２６】
本実施形態では、ＤＲＡＭ１０２をセルフリフレッシュ状態にする間の情報処理装置の消費電力を低減するために、コントローラ１０１及び電源制御部１０６は以下のような処理を実行する。具体的には、電源制御部１０６は、ＤＲＡＭ１０２がセルフリフレッシュ状態にある間、複数のＤＲＡＭチップ３０１〜３０４のうち、特定の１つのチップ以外の他のチップに対する電力供給を停止する電源制御を行う。これにより、ＤＲＡＭ１０２がセルフリフレッシュ状態にある間の情報処理装置の消費電力の低減を実現する。
【００２７】
上述の電源制御では、電力供給が停止したＤＲＡＭチップの記憶情報は消失する。そこで、コントローラ１０１は、ＤＲＡＭ１０２がセルフリフレッシュ状態に移行する前に、複数のＤＲＡＭチップ３０１〜３０４に格納されたプログラム情報を、それらのうちの１つのチップ（例えば、ＤＲＡＭチップ３０１）に集約する。その後、電源制御部１０６は、ＤＲＡＭ１０２がセルフリフレッシュ状態にある間、当該１つのチップ以外の他のチップに対する電力供給が停止され、当該１つのチップに電力供給が行われるよう、電源部１０７からＤＲＡＭ１０２への電力供給を制御する。ＤＲＡＭ１０２におけるセルフリフレッシュ状態が解除されると、コントローラ１０１は、電力供給が継続していた１つのチップ（例えば、ＤＲＡＭチップ３０１）に集約されているプログラム情報を、ＤＲＡＭチップ３０１〜３０４に分散した状態に戻す。このような制御により、ＤＲＡＭ１０２の記憶情報を消失させることなく、ＤＲＡＭ１０２がセルフリフレッシュ状態にある間の情報処理装置の消費電力を低減できる。
【００２８】
なお、上述の電源制御によって電力供給が停止したＤＲＡＭチップについてはセルフリフレッシュを実行する必要がない（実行することができない）。このため、ＤＲＡＭ１０２は、電力供給が継続している１つのＤＲＡＭチップ以外の他のＤＲＡＭチップについてセルフリフレッシュを実行することなく、当該１つのＤＲＡＭチップについてセルフリフレッシュを実行しうる。
【００２９】
＜スリープ移行手順＞
図５〜図７では、ＤＲＡＭ１０２についてのセルフリフレッシュ状態への移行及びセルフリフレッシュ状態の解除が、ＣＰＵ２０１によって設定される予約動作として、ＤＭＡ部２０９によって制御される例を示す。即ち、ＤＭＡ部２０９は、情報処理装置が通常状態からスリープ状態に移行する際に、ＤＲＡＭ１０２をセルフリフレッシュ状態に移行させる。また、ＤＭＡ部２０９は、情報処理装置がスリープ状態から通常状態に復帰する際に、ＤＲＡＭ１０２におけるセルフリフレッシュ状態を解除する。
【００３０】
図５は、本実施形態に係る情報処理装置におけるスリープ状態への移行手順の例を示すフローチャートである。図５のフローチャートにおいて、Ｓ１０１〜Ｓ１０６の処理はコントローラ１０１によって実行され、Ｓ１１１〜Ｓ１１５の処理は電源制御部１０６によって実行される。
【００３１】
Ｓ１０１で、コントローラ１０１のＣＰＵ２０１は、情報処理装置をスリープ状態に移行させる条件（スリープ移行条件）が満たされたか否かを判定することで、情報処理装置をスリープ状態に移行させるか否かを判定する。スリープ移行条件は、例えば、操作部１０５におけるユーザの操作が行われていないか、外部装置からジョブを受信していない状態で所定時間が形化したことである。ＣＰＵ２０１は、情報処理装置をスリープ状態に移行させると判定すると、処理をＳ１０２に進める。
【００３２】
Ｓ１０２で、ＣＰＵ２０１は、ＤＭＡ部２０９による予約動作の設定を行う。本実施形態では、以下の処理が予約動作として設定される。
・プログラム情報の集約処理（Ｓ１０５、図７（Ａ））
・セルフリフレッシュ状態への移行処理（Ｓ１０６）
・セルフリフレッシュ状態の解除処理（図６のＳ１５１）
・プログラム情報の分散処理（図６のＳ１５２、図７（Ｂ））
【００３３】
予約動作の設定後、Ｓ１０３で、ＣＰＵ２０１は、スリープ状態への移行前に、ＣＰＵ２０１をリセット状態にすることを示すＣＰＵリセット通知を、電源制御部１０６に送信する。これは、ＣＰＵ２０１をリセット状態にすることにより、プログラム情報の集約及び分散処理が行われる間、及び、ＤＲＡＭ１０２がセルフリフレッシュ状態にある間に、ＣＰＵ２０１からＤＲＡＭ１０２へのアクセスを抑制するためである。その後、Ｓ１０４で、ＣＰＵ２０１は、レジスタ部２１０にアクセスして設定を変更することで、リセット状態に移行する。一方、電源制御部１０６は、Ｓ１１１で、ＣＰＵリセット通知をコントローラ１０１から受信したか否かを判定し、ＣＰＵリセット通知を受信したと判定すると、処理をＳ１１２に進める。
【００３４】
ＣＰＵ２０１がリセット状態に移行した後、コントローラ１０１ではＤＭＡ部２０９による予約動作が開始される。具体的には、Ｓ１０５で、ＤＭＡ部２０９は、図７（Ａ）に示す手順で、プログラム情報の集約処理を実行する。この集約処理は、ＤＲＡＭ１０２の複数のＤＲＡＭチップ３０１〜３０４に格納されたプログラム情報を、特定の１つのＤＲＡＭチップ（以下、ＤＲＡＭチップ３０１）に集約する処理である。一方、電源制御部１０６は、Ｓ１１２で、電源制御部ＩＦ２０６を介してコントローラ１０１の動作状態を監視することで、集約処理（予約動作）が完了したか否かを判定し、完了したと判定すると、処理をＳ１１３に進める。
【００３５】
集約処理の完了後、Ｓ１０６で、ＤＭＡ部２０９は、ＤＲＡＭ ＩＦ２０２に設けられたレジスタの設定を変更することで、ＤＲＡＭ１０２をセルフリフレッシュ状態に移行させる。これにより、ＤＲＡＭ１０２によるセルフリフレッシュが開始される。一方、電源制御部１０６は、Ｓ１１３で、電源制御部ＩＦ２０６を介してコントローラ１０１の動作状態を監視することで、セルフリフレッシュ状態への移行処理（予約動作）が完了したか否かを判定し、完了したと判定すると、処理をＳ１１４に進める。
【００３６】
Ｓ１１４で、電源制御部１０６は、スイッチ３１１〜３１４の切り替えにより、電源部１０７からＤＲＡＭ１０２への電力供給状態を変更する。具体的には、電源制御部１０６は、特定の１つのＤＲＡＭチップ（３０１）に対して電力供給が行われ、それ以外のＤＲＡＭチップ（３０２〜３０４）への電力供給が停止されるよう、電力供給状態を変更する。これにより、ＤＲＡＭ１０２では、複数のＤＲＡＭチップ３０１〜３０４に電力が供給される場合よりも消費電力が低減される。また、ＤＲＡＭ１０２は、特定の１つのＤＲＡＭチップ（３０１）についてのみセルフリフレッシュを行う状態となる。
【００３７】
その後、Ｓ１１５で、電源制御部１０６は、電源部１０７の制御により、図４に示すようなスリープ状態における電源制御を開始する。以上の処理により、情報処理装置におけるスリープ状態への移行が完了する。
【００３８】
＜スリープ復帰手順＞
図６は、本実施形態に係る情報処理装置におけるスリープ状態からの復帰手順の例を示すフローチャートである。図６のフローチャートにおいて、Ｓ１５１〜Ｓ１５３の処理はコントローラ１０１によって実行され、Ｓ１６１〜Ｓ１６６の処理は電源制御部１０６によって実行される。
【００３９】
Ｓ１６１で、電源制御部１０６は、情報処理装置がスリープ状態から通常状態に復帰（移行）する要因（スリープ復帰要因）が発生したか否かを判定する。スリープ復帰要因は、例えば、ユーザが操作部１０５を操作したことにより、操作部１０５から電源制御部１０６にスリープ復帰信号が入力されることである。電源制御部１０６は、スリープ復帰要因が発生したと判定すると、処理をＳ１６２に進める。Ｓ１６２で、電源制御部１０６は、スイッチ３１１〜３１４の切り替え及び電源部１０７の制御により、電源部１０７からコントローラ１０１及びＤＲＡＭ１０２（の全チップ）への電力供給を開始（再開）する。これにより、コントローラ１０１の動作が再開し、ＤＭＡ部２０９が次の予約動作を実行する。
【００４０】
具体的には、Ｓ１５１で、ＤＭＡ部２０９は、ＤＲＡＭ ＩＦ２０２に設けられたレジスタの設定を変更することで、ＤＲＡＭ１０２をセルフリフレッシュ状態を解除する。一方、電源制御部１０６は、Ｓ１６３で、電源制御部ＩＦ２０６を介してコントローラ１０１の動作状態を監視することで、セルフリフレッシュ状態の解除処理（予約動作）が完了したか否かを判定し、完了したと判定すると、処理をＳ１６４に進める。
【００４１】
セルフリフレッシュ状態の解除後、Ｓ１５２で、ＤＭＡ部２０９は、図７（Ｂ）に示す手順で、プログラム情報の分散処理を実行する。この分散処理は、ＤＲＡＭ１０２の特定の１つのＤＲＡＭチップ（３０１）に集約されているプログラム情報を、複数のＤＲＡＭチップ３０１〜３０４に分散した状態に戻す処理である。一方、電源制御部１０６は、Ｓ１６４で、電源制御部ＩＦ２０６を介してコントローラ１０１の動作状態を監視することで、分散処理（予約動作）が完了したか否かを判定し、完了したと判定すると、処理をＳ１６５に進める。
【００４２】
Ｓ１６５で、電源制御部１０６は、コントローラ１０１に対して、ＣＰＵ２０１のリセット解除指示を送信する。更に、Ｓ１６６で、電源制御部１０６は、電源部１０７の制御により、図４に示すような通常状態における電源制御を開始する。一方、コントローラ１０１では、リセット解除指示に応じて、Ｓ１５３で、ＣＰＵ２０１が、レジスタ部２１０にアクセスして設定を変更することで、ＣＰＵ２０１のリセット状態を解除する。以上の処理により、情報処理装置におけるスリープ状態からの復帰が完了する。
【００４３】
＜プログラム情報の集約処理＞
図７（Ａ）は、ＤＭＡ部２０９によって予約動作して実行される、プログラム情報の集約処理の手順の例を示すフローチャートである。また、図８は、プログラム情報の集約処理によるＤＲＡＭ１０２におけるプログラム情報の格納状態の変化例を示す図である。なお、集約処理は、電源制御部１０６からの割り込みによって開始される。
【００４４】
まず、Ｓ１２１で、ＤＭＡ部２０９は、電源制御部１０６からの割り込みが発生したか否かを判定し、割り込みが発生したと判定すると、処理をＳ１２２に進める。Ｓ１２２で、ＤＭＡ部２０９は、ＲＯＭ１０３またはＨＤＤ１０４に格納されている、ＣＰＵ２０１の起動用のプログラム情報をＤＲＡＭ１０２に展開する。具体的には、ＤＭＡ部２０９は、情報処理装置がスリープ状態から通常状態に復帰する際にＣＰＵ２０１の起動に必要となるプログラム情報を、プログラム情報の集約を行う前にＤＲＡＭ１０２に格納する。これにより、ＣＰＵ２０１は、スリープ状態から復帰する場合に、電源オフ状態から起動する場合と同様の動作を行うことが可能になる。
【００４５】
次に、Ｓ１２３で、ＤＭＡ部２０９は、図８（Ａ）に示すように、ＤＲＡＭ１０２に格納されているプログラム情報をバッファ部２０８に３２ビットで書き込む。次に、Ｓ１２４で、ＤＭＡ部２０９は、バッファ部２０８に書き込んだプログラム情報を、３２ビット信号から８ビット信号に変換する。具体的には、ＤＭＡ部２０９は、図８（Ｂ）に示すように、プログラム情報を、３２ビット信号における下位の８ビットにのみプログラム情報が存在するように変換する。
【００４６】
更に、Ｓ１２５で、ＤＭＡ部２０９は、図８（Ｂ）に示すように、バッファ部２０８に格納されている変換後のプログラム情報を、ＤＲＡＭ１０２の特定の１つのＤＲＡＭチップ（３０１）に８ビットで書き込む。以上の処理により、ＣＰＵ２０１の起動用のプログラム情報がＤＲＡＭ１０２に展開されるとともに、ＤＲＡＭチップ３０１〜３０４に格納されたプログラム情報が１つのＤＲＡＭチップ（３０１）に集約して格納された状態となる。
【００４７】
＜プログラム情報の分散処理＞
図７（Ｂ）は、ＤＭＡ部２０９によって予約動作して実行される、プログラム情報の分散処理の手順の例を示すフローチャートである。なお、集約処理は、電源制御部１０６からの割り込みによって開始される。
【００４８】
まず、Ｓ１７１で、ＤＭＡ部２０９は、電源制御部１０６からの割り込みが発生したか否かを判定し、割り込みが発生したと判定すると、処理をＳ１７２に進める。次に、Ｓ１７２で、ＤＭＡ部２０９は、ＤＲＡＭ１０２に格納されているプログラム情報をバッファ部２０８に８ビットで書き込む。次に、Ｓ１７３で、ＤＭＡ部２０９は、バッファ部２０８に書き込んだプログラム情報を、８ビット信号から３２ビット信号に変換する。具体的には、プログラム情報を、８ビット信号同士を連結することによって変換する。
【００４９】
更に、Ｓ１７４で、ＤＭＡ部２０９は、バッファ部２０８に格納されている変換後のプログラム情報を、ＤＲＡＭ１０２のＤＲＡＭチップ３０１〜３０４に３２ビットで書き込む。以上の処理により、１つのＤＲＡＭチップ（３０１）に集約されていたプログラム情報がＤＲＡＭチップ３０１〜３０１に分散して格納された状態となる。
【００５０】
以上説明したように、本実施形態によれば、ＤＲＡＭ１０２の記憶情報（プログラム情報）を消失させることなく、ＤＲＡＭ１０２がセルフリフレッシュ状態にある間の情報処理装置の消費電力を低減できる。
【００５１】
［第２実施形態］
第２の実施形態では、情報処理装置が、メインコントローラと、当該メインコントローラと通信可能であり、かつ、ＤＲＡＭ（メモリデバイス）と接続されたサブコントローラとを備える場合の、当該ＤＲＡＭのセルフリフレッシュについて説明する。以下では、第１の実施形態と共通する部分の説明については省略している。
【００５２】
図９は、本実施形態に係る情報処理装置の構成例を示すブロック図である。情報処理装置は、メインコントローラ１１０１及びサブコントローラ１２０１を備える。図９において、メインコントローラ１１０１、メインＤＲＡＭ１１０２、メインＲＯＭ１１０３、ＨＤＤ１０４、操作部１０５、電源制御部１０６、及び電源部１０７は、それぞれ、第１の実施形態におけるコントローラ１０１、ＤＲＡＭ１０２、ＲＯＭ１０３、ハードディスクドライブ（ＨＤＤ）１０４、操作部１０５、電源制御部１０６及び電源部１０７に対応し、同様の構成を有する。本実施形態では、情報処理装置は更に、サブコントローラ１２０１に接続された、サブＤＲＡＭ１２０２、サブＲＯＭ１２０３、プリンタ部１２０４、及びスキャナ部１２０５を備える。
【００５３】
サブコントローラ１２０１は、メインコントローラ１１０１に対して従属関係にある。メインコントローラ１１０１は、サブコントローラ１２０１の各種設定及び動作の制御を行う。サブコントローラ１２０１は、サブコントローラ１２０１に接続された各デバイスの動作を制御する。
【００５４】
サブＤＲＡＭ１２０２は、メインＤＲＡＭ１１０２と同様、複数のチップを含み、かつ、セルフリフレッシュを実行可能なメモリデバイスに相当する。サブＲＯＭ１２０３は、サブコントローラ１２０１内のサブ第１ＣＰＵ１３０１及びサブ第２ＣＰＵ１３０２によって実行される処理プログラムが格納されている、書き換えが可能なフラッシュＲＯＭである。
【００５５】
プリンタ部１２０４は、サブコントローラ１２０１から出力される画像データに基づいて画像の印刷を行う。スキャナ部１２０５は、原稿の画像を読み取って画像データを生成し、生成した画像データをサブコントローラ１２０１に出力する。
【００５６】
＜サブコントローラの構成＞
図１０に、本実施形態に係るサブコントローラ１２０１の構成例を示すブロック図である。なお、メインコントローラ１１０１については、第１の実施形態におけるコントローラ１０１と同様の構成（図２）を有する。
【００５７】
サブコントローラ１２０１は、サブ第１ＣＰＵ１３０１、サブ第２ＣＰＵ１３０２、レジスタ部１３０３、画像処理部１３０４、バッファ部１３０５、メインコントローラＩＦ１３０６、ＤＭＡ部１３０７、電源制御部ＩＦ１３０８、サブＤＲＡＭ ＩＦ１３０９、サブＲＯＭ ＩＦ１３１０、プリンタ部ＩＦ１３１１、及びスキャナ部ＩＦ１３１２を備える。メインコントローラ１１０１は、特に、２つのＣＰＵを備えている点と、画像処理部１３０４、プリンタ部ＩＦ１３１１及びスキャナ部ＩＦ１３１２を備えている点で、サブコントローラ１２０１と異なっている。
【００５８】
サブ第１ＣＰＵ１３０１は、サブＤＲＡＭ１２０２に格納されたＯＳプログラム及びアプリケーションプログラムを実行することで、画像処理部１３０４の制御、及び画像データの入出力制御を行う。一方、サブ第２ＣＰＵ１３０２は、サブＲＯＭ１２０３に格納されたプログラムを実行することで、画像処理部１３０４による画像処理を利用する各機能の制御を行う。
【００５９】
画像処理部１３０４は、サブ第１ＣＰＵ１３０１による制御下で、画像データに対して各種画像処理を行う。例えば、画像データに１３０４は、プリンタ部ＩＦ１３１１を介してプリンタ部１２０４に出力すべき画像データ、または、スキャナ部ＩＦ１３１２を介してスキャナ部１２０５から出力された画像データに対して画像処理を行う。画像処理は、例えば、画像データの補正、加工、編集等の処理である。
【００６０】
メインコントローラＩＦ１３０６は、メインコントローラ１１０１とサブコントローラ１２０１とを接続し、互いにアクセスするためのＩＦモジュールである。メインコントローラＩＦ１３０６は、例えば、ＰＣＩ Ｅｘｐｒｅｓｓで構成され、その場合、ルートコンプレックスがメインコントローラ１１０１、エンドポイントがサブコントローラ１２０１となる。
【００６１】
以下では、サブＤＲＡＭ１２０２をリフレッシュ状態にする場合に実行されるプログラム情報の集約処理及び分散処理について説明する。サブＤＲＡＭ１２０２についてのプログラム情報の集約処理及び分散処理は、サブコントローラ１２０１に含まれるサブ第２ＣＰＵ１３０２によって実行される。
【００６２】
本実施形態では、メインコントローラ１１０１は、情報処理装置が通常状態からスリープ状態に移行する際に、電源部１０７からサブコントローラ１２０１への電力供給の停止前にプログラム情報の集約を実行するよう、サブ第２ＣＰＵ１３０２を制御する。また、サブ第２ＣＰＵ１３０２は、情報処理装置がスリープ状態から通常状態に復帰する際に、電源部１０７からサブコントローラ１２０１への電力供給が再開されると、プログラム情報の分散を行う。このような制御により、サブＤＲＡＭ１２０２の記憶情報を消失させることなく、サブＤＲＡＭ１２０２がセルフリフレッシュ状態にある間の情報処理装置の消費電力を低減できる。
【００６３】
＜スリープ移行手順＞
図１１は、本実施形態に係る情報処理装置におけるスリープ状態への移行手順の例を示すフローチャートである。図１１のフローチャートにおいて、Ｓ２０１〜Ｓ２０５の処理はメインコントローラ１１０１のＣＰＵ２０１によって実行され、Ｓ２１１〜Ｓ２１３の処理は電源制御部１０６によって実行される。また、Ｓ２２１〜Ｓ２２３の処理はサブコントローラ１２０１によって実行される。サブコントローラ１２０１は、メインコントローラ１１０１による制御下で動作する。
【００６４】
Ｓ２０１で、メインコントローラ１１０１のＣＰＵ２０１は、情報処理装置をスリープ状態に移行させる条件（スリープ移行条件）が満たされたか否かを判定することで、情報処理装置をスリープ状態に移行させるか否かを判定する。ＣＰＵ２０１は、情報処理装置をスリープ状態に移行させると判定すると、処理をＳ２０２に進める。
【００６５】
Ｓ２０３で、ＣＰＵ２０１は、スリープ状態への移行前に、サブ第１ＣＰＵ１３０１をリセット状態にすべきことを示すリセット指示を、サブ第１ＣＰＵ１３０１に送信する。これは、プログラム情報の集約及び分散処理が行われる間、及び、サブＤＲＡＭ１２０２がセルフリフレッシュ状態にある間に、サブ第１ＣＰＵ１３０１からサブＤＲＡＭ１２０２へのアクセスを抑制するためである。Ｓ２２１で、サブコントローラ１２０１のサブ第１ＣＰＵ１３０１は、リセット指示の受信に応じて、レジスタ部１３０３にアクセスして設定を変更することで、リセット状態に移行する。
【００６６】
次に、Ｓ２０３で、ＣＰＵ２０１は、集約処理の実行指示を、サブ第２ＣＰＵ１３０２に送信する。Ｓ２２２で、サブ第２ＣＰＵ１３０２は、集約処理の実行指示の受信に応じて、図１３（Ａ）に示す手順で、プログラム情報の集約処理を実行する。この集約処理は、サブＤＲＡＭ１２０２の複数のＤＲＡＭチップに格納されたプログラム情報を、特定の１つのＤＲＡＭチップに集約する処理である。続いて、Ｓ２０４で、ＣＰＵ２０１は、セルフリフレッシュの実行指示を、サブ第２ＣＰＵ１３０２に送信する。Ｓ２２３で、サブ第２ＣＰＵ１３０２は、セルフリフレッシュの実行指示の受信に応じて、サブＤＲＡＭ ＩＦ１３０９に設けられたレジスタの設定を変更することで、サブＤＲＡＭ１２０２をセルフリフレッシュ状態に移行させる。
【００６７】
その後、Ｓ２０５で、ＣＰＵ２０１は、スリープ状態における電源制御の実行指示を、電源制御部１０６に送信する。一方、電源制御部１０６は、Ｓ２１１で、メインコントローラ１１０１から、スリープ状態における電源制御の実行指示を受信したか否かを判定し、受信したと判定すると、処理をＳ２１２に進める。Ｓ２１２で、電源制御部１０６は、、受信した実行指示に従って、電源部１０７からサブＤＲＡＭ１２０２への電力供給状態を変更する。具体的には、電源制御部１０６は、特定の１つのＤＲＡＭチップに対して電力供給が行われ、それ以外のＤＲＡＭチップへの電力供給が停止されるよう、電力供給状態を変更する。これにより、サブＤＲＡＭ１２０２では、複数のＤＲＡＭに電力が供給される場合よりも消費電力が低減される。また、サブＤＲＡＭ１２０２は、特定の１つのＤＲＡＭチップについてのみセルフリフレッシュを行う状態となる。
【００６８】
その後、Ｓ２１３で、電源制御部１０６は、電源部１０７の制御により、スリープ状態における電源制御を開始する。以上の処理により、情報処理装置におけるスリープ状態への移行が完了する。
【００６９】
＜スリープ復帰手順＞
図１２は、本実施形態に係る情報処理装置におけるスリープ状態からの復帰手順の例を示すフローチャートである。図６のフローチャートにおいて、Ｓ２５１〜Ｓ２５４の処理はメインコントローラ１１０１のＣＰＵ２０１によって実行され、Ｓ２６１〜Ｓ２６４の処理は電源制御部１０６によって実行される。また、Ｓ２７１〜Ｓ２７３の処理はサブコントローラ１２０１によって実行される。サブコントローラ１２０１は、メインコントローラ１１０１による制御下で動作する。
【００７０】
Ｓ２６１で、電源制御部１０６は、情報処理装置がスリープ状態から通常状態に復帰（移行）する要因（スリープ復帰要因）が発生したか否かを判定する。電源制御部１０６は、スリープ復帰要因が発生したと判定すると、処理をＳ２６２に進める。Ｓ２６２で、電源制御部１０６は、スリープ状態からの復帰を示す割込信号を、メインコントローラ１１０１に対して送信する。
【００７１】
Ｓ２５１で、メインコントローラ１１０１のＣＰＵ２０１は、スリープ状態からの復帰を示す割込信号を電源制御部１２０６から受信したか否かを判定し、受信したと判定すると、処理をＳ２５２に進める。ＣＰＵ２０１は、Ｓ２５２で、通常状態における電源制御の実行指示を、電源制御部１０６に送信するとともに、Ｓ２５３で、メインコントローラ１１０１の初期化を行う。電源制御部１０６は、受信した実行指示に従って、まずＳ２６３で、サブコントローラ１２０１及びサブＤＲＡＭ１２０２（の全チップ）への電力供給を開始（再開）する。更に、電源制御部１０６は、Ｓ２６４で、電源部１０７の制御により、通常状態における電源制御を開始する。
【００７２】
サブコントローラ１２０１及びサブＤＲＡＭ１２０２への電力供給を開始（再開）されると、サブ第２ＣＰＵ１３０２は、まずＳ２７１で、サブＲＯＭ１２０３に格納されたプログラムに基づくブート処理の実行を開始するとともに、以下の処理を行う。具体的には、Ｓ２７２で、サブ第２ＣＰＵ１３０２は、サブＤＲＡＭ ＩＦ１３０９に設けられたレジスタの設定を変更することで、サブＤＲＡＭ１２０２をセルフリフレッシュ状態を解除する。セルフリフレッシュ状態の解除後、Ｓ２７３で、サブ第２ＣＰＵ１３０２は、図１３（Ｂ）に示す手順で、プログラム情報の分散処理を実行する。この分散処理は、サブＤＲＡＭ１２０２の特定の１つのＤＲＡＭチップに集約されているプログラム情報を、複数のＤＲＡＭチップに分散した状態に戻す処理である。
【００７３】
その後、Ｓ２５４で、メインコントローラ１１０１のＣＰＵ２０１及びサブコントローラ１２０１のサブ第２ＣＰＵ１３０２は、メインコントローラ１１０１及びサブコントローラ１２０１間での初期化シーケンスを実行する。以上の処理により、情報処理装置におけるスリープ状態からの復帰が完了する。
【００７４】
＜プログラム情報の集約及び分散処理＞
図１３（Ａ）は、サブ第２ＣＰＵ１３０２によって実行される、プログラム情報の集約処理の手順の例を示すフローチャートである。図１３（Ａ）に示すＳ２３１〜Ｓ２３４の処理はそれぞれ、第１の実施形態におけるＳ１２２〜Ｓ１２５（図７（Ａ））の処理と同様である。
【００７５】
図１３（Ｂ）は、サブ第２ＣＰＵ１３０２によって実行される、プログラム情報の分散処理の手順の例を示すフローチャートである。図１３（Ｂ）に示すＳ２８１〜Ｓ２８３の処理はそれぞれ、第１の実施形態におけるＳ１７２〜Ｓ１７４（図７（Ｂ））の処理と同様である。
【００７６】
本実施形態によれば、メインコントローラ１１０１及びサブコントローラ１２０１を備える情報処理装置においてサブＤＲＡＭ１２０２をセルフリフレッシュ状態にする場合に、サブＤＲＡＭ１２０２の記憶情報を消失させることなく消費電力を低減できる。なお、本実施形態では、サブＤＲＡＭ１２０２をセルフリフレッシュ状態にする場合について説明したが、メインＤＲＡＭ１１０２についても、第１の実施形態と同様の処理を同時に適用可能である。
【００７７】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７８】
１０１：コントローラ、１０２：ＤＲＡＭ、１０７：電源部、１０６：電源制御部、２０１：ＣＰＵ、２０９：ＤＭＡ部、３０１〜３０４：ＤＲＡＭチップ
【図１】
2016122414.tif 000003
【図２】
2016122414.tif 000004
【図３】
2016122414.tif 000005
【図４】
2016122414.tif 000006
【図５】
2016122414.tif 000007
【図６】
2016122414.tif 000008
【図７】
2016122414.tif 000009
【図８】
2016122414.tif 000010
【図９】
2016122414.tif 000011
【図１０】
2016122414.tif 000012
【図１１】
2016122414.tif 000013
【図１２】
2016122414.tif 000014
【図１３】
2016122414.tif 000015