JP2016218749A - 情報処理装置、情報処理方法、及びプログラム - Google Patents
情報処理装置、情報処理方法、及びプログラム Download PDFInfo
- Publication number
- JP2016218749A JP2016218749A JP2015103122A JP2015103122A JP2016218749A JP 2016218749 A JP2016218749 A JP 2016218749A JP 2015103122 A JP2015103122 A JP 2015103122A JP 2015103122 A JP2015103122 A JP 2015103122A JP 2016218749 A JP2016218749 A JP 2016218749A
- Authority
- JP
- Japan
- Prior art keywords
- memories
- state
- memory groups
- information processing
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Memory System (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Power Sources (AREA)
Abstract
【課題】アイドル状態における局所的なメモリの電源遮断を可能とすること。【解決手段】本発明は、同一のメモリバスに実装された複数メモリ又は複数メモリ群を備えた情報処理装置であって、前記情報処理装置が、前記複数メモリ又は複数メモリ群は稼動状態であるが実行中のジョブが存在しないアイドル状態であるとき、前記複数メモリ又は複数メモリ群を前記稼動状態からセルフリフレッシュ状態に移行させる手段と、前記複数メモリ又は複数メモリ群がセルフリフレッシュ状態であるとき、前記複数メモリ又は複数メモリ群の一部に対する電源を遮断する手段と、当該一部を除いた前記複数メモリ又は複数メモリ群を前記セルフリフレッシュ状態から前記稼動状態に移行させる手段とを備えたことを特徴とする情報処理装置である。【選択図】図3
Description
本発明は、メモリの消費電力を低減する技術に関する。
近年、CPUや周辺回路用LSIの処理速度の高速化に伴い、半導体メモリのデータ転送速度の高速化が要求されている。様々な半導体メモリの中の1つに同期型半導体メモリであるSDRAM(Synchronous Dynamic Random Access Memory)がある。SDRAMは、LSIのシステムクロックに同期して、データの入出力を行う。SDRAMとして例えば、DDR(Double Data Rate)2 SDRAMや、DDR3 SDRAM、DDR4 SDRAMなどが開発されている。また、これらの揮発性メモリの他に、不揮発性メモリとして例えば、MRAM(Magnetic Random Access Memory)が開発されている。MRAMは、電源を遮断してもデータ保持可能であるため、電源を遮断する際にMRAMからのデータの退避は不要であり、また高速アクセスも可能である。
一方、LSI、メモリの回路規模の増大、動作周波数の向上、メモリ容量の増大などに起因して、携帯電話をはじめとする情報機器内部のコントローラの消費電力が増大してしまうという問題が深刻となっている。このため、LSI、メモリの設計において、低周波数動作モード、スリープモードなどの動作モードを設けることや、クロックゲーティング、電源遮断などによる、消費電力を抑えるための低消費電力設計が求められている。例えば、LSIの設計において、LSI内部のクロック信号をゲート制御してフリップフロップの状態を保持させるよう設計することで半導体素子のスイッチングによる電力消費を抑えることが知られている。また、LSIの設計において、機能ごとに電源ドメインを分離し、未使用の機能に対する電源ドメインへの電源供給を停止して、半導体素子のリーク電流をなくすことで消費電力を抑えることが知られている。更に、DDRメモリの設計において,内部データを保持するために必要最低限なリフレッシュ(電荷を補充する動作)を実行するモード、即ちセルフリフレッシュモードを用意することで、DDRメモリ未使用時の消費電力を低減させることが知られている。
上述の通り、DDRメモリをセルフリフレッシュモードで動作させることで、消費電力を低減させる手法が知られている。このような手法を利用する技術として、特許文献1に記載の技術が存在する。特許文献1には、セルフリフレッシュを実行する必要がない一部のメモリに対する回路群に電力を供給しない技術が開示されている。詳細には、特許文献1には、全てのメモリをセルフリフレッシュモードで動作させた上で、セルフリフレッシュ不要なメモリやその周辺回路の電源を遮断することで、スリープ中の消費電力を低減する技術が開示されている。
特許文献1に記載の技術では、スリープ中の消費電力は低減可能である。しかし、特許文献1では、スリープではない状態(例えばアイドル状態)において、使用する必要のないメモリが電力を無駄に消費してしまうという課題を解決できない。
例えば、ある情報機器が、32ビット幅のメモリバス上に8ビット幅のDDRメモリが4個搭載されたメモリモジュールを2個備えているものとする。このとき、2個のメモリモジュールの内で使用する必要がないメモリモジュールの電源を遮断し、メモリモジュールを1個だけ稼動させることで、消費電力を低減させることはできていない。
また、同一バス上に複数メモリが実装された状態で、一部のメモリの電源を遮断した場合に、残りの部分のメモリに電気的な負荷が変化してしまうという課題も存在する。
例えば、ある情報機器が、同一バス上にDDR3 SDRAMを2個備えているものとする(RAM0、RAM1とする)。そして、RAM0の稼動状態を維持しつつ、RAM1の電源を遮断し、その後RAM1の電源を投入するものとする。図1は、このときの電圧変動の例を示す図である。図1を参照すると、RAM1の電源遮断、及び、RAM1の電源投入に起因して、RAM0の電圧が変動することが分かる。また、図中に破線で示すように、RAM0の電圧が半導体技術協会(以下JEDEC)の仕様で規定される電圧規格範囲(入力ロー電圧(VIL)以上かつ入力ハイ電圧(VIH)以下)から外れてしまうタイミングが存在することが分かる。このようにDDR3 SDRAMの電圧がJEDEC仕様で規定される電圧規格範囲から外れた場合、高速処理される制御信号(RAS#、CAS#、WE#、CS#、Addr等)の波形が歪み信号を受信するタイミングが変化することで、誤作動の恐れが生じる。例えば、Addr信号を受信するタイミングが変化すると、アドレス値が確定される前のタイミングでアドレスを読み取ってしまうことにより、本来アクセスすべきでない領域にアクセスしてしまう恐れがある。
本発明は、同一のメモリバスに実装された複数メモリ又は複数メモリ群を備えた情報処理装置であって、前記情報処理装置が、前記複数メモリ又は複数メモリ群は稼動状態であるが実行中のジョブが存在しないアイドル状態であるとき、前記複数メモリ又は複数メモリ群を前記稼動状態からセルフリフレッシュ状態に移行させる手段と、前記複数メモリ又は複数メモリ群がセルフリフレッシュ状態であるとき、前記複数メモリ又は複数メモリ群の一部に対する電源を遮断する手段と、当該一部を除いた前記複数メモリ又は複数メモリ群を前記セルフリフレッシュ状態から前記稼動状態に移行させる手段とを備えたことを特徴とする情報処理装置である。
本発明により、アイドル状態における局所的なメモリの電源遮断が可能となる。従って、メモリの消費電力を低減できる。
以下、本発明の実施形態について説明する。ただし、以下の実施形態は本発明を限定するものではなく、また、以下で説明されている特徴の組み合わせの全てが本発明の課題解決に必須のものとは限らない。
<実施例1>
[システム全体の構成]
図2は、本実施例に係るシステム全体の構成を示すブロック図である。図2に例示するシステムは、ホストコンピュータ200と、複合機210とを備え、ホストコンピュータ200と複合機210とは、外部ネットワーク290を介して接続されている。尚、本実施例では、複合機210がホストコンピュータ200に接続されている場合について説明するが、複合機の代わりにPC等の情報処理装置がホストコンピュータに接続されている場合にも本実施例を適用可能である。
[システム全体の構成]
図2は、本実施例に係るシステム全体の構成を示すブロック図である。図2に例示するシステムは、ホストコンピュータ200と、複合機210とを備え、ホストコンピュータ200と複合機210とは、外部ネットワーク290を介して接続されている。尚、本実施例では、複合機210がホストコンピュータ200に接続されている場合について説明するが、複合機の代わりにPC等の情報処理装置がホストコンピュータに接続されている場合にも本実施例を適用可能である。
ホストコンピュータ200は、印刷ジョブ(Page Description Language(以下PDL)で記述された印刷データとその印刷設定とを含む)を複合機210に送信する。そして、複合機210は、ホストコンピュータ200から送信された印刷ジョブに基づいて紙面などの記録媒体に画像を形成する印刷処理を実行する。
[ホストコンピュータの構成]
ホストコンピュータ200は、アプリケーション201と、プリンタドライバ202と、ネットワークI/F203とを備える。アプリケーション201は、ホストコンピュータ200上で動作するワードやエクセルなどのソフトウェアであり、ユーザは、アプリケーションを用いて、文書を作成することが可能である。アプリケーション201を用いて作成された文書データは、プリンタドライバ202に送信され、プリンタドライバ202は、送信された文書データに基づき印刷データを作成する。この印刷データは、複合機210が解釈可能なLIPSなどのPDLで記述される。そして、ホストコンピュータ200は、プリンタドライバ202によって作成された印刷データを、ネットワークI/F203を介して外部ネットワーク290経由で複合機210に送信する。
ホストコンピュータ200は、アプリケーション201と、プリンタドライバ202と、ネットワークI/F203とを備える。アプリケーション201は、ホストコンピュータ200上で動作するワードやエクセルなどのソフトウェアであり、ユーザは、アプリケーションを用いて、文書を作成することが可能である。アプリケーション201を用いて作成された文書データは、プリンタドライバ202に送信され、プリンタドライバ202は、送信された文書データに基づき印刷データを作成する。この印刷データは、複合機210が解釈可能なLIPSなどのPDLで記述される。そして、ホストコンピュータ200は、プリンタドライバ202によって作成された印刷データを、ネットワークI/F203を介して外部ネットワーク290経由で複合機210に送信する。
[複合機の構成]
複合機210は、複合機210を制御するコントローラ部220と、コントローラ部220から送信された画像データに基づき実際に印刷を実行するプリンタ部250とを備える。コントローラ部220は、CPU221と、ROM222と、操作部223と、表示部224と、インタプリタ225と、レンダラ226と、画像処理部227と、ネットワークI/F228と、メモリコントローラ230と、PMU234とを備える。これらの構成要素はシステムバス229を介して接続されており、お互いにデータを送受信することが可能である。また、コントローラ部220は、第1RAM231及び第2RAM232と、第1電源スイッチ235及び第2電源スイッチ236とを備える。第1RAM231は、高速通信可能なメモリバス233を介してメモリコントローラ230と接続されており、第2RAM232も、同一のメモリバス233を介してメモリコントローラ230と接続されている。
複合機210は、複合機210を制御するコントローラ部220と、コントローラ部220から送信された画像データに基づき実際に印刷を実行するプリンタ部250とを備える。コントローラ部220は、CPU221と、ROM222と、操作部223と、表示部224と、インタプリタ225と、レンダラ226と、画像処理部227と、ネットワークI/F228と、メモリコントローラ230と、PMU234とを備える。これらの構成要素はシステムバス229を介して接続されており、お互いにデータを送受信することが可能である。また、コントローラ部220は、第1RAM231及び第2RAM232と、第1電源スイッチ235及び第2電源スイッチ236とを備える。第1RAM231は、高速通信可能なメモリバス233を介してメモリコントローラ230と接続されており、第2RAM232も、同一のメモリバス233を介してメモリコントローラ230と接続されている。
CPU221は、ROM222や不図示のハードディスク(以下HDD)等に格納されているプログラムを、第1RAM231や第2RAM232に展開し、該展開したプログラムを実行する。これにより、CPU221は、各構成要素を統括的に制御し、複合機210を動作させる。
ROM222には、複合機210の動作を制御するためのプログラムが格納されている。このプログラムには、後述の本実施例に係る処理を実行するためのプログラムが含まれる。
操作部223は、ユーザからの入力を受け付けるための操作装置である。操作部223は例えば、ハードウェアキーやタッチパネルなどである。表示部224は、ユーザへの指示や複合機210の状態をユーザに提示するためのユーザインタフェース(以下UI)画面を表示する。表示部224は例えば、液晶ディスプレイである。
インタプリタ225は、ホストコンピュータ200から送信された印刷ジョブに含まれる印刷データを解析して、中間言語データであるディスプレイリストを作成する。レンダラ226は、該作成されたディスプレイリストに基づき、ラスタ形式の画像データ(以下、ラスタ画像ともいう)を作成する。画像処理部227は、該作成されたラスタ画像に対して、色変換処理、ルックアップテーブルによるγ補正処理、擬似中間調処理等の画像処理を必要に応じて行う。レンダラ226により作成されたラスタ画像や画像処理部227による処理後の画像データは、プリンタ部250に送られる。
ネットワークI/F228は、複合機210と外部ネットワーク290とを接続するためのインターフェイスモジュールである。ネットワークI/F228は、イーサネット(登録商標)などの通信プロトコルに基づき外部ネットワーク290経由で他の機器(ホストコンピュータ200など)から印刷ジョブ等のデータを受信する。またネットワークI/F228は、複合機210のデバイス情報(例えば、ジャム(紙詰まり)状態を示す情報や、使用可能な用紙サイズを示す情報など)を他の機器(ホストコンピュータ200など)に送信する。このように、複合機210は、ネットワークI/F228を介して双方向データ通信を行う。
メモリコントローラ230は、第1RAM231及び第2RAM232を制御し、具体的には、第1RAM231及び第2RAM232と他の構成要素との間のデータ送受信を制御する。第1RAM231及び第2RAM232は、ROM222に格納されているプログラムが展開され、ワークメモリとして機能する。ここで、RAMに展開されるプログラムには、ファームウェア(以下F/W)が含まれる。第1RAM231及び第2RAM232には、各構成要素により処理が実行される際に作成される一時データなども格納される。
以下の説明では、第1RAM231及び第2RAM232がともに、DDR3 SDRAMである場合について説明する。ただし、第1RAM231は揮発性メモリまたは不揮発性のメモリであって良いし、第2RAM232も揮発性メモリまたは不揮発性のメモリであっても良い。具体的には第1RAM231及び第2RAM232は、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR4 SDRAM、SRAM等であっても良い。また、第1RAM231及び第2RAM232は、複数のメモリスロットと該メモリスロットに取り付けられた挿抜可能な複数のメモリデバイスとから構成されたメモリモジュール(複数メモリ群ともいう)によっても実現可能である。具体的には、第1RAM231及び第2RAM232として、SIMM(Single In-line Memory Module)やDIMM(Dual In-Line Memory Module)等の複数メモリで構成されたモジュールを用いても良い。更に、複合機210は、3個以上のメモリデバイス(或いはメモリモジュール)を備えていても良い。
PMU(Power Management Unit)234は、第1電源スイッチ235及び第2電源スイッチ236を制御する回路である。PMU234は、CPU221の命令に従って第1電源スイッチ235や第2電源スイッチ236に制御信号(0または1)を送ることで、第1RAM231や第2RAM232へ供給する電圧を調整できる。また、PMU234は、CPU221に割り込みを通知して、CPU221を割り込み待ち状態から通常状態に復帰させる機能も有する。
第1電源スイッチ235及び第2電源スイッチ236は、PMU234から送信された制御信号(0または1)に従って、第1RAM231や第2RAM232に供給する電圧を切り替える。PMU234が送信する制御信号に応じて、非図示の電源ユニットから供給される電圧VddとVssとのうち一方が、第1RAM231及び第2RAM232に供給される。即ち、第1電源スイッチ235及び第2電源スイッチ236が制御信号1を受信しているとき、第1RAM231及び第2RAM232に供給される電圧はVddとなる。一方、第1電源スイッチ235及び第2電源スイッチ236が制御信号0を受信しているとき、第1RAM231及び第2RAM232に供給される電圧はVssとなる。このような供給電圧の切り替えを実現するために、複合機210は、例えばMOSFET(Metal Oxide Semiconductor Field Effect Transistor)を用いて構成される。また、複合機210は、適切な信号レベルを保持するような保護回路が接続された電源回路を用いて構成されても良い。
プリンタ部250は、画像データをコントローラ部220から受け取って、該受け取った画像データに基づき、トナーを用いて用紙などの記録媒体上に画像を形成する。
複合機210の電源が投入されリセットが解除されると、CPU221は、ROM222に格納されている起動プログラムを実行することで、システムバス229に接続されている各構成要素に対する初期化処理を実行する。尚、以下では、第1RAM231及び第2RAM232に対する初期化処理について説明するが、それ以外の構成要素に対する初期化処理については説明を割愛する。
メモリコントローラ230は、メモリバス233を介して、第1RAM231及び第2RAM232に対してコマンドを発行し、メモリアクセスを行う。初期化の際、メモリコントローラ230は、第1RAM231及び第2RAM232と高速通信を行うためのライトアクセスやリードアクセスのタイミングを調整するキャリブレーションを実行する。
RAM等のメモリに対して高速でデータの読み書きを行うためには、遅延調整の設計を適切に行うことが求められる。例えば、メモリから出力されたリードデータを内部のフリップフロップによりキャプチャーする部分や、そのフリップフロップからシステムクロックに同期化させる部分の設計を適切に行うことが求められる。
その同期化したデータの有効範囲を決定するために、メモリコントローラから出力したクロック信号がメモリを経由してデータストローブ信号DQSとしてメモリコントローラに戻ってくるまでの遅延量を算出する技術が知られている。この値は、ラウンドトリップディレイ(Round-Trip Delay)と呼ばれている。例えば、DDR3 SDRAMには、JEDEC仕様において、リードアクセスタイミングを調整するためのリードレベリング機能やライトアクセスタイミングを調整するためのライトレベリング機能が盛り込まれている。
<アイドル状態から部分アイドル状態への移行>
前述の通り、複合機210の電源が投入されリセットが解除されると、CPU221は初期化処理を実行する。本実施例では、リセットが解除され初期化処理が完了した時点において、第1電源スイッチ235及び第2電源スイッチ236は共にオンの状態であり、従って、第1RAM231及び第2RAM232は共に稼動状態であるものとする。ここで本実施例では、第1RAM231及び第2RAM232が共に稼動しているが、実行中のジョブが存在しないという状態を、アイドル状態と呼ぶ(図3を参照)。
前述の通り、複合機210の電源が投入されリセットが解除されると、CPU221は初期化処理を実行する。本実施例では、リセットが解除され初期化処理が完了した時点において、第1電源スイッチ235及び第2電源スイッチ236は共にオンの状態であり、従って、第1RAM231及び第2RAM232は共に稼動状態であるものとする。ここで本実施例では、第1RAM231及び第2RAM232が共に稼動しているが、実行中のジョブが存在しないという状態を、アイドル状態と呼ぶ(図3を参照)。
本実施例では、コントローラ部220がアイドル状態のまま所定時間が経過すると、消費電力低減のため、コントローラ部220は、第2RAM232の電源が遮断され第1RAM231のみが稼動する部分アイドル状態に移行する(図3を参照)。
以下、本実施例に係るアイドル状態から部分アイドル状態への移行処理について、図4の左側に示すフローを用いて説明する。この移行処理は、CPU221によって実行される。
ステップS401において、CPU221は、複数のメモリが存在するか否かを判定する。この判定は例えば、初期化処理時に、メモリモジュールに搭載されているSPD(Serial Presence Detect)に格納されたデータを読み取ることで実行可能である。或いは、非図示のコントローラに実装されたスイッチの有無によって、判定しても良い。ステップS401の判定の結果、複数のメモリが存在する場合、ステップS402に進む。一方、複数のメモリが存在しない場合、処理は終了する。
ステップS402において、CPU221は、稼動中の複数メモリのうち電源の遮断対象の第2RAM232に、継続して使用されるデータがあるか否かを判定する。この判定を実行するにあたって、第2RAM232にキャッシュデータが格納されている場合、該キャッシュデータをROM222に書き戻した上で、判定が実行される。ここで、継続して使用されるデータとは、実行中のプログラム自身、アイドル状態で実行される処理において参照されるレジスタ値やデータ、実行中のプログラムによって用いられる一時データなどである。ステップS402の判定の結果、第2RAM232に継続して使用されるデータがある場合、ステップS403に進む。一方、第2RAM232に継続して使用されるデータが無い場合、ステップS405に進む。
ステップS403において、CPU221は、第2RAM232中にある継続して使用されるデータを、第1RAM231等の電源遮断対象外のメモリに退避できるか否かを判定する。例えば、CPU221は、退避すべき継続使用されるデータの容量と、第1RAM231の空き容量とを導出し、該空き容量が該データの容量以上であるか否かを判定する。尚、第2RAM232中にある継続使用されるデータは、不図示のHDDなどの不揮発性メモリに退避しても良い。ステップS403の判定の結果、退避可能な場合、ステップS404に進む。一方、退避不可能な場合、処理は終了する。
ステップS404において、CPU221は、第2RAM232中にある継続して使用されるデータを、第1RAM231等の電源遮断対象外のメモリに退避する。また、CPU221は、ポインタやキャッシュテーブルのアドレス変更、キャッシュの整合性の確認を実行することで、退避したデータを参照可能にする。次いで、ステップS405に進む。
ステップS405において、CPU221は、メモリのマッピングを変更してメモリ使用領域から第2RAM232に対応する領域を取り除き、これ以降第2RAM232にアクセスしないように設定する。次いで、ステップS406に進む。
ステップS406において、CPU221は、PMU234に対して後述するステップS452〜S454の処理を実行するための設定を行うよう命令を送る。この設定には、第1RAM231及び第2RAM232がセルフリフレッシュモードで動作しコントローラ部220がスリープ状態のとき第2RAM232の電源が遮断されると、第1RAM231を稼動状態にするようにPMU234を制御する設定が含まれる。尚、セルフリフレッシュモードで動作するメモリの状態を、セルフリフレッシュ状態と呼ぶ。次いで、ステップS407に進む。
ステップS407において、CPU221は、第1RAM231及び第2RAM232をセルフリフレッシュ状態にする。次いで、ステップS408に進む。
ステップS408において、CPU221は、コントローラ部220をスリープ状態に移行させる。具体的には、例えばCPU221は、メモリコントローラ230をはじめとするスリープ状態では不要な機能モジュールへのクロック信号の供給を停止し、且つ、制御信号を低周波な信号に変更する。また、CPU221は、PMU234に対しコントローラ部220がスリープ状態に移行したことを示すスリープ移行通知信号を送る。更に、CPU221は、自身の状態を割り込み待ち状態に移行させる。割り込み待ち状態とは、CPU221が割り込みを受けると通常状態に復帰する状態である。尚、本実施例では、PMU234が通知した割り込みを受けることで、CPU221は割り込み待ち状態から通常状態に復帰するものとする。ただし、USB等の任意のデバイスが、複合機210が備える外部I/F(不図示)に接続され、或いは、ネットワークI/F228を介してアクセス要求することで、CPU221が通常状態に復帰するように構成しても良い。ステップS408の処理が完了すると、図3に示すスリープ状態となる。次いで、ステップS409に進む。
ステップS409において、CPU221は、PMU234から割り込みが通知されたか否かを判定する。ステップS409の判定の結果、PMU234から割り込みが通知された場合、ステップS410に進む。ここで割り込みが通知されたということは、第1RAM231は稼動状態になっているが、第2RAMは電源遮断状態(電源オフ状態)であることを示す(詳細は後述する)。一方、ステップS409の判定の結果、PMU234から割り込みが未だ通知されていない場合、割り込みが通知されるまで待機する。
ステップS410において、CPU221は、自身の状態を割り込み待ち状態から通常状態に復帰させた上で、コントローラ部220をスリープ状態から復帰させる。具体的には、例えばCPU221は、ステップS408で実行したクロック信号の供給停止を解除し、且つ、ステップS408で低周波な信号に変更した制御信号を元の高周波な信号に戻す。また、CPU221は、第1RAM231や不図示のPHYのタイミング調整のため、キャリブレーションを実行する。ステップS410の処理が完了すると、図3に示す部分アイドル状態となる。
続いて、上記のCPU221が実行する処理と並行して実行される電源制御処理について、図4の右側に示すフローを用いて説明する。この電源制御処理は、PMU234によって実行される。
ステップS451において、PMU234は、ステップS406でCPU221から送られた命令に従って、ステップS452〜S454の処理を実行するための設定を内部レジスタに書き込む。次いで、ステップS452に進む。
ステップS452において、PMU234は、ステップS408でCPU221から送られたスリープ移行通知を検知したか否かにより、コントローラ部220がスリープ状態に移行したか否かを判定する。ステップS452の判定の結果、コントローラ部220がスリープ状態に移行した場合、ステップS453に進む。一方、コントローラ部220がスリープ状態に移行していない場合、スリープ移行通知を検知するまで待機する。尚、スリープ移行通知ではなく内部タイマーを用いて、スリープ状態に移行するのに十分な時間が経過したか否かを判定することで、スリープ状態に移行したか否かを判定しても良い。
ステップS453において、PMU234は、第2電源スイッチ236に送る制御信号を1から0に変更し、第2RAM232に供給する電圧をVddからVssにすることで、第2RAM232を電源遮断状態にする。この際、CPU221は割り込み待ち状態でありコントローラ部220はスリープ状態であるため、第1RAM231及び第2RAM232がアクセスされることはなく、また、第1RAM231及び第2RAM232は共にセルフリフレッシュ状態である。従って、第2RAM232の電源を安全に遮断(オフ)することが可能である。次いで、ステップS454に進む。
ステップS454において、PMU234は、第1RAM231をセルフリフレッシュ状態から稼動状態に移行させる。そして、PMU234は、CPU221に割り込みを通知する。尚、割り込みは、CPU221が検知可能なパルス幅の信号で生成しても良い。また、割り込みが通知されたCPU221が割り込みクリアをPMU234に通知することで、PMU234による割り込み通知が解除されるようにコントローラ部220を構成しても良い。
以上が、アイドル状態から部分アイドル状態への移行処理の内容である。
<部分アイドル状態からアイドル状態への移行>
部分アイドル状態時にコントローラ部220が外部デバイス等からデータ処理命令を受け取った場合、CPU221は、該受け取ったデータ処理命令に応じて、コントローラ部220を部分アイドル状態からアイドル状態に移行させるか否かを判定する。
部分アイドル状態時にコントローラ部220が外部デバイス等からデータ処理命令を受け取った場合、CPU221は、該受け取ったデータ処理命令に応じて、コントローラ部220を部分アイドル状態からアイドル状態に移行させるか否かを判定する。
この判定手法の例としては、CPU221は、受け取ったデータ処理命令に対して使用するメモリ量の見込みを導出し、該導出した使用するメモリ量の見込みと、現在使用中のメモリマップのメモリ領域の空き容量とを比較することが考えられる。この場合、CPU221は、メモリ領域の空き容量が使用するメモリ量の見込みより少ないとき、部分アイドル状態からアイドル状態に移行させると判定する。
使用するメモリ容量の見込みを導出する手法の例としては、データ処理命令と、使用するメモリ量とが対応付けされて保持されたテーブルを用いて導出することが考えられる。或いは、メモリ使用量がデータ処理命令に含まれており、該メモリ使用量を読み取ることで、使用するメモリ容量の見込みを導出しても良い。
尚、複合機210が受信したデータがコントローラ部220宛てパケットを含むか否かに基づいて、部分アイドル状態からアイドル状態に移行させるか否かの判定を行っても良い。この場合、複合機210が受信したデータがコントローラ部220宛てパケットを含むとき、部分アイドル状態からアイドル状態に移行する。一方、複合機210が受信したデータがコントローラ部220宛てパケットを含まないとき、部分アイドル状態が維持される。
以下、本実施例に係る部分アイドル状態からアイドル状態への移行処理について、図5の左側に示すフローを用いて説明する。この移行処理は、CPU221によって実行される。
ステップS501において、CPU221は、PMU234に対して後述するステップS552〜S554の処理を実行するための設定を行うよう命令を送る。次いで、ステップS502に進む。
ステップS502において、CPU221は、稼動状態にある第1RAM231をセルフリフレッシュ状態にした上で、コントローラ部220をスリープ状態に移行させる。具体的には、例えばCPU221は、メモリコントローラ230をはじめとするスリープ状態では不要な機能モジュールへのクロック信号の供給を停止し、且つ、制御信号を低周波な信号に変更する。また、CPU221は、PMU234に対しスリープ移行通知信号を送る。更に、CPU221は、自身の状態を割り込み待ち状態に移行させる。次いで、ステップS503に進む。
ステップS503において、CPU221は、PMU234から割り込みが通知されたか否かを判定する。ステップS503の判定の結果、PMU234から割り込みが通知された場合、ステップS504に進む。ここで割り込みが通知されたということは、第1RAM231及び第2RAM232が共に稼動状態になっていることを示す(詳細は後述する)。一方、ステップS503の判定の結果、PMU234から割り込みが未だ通知されていない場合、割り込みが通知されるまで待機する。
ステップS504において、CPU221は、自身の状態を割り込み待ち状態から通常状態に復帰させた上で、コントローラ部220をスリープ状態から復帰させる。具体的には、例えばCPU221は、ステップS502で実行したクロック信号の供給停止を解除し、且つ、ステップS502で低周波な信号に変更した制御信号を元の高周波な信号に戻す。そして、CPU221は、ステップS405で変更したメモリのマッピングを元に戻し、第2RAM232に対応する領域を使用可能にする。ここでCPU221は、第1RAM231及び第2RAM232や不図示のPHYのタイミング調整のため、キャリブレーションを実行する。次いで、ステップS505に進む。
ステップS505において、CPU221は、ステップS404で第2RAM232から退避したデータがあるか否かを判定する。ステップS505の判定の結果、退避したデータがある場合、ステップS506に進む。一方、退避したデータがない場合、処理は終了する。
ステップS506において、CPU221は、第1RAM231や不図示のHD等に退避させていたデータを第2RAM232に書き戻す。この際、退避させていたデータと該データの元の格納場所とが対応付けされたテーブルを用いること等により、データを元の格納場所に書き戻すことが可能である。
続いて、上記のCPU221が実行する処理と並行して実行される電源制御処理について、図5の右側に示すフローを用いて説明する。この電源制御処理は、PMU234によって実行される。
ステップS551において、PMU234は、ステップS501でCPU221から送られた命令に従って、ステップS552〜S554の処理を実行するための設定を内部レジスタに書き込む。次いで、ステップS552に進む。
ステップS552において、PMU234は、ステップS502でCPU221から送られたスリープ移行通知を検知したか否かに基づき、コントローラ部220がスリープ状態に移行したか否かを判定する。ステップS552の判定の結果、コントローラ部220がスリープ状態に移行した場合、ステップS553に進む。一方、コントローラ部220がスリープ状態に移行していない場合、スリープ移行通知を検知するまで待機する。尚、スリープ移行通知ではなく内部タイマーを用いて、スリープ状態に移行するのに十分な時間が経過したか否かを判定することで、スリープ状態に移行したか否かを判定しても良い。
ステップS553において、PMU234は、第2電源スイッチ236に送る制御信号を0から1に変更し、第2RAM232に供給する電圧をVssからVddにすることで、第2RAM232をセルフリフレッシュ状態にする。この際、CPU221は割り込み待ち状態且つコントローラ部220はスリープ状態であるため、第1RAM231及び第2RAM232がアクセスされることはなく、また、第1RAM231はセルフリフレッシュ状態である。従って、第2RAM232の電源を安全に投入(オン)することが可能である。次いで、ステップS554に進む。
ステップS554において、PMU234は、第1RAM231及び第2RAM232をセルフリフレッシュ状態から稼動状態に移行させる。そして、PMU234は、CPU221に割り込みを通知する。尚、割り込みは、CPU221が検知可能なパルス幅の信号で生成しても良い。また、割り込みが通知されたCPU221が割り込みクリアをPMU234に通知することで、PMU234による割り込み通知が解除されるようにコントローラ部220を構成しても良い。
以上が、部分アイドル状態からアイドル状態への移行処理の内容である。
<実施例2>
実施例1では、第2RAM232が揮発性メモリ(具体的にはDDR3 SDRAM)である場合について説明した。本実施例では、第2RAM232が不揮発性メモリである場合におけるアイドル状態から部分アイドル状態への移行処理ついて、図6を用いて説明する。ただし、以下の説明において、実施例1と共通する内容については、説明を簡略化または割愛する。
実施例1では、第2RAM232が揮発性メモリ(具体的にはDDR3 SDRAM)である場合について説明した。本実施例では、第2RAM232が不揮発性メモリである場合におけるアイドル状態から部分アイドル状態への移行処理ついて、図6を用いて説明する。ただし、以下の説明において、実施例1と共通する内容については、説明を簡略化または割愛する。
ステップS601において、CPU221は、複数のメモリが存在するか否かを判定する。この判定は例えば、メモリモジュールに搭載されているSPDに格納されたデータを読み取ることで実行可能である。ステップS601の判定の結果、複数のメモリが存在する場合、ステップS602に進む。一方、複数のメモリが存在しない場合、処理は終了する。
ステップS602において、CPU221は、電源の遮断対象の第2RAM232が不揮発性であるか否かを判定する。この判定は例えば、ステップS601で読み取ったSPD中のデータに基づいて実行しても良い。ステップS602の判定の結果、第2RAM232が不揮発性である場合、ステップS606に進む。この場合、第2RAM232に格納されているデータを第1RAM231に退避する必要は無い。一方、ステップS602の判定の結果、第2RAM232が不揮発性でない場合、ステップS603に進み、実施例1と同様の処理が実行される。
ステップS603以降の処理は、実施例1と同様である。
<その他の実施例>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
Claims (9)
- 同一のメモリバスに実装された複数メモリ又は複数メモリ群を備えた情報処理装置であって、
前記情報処理装置が、前記複数メモリ又は複数メモリ群は稼動状態であるが実行中のジョブが存在しないアイドル状態であるとき、前記複数メモリ又は複数メモリ群を前記稼動状態からセルフリフレッシュ状態に移行させる手段と、
前記複数メモリ又は複数メモリ群がセルフリフレッシュ状態であるとき、前記複数メモリ又は複数メモリ群の一部に対する電源を遮断する手段と、
当該一部を除いた前記複数メモリ又は複数メモリ群を前記セルフリフレッシュ状態から前記稼動状態に移行させる手段と
を備えたことを特徴とする情報処理装置。 - 前記複数メモリ又は複数メモリ群は、前記情報処理装置を制御する制御手段に設けられ、
前記複数メモリ又は複数メモリ群が、前記稼動状態から前記セルフリフレッシュ状態に移行した後、前記制御手段をスリープ状態に移行させる手段と、
前記一部を除いた前記複数メモリ又は複数メモリ群が前記セルフリフレッシュ状態から前記稼動状態に移行した後、前記制御手段をスリープ状態から復帰させる手段と
を更に備えたことを特徴とする請求項1に記載の情報処理装置。 - 前記情報処理装置は、各構成要素を統括的に制御することで該情報処理装置を動作させるCPUと、前記複数メモリ又は複数のメモリ群に対する供給電圧を調整するPMUとを備え、
前記CPUが、前記制御手段が前記スリープ状態に移行したことを示すスリープ移行通知信号を前記PMUに送信した後、前記複数メモリ又は複数メモリ群の一部に対する電源は、遮断され、
前記PMUが、前記CPUに割り込みを通知した後、前記制御手段は、前記スリープ状態から復帰することを特徴とする請求項2に記載の情報処理装置。 - 前記複数メモリ又は複数メモリ群の一部に格納されたデータを、当該一部を除いた前記複数メモリ又は複数メモリ群に退避する手段を更に備えたことを特徴とする請求項1乃至3の何れか一項に記載の情報処理装置。
- 前記複数メモリ又は複数メモリ群の一部が、不揮発性であるか否かを判定する手段を更に備えたことを特徴とする請求項1乃至4の何れか一項に記載の情報処理装置。
- 同一のメモリバスに実装された複数メモリ又は複数メモリ群を備えた情報処理装置であって、
前記情報処理装置が、前記複数メモリ又は複数メモリ群の一部は稼動状態であり、当該一部を除いた前記複数メモリ又は複数メモリ群は電源遮断状態であって、実行中のジョブが存在しない部分アイドル状態において、前記複数メモリ又は複数メモリ群の一部を前記稼動状態からセルフリフレッシュ状態に移行させる手段と、
前記一部を除いた前記複数メモリ又は複数メモリ群に対する電源を投入する手段と、
前記複数メモリ又は複数メモリ群を前記セルフリフレッシュ状態から前記稼動状態に移行させる手段と
を備えたことを特徴とする情報処理装置。 - 同一のメモリバスに実装された複数メモリ又は複数メモリ群を備えた情報処理装置によって実行される情報処理方法であって、
前記情報処理装置が、前記複数メモリ又は複数メモリ群は稼動状態であるが実行中のジョブが存在しないアイドル状態であるとき、前記複数メモリ又は複数メモリ群を前記稼動状態からセルフリフレッシュ状態に移行させるステップと、
前記複数メモリ又は複数メモリ群がセルフリフレッシュ状態であるとき、前記複数メモリ又は複数メモリ群の一部に対する電源を遮断するステップと、
当該一部を除いた前記複数メモリ又は複数メモリ群を前記セルフリフレッシュ状態から前記稼動状態に移行させるステップと
を備えたことを特徴とする情報処理方法。 - 同一のメモリバスに実装された複数メモリ又は複数メモリ群を備えた情報処理装置によって実行される情報処理方法であって、
前記情報処理装置が、前記複数メモリ又は複数メモリ群の一部は稼動状態であり、当該一部を除いた前記複数メモリ又は複数メモリ群は電源遮断状態であって、実行中のジョブが存在しない部分アイドル状態において、前記複数メモリ又は複数メモリ群の一部を前記稼動状態からセルフリフレッシュ状態に移行させるステップと、
前記一部を除いた前記複数メモリ又は複数メモリ群に対する電源を投入するステップと、
前記複数メモリ又は複数メモリ群を前記セルフリフレッシュ状態から前記稼動状態に移行させるステップと
を備えたことを特徴とする情報処理方法。 - コンピュータに、請求項7又は8に記載の方法を実行させるための、プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015103122A JP2016218749A (ja) | 2015-05-20 | 2015-05-20 | 情報処理装置、情報処理方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015103122A JP2016218749A (ja) | 2015-05-20 | 2015-05-20 | 情報処理装置、情報処理方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016218749A true JP2016218749A (ja) | 2016-12-22 |
Family
ID=57581162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015103122A Pending JP2016218749A (ja) | 2015-05-20 | 2015-05-20 | 情報処理装置、情報処理方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016218749A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6357576B1 (ja) * | 2017-11-20 | 2018-07-11 | 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. | 揮発性メモリデバイス及びそのセルフリフレッシュ方法 |
JP2020067961A (ja) * | 2018-10-26 | 2020-04-30 | キヤノン株式会社 | 動作停止信号に従って動作停止状態となり、且つ、少なくとも動作停止信号が入力されていないことを条件に省電力モードに移行可能なデバイスを備える情報処理装置 |
-
2015
- 2015-05-20 JP JP2015103122A patent/JP2016218749A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6357576B1 (ja) * | 2017-11-20 | 2018-07-11 | 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. | 揮発性メモリデバイス及びそのセルフリフレッシュ方法 |
CN109817256A (zh) * | 2017-11-20 | 2019-05-28 | 华邦电子股份有限公司 | 易失性存储器装置及其自刷新方法 |
JP2019096370A (ja) * | 2017-11-20 | 2019-06-20 | 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. | 揮発性メモリデバイス及びそのセルフリフレッシュ方法 |
CN109817256B (zh) * | 2017-11-20 | 2021-10-08 | 华邦电子股份有限公司 | 易失性存储器装置及其自刷新方法 |
JP2020067961A (ja) * | 2018-10-26 | 2020-04-30 | キヤノン株式会社 | 動作停止信号に従って動作停止状態となり、且つ、少なくとも動作停止信号が入力されていないことを条件に省電力モードに移行可能なデバイスを備える情報処理装置 |
JP7159002B2 (ja) | 2018-10-26 | 2022-10-24 | キヤノン株式会社 | 動作停止信号に従って動作停止状態となり、且つ、少なくとも動作停止信号が入力されていないことを条件に省電力モードに移行可能なデバイスを備える情報処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6965494B2 (ja) | センサデータ検出に基づくインピーダンス補償 | |
US10109328B2 (en) | Memory controller for adjusting timing based on memory power states | |
JP5725695B2 (ja) | データ記憶装置、及びデータ記憶装置の制御方法 | |
TWI718213B (zh) | 彈性dll(延遲鎖定迴路)校準技術 | |
US10268257B2 (en) | Memory control device that control semiconductor memory, memory control method, information device equipped with memory control device, and storage medium storing memory control program | |
US10541019B2 (en) | Apparatuses and methods for dynamic voltage and frequency switching for dynamic random access memory | |
US20180018118A1 (en) | Power management in scenarios that handle asynchronous stimulus | |
US9007863B1 (en) | Semiconductor devices | |
JP2016218749A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP4882807B2 (ja) | Sdram制御回路及び情報処理装置 | |
JP2013172256A (ja) | 通信処理装置および画像形成装置 | |
JP2006240130A (ja) | 印刷装置のコントローラ | |
JP5375187B2 (ja) | 消費電力低減回路および消費電力低減方法 | |
US20160277324A1 (en) | Information processing apparatus,information processing method, and non-transitory computer readable medium | |
JP2004287948A (ja) | メモリ制御装置および電子機器のコントローラ | |
US8767503B2 (en) | Clock transfer circuit and semiconductor device including the same | |
JP2008217890A (ja) | 電子装置、画像処理装置及び電源供給制御方法 | |
JP2013125398A (ja) | データ処理装置 | |
TW201530558A (zh) | 記憶體裝置與控制方法 |