(57)【要約】      （修正有）【課題】情報機器が備える不揮発性メモリの特性を確実に発揮させることができるメモリ制御装置を提供する。【解決手段】情報機器の一例であるＭＦＰ１００は、全体的な動作制御を司るＣＰＵ１１２と、データの書き込みと読み出しが可能な半導体メモリである第１のＲＡＭ１２０及び第２のＲＡＭ１２１を備える。ＣＰＵ１１２は、第１のＲＡＭ１２０及び第２のＲＡＭ１２１が不揮発性メモリであるか揮発性メモリであるかを検出し、揮発性メモリと不揮発性メモリとで異なる設定を行う。例えば、揮発性メモリであることを検出した第１のＲＡＭ１２０を電源ＯＦＦによりデータが消失しても構わないワークメモリに設定し、不揮発性メモリであることを検出した第２のＲＡＭ１２１をファームウェア等の電源をＯＦＦしても保持したいデータを格納するメモリに設定する。【選択図】図１
2015064758.tif 000002
【特許請求の範囲】
【請求項１】
データの書き込みと読み出しが可能な半導体メモリが不揮発性メモリであるか揮発性メモリであるかを検出する検出手段と、
前記検出手段が検出した不揮発性メモリに対して、揮発性メモリとは異なる設定を行う設定手段とを備えることを特徴とするメモリ制御装置。
【請求項２】
前記設定手段は、前記検出手段が検出した不揮発性メモリに対して、所定のデータを格納するアドレスをマッピングするマッピング手段を有することを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記設定手段は、前記不揮発性メモリを通常の動作モードから省電力モードに移行する際に前記不揮発性メモリの電源をＯＦＦとし、前記省電力モードから前記通常の動作モードへ復帰させる際に前記不揮発性メモリの電源をＯＮとする電源制御手段を有することを特徴とする請求項１又は２に記載のメモリ制御装置。
【請求項４】
前記検出手段は、前記半導体メモリの所定のアドレスに対して所定のデータの書き込みを行った後、前記アドレスに対して、一定時間以上、リフレッシュコマンドを発行しなかったときに、前記アドレスのデータが変化していない場合に前記半導体メモリは不揮発性メモリであると判断することを特徴とする請求項１乃至３のいずれか１項に記載のメモリ制御装置。
【請求項５】
前記検出手段は、前記半導体メモリの所定のアドレスに対して所定のデータの書き込みを行った後、前記半導体メモリの電源を遮断し、再度、前記半導体メモリに通電を行ったときに前記アドレスのデータが変化していない場合に前記半導体メモリは不揮発性メモリであると判断することを特徴とする請求項１乃至３のいずれか１項に記載のメモリ制御装置。
【請求項６】
コンピュータによって実行されるメモリ制御方法であって、
データの書き込みと読み出しが可能な半導体メモリが不揮発性メモリであるか揮発性メモリであるかを検出する検出ステップと、
前記検出ステップで検出した不揮発性メモリに対して、揮発性メモリとは異なる設定を行う設定ステップとを有することを特徴とするメモリ制御方法。
【請求項７】
半導体メモリと、前記半導体メモリの動作を制御するメモリ制御装置とを備える情報機器であって、
前記メモリ制御装置は、
前記半導体メモリが不揮発性メモリであるか揮発性メモリであるかを検出する検出手段と、
前記検出手段が検出した不揮発性メモリに対して、揮発性メモリとは異なる設定を行う設定手段とを備えることを特徴とする情報機器。
【請求項８】
半導体メモリを備える情報機器が有するコンピュータに前記半導体メモリに対する制御方法を実行させるためのプログラムであって、
前記制御方法は、
前記半導体メモリが不揮発性メモリであるか揮発性メモリであるかを検出する検出ステップと、
前記検出ステップで検出した不揮発性メモリに対して、揮発性メモリとは異なる設定を行う設定ステップとを有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリに対して種々の制御を行うメモリ制御装置及びメモリ制御方法、このメモリ制御装置を備える情報機器、このメモリ制御方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
近年、ＣＰＵや周辺回路用ＬＳＩの処理速度の高速化に伴い、半導体メモリのデータ転送速度にも高速化が要求されている。種々の半導体メモリのうちの１つに同期型半導体メモリであるＳＤＲＡＭがある。ＳＤＲＡＭは、ＬＳＩのシステムクロックに同期した制御とデータの入出力を行う。ＳＤＲＡＭでは、ＲＡＳやＣＡＳ、ＷＥ等の制御信号がシステムクロックであるＣＬＫの立ち上りエッジに同期して入力され、これらの入力信号のＨｉｇｈレベルとＬｏｗレベルの組み合わせによって制御命令（コマンド）が決まる。また、ＳＤＲＡＭでは、アドレスとデータもＣＬＫの立ち上りエッジに同期して入力される。このような同期型半導体メモリを実現することにより、メモリに対するデータの入出力転送速度を大幅に向上させることができる。
【０００３】
しかしながら、半導体メモリのデータ転送速度の高速化に伴い、ＣＬＫとの同期化に対して、各種の入力信号のセットアップタイム及びホールドタイムが短くなるという問題が生じる。同期型半導体メモリにおいて必要なセットアップタイム及びホールドタイムを実現するためには、制御命令にかかわらず、常にアドレスやデータ入力の初段回路を活性化状態にしておく必要がある。そこで、高速データ通信を実現するために、データストローブ信号（ＤＱＳ）を採用した半導体メモリに関する技術が知られている。データストローブ信号を採用した半導体メモリとして、例えば、ＤＤＲ２  ＳＤＲＡＭやＤＤＲ３  ＳＤＲＡＭ等がある。
【０００４】
ところで、複合機（ＭＦＰ）をはじめとした各種の情報機器では、内部のＬＳＩや半導体メモリの消費電力の増大が深刻化しており、低電力化が求められている。低電力化の方法としては、ＬＳＩ等を局所的に省電力モード（スリープモード）へ移行させる方法や供給する電源を遮断する方法等がある。しかし、揮発性メモリに記憶されたデータは電源遮断により消失するため、電源遮断前に揮発性メモリに記憶されたデータを不揮発性メモリへ退避させる必要が生じる。また、次に電源を投入したときには、退避したデータの移行を行う必要が生じるため、データ移行に時間を要してしまうことで起動時間が長くなってしまうという新たな問題が生じる。
【０００５】
この問題に対して、ＤＤＲ３  ＳＤＲＡＭ等の揮発性メモリの代替として、磁気抵抗メモリ（以下「ＭＲＡＭ」と記す）等の不揮発性メモリを用いる技術が提案されている（例えば、特許文献１参照）。ＭＲＡＭは、装置電源を遮断しても磁気によってデータを保持することができ、高速アクセスも可能であるため、装置電源を遮断するに際して、前述のデータを退避する必要が無くなる。また、ＭＲＡＭを用いた情報機器では、最初の電源投入時に起動プログラムをＭＲＡＭに格納し、その後に電源が遮断され、再度電源が投入されたときには、ＭＲＡＭから起動プログラムを実行することができ、これにより高速起動が可能になる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−４０４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＭＲＡＭは、揮発性メモリであるＤＤＲ３  ＳＤＲＡＭと互換性を持つ構成となっている。そのため、複数のメモリデバイスを搭載することができるように複数のメモリスロットを備える情報機器では、ユーザがメモリデバイスを追加、交換することができるため、１台の情報機器内にＤＤＲ３  ＳＤＲＡＭとＭＲＡＭとが混在する可能性がある。この場合、起動プログラムをＭＲＡＭに格納すべきところをＤＤＲ３  ＳＤＲＡＭに格納してしまう可能性があり、ＭＲＡＭの特性を有効に活用することができない。
【０００８】
本発明は、情報機器が備える不揮発性メモリの特性を確実に発揮させることができるメモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るメモリ制御装置は、データの書き込みと読み出しが可能な半導体メモリが不揮発性メモリであるか揮発性メモリであるかを検出する検出手段と、前記検出手段が検出した不揮発性メモリに対して、揮発性メモリとは異なる設定を行う設定手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明では、情報機器の起動時にメモリ情報を検出し、不揮発性メモリを特定する。これにより、検出結果に応じてメモリマッピングや電源制御を設定、変更することができるため、不揮発性メモリの特性を確実に発揮させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るＭＦＰを含むネットワークシステムの概略構成と、ＭＦＰのハードウェアの概略構成とを示す図である。
【図２】図１のＭＦＰが備えるコントローラ部におけるＣＰＵとメモリコントローラとの関係を示すブロック図である。
【図３】図１のＭＦＰにおけるライトレベリング中のメモリバス上でのメモリコントローラと第１のＲＡＭのｃｌｋ，ｄｑｓのタイミングチャートである。
【図４】図１のＭＦＰにおけるメモリデバイス（第１のＲＡＭ及び第２のＲＡＭ）の初期化シーケンスのフローチャートである。
【図５】図１のＭＦＰが備える第１のＲＡＭ及び第２のＲＡＭ（メモリモジュール）のＳＰＤから読み取ることができるメモリ情報の一例を示す図である。
【図６】図１のＭＦＰが備える第１のＲＡＭ及び第２のＲＡＭの初期化キャリブレーションの結果の一例を示す図である。
【図７】図１のＭＦＰのワークメモリリストの一例を示す図である。
【図８】図１のＭＦＰが備えるメモリデバイス（第１のＲＡＭ及び第２のＲＡＭ）が揮発性メモリであるか不揮発性メモリであるかをリフレッシュコマンド間隔の変更を利用して検出する方法のフローチャートである。
【図９】図１のＭＦＰのコントローラ部において第１のＲＡＭ及び第２のＲＡＭの電源制御を行う構成を示すブロック図である
【図１０】図９の構成において、不揮発性メモリを検出して電源制御を行うための電源制御メモリリストの初期化シーケンスのフローチャートである。
【図１１】図１０のフローチャートの処理により作成される電源制御メモリリストの一例を示す図である。
【図１２】図９の構成において、ＭＦＰが省電力モードに入るときの電源制御シーケンスのフローチャートである。
【図１３】図９の構成において、ＭＦＰが備えるメモリデバイス（第１のＲＡＭ及び第２のＲＡＭ）が揮発性メモリであるか不揮発性メモリであるかを電源の遮断を利用して検出する方法のフローチャートである。
【図１４】図１及び図９の構成を備えるＭＦＰの動作時における電源制御シーケンスのフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、添付図面を参照して詳細に説明する。ここでは、メモリ制御装置を備える情報機器としてＭＦＰ（Multifunction Peripheral）を取り上げることとするが、本発明はこれに限定されるものではない。
【００１３】
＜第１実施形態＞
図１は、本発明の実施形態に係るＭＦＰを含むネットワークシステムの概略構成と、ＭＦＰのハードウェアの概略構成とを示す図である。このネットワークシステムは、ホストコンピュータ１５０とＭＦＰ１００とが外部ネットワーク１９０を介して接続されることによって構成されている。例えば、ホストコンピュータ１５０は描画コマンド（印刷データ）をＭＦＰ１００へ送り、描画コマンドを受け取ったＭＦＰ１００は出力（印刷）可能な画像データに変換して紙面に印刷する処理を行う。
【００１４】
ホストコンピュータ１５０は、アプリケーション１５１、プリンタドライバ１５２及びネットワークＩ／Ｆ１５３を備える。アプリケーション１５１は、ホストコンピュータ１５０上で動作するアプリケーション（ソフトウェア）であり、所定のアプリケーションを実行することで、ページレイアウト文書やワードプロセッサ文書、グラフィック文書等の作成が可能となる。アプリケーション１５１で作成されたデジタル文書データは、プリンタドライバ１５２に送信され、デジタル文書に基づいた描画コマンドが生成される。プリンタドライバ１５２で生成される描画コマンドには、例えば、ＰＤＬ（Page Description Language）と呼ばれるページ画像データを作成するためのプリンタ記述言語が用いられる。描画コマンドには、通常、文字やグラフィックス、イメージ等のデータの描画命令が含まれており、プリンタドライバ１５２で生成された描画コマンドは、ネットワークＩ／Ｆ１５３と外部ネットワーク１９０とを介してＭＦＰ１００に送信される。
【００１５】
ＭＦＰ１００は、コントローラ部１０１、プリンタ部１０２、不図示のスキャナ部及びモデムを備える。コントローラ部１０１は、ネットワークＩ／Ｆ１１０、ＣＰＵ１１２、ＲＯＭ１１３、メモリコントローラ１１４、操作部１１５、表示部１１６、インタプリタ１１７、レンダラ１１８、画像処理部１１９、第１のＲＡＭ１２０及び第２のＲＡＭ１２１を含む。コントローラ部１０１に含まれるこれらのモジュールは、システムバス１１１を介して接続されている。
【００１６】
ネットワークＩ／Ｆ１１０は、ＭＦＰ１００を外部ネットワーク１９０に接続するためのインタフェースである。ネットワークＩ／Ｆ１１０は、イーサネット(登録商標)等の通信プロトコルに基づき、外部ネットワーク１９０を介してホストコンピュータ１５０をはじめとして外部ネットワーク１９０に接続された不図示の外部機器から描画コマンドを受信する。また、ネットワークＩ／Ｆ１１０を介して、ＭＦＰ１００のデバイス情報（例えば、ジャム情報や紙サイズ情報等）や画像データが、外部ネットワーク１９０に接続されたホストコンピュータ１５０や不図示の外部機器へ送信される。
【００１７】
ＲＯＭ１１３には、ＭＦＰ１００の動作を制御するための、後述する初期化シーケンスや電源制御シーケンス等を含む各種のプログラムが格納されている。ＣＰＵ１１２は、ＲＯＭ１１３に格納されている各種のプログラムやデータを第１のＲＡＭ１２０又は第２のＲＡＭ１２１のワークエリアに展開、実行して、ＭＦＰ１００を構成する各種モジュールの動作を制御する。これにより、ＭＦＰ１００の全体的な動作が制御される。
【００１８】
半導体メモリである第１のＲＡＭ１２０及び第２のＲＡＭ１２１について、ここでは一般的な使用方法について説明することとし、本実施形態における具体的な使用方法については後述する。第１のＲＡＭ１２０及び第２のＲＡＭ１２１は、前述の通り、一時的な記憶デバイスとしてＣＰＵ１１２のワークエリアとして用いられる他、ＣＰＵ１１２が各種プログラムを実行する際に生成する各種のデータを一時的に記憶する。また、第１のＲＡＭ１２０及び第２のＲＡＭ１２１は、プリンタ部１０２での処理時には、後述する中間言語データやラスター画像データ等のデータを一時的に記憶する。なお、ＭＦＰ１００が備えるＲＡＭは、第１のＲＡＭ１２０及び第２のＲＡＭ１２１に制限されるものではなく、より多くのメモリデバイス（ＲＡＭに限る）を備えていてもよい。
【００１９】
メモリコントローラ１１４は、第１のＲＡＭ１２０及び第２のＲＡＭ１２１と、コントローラ部１０１に含まれる他のモジュールとの間のデータ送受信制御を行う。操作部１１５は、ユーザからの入力を受け付けるためのインタフェースであり、各種のハードボタンやタッチパネルからなる。表示部１１６は、ユーザへの指示やＭＦＰ１００の状態を表示するＵＩ（User Interface）画面を表示するものであり、具体的には、液晶ディスプレイ等であり、液晶ディスプレイは操作部１１５のタッチパネルであってもよい。
【００２０】
インタプリタ１１７は、ネットワークＩ／Ｆ１１０を介して受信した描画コマンドを解釈して、中間言語データを生成する。レンダラ１１８は、インタプリタ１１７で生成された中間言語データからラスター画像を生成する。画像処理部１１９は、レンダラ１１８で生成されたラスター画像に対して、色変換処理やルックアップテーブルによるγ補正処理、擬似中間調処理等の画像処理を行い、プリンタ部１０２に供給する画像データを生成する。プリンタ部１０２は、画像処理部１１９で生成された画像データに基づき、トナー等を用いて紙面上への画像形成を行う。
【００２１】
ＭＦＰ１００において、第１のＲＡＭ１２０及び第２のＲＡＭ１２１に不揮発性メモリであるＭＲＡＭと揮発性メモリであるＤＲＡＭ又はＳＤＲＡＭとが混在する場合がある。本実施形態では、ＣＰＵ１１２は、不揮発性メモリを検出し、検出した不揮発性メモリにファームウェア（以下「Ｆ／Ｗ」と記す）を格納するメモリマッピングを行う。以下、その詳細について説明する。
【００２２】
図２は、ＭＦＰ１００のコントローラ部１０１におけるＣＰＵ１１２とメモリコントローラ１１４との関係を示すブロック図である。ＣＰＵ１１２は、ＲＯＭ１１３に格納された起動プログラムを実行することにより、第１のＲＡＭ１２０及び第２のＲＡＭ１２１を始めとして、システムバス１１１に接続される各モジュールの初期化シーケンスを実行する。また、ＣＰＵ１１２は、ＲＯＭ１１３又は不図示のハードディスク（ＨＤＤ）からＦ／Ｗを第１のＲＡＭ１２０及び第２のＲＡＭ１２１に展開したプログラムによって様々な数値計算（情報処理）を行い、ＭＦＰ１００の動作を制御する。ＣＰＵ１１２は更に、コントローラ部１０１を構成する各種モジュールの情報を第１のＲＡＭ１２０若しくは第２のＲＡＭ１２１又は不図示のＨＤＤに格納して保持する。
【００２３】
第１のＲＡＭ１２０及び第２のＲＡＭ１２１の制御を行うメモリコントローラ１１４は、メモリバス２０１を介して、第１のＲＡＭ１２０及び第２のＲＡＭ１２１に対してコマンドを発行し、メモリアクセスを行う。また、メモリコントローラ１１４は、第１のＲＡＭ１２０及び第２のＲＡＭ１２１と高速通信を行うためのライトアクセスやリードアクセスのタイミングを調整するキャリブレーションを実行する。このキャリブレーションには、周知の技術を用いることができ、以下に簡単に説明する。
【００２４】
ＲＡＭに対して高速でデータの読み書きを行うためには、一般的に、遅延調整の設計を適切に行うことが求められる。例えば、ＲＡＭから出力されたリードデータを内部のフリップフロップによりキャプチャーする部分や、そのフリップフロップからシステムクロックに同期化させる部分の設計を行う必要がある。
【００２５】
同期化したデータの有効範囲を決定するために、メモリコントローラから出力したクロックがＲＡＭを経由してデータストローブ信号ＤＱＳとしてメモリコントローラに戻ってくるまでの遅延量を算出する技術が知られている。遅延値は、ラウンドトリップディレイ（Round Trip Delay）と呼ばれている。例えば、ＤＤＲ３  ＳＤＲＡＭには、半導体技術協会（ＪＥＤＥＣ）の仕様において、リード／ライト（read／write）のアクセスタイミングを調整するためのライトレベリング（Write Leveling）やリードレベリング（Read Leveling）の機能が盛り込まれている。ライトレベリングは、ＲＡＭのＭＲ１レジスタのライトレベリングエナブル（Write Leveling Enable）に「１」を設定すると、ｃｌｋ−ｄｑｓ間のＳｋｅｗ情報を出力する。具体的には、メモリコントローラが発行するｄｑｓの立ち上がりエッジに対してｃｌｋをサンプリングし、ｄｑ信号にＨｉｇｈレベルを返す。メモリコントローラは、ｃｌｋとｄｑｓを少しずつ位相をずらして、ｄｑの結果から最もタイミングに余裕が生じるようにタイミング調整を行う。
【００２６】
図３は、ライトレベリング中のメモリバス２０１上でのメモリコントローラ１１４と第１のＲＡＭ１２０のｃｌｋ，ｄｑｓのタイミングチャートである。なお、図３の説明では、第１のＲＡＭ１２０は、ＤＤＲ３  ＳＤＲＡＭであるとする。
【００２７】
メモリコントローラ１１４からｃｌｋ信号とｄｑｓ信号が同時に出力されても、第１のＲＡＭ１２０では、配線長、配線負荷等の影響によりｃｌｋとｄｑｓの立ち上がりタイミングが異なる。図３（ａ）では、ｃｌｋ，ｄｑｓが同時に到達していないため、第１のＲＡＭ１２０はｄｑに「０」を返す。メモリコントローラ１１４は、ｃｌｋ，ｄｑｓの出力タイミングをずらしていき、ｄｑの変化ポイントを探す。これに対して、図３（ｂ）では、ｄｑ＝１となっているため、ｄｑｓの立ち上がりエッジでｃｌｋサンプリングが行われている。
【００２８】
一方、リードレベリングにおいてＭＰＲ（Multi Purpose Register）を有効にすると、第１のＲＡＭ１２０から予め決められたデータパターンが出力される。メモリコントローラ１１４は、このデータパターンを受信可能なタイミングを知ることができ、リードコマンドを発行してからの、リードデータを受信するレイテンシ（Latency）を調整する。リードアクセス時には、第１のＲＡＭ１２０がｄｑｓを出力する。
【００２９】
先ず、メモリコントローラ１１４は、リードコマンドを発行してからデータを受信するまでのサイクル数を検出する。メモリコントローラ１１４は、リードコマンドを発行してからの第１のＲＡＭ１２０のリードレイテンシ（Read Latency）時間に、コマンド及びデータ転送遅延時間を加味したサイクル数を１サイクルずつ加算し、ＭＰＲの値を読むことができるタイミングを検出する。メモリコントローラ１１４は、サイクル数を検出すると、ｃｌｋとｄｑｓスキューを調整するために、内部のｄｑｓを検出してからリードデータを読み込むタイミングを少しずつずらして、最も良い変化ポイントを検出する。
【００３０】
第１のＲＡＭ１２０及び第２のＲＡＭ１２１に対しては、所定のプロトコルに則ってデータの書き込みと読み出しを行うことができる。本実施形態では、第１のＲＡＭ１２０及び第２のＲＡＭ１２１はそれぞれ、複数のメモリデバイスとＳＰＤ（Serial Presence Detect）から成るメモリモジュールであるものとする。また、本実施形態では、第１のＲＡＭ１２０は揮発性メモリであり、揮発性メモリはＤＤＲ３  ＳＤＲＡＭであるとする。但し、揮発性メモリは、これに限定されず、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ＤＤＲ２  ＳＤＲＡＭ、ＤＤＲ４  ＳＤＲＡＭ、ＳＲＡＭ等であってもよい。また、本実施形態では、第２のＲＡＭ１２１は不揮発性メモリであり、不揮発性メモリはＤＤＲ３  ＭＲＡＭであるとするが、これに限定されず、その他の不揮発性メモリであってもよい。
【００３１】
図２の説明に戻る。メモリバス２０１は、メモリコントローラ１１４と第１のＲＡＭ１２０及び第２のＲＡＭ１２１とを接続するための高速通信バスである。ＣＰＵ１１２は、ＭＦＰ１００に電源が投入されると、システムバス１１１を介してＲＯＭ１１３に格納されている起動プログラムを読み出し、ＭＦＰ１００を初期化するための初期化シーケンスを実行する。以下、起動プログラムによる第１のＲＡＭ１２０及び第２のＲＡＭ１２１の初期化シーケンスについて、図４のフローチャートを参照して説明する。
【００３２】
図４は、ＭＦＰ１００に実装された第１のＲＡＭ１２０及び第２のＲＡＭ１２１の初期化シーケンスのフローチャートである。図４のフローチャートの各処理は、ＣＰＵ１１２がＲＯＭ１１３に格納されている起動プログラムを読み出し、第１のＲＡＭ１２０又は第２のＲＡＭ１２１に展開し、実行することによって実現される。なお、本実施形態では、第１のＲＡＭ１２０及び第２のＲＡＭ１２１以外のモジュールの初期化シーケンス及び制御シーケンスについての説明は省略する。また、ここでは、第１のＲＡＭ１２０及び第２のＲＡＭ１２１に限定されず、メモリデバイス（ＲＡＭに限る）としての説明を行い、適宜、第１のＲＡＭ１２０及び第２のＲＡＭ１２１に対する処理結果について説明することとする。
【００３３】
先ず、ステップＳ４０１において、ＣＰＵ１１２は、シリアルバスを介して制御信号０，１（図２参照）により、メモリデバイスのメモリ情報を取得する。例えば、メモリモジュールに実装されているＳＰＤからスペック情報を取得し、これにより、各メモリデバイスの電源制御が可能になる。なお、スペック情報とは、例えば、揮発性メモリか又は不揮発性メモリかに関する情報、最大クロック周波数、容量、信号タイミング等である。
【００３４】
図５は、メモリモジュールのＳＰＤから読み取ることができるメモリ情報の一例を示す図である。なお、図５に示したアドレスや値は一例であり、タイミングパラメータについても全ては記載されていない。ＣＰＵ１１２は、ＳＰＤから読みとったメモリ情報の中から必要な情報を、例えば、不図示のＨＤＤに記憶する。
【００３５】
図５（ａ）は、第１のＲＡＭ１２０について取得したメモリ情報を示しており、読み取ったアドレスと値から、第１のＲＡＭ１２０は、ＤＤＲ３  ＳＤＲＡＭ、１０６６ＭＨｚ、１Ｇｂｉｔ、８ｂａｎｋ、揮発性であることがわかる。図５（ｂ）は、第２のＲＡＭ１２１について取得したメモリ情報を示しており、第２のＲＡＭ１２１は、ＤＤＲ３  ＭＲＡＭ、１０６６ＭＨｚ、１Ｇｂｉｔ、８ｂａｎｋ、不揮発性であることがわかる。
【００３６】
次に、ＣＰＵ１１２は、メモリコントローラ１１４に対してメモリ初期化のキャリブレーションの実行命令を発行する。これにより、ステップＳ４０２において、メモリコントローラ１１４は、メモリデバイスを初期化するキャリブレーションを実行する。具体的には、ＣＰＵ１１２は、ステップＳ４０１での取得情報に基づき、メモリコントローラ１１４により、メモリ初期化時に実装されているメモリデバイスに対して、順次、アドレスをマッピングする。そして、ＣＰＵ１１２は、メモリコントローラ１１４により、各メモリデバイスに対して、ライトレベリングとリードレベリングの両方のタイミング調整を行う。ＣＰＵ１１２は、各メモリデバイスの各バンクのライトアクセス及びリードアクセス時のｃｌｋ−ｄｑｓ間のＳｋｅｗ情報とリードレイテンシを記憶する。
【００３７】
図６は、第１のＲＡＭ１２０及び第２のＲＡＭ１２１の初期化キャリブレーションの結果の一例を示す図である。メモリコントローラ１１４による第１のＲＡＭ１２０及び第２のＲＡＭ１２１の初期化キャリブレーションが完了すると、ＣＰＵ１１２は第１のＲＡＭ１２０及び第２のＲＡＭ１２１へアクセス可能となる。
【００３８】
ステップＳ４０２の終了後、ＣＰＵ１１２は、チップセレクト（以下「ＣＳ」と記す）毎にメモリマッピング処理を開始し、ステップＳ４０３において、メモリマッピング処理がなされていない残りのＣＳが有るか否かを判断する。ＣＰＵ１１２は、残りＣＳが有る場合（Ｓ４０３でＹＥＳ）、処理をステップＳ４０４へ進め、残りＣＳが無い場合（Ｓ４０３でＮＯ）、処理をステップＳ４１０へ進める。
【００３９】
ステップＳ４０４において、ＣＰＵ１１２は、ステップＳ４０３において選択したＣＳのメモリデバイスがＤＤＲ３  ＭＲＡＭ（不揮発性メモリ）であるか否かを、ステップＳ４０１で取得したメモリ情報に基づいて判断する。ＣＰＵ１１２は、ＤＤＲ３  ＭＲＡＭである（不揮発性メモリである（Ｓ４０４でＹＥＳ））場合、処理をステップＳ４０５へ進め、ＤＤＲ３  ＭＲＡＭではない（揮発性メモリである（Ｓ４０４でＮＯ））場合、処理をステップＳ４０９へ進める。
【００４０】
ステップＳ４０５において、ＣＰＵ１１２は、選択したＣＳにＦ／Ｗ格納フラグが有るか否かを判断する。例えば、この判断は、メモリデバイスの先頭番地０ｘ０に予め定めたフラグ値が格納されているか否かにより行われる。ＣＰＵ１１２は、Ｆ／Ｗ格納フラグが有る場合（Ｓ４０５でＹＥＳ）、処理をステップＳ４０６へ進め、Ｆ／Ｗ格納フラグが無い場合（Ｓ４０５でＮＯ）、処理をステップＳ４０７へ進める。
【００４１】
ステップＳ４０６において、ＣＰＵ１１２は、Ｆ／Ｗ格納リスト及びＦ／Ｗ格納可能リストにＣＳ情報を追加、格納する。その後、処理はステップＳ４０３へ戻される。
【００４２】
ステップＳ４０７において、ＣＰＵ１１２は、Ｆ／Ｗ格納容量が有るか否かを判断する。具体的には、ＣＰＵ１１２は、ステップＳ４０１で取得したメモリ容量情報とＲＯＭ１１３に予め格納されているＦ／Ｗ容量情報とを比較する。ＣＰＵ１１２は、Ｆ／Ｗ格納容量が有る場合（Ｓ４０７でＹＥＳ）、処理をステップＳ４０８へ進め、Ｆ／Ｗ格納容量が無い場合（Ｓ４０７でＹＥＳ）、処理をステップＳ４０９へ進める。
【００４３】
ステップＳ４０８において、ＣＰＵ１１２は、Ｆ／Ｗ格納可能リストにＣＳ情報を追加、格納する。ステップＳ４０９において、ＣＰＵ１１２は、ワークメモリリストにＣＳ情報を追加、格納する。ステップＳ４０８，Ｓ４０９の終了後、処理はステップＳ４０３へ戻される。
【００４４】
図７は、ＭＦＰ１００のワークメモリリストの一例を示す図である。ステップＳ４０３〜Ｓ４０９の処理が全てのＣＳに対して終了すると、図７に示すワークメモリリストが得られる。本実施形態では、ＣＳ０及びＣＳ１はそれぞれ、第１のＲＡＭ１２０及び第２のＲＡＭ１２１に該当するものとし、第２のＲＡＭ１２１にＦ／Ｗ格納フラグが書き込まれているものとする。第１のＲＡＭ１２０は揮発性メモリであるため、Ｆ／Ｗ格納リスト及びＦ／Ｗ格納可能リストのＣＳ０に「Ｎｏ」が、ワークメモリリストのＣＳ０に「Ｙｅｓ」がそれぞれ書き込まれる。一方、第２のＲＡＭ１２１は不揮発性メモリであり、Ｆ／Ｗ格納フラグが有るため、Ｆ／Ｗ格納リスト及びＦ／Ｗ格納可能リストのＣＳ１に「Ｙｅｓ」が、ワークメモリリストのＣＳ１に「Ｎｏ」がそれぞれ書き込まれる。
【００４５】
ステップＳ４０３の判断がＮｏとなった後のステップＳ４１０において、ＣＰＵ１１２は、図７のワークメモリリストからＦ／Ｗ格納リストに追加されたメモリが有る否かを判断する。ＣＰＵ１１２は、追加されたメモリが有る場合（Ｓ４１０でＹＥＳ）、処理をステップＳ４１１へ進め、追加されたメモリが無い場合（Ｓ４１０でＮＯ）、処理をステップＳ４１５へ進める。
【００４６】
ステップＳ４１１において、ＣＰＵ１１２は、図７のワークメモリリストからＦ／Ｗ格納可能リストに追加されたメモリが有る否かを判断する。ＣＰＵ１１２は、追加されたメモリが有る場合（Ｓ４１１でＹＥＳ）、処理をステップＳ４１２へ進め、追加されたメモリが無い場合（Ｓ４１１でＮＯ）、処理をステップＳ４１４へ進める。
【００４７】
ステップＳ４１２において、ＣＰＵ１１２は、Ｆ／Ｗ格納可能リストで「Ｙｅｓ」になっているＣＳを１つ選択し、Ｆ／Ｗ格納リストにそのＣＳのメモリデバイスを追加する。続くステップＳ４１３において、ＣＰＵ１１２は、ステップＳ４１２で選択したＣＳのメモリデバイスの先頭番地０ｘ０に予め定めたフラグ値を格納する。これにより、ステップＳ４１２においてＦ／Ｗ格納リストに追加されたメモリデバイスは、ＭＦＰ１００の次回の起動時には、ステップＳ４０５においてＦ／Ｗ格納フラグ有りとして検出されることとなる。
【００４８】
ステップＳ４１４において、ＣＰＵ１１２は、Ｆ／Ｗ格納フラグの有るメモリデバイスにＦ／Ｗを格納する。なお、Ｆ／Ｗは、ＲＯＭ１１３又は不図示のＨＤＤ等の記憶媒体や、外部ネットワーク１９０のストレージに外部ネットワーク１９０経由で格納してもよい。ステップＳ４１４の後、処理はステップＳ４１５へ進められる。
【００４９】
ステップＳ４１５において、ＣＰＵ１１２は、図７のワークメモリリストにあるように、アドレスマッピングを実施する。具体的には、ステップＳ４１５では、Ｆ／Ｗが格納されているメモリデバイス（ＣＳ）に対して、起動プログラムがＦ／Ｗを実行する際に指定されているアドレス領域を割り当てる。本実施形態では、Ｆ／Ｗ実行アドレスが０ｘ００００＿００００であるとし、図７に示すように、ＣＳ１のＤＤＲ３  ＭＲＡＭ（第２のＲＡＭ１２１）に０ｘ００００＿００００が割り当てられる。Ｆ／Ｗ実行アドレスが割り当てられたメモリデバイス以外のメモリデバイスに対しては、ワークメモリとして使用されるアドレス領域が割り当てられる。本実施形態では、図７に示すように、ＣＳ０のＤＤＲ３  ＳＤＲＡＭ（第１のＲＡＭ１２０）に０ｘ８０００＿００００が割り当てられる。
【００５０】
続くステップＳ４１６において、ＣＰＵ１１２は、ステップＳ４１５で指定したアドレスからＦ／Ｗを実行し、その後、本処理は終了となる。
【００５１】
なお、本実施形態では、Ｆ／Ｗを不揮発性メモリ（ＤＤＲ３  ＭＲＡＭ（第２のＲＡＭ１２１））に格納されるようにメモリマッピングを実施した。これに対して、例えば、ＭＦＰ１００において保持していなければならないファクシミリ画像データやページカウントデータ、トナー残量等のデータについても、同様の手法により不揮発性メモリに格納するようにしてもよい。また、揮発性メモリ（ＤＤＲ３  ＳＤＲＡＭ（第１のＲＡＭ１２０））には、一時的に使用される中間画像データ（例えば、ＭＦＰ１００が備える不図示のスキャナ部により読み取られたスキャンデータ）が格納されるようにしてもよい。
【００５２】
ところで、不揮発性メモリである第２のＲＡＭ１２１の容量がＦ／Ｗを格納するのに十分でない場合が想定される。この場合、Ｆ／Ｗやその他の保持しておかなければならないプログラムやデータは、その他の不揮発性メモリ（例えば、フラッシュメモリ）やＨＤＤがある場合には、これらにマッピングするようにする。また、第１のＲＡＭ１２０及び第２のＲＡＭ１２１の双方が揮発性メモリである場合、つまり、不揮発性メモリを備えない場合も想定される。この場合も、前述の不揮発性メモリの容量が足りない場合と同様の対処法が採られる。
【００５３】
以上の説明の通り、本実施形態によれば、ＭＦＰ１００に不揮発性メモリと揮発性メモリとが混在して実装されていても、どのメモリデバイスが不揮発性メモリであるかを知ることができる。これにより、Ｆ／Ｗを不揮発性メモリにマッピングすることができるため、例えば、ＭＦＰ１００の省電力モード（スリープモード）への移行と省電力モードからの復帰に要する時間を短縮することができる。
【００５４】
＜第２実施形態＞
上記第１実施形態では、初期化シーケンスのステップＳ４０１において、ＣＰＵ１１２は、メモリモジュールに実装されているＳＰＤからメモリデバイスのメモリ情報を入手し、そのメモリデバイスが不揮発性メモリであるか揮発性メモリであるかを判断している。これに対して、本実施形態では、ＳＰＤからのメモリ情報が無い場合に、リフレッシュコマンド間隔を変更することによりメモリデバイスが不揮発性メモリであるか揮発性メモリであるかを判断する。より具体的には、ＣＰＵ１１２は、メモリデバイスに対して、一定時間以上、リフレッシュコマンドを発行しないことで、メモリデバイスが揮発性メモリであるか不揮発性メモリであるかを検出する。
【００５５】
図８は、リフレッシュコマンド間隔の変更を利用した不揮発性／揮発性メモリ検出シーケンスのフローチャートである。ここでも、第１のＲＡＭ１２０及び第２のＲＡＭ１２１に限定されず、メモリデバイス（ＲＡＭに限る）としての説明を行い、適宜、第１のＲＡＭ１２０及び第２のＲＡＭ１２１についての処理結果について説明することとする。
【００５６】
ステップＳ８０１に先立って、図４のステップＳ４０２の処理が実行されるが、ステップＳ４０２の処理内容についてのここでの説明は省略する。ステップＳ４０２の後のステップＳ８０１において、ＣＰＵ１１２は、ＣＳ毎にメモリタイプの判断（ステップＳ８０６）を実施していない残りのＣＳが有るか否かを判断する。ＣＰＵ１１２は、残りＣＳが有る場合（Ｓ８０１でＹＥＳ）、処理をステップＳ８０２へ進め、残りＣＳがない場合（Ｓ８０１でＮＯ）、処理を終了させる。
【００５７】
ステップＳ８０２において、ＣＰＵ１１２は、ステップＳ８０１で残りＣＳとして選択したＣＳのメモリデバイスに対してテストデータを書き込む。例えば、複数のアドレスに特定パターンを書き込む。続くステップＳ８０３において、ＣＰＵ１１２は、メモリコントローラ１１４に対してリフレッシュコマンドの発行間隔を変更する処理を実行する。例えば、揮発性メモリであるＤＤＲ３  ＳＤＲＡＭにおいては、放電で失った電荷を定期的に再充電する必要がある。そのために、ＪＥＤＥＣのAverage Periodic Refresh Interval tREFI（０℃≦Ｔｃａｓｅ≦８５℃）によれば、平均７．８μｓ以内にリフレッシュコマンドを発行しなければならない。この規定外ではデータを保持することは保証されないため、メモリコントローラ１１４は、平均で７．８μｓに１度、リフレッシュコマンドを発行する。しかしながら、不揮発性メモリでは、リフレッシュコマンドを発行しなくてもデータを保持することができる。したがって、ＣＰＵ１１２は、リフレッシュコマンドの発行を停止し又は発行間隔を１０ｍｓのように十分大きい値に設定する。
【００５８】
次に、ステップＳ８０４において、ＣＰＵ１１２は、ステップＳ８０３で設定した時間以上の一定時間経過したか否かを判断する。ＣＰＵ１１２は、一定時間が経過するまで待機し（Ｓ８０４でＮＯ）、一定時間が経過すると（Ｓ８０４でＹＥＳ）、処理をステップＳ８０５へ進める。ステップＳ８０５において、ＣＰＵ１１２は、選択したＣＳのメモリデバイスから、ステップＳ８０２で書き込みを行ったアドレスの値を読み出して、書き込みデータと比較する。
【００５９】
次いで、ステップＳ８０６において、ＣＰＵ１１２は、選択したＣＳのメモリタイプ判断、つまり、メモリデバイスが不揮発性メモリであるか否かの判断を行う。ＣＰＵ１１２は、ステップＳ８０５での比較の結果、選択したＣＳのメモリデバイスは、全ての書き込みデータと読み出しデータとが一致している場合には不揮発性メモリであると判断し、一致しない場合は揮発性メモリであると判断する。その後、処理はステップＳ８０１へ戻される。
【００６０】
このような処理により、ＤＤＲ３  ＳＤＲＡＭである第１のＲＡＭ１２０については、揮発性メモリであるとの判断がなされ、ＤＤＲ３  ＭＲＡＭである第２のＲＡＭ１２１については、不揮発性メモリであるとの判断がなされる。
【００６１】
以上のリフレッシュコマンド間隔の変更を利用した不揮発性／揮発性メモリ検出シーケンスによれば、メモリデバイスが不揮発性か否かを判断することが可能となる。よって、ＭＦＰ１００に実装されたメモリデバイスに不揮発性メモリと揮発性メモリとが混在して実装されていても、Ｆ／Ｗを不揮発性メモリに確実にマッピングすることができる。これにより、第１実施形態と同じ効果が得られる。
【００６２】
＜第３実施形態＞
本実施形態では、ＣＰＵ１１２が、ＭＦＰ１００に実装されたメモリデバイス（第１のＲＡＭ１２０及び第２のＲＡＭ１２１）を検出した後に、省電力モード（スリープモード）に移行する際に、各メモリデバイスに対して行う電源制御処理について説明する。
【００６３】
図９は、ＭＦＰ１００のコントローラ部１０１において第１のＲＡＭ１２０及び第２のＲＡＭ１２１の電源制御を行う構成を示すブロック図である。図９に示す構成は、図２に示した構成に対して第１の電源スイッチ９０１及び第２の電源スイッチ９０２を付加した構成となっており、よって、図２と重複する部分の説明は省略する。
【００６４】
第１の電源スイッチ９０１及び第２の電源スイッチ９０２はそれぞれ、設定によって第１のＲＡＭ１２０及び第２のＲＡＭ１２１に対する電源のＯＮ／ＯＦＦを切り替えることができる。ＣＰＵ１１２は、第１実施形態での処理に加えて、制御信号２及び制御信号３により第１の電源スイッチ９０１及び第２の電源スイッチ９０２の設定を行うことで、第１のＲＡＭ１２０及び第２のＲＡＭ１２１の電源制御を行う。
【００６５】
図９に示した構成において、ＣＰＵ１１２が、不揮発性メモリを検出して電源制御を行う方法について、図１０及び図１１を参照して説明する。図１０は、電源制御メモリリストの初期化シーケンスのフローチャートである。また、図１１は、図１０のフローチャートの処理により作成される電源制御メモリリストの一例を示す図である。図１０のフローチャートの各処理は、ＣＰＵ１１２がＲＯＭ１１３に格納されている起動プログラムを読み出し、第１のＲＡＭ１２０又は第２のＲＡＭ１２１に展開し、実行することによって実現される。
【００６６】
なお、ここでも、第１のＲＡＭ１２０及び第２のＲＡＭ１２１に限定されず、メモリデバイス（ＲＡＭに限る）としての説明を行い、適宜、第１のＲＡＭ１２０及び第２のＲＡＭ１２１についての処理結果について説明することとする。また、ここでは、メモリデバイス以外の制御シーケンスについての説明は省略する。
【００６７】
ステップＳ１００１，Ｓ１００２の処理は、先に図４を参照して説明したステップＳ４０１，４０２の処理と同じである。即ち、ＣＰＵ１１２は、ＭＦＰ１００に電源が投入されると、第１実施形態で説明したように、システムバス１１１を介してＲＯＭ１１３にある起動プログラムを実行する。これにより、ＣＰＵ１１２は、メモリ情報を取得し、初期化シーケンスを実行する。このとき、第１の電源スイッチ９０１及び第２の電源スイッチ９０２は、常に電源ＯＮの状態になっているものとする。
【００６８】
ステップＳ１００３において、ＣＰＵ１１２は、電源制御設定が行われていない残りのＣＳがあるか否かを判断する。ＣＰＵ１１２は、残りＣＳが有る場合（Ｓ１００３でＹＥＳ）、処理をステップＳ１００４へ進め、残りＣＳがない場合（Ｓ１００３でＮＯ）、処理を終了させる。ステップＳ１００４において、ＣＰＵ１１２は、ステップＳ１００３において選択したＣＳにメモリモジュールが実装されているか否かを判断する。ＣＰＵ１１２は、メモリモジュールが実装されている場合（Ｓ１００４でＹＥＳ）、処理をステップＳ１００５へ進め、メモリモジュールが実装されていない場合（Ｓ１００４でＮＯ）、処理をステップＳ１００９へ進める。
【００６９】
ステップＳ１００５において、ＣＰＵ１１２は、選択したＣＳのメモリデバイスがＤＤＲ３  ＭＲＡＭ（不揮発性メモリ）であるか否かを、ステップＳ１００１で取得したメモリ情報に基づいて判断する。ＣＰＵ１１２は、ＤＤＲ３  ＭＲＡＭである（不揮発性メモリである（Ｓ１００５でＹＥＳ））場合、処理をステップＳ１００６へ進め、ＤＤＲ３  ＭＲＡＭではない（揮発性メモリである（Ｓ１００５でＮＯ））場合、処理をステップＳ１００７へ進める。ステップＳ１００７において、ＣＰＵ１１２は、選択したＣＳのメモリデバイスにデータを格納するか否か（保持させるデータが有るか否か）を判断する。ＣＰＵ１１２は、保持させるデータが有る場合（Ｓ１００７でＹＥＳ）、処理をステップＳ１００８へ処理を進め、保持させるデータが無い場合（Ｓ１００７でＮＯ）、処理をステップＳ１００６へ進める。
【００７０】
ステップＳ１００６において、ＣＰＵ１１２は、電源制御メモリリストの電源ＯＦＦメモリリスト欄に選択したＣＳのＣＳ情報を追加（格納）する。ステップＳ１００８において、ＣＰＵ１１２は、電源制御メモリリストのセルフリフレッシュメモリリストに選択したＣＳのＣＳ情報を追加する。ステップＳ１００９において、ＣＰＵ１１２は、選択したＣＳにメモリデバイスは実装されていないため、電源制御メモリリストの電源制御なしメモリリストにＣＳ情報を追加する。ＣＰＵ１１２は、ステップＳ１００６，Ｓ１００８，Ｓ１００９の後、処理をステップＳ１００３へ戻す。
【００７１】
本実施形態では、ＣＳ０及びＣＳ１はそれぞれ第１のＲＡＭ１２０及び第２のＲＡＭ１２１に該当し、それ以外のＣＳにはメモリデバイスはなく、第１のＲＡＭ１２０がＤＤＲ３  ＳＤＲＡＭであって、第２のＲＡＭ１２１はＤＤＲ３  ＭＲＡＭである。よって、図１０の電源制御メモリリストの作成シーケンスによれば、図１１に示す電源制御メモリリストが得られる。なお、電源制御メモリリストは、例えば、不図示のＨＤＤに格納される。ここでは、ステップＳ１００７の保持させるデータが有るか否かを起動時に判断したが、Ｆ／Ｗ起動後に同判断を行って、電源制御メモリリストを変更するようにしてもよい。
【００７２】
上述の電源制御シーケンスは、ＭＦＰ１００に電源が投入されたときに、ＣＰＵ１１２がメモリデバイスに対して実行するものであり、ＭＦＰ１００が省電力モードに入るときの電源制御シーケンスについて図１２を参照して説明する。図１２は、ＭＦＰ１００が省電力モードに入るときの電源制御シーケンスのフローチャートである。
【００７３】
先ず、ステップＳ１２０１において、ＣＰＵ１１２は、図１０のフローチャートに従う初期化シーケンスで作成した電源制御メモリリストを参照して、メモリ情報を取得する。続くステップＳ１２０２において、ＣＰＵ１１２は、ＣＳ毎に電源制御設定（ステップＳ１２０４，Ｓ１２０６，Ｓ１２０７のいずれか）が行われていない残りのＣＳが有るか否かを判断する。ＣＰＵ１１２は、残りＣＳが有る場合（Ｓ１２０２でＹＥＳ）、処理をステップＳ１２０３へ進め、残りＣＳが無い場合（Ｓ１２０２でＮＯ）、本処理を終了させる。
【００７４】
ステップＳ１２０３において、ＣＰＵ１１２は、選択したＣＳのメモリデバイスに対する電源ＯＦＦが可能か否かを、ステップＳ１２０１で取得したメモリ情報に基づき判断する。ＣＰＵ１１２は、不揮発性メモリであるために電源ＯＦＦが可能な場合（Ｓ１２０３でＹＥＳ）、処理をステップＳ１２０４へ進め、揮発性メモリであるために電源ＯＦＦが不可能な場合（Ｓ１２０３でＮＯ）、処理をステップＳ１２０５へ進める。
【００７５】
ステップＳ１２０５において、ＣＰＵ１１２は、選択したＣＳのメモリデバイスにセルフリフレッシュ設定が必要か否かを判断する。ＣＰＵ１１２は、セルフリフレッシュ設定が必要な場合（Ｓ１２０５でＹＥＳ）、処理をステップＳ１２０６へ進め、セルフリフレッシュ設定が不要な場合（Ｓ１２０５でＮＯ）、処理をステップＳ１２０７へ進める。
【００７６】
ステップＳ１２０４において、ＣＰＵ１１２は、選択したＣＳのメモリデバイスの電源をＯＦＦにするために、電源スイッチ（第１の電源スイッチ９０１又は第２の電源スイッチ９０２）の設定を行う。これにより、ＭＦＰ１００が省電力モードに入るときには、選択したＣＳのメモリデバイスの電源はＯＦＦにされる。
【００７７】
ステップＳ１２０６において、ＣＰＵ１１２は、選択したＣＳのメモリデバイスをセルフリフレッシュモードに移行させるための設定をメモリコントローラ１１４に対して行う。これによりＭＦＰ１００が省電力モードに入るときには、選択したＣＳのメモリデバイスは、セルフリフレッシュモードに移行される。なお、セルフリフレッシュを行わずに、メモリデバイスに保持されていたデータを不図示のＨＤＤ等に退避させて、電源をＯＦＦにしてもよい。
【００７８】
ステップＳ１２０７において、ＣＰＵ１１２は、選択したＣＳにはメモリデバイスが実装されておらず、電力消費が無いため、電源制御は行わない。ステップＳ１２０４，Ｓ１２０６，Ｓ１２０７の後、ＣＰＵ１１２は、処理をステップＳ１２０２に戻す。
【００７９】
なお、ＭＦＰ１００が省電力モードから通常の動作モードに復帰するときには、ＣＰＵ１１２は、電源ＯＦＦのメモリデバイスの電源スイッチに対して、電源をＯＮにする設定を行う。よって、図１１の電源制御メモリリストの場合、不揮発性メモリ（ＤＤＲ３  ＭＲＡＭ）である第２のＲＡＭ１２１の電源スイッチ９０２の電源がＯＮされる。また、ＭＦＰ１００が省電力モードから通常の動作モードに復帰するときには、ＣＰＵ１１２は、メモリコントローラ１１４を介して、セルフリフレッシュのメモリデバイス（図１１の電源制御メモリリストではなし）を通常動作に復帰させる。
【００８０】
本実施形態では、上述の通りに電源制御を行うことにより、ＭＦＰ１００が省電力モードにあるときの消費電力を小さく抑えることができる。
【００８１】
＜第４実施形態＞
第３実施形態では、第１実施形態と同様に、初期化シーケンスのステップＳ１００１において、ＣＰＵ１１２は、メモリモジュールに実装されているＳＰＤからメモリ情報を入手し、メモリモジュールが不揮発性メモリであるか揮発性メモリであるかを判断している。これに対して、本実施形態では、実装されているメモリデバイスに対して電源を遮断し、一定時間経過後に再度、電源を通電したときにデータが保持されているかを確認することで、メモリデバイスが不揮発性メモリであるか揮発性メモリであるかを判断する。
【００８２】
図１３は、電源の遮断を利用した不揮発性／揮発性メモリ検出シーケンスのフローチャートである。図１３の不揮発性／揮発性メモリ検出シーケンスは、初期化シーケンスのステップＳ１００２（図１０参照）の実行後に、起動プログラムによって実行される。なお、ここでも、第１のＲＡＭ１２０及び第２のＲＡＭ１２１に限定されず、メモリデバイス（但し、ＲＡＭに限る）としての説明を行い、適宜、第１のＲＡＭ１２０及び第２のＲＡＭ１２１についての処理結果について説明することとする。
【００８３】
先ず、ステップＳ１３０１において、ＣＰＵ１１２は、メモリタイプの判断（ステップＳ１３０７）を行っていない残りのＣＳが有るか否かを判断する。ＣＰＵ１１２は、残りＣＳが有る場合（Ｓ１３０１でＹＥＳ）、処理をステップＳ１３０２へ進め、残りＣＳが無い場合（Ｓ１３０１でＮＯ）、本処理を終了させる。ステップＳ１３０２において、ＣＰＵ１１２は、ステップＳ１３０１で選択した残りＣＳのメモリデバイスに対してテストデータを書き込む。例えば、残りＣＳのメモリデバイスの複数のアドレスに特定パターンを書き込む。
【００８４】
続くステップＳ１３０３において、ＣＰＵ１１２は、選択したＣＳのメモリデバイスの電源スイッチに電源ＯＦＦの設定を実行し、その結果、選択したＣＳのメモリデバイスに対する通電は停止される。その後、ステップＳ１３０４において、ＣＰＵ１１２は、ステップＳ１３０３で設定した時間以上の一定時間が経過したかを判断し、一定時間が経過するまで待機する（Ｓ１３０４でＮＯ）。ＣＰＵ１１２は、一定時間が経過すると（Ｓ１３０４でＹＥＳ）、処理をステップＳ１３０５へ進める。ステップＳ１３０５において、ＣＰＵ１１２は、選択したＣＳのメモリデバイスの電源スイッチに電源ＯＮの設定を実行し、これにより、選択したＣＳのメモリデバイスに対する通電が再開される。
【００８５】
次に、ステップＳ１３０６において、ＣＰＵ１１２は、選択したＣＳのメモリデバイスからステップＳ１３０２で書き込みを行ったアドレスの値を読み出し、書き込みデータと比較する。そして、ステップＳ１３０７において、ＣＰＵ１１２は、選択したＣＳのメモリデバイスのメモリタイプを判断する。具体的には、ＣＰＵ１１２は、ステップＳ１３０６での比較の結果に基づき、全ての書き込みデータと読み込みデータとが一致している場合には、選択したＣＳのメモリデバイスは不揮発性メモリであると判断する。一方、ＣＰＵ１１２は、全ての書き込みデータと読み込みデータとが一致しない場合には、選択したＣＳのメモリデバイスは揮発性メモリデバイスであると判断する。ステップＳ１３０７の後、処理はステップＳ１３０１へ戻される。
【００８６】
このような処理により、ＤＤＲ３  ＳＤＲＡＭである第１のＲＡＭ１２０については、揮発性メモリであるとの判断がなされ、ＤＤＲ３  ＭＲＡＭである第２のＲＡＭ１２１については、不揮発性メモリであるとの判断がなされる。
【００８７】
以上の電源の遮断を利用した不揮発性／揮発性メモリ検出シーケンスによれば、メモリデバイスが不揮発性か否かを判断することが可能となる。よって、ＭＦＰ１００に実装されたメモリデバイスに不揮発性メモリと揮発性メモリとが混在して実装されていても、省電力モードにあるときの消費電力を小さく抑えることができる。
【００８８】
＜第５実施形態＞
上記第１及び第２実施形態では、ＭＦＰ１００の起動時におけるメモリデバイスに対するマッピングについて、また、上記第３及び第４実施形態では、ＭＦＰ１００の起動時及び省電力モードへの移行時の電源制御処理について説明した。これに対して、本実施形態では、ＭＦＰ１００が備える各種機能（コピー機能、プリント機能、送信機能）の実行時における電源制御について、図１４を参照して説明する。
【００８９】
図１４は、ＭＦＰ１００の動作時における電源制御シーケンスのフローチャートである。図１４のフローチャートの各処理は、ＣＰＵ１１２がＲＯＭ１１３に格納されている起動プログラムを読み出し、第１のＲＡＭ１２０又は第２のＲＡＭ１２１に展開し、実行することによって実現される。
【００９０】
ＭＦＰ１００が実行可能なコピー動作やプリント動作、送信動作等の各動作では、中間画像データ等を格納するためのワークメモリとして必要なメモリ容量が異なる。したがって、本実施形態では、各動作に必要なメモリ容量に応じて、メモリデバイスに対する電源の切り替え動作を実施することとし、図１４のフローチャートは、そのキャリブレーション方法を示している。
【００９１】
ＭＦＰ１００に電源が投入されると、先ず、ステップＳ１４０１において、ＣＰＵ１１２は、第１実施形態及び第３実施形態で説明した初期化シーケンスを実施する。これにより、Ｆ／Ｗが所定のメモリデバイスに格納され、また、電源制御メモリリストが作成（更新）されて、ＭＦＰ１００はスタンバイ状態となる。本実施形態では、第１のＲＡＭ１２０が揮発性メモリであるため、第１のＲＡＭ１２０に一時的に使用される中間画像データ等が保持されるものとする。また、第２のＲＡＭ１２１は不揮発性メモリであるため、第２のＲＡＭ１２１にＦ／Ｗが格納されるものとする。
【００９２】
続くステップＳ１４０２において、ＣＰＵ１１２は、ジョブが投入されたか否かを判定し、ジョブが投入されるまで待機し（Ｓ１４０２でＮＯ）、ジョブが投入されると（Ｓ１４０２でＹＥＳ）、処理をステップＳ１４０３へ進める。ステップＳ１４０３において、ＣＰＵ１１２は、ジョブがコピー動作か否かを判断する。ＣＰＵ１１２は、コピー動作である場合（Ｓ１４０３でＹＥＳ）、処理をステップＳ１４０６へ進め、コピー動作ではない場合（Ｓ１４０３でＮＯ）、処理をステップＳ１４０４へ進める。なお、コピー動作とは、ＭＦＰ１００のフィーダにセットされた原稿の画像をスキャナ部で取り込み、色変換や濃度変換、エッジ強調処理、スクリーン処理等の画像処理を施して、プリンタ部１０２で紙（シート）面上に画像形成し、出力する動作である。
【００９３】
ステップＳ１４０４において、ＣＰＵ１１２は、ジョブがプリント動作か否かを判断する。ＣＰＵ１１２は、プリント動作である場合（Ｓ１４０４でＹＥＳ）、処理をステップＳ１４０６へ進め、プリント動作ではない場合（Ｓ１４０４でＮＯ）、処理をステップＳ１４０５へ進める。なお、プリント動作とは、ホストコンピュータ１５０や不図示のＵＳＢ等の外部装置から受信したＰＤＬやＪＰＥＧ等の画像データに対して、レンダリング処理や色変換、濃度変換、エッジ強調処理、スクリーン処理等の画像処理を実行し、プリンタ部１０２で紙（シート）面上に画像形成し、出力する動作である。
【００９４】
ステップＳ１４０５において、ＣＰＵ１１２は、ジョブが送信動作か否かを判断する。ＣＰＵ１１２は、送信動作である場合（Ｓ１４０５でＹＥＳ）、処理をステップＳ１４０６へ進め、送信動作ではない場合（Ｓ１４０５でＮＯ）、処理をステップＳ１４１１へ進める。なお、送信動作では、先ず、ＭＦＰ１００のフィーダにセットされた原稿の画像がスキャナ部で読み取られ、色変換や濃度変換、エッジ強調処理、圧縮処理等の画像処理が施されて、ＪＰＥＧ形式等のファイルが作成される。その後、作成されたファイルは、指定された電子メールアドレスにネットワークを介して送信され、或いは、モデムに接続された電話回線を通じて外部のファクシミリ装置へ送信される。なお、ステップＳ１４０３〜１４０５の各処理（判断）は、順序を問わず、どの判断が先に行われてもよい。
【００９５】
ステップＳ１４０６において、ＣＰＵ１１２は、ステップＳ１４０３〜Ｓ１４０５のいずれかの処理に対して必要なワークメモリ領域（メモリ使用量）を計算する。ＣＰＵ１１２は、コピー動作及び送信動作の場合には、中間画像データであるスキャンデータを一時保持するために、用紙サイズ等に基づきワークメモリ領域を計算する。プリント動作の場合、ＣＰＵ１１２は、中間言語データやラスター画像データ等を一時保持するためのワークメモリ領域とプリント時に必要なワークメモリ領域とを、用紙サイズ等に基づいて計算する。その結果として、ＣＰＵ１１２は、ステップＳ１４０１の初期化シーケンスで実行したメモリマッピングの結果に従って使用すべきメモリデバイスを選択する。
【００９６】
続くステップＳ１４０７において、ＣＰＵ１１２は、第３実施形態に従って全てのＣＳのメモリデバイスに対して電源制御の設定を更新する処理を行い、処理が行われていない残りのＣＳが有るか否かを判断する。ＣＰＵ１１２は、残りＣＳが有る場合（Ｓ１４０７でＹＥＳ）、処理をステップＳ１４０８へ進め、残りＣＳが無い場合（Ｓ１４０７でＮＯ）、処理をステップＳ１４１１へ進める。
【００９７】
ステップＳ１４０８において、ＣＰＵ１１２は、ステップＳ１４０７で選択したＣＳのメモリデバイスが、ステップＳ１４０６において使用するメモリデバイスとして選択されているか否かを判断する。ＣＰＵ１１２は、使用するメモリデバイスとして選択されていない場合（Ｓ１４０８でＮＯ）、処理をステップＳ１４０９へ進め、使用するメモリデバイスとして選択されている場合（Ｓ１４０８でＹＥＳ）、処理をステップＳ１４１０へ進める。
【００９８】
ステップＳ１４０９において、ＣＰＵ１１２は、選択したＣＳのメモリデバイスは使用されないと判断し、第３実施形態のステップＳ１２０３〜Ｓ１２０７で実行した省電力モードへの移行処理を実施する。なお、このとき、各ＣＳのメモリデバイスに対して電源がＯＦＦされたとしても、他のメモリデバイスが動作することができるように、例えば、信号タイミングの調整等が行われる。ステップＳ１４１０において、ＣＰＵ１１２は、選択したＣＳのメモリデバイスが省電力モードに入っていて電源がＯＦＦとなっている場合には、省電力モードから通常の動作モードへ復帰させる。なお、ステップＳ１４１０では、選択したＣＳのメモリデバイスが通常の動作モードにあるときには、特に処理がおこなわれることはない。ステップＳ１４０９，Ｓ１４１０の後、ＣＰＵ１１２は、処理をステップＳ１４０７へ戻す。
【００９９】
ステップＳ１４１１において、ＣＰＵ１１２は、実行したジョブが終了したか否かを判断する。ＣＰＵ１１２は、ジョブが終了するまで待機し（Ｓ１４１１でＮＯ）、ジョブが終了すると（Ｓ１４１１でＹＥＳ）、処理をステップＳ１４１２へ進める。ステップＳ１４１２において、ＣＰＵ１１２は、次のジョブが有るか否かを判断する。ＣＰＵ１１２は、次のジョブが有る場合（Ｓ１４１２でＹＥＳ）、処理をステップＳ１４０３へ戻し、次のジョブが無い場合（Ｓ１４１２でＮＯ）、処理をステップＳ１４１３へ進める。
【０１００】
ステップＳ１４１３において、ＣＰＵ１１２は、全てのメモリデバイスに対して第３実施形態のステップＳ１２０３〜Ｓ１２０７で実行した省電力モードへの移行処理を実施する。その後、処理はステップＳ１４０２へ戻される。
【０１０１】
以上の電源制御方法を用いて、ジョブが投入されたときでも不要なメモリデバイスを省電力モードに移行するようにすることで、ＭＦＰ１００の消費電力を低く抑えることができる。
【０１０２】
＜その他の実施形態＞
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。更に、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。
【０１０３】
なお、第１実施形態では、ＭＦＰ１００を構成するモジュールをハードウェアとしてサポートした（図１参照）。これに対して、画像処理部１１９等の所定のモジュールについては、ＲＯＭ１１３に格納されたプログラムをＣＰＵ１１２が実行することで、その機能が実現されるようにしてもよい。その場合、例えば、インタプリタ１１７、レンダラ１１８及び画像処理部１１９の機能を実現する各プログラムは、揮発性メモリへの各種データの読み込み／書き込み機能をサポートするものとする。
【０１０４】
本発明は以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１０５】
１００    ＭＦＰ
１１２    ＣＰＵ
１１３    ＲＯＭ
１１４    メモリコントローラ
１２０    第１のＲＡＭ
１２１    第２のＲＡＭ
９０１    第１の電源スイッチ
９０２    第２の電源スイッチ
【図１】
2015064758.tif 000003
【図２】
2015064758.tif 000004
【図３】
2015064758.tif 000005
【図４】
2015064758.tif 000006
【図５】
2015064758.tif 000007
【図６】
2015064758.tif 000008
【図７】
2015064758.tif 000009
【図８】
2015064758.tif 000010
【図９】
2015064758.tif 000011
【図１０】
2015064758.tif 000012
【図１１】
2015064758.tif 000013
【図１２】
2015064758.tif 000014
【図１３】
2015064758.tif 000015
【図１４】
2015064758.tif 000016