(57)【要約】【課題】アイドル状態における局所的なメモリの電源遮断を可能とすること。【解決手段】本発明は、同一のメモリバスに実装された複数メモリ又は複数メモリ群を備えた情報処理装置であって、前記情報処理装置が、前記複数メモリ又は複数メモリ群は稼動状態であるが実行中のジョブが存在しないアイドル状態であるとき、前記複数メモリ又は複数メモリ群を前記稼動状態からセルフリフレッシュ状態に移行させる手段と、前記複数メモリ又は複数メモリ群がセルフリフレッシュ状態であるとき、前記複数メモリ又は複数メモリ群の一部に対する電源を遮断する手段と、当該一部を除いた前記複数メモリ又は複数メモリ群を前記セルフリフレッシュ状態から前記稼動状態に移行させる手段とを備えたことを特徴とする情報処理装置である。【選択図】図３
2016218749.tif 000002
【特許請求の範囲】
【請求項１】
同一のメモリバスに実装された複数メモリ又は複数メモリ群を備えた情報処理装置であって、
前記情報処理装置が、前記複数メモリ又は複数メモリ群は稼動状態であるが実行中のジョブが存在しないアイドル状態であるとき、前記複数メモリ又は複数メモリ群を前記稼動状態からセルフリフレッシュ状態に移行させる手段と、
前記複数メモリ又は複数メモリ群がセルフリフレッシュ状態であるとき、前記複数メモリ又は複数メモリ群の一部に対する電源を遮断する手段と、
当該一部を除いた前記複数メモリ又は複数メモリ群を前記セルフリフレッシュ状態から前記稼動状態に移行させる手段と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記複数メモリ又は複数メモリ群は、前記情報処理装置を制御する制御手段に設けられ、
前記複数メモリ又は複数メモリ群が、前記稼動状態から前記セルフリフレッシュ状態に移行した後、前記制御手段をスリープ状態に移行させる手段と、
前記一部を除いた前記複数メモリ又は複数メモリ群が前記セルフリフレッシュ状態から前記稼動状態に移行した後、前記制御手段をスリープ状態から復帰させる手段と
を更に備えたことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、各構成要素を統括的に制御することで該情報処理装置を動作させるＣＰＵと、前記複数メモリ又は複数のメモリ群に対する供給電圧を調整するＰＭＵとを備え、
前記ＣＰＵが、前記制御手段が前記スリープ状態に移行したことを示すスリープ移行通知信号を前記ＰＭＵに送信した後、前記複数メモリ又は複数メモリ群の一部に対する電源は、遮断され、
前記ＰＭＵが、前記ＣＰＵに割り込みを通知した後、前記制御手段は、前記スリープ状態から復帰することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記複数メモリ又は複数メモリ群の一部に格納されたデータを、当該一部を除いた前記複数メモリ又は複数メモリ群に退避する手段を更に備えたことを特徴とする請求項１乃至３の何れか一項に記載の情報処理装置。
【請求項５】
前記複数メモリ又は複数メモリ群の一部が、不揮発性であるか否かを判定する手段を更に備えたことを特徴とする請求項１乃至４の何れか一項に記載の情報処理装置。
【請求項６】
同一のメモリバスに実装された複数メモリ又は複数メモリ群を備えた情報処理装置であって、
前記情報処理装置が、前記複数メモリ又は複数メモリ群の一部は稼動状態であり、当該一部を除いた前記複数メモリ又は複数メモリ群は電源遮断状態であって、実行中のジョブが存在しない部分アイドル状態において、前記複数メモリ又は複数メモリ群の一部を前記稼動状態からセルフリフレッシュ状態に移行させる手段と、
前記一部を除いた前記複数メモリ又は複数メモリ群に対する電源を投入する手段と、
前記複数メモリ又は複数メモリ群を前記セルフリフレッシュ状態から前記稼動状態に移行させる手段と
を備えたことを特徴とする情報処理装置。
【請求項７】
同一のメモリバスに実装された複数メモリ又は複数メモリ群を備えた情報処理装置によって実行される情報処理方法であって、
前記情報処理装置が、前記複数メモリ又は複数メモリ群は稼動状態であるが実行中のジョブが存在しないアイドル状態であるとき、前記複数メモリ又は複数メモリ群を前記稼動状態からセルフリフレッシュ状態に移行させるステップと、
前記複数メモリ又は複数メモリ群がセルフリフレッシュ状態であるとき、前記複数メモリ又は複数メモリ群の一部に対する電源を遮断するステップと、
当該一部を除いた前記複数メモリ又は複数メモリ群を前記セルフリフレッシュ状態から前記稼動状態に移行させるステップと
を備えたことを特徴とする情報処理方法。
【請求項８】
同一のメモリバスに実装された複数メモリ又は複数メモリ群を備えた情報処理装置によって実行される情報処理方法であって、
前記情報処理装置が、前記複数メモリ又は複数メモリ群の一部は稼動状態であり、当該一部を除いた前記複数メモリ又は複数メモリ群は電源遮断状態であって、実行中のジョブが存在しない部分アイドル状態において、前記複数メモリ又は複数メモリ群の一部を前記稼動状態からセルフリフレッシュ状態に移行させるステップと、
前記一部を除いた前記複数メモリ又は複数メモリ群に対する電源を投入するステップと、
前記複数メモリ又は複数メモリ群を前記セルフリフレッシュ状態から前記稼動状態に移行させるステップと
を備えたことを特徴とする情報処理方法。
【請求項９】
コンピュータに、請求項７又は８に記載の方法を実行させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの消費電力を低減する技術に関する。
【背景技術】
【０００２】
近年、ＣＰＵや周辺回路用ＬＳＩの処理速度の高速化に伴い、半導体メモリのデータ転送速度の高速化が要求されている。様々な半導体メモリの中の１つに同期型半導体メモリであるＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）がある。ＳＤＲＡＭは、ＬＳＩのシステムクロックに同期して、データの入出力を行う。ＳＤＲＡＭとして例えば、ＤＤＲ（Double Data Rate）２ ＳＤＲＡＭや、ＤＤＲ３ ＳＤＲＡＭ、ＤＤＲ４ ＳＤＲＡＭなどが開発されている。また、これらの揮発性メモリの他に、不揮発性メモリとして例えば、ＭＲＡＭ（Magnetic Random Access Memory）が開発されている。ＭＲＡＭは、電源を遮断してもデータ保持可能であるため、電源を遮断する際にＭＲＡＭからのデータの退避は不要であり、また高速アクセスも可能である。
【０００３】
一方、ＬＳＩ、メモリの回路規模の増大、動作周波数の向上、メモリ容量の増大などに起因して、携帯電話をはじめとする情報機器内部のコントローラの消費電力が増大してしまうという問題が深刻となっている。このため、ＬＳＩ、メモリの設計において、低周波数動作モード、スリープモードなどの動作モードを設けることや、クロックゲーティング、電源遮断などによる、消費電力を抑えるための低消費電力設計が求められている。例えば、ＬＳＩの設計において、ＬＳＩ内部のクロック信号をゲート制御してフリップフロップの状態を保持させるよう設計することで半導体素子のスイッチングによる電力消費を抑えることが知られている。また、ＬＳＩの設計において、機能ごとに電源ドメインを分離し、未使用の機能に対する電源ドメインへの電源供給を停止して、半導体素子のリーク電流をなくすことで消費電力を抑えることが知られている。更に、ＤＤＲメモリの設計において，内部データを保持するために必要最低限なリフレッシュ（電荷を補充する動作）を実行するモード、即ちセルフリフレッシュモードを用意することで、ＤＤＲメモリ未使用時の消費電力を低減させることが知られている。
【０００４】
上述の通り、ＤＤＲメモリをセルフリフレッシュモードで動作させることで、消費電力を低減させる手法が知られている。このような手法を利用する技術として、特許文献１に記載の技術が存在する。特許文献１には、セルフリフレッシュを実行する必要がない一部のメモリに対する回路群に電力を供給しない技術が開示されている。詳細には、特許文献１には、全てのメモリをセルフリフレッシュモードで動作させた上で、セルフリフレッシュ不要なメモリやその周辺回路の電源を遮断することで、スリープ中の消費電力を低減する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平6-282984号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術では、スリープ中の消費電力は低減可能である。しかし、特許文献１では、スリープではない状態（例えばアイドル状態）において、使用する必要のないメモリが電力を無駄に消費してしまうという課題を解決できない。
【０００７】
例えば、ある情報機器が、３２ビット幅のメモリバス上に８ビット幅のＤＤＲメモリが４個搭載されたメモリモジュールを２個備えているものとする。このとき、２個のメモリモジュールの内で使用する必要がないメモリモジュールの電源を遮断し、メモリモジュールを１個だけ稼動させることで、消費電力を低減させることはできていない。
【０００８】
また、同一バス上に複数メモリが実装された状態で、一部のメモリの電源を遮断した場合に、残りの部分のメモリに電気的な負荷が変化してしまうという課題も存在する。
【０００９】
例えば、ある情報機器が、同一バス上にＤＤＲ３ ＳＤＲＡＭを２個備えているものとする（ＲＡＭ０、ＲＡＭ１とする）。そして、ＲＡＭ０の稼動状態を維持しつつ、ＲＡＭ１の電源を遮断し、その後ＲＡＭ１の電源を投入するものとする。図１は、このときの電圧変動の例を示す図である。図１を参照すると、ＲＡＭ１の電源遮断、及び、ＲＡＭ１の電源投入に起因して、ＲＡＭ０の電圧が変動することが分かる。また、図中に破線で示すように、ＲＡＭ０の電圧が半導体技術協会（以下ＪＥＤＥＣ）の仕様で規定される電圧規格範囲（入力ロー電圧（ＶＩＬ）以上かつ入力ハイ電圧（ＶＩＨ）以下）から外れてしまうタイミングが存在することが分かる。このようにＤＤＲ３  ＳＤＲＡＭの電圧がＪＥＤＥＣ仕様で規定される電圧規格範囲から外れた場合、高速処理される制御信号（ＲＡＳ＃、ＣＡＳ＃、ＷＥ＃、ＣＳ＃、Ａｄｄｒ等）の波形が歪み信号を受信するタイミングが変化することで、誤作動の恐れが生じる。例えば、Ａｄｄｒ信号を受信するタイミングが変化すると、アドレス値が確定される前のタイミングでアドレスを読み取ってしまうことにより、本来アクセスすべきでない領域にアクセスしてしまう恐れがある。
【課題を解決するための手段】
【００１０】
本発明は、同一のメモリバスに実装された複数メモリ又は複数メモリ群を備えた情報処理装置であって、前記情報処理装置が、前記複数メモリ又は複数メモリ群は稼動状態であるが実行中のジョブが存在しないアイドル状態であるとき、前記複数メモリ又は複数メモリ群を前記稼動状態からセルフリフレッシュ状態に移行させる手段と、前記複数メモリ又は複数メモリ群がセルフリフレッシュ状態であるとき、前記複数メモリ又は複数メモリ群の一部に対する電源を遮断する手段と、当該一部を除いた前記複数メモリ又は複数メモリ群を前記セルフリフレッシュ状態から前記稼動状態に移行させる手段とを備えたことを特徴とする情報処理装置である。
【発明の効果】
【００１１】
本発明により、アイドル状態における局所的なメモリの電源遮断が可能となる。従って、メモリの消費電力を低減できる。
【図面の簡単な説明】
【００１２】
【図１】電源のオンオフ・オフオンによるＲＡＭの電圧変動の例を示すグラフ
【図２】実施例１に係るシステムの構成を示すブロック図
【図３】実施例１に係る状態遷移図
【図４】実施例１に係るアイドル状態から部分アイドル状態への移行処理のフローチャート
【図５】実施例１に係る部分アイドル状態からアイドル状態への移行処理のフローチャート
【図６】実施例２に係るアイドル状態から部分アイドル状態への移行処理のフローチャート
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について説明する。ただし、以下の実施形態は本発明を限定するものではなく、また、以下で説明されている特徴の組み合わせの全てが本発明の課題解決に必須のものとは限らない。
【００１４】
＜実施例１＞
［システム全体の構成］
図２は、本実施例に係るシステム全体の構成を示すブロック図である。図２に例示するシステムは、ホストコンピュータ２００と、複合機２１０とを備え、ホストコンピュータ２００と複合機２１０とは、外部ネットワーク２９０を介して接続されている。尚、本実施例では、複合機２１０がホストコンピュータ２００に接続されている場合について説明するが、複合機の代わりにＰＣ等の情報処理装置がホストコンピュータに接続されている場合にも本実施例を適用可能である。
【００１５】
ホストコンピュータ２００は、印刷ジョブ（Page Description Language（以下ＰＤＬ）で記述された印刷データとその印刷設定とを含む）を複合機２１０に送信する。そして、複合機２１０は、ホストコンピュータ２００から送信された印刷ジョブに基づいて紙面などの記録媒体に画像を形成する印刷処理を実行する。
【００１６】
［ホストコンピュータの構成］
ホストコンピュータ２００は、アプリケーション２０１と、プリンタドライバ２０２と、ネットワークＩ／Ｆ２０３とを備える。アプリケーション２０１は、ホストコンピュータ２００上で動作するワードやエクセルなどのソフトウェアであり、ユーザは、アプリケーションを用いて、文書を作成することが可能である。アプリケーション２０１を用いて作成された文書データは、プリンタドライバ２０２に送信され、プリンタドライバ２０２は、送信された文書データに基づき印刷データを作成する。この印刷データは、複合機２１０が解釈可能なＬＩＰＳなどのＰＤＬで記述される。そして、ホストコンピュータ２００は、プリンタドライバ２０２によって作成された印刷データを、ネットワークＩ／Ｆ２０３を介して外部ネットワーク２９０経由で複合機２１０に送信する。
【００１７】
［複合機の構成］
複合機２１０は、複合機２１０を制御するコントローラ部２２０と、コントローラ部２２０から送信された画像データに基づき実際に印刷を実行するプリンタ部２５０とを備える。コントローラ部２２０は、ＣＰＵ２２１と、ＲＯＭ２２２と、操作部２２３と、表示部２２４と、インタプリタ２２５と、レンダラ２２６と、画像処理部２２７と、ネットワークＩ／Ｆ２２８と、メモリコントローラ２３０と、ＰＭＵ２３４とを備える。これらの構成要素はシステムバス２２９を介して接続されており、お互いにデータを送受信することが可能である。また、コントローラ部２２０は、第１ＲＡＭ２３１及び第２ＲＡＭ２３２と、第１電源スイッチ２３５及び第２電源スイッチ２３６とを備える。第１ＲＡＭ２３１は、高速通信可能なメモリバス２３３を介してメモリコントローラ２３０と接続されており、第２ＲＡＭ２３２も、同一のメモリバス２３３を介してメモリコントローラ２３０と接続されている。
【００１８】
ＣＰＵ２２１は、ＲＯＭ２２２や不図示のハードディスク（以下ＨＤＤ）等に格納されているプログラムを、第１ＲＡＭ２３１や第２ＲＡＭ２３２に展開し、該展開したプログラムを実行する。これにより、ＣＰＵ２２１は、各構成要素を統括的に制御し、複合機２１０を動作させる。
【００１９】
ＲＯＭ２２２には、複合機２１０の動作を制御するためのプログラムが格納されている。このプログラムには、後述の本実施例に係る処理を実行するためのプログラムが含まれる。
【００２０】
操作部２２３は、ユーザからの入力を受け付けるための操作装置である。操作部２２３は例えば、ハードウェアキーやタッチパネルなどである。表示部２２４は、ユーザへの指示や複合機２１０の状態をユーザに提示するためのユーザインタフェース（以下ＵＩ）画面を表示する。表示部２２４は例えば、液晶ディスプレイである。
【００２１】
インタプリタ２２５は、ホストコンピュータ２００から送信された印刷ジョブに含まれる印刷データを解析して、中間言語データであるディスプレイリストを作成する。レンダラ２２６は、該作成されたディスプレイリストに基づき、ラスタ形式の画像データ（以下、ラスタ画像ともいう）を作成する。画像処理部２２７は、該作成されたラスタ画像に対して、色変換処理、ルックアップテーブルによるγ補正処理、擬似中間調処理等の画像処理を必要に応じて行う。レンダラ２２６により作成されたラスタ画像や画像処理部２２７による処理後の画像データは、プリンタ部２５０に送られる。
【００２２】
ネットワークＩ／Ｆ２２８は、複合機２１０と外部ネットワーク２９０とを接続するためのインターフェイスモジュールである。ネットワークＩ／Ｆ２２８は、イーサネット（登録商標）などの通信プロトコルに基づき外部ネットワーク２９０経由で他の機器（ホストコンピュータ２００など）から印刷ジョブ等のデータを受信する。またネットワークＩ／Ｆ２２８は、複合機２１０のデバイス情報（例えば、ジャム（紙詰まり）状態を示す情報や、使用可能な用紙サイズを示す情報など）を他の機器（ホストコンピュータ２００など）に送信する。このように、複合機２１０は、ネットワークＩ／Ｆ２２８を介して双方向データ通信を行う。
【００２３】
メモリコントローラ２３０は、第１ＲＡＭ２３１及び第２ＲＡＭ２３２を制御し、具体的には、第１ＲＡＭ２３１及び第２ＲＡＭ２３２と他の構成要素との間のデータ送受信を制御する。第１ＲＡＭ２３１及び第２ＲＡＭ２３２は、ＲＯＭ２２２に格納されているプログラムが展開され、ワークメモリとして機能する。ここで、ＲＡＭに展開されるプログラムには、ファームウェア（以下Ｆ／Ｗ）が含まれる。第１ＲＡＭ２３１及び第２ＲＡＭ２３２には、各構成要素により処理が実行される際に作成される一時データなども格納される。
【００２４】
以下の説明では、第１ＲＡＭ２３１及び第２ＲＡＭ２３２がともに、ＤＤＲ３  ＳＤＲＡＭである場合について説明する。ただし、第１ＲＡＭ２３１は揮発性メモリまたは不揮発性のメモリであって良いし、第２ＲＡＭ２３２も揮発性メモリまたは不揮発性のメモリであっても良い。具体的には第１ＲＡＭ２３１及び第２ＲＡＭ２３２は、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ＤＤＲ２  ＳＤＲＡＭ、ＤＤＲ４  ＳＤＲＡＭ、ＳＲＡＭ等であっても良い。また、第１ＲＡＭ２３１及び第２ＲＡＭ２３２は、複数のメモリスロットと該メモリスロットに取り付けられた挿抜可能な複数のメモリデバイスとから構成されたメモリモジュール（複数メモリ群ともいう）によっても実現可能である。具体的には、第１ＲＡＭ２３１及び第２ＲＡＭ２３２として、ＳＩＭＭ（Single In-line Memory Module）やＤＩＭＭ（Dual In-Line Memory Module）等の複数メモリで構成されたモジュールを用いても良い。更に、複合機２１０は、３個以上のメモリデバイス（或いはメモリモジュール）を備えていても良い。
【００２５】
ＰＭＵ（Power Management Unit）２３４は、第１電源スイッチ２３５及び第２電源スイッチ２３６を制御する回路である。ＰＭＵ２３４は、ＣＰＵ２２１の命令に従って第１電源スイッチ２３５や第２電源スイッチ２３６に制御信号（０または１）を送ることで、第１ＲＡＭ２３１や第２ＲＡＭ２３２へ供給する電圧を調整できる。また、ＰＭＵ２３４は、ＣＰＵ２２１に割り込みを通知して、ＣＰＵ２２１を割り込み待ち状態から通常状態に復帰させる機能も有する。
【００２６】
第１電源スイッチ２３５及び第２電源スイッチ２３６は、ＰＭＵ２３４から送信された制御信号（０または１）に従って、第１ＲＡＭ２３１や第２ＲＡＭ２３２に供給する電圧を切り替える。ＰＭＵ２３４が送信する制御信号に応じて、非図示の電源ユニットから供給される電圧VddとVssとのうち一方が、第１ＲＡＭ２３１及び第２ＲＡＭ２３２に供給される。即ち、第１電源スイッチ２３５及び第２電源スイッチ２３６が制御信号１を受信しているとき、第１ＲＡＭ２３１及び第２ＲＡＭ２３２に供給される電圧はVddとなる。一方、第１電源スイッチ２３５及び第２電源スイッチ２３６が制御信号０を受信しているとき、第１ＲＡＭ２３１及び第２ＲＡＭ２３２に供給される電圧はVssとなる。このような供給電圧の切り替えを実現するために、複合機２１０は、例えばＭＯＳＦＥＴ（Metal Oxide Semiconductor Field Effect Transistor）を用いて構成される。また、複合機２１０は、適切な信号レベルを保持するような保護回路が接続された電源回路を用いて構成されても良い。
【００２７】
プリンタ部２５０は、画像データをコントローラ部２２０から受け取って、該受け取った画像データに基づき、トナーを用いて用紙などの記録媒体上に画像を形成する。
【００２８】
複合機２１０の電源が投入されリセットが解除されると、ＣＰＵ２２１は、ＲＯＭ２２２に格納されている起動プログラムを実行することで、システムバス２２９に接続されている各構成要素に対する初期化処理を実行する。尚、以下では、第１ＲＡＭ２３１及び第２ＲＡＭ２３２に対する初期化処理について説明するが、それ以外の構成要素に対する初期化処理については説明を割愛する。
【００２９】
メモリコントローラ２３０は、メモリバス２３３を介して、第１ＲＡＭ２３１及び第２ＲＡＭ２３２に対してコマンドを発行し、メモリアクセスを行う。初期化の際、メモリコントローラ２３０は、第１ＲＡＭ２３１及び第２ＲＡＭ２３２と高速通信を行うためのライトアクセスやリードアクセスのタイミングを調整するキャリブレーションを実行する。
【００３０】
ＲＡＭ等のメモリに対して高速でデータの読み書きを行うためには、遅延調整の設計を適切に行うことが求められる。例えば、メモリから出力されたリードデータを内部のフリップフロップによりキャプチャーする部分や、そのフリップフロップからシステムクロックに同期化させる部分の設計を適切に行うことが求められる。
【００３１】
その同期化したデータの有効範囲を決定するために、メモリコントローラから出力したクロック信号がメモリを経由してデータストローブ信号ＤＱＳとしてメモリコントローラに戻ってくるまでの遅延量を算出する技術が知られている。この値は、ラウンドトリップディレイ（Round-Trip Delay）と呼ばれている。例えば、ＤＤＲ３  ＳＤＲＡＭには、ＪＥＤＥＣ仕様において、リードアクセスタイミングを調整するためのリードレベリング機能やライトアクセスタイミングを調整するためのライトレベリング機能が盛り込まれている。
【００３２】
＜アイドル状態から部分アイドル状態への移行＞
前述の通り、複合機２１０の電源が投入されリセットが解除されると、ＣＰＵ２２１は初期化処理を実行する。本実施例では、リセットが解除され初期化処理が完了した時点において、第１電源スイッチ２３５及び第２電源スイッチ２３６は共にオンの状態であり、従って、第１ＲＡＭ２３１及び第２ＲＡＭ２３２は共に稼動状態であるものとする。ここで本実施例では、第１ＲＡＭ２３１及び第２ＲＡＭ２３２が共に稼動しているが、実行中のジョブが存在しないという状態を、アイドル状態と呼ぶ（図３を参照）。
【００３３】
本実施例では、コントローラ部２２０がアイドル状態のまま所定時間が経過すると、消費電力低減のため、コントローラ部２２０は、第２ＲＡＭ２３２の電源が遮断され第１ＲＡＭ２３１のみが稼動する部分アイドル状態に移行する（図３を参照）。
【００３４】
以下、本実施例に係るアイドル状態から部分アイドル状態への移行処理について、図４の左側に示すフローを用いて説明する。この移行処理は、ＣＰＵ２２１によって実行される。
【００３５】
ステップＳ４０１において、ＣＰＵ２２１は、複数のメモリが存在するか否かを判定する。この判定は例えば、初期化処理時に、メモリモジュールに搭載されているＳＰＤ（Serial Presence Detect）に格納されたデータを読み取ることで実行可能である。或いは、非図示のコントローラに実装されたスイッチの有無によって、判定しても良い。ステップＳ４０１の判定の結果、複数のメモリが存在する場合、ステップＳ４０２に進む。一方、複数のメモリが存在しない場合、処理は終了する。
【００３６】
ステップＳ４０２において、ＣＰＵ２２１は、稼動中の複数メモリのうち電源の遮断対象の第２ＲＡＭ２３２に、継続して使用されるデータがあるか否かを判定する。この判定を実行するにあたって、第２ＲＡＭ２３２にキャッシュデータが格納されている場合、該キャッシュデータをＲＯＭ２２２に書き戻した上で、判定が実行される。ここで、継続して使用されるデータとは、実行中のプログラム自身、アイドル状態で実行される処理において参照されるレジスタ値やデータ、実行中のプログラムによって用いられる一時データなどである。ステップＳ４０２の判定の結果、第２ＲＡＭ２３２に継続して使用されるデータがある場合、ステップＳ４０３に進む。一方、第２ＲＡＭ２３２に継続して使用されるデータが無い場合、ステップＳ４０５に進む。
【００３７】
ステップＳ４０３において、ＣＰＵ２２１は、第２ＲＡＭ２３２中にある継続して使用されるデータを、第１ＲＡＭ２３１等の電源遮断対象外のメモリに退避できるか否かを判定する。例えば、ＣＰＵ２２１は、退避すべき継続使用されるデータの容量と、第１ＲＡＭ２３１の空き容量とを導出し、該空き容量が該データの容量以上であるか否かを判定する。尚、第２ＲＡＭ２３２中にある継続使用されるデータは、不図示のＨＤＤなどの不揮発性メモリに退避しても良い。ステップＳ４０３の判定の結果、退避可能な場合、ステップＳ４０４に進む。一方、退避不可能な場合、処理は終了する。
【００３８】
ステップＳ４０４において、ＣＰＵ２２１は、第２ＲＡＭ２３２中にある継続して使用されるデータを、第１ＲＡＭ２３１等の電源遮断対象外のメモリに退避する。また、ＣＰＵ２２１は、ポインタやキャッシュテーブルのアドレス変更、キャッシュの整合性の確認を実行することで、退避したデータを参照可能にする。次いで、ステップＳ４０５に進む。
【００３９】
ステップＳ４０５において、ＣＰＵ２２１は、メモリのマッピングを変更してメモリ使用領域から第２ＲＡＭ２３２に対応する領域を取り除き、これ以降第２ＲＡＭ２３２にアクセスしないように設定する。次いで、ステップＳ４０６に進む。
【００４０】
ステップＳ４０６において、ＣＰＵ２２１は、ＰＭＵ２３４に対して後述するステップＳ４５２〜Ｓ４５４の処理を実行するための設定を行うよう命令を送る。この設定には、第１ＲＡＭ２３１及び第２ＲＡＭ２３２がセルフリフレッシュモードで動作しコントローラ部２２０がスリープ状態のとき第２ＲＡＭ２３２の電源が遮断されると、第１ＲＡＭ２３１を稼動状態にするようにＰＭＵ２３４を制御する設定が含まれる。尚、セルフリフレッシュモードで動作するメモリの状態を、セルフリフレッシュ状態と呼ぶ。次いで、ステップＳ４０７に進む。
【００４１】
ステップＳ４０７において、ＣＰＵ２２１は、第１ＲＡＭ２３１及び第２ＲＡＭ２３２をセルフリフレッシュ状態にする。次いで、ステップＳ４０８に進む。
【００４２】
ステップＳ４０８において、ＣＰＵ２２１は、コントローラ部２２０をスリープ状態に移行させる。具体的には、例えばＣＰＵ２２１は、メモリコントローラ２３０をはじめとするスリープ状態では不要な機能モジュールへのクロック信号の供給を停止し、且つ、制御信号を低周波な信号に変更する。また、ＣＰＵ２２１は、ＰＭＵ２３４に対しコントローラ部２２０がスリープ状態に移行したことを示すスリープ移行通知信号を送る。更に、ＣＰＵ２２１は、自身の状態を割り込み待ち状態に移行させる。割り込み待ち状態とは、ＣＰＵ２２１が割り込みを受けると通常状態に復帰する状態である。尚、本実施例では、ＰＭＵ２３４が通知した割り込みを受けることで、ＣＰＵ２２１は割り込み待ち状態から通常状態に復帰するものとする。ただし、ＵＳＢ等の任意のデバイスが、複合機２１０が備える外部Ｉ／Ｆ（不図示）に接続され、或いは、ネットワークＩ／Ｆ２２８を介してアクセス要求することで、ＣＰＵ２２１が通常状態に復帰するように構成しても良い。ステップＳ４０８の処理が完了すると、図３に示すスリープ状態となる。次いで、ステップＳ４０９に進む。
【００４３】
ステップＳ４０９において、ＣＰＵ２２１は、ＰＭＵ２３４から割り込みが通知されたか否かを判定する。ステップＳ４０９の判定の結果、ＰＭＵ２３４から割り込みが通知された場合、ステップＳ４１０に進む。ここで割り込みが通知されたということは、第１ＲＡＭ２３１は稼動状態になっているが、第２ＲＡＭは電源遮断状態（電源オフ状態）であることを示す（詳細は後述する）。一方、ステップＳ４０９の判定の結果、ＰＭＵ２３４から割り込みが未だ通知されていない場合、割り込みが通知されるまで待機する。
【００４４】
ステップＳ４１０において、ＣＰＵ２２１は、自身の状態を割り込み待ち状態から通常状態に復帰させた上で、コントローラ部２２０をスリープ状態から復帰させる。具体的には、例えばＣＰＵ２２１は、ステップＳ４０８で実行したクロック信号の供給停止を解除し、且つ、ステップＳ４０８で低周波な信号に変更した制御信号を元の高周波な信号に戻す。また、ＣＰＵ２２１は、第１ＲＡＭ２３１や不図示のＰＨＹのタイミング調整のため、キャリブレーションを実行する。ステップＳ４１０の処理が完了すると、図３に示す部分アイドル状態となる。
【００４５】
続いて、上記のＣＰＵ２２１が実行する処理と並行して実行される電源制御処理について、図４の右側に示すフローを用いて説明する。この電源制御処理は、ＰＭＵ２３４によって実行される。
【００４６】
ステップＳ４５１において、ＰＭＵ２３４は、ステップＳ４０６でＣＰＵ２２１から送られた命令に従って、ステップＳ４５２〜Ｓ４５４の処理を実行するための設定を内部レジスタに書き込む。次いで、ステップＳ４５２に進む。
【００４７】
ステップＳ４５２において、ＰＭＵ２３４は、ステップＳ４０８でＣＰＵ２２１から送られたスリープ移行通知を検知したか否かにより、コントローラ部２２０がスリープ状態に移行したか否かを判定する。ステップＳ４５２の判定の結果、コントローラ部２２０がスリープ状態に移行した場合、ステップＳ４５３に進む。一方、コントローラ部２２０がスリープ状態に移行していない場合、スリープ移行通知を検知するまで待機する。尚、スリープ移行通知ではなく内部タイマーを用いて、スリープ状態に移行するのに十分な時間が経過したか否かを判定することで、スリープ状態に移行したか否かを判定しても良い。
【００４８】
ステップＳ４５３において、ＰＭＵ２３４は、第２電源スイッチ２３６に送る制御信号を１から０に変更し、第２ＲＡＭ２３２に供給する電圧をVddからVssにすることで、第２ＲＡＭ２３２を電源遮断状態にする。この際、ＣＰＵ２２１は割り込み待ち状態でありコントローラ部２２０はスリープ状態であるため、第１ＲＡＭ２３１及び第２ＲＡＭ２３２がアクセスされることはなく、また、第１ＲＡＭ２３１及び第２ＲＡＭ２３２は共にセルフリフレッシュ状態である。従って、第２ＲＡＭ２３２の電源を安全に遮断（オフ）することが可能である。次いで、ステップＳ４５４に進む。
【００４９】
ステップＳ４５４において、ＰＭＵ２３４は、第１ＲＡＭ２３１をセルフリフレッシュ状態から稼動状態に移行させる。そして、ＰＭＵ２３４は、ＣＰＵ２２１に割り込みを通知する。尚、割り込みは、ＣＰＵ２２１が検知可能なパルス幅の信号で生成しても良い。また、割り込みが通知されたＣＰＵ２２１が割り込みクリアをＰＭＵ２３４に通知することで、ＰＭＵ２３４による割り込み通知が解除されるようにコントローラ部２２０を構成しても良い。
【００５０】
以上が、アイドル状態から部分アイドル状態への移行処理の内容である。
【００５１】
＜部分アイドル状態からアイドル状態への移行＞
部分アイドル状態時にコントローラ部２２０が外部デバイス等からデータ処理命令を受け取った場合、ＣＰＵ２２１は、該受け取ったデータ処理命令に応じて、コントローラ部２２０を部分アイドル状態からアイドル状態に移行させるか否かを判定する。
【００５２】
この判定手法の例としては、ＣＰＵ２２１は、受け取ったデータ処理命令に対して使用するメモリ量の見込みを導出し、該導出した使用するメモリ量の見込みと、現在使用中のメモリマップのメモリ領域の空き容量とを比較することが考えられる。この場合、ＣＰＵ２２１は、メモリ領域の空き容量が使用するメモリ量の見込みより少ないとき、部分アイドル状態からアイドル状態に移行させると判定する。
【００５３】
使用するメモリ容量の見込みを導出する手法の例としては、データ処理命令と、使用するメモリ量とが対応付けされて保持されたテーブルを用いて導出することが考えられる。或いは、メモリ使用量がデータ処理命令に含まれており、該メモリ使用量を読み取ることで、使用するメモリ容量の見込みを導出しても良い。
【００５４】
尚、複合機２１０が受信したデータがコントローラ部２２０宛てパケットを含むか否かに基づいて、部分アイドル状態からアイドル状態に移行させるか否かの判定を行っても良い。この場合、複合機２１０が受信したデータがコントローラ部２２０宛てパケットを含むとき、部分アイドル状態からアイドル状態に移行する。一方、複合機２１０が受信したデータがコントローラ部２２０宛てパケットを含まないとき、部分アイドル状態が維持される。
【００５５】
以下、本実施例に係る部分アイドル状態からアイドル状態への移行処理について、図５の左側に示すフローを用いて説明する。この移行処理は、ＣＰＵ２２１によって実行される。
【００５６】
ステップＳ５０１において、ＣＰＵ２２１は、ＰＭＵ２３４に対して後述するステップＳ５５２〜Ｓ５５４の処理を実行するための設定を行うよう命令を送る。次いで、ステップＳ５０２に進む。
【００５７】
ステップＳ５０２において、ＣＰＵ２２１は、稼動状態にある第１ＲＡＭ２３１をセルフリフレッシュ状態にした上で、コントローラ部２２０をスリープ状態に移行させる。具体的には、例えばＣＰＵ２２１は、メモリコントローラ２３０をはじめとするスリープ状態では不要な機能モジュールへのクロック信号の供給を停止し、且つ、制御信号を低周波な信号に変更する。また、ＣＰＵ２２１は、ＰＭＵ２３４に対しスリープ移行通知信号を送る。更に、ＣＰＵ２２１は、自身の状態を割り込み待ち状態に移行させる。次いで、ステップＳ５０３に進む。
【００５８】
ステップＳ５０３において、ＣＰＵ２２１は、ＰＭＵ２３４から割り込みが通知されたか否かを判定する。ステップＳ５０３の判定の結果、ＰＭＵ２３４から割り込みが通知された場合、ステップＳ５０４に進む。ここで割り込みが通知されたということは、第１ＲＡＭ２３１及び第２ＲＡＭ２３２が共に稼動状態になっていることを示す（詳細は後述する）。一方、ステップＳ５０３の判定の結果、ＰＭＵ２３４から割り込みが未だ通知されていない場合、割り込みが通知されるまで待機する。
【００５９】
ステップＳ５０４において、ＣＰＵ２２１は、自身の状態を割り込み待ち状態から通常状態に復帰させた上で、コントローラ部２２０をスリープ状態から復帰させる。具体的には、例えばＣＰＵ２２１は、ステップＳ５０２で実行したクロック信号の供給停止を解除し、且つ、ステップＳ５０２で低周波な信号に変更した制御信号を元の高周波な信号に戻す。そして、ＣＰＵ２２１は、ステップＳ４０５で変更したメモリのマッピングを元に戻し、第２ＲＡＭ２３２に対応する領域を使用可能にする。ここでＣＰＵ２２１は、第１ＲＡＭ２３１及び第２ＲＡＭ２３２や不図示のＰＨＹのタイミング調整のため、キャリブレーションを実行する。次いで、ステップＳ５０５に進む。
【００６０】
ステップＳ５０５において、ＣＰＵ２２１は、ステップＳ４０４で第２ＲＡＭ２３２から退避したデータがあるか否かを判定する。ステップＳ５０５の判定の結果、退避したデータがある場合、ステップＳ５０６に進む。一方、退避したデータがない場合、処理は終了する。
【００６１】
ステップＳ５０６において、ＣＰＵ２２１は、第１ＲＡＭ２３１や不図示のＨＤ等に退避させていたデータを第２ＲＡＭ２３２に書き戻す。この際、退避させていたデータと該データの元の格納場所とが対応付けされたテーブルを用いること等により、データを元の格納場所に書き戻すことが可能である。
【００６２】
続いて、上記のＣＰＵ２２１が実行する処理と並行して実行される電源制御処理について、図５の右側に示すフローを用いて説明する。この電源制御処理は、ＰＭＵ２３４によって実行される。
【００６３】
ステップＳ５５１において、ＰＭＵ２３４は、ステップＳ５０１でＣＰＵ２２１から送られた命令に従って、ステップＳ５５２〜Ｓ５５４の処理を実行するための設定を内部レジスタに書き込む。次いで、ステップＳ５５２に進む。
【００６４】
ステップＳ５５２において、ＰＭＵ２３４は、ステップＳ５０２でＣＰＵ２２１から送られたスリープ移行通知を検知したか否かに基づき、コントローラ部２２０がスリープ状態に移行したか否かを判定する。ステップＳ５５２の判定の結果、コントローラ部２２０がスリープ状態に移行した場合、ステップＳ５５３に進む。一方、コントローラ部２２０がスリープ状態に移行していない場合、スリープ移行通知を検知するまで待機する。尚、スリープ移行通知ではなく内部タイマーを用いて、スリープ状態に移行するのに十分な時間が経過したか否かを判定することで、スリープ状態に移行したか否かを判定しても良い。
【００６５】
ステップＳ５５３において、ＰＭＵ２３４は、第２電源スイッチ２３６に送る制御信号を０から１に変更し、第２ＲＡＭ２３２に供給する電圧をVssからVddにすることで、第２ＲＡＭ２３２をセルフリフレッシュ状態にする。この際、ＣＰＵ２２１は割り込み待ち状態且つコントローラ部２２０はスリープ状態であるため、第１ＲＡＭ２３１及び第２ＲＡＭ２３２がアクセスされることはなく、また、第１ＲＡＭ２３１はセルフリフレッシュ状態である。従って、第２ＲＡＭ２３２の電源を安全に投入（オン）することが可能である。次いで、ステップＳ５５４に進む。
【００６６】
ステップＳ５５４において、ＰＭＵ２３４は、第１ＲＡＭ２３１及び第２ＲＡＭ２３２をセルフリフレッシュ状態から稼動状態に移行させる。そして、ＰＭＵ２３４は、ＣＰＵ２２１に割り込みを通知する。尚、割り込みは、ＣＰＵ２２１が検知可能なパルス幅の信号で生成しても良い。また、割り込みが通知されたＣＰＵ２２１が割り込みクリアをＰＭＵ２３４に通知することで、ＰＭＵ２３４による割り込み通知が解除されるようにコントローラ部２２０を構成しても良い。
【００６７】
以上が、部分アイドル状態からアイドル状態への移行処理の内容である。
【００６８】
＜実施例２＞
実施例１では、第２ＲＡＭ２３２が揮発性メモリ（具体的にはＤＤＲ３  ＳＤＲＡＭ）である場合について説明した。本実施例では、第２ＲＡＭ２３２が不揮発性メモリである場合におけるアイドル状態から部分アイドル状態への移行処理ついて、図６を用いて説明する。ただし、以下の説明において、実施例１と共通する内容については、説明を簡略化または割愛する。
【００６９】
ステップＳ６０１において、ＣＰＵ２２１は、複数のメモリが存在するか否かを判定する。この判定は例えば、メモリモジュールに搭載されているＳＰＤに格納されたデータを読み取ることで実行可能である。ステップＳ６０１の判定の結果、複数のメモリが存在する場合、ステップＳ６０２に進む。一方、複数のメモリが存在しない場合、処理は終了する。
【００７０】
ステップＳ６０２において、ＣＰＵ２２１は、電源の遮断対象の第２ＲＡＭ２３２が不揮発性であるか否かを判定する。この判定は例えば、ステップＳ６０１で読み取ったＳＰＤ中のデータに基づいて実行しても良い。ステップＳ６０２の判定の結果、第２ＲＡＭ２３２が不揮発性である場合、ステップＳ６０６に進む。この場合、第２ＲＡＭ２３２に格納されているデータを第１ＲＡＭ２３１に退避する必要は無い。一方、ステップＳ６０２の判定の結果、第２ＲＡＭ２３２が不揮発性でない場合、ステップＳ６０３に進み、実施例１と同様の処理が実行される。
【００７１】
ステップＳ６０３以降の処理は、実施例１と同様である。
【００７２】
＜その他の実施例＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2016218749.tif 000003
【図２】
2016218749.tif 000004
【図３】
2016218749.tif 000005
【図４】
2016218749.tif 000006
【図５】
2016218749.tif 000007
【図６】
2016218749.tif 000008